abuild: move various functions to the shared functions.sh
specifically, every script that reads/parses ./APKBUILD needs to set CARCH.
This commit is contained in:
parent
7a447caf05
commit
0c02afc694
104
abuild.in
104
abuild.in
@ -11,54 +11,32 @@ sysconfdir=@sysconfdir@
|
|||||||
abuildrepo_base=@abuildrepo@
|
abuildrepo_base=@abuildrepo@
|
||||||
datadir=@datadir@
|
datadir=@datadir@
|
||||||
|
|
||||||
program=${0##*/}
|
|
||||||
abuild_path=$(readlink -f $0)
|
abuild_path=$(readlink -f $0)
|
||||||
|
|
||||||
|
if ! [ -f "$datadir/functions.sh" ]; then
|
||||||
|
echo "$datadir/functions.sh: not found" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
. "$datadir/functions.sh"
|
||||||
|
|
||||||
# defaults
|
# defaults
|
||||||
BUILD_BASE="build-base"
|
BUILD_BASE="build-base"
|
||||||
FAKEROOT=${FAKEROOT:-"fakeroot"}
|
|
||||||
|
|
||||||
: ${SUDO_APK:=abuild-apk}
|
: ${FAKEROOT:="fakeroot"}
|
||||||
: ${APK:=apk}
|
: ${SUDO_APK:="abuild-apk"}
|
||||||
: ${ADDUSER:=abuild-adduser}
|
: ${APK:="apk"}
|
||||||
: ${ADDGROUP:=abuild-addgroup}
|
: ${ADDUSER:="abuild-adduser"}
|
||||||
|
: ${ADDGROUP:="abuild-addgroup"}
|
||||||
|
|
||||||
apk_opt_wait="--wait 30"
|
apk_opt_wait="--wait 30"
|
||||||
|
|
||||||
# read config
|
|
||||||
ABUILD_CONF=${ABUILD_CONF:-"$sysconfdir/abuild.conf"}
|
|
||||||
[ -f "$ABUILD_CONF" ] && . "$ABUILD_CONF"
|
|
||||||
|
|
||||||
default_colors() {
|
|
||||||
NORMAL="\033[1;0m"
|
|
||||||
STRONG="\033[1;1m"
|
|
||||||
RED="\033[1;31m"
|
|
||||||
GREEN="\033[1;32m"
|
|
||||||
YELLOW="\033[1;33m"
|
|
||||||
BLUE="\033[1;34m"
|
|
||||||
}
|
|
||||||
|
|
||||||
monochrome() {
|
|
||||||
NORMAL=""
|
|
||||||
STRONG=""
|
|
||||||
RED=""
|
|
||||||
GREEN=""
|
|
||||||
YELLOW=""
|
|
||||||
BLUE=""
|
|
||||||
}
|
|
||||||
|
|
||||||
#colors
|
|
||||||
if [ -n "$USE_COLORS" ]; then
|
|
||||||
default_colors
|
|
||||||
fi
|
|
||||||
|
|
||||||
# run optional log command for remote logging
|
# run optional log command for remote logging
|
||||||
logcmd() {
|
logcmd() {
|
||||||
${ABUILD_LOG_CMD:-true} "$@"
|
${ABUILD_LOG_CMD:-true} "$@"
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
# functions
|
# we override the default msg, warning and error as we want the pkgname
|
||||||
msg() {
|
msg() {
|
||||||
[ -n "$quiet" ] && return 0
|
[ -n "$quiet" ] && return 0
|
||||||
local prompt="$GREEN>>>${NORMAL}"
|
local prompt="$GREEN>>>${NORMAL}"
|
||||||
@ -67,12 +45,6 @@ msg() {
|
|||||||
printf "${prompt} ${name}${fake}: %s\n" "$1" >&2
|
printf "${prompt} ${name}${fake}: %s\n" "$1" >&2
|
||||||
}
|
}
|
||||||
|
|
||||||
msg2() {
|
|
||||||
[ -n "$quiet" ] && return 0
|
|
||||||
# ">>> %s"
|
|
||||||
printf " %s\n" "$1" >&2
|
|
||||||
}
|
|
||||||
|
|
||||||
warning() {
|
warning() {
|
||||||
local prompt="${YELLOW}>>> WARNING:${NORMAL}"
|
local prompt="${YELLOW}>>> WARNING:${NORMAL}"
|
||||||
local fake="${FAKEROOTKEY:+${BLUE}*${NORMAL}}"
|
local fake="${FAKEROOTKEY:+${BLUE}*${NORMAL}}"
|
||||||
@ -80,11 +52,6 @@ warning() {
|
|||||||
printf "${prompt} ${name}${fake}: %s\n" "$1" >&2
|
printf "${prompt} ${name}${fake}: %s\n" "$1" >&2
|
||||||
}
|
}
|
||||||
|
|
||||||
warning2() {
|
|
||||||
# ">>> WARNING:
|
|
||||||
printf " %s\n" "$1" >&2
|
|
||||||
}
|
|
||||||
|
|
||||||
error() {
|
error() {
|
||||||
local prompt="${RED}>>> ERROR:${NORMAL}"
|
local prompt="${RED}>>> ERROR:${NORMAL}"
|
||||||
local fake="${FAKEROOTKEY:+${BLUE}*${NORMAL}}"
|
local fake="${FAKEROOTKEY:+${BLUE}*${NORMAL}}"
|
||||||
@ -93,17 +60,6 @@ error() {
|
|||||||
logcmd "ERROR: $pkgname: $1"
|
logcmd "ERROR: $pkgname: $1"
|
||||||
}
|
}
|
||||||
|
|
||||||
error2() {
|
|
||||||
# ">>> ERROR:
|
|
||||||
printf " %s\n" "$1" >&2
|
|
||||||
}
|
|
||||||
|
|
||||||
set_xterm_title() {
|
|
||||||
if [ "$TERM" = xterm ] && [ -n "$USE_COLORS" ]; then
|
|
||||||
printf "\033]0;$1\007" >&2
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
cross_compiling() {
|
cross_compiling() {
|
||||||
test "$CBUILD" != "$CHOST" -a -n "$CBUILDROOT"
|
test "$CBUILD" != "$CHOST" -a -n "$CBUILDROOT"
|
||||||
}
|
}
|
||||||
@ -1862,30 +1818,11 @@ snapshot() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
hostspec_to_arch() {
|
|
||||||
case "$1" in
|
|
||||||
arm*-*-*-*eabi) echo "armel" ;;
|
|
||||||
arm*-*-*-*eabihf) echo "armhf" ;;
|
|
||||||
i[0-9]86-*-*-*) echo "x86" ;;
|
|
||||||
x86_64-*-*-*) echo "x86_64" ;;
|
|
||||||
*) echo "unknown" ;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
hostspec_to_libc() {
|
|
||||||
case "$1" in
|
|
||||||
*-*-*-uclibc*) echo "uclibc" ;;
|
|
||||||
*-*-*-musl*) echo "musl" ;;
|
|
||||||
*-*-*-gnu*) echo "eglibc" ;;
|
|
||||||
*) echo "uclibc" ;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
usage() {
|
usage() {
|
||||||
echo "$program $abuild_ver"
|
echo "$prog $abuild_ver"
|
||||||
echo "usage: $program [options] [-i PKG] [-P REPODEST] [-p PKGDEST]"
|
echo "usage: $prog [options] [-i PKG] [-P REPODEST] [-p PKGDEST]"
|
||||||
echo " [-s SRCDEST] [cmd] ..."
|
echo " [-s SRCDEST] [cmd] ..."
|
||||||
echo " $program [-c] -n PKGNAME[-PKGVER]"
|
echo " $prog [-c] -n PKGNAME[-PKGVER]"
|
||||||
echo "Options:"
|
echo "Options:"
|
||||||
echo " -c Enable colored output"
|
echo " -c Enable colored output"
|
||||||
echo " -d Disable dependency checking"
|
echo " -d Disable dependency checking"
|
||||||
@ -1932,7 +1869,7 @@ unset force
|
|||||||
unset recursive
|
unset recursive
|
||||||
while getopts "cdfFhi:kimnp:P:qrRs:u" opt; do
|
while getopts "cdfFhi:kimnp:P:qrRs:u" opt; do
|
||||||
case $opt in
|
case $opt in
|
||||||
'c') default_colors
|
'c') enable_colors
|
||||||
color_opt="-c";;
|
color_opt="-c";;
|
||||||
'd') nodeps=1;;
|
'd') nodeps=1;;
|
||||||
'f') force="-f";;
|
'f') force="-f";;
|
||||||
@ -1940,7 +1877,7 @@ while getopts "cdfFhi:kimnp:P:qrRs:u" opt; do
|
|||||||
'h') usage;;
|
'h') usage;;
|
||||||
'i') install_after="$install_after $OPTARG";;
|
'i') install_after="$install_after $OPTARG";;
|
||||||
'k') keep="-k";;
|
'k') keep="-k";;
|
||||||
'm') monochrome
|
'm') disable_colors
|
||||||
color_opt="-m";;
|
color_opt="-m";;
|
||||||
'n') die "Use newapkbuild to create new aports";;
|
'n') die "Use newapkbuild to create new aports";;
|
||||||
'p') PKGDEST=$OPTARG;;
|
'p') PKGDEST=$OPTARG;;
|
||||||
@ -1975,13 +1912,6 @@ repo=${repo##*/}
|
|||||||
SRCDEST=${SRCDEST:-$startdir}
|
SRCDEST=${SRCDEST:-$startdir}
|
||||||
PKGDEST=${PKGDEST:-$startdir}
|
PKGDEST=${PKGDEST:-$startdir}
|
||||||
|
|
||||||
[ -z "$CBUILD" ] && CBUILD="$CHOST"
|
|
||||||
[ -z "$CTARGET" ] && CTARGET="$CHOST"
|
|
||||||
[ -z "$CARCH" ] && CARCH="$(hostspec_to_arch $CHOST)"
|
|
||||||
[ -z "$CLIBC" ] && CLIBC="$(hostspec_to_libc $CHOST)"
|
|
||||||
[ -z "$CTARGET_ARCH" ] && CTARGET_ARCH="$(hostspec_to_arch $CTARGET)"
|
|
||||||
[ -z "$CTARGET_LIBC" ] && CTARGET_LIBC="$(hostspec_to_libc $CTARGET)"
|
|
||||||
|
|
||||||
# set a default CC
|
# set a default CC
|
||||||
: ${CC:=gcc}
|
: ${CC:=gcc}
|
||||||
export CC
|
export CC
|
||||||
|
129
functions.sh.in
Normal file → Executable file
129
functions.sh.in
Normal file → Executable file
@ -3,6 +3,25 @@
|
|||||||
sysconfdir=@sysconfdir@
|
sysconfdir=@sysconfdir@
|
||||||
prog=${0##*/}
|
prog=${0##*/}
|
||||||
|
|
||||||
|
hostspec_to_arch() {
|
||||||
|
case "$1" in
|
||||||
|
arm*-*-*-*eabi) echo "armel" ;;
|
||||||
|
arm*-*-*-*eabihf) echo "armhf" ;;
|
||||||
|
i[0-9]86-*-*-*) echo "x86" ;;
|
||||||
|
x86_64-*-*-*) echo "x86_64" ;;
|
||||||
|
*) echo "unknown" ;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
hostspec_to_libc() {
|
||||||
|
case "$1" in
|
||||||
|
*-*-*-uclibc*) echo "uclibc" ;;
|
||||||
|
*-*-*-musl*) echo "musl" ;;
|
||||||
|
*-*-*-gnu*) echo "eglibc" ;;
|
||||||
|
*) echo "uclibc" ;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
readconfig() {
|
readconfig() {
|
||||||
local _APORTSDIR _BUILDDIR _PKGDEST _SRCPKGDEST _REPODEST _SRCDEST
|
local _APORTSDIR _BUILDDIR _PKGDEST _SRCPKGDEST _REPODEST _SRCDEST
|
||||||
local _CARCH _CHOST _CTARGET _CPPFLAGS _CFLAGS _CXXFLAGS _LDFLAGS
|
local _CARCH _CHOST _CTARGET _CPPFLAGS _CFLAGS _CXXFLAGS _LDFLAGS
|
||||||
@ -64,10 +83,17 @@ readconfig() {
|
|||||||
MAKEFLAGS=${_MAKEFLAGS-$MAKEFLAGS}
|
MAKEFLAGS=${_MAKEFLAGS-$MAKEFLAGS}
|
||||||
PACKAGER=${_PACKAGER-$PACKAGER}
|
PACKAGER=${_PACKAGER-$PACKAGER}
|
||||||
USE_COLORS=${_USE_COLORS-$USE_COLORS}
|
USE_COLORS=${_USE_COLORS-$USE_COLORS}
|
||||||
|
|
||||||
|
[ -z "$CBUILD" ] && CBUILD="$CHOST"
|
||||||
|
[ -z "$CTARGET" ] && CTARGET="$CHOST"
|
||||||
|
[ -z "$CARCH" ] && CARCH="$(hostspec_to_arch $CHOST)"
|
||||||
|
[ -z "$CLIBC" ] && CLIBC="$(hostspec_to_libc $CHOST)"
|
||||||
|
[ -z "$CTARGET_ARCH" ] && CTARGET_ARCH="$(hostspec_to_arch $CTARGET)"
|
||||||
|
[ -z "$CTARGET_LIBC" ] && CTARGET_LIBC="$(hostspec_to_libc $CTARGET)"
|
||||||
|
|
||||||
}
|
}
|
||||||
readconfig
|
readconfig
|
||||||
|
|
||||||
|
|
||||||
# expects $1 to be a package directory in the aports tree ('foo' or 'main/foo')
|
# expects $1 to be a package directory in the aports tree ('foo' or 'main/foo')
|
||||||
# outputs APKBUILD's path if successful
|
# outputs APKBUILD's path if successful
|
||||||
aports_buildscript() {
|
aports_buildscript() {
|
||||||
@ -92,55 +118,68 @@ any_buildscript() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# output functions
|
# output functions
|
||||||
case $prog in
|
msg() {
|
||||||
abuild)
|
[ -n "$quiet" ] && return 0
|
||||||
if [ -n "$USE_COLORS" ]; then
|
local prompt="$GREEN>>>${NORMAL}"
|
||||||
NORMAL="\033[1;0m"
|
printf "${prompt} %s\n" "$1" >&2
|
||||||
STRONG="\033[1;1m"
|
}
|
||||||
RED="\033[1;31m"
|
|
||||||
GREEN="\033[1;32m"
|
msg2() {
|
||||||
YELLOW="\033[1;33m"
|
[ -n "$quiet" ] && return 0
|
||||||
BLUE="\033[1;34m"
|
# ">>> %s"
|
||||||
|
printf " %s\n" "$1" >&2
|
||||||
|
}
|
||||||
|
|
||||||
|
warning() {
|
||||||
|
local prompt="${YELLOW}>>> WARNING:${NORMAL}"
|
||||||
|
printf "${prompt} %s\n" "$1" >&2
|
||||||
|
}
|
||||||
|
|
||||||
|
warning2() {
|
||||||
|
# ">>> WARNING: %s\n"
|
||||||
|
printf " %s\n" "$1" >&2
|
||||||
|
}
|
||||||
|
|
||||||
|
error() {
|
||||||
|
local prompt="${RED}>>> ERROR:${NORMAL}"
|
||||||
|
printf "${prompt} %s\n" "$1" >&2
|
||||||
|
}
|
||||||
|
|
||||||
|
error2() {
|
||||||
|
# ">>> ERROR:
|
||||||
|
printf " %s\n" "$1" >&2
|
||||||
|
}
|
||||||
|
|
||||||
|
set_xterm_title() {
|
||||||
|
if [ "$TERM" = xterm ] && [ -n "$USE_COLORS" ]; then
|
||||||
|
printf "\033]0;$1\007" >&2
|
||||||
fi
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
msg() {
|
disable_colors() {
|
||||||
local prompt="$GREEN>>>${NORMAL}"
|
NORMAL=""
|
||||||
local fake="${FAKEROOTKEY:+${BLUE}*${NORMAL}}"
|
STRONG=""
|
||||||
local name="${STRONG}${subpkgname:-$pkgname}${NORMAL}"
|
RED=""
|
||||||
if [ -z "$quiet" ]; then
|
GREEN=""
|
||||||
printf "${prompt} ${name}${fake}: $@\n" >&2
|
YELLOW=""
|
||||||
fi
|
BLUE=""
|
||||||
}
|
}
|
||||||
|
|
||||||
warning() {
|
enable_colors() {
|
||||||
local prompt="${YELLOW}>>> WARNING:${NORMAL}"
|
NORMAL="\033[1;0m"
|
||||||
local fake="${FAKEROOTKEY:+${BLUE}*${NORMAL}}"
|
STRONG="\033[1;1m"
|
||||||
local name="${STRONG}${subpkgname:-$pkgname}${NORMAL}"
|
RED="\033[1;31m"
|
||||||
printf "${prompt} ${name}${fake}: $@\n" >&2
|
GREEN="\033[1;32m"
|
||||||
}
|
YELLOW="\033[1;33m"
|
||||||
|
BLUE="\033[1;34m"
|
||||||
|
}
|
||||||
|
|
||||||
error() {
|
if [ -n "$USE_COLORS" ]; then
|
||||||
local prompt="${RED}>>> ERROR:${NORMAL}"
|
enable_colors
|
||||||
local fake="${FAKEROOTKEY:+${BLUE}*${NORMAL}}"
|
else
|
||||||
local name="${STRONG}${subpkgname:-$pkgname}${NORMAL}"
|
disable_colors
|
||||||
printf "${prompt} ${name}${fake}: $@\n" >&2
|
fi
|
||||||
}
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
msg() {
|
|
||||||
# Here we write to stdout, but abuild's fancier messages write to stderr
|
|
||||||
if [ -z "$quiet" ]; then
|
|
||||||
echo "$@"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
error() {
|
|
||||||
echo "$prog: $@" >&2
|
|
||||||
}
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
# caller may override
|
# caller may override
|
||||||
cleanup() {
|
cleanup() {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user