1 |
Hello, everyone. |
2 |
|
3 |
As part of new GLEP effort, I'm working on improving INSTALL_MASK |
4 |
support in Portage to make it cleaner and more featureful. Here's |
5 |
the first set of commits resulting from this. |
6 |
|
7 |
The previous implementation of INSTALL_MASK was done purely in bash. |
8 |
Long story short, Portage removed all files matching one of INSTALL_MASK |
9 |
patterns from the installation image. |
10 |
|
11 |
My implementation is done purely as a filter in Python. The ebuild |
12 |
configuration bits now generate final list of INSTALL_MASK. It is |
13 |
afterwards used in vartree bits to filter files while checking for |
14 |
collisions, merging and unmerging appropriately. |
15 |
|
16 |
The major differences/improvements are: |
17 |
|
18 |
* The files are actually left in image directory. Not that it makes any |
19 |
real difference but it is a bit cleaner and more like real mask this |
20 |
way. |
21 |
|
22 |
* The pre-install "removing" output has been replaced by listing files |
23 |
with "###" zing in merging output (which means "not installed due |
24 |
to INSTALL_MASK"). |
25 |
|
26 |
* All masked files are now listed in vdb CONTENTS. Therefore, tools |
27 |
like app-portage/install-mask can now figure out to which packages |
28 |
masks were applied and rebuild them on mask changes appropriately. |
29 |
|
30 |
* Mask exclusions are supported now. Which means you can do e.g.: |
31 |
INSTALL_MASK="/usr/share/locale -/usr/share/locale/foo". |
32 |
|
33 |
* The code is now whitespace-safe. While patterns specified |
34 |
in INSTALL_MASK directly still can not contain spaces, pattern groups |
35 |
will be able to use them. |
36 |
|
37 |
In a few days, I'll try to provide a part II that would implement |
38 |
the actual mask groups. However, I may need some help adding support |
39 |
for the configuration files. |
40 |
|
41 |
I'm not touching PKG_INSTALL_MASK for now since it's harder and outside |
42 |
of the scope of what I'm trying to achieve. |
43 |
|
44 |
|
45 |
|
46 |
Michał Górny (3): |
47 |
portage.package.ebuild.config: Move FEATURES=no* handling there |
48 |
Move INSTALL_MASK handling into merging |
49 |
portage.dbapi.vartree: Support exclusions in INSTALL_MASK |
50 |
|
51 |
bin/misc-functions.sh | 30 ---------- |
52 |
pym/portage/dbapi/vartree.py | 104 ++++++++++++++++++++++------------- |
53 |
pym/portage/package/ebuild/config.py | 10 ++++ |
54 |
3 files changed, 76 insertions(+), 68 deletions(-) |
55 |
|
56 |
-- |
57 |
2.8.3 |