diff --git a/parts.rst b/parts.rst index c079e0b1..96a528f7 100644 --- a/parts.rst +++ b/parts.rst @@ -1133,7 +1133,7 @@ Differences to 2.0.1: Python 2.3.7 is then rebuilt to include Unicode support. -gperf 3.1 +gperf 3.3 ========= ``gperf`` is a perfect hash function generator (hash function is injective). diff --git a/steps/SHA256SUMS.pkgs b/steps/SHA256SUMS.pkgs index fb8298bc..e602eb83 100644 --- a/steps/SHA256SUMS.pkgs +++ b/steps/SHA256SUMS.pkgs @@ -9,7 +9,7 @@ b687370caaa654ba2fc622188240f50ea305a1c926accbced153df9179697adf autoconf-2.53_ b363f22b42418fb2507bf722b0a6b5b03410ac58c44c400767d650d828696eaa autoconf-2.69_0.tar.bz2 cde51b816fcce47742064f9dc0b4871e4194190be5065dc1852b39339cc9115b autoconf-2.71_0.tar.bz2 6ff691e3ddd4f3d1796d28b07a2a96691dbd9801844c99ccbe660da59dabd74b autoconf-archive-2021.02.19_0.tar.bz2 -8d0a3f35b7f67cfd5a5963ae08bf25282aed718466200f16c526b3c957385f5a autogen-5.18.16_0.tar.bz2 +19ecb44e6de8e6cf16b1b858224214997ee14c1f05d4f1992ac40c10ca4c1e4b autogen-5.18.16_0.tar.bz2 02a426e82a52d4a2cd7e73fe3dc5a2c58b3ed100f24a92c57e42511fd86e247c automake-1.10.3_0.tar.bz2 34925adeaa2876a5e068adeb17b71fe7c7105244c3cb5439d33f7406310674da automake-1.11.2_0.tar.bz2 7e36e9e4b3957c95b6de8ff475c9b37aa007e2f9735b01c0eaf14b711fdd112f automake-1.15.1_0.tar.bz2 @@ -53,14 +53,14 @@ f6c65eef86aa9f5317396a8443b25ed87a18f72d07dfd2231a594aa2c1a68942 findutils-4.2. c925739472260498342ba6dc3263da937abf5237e7e9102622bf5657ec98094a gawk-3.0.4_0.tar.bz2 e119505fb6218deaaafbf5d31e0ce3dc1e60dae8475fe2a3f9230f9e9e8c7eaf gawk-5.3.0_0.tar.bz2 b4fafdabdbd8c1f9f7c96fc4677023a8151fe2afe0702e3dee920157b30deb98 gc-8.0.4_0.tar.bz2 -ad41b30f9d8ecf4daf62f221705b59f40b8dbfc6b4fd2bdd692def41b9059133 gcc-10.5.0_0.tar.bz2 +4d19c0dc6b3731f7a4f9f3e183b8bc55833bb6d7671393aa78caa3238671b8fe gcc-10.5.0_0.tar.bz2 519cb272f4e819024c788b38963cf6d98b3b96c6c343ddb2e4b6d12aebb50b39 gcc-15.2.0_0.tar.bz2 d34de902de6de9204abedb834c4c39fbb95b993e545fbb090de2b028fa1d4a61 gcc-4.0.4_0.tar.bz2 2f13b3306832d882536c97d0302f2ec1801193086dbbe62388f930858e5728a3 gcc-4.0.4_1.tar.bz2 931f105104b446dff5be30927e6e98d798844e6cd446b246f30def11984a9587 gcc-4.7.4_0.tar.bz2 38b015fe07ed755377b78f8ac8815d8bb57fa8c79293110522231250a6ad8a6f gettext-0.26_0.tar.bz2 96f33b53c24f5f46a23c2b9eef8147e684c796889a83bdd39254a73393594a49 gmp-6.2.1_0.tar.bz2 -8fb02e7145c2befab10bace272ef3004700b6ef0ef58d3573bd69de25e0c9e1b gperf-3.1_0.tar.bz2 +f06593eb6343d5af77c82c0c8cc15efa08b491b0cc04ebb1030cdc459f9e8903 gperf-3.3_0.tar.bz2 c1989fc2855dbb0350c4e5b677028306614a9f4b5cb6c01fd459c5e1abf592b9 grep-2.4_0.tar.bz2 3f3247c7d05fcef0d9f624a523afa01257207584045eb7efb7fb8f29fc782c7a grep-3.7_0.tar.bz2 d7a28778c1199604ba7af0e706c56c65fa345cae7e80646956f1be71ae30b448 grub-2.06_0.tar.bz2 diff --git a/steps/autogen-5.18.16/files/gperf-3.3.patch b/steps/autogen-5.18.16/files/gperf-3.3.patch new file mode 100644 index 00000000..dbf08702 --- /dev/null +++ b/steps/autogen-5.18.16/files/gperf-3.3.patch @@ -0,0 +1,21 @@ +SPDX-FileCopyrightText: Samuel Tyler + +SPDX-License-Identifier: GPL-3.0-or-later + +In gperf 3.3, a new set of #if .. #elif .. #endif is added. Obviously +this sed then breaks the C preprocessor. + +It turns out these are unnecessary. + +--- a/autoopts/tpl/str2enum.tpl 2026-01-13 19:48:05.623459591 +1100 ++++ b/autoopts/tpl/str2enum.tpl 2026-01-13 19:47:41.613458157 +1100 +@@ -811,9 +811,6 @@ + -e '/GNUC_.*_INLINE/d' \ + -e '/__attribute__.*inline/d' \ + -e '/^#if.*== *32/,/^#endif/d' \ +- -e '/^#ifdef/d' \ +- -e '/^#else/d' \ +- -e '/^#endif$/d' \ + -e '/key = [=(. base-type-name)=]_hash/s/key = /key = (int)/' \ + -e 's/^\(const [=(. base-type-name)=]_map_t\)/static inline \1/' \ + > baseline diff --git a/steps/autogen-5.18.16/pass1.sh b/steps/autogen-5.18.16/pass1.sh index afa269fa..f7b68b2d 100755 --- a/steps/autogen-5.18.16/pass1.sh +++ b/steps/autogen-5.18.16/pass1.sh @@ -6,6 +6,8 @@ noextract="autogen-5.18.16.tar.xz" src_prepare() { + default + mkdir build mv ../autogen-5.18.16 build/src mv ../autogen-5.18.16.tar.xz build/ @@ -25,6 +27,7 @@ src_compile() { SKIP_MAIN=1 . ./bootstrap_tarball.sh prepare_tarball + patch -Np1 -i ../../gperf-3.3.patch -d build/autogen-5.18.16 bootstrap_columns bootstrap_getdefs bootstrap_autogen @@ -42,10 +45,10 @@ src_compile() { SOURCE_DIR="$PWD" ./config/bootstrap # Specify timeout to avoid non-reproducibility CPPFLAGS=-D_LARGEFILE64_SOURCE=1 ./configure \ - --prefix="${FINALPREFIX}" \ - --libdir="${FINALPREFIX}/lib/${TARGET}" \ - --disable-shared \ - --enable-timeout=15 + --prefix="${FINALPREFIX}" \ + --libdir="${FINALPREFIX}/lib/${TARGET}" \ + --disable-shared \ + --enable-timeout=15 touch doc/agdoc.texi # build later make -j1 CFLAGS=-Wno-error diff --git a/steps/gperf-3.1/sources b/steps/gperf-3.1/sources deleted file mode 100644 index 10330a6e..00000000 --- a/steps/gperf-3.1/sources +++ /dev/null @@ -1 +0,0 @@ -f https://mirrors.kernel.org/gnu/gperf/gperf-3.1.tar.gz 588546b945bba4b70b6a3a616e80b4ab466e3f33024a352fc2198112cdbb3ae2 diff --git a/steps/gperf-3.1/pass1.sh b/steps/gperf-3.3/pass1.sh similarity index 54% rename from steps/gperf-3.1/pass1.sh rename to steps/gperf-3.3/pass1.sh index a3d1a1ae..814042fb 100755 --- a/steps/gperf-3.1/pass1.sh +++ b/steps/gperf-3.3/pass1.sh @@ -3,15 +3,17 @@ # SPDX-License-Identifier: GPL-3.0-or-later src_prepare() { - find . -name '*.info*' -delete -exec touch {} + + default - for d in doc tests lib src; do - cd $d - ln -s ../aclocal.m4 aclocal.m4 - autoreconf-2.71 -fi - cd .. - done - autoreconf-2.71 -fi + rm doc/gperf.{1,dvi,info,pdf,ps} doc/*.html + touch doc/gperf.info doc/gperf.pdf + + # Useless tests things + rm tests/*.exp tests/{languages,charsets}.gperf tests/lang-ucs2.in + + GNULIB_SRCDIR=$(realpath ../gnulib-b08ee1d) \ + AUTOCONF=autoconf-2.71 \ + ./autogen.sh } src_configure() { diff --git a/steps/gperf-3.3/patches/reproducible-docs.patch b/steps/gperf-3.3/patches/reproducible-docs.patch new file mode 100644 index 00000000..f78fdc83 --- /dev/null +++ b/steps/gperf-3.3/patches/reproducible-docs.patch @@ -0,0 +1,19 @@ +SPDX-FileCopyrightText: 2026 Samuel Tyler + +SPDX-License-Identifier: GPL-3.0-or-later + +Make output of the vendored texi2html reproducible. + +--- gperf-3.3/doc/texi2html 2026-01-15 21:18:39.886947132 +1100 ++++ gperf-3.3/doc/texi2html 2026-01-15 21:22:28.937926499 +1100 +@@ -1842,7 +1842,9 @@ + + @MoY = ('January', 'February', 'March', 'April', 'May', 'June', + 'July', 'August', 'September', 'October', 'November', 'December'); +- ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime(time); ++ ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = defined($ENV{SOURCE_DATE_EPOCH}) ? ++ gmtime($ENV{SOURCE_DATE_EPOCH}) : ++ localtime(time); + $year += ($year < 70) ? 2000 : 1900; + return("$mday $MoY[$mon] $year"); + } diff --git a/steps/gperf-3.3/sources b/steps/gperf-3.3/sources new file mode 100644 index 00000000..9ab7b8f2 --- /dev/null +++ b/steps/gperf-3.3/sources @@ -0,0 +1,2 @@ +f https://mirrors.kernel.org/gnu/gperf/gperf-3.3.tar.gz fd87e0aba7e43ae054837afd6cd4db03a3f2693deb3619085e6ed9d8d9604ad8 +g https://https.git.savannah.gnu.org/git/gnulib.git~b08ee1d _ b2f5ee417643f729b6c679fbc0c3cd5e448fa17d2b0a9fd612a8e203573a8757 gnulib-b08ee1d.tar.gz diff --git a/steps/manifest b/steps/manifest index b7fa5793..bf4497a7 100644 --- a/steps/manifest +++ b/steps/manifest @@ -197,7 +197,7 @@ build: python-2.0.1 build: python-2.0.1 build: python-2.3.7 build: python-2.3.7 -build: gperf-3.1 +build: gperf-3.3 build: gettext-0.26 build: texinfo-6.7 build: libunistring-0.9.10