Gentoo Archives: gentoo-dev

From: "Michał Górny" <mgorny@g.o>
To: gentoo-dev@l.g.o
Subject: [gentoo-dev] RFC: storing predefined INSTALL_MASK directory lists in repos
Date: Sat, 11 Jan 2014 10:20:37
Message-Id: 20140111112019.45f81ec6@gentoo.org
Hello, all.

Some time ago I wrote a small tool called install-mask. As the name
suggests, it was intended to help with manipulating INSTALL_MASK.
I think that its most important feature was ability to use pre-defined
mask lists to easily mask unwanted directories without getting into
the details.

For example, you could do:

  install-mask -a systemd

and it masked all directories related to systemd that were safe to be
masked.

The original solution had a few weak points, however, and since it was
an external tool it didn't help most of the Gentoo users. For this
reason, I wanted to implement the necessary bits in portage itself. Now
kensington reminded me of it and offered to work on it, so I'd like to
revive the topic.

What we need is an agreement where to put the 'mask lists'. That is, we
need a mapping of pre-defined keys to descriptions & lists of paths.
I have two ideas.


IDEA ONE

I'm thinking of doing something similar to USE_EXPAND. That is,
a structure like:

- a top-level install-mask.desc that keeps mapping of keys to
  descriptions,

- install-mask directory where each file name matches the install-mask
  key and file contents list all the paths.

For example:

install-mask.desc:

  bash-completion: app-shells/bash completions
  systemd: sys-apps/systemd unit files and auxiliary files

install-mask/bash-completion:

  /usr/share/bash-completion

install-mask/systemd:

  /usr/lib/systemd/system
  /usr/lib/systemd/user


IDEA TWO

A single file with ini-like syntax (alike layout.conf) that holds all
the info. Such file can be found already in
$PORTDIR/app-portage/install-mask/files/location-db.conf:

Example contents:

  [systemd]
  path=/usr/lib/systemd/system
  path=/usr/lib/systemd/user
  description=systemd unit and auxiliary files.

  [bash-completion]
  path=/usr/share/bash-completion


In both cases, the keys could be put into INSTALL_MASK in make.conf:

  INSTALL_MASK="systemd bash-completion"

What are your thoughts?

-- 
Best regards,
Michał Górny

Attachments

File name MIME type
signature.asc application/pgp-signature

Replies