Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 150454 - debugedit behaves strangely
Summary: debugedit behaves strangely
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Core system (show other bugs)
Hardware: x86 Linux
: High normal
Assignee: Olivier Crete (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-10-08 05:54 UTC by brad walker
Modified: 2007-01-14 06:48 UTC (History)
1 user (show)

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 brad walker 2006-10-08 05:54:27 UTC
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
Comment 1 Zac Medico gentoo-dev 2006-10-08 11:12:57 UTC
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.
Comment 2 brad walker 2006-10-08 12:58:02 UTC
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.
Comment 3 Zac Medico gentoo-dev 2006-10-08 13:13:53 UTC
In order to temporatily work around this debugedit issue, perhaps you could substitute a longer path for PORTAGE_TMPDIR in make.conf.
Comment 4 Olivier Crete (RETIRED) gentoo-dev 2006-10-08 16:39:39 UTC
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.
Comment 5 Olivier Crete (RETIRED) gentoo-dev 2006-10-08 16:46:06 UTC
Actually, the right solution is probably to put the category in the temp path for building packages... Since portage support parallel compiles.
Comment 6 Zac Medico gentoo-dev 2006-10-08 21:37:04 UTC
(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.
Comment 7 Olivier Crete (RETIRED) gentoo-dev 2006-10-08 22:40:02 UTC
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)
  
Comment 8 Zac Medico gentoo-dev 2006-10-09 21:09:51 UTC
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.
Comment 9 Zac Medico gentoo-dev 2006-10-10 22:59:56 UTC
In svn r4654, portage uses category directories when building packages.
Comment 10 Zac Medico gentoo-dev 2006-10-11 20:27:02 UTC
(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.
Comment 11 Olivier Crete (RETIRED) gentoo-dev 2007-01-14 06:48:19 UTC
if its released, its fixed