mirror of https://git.tukaani.org/xz.git
Compare commits
677 Commits
v5.7.0alph
...
master
| Author | SHA1 | Date |
|---|---|---|
|
|
590f4713b2 | |
|
|
26d22ed16b | |
|
|
f7381cf927 | |
|
|
dc1a421ce3 | |
|
|
c690101ddd | |
|
|
d9b318f5b8 | |
|
|
700e32f1b7 | |
|
|
a7b749389c | |
|
|
e0b3c6ee0a | |
|
|
fbc1046248 | |
|
|
8f0579ba56 | |
|
|
f8424b0416 | |
|
|
c4340692d4 | |
|
|
b8af36920b | |
|
|
5a7fc1af3d | |
|
|
88531e5463 | |
|
|
8a81727719 | |
|
|
1ec43aa781 | |
|
|
7971566247 | |
|
|
338f952c00 | |
|
|
723cee44d0 | |
|
|
524f6a7384 | |
|
|
0f41a28bfa | |
|
|
91170c8cab | |
|
|
a3c6cb0911 | |
|
|
c410ccc625 | |
|
|
6cc2da0a4b | |
|
|
90b67853d5 | |
|
|
be365b7010 | |
|
|
2686554da0 | |
|
|
1b30734c9c | |
|
|
8bb516887c | |
|
|
23c95c6a7c | |
|
|
2b2652e914 | |
|
|
ee75c76958 | |
|
|
f57b1716cd | |
|
|
211cde0923 | |
|
|
cbf50a99e3 | |
|
|
68d1591187 | |
|
|
beca015891 | |
|
|
3e394278ed | |
|
|
ace28e3573 | |
|
|
ffd14a099f | |
|
|
6f3152874e | |
|
|
ef67e051d7 | |
|
|
71c2ede383 | |
|
|
02da8de0ed | |
|
|
75b18d325f | |
|
|
0102072915 | |
|
|
83419783a6 | |
|
|
3b5f5af9bc | |
|
|
e8838b2f59 | |
|
|
8d26b72915 | |
|
|
32412bd2a4 | |
|
|
eaa150df98 | |
|
|
61b114e92f | |
|
|
6d287a3ae9 | |
|
|
41a421dbad | |
|
|
a2c6aa8764 | |
|
|
8e4153253e | |
|
|
37a57a926d | |
|
|
e3ba73034a | |
|
|
067cecdea6 | |
|
|
4fc6208abe | |
|
|
7844aff1a8 | |
|
|
4d439aaeed | |
|
|
dd4a1b2599 | |
|
|
d660fe5d56 | |
|
|
ab45bdf432 | |
|
|
f023993653 | |
|
|
377be0ea7a | |
|
|
ff49c82176 | |
|
|
71ad5e8288 | |
|
|
31a983ad47 | |
|
|
d9e70da25a | |
|
|
dbfb925c81 | |
|
|
7c12726c51 | |
|
|
1bd7361a04 | |
|
|
5cc2e479eb | |
|
|
56aa9a0796 | |
|
|
f33da20b75 | |
|
|
5606fa89f9 | |
|
|
ec047a65a0 | |
|
|
4f86e77bef | |
|
|
ff96542d1c | |
|
|
a6711d1c4a | |
|
|
8efd80adfc | |
|
|
a2e47c7a59 | |
|
|
9048e72494 | |
|
|
d8e9dc63a6 | |
|
|
ffa9fadecc | |
|
|
6f2aaa77da | |
|
|
09110ad4c7 | |
|
|
516b90f6e1 | |
|
|
c330220d47 | |
|
|
6cc7672c22 | |
|
|
07dc509137 | |
|
|
cfcaae1945 | |
|
|
5240fcfee3 | |
|
|
85ff0cf0ce | |
|
|
907ac2215d | |
|
|
b0d0e62474 | |
|
|
1edc14e8ca | |
|
|
35e06c4c42 | |
|
|
99f4b9db9d | |
|
|
dd006a67e5 | |
|
|
f59c585960 | |
|
|
49258439b4 | |
|
|
a69fbd3aae | |
|
|
8a300d1c4f | |
|
|
b5a5d9e3f7 | |
|
|
c5fd88dfc3 | |
|
|
49ba8c69ea | |
|
|
1176a19df6 | |
|
|
c3cb1e53a1 | |
|
|
a522a22654 | |
|
|
1c462c2ad8 | |
|
|
513cabcf7f | |
|
|
48440e24a2 | |
|
|
0c80045ab8 | |
|
|
8188048854 | |
|
|
d5a2ffe41b | |
|
|
c0c835964d | |
|
|
831b55b971 | |
|
|
b9d168eee4 | |
|
|
c8e0a4897b | |
|
|
307c02ed69 | |
|
|
7ce38b3183 | |
|
|
688e51bde4 | |
|
|
173fb5c68b | |
|
|
db9258e828 | |
|
|
bfb752a38f | |
|
|
6ccbb904da | |
|
|
891a5f057a | |
|
|
4f52e73870 | |
|
|
ff5d944749 | |
|
|
943b012d09 | |
|
|
bc14e4c94e | |
|
|
e82ee090c5 | |
|
|
8e7cd0091e | |
|
|
2c24292d34 | |
|
|
48053c9089 | |
|
|
8d6f06a65f | |
|
|
c3439b039f | |
|
|
79b4ab8d79 | |
|
|
515b6fc855 | |
|
|
333b7c0b77 | |
|
|
ae52ebd27d | |
|
|
1028e52c93 | |
|
|
80e4883602 | |
|
|
ab319186b6 | |
|
|
4434671a04 | |
|
|
18bcaa4faf | |
|
|
1e17b7f42f | |
|
|
ff85e6130d | |
|
|
a5bfb33f30 | |
|
|
5bb77d0920 | |
|
|
c1ea7bd0b6 | |
|
|
4243c45a48 | |
|
|
cc7f2fc1cf | |
|
|
62e44b3616 | |
|
|
70f1f20378 | |
|
|
db9827dc38 | |
|
|
99c584891b | |
|
|
7a234c8c05 | |
|
|
808f05af3e | |
|
|
051de255f0 | |
|
|
4941ea454c | |
|
|
d142d96f24 | |
|
|
9b7e45d841 | |
|
|
9351592710 | |
|
|
9023be7831 | |
|
|
2eaf242c56 | |
|
|
41322b2c60 | |
|
|
03c23a4952 | |
|
|
c23b837d15 | |
|
|
2672a38f11 | |
|
|
4fdcbfaf3f | |
|
|
0d553568f1 | |
|
|
9f165076ae | |
|
|
f5aa292c53 | |
|
|
7cf463b5ad | |
|
|
6b7fe7e27b | |
|
|
2c7aee9493 | |
|
|
c6b15e7045 | |
|
|
0ce97987c5 | |
|
|
353c33355c | |
|
|
887dc28188 | |
|
|
0f1454cf5f | |
|
|
23ea031820 | |
|
|
84c33c0384 | |
|
|
a7304ea4a7 | |
|
|
1780bba740 | |
|
|
3aca2daefb | |
|
|
186ff78ab4 | |
|
|
40a8ce3e10 | |
|
|
1787f9bd18 | |
|
|
9b9182e561 | |
|
|
7d73ff7a9d | |
|
|
c56eb47076 | |
|
|
69f4aec0a2 | |
|
|
d49dde33cf | |
|
|
23b99fc4a1 | |
|
|
7edab2bde0 | |
|
|
fac4d0fa52 | |
|
|
abe5092f24 | |
|
|
b97b23c78d | |
|
|
c68318cb49 | |
|
|
153ee17f63 | |
|
|
6ed308197e | |
|
|
06028803e1 | |
|
|
8cbaf896a6 | |
|
|
81c352907b | |
|
|
999ce26371 | |
|
|
4d7e7c9d94 | |
|
|
95b638480a | |
|
|
cdae0df31e | |
|
|
4d2af2c43b | |
|
|
ff0b825505 | |
|
|
f6cd3e3bfc | |
|
|
b3af3297e4 | |
|
|
a04b9dd0c7 | |
|
|
4eae859ae8 | |
|
|
a831bc185b | |
|
|
6f5cdd4534 | |
|
|
713fdaa8b0 | |
|
|
f2e2b267ca | |
|
|
f49d7413d9 | |
|
|
da359c360e | |
|
|
f032373561 | |
|
|
51f038f8cb | |
|
|
96336b0110 | |
|
|
150356207c | |
|
|
b01b095802 | |
|
|
0dfc67d37e | |
|
|
7b3eb2db6c | |
|
|
950da11ce0 | |
|
|
75d91d6b39 | |
|
|
ea92eae122 | |
|
|
4014e2479c | |
|
|
ad2b57cb47 | |
|
|
c405264c03 | |
|
|
2a9e91d796 | |
|
|
2e28c71457 | |
|
|
7510721767 | |
|
|
52ff324337 | |
|
|
2655c81b5e | |
|
|
35df4c2bc0 | |
|
|
6f412814a8 | |
|
|
5651d15303 | |
|
|
63b246c90e | |
|
|
a7313c01d9 | |
|
|
00eb6073c0 | |
|
|
0fc5a625d7 | |
|
|
38cb8ec9fd | |
|
|
672da29bb3 | |
|
|
1a8a1ad9a1 | |
|
|
94adc996e4 | |
|
|
f31c3a6647 | |
|
|
e34dbd6a0a | |
|
|
16821252c5 | |
|
|
aa1807ed94 | |
|
|
ea21c76aa2 | |
|
|
08050c0788 | |
|
|
653732bd6f | |
|
|
bb79f79b27 | |
|
|
cf54f70e14 | |
|
|
94e1791668 | |
|
|
6b50590725 | |
|
|
f7a248f56e | |
|
|
8b7c55d148 | |
|
|
260d5d3620 | |
|
|
bf6da9a573 | |
|
|
f8c328eed1 | |
|
|
0353390609 | |
|
|
4b319e05af | |
|
|
34b80e282e | |
|
|
5794cda064 | |
|
|
16c9796ef9 | |
|
|
3b5c8a1fca | |
|
|
22a35e64ce | |
|
|
03111595ee | |
|
|
d22f96921f | |
|
|
40e5733055 | |
|
|
36190c8c4b | |
|
|
4a0c4f92b8 | |
|
|
3fcf547e92 | |
|
|
3e9177fd20 | |
|
|
a0eecc9eb2 | |
|
|
ca529c3f41 | |
|
|
314b83ceba | |
|
|
df399c5255 | |
|
|
51081efae4 | |
|
|
7ff1b0ac53 | |
|
|
3c16105936 | |
|
|
b797c44c42 | |
|
|
78868b6ed6 | |
|
|
0d0b574cc4 | |
|
|
20dfca8171 | |
|
|
4e936f2340 | |
|
|
61feaf681b | |
|
|
b0bb84dd7b | |
|
|
bee0c044d3 | |
|
|
2cfa1ad0a9 | |
|
|
36b531022f | |
|
|
fe9e66993f | |
|
|
b361772736 | |
|
|
c15115f7ed | |
|
|
9f69e71e78 | |
|
|
48ff3f0652 | |
|
|
dbca3d078e | |
|
|
a94b85bea3 | |
|
|
be4bf94446 | |
|
|
1ebbe915d4 | |
|
|
74702ee00e | |
|
|
7ddf2273e0 | |
|
|
46ee006162 | |
|
|
dad1530915 | |
|
|
8940ecb96f | |
|
|
c3b9dad07d | |
|
|
da4f275bd1 | |
|
|
1c673c0aac | |
|
|
6aaa0173b8 | |
|
|
dc7b9f24b7 | |
|
|
b834ae5f80 | |
|
|
eceb023d4c | |
|
|
76cfd0a9bb | |
|
|
78355aebb7 | |
|
|
e5758db7bd | |
|
|
80ffa38f56 | |
|
|
68c54e45d0 | |
|
|
2230692aa1 | |
|
|
3e7723ce26 | |
|
|
d3e0e679b2 | |
|
|
acdf21033a | |
|
|
5e37598750 | |
|
|
6cd7c86078 | |
|
|
bf901dee5d | |
|
|
f7103c2c2a | |
|
|
7c292dd0bf | |
|
|
6408edac55 | |
|
|
9231c39ffb | |
|
|
028185dd48 | |
|
|
baecfa1426 | |
|
|
f691d58fae | |
|
|
b3e53122f4 | |
|
|
5742ec1fc7 | |
|
|
2d13d10357 | |
|
|
628d8d2c4f | |
|
|
b4b23c94fd | |
|
|
fb99f8e8c5 | |
|
|
ec6157570e | |
|
|
24f0f7e399 | |
|
|
a0df067613 | |
|
|
45d08abc33 | |
|
|
7baf6835cf | |
|
|
0ed8936685 | |
|
|
7e99856f66 | |
|
|
2402e8a1ae | |
|
|
7bb46f2b7b | |
|
|
35eb57355a | |
|
|
5a728813c3 | |
|
|
5279828635 | |
|
|
de215a0517 | |
|
|
e620f35097 | |
|
|
068a70e549 | |
|
|
3c95c93bca | |
|
|
114cba69db | |
|
|
78e882205e | |
|
|
d3f20382fc | |
|
|
33ec377729 | |
|
|
2a47be823c | |
|
|
3faf4e8079 | |
|
|
1bf83cded2 | |
|
|
dbcdabf68f | |
|
|
0c1e6d900b | |
|
|
a3d6eb797c | |
|
|
dbc14f213e | |
|
|
e5c2b07b48 | |
|
|
fe77c4e130 | |
|
|
7484d37538 | |
|
|
85b081f5d4 | |
|
|
6667d503b5 | |
|
|
1dca581ff2 | |
|
|
f76837acb6 | |
|
|
9ce0866b07 | |
|
|
0232e66d5b | |
|
|
4535b80cae | |
|
|
94d062dbac | |
|
|
75ce4797d4 | |
|
|
47aaa92516 | |
|
|
fb50c6ba1d | |
|
|
def767f7d1 | |
|
|
5600e370fb | |
|
|
6a3c4aaa43 | |
|
|
5d5c92b262 | |
|
|
d274a2bc00 | |
|
|
188143a50a | |
|
|
cc52ef8ed3 | |
|
|
37f7af3452 | |
|
|
c715dec8e8 | |
|
|
ea379f2f18 | |
|
|
7422333819 | |
|
|
e8854b6bdc | |
|
|
e1127e75cb | |
|
|
96abfe98c1 | |
|
|
679500ffe0 | |
|
|
e5c0eb2e50 | |
|
|
e7785e2061 | |
|
|
63294806b4 | |
|
|
ad245b1336 | |
|
|
4250d4de32 | |
|
|
0fdcd0c582 | |
|
|
e017d5526e | |
|
|
04cac14fcb | |
|
|
612ccebf88 | |
|
|
3dcc12290d | |
|
|
4b8faa7244 | |
|
|
b56273ae57 | |
|
|
2343992fcb | |
|
|
96f0a6632c | |
|
|
29f77c7b70 | |
|
|
ac05f1b0d7 | |
|
|
82986d8c69 | |
|
|
2aecffe0f0 | |
|
|
664918bd36 | |
|
|
5ca96a9348 | |
|
|
ebd155c3a1 | |
|
|
7a366d93cf | |
|
|
30a2d5d510 | |
|
|
54eaea5ea4 | |
|
|
c0e7eaae8d | |
|
|
20014c2614 | |
|
|
d8fb098617 | |
|
|
ef652ac391 | |
|
|
9f5fc17e32 | |
|
|
71b147aab7 | |
|
|
f99a7be406 | |
|
|
ead4d15199 | |
|
|
2178acf8a4 | |
|
|
c97e9c12fe | |
|
|
89e9f12e03 | |
|
|
c7164b1927 | |
|
|
0a32d2072c | |
|
|
afd9b4d282 | |
|
|
50e6bff274 | |
|
|
caea7844d3 | |
|
|
9e73918a4f | |
|
|
04b23addf3 | |
|
|
dc03f6290f | |
|
|
f5c2ae58ec | |
|
|
e5491dfab9 | |
|
|
1d3c61575f | |
|
|
5d1c649ba9 | |
|
|
e0d6d05ce0 | |
|
|
e7a42cda7c | |
|
|
a61c9ab475 | |
|
|
5229bdf533 | |
|
|
afa938e429 | |
|
|
35f8649f08 | |
|
|
e885dae37f | |
|
|
21b02dd128 | |
|
|
8641f0c24c | |
|
|
ef616683ef | |
|
|
57b440d316 | |
|
|
08cdf4be9a | |
|
|
b69768c8bd | |
|
|
bb90e1f66d | |
|
|
b8d134e61e | |
|
|
162587d3fb | |
|
|
50cd8ed002 | |
|
|
16dbd865c8 | |
|
|
a0eeb5f936 | |
|
|
9b476fb93a | |
|
|
9284f1aea3 | |
|
|
4beba1cd62 | |
|
|
b14c130a58 | |
|
|
75f5f2e014 | |
|
|
eb217d016c | |
|
|
d28a4b2520 | |
|
|
fda0ec862a | |
|
|
9114267038 | |
|
|
093490b582 | |
|
|
fccebe2b4f | |
|
|
f361d9ae85 | |
|
|
a26dece347 | |
|
|
24387c234b | |
|
|
0fb3c9c3f6 | |
|
|
6bbec3bda0 | |
|
|
62733592a1 | |
|
|
a119a4209e | |
|
|
f3434ecfcb | |
|
|
9ae2ebc1e5 | |
|
|
9000d70eb9 | |
|
|
903c16fcfa | |
|
|
56f1d5ed68 | |
|
|
9d997d6f9d | |
|
|
d35368b33e | |
|
|
dc232d5846 | |
|
|
a7e9230af9 | |
|
|
b40e6efbb4 | |
|
|
ac3222d2cb | |
|
|
006040b29c | |
|
|
6167607a6e | |
|
|
4e9023857d | |
|
|
b14d08fbbc | |
|
|
9f1a6d6f9a | |
|
|
142e670a41 | |
|
|
78e984399a | |
|
|
54c3db0a83 | |
|
|
d9e1ae79ec | |
|
|
0ee56983d1 | |
|
|
ec82a49c35 | |
|
|
a731a6993c | |
|
|
32eb176b89 | |
|
|
b90339f4da | |
|
|
4c0bdaf13d | |
|
|
b54aa023e0 | |
|
|
49f67d3d3f | |
|
|
ff9e8b3d06 | |
|
|
b5e6c1113b | |
|
|
32500dfaad | |
|
|
ad146b1f42 | |
|
|
5a4ae4e4d0 | |
|
|
2de80494ed | |
|
|
1eaad004bf | |
|
|
605094329b | |
|
|
8fac2577f2 | |
|
|
81d350dab8 | |
|
|
46ab56968f | |
|
|
e89293a0ba | |
|
|
87011e40c1 | |
|
|
347b412a93 | |
|
|
31358c057c | |
|
|
3f71e0f3a1 | |
|
|
b05a516830 | |
|
|
6d336aeb97 | |
|
|
ab51e8ee61 | |
|
|
e4780244a1 | |
|
|
fe4d8b0c80 | |
|
|
9bef5b8d17 | |
|
|
de06b9f0c0 | |
|
|
7da488cb93 | |
|
|
a805594ed0 | |
|
|
50e1948938 | |
|
|
68d18aea14 | |
|
|
8ede961374 | |
|
|
9a6761aa35 | |
|
|
81efe6119f | |
|
|
905bfc74fe | |
|
|
3334c71d3d | |
|
|
278563ef8f | |
|
|
77c8f60547 | |
|
|
64503cc2b7 | |
|
|
0a7f5a80d8 | |
|
|
541406bee3 | |
|
|
e21efdf96f | |
|
|
0ece09a575 | |
|
|
2c519f641f | |
|
|
bdba39a575 | |
|
|
d3a77ebc04 | |
|
|
fd7faa4c33 | |
|
|
b2bc55d8a0 | |
|
|
e9be74f5b1 | |
|
|
252aa1d67b | |
|
|
634095364d | |
|
|
dc684bf76e | |
|
|
e3531ab412 | |
|
|
710a4573ef | |
|
|
aaff75c348 | |
|
|
a5f2aa5618 | |
|
|
d879686469 | |
|
|
612005bbdb | |
|
|
4ad88b2544 | |
|
|
575b11b0d2 | |
|
|
2c970debdb | |
|
|
cd88423e76 | |
|
|
7f865577a6 | |
|
|
12313a3b65 | |
|
|
ad2654010d | |
|
|
2524fcf2b6 | |
|
|
71eed2520e | |
|
|
0478473953 | |
|
|
a607e2b40d | |
|
|
72c210336d | |
|
|
b526ec2dbf | |
|
|
c7ef767c49 | |
|
|
55dcae3056 | |
|
|
4ffc60f323 | |
|
|
08ab0966a7 | |
|
|
3ac8a9bb4c | |
|
|
26c69be805 | |
|
|
4f6af853bc | |
|
|
c92663aa1b | |
|
|
b0366df1d7 | |
|
|
70d12dd069 | |
|
|
ed8e552395 | |
|
|
2f06920f20 | |
|
|
b101e1d1db | |
|
|
f8f3a220ac | |
|
|
fc1921b04b | |
|
|
6aa2a6deeb | |
|
|
e89d3e83b4 | |
|
|
86fc4ee859 | |
|
|
38be573a27 | |
|
|
d7e4bc53ea | |
|
|
eeca8f7c5b | |
|
|
462ca94099 | |
|
|
863f13d282 | |
|
|
fcbd0d1999 | |
|
|
0fe2dfa683 | |
|
|
97f0ee0f1f | |
|
|
73f629e321 | |
|
|
8709407a9e | |
|
|
65bf7e0a1c | |
|
|
bc899f9e07 | |
|
|
b5e3470442 | |
|
|
6c095a98fb | |
|
|
6286c1900c | |
|
|
45da936c87 | |
|
|
308a9af854 | |
|
|
fc43cecd32 | |
|
|
1024cd4cd9 | |
|
|
2337f7021c | |
|
|
d8fffd01aa | |
|
|
780d2c236d | |
|
|
986865ea2f | |
|
|
689ae24273 | |
|
|
6b4c859059 | |
|
|
2a851e06b8 | |
|
|
3d09b721b9 | |
|
|
31ef676567 | |
|
|
780cbf29d5 | |
|
|
bfd0c7c478 | |
|
|
77a294d98a | |
|
|
8dd03d4484 | |
|
|
17aa2e1a79 | |
|
|
2739db9810 | |
|
|
408b6adb2a | |
|
|
db4dd74a34 | |
|
|
e93e13c8b3 | |
|
|
f9cf4c05ed | |
|
|
af071ef770 | |
|
|
0b99783d63 | |
|
|
8a25ba024d | |
|
|
49324b711f | |
|
|
c273123ed0 | |
|
|
df7f487648 | |
|
|
3217b82b3e | |
|
|
096bc0e3f8 | |
|
|
2ad7fad670 | |
|
|
82f0c0d39e | |
|
|
45d33bfc45 | |
|
|
f56ed6fac6 | |
|
|
a4f2e20d84 | |
|
|
f01be8ad75 | |
|
|
6e636819e8 | |
|
|
a3a29bbd5d | |
|
|
0b4ccc9145 | |
|
|
8c9b8b2063 | |
|
|
b93a8d7631 | |
|
|
82ecc53819 | |
|
|
3007e74ef2 | |
|
|
72d2933bfa | |
|
|
e5faaebbcf | |
|
|
7eeadd279a | |
|
|
5f3d059529 | |
|
|
4cd1042ee7 | |
|
|
a94b42362c | |
|
|
bbf112e323 | |
|
|
649f644744 | |
|
|
1255b7d849 | |
|
|
eee579fff5 | |
|
|
328c52da8a | |
|
|
eb8ad59e9b | |
|
|
9eed1b9a3a | |
|
|
8bf9f72ee1 |
|
|
@ -1,9 +1,12 @@
|
||||||
|
# SPDX-License-Identifier: 0BSD
|
||||||
|
|
||||||
[codespell]
|
[codespell]
|
||||||
|
|
||||||
# Skip all translation files and a few other autogenerated files.
|
# Skip all translation files and a few other autogenerated files.
|
||||||
# The autotool files should have their typos fixed in the upstream, but
|
# The autotool files should have their typos fixed in the upstream, but
|
||||||
# until then we will blacklist them here.
|
# until then we will blacklist them here.
|
||||||
skip = *.po,*.pot,./po4a/man,./doc/api,./configure,./autom4te.cache,./m4/libtool.m4,./build-aux/depcomp,./build-aux/ltmain.sh,./build-aux/config.guess,./build-aux/config.rpath,./m4/po.m4,./build-aux/config.sub
|
# THANKS contains names, some do trigger codespell.
|
||||||
|
skip = *.po,*.pot,./po4a/man,./doc/api,./configure,./autom4te.cache,./m4/libtool.m4,./build-aux/depcomp,./build-aux/ltmain.sh,./build-aux/config.guess,./build-aux/config.rpath,./m4/po.m4,./build-aux/config.sub,THANKS
|
||||||
|
|
||||||
# Ignore false positive matching words. Ideally codespell would allow
|
# Ignore false positive matching words. Ideally codespell would allow
|
||||||
# ignoring words for specific files, but that does not appear to be
|
# ignoring words for specific files, but that does not appear to be
|
||||||
|
|
@ -22,3 +25,6 @@ builtin = clear,rare,informal,usage,names
|
||||||
# Always default to highest interactive level to avoid accidentally
|
# Always default to highest interactive level to avoid accidentally
|
||||||
# changing a false positive or picking the wrong replacement.
|
# changing a false positive or picking the wrong replacement.
|
||||||
interactive = 3
|
interactive = 3
|
||||||
|
|
||||||
|
# Ignore a URL with debbugs.
|
||||||
|
ignore-regex = \bhttps://debbugs\.gnu\.org\b
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
.gitattributes export-ignore
|
||||||
|
.gitignore export-ignore
|
||||||
|
|
||||||
|
/.codespellrc export-ignore
|
||||||
|
/.github export-ignore
|
||||||
|
|
||||||
|
/build-aux/ci_build.bash export-ignore
|
||||||
|
/doc/SHA256SUMS export-ignore
|
||||||
|
|
@ -1,29 +0,0 @@
|
||||||
# Security Policy
|
|
||||||
|
|
||||||
## Supported Versions
|
|
||||||
|
|
||||||
We provide security updates to the development branch and the stable
|
|
||||||
branches. Security patches for old releases are available on the
|
|
||||||
[project website](https://xz.tukaani.org/xz-utils/).
|
|
||||||
|
|
||||||
## Reporting a Vulnerability
|
|
||||||
|
|
||||||
If you discover a security vulnerability in this project, please
|
|
||||||
report it privately. **Do not disclose it as a public issue.** This gives
|
|
||||||
us time to work with you to fix the issue before public exposure, reducing
|
|
||||||
the chance that the exploit will be used before a patch is released.
|
|
||||||
|
|
||||||
You may submit a report by emailing us at
|
|
||||||
[xz@tukaani.org](mailto:xz@tukaani.org), or through
|
|
||||||
[Security Advisories](https://github.com/tukaani-project/xz/security/advisories/new).
|
|
||||||
While both options are available, we prefer email. In any case, please
|
|
||||||
provide a clear description of the vulnerability including:
|
|
||||||
|
|
||||||
- Affected versions of XZ Utils
|
|
||||||
- Estimated severity (low, moderate, high, critical)
|
|
||||||
- Steps to recreate the vulnerability
|
|
||||||
- All relevant files (core dumps, build logs, input files, etc.)
|
|
||||||
|
|
||||||
This project is maintained by a team of volunteers on a reasonable-effort
|
|
||||||
basis. As such, please give us 90 days to work on a fix before
|
|
||||||
public exposure.
|
|
||||||
|
|
@ -18,15 +18,18 @@ on:
|
||||||
# Allows running workflow manually
|
# Allows running workflow manually
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
|
permissions: {}
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
POSIX:
|
POSIX:
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
os: [ubuntu-latest, macos-latest]
|
os: [ubuntu-latest, ubuntu-24.04-arm, macos-latest]
|
||||||
build_system: [autotools, cmake]
|
build_system: [autotools, cmake]
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
|
timeout-minutes: 20
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 #v4.1.0
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
########################
|
########################
|
||||||
# Install Dependencies #
|
# Install Dependencies #
|
||||||
|
|
@ -34,10 +37,15 @@ jobs:
|
||||||
|
|
||||||
# Install Autotools on Linux
|
# Install Autotools on Linux
|
||||||
- name: Install Dependencies
|
- name: Install Dependencies
|
||||||
if: ${{ matrix.os == 'ubuntu-latest' && matrix.build_system == 'autotools' }}
|
if: ${{ startsWith(matrix.os, 'ubuntu') && matrix.build_system == 'autotools' }}
|
||||||
run: |
|
run: |
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
sudo apt-get install -y autoconf automake build-essential po4a autopoint gcc-multilib doxygen musl-tools
|
sudo apt-get install -y autoconf automake build-essential po4a autopoint doxygen musl-tools valgrind
|
||||||
|
|
||||||
|
- name: Install Dependencies
|
||||||
|
if: ${{ matrix.os == 'ubuntu-latest' && matrix.build_system == 'autotools' }}
|
||||||
|
run: |
|
||||||
|
sudo apt-get install -y gcc-multilib
|
||||||
|
|
||||||
# Install Autotools on Mac
|
# Install Autotools on Mac
|
||||||
- name: Install Dependencies
|
- name: Install Dependencies
|
||||||
|
|
@ -46,15 +54,15 @@ jobs:
|
||||||
|
|
||||||
# Install CMake on Linux
|
# Install CMake on Linux
|
||||||
- name: Install Dependencies
|
- name: Install Dependencies
|
||||||
if: ${{ matrix.os == 'ubuntu-latest' && matrix.build_system == 'cmake' }}
|
if: ${{ startsWith(matrix.os, 'ubuntu') && matrix.build_system == 'cmake' }}
|
||||||
run: |
|
run: |
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
sudo apt-get install -y build-essential cmake musl-tools
|
sudo apt-get install -y build-essential cmake gettext doxygen musl-tools
|
||||||
|
|
||||||
# Install CMake on Mac
|
# Install CMake on Mac
|
||||||
- name: Install Dependencies
|
- name: Install Dependencies
|
||||||
if: ${{ matrix.os == 'macos-latest' && matrix.build_system == 'cmake' }}
|
if: ${{ matrix.os == 'macos-latest' && matrix.build_system == 'cmake' }}
|
||||||
run: brew install cmake
|
run: brew install cmake gettext doxygen
|
||||||
|
|
||||||
##################
|
##################
|
||||||
# Build and Test #
|
# Build and Test #
|
||||||
|
|
@ -70,90 +78,93 @@ jobs:
|
||||||
# done first.
|
# done first.
|
||||||
- name: Build 32-bit
|
- name: Build 32-bit
|
||||||
if: ${{ matrix.os == 'ubuntu-latest' && matrix.build_system == 'autotools' }}
|
if: ${{ matrix.os == 'ubuntu-latest' && matrix.build_system == 'autotools' }}
|
||||||
run: ./build-aux/ci_build.sh -b autotools -p build -f "-m32"
|
run: ./build-aux/ci_build.bash -b autotools -p build -m "gcc -m32"
|
||||||
- name: Test 32-bit
|
- name: Test 32-bit
|
||||||
if: ${{ matrix.os == 'ubuntu-latest' && matrix.build_system == 'autotools' }}
|
if: ${{ matrix.os == 'ubuntu-latest' && matrix.build_system == 'autotools' }}
|
||||||
run: |
|
run: |
|
||||||
./build-aux/ci_build.sh -b autotools -p test -f "-m32" -n 32_bit
|
./build-aux/ci_build.bash -b autotools -p test -m "gcc -m32" -n 32_bit
|
||||||
cd ../xz_build && make distclean
|
cd ../xz_build && make distclean
|
||||||
|
|
||||||
# ifunc must be disabled for this test because __attribute__ ifunc is
|
# The sandbox must be disabled because it will prevent access to
|
||||||
# incompatible with -fsanitize=address.
|
|
||||||
#
|
|
||||||
# The sandbox must also be disabled because it will prevent access to
|
|
||||||
# the /proc/ filesystem on Linux, which is used by the sanitizer's
|
# the /proc/ filesystem on Linux, which is used by the sanitizer's
|
||||||
# instrumentation.
|
# instrumentation.
|
||||||
- name: Build with -fsanitize=address,undefined
|
- name: Build with -fsanitize=address,undefined
|
||||||
if: ${{ matrix.os == 'ubuntu-latest' && matrix.build_system == 'autotools' }}
|
if: ${{ startsWith(matrix.os, 'ubuntu') && matrix.build_system == 'autotools' }}
|
||||||
run: ./build-aux/ci_build.sh -b autotools -p build -f "-fsanitize=address,undefined" -d ifunc,sandbox
|
run: ./build-aux/ci_build.bash -b autotools -p build -f "-fsanitize=address,undefined" -d sandbox
|
||||||
- name: Test with -fsanitize=address,undefined
|
- name: Test with -fsanitize=address,undefined
|
||||||
if: ${{ matrix.os == 'ubuntu-latest' && matrix.build_system == 'autotools' }}
|
if: ${{ startsWith(matrix.os, 'ubuntu') && matrix.build_system == 'autotools' }}
|
||||||
run: |
|
run: |
|
||||||
./build-aux/ci_build.sh -b autotools -p test -f "-fsanitize=address,undefined" -d ifunc,sandbox
|
export UBSAN_OPTIONS=print_stacktrace=1:halt_on_error=1
|
||||||
|
./build-aux/ci_build.bash -b autotools -p test -f "-fsanitize=address,undefined" -d sandbox
|
||||||
cd ../xz_build && make distclean
|
cd ../xz_build && make distclean
|
||||||
|
|
||||||
# musl libc has some slight differences compared to glibc, including
|
- name: Build with Valgrind
|
||||||
# the lack of ifunc support. This tests if the ifunc detection
|
if: ${{ startsWith(matrix.os, 'ubuntu') && matrix.build_system == 'autotools' }}
|
||||||
# functions properly since musl-gcc can compile with ifunc support,
|
run: ./build-aux/ci_build.bash -b autotools -p build -d shared,sandbox
|
||||||
# but will fail at runtime.
|
- name: Test with Valgrind
|
||||||
- name: Build with musl libc
|
if: ${{ startsWith(matrix.os, 'ubuntu') && matrix.build_system == 'autotools' }}
|
||||||
if: ${{ matrix.os == 'ubuntu-latest'}}
|
|
||||||
run: ./build-aux/ci_build.sh -b ${{ matrix.build_system }} -p build -m "/usr/bin/musl-gcc"
|
|
||||||
- name: Test with musl libc
|
|
||||||
if: ${{ matrix.os == 'ubuntu-latest'}}
|
|
||||||
run: |
|
run: |
|
||||||
./build-aux/ci_build.sh -b ${{ matrix.build_system }} -p test -m "/usr/bin/musl-gcc"
|
./build-aux/ci_build.bash -b autotools -p test -d sandbox -w "valgrind --quiet --trace-children=yes --trace-children-skip=*/cmp,*/cp,*/diff,*/grep,*/rm,*/sed --exit-on-first-error=yes --error-exitcode=1"
|
||||||
|
cd ../xz_build && make distclean
|
||||||
|
|
||||||
|
- name: Build with musl libc
|
||||||
|
if: ${{ startsWith(matrix.os, 'ubuntu') }}
|
||||||
|
run: ./build-aux/ci_build.bash -b ${{ matrix.build_system }} -p build -m "/usr/bin/musl-gcc"
|
||||||
|
- name: Test with musl libc
|
||||||
|
if: ${{ startsWith(matrix.os, 'ubuntu') }}
|
||||||
|
run: |
|
||||||
|
./build-aux/ci_build.bash -b ${{ matrix.build_system }} -p test -m "/usr/bin/musl-gcc"
|
||||||
- name: Clean up musl libc run
|
- name: Clean up musl libc run
|
||||||
if: ${{ matrix.os == 'ubuntu-latest' && matrix.build_system == 'autotools' }}
|
if: ${{ startsWith(matrix.os, 'ubuntu') && matrix.build_system == 'autotools' }}
|
||||||
run: cd ../xz_build && make distclean
|
run: cd ../xz_build && make distclean
|
||||||
|
|
||||||
- name: Build with full features
|
- name: Build with full features
|
||||||
run: ./build-aux/ci_build.sh -b ${{ matrix.build_system }} -p build
|
run: ./build-aux/ci_build.bash -b ${{ matrix.build_system }} -p build
|
||||||
- name: Test with full features
|
- name: Test with full features
|
||||||
run: ./build-aux/ci_build.sh -b ${{ matrix.build_system }} -p test -n full_features
|
run: ./build-aux/ci_build.bash -b ${{ matrix.build_system }} -p test -n full_features
|
||||||
|
|
||||||
- name: Build without encoders
|
- name: Build without encoders
|
||||||
run: ./build-aux/ci_build.sh -b ${{ matrix.build_system }} -d encoders,shared -p build
|
run: ./build-aux/ci_build.bash -b ${{ matrix.build_system }} -d encoders,shared -p build
|
||||||
- name: Test without encoders
|
- name: Test without encoders
|
||||||
run: ./build-aux/ci_build.sh -b ${{ matrix.build_system }} -d encoders,shared -p test -n no_encoders
|
run: ./build-aux/ci_build.bash -b ${{ matrix.build_system }} -d encoders,shared -p test -n no_encoders
|
||||||
|
|
||||||
- name: Build without decoders
|
- name: Build without decoders
|
||||||
run: ./build-aux/ci_build.sh -b ${{ matrix.build_system }} -d decoders,shared -p build
|
run: ./build-aux/ci_build.bash -b ${{ matrix.build_system }} -d decoders,shared -p build
|
||||||
- name: Test without decoders
|
- name: Test without decoders
|
||||||
run: ./build-aux/ci_build.sh -b ${{ matrix.build_system }} -d decoders,shared -p test -n no_decoders
|
run: ./build-aux/ci_build.bash -b ${{ matrix.build_system }} -d decoders,shared -p test -n no_decoders
|
||||||
|
|
||||||
- name: Build without threads
|
- name: Build without threads
|
||||||
run: ./build-aux/ci_build.sh -b ${{ matrix.build_system }} -d threads,shared -p build
|
run: ./build-aux/ci_build.bash -b ${{ matrix.build_system }} -d threads,shared -p build
|
||||||
- name: Test without threads
|
- name: Test without threads
|
||||||
run: ./build-aux/ci_build.sh -b ${{ matrix.build_system }} -d threads,shared -p test -n no_threads
|
run: ./build-aux/ci_build.bash -b ${{ matrix.build_system }} -d threads,shared -p test -n no_threads
|
||||||
|
|
||||||
- name: Build without BCJ filters
|
- name: Build without BCJ filters
|
||||||
run: ./build-aux/ci_build.sh -b ${{ matrix.build_system }} -d bcj,shared,nls -p build
|
run: ./build-aux/ci_build.bash -b ${{ matrix.build_system }} -d bcj,shared,nls -p build
|
||||||
- name: Test without BCJ filters
|
- name: Test without BCJ filters
|
||||||
run: ./build-aux/ci_build.sh -b ${{ matrix.build_system }} -d bcj,shared,nls -p test -n no_bcj
|
run: ./build-aux/ci_build.bash -b ${{ matrix.build_system }} -d bcj,shared,nls -p test -n no_bcj
|
||||||
|
|
||||||
- name: Build without Delta filters
|
- name: Build without Delta filters
|
||||||
run: ./build-aux/ci_build.sh -b ${{ matrix.build_system }} -d delta,shared,nls -p build
|
run: ./build-aux/ci_build.bash -b ${{ matrix.build_system }} -d delta,shared,nls -p build
|
||||||
- name: Test without Delta filters
|
- name: Test without Delta filters
|
||||||
run: ./build-aux/ci_build.sh -b ${{ matrix.build_system }} -d delta,shared,nls -p test -n no_delta
|
run: ./build-aux/ci_build.bash -b ${{ matrix.build_system }} -d delta,shared,nls -p test -n no_delta
|
||||||
|
|
||||||
- name: Build without sha256 check
|
- name: Build without sha256 check
|
||||||
run: ./build-aux/ci_build.sh -b ${{ matrix.build_system }} -c crc32,crc64 -d shared,nls -p build
|
run: ./build-aux/ci_build.bash -b ${{ matrix.build_system }} -c crc32,crc64 -d shared,nls -p build
|
||||||
- name: Test without sha256 check
|
- name: Test without sha256 check
|
||||||
run: ./build-aux/ci_build.sh -b ${{ matrix.build_system }} -c crc32,crc64 -d shared,nls -p test -n no_sha256
|
run: ./build-aux/ci_build.bash -b ${{ matrix.build_system }} -c crc32,crc64 -d shared,nls -p test -n no_sha256
|
||||||
|
|
||||||
- name: Build without crc64 check
|
- name: Build without crc64 check
|
||||||
run: ./build-aux/ci_build.sh -b ${{ matrix.build_system }} -c crc32,sha256 -d shared,nls -p build
|
run: ./build-aux/ci_build.bash -b ${{ matrix.build_system }} -c crc32,sha256 -d shared,nls -p build
|
||||||
- name: Test without crc64 check
|
- name: Test without crc64 check
|
||||||
run: ./build-aux/ci_build.sh -b ${{ matrix.build_system }} -c crc32,sha256 -d shared,nls -p test -n no_crc64
|
run: ./build-aux/ci_build.bash -b ${{ matrix.build_system }} -c crc32,sha256 -d shared,nls -p test -n no_crc64
|
||||||
|
|
||||||
- name: Build small
|
- name: Build small
|
||||||
run: ./build-aux/ci_build.sh -b ${{ matrix.build_system }} -d small -p build
|
run: ./build-aux/ci_build.bash -b ${{ matrix.build_system }} -d small -p build
|
||||||
- name: Test small
|
- name: Test small
|
||||||
run: ./build-aux/ci_build.sh -b ${{ matrix.build_system }} -d small -p test -n small
|
run: ./build-aux/ci_build.bash -b ${{ matrix.build_system }} -d small -p test -n small
|
||||||
|
|
||||||
# Attempt to upload the test logs as artifacts if any step has failed
|
# Attempt to upload the test logs as artifacts if any step has failed
|
||||||
- uses: actions/upload-artifact@c7d193f32edcb7bfad88892161225aeda64e9392 #v4.0.0
|
- uses: actions/upload-artifact@v4
|
||||||
if: ${{ failure() }}
|
if: ${{ failure() }}
|
||||||
with:
|
with:
|
||||||
name: ${{ matrix.os }} ${{ matrix.build_system }} Test Logs
|
name: ${{ matrix.os }} ${{ matrix.build_system }} Test Logs
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,55 @@
|
||||||
|
# SPDX-License-Identifier: 0BSD
|
||||||
|
|
||||||
|
# Authors: Sam James
|
||||||
|
# Lasse Collin
|
||||||
|
#
|
||||||
|
# This was written based on the OSS-Fuzz docs:
|
||||||
|
# https://google.github.io/oss-fuzz/getting-started/continuous-integration/
|
||||||
|
|
||||||
|
name: CIFuzz
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [ master ]
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
permissions: {}
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
CIFuzz:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
timeout-minutes: 30
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
sanitizer: [ address, undefined, memory ]
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Build Fuzzers (${{ matrix.sanitizer }})
|
||||||
|
id: build
|
||||||
|
uses: google/oss-fuzz/infra/cifuzz/actions/build_fuzzers@master
|
||||||
|
with:
|
||||||
|
oss-fuzz-project-name: 'xz'
|
||||||
|
# The language must match the one in project.yaml in OSS-Fuzz:
|
||||||
|
# https://github.com/google/oss-fuzz/blob/master/projects/xz/project.yaml
|
||||||
|
# Thus, use C++ even though there are no C++ files in XZ Utils.
|
||||||
|
language: c++
|
||||||
|
sanitizer: ${{ matrix.sanitizer }}
|
||||||
|
|
||||||
|
- name: Run Fuzzers (${{ matrix.sanitizer }})
|
||||||
|
uses: google/oss-fuzz/infra/cifuzz/actions/run_fuzzers@master
|
||||||
|
with:
|
||||||
|
oss-fuzz-project-name: 'xz'
|
||||||
|
language: c++
|
||||||
|
sanitizer: ${{ matrix.sanitizer }}
|
||||||
|
fuzz-seconds: 600
|
||||||
|
report-timeouts: true
|
||||||
|
report-ooms: true
|
||||||
|
|
||||||
|
- name: Upload Crash
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
if: failure() && steps.build.outcome == 'success'
|
||||||
|
with:
|
||||||
|
name: ${{ matrix.sanitizer }}-artifacts
|
||||||
|
path: ./out/artifacts
|
||||||
|
|
@ -0,0 +1,38 @@
|
||||||
|
# SPDX-License-Identifier: 0BSD
|
||||||
|
|
||||||
|
name: Coverity Scan
|
||||||
|
|
||||||
|
# We only want to test a special branch, per
|
||||||
|
# https://docs.travis-ci.com/user/coverity-scan/#build-submission-frequency
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [coverity_scan]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
coverity:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: |
|
||||||
|
sudo apt-get update -q
|
||||||
|
sudo apt-get install -qy autoconf automake build-essential autopoint gcc-multilib
|
||||||
|
|
||||||
|
- name: Run autogen.sh
|
||||||
|
run: ./autogen.sh --no-po4a
|
||||||
|
|
||||||
|
- name: Run configure
|
||||||
|
run: ./configure --enable-debug --disable-silent-rules
|
||||||
|
|
||||||
|
# Coverity doesn't understand what the inline asm does,
|
||||||
|
# which results in false positives.
|
||||||
|
- name: Disable complex inline assembly code
|
||||||
|
run: echo '#define LZMA_RANGE_DECODER_CONFIG 0' >> config.h
|
||||||
|
|
||||||
|
- name: Coverity Scan
|
||||||
|
uses: vapier/coverity-scan-action@2068473c7bdf8c2fb984a6a40ae76ee7facd7a85 # v1.8.0
|
||||||
|
with:
|
||||||
|
command: make -Oline -j$(nproc)
|
||||||
|
email: ${{ secrets.COVERITY_SCAN_EMAIL }}
|
||||||
|
token: ${{ secrets.COVERITY_SCAN_TOKEN }}
|
||||||
|
|
@ -0,0 +1,40 @@
|
||||||
|
# SPDX-License-Identifier: 0BSD
|
||||||
|
|
||||||
|
name: DragonFly BSD
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [ master ]
|
||||||
|
pull_request:
|
||||||
|
branches: [ master ]
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
permissions: {}
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
DragonflyBSD:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
timeout-minutes: 10
|
||||||
|
name: DragonFly BSD
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Test in DragonFly BSD
|
||||||
|
id: test
|
||||||
|
uses: vmactions/dragonflybsd-vm@4ffb90652b45abc8156f89ede453c85f7ea257bb #v1.1.4
|
||||||
|
with:
|
||||||
|
usesh: true
|
||||||
|
prepare: >
|
||||||
|
pkg install -y
|
||||||
|
autoconf
|
||||||
|
automake
|
||||||
|
gettext-tools
|
||||||
|
libtool
|
||||||
|
m4
|
||||||
|
run: |
|
||||||
|
set -e
|
||||||
|
uname -a
|
||||||
|
./autogen.sh --no-po4a
|
||||||
|
# Innocent putc() triggers strict-overflow warnings.
|
||||||
|
./configure --disable-static --enable-debug --enable-werror CFLAGS='-g -O2 -pipe -Wno-error=strict-overflow'
|
||||||
|
make -j4 check
|
||||||
|
|
@ -0,0 +1,58 @@
|
||||||
|
# SPDX-License-Identifier: 0BSD
|
||||||
|
|
||||||
|
name: FreeBSD
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [ master ]
|
||||||
|
pull_request:
|
||||||
|
branches: [ master ]
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
permissions: {}
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
FreeBSD:
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- host: ubuntu-latest
|
||||||
|
version: 12.4
|
||||||
|
arch: x86_64
|
||||||
|
- host: ubuntu-latest
|
||||||
|
version: 15.0
|
||||||
|
arch: x86_64
|
||||||
|
# NOTE: Comment in the repo says that aarch64 VM is faster
|
||||||
|
# on x86_64 host compared to ubuntu-24.04-arm.
|
||||||
|
# - host: ubuntu-24.04-arm
|
||||||
|
# version: 15.0
|
||||||
|
# arch: aarch64
|
||||||
|
|
||||||
|
runs-on: ${{ matrix.host }}
|
||||||
|
timeout-minutes: 10
|
||||||
|
|
||||||
|
name: FreeBSD
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Test in FreeBSD
|
||||||
|
uses: vmactions/freebsd-vm@670398e4236735b8b65805c3da44b7a511fb8b27 #v1.3.0
|
||||||
|
with:
|
||||||
|
release: ${{ matrix.release }}
|
||||||
|
arch: ${{ matrix.arch }}
|
||||||
|
usesh: true
|
||||||
|
prepare: >
|
||||||
|
pkg install -y
|
||||||
|
autoconf
|
||||||
|
automake
|
||||||
|
gettext-tools
|
||||||
|
libtool
|
||||||
|
m4
|
||||||
|
po4a
|
||||||
|
run: |
|
||||||
|
set -e
|
||||||
|
uname -a
|
||||||
|
./autogen.sh
|
||||||
|
./configure --disable-static --enable-debug --enable-werror
|
||||||
|
make -j4 check
|
||||||
|
|
@ -0,0 +1,138 @@
|
||||||
|
# SPDX-License-Identifier: 0BSD
|
||||||
|
|
||||||
|
# Author: Lasse Collin
|
||||||
|
|
||||||
|
name: Windows-MSVC
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [ master ]
|
||||||
|
pull_request:
|
||||||
|
branches: [ master ]
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
permissions: {}
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
MSVC:
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
os: [ windows-latest ]
|
||||||
|
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
timeout-minutes: 10
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Configure Win32
|
||||||
|
run: >
|
||||||
|
cmake
|
||||||
|
-A Win32
|
||||||
|
-B build-msvc-win32
|
||||||
|
|
||||||
|
- name: Build Win32 Debug
|
||||||
|
run: >
|
||||||
|
cmake
|
||||||
|
--build build-msvc-win32
|
||||||
|
--config Debug
|
||||||
|
|
||||||
|
- name: Test Win32 Debug
|
||||||
|
run: >
|
||||||
|
ctest
|
||||||
|
--test-dir build-msvc-win32
|
||||||
|
--build-config Debug
|
||||||
|
--output-on-failure
|
||||||
|
|
||||||
|
- name: Build Win32 Release
|
||||||
|
run: >
|
||||||
|
cmake
|
||||||
|
--build build-msvc-win32
|
||||||
|
--config Release
|
||||||
|
|
||||||
|
# This fails with VS 2019 without b5a5d9e3f702.
|
||||||
|
- name: Test Win32 Release
|
||||||
|
run: >
|
||||||
|
ctest
|
||||||
|
--test-dir build-msvc-win32
|
||||||
|
--build-config Release
|
||||||
|
--output-on-failure
|
||||||
|
|
||||||
|
- name: Configure x64
|
||||||
|
run: >
|
||||||
|
cmake
|
||||||
|
-A x64
|
||||||
|
-B build-msvc-x64
|
||||||
|
|
||||||
|
- name: Build x64 Debug
|
||||||
|
run: >
|
||||||
|
cmake
|
||||||
|
--build build-msvc-x64
|
||||||
|
--config Debug
|
||||||
|
|
||||||
|
- name: Test x64 Debug
|
||||||
|
run: >
|
||||||
|
ctest
|
||||||
|
--test-dir build-msvc-x64
|
||||||
|
--build-config Debug
|
||||||
|
--output-on-failure
|
||||||
|
|
||||||
|
- name: Build x64 Release
|
||||||
|
run: >
|
||||||
|
cmake
|
||||||
|
--build build-msvc-x64
|
||||||
|
--config Release
|
||||||
|
|
||||||
|
- name: Test x64 Release
|
||||||
|
run: >
|
||||||
|
ctest
|
||||||
|
--test-dir build-msvc-x64
|
||||||
|
--build-config Release
|
||||||
|
--output-on-failure
|
||||||
|
|
||||||
|
- name: Configure ClangCL x64
|
||||||
|
run: >
|
||||||
|
cmake
|
||||||
|
-T ClangCL
|
||||||
|
-A x64
|
||||||
|
-B build-clangcl-x64
|
||||||
|
-DCMAKE_C_FLAGS="
|
||||||
|
-Wno-cast-align
|
||||||
|
-Wno-cast-qual
|
||||||
|
-Wno-covered-switch-default
|
||||||
|
-Wno-declaration-after-statement
|
||||||
|
-Wno-deprecated-declarations
|
||||||
|
-Wno-disabled-macro-expansion
|
||||||
|
-Wno-nonportable-system-include-path
|
||||||
|
-Wno-overlength-strings
|
||||||
|
-Wno-pre-c11-compat
|
||||||
|
-Wno-reserved-identifier
|
||||||
|
-Wno-unsafe-buffer-usage
|
||||||
|
-Wno-used-but-marked-unused"
|
||||||
|
|
||||||
|
- name: Build ClangCL x64 Debug
|
||||||
|
run: >
|
||||||
|
cmake
|
||||||
|
--build build-clangcl-x64
|
||||||
|
--config Debug
|
||||||
|
|
||||||
|
- name: Test ClangCL x64 Debug
|
||||||
|
run: >
|
||||||
|
ctest
|
||||||
|
--test-dir build-clangcl-x64
|
||||||
|
--build-config Debug
|
||||||
|
--output-on-failure
|
||||||
|
|
||||||
|
- name: Build ClangCL x64 Release
|
||||||
|
run: >
|
||||||
|
cmake
|
||||||
|
--build build-clangcl-x64
|
||||||
|
--config Release
|
||||||
|
|
||||||
|
- name: Test ClangCL x64 Release
|
||||||
|
run: >
|
||||||
|
ctest
|
||||||
|
--test-dir build-clangcl-x64
|
||||||
|
--build-config Release
|
||||||
|
--output-on-failure
|
||||||
|
|
@ -0,0 +1,148 @@
|
||||||
|
# SPDX-License-Identifier: 0BSD
|
||||||
|
|
||||||
|
#############################################################################
|
||||||
|
#
|
||||||
|
# Authors: Jia Tan
|
||||||
|
# Lasse Collin
|
||||||
|
#
|
||||||
|
#############################################################################
|
||||||
|
|
||||||
|
name: Windows-MSYS2
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [ master ]
|
||||||
|
pull_request:
|
||||||
|
branches: [ master ]
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
permissions: {}
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
MSYS2:
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
runner: [ windows-latest ]
|
||||||
|
sys: [ mingw32, ucrt64, clang64, msys ]
|
||||||
|
include:
|
||||||
|
- runner: windows-11-arm
|
||||||
|
sys: clangarm64
|
||||||
|
|
||||||
|
# Set the shell to be msys2 as a default to avoid setting it for
|
||||||
|
# every individual run command.
|
||||||
|
defaults:
|
||||||
|
run:
|
||||||
|
shell: msys2 {0}
|
||||||
|
|
||||||
|
runs-on: ${{ matrix.runner }}
|
||||||
|
timeout-minutes: 20
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Setup MSYS2
|
||||||
|
if: ${{ matrix.sys == 'msys' }}
|
||||||
|
uses: msys2/setup-msys2@fb197b72ce45fb24f17bf3f807a388985654d1f2 # v2.29.0
|
||||||
|
with:
|
||||||
|
msystem: ${{ matrix.sys }}
|
||||||
|
update: true
|
||||||
|
install: >
|
||||||
|
make
|
||||||
|
ninja
|
||||||
|
autotools
|
||||||
|
cmake
|
||||||
|
base-devel
|
||||||
|
gettext-devel
|
||||||
|
gcc
|
||||||
|
|
||||||
|
- name: Setup MSYS2
|
||||||
|
if: ${{ matrix.sys != 'msys' }}
|
||||||
|
uses: msys2/setup-msys2@fb197b72ce45fb24f17bf3f807a388985654d1f2 # v2.29.0
|
||||||
|
with:
|
||||||
|
msystem: ${{ matrix.sys }}
|
||||||
|
update: true
|
||||||
|
pacboy: >
|
||||||
|
make:p
|
||||||
|
ninja:p
|
||||||
|
autotools:p
|
||||||
|
cmake:p
|
||||||
|
toolchain:p
|
||||||
|
gettext:p
|
||||||
|
|
||||||
|
- name: Git configuration
|
||||||
|
# Need to explicitly set the shell here since we set the default
|
||||||
|
# shell as msys2 earlier. This avoids an extra msys2 dependency on
|
||||||
|
# git.
|
||||||
|
shell: powershell
|
||||||
|
# Avoid Windows line endings. Otherwise test_scripts.sh will fail
|
||||||
|
# because the expected output is stored in the test framework as a
|
||||||
|
# text file and will not match the output from xzgrep.
|
||||||
|
run: git config --global core.autocrlf false
|
||||||
|
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: CMake (full, shared)
|
||||||
|
run: |
|
||||||
|
set -e
|
||||||
|
cmake -G Ninja -B b-cmake-full \
|
||||||
|
-DBUILD_SHARED_LIBS=ON \
|
||||||
|
-DCMAKE_C_FLAGS='-UNDEBUG -g -O2 -pipe' \
|
||||||
|
-DCMAKE_COMPILE_WARNING_AS_ERROR=ON \
|
||||||
|
${{ startsWith(matrix.sys, 'mingw') && '-DXZ_NLS=OFF' || '' }}
|
||||||
|
ninja -C b-cmake-full
|
||||||
|
ctest --test-dir b-cmake-full --output-on-failure
|
||||||
|
|
||||||
|
- name: CMake (small, static)
|
||||||
|
if: ${{ matrix.runner == 'windows-latest' }}
|
||||||
|
run: |
|
||||||
|
set -e
|
||||||
|
cmake -G Ninja -B b-cmake-small \
|
||||||
|
-DBUILD_SHARED_LIBS=OFF \
|
||||||
|
-DCMAKE_C_FLAGS='-UNDEBUG -g -Os -pipe' \
|
||||||
|
-DCMAKE_COMPILE_WARNING_AS_ERROR=ON \
|
||||||
|
-DXZ_SMALL=ON \
|
||||||
|
-DXZ_THREADS=no \
|
||||||
|
-DXZ_NLS=OFF
|
||||||
|
ninja -C b-cmake-small
|
||||||
|
ctest --test-dir b-cmake-small --output-on-failure
|
||||||
|
|
||||||
|
- name: autogen.sh
|
||||||
|
run: ./autogen.sh --no-po4a
|
||||||
|
|
||||||
|
- name: Autotools (full, shared)
|
||||||
|
run: |
|
||||||
|
set -e
|
||||||
|
mkdir b-autotools-full
|
||||||
|
cd b-autotools-full
|
||||||
|
../configure \
|
||||||
|
--enable-debug \
|
||||||
|
--enable-werror \
|
||||||
|
--disable-static \
|
||||||
|
${{ startsWith(matrix.sys, 'mingw') && '--disable-nls' || '' }}
|
||||||
|
make -j"$(nproc)" check
|
||||||
|
|
||||||
|
- name: Autotools (small, static)
|
||||||
|
if: ${{ matrix.runner == 'windows-latest' }}
|
||||||
|
run: |
|
||||||
|
set -e
|
||||||
|
mkdir b-autotools-small
|
||||||
|
cd b-autotools-small
|
||||||
|
../configure \
|
||||||
|
--enable-debug \
|
||||||
|
--enable-werror \
|
||||||
|
--disable-shared \
|
||||||
|
--enable-small \
|
||||||
|
--disable-threads \
|
||||||
|
--disable-nls \
|
||||||
|
CFLAGS='-g -Os'
|
||||||
|
make -j"$(nproc)" check
|
||||||
|
|
||||||
|
# Upload the test logs as artifacts if any step has failed.
|
||||||
|
- uses: actions/upload-artifact@v4
|
||||||
|
if: failure()
|
||||||
|
with:
|
||||||
|
name: test-logs-${{ matrix.sys }}
|
||||||
|
path: |
|
||||||
|
b-cmake-*/Testing/Temporary/
|
||||||
|
b-cmake-*/test_*/
|
||||||
|
b-autotools-*/tests/*.log
|
||||||
|
b-autotools-*/tests/*output
|
||||||
|
|
@ -0,0 +1,40 @@
|
||||||
|
# SPDX-License-Identifier: 0BSD
|
||||||
|
|
||||||
|
name: NetBSD
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [ master ]
|
||||||
|
pull_request:
|
||||||
|
branches: [ master ]
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
permissions: {}
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
NetBSD:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
timeout-minutes: 10
|
||||||
|
name: NetBSD
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Test in NetBSD
|
||||||
|
id: test
|
||||||
|
uses: vmactions/netbsd-vm@b24ed5f7a605362ab1226e73df291c8b01990c85 #v1.2.3
|
||||||
|
with:
|
||||||
|
usesh: true
|
||||||
|
prepare: >
|
||||||
|
/usr/sbin/pkg_add -v
|
||||||
|
cmake
|
||||||
|
gettext-tools
|
||||||
|
ninja-build
|
||||||
|
po4a
|
||||||
|
run: |
|
||||||
|
set -e
|
||||||
|
uname -a
|
||||||
|
./po4a/update-po
|
||||||
|
# Innocent putc() triggers strict-overflow warnings.
|
||||||
|
cmake -G Ninja -B build -DBUILD_SHARED_LIBS=ON -DCMAKE_C_FLAGS='-UNDEBUG -g -O2 -pipe -Wno-error=strict-overflow' -DCMAKE_COMPILE_WARNING_AS_ERROR=ON
|
||||||
|
ninja -C build
|
||||||
|
ctest --test-dir build --output-on-failure
|
||||||
|
|
@ -0,0 +1,40 @@
|
||||||
|
# SPDX-License-Identifier: 0BSD
|
||||||
|
|
||||||
|
name: OpenBSD
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [ master ]
|
||||||
|
pull_request:
|
||||||
|
branches: [ master ]
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
permissions: {}
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
OpenBSD:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
timeout-minutes: 10
|
||||||
|
name: OpenBSD
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Test in OpenBSD
|
||||||
|
uses: vmactions/openbsd-vm@2e29de1eb150dfe1c9c97b84ff2b7896f14ca690 #v1.2.5
|
||||||
|
with:
|
||||||
|
usesh: true
|
||||||
|
prepare: >
|
||||||
|
/usr/sbin/pkg_add -I -v
|
||||||
|
autoconf-2.72p0
|
||||||
|
automake-1.17
|
||||||
|
gettext-tools
|
||||||
|
libtool
|
||||||
|
m4
|
||||||
|
run: |
|
||||||
|
set -e
|
||||||
|
export AUTOCONF_VERSION=2.72
|
||||||
|
export AUTOMAKE_VERSION=1.17
|
||||||
|
uname -a
|
||||||
|
./autogen.sh --no-po4a
|
||||||
|
./configure --disable-static --enable-debug --enable-werror --disable-nls --enable-external-sha256
|
||||||
|
make -j4 check
|
||||||
|
|
@ -0,0 +1,34 @@
|
||||||
|
# SPDX-License-Identifier: 0BSD
|
||||||
|
|
||||||
|
name: Solaris
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [ master ]
|
||||||
|
pull_request:
|
||||||
|
branches: [ master ]
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
permissions: {}
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
Solaris:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
timeout-minutes: 10
|
||||||
|
name: Solaris
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Test in Solaris
|
||||||
|
uses: vmactions/solaris-vm@47bea106d03acaf91084e52548ee460556011602 #v1.1.8
|
||||||
|
with:
|
||||||
|
release: 11.4-gcc
|
||||||
|
usesh: true
|
||||||
|
run: |
|
||||||
|
set -e
|
||||||
|
uname -a
|
||||||
|
# /usr/xpg4/bin isn't in PATH by default.
|
||||||
|
echo "Environment variable PATH: $PATH"
|
||||||
|
./autogen.sh --no-po4a
|
||||||
|
./configure --disable-static --enable-debug --enable-werror
|
||||||
|
make check
|
||||||
|
|
@ -1,124 +0,0 @@
|
||||||
# SPDX-License-Identifier: 0BSD
|
|
||||||
|
|
||||||
#############################################################################
|
|
||||||
#
|
|
||||||
# Author: Jia Tan
|
|
||||||
#
|
|
||||||
#############################################################################
|
|
||||||
|
|
||||||
name: Windows-CI
|
|
||||||
|
|
||||||
# Only run the Windows CI manually since it takes much longer than the others.
|
|
||||||
on: workflow_dispatch
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
POSIX:
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
# Test different environments since the code may change between
|
|
||||||
# them and we want to ensure that we support all potential users.
|
|
||||||
# clang64 builds are currently broken when building static libraries
|
|
||||||
# due to a bug in ldd search path:
|
|
||||||
# https://github.com/llvm/llvm-project/issues/67779
|
|
||||||
# TODO - re-enable clang64 when this is resolved.
|
|
||||||
msys2_env: [mingw64, mingw32, ucrt64, msys]
|
|
||||||
build_system: [autotools, cmake]
|
|
||||||
|
|
||||||
# Set the shell to be msys2 as a default to avoid setting it for
|
|
||||||
# every individual run command.
|
|
||||||
defaults:
|
|
||||||
run:
|
|
||||||
shell: msys2 {0}
|
|
||||||
|
|
||||||
runs-on: windows-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
#####################
|
|
||||||
# Setup Environment #
|
|
||||||
#####################
|
|
||||||
|
|
||||||
# Rely on the msys2 GitHub Action to set up the msys2 environment.
|
|
||||||
- name: Setup MSYS2
|
|
||||||
uses: msys2/setup-msys2@27b3aa77f672cb6b3054121cfd80c3d22ceebb1d #v2.20.1
|
|
||||||
with:
|
|
||||||
msystem: ${{ matrix.msys2_env }}
|
|
||||||
update: true
|
|
||||||
install: pactoys make
|
|
||||||
|
|
||||||
- name: Checkout code
|
|
||||||
# Need to explicitly set the shell here since we set the default
|
|
||||||
# shell as msys2 earlier. This avoids an extra msys2 dependency on
|
|
||||||
# git.
|
|
||||||
shell: powershell
|
|
||||||
# Avoid Windows line endings. Otherwise test_scripts.sh will fail
|
|
||||||
# because the expected output is stored in the test framework as a
|
|
||||||
# text file and will not match the output from xzgrep.
|
|
||||||
run: git config --global core.autocrlf false
|
|
||||||
|
|
||||||
- uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 #v4.1.0
|
|
||||||
|
|
||||||
|
|
||||||
########################
|
|
||||||
# Install Dependencies #
|
|
||||||
########################
|
|
||||||
|
|
||||||
# The pacman repository has a different naming scheme for default
|
|
||||||
# msys packages than the others. The pacboy tool allows installing
|
|
||||||
# the packages possible in matrix setup without a burdensome amount
|
|
||||||
# of ifs.
|
|
||||||
- name: Install Dependencies
|
|
||||||
if: ${{ matrix.msys2_env == 'msys' && matrix.build_system == 'autotools' }}
|
|
||||||
run: pacman --noconfirm -S --needed autotools base-devel doxygen gettext-devel gcc
|
|
||||||
|
|
||||||
- name: Install Dependencies
|
|
||||||
if: ${{ matrix.msys2_env != 'msys' && matrix.build_system == 'autotools' }}
|
|
||||||
run: pacboy --noconfirm -S --needed autotools:p toolchain:p doxygen:p
|
|
||||||
|
|
||||||
- name: Install Dependencies
|
|
||||||
if: ${{ matrix.msys2_env == 'msys' && matrix.build_system == 'cmake' }}
|
|
||||||
run: pacman --noconfirm -S --needed cmake base-devel gcc
|
|
||||||
|
|
||||||
- name: Install Dependencies
|
|
||||||
if: ${{ matrix.msys2_env != 'msys' && matrix.build_system == 'cmake' }}
|
|
||||||
run: pacboy --noconfirm -S --needed cmake:p toolchain:p
|
|
||||||
|
|
||||||
##################
|
|
||||||
# Build and Test #
|
|
||||||
##################
|
|
||||||
|
|
||||||
- name: Build with full features
|
|
||||||
run: ./build-aux/ci_build.sh -a "--no-po4a" -b ${{ matrix.build_system }} -p build
|
|
||||||
- name: Test with full features
|
|
||||||
run: ./build-aux/ci_build.sh -a "--no-po4a" -b ${{ matrix.build_system }} -p test -n full_features
|
|
||||||
|
|
||||||
- name: Build without threads
|
|
||||||
run: ./build-aux/ci_build.sh -a "--no-po4a" -b ${{ matrix.build_system }} -d threads,shared -p build
|
|
||||||
- name: Test without threads
|
|
||||||
run: ./build-aux/ci_build.sh -a "--no-po4a" -b ${{ matrix.build_system }} -d threads,shared -p test -n no_threads
|
|
||||||
|
|
||||||
- name: Build without encoders
|
|
||||||
run: ./build-aux/ci_build.sh -a "--no-po4a" -b ${{ matrix.build_system }} -d encoders,shared -p build
|
|
||||||
- name: Test without encoders
|
|
||||||
run: ./build-aux/ci_build.sh -a "--no-po4a" -b ${{ matrix.build_system }} -d encoders,shared -p test -n no_encoders
|
|
||||||
|
|
||||||
- name: Build without decoders
|
|
||||||
run: ./build-aux/ci_build.sh -a "--no-po4a" -b ${{ matrix.build_system }} -d decoders,shared -p build
|
|
||||||
- name: Test without decoders
|
|
||||||
run: ./build-aux/ci_build.sh -a "--no-po4a" -b ${{ matrix.build_system }} -d decoders,shared -p test -n no_decoders
|
|
||||||
|
|
||||||
- name: Build with only crc32 check
|
|
||||||
run: ./build-aux/ci_build.sh -a "--no-po4a" -b ${{ matrix.build_system }} -c crc32 -d shared,nls -p build
|
|
||||||
- name: Test with only crc32 check
|
|
||||||
run: ./build-aux/ci_build.sh -a "--no-po4a" -b ${{ matrix.build_system }} -c crc32 -d shared,nls -p test -n crc32_only
|
|
||||||
|
|
||||||
|
|
||||||
###############
|
|
||||||
# Upload Logs #
|
|
||||||
###############
|
|
||||||
|
|
||||||
# Upload the test logs as artifacts if any step has failed.
|
|
||||||
- uses: actions/upload-artifact@c7d193f32edcb7bfad88892161225aeda64e9392 #v4.0.0
|
|
||||||
if: ${{ failure() }}
|
|
||||||
with:
|
|
||||||
name: ${{ matrix.msys2_env }} ${{ matrix.build_system }} Test Logs
|
|
||||||
path: build-aux/artifacts
|
|
||||||
|
|
@ -15,7 +15,6 @@ Makefile.in
|
||||||
|
|
||||||
/ABOUT-NLS
|
/ABOUT-NLS
|
||||||
/autom4te.cache
|
/autom4te.cache
|
||||||
/Doxyfile
|
|
||||||
/aclocal.m4
|
/aclocal.m4
|
||||||
/config.h
|
/config.h
|
||||||
/config.h.in
|
/config.h.in
|
||||||
|
|
@ -41,6 +40,10 @@ coverage
|
||||||
/doc/internal
|
/doc/internal
|
||||||
/doc/api
|
/doc/api
|
||||||
|
|
||||||
|
/po4a/man
|
||||||
|
/po4a/xz-man.pot
|
||||||
|
/po4a/*.po.authors
|
||||||
|
|
||||||
/src/liblzma/liblzma.pc
|
/src/liblzma/liblzma.pc
|
||||||
/src/lzmainfo/lzmainfo
|
/src/lzmainfo/lzmainfo
|
||||||
/src/xz/xz
|
/src/xz/xz
|
||||||
|
|
@ -67,6 +70,7 @@ coverage
|
||||||
/tests/test_index
|
/tests/test_index
|
||||||
/tests/test_index_hash
|
/tests/test_index_hash
|
||||||
/tests/test_lzip_decoder
|
/tests/test_lzip_decoder
|
||||||
|
/tests/test_microlzma
|
||||||
/tests/test_memlimit
|
/tests/test_memlimit
|
||||||
/tests/test_stream_flags
|
/tests/test_stream_flags
|
||||||
/tests/test_vli
|
/tests/test_vli
|
||||||
|
|
@ -93,21 +97,17 @@ coverage
|
||||||
/DartConfiguration.tcl
|
/DartConfiguration.tcl
|
||||||
/liblzma-config-version.cmake
|
/liblzma-config-version.cmake
|
||||||
/liblzma-config.cmake
|
/liblzma-config.cmake
|
||||||
/lzcat
|
|
||||||
/lzcat.1
|
|
||||||
/lzma
|
|
||||||
/lzma.1
|
|
||||||
/Testing
|
/Testing
|
||||||
/tests_bin/
|
/tests_bin/
|
||||||
/unlzma
|
|
||||||
/unlzma.1
|
|
||||||
/unxz
|
|
||||||
/unxz.1
|
|
||||||
/xz
|
/xz
|
||||||
/xzcat
|
|
||||||
/xzcat.1
|
|
||||||
/xzdec
|
/xzdec
|
||||||
|
/lzmadec
|
||||||
|
/lzmainfo
|
||||||
|
/xzdiff
|
||||||
|
/xzgrep
|
||||||
|
/xzless
|
||||||
|
/xzmore
|
||||||
|
/liblzma.pc
|
||||||
|
/*.gmo
|
||||||
|
|
||||||
/windows/*/.vs
|
|
||||||
/windows/*/liblzma.vcxproj.user
|
|
||||||
/.vscode/
|
/.vscode/
|
||||||
|
|
|
||||||
11
AUTHORS
11
AUTHORS
|
|
@ -2,8 +2,8 @@
|
||||||
Authors of XZ Utils
|
Authors of XZ Utils
|
||||||
===================
|
===================
|
||||||
|
|
||||||
XZ Utils is developed and maintained by Lasse Collin
|
XZ Utils is developed and maintained by
|
||||||
<lasse.collin@tukaani.org> and Jia Tan <jiat0218@gmail.com>.
|
Lasse Collin <lasse.collin@tukaani.org>.
|
||||||
|
|
||||||
Major parts of liblzma are based on code written by Igor Pavlov,
|
Major parts of liblzma are based on code written by Igor Pavlov,
|
||||||
specifically the LZMA SDK <https://7-zip.org/sdk.html>. Without
|
specifically the LZMA SDK <https://7-zip.org/sdk.html>. Without
|
||||||
|
|
@ -24,12 +24,17 @@ Authors of XZ Utils
|
||||||
by Michał Górny.
|
by Michał Górny.
|
||||||
|
|
||||||
Architecture-specific CRC optimizations were contributed by
|
Architecture-specific CRC optimizations were contributed by
|
||||||
Ilya Kurdyukov, Hans Jansen, and Chenxi Mao.
|
Ilya Kurdyukov, Chenxi Mao, and Xi Ruoyao.
|
||||||
|
|
||||||
Other authors:
|
Other authors:
|
||||||
- Jonathan Nieder
|
- Jonathan Nieder
|
||||||
- Joachim Henke
|
- Joachim Henke
|
||||||
|
|
||||||
|
Special author: Jia Tan was a co-maintainer in 2022-2024. He and
|
||||||
|
the team behind him inserted a backdoor (CVE-2024-3094) into
|
||||||
|
XZ Utils 5.6.0 and 5.6.1 releases. He suddenly disappeared when
|
||||||
|
this was discovered.
|
||||||
|
|
||||||
Many people have contributed improvements or reported bugs.
|
Many people have contributed improvements or reported bugs.
|
||||||
Most of these people are mentioned in the file THANKS.
|
Most of these people are mentioned in the file THANKS.
|
||||||
|
|
||||||
|
|
|
||||||
1707
CMakeLists.txt
1707
CMakeLists.txt
File diff suppressed because it is too large
Load Diff
52
COPYING
52
COPYING
|
|
@ -3,8 +3,7 @@ XZ Utils Licensing
|
||||||
==================
|
==================
|
||||||
|
|
||||||
Different licenses apply to different files in this package. Here
|
Different licenses apply to different files in this package. Here
|
||||||
is a rough summary of which licenses apply to which parts of this
|
is a summary of which licenses apply to which parts of this package:
|
||||||
package (but check the individual files to be sure!):
|
|
||||||
|
|
||||||
- liblzma is under the BSD Zero Clause License (0BSD).
|
- liblzma is under the BSD Zero Clause License (0BSD).
|
||||||
|
|
||||||
|
|
@ -25,20 +24,6 @@ XZ Utils Licensing
|
||||||
lzma-file-format.xt are in the public domain but may
|
lzma-file-format.xt are in the public domain but may
|
||||||
be distributed under the terms of 0BSD too.
|
be distributed under the terms of 0BSD too.
|
||||||
|
|
||||||
- Doxygen-generated HTML version of the liblzma API documentation:
|
|
||||||
While Doxygen is under the GNU GPLv2, the license information
|
|
||||||
in Doxygen includes the following exception:
|
|
||||||
|
|
||||||
Documents produced by doxygen are derivative works
|
|
||||||
derived from the input used in their production;
|
|
||||||
they are not affected by this license.
|
|
||||||
|
|
||||||
Note: The JavaScript files (under the MIT license) have
|
|
||||||
been removed from the Doxygen output.
|
|
||||||
|
|
||||||
- The XZ logo (xz-logo.png) included in the Doxygen-generated
|
|
||||||
documentation is under the Creative Commons BY-SA 4.0 license.
|
|
||||||
|
|
||||||
- Translated messages and man pages are under 0BSD except that
|
- Translated messages and man pages are under 0BSD except that
|
||||||
some old translations are in the public domain.
|
some old translations are in the public domain.
|
||||||
|
|
||||||
|
|
@ -51,8 +36,15 @@ XZ Utils Licensing
|
||||||
These files don't affect the licensing of the binaries being
|
These files don't affect the licensing of the binaries being
|
||||||
built.
|
built.
|
||||||
|
|
||||||
- The extra directory contain files that are under various
|
- The 'extra' directory contains files that are under various
|
||||||
free software licenses.
|
free software licenses. These aren't built or installed as
|
||||||
|
part of XZ Utils.
|
||||||
|
|
||||||
|
The following command may be helpful in finding per-file license
|
||||||
|
information. It works on xz.git and on a clean file tree extracted
|
||||||
|
from a release tarball.
|
||||||
|
|
||||||
|
sh build-aux/license-check.sh -v
|
||||||
|
|
||||||
For the files under the BSD Zero Clause License (0BSD), if
|
For the files under the BSD Zero Clause License (0BSD), if
|
||||||
a copyright notice is needed, the following is sufficient:
|
a copyright notice is needed, the following is sufficient:
|
||||||
|
|
@ -65,35 +57,13 @@ XZ Utils Licensing
|
||||||
it is not legally required by the license terms. Here is an example
|
it is not legally required by the license terms. Here is an example
|
||||||
of a good notice to put into "about box" or into documentation:
|
of a good notice to put into "about box" or into documentation:
|
||||||
|
|
||||||
This software includes code from XZ Utils
|
This software includes code from XZ Utils <https://tukaani.org/xz/>.
|
||||||
<https://xz.tukaani.org/xz-utils/>.
|
|
||||||
|
|
||||||
The following license texts are included in the following files:
|
The following license texts are included in the following files:
|
||||||
- COPYING.0BSD: BSD Zero Clause License
|
- COPYING.0BSD: BSD Zero Clause License
|
||||||
- COPYING.LGPLv2.1: GNU Lesser General Public License version 2.1
|
- COPYING.LGPLv2.1: GNU Lesser General Public License version 2.1
|
||||||
- COPYING.GPLv2: GNU General Public License version 2
|
- COPYING.GPLv2: GNU General Public License version 2
|
||||||
- COPYING.GPLv3: GNU General Public License version 3
|
- COPYING.GPLv3: GNU General Public License version 3
|
||||||
- COPYING.CC-BY-SA-4.0: Creative Commons Attribution-ShareAlike 4.0
|
|
||||||
International Public License
|
|
||||||
|
|
||||||
A note about old XZ Utils releases:
|
|
||||||
|
|
||||||
XZ Utils releases 5.4.6 and older and 5.5.1alpha have a
|
|
||||||
significant amount of code put into the public domain and
|
|
||||||
that obviously remains so. The switch from public domain to
|
|
||||||
0BSD for newer releases was made in Febrary 2024 because
|
|
||||||
public domain has (real or perceived) legal ambiguities in
|
|
||||||
some jurisdictions.
|
|
||||||
|
|
||||||
There is very little *practical* difference between public
|
|
||||||
domain and 0BSD. The main difference likely is that one
|
|
||||||
shouldn't claim that 0BSD-licensed code is in the public
|
|
||||||
domain; 0BSD-licensed code is copyrighted but available under
|
|
||||||
an extremely permissive license. Neither 0BSD nor public domain
|
|
||||||
require retaining or reproducing author, copyright holder, or
|
|
||||||
license notices when distributing the software. (Compare to,
|
|
||||||
for example, BSD 2-Clause "Simplified" License which does have
|
|
||||||
such requirements.)
|
|
||||||
|
|
||||||
If you have questions, don't hesitate to ask for more information.
|
If you have questions, don't hesitate to ask for more information.
|
||||||
The contact information is in the README file.
|
The contact information is in the README file.
|
||||||
|
|
|
||||||
|
|
@ -1,427 +0,0 @@
|
||||||
Attribution-ShareAlike 4.0 International
|
|
||||||
|
|
||||||
=======================================================================
|
|
||||||
|
|
||||||
Creative Commons Corporation ("Creative Commons") is not a law firm and
|
|
||||||
does not provide legal services or legal advice. Distribution of
|
|
||||||
Creative Commons public licenses does not create a lawyer-client or
|
|
||||||
other relationship. Creative Commons makes its licenses and related
|
|
||||||
information available on an "as-is" basis. Creative Commons gives no
|
|
||||||
warranties regarding its licenses, any material licensed under their
|
|
||||||
terms and conditions, or any related information. Creative Commons
|
|
||||||
disclaims all liability for damages resulting from their use to the
|
|
||||||
fullest extent possible.
|
|
||||||
|
|
||||||
Using Creative Commons Public Licenses
|
|
||||||
|
|
||||||
Creative Commons public licenses provide a standard set of terms and
|
|
||||||
conditions that creators and other rights holders may use to share
|
|
||||||
original works of authorship and other material subject to copyright
|
|
||||||
and certain other rights specified in the public license below. The
|
|
||||||
following considerations are for informational purposes only, are not
|
|
||||||
exhaustive, and do not form part of our licenses.
|
|
||||||
|
|
||||||
Considerations for licensors: Our public licenses are
|
|
||||||
intended for use by those authorized to give the public
|
|
||||||
permission to use material in ways otherwise restricted by
|
|
||||||
copyright and certain other rights. Our licenses are
|
|
||||||
irrevocable. Licensors should read and understand the terms
|
|
||||||
and conditions of the license they choose before applying it.
|
|
||||||
Licensors should also secure all rights necessary before
|
|
||||||
applying our licenses so that the public can reuse the
|
|
||||||
material as expected. Licensors should clearly mark any
|
|
||||||
material not subject to the license. This includes other CC-
|
|
||||||
licensed material, or material used under an exception or
|
|
||||||
limitation to copyright. More considerations for licensors:
|
|
||||||
wiki.creativecommons.org/Considerations_for_licensors
|
|
||||||
|
|
||||||
Considerations for the public: By using one of our public
|
|
||||||
licenses, a licensor grants the public permission to use the
|
|
||||||
licensed material under specified terms and conditions. If
|
|
||||||
the licensor's permission is not necessary for any reason--for
|
|
||||||
example, because of any applicable exception or limitation to
|
|
||||||
copyright--then that use is not regulated by the license. Our
|
|
||||||
licenses grant only permissions under copyright and certain
|
|
||||||
other rights that a licensor has authority to grant. Use of
|
|
||||||
the licensed material may still be restricted for other
|
|
||||||
reasons, including because others have copyright or other
|
|
||||||
rights in the material. A licensor may make special requests,
|
|
||||||
such as asking that all changes be marked or described.
|
|
||||||
Although not required by our licenses, you are encouraged to
|
|
||||||
respect those requests where reasonable. More considerations
|
|
||||||
for the public:
|
|
||||||
wiki.creativecommons.org/Considerations_for_licensees
|
|
||||||
|
|
||||||
=======================================================================
|
|
||||||
|
|
||||||
Creative Commons Attribution-ShareAlike 4.0 International Public
|
|
||||||
License
|
|
||||||
|
|
||||||
By exercising the Licensed Rights (defined below), You accept and agree
|
|
||||||
to be bound by the terms and conditions of this Creative Commons
|
|
||||||
Attribution-ShareAlike 4.0 International Public License ("Public
|
|
||||||
License"). To the extent this Public License may be interpreted as a
|
|
||||||
contract, You are granted the Licensed Rights in consideration of Your
|
|
||||||
acceptance of these terms and conditions, and the Licensor grants You
|
|
||||||
such rights in consideration of benefits the Licensor receives from
|
|
||||||
making the Licensed Material available under these terms and
|
|
||||||
conditions.
|
|
||||||
|
|
||||||
|
|
||||||
Section 1 -- Definitions.
|
|
||||||
|
|
||||||
a. Adapted Material means material subject to Copyright and Similar
|
|
||||||
Rights that is derived from or based upon the Licensed Material
|
|
||||||
and in which the Licensed Material is translated, altered,
|
|
||||||
arranged, transformed, or otherwise modified in a manner requiring
|
|
||||||
permission under the Copyright and Similar Rights held by the
|
|
||||||
Licensor. For purposes of this Public License, where the Licensed
|
|
||||||
Material is a musical work, performance, or sound recording,
|
|
||||||
Adapted Material is always produced where the Licensed Material is
|
|
||||||
synched in timed relation with a moving image.
|
|
||||||
|
|
||||||
b. Adapter's License means the license You apply to Your Copyright
|
|
||||||
and Similar Rights in Your contributions to Adapted Material in
|
|
||||||
accordance with the terms and conditions of this Public License.
|
|
||||||
|
|
||||||
c. BY-SA Compatible License means a license listed at
|
|
||||||
creativecommons.org/compatiblelicenses, approved by Creative
|
|
||||||
Commons as essentially the equivalent of this Public License.
|
|
||||||
|
|
||||||
d. Copyright and Similar Rights means copyright and/or similar rights
|
|
||||||
closely related to copyright including, without limitation,
|
|
||||||
performance, broadcast, sound recording, and Sui Generis Database
|
|
||||||
Rights, without regard to how the rights are labeled or
|
|
||||||
categorized. For purposes of this Public License, the rights
|
|
||||||
specified in Section 2(b)(1)-(2) are not Copyright and Similar
|
|
||||||
Rights.
|
|
||||||
|
|
||||||
e. Effective Technological Measures means those measures that, in the
|
|
||||||
absence of proper authority, may not be circumvented under laws
|
|
||||||
fulfilling obligations under Article 11 of the WIPO Copyright
|
|
||||||
Treaty adopted on December 20, 1996, and/or similar international
|
|
||||||
agreements.
|
|
||||||
|
|
||||||
f. Exceptions and Limitations means fair use, fair dealing, and/or
|
|
||||||
any other exception or limitation to Copyright and Similar Rights
|
|
||||||
that applies to Your use of the Licensed Material.
|
|
||||||
|
|
||||||
g. License Elements means the license attributes listed in the name
|
|
||||||
of a Creative Commons Public License. The License Elements of this
|
|
||||||
Public License are Attribution and ShareAlike.
|
|
||||||
|
|
||||||
h. Licensed Material means the artistic or literary work, database,
|
|
||||||
or other material to which the Licensor applied this Public
|
|
||||||
License.
|
|
||||||
|
|
||||||
i. Licensed Rights means the rights granted to You subject to the
|
|
||||||
terms and conditions of this Public License, which are limited to
|
|
||||||
all Copyright and Similar Rights that apply to Your use of the
|
|
||||||
Licensed Material and that the Licensor has authority to license.
|
|
||||||
|
|
||||||
j. Licensor means the individual(s) or entity(ies) granting rights
|
|
||||||
under this Public License.
|
|
||||||
|
|
||||||
k. Share means to provide material to the public by any means or
|
|
||||||
process that requires permission under the Licensed Rights, such
|
|
||||||
as reproduction, public display, public performance, distribution,
|
|
||||||
dissemination, communication, or importation, and to make material
|
|
||||||
available to the public including in ways that members of the
|
|
||||||
public may access the material from a place and at a time
|
|
||||||
individually chosen by them.
|
|
||||||
|
|
||||||
l. Sui Generis Database Rights means rights other than copyright
|
|
||||||
resulting from Directive 96/9/EC of the European Parliament and of
|
|
||||||
the Council of 11 March 1996 on the legal protection of databases,
|
|
||||||
as amended and/or succeeded, as well as other essentially
|
|
||||||
equivalent rights anywhere in the world.
|
|
||||||
|
|
||||||
m. You means the individual or entity exercising the Licensed Rights
|
|
||||||
under this Public License. Your has a corresponding meaning.
|
|
||||||
|
|
||||||
|
|
||||||
Section 2 -- Scope.
|
|
||||||
|
|
||||||
a. License grant.
|
|
||||||
|
|
||||||
1. Subject to the terms and conditions of this Public License,
|
|
||||||
the Licensor hereby grants You a worldwide, royalty-free,
|
|
||||||
non-sublicensable, non-exclusive, irrevocable license to
|
|
||||||
exercise the Licensed Rights in the Licensed Material to:
|
|
||||||
|
|
||||||
a. reproduce and Share the Licensed Material, in whole or
|
|
||||||
in part; and
|
|
||||||
|
|
||||||
b. produce, reproduce, and Share Adapted Material.
|
|
||||||
|
|
||||||
2. Exceptions and Limitations. For the avoidance of doubt, where
|
|
||||||
Exceptions and Limitations apply to Your use, this Public
|
|
||||||
License does not apply, and You do not need to comply with
|
|
||||||
its terms and conditions.
|
|
||||||
|
|
||||||
3. Term. The term of this Public License is specified in Section
|
|
||||||
6(a).
|
|
||||||
|
|
||||||
4. Media and formats; technical modifications allowed. The
|
|
||||||
Licensor authorizes You to exercise the Licensed Rights in
|
|
||||||
all media and formats whether now known or hereafter created,
|
|
||||||
and to make technical modifications necessary to do so. The
|
|
||||||
Licensor waives and/or agrees not to assert any right or
|
|
||||||
authority to forbid You from making technical modifications
|
|
||||||
necessary to exercise the Licensed Rights, including
|
|
||||||
technical modifications necessary to circumvent Effective
|
|
||||||
Technological Measures. For purposes of this Public License,
|
|
||||||
simply making modifications authorized by this Section 2(a)
|
|
||||||
(4) never produces Adapted Material.
|
|
||||||
|
|
||||||
5. Downstream recipients.
|
|
||||||
|
|
||||||
a. Offer from the Licensor -- Licensed Material. Every
|
|
||||||
recipient of the Licensed Material automatically
|
|
||||||
receives an offer from the Licensor to exercise the
|
|
||||||
Licensed Rights under the terms and conditions of this
|
|
||||||
Public License.
|
|
||||||
|
|
||||||
b. Additional offer from the Licensor -- Adapted Material.
|
|
||||||
Every recipient of Adapted Material from You
|
|
||||||
automatically receives an offer from the Licensor to
|
|
||||||
exercise the Licensed Rights in the Adapted Material
|
|
||||||
under the conditions of the Adapter's License You apply.
|
|
||||||
|
|
||||||
c. No downstream restrictions. You may not offer or impose
|
|
||||||
any additional or different terms or conditions on, or
|
|
||||||
apply any Effective Technological Measures to, the
|
|
||||||
Licensed Material if doing so restricts exercise of the
|
|
||||||
Licensed Rights by any recipient of the Licensed
|
|
||||||
Material.
|
|
||||||
|
|
||||||
6. No endorsement. Nothing in this Public License constitutes or
|
|
||||||
may be construed as permission to assert or imply that You
|
|
||||||
are, or that Your use of the Licensed Material is, connected
|
|
||||||
with, or sponsored, endorsed, or granted official status by,
|
|
||||||
the Licensor or others designated to receive attribution as
|
|
||||||
provided in Section 3(a)(1)(A)(i).
|
|
||||||
|
|
||||||
b. Other rights.
|
|
||||||
|
|
||||||
1. Moral rights, such as the right of integrity, are not
|
|
||||||
licensed under this Public License, nor are publicity,
|
|
||||||
privacy, and/or other similar personality rights; however, to
|
|
||||||
the extent possible, the Licensor waives and/or agrees not to
|
|
||||||
assert any such rights held by the Licensor to the limited
|
|
||||||
extent necessary to allow You to exercise the Licensed
|
|
||||||
Rights, but not otherwise.
|
|
||||||
|
|
||||||
2. Patent and trademark rights are not licensed under this
|
|
||||||
Public License.
|
|
||||||
|
|
||||||
3. To the extent possible, the Licensor waives any right to
|
|
||||||
collect royalties from You for the exercise of the Licensed
|
|
||||||
Rights, whether directly or through a collecting society
|
|
||||||
under any voluntary or waivable statutory or compulsory
|
|
||||||
licensing scheme. In all other cases the Licensor expressly
|
|
||||||
reserves any right to collect such royalties.
|
|
||||||
|
|
||||||
|
|
||||||
Section 3 -- License Conditions.
|
|
||||||
|
|
||||||
Your exercise of the Licensed Rights is expressly made subject to the
|
|
||||||
following conditions.
|
|
||||||
|
|
||||||
a. Attribution.
|
|
||||||
|
|
||||||
1. If You Share the Licensed Material (including in modified
|
|
||||||
form), You must:
|
|
||||||
|
|
||||||
a. retain the following if it is supplied by the Licensor
|
|
||||||
with the Licensed Material:
|
|
||||||
|
|
||||||
i. identification of the creator(s) of the Licensed
|
|
||||||
Material and any others designated to receive
|
|
||||||
attribution, in any reasonable manner requested by
|
|
||||||
the Licensor (including by pseudonym if
|
|
||||||
designated);
|
|
||||||
|
|
||||||
ii. a copyright notice;
|
|
||||||
|
|
||||||
iii. a notice that refers to this Public License;
|
|
||||||
|
|
||||||
iv. a notice that refers to the disclaimer of
|
|
||||||
warranties;
|
|
||||||
|
|
||||||
v. a URI or hyperlink to the Licensed Material to the
|
|
||||||
extent reasonably practicable;
|
|
||||||
|
|
||||||
b. indicate if You modified the Licensed Material and
|
|
||||||
retain an indication of any previous modifications; and
|
|
||||||
|
|
||||||
c. indicate the Licensed Material is licensed under this
|
|
||||||
Public License, and include the text of, or the URI or
|
|
||||||
hyperlink to, this Public License.
|
|
||||||
|
|
||||||
2. You may satisfy the conditions in Section 3(a)(1) in any
|
|
||||||
reasonable manner based on the medium, means, and context in
|
|
||||||
which You Share the Licensed Material. For example, it may be
|
|
||||||
reasonable to satisfy the conditions by providing a URI or
|
|
||||||
hyperlink to a resource that includes the required
|
|
||||||
information.
|
|
||||||
|
|
||||||
3. If requested by the Licensor, You must remove any of the
|
|
||||||
information required by Section 3(a)(1)(A) to the extent
|
|
||||||
reasonably practicable.
|
|
||||||
|
|
||||||
b. ShareAlike.
|
|
||||||
|
|
||||||
In addition to the conditions in Section 3(a), if You Share
|
|
||||||
Adapted Material You produce, the following conditions also apply.
|
|
||||||
|
|
||||||
1. The Adapter's License You apply must be a Creative Commons
|
|
||||||
license with the same License Elements, this version or
|
|
||||||
later, or a BY-SA Compatible License.
|
|
||||||
|
|
||||||
2. You must include the text of, or the URI or hyperlink to, the
|
|
||||||
Adapter's License You apply. You may satisfy this condition
|
|
||||||
in any reasonable manner based on the medium, means, and
|
|
||||||
context in which You Share Adapted Material.
|
|
||||||
|
|
||||||
3. You may not offer or impose any additional or different terms
|
|
||||||
or conditions on, or apply any Effective Technological
|
|
||||||
Measures to, Adapted Material that restrict exercise of the
|
|
||||||
rights granted under the Adapter's License You apply.
|
|
||||||
|
|
||||||
|
|
||||||
Section 4 -- Sui Generis Database Rights.
|
|
||||||
|
|
||||||
Where the Licensed Rights include Sui Generis Database Rights that
|
|
||||||
apply to Your use of the Licensed Material:
|
|
||||||
|
|
||||||
a. for the avoidance of doubt, Section 2(a)(1) grants You the right
|
|
||||||
to extract, reuse, reproduce, and Share all or a substantial
|
|
||||||
portion of the contents of the database;
|
|
||||||
|
|
||||||
b. if You include all or a substantial portion of the database
|
|
||||||
contents in a database in which You have Sui Generis Database
|
|
||||||
Rights, then the database in which You have Sui Generis Database
|
|
||||||
Rights (but not its individual contents) is Adapted Material,
|
|
||||||
including for purposes of Section 3(b); and
|
|
||||||
|
|
||||||
c. You must comply with the conditions in Section 3(a) if You Share
|
|
||||||
all or a substantial portion of the contents of the database.
|
|
||||||
|
|
||||||
For the avoidance of doubt, this Section 4 supplements and does not
|
|
||||||
replace Your obligations under this Public License where the Licensed
|
|
||||||
Rights include other Copyright and Similar Rights.
|
|
||||||
|
|
||||||
|
|
||||||
Section 5 -- Disclaimer of Warranties and Limitation of Liability.
|
|
||||||
|
|
||||||
a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE
|
|
||||||
EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS
|
|
||||||
AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF
|
|
||||||
ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS,
|
|
||||||
IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION,
|
|
||||||
WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR
|
|
||||||
PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS,
|
|
||||||
ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT
|
|
||||||
KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT
|
|
||||||
ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU.
|
|
||||||
|
|
||||||
b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE
|
|
||||||
TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION,
|
|
||||||
NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT,
|
|
||||||
INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES,
|
|
||||||
COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR
|
|
||||||
USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN
|
|
||||||
ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR
|
|
||||||
DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR
|
|
||||||
IN PART, THIS LIMITATION MAY NOT APPLY TO YOU.
|
|
||||||
|
|
||||||
c. The disclaimer of warranties and limitation of liability provided
|
|
||||||
above shall be interpreted in a manner that, to the extent
|
|
||||||
possible, most closely approximates an absolute disclaimer and
|
|
||||||
waiver of all liability.
|
|
||||||
|
|
||||||
|
|
||||||
Section 6 -- Term and Termination.
|
|
||||||
|
|
||||||
a. This Public License applies for the term of the Copyright and
|
|
||||||
Similar Rights licensed here. However, if You fail to comply with
|
|
||||||
this Public License, then Your rights under this Public License
|
|
||||||
terminate automatically.
|
|
||||||
|
|
||||||
b. Where Your right to use the Licensed Material has terminated under
|
|
||||||
Section 6(a), it reinstates:
|
|
||||||
|
|
||||||
1. automatically as of the date the violation is cured, provided
|
|
||||||
it is cured within 30 days of Your discovery of the
|
|
||||||
violation; or
|
|
||||||
|
|
||||||
2. upon express reinstatement by the Licensor.
|
|
||||||
|
|
||||||
For the avoidance of doubt, this Section 6(b) does not affect any
|
|
||||||
right the Licensor may have to seek remedies for Your violations
|
|
||||||
of this Public License.
|
|
||||||
|
|
||||||
c. For the avoidance of doubt, the Licensor may also offer the
|
|
||||||
Licensed Material under separate terms or conditions or stop
|
|
||||||
distributing the Licensed Material at any time; however, doing so
|
|
||||||
will not terminate this Public License.
|
|
||||||
|
|
||||||
d. Sections 1, 5, 6, 7, and 8 survive termination of this Public
|
|
||||||
License.
|
|
||||||
|
|
||||||
|
|
||||||
Section 7 -- Other Terms and Conditions.
|
|
||||||
|
|
||||||
a. The Licensor shall not be bound by any additional or different
|
|
||||||
terms or conditions communicated by You unless expressly agreed.
|
|
||||||
|
|
||||||
b. Any arrangements, understandings, or agreements regarding the
|
|
||||||
Licensed Material not stated herein are separate from and
|
|
||||||
independent of the terms and conditions of this Public License.
|
|
||||||
|
|
||||||
|
|
||||||
Section 8 -- Interpretation.
|
|
||||||
|
|
||||||
a. For the avoidance of doubt, this Public License does not, and
|
|
||||||
shall not be interpreted to, reduce, limit, restrict, or impose
|
|
||||||
conditions on any use of the Licensed Material that could lawfully
|
|
||||||
be made without permission under this Public License.
|
|
||||||
|
|
||||||
b. To the extent possible, if any provision of this Public License is
|
|
||||||
deemed unenforceable, it shall be automatically reformed to the
|
|
||||||
minimum extent necessary to make it enforceable. If the provision
|
|
||||||
cannot be reformed, it shall be severed from this Public License
|
|
||||||
without affecting the enforceability of the remaining terms and
|
|
||||||
conditions.
|
|
||||||
|
|
||||||
c. No term or condition of this Public License will be waived and no
|
|
||||||
failure to comply consented to unless expressly agreed to by the
|
|
||||||
Licensor.
|
|
||||||
|
|
||||||
d. Nothing in this Public License constitutes or may be interpreted
|
|
||||||
as a limitation upon, or waiver of, any privileges and immunities
|
|
||||||
that apply to the Licensor or You, including from the legal
|
|
||||||
processes of any jurisdiction or authority.
|
|
||||||
|
|
||||||
|
|
||||||
=======================================================================
|
|
||||||
|
|
||||||
Creative Commons is not a party to its public
|
|
||||||
licenses. Notwithstanding, Creative Commons may elect to apply one of
|
|
||||||
its public licenses to material it publishes and in those instances
|
|
||||||
will be considered the “Licensor.” The text of the Creative Commons
|
|
||||||
public licenses is dedicated to the public domain under the CC0 Public
|
|
||||||
Domain Dedication. Except for the limited purpose of indicating that
|
|
||||||
material is shared under a Creative Commons public license or as
|
|
||||||
otherwise permitted by the Creative Commons policies published at
|
|
||||||
creativecommons.org/policies, Creative Commons does not authorize the
|
|
||||||
use of the trademark "Creative Commons" or any other trademark or logo
|
|
||||||
of Creative Commons without its prior written consent including,
|
|
||||||
without limitation, in connection with any unauthorized modifications
|
|
||||||
to any of its public licenses or any other arrangements,
|
|
||||||
understandings, or agreements concerning use of licensed material. For
|
|
||||||
the avoidance of doubt, this paragraph does not form part of the
|
|
||||||
public licenses.
|
|
||||||
|
|
||||||
Creative Commons may be contacted at creativecommons.org.
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
Version 2, June 1991
|
Version 2, June 1991
|
||||||
|
|
||||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
|
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
|
||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
<https://fsf.org/>
|
||||||
Everyone is permitted to copy and distribute verbatim copies
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
of this license document, but changing it is not allowed.
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
|
|
@ -304,8 +304,7 @@ the "copyright" line and a pointer to where the full notice is found.
|
||||||
GNU General Public License for more details.
|
GNU General Public License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
with this program; if not, see <https://www.gnu.org/licenses/>.
|
||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
|
|
||||||
Also add information on how to contact you by electronic and paper mail.
|
Also add information on how to contact you by electronic and paper mail.
|
||||||
|
|
||||||
|
|
@ -329,8 +328,8 @@ necessary. Here is a sample; alter the names:
|
||||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||||
|
|
||||||
<signature of Ty Coon>, 1 April 1989
|
<signature of Moe Ghoul>, 1 April 1989
|
||||||
Ty Coon, President of Vice
|
Moe Ghoul, President of Vice
|
||||||
|
|
||||||
This General Public License does not permit incorporating your program into
|
This General Public License does not permit incorporating your program into
|
||||||
proprietary programs. If your program is a subroutine library, you may
|
proprietary programs. If your program is a subroutine library, you may
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
Version 2.1, February 1999
|
Version 2.1, February 1999
|
||||||
|
|
||||||
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
|
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
|
||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
<https://fsf.org/>
|
||||||
Everyone is permitted to copy and distribute verbatim copies
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
of this license document, but changing it is not allowed.
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
|
|
@ -484,8 +484,7 @@ convey the exclusion of warranty; and each file should have at least the
|
||||||
Lesser General Public License for more details.
|
Lesser General Public License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public
|
You should have received a copy of the GNU Lesser General Public
|
||||||
License along with this library; if not, write to the Free Software
|
License along with this library; if not, see <https://www.gnu.org/licenses/>.
|
||||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
|
|
||||||
Also add information on how to contact you by electronic and paper mail.
|
Also add information on how to contact you by electronic and paper mail.
|
||||||
|
|
||||||
|
|
@ -496,7 +495,7 @@ necessary. Here is a sample; alter the names:
|
||||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the
|
Yoyodyne, Inc., hereby disclaims all copyright interest in the
|
||||||
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
|
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
|
||||||
|
|
||||||
<signature of Ty Coon>, 1 April 1990
|
<signature of Moe Ghoul>, 1 April 1990
|
||||||
Ty Coon, President of Vice
|
Moe Ghoul, President of Vice
|
||||||
|
|
||||||
That's all there is to it!
|
That's all there is to it!
|
||||||
|
|
|
||||||
226
INSTALL
226
INSTALL
|
|
@ -16,7 +16,7 @@ XZ Utils Installation
|
||||||
1.2.8. DOS
|
1.2.8. DOS
|
||||||
1.2.9. z/OS
|
1.2.9. z/OS
|
||||||
1.3. Adding support for new platforms
|
1.3. Adding support for new platforms
|
||||||
2. configure options
|
2. configure and CMake options
|
||||||
2.1. Static vs. dynamic linking of liblzma
|
2.1. Static vs. dynamic linking of liblzma
|
||||||
2.2. Optimizing xzdec and lzmadec
|
2.2. Optimizing xzdec and lzmadec
|
||||||
3. xzgrep and other scripts
|
3. xzgrep and other scripts
|
||||||
|
|
@ -76,6 +76,11 @@ XZ Utils Installation
|
||||||
you use CC=xlc instead, you must disable threading support
|
you use CC=xlc instead, you must disable threading support
|
||||||
with --disable-threads (usually not recommended).
|
with --disable-threads (usually not recommended).
|
||||||
|
|
||||||
|
If building a 32-bit executable, the address space available to xz
|
||||||
|
might be limited to 256 MiB by default. To increase the address
|
||||||
|
space to 2 GiB, pass LDFLAGS=-Wl,-bmaxdata:0x80000000 as an argument
|
||||||
|
to configure.
|
||||||
|
|
||||||
|
|
||||||
1.2.2. IRIX
|
1.2.2. IRIX
|
||||||
|
|
||||||
|
|
@ -90,21 +95,15 @@ XZ Utils Installation
|
||||||
|
|
||||||
1.2.3. MINIX 3
|
1.2.3. MINIX 3
|
||||||
|
|
||||||
The default install of MINIX 3 includes Amsterdam Compiler Kit (ACK),
|
Version 3.3.0 and later are supported.
|
||||||
which doesn't support C99. Install GCC to compile XZ Utils.
|
|
||||||
|
|
||||||
MINIX 3.1.8 and older have bugs in /usr/include/stdint.h, which has
|
Multithreading isn't supported because MINIX 3 doesn't have
|
||||||
to be patched before XZ Utils can be compiled correctly. See
|
pthreads. The option --disable-threads must be passed to configure
|
||||||
<http://gforge.cs.vu.nl/gf/project/minix/tracker/?action=TrackerItemEdit&tracker_item_id=537>.
|
as this isn't autodetected.
|
||||||
|
|
||||||
MINIX 3.2.0 and later use a different libc and aren't affected by
|
Note that disabling threads causes "make check" to show a few tests
|
||||||
the above bug.
|
as skipped ("SKIP"). It's only due to a few threading-dependent
|
||||||
|
subtests are skipped. See the matching tests/test_*.log files.
|
||||||
XZ Utils doesn't have code to detect the amount of physical RAM and
|
|
||||||
number of CPU cores on MINIX 3.
|
|
||||||
|
|
||||||
See section 5.4 in this file about symbol visibility warnings (you
|
|
||||||
may want to pass gl_cv_cc_visibility=no to configure).
|
|
||||||
|
|
||||||
|
|
||||||
1.2.4. OpenVMS
|
1.2.4. OpenVMS
|
||||||
|
|
@ -219,19 +218,53 @@ XZ Utils Installation
|
||||||
in C89 or C++.
|
in C89 or C++.
|
||||||
|
|
||||||
|
|
||||||
2. configure options
|
2. configure and CMake options
|
||||||
--------------------
|
------------------------------
|
||||||
|
|
||||||
In most cases, the defaults are what you want. Many of the options
|
In most cases, the defaults are what you want. Many of the options
|
||||||
below are useful only when building a size-optimized version of
|
below are useful only when building a size-optimized version of
|
||||||
liblzma or command line tools.
|
liblzma or command line tools.
|
||||||
|
|
||||||
|
configure options are those that begin with two dashes "--"
|
||||||
|
or "gl_".
|
||||||
|
|
||||||
|
CMake options begin with "XZ_", "TUKLIB_", or "CMAKE_". To use
|
||||||
|
them on the command line, prefix them with "-D", for example,
|
||||||
|
"cmake -DCMAKE_COMPILE_WARNING_AS_ERROR=ON".
|
||||||
|
|
||||||
|
CMAKE_BUILD_TYPE=TYPE
|
||||||
|
CMake only:
|
||||||
|
|
||||||
|
For release builds, CMAKE_BUILD_TYPE=Release is fine.
|
||||||
|
On targets where CMake defaults to -O3, the default
|
||||||
|
value is overridden to -O2.
|
||||||
|
|
||||||
|
Empty value (CMAKE_BUILD_TYPE=) is fine if using custom
|
||||||
|
optimization options. *In this package* the empty build
|
||||||
|
type also disables debugging code just like "Release"
|
||||||
|
does. To enable debugging code with empty build type,
|
||||||
|
use -UNDEBUG in the CFLAGS environment variable or in
|
||||||
|
the CMAKE_C_FLAGS CMake variable to override -DNDEBUG.
|
||||||
|
|
||||||
|
Non-standard build types like "None" do NOT disable
|
||||||
|
debugging code! Such non-standard build types should
|
||||||
|
be avoided for production builds!
|
||||||
|
|
||||||
--enable-encoders=LIST
|
--enable-encoders=LIST
|
||||||
--disable-encoders
|
--disable-encoders
|
||||||
Specify a comma-separated LIST of filter encoders to
|
XZ_ENCODERS=LIST
|
||||||
build. See "./configure --help" for exact list of
|
Specify a LIST of filter encoders to build. In the
|
||||||
available filter encoders. The default is to build all
|
configure option the list is comma separated.
|
||||||
supported encoders.
|
CMake lists are semicolon separated.
|
||||||
|
|
||||||
|
To see the exact list of available filter encoders:
|
||||||
|
|
||||||
|
- Autotools: ./configure --help
|
||||||
|
|
||||||
|
- CMake: Configure the tree normally first, then use
|
||||||
|
"cmake -LH ." to list the cache variables.
|
||||||
|
|
||||||
|
The default is to build all supported encoders.
|
||||||
|
|
||||||
If LIST is empty or --disable-encoders is used, no filter
|
If LIST is empty or --disable-encoders is used, no filter
|
||||||
encoders will be built and also the code shared between
|
encoders will be built and also the code shared between
|
||||||
|
|
@ -243,10 +276,12 @@ XZ Utils Installation
|
||||||
|
|
||||||
--enable-decoders=LIST
|
--enable-decoders=LIST
|
||||||
--disable-decoders
|
--disable-decoders
|
||||||
|
XZ_DECODERS=LIST
|
||||||
This is like --enable-encoders but for decoders. The
|
This is like --enable-encoders but for decoders. The
|
||||||
default is to build all supported decoders.
|
default is to build all supported decoders.
|
||||||
|
|
||||||
--enable-match-finders=LIST
|
--enable-match-finders=LIST
|
||||||
|
XZ_MATCH_FINDERS=LIST
|
||||||
liblzma includes two categories of match finders:
|
liblzma includes two categories of match finders:
|
||||||
hash chains and binary trees. Hash chains (hc3 and hc4)
|
hash chains and binary trees. Hash chains (hc3 and hc4)
|
||||||
are quite fast but they don't provide the best compression
|
are quite fast but they don't provide the best compression
|
||||||
|
|
@ -263,9 +298,11 @@ XZ Utils Installation
|
||||||
or LZMA2 filter encoders are being built.
|
or LZMA2 filter encoders are being built.
|
||||||
|
|
||||||
--enable-checks=LIST
|
--enable-checks=LIST
|
||||||
|
XZ_CHECKS=LIST
|
||||||
liblzma support multiple integrity checks. CRC32 is
|
liblzma support multiple integrity checks. CRC32 is
|
||||||
mandatory, and cannot be omitted. See "./configure --help"
|
mandatory, and cannot be omitted. Supported check
|
||||||
for exact list of available integrity check types.
|
types are "crc32", "crc64", and "sha256". By default
|
||||||
|
all supported check types are enabled.
|
||||||
|
|
||||||
liblzma and the command line tools can decompress files
|
liblzma and the command line tools can decompress files
|
||||||
which use unsupported integrity check type, but naturally
|
which use unsupported integrity check type, but naturally
|
||||||
|
|
@ -276,6 +313,7 @@ XZ Utils Installation
|
||||||
it is known to not cause problems.
|
it is known to not cause problems.
|
||||||
|
|
||||||
--enable-external-sha256
|
--enable-external-sha256
|
||||||
|
XZ_EXTERNAL_SHA256=ON
|
||||||
Try to use SHA-256 code from the operating system libc
|
Try to use SHA-256 code from the operating system libc
|
||||||
or similar base system libraries. This doesn't try to
|
or similar base system libraries. This doesn't try to
|
||||||
use OpenSSL or libgcrypt or such libraries.
|
use OpenSSL or libgcrypt or such libraries.
|
||||||
|
|
@ -312,6 +350,8 @@ XZ Utils Installation
|
||||||
time xz --test foo.xz
|
time xz --test foo.xz
|
||||||
|
|
||||||
--disable-microlzma
|
--disable-microlzma
|
||||||
|
XZ_MICROLZMA_ENCODER=OFF
|
||||||
|
XZ_MICROLZMA_DECODER=OFF
|
||||||
Don't build MicroLZMA encoder and decoder. This omits
|
Don't build MicroLZMA encoder and decoder. This omits
|
||||||
lzma_microlzma_encoder() and lzma_microlzma_decoder()
|
lzma_microlzma_encoder() and lzma_microlzma_decoder()
|
||||||
API functions from liblzma. These functions are needed
|
API functions from liblzma. These functions are needed
|
||||||
|
|
@ -319,6 +359,7 @@ XZ Utils Installation
|
||||||
erofs-utils but they may be used by others too.
|
erofs-utils but they may be used by others too.
|
||||||
|
|
||||||
--disable-lzip-decoder
|
--disable-lzip-decoder
|
||||||
|
XZ_LZIP_DECODER=OFF
|
||||||
Disable decompression support for .lz (lzip) files.
|
Disable decompression support for .lz (lzip) files.
|
||||||
This omits the API function lzma_lzip_decoder() from
|
This omits the API function lzma_lzip_decoder() from
|
||||||
liblzma and .lz support from the xz tool.
|
liblzma and .lz support from the xz tool.
|
||||||
|
|
@ -327,6 +368,10 @@ XZ Utils Installation
|
||||||
--disable-xzdec
|
--disable-xzdec
|
||||||
--disable-lzmadec
|
--disable-lzmadec
|
||||||
--disable-lzmainfo
|
--disable-lzmainfo
|
||||||
|
XZ_TOOL_XZ=OFF
|
||||||
|
XZ_TOOL_XZDEC=OFF
|
||||||
|
XZ_TOOL_LZMADEC=OFF
|
||||||
|
XZ_TOOL_LZMAINFO=OFF
|
||||||
Don't build and install the command line tool mentioned
|
Don't build and install the command line tool mentioned
|
||||||
in the option name.
|
in the option name.
|
||||||
|
|
||||||
|
|
@ -336,23 +381,40 @@ XZ Utils Installation
|
||||||
a dangling man page symlink lzmadec.1 -> xzdec.1 is
|
a dangling man page symlink lzmadec.1 -> xzdec.1 is
|
||||||
created.
|
created.
|
||||||
|
|
||||||
|
XZ_TOOL_SYMLINKS=OFF
|
||||||
|
Don't create the unxz and xzcat symlinks. (There is
|
||||||
|
no "configure" option to disable these symlinks.)
|
||||||
|
|
||||||
--disable-lzma-links
|
--disable-lzma-links
|
||||||
|
XZ_TOOL_SYMLINKS_LZMA=OFF
|
||||||
Don't create symlinks for LZMA Utils compatibility.
|
Don't create symlinks for LZMA Utils compatibility.
|
||||||
This includes lzma, unlzma, and lzcat. If scripts are
|
This includes lzma, unlzma, and lzcat. If scripts are
|
||||||
installed, also lzdiff, lzcmp, lzgrep, lzegrep, lzfgrep,
|
installed, also lzdiff, lzcmp, lzgrep, lzegrep, lzfgrep,
|
||||||
lzmore, and lzless will be omitted if this option is used.
|
lzmore, and lzless will be omitted if this option is used.
|
||||||
|
|
||||||
--disable-scripts
|
--disable-scripts
|
||||||
|
XZ_TOOL_SCRIPTS=OFF
|
||||||
Don't install the scripts xzdiff, xzgrep, xzmore, xzless,
|
Don't install the scripts xzdiff, xzgrep, xzmore, xzless,
|
||||||
and their symlinks.
|
and their symlinks.
|
||||||
|
|
||||||
--disable-doc
|
--disable-doc
|
||||||
|
XZ_DOC=OFF
|
||||||
Don't install the documentation files to $docdir
|
Don't install the documentation files to $docdir
|
||||||
(often /usr/doc/xz or /usr/local/doc/xz). Man pages
|
(often /usr/doc/xz or /usr/local/doc/xz). Man pages
|
||||||
will still be installed. The $docdir can be changed
|
will still be installed. The $docdir can be changed
|
||||||
with --docdir=DIR.
|
with --docdir=DIR.
|
||||||
|
|
||||||
|
--enable-doxygen
|
||||||
|
XZ_DOXYGEN=ON
|
||||||
|
Enable generation of the HTML version of the liblzma API
|
||||||
|
documentation using Doxygen. The resulting files are
|
||||||
|
installed to $docdir/api. This option assumes that
|
||||||
|
the 'doxygen' tool is available.
|
||||||
|
|
||||||
|
NOTE: --disable-doc or XZ_DOC=OFF don't affect this.
|
||||||
|
|
||||||
--disable-assembler
|
--disable-assembler
|
||||||
|
XZ_ASM_I386=OFF
|
||||||
This disables CRC32 and CRC64 assembly code on
|
This disables CRC32 and CRC64 assembly code on
|
||||||
32-bit x86. This option currently does nothing
|
32-bit x86. This option currently does nothing
|
||||||
on other architectures (not even on x86-64).
|
on other architectures (not even on x86-64).
|
||||||
|
|
@ -365,7 +427,16 @@ XZ Utils Installation
|
||||||
pre-i686 systems, you may want to disable the assembler
|
pre-i686 systems, you may want to disable the assembler
|
||||||
code.
|
code.
|
||||||
|
|
||||||
|
The assembly code is compatible with only certain OSes
|
||||||
|
and toolchains (it's not compatible with MSVC).
|
||||||
|
|
||||||
|
Since XZ Utils 5.7.1alpha, the 32-bit x86 assembly code
|
||||||
|
co-exists with the modern CLMUL code: CLMUL is used if
|
||||||
|
support for it is detected at runtime. On old processors
|
||||||
|
the assembly code is used.
|
||||||
|
|
||||||
--disable-clmul-crc
|
--disable-clmul-crc
|
||||||
|
XZ_CLMUL_CRC=OFF
|
||||||
Disable the use of carryless multiplication for CRC
|
Disable the use of carryless multiplication for CRC
|
||||||
calculation even if compiler support for it is detected.
|
calculation even if compiler support for it is detected.
|
||||||
The code uses runtime detection of SSSE3, SSE4.1, and
|
The code uses runtime detection of SSSE3, SSE4.1, and
|
||||||
|
|
@ -378,6 +449,7 @@ XZ Utils Installation
|
||||||
detection isn't used and the generic code is omitted.
|
detection isn't used and the generic code is omitted.
|
||||||
|
|
||||||
--disable-arm64-crc32
|
--disable-arm64-crc32
|
||||||
|
XZ_ARM64_CRC32=OFF
|
||||||
Disable the use of the ARM64 CRC32 instruction extension
|
Disable the use of the ARM64 CRC32 instruction extension
|
||||||
even if compiler support for it is detected. The code will
|
even if compiler support for it is detected. The code will
|
||||||
detect support for the instruction at runtime.
|
detect support for the instruction at runtime.
|
||||||
|
|
@ -387,7 +459,16 @@ XZ Utils Installation
|
||||||
and later) then runtime detection isn't used and the
|
and later) then runtime detection isn't used and the
|
||||||
generic code is omitted.
|
generic code is omitted.
|
||||||
|
|
||||||
|
--disable-loongarch-crc32
|
||||||
|
XZ_LOONGARCH_CRC32=OFF
|
||||||
|
Disable the use of the 64-bit LoongArch CRC32
|
||||||
|
instruction extension even if compiler support for
|
||||||
|
it is detected. There is no runtime detection because
|
||||||
|
all 64-bit LoongArch processors should support
|
||||||
|
the CRC32 instructions.
|
||||||
|
|
||||||
--enable-unaligned-access
|
--enable-unaligned-access
|
||||||
|
TUKLIB_FAST_UNALIGNED_ACCESS=ON
|
||||||
Allow liblzma to use unaligned memory access for 16-bit,
|
Allow liblzma to use unaligned memory access for 16-bit,
|
||||||
32-bit, and 64-bit loads and stores. This should be
|
32-bit, and 64-bit loads and stores. This should be
|
||||||
enabled only when the hardware supports this, that is,
|
enabled only when the hardware supports this, that is,
|
||||||
|
|
@ -435,6 +516,7 @@ XZ Utils Installation
|
||||||
how unaligned access is done in the C code.
|
how unaligned access is done in the C code.
|
||||||
|
|
||||||
--enable-unsafe-type-punning
|
--enable-unsafe-type-punning
|
||||||
|
TUKLIB_USE_UNSAFE_TYPE_PUNNING=ON
|
||||||
This enables use of code like
|
This enables use of code like
|
||||||
|
|
||||||
uint8_t *buf8 = ...;
|
uint8_t *buf8 = ...;
|
||||||
|
|
@ -451,6 +533,7 @@ XZ Utils Installation
|
||||||
GCC 3 and early 4.x on x86, GCC < 6 on ARMv6 and ARMv7).
|
GCC 3 and early 4.x on x86, GCC < 6 on ARMv6 and ARMv7).
|
||||||
|
|
||||||
--enable-small
|
--enable-small
|
||||||
|
XZ_SMALL=ON
|
||||||
Reduce the size of liblzma by selecting smaller but
|
Reduce the size of liblzma by selecting smaller but
|
||||||
semantically equivalent version of some functions, and
|
semantically equivalent version of some functions, and
|
||||||
omit precomputed lookup tables. This option tends to
|
omit precomputed lookup tables. This option tends to
|
||||||
|
|
@ -467,6 +550,7 @@ XZ Utils Installation
|
||||||
flag(s) to CFLAGS manually.
|
flag(s) to CFLAGS manually.
|
||||||
|
|
||||||
--enable-assume-ram=SIZE
|
--enable-assume-ram=SIZE
|
||||||
|
XZ_ASSUME_RAM=SIZE
|
||||||
On the most common operating systems, XZ Utils is able to
|
On the most common operating systems, XZ Utils is able to
|
||||||
detect the amount of physical memory on the system. This
|
detect the amount of physical memory on the system. This
|
||||||
information is used by the options --memlimit-compress,
|
information is used by the options --memlimit-compress,
|
||||||
|
|
@ -483,6 +567,7 @@ XZ Utils Installation
|
||||||
src/common/tuklib_physmem.c for details.
|
src/common/tuklib_physmem.c for details.
|
||||||
|
|
||||||
--enable-threads=METHOD
|
--enable-threads=METHOD
|
||||||
|
XZ_THREADS=METHOD
|
||||||
Threading support is enabled by default so normally there
|
Threading support is enabled by default so normally there
|
||||||
is no need to specify this option.
|
is no need to specify this option.
|
||||||
|
|
||||||
|
|
@ -518,15 +603,8 @@ XZ Utils Installation
|
||||||
calls any liblzma functions from more than
|
calls any liblzma functions from more than
|
||||||
one thread, something bad may happen.
|
one thread, something bad may happen.
|
||||||
|
|
||||||
--enable-ifunc
|
|
||||||
Use __attribute__((__ifunc__())) in liblzma. This is
|
|
||||||
enabled by default on GNU/Linux and FreeBSD.
|
|
||||||
|
|
||||||
The ifunc attribute is incompatible with
|
|
||||||
-fsanitize=address. --disable-ifunc must be used
|
|
||||||
if any -fsanitize= option is specified in CFLAGS.
|
|
||||||
|
|
||||||
--enable-sandbox=METHOD
|
--enable-sandbox=METHOD
|
||||||
|
XZ_SANDBOX=METHOD
|
||||||
There is limited sandboxing support in the xz and xzdec
|
There is limited sandboxing support in the xz and xzdec
|
||||||
tools. If built with sandbox support, xz uses it
|
tools. If built with sandbox support, xz uses it
|
||||||
automatically when (de)compressing exactly one file to
|
automatically when (de)compressing exactly one file to
|
||||||
|
|
@ -561,23 +639,71 @@ XZ Utils Installation
|
||||||
sandboxing. If no Landlock support
|
sandboxing. If no Landlock support
|
||||||
is found, configure will give an error.
|
is found, configure will give an error.
|
||||||
|
|
||||||
--enable-symbol-versions
|
--enable-symbol-versions[=VARIANT]
|
||||||
Use symbol versioning for liblzma. This is enabled by
|
XZ_SYMBOL_VERSIONING=VARIANT
|
||||||
default on GNU/Linux, other GNU-based systems, and
|
Use symbol versioning for liblzma shared library.
|
||||||
FreeBSD.
|
This is enabled by default on GNU/Linux (glibc only),
|
||||||
|
other GNU-based systems, and FreeBSD.
|
||||||
|
|
||||||
|
Symbol versioning is never used for static liblzma. This
|
||||||
|
option is ignored when not building a shared library.
|
||||||
|
|
||||||
|
Supported VARIANTs:
|
||||||
|
|
||||||
|
no Disable symbol versioning. This is the
|
||||||
|
same as using --disable-symbol-versions.
|
||||||
|
|
||||||
|
auto Autodetect between "no", "linux",
|
||||||
|
and "generic".
|
||||||
|
|
||||||
|
yes Autodetect between "linux" and
|
||||||
|
"generic". This forces symbol
|
||||||
|
versioning to be used when
|
||||||
|
building a shared library.
|
||||||
|
|
||||||
|
generic Generic version is the default for
|
||||||
|
FreeBSD and GNU/Linux on MicroBlaze.
|
||||||
|
|
||||||
|
This is also used on GNU/Linux when
|
||||||
|
building with NVIDIA HPC Compiler
|
||||||
|
because the compiler doesn't support
|
||||||
|
the features required for the "linux"
|
||||||
|
variant below.
|
||||||
|
|
||||||
|
linux Special version for GNU/Linux (glibc
|
||||||
|
only). This adds a few extra symbol
|
||||||
|
versions for compatibility with binaries
|
||||||
|
that have been linked against a liblzma
|
||||||
|
version that has been patched with
|
||||||
|
"xz-5.2.2-compat-libs.patch" from
|
||||||
|
RHEL/CentOS 7. That patch was used
|
||||||
|
by some build tools outside of
|
||||||
|
RHEL/CentOS 7 too.
|
||||||
|
|
||||||
--enable-debug
|
--enable-debug
|
||||||
This enables the assert() macro and possibly some other
|
This enables the assert() macro and possibly some other
|
||||||
run-time consistency checks. It makes the code slower, so
|
run-time consistency checks. It makes the code slower, so
|
||||||
you normally don't want to have this enabled.
|
you normally don't want to have this enabled.
|
||||||
|
|
||||||
|
In CMake, the build type (CMAKE_BUILD_TYPE) controls if
|
||||||
|
-DNDEBUG is passed to the compiler. *In this package*,
|
||||||
|
an empty build type disables debugging code too.
|
||||||
|
Non-standard build types like "None" do NOT disable
|
||||||
|
debugging code!
|
||||||
|
|
||||||
|
To enable debugging code with empty build type in CMake,
|
||||||
|
use -UNDEBUG in the CFLAGS environment variable or in
|
||||||
|
the CMAKE_C_FLAGS CMake variable to override -DNDEBUG.
|
||||||
|
|
||||||
--enable-werror
|
--enable-werror
|
||||||
|
CMAKE_COMPILE_WARNING_AS_ERROR=ON (CMake >= 3.24)
|
||||||
If building with GCC, make all compiler warnings an error,
|
If building with GCC, make all compiler warnings an error,
|
||||||
that abort the compilation. This may help catching bugs,
|
that abort the compilation. This may help catching bugs,
|
||||||
and should work on most systems. This has no effect on the
|
and should work on most systems. This has no effect on the
|
||||||
resulting binaries.
|
resulting binaries.
|
||||||
|
|
||||||
--enable-path-for-scripts=PREFIX
|
--enable-path-for-scripts=PREFIX
|
||||||
|
(CMake determines this from the path of XZ_POSIX_SHELL)
|
||||||
If PREFIX isn't empty, PATH=PREFIX:$PATH will be set in
|
If PREFIX isn't empty, PATH=PREFIX:$PATH will be set in
|
||||||
the beginning of the scripts (xzgrep and others).
|
the beginning of the scripts (xzgrep and others).
|
||||||
The default is empty except on Solaris the default is
|
The default is empty except on Solaris the default is
|
||||||
|
|
@ -594,6 +720,36 @@ XZ Utils Installation
|
||||||
the PATH for the scripts. It is described in section 3.2
|
the PATH for the scripts. It is described in section 3.2
|
||||||
and is supported in this xz version too.
|
and is supported in this xz version too.
|
||||||
|
|
||||||
|
gl_cv_posix_shell=/path/to/bin/sh
|
||||||
|
XZ_POSIX_SHELL=/path/to/bin/sh
|
||||||
|
POSIX shell to use for xzgrep and other scripts.
|
||||||
|
|
||||||
|
- configure should autodetect this well enough.
|
||||||
|
Typically it's /bin/sh but in some cases, like
|
||||||
|
Solaris, something else is used.
|
||||||
|
|
||||||
|
- CMake build uses /bin/sh except on Solaris the
|
||||||
|
default is /usr/xpg4/bin/sh.
|
||||||
|
|
||||||
|
CMAKE_DLL_NAME_WITH_SOVERSION=ON
|
||||||
|
CMake on native Windows (not Cygwin) only:
|
||||||
|
|
||||||
|
This changes the filename liblzma.dll to liblzma-5.dll.
|
||||||
|
|
||||||
|
The unversioned filename liblzma.dll has been used
|
||||||
|
since XZ Utils 5.0.0 when creating binary packages
|
||||||
|
using the included windows/build.bash. The same
|
||||||
|
unversioned filename is the default with CMake.
|
||||||
|
However, there are popular builds that, very
|
||||||
|
understandably and reasonably, use the versioned
|
||||||
|
filename produced by GNU Libtool.
|
||||||
|
|
||||||
|
This option should usually be left to its default value
|
||||||
|
(OFF). It can be set to ON if the liblzma DLL filename
|
||||||
|
must be compatible with the versioned filename
|
||||||
|
produced by GNU Libtool. For example, binaries
|
||||||
|
distributed in MSYS2 use a versioned DLL filename.
|
||||||
|
|
||||||
|
|
||||||
2.1. Static vs. dynamic linking of liblzma
|
2.1. Static vs. dynamic linking of liblzma
|
||||||
|
|
||||||
|
|
@ -762,7 +918,7 @@ XZ Utils Installation
|
||||||
|
|
||||||
The configure script determines if assembler code can be used by
|
The configure script determines if assembler code can be used by
|
||||||
looking at the configure triplet; there is currently no check if
|
looking at the configure triplet; there is currently no check if
|
||||||
the assembler code can actually actually be built. The x86 assembler
|
the assembler code can actually be built. The x86 assembler
|
||||||
code should work on x86 GNU/Linux, *BSDs, Solaris, Darwin, MinGW,
|
code should work on x86 GNU/Linux, *BSDs, Solaris, Darwin, MinGW,
|
||||||
Cygwin, and DJGPP. On other x86 systems, there may be problems and
|
Cygwin, and DJGPP. On other x86 systems, there may be problems and
|
||||||
the assembler code may need to be disabled with the configure option.
|
the assembler code may need to be disabled with the configure option.
|
||||||
|
|
|
||||||
70
Makefile.am
70
Makefile.am
|
|
@ -36,18 +36,6 @@ dist_examples_DATA = \
|
||||||
doc/examples/04_compress_easy_mt.c \
|
doc/examples/04_compress_easy_mt.c \
|
||||||
doc/examples/11_file_info.c \
|
doc/examples/11_file_info.c \
|
||||||
doc/examples/Makefile
|
doc/examples/Makefile
|
||||||
|
|
||||||
# Install the Doxygen generated documentation if they were built.
|
|
||||||
install-data-local:
|
|
||||||
if test -d "$(srcdir)/doc/api" ; then \
|
|
||||||
$(MKDIR_P) "$(DESTDIR)$(docdir)/api" && \
|
|
||||||
$(INSTALL_DATA) "$(srcdir)"/doc/api/* \
|
|
||||||
"$(DESTDIR)$(docdir)/api"; \
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Remove the Doxygen generated documentation when uninstalling.
|
|
||||||
uninstall-local:
|
|
||||||
rm -rf "$(DESTDIR)$(docdir)/api"
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
EXTRA_DIST = \
|
EXTRA_DIST = \
|
||||||
|
|
@ -58,7 +46,6 @@ EXTRA_DIST = \
|
||||||
po4a \
|
po4a \
|
||||||
windows \
|
windows \
|
||||||
CMakeLists.txt \
|
CMakeLists.txt \
|
||||||
COPYING.CC-BY-SA-4.0 \
|
|
||||||
COPYING.GPLv2 \
|
COPYING.GPLv2 \
|
||||||
COPYING.GPLv3 \
|
COPYING.GPLv3 \
|
||||||
COPYING.LGPLv2.1 \
|
COPYING.LGPLv2.1 \
|
||||||
|
|
@ -66,14 +53,15 @@ EXTRA_DIST = \
|
||||||
PACKAGERS \
|
PACKAGERS \
|
||||||
TODO \
|
TODO \
|
||||||
autogen.sh \
|
autogen.sh \
|
||||||
|
build-aux/license-check.sh \
|
||||||
build-aux/manconv.sh \
|
build-aux/manconv.sh \
|
||||||
build-aux/version.sh \
|
build-aux/version.sh \
|
||||||
doc/xz-logo.png \
|
|
||||||
po/xz.pot-header
|
po/xz.pot-header
|
||||||
|
|
||||||
ACLOCAL_AMFLAGS = -I m4
|
ACLOCAL_AMFLAGS = -I m4
|
||||||
|
|
||||||
# List of man pages to convert to PDF and plain text in the dist-hook target.
|
# List of man pages to convert to plain text in the dist-hook target
|
||||||
|
# or to PDF in the pdf-local target.
|
||||||
manfiles = \
|
manfiles = \
|
||||||
src/xz/xz.1 \
|
src/xz/xz.1 \
|
||||||
src/xzdec/xzdec.1 \
|
src/xzdec/xzdec.1 \
|
||||||
|
|
@ -83,47 +71,53 @@ manfiles = \
|
||||||
src/scripts/xzless.1 \
|
src/scripts/xzless.1 \
|
||||||
src/scripts/xzmore.1
|
src/scripts/xzmore.1
|
||||||
|
|
||||||
# Create ChangeLog from output of "git log --date=iso --stat".
|
# Create ChangeLog using "git log".
|
||||||
# Convert the man pages to PDF and plain text (ASCII only) formats.
|
# Convert the man pages to plain text (ASCII only) format.
|
||||||
dist-hook:
|
dist-hook:
|
||||||
if test -d "$(srcdir)/.git" && type git > /dev/null 2>&1; then \
|
if test -d "$(srcdir)/.git" && type git > /dev/null 2>&1; then \
|
||||||
( cd "$(srcdir)" && git log --date=iso --stat \
|
( cd "$(srcdir)" && git log --pretty=medium --date=iso --stat \
|
||||||
b69da6d4bb6bb11fc0cf066920791990d2b22a06^..HEAD ) \
|
b69da6d4bb6bb11fc0cf066920791990d2b22a06^..HEAD ) \
|
||||||
> "$(distdir)/ChangeLog"; \
|
> "$(distdir)/ChangeLog"; \
|
||||||
fi
|
fi
|
||||||
if type groff > /dev/null 2>&1 && type ps2pdf > /dev/null 2>&1; then \
|
if type groff > /dev/null 2>&1; then \
|
||||||
dest="$(distdir)/doc/man" && \
|
dest="$(distdir)/doc/man" && \
|
||||||
$(MKDIR_P) "$$dest/pdf-a4" "$$dest/pdf-letter" "$$dest/txt" && \
|
$(MKDIR_P) "$$dest/txt" && \
|
||||||
for FILE in $(manfiles); do \
|
for FILE in $(manfiles); do \
|
||||||
BASE=`basename $$FILE .1` && \
|
BASE=`basename $$FILE .1` && \
|
||||||
sh "$(srcdir)/build-aux/manconv.sh" pdf a4 \
|
$(SHELL) "$(srcdir)/build-aux/manconv.sh" ascii \
|
||||||
< "$(srcdir)/$$FILE" \
|
|
||||||
> "$$dest/pdf-a4/$$BASE-a4.pdf" && \
|
|
||||||
sh "$(srcdir)/build-aux/manconv.sh" pdf letter \
|
|
||||||
< "$(srcdir)/$$FILE" \
|
|
||||||
> "$$dest/pdf-letter/$$BASE-letter.pdf" && \
|
|
||||||
sh "$(srcdir)/build-aux/manconv.sh" ascii \
|
|
||||||
< "$(srcdir)/$$FILE" \
|
< "$(srcdir)/$$FILE" \
|
||||||
> "$$dest/txt/$$BASE.txt"; \
|
> "$$dest/txt/$$BASE.txt"; \
|
||||||
done; \
|
done; \
|
||||||
fi
|
fi
|
||||||
if test -d "$(srcdir)/doc/api" ; then \
|
cd "$(distdir)" && $(SHELL) "build-aux/license-check.sh"
|
||||||
$(MKDIR_P) "$(distdir)/doc/api" && \
|
|
||||||
$(INSTALL_DATA) "$(srcdir)"/doc/api/* \
|
|
||||||
"$(distdir)/doc/api"; \
|
|
||||||
fi
|
|
||||||
|
|
||||||
# This works with GNU tar and gives cleaner package than normal 'make dist'.
|
# This works with GNU tar and gives cleaner package than normal 'make dist'.
|
||||||
# This also ensures that the man page translations are up to date (dist-hook
|
# This also ensures that the translations are up to date (dist-hook
|
||||||
# would be too late for that).
|
# would be too late for that).
|
||||||
mydist:
|
mydist:
|
||||||
sh "$(srcdir)/src/liblzma/validate_map.sh"
|
$(SHELL) "$(srcdir)/src/liblzma/validate_map.sh"
|
||||||
cd "$(srcdir)/po4a" && sh update-po
|
cd po && $(MAKE) xz.pot-update
|
||||||
cd "$(srcdir)/doxygen" && sh update-doxygen
|
cd "$(srcdir)/po4a" && $(SHELL) update-po
|
||||||
VERSION=$(VERSION); \
|
VERSION=$(VERSION); \
|
||||||
if test -d "$(srcdir)/.git" && type git > /dev/null 2>&1; then \
|
if test -d "$(srcdir)/.git" && type git > /dev/null 2>&1; then \
|
||||||
SNAPSHOT=`cd "$(srcdir)" && git describe --abbrev=4 | cut -b2-`; \
|
$(SHELL) "$(srcdir)/build-aux/license-check.sh" || exit 1; \
|
||||||
|
SNAPSHOT=`cd "$(srcdir)" && git describe --abbrev=8 | cut -b2-`; \
|
||||||
test -n "$$SNAPSHOT" && VERSION=$$SNAPSHOT; \
|
test -n "$$SNAPSHOT" && VERSION=$$SNAPSHOT; \
|
||||||
fi; \
|
fi; \
|
||||||
TAR_OPTIONS='--owner=0 --group=0 --numeric-owner --mode=u+rw,go+r-w' \
|
TAR_OPTIONS='--owner=0 --group=0 --numeric-owner --mode=u+rw,go+r-w --sort=name' \
|
||||||
|
LC_COLLATE=C \
|
||||||
$(MAKE) VERSION="$$VERSION" dist-gzip
|
$(MAKE) VERSION="$$VERSION" dist-gzip
|
||||||
|
|
||||||
|
# NOTE: This only creates the PDFs. The install rules are missing.
|
||||||
|
pdf-local:
|
||||||
|
dest="doc/man" && \
|
||||||
|
$(MKDIR_P) "$$dest/pdf-a4" "$$dest/pdf-letter" && \
|
||||||
|
for FILE in $(manfiles); do \
|
||||||
|
BASE=`basename $$FILE .1` && \
|
||||||
|
$(SHELL) "$(srcdir)/build-aux/manconv.sh" pdf a4 \
|
||||||
|
< "$(srcdir)/$$FILE" \
|
||||||
|
> "$$dest/pdf-a4/$$BASE-a4.pdf" && \
|
||||||
|
$(SHELL) "$(srcdir)/build-aux/manconv.sh" pdf letter \
|
||||||
|
< "$(srcdir)/$$FILE" \
|
||||||
|
> "$$dest/pdf-letter/$$BASE-letter.pdf"; \
|
||||||
|
done
|
||||||
|
|
|
||||||
776
NEWS
776
NEWS
|
|
@ -2,8 +2,576 @@
|
||||||
XZ Utils Release Notes
|
XZ Utils Release Notes
|
||||||
======================
|
======================
|
||||||
|
|
||||||
|
5.8.1 (2025-04-03)
|
||||||
|
|
||||||
|
IMPORTANT: This includes a security fix for CVE-2025-31115 which
|
||||||
|
affects XZ Utils from 5.3.3alpha to 5.8.0. No new 5.4.x or 5.6.x
|
||||||
|
releases will be made, but the fix is in the v5.4 and v5.6 branches
|
||||||
|
in the xz Git repository. A standalone patch for all affected
|
||||||
|
versions is available as well.
|
||||||
|
|
||||||
|
* Multithreaded .xz decoder (lzma_stream_decoder_mt()):
|
||||||
|
|
||||||
|
- Fix a bug that could at least result in a crash with
|
||||||
|
invalid input. (CVE-2025-31115)
|
||||||
|
|
||||||
|
- Fix a performance bug: Only one thread was used if the whole
|
||||||
|
input file was provided at once to lzma_code(), the output
|
||||||
|
buffer was big enough, timeout was disabled, and LZMA_FINISH
|
||||||
|
was used. There are no bug reports about this, thus it's
|
||||||
|
possible that no real-world application was affected.
|
||||||
|
|
||||||
|
* Avoid <stdalign.h> even with C11/C17 compilers. This fixes the
|
||||||
|
build with Oracle Developer Studio 12.6 on Solaris 10 when the
|
||||||
|
compiler is in C11 mode (the header doesn't exist).
|
||||||
|
|
||||||
|
* Autotools: Restore compatibility with GNU make versions older
|
||||||
|
than 4.0 by creating the package using GNU gettext 0.23.1
|
||||||
|
infrastructure instead of 0.24.
|
||||||
|
|
||||||
|
* Update Croatian translation.
|
||||||
|
|
||||||
|
|
||||||
|
5.8.0 (2025-03-25)
|
||||||
|
|
||||||
|
This bumps the minor version of liblzma because new features were
|
||||||
|
added. The API and ABI are still backward compatible with liblzma
|
||||||
|
5.6.x, 5.4.x, 5.2.x, and 5.0.x.
|
||||||
|
|
||||||
|
* liblzma on 32/64-bit x86: When possible, use SSE2 intrinsics
|
||||||
|
instead of memcpy() in the LZMA/LZMA2 decoder. In typical cases,
|
||||||
|
this may reduce decompression time by 0-5 %. However, when built
|
||||||
|
against musl libc, over 15 % time reduction was observed with
|
||||||
|
highly compressed files.
|
||||||
|
|
||||||
|
* CMake: Make the feature test macros match the Autotools-based
|
||||||
|
build on NetBSD, Darwin, and mingw-w64.
|
||||||
|
|
||||||
|
* Update the Croatian, Italian, Portuguese, and Romanian
|
||||||
|
translations.
|
||||||
|
|
||||||
|
* Update the German, Italian, Korean, Romanian, Serbian, and
|
||||||
|
Ukrainian man page translations.
|
||||||
|
|
||||||
|
Summary of changes in the 5.7.x development releases:
|
||||||
|
|
||||||
|
* Mark the following LZMA Utils script aliases as deprecated:
|
||||||
|
lzcmp, lzdiff, lzless, lzmore, lzgrep, lzegrep, and lzfgrep.
|
||||||
|
|
||||||
|
* liblzma:
|
||||||
|
|
||||||
|
- Improve LZMA/LZMA2 encoder speed on 64-bit PowerPC (both
|
||||||
|
endiannesses) and those 64-bit RISC-V processors that
|
||||||
|
support fast unaligned access.
|
||||||
|
|
||||||
|
- Add low-level APIs for RISC-V, ARM64, and x86 BCJ filters
|
||||||
|
to lzma/bcj.h. These are primarily for erofs-utils.
|
||||||
|
|
||||||
|
- x86/x86-64/E2K CLMUL CRC code was rewritten.
|
||||||
|
|
||||||
|
- Use the CRC32 instructions on LoongArch.
|
||||||
|
|
||||||
|
* xz:
|
||||||
|
|
||||||
|
- Synchronize the output file and its directory using fsync()
|
||||||
|
before deleting the input file. No syncing is done when xz
|
||||||
|
isn't going to delete the input file.
|
||||||
|
|
||||||
|
- Add --no-sync to disable the sync-before-delete behavior.
|
||||||
|
|
||||||
|
- Make --single-stream imply --keep.
|
||||||
|
|
||||||
|
* xz, xzdec, lzmainfo: When printing messages, replace
|
||||||
|
non-printable characters with question marks.
|
||||||
|
|
||||||
|
* xz and xzdec on Linux: Support Landlock ABI versions 5 and 6.
|
||||||
|
|
||||||
|
* CMake: Revise the configuration variables and some of their
|
||||||
|
options, and document them in the file INSTALL. CMake support
|
||||||
|
is no longer experimental. (It was already not experimental
|
||||||
|
when building for native Windows.)
|
||||||
|
|
||||||
|
* Add build-aux/license-check.sh.
|
||||||
|
|
||||||
|
|
||||||
|
5.7.2beta (2025-03-08)
|
||||||
|
|
||||||
|
* On the man pages, mark the following LZMA Utils script aliases as
|
||||||
|
deprecated: lzcmp, lzdiff, lzless, lzmore, lzgrep, lzegrep, and
|
||||||
|
lzfgrep. The commands that start with xz* instead of lz* have
|
||||||
|
identical behavior.
|
||||||
|
|
||||||
|
The LZMA Utils aliases lzma, unlzma, and lzcat aren't deprecated
|
||||||
|
because some of these aliases are still in common use. lzmadec
|
||||||
|
and lzmainfo aren't deprecated either.
|
||||||
|
|
||||||
|
* xz: In the ENVIRONMENT section of the man page, warn about
|
||||||
|
problems that some uses of XZ_DEFAULTS and XZ_OPT may create.
|
||||||
|
|
||||||
|
* Windows (native builds, not Cygwin): In xz, xzdec, and lzmadec,
|
||||||
|
avoid an error message on broken pipe.
|
||||||
|
|
||||||
|
* Autotools: Fix out-of-tree builds when using the bundled
|
||||||
|
getopt_long.
|
||||||
|
|
||||||
|
* Translations:
|
||||||
|
|
||||||
|
- Updated: Chinese (traditional), Croatian, Finnish, Georgian,
|
||||||
|
German, Korean, Polish, Romanian, Serbian, Spanish, Swedish,
|
||||||
|
Turkish, and Ukrainian
|
||||||
|
|
||||||
|
- Added: Dutch
|
||||||
|
|
||||||
|
* Man page translations:
|
||||||
|
|
||||||
|
- Updated: German, Korean, Romanian, and Ukrainian
|
||||||
|
|
||||||
|
- Added: Italian and Serbian
|
||||||
|
|
||||||
|
|
||||||
|
5.7.1alpha (2025-01-23)
|
||||||
|
|
||||||
|
* All fixes from 5.6.4.
|
||||||
|
|
||||||
|
* liblzma:
|
||||||
|
|
||||||
|
- Improve LZMA/LZMA2 encoder speed on 64-bit PowerPC (both
|
||||||
|
endiannesses) and those 64-bit RISC-V processors that
|
||||||
|
support fast unaligned access.
|
||||||
|
|
||||||
|
- x86/x86-64/E2K CLMUL CRC code was rewritten. It's faster and
|
||||||
|
doesn't cause false positives from sanitizers. Attributes
|
||||||
|
like __attribute__((__no_sanitize_address__)) are no longer
|
||||||
|
present.
|
||||||
|
|
||||||
|
- On 32-bit x86, CLMUL CRC and the old (but still good)
|
||||||
|
assembly versions now co-exist with runtime detection.
|
||||||
|
Both Autotools and CMake build systems handle this
|
||||||
|
automatically now.
|
||||||
|
|
||||||
|
- Use the CRC32 instructions on LoongArch to make CRC32
|
||||||
|
calculation faster.
|
||||||
|
|
||||||
|
- Add low-level APIs for RISC-V, ARM64, and x86 BCJ filters
|
||||||
|
to lzma/bcj.h. These are primarily for erofs-utils.
|
||||||
|
|
||||||
|
- Minor tweaks to ARM64 CRC32 code and BCJ filters were made.
|
||||||
|
|
||||||
|
* xz:
|
||||||
|
|
||||||
|
- Synchronize the output file and its directory before deleting
|
||||||
|
the input file using fsync(). This reduces the probability of
|
||||||
|
data loss after a system crash. However, it can be a major
|
||||||
|
performance hit if processing many small files.
|
||||||
|
|
||||||
|
NOTE: No syncing is done when xz isn't going to delete
|
||||||
|
the input file.
|
||||||
|
|
||||||
|
- Add a new option --no-sync to disable the sync-before-delete
|
||||||
|
behavior. It's useful when compressing many small files and
|
||||||
|
one doesn't worry about data loss in case of a system crash.
|
||||||
|
|
||||||
|
- Make --single-stream imply --keep.
|
||||||
|
|
||||||
|
- Use automatic word wrapping for the text in --help and
|
||||||
|
similar situations to hopefully make the strings easier for
|
||||||
|
majority of translators (no need to count spaces anymore).
|
||||||
|
|
||||||
|
* xz, xzdec, lzmainfo: When printing messages, replace
|
||||||
|
non-printable characters with question marks. This way
|
||||||
|
malicious filenames cannot be used to send escape sequences
|
||||||
|
to a terminal. This change is also applied to filenames shown
|
||||||
|
in "xz --robot --list".
|
||||||
|
|
||||||
|
* xz and xzdec on Linux: Add support for Landlock ABI versions 5
|
||||||
|
and 6.
|
||||||
|
|
||||||
|
* CMake updates:
|
||||||
|
|
||||||
|
- Increase the minimum required CMake version to 3.20.
|
||||||
|
|
||||||
|
- Revise the configuration variables and some of their options.
|
||||||
|
Document them in the file INSTALL.
|
||||||
|
|
||||||
|
- Attempt to produce liblzma.pc so that the paths are based on
|
||||||
|
${prefix}, which makes it simpler to override the paths
|
||||||
|
if the liblzma files have been moved.
|
||||||
|
|
||||||
|
- To enable translations, gettext-tools is now required. The
|
||||||
|
CMake build no longer supports installing pre-compiled
|
||||||
|
message catalog binary files (po/*.gmo).
|
||||||
|
|
||||||
|
- Apple: Use Mach-O shared library versioning that is
|
||||||
|
compatible with GNU Libtool. This should make it easier to
|
||||||
|
switch between the build systems on Apple OSes that enforce
|
||||||
|
the correct compatibility_version (macOS >= 12 doesn't?).
|
||||||
|
This change is backward compatible: binaries linked against
|
||||||
|
old CMake-built liblzma will run with liblzma that uses
|
||||||
|
Libtool style versioning.
|
||||||
|
|
||||||
|
- Windows (not Cygwin): Document CMAKE_DLL_NAME_WITH_SOVERSION
|
||||||
|
(CMake >= 3.27) in the file INSTALL. This option should
|
||||||
|
usually be left to its default value (OFF). It can be set
|
||||||
|
to ON if the liblzma DLL filename must be compatible with
|
||||||
|
the versioned filename produced by GNU Libtool. For example,
|
||||||
|
binaries distributed in MSYS2 use a versioned DLL filename.
|
||||||
|
|
||||||
|
- CMake support is no longer experimental. (It was already
|
||||||
|
not experimental when building for native Windows.)
|
||||||
|
|
||||||
|
* Windows: Building liblzma with Visual Studio 2013 is no longer
|
||||||
|
supported. Visual Studio 2015 or later (with CMake) can be used
|
||||||
|
to build liblzma and the command line tools.
|
||||||
|
|
||||||
|
* Add preliminary Georgian translation. This already contains
|
||||||
|
translations of most of the strings that are now automatically
|
||||||
|
word wrapped.
|
||||||
|
|
||||||
|
* Add build-aux/license-check.sh. Without arguments, it checks that
|
||||||
|
no license information has been forgotten. With the -v argument,
|
||||||
|
it shows the license info (or the lack of it) for each file.
|
||||||
|
|
||||||
|
If the .git directory is available, only the files in the
|
||||||
|
repository are checked. Without the .git directory, a clean tree
|
||||||
|
from an extracted release tarball is expected.
|
||||||
|
|
||||||
|
|
||||||
|
5.6.4 (2025-01-23)
|
||||||
|
|
||||||
|
* liblzma: Fix LZMA/LZMA2 encoder on big endian ARM64.
|
||||||
|
|
||||||
|
* xz:
|
||||||
|
|
||||||
|
- Fix --filters= and --filters1= ... --filters9= options
|
||||||
|
parsing. They require an argument, thus "xz --filters lzma2"
|
||||||
|
should work in addition to "xz --filters=lzma2".
|
||||||
|
|
||||||
|
- On the man page, note in the --compress and --decompress
|
||||||
|
options that the default behavior is to delete the input
|
||||||
|
file unless writing to standard output. It was already
|
||||||
|
documented in the DESCRIPTION section but new users in
|
||||||
|
a hurry might miss it.
|
||||||
|
|
||||||
|
* Windows (native builds, not Cygwin): Fix regressions introduced
|
||||||
|
in XZ Utils 5.6.3 which caused non-ASCII characters to display
|
||||||
|
incorrectly. Only builds with translation support were affected
|
||||||
|
(--enable-nls or ENABLE_NLS=ON). The following changes affect
|
||||||
|
builds that have translations enabled:
|
||||||
|
|
||||||
|
- Require UCRT because MSVCRT doesn't support UTF-8
|
||||||
|
locales and thus translations won't be readable on
|
||||||
|
Windows 10 version 1903 and later. (MSVCRT builds
|
||||||
|
are still possible with --disable-nls or ENABLE_NLS=OFF.)
|
||||||
|
|
||||||
|
- Require gettext-runtime >= 0.23.1 because older versions
|
||||||
|
don't autodetect the use of the UTF-8 code page. This
|
||||||
|
resulted in garbled non-ASCII characters even with UCRT.
|
||||||
|
|
||||||
|
- Partially fix alignment issues in xz --verbose --list
|
||||||
|
with translated messages. Chinese (simplified),
|
||||||
|
Chinese (traditional), and Korean column headings
|
||||||
|
are misaligned still because Windows and MinGW-w64
|
||||||
|
don't provide wcwidth() and XZ Utils doesn't include
|
||||||
|
a replacement function either.
|
||||||
|
|
||||||
|
* CMake: Explicitly disable unity builds. This prevents build
|
||||||
|
failures when another project uses XZ Utils via CMake's
|
||||||
|
FetchContent module, and that project enables unity builds.
|
||||||
|
|
||||||
|
* Update Chinese (traditional) and Serbian translations.
|
||||||
|
|
||||||
|
|
||||||
|
5.6.3 (2024-10-01)
|
||||||
|
|
||||||
|
IMPORTANT: This includes a Windows-specific security fix to
|
||||||
|
the command line tools (CVE-2024-47611). liblzma isn't affected
|
||||||
|
by this issue.
|
||||||
|
|
||||||
|
* liblzma:
|
||||||
|
|
||||||
|
- Fix x86-64 inline assembly compatibility with GNU Binutils
|
||||||
|
older than 2.27.
|
||||||
|
|
||||||
|
- Fix the build with GCC 4.2 on OpenBSD/sparc64.
|
||||||
|
|
||||||
|
* xzdec: Display an error instead of failing silently if the
|
||||||
|
unsupported option -M is specified.
|
||||||
|
|
||||||
|
* lzmainfo: Fix integer overflows when rounding the dictionary and
|
||||||
|
uncompressed sizes to the nearest mebibyte.
|
||||||
|
|
||||||
|
* Windows (except Cygwin and MSYS2): Add an application manifest to
|
||||||
|
xz, xzdec, lzmadec, and lzmainfo executables:
|
||||||
|
|
||||||
|
- Declare them compatible with Vista/7/8/8.1/10/11. This way
|
||||||
|
the programs won't needlessly use Operating System Context
|
||||||
|
of Vista when running on later Windows versions. This setting
|
||||||
|
doesn't mean that the executables cannot run on even older
|
||||||
|
versions if otherwise built that way.
|
||||||
|
|
||||||
|
- Declare them as UAC-compliant. MSVC added this by default
|
||||||
|
already but it wasn't done with MinGW-w64, at least not
|
||||||
|
with all toolchain variants.
|
||||||
|
|
||||||
|
- Declare them long path aware. This makes long path names
|
||||||
|
work on Windows 10 and 11 if the feature has been enabled
|
||||||
|
in the Windows registry.
|
||||||
|
|
||||||
|
- Use the UTF-8 code page on Windows 10 version 1903 and later.
|
||||||
|
|
||||||
|
* Now command line tools can access files whose names
|
||||||
|
contain characters that don't exist in the current
|
||||||
|
legacy code page.
|
||||||
|
|
||||||
|
* The options --files and --files0 now expect file lists
|
||||||
|
to be in UTF-8 instead of the legacy code page.
|
||||||
|
|
||||||
|
* This fixes a security issue: If a command line contains
|
||||||
|
Unicode characters (for example, filenames) that don't
|
||||||
|
exist in the current legacy code page, the characters are
|
||||||
|
converted to similar-looking characters with best-fit
|
||||||
|
mapping. Some best-fit mappings result in ASCII
|
||||||
|
characters that change the meaning of the command line,
|
||||||
|
which can be exploited with malicious filenames to do
|
||||||
|
argument injection or directory traversal attacks.
|
||||||
|
UTF-8 avoids best-fit mappings and thus fixes the issue.
|
||||||
|
(CVE-2024-47611)
|
||||||
|
|
||||||
|
Forcing the process code page to UTF-8 is possible only
|
||||||
|
on Windows 10 version 1903 and later. The command line
|
||||||
|
tools remain vulnerable if used on an old older
|
||||||
|
version of Windows.
|
||||||
|
|
||||||
|
This issue was discovered by Orange Tsai and splitline
|
||||||
|
from DEVCORE Research Team.
|
||||||
|
|
||||||
|
A related smaller issue remains: Windows filenames may
|
||||||
|
contain unpaired surrogates (invalid UTF-16). These are
|
||||||
|
converted to the replacement character U+FFFD in the
|
||||||
|
UTF-8 code page. Thus, filenames with different unpaired
|
||||||
|
surrogates appear identical and aren't distinguishable
|
||||||
|
from filenames that contain the actual replacement
|
||||||
|
character U+FFFD.
|
||||||
|
|
||||||
|
* When building with MinGW-w64, it is recommended to use
|
||||||
|
UCRT version instead of the old MSVCRT. For example,
|
||||||
|
non-ASCII characters from filenames won't print
|
||||||
|
correctly in messages to console with MSVCRT with
|
||||||
|
the UTF-8 code page (a cosmetic issue). liblzma-only
|
||||||
|
builds are still fine with MSVCRT.
|
||||||
|
|
||||||
|
- Cygwin and MSYS2 process command line options differently and
|
||||||
|
the above issues don't exist. There is no need to replace the
|
||||||
|
default application manifest on Cygwin and MSYS2.
|
||||||
|
|
||||||
|
* Autotools-based build:
|
||||||
|
|
||||||
|
- Fix feature checks with link-time optimization (-flto).
|
||||||
|
|
||||||
|
- Solaris: Fix a compatibility issue in version.sh. It matters
|
||||||
|
if one wants to regenerate configure by running autoconf.
|
||||||
|
|
||||||
|
* CMake:
|
||||||
|
|
||||||
|
- Use paths relative to ${prefix} in liblzma.pc when possible.
|
||||||
|
This is done only with CMake >= 3.20.
|
||||||
|
|
||||||
|
- MSVC: Install liblzma.pc as it can be useful with MSVC too.
|
||||||
|
|
||||||
|
- Windows: Fix liblzma filename prefix, for example:
|
||||||
|
|
||||||
|
* Cygwin: The DLL was incorrectly named liblzma-5.dll.
|
||||||
|
Now it is cyglzma-5.dll.
|
||||||
|
|
||||||
|
* MSVC: Rename import library from liblzma.lib to lzma.lib
|
||||||
|
while keeping liblzma.dll name as is. This helps with
|
||||||
|
"pkgconf --msvc-syntax --libs liblzma" because it mungles
|
||||||
|
"-llzma" in liblzma.pc to "lzma.lib".
|
||||||
|
|
||||||
|
* MinGW-w64: No changes.
|
||||||
|
|
||||||
|
- Windows: Use the correct resource file for lzmadec.exe.
|
||||||
|
Previously the resource file for xzdec.exe was used for both.
|
||||||
|
Autotools-based build isn't affected.
|
||||||
|
|
||||||
|
- Prefer a C11 compiler over a C99 compiler but accept both.
|
||||||
|
|
||||||
|
- Link Threads::Threads against liblzma using PRIVATE so that
|
||||||
|
-pthread and such flags won't unnecessarily get included in
|
||||||
|
the usage requirements of shared liblzma. That is,
|
||||||
|
target_link_libraries(foo PRIVATE liblzma::liblzma) no
|
||||||
|
longer adds -pthread if using POSIX threads and linking
|
||||||
|
against shared liblzma. The threading flags are still added
|
||||||
|
if linking against static liblzma.
|
||||||
|
|
||||||
|
* Updated translations: Catalan, Chinese (simplified), and
|
||||||
|
Brazilian Portuguese.
|
||||||
|
|
||||||
|
|
||||||
|
5.6.2 (2024-05-29)
|
||||||
|
|
||||||
|
* Remove the backdoor (CVE-2024-3094).
|
||||||
|
|
||||||
|
* Not changed: Memory sanitizer (MSAN) has a false positive
|
||||||
|
in the CRC CLMUL code which also makes OSS Fuzz unhappy.
|
||||||
|
Valgrind is smarter and doesn't complain.
|
||||||
|
|
||||||
|
A revision to the CLMUL code is coming anyway and this issue
|
||||||
|
will be cleaned up as part of it. It won't be backported to
|
||||||
|
5.6.x or 5.4.x because the old code isn't wrong. There is
|
||||||
|
no reason to risk introducing regressions in old branches
|
||||||
|
just to silence a false positive.
|
||||||
|
|
||||||
|
* liblzma:
|
||||||
|
|
||||||
|
- lzma_index_decoder() and lzma_index_buffer_decode(): Fix
|
||||||
|
a missing output pointer initialization (*i = NULL) if the
|
||||||
|
functions are called with invalid arguments. The API docs
|
||||||
|
say that such an initialization is always done. In practice
|
||||||
|
this matters very little because the problem can only occur
|
||||||
|
if the calling application has a bug and these functions
|
||||||
|
return LZMA_PROG_ERROR.
|
||||||
|
|
||||||
|
- lzma_str_to_filters(): Fix a missing output pointer
|
||||||
|
initialization (*error_pos = 0). This is very similar
|
||||||
|
to the fix above.
|
||||||
|
|
||||||
|
- Fix C standard conformance with function pointer types.
|
||||||
|
|
||||||
|
- Remove GNU indirect function (IFUNC) support. This is *NOT*
|
||||||
|
done for security reasons even though the backdoor relied on
|
||||||
|
this code. The performance benefits of IFUNC are too tiny in
|
||||||
|
this project to make the extra complexity worth it.
|
||||||
|
|
||||||
|
- FreeBSD on ARM64: Add error checking to CRC32 instruction
|
||||||
|
support detection.
|
||||||
|
|
||||||
|
- Fix building with NVIDIA HPC SDK.
|
||||||
|
|
||||||
|
* xz:
|
||||||
|
|
||||||
|
- Fix a C standard conformance issue in --block-list parsing
|
||||||
|
(arithmetic on a null pointer).
|
||||||
|
|
||||||
|
- Fix a warning from GNU groff when processing the man page:
|
||||||
|
"warning: cannot select font 'CW'"
|
||||||
|
|
||||||
|
* xzdec: Add support for Linux Landlock ABI version 4. xz already
|
||||||
|
had the v3-to-v4 change but it had been forgotten from xzdec.
|
||||||
|
|
||||||
|
* Autotools-based build system (configure):
|
||||||
|
|
||||||
|
- Symbol versioning variant can now be overridden with
|
||||||
|
--enable-symbol-versions. Documentation in INSTALL was
|
||||||
|
updated to match.
|
||||||
|
|
||||||
|
- Add new configure option --enable-doxygen to enable
|
||||||
|
generation and installation of the liblzma API documentation
|
||||||
|
using Doxygen. Documentation in INSTALL and PACKAGERS was
|
||||||
|
updated to match.
|
||||||
|
|
||||||
|
CMake:
|
||||||
|
|
||||||
|
- Fix detection of Linux Landlock support. The detection code
|
||||||
|
in CMakeLists.txt had been sabotaged.
|
||||||
|
|
||||||
|
- Disable symbol versioning on non-glibc Linux to match what
|
||||||
|
the Autotools build does. For example, symbol versioning
|
||||||
|
isn't enabled with musl.
|
||||||
|
|
||||||
|
- Symbol versioning variant can now be overridden by setting
|
||||||
|
SYMBOL_VERSIONING to "OFF", "generic", or "linux".
|
||||||
|
|
||||||
|
- Add support for all tests in typical build configurations.
|
||||||
|
Now the only difference to the tests coverage to Autotools
|
||||||
|
is that CMake-based build will skip more tests if features
|
||||||
|
are disabled. Such builds are only for special cases like
|
||||||
|
embedded systems.
|
||||||
|
|
||||||
|
- Separate the CMake code for the tests into tests/tests.cmake.
|
||||||
|
It is used conditionally, thus it is possible to
|
||||||
|
|
||||||
|
rm -rf tests
|
||||||
|
|
||||||
|
and the CMake-based build will still work normally except
|
||||||
|
that no tests are then available.
|
||||||
|
|
||||||
|
- Add a option ENABLE_DOXYGEN to enable generation and
|
||||||
|
installation of the liblzma API documentation using Doxygen.
|
||||||
|
|
||||||
|
* Documentation:
|
||||||
|
|
||||||
|
- Omit the Doxygen-generated liblzma API documentation from the
|
||||||
|
package. Instead, the generation and installation of the API
|
||||||
|
docs can be enabled with a configure or CMake option if
|
||||||
|
Doxygen is available.
|
||||||
|
|
||||||
|
- Remove the XZ logo which was used in the API documentation.
|
||||||
|
The logo has been retired and isn't used by the project
|
||||||
|
anymore. However, it's OK to use it in contexts that refer
|
||||||
|
to the backdoor incident.
|
||||||
|
|
||||||
|
- Remove the PDF versions of the man pages from the source
|
||||||
|
package. These existed primarily for users of operating
|
||||||
|
systems which don't come with tools to render man page
|
||||||
|
source files. The plain text versions are still included
|
||||||
|
in doc/man/txt. PDF files can still be generated to doc/man,
|
||||||
|
if the required tools are available, using "make pdf" after
|
||||||
|
running "configure".
|
||||||
|
|
||||||
|
- Update home page URLs back to their old locations on
|
||||||
|
tukaani.org.
|
||||||
|
|
||||||
|
- Update maintainer info.
|
||||||
|
|
||||||
|
* Tests:
|
||||||
|
|
||||||
|
- In tests/files/README, explain how to recreate the ARM64
|
||||||
|
test files.
|
||||||
|
|
||||||
|
- Remove two tests that used tiny x86 and SPARC object files
|
||||||
|
as the input files. The matching .c file was included but
|
||||||
|
the object files aren't easy to reproduce. The test cases
|
||||||
|
weren't great anyway; they were from the early days (2009)
|
||||||
|
of the project when the test suite had very few tests.
|
||||||
|
|
||||||
|
- Improve a few tests.
|
||||||
|
|
||||||
|
|
||||||
|
5.6.1 (2024-03-09)
|
||||||
|
|
||||||
|
IMPORTANT: This fixed bugs in the backdoor (CVE-2024-3094) (someone
|
||||||
|
had forgot to run Valgrind).
|
||||||
|
|
||||||
|
* liblzma: Fixed two bugs relating to GNU indirect function (IFUNC)
|
||||||
|
with GCC. The more serious bug caused a program linked with
|
||||||
|
liblzma to crash on start up if the flag -fprofile-generate was
|
||||||
|
used to build liblzma. The second bug caused liblzma to falsely
|
||||||
|
report an invalid write to Valgrind when loading liblzma.
|
||||||
|
|
||||||
|
* xz: Changed the messages for thread reduction due to memory
|
||||||
|
constraints to only appear under the highest verbosity level.
|
||||||
|
|
||||||
|
* Build:
|
||||||
|
|
||||||
|
- Fixed a build issue when the header file <linux/landlock.h>
|
||||||
|
was present on the system but the Landlock system calls were
|
||||||
|
not defined in <sys/syscall.h>.
|
||||||
|
|
||||||
|
- The CMake build now warns and disables NLS if both gettext
|
||||||
|
tools and pre-created .gmo files are missing. Previously,
|
||||||
|
this caused the CMake build to fail.
|
||||||
|
|
||||||
|
* Minor improvements to man pages.
|
||||||
|
|
||||||
|
* Minor improvements to tests.
|
||||||
|
|
||||||
|
|
||||||
5.6.0 (2024-02-24)
|
5.6.0 (2024-02-24)
|
||||||
|
|
||||||
|
IMPORTANT: This added a backdoor (CVE-2024-3094). It's enabled only
|
||||||
|
in the release tarballs.
|
||||||
|
|
||||||
This bumps the minor version of liblzma because new features were
|
This bumps the minor version of liblzma because new features were
|
||||||
added. The API and ABI are still backward compatible with liblzma
|
added. The API and ABI are still backward compatible with liblzma
|
||||||
5.4.x and 5.2.x and 5.0.x.
|
5.4.x and 5.2.x and 5.0.x.
|
||||||
|
|
@ -23,7 +591,7 @@ XZ Utils Release Notes
|
||||||
* Sandboxing support in xz:
|
* Sandboxing support in xz:
|
||||||
|
|
||||||
- Landlock is now used even when xz needs to create files.
|
- Landlock is now used even when xz needs to create files.
|
||||||
In this case the sandbox is has to be more permissive than
|
In this case the sandbox has to be more permissive than
|
||||||
when no files need to be created. A similar thing was
|
when no files need to be created. A similar thing was
|
||||||
already in use with pledge(2) since 5.3.4alpha.
|
already in use with pledge(2) since 5.3.4alpha.
|
||||||
|
|
||||||
|
|
@ -289,6 +857,95 @@ XZ Utils Release Notes
|
||||||
* Added basic Codespell support to help catch typo errors.
|
* Added basic Codespell support to help catch typo errors.
|
||||||
|
|
||||||
|
|
||||||
|
5.4.7 (2024-05-29)
|
||||||
|
|
||||||
|
* Not changed: Memory sanitizer (MSAN) has a false positive
|
||||||
|
in the CRC CLMUL code which also makes OSS Fuzz unhappy.
|
||||||
|
Valgrind is smarter and doesn't complain.
|
||||||
|
|
||||||
|
A revision to the CLMUL code is coming anyway and this issue
|
||||||
|
will be cleaned up as part of it. It won't be backported to
|
||||||
|
5.6.x or 5.4.x because the old code isn't wrong. There is
|
||||||
|
no reason to risk introducing regressions in old branches
|
||||||
|
just to silence a false positive.
|
||||||
|
|
||||||
|
* liblzma:
|
||||||
|
|
||||||
|
- lzma_index_decoder() and lzma_index_buffer_decode(): Fix
|
||||||
|
a missing output pointer initialization (*i = NULL) if the
|
||||||
|
functions are called with invalid arguments. The API docs
|
||||||
|
say that such an initialization is always done. In practice
|
||||||
|
this matters very little because the problem can only occur
|
||||||
|
if the calling application has a bug and these functions
|
||||||
|
return LZMA_PROG_ERROR.
|
||||||
|
|
||||||
|
- lzma_str_to_filters(): Fix a missing output pointer
|
||||||
|
initialization (*error_pos = 0). This is very similar
|
||||||
|
to the fix above.
|
||||||
|
|
||||||
|
- Fix C standard conformance with function pointer types.
|
||||||
|
This newly showed up with Clang 17 with -fsanitize=undefined.
|
||||||
|
There are no bug reports about this.
|
||||||
|
|
||||||
|
- Fix building with NVIDIA HPC SDK.
|
||||||
|
|
||||||
|
* xz:
|
||||||
|
|
||||||
|
- Fix a C standard conformance issue in --block-list parsing
|
||||||
|
(arithmetic on a null pointer).
|
||||||
|
|
||||||
|
- Fix a warning from GNU groff when processing the man page:
|
||||||
|
"warning: cannot select font 'CW'"
|
||||||
|
|
||||||
|
- Fix outdated threading related information on the man page.
|
||||||
|
|
||||||
|
* xzless:
|
||||||
|
|
||||||
|
- With "less" version 451 and later, use "||-" instead of "|-"
|
||||||
|
in the environment variable LESSOPEN. This way compressed
|
||||||
|
files that contain no uncompressed data are shown correctly
|
||||||
|
as empty.
|
||||||
|
|
||||||
|
- With "less" version 632 and later, use --show-preproc-errors
|
||||||
|
to make "less" show a warning on decompression errors.
|
||||||
|
|
||||||
|
* Autotools-based build system (configure):
|
||||||
|
|
||||||
|
- Symbol versioning variant can now be overridden with
|
||||||
|
--enable-symbol-versions. Documentation in INSTALL was
|
||||||
|
updated to match.
|
||||||
|
|
||||||
|
CMake:
|
||||||
|
|
||||||
|
- Linux on MicroBlaze is handled specially now. This matches
|
||||||
|
the changes made to the Autotools-based build in XZ Utils
|
||||||
|
5.4.2 and 5.2.11.
|
||||||
|
|
||||||
|
- Disable symbol versioning on non-glibc Linux to match what
|
||||||
|
the Autotools build does. For example, symbol versioning
|
||||||
|
isn't enabled with musl.
|
||||||
|
|
||||||
|
- Symbol versioning variant can now be overridden by setting
|
||||||
|
SYMBOL_VERSIONING to "OFF", "generic", or "linux".
|
||||||
|
|
||||||
|
* Documentation:
|
||||||
|
|
||||||
|
- Clarify the description of --disable-assembler in INSTALL.
|
||||||
|
The option only affects 32-bit x86 assembly usage.
|
||||||
|
|
||||||
|
- Add doc/examples/11_file_info.c. It was added to the
|
||||||
|
Git repository in 2017 but forgotten to be added into
|
||||||
|
distribution tarballs.
|
||||||
|
|
||||||
|
- Don't install the TODO file as part of the documentation.
|
||||||
|
The file is out of date.
|
||||||
|
|
||||||
|
- Update home page URLs back to their old locations on
|
||||||
|
tukaani.org.
|
||||||
|
|
||||||
|
- Update maintainer info.
|
||||||
|
|
||||||
|
|
||||||
5.4.6 (2024-01-26)
|
5.4.6 (2024-01-26)
|
||||||
|
|
||||||
* Fixed a bug involving internal function pointers in liblzma not
|
* Fixed a bug involving internal function pointers in liblzma not
|
||||||
|
|
@ -311,7 +968,7 @@ XZ Utils Release Notes
|
||||||
* Added a new test.
|
* Added a new test.
|
||||||
|
|
||||||
|
|
||||||
5.4.5 (2023-11-31)
|
5.4.5 (2023-11-01)
|
||||||
|
|
||||||
* liblzma:
|
* liblzma:
|
||||||
|
|
||||||
|
|
@ -1113,6 +1770,121 @@ XZ Utils Release Notes
|
||||||
(FreeBSD >= 10).
|
(FreeBSD >= 10).
|
||||||
|
|
||||||
|
|
||||||
|
5.2.13 (2024-05-29)
|
||||||
|
|
||||||
|
* liblzma:
|
||||||
|
|
||||||
|
- lzma_index_append(): Fix an assertion failure that could be
|
||||||
|
triggered by a large unpadded_size argument. It was verified
|
||||||
|
that there was no other bug than the assertion failure.
|
||||||
|
|
||||||
|
- lzma_index_decoder() and lzma_index_buffer_decode(): Fix
|
||||||
|
a missing output pointer initialization (*i = NULL) if the
|
||||||
|
functions are called with invalid arguments. The API docs
|
||||||
|
say that such an initialization is always done. In practice
|
||||||
|
this matters very little because the problem can only occur
|
||||||
|
if the calling application has a bug and these functions
|
||||||
|
return LZMA_PROG_ERROR.
|
||||||
|
|
||||||
|
- Fix C standard conformance with function pointer types.
|
||||||
|
This newly showed up with Clang 17 with -fsanitize=undefined.
|
||||||
|
There are no bug reports about this.
|
||||||
|
|
||||||
|
- Fix building with NVIDIA HPC SDK.
|
||||||
|
|
||||||
|
- Fix building with Windows Vista threads and --enable-small.
|
||||||
|
(CMake build doesn't support ENABLE_SMALL in XZ Utils 5.2.x.)
|
||||||
|
|
||||||
|
* xz:
|
||||||
|
|
||||||
|
- Fix a C standard conformance issue in --block-list parsing
|
||||||
|
(arithmetic on a null pointer).
|
||||||
|
|
||||||
|
- Fix a warning from GNU groff when processing the man page:
|
||||||
|
"warning: cannot select font 'CW'"
|
||||||
|
|
||||||
|
- Windows: Handle special files such as "con" or "nul". Earlier
|
||||||
|
the following wrote "foo" to the console and deleted the input
|
||||||
|
file "con_xz":
|
||||||
|
|
||||||
|
echo foo | xz > con_xz
|
||||||
|
xz --suffix=_xz --decompress con_xz
|
||||||
|
|
||||||
|
- Windows: Fix an issue that prevented reading from or writing
|
||||||
|
to non-terminal character devices like NUL.
|
||||||
|
|
||||||
|
* xzless:
|
||||||
|
|
||||||
|
- With "less" version 451 and later, use "||-" instead of "|-"
|
||||||
|
in the environment variable LESSOPEN. This way compressed
|
||||||
|
files that contain no uncompressed data are shown correctly
|
||||||
|
as empty.
|
||||||
|
|
||||||
|
- With "less" version 632 and later, use --show-preproc-errors
|
||||||
|
to make "less" show a warning on decompression errors.
|
||||||
|
|
||||||
|
* Build systems:
|
||||||
|
|
||||||
|
- Add a new line to liblzma.pc for MSYS2 (Windows):
|
||||||
|
|
||||||
|
Cflags.private: -DLZMA_API_STATIC
|
||||||
|
|
||||||
|
When compiling code that will link against static liblzma,
|
||||||
|
the LZMA_API_STATIC macro needs to be defined on Windows.
|
||||||
|
|
||||||
|
- Autotools (configure):
|
||||||
|
|
||||||
|
* Symbol versioning variant can now be overridden with
|
||||||
|
--enable-symbol-versions. Documentation in INSTALL was
|
||||||
|
updated to match.
|
||||||
|
|
||||||
|
- CMake:
|
||||||
|
|
||||||
|
* Fix a bug that prevented other projects from including
|
||||||
|
liblzma multiple times using find_package().
|
||||||
|
|
||||||
|
* Fix a bug where configuring CMake multiple times resulted
|
||||||
|
in HAVE_CLOCK_GETTIME and HAVE_CLOCK_MONOTONIC not being
|
||||||
|
defined.
|
||||||
|
|
||||||
|
* Fix the build with MinGW-w64-based Clang/LLVM 17.
|
||||||
|
llvm-windres now has more accurate GNU windres emulation
|
||||||
|
so the GNU windres workaround from 5.4.1 is needed with
|
||||||
|
llvm-windres version 17 too.
|
||||||
|
|
||||||
|
* The import library on Windows is now properly named
|
||||||
|
"liblzma.dll.a" instead of "libliblzma.dll.a"
|
||||||
|
|
||||||
|
* Add large file support by default for platforms that
|
||||||
|
need it to handle files larger than 2 GiB. This includes
|
||||||
|
MinGW-w64, even 64-bit builds.
|
||||||
|
|
||||||
|
* Linux on MicroBlaze is handled specially now. This
|
||||||
|
matches the changes made to the Autotools-based build
|
||||||
|
in XZ Utils 5.4.2 and 5.2.11.
|
||||||
|
|
||||||
|
* Disable symbol versioning on non-glibc Linux to match
|
||||||
|
what the Autotools build does. For example, symbol
|
||||||
|
versioning isn't enabled with musl.
|
||||||
|
|
||||||
|
* Symbol versioning variant can now be overridden by
|
||||||
|
setting SYMBOL_VERSIONING to "OFF", "generic", or
|
||||||
|
"linux".
|
||||||
|
|
||||||
|
* Documentation:
|
||||||
|
|
||||||
|
- Clarify the description of --disable-assembler in INSTALL.
|
||||||
|
The option only affects 32-bit x86 assembly usage.
|
||||||
|
|
||||||
|
- Don't install the TODO file as part of the documentation.
|
||||||
|
The file is out of date.
|
||||||
|
|
||||||
|
- Update home page URLs back to their old locations on
|
||||||
|
tukaani.org.
|
||||||
|
|
||||||
|
- Update maintainer info.
|
||||||
|
|
||||||
|
|
||||||
5.2.12 (2023-05-04)
|
5.2.12 (2023-05-04)
|
||||||
|
|
||||||
* Fixed a build system bug that prevented building liblzma as a
|
* Fixed a build system bug that prevented building liblzma as a
|
||||||
|
|
|
||||||
19
PACKAGERS
19
PACKAGERS
|
|
@ -44,8 +44,8 @@ Information to packagers of XZ Utils
|
||||||
lzmadec binary for compatibility with LZMA Utils
|
lzmadec binary for compatibility with LZMA Utils
|
||||||
liblzma liblzma.so.*
|
liblzma liblzma.so.*
|
||||||
liblzma-devel liblzma.so, liblzma.a, API headers
|
liblzma-devel liblzma.so, liblzma.a, API headers
|
||||||
liblzma-doc Doxygen-generated liblzma API docs (HTML),
|
liblzma-doc Example programs and, if enabled at build time,
|
||||||
example programs
|
Doxygen-generated liblzma API docs (HTML)
|
||||||
|
|
||||||
|
|
||||||
2. Package description
|
2. Package description
|
||||||
|
|
@ -170,13 +170,14 @@ Information to packagers of XZ Utils
|
||||||
can be replaced with a symlink if your distro ships with shared
|
can be replaced with a symlink if your distro ships with shared
|
||||||
copies of the common license texts.
|
copies of the common license texts.
|
||||||
|
|
||||||
The Doxygen-generated documentation (HTML) for the liblzma API
|
The Doxygen-generated liblzma API documentation (HTML) is built and
|
||||||
headers is included in the source release and will be installed by
|
installed if the configure option --enable-doxygen is used (it's
|
||||||
"make install" to $docdir/api. All JavaScript is removed to
|
disabled by default). This requires that Doxygen is available. The
|
||||||
simplify license compliance and to reduce the install size. If the
|
API documentation is installed by "make install" to $docdir/api.
|
||||||
liblzma API documentation is not desired, either run configure with
|
|
||||||
--disable-doc or remove the doc/api directory before running
|
NOTE: The files generated by Doxygen include content from
|
||||||
"make install".
|
Doxygen itself. Check the license info before distributing
|
||||||
|
the Doxygen-generated files.
|
||||||
|
|
||||||
|
|
||||||
6. Extra files
|
6. Extra files
|
||||||
|
|
|
||||||
129
README
129
README
|
|
@ -10,6 +10,7 @@ XZ Utils
|
||||||
2. Version numbering
|
2. Version numbering
|
||||||
3. Reporting bugs
|
3. Reporting bugs
|
||||||
4. Translations
|
4. Translations
|
||||||
|
4.1. Testing translations
|
||||||
5. Other implementations of the .xz format
|
5. Other implementations of the .xz format
|
||||||
6. Contact information
|
6. Contact information
|
||||||
|
|
||||||
|
|
@ -79,8 +80,6 @@ XZ Utils
|
||||||
COPYING.GPLv2 GNU General Public License version 2
|
COPYING.GPLv2 GNU General Public License version 2
|
||||||
COPYING.GPLv3 GNU General Public License version 3
|
COPYING.GPLv3 GNU General Public License version 3
|
||||||
COPYING.LGPLv2.1 GNU Lesser General Public License version 2.1
|
COPYING.LGPLv2.1 GNU Lesser General Public License version 2.1
|
||||||
COPYING.CC-BY-SA-4.0 Creative Commons Attribution-ShareAlike 4.0
|
|
||||||
International Public License
|
|
||||||
|
|
||||||
AUTHORS The main authors of XZ Utils
|
AUTHORS The main authors of XZ Utils
|
||||||
THANKS Incomplete list of people who have helped making
|
THANKS Incomplete list of people who have helped making
|
||||||
|
|
@ -97,9 +96,9 @@ XZ Utils
|
||||||
|
|
||||||
The command-line tools are documented as man pages. In source code
|
The command-line tools are documented as man pages. In source code
|
||||||
releases (and possibly also in some binary packages), the man pages
|
releases (and possibly also in some binary packages), the man pages
|
||||||
are also provided in plain text (ASCII only) and PDF formats in the
|
are also provided in plain text (ASCII only) format in the directory
|
||||||
directory "doc/man" to make the man pages more accessible to those
|
"doc/man" to make the man pages more accessible to those whose
|
||||||
whose operating system doesn't provide an easy way to view man pages.
|
operating system doesn't provide an easy way to view man pages.
|
||||||
|
|
||||||
|
|
||||||
1.3. Documentation for liblzma
|
1.3. Documentation for liblzma
|
||||||
|
|
@ -205,77 +204,47 @@ XZ Utils
|
||||||
|
|
||||||
https://translationproject.org/html/translators.html
|
https://translationproject.org/html/translators.html
|
||||||
|
|
||||||
Below are notes and testing instructions specific to xz
|
Updates to translations won't be accepted by methods that bypass
|
||||||
translations.
|
the Translation Project because there is a risk of duplicate work:
|
||||||
|
translation updates made in the xz repository aren't seen by the
|
||||||
|
translators in the Translation Project. If you have found bugs in
|
||||||
|
a translation, please report them to the Language-Team address
|
||||||
|
which can be found near the beginning of the PO file.
|
||||||
|
|
||||||
Testing can be done by installing xz into a temporary directory:
|
If you find language problems in the original English strings,
|
||||||
|
feel free to suggest improvements. Ask if something is unclear.
|
||||||
|
|
||||||
|
|
||||||
|
4.1. Testing translations
|
||||||
|
|
||||||
|
Testing can be done by installing xz into a temporary directory.
|
||||||
|
|
||||||
|
If building from Git repository (not tarball), generate the
|
||||||
|
Autotools files:
|
||||||
|
|
||||||
|
./autogen.sh
|
||||||
|
|
||||||
|
Create a subdirectory for the build files. The tmp-build directory
|
||||||
|
can be deleted after testing.
|
||||||
|
|
||||||
|
mkdir tmp-build
|
||||||
|
cd tmp-build
|
||||||
|
../configure --disable-shared --enable-debug --prefix=$PWD/inst
|
||||||
|
|
||||||
|
Edit the .po file in the po directory. Then build and install to
|
||||||
|
the "tmp-build/inst" directory, and use translations.bash to see
|
||||||
|
how some of the messages look. Repeat these steps if needed:
|
||||||
|
|
||||||
./configure --disable-shared --prefix=/tmp/xz-test
|
|
||||||
# <Edit the .po file in the po directory.>
|
|
||||||
make -C po update-po
|
make -C po update-po
|
||||||
make install
|
make -j"$(nproc)" install
|
||||||
bash debug/translation.bash | less
|
bash ../debug/translation.bash | less
|
||||||
bash debug/translation.bash | less -S # For --list outputs
|
bash ../debug/translation.bash | less -S # For --list outputs
|
||||||
|
|
||||||
Repeat the above as needed (no need to re-run configure though).
|
To test other languages, set the LANGUAGE environment variable
|
||||||
|
before running translations.bash. The value should match the PO file
|
||||||
|
name without the .po suffix. Example:
|
||||||
|
|
||||||
Note especially the following:
|
export LANGUAGE=fi
|
||||||
|
|
||||||
- The output of --help and --long-help must look nice on
|
|
||||||
an 80-column terminal. It's OK to add extra lines if needed.
|
|
||||||
|
|
||||||
- In contrast, don't add extra lines to error messages and such.
|
|
||||||
They are often preceded with e.g. a filename on the same line,
|
|
||||||
so you have no way to predict where to put a \n. Let the terminal
|
|
||||||
do the wrapping even if it looks ugly. Adding new lines will be
|
|
||||||
even uglier in the generic case even if it looks nice in a few
|
|
||||||
limited examples.
|
|
||||||
|
|
||||||
- Be careful with column alignment in tables and table-like output
|
|
||||||
(--list, --list --verbose --verbose, --info-memory, --help, and
|
|
||||||
--long-help):
|
|
||||||
|
|
||||||
* All descriptions of options in --help should start in the
|
|
||||||
same column (but it doesn't need to be the same column as
|
|
||||||
in the English messages; just be consistent if you change it).
|
|
||||||
Check that both --help and --long-help look OK, since they
|
|
||||||
share several strings.
|
|
||||||
|
|
||||||
* --list --verbose and --info-memory print lines that have
|
|
||||||
the format "Description: %s". If you need a longer
|
|
||||||
description, you can put extra space between the colon
|
|
||||||
and %s. Then you may need to add extra space to other
|
|
||||||
strings too so that the result as a whole looks good (all
|
|
||||||
values start at the same column).
|
|
||||||
|
|
||||||
* The columns of the actual tables in --list --verbose --verbose
|
|
||||||
should be aligned properly. Abbreviate if necessary. It might
|
|
||||||
be good to keep at least 2 or 3 spaces between column headings
|
|
||||||
and avoid spaces in the headings so that the columns stand out
|
|
||||||
better, but this is a matter of opinion. Do what you think
|
|
||||||
looks best.
|
|
||||||
|
|
||||||
- Be careful to put a period at the end of a sentence when the
|
|
||||||
original version has it, and don't put it when the original
|
|
||||||
doesn't have it. Similarly, be careful with \n characters
|
|
||||||
at the beginning and end of the strings.
|
|
||||||
|
|
||||||
- Read the TRANSLATORS comments that have been extracted from the
|
|
||||||
source code and included in xz.pot. Some comments suggest
|
|
||||||
testing with a specific command which needs an .xz file. You
|
|
||||||
may use e.g. any tests/files/good-*.xz. However, these test
|
|
||||||
commands are included in translations.bash output, so reading
|
|
||||||
translations.bash output carefully can be enough.
|
|
||||||
|
|
||||||
- If you find language problems in the original English strings,
|
|
||||||
feel free to suggest improvements. Ask if something is unclear.
|
|
||||||
|
|
||||||
- The translated messages should be understandable (sometimes this
|
|
||||||
may be a problem with the original English messages too). Don't
|
|
||||||
make a direct word-by-word translation from English especially if
|
|
||||||
the result doesn't sound good in your language.
|
|
||||||
|
|
||||||
Thanks for your help!
|
|
||||||
|
|
||||||
|
|
||||||
5. Other implementations of the .xz format
|
5. Other implementations of the .xz format
|
||||||
|
|
@ -290,21 +259,23 @@ XZ Utils
|
||||||
XZ Embedded is a limited implementation written for use in the Linux
|
XZ Embedded is a limited implementation written for use in the Linux
|
||||||
kernel, but it is also suitable for other embedded use.
|
kernel, but it is also suitable for other embedded use.
|
||||||
|
|
||||||
https://xz.tukaani.org/xz-embedded/
|
https://tukaani.org/xz/embedded.html
|
||||||
|
|
||||||
XZ for Java is a complete implementation written in pure Java.
|
XZ for Java is a complete implementation written in pure Java.
|
||||||
|
|
||||||
https://xz.tukaani.org/xz-for-java/
|
https://tukaani.org/xz/java.html
|
||||||
|
|
||||||
|
|
||||||
6. Contact information
|
6. Contact information
|
||||||
----------------------
|
----------------------
|
||||||
|
|
||||||
If you have questions, bug reports, patches etc. related to XZ Utils,
|
XZ Utils in general:
|
||||||
the project maintainers Lasse Collin and Jia Tan can be reached via
|
- Home page: https://tukaani.org/xz/
|
||||||
<xz@tukaani.org>.
|
- Email to maintainer(s): xz@tukaani.org
|
||||||
|
- IRC: #tukaani on Libera Chat
|
||||||
|
- GitHub: https://github.com/tukaani-project/xz
|
||||||
|
|
||||||
You might find Lasse also from #tukaani on Libera Chat (IRC).
|
Lead maintainer:
|
||||||
The nick is Larhzu. The channel tends to be pretty quiet,
|
- Email: Lasse Collin <lasse.collin@tukaani.org>
|
||||||
so just ask your question and someone might wake up.
|
- IRC: Larhzu on Libera Chat
|
||||||
|
|
||||||
|
|
|
||||||
392
THANKS
392
THANKS
|
|
@ -3,176 +3,252 @@ Thanks
|
||||||
======
|
======
|
||||||
|
|
||||||
Some people have helped more, some less, but nevertheless everyone's help
|
Some people have helped more, some less, but nevertheless everyone's help
|
||||||
has been important. :-) In alphabetical order:
|
has been important. :-)
|
||||||
- Mark Adler
|
|
||||||
- Kian-Meng Ang
|
|
||||||
- H. Peter Anvin
|
|
||||||
- Jeff Bastian
|
|
||||||
- Nelson H. F. Beebe
|
|
||||||
- Karl Beldan
|
|
||||||
- Karl Berry
|
|
||||||
- Anders F. Björklund
|
|
||||||
- Emmanuel Blot
|
|
||||||
- Melanie Blower
|
|
||||||
- Alexander Bluhm
|
|
||||||
- Martin Blumenstingl
|
|
||||||
- Ben Boeckel
|
|
||||||
- Jakub Bogusz
|
|
||||||
- Adam Borowski
|
- Adam Borowski
|
||||||
- Maarten Bosmans
|
- Adam Walling
|
||||||
- Lukas Braune
|
|
||||||
- Benjamin Buch
|
|
||||||
- Trent W. Buck
|
|
||||||
- Kevin R. Bulgrien
|
|
||||||
- James Buren
|
|
||||||
- David Burklund
|
|
||||||
- Frank Busse
|
|
||||||
- Daniel Mealha Cabrita
|
|
||||||
- Milo Casagrande
|
|
||||||
- Marek Černocký
|
|
||||||
- Tomer Chachamu
|
|
||||||
- Vitaly Chikunov
|
|
||||||
- Antoine Cœur
|
|
||||||
- Gabi Davar
|
|
||||||
- İhsan Doğan
|
|
||||||
- Chris Donawa
|
|
||||||
- Andrew Dudman
|
|
||||||
- Markus Duft
|
|
||||||
- İsmail Dönmez
|
|
||||||
- Paul Eggert
|
|
||||||
- Robert Elz
|
|
||||||
- Gilles Espinasse
|
|
||||||
- Denis Excoffier
|
|
||||||
- Vincent Fazio
|
|
||||||
- Michael Felt
|
|
||||||
- Michael Fox
|
|
||||||
- Mike Frysinger
|
|
||||||
- Daniel Richard G.
|
|
||||||
- Tomasz Gajc
|
|
||||||
- Bjarni Ingi Gislason
|
|
||||||
- John Paul Adrian Glaubitz
|
|
||||||
- Bill Glessner
|
|
||||||
- Matthew Good
|
|
||||||
- Michał Górny
|
|
||||||
- Jason Gorski
|
|
||||||
- Juan Manuel Guerrero
|
|
||||||
- Gabriela Gutierrez
|
|
||||||
- Diederik de Haas
|
|
||||||
- Joachim Henke
|
|
||||||
- Christian Hesse
|
|
||||||
- Vincenzo Innocente
|
|
||||||
- Peter Ivanov
|
|
||||||
- Nicholas Jackson
|
|
||||||
- Sam James
|
|
||||||
- Hajin Jang
|
|
||||||
- Hans Jansen
|
|
||||||
- Jouk Jansen
|
|
||||||
- Jun I Jin
|
|
||||||
- Kiyoshi Kanazawa
|
|
||||||
- Joona Kannisto
|
|
||||||
- Per Øyvind Karlsen
|
|
||||||
- Iouri Kharon
|
|
||||||
- Thomas Klausner
|
|
||||||
- Richard Koch
|
|
||||||
- Anton Kochkov
|
|
||||||
- Ville Koskinen
|
|
||||||
- Marcin Kowalczyk
|
|
||||||
- Jan Kratochvil
|
|
||||||
- Christian Kujau
|
|
||||||
- Stephan Kulow
|
|
||||||
- Ilya Kurdyukov
|
|
||||||
- Peter Lawler
|
|
||||||
- James M Leddy
|
|
||||||
- Kelvin Lee
|
|
||||||
- Vincent Lefevre
|
|
||||||
- Hin-Tak Leung
|
|
||||||
- Andraž 'ruskie' Levstik
|
|
||||||
- Cary Lewis
|
|
||||||
- Wim Lewis
|
|
||||||
- Xin Li
|
|
||||||
- Eric Lindblad
|
|
||||||
- Lorenzo De Liso
|
|
||||||
- H.J. Lu
|
|
||||||
- Bela Lubkin
|
|
||||||
- Chenxi Mao
|
|
||||||
- Gregory Margo
|
|
||||||
- Julien Marrec
|
|
||||||
- Ed Maste
|
|
||||||
- Martin Matuška
|
|
||||||
- Ivan A. Melnikov
|
|
||||||
- Jim Meyering
|
|
||||||
- Arkadiusz Miskiewicz
|
|
||||||
- Nathan Moinvaziri
|
|
||||||
- Étienne Mollier
|
|
||||||
- Conley Moorhous
|
|
||||||
- Rafał Mużyło
|
|
||||||
- Adrien Nader
|
- Adrien Nader
|
||||||
- Evan Nemerson
|
|
||||||
- Hongbo Ni
|
|
||||||
- Jonathan Nieder
|
|
||||||
- Andre Noll
|
|
||||||
- Peter O'Gorman
|
|
||||||
- Dimitri Papadopoulos Orfanos
|
|
||||||
- Daniel Packard
|
|
||||||
- Filip Palian
|
|
||||||
- Peter Pallinger
|
|
||||||
- Rui Paulo
|
|
||||||
- Igor Pavlov
|
|
||||||
- Diego Elio Pettenò
|
|
||||||
- Elbert Pol
|
|
||||||
- Mikko Pouru
|
|
||||||
- Rich Prohaska
|
|
||||||
- Trần Ngọc Quân
|
|
||||||
- Pavel Raiskup
|
|
||||||
- Ole André Vadla Ravnås
|
|
||||||
- Eric S. Raymond
|
|
||||||
- Robert Readman
|
|
||||||
- Bernhard Reutner-Fischer
|
|
||||||
- Markus Rickert
|
|
||||||
- Cristian Rodríguez
|
|
||||||
- Christian von Roques
|
|
||||||
- Boud Roukema
|
|
||||||
- Torsten Rupp
|
|
||||||
- Stephen Sachs
|
|
||||||
- Jukka Salmi
|
|
||||||
- Agostino Sarubbo
|
- Agostino Sarubbo
|
||||||
|
- Alexander Bluhm
|
||||||
|
- Alexander M. Greenham
|
||||||
|
- Alexander Neumann
|
||||||
- Alexandre Sauvé
|
- Alexandre Sauvé
|
||||||
- Benno Schulenberg
|
- Alexey Tourbin
|
||||||
|
- Anders F. Björklund
|
||||||
|
- Andraž 'ruskie' Levstik
|
||||||
|
- Andre Noll
|
||||||
|
- Andreas K. Hüttel
|
||||||
|
- Andreas Müller
|
||||||
- Andreas Schwab
|
- Andreas Schwab
|
||||||
|
- Andreas Zieringer
|
||||||
|
- Andrej Skenderija
|
||||||
|
- Andres Freund
|
||||||
|
- Andrew Dudman
|
||||||
|
- Andrew Murray
|
||||||
|
- Antoine Cœur
|
||||||
|
- Anton Kochkov
|
||||||
|
- Antonio Diaz Diaz
|
||||||
|
- Arkadiusz Miskiewicz
|
||||||
|
- Asgeir Storesund Nilsen
|
||||||
|
- Aziz Chaudhry
|
||||||
|
- Bela Lubkin
|
||||||
|
- Ben Boeckel
|
||||||
|
- Benjamin Buch
|
||||||
|
- Benno Schulenberg
|
||||||
|
- Bernhard Reutner-Fischer
|
||||||
|
- Bert Wesarg
|
||||||
- Bhargava Shastry
|
- Bhargava Shastry
|
||||||
- Dan Shechter
|
- Bill Glessner
|
||||||
- Stuart Shelton
|
- Bjarni Ingi Gislason
|
||||||
- Sebastian Andrzej Siewior
|
- Boud Roukema
|
||||||
- Ville Skyttä
|
|
||||||
- Brad Smith
|
- Brad Smith
|
||||||
- Bruce Stark
|
- Bruce Stark
|
||||||
- Pippijn van Steenhoven
|
- Cary Lewis
|
||||||
- Martin Storsjö
|
|
||||||
- Jonathan Stott
|
|
||||||
- Dan Stromberg
|
|
||||||
- Jia Tan
|
|
||||||
- Vincent Torri
|
|
||||||
- Paul Townsend
|
|
||||||
- Mohammed Adnène Trojette
|
|
||||||
- Alexey Tourbin
|
|
||||||
- Taiki Tsunekawa
|
|
||||||
- Maksym Vatsyk
|
|
||||||
- Loganaden Velvindron
|
|
||||||
- Patrick J. Volkerding
|
|
||||||
- Martin Väth
|
|
||||||
- Adam Walling
|
|
||||||
- Jeffrey Walton
|
|
||||||
- Christian Weisgerber
|
|
||||||
- Dan Weiss
|
|
||||||
- Bert Wesarg
|
|
||||||
- Fredrik Wikstrom
|
|
||||||
- Jim Wilcoxson
|
|
||||||
- Ralf Wildenhues
|
|
||||||
- Charles Wilson
|
- Charles Wilson
|
||||||
|
- Chenxi Mao
|
||||||
|
- Chien Wong
|
||||||
|
- Chris Donawa
|
||||||
|
- Chris McCrohan
|
||||||
|
- Christian Hesse
|
||||||
|
- Christian Kujau
|
||||||
|
- Christian von Roques
|
||||||
|
- Christian Weisgerber
|
||||||
|
- Christoph Junghans
|
||||||
|
- Collin Funk
|
||||||
|
- Conley Moorhous
|
||||||
|
- Cristian Rodríguez
|
||||||
|
- Cristiano Ceglia
|
||||||
|
- Dan Shechter
|
||||||
|
- Dan Stromberg
|
||||||
|
- Dan Weiss
|
||||||
|
- Daniel Leonard
|
||||||
|
- Daniel Mealha Cabrita
|
||||||
|
- Daniel Packard
|
||||||
|
- Daniel Richard G.
|
||||||
|
- David Burklund
|
||||||
|
- Denis Excoffier
|
||||||
|
- Derwin McGeary
|
||||||
|
- Dexter Castor Döpping
|
||||||
|
- Diederik de Haas
|
||||||
|
- Diego Elio Pettenò
|
||||||
|
- Dimitri Papadopoulos Orfanos
|
||||||
|
- Dirk Müller
|
||||||
|
- Douglas Thor
|
||||||
|
- Ed Maste
|
||||||
|
- Elbert Pol
|
||||||
|
- Eli Schwartz
|
||||||
|
- Elijah Almeida Coimbra
|
||||||
|
- Émilie Labbé
|
||||||
|
- Emmanuel Blot
|
||||||
|
- Eric Lindblad
|
||||||
|
- Eric S. Raymond
|
||||||
|
- Étienne Mollier
|
||||||
|
- Evan Nemerson
|
||||||
|
- Fangrui Song
|
||||||
|
- Felix Collin
|
||||||
|
- Filip Palian
|
||||||
|
- Firas Khalil Khana
|
||||||
|
- François Etcheverry
|
||||||
|
- Frank Busse
|
||||||
|
- Frank Prochnow
|
||||||
|
- Fredrik Wikstrom
|
||||||
|
- Gabi Davar
|
||||||
|
- Gabriela Gutierrez
|
||||||
|
- Gilles Espinasse
|
||||||
|
- Gregory Margo
|
||||||
|
- Guillaume Outters
|
||||||
|
- Guiorgy Potskhishvili
|
||||||
|
- H. Peter Anvin
|
||||||
|
- Hajin Jang
|
||||||
|
- Hans Jansen
|
||||||
|
- Harri K. Koskinen
|
||||||
|
- Hin-Tak Leung
|
||||||
|
- H.J. Lu
|
||||||
|
- Hongbo Ni
|
||||||
|
- Igor Pavlov
|
||||||
|
- İhsan Doğan
|
||||||
|
- Ilya Kurdyukov
|
||||||
|
- Iouri Kharon
|
||||||
|
- İsmail Dönmez
|
||||||
|
- Ivan A. Melnikov
|
||||||
|
- Jakub Bogusz
|
||||||
|
- James Buren
|
||||||
|
- James M Leddy
|
||||||
|
- Jan Kratochvil
|
||||||
|
- Jan Terje Hansen
|
||||||
|
- Jason Gorski
|
||||||
|
- Jeff Bastian
|
||||||
|
- Jeffrey Walton
|
||||||
|
- Jeroen Roovers
|
||||||
|
- Jim Meyering
|
||||||
|
- Jim Wilcoxson
|
||||||
|
- Joachim Henke
|
||||||
|
- John Paul Adrian Glaubitz
|
||||||
|
- Jonathan Nieder
|
||||||
|
- Jonathan Stott
|
||||||
|
- Joona Kannisto
|
||||||
|
- Jouk Jansen
|
||||||
|
- Juan Manuel Guerrero
|
||||||
|
- Jukka Salmi
|
||||||
|
- Julien Marrec
|
||||||
|
- Jun I Jin
|
||||||
|
- Kai Pastor
|
||||||
|
- Karl Beldan
|
||||||
|
- Karl Berry
|
||||||
|
- Keith Patton
|
||||||
|
- Kelvin Lee
|
||||||
|
- Kevin R. Bulgrien
|
||||||
|
- Kian-Meng Ang
|
||||||
|
- Kim Jinyeong
|
||||||
|
- Kirill A. Korinsky
|
||||||
|
- Kiyoshi Kanazawa
|
||||||
- Lars Wirzenius
|
- Lars Wirzenius
|
||||||
|
- Li Chenggang
|
||||||
|
- Lizandro Heredia
|
||||||
|
- Loganaden Velvindron
|
||||||
|
- Lorenzo De Liso
|
||||||
|
- Lukas Braune
|
||||||
|
- Maarten Bosmans
|
||||||
|
- Maksym Vatsyk
|
||||||
|
- Marcin Kowalczyk
|
||||||
|
- Marcus Comstedt
|
||||||
|
- Marcus Tillmanns
|
||||||
|
- Marek Černocký
|
||||||
|
- Mark Adler
|
||||||
|
- Mark Wielaard
|
||||||
|
- Markus Duft
|
||||||
|
- Markus Rickert
|
||||||
|
- Martin Blumenstingl
|
||||||
|
- Martin Matuška
|
||||||
|
- Martin Storsjö
|
||||||
|
- Martin Väth
|
||||||
|
- Mathieu Vachon
|
||||||
|
- Matthew Good
|
||||||
|
- Matthieu Rakotojaona
|
||||||
|
- Melanie Blower
|
||||||
|
- Michael Felt
|
||||||
|
- Michael Fox
|
||||||
|
- Michał Górny
|
||||||
|
- Mike Frysinger
|
||||||
|
- Mikko Pouru
|
||||||
|
- Milo Casagrande
|
||||||
|
- Mohammed Adnène Trojette
|
||||||
|
- Nathan Moinvaziri
|
||||||
|
- Nelson H. F. Beebe
|
||||||
|
- Nicholas Jackson
|
||||||
|
- Ole André Vadla Ravnås
|
||||||
|
- Orange Tsai
|
||||||
|
- Orgad Shaneh
|
||||||
|
- Patrick J. Volkerding
|
||||||
|
- Paul Eggert
|
||||||
|
- Paul Townsend
|
||||||
|
- Pavel Raiskup
|
||||||
|
- Per Øyvind Karlsen
|
||||||
|
- Peter Ivanov
|
||||||
|
- Peter Lawler
|
||||||
|
- Peter O'Gorman
|
||||||
|
- Peter Pallinger
|
||||||
|
- Peter Seiderer
|
||||||
|
- Pierre-Yves Martin
|
||||||
- Pilorz Wojciech
|
- Pilorz Wojciech
|
||||||
|
- Pippijn van Steenhoven
|
||||||
|
- Rafał Mużyło
|
||||||
|
- Rainer Müller
|
||||||
|
- Ralf Wildenhues
|
||||||
|
- Rich Prohaska
|
||||||
|
- Richard Koch
|
||||||
|
- Richard W.M. Jones
|
||||||
|
- Robert Elz
|
||||||
|
- Robert Readman
|
||||||
|
- Roel Bouckaert
|
||||||
|
- Ron Desmond
|
||||||
|
- Ruarí Ødegaard
|
||||||
|
- Rui Paulo
|
||||||
|
- Ryan Colyer
|
||||||
- Ryan Young
|
- Ryan Young
|
||||||
- Andreas Zieringer
|
- Sam James
|
||||||
|
- Scott McAllister
|
||||||
|
- Sean Fenian
|
||||||
|
- Sebastian Andrzej Siewior
|
||||||
|
- Sergey Kosukhin
|
||||||
|
- Simon Josefsson
|
||||||
|
- Siteshwar Vashisht
|
||||||
|
- Steffen Nurpmeso
|
||||||
|
- Stephan Kulow
|
||||||
|
- Stephen Sachs
|
||||||
|
- Stuart Shelton
|
||||||
|
- Taiki Tsunekawa
|
||||||
|
- Thomas Klausner
|
||||||
|
- Tobias Lahrmann Hansen
|
||||||
|
- Tobias Stoeckmann
|
||||||
|
- Tomasz Gajc
|
||||||
|
- Tomer Chachamu
|
||||||
|
- Torsten Rupp
|
||||||
|
- Trần Ngọc Quân
|
||||||
|
- Trent W. Buck
|
||||||
|
- Victoria Alexia
|
||||||
|
- Vijay Sarvepalli
|
||||||
|
- Ville Koskinen
|
||||||
|
- Ville Skyttä
|
||||||
|
- Vincent Cruz
|
||||||
|
- Vincent Fazio
|
||||||
|
- Vincent Lefevre
|
||||||
|
- Vincent Torri
|
||||||
|
- Vincent Wixsom
|
||||||
|
- Vincenzo Innocente
|
||||||
|
- Vitaly Chikunov
|
||||||
|
- Wim Lewis
|
||||||
|
- Xi Ruoyao
|
||||||
|
- Xin Li
|
||||||
|
- Yifeng Li
|
||||||
|
- 榆柳松 (ZhengSen Wang)
|
||||||
|
|
||||||
|
Companies:
|
||||||
|
- Google
|
||||||
|
- Sandfly Security
|
||||||
|
|
||||||
|
Other credits:
|
||||||
|
- cleemy desu wayo working with Trend Micro Zero Day Initiative
|
||||||
|
- Orange Tsai and splitline from DEVCORE Research Team
|
||||||
|
|
||||||
Also thanks to all the people who have participated in the Tukaani project.
|
Also thanks to all the people who have participated in the Tukaani project.
|
||||||
|
|
||||||
|
|
|
||||||
25
TODO
25
TODO
|
|
@ -5,12 +5,7 @@ XZ Utils To-Do List
|
||||||
Known bugs
|
Known bugs
|
||||||
----------
|
----------
|
||||||
|
|
||||||
The test suite is too incomplete.
|
The test suite is incomplete.
|
||||||
|
|
||||||
If the memory usage limit is less than about 13 MiB, xz is unable to
|
|
||||||
automatically scale down the compression settings enough even though
|
|
||||||
it would be possible by switching from BT2/BT3/BT4 match finder to
|
|
||||||
HC3/HC4.
|
|
||||||
|
|
||||||
XZ Utils compress some files significantly worse than LZMA Utils.
|
XZ Utils compress some files significantly worse than LZMA Utils.
|
||||||
This is due to faster compression presets used by XZ Utils, and
|
This is due to faster compression presets used by XZ Utils, and
|
||||||
|
|
@ -19,9 +14,6 @@ Known bugs
|
||||||
compress extremely well, so going from compression ratio of 0.003
|
compress extremely well, so going from compression ratio of 0.003
|
||||||
to 0.004 means big relative increase in the compressed file size.
|
to 0.004 means big relative increase in the compressed file size.
|
||||||
|
|
||||||
xz doesn't quote unprintable characters when it displays file names
|
|
||||||
given on the command line.
|
|
||||||
|
|
||||||
tuklib_exit() doesn't block signals => EINTR is possible.
|
tuklib_exit() doesn't block signals => EINTR is possible.
|
||||||
|
|
||||||
If liblzma has created threads and fork() gets called, liblzma
|
If liblzma has created threads and fork() gets called, liblzma
|
||||||
|
|
@ -41,9 +33,6 @@ Missing features
|
||||||
be mostly useful when using a preset dictionary in LZMA2, but
|
be mostly useful when using a preset dictionary in LZMA2, but
|
||||||
it may have other uses too. Compare to deflateCopy() in zlib.
|
it may have other uses too. Compare to deflateCopy() in zlib.
|
||||||
|
|
||||||
Support LZMA_FINISH in raw decoder to indicate end of LZMA1 and
|
|
||||||
other streams that don't have an end of payload marker.
|
|
||||||
|
|
||||||
Adjust dictionary size when the input file size is known.
|
Adjust dictionary size when the input file size is known.
|
||||||
Maybe do this only if an option is given.
|
Maybe do this only if an option is given.
|
||||||
|
|
||||||
|
|
@ -67,9 +56,9 @@ Missing features
|
||||||
Support LZMA_FULL_FLUSH for lzma_stream_decoder() to stop at
|
Support LZMA_FULL_FLUSH for lzma_stream_decoder() to stop at
|
||||||
Block and Stream boundaries.
|
Block and Stream boundaries.
|
||||||
|
|
||||||
lzma_strerror() to convert lzma_ret to human readable form?
|
Error codes from lzma_code() aren't very specific. A more detailed
|
||||||
This is tricky, because the same error codes are used with
|
error message (string) could be provided too. It could be returned
|
||||||
slightly different meanings, and this cannot be fixed anymore.
|
by a new function or use a currently-reserved member of lzma_stream.
|
||||||
|
|
||||||
Make it possible to adjust LZMA2 options in the middle of a Block
|
Make it possible to adjust LZMA2 options in the middle of a Block
|
||||||
so that the encoding speed vs. compression ratio can be optimized
|
so that the encoding speed vs. compression ratio can be optimized
|
||||||
|
|
@ -97,9 +86,3 @@ Documentation
|
||||||
|
|
||||||
Document the LZMA1 and LZMA2 algorithms.
|
Document the LZMA1 and LZMA2 algorithms.
|
||||||
|
|
||||||
|
|
||||||
Miscellaneous
|
|
||||||
------------
|
|
||||||
|
|
||||||
Try to get the media type for .xz registered at IANA.
|
|
||||||
|
|
||||||
|
|
|
||||||
18
autogen.sh
18
autogen.sh
|
|
@ -17,14 +17,12 @@ ${AUTOCONF:-autoconf}
|
||||||
${AUTOHEADER:-autoheader}
|
${AUTOHEADER:-autoheader}
|
||||||
${AUTOMAKE:-automake} -acf --foreign
|
${AUTOMAKE:-automake} -acf --foreign
|
||||||
|
|
||||||
# Generate the translated man pages and the doxygen documentation if the
|
# Generate the translated man pages if the "po4a" tool is available.
|
||||||
# "po4a" and "doxygen" tools are available.
|
|
||||||
# This is *NOT* done by "autoreconf -fi" or when "make" is run.
|
# This is *NOT* done by "autoreconf -fi" or when "make" is run.
|
||||||
# Pass --no-po4a or --no-doxygen to this script to skip these steps.
|
# Pass --no-po4a to this script to skip this step.
|
||||||
# It can be useful when you know that po4a or doxygen aren't available and
|
# It can be useful when you know that po4a isn't available and
|
||||||
# don't want autogen.sh to exit with non-zero exit status.
|
# don't want autogen.sh to exit with non-zero exit status.
|
||||||
generate_po4a="y"
|
generate_po4a="y"
|
||||||
generate_doxygen="y"
|
|
||||||
|
|
||||||
for arg in "$@"
|
for arg in "$@"
|
||||||
do
|
do
|
||||||
|
|
@ -32,10 +30,6 @@ do
|
||||||
"--no-po4a")
|
"--no-po4a")
|
||||||
generate_po4a="n"
|
generate_po4a="n"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
"--no-doxygen")
|
|
||||||
generate_doxygen="n"
|
|
||||||
;;
|
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
@ -45,10 +39,4 @@ if test "$generate_po4a" != "n"; then
|
||||||
cd ..
|
cd ..
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test "$generate_doxygen" != "n"; then
|
|
||||||
cd doxygen
|
|
||||||
sh update-doxygen
|
|
||||||
cd ..
|
|
||||||
fi
|
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ USAGE="Usage: $0
|
||||||
-a [autogen flags]
|
-a [autogen flags]
|
||||||
-b [autotools|cmake]
|
-b [autotools|cmake]
|
||||||
-c [crc32|crc64|sha256]
|
-c [crc32|crc64|sha256]
|
||||||
-d [encoders|decoders|bcj|delta|threads|shared|nls|small|ifunc|clmul|sandbox]
|
-d [encoders|decoders|bcj|delta|threads|shared|nls|small|clmul|sandbox]
|
||||||
-f [CFLAGS]
|
-f [CFLAGS]
|
||||||
-l [destdir]
|
-l [destdir]
|
||||||
-m [compiler]
|
-m [compiler]
|
||||||
|
|
@ -41,20 +41,23 @@ THREADS="y"
|
||||||
SHARED="y"
|
SHARED="y"
|
||||||
NATIVE_LANG_SUPPORT="y"
|
NATIVE_LANG_SUPPORT="y"
|
||||||
SMALL="n"
|
SMALL="n"
|
||||||
IFUNC="y"
|
|
||||||
CLMUL="y"
|
CLMUL="y"
|
||||||
SANDBOX="y"
|
SANDBOX="y"
|
||||||
|
DOXYGEN="y"
|
||||||
SRC_DIR="$ABS_DIR/../"
|
SRC_DIR="$ABS_DIR/../"
|
||||||
DEST_DIR="$SRC_DIR/../xz_build"
|
DEST_DIR="$SRC_DIR/../xz_build"
|
||||||
PHASE="all"
|
PHASE="all"
|
||||||
ARTIFACTS_DIR_NAME="output"
|
ARTIFACTS_DIR_NAME="output"
|
||||||
|
|
||||||
|
[[ -z ${CPU_COUNT} ]] && { CPU_COUNT=$(nproc 2>/dev/null || sysctl -n hw.activecpu); }
|
||||||
|
[[ -z ${MAKEFLAGS} ]] && export MAKEFLAGS="-j${CPU_COUNT} -l${CPU_COUNT}"
|
||||||
|
[[ -z ${CFLAGS} ]] && export CFLAGS="-O2"
|
||||||
|
|
||||||
###################
|
###################
|
||||||
# Parse arguments #
|
# Parse arguments #
|
||||||
###################
|
###################
|
||||||
|
|
||||||
while getopts a:b:c:d:l:m:n:s:p:f:h opt; do
|
while getopts a:b:c:d:l:m:n:s:p:f:w:h opt; do
|
||||||
# b option can have either value "autotools" OR "cmake"
|
# b option can have either value "autotools" OR "cmake"
|
||||||
case ${opt} in
|
case ${opt} in
|
||||||
h)
|
h)
|
||||||
|
|
@ -87,9 +90,9 @@ while getopts a:b:c:d:l:m:n:s:p:f:h opt; do
|
||||||
shared) SHARED="n";;
|
shared) SHARED="n";;
|
||||||
nls) NATIVE_LANG_SUPPORT="n";;
|
nls) NATIVE_LANG_SUPPORT="n";;
|
||||||
small) SMALL="y";;
|
small) SMALL="y";;
|
||||||
ifunc) IFUNC="n";;
|
|
||||||
clmul) CLMUL="n";;
|
clmul) CLMUL="n";;
|
||||||
sandbox) SANDBOX="n";;
|
sandbox) SANDBOX="n";;
|
||||||
|
doxygen) DOXYGEN="n";;
|
||||||
*) echo "Invalid disable value: $disable_arg"; exit 1 ;;
|
*) echo "Invalid disable value: $disable_arg"; exit 1 ;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
@ -107,9 +110,15 @@ while getopts a:b:c:d:l:m:n:s:p:f:h opt; do
|
||||||
p) PHASE="$OPTARG"
|
p) PHASE="$OPTARG"
|
||||||
;;
|
;;
|
||||||
f)
|
f)
|
||||||
CFLAGS="$OPTARG"
|
CFLAGS+=" $OPTARG"
|
||||||
export CFLAGS
|
export CFLAGS
|
||||||
;;
|
;;
|
||||||
|
w) WRAPPER="$OPTARG"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Unsupported option: $opt"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
@ -163,15 +172,7 @@ then
|
||||||
CHECK_TYPE_TEMP=""
|
CHECK_TYPE_TEMP=""
|
||||||
for crc in $(echo "$CHECK_TYPE" | sed "s/,/ /g"); do
|
for crc in $(echo "$CHECK_TYPE" | sed "s/,/ /g"); do
|
||||||
case "$crc" in
|
case "$crc" in
|
||||||
# Remove "crc32" from cmake build, if specified.
|
crc32 | crc64 | sha256) ;;
|
||||||
crc32)
|
|
||||||
if [ "$BUILD_SYSTEM" = "cmake" ]
|
|
||||||
then
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
crc64) ;;
|
|
||||||
sha256) ;;
|
|
||||||
*) echo "Invalid check type: $crc"; exit 1 ;;
|
*) echo "Invalid check type: $crc"; exit 1 ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
|
@ -211,9 +212,18 @@ then
|
||||||
add_extra_option "$SHARED" "" "--disable-shared"
|
add_extra_option "$SHARED" "" "--disable-shared"
|
||||||
add_extra_option "$NATIVE_LANG_SUPPORT" "" "--disable-nls"
|
add_extra_option "$NATIVE_LANG_SUPPORT" "" "--disable-nls"
|
||||||
add_extra_option "$SMALL" "--enable-small" ""
|
add_extra_option "$SMALL" "--enable-small" ""
|
||||||
add_extra_option "$IFUNC" "" "--disable-ifunc"
|
|
||||||
add_extra_option "$CLMUL" "" "--disable-clmul-crc"
|
add_extra_option "$CLMUL" "" "--disable-clmul-crc"
|
||||||
add_extra_option "$SANDBOX" "" "--enable-sandbox=no"
|
add_extra_option "$SANDBOX" "" "--disable-sandbox"
|
||||||
|
add_extra_option "$DOXYGEN" "--enable-doxygen" ""
|
||||||
|
|
||||||
|
# Workaround a bug in too old config.guess. Version with
|
||||||
|
# timestamp='2022-05-08' would be needed but the autotools-dev
|
||||||
|
# package has 2022-01-09 in Ubuntu 22.04LTS and 24.04LTS. The
|
||||||
|
# bug breaks i386 assembler usage autodetection.
|
||||||
|
if "$SRC_DIR/build-aux/config.guess" | grep -q x86_64-pc-linux-gnux32
|
||||||
|
then
|
||||||
|
EXTRA_OPTIONS="$EXTRA_OPTIONS --build=i686-pc-linux-gnu"
|
||||||
|
fi
|
||||||
|
|
||||||
# Run configure script
|
# Run configure script
|
||||||
"$SRC_DIR"/configure --enable-werror --enable-checks="$CHECK_TYPE" $EXTRA_OPTIONS --config-cache
|
"$SRC_DIR"/configure --enable-werror --enable-checks="$CHECK_TYPE" $EXTRA_OPTIONS --config-cache
|
||||||
|
|
@ -227,26 +237,24 @@ then
|
||||||
add_to_filter_list "$BCJ" ";x86;powerpc;ia64;arm;armthumb;arm64;sparc;riscv"
|
add_to_filter_list "$BCJ" ";x86;powerpc;ia64;arm;armthumb;arm64;sparc;riscv"
|
||||||
add_to_filter_list "$DELTA" ";delta"
|
add_to_filter_list "$DELTA" ";delta"
|
||||||
|
|
||||||
add_extra_option "$THREADS" "-DENABLE_THREADS=ON" "-DENABLE_THREADS=OFF"
|
add_extra_option "$THREADS" "-DXZ_THREADS=yes" "-DXZ_THREADS=no"
|
||||||
|
|
||||||
# Disable MicroLZMA if encoders are not configured.
|
# Disable MicroLZMA if encoders are not configured.
|
||||||
add_extra_option "$ENCODERS" "-DENCODERS=$FILTER_LIST" "-DENCODERS= -DMICROLZMA_ENCODER=OFF"
|
add_extra_option "$ENCODERS" "-DXZ_ENCODERS=$FILTER_LIST" "-DXZ_ENCODERS= -DXZ_MICROLZMA_ENCODER=OFF"
|
||||||
|
|
||||||
# Disable MicroLZMA and lzip decoders if decoders are not configured.
|
# Disable MicroLZMA and lzip decoders if decoders are not configured.
|
||||||
add_extra_option "$DECODERS" "-DDECODERS=$FILTER_LIST" "-DDECODERS= -DMICROLZMA_DECODER=OFF -DLZIP_DECODER=OFF"
|
add_extra_option "$DECODERS" "-DXZ_DECODERS=$FILTER_LIST" "-DXZ_DECODERS= -DXZ_MICROLZMA_DECODER=OFF -DXZ_LZIP_DECODER=OFF"
|
||||||
|
|
||||||
# CMake disables the shared library by default.
|
# CMake disables the shared library by default.
|
||||||
add_extra_option "$SHARED" "-DBUILD_SHARED_LIBS=ON" ""
|
add_extra_option "$SHARED" "-DBUILD_SHARED_LIBS=ON" ""
|
||||||
|
|
||||||
add_extra_option "$SMALL" "-DHAVE_SMALL=ON" ""
|
add_extra_option "$NATIVE_LANG_SUPPORT" "" "-DXZ_NLS=OFF"
|
||||||
|
add_extra_option "$SMALL" "-DXZ_SMALL=ON" ""
|
||||||
if test -n "$CC" ; then
|
add_extra_option "$DOXYGEN" "-DXZ_DOXYGEN=ON" ""
|
||||||
EXTRA_OPTIONS="$EXTRA_OPTIONS -DCMAKE_C_COMPILER=$CC"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Remove old cache file to clear previous settings.
|
# Remove old cache file to clear previous settings.
|
||||||
rm -f "CMakeCache.txt"
|
rm -f "CMakeCache.txt"
|
||||||
cmake "$SRC_DIR/CMakeLists.txt" -B "$DEST_DIR" $EXTRA_OPTIONS -DADDITIONAL_CHECK_TYPES="$CHECK_TYPE" -G "Unix Makefiles"
|
cmake "$SRC_DIR/CMakeLists.txt" -B "$DEST_DIR" $EXTRA_OPTIONS -DXZ_CHECKS="$CHECK_TYPE" -G "Unix Makefiles"
|
||||||
cmake --build "$DEST_DIR"
|
cmake --build "$DEST_DIR"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
@ -263,7 +271,7 @@ then
|
||||||
autotools)
|
autotools)
|
||||||
cd "$DEST_DIR"
|
cd "$DEST_DIR"
|
||||||
# If the tests fail, copy the test logs into the artifacts folder
|
# If the tests fail, copy the test logs into the artifacts folder
|
||||||
if make check
|
if make check VERBOSE=1 LOG_COMPILER="$WRAPPER"
|
||||||
then
|
then
|
||||||
:
|
:
|
||||||
else
|
else
|
||||||
|
|
@ -274,7 +282,7 @@ then
|
||||||
;;
|
;;
|
||||||
cmake)
|
cmake)
|
||||||
cd "$DEST_DIR"
|
cd "$DEST_DIR"
|
||||||
if make test
|
if ${WRAPPER} make CTEST_OUTPUT_ON_FAILURE=1 test
|
||||||
then
|
then
|
||||||
:
|
:
|
||||||
else
|
else
|
||||||
|
|
@ -0,0 +1,177 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# SPDX-License-Identifier: 0BSD
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
#
|
||||||
|
# Look for missing license info in xz.git
|
||||||
|
#
|
||||||
|
# The project doesn't conform to the FSFE REUSE specification for now.
|
||||||
|
# Instead, this script helps in finding files that lack license info.
|
||||||
|
# Pass -v as an argument to get license info from all files in xz.git or,
|
||||||
|
# when .git isn't available, from files extracted from a release tarball
|
||||||
|
# (in case of a release tarball, the tree must be clean of any extra files).
|
||||||
|
#
|
||||||
|
# NOTE: This relies on non-POSIX xargs -0. It's supported on GNU and *BSDs.
|
||||||
|
#
|
||||||
|
###############################################################################
|
||||||
|
#
|
||||||
|
# Author: Lasse Collin
|
||||||
|
#
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
# Print good files too if -v is passed as an argument.
|
||||||
|
VERBOSE=false
|
||||||
|
case $1 in
|
||||||
|
'')
|
||||||
|
;;
|
||||||
|
-v)
|
||||||
|
VERBOSE=true
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: $0 [-v]"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
|
||||||
|
# Use the C locale so that sorting is always the same.
|
||||||
|
LC_ALL=C
|
||||||
|
export LC_ALL
|
||||||
|
|
||||||
|
|
||||||
|
# String to match the SPDX license identifier tag.
|
||||||
|
# Spell it here in a way that doesn't match regular grep patterns.
|
||||||
|
SPDX_LI='SPDX''-License-''Identifier'':'
|
||||||
|
|
||||||
|
# Pattern for files that don't contain SPDX tags but they are under
|
||||||
|
# a free license that isn't 0BSD.
|
||||||
|
PAT_UNTAGGED_MISC='^COPYING\.
|
||||||
|
^INSTALL\.generic$'
|
||||||
|
|
||||||
|
# Pattern for files that are 0BSD but don't contain SPDX tags.
|
||||||
|
# (The two file format specification files are public domain but
|
||||||
|
# they can be treated as 0BSD too.)
|
||||||
|
PAT_UNTAGGED_0BSD='^(.*/)?\.gitattributes$
|
||||||
|
^(.*/)?\.gitignore$
|
||||||
|
^\.github/SECURITY\.md$
|
||||||
|
^AUTHORS$
|
||||||
|
^COPYING$
|
||||||
|
^ChangeLog$
|
||||||
|
^INSTALL$
|
||||||
|
^NEWS$
|
||||||
|
^PACKAGERS$
|
||||||
|
^(.*/)?README$
|
||||||
|
^THANKS$
|
||||||
|
^TODO$
|
||||||
|
^(.*/)?[^/]+\.txt$
|
||||||
|
^doc/SHA256SUMS$
|
||||||
|
^po/LINGUAS$
|
||||||
|
^src/common/w32_application\.manifest$
|
||||||
|
^tests/xzgrep_expected_output$
|
||||||
|
^tests/files/[^/]+\.(lz|lzma|xz)$'
|
||||||
|
|
||||||
|
# Pattern for files that must be ignored when Git isn't available. This is
|
||||||
|
# useful when this script is run right after extracting a release tarball.
|
||||||
|
PAT_TARBALL_IGNORE='^(m4/)?[^/]*\.m4$
|
||||||
|
^(.*/)?Makefile\.in(\.in)?$
|
||||||
|
^(po|po4a)/.*[^.]..$
|
||||||
|
^ABOUT-NLS$
|
||||||
|
^build-aux/(config\..*|ltmain\.sh|[^.]*)$
|
||||||
|
^config\.h\.in$
|
||||||
|
^configure$'
|
||||||
|
|
||||||
|
|
||||||
|
# Go to the top source dir.
|
||||||
|
cd "$(dirname "$0")/.." || exit 1
|
||||||
|
|
||||||
|
# Get the list of files to check from git if possible.
|
||||||
|
# Otherwise list the whole source tree. This script should pass
|
||||||
|
# if it is run right after extracting a release tarball.
|
||||||
|
if test -d .git && type git > /dev/null 2>&1; then
|
||||||
|
FILES=$(git ls-files) || exit 1
|
||||||
|
IS_TARBALL=false
|
||||||
|
else
|
||||||
|
FILES=$(find . -type f) || exit 1
|
||||||
|
FILES=$(printf '%s\n' "$FILES" | sed 's,^\./,,')
|
||||||
|
IS_TARBALL=true
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Sort to keep the order consistent.
|
||||||
|
FILES=$(printf '%s\n' "$FILES" | sort)
|
||||||
|
|
||||||
|
|
||||||
|
# Find the tagged files.
|
||||||
|
TAGGED=$(printf '%s\n' "$FILES" \
|
||||||
|
| tr '\n' '\000' | xargs -0r grep -l "$SPDX_LI" --)
|
||||||
|
|
||||||
|
# Find the tagged 0BSD files.
|
||||||
|
TAGGED_0BSD=$(printf '%s\n' "$TAGGED" \
|
||||||
|
| tr '\n' '\000' | xargs -0r grep -l "$SPDX_LI 0BSD" --)
|
||||||
|
|
||||||
|
# Find the tagged non-0BSD files, that is, remove the 0BSD-tagged files
|
||||||
|
# from the list of tagged files.
|
||||||
|
TAGGED_MISC=$(printf '%s\n%s\n' "$TAGGED" "$TAGGED_0BSD" | sort | uniq -u)
|
||||||
|
|
||||||
|
|
||||||
|
# Remove the tagged files from the list.
|
||||||
|
FILES=$(printf '%s\n%s\n' "$FILES" "$TAGGED" | sort | uniq -u)
|
||||||
|
|
||||||
|
# Find the intentionally-untagged files.
|
||||||
|
UNTAGGED_0BSD=$(printf '%s\n' "$FILES" | grep -E "$PAT_UNTAGGED_0BSD")
|
||||||
|
UNTAGGED_MISC=$(printf '%s\n' "$FILES" | grep -E "$PAT_UNTAGGED_MISC")
|
||||||
|
|
||||||
|
# Remove the intentionally-untagged files from the list.
|
||||||
|
FILES=$(printf '%s\n' "$FILES" | grep -Ev \
|
||||||
|
-e "$PAT_UNTAGGED_0BSD" -e "$PAT_UNTAGGED_MISC")
|
||||||
|
|
||||||
|
|
||||||
|
# FIXME: Allow untagged translations if they have a public domain notice.
|
||||||
|
# These are old translations that haven't been updated after 2024-02-14.
|
||||||
|
# Eventually these should go away.
|
||||||
|
PD_PO=$(printf '%s\n' "$FILES" | grep '\.po$' | tr '\n' '\000' \
|
||||||
|
| xargs -0r grep -Fl '# This file is put in the public domain.' --)
|
||||||
|
|
||||||
|
if test -n "$PD_PO"; then
|
||||||
|
# Remove the public domain .po files from the list.
|
||||||
|
FILES=$(printf '%s\n%s\n' "$FILES" "$PD_PO" | sort | uniq -u)
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# Remove generated files from the list which don't have SPDX tags but which
|
||||||
|
# can be present in release tarballs. This step is skipped when the file list
|
||||||
|
# is from "git ls-files".
|
||||||
|
GENERATED=
|
||||||
|
if $IS_TARBALL; then
|
||||||
|
GENERATED=$(printf '%s\n' "$FILES" | grep -E "$PAT_TARBALL_IGNORE")
|
||||||
|
FILES=$(printf '%s\n' "$FILES" | grep -Ev "$PAT_TARBALL_IGNORE")
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if $VERBOSE; then
|
||||||
|
printf '# Tagged 0BSD files:\n%s\n\n' "$TAGGED_0BSD"
|
||||||
|
printf '# Intentionally untagged 0BSD:\n%s\n\n' "$UNTAGGED_0BSD"
|
||||||
|
|
||||||
|
# FIXME: Remove when no longer needed.
|
||||||
|
if test -n "$PD_PO"; then
|
||||||
|
printf '# Old public domain translations:\n%s\n\n' "$PD_PO"
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf '# Tagged non-0BSD files:\n%s\n\n' "$TAGGED_MISC"
|
||||||
|
printf '# Intentionally untagged miscellaneous: \n%s\n\n' \
|
||||||
|
"$UNTAGGED_MISC"
|
||||||
|
|
||||||
|
if test -n "$GENERATED"; then
|
||||||
|
printf '# Generated files whose license was NOT checked:\n%s\n\n' \
|
||||||
|
"$GENERATED"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# Look for files with an unknown license and set the exit status accordingly.
|
||||||
|
STATUS=0
|
||||||
|
if test -n "$FILES"; then
|
||||||
|
printf '# ERROR: Licensing is unclear:\n%s\n' "$FILES"
|
||||||
|
STATUS=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
exit "$STATUS"
|
||||||
|
|
@ -42,12 +42,12 @@ case $FORMAT in
|
||||||
groff -t -mandoc -Tutf8 -P-c | col -bx
|
groff -t -mandoc -Tutf8 -P-c | col -bx
|
||||||
;;
|
;;
|
||||||
ps)
|
ps)
|
||||||
sed "$SED_PD" | groff -dpaper=$PAPER -t -mandoc \
|
sed "$SED_PD" | groff -dpaper="$PAPER" -t -mandoc \
|
||||||
-rC1 -rS$FONT -Tps -P-p$PAPER
|
-rC1 -rS"$FONT" -Tps -P-p"$PAPER"
|
||||||
;;
|
;;
|
||||||
pdf)
|
pdf)
|
||||||
sed "$SED_PD" | groff -dpaper=$PAPER -t -mandoc \
|
sed "$SED_PD" | groff -dpaper="$PAPER" -t -mandoc \
|
||||||
-rC1 -rS$FONT -Tps -P-p$PAPER | ps2pdf - -
|
-rC1 -rS"$FONT" -Tps -P-p"$PAPER" | ps2pdf - -
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo 'Invalid arguments' >&2
|
echo 'Invalid arguments' >&2
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,5 @@ sed -n 's/LZMA_VERSION_STABILITY_ALPHA/alpha/
|
||||||
s/LZMA_VERSION_STABILITY_STABLE//
|
s/LZMA_VERSION_STABILITY_STABLE//
|
||||||
s/^#define LZMA_VERSION_[MPS][AIT][AJNT][A-Z]* //p' \
|
s/^#define LZMA_VERSION_[MPS][AIT][AJNT][A-Z]* //p' \
|
||||||
src/liblzma/api/lzma/version.h \
|
src/liblzma/api/lzma/version.h \
|
||||||
| tr '\n' '|' \
|
| sed 'N; N; N; s/\n/./; s/\n/./; s/\n//g' \
|
||||||
| sed 's/|/./; s/|/./; s/|//g' \
|
| tr -d '\012\015\025'
|
||||||
| tr -d '\r\n'
|
|
||||||
|
|
|
||||||
|
|
@ -26,23 +26,29 @@ endfunction()
|
||||||
|
|
||||||
# This is an over-simplified version of AC_USE_SYSTEM_EXTENSIONS in Autoconf
|
# This is an over-simplified version of AC_USE_SYSTEM_EXTENSIONS in Autoconf
|
||||||
# or gl_USE_SYSTEM_EXTENSIONS in gnulib.
|
# or gl_USE_SYSTEM_EXTENSIONS in gnulib.
|
||||||
macro(tuklib_use_system_extensions TARGET_OR_ALL)
|
#
|
||||||
if(NOT WIN32)
|
# NOTE: This is a macro because the changes to CMAKE_REQUIRED_DEFINITIONS
|
||||||
# FIXME? The Solaris-specific __EXTENSIONS__ should be conditional
|
# must be visible in the calling scope.
|
||||||
# even on Solaris. See gnulib: git log m4/extensions.m4.
|
macro(tuklib_use_system_extensions)
|
||||||
# FIXME? gnulib and autoconf.git has lots of new stuff.
|
if(NOT MSVC)
|
||||||
tuklib_add_definitions("${TARGET_OR_ALL}"
|
add_compile_definitions(
|
||||||
_GNU_SOURCE
|
_GNU_SOURCE # glibc, musl, mingw-w64
|
||||||
__EXTENSIONS__
|
_NETBSD_SOURCE # NetBSD, MINIX 3
|
||||||
_POSIX_PTHREAD_SEMANTICS
|
_OPENBSD_SOURCE # Also NetBSD!
|
||||||
_TANDEM_SOURCE
|
__EXTENSIONS__ # Solaris
|
||||||
_ALL_SOURCE
|
_POSIX_PTHREAD_SEMANTICS # Solaris
|
||||||
|
_DARWIN_C_SOURCE # macOS
|
||||||
|
_TANDEM_SOURCE # HP NonStop
|
||||||
|
_ALL_SOURCE # AIX, z/OS
|
||||||
)
|
)
|
||||||
|
|
||||||
list(APPEND CMAKE_REQUIRED_DEFINITIONS
|
list(APPEND CMAKE_REQUIRED_DEFINITIONS
|
||||||
-D_GNU_SOURCE
|
-D_GNU_SOURCE
|
||||||
|
-D_NETBSD_SOURCE
|
||||||
|
-D_OPENBSD_SOURCE
|
||||||
-D__EXTENSIONS__
|
-D__EXTENSIONS__
|
||||||
-D_POSIX_PTHREAD_SEMANTICS
|
-D_POSIX_PTHREAD_SEMANTICS
|
||||||
|
-D_DARWIN_C_SOURCE
|
||||||
-D_TANDEM_SOURCE
|
-D_TANDEM_SOURCE
|
||||||
-D_ALL_SOURCE
|
-D_ALL_SOURCE
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@
|
||||||
#############################################################################
|
#############################################################################
|
||||||
|
|
||||||
include("${CMAKE_CURRENT_LIST_DIR}/tuklib_common.cmake")
|
include("${CMAKE_CURRENT_LIST_DIR}/tuklib_common.cmake")
|
||||||
|
include(CMakePushCheckState)
|
||||||
include(CheckCSourceCompiles)
|
include(CheckCSourceCompiles)
|
||||||
include(CheckIncludeFile)
|
include(CheckIncludeFile)
|
||||||
|
|
||||||
|
|
@ -76,6 +77,7 @@ function(tuklib_cpucores_internal_check)
|
||||||
#
|
#
|
||||||
# We test sysctl() first and intentionally break the sysctl() test on QNX
|
# We test sysctl() first and intentionally break the sysctl() test on QNX
|
||||||
# so that sysctl() is never used on QNX.
|
# so that sysctl() is never used on QNX.
|
||||||
|
cmake_push_check_state()
|
||||||
check_include_file(sys/param.h HAVE_SYS_PARAM_H)
|
check_include_file(sys/param.h HAVE_SYS_PARAM_H)
|
||||||
if(HAVE_SYS_PARAM_H)
|
if(HAVE_SYS_PARAM_H)
|
||||||
list(APPEND CMAKE_REQUIRED_DEFINITIONS -DHAVE_SYS_PARAM_H)
|
list(APPEND CMAKE_REQUIRED_DEFINITIONS -DHAVE_SYS_PARAM_H)
|
||||||
|
|
@ -103,6 +105,7 @@ function(tuklib_cpucores_internal_check)
|
||||||
}
|
}
|
||||||
"
|
"
|
||||||
TUKLIB_CPUCORES_SYSCTL)
|
TUKLIB_CPUCORES_SYSCTL)
|
||||||
|
cmake_pop_check_state()
|
||||||
if(TUKLIB_CPUCORES_SYSCTL)
|
if(TUKLIB_CPUCORES_SYSCTL)
|
||||||
if(HAVE_SYS_PARAM_H)
|
if(HAVE_SYS_PARAM_H)
|
||||||
set(TUKLIB_CPUCORES_DEFINITIONS
|
set(TUKLIB_CPUCORES_DEFINITIONS
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,69 @@ include(CheckCSourceCompiles)
|
||||||
include(CheckIncludeFile)
|
include(CheckIncludeFile)
|
||||||
include(CheckSymbolExists)
|
include(CheckSymbolExists)
|
||||||
|
|
||||||
|
# An internal helper for tuklib_integer that attempts to detect if
|
||||||
|
# -mstrict-align or -mno-strict-align is in effect. This sets the
|
||||||
|
# cache variable TUKLIB_INTEGER_STRICT_ALIGN to ON if OBJDUMP_REGEX
|
||||||
|
# matches the objdump output of a check program. Otherwise it is set to OFF.
|
||||||
|
function(tuklib_integer_internal_strict_align OBJDUMP_REGEX)
|
||||||
|
if(NOT DEFINED TUKLIB_INTEGER_STRICT_ALIGN)
|
||||||
|
# Build a static library because then the function won't be optimized
|
||||||
|
# away, and there won't be any unrelated startup code either.
|
||||||
|
set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
|
||||||
|
|
||||||
|
# CMake >= 3.25 wouldn't require us to create a temporary file,
|
||||||
|
# but the following method is compatible with 3.20.
|
||||||
|
file(WRITE "${CMAKE_BINARY_DIR}/tuklib_integer_strict_align.c" "
|
||||||
|
#include <string.h>
|
||||||
|
unsigned int check_strict_align(const void *p)
|
||||||
|
{
|
||||||
|
unsigned int i;
|
||||||
|
memcpy(&i, p, sizeof(i));
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
")
|
||||||
|
|
||||||
|
# Force -O2 because memcpy() won't be optimized out if optimizations
|
||||||
|
# are disabled.
|
||||||
|
try_compile(
|
||||||
|
TRY_COMPILE_RESULT
|
||||||
|
"${CMAKE_BINARY_DIR}"
|
||||||
|
"${CMAKE_BINARY_DIR}/tuklib_integer_strict_align.c"
|
||||||
|
COMPILE_DEFINITIONS "${CMAKE_REQUIRED_DEFINITIONS}"
|
||||||
|
CMAKE_FLAGS "-DCOMPILE_DEFINITIONS=${CMAKE_REQUIRED_FLAGS} -O2"
|
||||||
|
COPY_FILE "${CMAKE_BINARY_DIR}/tuklib_integer_strict_align.a"
|
||||||
|
)
|
||||||
|
|
||||||
|
if(NOT TRY_COMPILE_RESULT)
|
||||||
|
message(FATAL_ERROR
|
||||||
|
"Compilation of the strict align check failed. "
|
||||||
|
"Either the specified compiler flags are broken "
|
||||||
|
"or ${CMAKE_CURRENT_FUNCTION_LIST_FILE} has a bug.")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Use WORKING_DIRECTORY instead of passing the full path to objdump.
|
||||||
|
# This ensures that the pathname won't affect the objdump output,
|
||||||
|
# which could result in an unwanted regex match in the next step.
|
||||||
|
execute_process(
|
||||||
|
COMMAND "${CMAKE_OBJDUMP}" -d "tuklib_integer_strict_align.a"
|
||||||
|
WORKING_DIRECTORY "${CMAKE_BINARY_DIR}"
|
||||||
|
OUTPUT_VARIABLE OBJDUMP_OUTPUT
|
||||||
|
RESULT_VARIABLE OBJDUMP_RESULT
|
||||||
|
)
|
||||||
|
|
||||||
|
# FIXME? Should we remove the temporary files here?
|
||||||
|
|
||||||
|
# Look for instructions that load unsigned bytes. If none are found,
|
||||||
|
# assume that -mno-strict-align is in effect.
|
||||||
|
if(OBJDUMP_RESULT STREQUAL "0" AND
|
||||||
|
OBJDUMP_OUTPUT MATCHES "${OBJDUMP_REGEX}")
|
||||||
|
set(TUKLIB_INTEGER_STRICT_ALIGN ON CACHE INTERNAL "")
|
||||||
|
else()
|
||||||
|
set(TUKLIB_INTEGER_STRICT_ALIGN OFF CACHE INTERNAL "")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
endfunction()
|
||||||
|
|
||||||
function(tuklib_integer TARGET_OR_ALL)
|
function(tuklib_integer TARGET_OR_ALL)
|
||||||
# Check for endianness. Unlike the Autoconf's AC_C_BIGENDIAN, this doesn't
|
# Check for endianness. Unlike the Autoconf's AC_C_BIGENDIAN, this doesn't
|
||||||
# support Apple universal binaries. The CMake module will leave the
|
# support Apple universal binaries. The CMake module will leave the
|
||||||
|
|
@ -60,61 +123,145 @@ function(tuklib_integer TARGET_OR_ALL)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Guess that unaligned access is fast on these archs:
|
# Autodetect if unaligned memory access is fast when the cache variable
|
||||||
# - 32/64-bit x86 / x86-64
|
# TUKLIB_FAST_UNALIGNED_ACCESS isn't set. The result is stored in
|
||||||
# - 32/64-bit big endian PowerPC
|
# FAST_UNALIGNED_GUESS. Assume that unaligned access shouldn't be used.
|
||||||
# - 64-bit little endian PowerPC
|
# Initialize the variable here so that it's never undefined in the
|
||||||
# - Some 32-bit ARM
|
# option() command after the if()...endif() block.
|
||||||
# - Some 64-bit ARM64 (AArch64)
|
|
||||||
# - Some 32/64-bit RISC-V
|
|
||||||
#
|
|
||||||
# CMake doesn't provide a standardized/normalized list of processor arch
|
|
||||||
# names. For example, x86-64 may be "x86_64" (Linux), "AMD64" (Windows),
|
|
||||||
# or even "EM64T" (64-bit WinXP).
|
|
||||||
set(FAST_UNALIGNED_GUESS OFF)
|
set(FAST_UNALIGNED_GUESS OFF)
|
||||||
string(TOLOWER "${CMAKE_SYSTEM_PROCESSOR}" PROCESSOR)
|
if(NOT DEFINED TUKLIB_FAST_UNALIGNED_ACCESS)
|
||||||
|
message(CHECK_START "Check if unaligned memory access should be used")
|
||||||
|
|
||||||
# There is no ^ in the first regex branch to allow "i" at the beginning
|
# Guess that unaligned access is fast on these archs:
|
||||||
# so it can match "i386" to "i786", and "x86_64".
|
# - 32/64-bit x86 / x86-64
|
||||||
if(PROCESSOR MATCHES "[x34567]86|^x64|^amd64|^em64t")
|
# - 32/64-bit big endian PowerPC
|
||||||
set(FAST_UNALIGNED_GUESS ON)
|
# - 64-bit little endian PowerPC
|
||||||
|
# - 32/64-bit Loongarch (*)
|
||||||
|
# - Some 32-bit ARM
|
||||||
|
# - Some 64-bit ARM64 (AArch64)
|
||||||
|
# - Some 32/64-bit RISC-V
|
||||||
|
#
|
||||||
|
# (*) See sections 7.4, 8.1, and 8.2:
|
||||||
|
# https://github.com/loongson/la-softdev-convention/blob/v0.2/la-softdev-convention.adoc
|
||||||
|
#
|
||||||
|
# That is, desktop and server processors likely support
|
||||||
|
# unaligned access in hardware but embedded processors
|
||||||
|
# might not. GCC defaults to -mno-strict-align and so
|
||||||
|
# do majority of GNU/Linux distributions. As of
|
||||||
|
# GCC 15.2, there is no predefined macro to detect
|
||||||
|
# if -mstrict-align or -mno-strict-align is in effect.
|
||||||
|
# We use heuristics based on compiler output.
|
||||||
|
#
|
||||||
|
# CMake < 4.1 doesn't provide a standardized/normalized list of arch
|
||||||
|
# names. For example, x86-64 may be "x86_64" (Linux),
|
||||||
|
# "AMD64" (Windows), or even "EM64T" (64-bit WinXP).
|
||||||
|
string(TOLOWER "${CMAKE_SYSTEM_PROCESSOR}" PROCESSOR)
|
||||||
|
|
||||||
elseif(PROCESSOR MATCHES "^powerpc|^ppc")
|
# CMake 4.1 made CMAKE_<LANG>_COMPILER_ARCHITECTURE_ID useful on many
|
||||||
if(WORDS_BIGENDIAN OR PROCESSOR MATCHES "64")
|
# targets. In earlier versions it's still useful with MSVC with which
|
||||||
set(FAST_UNALIGNED_GUESS ON)
|
# CMAKE_SYSTEM_PROCESSOR can refer to the build machine.
|
||||||
|
if(NOT CMAKE_C_COMPILER_ARCHITECTURE_ID STREQUAL "")
|
||||||
|
# CMake 4.2.0 docs say that the list typically has only one entry
|
||||||
|
# except possibly on macOS. On macOS, most (all?) archs support
|
||||||
|
# unaligned access. Just pick the first one from the list.
|
||||||
|
list(GET CMAKE_C_COMPILER_ARCHITECTURE_ID 0 PROCESSOR)
|
||||||
|
string(TOLOWER "${PROCESSOR}" PROCESSOR)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
elseif(PROCESSOR MATCHES "^arm|^aarch64|^riscv")
|
# There is no ^ in the first regex branch to allow "i" at
|
||||||
# On 32-bit and 64-bit ARM, GCC and Clang
|
# the beginning so it can match "i386" to "i786", and "x86_64".
|
||||||
# #define __ARM_FEATURE_UNALIGNED if
|
if(PROCESSOR MATCHES "[x34567]86|^x64|^amd64|^em64t")
|
||||||
# unaligned access is supported.
|
|
||||||
#
|
|
||||||
# Exception: GCC at least up to 13.2.0
|
|
||||||
# defines it even when using -mstrict-align
|
|
||||||
# so in that case this autodetection goes wrong.
|
|
||||||
# Most of the time -mstrict-align isn't used so it
|
|
||||||
# shouldn't be a common problem in practice. See:
|
|
||||||
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111555
|
|
||||||
#
|
|
||||||
# RISC-V C API Specification says that if
|
|
||||||
# __riscv_misaligned_fast is defined then
|
|
||||||
# unaligned access is known to be fast.
|
|
||||||
#
|
|
||||||
# MSVC is handled as a special case: We assume that
|
|
||||||
# 32/64-bit ARM supports fast unaligned access.
|
|
||||||
# If MSVC gets RISC-V support then this will assume
|
|
||||||
# fast unaligned access on RISC-V too.
|
|
||||||
check_c_source_compiles("
|
|
||||||
#if !defined(__ARM_FEATURE_UNALIGNED) \
|
|
||||||
&& !defined(__riscv_misaligned_fast) \
|
|
||||||
&& !defined(_MSC_VER)
|
|
||||||
compile error
|
|
||||||
#endif
|
|
||||||
int main(void) { return 0; }
|
|
||||||
"
|
|
||||||
TUKLIB_FAST_UNALIGNED_DEFINED_BY_PREPROCESSOR)
|
|
||||||
if(TUKLIB_FAST_UNALIGNED_DEFINED_BY_PREPROCESSOR)
|
|
||||||
set(FAST_UNALIGNED_GUESS ON)
|
set(FAST_UNALIGNED_GUESS ON)
|
||||||
|
|
||||||
|
elseif(PROCESSOR MATCHES "^powerpc|^ppc")
|
||||||
|
if(WORDS_BIGENDIAN OR PROCESSOR MATCHES "64")
|
||||||
|
set(FAST_UNALIGNED_GUESS ON)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
elseif(PROCESSOR MATCHES "^arm|^riscv" AND
|
||||||
|
NOT PROCESSOR MATCHES "^arm64")
|
||||||
|
# On 32-bit ARM, GCC and Clang # #define __ARM_FEATURE_UNALIGNED
|
||||||
|
# if and only if unaligned access is supported.
|
||||||
|
#
|
||||||
|
# RISC-V C API Specification says that if
|
||||||
|
# __riscv_misaligned_fast is defined then
|
||||||
|
# unaligned access is known to be fast.
|
||||||
|
#
|
||||||
|
# MSVC is handled as a special case: We assume that
|
||||||
|
# 32-bit ARM supports fast unaligned access.
|
||||||
|
# If MSVC gets RISC-V support then this will assume
|
||||||
|
# fast unaligned access on RISC-V too.
|
||||||
|
check_c_source_compiles("
|
||||||
|
#if !defined(__ARM_FEATURE_UNALIGNED) \
|
||||||
|
&& !defined(__riscv_misaligned_fast) \
|
||||||
|
&& !defined(_MSC_VER)
|
||||||
|
compile error
|
||||||
|
#endif
|
||||||
|
int main(void) { return 0; }
|
||||||
|
"
|
||||||
|
TUKLIB_FAST_UNALIGNED_DEFINED_BY_PREPROCESSOR)
|
||||||
|
if(TUKLIB_FAST_UNALIGNED_DEFINED_BY_PREPROCESSOR)
|
||||||
|
set(FAST_UNALIGNED_GUESS ON)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
elseif(PROCESSOR MATCHES "^aarch64|^arm64")
|
||||||
|
# On ARM64, Clang defines __ARM_FEATURE_UNALIGNED if and only if
|
||||||
|
# unaligned access is supported. However, GCC (at least up to 15.2.0)
|
||||||
|
# defines it even when using -mstrict-align, so autodetection with
|
||||||
|
# this macro doesn't work with GCC on ARM64. (It does work on
|
||||||
|
# 32-bit ARM.) See:
|
||||||
|
#
|
||||||
|
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111555
|
||||||
|
#
|
||||||
|
# We need three checks:
|
||||||
|
#
|
||||||
|
# 1. If __ARM_FEATURE_UNALIGNED is defined and the
|
||||||
|
# compiler isn't GCC, unaligned access is enabled.
|
||||||
|
# If the compiler is MSVC, unaligned access is
|
||||||
|
# enabled even without __ARM_FEATURE_UNALIGNED.
|
||||||
|
check_c_source_compiles("
|
||||||
|
#if defined(__ARM_FEATURE_UNALIGNED) \
|
||||||
|
&& (!defined(__GNUC__) || defined(__clang__))
|
||||||
|
#elif defined(_MSC_VER)
|
||||||
|
#else
|
||||||
|
compile error
|
||||||
|
#endif
|
||||||
|
int main(void) { return 0; }
|
||||||
|
"
|
||||||
|
TUKLIB_FAST_UNALIGNED_DEFINED_BY_PREPROCESSOR)
|
||||||
|
if(TUKLIB_FAST_UNALIGNED_DEFINED_BY_PREPROCESSOR)
|
||||||
|
set(FAST_UNALIGNED_GUESS ON)
|
||||||
|
else()
|
||||||
|
# 2. If __ARM_FEATURE_UNALIGNED is not defined,
|
||||||
|
# unaligned access is disabled.
|
||||||
|
check_c_source_compiles("
|
||||||
|
#ifdef __ARM_FEATURE_UNALIGNED
|
||||||
|
compile error
|
||||||
|
#endif
|
||||||
|
int main(void) { return 0; }
|
||||||
|
"
|
||||||
|
TUKLIB_FAST_UNALIGNED_NOT_DEFINED_BY_PREPROCESSOR)
|
||||||
|
if(NOT TUKLIB_FAST_UNALIGNED_NOT_DEFINED_BY_PREPROCESSOR)
|
||||||
|
# 3. Use heuristics to detect if -mstrict-align is
|
||||||
|
# in effect when building with GCC.
|
||||||
|
tuklib_integer_internal_strict_align("[ \t]ldrb[ \t]")
|
||||||
|
if(NOT TUKLIB_INTEGER_STRICT_ALIGN)
|
||||||
|
set(FAST_UNALIGNED_GUESS ON)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
elseif(PROCESSOR MATCHES "^loongarch")
|
||||||
|
tuklib_integer_internal_strict_align("[ \t]ld\\.bu[ \t]")
|
||||||
|
if(NOT TUKLIB_INTEGER_STRICT_ALIGN)
|
||||||
|
set(FAST_UNALIGNED_GUESS ON)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(FAST_UNALIGNED_GUESS)
|
||||||
|
message(CHECK_PASS "yes")
|
||||||
|
else()
|
||||||
|
message(CHECK_PASS "no")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,7 @@
|
||||||
#############################################################################
|
#############################################################################
|
||||||
|
|
||||||
include("${CMAKE_CURRENT_LIST_DIR}/tuklib_common.cmake")
|
include("${CMAKE_CURRENT_LIST_DIR}/tuklib_common.cmake")
|
||||||
|
include(CMakePushCheckState)
|
||||||
include(CheckCSourceCompiles)
|
include(CheckCSourceCompiles)
|
||||||
|
|
||||||
function(tuklib_large_file_support TARGET_OR_ALL)
|
function(tuklib_large_file_support TARGET_OR_ALL)
|
||||||
|
|
|
||||||
|
|
@ -18,4 +18,8 @@ function(tuklib_mbstr TARGET_OR_ALL)
|
||||||
# NOTE: wcwidth() requires _GNU_SOURCE or _XOPEN_SOURCE on GNU/Linux.
|
# NOTE: wcwidth() requires _GNU_SOURCE or _XOPEN_SOURCE on GNU/Linux.
|
||||||
check_symbol_exists(wcwidth wchar.h HAVE_WCWIDTH)
|
check_symbol_exists(wcwidth wchar.h HAVE_WCWIDTH)
|
||||||
tuklib_add_definition_if("${TARGET_OR_ALL}" HAVE_WCWIDTH)
|
tuklib_add_definition_if("${TARGET_OR_ALL}" HAVE_WCWIDTH)
|
||||||
|
|
||||||
|
# NOTE: vasprintf() requires _GNU_SOURCE on GNU/Linux.
|
||||||
|
check_symbol_exists(vasprintf stdio.h HAVE_VASPRINTF)
|
||||||
|
tuklib_add_definition_if("${TARGET_OR_ALL}" HAVE_VASPRINTF)
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@
|
||||||
#############################################################################
|
#############################################################################
|
||||||
|
|
||||||
include("${CMAKE_CURRENT_LIST_DIR}/tuklib_common.cmake")
|
include("${CMAKE_CURRENT_LIST_DIR}/tuklib_common.cmake")
|
||||||
|
include(CMakePushCheckState)
|
||||||
include(CheckCSourceCompiles)
|
include(CheckCSourceCompiles)
|
||||||
include(CheckIncludeFile)
|
include(CheckIncludeFile)
|
||||||
|
|
||||||
|
|
@ -76,11 +77,11 @@ function(tuklib_physmem_internal_check)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# sysctl()
|
# sysctl()
|
||||||
|
cmake_push_check_state()
|
||||||
check_include_file(sys/param.h HAVE_SYS_PARAM_H)
|
check_include_file(sys/param.h HAVE_SYS_PARAM_H)
|
||||||
if(HAVE_SYS_PARAM_H)
|
if(HAVE_SYS_PARAM_H)
|
||||||
list(APPEND CMAKE_REQUIRED_DEFINITIONS -DHAVE_SYS_PARAM_H)
|
list(APPEND CMAKE_REQUIRED_DEFINITIONS -DHAVE_SYS_PARAM_H)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
check_c_source_compiles("
|
check_c_source_compiles("
|
||||||
#ifdef HAVE_SYS_PARAM_H
|
#ifdef HAVE_SYS_PARAM_H
|
||||||
# include <sys/param.h>
|
# include <sys/param.h>
|
||||||
|
|
@ -96,6 +97,7 @@ function(tuklib_physmem_internal_check)
|
||||||
}
|
}
|
||||||
"
|
"
|
||||||
TUKLIB_PHYSMEM_SYSCTL)
|
TUKLIB_PHYSMEM_SYSCTL)
|
||||||
|
cmake_pop_check_state()
|
||||||
if(TUKLIB_PHYSMEM_SYSCTL)
|
if(TUKLIB_PHYSMEM_SYSCTL)
|
||||||
if(HAVE_SYS_PARAM_H)
|
if(HAVE_SYS_PARAM_H)
|
||||||
set(TUKLIB_PHYSMEM_DEFINITIONS
|
set(TUKLIB_PHYSMEM_DEFINITIONS
|
||||||
|
|
|
||||||
435
configure.ac
435
configure.ac
|
|
@ -17,7 +17,7 @@
|
||||||
AC_PREREQ([2.69])
|
AC_PREREQ([2.69])
|
||||||
|
|
||||||
AC_INIT([XZ Utils], m4_esyscmd([/bin/sh build-aux/version.sh]),
|
AC_INIT([XZ Utils], m4_esyscmd([/bin/sh build-aux/version.sh]),
|
||||||
[xz@tukaani.org], [xz], [https://xz.tukaani.org/xz-utils/])
|
[xz@tukaani.org], [xz], [https://tukaani.org/xz/])
|
||||||
AC_CONFIG_SRCDIR([src/liblzma/common/common.h])
|
AC_CONFIG_SRCDIR([src/liblzma/common/common.h])
|
||||||
AC_CONFIG_AUX_DIR([build-aux])
|
AC_CONFIG_AUX_DIR([build-aux])
|
||||||
AC_CONFIG_MACRO_DIR([m4])
|
AC_CONFIG_MACRO_DIR([m4])
|
||||||
|
|
@ -304,13 +304,8 @@ AC_ARG_ENABLE([microlzma], AS_HELP_STRING([--disable-microlzma],
|
||||||
for example, erofs-utils.]),
|
for example, erofs-utils.]),
|
||||||
[], [enable_microlzma=yes])
|
[], [enable_microlzma=yes])
|
||||||
case $enable_microlzma in
|
case $enable_microlzma in
|
||||||
yes)
|
yes | no)
|
||||||
AC_DEFINE([HAVE_MICROLZMA], [1],
|
AC_MSG_RESULT([$enable_microlzma])
|
||||||
[Define to 1 if MicroLZMA support is enabled.])
|
|
||||||
AC_MSG_RESULT([yes])
|
|
||||||
;;
|
|
||||||
no)
|
|
||||||
AC_MSG_RESULT([no])
|
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
AC_MSG_RESULT([])
|
AC_MSG_RESULT([])
|
||||||
|
|
@ -363,8 +358,13 @@ if test "x$enable_assembler" = xyes; then
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
case $enable_assembler in
|
case $enable_assembler in
|
||||||
x86 | no)
|
x86)
|
||||||
AC_MSG_RESULT([$enable_assembler])
|
AC_DEFINE([HAVE_CRC_X86_ASM], [1], [Define to 1 if
|
||||||
|
the 32-bit x86 CRC assembly files are used.])
|
||||||
|
AC_MSG_RESULT([x86])
|
||||||
|
;;
|
||||||
|
no)
|
||||||
|
AC_MSG_RESULT([no])
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
AC_MSG_RESULT([])
|
AC_MSG_RESULT([])
|
||||||
|
|
@ -394,6 +394,16 @@ AC_ARG_ENABLE([arm64-crc32], AS_HELP_STRING([--disable-arm64-crc32],
|
||||||
[], [enable_arm64_crc32=yes])
|
[], [enable_arm64_crc32=yes])
|
||||||
|
|
||||||
|
|
||||||
|
################################
|
||||||
|
# LoongArch CRC32 instructions #
|
||||||
|
################################
|
||||||
|
|
||||||
|
AC_ARG_ENABLE([loongarch-crc32], AS_HELP_STRING([--disable-loongarch-crc32],
|
||||||
|
[Do not use LoongArch CRC32 instructions even if support for
|
||||||
|
them is detected.]),
|
||||||
|
[], [enable_loongarch_crc32=yes])
|
||||||
|
|
||||||
|
|
||||||
#####################
|
#####################
|
||||||
# Size optimization #
|
# Size optimization #
|
||||||
#####################
|
#####################
|
||||||
|
|
@ -521,10 +531,18 @@ AM_CONDITIONAL([COND_SCRIPTS], [test x$enable_scripts != xno])
|
||||||
|
|
||||||
AC_ARG_ENABLE([doc], [AS_HELP_STRING([--disable-doc],
|
AC_ARG_ENABLE([doc], [AS_HELP_STRING([--disable-doc],
|
||||||
[do not install documentation files to docdir
|
[do not install documentation files to docdir
|
||||||
(man pages will still be installed)])],
|
(man pages are still installed and,
|
||||||
|
if --enable-doxygen is used,
|
||||||
|
liblzma API documentation is installed too)])],
|
||||||
[], [enable_doc=yes])
|
[], [enable_doc=yes])
|
||||||
AM_CONDITIONAL([COND_DOC], [test x$enable_doc != xno])
|
AM_CONDITIONAL([COND_DOC], [test x$enable_doc != xno])
|
||||||
|
|
||||||
|
AC_ARG_ENABLE([doxygen], [AS_HELP_STRING([--enable-doxygen],
|
||||||
|
[generate HTML version of the liblzma API documentation
|
||||||
|
using Doxygen and install the result to docdir])],
|
||||||
|
[], [enable_doxygen=no])
|
||||||
|
AM_CONDITIONAL([COND_DOXYGEN], [test x$enable_doxygen != xno])
|
||||||
|
|
||||||
|
|
||||||
##############
|
##############
|
||||||
# Sandboxing #
|
# Sandboxing #
|
||||||
|
|
@ -624,12 +642,38 @@ AM_PROG_CC_C_O
|
||||||
AM_PROG_AS
|
AM_PROG_AS
|
||||||
AC_USE_SYSTEM_EXTENSIONS
|
AC_USE_SYSTEM_EXTENSIONS
|
||||||
|
|
||||||
|
# If using GCC or compatible compiler, verify that CFLAGS doesn't contain
|
||||||
|
# something that makes -Werror unhappy. It's important to check this after
|
||||||
|
# the above check for system extensions. It adds macros that can trigger,
|
||||||
|
# for example, -Wunused-macros.
|
||||||
|
if test "$GCC" = yes && test "x$SKIP_WERROR_CHECK" != xyes ; then
|
||||||
|
AC_MSG_CHECKING([if the -Werror option is usable])
|
||||||
|
OLD_CFLAGS=$CFLAGS
|
||||||
|
CFLAGS="$CFLAGS -Werror"
|
||||||
|
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[extern int foo; int foo;]])], [
|
||||||
|
AC_MSG_RESULT([yes])
|
||||||
|
], [
|
||||||
|
AC_MSG_RESULT([no])
|
||||||
|
AC_MSG_ERROR([
|
||||||
|
CFLAGS contains something that makes -Werror complain (see config.log).
|
||||||
|
This would break certain checks in 'configure'. It is strongly
|
||||||
|
recommended to modify CFLAGS to fix this. If you want to use noisy
|
||||||
|
warning options, for example, -Weverything, it is still possible to
|
||||||
|
add them later when running 'make': make CFLAGS+=-Weverything
|
||||||
|
|
||||||
|
In case you really want to continue with the current CFLAGS, pass
|
||||||
|
'SKIP_WERROR_CHECK=yes' as an argument to 'configure'.
|
||||||
|
])
|
||||||
|
])
|
||||||
|
CFLAGS=$OLD_CFLAGS
|
||||||
|
fi
|
||||||
|
|
||||||
AS_CASE([$enable_threads],
|
AS_CASE([$enable_threads],
|
||||||
[posix], [
|
[posix], [
|
||||||
echo
|
echo
|
||||||
echo "POSIX threading support:"
|
echo "POSIX threading support:"
|
||||||
AX_PTHREAD([:]) dnl We don't need the HAVE_PTHREAD macro.
|
AX_PTHREAD([:]) dnl We don't need the HAVE_PTHREAD macro.
|
||||||
LIBS="$LIBS $PTHREAD_LIBS"
|
LIBS="$PTHREAD_LIBS $LIBS"
|
||||||
AM_CFLAGS="$AM_CFLAGS $PTHREAD_CFLAGS"
|
AM_CFLAGS="$AM_CFLAGS $PTHREAD_CFLAGS"
|
||||||
|
|
||||||
dnl NOTE: PTHREAD_CC is ignored. It would be useful on AIX,
|
dnl NOTE: PTHREAD_CC is ignored. It would be useful on AIX,
|
||||||
|
|
@ -714,66 +758,108 @@ fi
|
||||||
# --with-pic and --without-pic though. As long as neither --with-pic nor
|
# --with-pic and --without-pic though. As long as neither --with-pic nor
|
||||||
# --without-pic is used then we can use #ifdef PIC to detect if the file is
|
# --without-pic is used then we can use #ifdef PIC to detect if the file is
|
||||||
# being built for a shared library.
|
# being built for a shared library.
|
||||||
if test "x$enable_symbol_versions" = xno ; then
|
LINKER_FLAG_UNDEFINED_VERSION=
|
||||||
|
AS_IF([test "x$enable_symbol_versions" = xno], [
|
||||||
enable_symbol_versions=no
|
enable_symbol_versions=no
|
||||||
AC_MSG_RESULT([no])
|
AC_MSG_RESULT([no])
|
||||||
elif test "x$enable_shared" = xno ; then
|
], [test "x$enable_shared" = xno], [
|
||||||
enable_symbol_versions=no
|
enable_symbol_versions=no
|
||||||
AC_MSG_RESULT([no (not building a shared library)])
|
AC_MSG_RESULT([no (not building a shared library)])
|
||||||
else
|
], [
|
||||||
case "$host_cpu-$host_os" in
|
# "yes" means that symbol version are to be used but we need to
|
||||||
microblaze*)
|
# autodetect which variant to use.
|
||||||
# GCC 12 on MicroBlaze doesn't support __symver__
|
if test "x$enable_symbol_versions" = xyes ; then
|
||||||
# attribute. It's simplest and safest to use the
|
case "$host_cpu-$host_os" in
|
||||||
# generic version on that platform since then only
|
microblaze*)
|
||||||
# the linker script is needed. The RHEL/CentOS 7
|
# GCC 12 on MicroBlaze doesn't support
|
||||||
# compatibility symbols don't matter on MicroBlaze.
|
# __symver__ attribute. It's simplest and
|
||||||
enable_symbol_versions=generic
|
# safest to use the generic version on that
|
||||||
;;
|
# platform since then only the linker script
|
||||||
*-linux*)
|
# is needed. The RHEL/CentOS 7 compatibility
|
||||||
case "$pic_mode-$enable_static" in
|
# symbols don't matter on MicroBlaze.
|
||||||
default-*)
|
enable_symbol_versions=generic
|
||||||
# Use symvers if PIC is defined.
|
;;
|
||||||
have_symbol_versions_linux=2
|
*-linux*)
|
||||||
;;
|
# NVIDIA HPC Compiler doesn't support symbol
|
||||||
*-no)
|
# versioning but the linker script can still
|
||||||
# Not building static library.
|
# be used.
|
||||||
# Use symvers unconditionally.
|
AC_EGREP_CPP([use_generic_symbol_versioning],
|
||||||
have_symbol_versions_linux=1
|
[#ifdef __NVCOMPILER
|
||||||
;;
|
use_generic_symbol_versioning
|
||||||
*)
|
#endif],
|
||||||
AC_MSG_RESULT([])
|
[enable_symbol_versions=generic],
|
||||||
AC_MSG_ERROR([
|
[enable_symbol_versions=linux])
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
enable_symbol_versions=generic
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "x$enable_symbol_versions" = xlinux ; then
|
||||||
|
case "$pic_mode-$enable_static" in
|
||||||
|
default-*)
|
||||||
|
# Use symvers if PIC is defined.
|
||||||
|
have_symbol_versions_linux=2
|
||||||
|
;;
|
||||||
|
*-no)
|
||||||
|
# Not building static library.
|
||||||
|
# Use symvers unconditionally.
|
||||||
|
have_symbol_versions_linux=1
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
AC_MSG_RESULT([])
|
||||||
|
AC_MSG_ERROR([
|
||||||
On GNU/Linux, building both shared and static library at the same time
|
On GNU/Linux, building both shared and static library at the same time
|
||||||
is not supported if --with-pic or --without-pic is used.
|
is not supported if --with-pic or --without-pic is used.
|
||||||
Use either --disable-shared or --disable-static to build one type
|
Use either --disable-shared or --disable-static to build one type
|
||||||
of library at a time. If both types are needed, build one at a time,
|
of library at a time. If both types are needed, build one at a time,
|
||||||
possibly picking only src/liblzma/.libs/liblzma.a from the static build.])
|
possibly picking only src/liblzma/.libs/liblzma.a from the static build.])
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
enable_symbol_versions=linux
|
AC_DEFINE_UNQUOTED([HAVE_SYMBOL_VERSIONS_LINUX],
|
||||||
AC_DEFINE_UNQUOTED([HAVE_SYMBOL_VERSIONS_LINUX],
|
[$have_symbol_versions_linux],
|
||||||
[$have_symbol_versions_linux],
|
[Define to 1 to if GNU/Linux-specific details
|
||||||
[Define to 1 to if GNU/Linux-specific details
|
are unconditionally wanted for symbol
|
||||||
are unconditionally wanted for symbol
|
versioning. Define to 2 to if these are wanted
|
||||||
versioning. Define to 2 to if these are wanted
|
only if also PIC is defined (allows building
|
||||||
only if also PIC is defined (allows building
|
both shared and static liblzma at the same
|
||||||
both shared and static liblzma at the same
|
time with Libtool if neither --with-pic nor
|
||||||
time with Libtool if neither --with-pic nor
|
--without-pic is used). This define must be
|
||||||
--without-pic is used). This define must be
|
used together with liblzma_linux.map.])
|
||||||
used together with liblzma_linux.map.])
|
elif test "x$enable_symbol_versions" != xgeneric ; then
|
||||||
;;
|
AC_MSG_RESULT([])
|
||||||
*)
|
AC_MSG_ERROR([unknown symbol versioning variant '$enable_symbol_versions'])
|
||||||
enable_symbol_versions=generic
|
fi
|
||||||
;;
|
|
||||||
esac
|
|
||||||
AC_MSG_RESULT([yes ($enable_symbol_versions)])
|
AC_MSG_RESULT([yes ($enable_symbol_versions)])
|
||||||
fi
|
|
||||||
|
# If features are disabled in liblzma, some symbols may be missing.
|
||||||
|
# LLVM's lld defaults to --no-undefined-version and the build breaks
|
||||||
|
# if not all symbols in the version script exist. That is good for
|
||||||
|
# catching errors like typos, but in our case the downside is too big.
|
||||||
|
# Avoid the problem by using --undefined-version if the linker
|
||||||
|
# supports it.
|
||||||
|
#
|
||||||
|
# GNU ld has had --no-undefined-version for a long time but it's not
|
||||||
|
# the default. The opposite option --undefined-version was only added
|
||||||
|
# in 2022, thus we must use --undefined-version conditionally.
|
||||||
|
AC_MSG_CHECKING([if linker supports --undefined-version])
|
||||||
|
OLD_LDFLAGS=$LDFLAGS
|
||||||
|
LDFLAGS="$LDFLAGS -Wl,--undefined-version"
|
||||||
|
AC_LINK_IFELSE([AC_LANG_SOURCE([[int main(void) { return 0; }]])], [
|
||||||
|
LINKER_FLAG_UNDEFINED_VERSION=-Wl,--undefined-version
|
||||||
|
AC_MSG_RESULT([yes])
|
||||||
|
], [
|
||||||
|
AC_MSG_RESULT([no])
|
||||||
|
])
|
||||||
|
LDFLAGS=$OLD_LDFLAGS
|
||||||
|
])
|
||||||
|
|
||||||
AM_CONDITIONAL([COND_SYMVERS_LINUX],
|
AM_CONDITIONAL([COND_SYMVERS_LINUX],
|
||||||
[test "x$enable_symbol_versions" = xlinux])
|
[test "x$enable_symbol_versions" = xlinux])
|
||||||
AM_CONDITIONAL([COND_SYMVERS_GENERIC],
|
AM_CONDITIONAL([COND_SYMVERS_GENERIC],
|
||||||
[test "x$enable_symbol_versions" = xgeneric])
|
[test "x$enable_symbol_versions" = xgeneric])
|
||||||
|
AC_SUBST([LINKER_FLAG_UNDEFINED_VERSION])
|
||||||
|
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
@ -789,6 +875,35 @@ AM_GNU_GETTEXT_REQUIRE_VERSION([0.19.6])
|
||||||
AM_GNU_GETTEXT_VERSION([0.19.6])
|
AM_GNU_GETTEXT_VERSION([0.19.6])
|
||||||
AM_GNU_GETTEXT([external])
|
AM_GNU_GETTEXT([external])
|
||||||
|
|
||||||
|
# The command line tools use UTF-8 on native Windows. Non-ASCII characters
|
||||||
|
# display correctly only when using UCRT and gettext-runtime >= 0.23.1.
|
||||||
|
AS_CASE([$USE_NLS-$host_os],
|
||||||
|
[yes-mingw*], [
|
||||||
|
AC_MSG_CHECKING([for UCRT and gettext-runtime >= 0.23.1])
|
||||||
|
AC_PREPROC_IFELSE([AC_LANG_SOURCE([[
|
||||||
|
#define WIN32_LEAN_AND_MEAN
|
||||||
|
#include <windows.h>
|
||||||
|
#include <libintl.h>
|
||||||
|
|
||||||
|
#ifndef _UCRT
|
||||||
|
#error "Not UCRT"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if LIBINTL_VERSION < 0x001701
|
||||||
|
#error "gettext-runtime < 0.23.1"
|
||||||
|
#endif
|
||||||
|
]])], [
|
||||||
|
AC_MSG_RESULT([yes])
|
||||||
|
], [
|
||||||
|
AC_MSG_RESULT([no])
|
||||||
|
AC_MSG_ERROR([
|
||||||
|
Translation support (--enable-nls) on native Windows requires
|
||||||
|
UCRT and gettext-runtime >= 0.23.1. Use --disable-nls to build
|
||||||
|
with MSVCRT or old gettext-runtime.])
|
||||||
|
])
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# Checks for header files.
|
# Checks for header files.
|
||||||
|
|
@ -797,12 +912,6 @@ AM_GNU_GETTEXT([external])
|
||||||
echo
|
echo
|
||||||
echo "System headers and functions:"
|
echo "System headers and functions:"
|
||||||
|
|
||||||
# There is currently no workarounds in this package if some of
|
|
||||||
# these headers are missing.
|
|
||||||
AC_CHECK_HEADERS([fcntl.h limits.h sys/time.h],
|
|
||||||
[],
|
|
||||||
[AC_MSG_ERROR([Required header file(s) are missing.])])
|
|
||||||
|
|
||||||
# immintrin.h allows the use of the intrinsic functions if they are available.
|
# immintrin.h allows the use of the intrinsic functions if they are available.
|
||||||
# cpuid.h may be used for detecting x86 processor features at runtime.
|
# cpuid.h may be used for detecting x86 processor features at runtime.
|
||||||
AC_CHECK_HEADERS([immintrin.h cpuid.h])
|
AC_CHECK_HEADERS([immintrin.h cpuid.h])
|
||||||
|
|
@ -840,13 +949,6 @@ AC_C_BIGENDIAN
|
||||||
# __attribute__((__constructor__)) can be used for one-time initializations.
|
# __attribute__((__constructor__)) can be used for one-time initializations.
|
||||||
# Use -Werror because some compilers accept unknown attributes and just
|
# Use -Werror because some compilers accept unknown attributes and just
|
||||||
# give a warning.
|
# give a warning.
|
||||||
#
|
|
||||||
# FIXME? Unfortunately -Werror can cause trouble if CFLAGS contains options
|
|
||||||
# that produce warnings for unrelated reasons. For example, GCC and Clang
|
|
||||||
# support -Wunused-macros which will warn about "#define _GNU_SOURCE 1"
|
|
||||||
# which will be among the #defines that Autoconf inserts to the beginning of
|
|
||||||
# the test program. There seems to be no nice way to prevent Autoconf from
|
|
||||||
# inserting the any defines to the test program.
|
|
||||||
AC_MSG_CHECKING([if __attribute__((__constructor__)) can be used])
|
AC_MSG_CHECKING([if __attribute__((__constructor__)) can be used])
|
||||||
have_func_attribute_constructor=no
|
have_func_attribute_constructor=no
|
||||||
OLD_CFLAGS="$CFLAGS"
|
OLD_CFLAGS="$CFLAGS"
|
||||||
|
|
@ -879,78 +981,6 @@ if test "x$enable_small$enable_threads$have_func_attribute_constructor" \
|
||||||
__attribute__((__constructor__))])
|
__attribute__((__constructor__))])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# __attribute__((__ifunc__())) can be used to choose between different
|
|
||||||
# implementations of the same function at runtime. This is slightly more
|
|
||||||
# efficient than using __attribute__((__constructor__)) and setting
|
|
||||||
# a function pointer.
|
|
||||||
AC_ARG_ENABLE([ifunc], [AS_HELP_STRING([--enable-ifunc],
|
|
||||||
[Use __attribute__((__ifunc__())). Enabled by default on
|
|
||||||
GNU/Linux (glibc) and FreeBSD.])],
|
|
||||||
[], [enable_ifunc=auto])
|
|
||||||
|
|
||||||
# When enable_ifunc is 'auto', allow the use of __attribute__((__ifunc__()))
|
|
||||||
# if compiler support is detected and we are building for GNU/Linux (glibc)
|
|
||||||
# or FreeBSD. uClibc and musl don't support ifunc in their dynamic linkers
|
|
||||||
# but some compilers still accept the attribute when compiling for these
|
|
||||||
# C libraries, which results in broken binaries. That's why we need to
|
|
||||||
# check which libc is being used.
|
|
||||||
if test "x$enable_ifunc" = xauto ; then
|
|
||||||
OLD_CFLAGS="$CFLAGS"
|
|
||||||
CFLAGS="$CFLAGS -Werror"
|
|
||||||
AC_MSG_CHECKING([if __attribute__((__ifunc__())) can be used])
|
|
||||||
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
|
|
||||||
/*
|
|
||||||
* Force a compilation error when not using glibc on Linux
|
|
||||||
* or if we are not using FreeBSD. uClibc will define
|
|
||||||
* __GLIBC__ but does not support ifunc, so we must have
|
|
||||||
* an extra check to disable with uClibc.
|
|
||||||
*/
|
|
||||||
#if defined(__linux__)
|
|
||||||
# include <features.h>
|
|
||||||
# if !defined(__GLIBC__) || defined(__UCLIBC__)
|
|
||||||
compile error
|
|
||||||
# endif
|
|
||||||
#elif !defined(__FreeBSD__)
|
|
||||||
compile error
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static void func(void) { return; }
|
|
||||||
static void (*resolve_func (void)) (void) { return func; }
|
|
||||||
void func_ifunc (void)
|
|
||||||
__attribute__((__ifunc__("resolve_func")));
|
|
||||||
/*
|
|
||||||
* 'clang -Wall' incorrectly warns that resolve_func is
|
|
||||||
* unused (-Wunused-function). Correct assembly output is
|
|
||||||
* still produced. This problem exists at least in Clang
|
|
||||||
* versions 4 to 17. The following silences the bogus warning:
|
|
||||||
*/
|
|
||||||
void make_clang_quiet(void);
|
|
||||||
void make_clang_quiet(void) { resolve_func()(); }
|
|
||||||
]])], [
|
|
||||||
enable_ifunc=yes
|
|
||||||
], [
|
|
||||||
enable_ifunc=no
|
|
||||||
])
|
|
||||||
|
|
||||||
AC_MSG_RESULT([$enable_ifunc])
|
|
||||||
|
|
||||||
CFLAGS="$OLD_CFLAGS"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "x$enable_ifunc" = xyes ; then
|
|
||||||
AC_DEFINE([HAVE_FUNC_ATTRIBUTE_IFUNC], [1],
|
|
||||||
[Define to 1 if __attribute__((__ifunc__()))
|
|
||||||
is supported for functions.])
|
|
||||||
|
|
||||||
# ifunc explicitly does not work with -fsanitize=address.
|
|
||||||
# If configured, it will result in a liblzma build that will fail
|
|
||||||
# when liblzma is loaded at runtime (when the ifunc resolver
|
|
||||||
# executes).
|
|
||||||
AS_CASE([$CFLAGS], [*-fsanitize=*], [AC_MSG_ERROR([
|
|
||||||
CFLAGS contains '-fsanitize=' which is incompatible with ifunc.
|
|
||||||
Use --disable-ifunc when using '-fsanitize'.])])
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# Checks for library functions.
|
# Checks for library functions.
|
||||||
|
|
@ -978,8 +1008,8 @@ AC_CHECK_DECL([CLOCK_MONOTONIC], [AC_DEFINE([HAVE_CLOCK_MONOTONIC], [1],
|
||||||
# Find the best function to set timestamps.
|
# Find the best function to set timestamps.
|
||||||
AC_CHECK_FUNCS([futimens futimes futimesat utimes _futime utime], [break])
|
AC_CHECK_FUNCS([futimens futimes futimesat utimes _futime utime], [break])
|
||||||
|
|
||||||
# This is nice to have but not mandatory.
|
# These are nice to have but not mandatory.
|
||||||
AC_CHECK_FUNCS([posix_fadvise])
|
AC_CHECK_FUNCS([getrlimit posix_fadvise])
|
||||||
|
|
||||||
TUKLIB_PROGNAME
|
TUKLIB_PROGNAME
|
||||||
TUKLIB_INTEGER
|
TUKLIB_INTEGER
|
||||||
|
|
@ -1066,11 +1096,15 @@ AC_CHECK_DECL([_mm_movemask_epi8],
|
||||||
#
|
#
|
||||||
# If everything above is supported, runtime detection will be used to keep the
|
# If everything above is supported, runtime detection will be used to keep the
|
||||||
# binaries working on systems that don't support the required extensions.
|
# binaries working on systems that don't support the required extensions.
|
||||||
|
#
|
||||||
|
# NOTE: Use a check that links and not merely compiles to ensure that
|
||||||
|
# missing intrinsics don't get accepted with compilers that allow
|
||||||
|
# implicit function declarations.
|
||||||
AC_MSG_CHECKING([if _mm_clmulepi64_si128 is usable])
|
AC_MSG_CHECKING([if _mm_clmulepi64_si128 is usable])
|
||||||
AS_IF([test "x$enable_clmul_crc" = xno], [
|
AS_IF([test "x$enable_clmul_crc" = xno], [
|
||||||
AC_MSG_RESULT([no, --disable-clmul-crc was used])
|
AC_MSG_RESULT([no, --disable-clmul-crc was used])
|
||||||
], [
|
], [
|
||||||
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
|
AC_LINK_IFELSE([AC_LANG_SOURCE([[
|
||||||
#include <immintrin.h>
|
#include <immintrin.h>
|
||||||
|
|
||||||
// CLMUL works on older E2K instruction set but it is slow due to emulation.
|
// CLMUL works on older E2K instruction set but it is slow due to emulation.
|
||||||
|
|
@ -1084,10 +1118,11 @@ AS_IF([test "x$enable_clmul_crc" = xno], [
|
||||||
#if (defined(__GNUC__) || defined(__clang__)) && !defined(__EDG__)
|
#if (defined(__GNUC__) || defined(__clang__)) && !defined(__EDG__)
|
||||||
__attribute__((__target__("ssse3,sse4.1,pclmul")))
|
__attribute__((__target__("ssse3,sse4.1,pclmul")))
|
||||||
#endif
|
#endif
|
||||||
__m128i my_clmul(__m128i a)
|
int main(void)
|
||||||
{
|
{
|
||||||
const __m128i b = _mm_set_epi64x(1, 2);
|
__m128i a = _mm_set_epi64x(1, 2);
|
||||||
return _mm_clmulepi64_si128(a, b, 0);
|
a = _mm_clmulepi64_si128(a, a, 0);
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
]])], [
|
]])], [
|
||||||
AC_DEFINE([HAVE_USABLE_CLMUL], [1],
|
AC_DEFINE([HAVE_USABLE_CLMUL], [1],
|
||||||
|
|
@ -1109,24 +1144,16 @@ AC_MSG_CHECKING([if ARM64 CRC32 instruction is usable])
|
||||||
AS_IF([test "x$enable_arm64_crc32" = xno], [
|
AS_IF([test "x$enable_arm64_crc32" = xno], [
|
||||||
AC_MSG_RESULT([no, --disable-arm64-crc32 was used])
|
AC_MSG_RESULT([no, --disable-arm64-crc32 was used])
|
||||||
], [
|
], [
|
||||||
# Set -Werror here because some versions of Clang (14 and older)
|
AC_LINK_IFELSE([AC_LANG_SOURCE([[
|
||||||
# do not report the unsupported __attribute__((__target__("+crc")))
|
|
||||||
# or __crc32d() as an error, only as a warning. This does not need
|
|
||||||
# to be done with CMake because tests will attempt to link and the
|
|
||||||
# error will be reported then.
|
|
||||||
OLD_CFLAGS="$CFLAGS"
|
|
||||||
CFLAGS="$CFLAGS -Werror"
|
|
||||||
|
|
||||||
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
|
|
||||||
#include <arm_acle.h>
|
#include <arm_acle.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
#if (defined(__GNUC__) || defined(__clang__)) && !defined(__EDG__)
|
#if (defined(__GNUC__) || defined(__clang__)) && !defined(__EDG__)
|
||||||
__attribute__((__target__("+crc")))
|
__attribute__((__target__("+crc")))
|
||||||
#endif
|
#endif
|
||||||
uint32_t my_crc(uint32_t a, uint64_t b)
|
int main(void)
|
||||||
{
|
{
|
||||||
return __crc32d(a, b);
|
return __crc32d(1, 2) != 0;
|
||||||
}
|
}
|
||||||
]])], [
|
]])], [
|
||||||
AC_DEFINE([HAVE_ARM64_CRC32], [1],
|
AC_DEFINE([HAVE_ARM64_CRC32], [1],
|
||||||
|
|
@ -1137,19 +1164,56 @@ uint32_t my_crc(uint32_t a, uint64_t b)
|
||||||
enable_arm64_crc32=no
|
enable_arm64_crc32=no
|
||||||
])
|
])
|
||||||
AC_MSG_RESULT([$enable_arm64_crc32])
|
AC_MSG_RESULT([$enable_arm64_crc32])
|
||||||
|
|
||||||
CFLAGS="$OLD_CFLAGS"
|
|
||||||
])
|
])
|
||||||
|
|
||||||
# Check for ARM64 CRC32 instruction runtime detection.
|
# Check for ARM64 CRC32 instruction runtime detection.
|
||||||
# getauxval() is supported on Linux, elf_aux_info() on FreeBSD, and
|
#
|
||||||
# sysctlbyname("hw.optional.armv8_crc32", ...) is supported on Darwin
|
# - getauxval() is supported on Linux. We also need HWCAP_CRC32 which was
|
||||||
# (macOS, iOS, etc.). Note that sysctlbyname() is supported on FreeBSD,
|
# added in glibc 2.24.
|
||||||
# NetBSD, and possibly others too but the string is specific to Apple OSes.
|
#
|
||||||
# The C code is responsible for checking defined(__APPLE__) before using
|
# - elf_aux_info() is supported on FreeBSD and OpenBSD >= 7.6.
|
||||||
# sysctlbyname("hw.optional.armv8_crc32", ...).
|
#
|
||||||
|
# - sysctlbyname("hw.optional.armv8_crc32", ...) is supported on Darwin
|
||||||
|
# (macOS, iOS, etc.). Note that sysctlbyname() is supported on FreeBSD,
|
||||||
|
# NetBSD, and possibly others too but the string is specific to Apple
|
||||||
|
# OSes. The C code is responsible for checking defined(__APPLE__)
|
||||||
|
# before using sysctlbyname("hw.optional.armv8_crc32", ...).
|
||||||
|
#
|
||||||
AS_IF([test "x$enable_arm64_crc32" = xyes], [
|
AS_IF([test "x$enable_arm64_crc32" = xyes], [
|
||||||
AC_CHECK_FUNCS([getauxval elf_aux_info sysctlbyname])
|
AC_CHECK_FUNCS([getauxval elf_aux_info sysctlbyname], [break])
|
||||||
|
AC_CHECK_DECL([HWCAP_CRC32], [AC_DEFINE([HAVE_HWCAP_CRC32], [1],
|
||||||
|
[Define to 1 if 'HWCAP_CRC32' is declared in <sys/auxv.h>.])],
|
||||||
|
[], [[#include <sys/auxv.h>]])
|
||||||
|
])
|
||||||
|
|
||||||
|
|
||||||
|
# LoongArch CRC32 intrinsics are in larchintrin.h.
|
||||||
|
# These are supported by at least GCC and Clang.
|
||||||
|
#
|
||||||
|
# Only 64-bit LoongArch is currently supported.
|
||||||
|
# It doesn't need runtime detection.
|
||||||
|
AC_MSG_CHECKING([if LoongArch CRC32 instructions are usable])
|
||||||
|
AS_IF([test "x$enable_loongarch_crc32" = xno], [
|
||||||
|
AC_MSG_RESULT([no, --disable-loongarch-crc32 was used])
|
||||||
|
], [
|
||||||
|
AC_LINK_IFELSE([AC_LANG_SOURCE([[
|
||||||
|
#if !(defined(__loongarch__) && __loongarch_grlen >= 64)
|
||||||
|
# error
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <larchintrin.h>
|
||||||
|
int main(void)
|
||||||
|
{
|
||||||
|
return __crc_w_w_w(1, 2);
|
||||||
|
}
|
||||||
|
]])], [
|
||||||
|
AC_DEFINE([HAVE_LOONGARCH_CRC32], [1], [Define to 1 if
|
||||||
|
64-bit LoongArch CRC32 instructions are supported.])
|
||||||
|
enable_loongarch_crc32=yes
|
||||||
|
], [
|
||||||
|
enable_loongarch_crc32=no
|
||||||
|
])
|
||||||
|
AC_MSG_RESULT([$enable_loongarch_crc32])
|
||||||
])
|
])
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1177,12 +1241,38 @@ AS_CASE([$enable_sandbox],
|
||||||
)
|
)
|
||||||
AS_CASE([$enable_sandbox],
|
AS_CASE([$enable_sandbox],
|
||||||
[auto | landlock], [
|
[auto | landlock], [
|
||||||
AC_CHECK_HEADERS([linux/landlock.h], [
|
AC_MSG_CHECKING([if Linux Landlock is usable])
|
||||||
|
|
||||||
|
# A compile check is done here because some systems have
|
||||||
|
# linux/landlock.h, but do not have the syscalls defined
|
||||||
|
# in order to actually use Linux Landlock.
|
||||||
|
AC_LINK_IFELSE([AC_LANG_SOURCE([[
|
||||||
|
#include <linux/landlock.h>
|
||||||
|
#include <sys/syscall.h>
|
||||||
|
#include <sys/prctl.h>
|
||||||
|
|
||||||
|
int main(void)
|
||||||
|
{
|
||||||
|
(void)prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0);
|
||||||
|
(void)SYS_landlock_create_ruleset;
|
||||||
|
(void)SYS_landlock_restrict_self;
|
||||||
|
(void)LANDLOCK_CREATE_RULESET_VERSION;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
]])], [
|
||||||
enable_sandbox=found
|
enable_sandbox=found
|
||||||
|
|
||||||
AS_CASE([$CFLAGS], [*-fsanitize=*], [AC_MSG_ERROR([
|
AS_CASE(["$CC $CFLAGS"], [*-fsanitize=*],
|
||||||
CFLAGS contains '-fsanitize=' which is incompatible with the Landlock
|
[AC_MSG_ERROR([
|
||||||
|
CC or CFLAGS contain '-fsanitize=' which is incompatible with the Landlock
|
||||||
sandboxing. Use --disable-sandbox when using '-fsanitize'.])])
|
sandboxing. Use --disable-sandbox when using '-fsanitize'.])])
|
||||||
|
|
||||||
|
AC_DEFINE([HAVE_LINUX_LANDLOCK], [1],
|
||||||
|
[Define to 1 if Linux Landlock is supported.
|
||||||
|
See configure.ac for details.])
|
||||||
|
AC_MSG_RESULT([yes])
|
||||||
|
], [
|
||||||
|
AC_MSG_RESULT([no])
|
||||||
])
|
])
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|
@ -1256,6 +1346,8 @@ AS_IF([test "$GCC" = yes], [
|
||||||
-Wmissing-prototypes \
|
-Wmissing-prototypes \
|
||||||
-Wmissing-declarations \
|
-Wmissing-declarations \
|
||||||
-Wredundant-decls \
|
-Wredundant-decls \
|
||||||
|
-Wimplicit-fallthrough \
|
||||||
|
-Wimplicit-fallthrough=5 \
|
||||||
\
|
\
|
||||||
-Wc99-compat \
|
-Wc99-compat \
|
||||||
-Wc11-extensions \
|
-Wc11-extensions \
|
||||||
|
|
@ -1268,6 +1360,7 @@ AS_IF([test "$GCC" = yes], [
|
||||||
-Wdocumentation \
|
-Wdocumentation \
|
||||||
-Wduplicate-enum \
|
-Wduplicate-enum \
|
||||||
-Wempty-translation-unit \
|
-Wempty-translation-unit \
|
||||||
|
-Wextra-semi-stmt \
|
||||||
-Wflexible-array-extensions \
|
-Wflexible-array-extensions \
|
||||||
-Wmissing-variable-declarations \
|
-Wmissing-variable-declarations \
|
||||||
-Wnewline-eof \
|
-Wnewline-eof \
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,8 @@ noinst_PROGRAMS = \
|
||||||
memusage \
|
memusage \
|
||||||
crc32 \
|
crc32 \
|
||||||
known_sizes \
|
known_sizes \
|
||||||
hex2bin
|
hex2bin \
|
||||||
|
testfilegen-arm64
|
||||||
|
|
||||||
AM_CPPFLAGS = \
|
AM_CPPFLAGS = \
|
||||||
-I$(top_srcdir)/src/common \
|
-I$(top_srcdir)/src/common \
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,116 @@
|
||||||
|
// SPDX-License-Identifier: 0BSD
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
/// \file testfilegen-arm64.c
|
||||||
|
/// \brief Generates uncompressed test file for the ARM64 filter
|
||||||
|
//
|
||||||
|
// Author: Lasse Collin
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#include <stdbool.h>
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
|
||||||
|
static uint32_t pc4 = 0;
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
put32le(uint32_t v)
|
||||||
|
{
|
||||||
|
putchar((v >> 0) & 0xFF);
|
||||||
|
putchar((v >> 8) & 0xFF);
|
||||||
|
putchar((v >> 16) & 0xFF);
|
||||||
|
putchar((v >> 24) & 0xFF);
|
||||||
|
++pc4;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
putbl(uint32_t imm)
|
||||||
|
{
|
||||||
|
imm &= (1U << 26) - 1;
|
||||||
|
imm |= 0x25U << 26;
|
||||||
|
put32le(imm);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
putadrp32(uint32_t imm)
|
||||||
|
{
|
||||||
|
imm &= 0x1FFFFFU;
|
||||||
|
|
||||||
|
// fprintf(stderr, "ADRP 0x%08X\n", imm);
|
||||||
|
|
||||||
|
uint32_t instr = 0x90000000;
|
||||||
|
instr |= (pc4 * 5 + 11) & 0x1F;
|
||||||
|
instr |= (imm & 3) << 29;
|
||||||
|
instr |= (imm >> 2) << 5;
|
||||||
|
|
||||||
|
put32le(instr);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
extern int
|
||||||
|
main(void)
|
||||||
|
{
|
||||||
|
putbl(0);
|
||||||
|
putbl(0x03FFFFFF);
|
||||||
|
putbl(0x03FFFFFE);
|
||||||
|
putbl(0x03FFFFFD);
|
||||||
|
|
||||||
|
putbl(3);
|
||||||
|
putbl(2);
|
||||||
|
putbl(1);
|
||||||
|
putbl(0);
|
||||||
|
|
||||||
|
|
||||||
|
putbl(0x02000001);
|
||||||
|
putbl(0x02000000);
|
||||||
|
putbl(0x01FFFFFF);
|
||||||
|
putbl(0x01FFFFFE);
|
||||||
|
|
||||||
|
putbl(0x01111117);
|
||||||
|
putbl(0x01111116);
|
||||||
|
putbl(0x01111115);
|
||||||
|
putbl(0x01111114);
|
||||||
|
|
||||||
|
|
||||||
|
putbl(0x02222227);
|
||||||
|
putbl(0x02222226);
|
||||||
|
putbl(0x02222225);
|
||||||
|
putbl(0x02222224);
|
||||||
|
|
||||||
|
putbl(0U - pc4);
|
||||||
|
putbl(0U - pc4);
|
||||||
|
putbl(0U - pc4);
|
||||||
|
putbl(0U - pc4);
|
||||||
|
|
||||||
|
putadrp32(0x00);
|
||||||
|
putadrp32(0x05);
|
||||||
|
putadrp32(0x15);
|
||||||
|
putadrp32(0x25);
|
||||||
|
|
||||||
|
for (unsigned rep = 0; rep < 2; ++rep) {
|
||||||
|
while ((pc4 << 2) & 4095)
|
||||||
|
put32le(0x55555555U);
|
||||||
|
|
||||||
|
for (unsigned i = 10; i <= 21; ++i) {
|
||||||
|
const uint32_t neg = (0x1FFF00 >> (21 - i)) & ~255U;
|
||||||
|
const uint32_t plus = 1U << (i - 1);
|
||||||
|
putadrp32(0x000000 | plus);
|
||||||
|
putadrp32(0x000005 | plus);
|
||||||
|
putadrp32(0x0000FE | plus);
|
||||||
|
putadrp32(0x0000FF | plus);
|
||||||
|
|
||||||
|
putadrp32(0x000000 | neg);
|
||||||
|
putadrp32(0x000005 | neg);
|
||||||
|
putadrp32(0x0000FE | neg);
|
||||||
|
putadrp32(0x0000FF | neg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
@ -10,8 +10,8 @@
|
||||||
# cover most of the cases where mistakes can easily happen.
|
# cover most of the cases where mistakes can easily happen.
|
||||||
#
|
#
|
||||||
# Give the path and filename of the xz executable as an argument. If no
|
# Give the path and filename of the xz executable as an argument. If no
|
||||||
# arguments are given, this script uses ../src/xz/xz (relative to the
|
# arguments are given, this script uses src/xz/xz (relative to the current
|
||||||
# location of this script).
|
# directory).
|
||||||
#
|
#
|
||||||
# You may want to pipe the output of this script to less -S to view the
|
# You may want to pipe the output of this script to less -S to view the
|
||||||
# tables printed by xz --list on a 80-column terminal. On the other hand,
|
# tables printed by xz --list on a 80-column terminal. On the other hand,
|
||||||
|
|
@ -32,10 +32,6 @@ if [ -n "$1" ]; then
|
||||||
[ "x${XZ:0:1}" != "x/" ] && XZ="$PWD/$XZ"
|
[ "x${XZ:0:1}" != "x/" ] && XZ="$PWD/$XZ"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Locate top_srcdir and go there.
|
|
||||||
top_srcdir="$(cd -- "$(dirname -- "$0")" && cd .. && pwd)"
|
|
||||||
cd -- "$top_srcdir"
|
|
||||||
|
|
||||||
# If XZ wasn't already set, use the default location.
|
# If XZ wasn't already set, use the default location.
|
||||||
XZ=${XZ-"$PWD/src/xz/xz"}
|
XZ=${XZ-"$PWD/src/xz/xz"}
|
||||||
if [ "$(type -t "$XZ" || true)" != "file" ]; then
|
if [ "$(type -t "$XZ" || true)" != "file" ]; then
|
||||||
|
|
@ -45,15 +41,20 @@ if [ "$(type -t "$XZ" || true)" != "file" ]; then
|
||||||
fi
|
fi
|
||||||
XZ=$(type -p -- "$XZ")
|
XZ=$(type -p -- "$XZ")
|
||||||
|
|
||||||
|
# Locate top_srcdir and go there.
|
||||||
|
top_srcdir="$(cd -- "$(dirname -- "$0")" && cd .. && pwd)"
|
||||||
|
cd -- "$top_srcdir"
|
||||||
|
|
||||||
# Print the xz version and locale information.
|
# Print the xz version and locale information.
|
||||||
echo "$XZ --version"
|
echo "$XZ --version"
|
||||||
"$XZ" --version
|
"$XZ" --version
|
||||||
echo
|
echo
|
||||||
if [ -d .git ] && type git > /dev/null 2>&1; then
|
if [ -d .git ] && type git > /dev/null 2>&1; then
|
||||||
echo "Source code version in $PWD:"
|
echo "Source code version in $PWD:"
|
||||||
git describe --abbrev=4
|
git describe --abbrev=8
|
||||||
fi
|
fi
|
||||||
echo
|
echo
|
||||||
|
echo "LANGUAGE=$LANGUAGE"
|
||||||
locale
|
locale
|
||||||
echo
|
echo
|
||||||
|
|
||||||
|
|
@ -78,17 +79,13 @@ for CMD in \
|
||||||
"xz --lzma2=foobarbaz=abcd" \
|
"xz --lzma2=foobarbaz=abcd" \
|
||||||
"xz --lzma2=mf=abcd" \
|
"xz --lzma2=mf=abcd" \
|
||||||
"xz --lzma2=preset=foobarbaz" \
|
"xz --lzma2=preset=foobarbaz" \
|
||||||
"xz --lzma2=mf=bt4,nice=2" \
|
|
||||||
"xz --lzma2=nice=50000" \
|
"xz --lzma2=nice=50000" \
|
||||||
"xz --help" \
|
"xz --help" \
|
||||||
"xz --long-help" \
|
"xz --long-help" \
|
||||||
|
"xz --filters-help" \
|
||||||
"xz --list good-*lzma2*" \
|
"xz --list good-*lzma2*" \
|
||||||
"xz --list good-1-check*" \
|
"xz --list good-1-check* unsupported-check.xz" \
|
||||||
"xz --list --verbose good-*lzma2*" \
|
"xz --list --verbose --verbose good-1-arm64-lzma2-1.xz good-1-block_header-1.xz good-1-check-sha256.xz good-2-lzma2.xz"
|
||||||
"xz --list --verbose good-1-check*" \
|
|
||||||
"xz --list --verbose --verbose good-*lzma2*" \
|
|
||||||
"xz --list --verbose --verbose good-1-check*" \
|
|
||||||
"xz --list --verbose --verbose unsupported-check.xz"
|
|
||||||
do
|
do
|
||||||
echo "-----------------------------------------------------------"
|
echo "-----------------------------------------------------------"
|
||||||
echo
|
echo
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,243 @@
|
||||||
|
61e82b90203cd44c3a712fee5e1efb2a3de62c673cfbe010928856ef2a29b907 xz-4.999.9beta.tar
|
||||||
|
330312c4397608d8b7be362cc7edbfeafa6101614bc2164d816ea767656aa15c xz-4.999.9beta.tar.bz2
|
||||||
|
fa3901d1c034842da47fec1a24a9b5a5bd435f5ecfbb444c168512e2daddb86f xz-4.999.9beta.tar.gz
|
||||||
|
d6649124c7046caea616f599716a559c971c97947e4533c8f25f683310154e8c xz-4.999.9beta.tar.xz
|
||||||
|
0cb40c62ab80536c9cda0125bad445994c0c48f7f9e7c5a3839dbe2be7e7dabc xz-5.0.0.tar
|
||||||
|
47a89e65c4690364a0123871a221e663d23a9fbd1ca756a804b10dd4006056d8 xz-5.0.0.tar.bz2
|
||||||
|
eba9211990a642fc2c35ea02618b710c7fa898d78ccca48b546a07bdde03c44d xz-5.0.0.tar.gz
|
||||||
|
2da61184b5da24b7dd9266416259dbf65212d1ef83726202427233e7fcfe5754 xz-5.0.0.tar.xz
|
||||||
|
2485450f5bdfcdef701454c0ae61eeab144e852a20a14e07b0f3cba2f2a758e9 xz-5.0.0-dos.zip
|
||||||
|
ba46384f060b2c6646f2b342cc9de0e220d057f1ee148b5002eafe7156f27412 xz-5.0.0-windows.zip
|
||||||
|
e4103c00b237a7dfc0f2419ea0aafb739822405facea7e4ecc8fd10dcd82c734 xz-5.0.0-windows.7z
|
||||||
|
e0aa4e3d504d7b27b9d6b76107d0f3656a06a3217dd5006c401aa83d18931b40 xz-5.0.1.tar
|
||||||
|
9b380f502d37085a60821484a3a13747454638927cc36033be64970512451ed8 xz-5.0.1.tar.bz2
|
||||||
|
3770b8872a4322b9502937b4781d523303bf193962c4822899fd3a210878fc80 xz-5.0.1.tar.gz
|
||||||
|
0bd2cb93c172f6cce144493004755aa565d751cb40945bbbb5b5d210c037fce4 xz-5.0.1.tar.xz
|
||||||
|
47337530220b8eb5951c6be1bcdcaee49b32b843e39ea97e0da4c2791e994a98 xz-5.0.1-dos.zip
|
||||||
|
73488c8d475d6634484a65e32aa3ccdc9e56de21b6e8872feaee0d52dc1cd879 xz-5.0.1-windows.zip
|
||||||
|
0505cc1a49b5fd38226a28f145dff6d34bc7f14ff5a1d78a3e08b6fa3398425e xz-5.0.1-windows.7z
|
||||||
|
574b8b84359c263c0bb3c35ee13d53fdf36fac2ea89f0a6234cb5bdc5ae6fe87 xz-5.0.2.tar
|
||||||
|
216df1ddbd591f0da63de31d4b0837eed6d019ccb0e36e57812764c69af645bc xz-5.0.2.tar.bz2
|
||||||
|
57e979baaa40147dde1bbb284e3618f8f18b6532c932648bd57b5aee674b98a7 xz-5.0.2.tar.gz
|
||||||
|
b334483005639a65a37bcc3c33971de2df94764c11a1c3329ce388abb1d95334 xz-5.0.2.tar.xz
|
||||||
|
8d65f9e9b625394f98846fc9a19e79dafeacd7a905aba2e0f28397df099d57c9 xz-5.0.2-windows.zip
|
||||||
|
4e89d87fe9a3d795ed79b93f9d70478107e45ee51047758d4812ac070f13a54a xz-5.0.2-windows.7z
|
||||||
|
74984834d91aadd516f26bcf60e4f82adb74044f9a3f367dca5488ee3c97b8d4 xz-5.0.3.tar
|
||||||
|
5a11b9e17bfcda62319c5a8c4a2062dc81607a316d3f6adff89422d81ec1eae9 xz-5.0.3.tar.bz2
|
||||||
|
10eb4df72dffb2fb14c3d2d82b450e72282ffcb9ee3908a8e5b392b8f09681bf xz-5.0.3.tar.gz
|
||||||
|
3544421e3447fd3f668fd89fb384ff9d312d2730cb860f6b8e09564028de8e32 xz-5.0.3.tar.xz
|
||||||
|
f7e741635976eead2dd5ff592cc98a04261d96df81b7db94a957a96cc2b13cce xz-5.0.3-windows.zip
|
||||||
|
0ed3c11430735e81ec65fb3588b2b8cf4bea6953ad4dda99d9aef4ee231a6036 xz-5.0.3-windows.7z
|
||||||
|
403df1a612036569a1bf54a171a609b6c11370f6b774bcb4940533a72edda1f9 xz-5.0.4.tar
|
||||||
|
5cd9b060d3a1ad396b3be52c9b9311046a1c369e6062aea752658c435629ce92 xz-5.0.4.tar.bz2
|
||||||
|
d67405798dad645965fe51cf4e40c23d1201fb234378d3c44f5a3787142b83b6 xz-5.0.4.tar.gz
|
||||||
|
b7fd25be1ebead021447960804f91006e3fc2f151d7a19948c6a27b4db09b5e9 xz-5.0.4.tar.xz
|
||||||
|
45e5771ebb88bc71805a3fc183bcb49d1e24b21aa6f762d94be6bc11426d9101 xz-5.0.4-dos.zip
|
||||||
|
7ed7d59f71bbfac959a4d4c6eb86733440a0ca115677522c6f5f43ab0e106edc xz-5.0.4-windows.zip
|
||||||
|
7be3642f91ba2fe3339bcb6c458cad303cd9d8ab085537c7b4e96e14c5025de9 xz-5.0.4-windows.7z
|
||||||
|
dd665d739d07ff4b1cae5ecadfad929928fc069d3a617cf682435beadb568e3c xz-5.0.5.tar
|
||||||
|
166c48d2842519bc4f96333bff9e265f8cdda44d38e40594ef3f9bbb52890490 xz-5.0.5.tar.bz2
|
||||||
|
5dcffe6a3726d23d1711a65288de2e215b4960da5092248ce63c99d50093b93a xz-5.0.5.tar.gz
|
||||||
|
3515c74d170d0f6ec00820de63106ad16c07bae55a59c174b4741242c76264a4 xz-5.0.5.tar.xz
|
||||||
|
f5463e2a45788773e33a8056c931d8973da5a00122056df417da24033088daff xz-5.0.5-windows.zip
|
||||||
|
8dbe3357a6ad39cc3076e4f5f0cef9a4ef67461559d4db02f1f06841b74dec44 xz-5.0.5-windows.7z
|
||||||
|
1a8c89616655bf05b04b6dfb62642db02e5fe368d53ee033990be5c26f194a15 xz-5.0.5-with-libtool-2.4.2.418.tar
|
||||||
|
0b6fa3b002c8e15fcc4417001ef0327cfdf6ad53656d7e545c6069ff7657b26d xz-5.0.5-with-libtool-2.4.2.418.tar.gz
|
||||||
|
ea314028ba6aa221de52e0bb4b149db4704a3317e6676adde2607debd026054f xz-5.0.6.tar
|
||||||
|
2f444375cd1d66c04247127e9b5101ce8fb2a8726449f211f05c84c143289408 xz-5.0.6.tar.bz2
|
||||||
|
b6cf4cdc1313556a00848e722625bce40d2cd552c052b0465791c64c9202c3f1 xz-5.0.6.tar.gz
|
||||||
|
9d4136392b6266219fd0f1068256c34180f106ee4214752136c58c0f4864391c xz-5.0.6.tar.xz
|
||||||
|
97ab44b55b252cb2e1b851f6dbdb9811011bad7a80eb42445b0ea63bb1444dc3 xz-5.0.7.tar
|
||||||
|
e8851dc749df2340dac6c9297cb2653eff684e73c3dedf690930119502edd616 xz-5.0.7.tar.bz2
|
||||||
|
f4d2165553b9d0d82fd08bc2eacddeb48ebeb862a5686a603f8c044a2e52c93f xz-5.0.7.tar.gz
|
||||||
|
55146936f33a432282e399ef702b2c3ab06644d9f091a811b39ff483fd190e24 xz-5.0.7.tar.xz
|
||||||
|
e4cb781440e29b2c1e1700730f3fdabf7ccc62317a61931609a098c384bfca96 xz-5.0.8.tar
|
||||||
|
2286f9d90bb0a0de34cba990df1b10cfad0777f00cb2883def26b8ec1b326bda xz-5.0.8.tar.bz2
|
||||||
|
cac71b31ed322a487f1da1f10dfcf47f8855f97ff2c23b92680c7ae7be58babb xz-5.0.8.tar.gz
|
||||||
|
1b5c105c1f372f128bf23ed7a1fd9acf473c88adefb3243d2ea762edca2a0b79 xz-5.0.8.tar.xz
|
||||||
|
812fb3369dde3c81d0765e1a7e00afa0dcfa2e5fa63fdb57e7582147220b2491 xz-5.1.1alpha.tar
|
||||||
|
54e59a83690a4a0ec88a7d7c3bdef90c6b196c892a93463863c71c24fe87951a xz-5.1.1alpha.tar.gz
|
||||||
|
90d7162c001d388d6ef082ccda7b7852c6adc367c492a8935cdf170e49a9ccda xz-5.1.1alpha.tar.xz
|
||||||
|
5d1f5b39d19d1e0b5e7e446b11add769ce68fef781173e116bf8e7d533a90dcb xz-5.1.2alpha.tar
|
||||||
|
70e792d2a67cfbb8f2dffd0feab6ca6e5a4a618d65070fb44a367629d1ba94e5 xz-5.1.2alpha.tar.gz
|
||||||
|
7a9c8dbede0b62e70c75cc0dc14135760a39e9fc6504f87091a59fea87461e18 xz-5.1.2alpha.tar.xz
|
||||||
|
b77cfbdea2f805b69c4c3db40da311555af3fe78271097cf5dec06f7919f07c9 xz-5.1.3alpha.tar
|
||||||
|
9f94506e301d5b6863921bba861a99ba00de384dafb4e5f409679a93e41613d4 xz-5.1.3alpha.tar.gz
|
||||||
|
0413632457df9c65b1ce9dcf78495152fc9307bea5c3267c9996eebf708bf2b6 xz-5.1.3alpha.tar.xz
|
||||||
|
1b70584fdf6c872d7a921dea53772b89962dc0b292b0e3ec0d7a0ca5c860242b xz-5.1.4beta.tar
|
||||||
|
7c47b9e2cfb5be93245d9fcf2bec5b459412b7628c333896dded373dcd0cf0e0 xz-5.1.4beta.tar.gz
|
||||||
|
9f9c6a97959afbbd1315626f253f2d3d48c47e01a921c7f160dab4fde10678b5 xz-5.1.4beta.tar.xz
|
||||||
|
2d066a7ed58c98cd91111d8408fb8896b8100a8ee7e519ce5ea2315c284ba5b0 xz-5.2.0.tar
|
||||||
|
f7357d7455a1670229b3cca021da71dd5d13b789db62743c20624bdffc9cc4a5 xz-5.2.0.tar.bz2
|
||||||
|
231ef369982240bb20ed7cffa52bb12a4a297ce6871f480ab85e8a7ba98bf3d6 xz-5.2.0.tar.gz
|
||||||
|
5962fe32e0b42c7065b4410b7d8ffbf2895e197e97d410c4fc374ea0d7610a14 xz-5.2.0.tar.xz
|
||||||
|
490fc2ad09fea7bc3772bb23432b3dce32d0ef81d413b3b974730436599d9ec5 xz-5.2.0-dos.zip
|
||||||
|
b49c05f82cd05fa67031e72138e40f422d8fd6e2c9ca106016dfd24fae0e629e xz-5.2.0-windows.zip
|
||||||
|
13dfe89a796f4c50f28fac9059d33241746b8e66c540e54d2ac44fd3ea1fd027 xz-5.2.0-windows.7z
|
||||||
|
a9ebc19a511b650c4b678802375505302992214f578a40ce78db089f99c3341f xz-5.2.1.tar
|
||||||
|
679148f497e0bff2c1adce42dee5a23f746e71321c33ebb0f641a302e30c2a80 xz-5.2.1.tar.bz2
|
||||||
|
b918b6648076e74f8d7ae19db5ee663df800049e187259faf5eb997a7b974681 xz-5.2.1.tar.gz
|
||||||
|
6ecdd4d80b12001497df0741d6037f918d270fa0f9a1ab4e2664bf4157ae323c xz-5.2.1.tar.xz
|
||||||
|
e4150f52b2e9937cbe54f0e85325a25a3dc2da68cf643310bd973c9b5c121131 xz-5.2.1-dos.zip
|
||||||
|
2447f5e70dd105900a2957d6c2fad2b5872a6482ba59c1fa0513d03e8b2d10f4 xz-5.2.1-windows.zip
|
||||||
|
afc018a5ab327aac5c8d6e60dc20aae844204b4e86cfac56ec7dd455921dc2ce xz-5.2.1-windows.7z
|
||||||
|
f96b347204dbb984f6e58ecc98f01f823742d403133a461dd8a52993b237bb8c xz-5.2.2.tar
|
||||||
|
6ff5f57a4b9167155e35e6da8b529de69270efb2b4cf3fbabf41a4ee793840b5 xz-5.2.2.tar.bz2
|
||||||
|
73df4d5d34f0468bd57d09f2d8af363e95ed6cc3a4a86129d2f2c366259902a2 xz-5.2.2.tar.gz
|
||||||
|
f341b1906ebcdde291dd619399ae944600edc9193619dd0c0110a5f05bfcc89e xz-5.2.2.tar.xz
|
||||||
|
1a88e9645eca0c3d95e00e8fc4b1a155fa3e527a60bec5a667ca56ed36dbb29b xz-5.2.3.tar
|
||||||
|
fd9ca16de1052aac899ad3495ad20dfa906c27b4a5070102a2ec35ca3a4740c1 xz-5.2.3.tar.bz2
|
||||||
|
71928b357d0a09a12a4b4c5fafca8c31c19b0e7d3b8ebb19622e96f26dbf28cb xz-5.2.3.tar.gz
|
||||||
|
7876096b053ad598c31f6df35f7de5cd9ff2ba3162e5a5554e4fc198447e0347 xz-5.2.3.tar.xz
|
||||||
|
afe73c260e38fdebdd14c9eaab71c19b206ff74cebbdc744b0fa35b77b243220 xz-5.2.3-windows.zip
|
||||||
|
30352e7f1f1605ff0758d10e951f4b3eda108538ecd500b831124dc480e603f3 xz-5.2.3-windows.7z
|
||||||
|
7f77d67aec8207e4fef28c58f19919e51ef469621a58eafd13bf1f80ce956312 xz-5.2.4.tar
|
||||||
|
3313fd2a95f43d88e44264e6b015e7d03053e681860b0d5d3f9baca79c57b7bf xz-5.2.4.tar.bz2
|
||||||
|
b512f3b726d3b37b6dc4c8570e137b9311e7552e8ccbab4d39d47ce5f4177145 xz-5.2.4.tar.gz
|
||||||
|
9717ae363760dedf573dad241420c5fea86256b65bc21d2cf71b2b12f0544f4b xz-5.2.4.tar.xz
|
||||||
|
9a5163623f435b6fa0844b6b884babd6bf4f8d876ae2d8134deeb296afd49c61 xz-5.2.4-windows.zip
|
||||||
|
efb267a5c7b267cd9e7bf18b29857738b06845178c74f424e3c502609fbf9862 xz-5.2.4-windows.7z
|
||||||
|
cdd92f155d202979dace48d16ea9e1a7c93d09eb2c2c0ac9a207e7544ed4703a xz-5.2.5.tar
|
||||||
|
5117f930900b341493827d63aa910ff5e011e0b994197c3b71c08a20228a42df xz-5.2.5.tar.bz2
|
||||||
|
f6f4910fd033078738bd82bfba4f49219d03b17eb0794eb91efbae419f4aba10 xz-5.2.5.tar.gz
|
||||||
|
3e1e518ffc912f86608a8cb35e4bd41ad1aec210df2a47aaa1f95e7f5576ef56 xz-5.2.5.tar.xz
|
||||||
|
601ccfa756da378429eb246b60c52d5e9c7f7b41e95e187c487004c093112789 xz-5.2.5.tar.zst
|
||||||
|
98c6cb1042284fe704ec30083f3fc87364ce9ed2ea51f62bbb0ee9d3448717ec xzgrep-ZDI-CAN-16587.patch
|
||||||
|
0b77f9ac5af53dec0b14773087f8f53e699ad6ce97cc8bfc3ea3cf89535dd335 xz-5.2.5-dos.zip
|
||||||
|
d83b82ca75dfab39a13dda364367b34970c781a9df4d41264db922ac3a8f622d xz-5.2.5-windows.zip
|
||||||
|
bee788dcc8f4a16e232a5a91c5625be1cfad36085eade6983013d1a92a308cfc xz-5.2.5-windows.7z
|
||||||
|
49305a2e5804ba438aa4690377e9b630646da6ae9f3edd0e3e727f92b47dc661 xz-5.2.6.tar
|
||||||
|
13e3402e301b6018f6a71ef0e497f714c6d11e214ae82dab156b81c2a64acb25 xz-5.2.6.tar.bz2
|
||||||
|
a2105abee17bcd2ebd15ced31b4f5eda6e17efd6b10f921a01cda4a44c91b3a0 xz-5.2.6.tar.gz
|
||||||
|
e076ba3439cb7cfc45b908c869f51a8c89f3c9ee9ee982fde28849c015e723a7 xz-5.2.6.tar.xz
|
||||||
|
2716b4067763de99b3901bcc71d3bda233798045cb8189735e611b165b8a7f4f xz-5.2.6.tar.zst
|
||||||
|
6fd6dad79e5b0d3b24a43bc3f79472b62a48d210f1aaa02fb06e5dfad89a4ebc xz-5.2.6-windows.zip
|
||||||
|
88242ad128b131ae7340370cc3c17f8d35e8b238a1db528185b28be2e6c164e1 xz-5.2.6-windows.7z
|
||||||
|
050958af3ccf032f0dba7104743e48ee6ddd9fdf5c21ec905b237e92b221c524 xz-5.2.7.tar
|
||||||
|
b65f1d0c2708e57716f4dd2216989a73847ac6fdb4168ffceb155767e22b834b xz-5.2.7.tar.bz2
|
||||||
|
06327c2ddc81e126a6d9a78b0be5014b976a2c0832f492dcfc4755d7facf6d33 xz-5.2.7.tar.gz
|
||||||
|
8712e9acb0b6b49a97d443458a3067dc5c08a025e02dc5f773176c51dd7cfc69 xz-5.2.7.tar.xz
|
||||||
|
709372e665270acf21a8ef55a8e34ca1f2421e7b5cc3146f4d45cc717fb2bea4 xz-5.2.7.tar.zst
|
||||||
|
30837d396bb50d5cec2c2431686de6f94c537c0551dc884e5cd3ab5551e65f1e xz-5.2.7-windows.zip
|
||||||
|
e9eb1dc1b8beaa5e3c535fbeaaab3780869b08fdfea0aa3ac09a804cc8a84c1a xz-5.2.7-windows.7z
|
||||||
|
96ebba68e4cc33dcd6e47a6326a39babeccc78ed17a08f5db0c11942d2c6fbc4 xz-5.2.8.tar
|
||||||
|
1f8a43d9fcf325d049a31fe4514dc8c44a6d00ce8860d48c4212d1e349d2a3ed xz-5.2.8.tar.bz2
|
||||||
|
ec5cda9f0b91336ab1b881d3d144e8203fcca604e607caca8ae678ddbc29207d xz-5.2.8.tar.gz
|
||||||
|
2424b2711b1d40d2129645d550363896c6853c97528f085f7765092fe68679d4 xz-5.2.8.tar.xz
|
||||||
|
c4092edd7ca1416be97364548cb86d7ef40b07c48a417a7254fb053b68098794 xz-5.2.8.tar.zst
|
||||||
|
f4c1eb727301b9a2acb1ae065562ad0beb7a6512639f8088af1afefcbbcc6260 xz-5.2.8-windows.zip
|
||||||
|
13390e4bd6023e27985cd25a61087e93a248858e7cd01755af8a84f5eef11feb xz-5.2.8-windows.7z
|
||||||
|
18d594e0c3ca307c89c809d636a8878e3d067f0c26983cbc7dc5a586377bc0bd xz-5.2.9.tar
|
||||||
|
b194507fba3a462a753c553149ccdaa168337bcb7deefddd067ba987c83dfce6 xz-5.2.9.tar.bz2
|
||||||
|
e982ea31b81543d7ee2b6fa34c2ad11760e1c50c6f4475add8ba0f2f005f07b4 xz-5.2.9.tar.gz
|
||||||
|
287ef163e7e57561e9de590b2a9037457af24f03a46bbd12bf84f3263679e8d2 xz-5.2.9.tar.xz
|
||||||
|
45cb9dd8785dbb60341450a28c39228cc86146119b4eac48e754a6650bc26931 xz-5.2.9.tar.zst
|
||||||
|
62ac7ba1e223616b365bd7bf1f2231b1c7e0aad111d53e675bef77ef1ac65c43 xz-5.2.9-windows.zip
|
||||||
|
19810e26e202ab2f0b28b70ca785320c006a72826f7bf80c9c9db65db24a23cc xz-5.2.9-windows.7z
|
||||||
|
33aa379c788ffe5af0765296fd9d31fd1fd6d409088ded09af7ff60035694521 xz-5.2.10.tar
|
||||||
|
01b71df61521d9da698ce3c33148bff06a131628ff037398c09482f3a26e5408 xz-5.2.10.tar.bz2
|
||||||
|
eb7a3b2623c9d0135da70ca12808a214be9c019132baaa61c9e1d198d1d9ded3 xz-5.2.10.tar.gz
|
||||||
|
d615974a17299eaa1bf3d0f3b7afa172624755c8885111b17659051869d6f072 xz-5.2.10.tar.xz
|
||||||
|
4cb110fa88b6062758c1c7600f5fc497cbe10372690a7964c611adc3399c8e4b xz-5.2.10.tar.zst
|
||||||
|
02232767320c7587a9f16f9c1c42a1d0bdc94f33d93aa327bb0f0fb67a5f0beb xz-5.2.11.tar
|
||||||
|
7859c47a5e909299e77d0e87e2bafc52fb1d09e35abac48b6426c1be213c5b37 xz-5.2.11.tar.bz2
|
||||||
|
0089d47b966bd9ab48f1d01baf7ce146a3b591716c7477866b807010de3d96ab xz-5.2.11.tar.gz
|
||||||
|
503b4a9fb405e70e1d3912e418fdffe5de27e713e58925fb67e12d20d03a77bc xz-5.2.11.tar.xz
|
||||||
|
1facb7ec3c0950a95e7d5396488fd5c9710c7fec353292962291b2c103777989 xz-5.2.11.tar.zst
|
||||||
|
4d8837034498dcbe64d3cff5f71b5fb6584c1af027eda7548831832efba1c0f4 xz-5.2.12.tar
|
||||||
|
fbedff8eb67e229f2e95eb1ff920b255e405c86c9e1a53d4a6861d9823acff18 xz-5.2.12.tar.bz2
|
||||||
|
61bda930767dcb170a5328a895ec74cab0f5aac4558cdda561c83559db582a13 xz-5.2.12.tar.gz
|
||||||
|
f79a92b84101d19d76be833aecc93e68e56065b61ec737610964cd4f6c54ff2e xz-5.2.12.tar.xz
|
||||||
|
88e6796dada9b65b50ec80a3815be3e4d4ee5fbee17541f112a070d875d59a5d xz-5.2.12.tar.zst
|
||||||
|
515f41be4b7bfd4d2d1ddb939ebd028b8e979bec9baf28b7886e04637a8e54f0 xz-5.2.13.tar
|
||||||
|
620cdbfc31adbc7e3e5cd8c3c3aa9ffed9335f0ddc42719cf9afce5136a978c1 xz-5.2.13.tar.bz2
|
||||||
|
2942a1a8397cd37688f79df9584947d484dd658db088d51b790317eb3184827b xz-5.2.13.tar.gz
|
||||||
|
03eca718652bc8a77f0d2e9ad7744755818aece15cebbc11a3a069cc604ecd84 xz-5.2.13.tar.xz
|
||||||
|
9bbcac67b776385b4345d287e90e345f6c841d4285502aa386515a49696abd5d xz-5.3.1alpha.tar
|
||||||
|
55a92fe16b1dbf2067dda6c0d8fcfff5639b0c8fe926f2a6aad4785699095ec2 xz-5.3.1alpha.tar.xz
|
||||||
|
fe96db09fa3cd289a2e67af8b4045213117e47fbf7fb882bed606556edcf7d5c xz-5.3.2alpha.tar
|
||||||
|
36f4fe561714385eea08945a910a31e6ea5d48611eb7af2fe7966dd030b502d2 xz-5.3.2alpha.tar.gz
|
||||||
|
35b7e753a0da827020bd3fe9c55b34d86b888f69a82a8c5d981e8f89e555360d xz-5.3.2alpha.tar.xz
|
||||||
|
ed8fe42c7f36f707f8b65f70f106c8c06e4cc68322f3277ab31aa17b57ea0927 xz-5.3.3alpha.tar
|
||||||
|
c6d4789a79bab565440784db2e132d6bf03b2e75dd6d66a8102cf002d8dfe926 xz-5.3.3alpha.tar.gz
|
||||||
|
8d50c45575cb943d14dfef2a3f5b1199cc86b5066273d322556cf16e7f75411f xz-5.3.3alpha.tar.xz
|
||||||
|
f3dfc690c1207efd3bcb362dcb5d63df21817c9780ea058c46ef0236febf43e0 xz-5.3.4alpha.tar
|
||||||
|
829e7bc21334b163be9155cb6148f4ca80a573dc453b90e6f1e3bf023764e5f9 xz-5.3.4alpha.tar.gz
|
||||||
|
e0358fb10e59dac8da9b58c14aae59ed9b5b56cc075fbdd884b44d87a35971e9 xz-5.3.4alpha.tar.xz
|
||||||
|
9ad807c4e203ff21b921944c441d5de509d21262f5db81deeae6f56fc97c54ea xz-5.3.5beta.tar
|
||||||
|
542bb3549b2a1988d5d9ce871a5db189d117eb51371c9c1e675f5a0b1870f692 xz-5.3.5beta.tar.gz
|
||||||
|
e08932f382bed9c293a13a3cb72e07464b6caad6d6ceafe9a7545bee501f857c xz-5.3.5beta.tar.xz
|
||||||
|
d2f31178627378b6a2567e028194a4e7c18164925ac0d0364d439a8226bb06a4 xz-5.4.0.tar
|
||||||
|
795ea0494c66d509b052ddc36dc63bd634e59ff2a0f39c16a3b5644dd01d87e6 xz-5.4.0.tar.bz2
|
||||||
|
7471ef5991f690268a8f2be019acec2e0564b7b233ca40035f339fe9a07f830b xz-5.4.0.tar.gz
|
||||||
|
5f260e3b43f75cf43ca43d107dd18209f7d516782956a74ddd53288e02a83a31 xz-5.4.0.tar.xz
|
||||||
|
3d16dc30760af691318cd4bebbae9f7a177ee9a270dbaa47cb58cb1d271cac36 xz-5.4.0.tar.zst
|
||||||
|
48f8a02005c1b0f49eb629daa6567dfeccaa9cb9b6725feaf8b7cd1955bd049d xz-5.4.0-dos.zip
|
||||||
|
749fe4d7c0ce95b5c9cf35e725ed78d6158477e140cf84cde2107ec8465a5e9b xz-5.4.1.tar
|
||||||
|
dd172acb53867a68012f94c17389401b2f274a1aa5ae8f84cbfb8b7e383ea8d3 xz-5.4.1.tar.bz2
|
||||||
|
e4b0f81582efa155ccf27bb88275254a429d44968e488fc94b806f2a61cd3e22 xz-5.4.1.tar.gz
|
||||||
|
5d9827aa1875b21c288f78864bb26d2650b436ea8d2cad364e4921eb6266a5a5 xz-5.4.1.tar.xz
|
||||||
|
9b3d36dd65ecffc9cfef093010061ffe1d48ee34eef0cff69b63cf82b2d099c4 xz-5.4.1.tar.zst
|
||||||
|
3db1ec993b96cfee143df08d780b642ace8b40bb14043537db8a9c951317fafc xz-5.4.2.tar
|
||||||
|
aa49909cbd9028c4666a35fa4975f9a6203ed98154fbb8223ee43ef9ceee97c3 xz-5.4.2.tar.bz2
|
||||||
|
87947679abcf77cc509d8d1b474218fd16b72281e2797360e909deaee1ac9d05 xz-5.4.2.tar.gz
|
||||||
|
3ee13d0f40148625306b90f9622f8c9660b8082884051b0cfe46f18492f88955 xz-5.4.2.tar.xz
|
||||||
|
cd43589df77eb776956c8082a0cbae1d0cd1a2637a6930ea93ba5759639511b1 xz-5.4.2.tar.zst
|
||||||
|
475e09077f4a0cd57306ea1d4cf9ccdfd5add1a2744cf75956725e7fb531ce36 xz-5.4.3.tar
|
||||||
|
9243a04598d7a70c1f567a0143a255581ac5c64b140fd55fd5cbc1e00b0e6f90 xz-5.4.3.tar.bz2
|
||||||
|
1c382e0bc2e4e0af58398a903dd62fff7e510171d2de47a1ebe06d1528e9b7e9 xz-5.4.3.tar.gz
|
||||||
|
92177bef62c3824b4badc524f8abcce54a20b7dbcfb84cde0a2eb8b49159518c xz-5.4.3.tar.xz
|
||||||
|
da51e1105e152e62a72fd81acd9a3e325609b4aed5631c50de3ea58a7f162ebb xz-5.4.3.tar.zst
|
||||||
|
a9ffcc046c96908caed200e2d11b27a4af66b1b4351880f9ba88657a6b6b690c xz-5.4.4.tar
|
||||||
|
0b6fcde1ac38e90433a2556f500c065950b9bcd2d602006efc334782bdfe6296 xz-5.4.4.tar.bz2
|
||||||
|
aae39544e254cfd27e942d35a048d592959bd7a79f9a624afb0498bb5613bdf8 xz-5.4.4.tar.gz
|
||||||
|
705d0d96e94e1840e64dec75fc8d5832d34f6649833bec1ced9c3e08cf88132e xz-5.4.4.tar.xz
|
||||||
|
610c4d79ea3a56bfd1df178578aa17e10a88d58a362b0a7b3fa47321469bae20 xz-5.4.4.tar.zst
|
||||||
|
3ee65a3efb5c96da5e50a0f16567a926258f83f472d2773d40c4d19c8873daad xz-5.4.5.tar
|
||||||
|
8ccf5fff868c006f29522e386fb4c6a1b66463fbca65a4cfc3c4bd596e895e79 xz-5.4.5.tar.bz2
|
||||||
|
135c90b934aee8fbc0d467de87a05cb70d627da36abe518c357a873709e5b7d6 xz-5.4.5.tar.gz
|
||||||
|
da9dec6c12cf2ecf269c31ab65b5de18e8e52b96f35d5bcd08c12b43e6878803 xz-5.4.5.tar.xz
|
||||||
|
9ab5561ce9fed7860695c14b955a0ebec2df9a00fb171862a25910546a1737cc xz-5.4.5.tar.zst
|
||||||
|
b32e1195788a00ca01ea43bc5ea67ecf5bdbaf35ea8faa272da0066e795cb7e2 xz-5.4.6.tar
|
||||||
|
913851b274e8e1d31781ec949f1c23e8dbcf0ecf6e73a2436dc21769dd3e6f49 xz-5.4.6.tar.bz2
|
||||||
|
aeba3e03bf8140ddedf62a0a367158340520f6b384f75ca6045ccc6c0d43fd5c xz-5.4.6.tar.gz
|
||||||
|
b92d4e3a438affcf13362a1305cd9d94ed47ddda22e456a42791e630a5644f5c xz-5.4.6.tar.xz
|
||||||
|
21326933d567a87a7d7484a22cd5723387a71b5934b131dc91ea7495a813bdf3 xz-5.4.6.tar.zst
|
||||||
|
f30cdc66bb071622b382106b0a06ef0e28263e5656a96d88ff55cf92786391f9 xz-5.4.7.tar
|
||||||
|
9976ed9cd0764e962d852d7d519ee1c3a7f87aca3b86e5d021a45650ba3ecb41 xz-5.4.7.tar.bz2
|
||||||
|
8db6664c48ca07908b92baedcfe7f3ba23f49ef2476864518ab5db6723836e71 xz-5.4.7.tar.gz
|
||||||
|
016182c70bb5c7c9eb3465030e3a7f6baa25e17b0e8c0afe92772e6021843ce2 xz-5.4.7.tar.xz
|
||||||
|
f4a16279ebe33a607a41536fd203dc9337bdd6395ef72130cff47dc8276fd9ff xz-5.6.2.tar
|
||||||
|
e12aa03cbd200597bd4ce11d97be2d09a6e6d39a9311ce72c91ac7deacde3171 xz-5.6.2.tar.bz2
|
||||||
|
8bfd20c0e1d86f0402f2497cfa71c6ab62d4cd35fd704276e3140bfb71414519 xz-5.6.2.tar.gz
|
||||||
|
a9db3bb3d64e248a0fae963f8fb6ba851a26ba1822e504dc0efd18a80c626caf xz-5.6.2.tar.xz
|
||||||
|
31f58851acdf0d24d15bce14782dafa5a447ee922eaa39859170277dc9a8fae7 xz-5213-547-562-libtool.patch
|
||||||
|
b55087b6e30fb0cb0175e89022dafd4acb46190a4ec6831cb3e21172fc815186 xz-5.6.3.tar
|
||||||
|
a95a49147b2dbb5487517acc0adcd77f9c2032cf00664eeae352405357d14a6c xz-5.6.3.tar.bz2
|
||||||
|
b1d45295d3f71f25a4c9101bd7c8d16cb56348bbef3bbc738da0351e17c73317 xz-5.6.3.tar.gz
|
||||||
|
db0590629b6f0fa36e74aea5f9731dc6f8df068ce7b7bafa45301832a5eebc3a xz-5.6.3.tar.xz
|
||||||
|
c06b09e74a64616c36ce7c65c8af442d62031135f948d04c704f46d8c2cc2fef xz-5.6.4.tar
|
||||||
|
176d510c30d80a23b8050bbc048f2ecaacb823ae48b6821727ed6591f0df9200 xz-5.6.4.tar.bz2
|
||||||
|
269e3f2e512cbd3314849982014dc199a7b2148cf5c91cedc6db629acdf5e09b xz-5.6.4.tar.gz
|
||||||
|
829ccfe79d769748f7557e7a4429a64d06858e27e1e362e25d01ab7b931d9c95 xz-5.6.4.tar.xz
|
||||||
|
e5403003b4698967680ca57c733e11fdc110426858091cc83c8df8f4322957ee xz-5.6.4-windows.zip
|
||||||
|
a69d83338facb6e9a45147384beb7d7d8ed53b5e2a41e8c059ae0d0260b356ac xz-5.6.4-windows.7z
|
||||||
|
31199267fba9588305c0df3de5d6d9898d00c4ee02f5eee19f79baa427628519 xz-5.7.1alpha.tar
|
||||||
|
ae655a4bec0820f750985ecd270d6802ae0a987bb1cb03d41d9afa37abc2e87c xz-5.7.1alpha.tar.gz
|
||||||
|
c859193b8619f6818326141ee041870d9b76ba83f55c3c94ebcfcb71e1f79e5d xz-5.7.1alpha.tar.xz
|
||||||
|
b75a932fa38515e5d3953242b1e3c2e7edd882504b24280f0e9776d596e9cc0d xz-5.7.2beta.tar
|
||||||
|
608ed92561c9f27a1eead76653c6f63c6a40d0a20ec91753ed508ba40f9703b3 xz-5.7.2beta.tar.gz
|
||||||
|
98a61e45e5917b93ce17d826ef2d11f9331951882b2558675cdf115cdf3f77c8 xz-5.7.2beta.tar.xz
|
||||||
|
bdff4615bf19c46042bced4d7b8c52bdacce61261b39db464d482692c948dd02 xz-5.8.0.tar
|
||||||
|
8c107270289807e2047f35d687b4d7a5bb029137f7c89ebdcfa909cb3b674440 xz-5.8.0.tar.bz2
|
||||||
|
b523c5e47d1490338c5121bdf2a6ecca2bcf0dce05a83ad40a830029cbe6679b xz-5.8.0.tar.gz
|
||||||
|
05ecad9e71919f4fca9f19fbbc979ea28e230188ed123dc6f06b98031ea14542 xz-5.8.0.tar.xz
|
||||||
|
397165cedccb8e16700b8fdd026c3fd7ff2d18923e28cfbf7d0c5f89cd6a50af xz-5.8.0-windows.zip
|
||||||
|
078caa9d406018d4d43df343455f57811e9ba69c1340670a85a0ae6341d42ba3 xz-5.8.0-windows.7z
|
||||||
|
ee188eabc3220684422f62df7a385541a86d2a5c385407f9d8fd94d49b251c4e xz-cve-2025-31115.patch
|
||||||
|
c9789682496d124fd214e665f6aa2f6d3d9e8527a7f0e120f9180c531d322bd6 xz-5.8.1.tar
|
||||||
|
5965c692c4c8800cd4b33ce6d0f6ac9ac9d6ab227b17c512b6561bce4f08d47e xz-5.8.1.tar.bz2
|
||||||
|
507825b599356c10dca1cd720c9d0d0c9d5400b9de300af00e4d1ea150795543 xz-5.8.1.tar.gz
|
||||||
|
0b54f79df85912504de0b14aec7971e3f964491af1812d83447005807513cd9e xz-5.8.1.tar.xz
|
||||||
|
62fdfde73d5c5d293bbb4a96211b29d09adbd56bc6736976e4c9fc9942ae3c67 xz-5.8.1-windows.zip
|
||||||
|
8ed1403fe6c971a2a6ac85fb7b27c8438b83175bc6f3bc49fec06540c904c84d xz-5.8.1-windows.7z
|
||||||
|
|
@ -45,7 +45,7 @@ init_encoder(lzma_stream *strm)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Now we could customize the LZMA2 options if we wanted. For example,
|
// Now we could customize the LZMA2 options if we wanted. For example,
|
||||||
// we could set the the dictionary size (opt_lzma2.dict_size) to
|
// we could set the dictionary size (opt_lzma2.dict_size) to
|
||||||
// something else than the default (8 MiB) of the default preset.
|
// something else than the default (8 MiB) of the default preset.
|
||||||
// See lzma/lzma12.h for details of all LZMA2 options.
|
// See lzma/lzma12.h for details of all LZMA2 options.
|
||||||
//
|
//
|
||||||
|
|
|
||||||
|
|
@ -240,5 +240,5 @@ A: Give --enable-small to the configure script. Use also appropriate
|
||||||
If the result is still too big, take a look at XZ Embedded. It is
|
If the result is still too big, take a look at XZ Embedded. It is
|
||||||
a separate project, which provides a limited but significantly
|
a separate project, which provides a limited but significantly
|
||||||
smaller XZ decoder implementation than XZ Utils. You can find it
|
smaller XZ decoder implementation than XZ Utils. You can find it
|
||||||
at <https://xz.tukaani.org/xz-embedded/>.
|
at <https://tukaani.org/xz/embedded.html>.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -40,11 +40,11 @@ The .lzma File Format
|
||||||
|
|
||||||
0.2. Changes
|
0.2. Changes
|
||||||
|
|
||||||
Last modified: 2024-01-16 18:00+0800
|
Last modified: 2024-04-08 17:35+0300
|
||||||
|
|
||||||
Compared to the previous version (2022-07-13 21:00+0300)
|
From version 2011-04-12 11:55+0300 to 2022-07-13 21:00+0300:
|
||||||
the section 2 was modified to change links from http to
|
The section 1.1.3 was modified to allow End of Payload Marker
|
||||||
https and to update XZ links.
|
with a known Uncompressed Size.
|
||||||
|
|
||||||
|
|
||||||
1. File Format
|
1. File Format
|
||||||
|
|
@ -166,8 +166,8 @@ The .lzma File Format
|
||||||
https://tukaani.org/lzma/
|
https://tukaani.org/lzma/
|
||||||
|
|
||||||
XZ Utils - The next generation of LZMA Utils
|
XZ Utils - The next generation of LZMA Utils
|
||||||
https://xz.tukaani.org/xz-utils/
|
https://tukaani.org/xz/
|
||||||
|
|
||||||
The .xz file format - The successor of the .lzma format
|
The .xz file format - The successor of the .lzma format
|
||||||
https://xz.tukaani.org/format/xz-file-format.txt
|
https://tukaani.org/xz/xz-file-format.txt
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
The .xz File Format
|
The .xz File Format
|
||||||
===================
|
===================
|
||||||
|
|
||||||
Version 1.2.0 (2024-01-19)
|
Version 1.2.1 (2024-04-08)
|
||||||
|
|
||||||
|
|
||||||
0. Preface
|
0. Preface
|
||||||
|
|
@ -81,18 +81,22 @@ Version 1.2.0 (2024-01-19)
|
||||||
0.2. Getting the Latest Version
|
0.2. Getting the Latest Version
|
||||||
|
|
||||||
The latest official version of this document can be downloaded
|
The latest official version of this document can be downloaded
|
||||||
from <https://xz.tukaani.org/format/xz-file-format.txt>.
|
from <https://tukaani.org/xz/xz-file-format.txt>.
|
||||||
|
|
||||||
Specific versions of this document have a filename
|
Specific versions of this document have a filename
|
||||||
xz-file-format-X.Y.Z.txt where X.Y.Z is the version number.
|
xz-file-format-X.Y.Z.txt where X.Y.Z is the version number.
|
||||||
For example, the version 1.0.0 of this document is available
|
For example, the version 1.0.0 of this document is available
|
||||||
at <https://xz.tukaani.org/format/xz-file-format-1.0.0.txt>.
|
at <https://tukaani.org/xz/xz-file-format-1.0.0.txt>.
|
||||||
|
|
||||||
|
|
||||||
0.3. Version History
|
0.3. Version History
|
||||||
|
|
||||||
Version Date Description
|
Version Date Description
|
||||||
|
|
||||||
|
1.2.1 2024-04-08 The URLs of this specification and
|
||||||
|
XZ Utils were changed back to the
|
||||||
|
original ones in Sections 0.2 and 7.
|
||||||
|
|
||||||
1.2.0 2024-01-19 Added RISC-V filter and updated URLs in
|
1.2.0 2024-01-19 Added RISC-V filter and updated URLs in
|
||||||
Sections 0.2 and 7. The URL of this
|
Sections 0.2 and 7. The URL of this
|
||||||
specification was changed.
|
specification was changed.
|
||||||
|
|
@ -1147,7 +1151,7 @@ Version 1.2.0 (2024-01-19)
|
||||||
https://tukaani.org/lzma/
|
https://tukaani.org/lzma/
|
||||||
|
|
||||||
XZ Utils - The next generation of LZMA Utils
|
XZ Utils - The next generation of LZMA Utils
|
||||||
https://xz.tukaani.org/xz-utils/
|
https://tukaani.org/xz/
|
||||||
|
|
||||||
[RFC-1952]
|
[RFC-1952]
|
||||||
GZIP file format specification version 4.3
|
GZIP file format specification version 4.3
|
||||||
|
|
|
||||||
BIN
doc/xz-logo.png
BIN
doc/xz-logo.png
Binary file not shown.
|
Before Width: | Height: | Size: 6.6 KiB |
|
|
@ -45,13 +45,15 @@ SRCS_C = \
|
||||||
../src/common/tuklib_cpucores.c \
|
../src/common/tuklib_cpucores.c \
|
||||||
../src/common/tuklib_exit.c \
|
../src/common/tuklib_exit.c \
|
||||||
../src/common/tuklib_mbstr_fw.c \
|
../src/common/tuklib_mbstr_fw.c \
|
||||||
|
../src/common/tuklib_mbstr_nonprint.c \
|
||||||
../src/common/tuklib_mbstr_width.c \
|
../src/common/tuklib_mbstr_width.c \
|
||||||
|
../src/common/tuklib_mbstr_wrap.c \
|
||||||
../src/common/tuklib_open_stdxxx.c \
|
../src/common/tuklib_open_stdxxx.c \
|
||||||
../src/common/tuklib_physmem.c \
|
../src/common/tuklib_physmem.c \
|
||||||
../src/common/tuklib_progname.c \
|
../src/common/tuklib_progname.c \
|
||||||
../src/liblzma/check/check.c \
|
../src/liblzma/check/check.c \
|
||||||
../src/liblzma/check/crc32_table.c \
|
../src/liblzma/check/crc32_fast.c \
|
||||||
../src/liblzma/check/crc64_table.c \
|
../src/liblzma/check/crc64_fast.c \
|
||||||
../src/liblzma/check/sha256.c \
|
../src/liblzma/check/sha256.c \
|
||||||
../src/liblzma/common/alone_decoder.c \
|
../src/liblzma/common/alone_decoder.c \
|
||||||
../src/liblzma/common/alone_encoder.c \
|
../src/liblzma/common/alone_encoder.c \
|
||||||
|
|
|
||||||
17
dos/config.h
17
dos/config.h
|
|
@ -12,6 +12,9 @@
|
||||||
/* Define to 1 if sha256 integrity check is enabled. */
|
/* Define to 1 if sha256 integrity check is enabled. */
|
||||||
#define HAVE_CHECK_SHA256 1
|
#define HAVE_CHECK_SHA256 1
|
||||||
|
|
||||||
|
/* Define to 1 if the 32-bit x86 CRC assembly files are used. */
|
||||||
|
#define HAVE_CRC_X86_ASM 1
|
||||||
|
|
||||||
/* Define to 1 if any of HAVE_DECODER_foo have been defined. */
|
/* Define to 1 if any of HAVE_DECODER_foo have been defined. */
|
||||||
#define HAVE_DECODERS 1
|
#define HAVE_DECODERS 1
|
||||||
|
|
||||||
|
|
@ -81,9 +84,6 @@
|
||||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||||
#define HAVE_INTTYPES_H 1
|
#define HAVE_INTTYPES_H 1
|
||||||
|
|
||||||
/* Define to 1 if you have the <limits.h> header file. */
|
|
||||||
#define HAVE_LIMITS_H 1
|
|
||||||
|
|
||||||
/* Define to 1 if .lz (lzip) decompression support is enabled. */
|
/* Define to 1 if .lz (lzip) decompression support is enabled. */
|
||||||
#define HAVE_LZIP_DECODER 1
|
#define HAVE_LZIP_DECODER 1
|
||||||
|
|
||||||
|
|
@ -108,15 +108,6 @@
|
||||||
/* Define to 1 if you have the <stdint.h> header file. */
|
/* Define to 1 if you have the <stdint.h> header file. */
|
||||||
#define HAVE_STDINT_H 1
|
#define HAVE_STDINT_H 1
|
||||||
|
|
||||||
/* Define to 1 if you have the <stdlib.h> header file. */
|
|
||||||
#define HAVE_STDLIB_H 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <string.h> header file. */
|
|
||||||
#define HAVE_STRING_H 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <sys/time.h> header file. */
|
|
||||||
#define HAVE_SYS_TIME_H 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the 'utimes' function. */
|
/* Define to 1 if you have the 'utimes' function. */
|
||||||
#define HAVE_UTIMES 1
|
#define HAVE_UTIMES 1
|
||||||
|
|
||||||
|
|
@ -145,7 +136,7 @@
|
||||||
#define PACKAGE_NAME "XZ Utils"
|
#define PACKAGE_NAME "XZ Utils"
|
||||||
|
|
||||||
/* Define to the home page for this package. */
|
/* Define to the home page for this package. */
|
||||||
#define PACKAGE_URL "https://xz.tukaani.org/xz-utils/"
|
#define PACKAGE_URL "https://tukaani.org/xz/"
|
||||||
|
|
||||||
/* The size of 'size_t', as computed by sizeof. */
|
/* The size of 'size_t', as computed by sizeof. */
|
||||||
#define SIZEOF_SIZE_T 4
|
#define SIZEOF_SIZE_T 4
|
||||||
|
|
|
||||||
2674
doxygen/Doxyfile
2674
doxygen/Doxyfile
File diff suppressed because it is too large
Load Diff
|
|
@ -1,13 +0,0 @@
|
||||||
<hr class="footer"/>
|
|
||||||
|
|
||||||
<p style="text-align: right;padding-right: 12px;">
|
|
||||||
XZ logo © 2023 by Jia Tan is licensed under
|
|
||||||
<a href="COPYING.CC-BY-SA-4.0"
|
|
||||||
rel="license"
|
|
||||||
style="display:inline-block;">
|
|
||||||
CC BY-SA 4.0
|
|
||||||
</a>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
|
|
@ -3,14 +3,13 @@
|
||||||
|
|
||||||
#############################################################################
|
#############################################################################
|
||||||
#
|
#
|
||||||
# Updates the Doxygen generated documentation files in the source tree.
|
# While it's possible to use the Doxyfile as is to generate liblzma API
|
||||||
# If the doxygen command is not installed, it will exit with an error.
|
# documentation, it is recommended to use this script because this adds
|
||||||
# This script can generate Doxygen documentation for all source files or for
|
# the XZ Utils version number to the generated HTML.
|
||||||
# just liblzma API header files.
|
|
||||||
#
|
#
|
||||||
# It is recommended to use this script to update the Doxygen-generated HTML
|
# Other features:
|
||||||
# files since this will include the package version in the output and,
|
# - Generate documentation of the XZ Utils internals.
|
||||||
# in case of liblzma API docs, strip JavaScript files from the output.
|
# - Set input and output paths for out-of-tree builds.
|
||||||
#
|
#
|
||||||
#############################################################################
|
#############################################################################
|
||||||
#
|
#
|
||||||
|
|
@ -21,31 +20,67 @@
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
|
show_usage()
|
||||||
|
{
|
||||||
|
echo "Usage: $0 <api|internal> [ABS_TOP_SRCDIR ABS_OUTDIR]"
|
||||||
|
echo
|
||||||
|
echo "Supported modes:"
|
||||||
|
echo " - 'api' (default): liblzma API docs into doc/api"
|
||||||
|
echo " - 'internal': internal docs into doc/internal"
|
||||||
|
echo
|
||||||
|
echo "Absolute source and output dirs may be set" \
|
||||||
|
"to do an out-of-tree build."
|
||||||
|
echo "The output directory must already exist."
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
case $1 in
|
||||||
|
api|internal)
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
show_usage
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
if type doxygen > /dev/null 2>&1; then
|
if type doxygen > /dev/null 2>&1; then
|
||||||
:
|
:
|
||||||
else
|
else
|
||||||
echo "doxygen/update-doxygen: 'doxygen' command not found." >&2
|
echo "$0: 'doxygen' command not found" >&2
|
||||||
echo "doxygen/update-doxygen: Skipping Doxygen docs generation." >&2
|
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test ! -f Doxyfile; then
|
case $# in
|
||||||
cd `dirname "$0"` || exit 1
|
1)
|
||||||
if test ! -f Doxyfile; then
|
# One argument: Building inside the source tree
|
||||||
echo "doxygen/update-doxygen: Cannot find Doxyfile" >&2
|
ABS_TOP_SRCDIR=`dirname "$0"`/..
|
||||||
exit 1
|
ABS_OUTDIR=$ABS_TOP_SRCDIR/doc
|
||||||
fi
|
;;
|
||||||
|
3)
|
||||||
|
# Three arguments: Possibly an out of tree build
|
||||||
|
ABS_TOP_SRCDIR=$2
|
||||||
|
ABS_OUTDIR=$3
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
show_usage
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if test ! -f "$ABS_TOP_SRCDIR/doxygen/Doxyfile"; then
|
||||||
|
echo "$0: Source dir '$ABS_TOP_SRCDIR/doxygen/Doxyfile' not found" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if test ! -d "$ABS_OUTDIR"; then
|
||||||
|
echo "$0: Output dir '$ABS_OUTDIR' not found" >&2
|
||||||
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Get the package version so that it can be included in the generated docs.
|
# Get the package version so that it can be included in the generated docs.
|
||||||
PACKAGE_VERSION=`cd .. && sh build-aux/version.sh` || exit 1
|
PACKAGE_VERSION=`cd "$ABS_TOP_SRCDIR" && sh build-aux/version.sh`
|
||||||
|
|
||||||
# If no arguments are specified, default to generating liblzma API header
|
|
||||||
# documentation only.
|
|
||||||
case $1 in
|
case $1 in
|
||||||
'' | api)
|
api)
|
||||||
# Remove old documentation before re-generating the new.
|
# Remove old documentation before re-generating the new.
|
||||||
rm -rf ../doc/api
|
rm -rf "$ABS_OUTDIR/api"
|
||||||
|
|
||||||
# Generate the HTML documentation by preparing the Doxyfile
|
# Generate the HTML documentation by preparing the Doxyfile
|
||||||
# in stdin and piping the result to the doxygen command.
|
# in stdin and piping the result to the doxygen command.
|
||||||
|
|
@ -53,57 +88,27 @@ case $1 in
|
||||||
# override any earlier assignment. So, we can use this
|
# override any earlier assignment. So, we can use this
|
||||||
# feature to override the tags that need to change between
|
# feature to override the tags that need to change between
|
||||||
# "api" and "internal" modes.
|
# "api" and "internal" modes.
|
||||||
|
ABS_SRCDIR=$ABS_TOP_SRCDIR/src/liblzma/api
|
||||||
(
|
(
|
||||||
cat Doxyfile
|
cat "$ABS_TOP_SRCDIR/doxygen/Doxyfile"
|
||||||
echo "PROJECT_NUMBER = $PACKAGE_VERSION"
|
echo "PROJECT_NUMBER = $PACKAGE_VERSION"
|
||||||
) | doxygen -
|
echo "OUTPUT_DIRECTORY = $ABS_OUTDIR"
|
||||||
|
echo "STRIP_FROM_PATH = $ABS_SRCDIR"
|
||||||
# As of Doxygen 1.8.0 - 1.9.6 and the Doxyfile options we use,
|
echo "INPUT = $ABS_SRCDIR"
|
||||||
# the output is good without any JavaScript. Unfortunately
|
) | doxygen -q -
|
||||||
# Doxygen doesn't have an option to disable JavaScript usage
|
|
||||||
# completely so we strip it away with the hack below.
|
|
||||||
#
|
|
||||||
# Omitting the JavaScript code avoids some license hassle
|
|
||||||
# as jquery.js is fairly big, it contains more than jQuery
|
|
||||||
# itself, and doesn't include the actual license text (it
|
|
||||||
# only refers to the MIT license by name).
|
|
||||||
echo "Stripping JavaScript from Doxygen output..."
|
|
||||||
for F in ../doc/api/*.html
|
|
||||||
do
|
|
||||||
sed 's/<script [^>]*><\/script>//g
|
|
||||||
s/onclick="[^"]*"//g' \
|
|
||||||
"$F" > ../doc/api/tmp
|
|
||||||
mv -f ../doc/api/tmp "$F"
|
|
||||||
done
|
|
||||||
rm -f ../doc/api/*.js
|
|
||||||
;;
|
;;
|
||||||
|
|
||||||
internal)
|
internal)
|
||||||
# The docs from internal aren't for distribution so
|
rm -rf "$ABS_OUTDIR/internal"
|
||||||
# the JavaScript files aren't an issue here.
|
|
||||||
rm -rf ../doc/internal
|
|
||||||
(
|
(
|
||||||
cat Doxyfile
|
cat "$ABS_TOP_SRCDIR/doxygen/Doxyfile"
|
||||||
echo "PROJECT_NUMBER = $PACKAGE_VERSION"
|
|
||||||
echo 'PROJECT_NAME = "XZ Utils"'
|
echo 'PROJECT_NAME = "XZ Utils"'
|
||||||
echo 'STRIP_FROM_PATH = ../src'
|
echo "PROJECT_NUMBER = $PACKAGE_VERSION"
|
||||||
echo 'INPUT = ../src'
|
echo "OUTPUT_DIRECTORY = $ABS_OUTDIR"
|
||||||
|
echo "STRIP_FROM_PATH = $ABS_TOP_SRCDIR"
|
||||||
|
echo "INPUT = $ABS_TOP_SRCDIR/src"
|
||||||
echo 'HTML_OUTPUT = internal'
|
echo 'HTML_OUTPUT = internal'
|
||||||
echo 'EXTRACT_PRIVATE = YES'
|
|
||||||
echo 'EXTRACT_STATIC = YES'
|
|
||||||
echo 'EXTRACT_LOCAL_CLASSES = YES'
|
|
||||||
echo 'SEARCHENGINE = YES'
|
echo 'SEARCHENGINE = YES'
|
||||||
) | doxygen -
|
) | doxygen -q -
|
||||||
;;
|
|
||||||
|
|
||||||
*)
|
|
||||||
echo "doxygen/update-doxygen: Error: mode argument '$1'" \
|
|
||||||
"is not supported." >&2
|
|
||||||
echo "doxygen/update-doxygen: Supported modes:" >&2
|
|
||||||
echo "doxygen/update-doxygen: - 'api' (default):" \
|
|
||||||
"liblzma API docs into doc/api" >&2
|
|
||||||
echo "doxygen/update-doxygen: - 'internal':"\
|
|
||||||
"internal docs into doc/internal" >&2
|
|
||||||
exit 1
|
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
|
||||||
|
|
@ -8,10 +8,10 @@ dnl with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
# This version has been modified to reduce complexity since we only need
|
# This version has been modified to reduce complexity since we only need
|
||||||
# GNU getopt_long and do not care about replacing getopt.
|
# GNU getopt_long and do not care about replacing getopt.
|
||||||
|
#
|
||||||
|
# Pass gl_replace_getopt=yes (or any non-empty value instead of "yes") as
|
||||||
|
# an argument to configure to force the use of the getopt_long replacement.
|
||||||
|
|
||||||
# Check for a POSIX compliant getopt function with GNU extensions (such as
|
|
||||||
# options with optional arguments) and the functions getopt_long,
|
|
||||||
# getopt_long_only.
|
|
||||||
AC_DEFUN([gl_FUNC_GETOPT_GNU],
|
AC_DEFUN([gl_FUNC_GETOPT_GNU],
|
||||||
[
|
[
|
||||||
AC_REQUIRE([gl_GETOPT_CHECK_HEADERS])
|
AC_REQUIRE([gl_GETOPT_CHECK_HEADERS])
|
||||||
|
|
@ -23,8 +23,6 @@ AC_DEFUN([gl_FUNC_GETOPT_GNU],
|
||||||
|
|
||||||
AC_DEFUN([gl_GETOPT_CHECK_HEADERS],
|
AC_DEFUN([gl_GETOPT_CHECK_HEADERS],
|
||||||
[
|
[
|
||||||
gl_replace_getopt=
|
|
||||||
|
|
||||||
if test -z "$gl_replace_getopt"; then
|
if test -z "$gl_replace_getopt"; then
|
||||||
AC_CHECK_HEADERS([getopt.h], [], [gl_replace_getopt=yes])
|
AC_CHECK_HEADERS([getopt.h], [], [gl_replace_getopt=yes])
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,14 @@
|
||||||
dnl SPDX-License-Identifier: FSFULLR
|
dnl SPDX-License-Identifier: FSFULLR
|
||||||
|
|
||||||
|
# posix-shell.m4
|
||||||
|
# serial 1
|
||||||
|
dnl Copyright (C) 2007-2024 Free Software Foundation, Inc.
|
||||||
|
dnl This file is free software; the Free Software Foundation
|
||||||
|
dnl gives unlimited permission to copy and/or distribute it,
|
||||||
|
dnl with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
# Find a POSIX-conforming shell.
|
# Find a POSIX-conforming shell.
|
||||||
|
|
||||||
# Copyright (C) 2007-2008 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
# This file is free software; the Free Software Foundation
|
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
|
||||||
# with or without modifications, as long as this notice is preserved.
|
|
||||||
|
|
||||||
# Written by Paul Eggert.
|
# Written by Paul Eggert.
|
||||||
|
|
||||||
# If a POSIX-conforming shell can be found, set POSIX_SHELL and
|
# If a POSIX-conforming shell can be found, set POSIX_SHELL and
|
||||||
|
|
@ -19,22 +20,22 @@ AC_DEFUN([gl_POSIX_SHELL],
|
||||||
AC_CACHE_CHECK([for a shell that conforms to POSIX], [gl_cv_posix_shell],
|
AC_CACHE_CHECK([for a shell that conforms to POSIX], [gl_cv_posix_shell],
|
||||||
[gl_test_posix_shell_script='
|
[gl_test_posix_shell_script='
|
||||||
func_return () {
|
func_return () {
|
||||||
(exit [$]1)
|
(exit [$]1)
|
||||||
}
|
}
|
||||||
func_success () {
|
func_success () {
|
||||||
func_return 0
|
func_return 0
|
||||||
}
|
}
|
||||||
func_failure () {
|
func_failure () {
|
||||||
func_return 1
|
func_return 1
|
||||||
}
|
}
|
||||||
func_ret_success () {
|
func_ret_success () {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
func_ret_failure () {
|
func_ret_failure () {
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
subshell_umask_sanity () {
|
subshell_umask_sanity () {
|
||||||
(umask 22; (umask 0); test $(umask) -eq 22)
|
(umask 22; (umask 0); test $(umask) -eq 22)
|
||||||
}
|
}
|
||||||
test "[$](echo foo)" = foo &&
|
test "[$](echo foo)" = foo &&
|
||||||
func_success &&
|
func_success &&
|
||||||
|
|
@ -45,11 +46,11 @@ AC_DEFUN([gl_POSIX_SHELL],
|
||||||
subshell_umask_sanity
|
subshell_umask_sanity
|
||||||
'
|
'
|
||||||
for gl_cv_posix_shell in \
|
for gl_cv_posix_shell in \
|
||||||
"$CONFIG_SHELL" "$SHELL" /bin/sh /bin/bash /bin/ksh /bin/sh5 no; do
|
"$CONFIG_SHELL" "$SHELL" /bin/sh /bin/bash /bin/ksh /bin/sh5 no; do
|
||||||
case $gl_cv_posix_shell in
|
case $gl_cv_posix_shell in
|
||||||
/*)
|
/*)
|
||||||
"$gl_cv_posix_shell" -c "$gl_test_posix_shell_script" 2>/dev/null \
|
"$gl_cv_posix_shell" -c "$gl_test_posix_shell_script" 2>/dev/null \
|
||||||
&& break;;
|
&& break;;
|
||||||
esac
|
esac
|
||||||
done])
|
done])
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -71,7 +71,7 @@ main(void)
|
||||||
# -lfreebsd-glue when linking and thus in the current form this would
|
# -lfreebsd-glue when linking and thus in the current form this would
|
||||||
# fail on GNU/kFreeBSD. The above test for sched_getaffinity() matches
|
# fail on GNU/kFreeBSD. The above test for sched_getaffinity() matches
|
||||||
# on GNU/kFreeBSD so the test below should never run on that OS.
|
# on GNU/kFreeBSD so the test below should never run on that OS.
|
||||||
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
|
AC_LINK_IFELSE([AC_LANG_SOURCE([[
|
||||||
#include <sys/param.h>
|
#include <sys/param.h>
|
||||||
#include <sys/cpuset.h>
|
#include <sys/cpuset.h>
|
||||||
|
|
||||||
|
|
@ -92,7 +92,7 @@ main(void)
|
||||||
#
|
#
|
||||||
# We test sysctl() first and intentionally break the sysctl() test on QNX
|
# We test sysctl() first and intentionally break the sysctl() test on QNX
|
||||||
# so that sysctl() is never used on QNX.
|
# so that sysctl() is never used on QNX.
|
||||||
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
|
AC_LINK_IFELSE([AC_LANG_SOURCE([[
|
||||||
#ifdef __QNX__
|
#ifdef __QNX__
|
||||||
compile error
|
compile error
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -116,7 +116,7 @@ main(void)
|
||||||
}
|
}
|
||||||
]])], [tuklib_cv_cpucores_method=sysctl], [
|
]])], [tuklib_cv_cpucores_method=sysctl], [
|
||||||
|
|
||||||
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
|
AC_LINK_IFELSE([AC_LANG_SOURCE([[
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
int
|
int
|
||||||
main(void)
|
main(void)
|
||||||
|
|
@ -133,7 +133,7 @@ main(void)
|
||||||
}
|
}
|
||||||
]])], [tuklib_cv_cpucores_method=sysconf], [
|
]])], [tuklib_cv_cpucores_method=sysconf], [
|
||||||
|
|
||||||
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
|
AC_LINK_IFELSE([AC_LANG_SOURCE([[
|
||||||
#include <sys/param.h>
|
#include <sys/param.h>
|
||||||
#include <sys/pstat.h>
|
#include <sys/pstat.h>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -62,6 +62,58 @@ main(void)
|
||||||
fi
|
fi
|
||||||
])
|
])
|
||||||
|
|
||||||
|
# On archs that we use tuklib_integer_strict_align() (see below), we need
|
||||||
|
# objdump to detect support for unaligned access. (Libtool needs objdump
|
||||||
|
# too, so Libtool does this same tool check as well.)
|
||||||
|
AC_CHECK_TOOL([OBJDUMP], [objdump], [false])
|
||||||
|
|
||||||
|
# An internal helper that attempts to detect if -mstrict-align or
|
||||||
|
# -mno-strict-align is in effect. This sets enable_unaligned_access=yes
|
||||||
|
# if compilation succeeds and the regex passed as an argument does *not*
|
||||||
|
# match the objdump output of a check program. Otherwise this sets
|
||||||
|
# enable_unaligned_access=no.
|
||||||
|
tuklib_integer_strict_align ()
|
||||||
|
{
|
||||||
|
# First guess no.
|
||||||
|
enable_unaligned_access=no
|
||||||
|
|
||||||
|
# Force -O2 because without optimizations the memcpy()
|
||||||
|
# won't be optimized out.
|
||||||
|
tuklib_integer_saved_CFLAGS=$CFLAGS
|
||||||
|
CFLAGS="$CFLAGS -O2"
|
||||||
|
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
|
||||||
|
#include <string.h>
|
||||||
|
unsigned int check_strict_align(const void *p)
|
||||||
|
{
|
||||||
|
unsigned int i;
|
||||||
|
memcpy(&i, p, sizeof(i));
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
]])], [
|
||||||
|
# Disassemble the test function from the object file.
|
||||||
|
if $OBJDUMP -d conftest.$ac_objext > conftest.s ; then
|
||||||
|
# This function should be passed a regex that
|
||||||
|
# matches if there are instructions that load
|
||||||
|
# unsigned bytes. Such instructions indicate
|
||||||
|
# that -mstrict-align is in effect.
|
||||||
|
#
|
||||||
|
# NOTE: Use braces to avoid M4 parameter
|
||||||
|
# expansion.
|
||||||
|
if grep -- "${1}" conftest.s > /dev/null ; then
|
||||||
|
:
|
||||||
|
else
|
||||||
|
# No single-byte unsigned load
|
||||||
|
# instructions were found,
|
||||||
|
# so it seems that -mno-strict-align
|
||||||
|
# is in effect.
|
||||||
|
# Override our earlier guess.
|
||||||
|
enable_unaligned_access=yes
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
CFLAGS=$tuklib_integer_saved_CFLAGS
|
||||||
|
}
|
||||||
|
|
||||||
AC_MSG_CHECKING([if unaligned memory access should be used])
|
AC_MSG_CHECKING([if unaligned memory access should be used])
|
||||||
AC_ARG_ENABLE([unaligned-access], AS_HELP_STRING([--enable-unaligned-access],
|
AC_ARG_ENABLE([unaligned-access], AS_HELP_STRING([--enable-unaligned-access],
|
||||||
[Enable if the system supports *fast* unaligned memory access
|
[Enable if the system supports *fast* unaligned memory access
|
||||||
|
|
@ -78,34 +130,90 @@ if test "x$enable_unaligned_access" = xauto ; then
|
||||||
i?86|x86_64|powerpc|powerpc64|powerpc64le)
|
i?86|x86_64|powerpc|powerpc64|powerpc64le)
|
||||||
enable_unaligned_access=yes
|
enable_unaligned_access=yes
|
||||||
;;
|
;;
|
||||||
arm*|aarch64*|riscv*)
|
arm*|riscv*)
|
||||||
# On 32-bit and 64-bit ARM, GCC and Clang
|
# On 32-bit ARM, GCC and Clang
|
||||||
# #define __ARM_FEATURE_UNALIGNED if
|
# #define __ARM_FEATURE_UNALIGNED
|
||||||
# unaligned access is supported.
|
# if and only if unaligned access is supported.
|
||||||
#
|
|
||||||
# Exception: GCC at least up to 13.2.0
|
|
||||||
# defines it even when using -mstrict-align
|
|
||||||
# so in that case this autodetection goes wrong.
|
|
||||||
# Most of the time -mstrict-align isn't used so it
|
|
||||||
# shouldn't be a common problem in practice. See:
|
|
||||||
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111555
|
|
||||||
#
|
#
|
||||||
# RISC-V C API Specification says that if
|
# RISC-V C API Specification says that if
|
||||||
# __riscv_misaligned_fast is defined then
|
# __riscv_misaligned_fast is defined then
|
||||||
# unaligned access is known to be fast.
|
# unaligned access is known to be fast.
|
||||||
#
|
#
|
||||||
# MSVC is handled as a special case: We assume that
|
# MSVC is handled as a special case: We assume that
|
||||||
# 32/64-bit ARM supports fast unaligned access.
|
# 32-bit ARM supports fast unaligned access.
|
||||||
# If MSVC gets RISC-V support then this will assume
|
# If MSVC gets RISC-V support then this will assume
|
||||||
# fast unaligned access on RISC-V too.
|
# fast unaligned access on RISC-V too.
|
||||||
AC_COMPILE_IFELSE([AC_LANG_SOURCE([
|
AC_COMPILE_IFELSE([AC_LANG_SOURCE([
|
||||||
#if !defined(__ARM_FEATURE_UNALIGNED) \
|
#if !defined(__ARM_FEATURE_UNALIGNED) \
|
||||||
&& !defined(__riscv_misaligned_fast) \
|
&& !defined(__riscv_misaligned_fast) \
|
||||||
&& !defined(_MSC_VER)
|
&& !defined(_MSC_VER)
|
||||||
compile error
|
compile error
|
||||||
#endif
|
#endif
|
||||||
int main(void) { return 0; }
|
int main(void) { return 0; }
|
||||||
])], [enable_unaligned_access=yes], [enable_unaligned_access=no])
|
])],
|
||||||
|
[enable_unaligned_access=yes],
|
||||||
|
[enable_unaligned_access=no])
|
||||||
|
;;
|
||||||
|
aarch64*)
|
||||||
|
# On ARM64, Clang defines __ARM_FEATURE_UNALIGNED
|
||||||
|
# if and only if unaligned access is supported.
|
||||||
|
# However, GCC (at least up to 15.2.0) defines it
|
||||||
|
# even when using -mstrict-align, so autodetection
|
||||||
|
# with this macro doesn't work with GCC on ARM64.
|
||||||
|
# (It does work on 32-bit ARM.) See:
|
||||||
|
#
|
||||||
|
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111555
|
||||||
|
#
|
||||||
|
# We need three checks:
|
||||||
|
#
|
||||||
|
# 1. If __ARM_FEATURE_UNALIGNED is defined and the
|
||||||
|
# compiler isn't GCC, unaligned access is enabled.
|
||||||
|
# If the compiler is MSVC, unaligned access is
|
||||||
|
# enabled even without __ARM_FEATURE_UNALIGNED.
|
||||||
|
AC_COMPILE_IFELSE([AC_LANG_SOURCE([
|
||||||
|
#if defined(__ARM_FEATURE_UNALIGNED) \
|
||||||
|
&& (!defined(__GNUC__) \
|
||||||
|
|| defined(__clang__))
|
||||||
|
#elif defined(_MSC_VER)
|
||||||
|
#else
|
||||||
|
compile error
|
||||||
|
#endif
|
||||||
|
int main(void) { return 0; }
|
||||||
|
])], [enable_unaligned_access=yes])
|
||||||
|
|
||||||
|
# 2. If __ARM_FEATURE_UNALIGNED is not defined,
|
||||||
|
# unaligned access is disabled.
|
||||||
|
if test "x$enable_unaligned_access" = xauto ; then
|
||||||
|
AC_COMPILE_IFELSE([AC_LANG_SOURCE([
|
||||||
|
#ifdef __ARM_FEATURE_UNALIGNED
|
||||||
|
compile error
|
||||||
|
#endif
|
||||||
|
int main(void) { return 0; }
|
||||||
|
])], [enable_unaligned_access=no])
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 3. Use heuristics to detect if -mstrict-align is
|
||||||
|
# in effect when building with GCC.
|
||||||
|
if test "x$enable_unaligned_access" = xauto ; then
|
||||||
|
[tuklib_integer_strict_align \
|
||||||
|
'[[:blank:]]ldrb[[:blank:]]']
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
loongarch*)
|
||||||
|
# See sections 7.4, 8.1, and 8.2:
|
||||||
|
# https://github.com/loongson/la-softdev-convention/blob/v0.2/la-softdev-convention.adoc
|
||||||
|
#
|
||||||
|
# That is, desktop and server processors likely support
|
||||||
|
# unaligned access in hardware but embedded processors
|
||||||
|
# might not. GCC defaults to -mno-strict-align and so
|
||||||
|
# do majority of GNU/Linux distributions. As of
|
||||||
|
# GCC 15.2, there is no predefined macro to detect
|
||||||
|
# if -mstrict-align or -mno-strict-align is in effect.
|
||||||
|
# Use heuristics based on compiler output.
|
||||||
|
[
|
||||||
|
tuklib_integer_strict_align \
|
||||||
|
'[[:blank:]]ld\.bu[[:blank:]]'
|
||||||
|
]
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
enable_unaligned_access=no
|
enable_unaligned_access=no
|
||||||
|
|
|
||||||
|
|
@ -27,5 +27,5 @@
|
||||||
AC_DEFUN_ONCE([TUKLIB_MBSTR], [
|
AC_DEFUN_ONCE([TUKLIB_MBSTR], [
|
||||||
AC_REQUIRE([TUKLIB_COMMON])
|
AC_REQUIRE([TUKLIB_COMMON])
|
||||||
AC_FUNC_MBRTOWC
|
AC_FUNC_MBRTOWC
|
||||||
AC_CHECK_FUNCS([wcwidth])
|
AC_CHECK_FUNCS([wcwidth vasprintf])
|
||||||
])dnl
|
])dnl
|
||||||
|
|
|
||||||
|
|
@ -65,6 +65,11 @@ compile error
|
||||||
# Look for AIX-specific solution before sysconf(), because the test
|
# Look for AIX-specific solution before sysconf(), because the test
|
||||||
# for sysconf() will pass on AIX but won't actually work
|
# for sysconf() will pass on AIX but won't actually work
|
||||||
# (sysconf(_SC_PHYS_PAGES) compiles but always returns -1 on AIX).
|
# (sysconf(_SC_PHYS_PAGES) compiles but always returns -1 on AIX).
|
||||||
|
#
|
||||||
|
# NOTE: There is no need to link the check program because it's not calling
|
||||||
|
# any functions and thus implicit function declarations aren't a problem.
|
||||||
|
# The unused reference to _system_configuration.physmem might get optimized
|
||||||
|
# away, and thus the linker might not see that symbol anyway.
|
||||||
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
|
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
|
||||||
#include <sys/systemcfg.h>
|
#include <sys/systemcfg.h>
|
||||||
|
|
||||||
|
|
@ -76,7 +81,7 @@ main(void)
|
||||||
}
|
}
|
||||||
]])], [tuklib_cv_physmem_method=aix], [
|
]])], [tuklib_cv_physmem_method=aix], [
|
||||||
|
|
||||||
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
|
AC_LINK_IFELSE([AC_LANG_SOURCE([[
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
int
|
int
|
||||||
main(void)
|
main(void)
|
||||||
|
|
@ -88,7 +93,7 @@ main(void)
|
||||||
}
|
}
|
||||||
]])], [tuklib_cv_physmem_method=sysconf], [
|
]])], [tuklib_cv_physmem_method=sysconf], [
|
||||||
|
|
||||||
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
|
AC_LINK_IFELSE([AC_LANG_SOURCE([[
|
||||||
#ifdef HAVE_SYS_PARAM_H
|
#ifdef HAVE_SYS_PARAM_H
|
||||||
# include <sys/param.h>
|
# include <sys/param.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -104,7 +109,7 @@ main(void)
|
||||||
}
|
}
|
||||||
]])], [tuklib_cv_physmem_method=sysctl], [
|
]])], [tuklib_cv_physmem_method=sysctl], [
|
||||||
|
|
||||||
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
|
AC_LINK_IFELSE([AC_LANG_SOURCE([[
|
||||||
#include <sys/sysinfo.h>
|
#include <sys/sysinfo.h>
|
||||||
#include <machine/hal_sysinfo.h>
|
#include <machine/hal_sysinfo.h>
|
||||||
|
|
||||||
|
|
@ -118,7 +123,7 @@ main(void)
|
||||||
}
|
}
|
||||||
]])], [tuklib_cv_physmem_method=getsysinfo],[
|
]])], [tuklib_cv_physmem_method=getsysinfo],[
|
||||||
|
|
||||||
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
|
AC_LINK_IFELSE([AC_LANG_SOURCE([[
|
||||||
#include <sys/param.h>
|
#include <sys/param.h>
|
||||||
#include <sys/pstat.h>
|
#include <sys/pstat.h>
|
||||||
|
|
||||||
|
|
@ -133,7 +138,7 @@ main(void)
|
||||||
}
|
}
|
||||||
]])], [tuklib_cv_physmem_method=pstat_getstatic],[
|
]])], [tuklib_cv_physmem_method=pstat_getstatic],[
|
||||||
|
|
||||||
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
|
AC_LINK_IFELSE([AC_LANG_SOURCE([[
|
||||||
#include <invent.h>
|
#include <invent.h>
|
||||||
int
|
int
|
||||||
main(void)
|
main(void)
|
||||||
|
|
@ -150,7 +155,7 @@ main(void)
|
||||||
# different sysinfo() so we must check $host_os.
|
# different sysinfo() so we must check $host_os.
|
||||||
case $host_os in
|
case $host_os in
|
||||||
linux*)
|
linux*)
|
||||||
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
|
AC_LINK_IFELSE([AC_LANG_SOURCE([[
|
||||||
#include <sys/sysinfo.h>
|
#include <sys/sysinfo.h>
|
||||||
int
|
int
|
||||||
main(void)
|
main(void)
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
dnl SPDX-License-Identifier: FSFULLR
|
dnl SPDX-License-Identifier: FSFULLR
|
||||||
|
|
||||||
# visibility.m4 serial 8
|
# visibility.m4
|
||||||
dnl Copyright (C) 2005, 2008, 2010-2023 Free Software Foundation, Inc.
|
# serial 9
|
||||||
|
dnl Copyright (C) 2005, 2008, 2010-2024 Free Software Foundation, Inc.
|
||||||
dnl This file is free software; the Free Software Foundation
|
dnl This file is free software; the Free Software Foundation
|
||||||
dnl gives unlimited permission to copy and/or distribute it,
|
dnl gives unlimited permission to copy and/or distribute it,
|
||||||
dnl with or without modifications, as long as this notice is preserved.
|
dnl with or without modifications, as long as this notice is preserved.
|
||||||
|
|
@ -33,18 +34,18 @@ AC_DEFUN([gl_VISIBILITY],
|
||||||
dnl user has put into $CC $CFLAGS $CPPFLAGS.
|
dnl user has put into $CC $CFLAGS $CPPFLAGS.
|
||||||
AC_CACHE_CHECK([whether the -Werror option is usable],
|
AC_CACHE_CHECK([whether the -Werror option is usable],
|
||||||
[gl_cv_cc_vis_werror],
|
[gl_cv_cc_vis_werror],
|
||||||
[gl_save_CFLAGS="$CFLAGS"
|
[gl_saved_CFLAGS="$CFLAGS"
|
||||||
CFLAGS="$CFLAGS -Werror"
|
CFLAGS="$CFLAGS -Werror"
|
||||||
AC_COMPILE_IFELSE(
|
AC_COMPILE_IFELSE(
|
||||||
[AC_LANG_PROGRAM([[]], [[]])],
|
[AC_LANG_PROGRAM([[]], [[]])],
|
||||||
[gl_cv_cc_vis_werror=yes],
|
[gl_cv_cc_vis_werror=yes],
|
||||||
[gl_cv_cc_vis_werror=no])
|
[gl_cv_cc_vis_werror=no])
|
||||||
CFLAGS="$gl_save_CFLAGS"
|
CFLAGS="$gl_saved_CFLAGS"
|
||||||
])
|
])
|
||||||
dnl Now check whether visibility declarations are supported.
|
dnl Now check whether visibility declarations are supported.
|
||||||
AC_CACHE_CHECK([for simple visibility declarations],
|
AC_CACHE_CHECK([for simple visibility declarations],
|
||||||
[gl_cv_cc_visibility],
|
[gl_cv_cc_visibility],
|
||||||
[gl_save_CFLAGS="$CFLAGS"
|
[gl_saved_CFLAGS="$CFLAGS"
|
||||||
CFLAGS="$CFLAGS -fvisibility=hidden"
|
CFLAGS="$CFLAGS -fvisibility=hidden"
|
||||||
dnl We use the option -Werror and a function dummyfunc, because on some
|
dnl We use the option -Werror and a function dummyfunc, because on some
|
||||||
dnl platforms (Cygwin 1.7) the use of -fvisibility triggers a warning
|
dnl platforms (Cygwin 1.7) the use of -fvisibility triggers a warning
|
||||||
|
|
@ -70,7 +71,7 @@ AC_DEFUN([gl_VISIBILITY],
|
||||||
[[]])],
|
[[]])],
|
||||||
[gl_cv_cc_visibility=yes],
|
[gl_cv_cc_visibility=yes],
|
||||||
[gl_cv_cc_visibility=no])
|
[gl_cv_cc_visibility=no])
|
||||||
CFLAGS="$gl_save_CFLAGS"
|
CFLAGS="$gl_saved_CFLAGS"
|
||||||
])
|
])
|
||||||
if test $gl_cv_cc_visibility = yes; then
|
if test $gl_cv_cc_visibility = yes; then
|
||||||
CFLAG_VISIBILITY="-fvisibility=hidden"
|
CFLAG_VISIBILITY="-fvisibility=hidden"
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ Rules-quot
|
||||||
boldquot.sed
|
boldquot.sed
|
||||||
en@boldquot.header
|
en@boldquot.header
|
||||||
en@quot.header
|
en@quot.header
|
||||||
|
insert-header.sed
|
||||||
insert-header.sin
|
insert-header.sin
|
||||||
quot.sed
|
quot.sed
|
||||||
remove-potcdate.sin
|
remove-potcdate.sin
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,9 @@ fr
|
||||||
hr
|
hr
|
||||||
hu
|
hu
|
||||||
it
|
it
|
||||||
|
ka
|
||||||
ko
|
ko
|
||||||
|
nl
|
||||||
pl
|
pl
|
||||||
pt
|
pt
|
||||||
pt_BR
|
pt_BR
|
||||||
|
|
|
||||||
10
po/Makevars
10
po/Makevars
|
|
@ -14,7 +14,7 @@ subdir = po
|
||||||
top_builddir = ..
|
top_builddir = ..
|
||||||
|
|
||||||
# These options get passed to xgettext.
|
# These options get passed to xgettext.
|
||||||
XGETTEXT_OPTIONS = --keyword=_ --keyword=N_ --no-wrap --package-name='XZ Utils'
|
XGETTEXT_OPTIONS = --add-location=file --no-wrap --keyword=_ --keyword=N_ '--keyword=W_:1,"This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care."'
|
||||||
|
|
||||||
# This is the copyright holder that gets inserted into the header of the
|
# This is the copyright holder that gets inserted into the header of the
|
||||||
# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding
|
# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding
|
||||||
|
|
@ -63,7 +63,7 @@ USE_MSGCTXT = no
|
||||||
# Useful options are in particular:
|
# Useful options are in particular:
|
||||||
# --previous to keep previous msgids of translated messages,
|
# --previous to keep previous msgids of translated messages,
|
||||||
# --quiet to reduce the verbosity.
|
# --quiet to reduce the verbosity.
|
||||||
MSGMERGE_OPTIONS = --no-wrap
|
MSGMERGE_OPTIONS = --add-location=file --no-wrap
|
||||||
|
|
||||||
# These options get passed to msginit.
|
# These options get passed to msginit.
|
||||||
# If you want to disable line wrapping when writing PO files, add
|
# If you want to disable line wrapping when writing PO files, add
|
||||||
|
|
@ -84,4 +84,8 @@ PO_DEPENDS_ON_POT = yes
|
||||||
# regenerate PO files on "make dist". Possible values are "yes" and
|
# regenerate PO files on "make dist". Possible values are "yes" and
|
||||||
# "no". Set this to no if the POT file and PO files are maintained
|
# "no". Set this to no if the POT file and PO files are maintained
|
||||||
# externally.
|
# externally.
|
||||||
DIST_DEPENDS_ON_UPDATE_PO = yes
|
#
|
||||||
|
# NOTE: The the custom "mydist" target in ../Makefile.am updates xz.pot.
|
||||||
|
# An updated xz.pot will cause the .po files to be updated too but
|
||||||
|
# only when updating would change more than the POT-Creation-Date line.
|
||||||
|
DIST_DEPENDS_ON_UPDATE_PO = no
|
||||||
|
|
|
||||||
|
|
@ -10,8 +10,10 @@ src/xz/main.c
|
||||||
src/xz/message.c
|
src/xz/message.c
|
||||||
src/xz/mytime.c
|
src/xz/mytime.c
|
||||||
src/xz/options.c
|
src/xz/options.c
|
||||||
|
src/xz/sandbox.c
|
||||||
src/xz/signals.c
|
src/xz/signals.c
|
||||||
src/xz/suffix.c
|
src/xz/suffix.c
|
||||||
src/xz/util.c
|
src/xz/util.c
|
||||||
src/lzmainfo/lzmainfo.c
|
src/lzmainfo/lzmainfo.c
|
||||||
src/common/tuklib_exit.c
|
src/common/tuklib_exit.c
|
||||||
|
src/liblzma/common/string_conversion.c
|
||||||
|
|
|
||||||
1423
po/pt_BR.po
1423
po/pt_BR.po
File diff suppressed because it is too large
Load Diff
1413
po/zh_CN.po
1413
po/zh_CN.po
File diff suppressed because it is too large
Load Diff
1218
po/zh_TW.po
1218
po/zh_TW.po
File diff suppressed because it is too large
Load Diff
|
|
@ -1,3 +0,0 @@
|
||||||
/man
|
|
||||||
/xz-man.pot
|
|
||||||
/*.po.authors
|
|
||||||
1717
po4a/de.po
1717
po4a/de.po
File diff suppressed because it is too large
Load Diff
4512
po4a/fr.po
4512
po4a/fr.po
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
1754
po4a/ko.po
1754
po4a/ko.po
File diff suppressed because it is too large
Load Diff
|
|
@ -4,7 +4,7 @@
|
||||||
# to get a new .po file. After translating the .po file, run
|
# to get a new .po file. After translating the .po file, run
|
||||||
# "update-po" again to generate the translated man pages.
|
# "update-po" again to generate the translated man pages.
|
||||||
|
|
||||||
[po4a_langs] de fr ko pt_BR ro uk
|
[po4a_langs] de fr it ko pt_BR ro sr sv uk
|
||||||
[po4a_paths] xz-man.pot $lang:$lang.po
|
[po4a_paths] xz-man.pot $lang:$lang.po
|
||||||
|
|
||||||
[type: man] ../src/xz/xz.1 $lang:man/$lang/xz.1 add_$lang:?$lang.po.authors
|
[type: man] ../src/xz/xz.1 $lang:man/$lang/xz.1 add_$lang:?$lang.po.authors
|
||||||
|
|
|
||||||
4927
po4a/pt_BR.po
4927
po4a/pt_BR.po
File diff suppressed because it is too large
Load Diff
1727
po4a/ro.po
1727
po4a/ro.po
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue