Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 185305 - quickpkg builds corrupted binpackages in portage version 2.1.3_rc*
Summary: quickpkg builds corrupted binpackages in portage version 2.1.3_rc*
Status: RESOLVED FIXED
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Binary packages support (show other bugs)
Hardware: x86 Linux
: High critical (vote)
Assignee: Portage team
URL:
Whiteboard:
Keywords: InVCS, REGRESSION
: 187155 (view as bug list)
Depends on:
Blocks: 181949 338509
  Show dependency tree
 
Reported: 2007-07-14 14:55 UTC by Andrzej Rybczak
Modified: 2010-12-08 04:49 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
patch to tarfile.py from python upstream bug 1168594 (bugfix-1167128.patch,1.79 KB, patch)
2007-07-30 01:50 UTC, Zac Medico
Details | Diff
make quickpkg break hardlinks during creation of the archive (break_hardlinks.patch,751 bytes, patch)
2007-07-30 23:48 UTC, Zac Medico
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Andrzej Rybczak 2007-07-14 14:55:38 UTC
After upgrade portage version to 2.1.3_rc* quickpkg produces corrupted binpkges (they cannot be installed by emerge -k due to extracting errors). However, not all packages refuses to extract, but eg. gcc or wine does.

Problem doesn't exist in portage 2.1.2.9.

Reproducible: Always

Steps to Reproduce:
1. Building gcc binpkg (or wine)
2. Trying to install it by emerge -k

Actual Results:  
localhost wine # quickpkg wine
 * Building package for app-emulation/wine-0.9.32-r1 ...                    [ ok ]

 * Packages now in '/usr/portage/packages':
 * app-emulation/wine-0.9.32-r1: 9.2M
localhost wine # emerge =wine-0.9.32-r1 -k
Calculating dependencies... done!

>>> Emerging (1 of 1) app-emulation/wine-0.9.32-r1 to /
>>> Extracting info
>>> Extracting wine-0.9.32-r1
tar: Przeskoczenie do następnego nagłówka
tar: Przeskoczenie do następnego nagłówka
tar: Przeskoczenie do następnego nagłówka
tar: Przeskoczenie do następnego nagłówka
tar: Przeskoczenie do następnego nagłówka
tar: Przeskoczenie do następnego nagłówka
tar: Przeskoczenie do następnego nagłówka
tar: Przeskoczenie do następnego nagłówka
tar: Przeskoczenie do następnego nagłówka
tar: Przeskoczenie do następnego nagłówka
tar: Przeskoczenie do następnego nagłówka
tar: Przeskoczenie do następnego nagłówka
tar: Przeskoczenie do następnego nagłówka
tar: Przeskoczenie do następnego nagłówka
tar: Zakończenie z błędem z powodu uprzednich błędów
!!! Error Extracting '/usr/portage/packages/All/wine-0.9.32-r1.tbz2'

"Przeskoczenie do następnego nagłówka" is "Skipping to next header"
"Zakończenie z błędem z powodu uprzednich błędów" is "Error exit delayed from previous errors".

gcc fails too as well.

Expected Results:  
Package should extract properly, as it did in 2.1.2.9 version.

my emerge --info:

Portage 2.1.3_rc8 (default-linux/x86/2007.0, gcc-4.2.0/vanilla, glibc-2.6-r0, 2.6.22-ck1 i686)
=================================================================
System uname: 2.6.22-ck1 i686 AMD Athlon(tm) XP 2600+
Gentoo Base System release 2.0.0_alpha4
Timestamp of tree: Sat, 14 Jul 2007 13:50:01 +0000
app-admin/eselect-compiler: 2.0.0_rc2-r1
dev-java/java-config: 1.3.7, 2.0.33-r1
dev-lang/python:     2.4.4-r4
dev-python/pycrypto: 2.0.1-r5
sys-apps/sandbox:    1.2.18.1
sys-devel/autoconf:  2.13, 2.61-r1
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10
sys-devel/binutils:  2.17.50.0.16
sys-devel/gcc-config: 2.0.0_rc1
sys-devel/libtool:   1.5.24
virtual/os-headers:  2.6.22
ACCEPT_KEYWORDS="x86 ~x86"
AUTOCLEAN="yes"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O2 -march=native -pipe -fomit-frame-pointer"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/X11/xkb /usr/share/config"
CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/eselect/compiler /etc/gconf /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/splash /etc/terminfo"
CXXFLAGS="-O2 -march=native -pipe -fomit-frame-pointer"
DISTDIR="/usr/portage/distfiles"
FEATURES="distlocks metadata-transfer parallel-fetch sandbox sfperms strict unmerge-orphans"
GENTOO_MIRRORS="http://gentoo.prz.rzeszow.pl http://gentoo.zie.pg.gda.pl"
LANG="pl_PL.UTF-8"
LC_ALL="pl_PL.UTF-8"
LDFLAGS="-Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,--hash-style=gnu"
LINGUAS="en pl"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --filter=H_**/files/digest-*"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage/layman/mpd /usr/local/portage/layman/custom-kernels /usr/local/portage/moje"
SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"
USE="3dnow X acl alsa bash-completion berkdb bitmap-fonts cdr cli cracklib crypt cups dbus dri dvd dvdr encode fortran gdbm gif gpm hal iconv ipv6 isdnlog jpeg kde kdehiddenvisibility libg++ mad midi mmx mp3 mudflap musepack ncurses nls nptl nptlonly opengl openmp pam pcre perl png pppd python qt readline reflection session spl sse ssl svg tcpd tiff truetype truetype-fonts type1-fonts unicode vorbis x86 xorg zlib" ALSA_CARDS="emu10k1" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" ELIBC="glibc" INPUT_DEVICES="keyboard mouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en pl" USERLAND="GNU" VIDEO_CARDS="nvidia nv vesa"
Unset:  CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 1 Zac Medico gentoo-dev 2007-07-14 20:04:50 UTC
It seems to work correctly for me using tar-1.18-r1 to extract it here.  Can you export LANG=C so we can see what the messages from tar look like in English?
Comment 2 Andrzej Rybczak 2007-07-14 21:00:53 UTC
Here you are:

localhost packages # quickpkg wine
 * Building package for app-emulation/wine-0.9.41-r1 ...                    [ ok ]

 * Packages now in '/usr/portage/packages':
 * app-emulation/wine-0.9.41-r1: 9.6M

localhost packages # LC_ALL=C LANG=C emerge wine -kav

These are the packages that would be merged, in order:

Calculating dependencies... done!
[binary   R   ] app-emulation/wine-0.9.41-r1  USE="X alsa cups jpeg ncurses opengl oss -dbus -esd -hal -jack -lcms -ldap -nas -scanner -xml" [3] 

Total: 1 package (1 reinstall), Size of downloads: 0 kB
Portage overlays:
 [1] /usr/local/portage/layman/mpd
 [2] /usr/local/portage/layman/custom-kernels
 [3] /usr/local/portage/moje

Would you like to merge these packages? [Yes/No] 

>>> Emerging (1 of 1) app-emulation/wine-0.9.41-r1 to /
>>> Extracting info
>>> Extracting wine-0.9.41-r1
tar: Skipping to next header
tar: Skipping to next header
tar: Skipping to next header
tar: Skipping to next header
tar: Skipping to next header
tar: Skipping to next header
tar: Skipping to next header
tar: Skipping to next header
tar: Skipping to next header
tar: Skipping to next header
tar: Skipping to next header
tar: Skipping to next header
tar: Skipping to next header
tar: Skipping to next header
tar: Error exit delayed from previous errors
!!! Error Extracting '/usr/portage/packages/All/wine-0.9.41-r1.tbz2'

and for gcc:

localhost packages # quickpkg gcc
 * Building package for sys-devel/gcc-4.2.0 ...                             [ ok ]

 * Packages now in '/usr/portage/packages':
 * sys-devel/gcc-4.2.0: 21.0M
localhost packages # LC_ALL=C LANG=C emerge gcc -kav

These are the packages that would be merged, in order:

Calculating dependencies... done!
[binary   R   ] sys-devel/gcc-4.2.0  USE="fortran mudflap multislot nls openmp -altivec -bootstrap -build -doc -gcj -gtk -hardened -ip28 -ip32r10k -multilib -n32 -n64 -nocxx -objc -objc++ -objc-gc -test -vanilla" 

Total: 1 package (1 reinstall), Size of downloads: 0 kB

Would you like to merge these packages? [Yes/No] 

>>> Emerging (1 of 1) sys-devel/gcc-4.2.0 to /
>>> Extracting info
>>> Extracting gcc-4.2.0
tar: Skipping to next header
tar: A lone zero block at 1288
tar: Error exit delayed from previous errors
!!! Error Extracting '/usr/portage/packages/All/gcc-4.2.0.tbz2'

What is more, in 2.1.2.9 version the size of archived gcc is not 21 MB, is 22 MB. Wine package is bigger too (9.6 MB using 2.1.3_rc8 against 9.8 MB using 2.1.2.9.) 

I'm using tar-1.18-r1, but recompiling/downgrading it didn't solve the problem. Messing with bzip2 package too. As I see, the only reason for now is portage version.
Comment 3 Jakub Moc (RETIRED) gentoo-dev 2007-07-15 10:39:17 UTC
*** Bug 185389 has been marked as a duplicate of this bug. ***
Comment 4 Zac Medico gentoo-dev 2007-07-21 04:50:56 UTC
Can you rebuild python and see if that helps.  Nobody else has reported anything like this...
Comment 5 Zac Medico gentoo-dev 2007-07-27 23:47:46 UTC
Ping, have you tried rebuilding python yet?  It looks like this old bug:

https://sourceforge.net/tracker/?func=detail&atid=305470&aid=1167128&group_id=5470
Comment 6 Andrzej Rybczak 2007-07-29 19:35:18 UTC
No luck. After recompiling python and upgrade portage to rc9 bug still exists.

But it seems it's the same thing as in the bug you posted above. Look:

localhost All # LC_ALL=C tar tvf wine-0.9.41-r1.tbz2
drwxr-xr-x 0/0               0 2007-07-11 12:31 usr/
drwxr-xr-x 0/0               0 2007-07-29 21:15 usr/bin/
-rwxr-xr-x 0/0            8187 2007-07-14 17:33 usr/bin/function_grep.pl
-rwxr-xr-x 0/0            1582 2007-07-14 17:33 usr/bin/msiexec
hrwxr-xr-x 0/0               0 2007-07-14 17:33 usr/bin/notepad link to usr/bin/msiexec
tar: Skipping to next header
hrwxr-xr-x 0/0               0 2007-07-14 17:33 usr/bin/progman link to usr/bin/msiexec
tar: Skipping to next header
hrwxr-xr-x 0/0               0 2007-07-14 17:33 usr/bin/regedit link to usr/bin/msiexec
tar: Skipping to next header
hrwxr-xr-x 0/0               0 2007-07-14 17:33 usr/bin/regsvr32 link to usr/bin/msiexec
tar: Skipping to next header
hrwxr-xr-x 0/0               0 2007-07-14 17:33 usr/bin/uninstaller link to usr/bin/msiexec
tar: Skipping to next header
-rwxr-xr-x 0/0          213116 2007-07-14 17:33 usr/bin/widl
-rwxr-xr-x 0/0            5696 2007-07-14 17:33 usr/bin/wine
-rwxr-xr-x 0/0           18264 2007-07-14 17:33 usr/bin/wine-kthread
-rwxr-xr-x 0/0           10728 2007-07-14 17:33 usr/bin/wine-preloader
-rwxr-xr-x 0/0            9880 2007-07-14 17:33 usr/bin/wine-pthread
hrwxr-xr-x 0/0               0 2007-07-14 17:33 usr/bin/wineboot link to usr/bin/msiexec
tar: Skipping to next header
hrwxr-xr-x 0/0               0 2007-07-14 17:33 usr/bin/winebrowser link to usr/bin/msiexec
tar: Skipping to next header
-rwxr-xr-x 0/0           84076 2007-07-14 17:33 usr/bin/winebuild
hrwxr-xr-x 0/0               0 2007-07-14 17:33 usr/bin/winecfg link to usr/bin/msiexec
tar: Skipping to next header
hrwxr-xr-x 0/0               0 2007-07-14 17:33 usr/bin/wineconsole link to usr/bin/msiexec
tar: Skipping to next header
lrwxrwxrwx 0/0               0 2007-07-14 17:33 usr/bin/winecpp -> winegcc
hrwxr-xr-x 0/0               0 2007-07-14 17:33 usr/bin/winedbg link to usr/bin/msiexec
tar: Skipping to next header
-rwxr-xr-x 0/0          116988 2007-07-14 17:33 usr/bin/winedump
hrwxr-xr-x 0/0               0 2007-07-14 17:33 usr/bin/winefile link to usr/bin/msiexec
tar: Skipping to next header
lrwxrwxrwx 0/0               0 2007-07-14 17:33 usr/bin/wineg++ -> winegcc
-rwxr-xr-x 0/0           22400 2007-07-14 17:33 usr/bin/winegcc
-rwxr-xr-x 0/0           17732 2007-07-14 17:33 usr/bin/winelauncher
-rwxr-xr-x 0/0           58999 2007-07-14 17:33 usr/bin/winemaker
hrwxr-xr-x 0/0               0 2007-07-14 17:33 usr/bin/winemine link to usr/bin/msiexec
tar: Skipping to next header
hrwxr-xr-x 0/0               0 2007-07-14 17:33 usr/bin/winepath link to usr/bin/msiexec
tar: Skipping to next header
-rwxr-xr-x 0/0            4348 2007-07-14 17:33 usr/bin/wineprefixcreate
-rwxr-xr-x 0/0          290524 2007-07-14 17:33 usr/bin/wineserver
-rwxr-xr-x 0/0            5474 2007-07-14 17:33 usr/bin/wineshelllink
hrwxr-xr-x 0/0               0 2007-07-14 17:33 usr/bin/winhelp link to usr/bin/msiexec
tar: Skipping to next header
-rwxr-xr-x 0/0           39880 2007-07-14 17:33 usr/bin/wmc
-rwxr-xr-x 0/0          180528 2007-07-14 17:33 usr/bin/wrc
[...]

And then no errors.
Comment 7 Zac Medico gentoo-dev 2007-07-30 01:50:25 UTC
Created attachment 126405 [details, diff]
patch to tarfile.py from python upstream bug 1168594

The patch that's supposed to fix the issue is attached to this other bug:

https://sourceforge.net/tracker/?func=detail&atid=305470&aid=1168594&group_id=5470

Does that patch apply to your version of /usr/lib/python2.4/tarfile.py?  I have python-2.4.4-r4 installed here and my copy seems to have the patch applied already.
Comment 8 Zac Medico gentoo-dev 2007-07-30 02:03:20 UTC
Also, check the output of this command to verify that the module is being loaded from the correct location:

python -c 'import tarfile; print tarfile.__file__'
Comment 9 Zac Medico gentoo-dev 2007-07-30 18:12:31 UTC
*** Bug 187155 has been marked as a duplicate of this bug. ***
Comment 10 Lee 2007-07-30 18:24:47 UTC
I filed Bug 187155. I downgraded to portage-2.1.2.9 and indeed it does work fine.
I am just having this problem with portage-2.1.3*
Comment 11 Zac Medico gentoo-dev 2007-07-30 19:29:31 UTC
Please post the output of the following 2 commands:

python -c 'import tarfile; print tarfile.__file__'

md5sum /usr/lib/python2.4/tarfile.py
Comment 12 Andrzej Rybczak 2007-07-30 19:42:11 UTC
I'm glad I'm not the only one.

Patch seems to be applied already.

unknown@localhost ~ $ python -c 'import tarfile; print tarfile.__file__'
/usr/lib/python2.4/tarfile.pyc
unknown@localhost ~ $ md5sum /usr/lib/python2.4/tarfile.py
930ea3e30da3b545b7b882640fc0783e  /usr/lib/python2.4/tarfile.py

I tried to install python-2.5.1-r2, but quickpkg builds broken wine and gcc with this version as well.
Comment 13 Zac Medico gentoo-dev 2007-07-30 23:26:56 UTC
I've reproduced the problem here. It seems that it only happens when the tarfile module tries to create hardlinks inside the tar archive.  This can only happen when $PORTAGE_TMPDIR is on the same device as / since otherwise hardlinks are broken during the merge process.

I'll see if I can find a workaround for the tarfile module and if no then I'll just convert the code to spawn the tar binary.
Comment 14 Zac Medico gentoo-dev 2007-07-30 23:48:55 UTC
Created attachment 126501 [details, diff]
make quickpkg break hardlinks during creation of the archive

This patch seems to make it work. It's not quite idea since hardlinks can potentially save space, but hardlinks aren't very common anyway). I'll think about writing a patch to spawn tar instead.
Comment 15 Andrzej Rybczak 2007-07-31 12:03:26 UTC
I applied your patch and it works properly now. Nice work, thanks.
Comment 16 Zac Medico gentoo-dev 2007-08-01 23:31:07 UTC
This has been released in 2.1.3.1.