the "ebuild" command of portage apparently doesn't like certain combinations of options. Item 1: ebuild <package> digest clean compile ebuild <package> qmerge In the first case. ebuild does as expected...generates a digest, cleans out WORKDIR, and goes through all the steps specified by "compile". The second command, which in theory should make ebuild "install" first, then merge, instead generates a traceback as seen below: [root@khazad-dum patch]# ebuild patch-2.5.9.ebuild qmerge >>> md5 files ;-) patch-2.5.9.ebuild >>> md5 files ;-) patch-2.5.4-r5.ebuild >>> md5 files ;-) ChangeLog >>> md5 files ;-) files/digest-patch-2.5.9 >>> md5 files ;-) files/digest-patch-2.5.4-r5 >>> md5 src_uri ;-) patch-2.5.9.tar.gz >>> Merging sys-devel/patch-2.5.9 to / Traceback (most recent call last): File "/usr/sbin/ebuild", line 34, in ? a=portage.doebuild(pargs[0],x,getroot(),debug=debug) File "/usr/lib/python2.2/site-packages/portage.py", line 1708, in doebuild return merge(settings["CATEGORY"],settings["PF"],settings["D"],settings["BUILDDIR"]+"/build-info",myroot) File "/usr/lib/python2.2/site-packages/portage.py", line 1820, in merge return mylink.merge(pkgloc,infloc,myroot,myebuild) File "/usr/lib/python2.2/site-packages/portage.py", line 4563, in merge return self.treewalk(mergeroot,myroot,inforoot,myebuild) File "/usr/lib/python2.2/site-packages/portage.py", line 4265, in treewalk if self.mergeme(srcroot,destroot,outfile,secondhand,"",cfgfiledict,mymtime): File "/usr/lib/python2.2/site-packages/portage.py", line 4354, in mergeme for x in mergelist: TypeError: iteration over non-sequence //-------------------- Item 2: Another oddity, a second combination of "clean qmerge" to ebuild makes ebuild claim bad dependency issues. ebuild <package> clean qmerge [root@khazad-dum ksymoops]# ebuild ksymoops-2.4.9.ebuild clean qmerge >>> Downloading http://www.ibiblio.org/pub/Linux/distributions/gentoo/distfiles/ksymoops-2.4.9.tar.gz --22:52:12-- http://www.ibiblio.org/pub/Linux/distributions/gentoo/distfiles/ksymoops-2.4.9.tar.gz => `/usr/portage/distfiles/ksymoops-2.4.9.tar.gz' Resolving www.ibiblio.org... done. Connecting to www.ibiblio.org[152.2.210.81]:80... connected. HTTP request sent, awaiting response... 302 Found Location: http://distro.ibiblio.org/pub/linux/distributions/gentoo/distfiles/ksymoops-2.4.9.tar.gz [following] --22:52:13-- http://distro.ibiblio.org/pub/linux/distributions/gentoo/distfiles/ksymoops-2.4.9.tar.gz => `/usr/portage/distfiles/ksymoops-2.4.9.tar.gz' Resolving distro.ibiblio.org... done. Connecting to distro.ibiblio.org[152.2.210.109]:80... connected. HTTP request sent, awaiting response... 200 OK Length: 65,770 [application/x-tar] 100%[======================================================================================>] 65,770 122.57K/s ETA 00:00 22:52:13 (122.57 KB/s) - `/usr/portage/distfiles/ksymoops-2.4.9.tar.gz' saved [65770/65770] >>> md5 files ;-) ksymoops-2.4.8.ebuild >>> md5 files ;-) ksymoops-2.4.5.ebuild >>> md5 files ;-) ksymoops-2.4.7.ebuild >>> md5 files ;-) ksymoops-2.4.9.ebuild >>> md5 files ;-) ChangeLog >>> md5 files ;-) files/digest-ksymoops-2.4.5 >>> md5 files ;-) files/digest-ksymoops-2.4.7 >>> md5 files ;-) files/digest-ksymoops-2.4.8 >>> md5 files ;-) files/digest-ksymoops-2.4.9 >>> md5 src_uri ;-) ksymoops-2.4.9.tar.gz >>> Merging sys-kernel/ksymoops-2.4.9 to / ebuild: this ebuild generated output during the depend phase (bad) I'd think "qmerge" would make ebuild iterate through the appropriate steps, like unpack, compile, install and such.
This one is a little weird... What're you FEATURES flags? Just post 'emerge -v info'
I tested this on sparc64 and x86, and got "tseng" in #gentoo-dev to confirm it. Sparc64 box: FEATURES="-sandbox ccache manifest strict" (-sandbox because sparc64 uses -fstack-protector) x86 box: FEATURES="sandbox ccache manifest strict"
i did this just now: `ebuild <ebuild> clean unpack` then i went in and did the compile stage myself `ebuild <ebuild> install` `ebuild <ebuild> qmerge` and it failed with depend output ... looking in /var/tmp/portage/<pkg>/ i found i was missing build-info ... when i did `mkdir` on that dir (i didnt bother populating it with files), the qmerge worked ... it complained about the ebuild not being in build-info, but at least it put the files on my / :)
Gonna shut this bug of mine out as invalid. From what I can tell, qmerge just lacks some basic error checking. In order to execute the "qmerge" option, the unpack, compile, and install phases have to be complete. Having qmerge do all those for you (like install does unpack & compile first) is just redundant as this is what the "merge" command does. The real fix for this is to have qmerge see if unpack or compile as been done first, and if not, yell at the user, but it's extremely trivial and not really important, so it can just be closed.