Gentoo Archives: gentoo-dev

From: "Kevin F. Quinn" <kevquinn@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] [RFC] client/server policy for ebuilds
Date: Sat, 10 Jun 2006 08:28:06
Message-Id: 20060610103221.7e99b954@c1358217.kevquinn.com
In Reply to: Re: [gentoo-dev] [RFC] client/server policy for ebuilds by Roy Marples
1 On Sat, 10 Jun 2006 02:01:25 +0100
2 Roy Marples <uberlord@g.o> wrote:
3
4 > On Saturday 10 June 2006 01:33, Alec Warner wrote:
5 > > > So we have two use flags - client and server. Here are the
6 > > > possabilities
7 > > >
8 > > > -client -server
9 > > > +client -server
10 > > > +client +server
11 > > > -client +server
12 > > >
13 > > > Do we read -client -server and +client +server to mean the same
14 > > > thing? If so the logic can read
15 > > >
16 > > > if use client || ! use server ; then
17 > > > # build client
18 > > > fi
19 > > > if use server || ! use client ; then
20 > > > # build server
21 > > > fi
22 > > >
23 > > > How does portage stop us from doing that now?
24 > >
25 > > built_with_use is then incorrect, since for -client -server you
26 > > really built both.
27 >
28 > use client && build client
29 > use server && build server
30 >
31 > The problem here is that breaks existing ebuilds, which could be
32 > viewed as equally bad.
33
34 I do think we should avoid built_with_use where we can, as it causes
35 emerge to abort.
36
37 I still think this would be much better dealt with by splitting the
38 ebuilds and using the existing one to install both sub-ebuilds.
39 To my mind, building client or server is too big a split for USE flags
40 which control features of a package rather than pieces of it. I realise
41 that's not a clear distinction, but I think 'use client|server' is
42 different from 'use ipv6'. The latter, which is how I see most USE
43 flags that build stuff conditionally, is about including support for
44 something within the application/libraries built by the ebuild.
45 However USE client/server is about whether the apps/libraries are built
46 at all.
47
48 Suggestion was:
49 net-misc/dhcp-client
50 net-misc/dhcp-server
51 net-misc/dhcp - RDEPEND on -client and -server
52
53 This way, if something needs the server, they depend on dhcp-server.
54 If something needs the client, it depends on dhcp-client. If you need
55 both, depend on net-misc/dhcp. Over time, existing package depedencies
56 can be reduced from dhcp to dhcp-client or dhcp-server as appropriate.
57
58 The only objection I've seen so far to the split ebuild approach is that
59 if upstream intend the whole tarball to be installed then we should do
60 the same. I don't think that holds too much water;
61
62 1) The 'meta' build would provide the complete package as compiled
63 upstream anyway
64
65 2) Just because upstream provide everything in one tarball doesn't mean
66 upstream think you should necessarily install everything. Obvious
67 example here is KDE.
68
69 3) The use flag approach effectively splits the build anyway, so
70 there's not really any difference.
71
72 > But technically built_with_use isn't incorrect as the ebuild wasn't
73 > built with it. To effectively use built_with_use you cannot assume
74 > that the flag does what it says on the tin - you have to inspect the
75 > ebuild code you're querying.
76 >
77 > Prior history shows deps of db vs gdbm where if both or neither then
78 > db was used, otherwise the flagged db was used.
79 >
80 > Problems problems - soltutions that work with existing installs or do
81 > we just bite the bullet and do
82 >
83 > ! use client && ! use server && die "must select either client or
84 > server"
85 >
86 > Which kinda defeats the purpose of a clean install.
87 >
88
89
90 --
91 Kevin F. Quinn

Attachments

File name MIME type
signature.asc application/pgp-signature

Replies