diff options
Diffstat (limited to 'main/abuild')
-rw-r--r-- | main/abuild/0001-abuild-add-support-for-optional-remote-logging.patch | 60 | ||||
-rw-r--r-- | main/abuild/0001-buildrepo-parse-APKBUILDs-in-subshell.patch | 66 | ||||
-rw-r--r-- | main/abuild/0001-buildrepo-set-REPODEST-when-running-abuild.patch | 25 | ||||
-rw-r--r-- | main/abuild/APKBUILD | 22 | ||||
-rw-r--r-- | main/abuild/abuild-git.patch | 259 |
5 files changed, 5 insertions, 427 deletions
diff --git a/main/abuild/0001-abuild-add-support-for-optional-remote-logging.patch b/main/abuild/0001-abuild-add-support-for-optional-remote-logging.patch deleted file mode 100644 index 75c653bc7e..0000000000 --- a/main/abuild/0001-abuild-add-support-for-optional-remote-logging.patch +++ /dev/null @@ -1,60 +0,0 @@ -From 8b3ecdf1f4f120878a43da89afeed62533acb6c4 Mon Sep 17 00:00:00 2001 -From: Natanael Copa <ncopa@alpinelinux.org> -Date: Fri, 19 Apr 2013 11:22:32 +0200 -Subject: [PATCH] abuild: add support for optional remote logging - -via ABUILD_LOG_CMD config option - -This is supposed to be used on the build servers ---- - abuild.in | 13 ++++++++++--- - 1 file changed, 10 insertions(+), 3 deletions(-) - -diff --git a/abuild.in b/abuild.in -index 284ee6f..76a0806 100755 ---- a/abuild.in -+++ b/abuild.in -@@ -5,7 +5,7 @@ - # - # Distributed under GPL-2 - # --# Depends on: busybox utilities, fakeroot, -+# Depends on: busybox utilities, fakeroot - # - - abuild_ver=@VERSION@ -@@ -52,8 +52,13 @@ monochrome() { - #colors - if [ -n "$USE_COLORS" ]; then - default_colors --fi -- -+fi -+ -+# run optional log command for remote logging -+logcmd() { -+ ${ABUILD_LOG_CMD:-true} "$@" -+ return 0 -+} - - # functions - msg() { -@@ -87,6 +92,7 @@ error() { - local fake="${FAKEROOTKEY:+${BLUE}*${NORMAL}}" - local name="${STRONG}${subpkgname:-$pkgname}${NORMAL}" - printf "${prompt} ${name}${fake}: %s\n" "$1" >&2 -+ logcmd "ERROR: $pkgname: $1" - } - - error2() { -@@ -1161,6 +1167,7 @@ mklinks_abuildrepo() { - build_abuildrepo() { - local d apk - if ! apk_up2date || [ -n "$force" ]; then -+ logcmd "building $pkgname" - sanitycheck && builddeps && clean && fetch && unpack \ - && prepare && mkusers && rootpkg || return 1 - fi --- -1.8.2.1 - diff --git a/main/abuild/0001-buildrepo-parse-APKBUILDs-in-subshell.patch b/main/abuild/0001-buildrepo-parse-APKBUILDs-in-subshell.patch deleted file mode 100644 index 67c79ddf5d..0000000000 --- a/main/abuild/0001-buildrepo-parse-APKBUILDs-in-subshell.patch +++ /dev/null @@ -1,66 +0,0 @@ -From d0e15dd5b60e76e30f42f0f9061fcce9f5a6d5a3 Mon Sep 17 00:00:00 2001 -From: Natanael Copa <ncopa@alpinelinux.org> -Date: Fri, 22 Feb 2013 09:03:13 +0000 -Subject: [PATCH] buildrepo: parse APKBUILDs in subshell - -so we dont leak functions like 'build' and other variables. ---- - buildrepo.in | 22 ++++++++++++++-------- - 1 file changed, 14 insertions(+), 8 deletions(-) - -diff --git a/buildrepo.in b/buildrepo.in -index f1a5749..23cc61e 100755 ---- a/buildrepo.in -+++ b/buildrepo.in -@@ -46,9 +46,9 @@ all_exist() { - done - return 0 - } -- --build() { -- local repo="$1" i needbuild -+ -+list_needbuild() { -+ local repo="$1" i= - - cd "$aportsdir/$repo" || return 0 - -@@ -78,14 +78,20 @@ build() { - - # try link or copy the files if they are in the ports dir - if all_exist $pkgs; then -- echo ">>> Copying " $pkgs -+ echo ">>> Copying " $pkgs >&2 - cp -p -l $pkgs "$repodir/$repo/$CARCH"/ 2>/dev/null \ - || cp -p $pkgs "$repodir/$repo/$CARCH"/ \ -- || needbuild="$needbuild $i" -+ || echo "$i" - else -- needbuild="$needbuild $i" -+ echo "$i" - fi - done -+} -+ -+do_build() { -+ local repo="$1" i= -+ cd "$aportsdir/$repo" || return 0 -+ local needbuild="$(list_needbuild $repo)" - - # build the postponed packages if any - if [ -n "$needbuild" ]; then -@@ -146,9 +152,9 @@ shift $(($OPTIND - 1)) - - while [ $# -gt 0 ]; do - if [ -n "$logprefix" ]; then -- build $1 >$logprefix.$1.log 2>&1 || exit 1 -+ do_build $1 >$logprefix.$1.log 2>&1 || exit 1 - else -- build $1 || exit 1 -+ do_build $1 || exit 1 - fi - deprepo="$deprepo $1" - shift --- -1.8.1.3 - diff --git a/main/abuild/0001-buildrepo-set-REPODEST-when-running-abuild.patch b/main/abuild/0001-buildrepo-set-REPODEST-when-running-abuild.patch deleted file mode 100644 index 0dbc4a2b7e..0000000000 --- a/main/abuild/0001-buildrepo-set-REPODEST-when-running-abuild.patch +++ /dev/null @@ -1,25 +0,0 @@ -From b1b093180f2795c5802f12ee36b6f619e725b0cd Mon Sep 17 00:00:00 2001 -From: Natanael Copa <ncopa@alpinelinux.org> -Date: Fri, 22 Feb 2013 09:35:19 +0000 -Subject: [PATCH] buildrepo: set REPODEST when running abuild - -fixes regression ---- - buildrepo.in | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/buildrepo.in b/buildrepo.in -index 23cc61e..1f218cc 100755 ---- a/buildrepo.in -+++ b/buildrepo.in -@@ -93,6 +93,7 @@ do_build() { - cd "$aportsdir/$repo" || return 0 - local needbuild="$(list_needbuild $repo)" - -+ export REPODEST="$repodir" - # build the postponed packages if any - if [ -n "$needbuild" ]; then - for i in $needbuild; do --- -1.8.1.3 - diff --git a/main/abuild/APKBUILD b/main/abuild/APKBUILD index 5e93df766d..cb4809150f 100644 --- a/main/abuild/APKBUILD +++ b/main/abuild/APKBUILD @@ -1,9 +1,9 @@ # Maintainer: Natanael Copa <ncopa@alpinelinux.org> pkgdesc="Script to build Alpine Packages" pkgname=abuild -pkgver=2.14.1 +pkgver=2.14.2 _ver=${pkgver%_git*} -pkgrel=3 +pkgrel=0 url=http://git.alpinelinux.org/cgit/abuild/ depends="fakeroot file sudo pax-utils openssl apk-tools>=2.0.7-r1 abuildhelper curl libc-utils" @@ -14,9 +14,6 @@ pkggroups="abuild" arch="all" license=GPL-2 source="http://git.alpinelinux.org/cgit/abuild/snapshot/abuild-$_ver.tar.bz2 - 0001-buildrepo-parse-APKBUILDs-in-subshell.patch - 0001-buildrepo-set-REPODEST-when-running-abuild.patch - 0001-abuild-add-support-for-optional-remote-logging.patch " _builddir="$srcdir/$pkgname-$_ver" @@ -54,15 +51,6 @@ cpan() { mv "$pkgdir"/usr/bin/apkbuild-cpan "$subpkgdir"/usr/bin/ } -md5sums="ec7c8e453d4331ac20c164c263234f02 abuild-2.14.1.tar.bz2 -d44821805530e9e57a4e27f8fe7f2970 0001-buildrepo-parse-APKBUILDs-in-subshell.patch -1b0e56775cace496612afc9e2e233ff9 0001-buildrepo-set-REPODEST-when-running-abuild.patch -63379b334ed76c562ee07fb3a0ba506a 0001-abuild-add-support-for-optional-remote-logging.patch" -sha256sums="e9ee3df70118f4f5eb6aca00570c8fb8fb5cf79ed08eb653929116384af77c35 abuild-2.14.1.tar.bz2 -d30ff115fe3595c1dbc8efaeb13233527148ac72c966521f04b9c166a5cceee3 0001-buildrepo-parse-APKBUILDs-in-subshell.patch -e33d919078c122b426d09bab7a761bb880fee0d36cc23a4de5114e6f3829f235 0001-buildrepo-set-REPODEST-when-running-abuild.patch -5a191d2f984c65cdc3d1cb496d04711c0f6b33906974e4864536a7ef373b5081 0001-abuild-add-support-for-optional-remote-logging.patch" -sha512sums="3eb14b4d4a104c459a7689d862e9efc29b0a5585101af25604248ad6453c7538c56bfe59f4250e3c56357db37dbf7c04115338c55a4ac0231bb3a61545a83cdf abuild-2.14.1.tar.bz2 -775f1ae3128b4083b33c162e572ce2ef438385f5a40145e719331feb60e10e6ad4d0d2c9a9c7f639a7bd53bb01d93b6e23de030b2a22916f275fcaa1fd34e043 0001-buildrepo-parse-APKBUILDs-in-subshell.patch -caea0aad0efbc67b4fe8989d5cc9a07c4d99b4882ec7215fb3c769f2f3f7e0a9ab4ac7f0ebbaced05435a797af03328a146c963b5ade6139a7c8fffad167e1c1 0001-buildrepo-set-REPODEST-when-running-abuild.patch -0d7625621f85fa4798463c83170a6bad4e26521baa99338009e699939fd09897b68334f950ded22e379acb3542a5002af0d47d8beea27d939a4b3a2b8970cfd2 0001-abuild-add-support-for-optional-remote-logging.patch" +md5sums="28b88233f7cece810ed9008647f1b0a2 abuild-2.14.2.tar.bz2" +sha256sums="37192e3dbe148620341925059f57188b0f3635a60c74e5614fb7914741cb7d89 abuild-2.14.2.tar.bz2" +sha512sums="8f9cea29f8d1c8472ef7c4771789b995ce5422ee87f8262aa60c118b7a198b7c7b17c9120e3de98e410f14427fbac020920076a9b387943e638af10859db1648 abuild-2.14.2.tar.bz2" diff --git a/main/abuild/abuild-git.patch b/main/abuild/abuild-git.patch deleted file mode 100644 index ea158f4132..0000000000 --- a/main/abuild/abuild-git.patch +++ /dev/null @@ -1,259 +0,0 @@ -diff --git a/abuild.in b/abuild.in -index 2780d2e..0bf9d47 100755 ---- a/abuild.in -+++ b/abuild.in -@@ -404,6 +404,9 @@ default_unpack() { - for u in $source; do - local s="$SRCDEST/${u##*/}" # $(basename $s) - case "$s" in -+ *.tar) -+ msg "Unpacking $s..." -+ tar -C "$srcdir" -xf "$s" || return 1;; - *.tar.gz|*.tgz) - msg "Unpacking $s..." - tar -C "$srcdir" -zxf "$s" || return 1;; -@@ -772,23 +775,20 @@ EOF - - prepare_tracedeps() { - local dir=${subpkgdir:-$pkgdir} -+ local etype= soname= file= sover= - [ "$arch" = "noarch" ] && return 0 - options_has "!tracedeps" && return 0 -- # lets tell all the .so files this package provides in .provides-so -- find -name '*.so' -o -name '*.so.[0-9]*' | sed 's:.*/::' \ -- >"$controldir"/.provides-so - # lets tell all the places we should look for .so files - all rpaths -- scanelf -q -Rr "$dir" | sed -e 's/[[:space:]].*//' -e 's/:/\n/' \ -- | sort | uniq \ -+ scanelf --quiet --recursive --rpath "$dir" \ -+ | sed -e 's/[[:space:]].*//' -e 's/:/\n/' | sort -u \ - >"$controldir"/.rpaths -- # now find the so dependencies -- scanelf -Rn "$dir" | tr ' ' ':' | awk -F ":" '$1 == "ET_DYN" || $1 == "ET_EXEC" {print $2}' \ -- | sed 's:,:\n:g' | sort | uniq \ -- | while read i; do -- # only add files that are not self provided -- grep "^$i$" "$controldir"/.provides-so >/dev/null \ -- || echo $i >> "$controldir"/.needs-so -- done -+ if grep -q -x '/usr/lib' "$controldir"/.rpaths; then -+ warning "Redundat /usr/lib in rpath found" -+ fi -+ if grep '^/home/' "$controldir"/.rpaths; then -+ error "Has /home/... in rpath" -+ return 1 -+ fi - } - - # check if dir has arch specific binaries -@@ -858,11 +858,15 @@ find_so_files() { - return 0 - } - -+subpkg_provides() { -+ grep -q -w "^$1" "$pkgbasedir"/.control.*/.provides-so 2>/dev/null -+} -+ - trace_apk_deps() { - local name="$1" - local dir="$2" -- local i= j= found= autodeps= deppkgs= missing= so_paths= self_provided= -- msg "Tracing dependencies for $name..." -+ local i= found= autodeps= deppkgs= missing= -+ msg "Tracing dependencies..." - # add pkgconfig if usr/lib/pkgconfig is found - if [ -d "$pkgbasedir"/$name/usr/lib/pkgconfig ] \ - && ! grep -q '^depend = pkgconfig' "$dir"/.PKGINFO; then -@@ -877,18 +881,11 @@ trace_apk_deps() { - msg " added libgcc (due to libpthread)" - fi - [ -f "$dir"/.needs-so ] && for i in $(cat "$dir"/.needs-so); do -- found= -- # first check if its provide by same apkbuild -- for j in "$dir"/../.control.*/.provides-so; do -- grep -w "$i" "$j" >/dev/null || continue -- found=${j%/.provides-so} -- found=${found##*/.control.} -- break -- done -- if [ -n "$found" ]; then -- if ! list_has "$found" $self_provided; then -- self_provided="$self_provided $found" -- fi -+ # first check if its provided by same apkbuild -+ grep -q -w "^$i" "$dir"/.provides-so 2>/dev/null && continue -+ -+ if subpkg_provides "$i" || $APK info -q -e "so:$i"; then -+ autodeps="$autodeps so:$i" - else - missing="$missing $i" - fi -@@ -896,41 +893,131 @@ trace_apk_deps() { - - # find all packages that holds the so files - if [ -f "$dir"/.rpaths ]; then -- so_files=$(find_so_files "$dir"/.rpaths $missing) || return 1 -+ local so_files=$(find_so_files "$dir"/.rpaths $missing) \ -+ || return 1 - deppkgs=$($APK info -q -W $so_files) || return 1 - fi - -- for found in $self_provided $deppkgs; do -+ for found in $deppkgs; do - if grep -w "^depend = ${found}$" "$dir"/.PKGINFO >/dev/null ; then - warning "You can remove '$found' from depends" - continue - fi -- if [ "$found" != "$name" ] && ! list_has "$found" $autodeps; then -- autodeps="$autodeps $found" -- msg " added $found" -- fi -+ autodeps="$autodeps $found" - done - -- [ -z "$autodeps" ] && return 0 - echo "# automatically detected:" >> "$dir"/.PKGINFO -+ if [ -f "$dir"/.provides-so ]; then -+ sed 's/^\(.*\) \([0-9].*\)/provides = so:\1=\2/' "$dir"/.provides-so \ -+ >> "$dir"/.PKGINFO -+ fi -+ [ -z "$autodeps" ] && return 0 - for i in $autodeps; do -- echo "depend = $i" >> "$dir"/.PKGINFO -+ echo "depend = $i" -+ done | sort -u >> "$dir"/.PKGINFO -+ # display all depends -+ sed -n '/^depend =/s/depend = /\t/p' "$dir"/.PKGINFO >&2 -+} -+ -+find_scanelf_paths() { -+ local datadir="$1" -+ local paths="$datadir/lib:$datadir/usr/lib" i= rpaths= -+ if [ -n "$ldpath" ]; then -+ paths="$paths:$(echo "$ldpath" | sed "s|\(^\|:\)|\1$datadir|g")" -+ fi -+ # search in all rpaths -+ for rpaths in "$pkgbasedir"/.control.*/.rpaths; do -+ [ -f "$rpaths" ] || continue -+ while read i; do -+ local dir="${datadir}${i}" -+ IFS=: -+ if [ -d "$dir" ] && ! list_has "$dir" $paths; then -+ paths="$paths:${dir}" -+ fi -+ unset IFS -+ done < "$rpaths" - done -+ echo "$paths" -+} -+ -+scan_shared_objects() { -+ local name="$1" controldir="$2" datadir="$3" -+ local opt= -+ -+ # allow spaces in paths -+ IFS=: -+ set -- $(find_scanelf_paths "$datadir") -+ unset IFS -+ -+ if options_has "ldpath-recursive"; then -+ opt="--recursive" -+ fi -+ msg "Scanning shared objects" -+ # lets tell all the .so files this package provides in .provides-so -+ scanelf --nobanner --soname $opt "$@" | while read etype soname file; do -+ # if soname field is missing, soname will be the filepath -+ sover=0 -+ if [ -z "$file" ]; then -+ file="$soname" -+ soname=${soname##*/} -+ fi -+ -+ # we only want shared libs -+ case $soname in -+ *.so|*.so.[0-9]*);; -+ *) continue;; -+ esac -+ -+ case "$file" in -+ *.so.[0-9]*) sover=${file##*.so.};; -+ *.so) -+ # filter out sonames with version when file does not -+ # have version -+ case "$soname" in -+ *.so.[0-9]*) -+ if options_has "sover-namecheck"; then -+ continue -+ fi -+ esac -+ ;; -+ esac -+ echo "$soname $sover" -+ done | sort -u > "$controldir"/.provides-so -+ -+ # now find the so dependencies -+ scanelf --nobanner --recursive --needed "$datadir" | tr ' ' ':' \ -+ | awk -F ":" '$1 == "ET_DYN" || $1 == "ET_EXEC" {print $2}' \ -+ | sed 's:,:\n:g' | sort -u \ -+ | while read i; do -+ # only add files that are not self provided -+ grep -q -w "^$i" "$controldir"/.provides-so \ -+ || echo $i -+ done > "$controldir"/.needs-so - } - - create_apks() { -- local file -+ local file= dir= name= ver= apk= datadir= - getpkgver || return 1 - mkdir -p "$PKGDEST" -+ if [ "$arch" != "noarch" ] && ! options_has "!tracedeps"; then -+ for file in "$pkgbasedir"/.control.*/.PKGINFO; do -+ dir="${file%/.PKGINFO}" -+ name="$(pkginfo_val pkgname $file)" -+ datadir="$pkgbasedir"/$name -+ subpkgname=$name -+ scan_shared_objects "$name" "$dir" "$datadir" -+ done -+ fi - for file in "$pkgbasedir"/.control.*/.PKGINFO; do -- local dir="${file%/.PKGINFO}" -- local name=$(pkginfo_val pkgname $file) -- local ver=$(pkginfo_val pkgver $file) -- local apk=$name-$ver.apk -- local datadir="$pkgbasedir"/$name -+ dir="${file%/.PKGINFO}" -+ name=$(pkginfo_val pkgname $file) -+ ver=$(pkginfo_val pkgver $file) -+ apk=$name-$ver.apk -+ datadir="$pkgbasedir"/$name -+ subpkgname=$name - - trace_apk_deps "$name" "$dir" || return 1 -- msg "Creating $apk..." -+ msg "Compressing data..." - ( - cd "$datadir" - # data.tar.gz -@@ -941,6 +1028,7 @@ create_apks() { - fi - tar -c "$@" | abuild-tar --hash | gzip -9 >"$dir"/data.tar.gz - -+ msg "Create checksum..." - # append the hash for data.tar.gz - local sha256=$(sha256sum "$dir"/data.tar.gz | cut -f1 -d' ') - echo "datahash = $sha256" >> "$dir"/.PKGINFO -@@ -951,10 +1039,12 @@ create_apks() { - | gzip -9 > control.tar.gz - abuild-sign -q control.tar.gz || exit 1 - -+ msg "Create $apk" - # create the final apk - cat control.tar.gz data.tar.gz > "$PKGDEST"/$apk -- ) -+ ) - done -+ subpkgname= - } - - clean_abuildrepo() { |