Re: [gentoo-dev] don't rely on dynamic deps

2014-07-22 Thread Paweł Hajdan, Jr.
On 7/21/14, 11:52 PM, Alexander Berntsen wrote:
 Michał has documented the shortcomings of dynamic deps in our wiki[0].
 (Thank you!) This documentation also includes two of our possible
 solutions.

 [0]  https://wiki.gentoo.org/wiki/Project:Portage/Dynamic_dependencies

Thank you, this is very useful. I didn't understand the issue much
before reading that page.

One question: why for Removal of a USE flag along with the relevant
dependencies dynamic deps say revbump + unnecessary rebuild? What
would happen without the revbump?

 1. Improve dynamic-deps. This is, as Michał pointed out earlier in
 this thread a pipe dream.

Agreed.

 2. Remove dynamic-deps. This is what I think currently makes sense.

+1 I also think it's the best option.

Paweł



signature.asc
Description: OpenPGP digital signature


[gentoo-dev] Re: don't rely on dynamic deps

2014-07-22 Thread Martin Vaeth
Pacho Ramos pa...@gentoo.org wrote:

 Maybe this could be solved by having two kinds of revisions:
 - One would rebuild all as usually (for example, -r1...)
 - The other one would only regenerate VDB and wouldn't change the
 installed files (for example, -r1.1)

I made the same suggestion already on the corresponding bug
https://bugs.gentoo.org/show_bug.cgi?id=516612#c33
without any response.

It seems to me that this could avoid the problem of useless
recompilation and would allow fine-graining of the issue by the
ebuild maintainer (if not the maintainer of the ebuild, who else
should be able to decide whether recompilation might be
necessary to handle certain exceptions?)
and simultaneously allow to revbump even on presumably
tiny dependency changes.

I still have not seen an argument against this idea.

Of course, this would need an EAPI bump and could only be used
for packages which are (or switch to(?)) this new EAPI, so a few
(core) packages which should stay EAPI=0 for a long time
are excluded from this for still quite a while.
But apart from that few exceptions...?




Re: [gentoo-dev] Re: don't rely on dynamic deps

2014-07-22 Thread Pacho Ramos
El mar, 22-07-2014 a las 07:39 +, Martin Vaeth escribió:
 Pacho Ramos pa...@gentoo.org wrote:
 
  Maybe this could be solved by having two kinds of revisions:
  - One would rebuild all as usually (for example, -r1...)
  - The other one would only regenerate VDB and wouldn't change the
  installed files (for example, -r1.1)
 
 I made the same suggestion already on the corresponding bug
   https://bugs.gentoo.org/show_bug.cgi?id=516612#c33
 without any response.

Just CCed :)

 
 It seems to me that this could avoid the problem of useless
 recompilation and would allow fine-graining of the issue by the
 ebuild maintainer (if not the maintainer of the ebuild, who else
 should be able to decide whether recompilation might be
 necessary to handle certain exceptions?)
 and simultaneously allow to revbump even on presumably
 tiny dependency changes.
 
 I still have not seen an argument against this idea.
 
 Of course, this would need an EAPI bump and could only be used
 for packages which are (or switch to(?)) this new EAPI, so a few
 (core) packages which should stay EAPI=0 for a long time
 are excluded from this for still quite a while.
 But apart from that few exceptions...?
 
 

Also, this could be a benefit in the long term if we need to spread any
changes to VDB in the future.




[gentoo-dev] Re: don't rely on dynamic deps

2014-07-22 Thread Michael Palimaka
On 07/22/2014 07:52 AM, Alexander Berntsen wrote:
 
 To sum up: My vote is disable dynamic-deps. And I would be happy to
 apply a patch that does this with the information I have today.

What a great way to kill the distro.

I can already heat my house with the number of unnecessary rebuilds - I
can't imagine how many people will be left once we have to needlessly
rebuild libreoffice and half the tree every time someone makes some
minor change. If developers can't revbump correctly to address the
shortcomings of dynamic deps, why do we expect they will be able to do
so for static deps?

When can we expect this issue to be brought before the Council? I look
forward to seeing the specific examples of unavoidable breakage that
would be required to make such a decision.




Re: [gentoo-dev] Re: don't rely on dynamic deps

2014-07-22 Thread Kristian Fiskerstrand
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA512

On 07/22/2014 10:21 AM, Michael Palimaka wrote:
 On 07/22/2014 07:52 AM, Alexander Berntsen wrote:
 
 To sum up: My vote is disable dynamic-deps. And I would be happy
 to apply a patch that does this with the information I have
 today.
 
 What a great way to kill the distro.
 
 I can already heat my house with the number of unnecessary rebuilds
 - I can't imagine how many people will be left once we have to
 needlessly rebuild libreoffice and half the tree every time someone
 makes some minor change. If developers can't revbump correctly to
 address the shortcomings of dynamic deps, why do we expect they
 will be able to do so for static deps?
 

I find it somewhat curious that the difference between ~arch and
stable hasn't been brought up in this discussion yet. IMHO a user on
~arch should expect a higher number of rebuilds, it _is_ after all
testing, whereby at the point it reaches stable, the deps are
hopefully more likely to be correct to begin with.

Does anyone have any insight into where these changes most often occur?

- -- 
- 
Kristian Fiskerstrand
Blog: http://blog.sumptuouscapital.com
Twitter: @krifisk
- 
Public PGP key 0xE3EDFAE3 at hkp://pool.sks-keyservers.net
fpr:94CB AFDD 3034 5109 5618 35AA 0B7F 8B60 E3ED FAE3
- 
Ad astra per aspera
To the stars through thorns
-BEGIN PGP SIGNATURE-

iQIcBAEBCgAGBQJTziGbAAoJEPw7F94F4Tag61QP/iznpmFoc2jKO1Ex8fHEFURA
8D6mgzmkBW2OYWux8JnSfmS7WBrXvs0869Ey/dTgQeMWsdaauhFSqGUTL8k2s3pD
2NZUiNM9fBDGrVR589r0EX5jpPoylsq+ViYc/GtsWfUx8QZGRQOs75ecIB3G5dfS
eg15r/UI7Q5/vQv93s49Wl3EKWR8peqf46nsluXLMLZff80I6S2T0wGTZP9lMHd7
62Lwo4MxQEm+0XBqVNiY438qaF9eZBR8W14BPUwn2VWD0tL8CtNLiHZwLAAnYZrs
FE4mgAFUQu+cmJow4DAPkOxMqiqFHLlyh2wVKkxNVTp4fwYdLLeQZWLVLqF3Z7BR
cx75ocKCZmxcKqPA6gYj0hcl1W8uj7WyAwIOcYTzBBFf0eSaBzErtZ1WS7GVM/7z
1cauEo7DsDjiW2THZDkSy/zLn/O9XxRwMddqT7rT7IxDiy+V0n6AW4WD7mA/sAkd
YfEnQmZARF0hK7msiy88ScBK73NpmAmU04kVoIV1IUaKNjaahWi4sk8MDKbV/V7z
qnXvbQEejH9O9FbsY0ugWB6TL1imyfE3Va+Z63/nF3GFtO+XwJ3fqpT0VbDR3YBL
sYXNQ9CHRBoemIOaCLLGPJbkwAALS2/gt9aVsxHLE75efvuGAqj2Qa9g8Paj5WBH
Pq8eqnjDYOX02BBjSzSr
=sYA4
-END PGP SIGNATURE-



Re: [gentoo-dev] Re: don't rely on dynamic deps

2014-07-22 Thread Samuli Suominen

On 22/07/14 11:21, Michael Palimaka wrote:
 On 07/22/2014 07:52 AM, Alexander Berntsen wrote:
 To sum up: My vote is disable dynamic-deps. And I would be happy to
 apply a patch that does this with the information I have today.
 What a great way to kill the distro.

 I can already heat my house with the number of unnecessary rebuilds - I
 can't imagine how many people will be left once we have to needlessly
 rebuild libreoffice and half the tree every time someone makes some
 minor change. If developers can't revbump correctly to address the
 shortcomings of dynamic deps, why do we expect they will be able to do
 so for static deps?

 When can we expect this issue to be brought before the Council? I look
 forward to seeing the specific examples of unavoidable breakage that
 would be required to make such a decision.



+1



Re: [gentoo-dev] Re: don't rely on dynamic deps

2014-07-22 Thread Pacho Ramos
El mar, 22-07-2014 a las 10:32 +0200, Kristian Fiskerstrand escribió:
[...]
 I find it somewhat curious that the difference between ~arch and
 stable hasn't been brought up in this discussion yet. IMHO a user on
 ~arch should expect a higher number of rebuilds, it _is_ after all
 testing, whereby at the point it reaches stable, the deps are
 hopefully more likely to be correct to begin with.
 
 Does anyone have any insight into where these changes most often occur?
 

Well, I have seen multiple times of this kind of fixes being noticed by
people running really old stable boxes. They notice them when they
update to latest stable and, then, we need to fix depends raising the
versions usually :/

Maybe this discussion should be focused on trying to think about how to
standardize a way for distinguish between revision bumps needing full
rebuild or only VDB updates :|




Re: [gentoo-dev] don't rely on dynamic deps

2014-07-22 Thread Alexander Berntsen
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA256

On 22/07/14 02:36, hasufell wrote:
 William Hubbs:
 My concern about doing a revbump just because the deps change is
 that the new revision has to be committed in ~arch, so we then
 have to hit the arch teams, which we know are overworked anyway,
 with stable requests just because we changed the dependencies.
 Isn't that causing a lot of possibly unnecessary work for our
 arch teams?
 Procedure over logic?
 
 Just commit it straight to arch if repoman doesn't complain.
William,

this is, as Julian pointed out, a problem you can solve by changing
your policies. This is not a problem related to the Portage software,
in which dynamic-deps are broken.
- -- 
Alexander
berna...@gentoo.org
https://secure.plaimi.net/~alexander
-BEGIN PGP SIGNATURE-
Version: GnuPG v2
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iF4EAREIAAYFAlPOMgYACgkQRtClrXBQc7VuuwD/UNQzX5aHSBbfXhyYRxH4oYzK
N9aEf88WLVJK2JVKJBkA/iDF6ozQ9I0WKWpi/jvZa/W7yxKeZsXu5ACa5mbgM88+
=9/RG
-END PGP SIGNATURE-



Re: [gentoo-dev] Re: don't rely on dynamic deps

2014-07-22 Thread Alexander Berntsen
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA256

On 22/07/14 09:39, Martin Vaeth wrote:
 Pacho Ramos pa...@gentoo.org wrote:
 
 Maybe this could be solved by having two kinds of revisions: -
 One would rebuild all as usually (for example, -r1...) - The
 other one would only regenerate VDB and wouldn't change the 
 installed files (for example, -r1.1)
 
 I made the same suggestion already on the corresponding bug 
 https://bugs.gentoo.org/show_bug.cgi?id=516612#c33 without any
 response.
Martin,

I have no arguments against your idea to tell the PM that this bump
only changes dependencies. My initial reaction is that this is a Good
Thing. Would you like to try to implement it?
- -- 
Alexander
berna...@gentoo.org
https://secure.plaimi.net/~alexander
-BEGIN PGP SIGNATURE-
Version: GnuPG v2
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iF4EAREIAAYFAlPOM9wACgkQRtClrXBQc7WV1AD+LbojEp7TVY51WobwTflCPzQK
wZbmGWiyyBhylG7AgWIBAJRKURylzKxjPWcmjGwllf2CXcublXZCmndzbHeoTm0B
=doak
-END PGP SIGNATURE-



Re: [gentoo-dev] don't rely on dynamic deps

2014-07-22 Thread hasufell
Alexander Berntsen:
 
 Julian,
 
 would you like to share your experiences with Paludis? My guess is
 that Paludis is more predictable in this respect. I.e., instead of
 breaking stuff, I expect Paludis to simply give up.
 

Relying on dynamic deps as they are currently implemented simply causes
the vdb to enter a broken state after some time.

If you switch from portage to paludis then, you will encounter a lot of
unsuitable candidates messages during dependency resolving and will
have to figure out that the broken vdb is the reason. Afais paludis does
not allow you to randomly break the vdb (or I haven't found the --nodeps
option yet).



Re: [gentoo-dev] don't rely on dynamic deps

2014-07-22 Thread Ian Stakenvicius
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA256

On 21/07/14 05:06 PM, Pacho Ramos wrote:
 El lun, 21-07-2014 a las 20:55 +0100, Ciaran McCreesh escribió:
 On Mon, 21 Jul 2014 21:53:04 +0200 Andreas K. Huettel
 dilfri...@gentoo.org wrote:
 Revision must be bumped when the on-disk files installed by
 the ebuild are changed. Nothing about dependencies.
 
 This has been policy for a LONG time, and we're not going to
 change it overnight just because you protest.
 
 Policy used to be that you'd do a revbump when you wanted users
 to reinstall stuff, and you wouldn't otherwise. The only
 complication is that sometimes you want users to reinstall stuff
 so that there's accurate dependency information available, rather
 than because something has changed.
 
 
 Maybe this could be solved by having two kinds of revisions: - One
 would rebuild all as usually (for example, -r1...) - The other one
 would only regenerate VDB and wouldn't change the installed files
 (for example, -r1.1)
 
 But I am not sure if it could be viable from a technical point
 of view :(
 
 

eww, no.  Using ${PVR} to detect how portage should update things
would be asking for trouble, imo.  Besides, I don't think detection of
when to just update VDB is the issue.  The main issue that I see is
- -how- VDB should be adjusted based on what changes are made to the
ebuilds.  For instance, if minimum versions of deps are adjusted
in-place, should vdb be updated to match?  what happens if the minimum
version of the currently-installed dep is below the new one?  etc. etc.

Also, in theory an EAPI bump with nothing else changing should be
re-generatable in the VDB, but i have a gut feeling (no evidence, just
a feeling) that going from say, EAPI2 to EAPI5 without doing some of
the phase functions again (ie 'merge', maybe there are others that can
affect VDB?) will result in a different VDB from a regular rebuild.


-BEGIN PGP SIGNATURE-
Version: GnuPG v2.0.22 (GNU/Linux)

iF4EAREIAAYFAlPObO0ACgkQ2ugaI38ACPCerQEAgTgQOvCDl0dbB5sOOZ4diBNs
cheQR18XFo7MsVBX3uUA/0zP1cAiWy1zAF+crrfCC42krtvGmSSiU4JG0dFo4452
=iNmo
-END PGP SIGNATURE-



Re: [gentoo-dev] Re: don't rely on dynamic deps

2014-07-22 Thread Sven Vermeulen


On July 22, 2014 11:25:05 AM CEST, Pacho Ramos pa...@gentoo.org wrote:
El mar, 22-07-2014 a las 10:32 +0200, Kristian Fiskerstrand escribió:
[...]
 I find it somewhat curious that the difference between ~arch and
 stable hasn't been brought up in this discussion yet. IMHO a user on
 ~arch should expect a higher number of rebuilds, it _is_ after all
 testing, whereby at the point it reaches stable, the deps are
 hopefully more likely to be correct to begin with.
 
 Does anyone have any insight into where these changes most often
occur?
 

Well, I have seen multiple times of this kind of fixes being noticed by
people running really old stable boxes. They notice them when they
update to latest stable and, then, we need to fix depends raising the
versions usually :/

Maybe this discussion should be focused on trying to think about how to
standardize a way for distinguish between revision bumps needing full
rebuild or only VDB updates :|

As someone who regularly adds in dependencies without bumping (adding 
USE=selinux dependencies to the proper SELinux policy) because that would 
trigger lots of totally unnecessary rebuilds: 

+1

Wkr,
  Sven
-- 
Sent from my Android device with K-9 Mail. Please excuse my brevity.



Re: [gentoo-dev] Re: don't rely on dynamic deps

2014-07-22 Thread Ciaran McCreesh
On Tue, 22 Jul 2014 19:03:16 +0200
Sven Vermeulen sw...@gentoo.org wrote:
 As someone who regularly adds in dependencies without bumping (adding
 USE=selinux dependencies to the proper SELinux policy) because that
 would trigger lots of totally unnecessary rebuilds: 

Er... You do realise that doing that with dynamic dependencies leads to
packages depending upon selinux that don't actually use selinux, right?
Thus triggering lots of totally unnecessary rebuilds on an ABI change.

-- 
Ciaran McCreesh


signature.asc
Description: PGP signature


Re: [gentoo-dev] Re: don't rely on dynamic deps

2014-07-22 Thread Samuli Suominen

On 22/07/14 20:11, Ciaran McCreesh wrote:
 On Tue, 22 Jul 2014 19:03:16 +0200
 Sven Vermeulen sw...@gentoo.org wrote:
 As someone who regularly adds in dependencies without bumping (adding
 USE=selinux dependencies to the proper SELinux policy) because that
 would trigger lots of totally unnecessary rebuilds: 
 Er... You do realise that doing that with dynamic dependencies leads to
 packages depending upon selinux that don't actually use selinux, right?
 Thus triggering lots of totally unnecessary rebuilds on an ABI change.


Err, I believe he meant adding RDEPEND -only USE=selinux to pull in
eg. sec-policy/selinux-dante
from net-proxy/dante
So, how does that exactly make packages depending upon selinux that
don't actually use selinux
Doesn't make any sense

- Samuli



Re: [gentoo-dev] don't rely on dynamic deps

2014-07-22 Thread Kent Fredric
On 22 July 2014 19:25, Paweł Hajdan, Jr. phajdan...@gentoo.org wrote:

 On 7/21/14, 11:52 PM, Alexander Berntsen wrote:
  Michał has documented the shortcomings of dynamic deps in our wiki[0].
  (Thank you!) This documentation also includes two of our possible
  solutions.
 
  [0]  https://wiki.gentoo.org/wiki/Project:Portage/Dynamic_dependencies

 Thank you, this is very useful. I didn't understand the issue much
 before reading that page.

 One question: why for Removal of a USE flag along with the relevant
 dependencies dynamic deps say revbump + unnecessary rebuild? What
 would happen without the revbump?

  1. Improve dynamic-deps. This is, as Michał pointed out earlier in
  this thread a pipe dream.

 Agreed.

  2. Remove dynamic-deps. This is what I think currently makes sense.

 +1 I also think it's the best option.

 Paweł


Ok, we can side step this discussion partially:

Lets pretend for a moment dynamic deps get banned.

People will still unconsciously make that mistake and things will still
break when they do.

So we'll probably need a repoman check that is smart enough to know X is
modified and compare the DEPEND fields with the previous incarnation prior
to commit, and then at very least, warn people doing `repoman full` that
they've modified the dependencies, and that a -r1 bump is thus highly
recommended.

And that check can be added *now* prior to banning/disabling dynamic deps.

And people who want to pay attention to that warning can start doing it
before policy dictates they must.


-- 
Kent

*KENTNL* - https://metacpan.org/author/KENTNL


[gentoo-dev] Re: don't rely on dynamic deps

2014-07-22 Thread Martin Vaeth
Ian Stakenvicius a...@gentoo.org wrote:

 The main issue that I see is
 - -how- VDB should be adjusted based on what changes are made to the
 ebuilds.  For instance, if minimum versions of deps are adjusted
 in-place, should vdb be updated to match?  what happens if the minimum
 version of the currently-installed dep is below the new one?  etc. etc.

All these problems disappear with minor revisions:
You have to install the minor revisions just like any major revision,
just that some phases will be shortcut.
In particular, if the new dependencies are not satisfied, you get
conflicts as usual if you would want to upgrade to a new version
with dependencies not being satisfied.

 Also, in theory an EAPI bump with nothing else changing should be
 re-generatable in the VDB, but i have a gut feeling (no evidence, just
 a feeling) that going from say, EAPI2 to EAPI5 without doing some of
 the phase functions again (ie 'merge', maybe there are others that can
 affect VDB?) will result in a different VDB from a regular rebuild.

As far as I can see, the phase functions which can be skipped
are those from EbuildExecuter.
If a package is special and needs to execute these functions,
then this package must not use minor revisions and needs to
be recompiled. Howeer, these packages should be rather rare;
I cannot even imagine a reason why this should be necessary.

For merge only the regeneration of CONTENTS in /var/db/pkg
should be skipped.

Concerning the confusion with minor revisions, I think that
just the version comparison function in portage needs to be tuned to
ignore minor revisions unless an extra parameter minor is passed:

This extra parameter is essentially only needed in the best
function and in the check whether phases need to be run.
The version comparison function should just return
-2, 2, 0 (if minor is not passed or False)
-2, 2, -1, 1, 0 (if minor True; the values +-1 mean that
*only* the minor revision differs).

For some parts (some eapi support, parts of EbuildExecuter and
version comparison), I have already some patches ready
for portage.  However, I have almost no free time, and I am
not familiar enough with python and portage to do the rest
in a reasonable time
(e.g. I cannot put some writable attribute to EbuildExecuter
since apparently some python hack is used in portage which I
do not understand).
If there is interest, I can post my patches so far. Where?

What is not included in these patches, and I will probably
not find the time to include it:

1. The actual skipping of phases (since all my attempts to
   set some flag led to the python error that all
   attributes of EbuildExecuter are readonly :( )
2. The modification of the merge phase to not regenerate
   CONTENTS
3. Reporting an error if minor versions are used with
   non-matching EAPI. Surprisingly, this needs a bigger
   rewrite, since the code generating the regular expression
   for the version handling is currently not appropriate to
   such an extension.
4. Updating of .tbz2 files - this is certainly a bigger work.
5. In particular, the patches could not be tested yet...

I would suggest to postpone 3. and 4. until the decision
is made...




Re: [gentoo-dev] Re: don't rely on dynamic deps

2014-07-22 Thread Alexander Berntsen
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA256

On 22/07/14 20:40, Martin Vaeth wrote:
 If there is interest, I can post my patches so far. Where?
If you think these patches are useful for Portage, please send them to
dev-port...@gentoo.org.
- -- 
Alexander
berna...@gentoo.org
https://secure.plaimi.net/~alexander
-BEGIN PGP SIGNATURE-
Version: GnuPG v2
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iF4EAREIAAYFAlPOslgACgkQRtClrXBQc7X58QD7BCSHxg3yiSynXe4EKpYk8R/n
pZKQPCoJqQXFtkFyU/0A/2BTRMm8T60AzHFNlaeKudRPQ4EC8ACbkP8+v4C6XVoW
=0GbF
-END PGP SIGNATURE-



Re: [gentoo-dev] don't rely on dynamic deps

2014-07-22 Thread Alexander Berntsen
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA256

On 22/07/14 20:44, Kent Fredric wrote:
 So we'll probably need a repoman check that is smart enough to know
  X is modified and compare the DEPEND fields with the previous 
 incarnation prior to commit, and then at very least, warn people 
 doing `repoman full` that they've modified the dependencies, and 
 that a -r1 bump is thus highly recommended.
 
 And that check can be added *now* prior to banning/disabling
 dynamic deps.
 
 And people who want to pay attention to that warning can start
 doing it before policy dictates they must.
This would be a good thing to do. Would you like to try implementing it?
- -- 
Alexander
berna...@gentoo.org
https://secure.plaimi.net/~alexander
-BEGIN PGP SIGNATURE-
Version: GnuPG v2
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iF4EAREIAAYFAlPOso8ACgkQRtClrXBQc7V7BgEAgElHG5RcxpJWS2eTQ7YVFdDX
NZ55itqGeMngocAoitUA+QF4N0w07NrQSpPecPaF5AeuLOspGI7xjfaU/2BNFLGO
=1H0R
-END PGP SIGNATURE-



[gentoo-dev] Re: don't rely on dynamic deps

2014-07-22 Thread Ulrich Mueller
 On Tue, 22 Jul 2014, Martin Vaeth wrote:

 Ian Stakenvicius a...@gentoo.org wrote:
 
 The main issue that I see is
 - -how- VDB should be adjusted based on what changes are made to the
 ebuilds.  For instance, if minimum versions of deps are adjusted
 in-place, should vdb be updated to match?  what happens if the minimum
 version of the currently-installed dep is below the new one?  etc. etc.

 All these problems disappear with minor revisions:
 You have to install the minor revisions just like any major revision,
 just that some phases will be shortcut.
 In particular, if the new dependencies are not satisfied, you get
 conflicts as usual if you would want to upgrade to a new version
 with dependencies not being satisfied.

Other problems appear, though. Documentation is installed in a ${PF}
subdir, so install locations actually do change when updating the
minor revision. Also some method for updating binary packages would be
needed.

All in all, I'm not convinced if the cure wouldn't be worse than the
disease here. It would introduce another level of complexity, in order
to avoid a few rebuilds.

Ulrich


pgpzXNKhpbaKV.pgp
Description: PGP signature


[gentoo-dev] Re: don't rely on dynamic deps

2014-07-22 Thread Martin Vaeth
Ulrich Mueller u...@gentoo.org wrote:

 Other problems appear, though. Documentation is installed in a ${PF}
 subdir, so install locations actually do change when updating the
 minor revision.

Yes, the minor revisions should not be exported into the variables
of ebuild.sh.  I had forgotten this.

 Also some method for updating binary packages would be needed.

I already mentioned that. But even if this is not implemented,
this is only a minor issue.

 All in all, I'm not convinced if the cure wouldn't be worse than the
 disease here.

The disease is making the distribution almost useless
or having broken dependencies.

 It would introduce another level of complexity, in order
 to avoid a few rebuilds.

It seems you never counted the number of silent modifications
to the tree: Just compare the number of changed packages in
metadata/ with the number of packages shown by eix-sync...
I would guess it means roughly that you have to recompile your
whole installation once a week, 95% of the rebuilds being due to
not fixing the package manager to work properly with dynamic deps.

Actually, I still think that implementing dynamic deps correctly
would be better, but minor revisions do not exclude this
and are probably simpler to implement.




Re: [gentoo-dev] don't rely on dynamic deps

2014-07-22 Thread Samuli Suominen

On 22/07/14 10:25, Paweł Hajdan, Jr. wrote:
 On 7/21/14, 11:52 PM, Alexander Berntsen wrote:
 2. Remove dynamic-deps. This is what I think currently makes sense.
 +1 I also think it's the best option.



Not before someone has implemented an alternative way to avoid useless
rebuilding.
The quality of the distribution doesn't improve by killing one of the
most important
features the package manager has.
The quality of the distribution improves by providing an alternative
with less problems.

Sounds like to me, that the people who want to remove the feature so
badly, are the
ones volunteering for the job as well.

- Samuli



Re: [gentoo-dev] don't rely on dynamic deps

2014-07-22 Thread Michał Górny
Dnia 2014-07-22, o godz. 09:25:45
Paweł Hajdan, Jr. phajdan...@gentoo.org napisał(a):

 On 7/21/14, 11:52 PM, Alexander Berntsen wrote:
  Michał has documented the shortcomings of dynamic deps in our wiki[0].
  (Thank you!) This documentation also includes two of our possible
  solutions.
 
  [0]  https://wiki.gentoo.org/wiki/Project:Portage/Dynamic_dependencies  
 
 Thank you, this is very useful. I didn't understand the issue much
 before reading that page.
 
 One question: why for Removal of a USE flag along with the relevant
 dependencies dynamic deps say revbump + unnecessary rebuild? What
 would happen without the revbump?

Well, for completeness I'll start by listing what would happen with
static deps. Though nothing will actually happen. Already-built
packages may have the flag enabled along with deps. When people rebuild
-- through --newuse, --changed-use or otherwise -- they will get
the functionality and dependencies removed along with the flag.

How dynamic-deps would handle that are pretty much a matter of
implementation choice. I can think of two major possibilities:

1. dynamic-deps are applied nevertheless. Since the relevant
dependencies are removed along with the flag, dynamic-deps causes
portage to no longer pull in needed libraries even though package was
built with the flag enabled and still links to them. Long story short,
linkage is broken.

2. PM notices IUSE no longer matches and doesn't apply dynamic-deps.
While this prevents the breakage from happening, it's one additional
point to the list of cases when dynamic-deps are disabled. Which means
that no further dependency changes to the ebuild have dynamic effect
and -- with current portage implementation -- the dependencies are
'reverted' to the state when the package was installed, even though
just before the change portage used ebuild dependencies.

Of course, you could try to invent some smart logic that would handle
this specific case better. But it makes the dependency resolution even
more complex and hard to understand, plus someone needs to actually do
it. And then, you're going to hit even more corner cases and implement
additional workarounds for each one. And then each of those workarounds
will create new corner cases...

-- 
Best regards,
Michał Górny


signature.asc
Description: PGP signature


[gentoo-dev] Re: don't rely on dynamic deps

2014-07-22 Thread Ulrich Mueller
 On Tue, 22 Jul 2014, Martin Vaeth wrote:

 Ulrich Mueller u...@gentoo.org wrote:
 Other problems appear, though. Documentation is installed in a
 ${PF} subdir, so install locations actually do change when updating
 the minor revision.

 Yes, the minor revisions should not be exported into the variables
 of ebuild.sh.  I had forgotten this.

That doesn't help. Imagine there is cat/foo-1 and the minor revision
is bumped. The new ebuild is cat/foo-1-r0.1 then, and PF changes even
if the minor revision is ignored (namely, from foo-1 to foo-1-r0).

 Actually, I still think that implementing dynamic deps correctly
 would be better, but minor revisions do not exclude this
 and are probably simpler to implement.

The PM could just update the VDB whenever it detects that the metadata
of the ebuild has changed (relative to the VDB). You can get that
without introducing the additional complication of minor revisions.

Ulrich


pgpPZg59E8x2o.pgp
Description: PGP signature


Re: [gentoo-dev] don't rely on dynamic deps

2014-07-22 Thread William Hubbs
On Tue, Jul 22, 2014 at 11:42:30AM +0200, Alexander Berntsen wrote:
 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA256
 
 On 22/07/14 02:36, hasufell wrote:
  William Hubbs:
  My concern about doing a revbump just because the deps change is
  that the new revision has to be committed in ~arch, so we then
  have to hit the arch teams, which we know are overworked anyway,
  with stable requests just because we changed the dependencies.
  Isn't that causing a lot of possibly unnecessary work for our
  arch teams?
  Procedure over logic?
  
  Just commit it straight to arch if repoman doesn't complain.
 William,
 
 this is, as Julian pointed out, a problem you can solve by changing
 your policies. This is not a problem related to the Portage software,
 in which dynamic-deps are broken.

s/your/our/

Repoman refuses to commit if you try to go directly to stable without
using --force.

I'm just being cautious; I'm not sure whether this qualifies as the type
of emergency situation where commiting directly to stable is a good
thing or not.

William



signature.asc
Description: Digital signature


[gentoo-dev] Re: don't rely on dynamic deps

2014-07-22 Thread Martin Vaeth
Ulrich Mueller u...@gentoo.org wrote:
 The new ebuild is cat/foo-1-r0.1 then, and PF changes even
 if the minor revision is ignored (namely, from foo-1 to foo-1-r0).

PF has to be filled correctly, of course:
The versions foo-1 and foo-1-r0 are identical according to PMS
and should thus lead to the same $PF.

If this is currently not happening in portage, this is a bug
which should be fixed, independently of whether minor revisions
are introduced or not.

Note that PR=0 in both cases.

BTW: Even if PF would have the wrong value, this would not do
any harm for minor revisions: If the minor revision has just
changed, nothing is merged to the filesystem and /var/db/*/*/CONTENTS
is unchanged, either. So nothing breaks in this case.
If the user re-emerges the minor revision (and if PF would have
the wrong value), then the minor revision would be visible to the
user in the sense that the name of the Doc-Directory is influenced
(and after a further minor revision bump, this revision number
would be outdated). An arguable cosmetical issue,
but nothing breaks, either.

 Actually, I still think that implementing dynamic deps correctly
 would be better, but minor revisions do not exclude this
 and are probably simpler to implement.

 The PM could just update the VDB whenever it detects that the metadata
 of the ebuild has changed (relative to the VDB). You can get that
 without introducing the additional complication of minor revisions.

...but by introducing all the additional complications Ian
has mentioned. More precisely: What happens if new dependencies
are introduced which are not satisfied?
One has to face it: Portage must not just silently update the
database and thus silently produce a /var/db which does not
satisfy its own dependencies...




Re: [gentoo-dev] Using LINGUAS

2014-07-22 Thread Mart Raudsepp
Hello,

LINGUAS is a concept in gettext tooling. I do not understand why we
overload it in package management in the first place.
It is an environment variable that we set up in make.conf, because
that's an easy way to get it into the build environment to have the
standard way of limiting translations work.

By overloading it for IUSE_EXPAND we effectively make it pretty much
impossible to have the choice of ALL translation files, except when it
means extra packages; without conditional LINGUAS setting, that is.


The standard LINGUAS variable acts as follows:

If unset: Build all translations
If set to an UNORDERED listing of language codes: Include translations
for listed languages (or dialects)
If set to an empty string or similar: Don't include any translations


We currently have wrong behaviour for when it's unset, as as far as
IUSE_EXPAND is concerned - we don't have a default that includes all
available linguas as far as I know.


Though in the real world, I don't think it matters much, and it's
convenient for those that just build a gentoo machine for use within the
family, with known language capabilities within.


As a side note: LINGUAS does not only control which .mo files happen to
be installed (which you could get rid of later easily with localepurge)
- it also is used to filter out unwanted translations in files which
have all the translations in the same file; this includes, but is not
limited to .desktop files.
This used to be a intltool thing, but nowadays gettext has derived such
support directly as well.


Mart




[gentoo-dev] Re: don't rely on dynamic deps

2014-07-22 Thread Ulrich Mueller
 On Tue, 22 Jul 2014, Martin Vaeth wrote:

 PF has to be filled correctly, of course:
 The versions foo-1 and foo-1-r0 are identical according to PMS
 and should thus lead to the same $PF.

This is not so. These versions are equal in comparision, so they
cannot be in the tree at the same time. However, PF will be different
for them.

Note that this also occurs elsewhere. For example, versions 1.0.2 and
1.000.2 cound as equal, but again PF will be different.

 If this is currently not happening in portage, this is a bug
 which should be fixed, independently of whether minor revisions
 are introduced or not.

Portage behaves as PMS specifies. PF is derived from the ebuild's
name, without any normalisation to a canonical version.

Ulrich


pgpZXC19wJc9M.pgp
Description: PGP signature


Re: [gentoo-dev] Re: don't rely on dynamic deps

2014-07-22 Thread Andreas K. Huettel
Am Dienstag 22 Juli 2014, 22:40:03 schrieb Ulrich Mueller:
  On Tue, 22 Jul 2014, Martin Vaeth wrote:
  PF has to be filled correctly, of course:
  The versions foo-1 and foo-1-r0 are identical according to PMS
  and should thus lead to the same $PF.
 
 This is not so. These versions are equal in comparision, so they
 cannot be in the tree at the same time. However, PF will be different
 for them.

Well we'd need a new EAPI for this anyway. So we might as well redefine -r0 
there. 

-- 
Andreas K. Huettel
Gentoo Linux developer
kde, council




Re: [gentoo-dev] don't rely on dynamic deps

2014-07-22 Thread Michał Górny
Dnia 2014-07-21, o godz. 22:42:23
Samuli Suominen ssuomi...@gentoo.org napisał(a):

 So, -1, useless rebuilds is one of the biggest problems lately,

[citation needed].

In other words, please support such claims with evidence. Because
honestly I didn't see very much people complaining about unnecessary
rebuilds, except in this specific thread.

But I guess they're indeed a larger issue than, for example, portage
forcing wrong branches of || dependencies or other dependency
calculation errors that result in people being unable to update their
systems. But I don't really visit Forums often.

 it's an
 relatively new problem,
 people are revbumping packages for the simplest things like EAPI4-5

If you ever happen to change EAPI in a stable ebuild without revbump,
please be kind enough to revoke your own commit rights. Thanks.

-- 
Best regards,
Michał Górny


signature.asc
Description: PGP signature