Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 563270

Summary: [Future EAPI] Add a <~ dependency operator acting like <= but ignoring the revision part
Product: Gentoo Hosted Projects Reporter: Matthew Thode ( prometheanfire ) <prometheanfire>
Component: PMS/EAPIAssignee: PMS/EAPI <pms>
Status: CONFIRMED ---    
Severity: normal CC: esigra
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Bug Depends on:    
Bug Blocks: 174380, 598525    

Description Matthew Thode ( prometheanfire ) archtester Gentoo Infrastructure gentoo-dev Security 2015-10-16 20:05:13 UTC
these represent the upper bound (inclusive) for stuff within openstack
https://github.com/openstack/requirements/blob/master/upper-constraints.txt

It would be nice if I could use these versions with <~ as <= makes it so that I don't include revbumps.  I've had to add -r9999 to some <= lines already and don't really want to add it everywhere <= is defined.

Reproducible: Always
Comment 1 Matthew Thode ( prometheanfire ) archtester Gentoo Infrastructure gentoo-dev Security 2015-10-16 20:21:38 UTC
does it have to be in a future eapi?  can I sneak it into eapi6?

why not just use < with the version you're limiting to plus 1 ?
It's harder to track mainly, but also because a package refrences what it knows works.  If it says 1.0 works and you do <category/package-1.1 then 1.0.1 comes out (this happens more then you'd think) 1.0.1 will be allowed which isn't good.

|| (  <atom ~atom )
this is basically the same but much more cluttery
see https://gitweb.gentoo.org/repo/gentoo.git/commit/sys-cluster/nova/nova-2015.2.9999.ebuild?id=af0e8b432acc614a2025d47fee2c0317c8a39e00 for the number of packages I'm dealing with
Comment 2 Matthew Thode ( prometheanfire ) archtester Gentoo Infrastructure gentoo-dev Security 2015-10-16 20:34:15 UTC
~ is only needed when defining an upper bound, >= already covers revbumps so >~ is not needed
Comment 3 Matthew Thode ( prometheanfire ) archtester Gentoo Infrastructure gentoo-dev Security 2015-10-16 20:43:51 UTC
!>~ could be useful though

!<~ as well, but at that point you'd likely know what you need like with >=  could be added for completeness, but not really needed
Comment 4 Ulrich Müller gentoo-dev 2015-10-16 21:23:43 UTC
(In reply to Matthew Thode ( prometheanfire ) from comment #1)
> does it have to be in a future eapi?

Yes.

> can I sneak it into eapi6?

Extremely bad timing, since the EAPI 6 draft is already in its review phase.

> why not just use < with the version you're limiting to plus 1 ?
> It's harder to track mainly, but also because a package refrences what it
> knows works.  If it says 1.0 works and you do <category/package-1.1 then
> 1.0.1 comes out (this happens more then you'd think) 1.0.1 will be allowed
> which isn't good.

Couldn't you use subslots for these dependencies?
Comment 5 Matthew Thode ( prometheanfire ) archtester Gentoo Infrastructure gentoo-dev Security 2015-10-17 01:13:10 UTC
might be able to do subslots but I'm not sure that's the best solution
Comment 6 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2016-10-30 11:24:12 UTC
If we are to consider this, we should probably establish some relation to r* GLEP operators. There's really no point in having two distinct sets.
Comment 7 Ulrich Müller gentoo-dev 2016-10-30 13:41:33 UTC
(In reply to Michał Górny from comment #6)
> r* GLEP operators

I have no idea what that is. Please explain.
Comment 8 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2016-10-30 13:48:25 UTC
(In reply to Ulrich Müller from comment #7)
> (In reply to Michał Górny from comment #6)
> > r* GLEP operators
> 
> I have no idea what that is. Please explain.

After reading the request multiple times, I figured out it's a different thing. I've filed the 'request' for GLSA ops as [1].

[1]:https://bugs.gentoo.org/show_bug.cgi?id=598523
Comment 9 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2016-10-30 14:25:55 UTC
(In reply to Michał Górny from comment #6)
> If we are to consider this, we should probably establish some relation to r*
> GLEP operators. There's really no point in having two distinct sets.

Sorry, I meant GLSA there.

So as far as I understand, <~ would be like <X-r9999999..., and >~ would be like >X-r9999999... Maybe it'd be simpler to have some kind of -rINF ;-).
Comment 10 Ulrich Müller gentoo-dev 2016-10-30 19:43:49 UTC
(In reply to Michał Górny from comment #9)
> So as far as I understand, <~ would be like <X-r9999999..., and >~ would be
> like >X-r9999999... Maybe it'd be simpler to have some kind of -rINF ;-).

One could argue that r9999 is equivalent to rINF for all practical purposes.
Comment 11 Ciaran McCreesh 2016-10-30 19:48:25 UTC
I've seen -r20161030 style stuff show up in overlays...
Comment 12 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2016-10-30 20:55:59 UTC
Especially considering we don't enforce any numerical limits. Let's use -r∞.
Comment 13 Matthew Thode ( prometheanfire ) archtester Gentoo Infrastructure gentoo-dev Security 2016-10-30 23:05:03 UTC
I'm good with ascii or unicode :P  (though I think we are limited to ascii for ebuilds.