portage-2.1.2_pre2 only installs sources for packages under the x11-wm category. i've tried packages where installsources previously worked, but only sources for x11-wm packages are installed. i thought maybe my configuration files were messed up somehow, but i rolled back to portage-2.1.1-r1 and installsources worked again without the /usr/src/debug/${category} patch. i deleted the /usr/src/debug directory, thinking permissions were messed up. again, only x11-wm packages were installed. -------------------->8--------------------->8----------------->8---------------- squirrel ~ # emerge --info Portage 2.1.2_pre2-r6 (default-linux/x86/2006.1/desktop, gcc-4.1.1, glibc-2.4-r4, 2.6.18-gentoo i686) ================================================================= System uname: 2.6.18-gentoo i686 AMD Athlon(tm) XP 2600+ Gentoo Base System version 1.12.5 Last Sync: Sun, 08 Oct 2006 11:20:01 +0000 ccache version 2.3 [disabled] app-admin/eselect-compiler: [Not Present] dev-java/java-config: 1.2.11-r1 dev-lang/python: 2.4.3-r4 dev-python/pycrypto: 2.0.1-r5 dev-util/ccache: 2.3 dev-util/confcache: [Not Present] sys-apps/sandbox: 1.2.17 sys-devel/autoconf: 2.13, 2.60 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2 sys-devel/binutils: 2.16.1-r3 sys-devel/gcc-config: 1.3.13-r4 sys-devel/libtool: 1.5.22 virtual/os-headers: 2.6.17-r1 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CBUILD="i686-pc-linux-gnu" CFLAGS="-Os -march=athlon-xp -ggdb -pipe" 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 /usr/share/texmf/dvipdfm/config/ /usr/share/texmf/dvips/config/ /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /usr/share/texmf/xdvi/" CONFIG_PROTECT_MASK="/etc/env.d /etc/gconf /etc/revdep-rebuild /etc/terminfo" CXXFLAGS="-Os -march=athlon-xp -ggdb -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="autoconfig distlocks installsources metadata-transfer sandbox sfperms splitdebug strict" GENTOO_MIRRORS="http://gentoo.osuosl.org/ ftp://ftp.ucsb.edu/pub/mirrors/linux/gentoo/ ftp://mirror.usu.edu/mirrors/gentoo/ " LC_ALL="en_US.UTF-8" 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" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage /usr/portage/local/layman/portage-xgl" SYNC="rsync://rsync.namerica.gentoo.org/gentoo-portage" USE="x86 3dnow 3dnowext X aalib alsa apache2 arts audiofile avahi bash-completion berkdb bitmap-fonts bzip2 cairo cdparanoia cdr cli crypt cscope cups curl dbus debug djvu dlloader doc dri dvd dvdr dvi eds elibc_glibc emacs emboss encode expat fam firefox fontconfig fortran gd gdbm gif gnutls gpm graphviz gstreamer gtk guile hal input_devices_evdev input_devices_keyboard input_devices_mouse isdnlog java jbig jpeg kde kernel_linux lcd lcms ldap libcaca libg++ mikmod mmx mp3 mpeg mysql ncurses nls nptl nptlonly nsplugin ogg opengl oss pam pango pcre pdf perl php png ppds pppd python qt3 qt4 quicktime readline reflection ruby samba sdl session spell spl sqlite sqlite3 sse ssl svg symlink tcpd threads tiff truetype truetype-fonts type1-fonts udev unicode userland_GNU video_cards_nv video_cards_nvidia video_cards_vesa vorbis win32codecs wmf xcomposite xinerama xml xorg xprint xscreensaver xv zlib" Unset: CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LDFLAGS, LINGUAS, PORTAGE_RSYNC_EXTRA_OPTS
The patch from bug 149491 seems pretty simple, so I'm not sure what could go wrong there. Could you add a line containing 'set -x' at the beginning of the save_elf_debug() function inside /usr/lib/portage/bin/prepstrip? If you do that and reproduce the bug, then we should be able to see a trace of what went wrong during the install phase.
talk about arbitrary program behavior. the patch strained debugedit. a category name 5 characters or less will do this, like expected: + debugedit -b /var/tmp/portage/emerald-9999/work -d /usr/src/debug/x11-wm/emera ld-9999 -l /var/tmp/portage/emerald-9999/temp/debug.sources /var/tmp/portage/eme rald-9999/image/usr/lib/emerald/engines/libvrunner.so + [[ -s /var/tmp/portage/emerald-9999/temp/debug.sources ]] + [[ -d /var/tmp/portage/emerald-9999/image//usr/src/debug/x11-wm/emerald-9999 ] ] + mkdir -p /var/tmp/portage/emerald-9999/image//usr/src/debug/x11-wm/emerald-999 9 + cat /var/tmp/portage/emerald-9999/temp/debug.sources + cd /var/tmp/portage/emerald-9999/work + LANG=C + sort -z -u + rsync -aL0 --files-from=- /var/tmp/portage/emerald-9999/work/ /var/tmp/portage /emerald-9999/image//usr/src/debug/x11-wm/emerald-9999/ + hasq splitdebug autoconfig distlocks installsources metadata-transfer sandbox sfperms splitdebug strict but then take a category name greater than five characters: + debugedit -b /var/tmp/portage/beryl-plugins-0.1.0_p20061005/work -d /usr/src/d ebug/x11-plugins/beryl-plugins-0.1.0_p20061005 -l /var/tmp/portage/beryl-plugins -0.1.0_p20061005/temp/debug.sources /var/tmp/portage/beryl-plugins-0.1.0_p200610 05/image/usr/lib/beryl/libfade.so Only dest dir longer than base dir not supported + [[ -s /var/tmp/portage/beryl-plugins-0.1.0_p20061005/temp/debug.sources ]] + hasq splitdebug autoconfig distlocks installsources metadata-transfer sandbox sfperms splitdebug strict "Only dest dir longer than base dir not supported"? wtf? case 1: len ${#CATEGORY} -le 5: base: /var/tmp/portage/emerald-9999/work dest: /usr/src/debug/x11-wm/emerald-9999 case 2: len ${#CATEGORY} -gt 5: base: /var/tmp/portage/beryl-plugins-0.1.0_p20061005/work dest: /usr/src/debug/x11-plugins/beryl-plugins-0.1.0_p20061005 debugedit won't work if one string is longer than another? >:@ i've verified that net-fs/samba installs sources correctly. anything in dev-db, dev-ml, net-fs, net-im, sys-fs, and x11-wm will install sources. others won't until debugedit's fixed.
In order to temporatily work around this debugedit issue, perhaps you could substitute a longer path for PORTAGE_TMPDIR in make.conf.
yes, its because debugedit has to fit the new path in the space of the old one.. I don't have an easy solution... And I'm not familiar enough with the ELF format to fix debugedit.. I say lets revert the last patch and hope no one installs two packages with the same name and the exact same version for now.
Actually, the right solution is probably to put the category in the temp path for building packages... Since portage support parallel compiles.
(In reply to comment #5) > Actually, the right solution is probably to put the category in the temp path > for building packages... Since portage support parallel compiles. That won't help if the user decides to usr /foo as PORTAGE_TMPDIR. I suppose we can document the problem with debugedit and advise users to use long path for PORTAGE_TMPDIR.
True it wont help, but there is not much we can do in that case... I guess you could add a test like (in nice pythonish pseudocode ;) if has_feature(installsources) and len(PORTAGE_TMPDIR) < len("/usr/src/debug"): print "MEEEP: the length of PORTAGE_TMPDIR has to be longer than "+len("/usr/src/debug")+" characters, disabling installsources" remove_feature(installsources)
Of all the possible hacks, I like the idea of including the category in the $PORTAGE_BUILDDIR path (as suggested in comment #5) the most. Eventually we'll have support for parallel builds in emerge anyway (bug 147516), so we might as well add the category directory there now.
In svn r4654, portage uses category directories when building packages.
(In reply to comment #9) > In svn r4654, portage uses category directories when building packages. This has been released in 2.1.2_pre2-r9.
if its released, its fixed