1 |
On Sun, Apr 24, 2011 at 2:58 PM, William Hubbs <williamh@g.o> wrote: |
2 |
> All, |
3 |
> |
4 |
> I know a decision about this type of use flag was made in the past, but |
5 |
> especially now with the --newuse option in portage, that decision |
6 |
> bothers me, so I would like to re-open the discussion. |
7 |
> |
8 |
> I will use logrotate as my example, but what I'm saying also applies for |
9 |
> xinetd. |
10 |
|
11 |
In general having use-flags control the *config* that we ship with |
12 |
packages is a silly idea. Ideally we should ship whatever upstream |
13 |
ships. If they don't ship a logrotate config but we want to ship one, |
14 |
awesome! There is no way we can make enough unique packages to |
15 |
support everyone's configuration...that is why users can configure |
16 |
things to their liking themselves. |
17 |
|
18 |
In the end there are really only a few ways this ends up: |
19 |
|
20 |
1) We install logrotate but the user doesn't use it because they do |
21 |
not have logrotate installed. This is not a big deal. For example we |
22 |
install headers all the time that the user *may* not never use to |
23 |
compile against. I don't see users complaining about that. The |
24 |
logrotate file is small and it only has 1 directory in /etc. |
25 |
2) We install logrotate but the user does not like the defaults. In |
26 |
that case they should modify the defaults. They have plenty of |
27 |
options (puppet, cfengine, chef, bcgf2, a post install hook for the |
28 |
package mangler...) to change the content of the logrotate file. |
29 |
3) We install logrotate and the user uses the default. |
30 |
|
31 |
> |
32 |
> I feel that the current approach (using INSTALL_MASK) to control whether |
33 |
> these configuration files are installed or not is not well documented. |
34 |
> We tell people about it on the mailing lists, but I do not know of a |
35 |
> place where it is documented. |
36 |
> |
37 |
> Also, it seems to be an all or nothing arrangement. If I do not want |
38 |
> logrotate support, I have to set the INSTALL_MASK then if I decide later |
39 |
> I want it, I have to unset the INSTALL_MASK and run "emerge -e world" to |
40 |
> get the files installed. |
41 |
|
42 |
I would argue that this is an edge case. How many users actually use |
43 |
install mask in this manner? I imagine most users who don't care |
44 |
about logrotate just don't have the package installed and leave the |
45 |
files in /etc |
46 |
|
47 |
> |
48 |
> If we use a "logrotate" or "xinetd" use flag, it gives the users better |
49 |
> control of which packages have this support, and the --newuse option in |
50 |
> portage can be used to rebuild only the affected packages. |
51 |
|
52 |
I don't want to get into the habit of having use flags for run-time |
53 |
package configuration. |
54 |
|
55 |
> |
56 |
> I guess the argument against the use flag was that packages were being |
57 |
> rebuilt just to install configuration files. I can see how that could be |
58 |
> a pita for big packages. Did anyone ever bring up using pkg_config to |
59 |
> un/install these files based on the use flags? |
60 |
> |
61 |
> Comments? |
62 |
> |
63 |
> William |
64 |
> |
65 |
> |