public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-dev] Dynamic SLOTs
@ 2004-07-31  4:09 Jason Stubbs
  2004-07-31  6:46 ` Mike Frysinger
  2004-08-10 14:55 ` Jason Stubbs
  0 siblings, 2 replies; 35+ messages in thread
From: Jason Stubbs @ 2004-07-31  4:09 UTC (permalink / raw
  To: gentoo-dev

Hi all,

Working on SLOT upgrades and the like, I'm having trouble working around 
dynamic SLOTs - not so much how to do it, but how to get accurate information 
regarding the SLOT that an ebuild is in. For SLOT upgrades to work, portage 
needs to know what SLOT a package is in and why it is in that SLOT.

I'm sure that most of you know already, but I'll quickly go over the issue for 
those that don't. Portage caches ebuilds. Users get a prebuilt cache from an 
rsync server. Some ebuilds set variables based on the environment. When users 
run portage, it uses information based on the environment of the rsync 
server.

In terms of SLOTs, we currently have four types of ebuilds:

* Static in the context of the ebuild (SLOT="${PV}" et al)
* Mapped directly on to the kernel (SLOT="${KV}")
* Based on a user set variable (SLOT="${CCHOST}-3.2")
* Decided on the basis of other software (SLOT="${APACHEVER}")

The first is obviously not an issue. I added support for USE-based SLOTs to 
support the third and fourth. I'm not sure what to do about the second. Three 
possibilities:

* Find a solution to the specific ${KV} case.

Ugly. So ugly in fact, I've dropped USE-based SLOTs again.

* Find a general solution to dynamic SLOTs.

The general solution proposed thus far has been a RESTRICT="cache". Doing a 
quick test to compare the performance, I found that sourcing the ebuild is 
roughly 400 times slower than going to cache. Not really acceptable.

* Make SLOTs static and find an alternate solution.

My preferred solution as SLOT upgrades are ridiculously complex when there's a 
number of disparate factors affecting the SLOT of a package - still quite 
difficult when it's only USE affecting it.

Only five ebuilds in total have dynamic SLOTs that aren't ${KV} - gcc, 
libstdc++, mod_php, mod_scgi and mod_pcgi2. These could all be changed to 
install all the different versions in one merge. Using the mod_php ebuild as 
an example, it could build and install files for apache1, reconfigure and 
then build and install files for apache2 in one go if both USE flags are set.

As for ${KV}, a better solution for the short term would be RESTRICT="clean". 
It would at least describe what we actually have at the moment. For the long 
term, I think something like FEATURES="kernelmodule" or some such would be 
much more appropriate to the task.

Thoughts? Flames? Yells for a GLEP?

Regards,
Jason Stubbs

--
gentoo-dev@gentoo.org mailing list


^ permalink raw reply	[flat|nested] 35+ messages in thread

end of thread, other threads:[~2004-08-12 16:04 UTC | newest]

Thread overview: 35+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-07-31  4:09 [gentoo-dev] Dynamic SLOTs Jason Stubbs
2004-07-31  6:46 ` Mike Frysinger
2004-07-31  8:32   ` Jason Stubbs
2004-07-31 16:29     ` Mike Frysinger
2004-08-01  2:01       ` Jason Stubbs
2004-08-01 21:27         ` Martin Schlemmer
2004-08-03 23:34           ` Jason Stubbs
2004-08-03 23:57             ` Mike Frysinger
2004-08-04 14:28               ` Jason Stubbs
2004-08-04 20:11                 ` Aron Griffis
2004-08-04 23:47                   ` Jason Stubbs
2004-08-05  1:45                     ` Lina Pezzella
2004-08-05 13:57                       ` Jason Stubbs
2004-08-05  3:00                     ` Aron Griffis
2004-08-05 13:50                       ` Jason Stubbs
2004-08-05  8:59                   ` Ned Ludd
2004-08-06  3:10                 ` Mike Frysinger
2004-08-06 11:45                   ` Jason Stubbs
2004-08-09 23:35             ` Matthieu Sozeau
2004-08-10 12:21               ` Jason Stubbs
2004-08-10 12:53                 ` Matthieu Sozeau
2004-08-10 13:37                   ` Jason Stubbs
2004-08-06 11:56   ` Paul de Vrieze
2004-08-06 12:41     ` Jason Stubbs
2004-08-06 15:18       ` Paul de Vrieze
2004-08-06 17:28         ` Mike Frysinger
2004-08-06 23:57         ` Jason Stubbs
2004-08-07 10:42           ` Paul de Vrieze
2004-08-07 11:07           ` Chris Bainbridge
2004-08-07 11:25             ` Jason Stubbs
2004-08-10 14:55 ` Jason Stubbs
2004-08-11 14:21   ` [gentoo-dev] Cross Compilation and Dynamic Slots Jason Stubbs
2004-08-11 16:17     ` Ilya A. Volynets-Evenbakh
2004-08-12 13:12       ` Jason Stubbs
2004-08-12 12:42         ` [gentoo-dev] Cross Compilation and Dynamic Slots (ARCH_LIBDIR) Travis Tilley

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox