On Fri, 20 May 2016 11:12:02 -0400
Michael Orlitzky <m...@gentoo.org> wrote:

> On 05/20/2016 10:01 AM, Michał Górny wrote:
> > 
> > Please review the specification provided. The basic goal is to provide
> > an ability to use INSTALL_MASK alike USE flags -- with path groups that
> > are well-defined and described in the repository.
> > 
> > [1]:https://wiki.gentoo.org/wiki/User:MGorny/GLEP:INSTALL_MASK
> >   
> 
> I like the idea. INSTALL_MASK is currently pretty flaky, and that's what
> we tell people to use to block e.g. systemd units. Here's what I gather:
> 
>   1. The INSTALL_MASK-like feature should support fnmatch() wildcards.
> 
>   2. Binary packages are not be affected (there's another feature for
>      that)
> 
>   3. We can define groups of paths to make certain things (bash
>      completions, locales, etc.) easy to mask.
> 
> All of those are good, but are the details of what actually goes in
> INSTALL_MASK left up to the implementation? How would I mask all bash
> completions (the bash-completion group) using INSTALL_MASK?

Yes. Configuration and implementation is left to implementation.
The spec only says that it should be possible to somehow enable
inclusive/exclusive filtering of specific files, and the end result
should be as if they weren't installed in the first place.

Getting into implementation details, I'd probably go for:

  INSTALL_MASK="@bash-completion"

but the exact syntax is left for various package managers. Paludis
and pkgcore would probably prefer a proper configuration file.

> Can you make the spec say that we should be able to mask files whose
> names contain spaces? Or is that implicit in the fnmatch() clause?

Well, this should be implicit in fnmatch() for repo-defined paths.
However, we leave this undefined for INSTALL_MASK itself, so custom
paths will probably have to be declared in install-mask.conf-alike
in /etc/portage.

> For the portage implementation, it may be time to ditch the variable and
> move to something like /etc/portage/install.mask:
> 
>   $ cat /etc/portage/install.mask
>   [bash-completion]
>   /etc/logrotate.d
>   read me.txt
> 
> With one pattern per line, the spaces thing is easy to deal with. But
> this makes me wonder, how is portage supposed to know I want to block
> the bash-completion group and not all files named "[bash-completion]"?

I'd leave this for Portage people to decide. Though I'd prefer
if /etc/portage had file with the same or similar syntax to repo file.

--
Best regards,
Michał Górny

Attachment: pgpXxrRzb6_16.pgp
Description: OpenPGP digital signature

Reply via email to