Portage 2.1.8.3 (default/linux/x86/10.0, gcc-4.4.3-asneeded, glibc-2.11-r1, 2.6.33.1 i686) ================================================================= System uname: Linux-2.6.33.1-i686-Quad-Core_AMD_Opteron-tm-_Processor_2350-with-gentoo-2.0.1 Timestamp of tree: Mon, 22 Mar 2010 14:30:01 +0000 ccache version 2.4 [disabled] app-shells/bash: 4.1_p2 dev-java/java-config: 1.3.7-r1, 2.1.10 dev-lang/python: 2.6.5, 3.1.1-r1 dev-python/pycrypto: 2.1.0 dev-util/ccache: 2.4-r8 dev-util/cmake: 2.8.1 sys-apps/baselayout: 2.0.1 sys-apps/openrc: 0.6.0-r1 sys-apps/sandbox: 2.2 sys-devel/autoconf: 2.13, 2.65 sys-devel/automake: 1.4_p6-r1, 1.5-r1, 1.6.3-r1, 1.7.9-r2, 1.8.5-r4, 1.9.6-r3, 1.10.3, 1.11.1 sys-devel/binutils: 2.20.1 sys-devel/gcc: 4.4.3 sys-devel/gcc-config: 1.4.1 sys-devel/libtool: 2.2.6b virtual/os-headers: 2.6.33 ACCEPT_KEYWORDS="x86 ~x86" ACCEPT_LICENSE="*" CBUILD="i686-pc-linux-gnu" CFLAGS="-O2 -pipe" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /opt/openfire/resources/security/ /opt/openjms/config /usr/share/X11/xkb /usr/share/bufrtables /usr/share/config /usr/share/qpsmtpd/plugins /var/bind /var/lib/hsqldb /var/phxd /var/spool/torque /var/vpopmail/etc" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/eselect/postgresql /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/splash /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c" CXXFLAGS="-O2 -pipe" DISTDIR="/var/cache/distfiles" FEATURES="assume-digests distlocks fixpackages news parallel-fetch protect-owned sandbox sfperms split-log strict test test-fail-continue unmerge-orphans userfetch userpriv usersandbox" GENTOO_MIRRORS="http://ftp.uni-erlangen.de/pub/mirrors/gentoo" INSTALL_MASK=" /usr/share/doc /usr/share/info" LANG="en_US.utf8" LDFLAGS="-Wl,-O1" MAKEOPTS="-j14" PKGDIR="/var/spool/portage/packages" PORTAGE_COMPRESS="" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/var/cache/portage/tree-tinderbox" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="acl berkdb bzip2 cli cracklib crypt cups cxx dri fortran gdbm gpm iconv ipv6 java5 java6 modules mudflap ncurses nls nostatic nptl nptlonly openmp pam pcre perl pppd python qt3support readline reflection ruby session spl ssl sysfs tcpd unicode x86 xorg zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias auth_digest" ELIBC="glibc" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" RUBY_TARGETS="ruby18 jruby ruby19" USERLAND="GNU" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, LC_ALL, LINGUAS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PORTDIR_OVERLAY
Created attachment 224823 [details] Build log
Ah yes. This appears to be a new test in the 1.15.6 release. It probably clashes with either gcc 4.4 or glibc 2.11 because I don't see it on a stable x86 system. The compiler even warns about the upcoming buffer overflow it appears.
RESTRICT=test is now in place.
Eh? If it's a single test that's broken, can't you just sed the hell out of it? Rather than restrict tests entirely (which everybody will forget about next turn, so no more tests will be executed for the package for the next year or so and it'll stay broken)?
Why would everybody forget about it? I have checks in place myself that remind me of ebuilds that set RESTRICT=test. I just assumed other developers keep note of such things as well.
Created attachment 225065 [details, diff] Stops the segfaults, but the test still fails
dpkg_ar_normalize_name() seems to fail to strip both spaces and slashes too. --- t-ar.c.org 2010-03-24 05:11:48.000000000 +0100 +++ t-ar.c 2010-03-24 05:33:46.000000000 +0100 @@ -31,11 +31,13 @@ strcpy(arh.ar_name, "member-name/ "); dpkg_ar_normalize_name(&arh); - test_str(arh.ar_name, ==, "member-name"); + fprintf(stderr, "arh.ar_name=\"%s\"\n", arh.ar_name); + /*test_str(arh.ar_name, ==, "member-name");*/ strcpy(arh.ar_name, "member-name "); dpkg_ar_normalize_name(&arh); - test_str(arh.ar_name, ==, "member-name"); + fprintf(stderr, "arh.ar_name=\"%s\"\n", arh.ar_name); + /*test_str(arh.ar_name, ==, "member-name");*/ } void Adding a printf reveals that the function doesn't change anything in the struct: PASS: t-varbuf arh.ar_name="member-name/ " arh.ar_name="member-name " PASS: t-ar
OK, I've disabled the ar test for this version. It does fail again further on, as did previous dpkg versions IIRC, in one of the perl tests.
I have disabled the second failing test and the suite appears to finish as it should now. Whereas the first failure probably occurs because it hasn't been tested with a new enough GCC (4.4 triggers it for me), the latter failure is probably caused because the test was not updated to reflect changes in the perl module's API. I've made disabling these tests conditional on the dpkg version so that both these tests will be run in any newer upstream version. Can I call it fixed now?
Created attachment 232377 [details] Build log Still fails — the problem is related to the two fortify warnings (“will always overflow destination buffer”), which make them crash with GCC 4.5.
http://git.debian.org/?p=dpkg/dpkg.git;a=commitdiff;h=db0b70b This fixes the test but not the overflow warning in t-ar.c
Nevermind, I'm blind. Yes it does.
(In reply to comment #11) > http://git.debian.org/?p=dpkg/dpkg.git;a=commitdiff;h=db0b70b That appears to have been released in 1.15.8.
Cool, fixed then.