Your message dated Mon, 22 Apr 2024 17:02:11 +0000 with message-id <e1ryx3t-0052ww...@fasolo.debian.org> and subject line Bug#1039612: fixed in libtool 2.4.7-7~deb12u1 has caused the Debian Bug report #1039612, regarding libtool: Incorrect check for += operator causes func_append to fail to be marked as done.
This means that you claim that the problem has been dealt with. If this is not the case it is now your responsibility to reopen the Bug report if necessary, and/or fix the problem forthwith. (NB: If you are a system administrator and have no idea what this message is talking about, this may indicate a serious mail system misconfiguration somewhere. Please contact ow...@bugs.debian.org immediately.) -- 1039612: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1039612 Debian Bug Tracking System Contact ow...@bugs.debian.org with problems
--- Begin Message ---Package: libtool Version: 2.4.6-15 Severity: grave Tags: patch Justification: renders package unusable X-Debbugs-Cc: erjoa...@gmail.com Dear Maintainer, While building isc-dhcpd-server, I tried using autoreconf as per instructions to generate the ./configure file. But running `autoreconf -i` on this project failed with this error: /usr/bin/libtoolize: 1: eval: hookable_fns+=: not found /usr/bin/libtoolize: 1: eval: hookable_fns+=: not found /usr/bin/libtoolize: 1: eval: hookable_fns+=: not found /usr/bin/libtoolize: 1: eval: hookable_fns+=: not found libtoolize: error: 'func_options_prep' does not accept hook functions. autoreconf: libtoolize failed with exit status: 1 Some others have reported this error, but the solution mentioned in that thread was to run as root, which I shouldn't have to do to build in a local directory: https://github.com/libsndfile/libsndfile/issues/132#issue-153391414 Looking at the source, I noticed the problem is not that `func_options_prep does not accept hook functions`, but that the script assumes the append operator `+=` works when it doesn't. This assumption is based on the value of BASH_VERSION, but unfortunately this is not reliable: if test set = "${BASH_VERSION+set}${ZSH_VERSION+set}"; then : ${_G_HAVE_ARITH_OP="yes"} : ${_G_HAVE_XSI_OPS="yes"} # The += operator was introduced in bash 3.1 case $BASH_VERSION in [12].* | 3.0 | 3.0*) ;; *) : ${_G_HAVE_PLUSEQ_OP="yes"} # not really! ;; esac fi It's not reliable because on my system, plain debian 11, /bin/sh is linked to /usr/bin/dash, but the BASH_VERSION environment variable appears to have been inherited from the bash process on my terminal and it is not modified or deleted by dash. And += doesn't work in dash: █[debian-x1-7th][isc-dhcp-4.4.1][0]$ ls -l /usr/bin/sh lrwxrwxrwx 1 root root 4 Apr 27 17:06 /usr/bin/sh -> dash █[debian-x1-7th][isc-dhcp-4.4.1][130]$ dash \[\]█\[\][\h][\W][0]$ \[\]echo $BASH_VERSION 5.1.4(1)-release \[\]█\[\][\h][\W][0]$ \[\]a=1 \[\]█\[\][\h][\W][0]$ \[\]a+=2 dash: 3: a+=2: not found \[\]█\[\][\h][\W][127]$ \[\] There's some advice online about how to find the true name of the shell: https://stackoverflow.com/questions/23011370/ but I think it is too complicated and error prone, and I think the simplest way to correct this is to actually test for the feature directly as is already being done in the script: (eval 'x=a; x+=" b"; test "a b" = "$x"') && _G_HAVE_PLUSEQ_OP=yes There is a comment expressing concern about speed of the test above and about minimizing forks: # We should try to minimise forks, especially on Windows where they are # unreasonably slow, so skip the feature probes when bash or zsh are # being used: But I don't see any reason for needing a fork here: if test -z "$_G_HAVE_PLUSEQ_OP" && \ __PLUSEQ_TEST="a" && \ __PLUSEQ_TEST+=" b" 2>/dev/null && \ test "a b" = "$__PLUSEQ_TEST"; then _G_HAVE_PLUSEQ_OP=yes fi Even if a fork were needed, I don't think the possible speedup of avoiding the a one-line feature probe is worth the risk of breaking users who invoke this script from a parent bash terminal. I'm including my suggested patch inline below: 527,547c527,535 < # We should try to minimise forks, especially on Windows where they are < # unreasonably slow, so skip the feature probes when bash or zsh are < # being used: < if test set = "${BASH_VERSION+set}${ZSH_VERSION+set}"; then < : ${_G_HAVE_ARITH_OP="yes"} < : ${_G_HAVE_XSI_OPS="yes"} < # The += operator was introduced in bash 3.1 < case $BASH_VERSION in < [12].* | 3.0 | 3.0*) ;; < *) < : ${_G_HAVE_PLUSEQ_OP="yes"} < ;; < esac < fi < < # _G_HAVE_PLUSEQ_OP < # Can be empty, in which case the shell is probed, "yes" if += is < # useable or anything else if it does not work. < test -z "$_G_HAVE_PLUSEQ_OP" \ < && (eval 'x=a; x+=" b"; test "a b" = "$x"') 2>/dev/null \ < && _G_HAVE_PLUSEQ_OP=yes --- > # _G_HAVE_PLUSEQ_OP > # Can be empty, in which case the shell is probed, "yes" if += is > # usable or anything else if it does not work. > if test -z "$_G_HAVE_PLUSEQ_OP" && \ > __PLUSEQ_TEST="a" && \ > __PLUSEQ_TEST+=" b" 2>/dev/null && \ > test "$__PLUSEQ_TEST" = "a b"; then > _G_HAVE_PLUSEQ_OP=yes > fi Thanks, Ernesto *** Reporter, please consider answering these questions, where appropriate *** * What led up to the situation? * What exactly did you do (or not do) that was effective (or ineffective)? * What was the outcome of this action? * What outcome did you expect instead? *** End of the template - remove these template lines *** -- System Information: Debian Release: 11.7 APT prefers oldstable-updates APT policy: (500, 'oldstable-updates'), (500, 'oldstable') Architecture: amd64 (x86_64) Kernel: Linux 5.10.0-22-amd64 (SMP w/8 CPU threads) Kernel taint flags: TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE not set Shell: /bin/sh linked to /usr/bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled Versions of packages libtool depends on: ii autotools-dev 20180224.1+nmu1 ii cpp 4:10.2.1-1 ii file 1:5.39-3 ii gcc [c-compiler] 4:10.2.1-1 ii gcc-10 [c-compiler] 10.2.1-6 ii libc6-dev [libc-dev] 2.31-13+deb11u6 Versions of packages libtool recommends: ii libltdl-dev 2.4.6-15 Versions of packages libtool suggests: ii autoconf 2.69-14 ii automake [automaken] 1:1.16.3-2 pn gcj-jdk <none> ii gfortran 4:10.2.1-1 ii gfortran-10 [fortran95-compiler] 10.2.1-6 pn libtool-doc <none> -- no debconf information527,547c527,535 < # We should try to minimise forks, especially on Windows where they are < # unreasonably slow, so skip the feature probes when bash or zsh are < # being used: < if test set = "${BASH_VERSION+set}${ZSH_VERSION+set}"; then < : ${_G_HAVE_ARITH_OP="yes"} < : ${_G_HAVE_XSI_OPS="yes"} < # The += operator was introduced in bash 3.1 < case $BASH_VERSION in < [12].* | 3.0 | 3.0*) ;; < *) < : ${_G_HAVE_PLUSEQ_OP="yes"} < ;; < esac < fi < < # _G_HAVE_PLUSEQ_OP < # Can be empty, in which case the shell is probed, "yes" if += is < # useable or anything else if it does not work. < test -z "$_G_HAVE_PLUSEQ_OP" \ < && (eval 'x=a; x+=" b"; test "a b" = "$x"') 2>/dev/null \ < && _G_HAVE_PLUSEQ_OP=yes --- > # _G_HAVE_PLUSEQ_OP > # Can be empty, in which case the shell is probed, "yes" if += is > # useable or anything else if it does not work. > if test -z "$_G_HAVE_PLUSEQ_OP" && \ > __PLUSEQ_TEST="a" && \ > __PLUSEQ_TEST+=" b" 2>/dev/null && \ > test "a b" = "$__PLUSEQ_TEST"; then > _G_HAVE_PLUSEQ_OP=yes > fi
--- End Message ---
--- Begin Message ---Source: libtool Source-Version: 2.4.7-7~deb12u1 Done: Andreas Beckmann <a...@debian.org> We believe that the bug you reported is fixed in the latest version of libtool, which is due to be installed in the Debian FTP archive. A summary of the changes between this version and the previous one is attached. Thank you for reporting the bug, which will now be closed. If you have further comments please address them to 1039...@bugs.debian.org, and the maintainer will reopen the bug report if appropriate. Debian distribution maintenance software pp. Andreas Beckmann <a...@debian.org> (supplier of updated libtool package) (This message was generated automatically at their request; if you believe that there is a problem with it please contact the archive administrators by mailing ftpmas...@ftp-master.debian.org) -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 Format: 1.8 Date: Tue, 09 Apr 2024 22:04:40 +0200 Source: libtool Architecture: source Version: 2.4.7-7~deb12u1 Distribution: bookworm Urgency: medium Maintainer: Alastair McKinstry <mckins...@debian.org> Changed-By: Andreas Beckmann <a...@debian.org> Closes: 1039583 1039612 1041229 Changes: libtool (2.4.7-7~deb12u1) bookworm; urgency=medium . * Non-maintainer upload. * Rebuild for bookworm. * Reinstate obsolete Breaks, Provides. . libtool (2.4.7-7) unstable; urgency=medium . * Remove obsolete Breaks: for oldstable, Provides: libltdl7-dev. * Replace Breaks: libltdl3-dev with Conflicts: libltdl3-dev. Thanks Andreas Beckmann. Closes: #1041229 . libtool (2.4.7-6) unstable; urgency=medium . * Incorrect check for += operator causes func_append to fail Patch from Ernesto Alfonso. Closes: #1039612 * Standards-Version: 4.6.2 * Add Breaks/Replaces on libtldl3-dev. Closes: #1039583 Checksums-Sha1: a6cd16cd9029c360d22fb0800bf36eec6c3b7d4e 2314 libtool_2.4.7-7~deb12u1.dsc 66bc345cd1d47f6b081091b98973f2658c3ff24e 41016 libtool_2.4.7-7~deb12u1.debian.tar.xz 31aff4212c73e5d0ff4ad8134eceda31a22c85e2 6296 libtool_2.4.7-7~deb12u1_source.buildinfo Checksums-Sha256: 4285486d14795acbc423442e183c976625f7d481ac0ec3a0ec1ff800046310c4 2314 libtool_2.4.7-7~deb12u1.dsc c9e5cb0a64b0d02976bcb02b554a565fbdc5da9aef036ecd66328d6230843dda 41016 libtool_2.4.7-7~deb12u1.debian.tar.xz 23b32a19c73770bb14645257e8a237e15b8da7600131045a2b51ffa9d4727ed9 6296 libtool_2.4.7-7~deb12u1_source.buildinfo Files: f316573efa903a845d26348f27a47ef0 2314 devel optional libtool_2.4.7-7~deb12u1.dsc c40bc74f5d89a4f84cd403b574f2c287 41016 devel optional libtool_2.4.7-7~deb12u1.debian.tar.xz c4e32d1a1911a0fbd165dc1a0f2ddd87 6296 devel optional libtool_2.4.7-7~deb12u1_source.buildinfo -----BEGIN PGP SIGNATURE----- iQJEBAEBCAAuFiEE6/MKMKjZxjvaRMaUX7M/k1np7QgFAmYVn8gQHGFuYmVAZGVi aWFuLm9yZwAKCRBfsz+TWentCDYZEACYUU1qYcnbwzbzsmNoxZVDq98nTEULKdvX HmUmTPiIebpnbMBIcLBuEeQOfzPgqmZC9jfeGextNWUjHasM72zaccOQhXpvYm1m yCQyy3Ulq/eZkAo09oKgBYQEZ6DfkGXVTOuCoExUb/FK7gRxWk6sodXsQpKITBiC 6IBwkUjLgmy1Cth8DkdIRRmV3vONLep3z3uEBs/U4b0OI+i9MlwzzT0fQmrhaCwj Fa3HRn9uU6JKS0mXnSMTU4eN/bzMAhsS3RyXNfkOo5wir3Sa4/Awbi0t/WLpg+nV pNaUVkFfsBMOcDXPcS/8UDJFu168R7bihL2IeWsgMRewfFrFRUKKuPyPC6QBnz11 SvCRoorncLdKMeKO/pg6PS59wuXVuZO2o/FR8g7v4hLN2Pps4I+bVbJ4rOY9bFsK +aJBFqALn7GoyPU0H+AurWTDPNOv/Q/UF1jZB1ZbERsCnX9yl2wCBJ1dTwkIbMKi teuF0lIr6YDTWlWeuL4oBkQd9hInzDB4V9NMzw6OLEFTdsF/GbylI9722lMyuRnu mwh+p7m59cTnGwcumVV3iKGEIghPdwGSinieFMEssVVjS4NwsZcLNkJl2nz6zOw5 U0Ea6HelooGoKDKPmrmL4qlWhSOs+BMWotmVFpF0kQ3DNiq2WJgFABRIpf5CZ0Ol 8Mo0zhGW1A== =i5oj -----END PGP SIGNATURE-----pgppcAKgEWGcW.pgp
Description: PGP signature
--- End Message ---