public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Michał Górny" <mgorny@gentoo.org>
To: <gentoo-dev@lists.gentoo.org>
Subject: [gentoo-dev] RFC: storing predefined INSTALL_MASK directory lists in repos
Date: Sat, 11 Jan 2014 11:20:19 +0100	[thread overview]
Message-ID: <20140111112019.45f81ec6@gentoo.org> (raw)

[-- Attachment #1: Type: text/plain, Size: 2089 bytes --]

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

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 966 bytes --]

             reply	other threads:[~2014-01-11 10:20 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-11 10:20 Michał Górny [this message]
2014-01-11 11:53 ` [gentoo-dev] RFC: storing predefined INSTALL_MASK directory lists in repos Peter Stuge
2014-01-11 15:19   ` [gentoo-dev] " Duncan
2014-01-11 18:59     ` Peter Stuge
2014-01-13 20:39       ` Donnie Berkholz
2014-01-11 15:56 ` [gentoo-dev] " Luis Ressel
2014-01-11 16:01   ` Michał Górny
2014-01-11 16:15     ` Alan McKinnon
2014-01-11 16:52       ` Michał Górny
2014-01-11 17:11         ` Alan McKinnon
2014-01-11 17:28           ` Michał Górny
2014-01-11 16:21     ` Luis Ressel
2014-01-11 16:46       ` Michał Górny

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20140111112019.45f81ec6@gentoo.org \
    --to=mgorny@gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox