Re: [gentoo-user] Re: What's up with the hardened USE flag?

2011-07-05 Thread Daniel Pielmeier
Neil Bothwick schrieb am 05.07.2011 00:36:
 On Tue, 05 Jul 2011 00:47:07 +0300, Nikos Chantziaras wrote:
 
 Why not? I see no downside to it but I'm willing to be educated.
 
 
 Imagine this:  A package is built by default with Gtk as well as 
 with Qt support.  There is no USE flag which would omit building 
 with one of those.  Then, the ebuild developer introduces those
 USE flags. --changed-use will not catch this, so you will continue
  having both Gtk and Qt support in the package, even though you're
  interested only in one of them (Gnome vs KDE user, for example).
 
 Or, imagine another scenario.  A package offers multithreading 
 support, resulting in a huge speed-up on machines with more than 
 one core or CPU. But the ebuild configures and builds the package 
 without multithreading, and there's no USE flag.  When the ebuild 
 dev puts a USE flag in there (and probably turns it on by
 default), --changed-use will also not catch this, because it's not
 a USE flag that changed, but instead a new one that wasn't there
 before. So you will continue running the package in its slow built,
 missing out on the big performance gain.
 
 changed-use also acts on added/removed flags, it just doesn't 
 recompile when the added/removed flag is not in use. So if my KDE 
 system has -gtk to use your first example, you are right in that 
 adding a gtk USE flag will not rebuild it until the next update and 
 my program will continue to work as it did. However, adding an 
 enabled multithreading USE flag as your second example will force a 
 rebuild.
 
 It seems that the trade off here is that I have may have cruft that 
 was previously compulsory but is now optional for a couple of weeks, 
 but I won't have to rebuild libreoffice or xulrunner every time a dev
 tweaks a USE flag that doesn't affect me.
 
 That seems a reasonable trade to me, but I still have an open mind.

The first scenario from Nikos seems valid but the second one with the
per default enabled USE flag will trigger a rebuild as --changed-use
only avoid rebuilds for disabled USE flags which are added or removed.

I personally can only think of another issue. There may be a completely
new use flag which you might want to enable. With --changed-use the
changes wont show up in the depgraph and you are not aware of the new
feature. You will only get them later when there is a version/revision bump.


These are all minor things and as you said it is a reasonable trade for
you to avoid useless rebuilds. Using --newuse instead of --changed-use
is just my personal preference. Many systems are idling around most of
the time, with --newuse they have to do something :)

-- 
Regards,
Daniel



signature.asc
Description: OpenPGP digital signature


[gentoo-user] Re: What's up with the hardened USE flag?

2011-07-04 Thread Nikos Chantziaras

On 07/05/2011 12:23 AM, Neil Bothwick wrote:

On Mon, 4 Jul 2011 16:57:55 +0200, Daniel Pielmeier wrote:


use --changed-use to avoid a rebuild
instead of --new-use like Neil suggested.


This only works if you *permanently* switch to --changed-use, otherwise
you'll just postpone things to next time you use --new-use.


I haven't used --new-use for years. What's the point of rebuilding
packages just because irrelevant USE flags have changed?


I know I am not a fan of --changed-use myself


Why not? I see no downside to it but I'm willing to be educated.


Imagine this:  A package is built by default with Gtk as well as with Qt 
support.  There is no USE flag which would omit building with one of 
those.  Then, the ebuild developer introduces those USE flags. 
--changed-use will not catch this, so you will continue having both Gtk 
and Qt support in the package, even though you're interested only in one 
of them (Gnome vs KDE user, for example).


Or, imagine another scenario.  A package offers multithreading support, 
resulting in a huge speed-up on machines with more than one core or CPU. 
 But the ebuild configures and builds the package without 
multithreading, and there's no USE flag.  When the ebuild dev puts a USE 
flag in there (and probably turns it on by default), --changed-use will 
also not catch this, because it's not a USE flag that changed, but 
instead a new one that wasn't there before.  So you will continue 
running the package in its slow built, missing out on the big 
performance gain.


I guess this is why people don't use --changed-use.  It won't catch 
cases like the above.





Re: [gentoo-user] Re: What's up with the hardened USE flag?

2011-07-04 Thread Neil Bothwick
On Tue, 05 Jul 2011 00:47:07 +0300, Nikos Chantziaras wrote:

  Why not? I see no downside to it but I'm willing to be educated.  
 
 Imagine this:  A package is built by default with Gtk as well as with
 Qt support.  There is no USE flag which would omit building with one of 
 those.  Then, the ebuild developer introduces those USE flags. 
 --changed-use will not catch this, so you will continue having both Gtk 
 and Qt support in the package, even though you're interested only in
 one of them (Gnome vs KDE user, for example).
 
 Or, imagine another scenario.  A package offers multithreading support, 
 resulting in a huge speed-up on machines with more than one core or
 CPU. But the ebuild configures and builds the package without 
 multithreading, and there's no USE flag.  When the ebuild dev puts a
 USE flag in there (and probably turns it on by default), --changed-use
 will also not catch this, because it's not a USE flag that changed, but 
 instead a new one that wasn't there before. So you will continue 
 running the package in its slow built, missing out on the big 
 performance gain.

changed-use also acts on added/removed flags, it just doesn't recompile
when the added/removed flag is not in use. So if my KDE system has -gtk
to use your first example, you are right in that adding a gtk USE flag
will not rebuild it until the next update and my program will continue to
work as it did. However, adding an enabled multithreading USE flag as
your second example will force a rebuild.

It seems that the trade off here is that I have may have cruft that was
previously compulsory but is now optional for a couple of weeks, but I
won't have to rebuild libreoffice or xulrunner every time a dev tweaks a
USE flag that doesn't affect me.

That seems a reasonable trade to me, but I still have an open mind.


-- 
Neil Bothwick

Top Oxymorons Number 2: Exact estimate


signature.asc
Description: PGP signature