diff options
Diffstat (limited to 'system')
37 files changed, 519 insertions, 1393 deletions
diff --git a/system/asciidoctor/APKBUILD b/system/asciidoctor/APKBUILD index 760f82d81..188751c26 100644 --- a/system/asciidoctor/APKBUILD +++ b/system/asciidoctor/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Seung Soo Mun <hamletmun@gmail.com> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=asciidoctor -pkgver=1.5.8 +pkgver=2.0.10 pkgrel=0 pkgdesc="An implementation of AsciiDoc in Ruby" url="https://rubygems.org/gems/$pkgname" @@ -13,7 +13,7 @@ makedepends="" source="https://rubygems.org/downloads/$pkgname-$pkgver.gem" package() { - local gemdir="$(ruby -e 'puts Gem.default_dir')" + gemdir="$(ruby -e 'puts Gem.default_dir')" gem install \ --local \ @@ -26,7 +26,7 @@ package() { rm -rf "$pkgdir"/$gemdir/cache cd "$pkgdir" - local i; for i in usr/lib/ruby/gems/*/bin/*; do + for i in usr/lib/ruby/gems/*/bin/*; do if [ -e "$i" ]; then mkdir -p "$pkgdir"/usr/bin ln -s /$i "$pkgdir"/usr/bin/ @@ -34,4 +34,4 @@ package() { done } -sha512sums="34ff0df98ff9ebb2d3640629870cd848cf2f4b617564a42e7b30b6cf60c01d1188b4cc695af49550e054c9e833accc1ed5d622b4952ece3da99c8ed98af769ac asciidoctor-1.5.8.gem" +sha512sums="41db1947da60be27079eaef99c76ae7a20797f0291313ac82582466774a569130e995c674f7ef884a05d3d3783d70df3d5ef83b42ded1c722dd9ab7b1a3357ab asciidoctor-2.0.10.gem" diff --git a/system/bc/APKBUILD b/system/bc/APKBUILD index aaa5fc26c..99fb584f3 100644 --- a/system/bc/APKBUILD +++ b/system/bc/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=bc -pkgver=2.5.3 +pkgver=2.6.0 pkgrel=0 pkgdesc="An arbitrary precision numeric processing language (calculator)" url="https://github.com/gavinhoward/bc" @@ -25,4 +25,4 @@ package() { make install } -sha512sums="97c0722969c4f2fd907786e0a89f9b403662b1bcdd1aab59418ab3fe140c50584b45eb346008ad94916335418f08433d2634b52b94ae1d7463b665a746f1a608 bc-2.5.3.tar.xz" +sha512sums="809ca124d110bb96ded253fe8799786b48dc5ff8ab540aa97dc8ed43f5a835841d44a71ed082ded17c1df39b6fe5dc2ce7247be0c771b22d7d354aec40434411 bc-2.6.0.tar.xz" diff --git a/system/bison/APKBUILD b/system/bison/APKBUILD index 2c093c6d1..a053dd0b7 100644 --- a/system/bison/APKBUILD +++ b/system/bison/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Łukasz Jendrysik <scadu@yandex.com> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=bison -pkgver=3.4.2 +pkgver=3.5.3 pkgrel=0 pkgdesc="The GNU general-purpose parser generator" arch="all" @@ -9,7 +9,7 @@ arch="all" license="GPL-3.0+" url="https://www.gnu.org/software/bison/bison.html" depends="m4" -checkdepends="bison flex" +checkdepends="bison flex musl-locales" makedepends="perl" provider_priority=1 subpackages="$pkgname-doc $pkgname-lang" @@ -28,7 +28,7 @@ build() { check() { # Work around for Bison 3.4.x test failure - for _calc in {,lex,mf,rec,rp}calc; do + for _calc in calc lexcalc mfcalc reccalc rpcalc; do make -j1 examples/c/$_calc/$_calc done make check @@ -40,4 +40,4 @@ package() { rmdir -p "$pkgdir"/usr/lib 2>/dev/null || true } -sha512sums="00d2b37187b93100ec4b220ce2752d12ccf68f9d0d39b380d375d36dd8a22aa1d6e60156918f95e4493f9531c5d42d8fad38fd807307b491c1ca7ca4177823d9 bison-3.4.2.tar.xz" +sha512sums="888a1e8d4aeda3ff2d7d0a3a88b63bbfe89bdb718cc64d48c244e05fe6c6cd39526fd88143db379fef3071cf6c2dc2ab2fd69834c24acb23ed5f739584ff6308 bison-3.5.3.tar.xz" diff --git a/system/bubblewrap/APKBUILD b/system/bubblewrap/APKBUILD index c4ae4fa31..866bdb468 100644 --- a/system/bubblewrap/APKBUILD +++ b/system/bubblewrap/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Timo Teräs <timo.teras@iki.fi> # Maintainer: Max Rees <maxcrees@me.com> pkgname=bubblewrap -pkgver=0.3.3 +pkgver=0.4.1 pkgrel=0 pkgdesc="Unprivileged sandboxing tool" url="https://github.com/projectatomic/bubblewrap" @@ -9,21 +9,23 @@ arch="all" options="!check suid" # requires suid to already be set in order to check license="LGPL-2.0+" makedepends="autoconf automake libcap-dev docbook-xsl" -checkdepends="sudo" +checkdepends="python3 sudo" subpackages="$pkgname-nosuid $pkgname-doc $pkgname-bash-completion:bashcomp:noarch" -source="bubblewrap-$pkgver.tar.gz::https://github.com/projectatomic/bubblewrap/archive/v$pkgver.tar.gz +source="bubblewrap-$pkgver.tar.gz::https://github.com/containers/bubblewrap/archive/v$pkgver.tar.gz realpath-workaround.patch - musl-fixes.patch - tests.patch" + tests.patch + " # secfixes: # 0.3.3-r0: -# - CVE-2019-12439 +# - CVE-2019-12439 +# 0.4.1-r0: +# - GHSA-j2qp-rvxj-43vj prepare() { - srcdir= NOCONFIGURE=1 ./autogen.sh default_prepare + NOCONFIGURE=1 ./autogen.sh } build() { @@ -39,14 +41,16 @@ build() { } check() { - # Uses sudo to chown root and setuid $builddir/test-bwrap + # 1. chown root and chmod u+s $builddir/test-bwrap + # 2. Run abuild check (suid test) + # 3. Unset permissions on test-bwrap + # 4. Run abuild check again (nosuid test) # - # As of 0.3.3-r0, all tests pass on ppc64 except those relating - # to bind mounts over symlinks. Those tests fail because musl's - # realpath depends on the availability of /proc, which is not - # available in the middle of the setup procedure since pivot_root - # has been performed at least once. They have been patched to be - # skipped. + # As of 0.4.1, all tests pass except those relating to bind mounts + # over symlinks. Those tests fail because musl's realpath depends on + # the availability of /proc, which is not available in the middle of + # the setup procedure since pivot_root has been performed at least + # once. They have been patched to be skipped. make check } @@ -72,7 +76,6 @@ bashcomp() { mv "$pkgdir"/usr/share/bash-completion/ "$subpkgdir"/usr/share/ } -sha512sums="b1c38fad90ddaa23a5f2dd49f9ec3f9d9af7426af321ae9f7c43dd64f11a448b3502942a42112a1c6ebf8a4dea2e1196b17c31cca9c2f119dc2e0c1674c345ae bubblewrap-0.3.3.tar.gz +sha512sums="83e036e242503e1364b2d0052bba5127175891203c57bd22ba47a1b1e934fdca64ca620cd0e48c903fa2bc7cdcf92339b8a7fcb8716b54c2e28034b6d6f86adc bubblewrap-0.4.1.tar.gz 400a0446670ebf80f16739f1a7a2878aadc3099424f957ba09ec3df780506c23a11368f0578c9e352d7ca6473fa713df826fad7a20c50338aa5f9fa9ac6b84a4 realpath-workaround.patch -f59cda3b09dd99db9ca6d97099a15bb2523e054063d677502317ae3165ba2e32105a0ae8f877afc3827bd28d093c9d9d413270f4c87d9fe5f26f3eee670d916e musl-fixes.patch d572a6296729ab192dd4f04707e0271df600d565897ce089b7f00b9ae6c62e71a087e864b4c4972e0a64aeb222a337ff4ed95560620c200cc44534db1ca79efd tests.patch" diff --git a/system/bubblewrap/musl-fixes.patch b/system/bubblewrap/musl-fixes.patch deleted file mode 100644 index ecf626331..000000000 --- a/system/bubblewrap/musl-fixes.patch +++ /dev/null @@ -1,17 +0,0 @@ ---- a/config.h.in -+++ b/config.h.in -@@ -102,3 +102,14 @@ - - /* Define to 1 if you need to in order for `stat' and other things to work. */ - #undef _POSIX_SOURCE -+ -+/* taken from glibc unistd.h and fixes musl */ -+#ifndef TEMP_FAILURE_RETRY -+#define TEMP_FAILURE_RETRY(expression) \ -+ (__extension__ \ -+ ({ long int __result; \ -+ do __result = (long int) (expression); \ -+ while (__result == -1L && errno == EINTR); \ -+ __result; })) -+#endif -+ diff --git a/system/check/APKBUILD b/system/check/APKBUILD index 0cba779fa..7c07b68df 100644 --- a/system/check/APKBUILD +++ b/system/check/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Fabian Affolter <fabian@affolter-engineering.ch> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=check -pkgver=0.13.0 +pkgver=0.14.0 pkgrel=0 pkgdesc="A unit test framework for C" url="https://libcheck.github.io/check/" @@ -32,4 +32,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="9e3a3b4b2e1aae02f6481a3d944a5a9216c1f03d85a2bbd63c05d047095fe16b78e5c4094b464fe531650daba24c58d7343f7ec059ce0e127e9aff1ff86213d0 check-0.13.0.tar.gz" +sha512sums="07fc85b5eecffeb407f554c0cb737126ed6d68ba0db3d74c14697505f2b410496ff72311f08bbf43d7af1c971f0475e776966e320bfb3fe00cde1ecbe1d6f367 check-0.14.0.tar.gz" diff --git a/system/console-setup/APKBUILD b/system/console-setup/APKBUILD index 3a49f1c50..b1e1b4c76 100644 --- a/system/console-setup/APKBUILD +++ b/system/console-setup/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=console-setup -pkgver=1.194 +pkgver=1.195 pkgrel=0 pkgdesc="Tools for configuring the console using X Window System key maps" url="https://salsa.debian.org/installer-team/console-setup" @@ -15,6 +15,7 @@ subpackages="$pkgname-doc console-fonts:fonts console-keymaps:keymaps source="http://ftp.de.debian.org/debian/pool/main/c/$pkgname/${pkgname}_$pkgver.tar.xz console-setup.initd " +builddir="$srcdir/$pkgname" build() { make build-linux @@ -44,5 +45,5 @@ ckbcomp() { mv "$pkgdir"/usr/bin/ckbcomp "$subpkgdir"/usr/bin/ } -sha512sums="fe71480b45e8c88c9e46264f734d0eb21023a6afedfa6412551bb40f7525f14823befe726efc37f152a36d9a8de3aba00cd41f9fe42bcea2780c5cf8764a6b80 console-setup_1.194.tar.xz +sha512sums="f9ee8df45cfb78dea12b1ba3020e32f245dd940bc1d22801849f673f4448853c0ebadb6944a92b462e3e56c59ee13fd6d2130c260a1a406e1bb1c72e9902c04d console-setup_1.195.tar.xz 3b8e2c9d8551f9a51bcd33e58771a4f55ff2840f8fe392e0070bd2b6a3911cd9ed9377873538f6904fd99836ac4e0280c712be69d275aae9183dd12ff7efddae console-setup.initd" diff --git a/system/coreutils/APKBUILD b/system/coreutils/APKBUILD index 23d96edbd..71c10cca4 100644 --- a/system/coreutils/APKBUILD +++ b/system/coreutils/APKBUILD @@ -2,8 +2,8 @@ # Contributor: Michael Mason <ms13sp@gmail.com> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=coreutils -pkgver=8.31 -pkgrel=4 +pkgver=8.32 +pkgrel=0 pkgdesc="Basic file, shell, and text manipulation utilities" url="https://www.gnu.org/software/coreutils/" arch="all" @@ -15,12 +15,13 @@ subpackages="$pkgname-doc" [ "${CBUILD}" = "${CHOST}" ] && subpackages="$subpackages $pkgname-lang" install="$pkgname.post-deinstall" source="https://ftp.gnu.org/gnu/coreutils/$pkgname-$pkgver.tar.xz - date-debug.patch + cp-dont-delete.patch disable-csplit-io-err-test.patch disable-mbrtowc-test.patch gnulib-tests-dont-require-gpg-passphrase.patch gnulib-test-fixes.patch localename-test-fix.patch + ls-removed-dirs.patch test-df-symlink-bindmount.patch " [ "${CBUILD}" != "${CHOST}" ] && source="$source @@ -68,13 +69,14 @@ package() { done } -sha512sums="ef8941dae845bbf5ae5838bc49e44554a766302930601aada6fa594e8088f0fbad74e481ee392ff89633e68b99e4da3f761fcb5d31ee3b233d540fe2a2d4e1af coreutils-8.31.tar.xz +sha512sums="1c8f3584efd61b4b02e7ac5db8e103b63cfb2063432caaf1e64cb2dcc56d8c657d1133bbf10bd41468d6a1f31142e6caa81d16ae68fa3e6e84075c253613a145 coreutils-8.32.tar.xz +96eecaaea757c0a39136733b6b5a9d97b869c50aa41d2052a293544a59a959de7dfa0412f5613e52ff946da42df5b50403b30c88c0a1a882690219fd4ee2efa9 cp-dont-delete.patch bd8b5cecba59eba30458c8afa895877d39a987b989bc06b70cd6836e0ef684677aaadcb4949b58a713779fe1df1e15e3903e9be14e306671b86b69018b75de8b disable-csplit-io-err-test.patch -532ef8210261437855ba3e2fc72ec57b0e0252b2b0f7817990c9629613ece2cdd86cf30aa049f3cff6fbda12ed3bb9a0db3a3642475378ae44ce319bdf005d9b disable-mbrtowc-test.patch -86944e9ea5493c5b21ab62562a63aa134952738297b21cfb2e8f751db4a695ff25ee1592eb231ed1bb80999bc31f7504c7feffde2e93b4e068c05c44ac83cbdf localename-test-fix.patch +595be7f580f8906467624959c7eddbd6d7007571d92668b6a1ea5543b73764035b44b02ab5f352c67ec6562a368f220af445edd0a0965fb9826bccfd25ddbdba disable-mbrtowc-test.patch fd97fccd661befc558b3afb3e32c82dd2cef511a05e6129d49540599297c1b59ab1f109e63a12f585a2348c26c28fb98330c348829d1fe61cf8149d0dd1c989c gnulib-tests-dont-require-gpg-passphrase.patch 08f6de0e4c1615503a276fb7eb8abb3f1a996d3e9e4c789deb1507e9ac66364e3993591e37ee444d239c64bf3b7d61f909c0da5ead3047b75623cd846e9f868f gnulib-test-fixes.patch -aac3a89b27a7854fbf483e155df9133c3d33a0f36bd55d5606559a7781f9d27d5c17779ea427142311749252767097bf92ec22d4cf86b510568c186da84ff16c date-debug.patch +b1509e5678a05f24d6e764c047546e5e34a7fbd5edb59c7debedb144a0096d8ac247c7e2722a5f68c90751e5280bec743c9a6ed3e1433c1916294d68d7bca109 localename-test-fix.patch +c7e7a03ed074d74fa836eaa6372d170b50d5719914160d9a835db25fb958e1fcfa4530231abd8f9b2323958a510750a8a5f65a5cea56555fa8a39dd8abd6e8cc ls-removed-dirs.patch 0b90b7721dd01bd22eba50f73bc756930dd4a8bc78ec408ce7f155a02b520375023897b9d12872030735d908208b912ea7adfac9e8b4d055e617873d982eef56 test-df-symlink-bindmount.patch" [ "${CBUILD}" != "${CHOST}" ] && sha512sums=" bae804f057252c25452ac178c545dc2c4b4775cbfbdcfd4775edd1a4ed6507882bfac39e2b11ad01b74230ca48d761bf62f11bde5bcbc35a6e5a61cbe4a46e36 051_all_coreutils-mangen.patch diff --git a/system/coreutils/cp-dont-delete.patch b/system/coreutils/cp-dont-delete.patch new file mode 100644 index 000000000..a60608952 --- /dev/null +++ b/system/coreutils/cp-dont-delete.patch @@ -0,0 +1,72 @@ +From 7b5f0fa47cd04c84975250d5b5da7c98e097e99f Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?P=C3=A1draig=20Brady?= <P@draigBrady.com> +Date: Wed, 1 Apr 2020 12:51:34 +0100 +Subject: cp: ensure --attributes-only doesn't remove files + +* src/copy.c (copy_internal): Ensure we don't unlink the destination +unless explicitly requested. +* tests/cp/attr-existing.sh: Add test cases. +Fixes https://bugs.gnu.org/40352 +--- + NEWS | 7 +++++++ + src/copy.c | 9 +++++---- + tests/cp/attr-existing.sh | 21 ++++++++++++++++++--- + 3 files changed, 30 insertions(+), 7 deletions(-) + +diff --git a/src/copy.c b/src/copy.c +index 6e5efc708..54601ce07 100644 +--- a/src/copy.c ++++ b/src/copy.c +@@ -2211,10 +2211,11 @@ copy_internal (char const *src_name, char const *dst_name, + /* Never unlink dst_name when in move mode. */ + && ! x->move_mode + && (x->unlink_dest_before_opening +- || (x->preserve_links && 1 < dst_sb.st_nlink) +- || (x->dereference == DEREF_NEVER +- && ! S_ISREG (src_sb.st_mode)) +- )) ++ || (x->data_copy_required ++ && ((x->preserve_links && 1 < dst_sb.st_nlink) ++ || (x->dereference == DEREF_NEVER ++ && ! S_ISREG (src_sb.st_mode)))) ++ )) + { + if (unlink (dst_name) != 0 && errno != ENOENT) + { +diff --git a/tests/cp/attr-existing.sh b/tests/cp/attr-existing.sh +index 59ce64183..14fc8445c 100755 +--- a/tests/cp/attr-existing.sh ++++ b/tests/cp/attr-existing.sh +@@ -19,11 +19,26 @@ + . "${srcdir=.}/tests/init.sh"; path_prepend_ ./src + print_ver_ cp + +-printf '1' > file1 +-printf '2' > file2 +-printf '2' > file2.exp ++printf '1' > file1 || framework_failure_ ++printf '2' > file2 || framework_failure_ ++printf '2' > file2.exp || framework_failure_ + + cp --attributes-only file1 file2 || fail=1 + cmp file2 file2.exp || fail=1 + ++# coreutils v8.32 and before would remove destination files ++# if hardlinked or the source was not a regular file. ++ln file2 link2 || framework_failure_ ++cp -a --attributes-only file1 file2 || fail=1 ++cmp file2 file2.exp || fail=1 ++ ++ln -s file1 sym1 || framework_failure_ ++returns_ 1 cp -a --attributes-only sym1 file2 || fail=1 ++cmp file2 file2.exp || fail=1 ++ ++# One can still force removal though ++cp -a --remove-destination --attributes-only sym1 file2 || fail=1 ++test -L file2 || fail=1 ++cmp file1 file2 || fail=1 ++ + Exit $fail +-- +cgit v1.2.1 + diff --git a/system/coreutils/date-debug.patch b/system/coreutils/date-debug.patch deleted file mode 100644 index fc4977e72..000000000 --- a/system/coreutils/date-debug.patch +++ /dev/null @@ -1,56 +0,0 @@ ->From 402c3646e19c199130e7a6db5238cf5908e51fb8 Mon Sep 17 00:00:00 2001 -From: Assaf Gordon <assafgordon@gmail.com> -Date: Mon, 13 May 2019 16:37:40 -0600 -Subject: [PATCH] tests: avoid false-positive in date-debug test -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -When debugging an invalid date due to DST switching, the intermediate -'normalized time' should not be checked - its value can differ between -systems (e.g. glibc vs musl). - -Reported by Niklas Hambüchen in -https://lists.gnu.org/r/coreutils/2019-05/msg00031.html -Analyzed by Rich Felker in -https://lists.gnu.org/r/coreutils/2019-05/msg00039.html - -* tests/misc/date-debug.sh: Replace the exact normalized time -with 'XX:XX:XX' so different values would not trigger test failure. ---- - tests/misc/date-debug.sh | 11 +++++++++-- - 1 file changed, 9 insertions(+), 2 deletions(-) - -diff --git a/tests/misc/date-debug.sh b/tests/misc/date-debug.sh -index aa47f1abb..2ce6f4ce8 100755 ---- a/tests/misc/date-debug.sh -+++ b/tests/misc/date-debug.sh -@@ -71,7 +71,7 @@ date: input timezone: TZ="America/Edmonton" in date string - date: using specified time as starting value: '02:30:00' - date: error: invalid date/time value: - date: user provided time: '(Y-M-D) 2006-04-02 02:30:00' --date: normalized time: '(Y-M-D) 2006-04-02 03:30:00' -+date: normalized time: '(Y-M-D) 2006-04-02 XX:XX:XX' - date: -- - date: possible reasons: - date: non-existing due to daylight-saving time; -@@ -81,7 +81,14 @@ date: invalid date 'TZ="America/Edmonton" 2006-04-02 02:30:00' - EOF - - # date should return 1 (error) for invalid date --returns_ 1 date --debug -d "$in2" >out2 2>&1 || fail=1 -+returns_ 1 date --debug -d "$in2" >out2-t 2>&1 || fail=1 -+ -+# The output line of "normalized time" can differ between systems -+# (e.g. glibc vs musl) and should not be checked. -+# See: https://lists.gnu.org/archive/html/coreutils/2019-05/msg00039.html -+sed '/normalized time:/s/ [0-9][0-9]:[0-9][0-9]:[0-9][0-9]/ XX:XX:XX/' \ -+ out2-t > out2 || framework_failure_ -+ - compare exp2 out2 || fail=1 - - ## --- -2.11.0 - - diff --git a/system/coreutils/disable-mbrtowc-test.patch b/system/coreutils/disable-mbrtowc-test.patch index d338e0324..fb595df0e 100644 --- a/system/coreutils/disable-mbrtowc-test.patch +++ b/system/coreutils/disable-mbrtowc-test.patch @@ -4,7 +4,7 @@ #!/bin/sh -# Test whether the POSIX locale has encoding errors. -LC_ALL=C \ --./test-mbrtowc${EXEEXT} 5 || exit +-${CHECKER} ./test-mbrtowc${EXEEXT} 5 || exit -LC_ALL=POSIX \ --./test-mbrtowc${EXEEXT} 5 +-${CHECKER} ./test-mbrtowc${EXEEXT} 5 +exit 77 diff --git a/system/coreutils/localename-test-fix.patch b/system/coreutils/localename-test-fix.patch index ff89319c7..17aaa226f 100644 --- a/system/coreutils/localename-test-fix.patch +++ b/system/coreutils/localename-test-fix.patch @@ -8,7 +8,7 @@ # if !defined IN_LIBINTL --- coreutils-8.27/gnulib-tests/localename.c.old 2016-12-31 13:54:43.000000000 +0000 +++ coreutils-8.27/gnulib-tests/localename.c 2017-07-30 16:40:47.098541270 +0000 -@@ -2692,16 +2692,19 @@ +@@ -3111,16 +3111,19 @@ locale_t thread_locale = uselocale (NULL); if (thread_locale != LC_GLOBAL_LOCALE) { diff --git a/system/coreutils/ls-removed-dirs.patch b/system/coreutils/ls-removed-dirs.patch new file mode 100644 index 000000000..59808345c --- /dev/null +++ b/system/coreutils/ls-removed-dirs.patch @@ -0,0 +1,99 @@ +From 10fcb97bd728f09d4a027eddf8ad2900f0819b0a Mon Sep 17 00:00:00 2001 +From: Paul Eggert <eggert@cs.ucla.edu> +Date: Thu, 5 Mar 2020 17:25:29 -0800 +Subject: ls: restore 8.31 behavior on removed directories + +* src/ls.c: Do not include <sys/sycall.h> +(print_dir): Don't worry about whether the directory is removed. +* tests/ls/removed-directory.sh: Adjust to match new (i.e., old) +behavior. +--- + NEWS | 6 ++++++ + src/ls.c | 22 ---------------------- + tests/ls/removed-directory.sh | 10 ++-------- + 3 files changed, 8 insertions(+), 30 deletions(-) + +diff --git a/src/ls.c b/src/ls.c +index 24b983287..4acf5f44d 100644 +--- a/src/ls.c ++++ b/src/ls.c +@@ -49,10 +49,6 @@ + # include <sys/ptem.h> + #endif + +-#ifdef __linux__ +-# include <sys/syscall.h> +-#endif +- + #include <stdio.h> + #include <assert.h> + #include <setjmp.h> +@@ -2896,7 +2892,6 @@ print_dir (char const *name, char const *realname, bool command_line_arg) + struct dirent *next; + uintmax_t total_blocks = 0; + static bool first = true; +- bool found_any_entries = false; + + errno = 0; + dirp = opendir (name); +@@ -2972,7 +2967,6 @@ print_dir (char const *name, char const *realname, bool command_line_arg) + next = readdir (dirp); + if (next) + { +- found_any_entries = true; + if (! file_ignored (next->d_name)) + { + enum filetype type = unknown; +@@ -3018,22 +3012,6 @@ print_dir (char const *name, char const *realname, bool command_line_arg) + if (errno != EOVERFLOW) + break; + } +-#ifdef __linux__ +- else if (! found_any_entries) +- { +- /* If readdir finds no directory entries at all, not even "." or +- "..", then double check that the directory exists. */ +- if (syscall (SYS_getdents, dirfd (dirp), NULL, 0) == -1 +- && errno != EINVAL) +- { +- /* We exclude EINVAL as that pertains to buffer handling, +- and we've passed NULL as the buffer for simplicity. +- ENOENT is returned if appropriate before buffer handling. */ +- file_failure (command_line_arg, _("reading directory %s"), name); +- } +- break; +- } +-#endif + else + break; + +diff --git a/tests/ls/removed-directory.sh b/tests/ls/removed-directory.sh +index e8c835dab..fe8f929a1 100755 +--- a/tests/ls/removed-directory.sh ++++ b/tests/ls/removed-directory.sh +@@ -26,20 +26,14 @@ case $host_triplet in + *) skip_ 'non linux kernel' ;; + esac + +-LS_FAILURE=2 +- +-cat <<\EOF >exp-err || framework_failure_ +-ls: reading directory '.': No such file or directory +-EOF +- + cwd=$(pwd) + mkdir d || framework_failure_ + cd d || framework_failure_ + rmdir ../d || framework_failure_ + +-returns_ $LS_FAILURE ls >../out 2>../err || fail=1 ++ls >../out 2>../err || fail=1 + cd "$cwd" || framework_failure_ + compare /dev/null out || fail=1 +-compare exp-err err || fail=1 ++compare /dev/null err || fail=1 + + Exit $fail +-- +cgit v1.2.1 + diff --git a/system/e2fsprogs/APKBUILD b/system/e2fsprogs/APKBUILD index c72ff8c63..6ecbc37f4 100644 --- a/system/e2fsprogs/APKBUILD +++ b/system/e2fsprogs/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Valery Kartel <valery.kartel@gmail.com> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=e2fsprogs -pkgver=1.45.5 +pkgver=1.45.6 pkgrel=0 pkgdesc="Ext2/3/4 filesystem utilities" url="http://e2fsprogs.sourceforge.net" @@ -59,6 +59,6 @@ libcom_err() { mv "$pkgdir"/lib/libcom_err* "$subpkgdir"/lib/ } -sha512sums="d1a8611b525742387061f390fb24825dfa175997cc7db05decea913fcc7b97a95a3e787091f2920d4a7d4eb1d813568af734a1610229ead09bcbf9f3e262e4ce e2fsprogs-1.45.5.tar.xz +sha512sums="f3abfb6fe7ef632bb81152e2127d601cadd3fa93162178576a1d5ed82c2286627184b207b85a5b2a1793db0addf0885dfc3b9523bb340443224caf9c6d613b84 e2fsprogs-1.45.6.tar.xz 34ca45c64a132bb4b507cd4ffb763c6d1b7979eccfed20f63417e514871b47639d32f2a3ecff090713c21a0f02ac503d5093960c80401d64081c592d01af279d header-fix.patch 5f8ff2f096da4b445edff72dfa03f27dd8bf5b6733e724205f5661e32fd0bae92849a1aa53e20c6b60c026dc5ed68567b7866fade1ecd0187718509f03fe9145 time64.patch" diff --git a/system/gettext-tiny/APKBUILD b/system/gettext-tiny/APKBUILD index ce62d5c99..a1d199ecd 100644 --- a/system/gettext-tiny/APKBUILD +++ b/system/gettext-tiny/APKBUILD @@ -2,7 +2,7 @@ # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=gettext-tiny pkgver=0.3.1_git20191130 -pkgrel=2 +pkgrel=3 pkgdesc="An internationalisation and localisation system" url="https://github.com/sabotage-linux/gettext-tiny" arch="all" @@ -16,6 +16,7 @@ source="https://distfiles.adelielinux.org/source/$pkgname-$pkgver.tar.xz line-length.patch respect-cflags.patch stop-doing-macro-crap.patch + msgfmt-exit.patch " build() { @@ -30,4 +31,5 @@ sha512sums="a318135626a0403a30a81fa475f7e1878b8af5a87053b0e00876c73b591508f3cf1e 8efbf9c11429ab26f3c15e00c34258200598833b8f846a23e4c8d95023c2184d9dcf9cbb48d58eec1604442691af76e6f8e904ad7348016c393257aa30eae7cd keyword.patch 0a26a8481bffe2ce8c73f7f500963aea9db8379fb87849142d8efabf1656604b22f6ad345483256f14c388466f2f44e5924b9f65d88f26867a753a96d1529270 line-length.patch b4e7db4e415f6bc31f2214f2044506ad18ea0bd3cae4200d93bbd34aa493c7478a7f953d0a7e08f29f0fd5a5d7b7cbfa2bcfd5692c37e423706a1c193239bf1d respect-cflags.patch -cd4cfc8cc6ea998f1e33ef666e3b9c3de3f3253994bccc942b177773c94f785e3892cb7d5f34bec1102dc7558236c07c5eac90e15d755e12ee06836336373526 stop-doing-macro-crap.patch" +cd4cfc8cc6ea998f1e33ef666e3b9c3de3f3253994bccc942b177773c94f785e3892cb7d5f34bec1102dc7558236c07c5eac90e15d755e12ee06836336373526 stop-doing-macro-crap.patch +0037a1347f9ac2aa6f68160441b83c35ce8128ca140be93f3c508e6cd02161e49edff82034877ed11c127886337455ff4ea941b6a14168c2ca69aa82a7cff8a5 msgfmt-exit.patch" diff --git a/system/gettext-tiny/msgfmt-exit.patch b/system/gettext-tiny/msgfmt-exit.patch new file mode 100644 index 000000000..f5ff3fbb8 --- /dev/null +++ b/system/gettext-tiny/msgfmt-exit.patch @@ -0,0 +1,36 @@ +From 0e62c2588742cfffd3dc81c09ecc8488c0ce25b9 Mon Sep 17 00:00:00 2001 +From: Max Rees <maxcrees@me.com> +Date: Sun, 22 Mar 2020 20:20:15 -0500 +Subject: [PATCH] msgfmt: exit(1) if incorrectly used + +This prevents builds from continuing seemingly fine when they are +actually not using this version of msgfmt correctly. +--- + src/msgfmt.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/msgfmt.c b/src/msgfmt.c +index aa16c5e..3de9a56 100644 +--- a/src/msgfmt.c ++++ b/src/msgfmt.c +@@ -278,7 +278,7 @@ void set_file(int out, char* fn, FILE** dest) { + int main(int argc, char**argv) { + if (argc == 1) { + syntax(); +- return 0; ++ return 1; + } + + int arg = 1; +@@ -376,7 +376,7 @@ int main(int argc, char**argv) { + streq(A+1, "D") + ) { + syntax(); +- return 0; ++ return 1; + } else if (streq(A+1, "l")) { + arg++; + locale = A; +-- +2.25.1 + diff --git a/system/git/APKBUILD b/system/git/APKBUILD index 45d7b033b..8e9a1373d 100644 --- a/system/git/APKBUILD +++ b/system/git/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Łukasz Jendrysik <scadu@yandex.com> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=git -pkgver=2.25.1 +pkgver=2.25.3 pkgrel=0 pkgdesc="Distributed version control system" url="https://www.git-scm.com/" @@ -33,20 +33,22 @@ source="https://www.kernel.org/pub/software/scm/git/git-$pkgver.tar.xz _gitcoredir=/usr/libexec/git-core # secfixes: -# 2.24.1: -# - CVE-2019-1348 -# - CVE-2019-1349 -# - CVE-2019-1350 -# - CVE-2019-1351 -# - CVE-2019-1352 -# - CVE-2019-1353 -# - CVE-2019-1354 -# - CVE-2019-1387 -# - CVE-2019-19604 -# 2.19.2: -# - CVE-2018-19486 -# 2.14.1: -# - CVE-2017-1000117 +# 2.25.3-r0: +# - CVE-2020-5260 +# 2.24.1-r0: +# - CVE-2019-1348 +# - CVE-2019-1349 +# - CVE-2019-1350 +# - CVE-2019-1351 +# - CVE-2019-1352 +# - CVE-2019-1353 +# - CVE-2019-1354 +# - CVE-2019-1387 +# - CVE-2019-19604 +# 2.19.2-r0: +# - CVE-2018-19486 +# 2.14.1-r0: +# - CVE-2017-1000117 prepare() { default_prepare @@ -173,7 +175,7 @@ subtree_doc() { gzip -9 "$subpkgdir"/usr/share/man/man1/git-subtree.1 } -sha512sums="15241143acfd8542d85d2709ac3c80dbd6e8d5234438f70c4f33cc71a2bdec3e32938df7f6351e2746d570b021d3bd0b70474ea4beec0c51d1fc45f9c287b344 git-2.25.1.tar.xz +sha512sums="1ea2f0727baa29200f33469463c3b6db04a2e228e83ff552faa47fefe31063d92966d7502b2f13546c36cfc2756d42d71a26e41141c0fb972af9d6760f3aa471 git-2.25.3.tar.xz 0a0935d876024d96156df3aeec06b47fd9e370484d4552786c450cb500ae671a631e64c30994ec39f43a2f313f75d68909688ea92b47327d1af65e365dc77480 dont-test-other-encodings.patch 89528cdd14c51fd568aa61cf6c5eae08ea0844e59f9af9292da5fc6c268261f4166017d002d494400945e248df6b844e2f9f9cd2d9345d516983f5a110e4c42a git-daemon.initd fbf1f425206a76e2a8f82342537ed939ff7e623d644c086ca2ced5f69b36734695f9f80ebda1728f75a94d6cd2fcb71bf845b64239368caab418e4d368c141ec git-daemon.confd" diff --git a/system/help2man/APKBUILD b/system/help2man/APKBUILD index 822ae754e..0bb2530e1 100644 --- a/system/help2man/APKBUILD +++ b/system/help2man/APKBUILD @@ -1,6 +1,6 @@ # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=help2man -pkgver=1.47.12 +pkgver=1.47.13 pkgrel=0 pkgdesc="Create simple man pages from --help output" url="https://www.gnu.org/software/help2man" @@ -28,4 +28,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="fb71e48e4a7a0f4316148295ea539b667a131149f4467da0f3e283389c9d9f2a5f1e9124ca8d64d6c3250d332a713d4e8de204ca9e7088840e74f316fa5221be help2man-1.47.12.tar.xz" +sha512sums="7bf4c75a42c103dd8413a94505f383c6e2b215f9a4cc506e11935acc7f108caad01a5fa489ee157ebef5fa02299145592f65cc828fc016417af557382975d57a help2man-1.47.13.tar.xz" diff --git a/system/kmod/APKBUILD b/system/kmod/APKBUILD index 748d26def..ad3396c8e 100644 --- a/system/kmod/APKBUILD +++ b/system/kmod/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Natanael Copa <ncopa@alpinelinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kmod -pkgver=26 +pkgver=27 pkgrel=0 pkgdesc="Linux kernel module management utilities" url="https://git.kernel.org/?p=utils/kernel/kmod/kmod.git;a=summary" @@ -10,7 +10,7 @@ options="!check" # https://bugs.gentoo.org/408915#c3 license="GPL-2.0+" depends="" makedepends_build="libxslt" -makedepends_host="zlib-dev xz-dev" +makedepends_host="openssl-dev zlib-dev xz-dev" makedepends="$makedepends_build $makedepends_host" triggers="$pkgname.trigger=/lib/modules/*" subpackages="$pkgname-dev $pkgname-doc $pkgname-openrc @@ -29,13 +29,13 @@ build() { --sysconfdir=/etc \ --with-rootlibdir=/lib \ --with-zlib \ - --with-xz + --with-xz \ + --with-openssl make } package() { make DESTDIR="$pkgdir" install - local i mkdir -p "$pkgdir"/sbin for i in lsmod rmmod insmod modinfo modprobe depmod; do ln -sf ../bin/kmod "$pkgdir"/sbin/$i @@ -57,6 +57,6 @@ bashcomp() { } -sha512sums="3ca276c6fc13c2dd2220ec528b8dc4ab4edee5d2b22e16b6f945c552e51f74342c01c33a53740e6af8c893d42bd4d6f629cd8fa6e15ef8bd8da30cb003ef0865 kmod-26.tar.xz +sha512sums="e0513094935333fca1fb4c3e3493b232507a579ab00a6457cc9ed3e928363d05aad80634fb65a8287a336bf9895194c7be8ddc41bb088a6c2cca44fc1bfbdb6c kmod-27.tar.xz f2ea3527bfba182c5e15557c224a5bba8c7e2ea3d21cf604e6eb2277226dcf983c3aeb9ac44a322c7f2b4942b35135da999d63a5b946b829d3f3b09c050a0f17 strndupa.patch 7f0f89fe98167f71b7924f341ba701d001158225463c2f5e39f706a0224b1e952ee901b441f28cb15787563e83bb6e54eb752bf8669ae7c0ffbb11984542f354 kmod-static-nodes.initd" diff --git a/system/libucontext/APKBUILD b/system/libucontext/APKBUILD index 93bc2b252..78b079435 100644 --- a/system/libucontext/APKBUILD +++ b/system/libucontext/APKBUILD @@ -1,17 +1,20 @@ # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=libucontext -pkgver=0.9.0 +pkgver=0.10 pkgrel=0 pkgdesc="Implementation of software-defined threading" -url="https://code.foxkit.us/adelie/libucontext/" +url=" " arch="all" license="ISC" depends="" makedepends="" subpackages="$pkgname-dev" -source="https://distfiles.adelielinux.org/source/libucontext/libucontext-$pkgver.tar.xz" +source="https://distfiles.dereferenced.org/libucontext/libucontext-$pkgver.tar.xz + git.patch + " case "$CTARGET_ARCH" in +aarch64_be) LIBUCONTEXT_ARCH="aarch64" ;; arm*) LIBUCONTEXT_ARCH="arm" ;; ppc64le) LIBUCONTEXT_ARCH="ppc64" ;; pmmx) LIBUCONTEXT_ARCH="x86" ;; @@ -30,4 +33,5 @@ package() { make ARCH="$LIBUCONTEXT_ARCH" DESTDIR="$pkgdir" install } -sha512sums="47ffa743e0b364d7a5d5ae633f89e83a7e3bbdf62a8a703a06a522c08b187b785548e8b8d58d53fc4fd984575f086794e74c12d40075326c6e88024e841550b6 libucontext-0.9.0.tar.xz" +sha512sums="ef04485f66edd94711a15681953aed12652ea3821036e6a5b10d1ba3c0371ffabd689c85ee2403bc6a94544932e64855d8f5412f46b50d8b5a934f70a771fcb1 libucontext-0.10.tar.xz +f3f5da2f76302fb3aeba8cca6e3485f264714ad12160e83ef92785a5f2a318cb4cea88e350df71dd6c976d075525361f36e67467ffb82b30fed6acee11be8095 git.patch" diff --git a/system/libucontext/git.patch b/system/libucontext/git.patch new file mode 100644 index 000000000..d42ee0803 --- /dev/null +++ b/system/libucontext/git.patch @@ -0,0 +1,115 @@ +From d7688a41df4cbe51e52bfebbab7d411548ed7738 Mon Sep 17 00:00:00 2001 +From: "A. Wilcox" <AWilcox@Wilcox-Tech.com> +Date: Mon, 30 Mar 2020 02:22:43 -0500 +Subject: [PATCH 1/3] README: Remove support section + +This is no longer a member of the gcompat family of projects; +remove the mention of that and the gcompat mailing list link. +--- + README.md | 5 ----- + 1 file changed, 5 deletions(-) + +diff --git a/README.md b/README.md +index 97a03b6..1db0516 100644 +--- a/README.md ++++ b/README.md +@@ -38,8 +38,3 @@ $ make ARCH=x86_64 check + $ make ARCH=x86_64 DESTDIR=out install + ``` + +- +-## support +- +-`libucontext` is offered as part of the `gcompat` project. Accordingly, please address all questions +-and bug reports to gcompat@lists.adelielinux.org. + +From e2178de76a7d3f41fed7cc5bef3e68eea623a72a Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Mon, 30 Mar 2020 08:21:20 +0000 +Subject: [PATCH 2/3] Makefile: Add LIBDIR variable + +This ensures that it can be installed into custom location and also + +Upstream-Status: Submitted +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + Makefile | 11 ++++++----- + 1 file changed, 6 insertions(+), 5 deletions(-) + +diff --git a/Makefile b/Makefile +index a8dedc2..74ebdbf 100644 +--- a/Makefile ++++ b/Makefile +@@ -3,6 +3,7 @@ ifeq ($(ARCH),$(filter $(ARCH),i386 i686)) + override ARCH = x86 + endif + ++LIBDIR := /lib + CFLAGS = -ggdb3 -O2 -Wall -Iarch/${ARCH} -Iarch/common + + LIBUCONTEXT_C_SRC = $(wildcard arch/${ARCH}/*.c) +@@ -13,8 +14,8 @@ LIBUCONTEXT_SOVERSION = 0 + LIBUCONTEXT_NAME = libucontext.so + LIBUCONTEXT_STATIC_NAME = libucontext.a + LIBUCONTEXT_SONAME = libucontext.so.${LIBUCONTEXT_SOVERSION} +-LIBUCONTEXT_PATH = /lib/${LIBUCONTEXT_SONAME} +-LIBUCONTEXT_STATIC_PATH = /lib/${LIBUCONTEXT_STATIC_NAME} ++LIBUCONTEXT_PATH = ${LIBDIR}/${LIBUCONTEXT_SONAME} ++LIBUCONTEXT_STATIC_PATH = ${LIBDIR}/${LIBUCONTEXT_STATIC_NAME} + + all: ${LIBUCONTEXT_SONAME} ${LIBUCONTEXT_STATIC_NAME} + +@@ -39,9 +40,9 @@ clean: + ${LIBUCONTEXT_OBJ} test_libucontext + + install: all +- install -D -m755 ${LIBUCONTEXT_NAME} ${DESTDIR}/${LIBUCONTEXT_PATH} +- install -D -m664 ${LIBUCONTEXT_STATIC_NAME} ${DESTDIR}/${LIBUCONTEXT_STATIC_PATH} +- ln -sf ${LIBUCONTEXT_SONAME} ${DESTDIR}/lib/${LIBUCONTEXT_NAME} ++ install -D -m755 ${LIBUCONTEXT_NAME} ${DESTDIR}${LIBUCONTEXT_PATH} ++ install -D -m664 ${LIBUCONTEXT_STATIC_NAME} ${DESTDIR}${LIBUCONTEXT_STATIC_PATH} ++ ln -sf ${LIBUCONTEXT_SONAME} ${DESTDIR}${LIBDIR}/${LIBUCONTEXT_NAME} + + check: test_libucontext ${LIBUCONTEXT_SONAME} + env LD_LIBRARY_PATH=$(shell pwd) ./test_libucontext + +From 467ee2916d0eacbd32af10ead14e5d86e365fa2b Mon Sep 17 00:00:00 2001 +From: "A. Wilcox" <AWilcox@Wilcox-Tech.com> +Date: Mon, 30 Mar 2020 17:25:30 -0500 +Subject: [PATCH 3/3] x86: Update copyright statement +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Commit d0ccf2f96f12bfa040cc056f7dc26b3fd25c168d contains the makecontext +fix from Adélie commit aaeb73ea701388e55b7640e32509a5f6a57f6350[1], as +seen at AdelieLinux/libucontext@aaeb73ea – but it didn't include the +addition of my author line. + +The full commit text, for future documentation/reference, was: + +``` +x86: Write link pointer at correct stack offset + +It must come *after* the parameters, not *before*. +``` + +Fixes: d0ccf2f96f12 ("x86: modernize") +Signed-off-by: A. Wilcox <AWilcox@Wilcox-Tech.com> + +[1]: https://code.foxkit.us/adelie/libucontext/commit/aaeb73ea701388e55b7640e32509a5f6a57f6350 +--- + arch/x86/makecontext.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/arch/x86/makecontext.c b/arch/x86/makecontext.c +index ee9c2e2..bc8163c 100644 +--- a/arch/x86/makecontext.c ++++ b/arch/x86/makecontext.c +@@ -1,5 +1,6 @@ + /* + * Copyright (c) 2018 Ariadne Conill <ariadne@dereferenced.org> ++ * Copyright (c) 2019 A. Wilcox <awilfox@adelielinux.org> + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above diff --git a/system/libucontext/powerpc.patch b/system/libucontext/powerpc.patch deleted file mode 100644 index ed7604d7b..000000000 --- a/system/libucontext/powerpc.patch +++ /dev/null @@ -1,1121 +0,0 @@ -From 94216c60c43a30e39fbc4f347450768699c6c77c Mon Sep 17 00:00:00 2001 -From: Bobby Bingham <koorogi@koorogi.info> -Date: Mon, 1 Apr 2019 23:02:12 -0500 -Subject: [PATCH] test ability to pass 10 args through makecontext - ---- - test_libucontext.c | 23 +++++++++++++++++++++-- - 1 file changed, 21 insertions(+), 2 deletions(-) - -diff --git a/test_libucontext.c b/test_libucontext.c -index 121cc3e..e5eac83 100644 ---- a/test_libucontext.c -+++ b/test_libucontext.c -@@ -6,13 +6,32 @@ - #include <stdio.h> - #include <ucontext.h> - #include <stdint.h> -+#include <stdlib.h> - #include <string.h> - - - static ucontext_t ctx[3]; - - --static void f1 (void) { -+static void check_arg(int actual, int expected) { -+ if (actual == expected) return; -+ fprintf(stderr, "argument has wrong value. got %d, expected %d.\n", actual, expected); -+ abort(); -+} -+ -+ -+static void f1 (int a, int b, int c, int d, int e, int f, int g, int h, int i, int j) { -+ check_arg(a, 1); -+ check_arg(b, 2); -+ check_arg(c, 3); -+ check_arg(d, 4); -+ check_arg(e, 5); -+ check_arg(f, 6); -+ check_arg(g, 7); -+ check_arg(h, 8); -+ check_arg(i, 9); -+ check_arg(j, 10); -+ - printf("start f1\n"); - swapcontext(&ctx[1], &ctx[2]); - printf("finish f1\n"); -@@ -40,7 +59,7 @@ int main (int argc, const char *argv[]) { - ctx[1].uc_stack.ss_sp = st1; - ctx[1].uc_stack.ss_size = sizeof st1; - ctx[1].uc_link = &ctx[0]; -- makecontext(&ctx[1], f1, 0); -+ makecontext(&ctx[1], f1, 10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10); - - - getcontext(&ctx[2]); -From cb59e7ee957b389578a3f973484ae3198f6cfed1 Mon Sep 17 00:00:00 2001 -From: Bobby Bingham <koorogi@koorogi.info> -Date: Mon, 1 Apr 2019 23:03:21 -0500 -Subject: [PATCH] test calls to getcontext without makecontext - ---- - test_libucontext.c | 12 ++++++++++++ - 1 file changed, 12 insertions(+) - -diff --git a/test_libucontext.c b/test_libucontext.c -index e5eac83..a4a9b4c 100644 ---- a/test_libucontext.c -+++ b/test_libucontext.c -@@ -48,6 +48,7 @@ static void f2 (void) { - int main (int argc, const char *argv[]) { - char st1[8192]; - char st2[8192]; -+ volatile int done = 0; - - - /* poison each coroutine's stack memory for debugging purposes */ -@@ -70,5 +71,16 @@ int main (int argc, const char *argv[]) { - - - swapcontext(&ctx[0], &ctx[2]); -+ -+ -+ /* test ability to use getcontext/setcontext without makecontext */ -+ getcontext(&ctx[1]); -+ printf("done = %d\n", done); -+ if (done++ == 0) setcontext(&ctx[1]); -+ if (done != 2) { -+ fprintf(stderr, "wrong value for done. got %d, expected 2\n", done); -+ abort(); -+ } -+ - return 0; - } -From b6a9b5e279123f16569e0fd9f8ff14ff04bed7a3 Mon Sep 17 00:00:00 2001 -From: Bobby Bingham <koorogi@koorogi.info> -Date: Fri, 5 Apr 2019 13:32:03 -0500 -Subject: [PATCH] ppc32: fix stack alignment - -The stack should be 16-byte aligned, not 8 mod 16. ---- - arch/ppc/makecontext.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/arch/ppc/makecontext.c b/arch/ppc/makecontext.c -index c562ea5..1b9efdf 100644 ---- a/arch/ppc/makecontext.c -+++ b/arch/ppc/makecontext.c -@@ -37,7 +37,7 @@ __makecontext(ucontext_t *ucp, void (*func)(void), int argc, ...) - - sp = (greg_t *) ((uintptr_t) ucp->uc_stack.ss_sp + ucp->uc_stack.ss_size); - sp -= (uc_link + 1); -- sp = (greg_t *) (((uintptr_t) sp & -16L) - 8); -+ sp = (greg_t *) ((uintptr_t) sp & -16L); - - ucp->uc_mcontext.gregs[REG_NIP] = (uintptr_t) func; - ucp->uc_mcontext.gregs[REG_LNK] = (uintptr_t) &__start_context; -From b9bd4045fb34f060d6cf37fc7da7ab13b91462de Mon Sep 17 00:00:00 2001 -From: Bobby Bingham <koorogi@koorogi.info> -Date: Fri, 5 Apr 2019 13:35:00 -0500 -Subject: [PATCH] ppc32/64: fix back chain pointer - -The ABI states that sp[0] should point to the previous stack frame, or be -zero if there is no previous stack frame. makecontext previously set this -slot to point to the __start_context function, rather than to a valid -stack frame. ---- - arch/ppc/makecontext.c | 2 +- - arch/ppc64/makecontext.c | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/arch/ppc/makecontext.c b/arch/ppc/makecontext.c -index 1b9efdf..729f465 100644 ---- a/arch/ppc/makecontext.c -+++ b/arch/ppc/makecontext.c -@@ -44,7 +44,7 @@ __makecontext(ucontext_t *ucp, void (*func)(void), int argc, ...) - ucp->uc_mcontext.gregs[REG_R31] = (uintptr_t) ucp->uc_link; - ucp->uc_mcontext.gregs[REG_SP] = (uintptr_t) sp; - -- sp[0] = (uintptr_t) &__start_context; -+ sp[0] = 0; - sp[uc_link] = (uintptr_t) ucp->uc_link; - argp = &sp[2]; - -diff --git a/arch/ppc64/makecontext.c b/arch/ppc64/makecontext.c -index 9d6b998..91fb579 100644 ---- a/arch/ppc64/makecontext.c -+++ b/arch/ppc64/makecontext.c -@@ -45,7 +45,7 @@ __makecontext(ucontext_t *ucp, void (*func)(void), int argc, ...) - ucp->uc_mcontext.gp_regs[REG_ENTRY] = (uintptr_t) func; - ucp->uc_mcontext.gp_regs[REG_R31] = (uintptr_t) ucp->uc_link; - -- sp[0] = (uintptr_t) &__start_context; -+ sp[0] = 0; - sp[uc_link] = (uintptr_t) ucp->uc_link; - argp = &sp[2]; - -From b500b054c7cf412a6042496afa08b4302f7ed929 Mon Sep 17 00:00:00 2001 -From: Bobby Bingham <koorogi@koorogi.info> -Date: Fri, 5 Apr 2019 13:38:36 -0500 -Subject: [PATCH] ppc32/64: don't store uc_link on the stack - -This was previously stored either in the CR (ppc64) or LR (ppc32) save -area of the stack, or to one of the parameter save slots. - -In either case, the saved value was unused. This value is also passed -to __start_context via r31, so there's no need to pass it on the stack. ---- - arch/ppc/makecontext.c | 6 ++---- - arch/ppc64/makecontext.c | 6 ++---- - 2 files changed, 4 insertions(+), 8 deletions(-) - -diff --git a/arch/ppc/makecontext.c b/arch/ppc/makecontext.c -index 729f465..2b7ea67 100644 ---- a/arch/ppc/makecontext.c -+++ b/arch/ppc/makecontext.c -@@ -30,13 +30,12 @@ __makecontext(ucontext_t *ucp, void (*func)(void), int argc, ...) - greg_t *sp, *argp; - va_list va; - int i; -- unsigned int uc_link, stack_args; -+ unsigned int stack_args; - - stack_args = argc > 8 ? argc - 8 : 0; -- uc_link = stack_args + 1; - - sp = (greg_t *) ((uintptr_t) ucp->uc_stack.ss_sp + ucp->uc_stack.ss_size); -- sp -= (uc_link + 1); -+ sp -= stack_args + 2; - sp = (greg_t *) ((uintptr_t) sp & -16L); - - ucp->uc_mcontext.gregs[REG_NIP] = (uintptr_t) func; -@@ -45,7 +44,6 @@ __makecontext(ucontext_t *ucp, void (*func)(void), int argc, ...) - ucp->uc_mcontext.gregs[REG_SP] = (uintptr_t) sp; - - sp[0] = 0; -- sp[uc_link] = (uintptr_t) ucp->uc_link; - argp = &sp[2]; - - va_start(va, argc); -diff --git a/arch/ppc64/makecontext.c b/arch/ppc64/makecontext.c -index 91fb579..b060371 100644 ---- a/arch/ppc64/makecontext.c -+++ b/arch/ppc64/makecontext.c -@@ -30,13 +30,12 @@ __makecontext(ucontext_t *ucp, void (*func)(void), int argc, ...) - greg_t *sp, *argp; - va_list va; - int i; -- unsigned int uc_link, stack_args; -+ unsigned int stack_args; - - stack_args = argc > 8 ? argc - 8 : 0; -- uc_link = stack_args + 1; - - sp = (greg_t *) ((uintptr_t) ucp->uc_stack.ss_sp + ucp->uc_stack.ss_size); -- sp -= (uc_link + 1); -+ sp -= stack_args + 2; - sp = (greg_t *) (((uintptr_t) sp & -16L)); - - ucp->uc_mcontext.gp_regs[REG_NIP] = (uintptr_t) func; -@@ -46,7 +45,6 @@ __makecontext(ucontext_t *ucp, void (*func)(void), int argc, ...) - ucp->uc_mcontext.gp_regs[REG_R31] = (uintptr_t) ucp->uc_link; - - sp[0] = 0; -- sp[uc_link] = (uintptr_t) ucp->uc_link; - argp = &sp[2]; - - va_start(va, argc); -From 55168fcb1809dde45c99450f1f3be27716c473db Mon Sep 17 00:00:00 2001 -From: Bobby Bingham <koorogi@koorogi.info> -Date: Fri, 5 Apr 2019 13:57:53 -0500 -Subject: [PATCH] ppc32/64: simplify storage of stack parameters - -The switch statement is simpler as an if/else, and removing the argp -variable makes the code more symmetric between the register and stack -parameter cases. ---- - arch/ppc/makecontext.c | 24 ++++++------------------ - arch/ppc64/makecontext.c | 24 ++++++------------------ - 2 files changed, 12 insertions(+), 36 deletions(-) - -diff --git a/arch/ppc/makecontext.c b/arch/ppc/makecontext.c -index 2b7ea67..4a404a4 100644 ---- a/arch/ppc/makecontext.c -+++ b/arch/ppc/makecontext.c -@@ -27,7 +27,7 @@ extern void __start_context(void); - void - __makecontext(ucontext_t *ucp, void (*func)(void), int argc, ...) - { -- greg_t *sp, *argp; -+ greg_t *sp; - va_list va; - int i; - unsigned int stack_args; -@@ -44,27 +44,15 @@ __makecontext(ucontext_t *ucp, void (*func)(void), int argc, ...) - ucp->uc_mcontext.gregs[REG_SP] = (uintptr_t) sp; - - sp[0] = 0; -- argp = &sp[2]; - - va_start(va, argc); - -- for (i = 0; i < argc; i++) -- switch (i) -- { -- case 0: -- case 1: -- case 2: -- case 3: -- case 4: -- case 5: -- case 6: -- case 7: -+ for (i = 0; i < argc; i++) { -+ if (i < 8) - ucp->uc_mcontext.gregs[i + 3] = va_arg (va, greg_t); -- break; -- default: -- *argp++ = va_arg (va, greg_t); -- break; -- } -+ else -+ sp[i-8 + 2] = va_arg (va, greg_t); -+ } - - va_end(va); - } -diff --git a/arch/ppc64/makecontext.c b/arch/ppc64/makecontext.c -index b060371..962f98a 100644 ---- a/arch/ppc64/makecontext.c -+++ b/arch/ppc64/makecontext.c -@@ -27,7 +27,7 @@ extern void __start_context(void); - void - __makecontext(ucontext_t *ucp, void (*func)(void), int argc, ...) - { -- greg_t *sp, *argp; -+ greg_t *sp; - va_list va; - int i; - unsigned int stack_args; -@@ -45,27 +45,15 @@ __makecontext(ucontext_t *ucp, void (*func)(void), int argc, ...) - ucp->uc_mcontext.gp_regs[REG_R31] = (uintptr_t) ucp->uc_link; - - sp[0] = 0; -- argp = &sp[2]; - - va_start(va, argc); - -- for (i = 0; i < argc; i++) -- switch (i) -- { -- case 0: -- case 1: -- case 2: -- case 3: -- case 4: -- case 5: -- case 6: -- case 7: -+ for (i = 0; i < argc; i++) { -+ if (i < 8) - ucp->uc_mcontext.gp_regs[i + 3] = va_arg (va, greg_t); -- break; -- default: -- *argp++ = va_arg (va, greg_t); -- break; -- } -+ else -+ sp[i-8 + 2] = va_arg (va, greg_t); -+ } - - va_end(va); - } -From 8ea5f548b9146ffeea2074a33a06bbbd07a74402 Mon Sep 17 00:00:00 2001 -From: Bobby Bingham <koorogi@koorogi.info> -Date: Fri, 5 Apr 2019 14:01:10 -0500 -Subject: [PATCH] ppc64: fix makecontext with more than 8 parameters - -The ELFv2 ABI used on PPC64 differs from the ELFv1 ABI used on PPC32 here. -On PPC64, once there are any parameters that need to be passed on the -stack, space needs to be reserved on the stack to pass all parameters. -Parameters 0-7 are still only passed by register, but if the callee needs -to spill them, it can use the stack space reserved for the corresponding -parameter to do so. ---- - arch/ppc64/makecontext.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/arch/ppc64/makecontext.c b/arch/ppc64/makecontext.c -index 962f98a..ea980e9 100644 ---- a/arch/ppc64/makecontext.c -+++ b/arch/ppc64/makecontext.c -@@ -32,7 +32,7 @@ __makecontext(ucontext_t *ucp, void (*func)(void), int argc, ...) - int i; - unsigned int stack_args; - -- stack_args = argc > 8 ? argc - 8 : 0; -+ stack_args = argc > 8 ? argc : 0; - - sp = (greg_t *) ((uintptr_t) ucp->uc_stack.ss_sp + ucp->uc_stack.ss_size); - sp -= stack_args + 2; -@@ -52,7 +52,7 @@ __makecontext(ucontext_t *ucp, void (*func)(void), int argc, ...) - if (i < 8) - ucp->uc_mcontext.gp_regs[i + 3] = va_arg (va, greg_t); - else -- sp[i-8 + 2] = va_arg (va, greg_t); -+ sp[i + 2] = va_arg (va, greg_t); - } - - va_end(va); -From a00a05ce2950ca3b306f8ccc3e817ea8cd675015 Mon Sep 17 00:00:00 2001 -From: Bobby Bingham <koorogi@koorogi.info> -Date: Fri, 5 Apr 2019 14:03:47 -0500 -Subject: [PATCH] ppc64: fix incorrect position of parameters within stack - frame - -On PPC64, there are 4 register-sized stack slots below the parameter save -area, which is different from the 2 stack slots on PPC32. ---- - arch/ppc64/makecontext.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/arch/ppc64/makecontext.c b/arch/ppc64/makecontext.c -index ea980e9..a4c1bf9 100644 ---- a/arch/ppc64/makecontext.c -+++ b/arch/ppc64/makecontext.c -@@ -35,7 +35,7 @@ __makecontext(ucontext_t *ucp, void (*func)(void), int argc, ...) - stack_args = argc > 8 ? argc : 0; - - sp = (greg_t *) ((uintptr_t) ucp->uc_stack.ss_sp + ucp->uc_stack.ss_size); -- sp -= stack_args + 2; -+ sp -= stack_args + 4; - sp = (greg_t *) (((uintptr_t) sp & -16L)); - - ucp->uc_mcontext.gp_regs[REG_NIP] = (uintptr_t) func; -@@ -52,7 +52,7 @@ __makecontext(ucontext_t *ucp, void (*func)(void), int argc, ...) - if (i < 8) - ucp->uc_mcontext.gp_regs[i + 3] = va_arg (va, greg_t); - else -- sp[i + 2] = va_arg (va, greg_t); -+ sp[i + 4] = va_arg (va, greg_t); - } - - va_end(va); -From 40d07758a5677e8869d7a62a499236bb6ed01897 Mon Sep 17 00:00:00 2001 -From: Bobby Bingham <koorogi@koorogi.info> -Date: Fri, 5 Apr 2019 14:09:25 -0500 -Subject: [PATCH] ppc32/64: correct signature of function parameter to - makecontext - -Because makecontext can pass a set of integer arguments to the provided -function, it is incorrect to require that this function accept no -parameters. ---- - arch/ppc/makecontext.c | 2 +- - arch/ppc64/makecontext.c | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/arch/ppc/makecontext.c b/arch/ppc/makecontext.c -index 4a404a4..0633c0f 100644 ---- a/arch/ppc/makecontext.c -+++ b/arch/ppc/makecontext.c -@@ -25,7 +25,7 @@ extern void __start_context(void); - - - void --__makecontext(ucontext_t *ucp, void (*func)(void), int argc, ...) -+__makecontext(ucontext_t *ucp, void (*func)(), int argc, ...) - { - greg_t *sp; - va_list va; -diff --git a/arch/ppc64/makecontext.c b/arch/ppc64/makecontext.c -index a4c1bf9..8a293b5 100644 ---- a/arch/ppc64/makecontext.c -+++ b/arch/ppc64/makecontext.c -@@ -25,7 +25,7 @@ extern void __start_context(void); - - - void --__makecontext(ucontext_t *ucp, void (*func)(void), int argc, ...) -+__makecontext(ucontext_t *ucp, void (*func)(), int argc, ...) - { - greg_t *sp; - va_list va; -From edf69879eadaec0c72ba7ef5e7d2389946c6644b Mon Sep 17 00:00:00 2001 -From: Bobby Bingham <koorogi@koorogi.info> -Date: Fri, 5 Apr 2019 14:09:39 -0500 -Subject: [PATCH] ppc64: remove unnecessary parentheses - ---- - arch/ppc64/makecontext.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/arch/ppc64/makecontext.c b/arch/ppc64/makecontext.c -index 8a293b5..84d390a 100644 ---- a/arch/ppc64/makecontext.c -+++ b/arch/ppc64/makecontext.c -@@ -36,7 +36,7 @@ __makecontext(ucontext_t *ucp, void (*func)(), int argc, ...) - - sp = (greg_t *) ((uintptr_t) ucp->uc_stack.ss_sp + ucp->uc_stack.ss_size); - sp -= stack_args + 4; -- sp = (greg_t *) (((uintptr_t) sp & -16L)); -+ sp = (greg_t *) ((uintptr_t) sp & -16L); - - ucp->uc_mcontext.gp_regs[REG_NIP] = (uintptr_t) func; - ucp->uc_mcontext.gp_regs[REG_LNK] = (uintptr_t) &__start_context; -From 29eac4259adfd85e0f4946a1080bb9e3f8c0cc2e Mon Sep 17 00:00:00 2001 -From: Bobby Bingham <koorogi@koorogi.info> -Date: Fri, 5 Apr 2019 14:10:28 -0500 -Subject: [PATCH] ppc32/64: remove unused includes - ---- - arch/ppc/makecontext.c | 2 -- - arch/ppc64/makecontext.c | 2 -- - 2 files changed, 4 deletions(-) - -diff --git a/arch/ppc/makecontext.c b/arch/ppc/makecontext.c -index 0633c0f..7214a40 100644 ---- a/arch/ppc/makecontext.c -+++ b/arch/ppc/makecontext.c -@@ -11,10 +11,8 @@ - */ - - #define _GNU_SOURCE --#include <stddef.h> - #include <stdarg.h> - #include <signal.h> --#include <string.h> - #include <stdint.h> - - -diff --git a/arch/ppc64/makecontext.c b/arch/ppc64/makecontext.c -index 84d390a..2650f56 100644 ---- a/arch/ppc64/makecontext.c -+++ b/arch/ppc64/makecontext.c -@@ -11,10 +11,8 @@ - */ - - #define _GNU_SOURCE --#include <stddef.h> - #include <stdarg.h> - #include <signal.h> --#include <string.h> - #include <stdint.h> - - -From 90ff6330e62c8f836016668c9f769af365b257cb Mon Sep 17 00:00:00 2001 -From: Bobby Bingham <koorogi@koorogi.info> -Date: Fri, 5 Apr 2019 14:11:21 -0500 -Subject: [PATCH] ppc32/64: update copyright - ---- - arch/ppc/makecontext.c | 1 + - arch/ppc64/makecontext.c | 1 + - 2 files changed, 2 insertions(+) - -diff --git a/arch/ppc/makecontext.c b/arch/ppc/makecontext.c -index 7214a40..51c492f 100644 ---- a/arch/ppc/makecontext.c -+++ b/arch/ppc/makecontext.c -@@ -1,5 +1,6 @@ - /* - * Copyright (c) 2018 William Pitcock <nenolod@dereferenced.org> -+ * Copyright (c) 2019 Bobby Bingham <koorogi@koorogi.info> - * - * Permission to use, copy, modify, and/or distribute this software for any - * purpose with or without fee is hereby granted, provided that the above -diff --git a/arch/ppc64/makecontext.c b/arch/ppc64/makecontext.c -index 2650f56..43da557 100644 ---- a/arch/ppc64/makecontext.c -+++ b/arch/ppc64/makecontext.c -@@ -1,5 +1,6 @@ - /* - * Copyright (c) 2018 William Pitcock <nenolod@dereferenced.org> -+ * Copyright (c) 2019 Bobby Bingham <koorogi@koorogi.info> - * - * Permission to use, copy, modify, and/or distribute this software for any - * purpose with or without fee is hereby granted, provided that the above -From 2610c7faa7b9c4114d53bb659264a6be238cd2a3 Mon Sep 17 00:00:00 2001 -From: Bobby Bingham <koorogi@koorogi.info> -Date: Sat, 23 Feb 2019 17:12:37 -0600 -Subject: [PATCH] ppc32/64: rewrite get/set/swapcontext in assembly - -getcontext cannot be correctly implemented in C. - -If this calls another function, as it does to call syscall, it needs to -first spill its return address to the stack. If, after getcontext returns, -its caller then calls other functions, this saved return address can be -clobbered. When the context saved by getcontext is later restored, the -(now clobbered) return address will be reloaded from the stack, and the -second return from getcontext will return to the wrong location. - -Because the powerpc swapcontext syscall allows either the old context or -new context pointers to be null, it is usable for implementing all of -get/set/swapcontext. - -We therefore rewrite swapcontext in assembly, and get/setcontext as simple -assembly function wrappers around swapcontext. - -The one piece we keep in C is the code to check the return value of the -system call and to set errno. This code was actually unnecessary before -- -libc does this within syscall. However, now that the system call is made -directly in assembly, bypassing libc, it is truly necessary. Because errno -is thread-local and the details of how to set it can vary by libc, this -code remains written in C. ---- - Makefile | 10 +---- - README.md | 2 +- - arch/ppc/getcontext.S | 20 +++++++++ - arch/ppc/{getcontext.c => retfromsyscall.c} | 30 +++---------- - arch/ppc/setcontext.S | 21 +++++++++ - arch/ppc/setcontext.c | 45 ------------------- - arch/ppc/swapcontext.S | 23 ++++++++++ - arch/ppc/swapcontext.c | 45 ------------------- - arch/ppc64/getcontext.S | 25 +++++++++++ - arch/ppc64/{getcontext.c => retfromsyscall.c} | 30 +++---------- - arch/ppc64/setcontext.S | 26 +++++++++++ - arch/ppc64/setcontext.c | 45 ------------------- - arch/ppc64/swapcontext.S | 28 ++++++++++++ - arch/ppc64/swapcontext.c | 45 ------------------- - 14 files changed, 156 insertions(+), 239 deletions(-) - create mode 100644 arch/ppc/getcontext.S - rename arch/ppc/{getcontext.c => retfromsyscall.c} (53%) - create mode 100644 arch/ppc/setcontext.S - delete mode 100644 arch/ppc/setcontext.c - create mode 100644 arch/ppc/swapcontext.S - delete mode 100644 arch/ppc/swapcontext.c - create mode 100644 arch/ppc64/getcontext.S - rename arch/ppc64/{getcontext.c => retfromsyscall.c} (53%) - create mode 100644 arch/ppc64/setcontext.S - delete mode 100644 arch/ppc64/setcontext.c - create mode 100644 arch/ppc64/swapcontext.S - delete mode 100644 arch/ppc64/swapcontext.c - -diff --git a/Makefile b/Makefile -index 51365a3..d6ff1b0 100644 ---- a/Makefile -+++ b/Makefile -@@ -2,14 +2,8 @@ ARCH := $(shell uname -m) - - CFLAGS = -ggdb3 -O2 -Wall -Iarch/${ARCH} - --LIBUCONTEXT_C_SRC = \ -- arch/${ARCH}/makecontext.c -- --LIBUCONTEXT_S_SRC = \ -- arch/${ARCH}/getcontext.S \ -- arch/${ARCH}/setcontext.S \ -- arch/${ARCH}/swapcontext.S \ -- arch/${ARCH}/startcontext.S -+LIBUCONTEXT_C_SRC = $(wildcard arch/${ARCH}/*.c) -+LIBUCONTEXT_S_SRC = $(wildcard arch/${ARCH}/*.S) - - LIBUCONTEXT_OBJ = ${LIBUCONTEXT_C_SRC:.c=.o} ${LIBUCONTEXT_S_SRC:.S=.o} - LIBUCONTEXT_SOVERSION = 0 -diff --git a/README.md b/README.md -index 6bd4493..27d3d0b 100644 ---- a/README.md -+++ b/README.md -@@ -19,7 +19,7 @@ Right now these archs are supported and should work on bare metal: - * aarch64 - * s390x - --These archs require kernel assistance and use a syscall (the only assembly is the trampoline): -+These archs require kernel assistance and use a syscall: - - * ppc - * ppc64 (ELFv2 ABI spec only, ELFv1 not supported) -diff --git a/arch/ppc/getcontext.S b/arch/ppc/getcontext.S -new file mode 100644 -index 0000000..beffaf5 ---- /dev/null -+++ b/arch/ppc/getcontext.S -@@ -0,0 +1,20 @@ -+/* -+ * Copyright (c) 2019 Bobby Bingham <koorogi@koorogi.info> -+ * -+ * Permission to use, copy, modify, and/or distribute this software for any -+ * purpose with or without fee is hereby granted, provided that the above -+ * copyright notice and this permission notice appear in all copies. -+ * -+ * This software is provided 'as is' and without any warranty, express or -+ * implied. In no event shall the authors be liable for any damages arising -+ * from the use of this software. -+ */ -+ -+.global __getcontext -+.hidden __swapcontext -+__getcontext: -+ li 4, 0 -+ b __swapcontext@local -+ -+.weak getcontext -+getcontext = __getcontext -diff --git a/arch/ppc/getcontext.c b/arch/ppc/retfromsyscall.c -similarity index 53% -rename from arch/ppc/getcontext.c -rename to arch/ppc/retfromsyscall.c -index 5da9dfb..3ad43c0 100644 ---- a/arch/ppc/getcontext.c -+++ b/arch/ppc/retfromsyscall.c -@@ -1,5 +1,6 @@ - /* - * Copyright (c) 2018 William Pitcock <nenolod@dereferenced.org> -+ * Copyright (c) 2019 Bobby Bingham <koorogi@koorogi.info> - * - * Permission to use, copy, modify, and/or distribute this software for any - * purpose with or without fee is hereby granted, provided that the above -@@ -10,36 +11,15 @@ - * from the use of this software. - */ - --#define _GNU_SOURCE --#include <stddef.h> --#include <stdarg.h> --#include <signal.h> --#include <string.h> --#include <stdint.h> - #include <errno.h> --#include <unistd.h> --#include <sys/syscall.h> - -- --int --__getcontext(ucontext_t *ucp) -+__attribute__ ((visibility ("hidden"))) -+int __retfromsyscall(long retval) - { --#ifdef SYS_swapcontext -- int r; -- -- r = syscall(SYS_swapcontext, ucp, NULL, sizeof(ucontext_t)); -- if (r < 0) -- { -- errno = -r; -+ if (retval < 0) { -+ errno = -retval; - return -1; - } -- - return 0; --#else -- errno = ENOSYS; -- return -1; --#endif - } - -- --extern __typeof(__getcontext) getcontext __attribute__((weak, __alias__("__getcontext"))); -diff --git a/arch/ppc/setcontext.S b/arch/ppc/setcontext.S -new file mode 100644 -index 0000000..89e6de0 ---- /dev/null -+++ b/arch/ppc/setcontext.S -@@ -0,0 +1,21 @@ -+/* -+ * Copyright (c) 2019 Bobby Bingham <koorogi@koorogi.info> -+ * -+ * Permission to use, copy, modify, and/or distribute this software for any -+ * purpose with or without fee is hereby granted, provided that the above -+ * copyright notice and this permission notice appear in all copies. -+ * -+ * This software is provided 'as is' and without any warranty, express or -+ * implied. In no event shall the authors be liable for any damages arising -+ * from the use of this software. -+ */ -+ -+.global __setcontext -+.hidden __swapcontext -+__setcontext: -+ mr 4, 3 -+ li 3, 0 -+ b __swapcontext@local -+ -+.weak setcontext -+setcontext = __setcontext -diff --git a/arch/ppc/setcontext.c b/arch/ppc/setcontext.c -deleted file mode 100644 -index 59c65b4..0000000 ---- a/arch/ppc/setcontext.c -+++ /dev/null -@@ -1,45 +0,0 @@ --/* -- * Copyright (c) 2018 William Pitcock <nenolod@dereferenced.org> -- * -- * Permission to use, copy, modify, and/or distribute this software for any -- * purpose with or without fee is hereby granted, provided that the above -- * copyright notice and this permission notice appear in all copies. -- * -- * This software is provided 'as is' and without any warranty, express or -- * implied. In no event shall the authors be liable for any damages arising -- * from the use of this software. -- */ -- --#define _GNU_SOURCE --#include <stddef.h> --#include <stdarg.h> --#include <signal.h> --#include <string.h> --#include <stdint.h> --#include <errno.h> --#include <unistd.h> --#include <sys/syscall.h> -- -- --int --__setcontext(const ucontext_t *ucp) --{ --#ifdef SYS_swapcontext -- int r; -- -- r = syscall(SYS_swapcontext, NULL, (void *) ucp, sizeof(ucontext_t)); -- if (r < 0) -- { -- errno = -r; -- return -1; -- } -- -- return r; --#else -- errno = ENOSYS; -- return -1; --#endif --} -- -- --extern __typeof(__setcontext) setcontext __attribute__((weak, __alias__("__setcontext"))); -diff --git a/arch/ppc/swapcontext.S b/arch/ppc/swapcontext.S -new file mode 100644 -index 0000000..24b6655 ---- /dev/null -+++ b/arch/ppc/swapcontext.S -@@ -0,0 +1,23 @@ -+/* -+ * Copyright (c) 2019 Bobby Bingham <koorogi@koorogi.info> -+ * -+ * Permission to use, copy, modify, and/or distribute this software for any -+ * purpose with or without fee is hereby granted, provided that the above -+ * copyright notice and this permission notice appear in all copies. -+ * -+ * This software is provided 'as is' and without any warranty, express or -+ * implied. In no event shall the authors be liable for any damages arising -+ * from the use of this software. -+ */ -+ -+.global __swapcontext -+__swapcontext: -+ li 0, 249 # SYS_swapcontext -+ li 5, 1184 # sizeof(ucontext_t) -+ sc -+ -+.hidden __retfromsyscall -+ b __retfromsyscall@local -+ -+.weak swapcontext -+swapcontext = __swapcontext -diff --git a/arch/ppc/swapcontext.c b/arch/ppc/swapcontext.c -deleted file mode 100644 -index af14bc2..0000000 ---- a/arch/ppc/swapcontext.c -+++ /dev/null -@@ -1,45 +0,0 @@ --/* -- * Copyright (c) 2018 William Pitcock <nenolod@dereferenced.org> -- * -- * Permission to use, copy, modify, and/or distribute this software for any -- * purpose with or without fee is hereby granted, provided that the above -- * copyright notice and this permission notice appear in all copies. -- * -- * This software is provided 'as is' and without any warranty, express or -- * implied. In no event shall the authors be liable for any damages arising -- * from the use of this software. -- */ -- --#define _GNU_SOURCE --#include <stddef.h> --#include <stdarg.h> --#include <signal.h> --#include <string.h> --#include <stdint.h> --#include <errno.h> --#include <unistd.h> --#include <sys/syscall.h> -- -- --int --__swapcontext(ucontext_t *oucp, const ucontext_t *ucp) --{ --#ifdef SYS_swapcontext -- int r; -- -- r = syscall(SYS_swapcontext, oucp, ucp, sizeof(ucontext_t)); -- if (r < 0) -- { -- errno = -r; -- return -1; -- } -- -- return r; --#else -- errno = ENOSYS; -- return -1; --#endif --} -- -- --extern __typeof(__swapcontext) swapcontext __attribute__((weak, __alias__("__swapcontext"))); -diff --git a/arch/ppc64/getcontext.S b/arch/ppc64/getcontext.S -new file mode 100644 -index 0000000..935edd2 ---- /dev/null -+++ b/arch/ppc64/getcontext.S -@@ -0,0 +1,25 @@ -+/* -+ * Copyright (c) 2019 Bobby Bingham <koorogi@koorogi.info> -+ * -+ * Permission to use, copy, modify, and/or distribute this software for any -+ * purpose with or without fee is hereby granted, provided that the above -+ * copyright notice and this permission notice appear in all copies. -+ * -+ * This software is provided 'as is' and without any warranty, express or -+ * implied. In no event shall the authors be liable for any damages arising -+ * from the use of this software. -+ */ -+ -+.global __getcontext -+.hidden __swapcontext -+__getcontext: -+ addis 2, 12, .TOC.-__getcontext@ha -+ addi 2, 12, .TOC.-__getcontext@l -+ -+ .localentry __getcontext,.-__getcontext -+ -+ li 4, 0 -+ b __swapcontext -+ -+.weak getcontext -+getcontext = __getcontext -diff --git a/arch/ppc64/getcontext.c b/arch/ppc64/retfromsyscall.c -similarity index 53% -rename from arch/ppc64/getcontext.c -rename to arch/ppc64/retfromsyscall.c -index 5da9dfb..3ad43c0 100644 ---- a/arch/ppc64/getcontext.c -+++ b/arch/ppc64/retfromsyscall.c -@@ -1,5 +1,6 @@ - /* - * Copyright (c) 2018 William Pitcock <nenolod@dereferenced.org> -+ * Copyright (c) 2019 Bobby Bingham <koorogi@koorogi.info> - * - * Permission to use, copy, modify, and/or distribute this software for any - * purpose with or without fee is hereby granted, provided that the above -@@ -10,36 +11,15 @@ - * from the use of this software. - */ - --#define _GNU_SOURCE --#include <stddef.h> --#include <stdarg.h> --#include <signal.h> --#include <string.h> --#include <stdint.h> - #include <errno.h> --#include <unistd.h> --#include <sys/syscall.h> - -- --int --__getcontext(ucontext_t *ucp) -+__attribute__ ((visibility ("hidden"))) -+int __retfromsyscall(long retval) - { --#ifdef SYS_swapcontext -- int r; -- -- r = syscall(SYS_swapcontext, ucp, NULL, sizeof(ucontext_t)); -- if (r < 0) -- { -- errno = -r; -+ if (retval < 0) { -+ errno = -retval; - return -1; - } -- - return 0; --#else -- errno = ENOSYS; -- return -1; --#endif - } - -- --extern __typeof(__getcontext) getcontext __attribute__((weak, __alias__("__getcontext"))); -diff --git a/arch/ppc64/setcontext.S b/arch/ppc64/setcontext.S -new file mode 100644 -index 0000000..5a0cde3 ---- /dev/null -+++ b/arch/ppc64/setcontext.S -@@ -0,0 +1,26 @@ -+/* -+ * Copyright (c) 2019 Bobby Bingham <koorogi@koorogi.info> -+ * -+ * Permission to use, copy, modify, and/or distribute this software for any -+ * purpose with or without fee is hereby granted, provided that the above -+ * copyright notice and this permission notice appear in all copies. -+ * -+ * This software is provided 'as is' and without any warranty, express or -+ * implied. In no event shall the authors be liable for any damages arising -+ * from the use of this software. -+ */ -+ -+.global __setcontext -+.hidden __swapcontext -+__setcontext: -+ addis 2, 12, .TOC.-__setcontext@ha -+ addi 2, 12, .TOC.-__setcontext@l -+ -+ .localentry __setcontext,.-__setcontext -+ -+ mr 4, 3 -+ li 3, 0 -+ b __swapcontext -+ -+.weak setcontext -+setcontext = __setcontext -diff --git a/arch/ppc64/setcontext.c b/arch/ppc64/setcontext.c -deleted file mode 100644 -index 59c65b4..0000000 ---- a/arch/ppc64/setcontext.c -+++ /dev/null -@@ -1,45 +0,0 @@ --/* -- * Copyright (c) 2018 William Pitcock <nenolod@dereferenced.org> -- * -- * Permission to use, copy, modify, and/or distribute this software for any -- * purpose with or without fee is hereby granted, provided that the above -- * copyright notice and this permission notice appear in all copies. -- * -- * This software is provided 'as is' and without any warranty, express or -- * implied. In no event shall the authors be liable for any damages arising -- * from the use of this software. -- */ -- --#define _GNU_SOURCE --#include <stddef.h> --#include <stdarg.h> --#include <signal.h> --#include <string.h> --#include <stdint.h> --#include <errno.h> --#include <unistd.h> --#include <sys/syscall.h> -- -- --int --__setcontext(const ucontext_t *ucp) --{ --#ifdef SYS_swapcontext -- int r; -- -- r = syscall(SYS_swapcontext, NULL, (void *) ucp, sizeof(ucontext_t)); -- if (r < 0) -- { -- errno = -r; -- return -1; -- } -- -- return r; --#else -- errno = ENOSYS; -- return -1; --#endif --} -- -- --extern __typeof(__setcontext) setcontext __attribute__((weak, __alias__("__setcontext"))); -diff --git a/arch/ppc64/swapcontext.S b/arch/ppc64/swapcontext.S -new file mode 100644 -index 0000000..982537a ---- /dev/null -+++ b/arch/ppc64/swapcontext.S -@@ -0,0 +1,28 @@ -+/* -+ * Copyright (c) 2019 Bobby Bingham <koorogi@koorogi.info> -+ * -+ * Permission to use, copy, modify, and/or distribute this software for any -+ * purpose with or without fee is hereby granted, provided that the above -+ * copyright notice and this permission notice appear in all copies. -+ * -+ * This software is provided 'as is' and without any warranty, express or -+ * implied. In no event shall the authors be liable for any damages arising -+ * from the use of this software. -+ */ -+ -+.global __swapcontext -+__swapcontext: -+ addis 2, 12, .TOC.-__swapcontext@ha -+ addi 2, 12, .TOC.-__swapcontext@l -+ -+ .localentry __swapcontext,.-__swapcontext -+ -+ li 0, 249 # SYS_swapcontext -+ li 5, 1696 # sizeof(ucontext_t) -+ sc -+ -+.hidden __retfromsyscall -+ b __retfromsyscall -+ -+.weak swapcontext -+swapcontext = __swapcontext -diff --git a/arch/ppc64/swapcontext.c b/arch/ppc64/swapcontext.c -deleted file mode 100644 -index af14bc2..0000000 ---- a/arch/ppc64/swapcontext.c -+++ /dev/null -@@ -1,45 +0,0 @@ --/* -- * Copyright (c) 2018 William Pitcock <nenolod@dereferenced.org> -- * -- * Permission to use, copy, modify, and/or distribute this software for any -- * purpose with or without fee is hereby granted, provided that the above -- * copyright notice and this permission notice appear in all copies. -- * -- * This software is provided 'as is' and without any warranty, express or -- * implied. In no event shall the authors be liable for any damages arising -- * from the use of this software. -- */ -- --#define _GNU_SOURCE --#include <stddef.h> --#include <stdarg.h> --#include <signal.h> --#include <string.h> --#include <stdint.h> --#include <errno.h> --#include <unistd.h> --#include <sys/syscall.h> -- -- --int --__swapcontext(ucontext_t *oucp, const ucontext_t *ucp) --{ --#ifdef SYS_swapcontext -- int r; -- -- r = syscall(SYS_swapcontext, oucp, ucp, sizeof(ucontext_t)); -- if (r < 0) -- { -- errno = -r; -- return -1; -- } -- -- return r; --#else -- errno = ENOSYS; -- return -1; --#endif --} -- -- --extern __typeof(__swapcontext) swapcontext __attribute__((weak, __alias__("__swapcontext"))); diff --git a/system/libucontext/static.patch b/system/libucontext/static.patch deleted file mode 100644 index a51e55f64..000000000 --- a/system/libucontext/static.patch +++ /dev/null @@ -1,76 +0,0 @@ -From 9cc1a2c0e62c75dc7afd20d5e337953f44693b70 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Gabriel=20Iva=C8=99cu?= <givascu@bitdefender.com> -Date: Tue, 9 Apr 2019 16:07:39 +0300 -Subject: [PATCH] Build static library too - ---- - Makefile | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -diff --git a/Makefile b/Makefile -index d6ff1b0..d81153c 100644 ---- a/Makefile -+++ b/Makefile -@@ -8,10 +8,14 @@ LIBUCONTEXT_S_SRC = $(wildcard arch/${ARCH}/*.S) - LIBUCONTEXT_OBJ = ${LIBUCONTEXT_C_SRC:.c=.o} ${LIBUCONTEXT_S_SRC:.S=.o} - LIBUCONTEXT_SOVERSION = 0 - LIBUCONTEXT_NAME = libucontext.so -+LIBUCONTEXT_STATIC_NAME = libucontext.a - LIBUCONTEXT_SONAME = libucontext.so.${LIBUCONTEXT_SOVERSION} - LIBUCONTEXT_PATH = /lib/${LIBUCONTEXT_SONAME} - --all: ${LIBUCONTEXT_SONAME} -+all: ${LIBUCONTEXT_SONAME} ${LIBUCONTEXT_STATIC_NAME} -+ -+${LIBUCONTEXT_STATIC_NAME}: ${LIBUCONTEXT_OBJ} -+ $(AR) rcs ${LIBUCONTEXT_STATIC_NAME} ${LIBUCONTEXT_OBJ} - - ${LIBUCONTEXT_NAME}: ${LIBUCONTEXT_OBJ} - $(CC) -o ${LIBUCONTEXT_NAME} -Wl,-soname,${LIBUCONTEXT_SONAME} \ -From 2e15b383272fafbbb92882990b8f339e2c6888d2 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Gabriel=20Iva=C8=99cu?= <givascu@bitdefender.com> -Date: Fri, 12 Apr 2019 10:48:24 +0300 -Subject: [PATCH] Makefile: Handle static library at clean/install - ---- - .gitignore | 1 + - Makefile | 5 ++++- - 2 files changed, 5 insertions(+), 1 deletion(-) - -diff --git a/.gitignore b/.gitignore -index 4fb95ca..d2e350f 100644 ---- a/.gitignore -+++ b/.gitignore -@@ -34,5 +34,6 @@ Makefile.in - - *.o - test_libucontext -+libucontext.a - libucontext.so - libucontext.so.* -diff --git a/Makefile b/Makefile -index d81153c..8a605fd 100644 ---- a/Makefile -+++ b/Makefile -@@ -11,6 +11,7 @@ LIBUCONTEXT_NAME = libucontext.so - LIBUCONTEXT_STATIC_NAME = libucontext.a - LIBUCONTEXT_SONAME = libucontext.so.${LIBUCONTEXT_SOVERSION} - LIBUCONTEXT_PATH = /lib/${LIBUCONTEXT_SONAME} -+LIBUCONTEXT_STATIC_PATH = /lib/${LIBUCONTEXT_STATIC_NAME} - - all: ${LIBUCONTEXT_SONAME} ${LIBUCONTEXT_STATIC_NAME} - -@@ -31,10 +32,12 @@ ${LIBUCONTEXT_SONAME}: ${LIBUCONTEXT_NAME} - $(CC) -fPIC -DPIC ${CFLAGS} ${CPPFLAGS} -c -o $@ $< - - clean: -- rm -f ${LIBUCONTEXT_NAME} ${LIBUCONTEXT_SONAME} ${LIBUCONTEXT_OBJ} test_libucontext -+ rm -f ${LIBUCONTEXT_NAME} ${LIBUCONTEXT_SONAME} ${LIBUCONTEXT_STATIC_NAME} \ -+ ${LIBUCONTEXT_OBJ} test_libucontext - - install: all - install -D -m755 ${LIBUCONTEXT_NAME} ${DESTDIR}/${LIBUCONTEXT_PATH} -+ install -D -m664 ${LIBUCONTEXT_STATIC_NAME} ${DESTDIR}/${LIBUCONTEXT_STATIC_PATH} - ln -sf ${LIBUCONTEXT_SONAME} ${DESTDIR}/lib/${LIBUCONTEXT_NAME} - - check: test_libucontext ${LIBUCONTEXT_SONAME} diff --git a/system/lvm2/APKBUILD b/system/lvm2/APKBUILD index 4bb0d5d0c..3baea9c09 100644 --- a/system/lvm2/APKBUILD +++ b/system/lvm2/APKBUILD @@ -2,7 +2,7 @@ # Maintainer: Dan Theisen <djt@hxx.in> pkgname=lvm2 pkgver=2.03.08 -pkgrel=0 +pkgrel=1 pkgdesc="Logical Volume Manager 2 utilities" url="https://sourceware.org/lvm2/" arch="all" @@ -88,7 +88,7 @@ udev() { sha512sums="411c76de2acd8d7d707b60a4aab3f846004a1fbdc7b1d3f34d21af8ed45716adc0516b11491a26261580da7396d13a506e3994b32f5d1cefdf49c97e5d62d2e3 LVM2.2.03.08.tgz -62dd89e626adc86d1f9d7c575517b4454a362868e2fd3399813b61c1cc407316156456348cd4e8148542ee26124739d6c0e72f3dddee66662a40ca86f1bc3abd fix-stdio-usage.patch +bc4473c2f48ff6cab121f92211cd1b67589a6abadd8e32ffa366fed6ddbf9c87be695aa54a6e97b5b79203bf1a7d22cdb5974da84d38b4977592ef7a061612e7 fix-stdio-usage.patch 9272ec8c5184ef5dc776ead8f74132e072b7563b5119a3a38b712f00d92a1e3878c9b3a54eb2b01dcba038110c686b39d4c17ecd0eb258537e9217d7ed03c408 mallinfo.patch d190c40a137b006d7b63298069c93ff08d2804b990e85d44739cd7c48beec9a569903b98f0d940895fc7365723ba886acd7ef0e08f1f65a1a391d1c448ce080e mlockall-default-config.patch a853078660fd2fd943538924f56e81dc5793294e26b8f61d93e6188893f15f4a438d33792b341c1865d61e03f4a371b7c7ee0db5f4130ef7cb7aeaeb9290086a lvm.initd diff --git a/system/lvm2/fix-stdio-usage.patch b/system/lvm2/fix-stdio-usage.patch index d5cc43f65..6b7ee0eaa 100644 --- a/system/lvm2/fix-stdio-usage.patch +++ b/system/lvm2/fix-stdio-usage.patch @@ -1,6 +1,6 @@ ---- ./tools/lvmcmdline.c -+++ ./tools/lvmcmdline.c -@@ -1252,7 +1252,7 @@ +--- LVM2.2.03.08/tools/lvmcmdline.c 2020-02-11 03:59:27.000000000 -0600 ++++ LVM2.2.03.08/tools/lvmcmdline.c 2020-03-22 16:17:35.470100377 -0500 +@@ -3233,7 +3233,7 @@ static int _check_standard_fds(void) int err = is_valid_fd(STDERR_FILENO); if (!is_valid_fd(STDIN_FILENO) && @@ -9,7 +9,7 @@ if (err) perror("stdin stream open"); else -@@ -1262,7 +1262,7 @@ +@@ -3243,7 +3243,7 @@ static int _check_standard_fds(void) } if (!is_valid_fd(STDOUT_FILENO) && @@ -18,7 +18,7 @@ if (err) perror("stdout stream open"); /* else no stdout */ -@@ -1270,7 +1270,7 @@ +@@ -3251,7 +3251,7 @@ static int _check_standard_fds(void) } if (!is_valid_fd(STDERR_FILENO) && @@ -27,3 +27,23 @@ printf("stderr stream open: %s\n", strerror(errno)); return 0; +--- LVM2.2.03.08/lib/commands/toolcontext.c 2020-02-11 03:59:27.000000000 -0600 ++++ LVM2.2.03.08/lib/commands/toolcontext.c 2020-03-22 16:18:35.130101016 -0500 +@@ -1599,7 +1599,7 @@ struct cmd_context *create_toolcontext(u + /* FIXME Make this configurable? */ + reset_lvm_errno(1); + +-#ifndef VALGRIND_POOL ++#if !defined(VALGRIND_POOL) && defined(__GLIBC__) + /* Set in/out stream buffering before glibc */ + if (set_buffering + #ifdef SYS_gettid +@@ -1980,7 +1980,7 @@ void destroy_toolcontext(struct cmd_cont + + if (cmd->pending_delete_mem) + dm_pool_destroy(cmd->pending_delete_mem); +-#ifndef VALGRIND_POOL ++#if !defined(VALGRIND_POOL) && defined(__GLIBC__) + if (cmd->linebuffer) { + /* Reset stream buffering to defaults */ + if (is_valid_fd(STDIN_FILENO) && diff --git a/system/make/APKBUILD b/system/make/APKBUILD index 7f8639199..6459c306f 100644 --- a/system/make/APKBUILD +++ b/system/make/APKBUILD @@ -1,7 +1,7 @@ # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=make -pkgver=4.2.1 -pkgrel=2 +pkgver=4.3 +pkgrel=0 pkgdesc="GNU make utility to maintain groups of programs" url="https://www.gnu.org/software/make" arch="all" @@ -10,15 +10,10 @@ depends="" checkdepends="perl" makedepends="" subpackages="$pkgname-doc $pkgname-lang" -source="https://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.bz2 +source="https://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.gz fix-atexit-exit.patch " -prepare() { - update_config_sub - default_prepare -} - build() { ./configure \ --build=$CBUILD \ @@ -37,5 +32,5 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="9cf00869a2f938492554f71d8cb288b5b009b3bd0489ef164f2c8f6532fc37db5c7e20af1dea288536e7c9710ee0bc6e1ddcdfc4928a8540e6e43661741825b8 make-4.2.1.tar.bz2 -a1639d9caf84a24a9f161a30d8b5dcd079b13faf2a5e3d514ff39fa11b13e796c7ff34c46ac2b56656d52129b4d3627c6102b129a4ab011f065076d872ef3992 fix-atexit-exit.patch" +sha512sums="9a1185cc468368f4ec06478b1cfa343bf90b5cd7c92c0536567db0315b0ee909af53ecce3d44cfd93dd137dbca1ed13af5713e8663590c4fdd21ea635d78496b make-4.3.tar.gz +ce638cf5689d384f961a92b186d9f53f34764b6ab55deca8cc284fc2192a981d4d896cf58ab764b032e9b09fe50d238c9b3031712bf94e368428174372307a45 fix-atexit-exit.patch" diff --git a/system/make/fix-atexit-exit.patch b/system/make/fix-atexit-exit.patch index a71d26fb5..bce562f90 100644 --- a/system/make/fix-atexit-exit.patch +++ b/system/make/fix-atexit-exit.patch @@ -4,8 +4,8 @@ POSIX says the behaviour is undefined if atexit callback calls exit(). On glibc it works, but on musl it does not. Call instead _exit() which is guaranteed to work. ---- ./output.c.orig -+++ ./output.c +--- make-4.3/src/output.c ++++ make-4.3/src/output.c @@ -495,7 +495,7 @@ perror_with_name (_("write error: stdout"), ""); else diff --git a/system/man-db/APKBUILD b/system/man-db/APKBUILD index 5ee93c438..136e0720d 100644 --- a/system/man-db/APKBUILD +++ b/system/man-db/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=man-db -pkgver=2.9.0 +pkgver=2.9.1 pkgrel=0 pkgdesc="The man command and related utilities for examining on-line help files" url="https://www.nongnu.org/man-db/" @@ -40,5 +40,5 @@ package() { rm -r "${pkgdir}"/usr/lib/tmpfiles.d # systemd } -sha512sums="7deb4421c7944276c6edf974b1336ee2f6605ee470c98d374544e2fcaa32ec2afe077c5fd020fc1f74df058384a293b8ad5a92d86b1c15a949573af46ba09cda man-db-2.9.0.tar.xz +sha512sums="ae2d1e9f293795c63f5a9a1a765478a9a59cbe5fe6f759647be5057c1ae53f90baee8d5467921f3d0102300f2111a5026eeb25f78401bcb16ce45ad790634977 man-db-2.9.1.tar.xz 0a68260fc48488408dc11855858aa2569efa3aeefd765c425b8fc988e7fee3e1d42e19eb299e518afc9b2ae54c5d37911176127124a43d5041f1137af0457097 man-db-2.8.5-iconv.patch" diff --git a/system/musl-locales/APKBUILD b/system/musl-locales/APKBUILD new file mode 100644 index 000000000..f537430d0 --- /dev/null +++ b/system/musl-locales/APKBUILD @@ -0,0 +1,32 @@ +# Contributor: Alyx <alyx@leuhta.com> +# Maintainer: Alyx <alyx@leuhta.com> +pkgname=musl-locales +pkgver=0.20200319 +pkgrel=0 +pkgdesc="Locale program for musl" +url="https://gitlab.com/rilian-la-te/musl-locales" +arch="all" +options="!check" # No test suite. +license="LGPL-3.0-only" +depends="" +makedepends="cmake make gettext-tiny-dev" +subpackages="$pkgname-lang" +source="https://distfiles.adelielinux.org/source/$pkgname-$pkgver.tar.xz" + +build() { + cmake \ + -DCMAKE_INSTALL_PREFIX=/usr \ + . + make +} + +package() { + make DESTDIR="$pkgdir" install +} + +lang() { + license="MIT" + default_lang +} + +sha512sums="921c5a4dfb45ac12b1eaf284986237bd95420a58705702d0541a46fa2480ff97cd3ac929661108c67304e4e1bfe1efed7bf8edd535b7260d7eb69d72aa294e45 musl-locales-0.20200319.tar.xz" diff --git a/system/nss/APKBUILD b/system/nss/APKBUILD index 0e233e589..687e938fd 100644 --- a/system/nss/APKBUILD +++ b/system/nss/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Łukasz Jendrysik <scadu@yandex.com> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=nss -pkgver=3.50 +pkgver=3.51 _ver=$(printf '%s' "$pkgver" | tr . _) pkgrel=0 pkgdesc="Mozilla Network Security Services" @@ -146,7 +146,7 @@ tools() { mv "$pkgdir"/usr/bin "$subpkgdir"/usr/ } -sha512sums="d6bcaf8ad65b5a97c42cd6cbbc68add5c4b49db74b2debcedb2a007f72511ac0e9bd21fd2dec041bc1975cfc8af26a48450aa0d1b962f755931ab2ac45c795b1 nss-3.50.tar.gz +sha512sums="9c894b1ea41449b000750a7b3a89fcb43dfc3d0d4d6dcc0dc288bc73996f76f1ee1ede927a8aecae6d4a07f9f3d3e3a042c6a60cf06e27e0cdc004fce2e510fd nss-3.51.tar.gz 75dbd648a461940647ff373389cc73bc8ec609139cd46c91bcce866af02be6bcbb0524eb3dfb721fbd5b0bc68c20081ed6f7debf6b24317f2a7ba823e8d3c531 nss.pc.in 0f2efa8563b11da68669d281b4459289a56f5a3a906eb60382126f3adcfe47420cdcedc6ab57727a3afeeffa2bbb4c750b43bef8b5f343a75c968411dfa30e09 nss-util.pc.in 09c69d4cc39ec9deebc88696a80d0f15eb2d8c94d9daa234a2adfec941b63805eb4ce7f2e1943857b938bddcaee1beac246a0ec627b71563d9f846e6119a4a15 nss-softokn.pc.in diff --git a/system/openssl/APKBUILD b/system/openssl/APKBUILD index 070d3d0e2..de6ae0084 100644 --- a/system/openssl/APKBUILD +++ b/system/openssl/APKBUILD @@ -1,6 +1,6 @@ # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=openssl -pkgver=1.1.1d +pkgver=1.1.1f pkgrel=0 pkgdesc="Toolkit for SSL and TLS" url="https://www.openssl.org/" @@ -12,7 +12,7 @@ makedepends_build="perl" subpackages="$pkgname-dbg $pkgname-dev $pkgname-doc libcrypto1.1:libcrypto libssl1.1:libssl" source="https://www.openssl.org/source/${pkgname}-${pkgver}.tar.gz - CVE-2019-1551.patch + ppc-auxv.patch ppc64.patch " @@ -127,6 +127,6 @@ libssl() { done } -sha512sums="2bc9f528c27fe644308eb7603c992bac8740e9f0c3601a130af30c9ffebbf7e0f5c28b76a00bbb478bad40fbe89b4223a58d604001e1713da71ff4b7fe6a08a7 openssl-1.1.1d.tar.gz -11ca61515a89766241fe0fae27f3b39767128915f288ea88840bf93e8b50ac416024cb2153efcdf2658d3e82a8e4250a0c069333dbd7347475f9dafcc45370b5 CVE-2019-1551.patch -66bbb0ae769643c8a0b1501d9c8466f08f0d8b3b2bc4fcc2c0c054ab1971ced85c07aa0e4b8168a4394d0ae407dfbd26066a7a068602ce5b58e459b12ce6d36a ppc64.patch" +sha512sums="b00bd9b5ad5298fbceeec6bb19c1ab0c106ca5cfb31178497c58bf7e0e0cf30fcc19c20f84e23af31cc126bf2447d3e4f8461db97bafa7bd78f69561932f000c openssl-1.1.1f.tar.gz +c164dd528d7408b8b2a52a0b181f2066ff00feb635df863bdeb4ce879db9ecdf7dd9033bb14b63ee5239aa814d5d777a86bb99cc37ecedae2d77a6bd86144b88 ppc-auxv.patch +e040f23770d52b988578f7ff84d77563340f37c026db7643db8e4ef18e795e27d10cb42cb8656da4d9c57a28283a2828729d70f940edc950c3422a54fea55509 ppc64.patch" diff --git a/system/openssl/ppc-auxv.patch b/system/openssl/ppc-auxv.patch new file mode 100644 index 000000000..e19d8df1f --- /dev/null +++ b/system/openssl/ppc-auxv.patch @@ -0,0 +1,17 @@ +--- openssl-1.1.1e/crypto/ppccap.c.old 2020-03-17 14:31:17.000000000 +0000 ++++ openssl-1.1.1e/crypto/ppccap.c 2020-03-30 06:32:25.943988524 +0000 +@@ -207,11 +207,9 @@ + return 0; + } + +-#if defined(__GLIBC__) && defined(__GLIBC_PREREQ) +-# if __GLIBC_PREREQ(2, 16) +-# include <sys/auxv.h> +-# define OSSL_IMPLEMENT_GETAUXVAL +-# endif ++#if defined(__linux__) ++# include <sys/auxv.h> ++# define OSSL_IMPLEMENT_GETAUXVAL + #endif + + /* I wish <sys/auxv.h> was universally available */ diff --git a/system/openssl/ppc64.patch b/system/openssl/ppc64.patch index 5f79c4ddc..c75ceedba 100644 --- a/system/openssl/ppc64.patch +++ b/system/openssl/ppc64.patch @@ -78,7 +78,7 @@ diff --git a/Configure b/Configure index 22082deb4c7..e303d98deb3 100755 --- a/Configure +++ b/Configure -@@ -1411,8 +1410,15 @@ +@@ -1402,8 +1402,15 @@ my %predefined_C = compiler_predefined($config{CROSS_COMPILE}.$config{CC}); my %predefined_CXX = $config{CXX} ? compiler_predefined($config{CROSS_COMPILE}.$config{CXX}) diff --git a/system/ruby/APKBUILD b/system/ruby/APKBUILD index 537c1010a..1f4eeafc2 100644 --- a/system/ruby/APKBUILD +++ b/system/ruby/APKBUILD @@ -38,9 +38,11 @@ # - CVE-2019-16201 # - CVE-2019-16254 # - CVE-2019-16255 +# 2.5.7-r1: +# - CVE-2020-8130 # pkgname=ruby -pkgver=2.5.7 +pkgver=2.7.1 _abiver="${pkgver%.*}.0" pkgrel=0 pkgdesc="An object-oriented language for quick and easy programming" @@ -48,13 +50,12 @@ url="https://www.ruby-lang.org/" arch="all" license="Ruby AND BSD-2-Clause" depends="ca-certificates" -depends_dev="ruby=$pkgver-r$pkgrel gmp-dev" +depends_dev="ruby=$pkgver-r$pkgrel gmp-dev libucontext-dev" makedepends="$depends_dev zlib-dev openssl-dev db-dev libedit-dev libffi-dev coreutils yaml-dev linux-headers autoconf" install="$pkgname.post-upgrade" subpackages="$pkgname-doc $pkgname-dev $pkgname-bigdecimal - $pkgname-did_you_mean::noarch $pkgname-fiddle $pkgname-io-console:io_console $pkgname-irb::noarch @@ -108,6 +109,9 @@ build() { export CFLAGS="$CFLAGS -fno-omit-frame-pointer -fno-strict-aliasing" export CPPFLAGS="$CPPFLAGS -fno-omit-frame-pointer -fno-strict-aliasing" + # Needed for coroutine stuff + export LIBS="-lucontext" + # ruby saves path to install. we want use $PATH export INSTALL=install @@ -144,7 +148,7 @@ package() { rm -R "$pkgdir"$_gemdir/cache/* if [ -d "$pkgdir"/usr/local ]; then - local f="$(cd "$pkgdir" ; find usr/local -type f)" + f="$(cd "$pkgdir" ; find usr/local -type f)" if [ -n "$f" ]; then error "Found files in /usr/local:" echo "$f" @@ -162,14 +166,6 @@ bigdecimal() { _mvgem bigdecimal } -did_you_mean() { - pkgdesc="Did you mean? experience in Ruby" - license="MIT" - depends="$pkgname-libs" - - _mvgem did_you_mean -} - fiddle() { pkgdesc="A libffi wrapper for Ruby" license="BSD-2-Clause" @@ -295,7 +291,7 @@ full() { } _mv() { - local i; for i in "$@"; do + for i in "$@"; do mkdir -p "$subpkgdir"/${i%/*} mv "$pkgdir"/${i} "$subpkgdir"/${i%/*}/ done @@ -303,7 +299,7 @@ _mv() { _mvgem() { cd "$pkgdir" - local path; for path in ./$_rubydir/${1}.rb \ + for path in ./$_rubydir/${1}.rb \ ./$_rubydir/${1} \ ./$_rubydir/$_chost/${1} \ ./$_rubydir/$_chost/${1}.so \ @@ -314,8 +310,8 @@ _mvgem() { done } -sha512sums="63b7c75fab44cd1bd22f22ddec00c740cf379ac7240da0dfafcec54347766695faef47428ce1c433fd77fa96992e976c984697067fa526236d383b12adc9ce75 ruby-2.5.7.tar.xz -20e7e5ee9936a93872fe1ad836dd1fde001fe4a0e7ed54c26727ad83da3ceb0e6247681d9dd4f98a69e1b0250703ed8fc682d44075780d5f47faa1d5f58d2bdb rubygems-avoid-platform-specific-gems.patch +sha512sums="79f98b1ea98e0b10ec79da1883e8fc84d48ffe5c09ae945cbebde94365e35a589d919aac965f74d70ca7e21370ecee631ac5a8f9c4eac61d62f5aa629f27bf31 ruby-2.7.1.tar.xz +a142199140fa711a64717429e9069fd2082319abaf4b129f561db374b3bc16e2a90cc4c849b5d28334505d1c71fed242aef3c44d983da3513d239dcb778673a5 rubygems-avoid-platform-specific-gems.patch 814fe6359505b70d8ff680adf22f20a74b4dbd3fecc9a63a6c2456ee9824257815929917b6df5394ed069a6869511b8c6dce5b95b4acbbb7867c1f3a975a0150 test_insns-lower-recursion-depth.patch -e99b36940fa8fdd445d82738c70b8fc042cab042a4662cab156578aad2dac9673a96da22b6676aa36beac08070e92a7798c60d6f36eeb169216c4c51864ce2fe fix-get_main_stack.patch -6b88fccce164db1d8beb16adeffdd7effd077e9842b7f61deddebeb39afcf9b839192b68a43ce66a1ff0c9aeaacc4f13a0ee56184c22e822cd8b10a07a1c87b2 libedit-compat.patch" +3ffc034c01110ee5531265333ca5ee8d61d08131843fe3004c5b34c88c9c1b32cb4ed89574f393177c8bd526e9c15da61ab344f93adf07b9148c561ee19e2eb5 fix-get_main_stack.patch +6cbeb9d05a3c028e6bd371deaeec6e97fa8ebd03f0dc9d406648a03b569bb44a148e2bd81998a2a973e91ded8a08af141bdebe3e324bdc32df5e74209a42b024 libedit-compat.patch" diff --git a/system/ruby/fix-get_main_stack.patch b/system/ruby/fix-get_main_stack.patch index 4b1a101ab..b56bc114b 100644 --- a/system/ruby/fix-get_main_stack.patch +++ b/system/ruby/fix-get_main_stack.patch @@ -2,7 +2,7 @@ diff --git a/thread_pthread.c b/thread_pthread.c index 951885ffa0..cf90321d1d 100644 --- a/thread_pthread.c +++ b/thread_pthread.c -@@ -552,9 +552,6 @@ hpux_attr_getstackaddr(const pthread_attr_t *attr, void **addr) +@@ -656,9 +656,6 @@ hpux_attr_getstackaddr(const pthread_attr_t *attr, void **addr) # define MAINSTACKADDR_AVAILABLE 0 # endif #endif @@ -12,7 +12,7 @@ index 951885ffa0..cf90321d1d 100644 #ifdef STACKADDR_AVAILABLE /* -@@ -632,6 +629,55 @@ get_stack(void **addr, size_t *size) +@@ -740,6 +737,55 @@ get_stack(void **addr, size_t *size) return 0; #undef CHECK_ERR } diff --git a/system/ruby/libedit-compat.patch b/system/ruby/libedit-compat.patch index 601a9feea..670b16dc8 100644 --- a/system/ruby/libedit-compat.patch +++ b/system/ruby/libedit-compat.patch @@ -1,6 +1,6 @@ --- ruby-2.5.5/ext/readline/readline.c.old 2017-09-30 08:35:23.000000000 +0000 +++ ruby-2.5.5/ext/readline/readline.c 2019-09-09 06:12:00.300098741 +0000 -@@ -571,6 +571,9 @@ +@@ -572,6 +572,9 @@ rb_syserr_fail(save_errno, "fdopen"); } rl_instream = readline_rl_instream = f; @@ -10,7 +10,7 @@ readline_instream = input; } return input; -@@ -607,6 +610,9 @@ +@@ -608,6 +611,9 @@ rb_syserr_fail(save_errno, "fdopen"); } rl_outstream = readline_rl_outstream = f; diff --git a/system/ruby/rubygems-avoid-platform-specific-gems.patch b/system/ruby/rubygems-avoid-platform-specific-gems.patch index da6884d09..4eb26a63f 100644 --- a/system/ruby/rubygems-avoid-platform-specific-gems.patch +++ b/system/ruby/rubygems-avoid-platform-specific-gems.patch @@ -17,7 +17,7 @@ a platform-agnostic (source) gem. Users can override it using --- a/lib/rubygems.rb +++ b/lib/rubygems.rb -@@ -764,7 +764,10 @@ +@@ -759,7 +759,10 @@ def self.platforms @platforms ||= [] if @platforms.empty? |