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 |