[gentoo-user] Re: Blacklisting all packages from overlay except a specific group and version

2016-04-01 Thread Martin Vaeth
Nikos Chantziaras  wrote:
> It didn't look like it to me at all. From the man page:
>
>Examples:
>
># match anything with a version containing , which can be used in
># package.mask to prevent emerge --autounmask from selecting live
># ebuilds
>=*/*-**

This has always been a horribly misleading example, because it
does not follow the PMS rules of wildcard version matching:
=foo/bar-* must mach foo/bar-p1 but not foo/bar-999

Maybe portage finally dumped this bad case, which was already reported
https://bugs.gentoo.org/show_bug.cgi?id=572178

OTOH, it would appear reasonable that portage could accept
=dev-qt/*-5.6*
although there is of course the ambiguity that it is not clear
that the -5.6* is the version specification.
Perhaps one could open a portage bug/feature request about it.

eix-0.31.7 accepts both (=dev-qt/*-5.6* with PMS rules
as well as the non-PMS =dev-qt/*-*5.6* [with string instead
of PMS matching rules]).




[gentoo-user] Re: Blacklisting all packages from overlay except a specific group and version

2016-03-31 Thread Nikos Chantziaras

On 31/03/16 09:11, Alan McKinnon wrote:

On 31/03/2016 00:13, Nikos Chantziaras wrote:

   "Invalid atom in /etc/portage/package.unmask/qt: =dev-qt/*-5.6*::qt"

(Doesn't work with or without the "::qt".)


It's the leading "*" that's wrong there, because it's not a glob or a
regex; it's more a placeholder metacharacter with it's own rules. Look
at the relevant section in man 5 ebuild. It's not explicit but it does
strongly hint that "*" goes at the end of a string


It didn't look like it to me at all. From the man page:

  Examples:

  # match anything with a version containing , which can be used in
  # package.mask to prevent emerge --autounmask from selecting live
  # ebuilds
  =*/*-**

So if that works, one would assume that "=dev-qt/*-*5.6*" should work 
just as well :-/





Re: [gentoo-user] Re: Blacklisting all packages from overlay except a specific group and version

2016-03-31 Thread Alan McKinnon
On 31/03/2016 00:13, Nikos Chantziaras wrote:
> On 30/03/16 05:48, Bryan Gardiner wrote:
>> On 30 March 2016 05:01:16 GMT+09:00, Nikos Chantziaras
>>  wrote:
>>> So, I want to install packages from an overlay, but only from a
>>> specific group. In this case, the dev-qt/ group. The overlay name
>>> is "qt".
>>>
>>> It doesn't work:
>>>
>>>   package.mask: */*::qt
>>>   package.unmask: dev-qt/*-5.6*::qt
>>>
>>> With this, 5.6 versions are still masked.
>>
>> The syntax for "5.6*"-like versions has an equals at the start, for
>> example =dev-qt/qtbase-5.6*
> 
> That works.
> 
> 
>> so if it's allowed, =dev-qt/*-5.6*::qt
>> would be the correct package.unmask syntax.  Does that work?
> 
> Nope:
> 
>   "Invalid atom in /etc/portage/package.unmask/qt: =dev-qt/*-5.6*::qt"
> 
> (Doesn't work with or without the "::qt".)
> 
> 

It's the leading "*" that's wrong there, because it's not a glob or a
regex; it's more a placeholder metacharacter with it's own rules. Look
at the relevant section in man 5 ebuild. It's not explicit but it does
strongly hint that "*" goes at the end of a string



-- 
Alan McKinnon
alan.mckin...@gmail.com




[gentoo-user] Re: Blacklisting all packages from overlay except a specific group and version

2016-03-30 Thread Nikos Chantziaras

On 30/03/16 05:48, Bryan Gardiner wrote:

On 30 March 2016 05:01:16 GMT+09:00, Nikos Chantziaras
 wrote:

So, I want to install packages from an overlay, but only from a
specific group. In this case, the dev-qt/ group. The overlay name
is "qt".

It doesn't work:

  package.mask: */*::qt
  package.unmask: dev-qt/*-5.6*::qt

With this, 5.6 versions are still masked.


The syntax for "5.6*"-like versions has an equals at the start, for
example =dev-qt/qtbase-5.6*


That works.



so if it's allowed, =dev-qt/*-5.6*::qt
would be the correct package.unmask syntax.  Does that work?


Nope:

  "Invalid atom in /etc/portage/package.unmask/qt: =dev-qt/*-5.6*::qt"

(Doesn't work with or without the "::qt".)




[gentoo-user] Re: Blacklisting all packages from overlay except a specific group and version

2016-03-29 Thread Nikos Chantziaras

Because that is already covered by:

  */*::qt

in package.mask. This masks everything from the qt overlay, including 
versions of Qt higher or equal to 5.7.


I only masked >=5.7, then the other packages from the qt overlay would 
not be masked. What I need is mask ALL packages in the qt overlay EXCEPT 
dev-qt/*-5.6.*.



On 30/03/16 00:14, Ian Bloss wrote:

Why don't you mask versions higher than 5.7 instead?


On Tue, Mar 29, 2016, 17:00 Nikos Chantziaras > wrote:

On 29/03/16 23:01, Nikos Chantziaras wrote:
 > So, I want to install packages from an overlay, but only from a
specific
 > group. In this case, the dev-qt/ group. The overlay name is "qt".
 >
 > It doesn't work:
 >
 >package.mask: */*::qt
 >package.unmask: dev-qt/*-5.6*::qt
 >
 > With this, 5.6 versions are still masked.
 >
 > How do I do this?

Well, I brute-forced it. I've use this mask:

*/*::qt

and this unmask:







Re: [gentoo-user] Re: Blacklisting all packages from overlay except a specific group and version

2016-03-29 Thread Ian Bloss
Why don't you mask versions higher than 5.7 instead?

On Tue, Mar 29, 2016, 17:00 Nikos Chantziaras  wrote:

> On 29/03/16 23:01, Nikos Chantziaras wrote:
> > So, I want to install packages from an overlay, but only from a specific
> > group. In this case, the dev-qt/ group. The overlay name is "qt".
> >
> > It doesn't work:
> >
> >package.mask: */*::qt
> >package.unmask: dev-qt/*-5.6*::qt
> >
> > With this, 5.6 versions are still masked.
> >
> > How do I do this?
>
> Well, I brute-forced it. I've use this mask:
>
>*/*::qt
>
> and this unmask:
>
>
> It works, but I would have expected that computers are good with
> wildcards :-/ The above should be equivalent to this:
>
>
> but portage refuses to recognize it.
>
> Ah, well.
>
>
>


[gentoo-user] Re: Blacklisting all packages from overlay except a specific group and version

2016-03-29 Thread Nikos Chantziaras

On 29/03/16 23:01, Nikos Chantziaras wrote:

So, I want to install packages from an overlay, but only from a specific
group. In this case, the dev-qt/ group. The overlay name is "qt".

It doesn't work:

   package.mask: */*::qt
   package.unmask: dev-qt/*-5.6*::qt

With this, 5.6 versions are still masked.

How do I do this?


Well, I brute-forced it. I've use this mask:

  */*::qt

and this unmask:

  It works, but I would have expected that computers are good with 
wildcards :-/ The above should be equivalent to this:


  

[gentoo-user] Re: Blacklisting all packages from overlay except a specific group and version

2016-03-29 Thread Nikos Chantziaras

On 29/03/16 23:21, R0b0t1 wrote:

Not entirely sure what you wish. Maybe package sets?


Not sure what *you* mean :-) How would package sets help me in masking 
all packages from an overlay and then whilelist only specific ones?