Bug 173398 - sci-electronics/geda-20070216 sci-libs/libgeda-20070216 - broken built_with_use check
|
Bug#:
173398
|
Product: Gentoo Linux
|
Version: unspecified
|
Platform: All
|
|
OS/Version: Linux
|
Status: RESOLVED
|
Severity: major
|
Priority: P2
|
|
Resolution: NEEDINFO
|
Assigned To: calchan@gentoo.org
|
Reported By: mail@ssalewski.de
|
|
Component: Ebuilds
|
|
|
URL:
|
|
Summary: sci-electronics/geda-20070216 sci-libs/libgeda-20070216 - broken built_with_use check
|
|
Keywords: QAbaddie, QAbadiuse
|
|
Status Whiteboard:
|
|
Opened: 2007-04-04 20:44 0000
|
I tried to install latest sci-electronics/geda (~amd64).
Installation fails because media-libs/gd was missing.
After "emerge media-libs/gd" and again "emerge geda" all is ok.
Please note: Old geda was using sci-libs/libgdgeda, which is
obsolete with latest geda!
Thanks for your support. Here is the (first time) output of "emerge geda"
stefan@AMD64X2 ~ $ cat build.log
!!! ERROR: sci-electronics/geda-20070216 failed.
Call stack:
ebuild.sh, line 1630: Called dyn_setup
ebuild.sh, line 702: Called qa_call 'pkg_setup'
ebuild.sh, line 38: Called pkg_setup
geda-20070216.ebuild, line 34: Called built_with_use 'media-libs/gd' 'png'
eutils.eclass, line 1654: Called die
!!! Unable to resolve media-libs/gd to an installed package
!!! If you need support, post the topmost build error, and the call stack if
relevant.
!!! A complete build log is located at
'/var/tmp/portage/sci-electronics/geda-20070216/temp/build.log'.
Reproducible: Always
Steps to Reproduce:
1.emerge geda (on a fresh installation without media-libs/gd)
2.
3.
Actual Results:
Unable to resolve media-libs/gd to an installed package
Expected Results:
Installation of media-libs/gd before emerging geda
It's me that's broken, not the built_with_use check... ;o)
Thanks for reporting this bug, It's hopefully fixed now. I have made quite a
few changes to dependencies and use flag checks, so please do not hesitate to
reopen this bug if it didn't work.
Denis.
*** Bug 173481 has been marked as a duplicate of this bug. ***
Reopen. Seriously, please test stuff before committing.
libgeda-20070216.ebuild:
<snip>
use gd && built_with_use media-libs/gd png || die "media-libs/gd must be
compiled with USE=png"
</snip>
Dies w/ USE="-gd"
geda-20070216.ebuild
<snip>
use gd && built_with_use sci-libs/libgeda gd || die "sci-libs/libgeda must be
compiled with USE=gd"
</snip>
Dies w/ USE="-gd" and *still* dies if media-libs/gd is not installed, plus the
use flag is just bogus.
(From update of attachment 115550 [details])
Again - the use flag in the is bogus and doesn't do anything useful. Why is
this check needed in sci-electronics/geda anyway? Doesn't the one in libgeda do
the job already?
Thanks Matteo, I'll look into this when I reach home.
Denis.
OK, it's fixed now. The story is that I thought I was smart enough to be able
to reduce the number of emerge to check all cases. Apparently I'm not.
Sorry for any annoyance.
Denis.
On x86 seems emerging fine without gd, sorry...
#emerge -pv gd geda libgeda
These are the packages that would be merged, in order:
Calculating dependencies... done!
[ebuild N ] media-libs/gd-2.0.34 USE="jpeg png truetype -fontconfig -xpm"
1,109 kB
[ebuild R ] sci-electronics/geda-20070216 USE="-doc -examples -gd" 0 kB
[ebuild R ] sci-libs/libgeda-20070216 USE="-gd" 0 kB
Total: 3 packages (1 new, 2 reinstalls), Size of downloads: 1,109 kB
Jakub,
Matteo, a couple other people I asked and myself can't reproduce your issue. So
I'm closing this bug. Feel free to reopen it with the usual necessary
information (detailed report, emerge info, etc...).
Denis.
OK, lets try again...
<snip>
--- geda-20070216.ebuild 2007/03/10 14:14:38 1.1
+++ geda-20070216.ebuild 2007/04/07 20:24:41 1.4
@@ -17,7 +17,7 @@
doc? ( http://www.geda.seul.org/devel/${PV}/geda-docs-${PV}.tar.gz )
examples? (
http://www.geda.seul.org/devel/${PV}/geda-examples-${PV}.tar.gz )"
-IUSE="doc examples"
+IUSE="doc examples gd"
LICENSE="GPL-2"
KEYWORDS="~amd64 ~ppc ~sparc ~x86"
SLOT="0"
@@ -31,6 +31,11 @@
built_with_use "dev-scheme/guile" deprecated \
|| die "You need either <dev-scheme/guile-1.8, or
>=dev-scheme/guile-1.8 with USE=deprecated"
fi
+ if use gd ; then
+ built_with_use sci-libs/libgeda gd || die "sci-libs/libgeda
must be compiled with USE=gd"
+ else
+ ! built_with_use sci-libs/libgeda gd || die "sci-libs/libgeda
must be compiled with USE=-gd"
+ fi
}
src_compile() {
</snip>
So, what you've done? You added USE=gd, which... uhm, does nothing. Doesn't
affect the compile result in any way. The only thing it does it checking
whether sci-libs/libgeda was compiled w/ USE=gd for whatever reason.
USE="gd" emerge libgeda geda -> nothing happens
USE="-gd" emerge geda -> now it will die on the check, why?!
or
USE="-gd" emerge libgeda geda -> nothing happens
USE="gd" emerge geda -> now it will again die on the check, why?!
(In reply to comment #14)
> So, what you've done? You added USE=gd, which... uhm, does nothing. Doesn't
> affect the compile result in any way. The only thing it does it checking
> whether sci-libs/libgeda was compiled w/ USE=gd for whatever reason.
The compile result is different whether libgeda is compiled with gd or not. As
a dev you should have seen that. The check is a workaround for Portage not
having USE flag dependencies yet. Since I don't work alone in my corner, I
contacted a senior dev about this, and he confirmed adding a gd USE flag was a
"sane" (his word) thing to do. Until I'm proved we were both wrong, this gd USE
flag is here to stay, sorry.
> USE="gd" emerge libgeda geda -> nothing happens
> USE="-gd" emerge geda -> now it will die on the check, why?!
>
> or
>
> USE="-gd" emerge libgeda geda -> nothing happens
> USE="gd" emerge geda -> now it will again die on the check, why?!
I would like to know why too. This problem couldn't be reproduced by 3 devs who
tried it on 4 different machines. I'm not saying your problem doesn't exist,
but as long as I don't have the necessary info to investigate I can't do much.
Denis.
(In reply to comment #15)
> The compile result is different whether libgeda is compiled with gd or not. As
> a dev you should have seen that.
Eh. I give up. There's nothing to be seen in the ebuild, the flag doesn't do
anything there wrt the compile itself -> you apparently have an automagic
dependency here.
> Eh. I give up. There's nothing to be seen in the ebuild, the flag doesn't do
> anything there wrt the compile itself -> you apparently have an automagic
> dependency here.
Wasn't that obvious ?
Anyway, I still believe it's important to know what happens in your case, and
why the checks die on your machine and not on others. If there's a real bug
waiting to be solved, we shouldn't stop here. So, please, send us the necessary
info.
Thanks in advance.
Denis.