Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 23665 - ebuild fails on certain combinations of options
Summary: ebuild fails on certain combinations of options
Status: RESOLVED INVALID
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Unclassified (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Portage team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2003-06-28 20:06 UTC by Joshua Kinard
Modified: 2011-10-30 22:19 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 Joshua Kinard gentoo-dev 2003-06-28 20:06:06 UTC
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.
Comment 1 Nicholas Jones (RETIRED) gentoo-dev 2003-06-29 16:47:19 UTC
This one is a little weird... What're you FEATURES flags?

Just post 'emerge -v info'
Comment 2 Joshua Kinard gentoo-dev 2003-06-29 16:54:03 UTC
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"
Comment 3 SpanKY gentoo-dev 2003-07-20 00:26:33 UTC
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 / :) 
Comment 4 Joshua Kinard gentoo-dev 2004-01-22 02:37:21 UTC
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.