* [gentoo-dev] Request to add ~> atom prefix operator on Portage.
@ 2015-09-14 4:35 konsolebox
2015-09-14 5:38 ` Daniel Campbell
` (4 more replies)
0 siblings, 5 replies; 54+ messages in thread
From: konsolebox @ 2015-09-14 4:35 UTC (permalink / raw
To: gentoo-dev
Many times we need to match packages like this: something-1.0.2a.*
But that expression is not allowed with ~ (only targets revisions) and
neither with * (.*) is invalid.
So my suggestion is to add ~> as another operator. With it we can
have an expression like '~>pkg-1.0.2a' and it would be equivalent to
'>=pkg-1.0.2a' and '<pkg-1.0.2b'. Another expression like
'~>pkg-1.0.2' would be equivalent to '>=pkg-1.0.2' and '<pkg-1.0.3'.
If comparing by arithmetic operations turns out to be difficult (i.e.
predicting the next version to compare against), then maybe we could
just compare it with pattern(s). For example if we have 'pkg-1.02a'
as the base version, then the valid versions we need to get are
'pkg-1.02a', 'pkg-1.02a.*' and
'pkg-1.02a(_(alpha|beta|pre|p)|-r)[0-9]+'.
The operator is copied from Ruby's Gemfile so it would be familiar to
anyone developing Ruby as well.
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [gentoo-dev] Request to add ~> atom prefix operator on Portage.
2015-09-14 4:35 [gentoo-dev] Request to add ~> atom prefix operator on Portage konsolebox
@ 2015-09-14 5:38 ` Daniel Campbell
2015-09-14 6:15 ` konsolebox
2015-09-14 5:47 ` Kent Fredric
` (3 subsequent siblings)
4 siblings, 1 reply; 54+ messages in thread
From: Daniel Campbell @ 2015-09-14 5:38 UTC (permalink / raw
To: gentoo-dev
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
On 09/13/2015 09:35 PM, konsolebox wrote:
> Many times we need to match packages like this: something-1.0.2a.*
>
> But that expression is not allowed with ~ (only targets revisions)
> and neither with * (.*) is invalid.
>
> So my suggestion is to add ~> as another operator. With it we can
> have an expression like '~>pkg-1.0.2a' and it would be equivalent
> to '>=pkg-1.0.2a' and '<pkg-1.0.2b'. Another expression like
> '~>pkg-1.0.2' would be equivalent to '>=pkg-1.0.2' and
> '<pkg-1.0.3'.
>
> If comparing by arithmetic operations turns out to be difficult
> (i.e. predicting the next version to compare against), then maybe
> we could just compare it with pattern(s). For example if we have
> 'pkg-1.02a' as the base version, then the valid versions we need to
> get are 'pkg-1.02a', 'pkg-1.02a.*' and
> 'pkg-1.02a(_(alpha|beta|pre|p)|-r)[0-9]+'.
>
> The operator is copied from Ruby's Gemfile so it would be familiar
> to anyone developing Ruby as well.
>
Honestly, this situation looks like a perfect candidate for slotting
instead of adding a new feature. If SLOT is setup correctly between
ebuilds, you could check to be sure it's a specific SLOT. So in your
case, pkg-1.0.2[a-z] would be slotted with e.g. pkg-1.0.2g:1.0.2.
Anything depending on it would use `pkg:1.0.2`, and the pkg-1.0.3a
ebuild could use SLOT="1.0.3" and be called as a dependency via
`pkg:1.0.3`.
Just my two cents.
- --
Daniel Campbell - Gentoo Developer
OpenPGP Key: 0x1EA055D6 @ hkp://keys.gnupg.net
fpr: AE03 9064 AE00 053C 270C 1DE4 6F7A 9091 1EA0 55D6
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAEBCAAGBQJV9l1KAAoJEAEkDpRQOeFwM4gQANPEqNiTHQDU55eH//Iw3KVw
W3U2DoPR1YuxALF4vCrxDACcHxtwR0k7L7j54Hkpc6y8V93z9aJIEj396ktNSmk9
BYGzH+M/IO4VsEjm9Ns9GZn4fxQ2YUw3v7SVq+kqmBDNwkKU/5ZsR2XaGykQSuMQ
smTuZCCILdx3/6QfKQvvk6tuA6kEzLIuCpXE8l56uXJJzpKb+syWSefZftO31PU4
Qbj8zWlRMNoUEEQpJT7yTEzrfvRvFsMPPiHKUYw05WxjuQZzf52GZSdvBMDTTqGu
Ltf4BjSF/4c01zMmh3qMKmIiVzCq4pGLv0IcQ0DJmh8KAzYGP++Y+deAHLztyVGu
Fx793wps+/ZdfY86QQ+NFD9QHUT8RLCRvr+87YmNwQqxwQCErBF1KeQfbw0NB4m9
tyegRLXgiVlR9yDIo736vTyxPwHe9xtOtFMsOQRPIfKI3T8KzZlxEsAj7kfoMX16
eKeeJlKB2WU4wQ6tbDm3Gjjk0dZmVrU7ZAnVwG5KbXtz4oPp+rwbyX4fn8uG9rVB
XVJfLfJjXtkjFliFeUAKdRcm9ZyuKTO5BIppC7RCajEaHkuXSCRoBu7RpbwkyT+V
IMBz0Y6/dZyHMplfp5UGIqPMyUqYKQXh1MREro9xqSisxwf9RpDVj38OrbvjdvRW
7uilEYxSlijwOnWeCvG6
=EtOQ
-----END PGP SIGNATURE-----
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [gentoo-dev] Request to add ~> atom prefix operator on Portage.
2015-09-14 4:35 [gentoo-dev] Request to add ~> atom prefix operator on Portage konsolebox
2015-09-14 5:38 ` Daniel Campbell
@ 2015-09-14 5:47 ` Kent Fredric
2015-09-14 5:51 ` Ulrich Mueller
` (2 subsequent siblings)
4 siblings, 0 replies; 54+ messages in thread
From: Kent Fredric @ 2015-09-14 5:47 UTC (permalink / raw
To: gentoo-dev
On 14 September 2015 at 16:35, konsolebox <konsolebox@gmail.com> wrote:
> Many times we need to match packages like this: something-1.0.2a.*
>
> But that expression is not allowed with ~ (only targets revisions) and
> neither with * (.*) is invalid.
What does =cat/pkg-something-1.0.2a* do? ( note, lack of . before * )
Why is that undesirable?
IME, when you write ".*" you mean to write "*".
That's what the "*" implies: version X or version X.Any
https://devmanual.gentoo.org/general-concepts/dependencies/index.html#ranged-dependencies
--
Kent
KENTNL - https://metacpan.org/author/KENTNL
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [gentoo-dev] Request to add ~> atom prefix operator on Portage.
2015-09-14 4:35 [gentoo-dev] Request to add ~> atom prefix operator on Portage konsolebox
2015-09-14 5:38 ` Daniel Campbell
2015-09-14 5:47 ` Kent Fredric
@ 2015-09-14 5:51 ` Ulrich Mueller
2015-09-14 6:09 ` konsolebox
2015-09-14 6:29 ` [gentoo-dev] " Paweł Hajdan, Jr.
2015-09-14 18:12 ` Kristian Fiskerstrand
4 siblings, 1 reply; 54+ messages in thread
From: Ulrich Mueller @ 2015-09-14 5:51 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1: Type: text/plain, Size: 614 bytes --]
>>>>> On Mon, 14 Sep 2015, konsolebox wrote:
> Many times we need to match packages like this: something-1.0.2a.*
> But that expression is not allowed with ~ (only targets revisions)
> and neither with * (.*) is invalid.
> `So my suggestion is to add ~> as another operator. With it we can
> have an expression like '~>pkg-1.0.2a' and it would be equivalent to
> '>=pkg-1.0.2a' and '<pkg-1.0.2b'. Another expression like
> '~>pkg-1.0.2' would be equivalent to '>=pkg-1.0.2' and '<pkg-1.0.3'.
Sorry, but I don't get it. How would these be different from the
existing "=pkg-1.0.2a*" and "=pkg-1.0.2*"?
Ulrich
[-- Attachment #2: Type: application/pgp-signature, Size: 490 bytes --]
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [gentoo-dev] Request to add ~> atom prefix operator on Portage.
2015-09-14 5:51 ` Ulrich Mueller
@ 2015-09-14 6:09 ` konsolebox
2015-09-14 6:19 ` Kent Fredric
2015-09-14 7:58 ` [gentoo-dev] " Duncan
0 siblings, 2 replies; 54+ messages in thread
From: konsolebox @ 2015-09-14 6:09 UTC (permalink / raw
To: gentoo-dev
On Mon, Sep 14, 2015 at 1:51 PM, Ulrich Mueller <ulm@gentoo.org> wrote:
> Sorry, but I don't get it. How would these be different from the
> existing "=pkg-1.0.2a*" and "=pkg-1.0.2*"?
Because they could also match pkg-1.0.2aa (not sure if it's still
valid atom) and pkg-1.0.20 respectively.
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [gentoo-dev] Request to add ~> atom prefix operator on Portage.
2015-09-14 5:38 ` Daniel Campbell
@ 2015-09-14 6:15 ` konsolebox
0 siblings, 0 replies; 54+ messages in thread
From: konsolebox @ 2015-09-14 6:15 UTC (permalink / raw
To: gentoo-dev
On Mon, Sep 14, 2015 at 1:38 PM, Daniel Campbell <zlg@gentoo.org> wrote:
> Honestly, this situation looks like a perfect candidate for slotting
> instead of adding a new feature. If SLOT is setup correctly between
> ebuilds, you could check to be sure it's a specific SLOT. So in your
> case, pkg-1.0.2[a-z] would be slotted with e.g. pkg-1.0.2g:1.0.2.
> Anything depending on it would use `pkg:1.0.2`, and the pkg-1.0.3a
> ebuild could use SLOT="1.0.3" and be called as a dependency via
> `pkg:1.0.3`.
Slotting means isolation (most of the time as a group and not necessarily on a
parent version), but that's not always the case when you're just
wanting to target
a specific version. With the operator we could avoid unnecessary
overkill using slots.
Also that would only apply when you're creating an ebuild.
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [gentoo-dev] Request to add ~> atom prefix operator on Portage.
2015-09-14 6:09 ` konsolebox
@ 2015-09-14 6:19 ` Kent Fredric
2015-09-14 6:43 ` konsolebox
2015-09-14 6:52 ` Ulrich Mueller
2015-09-14 7:58 ` [gentoo-dev] " Duncan
1 sibling, 2 replies; 54+ messages in thread
From: Kent Fredric @ 2015-09-14 6:19 UTC (permalink / raw
To: gentoo-dev
On 14 September 2015 at 18:09, konsolebox <konsolebox@gmail.com> wrote:
> Because they could also match pkg-1.0.2aa
I don't believe it works that way.
That would imply
=pkg-1.0.2* would match 1.0.20
When it only matches 1.0.2 and 1.0.2.*
You're reading it in shell glob notation and not the portage notation,
that the trailing dot is *implied*, which is why explictly stating it
is illegal.
https://devmanual.gentoo.org/general-concepts/dependencies/index.html#ranged-dependencies
> To specify "version 2.x (not 1.x or 3.x)" of a package, it is necessary to use the asterisk postfix.
> Note that the equals sign is mandatory, and that there is no dot before the asterisk.
--
Kent
KENTNL - https://metacpan.org/author/KENTNL
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [gentoo-dev] Request to add ~> atom prefix operator on Portage.
2015-09-14 4:35 [gentoo-dev] Request to add ~> atom prefix operator on Portage konsolebox
` (2 preceding siblings ...)
2015-09-14 5:51 ` Ulrich Mueller
@ 2015-09-14 6:29 ` Paweł Hajdan, Jr.
2015-09-14 7:13 ` konsolebox
2015-09-14 18:12 ` Kristian Fiskerstrand
4 siblings, 1 reply; 54+ messages in thread
From: Paweł Hajdan, Jr. @ 2015-09-14 6:29 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1: Type: text/plain, Size: 220 bytes --]
On 9/14/15 6:35 AM, konsolebox wrote:
> Many times we need to match packages like this: something-1.0.2a.*
Could you give specific examples, i.e. what packages, what dependencies,
why is that needed?
Paweł
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 841 bytes --]
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [gentoo-dev] Request to add ~> atom prefix operator on Portage.
2015-09-14 6:19 ` Kent Fredric
@ 2015-09-14 6:43 ` konsolebox
2015-09-14 6:52 ` Ulrich Mueller
1 sibling, 0 replies; 54+ messages in thread
From: konsolebox @ 2015-09-14 6:43 UTC (permalink / raw
To: gentoo-dev
On Mon, Sep 14, 2015 at 2:19 PM, Kent Fredric <kentfredric@gmail.com> wrote:
> On 14 September 2015 at 18:09, konsolebox <konsolebox@gmail.com> wrote:
>> Because they could also match pkg-1.0.2aa
>
> That would imply
>
> =pkg-1.0.2* would match 1.0.20
>
> When it only matches 1.0.2 and 1.0.2.*
>
> You're reading it in shell glob notation and not the portage notation,
> that the trailing dot is *implied*, which is why explictly stating it
> is illegal.
Test shows that it doesn't work that way. Here I created a dummy bash-4.30:
# emerge -pvO =app-shells/bash-4.3_p42
These are the packages that would be merged, in order:
[ebuild U ~] app-shells/bash-4.3_p42::gentoo [4.3_p39::gentoo]
USE="net nls (readline) -afs -bashlogger -examples -mem-scramble
-plugins -vanilla" 6 KiB
Total: 1 package (1 upgrade), Size of downloads: 6 KiB
# emerge -pvO '=app-shells/bash-4.3*'
These are the packages that would be merged, in order:
[ebuild U ~] app-shells/bash-4.30::local [4.3_p39::gentoo]
USE="net nls (readline) -afs -bashlogger -examples -mem-scramble
-plugins -vanilla" 0 KiB
Total: 1 package (1 upgrade), Size of downloads: 0 KiB
# ls /var/db/pkg/sys-apps/portage-2.2.20.1/
> https://devmanual.gentoo.org/general-concepts/dependencies/index.html#ranged-dependencies
>
>> To specify "version 2.x (not 1.x or 3.x)" of a package, it is necessary to use the asterisk postfix.
>> Note that the equals sign is mandatory, and that there is no dot before the asterisk.
The provided example was `DEPEND="gtk? ( =x11-libs/gtk+-1.2* )"`. I'm
not sure if that was accurately implying "version 1.2.x (not 1.1.x or
1.3.x)".
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [gentoo-dev] Request to add ~> atom prefix operator on Portage.
2015-09-14 6:19 ` Kent Fredric
2015-09-14 6:43 ` konsolebox
@ 2015-09-14 6:52 ` Ulrich Mueller
2015-09-14 6:59 ` Kent Fredric
1 sibling, 1 reply; 54+ messages in thread
From: Ulrich Mueller @ 2015-09-14 6:52 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1: Type: text/plain, Size: 576 bytes --]
>>>>> On Mon, 14 Sep 2015, Kent Fredric wrote:
> I don't believe it works that way.
> That would imply
> =pkg-1.0.2* would match 1.0.20
It does, in fact.
> When it only matches 1.0.2 and 1.0.2.*
> You're reading it in shell glob notation and not the portage notation,
> that the trailing dot is *implied*,
No, there isn't any dot implied. It uses simple prefix comparison, as
in shell globbing.
> which is why explictly stating it is illegal.
Explicitly stating the dot is illegal, because without the asterisk it
must still be a valid version specification.
Ulrich
[-- Attachment #2: Type: application/pgp-signature, Size: 490 bytes --]
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [gentoo-dev] Request to add ~> atom prefix operator on Portage.
2015-09-14 6:52 ` Ulrich Mueller
@ 2015-09-14 6:59 ` Kent Fredric
2015-09-14 8:01 ` Ulrich Mueller
0 siblings, 1 reply; 54+ messages in thread
From: Kent Fredric @ 2015-09-14 6:59 UTC (permalink / raw
To: gentoo-dev
On 14 September 2015 at 18:52, Ulrich Mueller <ulm@gentoo.org> wrote:
> It does, in fact.
>
>> When it only matches 1.0.2 and 1.0.2.*
>
>> You're reading it in shell glob notation and not the portage notation,
>> that the trailing dot is *implied*,
>
> No, there isn't any dot implied. It uses simple prefix comparison, as
> in shell globbing.
>
>> which is why explictly stating it is illegal.
>
> Explicitly stating the dot is illegal, because without the asterisk it
> must still be a valid version specification.
Ugh. That's really really nasty. I'm going to have to go reprogram my
brain with bleach. :(
I say this because it doesn't strictly make sense in the knowledge
that 1.3 and 1.30 both match =1.3*
So there is, as he describes, no proviso for "X, or some subversion of it".
Thus, the documentation is very misleading, as although "1.2*" will
match "1.2.x" and not "1.1.x" and not "1.3.x", it will also match
1.20.x , and that fact is a footgun waiting to go off.
--
Kent
KENTNL - https://metacpan.org/author/KENTNL
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [gentoo-dev] Request to add ~> atom prefix operator on Portage.
2015-09-14 6:29 ` [gentoo-dev] " Paweł Hajdan, Jr.
@ 2015-09-14 7:13 ` konsolebox
2015-09-14 18:07 ` Paweł Hajdan, Jr.
0 siblings, 1 reply; 54+ messages in thread
From: konsolebox @ 2015-09-14 7:13 UTC (permalink / raw
To: gentoo-dev
On Mon, Sep 14, 2015 at 2:29 PM, Paweł Hajdan, Jr.
<phajdan.jr@gentoo.org> wrote:
> On 9/14/15 6:35 AM, konsolebox wrote:
>> Many times we need to match packages like this: something-1.0.2a.*
>
> Could you give specific examples, i.e. what packages, what dependencies,
> why is that needed?
For accuracy and peace of mind regardless of how often conflicts could
happen. I want to write rules in /etc/portage/package.* and specify
dependencies in ebuilds without minding that one atom expression could
unexpectedly match another package version on later time. I can't
give any example yet, but we know that if pkg-4.1.2 exists and
pkg-4.10.0 exists as well, then we can't use '=pkg-4.1*' to only
target pkg-4.1.*. This could also happen more often with packages
having 4 version numbers.
^ permalink raw reply [flat|nested] 54+ messages in thread
* [gentoo-dev] Re: Request to add ~> atom prefix operator on Portage.
2015-09-14 6:09 ` konsolebox
2015-09-14 6:19 ` Kent Fredric
@ 2015-09-14 7:58 ` Duncan
2015-09-14 8:16 ` konsolebox
1 sibling, 1 reply; 54+ messages in thread
From: Duncan @ 2015-09-14 7:58 UTC (permalink / raw
To: gentoo-dev
konsolebox posted on Mon, 14 Sep 2015 14:09:03 +0800 as excerpted:
> On Mon, Sep 14, 2015 at 1:51 PM, Ulrich Mueller <ulm@gentoo.org> wrote:
>> Sorry, but I don't get it. How would these be different from the
>> existing "=pkg-1.0.2a*" and "=pkg-1.0.2*"?
>
> Because they could also match pkg-1.0.2aa (not sure if it's still valid
> atom) and pkg-1.0.20 respectively.
What about combining (positive) deps and blockers, deping on =pkg-1.0.2a*
and blocking >=pkg-1.0.2b ? Wouldn't that resolve the unintended matches?
--
Duncan - List replies preferred. No HTML msgs.
"Every nonfree program has a lord, a master --
and if you use the program, he is your master." Richard Stallman
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [gentoo-dev] Request to add ~> atom prefix operator on Portage.
2015-09-14 6:59 ` Kent Fredric
@ 2015-09-14 8:01 ` Ulrich Mueller
2015-09-14 8:14 ` Kent Fredric
` (2 more replies)
0 siblings, 3 replies; 54+ messages in thread
From: Ulrich Mueller @ 2015-09-14 8:01 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1: Type: text/plain, Size: 942 bytes --]
>>>>> On Mon, 14 Sep 2015, Kent Fredric wrote:
> On 14 September 2015 at 18:52, Ulrich Mueller <ulm@gentoo.org> wrote:
>> No, there isn't any dot implied. It uses simple prefix comparison,
>> as in shell globbing.
> Ugh. That's really really nasty. I'm going to have to go reprogram
> my brain with bleach. :(
> I say this because it doesn't strictly make sense in the knowledge
> that 1.3 and 1.30 both match =1.3*
We could fix this in a future EAPI such that version components would
not be split when matching. So =1.3* would not match 1.30 any more
because the 30 could only be matched as a whole.
OTOH, I am not aware of any problems caused by the current behaviour.
Although I agree that it isn't logical.
Another interesting example: Which of the following will match the
package "cat/foo-1.02.3", and why:
=cat/foo-1.020.3
=cat/foo-1.020.3*
=cat/foo-01.02.3*
(Hint: PMS and Portage don't necessarily agree.)
Ulrich
[-- Attachment #2: Type: application/pgp-signature, Size: 490 bytes --]
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [gentoo-dev] Request to add ~> atom prefix operator on Portage.
2015-09-14 8:01 ` Ulrich Mueller
@ 2015-09-14 8:14 ` Kent Fredric
2015-09-14 9:04 ` Ulrich Mueller
2015-09-14 8:18 ` Kent Fredric
2015-09-14 8:22 ` konsolebox
2 siblings, 1 reply; 54+ messages in thread
From: Kent Fredric @ 2015-09-14 8:14 UTC (permalink / raw
To: gentoo-dev
On 14 September 2015 at 20:01, Ulrich Mueller <ulm@gentoo.org> wrote:
> =cat/foo-1.020.3
> =cat/foo-1.020.3*
> =cat/foo-01.02.3*
Of those, I only expect the last to match, because leading 0's are not
typically significant.
However, that "=dev-lang/perl-05.22*" matches dev-lang/perl-5.22.0 but
"=dev-lang/perl-5.022*" does not
is a complete mystery to me.
--
Kent
KENTNL - https://metacpan.org/author/KENTNL
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [gentoo-dev] Re: Request to add ~> atom prefix operator on Portage.
2015-09-14 7:58 ` [gentoo-dev] " Duncan
@ 2015-09-14 8:16 ` konsolebox
0 siblings, 0 replies; 54+ messages in thread
From: konsolebox @ 2015-09-14 8:16 UTC (permalink / raw
To: gentoo-dev
On Mon, Sep 14, 2015 at 3:58 PM, Duncan <1i5t5.duncan@cox.net> wrote:
> konsolebox posted on Mon, 14 Sep 2015 14:09:03 +0800 as excerpted:
>
>> On Mon, Sep 14, 2015 at 1:51 PM, Ulrich Mueller <ulm@gentoo.org> wrote:
>>> Sorry, but I don't get it. How would these be different from the
>>> existing "=pkg-1.0.2a*" and "=pkg-1.0.2*"?
>>
>> Because they could also match pkg-1.0.2aa (not sure if it's still valid
>> atom) and pkg-1.0.20 respectively.
>
> What about combining (positive) deps and blockers, deping on =pkg-1.0.2a*
> and blocking >=pkg-1.0.2b ? Wouldn't that resolve the unintended matches?
Possible workaround but all I'd say is that it adds complexity or
noise. We also do other things besides blocking. Sometimes we just
call dependencies, sometimes we just apply or disable flags - such are
the cases where doing the opposite action to excluded versions is not
always applicable.
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [gentoo-dev] Request to add ~> atom prefix operator on Portage.
2015-09-14 8:01 ` Ulrich Mueller
2015-09-14 8:14 ` Kent Fredric
@ 2015-09-14 8:18 ` Kent Fredric
2015-09-14 8:22 ` konsolebox
2 siblings, 0 replies; 54+ messages in thread
From: Kent Fredric @ 2015-09-14 8:18 UTC (permalink / raw
To: gentoo-dev
On 14 September 2015 at 20:01, Ulrich Mueller <ulm@gentoo.org> wrote:
> We could fix this in a future EAPI such that version components would
> not be split when matching. So =1.3* would not match 1.30 any more
> because the 30 could only be matched as a whole.
>
> OTOH, I am not aware of any problems caused by the current behaviour.
> Although I agree that it isn't logical
There's a fringe use here which becomes more obvious with
date-suffixed versions like 5.20150602
=5.2015* would be a legitimate and semi-useful condition for applying
a mask for use flags etc.
--
Kent
KENTNL - https://metacpan.org/author/KENTNL
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [gentoo-dev] Request to add ~> atom prefix operator on Portage.
2015-09-14 8:01 ` Ulrich Mueller
2015-09-14 8:14 ` Kent Fredric
2015-09-14 8:18 ` Kent Fredric
@ 2015-09-14 8:22 ` konsolebox
2015-09-14 8:28 ` Kent Fredric
2 siblings, 1 reply; 54+ messages in thread
From: konsolebox @ 2015-09-14 8:22 UTC (permalink / raw
To: gentoo-dev
On Mon, Sep 14, 2015 at 4:01 PM, Ulrich Mueller <ulm@gentoo.org> wrote:
>>>>>> On Mon, 14 Sep 2015, Kent Fredric wrote:
>
>> On 14 September 2015 at 18:52, Ulrich Mueller <ulm@gentoo.org> wrote:
> Another interesting example: Which of the following will match the
> package "cat/foo-1.02.3", and why:
>
> =cat/foo-1.020.3
> =cat/foo-1.020.3*
> =cat/foo-01.02.3*
If we use an arithmetic operator like ~> then that could be decided
easily. First we use a rule that all version numbers are decimal (oct
is unlikely), so we simply remove the leading zeros then apply the
rule accordingly, which is >=cat/foo-1.20.3 && <cat/foo-1.20.4.
That would be a good solution since we can also have
'=cat/foo-01.02.3*' to stay as a pure string matcher.
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [gentoo-dev] Request to add ~> atom prefix operator on Portage.
2015-09-14 8:22 ` konsolebox
@ 2015-09-14 8:28 ` Kent Fredric
2015-09-14 8:32 ` konsolebox
0 siblings, 1 reply; 54+ messages in thread
From: Kent Fredric @ 2015-09-14 8:28 UTC (permalink / raw
To: gentoo-dev
On 14 September 2015 at 20:22, konsolebox <konsolebox@gmail.com> wrote:
> If we use an arithmetic operator like ~> then that could be decided
As a counter proposal I'd suggest a different suffix character than
"*" instead. It just seems less confusing to have something like
=cat/foo-1.30+
Instead of
~>cat/foo-1.30
Because ~> to me conveys some combination of ~ and > effects, when it
is neither of those two.
--
Kent
KENTNL - https://metacpan.org/author/KENTNL
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [gentoo-dev] Request to add ~> atom prefix operator on Portage.
2015-09-14 8:28 ` Kent Fredric
@ 2015-09-14 8:32 ` konsolebox
2015-09-14 8:41 ` konsolebox
0 siblings, 1 reply; 54+ messages in thread
From: konsolebox @ 2015-09-14 8:32 UTC (permalink / raw
To: gentoo-dev
On Mon, Sep 14, 2015 at 4:28 PM, Kent Fredric <kentfredric@gmail.com> wrote:
> On 14 September 2015 at 20:22, konsolebox <konsolebox@gmail.com> wrote:
>> If we use an arithmetic operator like ~> then that could be decided
>
> As a counter proposal I'd suggest a different suffix character than
> "*" instead. It just seems less confusing to have something like
>
> =cat/foo-1.30+
>
> Instead of
>
> ~>cat/foo-1.30
>
> Because ~> to me conveys some combination of ~ and > effects, when it
> is neither of those two.
I thought ~> is good as it's already famous to fellow Ruby users but I
don't mind. =cat/foo-1.30+ seems good as well.
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [gentoo-dev] Request to add ~> atom prefix operator on Portage.
2015-09-14 8:32 ` konsolebox
@ 2015-09-14 8:41 ` konsolebox
2015-09-14 13:53 ` Manuel Rüger
0 siblings, 1 reply; 54+ messages in thread
From: konsolebox @ 2015-09-14 8:41 UTC (permalink / raw
To: gentoo-dev
On Mon, Sep 14, 2015 at 4:32 PM, konsolebox <konsolebox@gmail.com> wrote:
> On Mon, Sep 14, 2015 at 4:28 PM, Kent Fredric <kentfredric@gmail.com> wrote:
>> On 14 September 2015 at 20:22, konsolebox <konsolebox@gmail.com> wrote:
>>> If we use an arithmetic operator like ~> then that could be decided
>>
>> As a counter proposal I'd suggest a different suffix character than
>> "*" instead. It just seems less confusing to have something like
>>
>> =cat/foo-1.30+
>>
>> Instead of
>>
>> ~>cat/foo-1.30
>>
>> Because ~> to me conveys some combination of ~ and > effects, when it
>> is neither of those two.
>
> I thought ~> is good as it's already famous to fellow Ruby users but I
> don't mind. =cat/foo-1.30+ seems good as well.
@cat/foo-1.30 is also another. It only uses one symbol doesn't look
bad if negated: !@cat/foo-1.30
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [gentoo-dev] Request to add ~> atom prefix operator on Portage.
2015-09-14 8:14 ` Kent Fredric
@ 2015-09-14 9:04 ` Ulrich Mueller
2015-09-14 9:15 ` Kent Fredric
2015-09-14 9:21 ` Kent Fredric
0 siblings, 2 replies; 54+ messages in thread
From: Ulrich Mueller @ 2015-09-14 9:04 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1: Type: text/plain, Size: 1265 bytes --]
>>>>> On Mon, 14 Sep 2015, Kent Fredric wrote:
> On 14 September 2015 at 20:01, Ulrich Mueller <ulm@gentoo.org> wrote:
>> Which of the following will match the package "cat/foo-1.02.3",
>> and why:
>>
>> =cat/foo-1.020.3
>> =cat/foo-1.020.3*
>> =cat/foo-01.02.3*
> Of those, I only expect the last to match, because leading 0's are
> not typically significant.
Well, version comparison is described in [1] and it says that
=cat/foo-1.020.3 will match cat/foo-1.02.3.
The problem is how to read the sentence "if the version specified has
an asterisk immediately following it, a string prefix comparison is
used instead" in the specification of the = operator [2]. Does that
string prefix comparison apply to the whole version (then neither
=cat/foo-1.020.3* nor =cat/foo-01.02.3* would match), or only to its
last component (then both would match)?
Portage behaviour is that =cat/foo-1.020.3* doesn't match but
=cat/foo-01.02.3* does. Which seems to disagree with either reading of
the spec.
Could someone check what is Paludis's behaviour for the examples
above? Also, does =cat/foo-1.2* match cat/foo-1.20 in Paludis?
Ulrich
[1] https://projects.gentoo.org/pms/5/pms.html#x1-290003.3
[2] https://projects.gentoo.org/pms/5/pms.html#x1-840008.2.6.1
[-- Attachment #2: Type: application/pgp-signature, Size: 490 bytes --]
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [gentoo-dev] Request to add ~> atom prefix operator on Portage.
2015-09-14 9:04 ` Ulrich Mueller
@ 2015-09-14 9:15 ` Kent Fredric
2015-09-14 11:38 ` Ulrich Mueller
2015-09-14 9:21 ` Kent Fredric
1 sibling, 1 reply; 54+ messages in thread
From: Kent Fredric @ 2015-09-14 9:15 UTC (permalink / raw
To: gentoo-dev
On 14 September 2015 at 21:04, Ulrich Mueller <ulm@gentoo.org> wrote:
> Well, version comparison is described in [1] and it says that
> =cat/foo-1.020.3 will match cat/foo-1.02.3.
Surely, as per Algorithm 2, that is false, because "020" and "02" are
both integers, and therefor they'd default to integer comparison, and
"020" would be deemed ">" "02"
And that is most surely what happens in reality too, otherwise, surely,
emerge --ignore-default-opts -vaO =dev-lang/perl-5.220.0
Would resolve to perl-5.22.0
Algorithm 3 should only fall into play if one or both of the
compontents are non-numeric.
Or is "leading 0" a "Non-numeric" condition?
Either way, I'm glad nothing really scary happens when I do:
emerge --ignore-default-opts -vaO =dev-lang/perl-5.0220.0
--
Kent
KENTNL - https://metacpan.org/author/KENTNL
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [gentoo-dev] Request to add ~> atom prefix operator on Portage.
2015-09-14 9:04 ` Ulrich Mueller
2015-09-14 9:15 ` Kent Fredric
@ 2015-09-14 9:21 ` Kent Fredric
2015-09-14 11:46 ` Ulrich Mueller
1 sibling, 1 reply; 54+ messages in thread
From: Kent Fredric @ 2015-09-14 9:21 UTC (permalink / raw
To: gentoo-dev
On 14 September 2015 at 21:04, Ulrich Mueller <ulm@gentoo.org> wrote:
> Could someone check what is Paludis's behaviour for the examples
> above? Also, does =cat/foo-1.2* match cat/foo-1.20 in Paludis?
Portage:
emerge --ignore-default-opts -vpO =dev-lang/perl-5.2*
These are the packages that would be merged, in order:
[ebuild R ] dev-lang/perl-5.22.0:0/5.22::gentoo USE="berkdb doc
gdbm -debug -ithreads" 0 KiB
Paludis:
cave resolve -1 -0 "*/*" =dev-lang/perl-5.2*
Done: 4 steps
These are the actions I will take, in order:
(nothing to do)
I encountered the following errors:
! dev-lang/perl
Reasons: target
Unsuitable candidates:
* dev-lang/perl-5.20.2:0::gentoo
Did not meet =dev-lang/perl-5.2*, never using existing,
installing to / from target
* dev-lang/perl-5.20.2-r1:0::gentoo
Did not meet =dev-lang/perl-5.2*, never using existing,
installing to / from target
* dev-lang/perl-5.22.0:0::gentoo
Did not meet =dev-lang/perl-5.2*, never using existing,
installing to / from target
--
Kent
KENTNL - https://metacpan.org/author/KENTNL
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [gentoo-dev] Request to add ~> atom prefix operator on Portage.
2015-09-14 9:15 ` Kent Fredric
@ 2015-09-14 11:38 ` Ulrich Mueller
2015-09-14 11:45 ` Kent Fredric
0 siblings, 1 reply; 54+ messages in thread
From: Ulrich Mueller @ 2015-09-14 11:38 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1: Type: text/plain, Size: 827 bytes --]
>>>>> On Mon, 14 Sep 2015, Kent Fredric wrote:
> On 14 September 2015 at 21:04, Ulrich Mueller <ulm@gentoo.org> wrote:
>> Well, version comparison is described in [1] and it says that
>> =cat/foo-1.020.3 will match cat/foo-1.02.3.
> Surely, as per Algorithm 2, that is false, because "020" and "02" are
> both integers, and therefor they'd default to integer comparison, and
> "020" would be deemed ">" "02"
Comparison in Algorithm 2 only takes place for the zeroth component
(i.e., "1", for the example above).
For all following numeric components Algorithm 3 is called. For the
next component, the condition in line 1 is true, so it will remove
trailing zeros (i.e., both "020" and "02" will become "02") and then
it will use stringwise comparison.
That is, versions 1.020.3 and 1.02.3 will be considered equal.
Ulrich
[-- Attachment #2: Type: application/pgp-signature, Size: 490 bytes --]
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [gentoo-dev] Request to add ~> atom prefix operator on Portage.
2015-09-14 11:38 ` Ulrich Mueller
@ 2015-09-14 11:45 ` Kent Fredric
2015-09-14 11:53 ` Ulrich Mueller
0 siblings, 1 reply; 54+ messages in thread
From: Kent Fredric @ 2015-09-14 11:45 UTC (permalink / raw
To: gentoo-dev
On 14 September 2015 at 23:38, Ulrich Mueller <ulm@gentoo.org> wrote:
> Comparison in Algorithm 2 only takes place for the zeroth component
> (i.e., "1", for the example above).
>
> For all following numeric components Algorithm 3 is called. For the
> next component, the condition in line 1 is true, so it will remove
> trailing zeros (i.e., both "020" and "02" will become "02") and then
> it will use stringwise comparison.
>
> That is, versions 1.020.3 and 1.02.3 will be considered equal.
It seems that it may not have been implemented that way .
Or am I expecting the wrong things when I read that logic and expect that:
emerge --ignore-default-opts -vaO =dev-lang/perl-5.022.0
emerge --ignore-default-opts -vaO =dev-lang/perl-5.0220.0
Should both match dev-lang/perl-5.22.0 ?
--
Kent
KENTNL - https://metacpan.org/author/KENTNL
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [gentoo-dev] Request to add ~> atom prefix operator on Portage.
2015-09-14 9:21 ` Kent Fredric
@ 2015-09-14 11:46 ` Ulrich Mueller
2015-09-14 11:48 ` hasufell
2015-09-14 16:38 ` Ciaran McCreesh
0 siblings, 2 replies; 54+ messages in thread
From: Ulrich Mueller @ 2015-09-14 11:46 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1: Type: text/plain, Size: 594 bytes --]
>>>>> On Mon, 14 Sep 2015, Kent Fredric wrote:
> Portage:
> emerge --ignore-default-opts -vpO =dev-lang/perl-5.2*
> These are the packages that would be merged, in order:
> [ebuild R ] dev-lang/perl-5.22.0:0/5.22::gentoo USE="berkdb doc
> gdbm -debug -ithreads" 0 KiB
> Paludis:
> cave resolve -1 -0 "*/*" =dev-lang/perl-5.2*
> Done: 4 steps
> These are the actions I will take, in order:
> (nothing to do)
> [...]
Interesting. So Portage follows the wording of the spec (prefix string
matching), whereas Paludis behaves like (IMHO) the spec should have
been written.
Ulrich
[-- Attachment #2: Type: application/pgp-signature, Size: 490 bytes --]
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [gentoo-dev] Request to add ~> atom prefix operator on Portage.
2015-09-14 11:46 ` Ulrich Mueller
@ 2015-09-14 11:48 ` hasufell
2015-09-14 13:11 ` Ulrich Mueller
2015-09-14 16:38 ` Ciaran McCreesh
1 sibling, 1 reply; 54+ messages in thread
From: hasufell @ 2015-09-14 11:48 UTC (permalink / raw
To: gentoo-dev
On 09/14/2015 01:46 PM, Ulrich Mueller wrote:
>
> Interesting. So Portage follows the wording of the spec (prefix string
> matching), whereas Paludis behaves like (IMHO) the spec should have
> been written.
>
The question is now... can we fix the spec?
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [gentoo-dev] Request to add ~> atom prefix operator on Portage.
2015-09-14 11:45 ` Kent Fredric
@ 2015-09-14 11:53 ` Ulrich Mueller
0 siblings, 0 replies; 54+ messages in thread
From: Ulrich Mueller @ 2015-09-14 11:53 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1: Type: text/plain, Size: 739 bytes --]
>>>>> On Mon, 14 Sep 2015, Kent Fredric wrote:
> On 14 September 2015 at 23:38, Ulrich Mueller <ulm@gentoo.org> wrote:
>> That is, versions 1.020.3 and 1.02.3 will be considered equal.
> It seems that it may not have been implemented that way .
> Or am I expecting the wrong things when I read that logic and expect that:
> emerge --ignore-default-opts -vaO =dev-lang/perl-5.022.0
> emerge --ignore-default-opts -vaO =dev-lang/perl-5.0220.0
> Should both match dev-lang/perl-5.22.0 ?
No, 5.022.0 and 5.0220.0 are equal to each other, but they are not
equal to 5.22.0. Algorithm 3 will remove any trailing zeros of the
component, so you'll end up with "022", "022". and "22", which are
compared using stringwise comparison.
Ulrich
[-- Attachment #2: Type: application/pgp-signature, Size: 490 bytes --]
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [gentoo-dev] Request to add ~> atom prefix operator on Portage.
2015-09-14 11:48 ` hasufell
@ 2015-09-14 13:11 ` Ulrich Mueller
2015-09-14 19:56 ` Andreas K. Huettel
0 siblings, 1 reply; 54+ messages in thread
From: Ulrich Mueller @ 2015-09-14 13:11 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1: Type: text/plain, Size: 706 bytes --]
>>>>> On Mon, 14 Sep 2015, hasufell wrote:
> On 09/14/2015 01:46 PM, Ulrich Mueller wrote:
>> Interesting. So Portage follows the wording of the spec (prefix
>> string matching), whereas Paludis behaves like (IMHO) the spec
>> should have been written.
> The question is now... can we fix the spec?
I could find only two instances of string prefix matching in the tree:
- autotools.eclass depends on "=sys-devel/autoconf-2.1*" (with
WANT_AUTOCONF=2.1).
- media-video/nvidia-settings has "=x11-drivers/nvidia-drivers-3*".
Both should be are easily fixable, in a way that doesn't break
backwards compatibility with current Portage.
So I think that fixing the spec would be possible, indeed.
Ulrich
[-- Attachment #2: Type: application/pgp-signature, Size: 490 bytes --]
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [gentoo-dev] Request to add ~> atom prefix operator on Portage.
2015-09-14 8:41 ` konsolebox
@ 2015-09-14 13:53 ` Manuel Rüger
2015-09-15 7:01 ` konsolebox
0 siblings, 1 reply; 54+ messages in thread
From: Manuel Rüger @ 2015-09-14 13:53 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1: Type: text/plain, Size: 1205 bytes --]
On 14.09.2015 10:41, konsolebox wrote:
> On Mon, Sep 14, 2015 at 4:32 PM, konsolebox <konsolebox@gmail.com> wrote:
>> On Mon, Sep 14, 2015 at 4:28 PM, Kent Fredric <kentfredric@gmail.com> wrote:
>>> On 14 September 2015 at 20:22, konsolebox <konsolebox@gmail.com> wrote:
>>>> If we use an arithmetic operator like ~> then that could be decided
>>>
>>> As a counter proposal I'd suggest a different suffix character than
>>> "*" instead. It just seems less confusing to have something like
>>>
>>> =cat/foo-1.30+
>>>
>>> Instead of
>>>
>>> ~>cat/foo-1.30
>>>
>>> Because ~> to me conveys some combination of ~ and > effects, when it
>>> is neither of those two.
>>
>> I thought ~> is good as it's already famous to fellow Ruby users but I
>> don't mind. =cat/foo-1.30+ seems good as well.
>
> @cat/foo-1.30 is also another. It only uses one symbol doesn't look
> bad if negated: !@cat/foo-1.30
>
Please don't add any more syntactic sugar to dependency strings.
People might become confused about stuff like this:
=cat/foo-1.3.1_rc3_p20130829-r42+[!a=,!b?,c(+)]:3=
Is there any real need to express this in a single line except for
saving a single line?
- Manuel
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 605 bytes --]
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [gentoo-dev] Request to add ~> atom prefix operator on Portage.
2015-09-14 11:46 ` Ulrich Mueller
2015-09-14 11:48 ` hasufell
@ 2015-09-14 16:38 ` Ciaran McCreesh
1 sibling, 0 replies; 54+ messages in thread
From: Ciaran McCreesh @ 2015-09-14 16:38 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1: Type: text/plain, Size: 590 bytes --]
On Mon, 14 Sep 2015 13:46:34 +0200
Ulrich Mueller <ulm@gentoo.org> wrote:
> Interesting. So Portage follows the wording of the spec (prefix string
> matching), whereas Paludis behaves like (IMHO) the spec should have
> been written.
Not so fast!
Paludis has two different behaviours for =*, depending upon the context
in which they're used. When parsing a user-supplied dependency
specification, it uses the sane behaviour. When parsing something
that's got an EAPI context, it uses the weird behaviour.
You can't test this from the command line...
--
Ciaran McCreesh
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 181 bytes --]
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [gentoo-dev] Request to add ~> atom prefix operator on Portage.
2015-09-14 7:13 ` konsolebox
@ 2015-09-14 18:07 ` Paweł Hajdan, Jr.
2015-09-14 18:54 ` Ulrich Mueller
2015-09-15 7:21 ` konsolebox
0 siblings, 2 replies; 54+ messages in thread
From: Paweł Hajdan, Jr. @ 2015-09-14 18:07 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1: Type: text/plain, Size: 1131 bytes --]
On 9/14/15 9:13 AM, konsolebox wrote:
> On Mon, Sep 14, 2015 at 2:29 PM, Paweł Hajdan, Jr.
> <phajdan.jr@gentoo.org> wrote:
>> On 9/14/15 6:35 AM, konsolebox wrote:
>>> Many times we need to match packages like this:
>>> something-1.0.2a.*
>>
>> Could you give specific examples, i.e. what packages, what
>> dependencies, why is that needed?
>
> For accuracy and peace of mind regardless of how often conflicts
> could happen.
I agree =pkg-4.1* also matching pkg-4.10 is a concern.
In that case though, it would change the focus of the discussion to how
* operator should work, not necessarily adding a new ~> operator.
I think it'd be okay to e.g. change the meaning and behavior of * in a
new EAPI.
> I can't give any example yet, but we know that if pkg-4.1.2 exists
> and pkg-4.10.0 exists as well, then we can't use '=pkg-4.1*' to only
> target pkg-4.1.*. This could also happen more often with packages
> having 4 version numbers.
It's unfortunate this is rather theoretical now.
Consider looking for some real examples, I believe this could really
help the discussion.
Paweł
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 841 bytes --]
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [gentoo-dev] Request to add ~> atom prefix operator on Portage.
2015-09-14 4:35 [gentoo-dev] Request to add ~> atom prefix operator on Portage konsolebox
` (3 preceding siblings ...)
2015-09-14 6:29 ` [gentoo-dev] " Paweł Hajdan, Jr.
@ 2015-09-14 18:12 ` Kristian Fiskerstrand
2015-09-15 7:26 ` konsolebox
4 siblings, 1 reply; 54+ messages in thread
From: Kristian Fiskerstrand @ 2015-09-14 18:12 UTC (permalink / raw
To: gentoo-dev
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
On 09/14/2015 06:35 AM, konsolebox wrote:
> Many times we need to match packages like this: something-1.0.2a.*
>
> But that expression is not allowed with ~ (only targets revisions)
> and neither with * (.*) is invalid.
>
> So my suggestion is to add ~> as another operator. With it we can
> have an expression like '~>pkg-1.0.2a' and it would be equivalent
> to '>=pkg-1.0.2a' and '<pkg-1.0.2b'. Another expression like
> '~>pkg-1.0.2' would be equivalent to '>=pkg-1.0.2' and
> '<pkg-1.0.3'.
It strikes me that this likely is better solved using subslots, if it
is ABI compatability you're wishing to retain?
- --
Kristian Fiskerstrand
Public PGP key 0xE3EDFAE3 at hkp://pool.sks-keyservers.net
fpr:94CB AFDD 3034 5109 5618 35AA 0B7F 8B60 E3ED FAE3
-----BEGIN PGP SIGNATURE-----
iQEcBAEBCgAGBQJV9w3wAAoJECULev7WN52Ff1IIALW0JSD/QCZKYJZ+D/i/o3ud
vqRvud0VD8IhlGuGL/FpNPP6h6jM7+rlyv/rwRq7FX4lLZUmWwdMBq7Q/S7Za3gt
1Rrk8EMVyvgXmvas60UhYJRarpfIww2bnlc7iAHdCjuT+k3wf1SJWKVHLl0eA5ib
JA9JXt3T5pYTpxzdefQ4xXqc01F5KZ+y1JrdkcAfp6+nyzIpitG52k+Y8NWt4STn
baLlnIeb3GjZdE7cCbjN7Nee4kHWA2USS/K+ZeXHuMfHh0z12m4X+dO+eo+mqxtm
sje1K6onNyFSGEq6GvtCJG8sd+g4M6NdYhCS/XxFQkCkcrZM1kDcKdP4IEzEJWI=
=5mov
-----END PGP SIGNATURE-----
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [gentoo-dev] Request to add ~> atom prefix operator on Portage.
2015-09-14 18:07 ` Paweł Hajdan, Jr.
@ 2015-09-14 18:54 ` Ulrich Mueller
2015-09-16 7:35 ` Kent Fredric
2015-09-15 7:21 ` konsolebox
1 sibling, 1 reply; 54+ messages in thread
From: Ulrich Mueller @ 2015-09-14 18:54 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1: Type: text/plain, Size: 376 bytes --]
>>>>> On Mon, 14 Sep 2015, Paweł Hajdan, wrote:
> I agree =pkg-4.1* also matching pkg-4.10 is a concern.
> In that case though, it would change the focus of the discussion to
> how * operator should work, not necessarily adding a new ~>
> operator.
> I think it'd be okay to e.g. change the meaning and behavior of * in
> a new EAPI.
Bug 560466 now.
Ulrich
[-- Attachment #2: Type: application/pgp-signature, Size: 490 bytes --]
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [gentoo-dev] Request to add ~> atom prefix operator on Portage.
2015-09-14 13:11 ` Ulrich Mueller
@ 2015-09-14 19:56 ` Andreas K. Huettel
2015-09-14 20:19 ` hasufell
2015-09-14 20:52 ` Ulrich Mueller
0 siblings, 2 replies; 54+ messages in thread
From: Andreas K. Huettel @ 2015-09-14 19:56 UTC (permalink / raw
To: gentoo-dev
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
Am Montag, 14. September 2015, 15:11:35 schrieb Ulrich Mueller:
>
> > The question is now... can we fix the spec?
>
> I could find only two instances of string prefix matching in the tree:
>
> - autotools.eclass depends on "=sys-devel/autoconf-2.1*" (with
> WANT_AUTOCONF=2.1).
> - media-video/nvidia-settings has "=x11-drivers/nvidia-drivers-3*".
How *could* you overlook the Perl virtuals? :)
(about 150 instances of =dev-lang/perl-5.22* or similar)
However, these are standardized enough that any search/replace should be safe,
given something has to be fixed. (I haven't followed the esoteric part of the
discussion.)
(Unless someone insists on a revision bump for each dependency modification -
which is where I'd like to reply with an emphatic "Do it yourself then.")
- --
Andreas K. Huettel
Gentoo Linux developer (council, perl, libreoffice)
dilfridge@gentoo.org
http://www.akhuettel.de/
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAEBCgAGBQJV9yaJAAoJEB9VdM6hupKVQK8P/2IsZKEc+aAg+fkqyj+dikvt
M40G6+WATRaQHKt7kXRbLfXXyJnjh3J2PyO2AHd3CKwh4jM52U4gEI5xiJDgNxEg
pUdH9iR0tFx8ClC0ReaqfvRztizeQNCHiQgBtWzEMHp5BTB4F1NW/zD8juSAI1K6
kpp+Eei17uJjGM/tVQX1FQnZdhp/l/0Iq1bhDJtxpM2aqEcmmK7fipB8ko43EBF9
i38cfRq6feOYmtK7AE4yC0876uCMfTEIcCbGnwO/QIcOGEhvTAQ3vHINoe2W+3wU
jnhxONhRAy4ss5E7XkdWF+xNXD9MFJ4Dbarkyr/miwSJhh+vVHKH6R2fXdc6QDAq
xYmbWsMf9MG5zspJTx6whyJBUylcYPFH2FnyUrMPhuBpLv2AWeos1RVFruBZsWhG
F3QkmXRUAhgqy34GMxLALjWD7EPrkiVV9GZFBirSF3xC23FrSpKYzduvRVLtv6+J
UC+UJN/2dT1Ur+yg/c2ikMdBVviXXGqtDc9d30JVTeUpBDD/2B6cZJVcgUPP4TbP
2zQtMT4RZ3GI2sjCUgvcHPer1lVF8G6WHcnc+9uonawVyD0q8YhmHcjf+Csp4OCt
PBNtiHmIqm/0Mzek8dHX9qHc6yl6iUwH11oBTiOdetZbWVdPAgSkewzmd/a552a3
jfHwEMTT/T1jdkI2MGDq
=yFzT
-----END PGP SIGNATURE-----
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [gentoo-dev] Request to add ~> atom prefix operator on Portage.
2015-09-14 19:56 ` Andreas K. Huettel
@ 2015-09-14 20:19 ` hasufell
2015-09-14 20:53 ` Zac Medico
2015-09-14 20:56 ` Ulrich Mueller
2015-09-14 20:52 ` Ulrich Mueller
1 sibling, 2 replies; 54+ messages in thread
From: hasufell @ 2015-09-14 20:19 UTC (permalink / raw
To: gentoo-dev
On 09/14/2015 09:56 PM, Andreas K. Huettel wrote:
>
> (Unless someone insists on a revision bump for each dependency modification
Yes, because everything else will cause a mess.
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [gentoo-dev] Request to add ~> atom prefix operator on Portage.
2015-09-14 19:56 ` Andreas K. Huettel
2015-09-14 20:19 ` hasufell
@ 2015-09-14 20:52 ` Ulrich Mueller
1 sibling, 0 replies; 54+ messages in thread
From: Ulrich Mueller @ 2015-09-14 20:52 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1: Type: text/plain, Size: 790 bytes --]
>>>>> On Mon, 14 Sep 2015, Andreas K Huettel wrote:
> Am Montag, 14. September 2015, 15:11:35 schrieb Ulrich Mueller:
>> I could find only two instances of string prefix matching in the tree:
>>
>> - autotools.eclass depends on "=sys-devel/autoconf-2.1*" (with
>> WANT_AUTOCONF=2.1).
>> - media-video/nvidia-settings has "=x11-drivers/nvidia-drivers-3*".
> How *could* you overlook the Perl virtuals? :)
> (about 150 instances of =dev-lang/perl-5.22* or similar)
Nope, these use the asterisk for matching of a version component
range. So there is no string prefix ending in the middle of a
component.
In other words, =dev-lang/perl-5.22* matches version 5.22.0, so
no version component is cut into pieces. Which is different for
=sys-devel/autoconf-2.1* matching version 2.13.
Ulrich
[-- Attachment #2: Type: application/pgp-signature, Size: 490 bytes --]
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [gentoo-dev] Request to add ~> atom prefix operator on Portage.
2015-09-14 20:19 ` hasufell
@ 2015-09-14 20:53 ` Zac Medico
2015-09-14 20:56 ` Ulrich Mueller
1 sibling, 0 replies; 54+ messages in thread
From: Zac Medico @ 2015-09-14 20:53 UTC (permalink / raw
To: gentoo-dev
On 09/14/2015 01:19 PM, hasufell wrote:
> On 09/14/2015 09:56 PM, Andreas K. Huettel wrote:
>>
>> (Unless someone insists on a revision bump for each dependency modification
>
> Yes, because everything else will cause a mess.
>
Performing updates with a behavior like emerge --changed-deps gives
similar results. Perhaps all package managers should enable this sort of
behavior by default.
--
Thanks,
Zac
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [gentoo-dev] Request to add ~> atom prefix operator on Portage.
2015-09-14 20:19 ` hasufell
2015-09-14 20:53 ` Zac Medico
@ 2015-09-14 20:56 ` Ulrich Mueller
1 sibling, 0 replies; 54+ messages in thread
From: Ulrich Mueller @ 2015-09-14 20:56 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1: Type: text/plain, Size: 363 bytes --]
>>>>> On Mon, 14 Sep 2015, hasufell wrote:
>> (Unless someone insists on a revision bump for each dependency
>> modification
> Yes, because everything else will cause a mess.
Fortunately, for autotools.eclass it is a pure build-time dependency
whose updating doesn't need any revbump. This leaves us with one
single package with runtime dependencies.
Ulrich
[-- Attachment #2: Type: application/pgp-signature, Size: 490 bytes --]
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [gentoo-dev] Request to add ~> atom prefix operator on Portage.
2015-09-14 13:53 ` Manuel Rüger
@ 2015-09-15 7:01 ` konsolebox
0 siblings, 0 replies; 54+ messages in thread
From: konsolebox @ 2015-09-15 7:01 UTC (permalink / raw
To: gentoo-dev
On Mon, Sep 14, 2015 at 9:53 PM, Manuel Rüger <mrueg@gentoo.org> wrote:
> Please don't add any more syntactic sugar to dependency strings.
> People might become confused about stuff like this:
>
> =cat/foo-1.3.1_rc3_p20130829-r42+[!a=,!b?,c(+)]:3=
=cat/foo-xyz+ is only one of the forms (we can still consider ~> or
something else) but anyway, if we don't use another operator, would *
no longer match strings like a glob matcher? For example,
`=cat/foo-5.2015*` would no longer match cat/foo-5.20150102. On the
other hand if we still allow to match like glob but have a workaround
by allowing expressions like `=cat/foo-5.10.*`, we would now have to
use 4 lines in order to accurately specify the targets:
`=cat/foo-5.10`, `=cat/foo-5.10.*`, `=cat/foo-5.10-*` and
`=cat/foo-5.10_*`. So should we no allow [.-_]* so we can reduce them
to two?
(Come to think of it, the @ operator is already used by sets so we
can't have @cat/foo-5.10. But we can have =cat/foo-5.10@. Or
=cat/foo-5.10~. But the latter could be found ambiguous or
misinforming since ~cat/pkg-5.10 is already thought to only target
revisions.)
> Is there any real need to express this in a single line except for
> saving a single line?
There are areas where only a single expression is applicable like on a
CLI query, or on package.* rules where applying or disabling a flag or
keyword on specific version and unapplying or enabling the same flag
or keyword on excluded versions may not always be sensible. Having to
use more than a single expression adds noise and complexity.
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [gentoo-dev] Request to add ~> atom prefix operator on Portage.
2015-09-14 18:07 ` Paweł Hajdan, Jr.
2015-09-14 18:54 ` Ulrich Mueller
@ 2015-09-15 7:21 ` konsolebox
2015-09-15 8:38 ` Ulrich Mueller
1 sibling, 1 reply; 54+ messages in thread
From: konsolebox @ 2015-09-15 7:21 UTC (permalink / raw
To: gentoo-dev
On Tue, Sep 15, 2015 at 2:07 AM, Paweł Hajdan, Jr.
<phajdan.jr@gentoo.org> wrote:
> On 9/14/15 9:13 AM, konsolebox wrote:
>> On Mon, Sep 14, 2015 at 2:29 PM, Paweł Hajdan, Jr.
>> <phajdan.jr@gentoo.org> wrote:
>>> On 9/14/15 6:35 AM, konsolebox wrote:
>>>> Many times we need to match packages like this:
>>>> something-1.0.2a.*
>>>
>>> Could you give specific examples, i.e. what packages, what
>>> dependencies, why is that needed?
>>
>> For accuracy and peace of mind regardless of how often conflicts
>> could happen.
>
> I agree =pkg-4.1* also matching pkg-4.10 is a concern.
>
> In that case though, it would change the focus of the discussion to how
> * operator should work, not necessarily adding a new ~> operator.
Here are my issues if we try to modify =* and not add another operator:
1) We'll completely abandon having an operator that matches the
remaining parts of a version number for good: =cat/foo-5.2015* would
no longer work.
2) We'll have to decide if we should remove the leading zeros of a
version number: should 5.01.0 and and 5.1.2 be the matched the same if
I used =5.01*? We can only either allow it or not. We keep one
feature, we lose the other feature. If we use another operator,
=5.01* could just stay strict on matching 5.01*, whereas the operator
could have the function of treating them like decimals instead. We
can keep =* have the string matching feature while have another
operator do the more-on-arithmetic one.
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [gentoo-dev] Request to add ~> atom prefix operator on Portage.
2015-09-14 18:12 ` Kristian Fiskerstrand
@ 2015-09-15 7:26 ` konsolebox
2015-09-15 7:47 ` konsolebox
0 siblings, 1 reply; 54+ messages in thread
From: konsolebox @ 2015-09-15 7:26 UTC (permalink / raw
To: gentoo-dev
On Tue, Sep 15, 2015 at 2:12 AM, Kristian Fiskerstrand <k_f@gentoo.org> wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA512
>
> On 09/14/2015 06:35 AM, konsolebox wrote:
>> So my suggestion is to add ~> as another operator. With it we can
>> have an expression like '~>pkg-1.0.2a' and it would be equivalent
>> to '>=pkg-1.0.2a' and '<pkg-1.0.2b'. Another expression like
>> '~>pkg-1.0.2' would be equivalent to '>=pkg-1.0.2' and
>> '<pkg-1.0.3'.
>
> It strikes me that this likely is better solved using subslots, if it
> is ABI compatability you're wishing to retain?
Subslots are only applicable when creating ebuilds. And if I'm
creating an ebuild, should I wait for the dependency to have a
subslot? Also like I said earlier I find that slots are more for
grouping but are not really specific to a parent version. It's also
not always about ABI compatibility.
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [gentoo-dev] Request to add ~> atom prefix operator on Portage.
2015-09-15 7:26 ` konsolebox
@ 2015-09-15 7:47 ` konsolebox
0 siblings, 0 replies; 54+ messages in thread
From: konsolebox @ 2015-09-15 7:47 UTC (permalink / raw
To: gentoo-dev
On Tue, Sep 15, 2015 at 3:26 PM, konsolebox <konsolebox@gmail.com> wrote:
> Subslots are only applicable when creating ebuilds.
Sorry I have to correct this. They are also applicable to other areas
but not always sensible to use.
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [gentoo-dev] Request to add ~> atom prefix operator on Portage.
2015-09-15 7:21 ` konsolebox
@ 2015-09-15 8:38 ` Ulrich Mueller
2015-09-15 8:54 ` konsolebox
0 siblings, 1 reply; 54+ messages in thread
From: Ulrich Mueller @ 2015-09-15 8:38 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1: Type: text/plain, Size: 1830 bytes --]
>>>>> On Tue, 15 Sep 2015, konsolebox wrote:
> Here are my issues if we try to modify =* and not add another operator:
> 1) We'll completely abandon having an operator that matches the
> remaining parts of a version number for good: =cat/foo-5.2015* would
> no longer work.
If you look at the history, this kind of string prefix matching was
never intended. AFAICS, the "*" operator appeared in 2001 in Portage
1.6.12, and was first mentioned here:
https://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/sys-apps/portage/files/1.5/pym/portage.py?r1=1.43&r2=1.44
The comment there says that it should match "really minor" versions
and lists two examples: foo-1.0* will match 1.0.3, and glib-1.2* will
match glib-1.2, glib-1.2-r1, glib-1.2.1 and glib-1.2.1.1-r1, but will
not match glib-1.3.
> 2) We'll have to decide if we should remove the leading zeros of a
> version number: should 5.01.0 and and 5.1.2 be the matched the same
> if I used =5.01*?
Bad choice of example, as 5.01 and 5.1 are different versions (with
5.01 < 5.1 as one would expect). So, for a valid example you should
ask instead: "Should 5.010.0 and 5.01.2 be matched the same if I used
=5.010*?"
> We can only either allow it or not. We keep one feature, we lose the
> other feature. If we use another operator, =5.01* could just stay
> strict on matching 5.01*, whereas the operator could have the
> function of treating them like decimals instead. We can keep =* have
> the string matching feature while have another operator do the
> more-on-arithmetic one.
We consider 5.01 and 5.010 as equal versions. Also note that =5.010
will match both of them. So the only sensible behaviour is if =5.010*
matches all of 5.01, 5.010, 5.0100, 5.010.0, and 5.01.2.
Having an operator that allows to distinguish between equal versions
makes no sense.
Ulrich
[-- Attachment #2: Type: application/pgp-signature, Size: 490 bytes --]
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [gentoo-dev] Request to add ~> atom prefix operator on Portage.
2015-09-15 8:38 ` Ulrich Mueller
@ 2015-09-15 8:54 ` konsolebox
2015-09-15 9:15 ` Ulrich Mueller
2015-09-15 12:18 ` Ciaran McCreesh
0 siblings, 2 replies; 54+ messages in thread
From: konsolebox @ 2015-09-15 8:54 UTC (permalink / raw
To: gentoo-dev
On Tue, Sep 15, 2015 at 4:38 PM, Ulrich Mueller <ulm@gentoo.org> wrote:
> We consider 5.01 and 5.010 as equal versions.
And do we still plan to keep them equal when we fix =*?
Would that mean 5.1 is the same as 5.10? That's clearly illegal to
what most versioning schemes packages follow including the semantic
versioning (http://semver.org/).
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [gentoo-dev] Request to add ~> atom prefix operator on Portage.
2015-09-15 8:54 ` konsolebox
@ 2015-09-15 9:15 ` Ulrich Mueller
2015-09-15 9:31 ` Ulrich Mueller
2015-09-15 12:18 ` Ciaran McCreesh
1 sibling, 1 reply; 54+ messages in thread
From: Ulrich Mueller @ 2015-09-15 9:15 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1: Type: text/plain, Size: 322 bytes --]
>>>>> On Tue, 15 Sep 2015, konsolebox wrote:
>> We consider 5.01 and 5.010 as equal versions.
> And do we still plan to keep them equal when we fix =*?
Yes.
> Would that mean 5.1 is the same as 5.10?
No.
RTFPMS, all the rules for version comparison are there:
https://projects.gentoo.org/pms/5/pms.html#x1-290003.3
[-- Attachment #2: Type: application/pgp-signature, Size: 490 bytes --]
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [gentoo-dev] Request to add ~> atom prefix operator on Portage.
2015-09-15 9:15 ` Ulrich Mueller
@ 2015-09-15 9:31 ` Ulrich Mueller
2015-09-16 7:29 ` konsolebox
0 siblings, 1 reply; 54+ messages in thread
From: Ulrich Mueller @ 2015-09-15 9:31 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1: Type: text/plain, Size: 929 bytes --]
>>>>> On Tue, 15 Sep 2015, Ulrich Mueller wrote:
>>> We consider 5.01 and 5.010 as equal versions.
>> And do we still plan to keep them equal when we fix =*?
> Yes.
>> Would that mean 5.1 is the same as 5.10?
> No.
> RTFPMS, all the rules for version comparison are there:
> https://projects.gentoo.org/pms/5/pms.html#x1-290003.3
Well, maybe the following is easier to remember. The general idea is
that if any component (except for the first) starts with a 0 then it
is considered a floating point number. Therefore:
5.1 < 5.10 (neither starts with a 0)
5.01 = 5.010
5.010 < 5.10 (first one starts with a 0)
5 = 05 (first component always uses integer comparison)
5.1_beta2 = 5.1_beta02 (suffixes always use integer comparison)
However, the rule also applies if there are additional components
before or after the one with the leading zeros, for example:
5.01.2 = 5.010.2
5.6.01 = 5.6.010
Ulrich
[-- Attachment #2: Type: application/pgp-signature, Size: 490 bytes --]
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [gentoo-dev] Request to add ~> atom prefix operator on Portage.
2015-09-15 8:54 ` konsolebox
2015-09-15 9:15 ` Ulrich Mueller
@ 2015-09-15 12:18 ` Ciaran McCreesh
2015-09-16 7:32 ` konsolebox
1 sibling, 1 reply; 54+ messages in thread
From: Ciaran McCreesh @ 2015-09-15 12:18 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1: Type: text/plain, Size: 585 bytes --]
On Tue, 15 Sep 2015 16:54:59 +0800
konsolebox <konsolebox@gmail.com> wrote:
> Would that mean 5.1 is the same as 5.10? That's clearly illegal to
> what most versioning schemes packages follow including the semantic
> versioning (http://semver.org/).
Semantic versioning is a new fad. Certain upstreams still think that
5.10 is a lower version that 5.2. Perl used to be notorious for doing
this, but they've partially changed in some places but not others.
The rules are a mess because they need to a reasonable job of dealing
with all the crazy.
--
Ciaran McCreesh
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 181 bytes --]
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [gentoo-dev] Request to add ~> atom prefix operator on Portage.
2015-09-15 9:31 ` Ulrich Mueller
@ 2015-09-16 7:29 ` konsolebox
2015-09-16 7:40 ` konsolebox
0 siblings, 1 reply; 54+ messages in thread
From: konsolebox @ 2015-09-16 7:29 UTC (permalink / raw
To: gentoo-dev
On Tue, Sep 15, 2015 at 5:31 PM, Ulrich Mueller <ulm@gentoo.org> wrote:
>>>>>> On Tue, 15 Sep 2015, Ulrich Mueller wrote:
>
>>>> We consider 5.01 and 5.010 as equal versions.
>
>>> And do we still plan to keep them equal when we fix =*?
>
>> Yes.
Makes me wonder. Are there even packages that still follow this
format? I.e. one that shifts from 2 digit to 3 digit format where it
intends to have the third digit as a subversion?
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [gentoo-dev] Request to add ~> atom prefix operator on Portage.
2015-09-15 12:18 ` Ciaran McCreesh
@ 2015-09-16 7:32 ` konsolebox
0 siblings, 0 replies; 54+ messages in thread
From: konsolebox @ 2015-09-16 7:32 UTC (permalink / raw
To: gentoo-dev
On Tue, Sep 15, 2015 at 8:18 PM, Ciaran McCreesh
<ciaran.mccreesh@googlemail.com> wrote:
> Semantic versioning is a new fad.
I believe it's already been there for a while. It just didn't become
a standard soon.
> Certain upstreams still think that
> 5.10 is a lower version that 5.2. Perl used to be notorious for doing
> this, but they've partially changed in some places but not others.
>
> The rules are a mess because they need to a reasonable job of dealing
> with all the crazy.
But these rules may no longer be applicable with the current packages.
Besides I think we can just enforce using 3 digits on versioning
ebuilds when we see a package that uses both 2 digits and 3 digits.
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [gentoo-dev] Request to add ~> atom prefix operator on Portage.
2015-09-14 18:54 ` Ulrich Mueller
@ 2015-09-16 7:35 ` Kent Fredric
0 siblings, 0 replies; 54+ messages in thread
From: Kent Fredric @ 2015-09-16 7:35 UTC (permalink / raw
To: gentoo-dev
On 15 September 2015 at 06:54, Ulrich Mueller <ulm@gentoo.org> wrote:
>
>> I think it'd be okay to e.g. change the meaning and behavior of * in
>> a new EAPI.
>
> Bug 560466 now.
Assuming the syntax can be changed in a future EAPI.
What EAPI applies to the use of these specifiers on the command line?
What EAPI applies to the use of these specifiers in /etc/portage/** ?
--
Kent
KENTNL - https://metacpan.org/author/KENTNL
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [gentoo-dev] Request to add ~> atom prefix operator on Portage.
2015-09-16 7:29 ` konsolebox
@ 2015-09-16 7:40 ` konsolebox
2015-09-16 7:50 ` Kent Fredric
0 siblings, 1 reply; 54+ messages in thread
From: konsolebox @ 2015-09-16 7:40 UTC (permalink / raw
To: gentoo-dev
On Wed, Sep 16, 2015 at 3:29 PM, konsolebox <konsolebox@gmail.com> wrote:
> On Tue, Sep 15, 2015 at 5:31 PM, Ulrich Mueller <ulm@gentoo.org> wrote:
>>>>>>> On Tue, 15 Sep 2015, Ulrich Mueller wrote:
>>
>>>>> We consider 5.01 and 5.010 as equal versions.
>>
>>>> And do we still plan to keep them equal when we fix =*?
>>
>>> Yes.
>
> Makes me wonder. Are there even packages that still follow this
> format? I.e. one that shifts from 2 digit to 3 digit format where it
> intends to have the third digit as a subversion?
And I find it so wrong that it makes me think that it shouldn't have
been acknowledged by any packaging system. That versioning madness
should have been just fixed in the ebuilds level.
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [gentoo-dev] Request to add ~> atom prefix operator on Portage.
2015-09-16 7:40 ` konsolebox
@ 2015-09-16 7:50 ` Kent Fredric
0 siblings, 0 replies; 54+ messages in thread
From: Kent Fredric @ 2015-09-16 7:50 UTC (permalink / raw
To: gentoo-dev
On 16 September 2015 at 19:40, konsolebox <konsolebox@gmail.com> wrote:
> And I find it so wrong that it makes me think that it shouldn't have
> been acknowledged by any packaging system. That versioning madness
> should have been just fixed in the ebuilds level.
Yeah. My experience with versions is its better to have a single
versioning scheme that is regular and well defined, without any
magical "Do everything different if this thing exists here" stuff.
Perl versions suffer seriously from such logic, and gentoo also does,
in different ways.
The reason I believe we permitted versions to have such a variety of
interpretations is to make it easier to track upstream versions 1:1.
But in some places, that just makes our life more miserable for the
attempt, and its more "Sane" to normalise upstream versions into a
scheme that is consistent and makes sense.
After all, that's what our downstream job is: To sanitize upstream for
our users.
And upstream *can* and *will* do utterly rediculous shit with versions
that no single versioning syntax can ever attempt to adjust for. ( For
instance, publishing versions with substrings of MD5s , where the
textual data itself conveys absolutely no relativistic numeric value,
because upstream don't care for progressive scales of versioning, only
a "Have the latest version published or GTFO" mandate, which is
something you can't map sanely )
Hence why perl herd bit that bullet a long time ago and applied a
normalisation scheme, to map the horrible multiple-version-schemes
system into a logical and consistent thing that gentoo handles simply.
It comes with a price of course, that every ebuild has to have a "The
upstream version is really ... " declaration, and people have to
remember to change that when they bump the version, but it leads to
much less dependency version confusions.
--
Kent
KENTNL - https://metacpan.org/author/KENTNL
^ permalink raw reply [flat|nested] 54+ messages in thread
end of thread, other threads:[~2015-09-16 7:50 UTC | newest]
Thread overview: 54+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-09-14 4:35 [gentoo-dev] Request to add ~> atom prefix operator on Portage konsolebox
2015-09-14 5:38 ` Daniel Campbell
2015-09-14 6:15 ` konsolebox
2015-09-14 5:47 ` Kent Fredric
2015-09-14 5:51 ` Ulrich Mueller
2015-09-14 6:09 ` konsolebox
2015-09-14 6:19 ` Kent Fredric
2015-09-14 6:43 ` konsolebox
2015-09-14 6:52 ` Ulrich Mueller
2015-09-14 6:59 ` Kent Fredric
2015-09-14 8:01 ` Ulrich Mueller
2015-09-14 8:14 ` Kent Fredric
2015-09-14 9:04 ` Ulrich Mueller
2015-09-14 9:15 ` Kent Fredric
2015-09-14 11:38 ` Ulrich Mueller
2015-09-14 11:45 ` Kent Fredric
2015-09-14 11:53 ` Ulrich Mueller
2015-09-14 9:21 ` Kent Fredric
2015-09-14 11:46 ` Ulrich Mueller
2015-09-14 11:48 ` hasufell
2015-09-14 13:11 ` Ulrich Mueller
2015-09-14 19:56 ` Andreas K. Huettel
2015-09-14 20:19 ` hasufell
2015-09-14 20:53 ` Zac Medico
2015-09-14 20:56 ` Ulrich Mueller
2015-09-14 20:52 ` Ulrich Mueller
2015-09-14 16:38 ` Ciaran McCreesh
2015-09-14 8:18 ` Kent Fredric
2015-09-14 8:22 ` konsolebox
2015-09-14 8:28 ` Kent Fredric
2015-09-14 8:32 ` konsolebox
2015-09-14 8:41 ` konsolebox
2015-09-14 13:53 ` Manuel Rüger
2015-09-15 7:01 ` konsolebox
2015-09-14 7:58 ` [gentoo-dev] " Duncan
2015-09-14 8:16 ` konsolebox
2015-09-14 6:29 ` [gentoo-dev] " Paweł Hajdan, Jr.
2015-09-14 7:13 ` konsolebox
2015-09-14 18:07 ` Paweł Hajdan, Jr.
2015-09-14 18:54 ` Ulrich Mueller
2015-09-16 7:35 ` Kent Fredric
2015-09-15 7:21 ` konsolebox
2015-09-15 8:38 ` Ulrich Mueller
2015-09-15 8:54 ` konsolebox
2015-09-15 9:15 ` Ulrich Mueller
2015-09-15 9:31 ` Ulrich Mueller
2015-09-16 7:29 ` konsolebox
2015-09-16 7:40 ` konsolebox
2015-09-16 7:50 ` Kent Fredric
2015-09-15 12:18 ` Ciaran McCreesh
2015-09-16 7:32 ` konsolebox
2015-09-14 18:12 ` Kristian Fiskerstrand
2015-09-15 7:26 ` konsolebox
2015-09-15 7:47 ` konsolebox
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox