Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 249769 - rpm2targz fails if rpm2cpio is broken during upgrade
Summary: rpm2targz fails if rpm2cpio is broken during upgrade
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Gentoo's Team for Core System packages
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-12-04 09:04 UTC by Michael Haubenwallner (RETIRED)
Modified: 2009-11-06 13:11 UTC (History)
0 users

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Michael Haubenwallner (RETIRED) gentoo-dev 2008-12-04 09:04:49 UTC
During 'emerge -uDN world' (using update-world script) I got this error:

-----------------------
>>> Emerging (179 of 227) net-www/netscape-flash-10.0.12.36-r1 to /
 * flash-plugin-10.0.12.36-release.i386.rpm RMD160 SHA1 SHA256 size ;-) ...   [ ok ]
 * checking ebuild checksums ;-) ...                                      [ ok ]
 * checking auxfile checksums ;-) ...                                     [ ok ]
 * checking miscfile checksums ;-) ...                                    [ ok ]
 * checking flash-plugin-10.0.12.36-release.i386.rpm ;-) ...              [ ok ]
>>> Unpacking source...
>>> Unpacking flash-plugin-10.0.12.36-release.i386.rpm to /var/tmp/portage/net-www/netscape-flash-10.0.12.36-r1/work
rpm2cpio: error while loading shared libraries: libneon.so.26: cannot open shared object file: No such file or directory
cpio: premature end of archive
 *
 * ERROR: net-www/netscape-flash-10.0.12.36-r1 failed.
 * Call stack:
 *               ebuild.sh, line   49:  Called src_unpack
 *             environment, line 2227:  Called rpm_src_unpack
 *             environment, line 2092:  Called die
 * The specific snippet of code:
 *                   rpm_unpack ${DISTDIR}/${x} || die "${myfail}";
 *  The die message:
 *   failure unpacking flash-plugin-10.0.12.36-release.i386.rpm
 *
 * If you need support, post the topmost build error, and the call stack if relevant.
 * A complete build log is located at '/var/log/portage/net-www:netscape-flash-10.0.12.36-r1:20081203-184426.log'.
 * The ebuild environment file is located at '/var/tmp/portage/net-www/netscape-flash-10.0.12.36-r1/temp/environment'.
-----------------------


So I found this comment in rpm2targz-9.0-r7.ebuild:
-----------------------
# NOTE: rpm2targz autodetects rpm2cpio at runtime, and uses it if available,
#       so we don't explicitly set it as a dependency.
-----------------------


Looking at the order of packages being upgraded:
-----------------------
# grep '^>>> Emerging' update-world.out | grep -E '(netscape-flash|rpm|neon)'
>>> Emerging (174 of 227) net-misc/neon-0.28.3 to /
>>> Emerging (179 of 227) net-www/netscape-flash-10.0.12.36-r1 to /
>>> Emerging (14 of 45) app-arch/rpm-4.4.6-r6 to /
-----------------------

When retrying after update-world finished, netscape-flash emerged successfully, because rpm was rebuilt against the new libneon.

I'm not sure if this is a Gentoo specific dependency problem (likely to be fixed with portage-2.2 supporting '@preserve-rebuild'), or upstream rpm2targz should try without rpm2cpio if that fails too, not only if that does not exist.


-----------------------
# emerge --info
Portage 2.1.4.5 (default/linux/x86/2008.0/desktop, gcc-4.1.2, glibc-2.6.1-r0, 2.6.24-gentoo-r4 i686)
=================================================================
System uname: 2.6.24-gentoo-r4 i686 Intel(R) Pentium(R) 4 CPU 3.00GHz
Timestamp of tree: Wed, 03 Dec 2008 01:16:01 +0000
distcc 2.18.3 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled]
ccache version 2.4 [disabled]
app-shells/bash:     3.2_p33
dev-java/java-config: 1.3.7, 2.1.6
dev-lang/python:     2.5.2-r8
dev-python/pycrypto: 2.0.1-r6
dev-util/ccache:     2.4-r7
dev-util/cmake:      2.4.6-r1
sys-apps/baselayout: 1.12.11.1
sys-apps/sandbox:    1.2.18.1-r2
sys-devel/autoconf:  2.13, 2.61-r2
sys-devel/automake:  1.4_p6, 1.5, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.1-r1
sys-devel/binutils:  2.18-r3
sys-devel/gcc-config: 1.4.0-r4
sys-devel/libtool:   1.5.26
virtual/os-headers:  2.6.23-r3
ACCEPT_KEYWORDS="x86"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O2 -march=pentium4 -pipe"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /var/lib/hsqldb"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/terminfo /etc/udev/rules.d"
CXXFLAGS="-O2 -march=pentium4 -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="distlocks fixpackages metadata-transfer parallel-fetch sandbox sfperms strict unmerge-orphans userfetch userpriv usersandbox"
GENTOO_MIRRORS="http://gentoo.ynet.sk/pub http://gd.tuwien.ac.at/opsys/linux/gentoo/ http://mirror.csclub.uwaterloo.ca/gentoo-distfiles/ http://distro.ibiblio.org/pub/linux/distributions/gentoo/"
LDFLAGS="-Wl,-O1"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
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="/usr/portage"
PORTDIR_OVERLAY="/tools/haubi/gentoo/sapc154/usr/local/portage/layman/wamas-ie /tools/haubi/gentoo/sapc154/usr/local/portage/layman/wamasie-live-overlay"
SYNC="rsync://saloon.salomon.at/gentoo-portage"
USE="X aalib accessibility alsa bash-completion berkdb bidi bluetooth bogofilter branding bzip2 cairo cdr cli cracklib crypt cscope cups curl cvs dbus dga discouraged divx4linux dmx dri dvd dvdr dvdread eds emacs emboss encode evo fam fbcon firefox gcj gdbm gif glep gnome gnome-keyring gpm gstreamer gtk hal iconv imap isdnlog java jpeg ldap libnotify logrotate mad midi mikmod mmx mmxext mp3 mpeg mudflap ncurses nls nntp nptl nptlonly nsplugin oci8-instant-client ogg opengl openmp pam pcre pdf perl png ppds pppd python qt3support quicktime readline reflection samba sdl session sharedext slp sockets spell spl sqlite sse sse2 ssl startup-notification subversion svg sysfs tcpd threads threadsonly tiff tk truetype unicode usb vim-syntax vorbis webdav win32codecs x86 xine xinerama xml xorg xosd xv xvid zlib" ALSA_CARDS="intel8x0" 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 auth_digest authn_anon authn_dbd 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 dbd deflate dir disk_cache env expires ext_filter file_cache filter headers ident imagemap include info log_config logio mem_cache mime mime_magic negotiation proxy proxy_ajp proxy_balancer proxy_connect proxy_http rewrite setenvif so speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" USERLAND="GNU" VIDEO_CARDS="vga vesa mach64 nv"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LANG, LC_ALL, LINGUAS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
-----------------------
Comment 1 SpanKY gentoo-dev 2008-12-04 10:08:37 UTC
there is no logic in rpm2targz to see if rpm2cpio is "ok", nor is it really feasible to test it.  you easily get down a rabbit hole of crap.  testing the exit value isnt usable either as you dont know why exactly it failed, and since the command is being piped, any incomplete output renders the process unusable.

could perhaps just drop the rpm2cpio usage completely.  i'm not aware of a situation where rpmoffset fails.
Comment 2 SpanKY gentoo-dev 2009-11-06 13:11:30 UTC
this was fixed as fallout of Bug 292057.  rpm2cpio might be too old to detect compression in newer rpms, so just always use rpmoffset.