Gentoo Archives: gentoo-pms

From: "Michał Górny" <mgorny@g.o>
To: gentoo-pms@l.g.o
Cc: "Michał Górny" <mgorny@g.o>
Subject: [gentoo-pms] [PATCH] docompress: Specify the behavior for compressed files more strictly
Date: Sun, 23 Sep 2018 17:05:41
Message-Id: 20180923170532.17289-1-mgorny@gentoo.org
1 Specify the behavior for dealing with already compressed files more
2 strictly, by requiring them not to be compressed twice if compressed
3 using the same format already. This replaces the previous vague
4 statement of 'behaving sensibly if already compressed'. This statement
5 had a number of problems.
6
7 Firstly, it was entirely vague on what 'sensible behavior' is. Most
8 of the developers seemed to presume it means decompressing the file
9 and compressing it again. However, without a clearly defined list
10 of compression formats to support, this is impossible to implement
11 properly.
12
13 Secondly, different package managers disagreed on the implementation.
14 For example, Portage recompressed the file, with the implementation
15 originally supporting .Z, .gz and .bz2, and later gaining support for
16 .lzma and .xz (independently of EAPI support for those formats).
17 PkgCore and Paludis never supported controllable compression, so they
18 always installed the files in original format.
19
20 The new wording aims to be more precise and strict while preserving
21 the spirit of the original and allowing the behavior currently exhibited
22 by the package manager implementations. Most notably, it accounts for
23 the possibility of the same file being iterated over by the compression
24 routine twice.
25
26 It does not require the package manager to recognize arbitrary
27 compressed file formats, making the current implementations compliant
28 with it. At the same time, it implies that the developers need to
29 account for the package manager not handling the particular compressed
30 file format used upstream, and appropriately needing to decompress
31 the file in order to fully respect controllable compression.
32 ---
33 pkg-mgr-commands.tex | 6 +++---
34 1 file changed, 3 insertions(+), 3 deletions(-)
35
36 diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
37 index 1e414d4..9c07a0f 100644
38 --- a/pkg-mgr-commands.tex
39 +++ b/pkg-mgr-commands.tex
40 @@ -774,9 +774,9 @@ times or if an item is a symlink.
41
42 \featurelabel{docompress} In EAPIs listed in table~\ref{tab:staging-area-commands} as supporting
43 controllable compression, the package manager may optionally compress a subset of the files under
44 -the \t{ED} directory. The package manager shall ensure that its compression mechanisms behave
45 -sensibly even if a file is already compressed. For compression, the initial values of the two lists
46 -are as follows:
47 +the \t{ED} directory. The package manager shall ensure that its compression mechanisms do not
48 +compress the file twice if it is already compressed using the same compressed file format.
49 +For compression, the initial values of the two lists are as follows:
50
51 \begin{compactitem}
52 \item The inclusion list contains \t{/usr/share/doc}, \t{/usr/share/info} and \t{/usr/share/man}.
53 --
54 2.19.0