* [gentoo-dev] Ebuild programming question @ 2002-11-20 0:32 Johannes Ballé 2002-11-20 1:15 ` Michael Cummings 0 siblings, 1 reply; 5+ messages in thread From: Johannes Ballé @ 2002-11-20 0:32 UTC (permalink / raw To: gentoo-dev Hello developers, I am new to ebuild programming, please excuse me asking (maybe trivial) questions here I couldn't find answers for elsewhere. The basic problem of ebuild programming seems to be that you need to map "USE" options from the portage system to the "configure" options of the package source. Many packages come with the ability to auto-detect certain features, though. One example: the em8300-libraries package provides a library and several tools to run an MPEG-decoder PCI card. Some of these tools need gtk, others only need a text console. A user may wish to omit installation of the gtk tools (on X-less boxes, for example). Would it be considered bad practice to put a dependency like "gtk? ( gtk... )" into the ebuild, but leave it to the configure script to sort out whether gtk is installed or not (hence, whether to compile the gtk tools or not)? -- Johannes Ballé <joba123@arcor.de> -- gentoo-dev@gentoo.org mailing list ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [gentoo-dev] Ebuild programming question 2002-11-20 0:32 [gentoo-dev] Ebuild programming question Johannes Ballé @ 2002-11-20 1:15 ` Michael Cummings 2002-11-20 7:52 ` Johannes Ballé 0 siblings, 1 reply; 5+ messages in thread From: Michael Cummings @ 2002-11-20 1:15 UTC (permalink / raw To: Johannes Ball?; +Cc: gentoo-dev Check the configure script that comes with the program (assuming there is one :) ). Usually, you can do something like (not perfect syntax, but you get the idea): ------------------- use gtk || ${myconf} = "${myconf} --disable-gtk" ... ./configure ${myconf} -------------------- or something to that affect (and assuming that the configure option is disable-gtk) On Wed, Nov 20, 2002 at 01:32:40AM +0100, Johannes Ball? wrote: > Would it be considered bad practice to put a dependency like "gtk? ( gtk... )" > into the ebuild, but leave it to the configure script to sort out whether gtk > is installed or not (hence, whether to compile the gtk tools or not)? > -- gentoo-dev@gentoo.org mailing list ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [gentoo-dev] Ebuild programming question 2002-11-20 1:15 ` Michael Cummings @ 2002-11-20 7:52 ` Johannes Ballé 2002-11-20 14:05 ` Karl Trygve Kalleberg 0 siblings, 1 reply; 5+ messages in thread From: Johannes Ballé @ 2002-11-20 7:52 UTC (permalink / raw To: gentoo-dev Am Wednesday 20 November 2002 02:15 schrieb Michael Cummings: > Check the configure script that comes with the program (assuming there > is one :) ). Usually, you can do something like (not perfect syntax, This particular package seems to have almost no configure options (I already checked that). I was asking merely because I wanted to know whether the user should get the chance to say "yes, I have gtk installed but I don't want those tools anyway" ... Using auto-configuration, the USE option would have no influence on building the tools or not, but only on pulling in gtk as a dependency (as far as I understand). This is probably more a question of policy. (Although I'm not sure if the method I mentioned might have the potential to even break things ... ?) -- Johannes Ballé <joba123@arcor.de> -- gentoo-dev@gentoo.org mailing list ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [gentoo-dev] Ebuild programming question 2002-11-20 7:52 ` Johannes Ballé @ 2002-11-20 14:05 ` Karl Trygve Kalleberg 2002-11-21 15:42 ` Johannes Ballé 0 siblings, 1 reply; 5+ messages in thread From: Karl Trygve Kalleberg @ 2002-11-20 14:05 UTC (permalink / raw To: gentoo-dev On Wed, 20 Nov 2002 08:52:07 +0100 Johannes Ballé <joba123@arcor.de> wrote: > Am Wednesday 20 November 2002 02:15 schrieb Michael Cummings: > > Check the configure script that comes with the program (assuming there > > is one :) ). Usually, you can do something like (not perfect syntax, > > This particular package seems to have almost no configure options (I > already checked that). I was asking merely because I wanted to know > whether the user should get the chance to say "yes, I have gtk installed > but I don't want those tools anyway" ... If gtk is not among the useflags, you should _NOT_ build the gtk support. > Using auto-configuration, the USE option would have no influence on > building the tools or not, but only on pulling in gtk as a dependency > (as far as I understand). It is _not_ okay for a package's build script to automatically detect and depend on gtk only if it is installed. If your package depends on gtk, it must be in the DEPEND (and possibly also RDEPEND, unless DEPEND == RDEPEND) env var. If your package can build without gtk, you must heed the gtk useflag; ie, turn off gtk support altogether if gtk is not among the current useflags. The big problem with hidden deps that are pulled automatically, and that Portage doesn't know about, is that it that users may do "emerge -eop world | grep gtk", and see that no packages seem to depend of gtk. Then they happily remove gtk+ from their system and things start breaking... A real life story: I have USE="-opengl" in my /etc/make.conf, but I have OpenGL headers and libraries installed. I installed qt-3.1.0, which decided that I had OpenGL, so it compiled in support for it. I removed the OpenGL libraries for a while (driver transition), and qt apps started breaking mysteriously. Now qt-3.1.0 has an opengl useflag which it adheres to, and things have stopped breaking mysteriously. In general, the idiom wrt any given useflag is: use foo && myconf="${myconf} --with-foo" || myconf="${myconf} --without-foo" Ie, you should _ALWAYS_ turn on or off foo-support explicitly in your ebuild. Don't rely on the configure script's defaults, because: 1) Usually if you don't specify --with-foo or --without-foo, it is auto-detected. This is bad for the reasons I stated above. 2) Sometimes, --without-foo or --with-foo is the default, but the default may change with the next release of the package, and then you're going to have to rewrite the ebuild, which nobody bothers doing, so it makes sense to get it right the first time around. Kind regards, Karl T -- gentoo-dev@gentoo.org mailing list ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [gentoo-dev] Ebuild programming question 2002-11-20 14:05 ` Karl Trygve Kalleberg @ 2002-11-21 15:42 ` Johannes Ballé 0 siblings, 0 replies; 5+ messages in thread From: Johannes Ballé @ 2002-11-21 15:42 UTC (permalink / raw To: gentoo-dev Am Wednesday 20 November 2002 15:05 schrieb Karl Trygve Kalleberg: > It is _not_ okay for a package's build script to automatically detect and > depend on gtk only if it is installed. Thanks, this was exactly the information I was looking for. If the maintainer of the Gentoo Developers HOWTO reads this, maybe you could include a short summary of what Karl posted in the next revision? It would certainly be a good thing to have this in there. Regards, Johannes -- Johannes Ballé <joba123@arcor.de> -- gentoo-dev@gentoo.org mailing list ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2002-11-21 15:42 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2002-11-20 0:32 [gentoo-dev] Ebuild programming question Johannes Ballé 2002-11-20 1:15 ` Michael Cummings 2002-11-20 7:52 ` Johannes Ballé 2002-11-20 14:05 ` Karl Trygve Kalleberg 2002-11-21 15:42 ` Johannes Ballé
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox