On 01/28/2014 02:34 AM, Martin Vaeth wrote: > hasufell <hasuf...@gentoo.org> wrote: >> >> On 01/27/2014 12:26 AM, William Hubbs wrote: >>> >>> No, starting with USE="-*" is very dangerous. >> >> That's nonsense imo > > No, William is completely right. > >> and I use that setup on multiple servers/routers without any issues. > > No one doubts that it is *possible* to add the correct USE for > every single package manually, but it is not a good idea to hide > the recommended defaults. >
As someone who writes those recommendations, I disagree. That's why many of my packages don't have a lot of them, because I don't like them in the first place. Another nice thing you can do is mess with USE_ORDER. And now don't tell me that is another bad idea. This is Gentoo. >> It makes sense because you have the most minimal setup possible > > This is not true, to start with: For instance, USE=minimal will > usually choose a more minimal setup. > With "-*" you will actually *disable* the default USE=minimal > for e.g. www-client/firefox, x11-apps/startx, sys-block/blocks, > dev-db/unixODBC, ... and thus get a setup which is even larger > than the recommended default. > USE="-* minimal" >> most minimal codepaths possible which reduces exposure to bugs. > > No, you usually get less tested (and by upstream considered untypical) > codepaths which actually increases the probability to hit a bug > nobody did hit/test yet. > Many defaults gentoo sets do not have anything to do with default codepaths upstream has tested. So this argument works both ways. Especially after a profile is activated. > The USE="-*" approach was reasonable before EAPI=1 was introduced: > In these days, unusual codepaths would have been set by "negative" > USE-flags, e.g. IUSE="nocxx" for gcc. > Nowadays, the upstream-recommended codepaths are set by default-USE-Flags > in the ebuild, i.e. now the same is called IUSE="+cxx" in gcc. > Using -* you disable such defaults which are usually there for a > good reason. As above, our defaults are not necessarily following upstream recommendations/defaults. Apache alone should make you think about that claim. > > Of course, if you know and care what every single USE-flags for every > single package does, it does not matter much which approach you take, > but I would guess that even in this case you need more exceptions > in /etc/portage/package.use with USE="-*" than with USE="". > I made the opposite experience. > Moreover, even for updates, it happens occassionally that a package > gets an additional USE-flag, whose default is then usually chosen in > such a way as the behaviour was before - so you risk dropping > crucial behaviour on updates if you are not very careful. > I am careful. The amount of crucial packages on my servers are not that big and I definitely watch _any_ update, unless I want a mysql update to break hell. Besides, if a useflag combination breaks something unexpectedly (e.g. the build or unrelated features) then it's a bug (minimum is to communicate the situation via elog). If disabling one useflag breaks the whole package, then it's a bug. That's something the packager has to care about and arch testers usually run all(or most?) useflag permutations before stabilizing. There is no excuse. Every other "breakage" is expected, because I have disabled the features. The power of useflags imply that I can mix them up any way I want. All of those mixtures must be supported by the maintainer, unless he warns the user about it through the ebuild, masks the useflag or sets an appropriate REQUIRED_USE constraint. Otherwise... it's a bug.