Source: itcl3
Version: 3.4.4-2
Severity: important
Tags: ftbfs
Justification: FTBFS
X-Debbugs-Cc: ni...@thykier.net
User: ni...@thykier.net
Usertags: rrr-no-as-default-issue

Dear maintainer,

During a test rebuild for building packages with
`Rules-Requires-Root: no` as the default in `dpkg`,
itcl3 failed to rebuild.

Log Summary:
-------------------------------------------------------------------------------
[...]
rm -f libitcl3.4.so
gcc -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -pipe -Wdate-time -D_FORTIFY_SOURCE=2 -Wl,-z,relro -Wl,--export-dynamic -shared -o libitcl3.4.so itclStubInit.o itcl_bicmds.o itcl_class.o itcl_cmds.o itcl_ensemble.o itcl_linkage.o itcl_methods.o itcl_migrate.o itcl_objects.o itcl_parse.o itcl_util.o -Wl,-soname,libitcl3.4.so.1 -L/usr/lib/aarch64-linux-gnu -ltclstub8.6 : libitcl3.4.so gcc -DPACKAGE_NAME=\"itcl\" -DPACKAGE_TARNAME=\"itcl\" -DPACKAGE_VERSION=\"3.4\" -DPACKAGE_STRING=\"itcl\ 3.4\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DBUILD_itcl=/\*\*/ -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_UNISTD_H=1 -DSTDC_HEADERS=1 -DTCL_THREADS=1 -DUSE_TCL_STUBS=1 -DUSE_TCLOO_STUBS=1 -DMODULE_SCOPE=extern\ __attribute__\(\(__visibility__\(\"hidden\"\)\)\) -DHAVE_HIDDEN=1 -DHAVE_CAST_TO_UNION=1 -D_LARGEFILE64_SOURCE=1 -DTCL_WIDE_INT_IS_LONG=1 -DUSE_TCL_STUBS=1 -DITCL_LIBRARY=\"/usr/lib/aarch64-linux-gnu/itcl3.4\" -I"./generic" -I"/usr/include/tcl8.6/tcl-private/generic" -I"/usr/include/tcl8.6/tcl-private/unix" -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -pipe -Wdate-time -D_FORTIFY_SOURCE=2 -c `echo ./generic/itclStubLib.c` -o itclStubLib.o
rm -f libitclstub3.4.a
ar cr libitclstub3.4.a itclStubLib.o
ranlib libitclstub3.4.a
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
   dh_auto_test
        make -j16 test "TESTSUITEFLAGS=-j16 --verbose" VERBOSE=1
make[1]: Entering directory '/<<PKGBUILDDIR>>'
TCL_LIBRARY=`echo /usr/include/tcl8.6/tcl-private/library` ITCL_LIBRARY=`echo ./library` LD_LIBRARY_PATH=".:/usr/lib/aarch64-linux-gnu/tcl8.6:" PATH=".:/usr/lib/aarch64-linux-gnu/tcl8.6:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" TCLLIBPATH="." /usr/bin/tclsh8.6 `echo ./tests/all.tcl` -load "package require Itcl 3.4" Tests running in interp: /usr/bin/tclsh8.6
Tests located in:  /<<PKGBUILDDIR>>/tests
Tests running in:  /<<PKGBUILDDIR>>
Temporary files stored in /<<PKGBUILDDIR>>
Test files run in separate interpreters
Running tests that match:  *
Skipping test files that match:  l.*.test
Only running test files that match:  *.test
Tests began at Sat Nov 16 19:14:09 UTC 2024
basic.test
body.test
chain.test
delete.test
ensemble.test
import.test
info.test
inherit.test
interp.test
local.test
methods.test
mkindex.test


==== mkindex-1.3 examine tclIndex FAILED
==== Contents of test case:

    namespace eval itcl_mkindex_tmp {
        set dir "."
        variable auto_index
        source tclIndex
        set result ""
        foreach elem [lsort [array names auto_index]] {
            lappend result [list $elem $auto_index($elem)]
        }
        set result
    }

---- Result was:
{::Simple2::bump {source ./mkindex.itcl}} {::Simple2::by {source ./mkindex.itcl}} {::buried::deep::within {source ./mkindex.itcl}} {::buried::ens {source ./mkindex.itcl}} {::buried::inside {source ./mkindex.itcl}} {::buried::inside::bump {source ./mkindex.itcl}} {::buried::inside::by {source ./mkindex.itcl}} {::buried::inside::find {source -encoding utf-8 ./mkindex.itcl}} {::buried::under::neath {source ./mkindex.itcl}} {::top::find {source -encoding utf-8 ./mkindex.itcl}} {::top::notice {source -encoding utf-8 ./mkindex.itcl}} {Simple1 {source ./mkindex.itcl}} {Simple2 {source ./mkindex.itcl}} {ens {source ./mkindex.itcl}} {top {source ./mkindex.itcl}}
---- Result should have been (exact matching):
{::Simple2::bump {source ./mkindex.itcl}} {::Simple2::by {source ./mkindex.itcl}} {::buried::deep::within {source ./mkindex.itcl}} {::buried::ens {source ./mkindex.itcl}} {::buried::inside {source ./mkindex.itcl}} {::buried::inside::bump {source ./mkindex.itcl}} {::buried::inside::by {source ./mkindex.itcl}} {::buried::inside::find {source ./mkindex.itcl}} {::buried::under::neath {source ./mkindex.itcl}} {::top::find {source ./mkindex.itcl}} {::top::notice {source ./mkindex.itcl}} {Simple1 {source ./mkindex.itcl}} {Simple2 {source ./mkindex.itcl}} {ens {source ./mkindex.itcl}} {top {source ./mkindex.itcl}}
==== mkindex-1.3 FAILED

namespace.test
protection.test
scope.test

Tests ended at Sat Nov 16 19:14:10 UTC 2024
all.tcl:        Total   404     Passed  403     Skipped 0       Failed  1
Sourced 15 Test Files.
Files with failing tests: mkindex.test
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
   create-stamp debian/debhelper-build-stamp
   dh_prep
   debian/rules override_dh_auto_install
make[1]: Entering directory '/<<PKGBUILDDIR>>'
/usr/bin/make prefix=/<<PKGBUILDDIR>>/debian/tmp/usr \
        exec_prefix=/<<PKGBUILDDIR>>/debian/tmp/usr \
        includedir=/<<PKGBUILDDIR>>/debian/tmp/usr/include/itcl3 \
        install
make[2]: Entering directory '/<<PKGBUILDDIR>>'
/bin/bash ./tclconfig/install-sh -c -m 755 libitcl3.4.so /<<PKGBUILDDIR>>/debian/tmp/usr/lib/aarch64-linux-gnu/itcl3.4/libitcl3.4.so : /<<PKGBUILDDIR>>/debian/tmp/usr/lib/aarch64-linux-gnu/itcl3.4/libitcl3.4.so /bin/bash ./tclconfig/install-sh -c -m 755 libitclstub3.4.a /<<PKGBUILDDIR>>/debian/tmp/usr/lib/aarch64-linux-gnu/itcl3.4/libitclstub3.4.a ranlib /<<PKGBUILDDIR>>/debian/tmp/usr/lib/aarch64-linux-gnu/itcl3.4/libitclstub3.4.a Install itcl.tcl /<<PKGBUILDDIR>>/debian/tmp/usr/lib/aarch64-linux-gnu/itcl3.4/itcl.tcl /bin/bash ./tclconfig/install-sh -c -m 444 pkgIndex.tcl /<<PKGBUILDDIR>>/debian/tmp/usr/lib/aarch64-linux-gnu/itcl3.4 /bin/bash ./tclconfig/install-sh -c -m 444 itclConfig.sh /<<PKGBUILDDIR>>/debian/tmp/usr/lib/aarch64-linux-gnu
Installing header files in /<<PKGBUILDDIR>>/debian/tmp/usr/include/itcl3
Installing ./generic/itcl.h
Installing ./generic/itclDecls.h
Installing ./generic/itclInt.h
Installing ./generic/itclIntDecls.h
Installing man pages in /<<PKGBUILDDIR>>/debian/tmp/usr/share/man
Installing body.n
Installing class.n
Installing code.n
Installing configbody.n
Installing delete.n
Installing ensemble.n
Installing find.n
Installing is.n
Installing itcl.n
Installing itclvars.n
Installing local.n
Installing scope.n
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
#
# Fix up the itcl libraries.
mv /<<PKGBUILDDIR>>/debian/tmp/usr/lib/aarch64-linux-gnu/itcl*/libitcl3.4.so /<<PKGBUILDDIR>>/debian/tmp/usr/lib/aarch64-linux-gnu/libitcl3.4.so.1 mv /<<PKGBUILDDIR>>/debian/tmp/usr/lib/aarch64-linux-gnu/itcl*/*.a /<<PKGBUILDDIR>>/debian/tmp/usr/lib/aarch64-linux-gnu ln -sf libitcl3.4.so.1 /<<PKGBUILDDIR>>/debian/tmp/usr/lib/aarch64-linux-gnu/libitcl3.4.so
#  (itclConfig.sh doesn't get installed at all, so we install it here)
sed -e "s:^\(\(ITCL\|itcl\)_\(BUILD_\)\?LIB_SPEC\)=.*$:\1='-L/usr/lib/aarch64-linux-gnu -litcl3.4':" \ -e "s:^\(\(ITCL\|itcl\)_\(BUILD_\)\?STUB_LIB_SPEC\)=.*$:\1='-L/usr/lib/aarch64-linux-gnu -litclstub3.4':" \ -e "s:^\(\(ITCL\|itcl\)_\(BUILD_\)\?STUB_LIB_PATH\)=.*$:\1=/usr/lib/aarch64-linux-gnu/libitclstub3.4.a:" \ -e "s:^\(\(ITCL\|itcl\)_SRC_DIR\)=.*$:\1='/usr/include/itcl3/itcl-private':" \
    -e "s:^\(\(ITCL\|itcl\)_LIB_FILE\)=.*$:\1=libitcl3.4.so.1:" \
    -e "s:^\(\(ITCL\|itcl\)_STUB_LIB_FILE\)=.*$:\1=libitclstub3.4.a:" \
    -e "s:^\(\(ITCL\|itcl\)_VERSION\)=.*$:\1='3.4':" \
itclConfig.sh > /<<PKGBUILDDIR>>/debian/tmp/usr/lib/aarch64-linux-gnu/itclConfig.sh /bin/sh: 1: cannot create /<<PKGBUILDDIR>>/debian/tmp/usr/lib/aarch64-linux-gnu/itclConfig.sh: Permission denied
make[1]: *** [debian/rules:43: override_dh_auto_install] Error 2
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
make: *** [debian/rules:16: binary] Error 2
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
--------------------------------------------------------------------------------
Build finished at 2024-11-16T19:14:15Z

-------------------------------------------------------------------------------


The above is just how the build ends and not necessarily the most
relevant part. If required, the full build log is available here:

https://people.debian.org/~nthykier/rrr-no-as-default/logs/998649.gz

You can find common solutions at
https://people.debian.org/~nthykier/rrr-no-as-default/docs/solutions.md

If this is really a bug in one of the build-depends, please use
reassign and affects, so that this is still visible in the BTS web
page for this package.

If this package is listed in
https://people.debian.org/~nthykier/rrr-no-as-default/docs/static-ownership.list,
then please just set `Rules-Requires-Root: binary-targets` to the source
stanza of `debian/control` as a fix to this bug.

If this package is listed in
https://people.debian.org/~nthykier/rrr-no-as-default/docs/maybe-misbuilds.list,
then the package was deemed at risk for misbuilding (having wrong
ownership) but had a FTBFS problem we tested it. Please test whether the
package works with `Rules-Requires-Root: no` validating that the
resulting deb has the correct ownership for all paths in the deb.

The goal is to have the default changed in `dpkg` either in `Trixie` or
`Forky`, depending on progress and feasibility with the release schedule
for Trixie.

For more information on this bug filing, please see:
https://lists.debian.org/debian-dpkg/2024/11/msg00016.html

Thanks,


PS: The builds were performed in mid-November. If you fixed the problem
between between then and this bug being filed, then please just close
the bug with the version it was fixed in.

Attachment: OpenPGP_signature.asc
Description: OpenPGP digital signature

Reply via email to