[Pkg-tcltk-devel] Bug#1089353: itcl3: Supporting rootless builds by default
Niels Thykier
niels at thykier.net
Sat Dec 7 19:28:13 GMT 2024
Source: itcl3
Version: 3.4.4-2
Severity: important
Tags: ftbfs
Justification: FTBFS
X-Debbugs-Cc: niels at thykier.net
User: niels at 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.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://alioth-lists.debian.net/pipermail/pkg-tcltk-devel/attachments/20241207/796aa1a3/attachment.sig>
More information about the Pkg-tcltk-devel
mailing list