Gentoo Archives: gentoo-dev

From: Sven Wegener <swegener@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] use.force support
Date: Wed, 15 Jun 2005 01:19:55
Message-Id: 20050615011655.GI4585@lightning.stealer.net
In Reply to: Re: [gentoo-dev] use.force support by Alec Warner
1 On Tue, Jun 14, 2005 at 01:46:22PM -0400, Alec Warner wrote:
2 > Sven Wegener wrote:
3 > >On Mon, Jun 13, 2005 at 05:08:09PM -0400, Alec Warner wrote:
4 > >
5 > >>Sven Wegener wrote:
6 > >>
7 > >>
8 > >>>use.force might not be the best name, but it's what we do with it for
9 > >>>most of our users. Being able to -flag in /etc/portage/profile/use.force
10 > >>>is just because /etc/portage/profile gets added to the cascaded profile
11 > >>>chain. Everything we add to portage that allows a profile to revert
12 > >>>some behaviour added by parent profiles, can also be done with
13 > >>>/etc/portage/profile and it's good that way. So, that we're able to
14 > >>>-flag in use.force is just part of the way cascaded profiles work. It's
15 > >>>not a feature that will be added just to support use.force. Primary
16 > >>>reason for use.force is to have a way to activate flags even if USE="-*"
17 > >>>is in make.conf or environment.
18 > >>
19 > >>How is this not just a consequence of USE="-*"...that is what this does;
20 > >>turns off ALL use flags. How is use.force ( or the concept thereof )
21 > >>not breaking the 'easy' interpretation of USE="-*" because now things
22 > >>aren't -*, they are -* + use.force things.
23 > >>
24 > >>It's one of those "if you use USE="-*" you should know the consequences
25 > >>of it...kind of deals.
26 > >
27 > >
28 > >There are some USE flags that must survive the -* thing and already do
29 > >it. One of them being ARCH, which is always there. And the USE_EXPANDed
30 > >ones, the current important being being userland_*, kernel_* and elibc_*
31 > >which are needed for special dependencies and checks. They are not to be
32 > >modified by users by using USE in make.conf or the environment. They
33 > >depend on the chosen profile and should always be enabled. We're not
34 > >talking about every day USE flags, but really special USE flags, like
35 > >multilib, selinux or the USE_EXPANDed ones that *must* be turned on for
36 > >the chosen profile. Don't think of them like every day USE flags that
37 > >allow you to tweak your system, they are used to pass some information
38 > >from profiles to the ebuilds in a way portage can easily handle it.
39 > >
40 > >Hm, use.must sounds bad once I think about it more.
41 > >
42 > >Sven
43 > >
44 > I'm probably a little behind here, since this has been used for a while,
45 > but I guess more discussion and ideas are good.
46 >
47 > It seems like this is an abuse of USE flags, somewhat. I guess programs
48 > could have support for elibc_X or elibc_Y or userland_GNU or
49 > userland_DARWIN/BSD but why a USE flag for these? If they must be
50 > forced, force them in the environment outside of USE flag usage. USE
51 > flags are for turning off optional support for programs, that is their
52 > overall purpose. There isn't a use flag for kernel version, there is a
53 > function for that. Why is there not a function to determine
54 > userland/arch/libc?
55
56 As Diegeo already wrote in his mail, the USE_EXPANDed ELIBC and KERNEL
57 are also available as variables, but as variables we can't use them to
58 enable or disable optional dependencies for specific kernels or libcs.
59 Currently only USE flags are able to do it. I just had a quick look into
60 our handbook[1] and it mentions the following definition for an USE
61 flag:
62
63 "Such a flag is a keyword that embodies support and
64 dependency-information for a certain concept."
65
66 And for sure, elibc_uclibc or kernel_linux stand for a certain concept.
67 Same goes for multilib and selinux you mentioned further down in your
68 mail. And they might have special dependency information and need
69 special treatment in packages. IMHO they match the definition of USE
70 flags just like any other USE flag we have. Even though, as I wrote in
71 my previous mail, they are special, because they are not to be set or
72 unset by users. You chose to activate them by chosing your profile.
73 With use.force we're just making sure that they are actually enabled. We
74 can give elibc_* or kernel_* another name, but in the end, they will
75 serve the same purpose as USE flags and will be handled by portage in
76 the same way.
77
78 > In this case I think this use.force deal will create more complexity
79 > in the USE flag area than help. This is not what use flags are for (
80 > also for multilib and SELINUX ).
81
82 I don't see the complexity here. We're just creating a couple of files
83 in our profiles that force some flags to be turned on.
84
85 Sven
86
87 [1] http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=2&chap=2#doc_chap1_sect2
88
89 --
90 Sven Wegener
91 Gentoo Linux Developer
92 http://www.gentoo.org/