aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrobot-contrib <robot-contrib@yandex-team.ru>2022-05-01 01:00:04 +0300
committerrobot-contrib <robot-contrib@yandex-team.ru>2022-05-01 01:00:04 +0300
commitd227d4f3e8008cea9f135e271a5b7d56db6b5c44 (patch)
treeb8281a614aac5bd414d66a98e694a8481c7fb38a
parent7f2ece0685eaa6dacf4dc9597e31299af1ccd73f (diff)
downloadydb-d227d4f3e8008cea9f135e271a5b7d56db6b5c44.tar.gz
Update contrib/libs/xz to 5.2.5
ref:29083a7fbf2989287893534448231a2be70a960c
-rw-r--r--contrib/libs/xz/.yandex_meta/devtools.licenses.report28
-rw-r--r--contrib/libs/xz/ABOUT-NLS1283
-rw-r--r--contrib/libs/xz/ChangeLog1332
-rw-r--r--contrib/libs/xz/INSTALL100
-rw-r--r--contrib/libs/xz/INSTALL.generic321
-rw-r--r--contrib/libs/xz/NEWS107
-rw-r--r--contrib/libs/xz/README120
-rw-r--r--contrib/libs/xz/THANKS10
-rw-r--r--contrib/libs/xz/common/sysdefs.h11
-rw-r--r--contrib/libs/xz/common/tuklib_cpucores.c10
-rw-r--r--contrib/libs/xz/common/tuklib_integer.h520
-rw-r--r--contrib/libs/xz/liblzma/api/lzma.h5
-rw-r--r--contrib/libs/xz/liblzma/api/lzma/block.h2
-rw-r--r--contrib/libs/xz/liblzma/api/lzma/filter.h7
-rw-r--r--contrib/libs/xz/liblzma/api/lzma/hardware.h2
-rw-r--r--contrib/libs/xz/liblzma/api/lzma/lzma12.h2
-rw-r--r--contrib/libs/xz/liblzma/api/lzma/version.h2
-rw-r--r--contrib/libs/xz/liblzma/api/lzma/vli.h2
-rw-r--r--contrib/libs/xz/liblzma/check/crc32_fast.c4
-rw-r--r--contrib/libs/xz/liblzma/check/crc32_table.c3
-rw-r--r--contrib/libs/xz/liblzma/check/crc64_fast.c4
-rw-r--r--contrib/libs/xz/liblzma/check/crc64_table.c3
-rw-r--r--contrib/libs/xz/liblzma/common/alone_decoder.c3
-rw-r--r--contrib/libs/xz/liblzma/common/alone_encoder.c9
-rw-r--r--contrib/libs/xz/liblzma/common/block_header_decoder.c4
-rw-r--r--contrib/libs/xz/liblzma/common/block_header_encoder.c2
-rw-r--r--contrib/libs/xz/liblzma/common/block_util.c2
-rw-r--r--contrib/libs/xz/liblzma/common/common.c8
-rw-r--r--contrib/libs/xz/liblzma/common/filter_common.h2
-rw-r--r--contrib/libs/xz/liblzma/common/filter_decoder.h2
-rw-r--r--contrib/libs/xz/liblzma/common/filter_flags_encoder.c2
-rw-r--r--contrib/libs/xz/liblzma/common/hardware_physmem.c2
-rw-r--r--contrib/libs/xz/liblzma/common/index.c8
-rw-r--r--contrib/libs/xz/liblzma/common/memcmplen.h19
-rw-r--r--contrib/libs/xz/liblzma/common/stream_encoder_mt.c4
-rw-r--r--contrib/libs/xz/liblzma/common/stream_flags_decoder.c6
-rw-r--r--contrib/libs/xz/liblzma/common/stream_flags_encoder.c8
-rw-r--r--contrib/libs/xz/liblzma/common/vli_decoder.c2
-rw-r--r--contrib/libs/xz/liblzma/delta/delta_decoder.c2
-rw-r--r--contrib/libs/xz/liblzma/lz/lz_decoder.c17
-rw-r--r--contrib/libs/xz/liblzma/lz/lz_encoder_hash.h2
-rw-r--r--contrib/libs/xz/liblzma/lz/lz_encoder_mf.c2
-rw-r--r--contrib/libs/xz/liblzma/lzma/fastpos.h2
-rw-r--r--contrib/libs/xz/liblzma/lzma/lzma2_decoder.c8
-rw-r--r--contrib/libs/xz/liblzma/lzma/lzma_common.h3
-rw-r--r--contrib/libs/xz/liblzma/lzma/lzma_decoder.c18
-rw-r--r--contrib/libs/xz/liblzma/lzma/lzma_encoder.c2
-rw-r--r--contrib/libs/xz/liblzma/lzma/lzma_encoder_optimum_normal.c16
-rw-r--r--contrib/libs/xz/liblzma/lzma/lzma_encoder_private.h3
-rw-r--r--contrib/libs/xz/liblzma/simple/arm.c6
-rw-r--r--contrib/libs/xz/liblzma/simple/armthumb.c8
-rw-r--r--contrib/libs/xz/liblzma/simple/ia64.c2
-rw-r--r--contrib/libs/xz/liblzma/simple/powerpc.c9
-rw-r--r--contrib/libs/xz/liblzma/simple/simple_coder.c10
-rw-r--r--contrib/libs/xz/liblzma/simple/simple_decoder.c2
-rw-r--r--contrib/libs/xz/liblzma/simple/simple_encoder.c2
-rw-r--r--contrib/libs/xz/liblzma/simple/x86.c2
57 files changed, 2217 insertions, 1860 deletions
diff --git a/contrib/libs/xz/.yandex_meta/devtools.licenses.report b/contrib/libs/xz/.yandex_meta/devtools.licenses.report
index eeae370b66..d8b9a797f1 100644
--- a/contrib/libs/xz/.yandex_meta/devtools.licenses.report
+++ b/contrib/libs/xz/.yandex_meta/devtools.licenses.report
@@ -238,7 +238,7 @@ BELONGS liblzma/ya.make
common/tuklib_common.h [8:9]
common/tuklib_cpucores.c [8:9]
common/tuklib_cpucores.h [8:9]
- common/tuklib_integer.h [36:37]
+ common/tuklib_integer.h [40:41]
common/tuklib_physmem.c [8:9]
common/tuklib_physmem.h [8:9]
liblzma/check/check.c [8:9]
@@ -441,7 +441,7 @@ BELONGS liblzma/ya.make
SKIP GPL-3.0-only 87c5fd9395cc8c4301b6db65874b2fee
BELONGS liblzma/ya.make
-FILE_INCLUDE COPYING.GPLv3 found in files: README at line 77
+FILE_INCLUDE COPYING.GPLv3 found in files: README at line 79
# This is a reference to the file with GPL-3.0 license
License text:
COPYING.GPLv3 GNU General Public License version 3
@@ -451,13 +451,13 @@ FILE_INCLUDE COPYING.GPLv3 found in files: README at line 77
Match type : REFERENCE
Links : http://www.gnu.org/licenses/gpl-3.0-standalone.html, http://www.gnu.org/licenses/gpl-3.0.html, https://spdx.org/licenses/GPL-3.0-only
Files with this license:
- README [77:77]
+ README [79:79]
Belongs difference:
+ liblzma/ya.make
SKIP GPL-2.0-only 9dce5d84fb7323994abd13bc2486c87c
BELONGS liblzma/ya.make
-FILE_INCLUDE COPYING.GPLv2 found in files: README at line 76
+FILE_INCLUDE COPYING.GPLv2 found in files: README at line 78
# This is a reference to the file with GPL-2.0 license
License text:
COPYING.GPLv2 GNU General Public License version 2
@@ -467,7 +467,7 @@ FILE_INCLUDE COPYING.GPLv2 found in files: README at line 76
Match type : REFERENCE
Links : http://www.gnu.org/licenses/gpl-2.0.html, http://www.gnu.org/licenses/gpl-2.0.txt, https://spdx.org/licenses/GPL-2.0-only
Files with this license:
- README [76:76]
+ README [78:78]
Belongs difference:
+ liblzma/ya.make
@@ -561,20 +561,6 @@ BELONGS liblzma/ya.make
Belongs difference:
+ liblzma/ya.make
-SKIP LGPL-2.0-or-later d50e3ea295c4a42f2dd018fcbbebd7bd
-BELONGS liblzma/ya.make
- # Applies to GNU gettext which we do not use
- Note: matched license text is too long. Read it in the source files.
- Scancode info:
- Original SPDX id: LGPL-2.0-or-later
- Score : 99.00
- Match type : NOTICE
- Links : http://www.gnu.org/licenses/old-licenses/lgpl-2.0-standalone.html, http://www.gnu.org/licenses/old-licenses/lgpl-2.0.html, https://spdx.org/licenses/LGPL-2.0-or-later
- Files with this license:
- ABOUT-NLS [1269:1273]
- Belongs difference:
- + liblzma/ya.make
-
KEEP Public-Domain e1fbce7ff7fca39f205a01966c6a6867
BELONGS liblzma/ya.make
License text:
@@ -605,7 +591,7 @@ BELONGS liblzma/ya.make
SKIP LGPL-2.1-only f40ab9ba73e6dd7697337f329bbb17b5
BELONGS liblzma/ya.make
-FILE_INCLUDE COPYING.LGPLv2.1 found in files: README at line 78
+FILE_INCLUDE COPYING.LGPLv2.1 found in files: README at line 80
# This is a reference to the file with LGPL-2.1 license
License text:
COPYING.LGPLv2.1 GNU Lesser General Public License version 2.1
@@ -615,6 +601,6 @@ FILE_INCLUDE COPYING.LGPLv2.1 found in files: README at line 78
Match type : REFERENCE
Links : http://www.gnu.org/licenses/lgpl-2.1.html, http://www.gnu.org/licenses/lgpl-2.1.txt, https://spdx.org/licenses/LGPL-2.1-only
Files with this license:
- README [78:78]
+ README [80:80]
Belongs difference:
+ liblzma/ya.make
diff --git a/contrib/libs/xz/ABOUT-NLS b/contrib/libs/xz/ABOUT-NLS
index b1de1b6832..0a9d56d9e7 100644
--- a/contrib/libs/xz/ABOUT-NLS
+++ b/contrib/libs/xz/ABOUT-NLS
@@ -1,1282 +1 @@
-1 Notes on the Free Translation Project
-***************************************
-
-Free software is going international! The Free Translation Project is
-a way to get maintainers of free software, translators, and users all
-together, so that free software will gradually become able to speak many
-languages. A few packages already provide translations for their
-messages.
-
- If you found this `ABOUT-NLS' file inside a distribution, you may
-assume that the distributed package does use GNU `gettext' internally,
-itself available at your nearest GNU archive site. But you do _not_
-need to install GNU `gettext' prior to configuring, installing or using
-this package with messages translated.
-
- Installers will find here some useful hints. These notes also
-explain how users should proceed for getting the programs to use the
-available translations. They tell how people wanting to contribute and
-work on translations can contact the appropriate team.
-
-1.1 INSTALL Matters
-===================
-
-Some packages are "localizable" when properly installed; the programs
-they contain can be made to speak your own native language. Most such
-packages use GNU `gettext'. Other packages have their own ways to
-internationalization, predating GNU `gettext'.
-
- By default, this package will be installed to allow translation of
-messages. It will automatically detect whether the system already
-provides the GNU `gettext' functions. Installers may use special
-options at configuration time for changing the default behaviour. The
-command:
-
- ./configure --disable-nls
-
-will _totally_ disable translation of messages.
-
- When you already have GNU `gettext' installed on your system and run
-configure without an option for your new package, `configure' will
-probably detect the previously built and installed `libintl' library
-and will decide to use it. If not, you may have to to use the
-`--with-libintl-prefix' option to tell `configure' where to look for it.
-
- Internationalized packages usually have many `po/LL.po' files, where
-LL gives an ISO 639 two-letter code identifying the language. Unless
-translations have been forbidden at `configure' time by using the
-`--disable-nls' switch, all available translations are installed
-together with the package. However, the environment variable `LINGUAS'
-may be set, prior to configuration, to limit the installed set.
-`LINGUAS' should then contain a space separated list of two-letter
-codes, stating which languages are allowed.
-
-1.2 Using This Package
-======================
-
-As a user, if your language has been installed for this package, you
-only have to set the `LANG' environment variable to the appropriate
-`LL_CC' combination. If you happen to have the `LC_ALL' or some other
-`LC_xxx' environment variables set, you should unset them before
-setting `LANG', otherwise the setting of `LANG' will not have the
-desired effect. Here `LL' is an ISO 639 two-letter language code, and
-`CC' is an ISO 3166 two-letter country code. For example, let's
-suppose that you speak German and live in Germany. At the shell
-prompt, merely execute `setenv LANG de_DE' (in `csh'),
-`export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash').
-This can be done from your `.login' or `.profile' file, once and for
-all.
-
- You might think that the country code specification is redundant.
-But in fact, some languages have dialects in different countries. For
-example, `de_AT' is used for Austria, and `pt_BR' for Brazil. The
-country code serves to distinguish the dialects.
-
- The locale naming convention of `LL_CC', with `LL' denoting the
-language and `CC' denoting the country, is the one use on systems based
-on GNU libc. On other systems, some variations of this scheme are
-used, such as `LL' or `LL_CC.ENCODING'. You can get the list of
-locales supported by your system for your language by running the
-command `locale -a | grep '^LL''.
-
- Not all programs have translations for all languages. By default, an
-English message is shown in place of a nonexistent translation. If you
-understand other languages, you can set up a priority list of languages.
-This is done through a different environment variable, called
-`LANGUAGE'. GNU `gettext' gives preference to `LANGUAGE' over `LANG'
-for the purpose of message handling, but you still need to have `LANG'
-set to the primary language; this is required by other parts of the
-system libraries. For example, some Swedish users who would rather
-read translations in German than English for when Swedish is not
-available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'.
-
- Special advice for Norwegian users: The language code for Norwegian
-bokma*l changed from `no' to `nb' recently (in 2003). During the
-transition period, while some message catalogs for this language are
-installed under `nb' and some older ones under `no', it's recommended
-for Norwegian users to set `LANGUAGE' to `nb:no' so that both newer and
-older translations are used.
-
- In the `LANGUAGE' environment variable, but not in the `LANG'
-environment variable, `LL_CC' combinations can be abbreviated as `LL'
-to denote the language's main dialect. For example, `de' is equivalent
-to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT'
-(Portuguese as spoken in Portugal) in this context.
-
-1.3 Translating Teams
-=====================
-
-For the Free Translation Project to be a success, we need interested
-people who like their own language and write it well, and who are also
-able to synergize with other translators speaking the same language.
-Each translation team has its own mailing list. The up-to-date list of
-teams can be found at the Free Translation Project's homepage,
-`http://translationproject.org/', in the "Teams" area.
-
- If you'd like to volunteer to _work_ at translating messages, you
-should become a member of the translating team for your own language.
-The subscribing address is _not_ the same as the list itself, it has
-`-request' appended. For example, speakers of Swedish can send a
-message to `sv-request@li.org', having this message body:
-
- subscribe
-
- Keep in mind that team members are expected to participate
-_actively_ in translations, or at solving translational difficulties,
-rather than merely lurking around. If your team does not exist yet and
-you want to start one, or if you are unsure about what to do or how to
-get started, please write to `coordinator@translationproject.org' to
-reach the coordinator for all translator teams.
-
- The English team is special. It works at improving and uniformizing
-the terminology in use. Proven linguistic skills are praised more than
-programming skills, here.
-
-1.4 Available Packages
-======================
-
-Languages are not equally supported in all packages. The following
-matrix shows the current state of internationalization, as of June
-2010. The matrix shows, in regard of each package, for which languages
-PO files have been submitted to translation coordination, with a
-translation percentage of at least 50%.
-
- Ready PO files af am an ar as ast az be be@latin bg bn_IN bs ca
- +--------------------------------------------------+
- a2ps | [] [] |
- aegis | |
- ant-phone | |
- anubis | |
- aspell | [] [] |
- bash | |
- bfd | |
- bibshelf | [] |
- binutils | |
- bison | |
- bison-runtime | [] |
- bluez-pin | [] [] |
- bombono-dvd | |
- buzztard | |
- cflow | |
- clisp | |
- coreutils | [] [] |
- cpio | |
- cppi | |
- cpplib | [] |
- cryptsetup | |
- dfarc | |
- dialog | [] [] |
- dico | |
- diffutils | [] |
- dink | |
- doodle | |
- e2fsprogs | [] |
- enscript | [] |
- exif | |
- fetchmail | [] |
- findutils | [] |
- flex | [] |
- freedink | |
- gas | |
- gawk | [] [] |
- gcal | [] |
- gcc | |
- gettext-examples | [] [] [] [] |
- gettext-runtime | [] [] |
- gettext-tools | [] [] |
- gip | [] |
- gjay | |
- gliv | [] |
- glunarclock | [] [] |
- gnubiff | |
- gnucash | [] |
- gnuedu | |
- gnulib | |
- gnunet | |
- gnunet-gtk | |
- gnutls | |
- gold | |
- gpe-aerial | |
- gpe-beam | |
- gpe-bluetooth | |
- gpe-calendar | |
- gpe-clock | [] |
- gpe-conf | |
- gpe-contacts | |
- gpe-edit | |
- gpe-filemanager | |
- gpe-go | |
- gpe-login | |
- gpe-ownerinfo | [] |
- gpe-package | |
- gpe-sketchbook | |
- gpe-su | [] |
- gpe-taskmanager | [] |
- gpe-timesheet | [] |
- gpe-today | [] |
- gpe-todo | |
- gphoto2 | |
- gprof | [] |
- gpsdrive | |
- gramadoir | |
- grep | |
- grub | [] [] |
- gsasl | |
- gss | |
- gst-plugins-bad | [] |
- gst-plugins-base | [] |
- gst-plugins-good | [] |
- gst-plugins-ugly | [] |
- gstreamer | [] [] [] |
- gtick | |
- gtkam | [] |
- gtkorphan | [] |
- gtkspell | [] [] [] |
- gutenprint | |
- hello | [] |
- help2man | |
- hylafax | |
- idutils | |
- indent | [] [] |
- iso_15924 | |
- iso_3166 | [] [] [] [] [] [] [] |
- iso_3166_2 | |
- iso_4217 | |
- iso_639 | [] [] [] [] |
- iso_639_3 | |
- jwhois | |
- kbd | |
- keytouch | [] |
- keytouch-editor | |
- keytouch-keyboa... | [] |
- klavaro | [] |
- latrine | |
- ld | [] |
- leafpad | [] [] |
- libc | [] [] |
- libexif | () |
- libextractor | |
- libgnutls | |
- libgpewidget | |
- libgpg-error | |
- libgphoto2 | |
- libgphoto2_port | |
- libgsasl | |
- libiconv | [] |
- libidn | |
- lifelines | |
- liferea | [] [] |
- lilypond | |
- linkdr | [] |
- lordsawar | |
- lprng | |
- lynx | [] |
- m4 | |
- mailfromd | |
- mailutils | |
- make | |
- man-db | |
- man-db-manpages | |
- minicom | |
- mkisofs | |
- myserver | |
- nano | [] [] |
- opcodes | |
- parted | |
- pies | |
- popt | |
- psmisc | |
- pspp | [] |
- pwdutils | |
- radius | [] |
- recode | [] [] |
- rosegarden | |
- rpm | |
- rush | |
- sarg | |
- screem | |
- scrollkeeper | [] [] [] |
- sed | [] [] |
- sharutils | [] [] |
- shishi | |
- skencil | |
- solfege | |
- solfege-manual | |
- soundtracker | |
- sp | |
- sysstat | |
- tar | [] |
- texinfo | |
- tin | |
- unicode-han-tra... | |
- unicode-transla... | |
- util-linux-ng | [] |
- vice | |
- vmm | |
- vorbis-tools | |
- wastesedge | |
- wdiff | |
- wget | [] [] |
- wyslij-po | |
- xchat | [] [] [] [] |
- xdg-user-dirs | [] [] [] [] [] [] [] [] [] |
- xkeyboard-config | [] [] |
- +--------------------------------------------------+
- af am an ar as ast az be be@latin bg bn_IN bs ca
- 6 0 1 2 3 19 1 10 3 28 3 1 38
-
- crh cs da de el en en_GB en_ZA eo es et eu fa
- +-------------------------------------------------+
- a2ps | [] [] [] [] [] [] [] |
- aegis | [] [] [] |
- ant-phone | [] () |
- anubis | [] [] |
- aspell | [] [] [] [] [] |
- bash | [] [] [] |
- bfd | [] |
- bibshelf | [] [] [] |
- binutils | [] |
- bison | [] [] |
- bison-runtime | [] [] [] [] |
- bluez-pin | [] [] [] [] [] [] |
- bombono-dvd | [] |
- buzztard | [] [] [] |
- cflow | [] [] |
- clisp | [] [] [] [] |
- coreutils | [] [] [] [] |
- cpio | |
- cppi | |
- cpplib | [] [] [] |
- cryptsetup | [] |
- dfarc | [] [] [] |
- dialog | [] [] [] [] [] |
- dico | |
- diffutils | [] [] [] [] [] [] |
- dink | [] [] [] |
- doodle | [] |
- e2fsprogs | [] [] [] |
- enscript | [] [] [] |
- exif | () [] [] |
- fetchmail | [] [] () [] [] [] |
- findutils | [] [] [] |
- flex | [] [] |
- freedink | [] [] [] |
- gas | [] |
- gawk | [] [] [] |
- gcal | [] |
- gcc | [] [] |
- gettext-examples | [] [] [] [] |
- gettext-runtime | [] [] [] [] |
- gettext-tools | [] [] [] |
- gip | [] [] [] [] |
- gjay | [] |
- gliv | [] [] [] |
- glunarclock | [] [] |
- gnubiff | () |
- gnucash | [] () () () () |
- gnuedu | [] [] |
- gnulib | [] [] |
- gnunet | |
- gnunet-gtk | [] |
- gnutls | [] [] |
- gold | [] |
- gpe-aerial | [] [] [] [] |
- gpe-beam | [] [] [] [] |
- gpe-bluetooth | [] [] |
- gpe-calendar | [] |
- gpe-clock | [] [] [] [] |
- gpe-conf | [] [] [] |
- gpe-contacts | [] [] [] |
- gpe-edit | [] [] |
- gpe-filemanager | [] [] [] |
- gpe-go | [] [] [] [] |
- gpe-login | [] [] |
- gpe-ownerinfo | [] [] [] [] |
- gpe-package | [] [] [] |
- gpe-sketchbook | [] [] [] [] |
- gpe-su | [] [] [] [] |
- gpe-taskmanager | [] [] [] [] |
- gpe-timesheet | [] [] [] [] |
- gpe-today | [] [] [] [] |
- gpe-todo | [] [] [] |
- gphoto2 | [] [] () [] [] [] |
- gprof | [] [] [] |
- gpsdrive | [] [] [] |
- gramadoir | [] [] [] |
- grep | [] |
- grub | [] [] |
- gsasl | [] |
- gss | |
- gst-plugins-bad | [] [] [] [] [] |
- gst-plugins-base | [] [] [] [] [] |
- gst-plugins-good | [] [] [] [] [] [] |
- gst-plugins-ugly | [] [] [] [] [] [] |
- gstreamer | [] [] [] [] [] |
- gtick | [] () [] |
- gtkam | [] [] () [] [] |
- gtkorphan | [] [] [] [] |
- gtkspell | [] [] [] [] [] [] [] |
- gutenprint | [] [] [] |
- hello | [] [] [] [] |
- help2man | [] |
- hylafax | [] [] |
- idutils | [] [] |
- indent | [] [] [] [] [] [] [] |
- iso_15924 | [] () [] [] |
- iso_3166 | [] [] [] [] () [] [] [] () |
- iso_3166_2 | () |
- iso_4217 | [] [] [] () [] [] |
- iso_639 | [] [] [] [] () [] [] |
- iso_639_3 | [] |
- jwhois | [] |
- kbd | [] [] [] [] [] |
- keytouch | [] [] |
- keytouch-editor | [] [] |
- keytouch-keyboa... | [] |
- klavaro | [] [] [] [] |
- latrine | [] () |
- ld | [] [] |
- leafpad | [] [] [] [] [] [] |
- libc | [] [] [] [] |
- libexif | [] [] () |
- libextractor | |
- libgnutls | [] |
- libgpewidget | [] [] |
- libgpg-error | [] [] |
- libgphoto2 | [] () |
- libgphoto2_port | [] () [] |
- libgsasl | |
- libiconv | [] [] [] [] [] |
- libidn | [] [] [] |
- lifelines | [] () |
- liferea | [] [] [] [] [] |
- lilypond | [] [] [] |
- linkdr | [] [] [] |
- lordsawar | [] |
- lprng | |
- lynx | [] [] [] [] |
- m4 | [] [] [] [] |
- mailfromd | |
- mailutils | [] |
- make | [] [] [] |
- man-db | |
- man-db-manpages | |
- minicom | [] [] [] [] |
- mkisofs | |
- myserver | |
- nano | [] [] [] |
- opcodes | [] [] |
- parted | [] [] |
- pies | |
- popt | [] [] [] [] [] |
- psmisc | [] [] [] |
- pspp | [] |
- pwdutils | [] |
- radius | [] |
- recode | [] [] [] [] [] [] |
- rosegarden | () () () |
- rpm | [] [] [] |
- rush | |
- sarg | |
- screem | |
- scrollkeeper | [] [] [] [] [] |
- sed | [] [] [] [] [] [] |
- sharutils | [] [] [] [] |
- shishi | |
- skencil | [] () [] |
- solfege | [] [] [] |
- solfege-manual | [] [] |
- soundtracker | [] [] [] |
- sp | [] |
- sysstat | [] [] [] |
- tar | [] [] [] [] |
- texinfo | [] [] [] |
- tin | [] [] |
- unicode-han-tra... | |
- unicode-transla... | |
- util-linux-ng | [] [] [] [] |
- vice | () () |
- vmm | [] |
- vorbis-tools | [] [] |
- wastesedge | [] |
- wdiff | [] [] |
- wget | [] [] [] |
- wyslij-po | |
- xchat | [] [] [] [] [] |
- xdg-user-dirs | [] [] [] [] [] [] [] [] [] |
- xkeyboard-config | [] [] [] [] [] [] |
- +-------------------------------------------------+
- crh cs da de el en en_GB en_ZA eo es et eu fa
- 5 64 105 117 18 1 8 0 28 89 18 19 0
-
- fi fr ga gl gu he hi hr hu hy id is it ja ka kn
- +----------------------------------------------------+
- a2ps | [] [] [] [] |
- aegis | [] [] |
- ant-phone | [] [] |
- anubis | [] [] [] [] |
- aspell | [] [] [] [] |
- bash | [] [] [] [] |
- bfd | [] [] [] |
- bibshelf | [] [] [] [] [] |
- binutils | [] [] [] |
- bison | [] [] [] [] |
- bison-runtime | [] [] [] [] [] [] |
- bluez-pin | [] [] [] [] [] [] [] [] |
- bombono-dvd | [] |
- buzztard | [] |
- cflow | [] [] [] |
- clisp | [] |
- coreutils | [] [] [] [] [] |
- cpio | [] [] [] [] |
- cppi | [] [] |
- cpplib | [] [] [] |
- cryptsetup | [] [] [] |
- dfarc | [] [] [] |
- dialog | [] [] [] [] [] [] [] |
- dico | |
- diffutils | [] [] [] [] [] [] [] [] [] |
- dink | [] |
- doodle | [] [] |
- e2fsprogs | [] [] |
- enscript | [] [] [] [] |
- exif | [] [] [] [] [] [] |
- fetchmail | [] [] [] [] |
- findutils | [] [] [] [] [] [] |
- flex | [] [] [] |
- freedink | [] [] [] |
- gas | [] [] |
- gawk | [] [] [] [] () [] |
- gcal | [] |
- gcc | [] |
- gettext-examples | [] [] [] [] [] [] [] |
- gettext-runtime | [] [] [] [] [] [] |
- gettext-tools | [] [] [] [] |
- gip | [] [] [] [] [] [] |
- gjay | [] |
- gliv | [] () |
- glunarclock | [] [] [] [] |
- gnubiff | () [] () |
- gnucash | () () () () () [] |
- gnuedu | [] [] |
- gnulib | [] [] [] [] [] [] |
- gnunet | |
- gnunet-gtk | [] |
- gnutls | [] [] |
- gold | [] [] |
- gpe-aerial | [] [] [] |
- gpe-beam | [] [] [] [] |
- gpe-bluetooth | [] [] [] [] |
- gpe-calendar | [] [] |
- gpe-clock | [] [] [] [] [] |
- gpe-conf | [] [] [] [] |
- gpe-contacts | [] [] [] [] |
- gpe-edit | [] [] [] |
- gpe-filemanager | [] [] [] [] |
- gpe-go | [] [] [] [] [] |
- gpe-login | [] [] [] |
- gpe-ownerinfo | [] [] [] [] [] |
- gpe-package | [] [] [] |
- gpe-sketchbook | [] [] [] [] |
- gpe-su | [] [] [] [] [] [] |
- gpe-taskmanager | [] [] [] [] [] |
- gpe-timesheet | [] [] [] [] [] |
- gpe-today | [] [] [] [] [] [] [] |
- gpe-todo | [] [] [] |
- gphoto2 | [] [] [] [] [] [] |
- gprof | [] [] [] [] |
- gpsdrive | [] [] [] |
- gramadoir | [] [] [] |
- grep | [] [] |
- grub | [] [] [] [] |
- gsasl | [] [] [] [] [] |
- gss | [] [] [] [] [] |
- gst-plugins-bad | [] [] [] [] [] [] |
- gst-plugins-base | [] [] [] [] [] [] |
- gst-plugins-good | [] [] [] [] [] [] |
- gst-plugins-ugly | [] [] [] [] [] [] |
- gstreamer | [] [] [] [] [] |
- gtick | [] [] [] [] [] |
- gtkam | [] [] [] [] [] |
- gtkorphan | [] [] [] |
- gtkspell | [] [] [] [] [] [] [] [] [] |
- gutenprint | [] [] [] [] |
- hello | [] [] [] |
- help2man | [] [] |
- hylafax | [] |
- idutils | [] [] [] [] [] [] |
- indent | [] [] [] [] [] [] [] [] |
- iso_15924 | [] () [] [] |
- iso_3166 | [] () [] [] [] [] [] [] [] [] [] [] |
- iso_3166_2 | () [] [] [] |
- iso_4217 | [] () [] [] [] [] |
- iso_639 | [] () [] [] [] [] [] [] [] |
- iso_639_3 | () [] [] |
- jwhois | [] [] [] [] [] |
- kbd | [] [] |
- keytouch | [] [] [] [] [] [] |
- keytouch-editor | [] [] [] [] [] |
- keytouch-keyboa... | [] [] [] [] [] |
- klavaro | [] [] |
- latrine | [] [] [] |
- ld | [] [] [] [] |
- leafpad | [] [] [] [] [] [] [] () |
- libc | [] [] [] [] [] |
- libexif | [] |
- libextractor | |
- libgnutls | [] [] |
- libgpewidget | [] [] [] [] |
- libgpg-error | [] [] |
- libgphoto2 | [] [] [] |
- libgphoto2_port | [] [] [] |
- libgsasl | [] [] [] [] [] |
- libiconv | [] [] [] [] [] [] |
- libidn | [] [] [] [] |
- lifelines | () |
- liferea | [] [] [] [] |
- lilypond | [] [] |
- linkdr | [] [] [] [] [] |
- lordsawar | |
- lprng | [] |
- lynx | [] [] [] [] [] |
- m4 | [] [] [] [] [] [] |
- mailfromd | |
- mailutils | [] [] |
- make | [] [] [] [] [] [] [] [] [] |
- man-db | [] [] |
- man-db-manpages | [] |
- minicom | [] [] [] [] [] |
- mkisofs | [] [] [] [] |
- myserver | |
- nano | [] [] [] [] [] [] |
- opcodes | [] [] [] [] |
- parted | [] [] [] [] |
- pies | |
- popt | [] [] [] [] [] [] [] [] [] |
- psmisc | [] [] [] |
- pspp | |
- pwdutils | [] [] |
- radius | [] [] |
- recode | [] [] [] [] [] [] [] [] |
- rosegarden | () () () () () |
- rpm | [] [] |
- rush | |
- sarg | [] |
- screem | [] [] |
- scrollkeeper | [] [] [] [] |
- sed | [] [] [] [] [] [] [] [] |
- sharutils | [] [] [] [] [] [] [] |
- shishi | [] |
- skencil | [] |
- solfege | [] [] [] [] |
- solfege-manual | [] [] |
- soundtracker | [] [] |
- sp | [] () |
- sysstat | [] [] [] [] [] |
- tar | [] [] [] [] [] [] [] |
- texinfo | [] [] [] [] |
- tin | [] |
- unicode-han-tra... | |
- unicode-transla... | [] [] |
- util-linux-ng | [] [] [] [] [] [] |
- vice | () () () |
- vmm | [] |
- vorbis-tools | [] |
- wastesedge | () () |
- wdiff | [] |
- wget | [] [] [] [] [] [] [] [] |
- wyslij-po | [] [] [] |
- xchat | [] [] [] [] [] [] [] [] [] |
- xdg-user-dirs | [] [] [] [] [] [] [] [] [] [] [] [] [] |
- xkeyboard-config | [] [] [] [] [] |
- +----------------------------------------------------+
- fi fr ga gl gu he hi hr hu hy id is it ja ka kn
- 105 121 53 20 4 8 3 5 53 2 120 5 84 67 0 4
-
- ko ku ky lg lt lv mk ml mn mr ms mt nb nds ne
- +-----------------------------------------------+
- a2ps | [] |
- aegis | |
- ant-phone | |
- anubis | [] [] |
- aspell | [] |
- bash | |
- bfd | |
- bibshelf | [] [] |
- binutils | |
- bison | [] |
- bison-runtime | [] [] [] [] [] |
- bluez-pin | [] [] [] [] [] |
- bombono-dvd | |
- buzztard | |
- cflow | |
- clisp | |
- coreutils | [] |
- cpio | |
- cppi | |
- cpplib | |
- cryptsetup | |
- dfarc | [] |
- dialog | [] [] [] [] [] |
- dico | |
- diffutils | [] [] |
- dink | |
- doodle | |
- e2fsprogs | |
- enscript | |
- exif | [] |
- fetchmail | |
- findutils | |
- flex | |
- freedink | [] |
- gas | |
- gawk | |
- gcal | |
- gcc | |
- gettext-examples | [] [] [] [] |
- gettext-runtime | [] |
- gettext-tools | [] |
- gip | [] [] |
- gjay | |
- gliv | |
- glunarclock | [] |
- gnubiff | |
- gnucash | () () () () |
- gnuedu | |
- gnulib | |
- gnunet | |
- gnunet-gtk | |
- gnutls | [] |
- gold | |
- gpe-aerial | [] |
- gpe-beam | [] |
- gpe-bluetooth | [] [] |
- gpe-calendar | [] |
- gpe-clock | [] [] [] [] [] |
- gpe-conf | [] [] |
- gpe-contacts | [] [] |
- gpe-edit | [] |
- gpe-filemanager | [] [] |
- gpe-go | [] [] [] |
- gpe-login | [] |
- gpe-ownerinfo | [] [] |
- gpe-package | [] [] |
- gpe-sketchbook | [] [] |
- gpe-su | [] [] [] [] [] [] |
- gpe-taskmanager | [] [] [] [] [] [] |
- gpe-timesheet | [] [] |
- gpe-today | [] [] [] [] |
- gpe-todo | [] [] |
- gphoto2 | |
- gprof | [] |
- gpsdrive | |
- gramadoir | |
- grep | |
- grub | |
- gsasl | |
- gss | |
- gst-plugins-bad | [] [] [] [] |
- gst-plugins-base | [] [] |
- gst-plugins-good | [] [] |
- gst-plugins-ugly | [] [] [] [] [] |
- gstreamer | |
- gtick | |
- gtkam | [] |
- gtkorphan | [] [] |
- gtkspell | [] [] [] [] [] [] [] |
- gutenprint | |
- hello | [] [] [] |
- help2man | |
- hylafax | |
- idutils | |
- indent | |
- iso_15924 | [] [] |
- iso_3166 | [] [] () [] [] [] [] [] |
- iso_3166_2 | |
- iso_4217 | [] [] |
- iso_639 | [] [] |
- iso_639_3 | [] |
- jwhois | [] |
- kbd | |
- keytouch | [] |
- keytouch-editor | [] |
- keytouch-keyboa... | [] |
- klavaro | [] |
- latrine | [] |
- ld | |
- leafpad | [] [] [] |
- libc | [] |
- libexif | |
- libextractor | |
- libgnutls | [] |
- libgpewidget | [] [] |
- libgpg-error | |
- libgphoto2 | |
- libgphoto2_port | |
- libgsasl | |
- libiconv | |
- libidn | |
- lifelines | |
- liferea | |
- lilypond | |
- linkdr | |
- lordsawar | |
- lprng | |
- lynx | |
- m4 | |
- mailfromd | |
- mailutils | |
- make | [] |
- man-db | |
- man-db-manpages | |
- minicom | [] |
- mkisofs | |
- myserver | |
- nano | [] [] |
- opcodes | |
- parted | |
- pies | |
- popt | [] [] [] |
- psmisc | |
- pspp | |
- pwdutils | |
- radius | |
- recode | |
- rosegarden | |
- rpm | |
- rush | |
- sarg | |
- screem | |
- scrollkeeper | [] [] |
- sed | |
- sharutils | |
- shishi | |
- skencil | |
- solfege | [] |
- solfege-manual | |
- soundtracker | |
- sp | |
- sysstat | [] |
- tar | [] |
- texinfo | [] |
- tin | |
- unicode-han-tra... | |
- unicode-transla... | |
- util-linux-ng | |
- vice | |
- vmm | |
- vorbis-tools | |
- wastesedge | |
- wdiff | |
- wget | [] |
- wyslij-po | |
- xchat | [] [] [] |
- xdg-user-dirs | [] [] [] [] [] [] [] [] |
- xkeyboard-config | [] [] [] |
- +-----------------------------------------------+
- ko ku ky lg lt lv mk ml mn mr ms mt nb nds ne
- 20 5 10 1 13 48 4 2 2 4 24 10 20 3 1
-
- nl nn or pa pl ps pt pt_BR ro ru rw sk sl sq sr
- +---------------------------------------------------+
- a2ps | [] [] [] [] [] [] [] [] |
- aegis | [] [] [] |
- ant-phone | [] [] |
- anubis | [] [] [] |
- aspell | [] [] [] [] [] |
- bash | [] [] |
- bfd | [] |
- bibshelf | [] [] |
- binutils | [] [] |
- bison | [] [] [] |
- bison-runtime | [] [] [] [] [] [] [] |
- bluez-pin | [] [] [] [] [] [] [] [] |
- bombono-dvd | [] () |
- buzztard | [] [] |
- cflow | [] |
- clisp | [] [] |
- coreutils | [] [] [] [] [] [] |
- cpio | [] [] [] |
- cppi | [] |
- cpplib | [] |
- cryptsetup | [] |
- dfarc | [] |
- dialog | [] [] [] [] |
- dico | [] |
- diffutils | [] [] [] [] [] [] |
- dink | () |
- doodle | [] [] |
- e2fsprogs | [] [] |
- enscript | [] [] [] [] [] |
- exif | [] [] [] () [] |
- fetchmail | [] [] [] [] |
- findutils | [] [] [] [] [] |
- flex | [] [] [] [] [] |
- freedink | [] [] |
- gas | |
- gawk | [] [] [] [] |
- gcal | |
- gcc | [] |
- gettext-examples | [] [] [] [] [] [] [] [] |
- gettext-runtime | [] [] [] [] [] [] [] [] [] |
- gettext-tools | [] [] [] [] [] [] |
- gip | [] [] [] [] [] |
- gjay | |
- gliv | [] [] [] [] [] [] |
- glunarclock | [] [] [] [] [] |
- gnubiff | [] () |
- gnucash | [] () () () |
- gnuedu | [] |
- gnulib | [] [] [] [] |
- gnunet | |
- gnunet-gtk | |
- gnutls | [] [] |
- gold | |
- gpe-aerial | [] [] [] [] [] [] [] |
- gpe-beam | [] [] [] [] [] [] [] |
- gpe-bluetooth | [] [] |
- gpe-calendar | [] [] [] [] |
- gpe-clock | [] [] [] [] [] [] [] [] |
- gpe-conf | [] [] [] [] [] [] [] |
- gpe-contacts | [] [] [] [] [] |
- gpe-edit | [] [] [] |
- gpe-filemanager | [] [] [] |
- gpe-go | [] [] [] [] [] [] [] [] |
- gpe-login | [] [] |
- gpe-ownerinfo | [] [] [] [] [] [] [] [] |
- gpe-package | [] [] |
- gpe-sketchbook | [] [] [] [] [] [] [] |
- gpe-su | [] [] [] [] [] [] [] [] |
- gpe-taskmanager | [] [] [] [] [] [] [] [] |
- gpe-timesheet | [] [] [] [] [] [] [] [] |
- gpe-today | [] [] [] [] [] [] [] [] |
- gpe-todo | [] [] [] [] [] |
- gphoto2 | [] [] [] [] [] [] [] [] |
- gprof | [] [] [] |
- gpsdrive | [] [] |
- gramadoir | [] [] |
- grep | [] [] [] [] |
- grub | [] [] [] |
- gsasl | [] [] [] [] |
- gss | [] [] [] |
- gst-plugins-bad | [] [] [] [] [] [] |
- gst-plugins-base | [] [] [] [] [] |
- gst-plugins-good | [] [] [] [] [] |
- gst-plugins-ugly | [] [] [] [] [] [] |
- gstreamer | [] [] [] [] [] |
- gtick | [] [] [] |
- gtkam | [] [] [] [] [] [] |
- gtkorphan | [] |
- gtkspell | [] [] [] [] [] [] [] [] [] [] |
- gutenprint | [] [] |
- hello | [] [] [] [] |
- help2man | [] [] |
- hylafax | [] |
- idutils | [] [] [] [] [] |
- indent | [] [] [] [] [] [] [] |
- iso_15924 | [] [] [] [] |
- iso_3166 | [] [] [] [] [] () [] [] [] [] [] [] [] [] |
- iso_3166_2 | [] [] [] |
- iso_4217 | [] [] [] [] [] [] [] [] |
- iso_639 | [] [] [] [] [] [] [] [] [] |
- iso_639_3 | [] [] |
- jwhois | [] [] [] [] |
- kbd | [] [] [] |
- keytouch | [] [] [] |
- keytouch-editor | [] [] [] |
- keytouch-keyboa... | [] [] [] |
- klavaro | [] [] |
- latrine | [] [] |
- ld | |
- leafpad | [] [] [] [] [] [] [] [] [] |
- libc | [] [] [] [] |
- libexif | [] [] () [] |
- libextractor | |
- libgnutls | [] [] |
- libgpewidget | [] [] [] |
- libgpg-error | [] [] |
- libgphoto2 | [] [] |
- libgphoto2_port | [] [] [] [] [] |
- libgsasl | [] [] [] [] [] |
- libiconv | [] [] [] [] [] |
- libidn | [] [] |
- lifelines | [] [] |
- liferea | [] [] [] [] [] () () [] |
- lilypond | [] |
- linkdr | [] [] [] |
- lordsawar | |
- lprng | [] |
- lynx | [] [] [] |
- m4 | [] [] [] [] [] |
- mailfromd | [] |
- mailutils | [] |
- make | [] [] [] [] |
- man-db | [] [] [] |
- man-db-manpages | [] [] [] |
- minicom | [] [] [] [] |
- mkisofs | [] [] [] |
- myserver | |
- nano | [] [] [] [] |
- opcodes | [] [] |
- parted | [] [] [] [] |
- pies | [] |
- popt | [] [] [] [] |
- psmisc | [] [] [] |
- pspp | [] [] |
- pwdutils | [] |
- radius | [] [] [] |
- recode | [] [] [] [] [] [] [] [] |
- rosegarden | () () |
- rpm | [] [] [] |
- rush | [] [] |
- sarg | |
- screem | |
- scrollkeeper | [] [] [] [] [] [] [] [] |
- sed | [] [] [] [] [] [] [] [] [] |
- sharutils | [] [] [] [] |
- shishi | [] |
- skencil | [] [] |
- solfege | [] [] [] [] |
- solfege-manual | [] [] [] |
- soundtracker | [] |
- sp | |
- sysstat | [] [] [] [] |
- tar | [] [] [] [] |
- texinfo | [] [] [] [] |
- tin | [] |
- unicode-han-tra... | |
- unicode-transla... | |
- util-linux-ng | [] [] [] [] [] |
- vice | [] |
- vmm | [] |
- vorbis-tools | [] [] |
- wastesedge | [] |
- wdiff | [] [] |
- wget | [] [] [] [] [] [] [] |
- wyslij-po | [] [] [] |
- xchat | [] [] [] [] [] [] [] [] [] |
- xdg-user-dirs | [] [] [] [] [] [] [] [] [] [] [] [] [] [] |
- xkeyboard-config | [] [] [] |
- +---------------------------------------------------+
- nl nn or pa pl ps pt pt_BR ro ru rw sk sl sq sr
- 135 10 4 7 105 1 29 62 47 91 3 54 46 9 37
-
- sv sw ta te tg th tr uk vi wa zh_CN zh_HK zh_TW
- +---------------------------------------------------+
- a2ps | [] [] [] [] [] | 27
- aegis | [] | 9
- ant-phone | [] [] [] [] | 9
- anubis | [] [] [] [] | 15
- aspell | [] [] [] | 20
- bash | [] [] [] | 12
- bfd | [] | 6
- bibshelf | [] [] [] | 16
- binutils | [] [] | 8
- bison | [] [] | 12
- bison-runtime | [] [] [] [] [] [] | 29
- bluez-pin | [] [] [] [] [] [] [] [] | 37
- bombono-dvd | [] | 4
- buzztard | [] | 7
- cflow | [] [] [] | 9
- clisp | | 10
- coreutils | [] [] [] [] | 22
- cpio | [] [] [] [] [] [] | 13
- cppi | [] [] | 5
- cpplib | [] [] [] [] [] [] | 14
- cryptsetup | [] [] | 7
- dfarc | [] | 9
- dialog | [] [] [] [] [] [] [] | 30
- dico | [] | 2
- diffutils | [] [] [] [] [] [] | 30
- dink | | 4
- doodle | [] [] | 7
- e2fsprogs | [] [] [] | 11
- enscript | [] [] [] [] | 17
- exif | [] [] [] | 16
- fetchmail | [] [] [] | 17
- findutils | [] [] [] [] [] | 20
- flex | [] [] [] [] | 15
- freedink | [] | 10
- gas | [] | 4
- gawk | [] [] [] [] | 18
- gcal | [] [] | 5
- gcc | [] [] [] | 7
- gettext-examples | [] [] [] [] [] [] [] | 34
- gettext-runtime | [] [] [] [] [] [] [] | 29
- gettext-tools | [] [] [] [] [] [] | 22
- gip | [] [] [] [] | 22
- gjay | [] | 3
- gliv | [] [] [] | 14
- glunarclock | [] [] [] [] [] | 19
- gnubiff | [] [] | 4
- gnucash | () [] () [] () | 10
- gnuedu | [] [] | 7
- gnulib | [] [] [] [] | 16
- gnunet | [] | 1
- gnunet-gtk | [] [] [] | 5
- gnutls | [] [] [] | 10
- gold | [] | 4
- gpe-aerial | [] [] [] | 18
- gpe-beam | [] [] [] | 19
- gpe-bluetooth | [] [] [] | 13
- gpe-calendar | [] [] [] [] | 12
- gpe-clock | [] [] [] [] [] | 28
- gpe-conf | [] [] [] [] | 20
- gpe-contacts | [] [] [] | 17
- gpe-edit | [] [] [] | 12
- gpe-filemanager | [] [] [] [] | 16
- gpe-go | [] [] [] [] [] | 25
- gpe-login | [] [] [] | 11
- gpe-ownerinfo | [] [] [] [] [] | 25
- gpe-package | [] [] [] | 13
- gpe-sketchbook | [] [] [] | 20
- gpe-su | [] [] [] [] [] | 30
- gpe-taskmanager | [] [] [] [] [] | 29
- gpe-timesheet | [] [] [] [] [] | 25
- gpe-today | [] [] [] [] [] [] | 30
- gpe-todo | [] [] [] [] | 17
- gphoto2 | [] [] [] [] [] | 24
- gprof | [] [] [] | 15
- gpsdrive | [] [] [] | 11
- gramadoir | [] [] [] | 11
- grep | [] [] [] | 10
- grub | [] [] [] | 14
- gsasl | [] [] [] [] | 14
- gss | [] [] [] | 11
- gst-plugins-bad | [] [] [] [] | 26
- gst-plugins-base | [] [] [] [] [] | 24
- gst-plugins-good | [] [] [] [] | 24
- gst-plugins-ugly | [] [] [] [] [] | 29
- gstreamer | [] [] [] [] | 22
- gtick | [] [] [] | 13
- gtkam | [] [] [] | 20
- gtkorphan | [] [] [] | 14
- gtkspell | [] [] [] [] [] [] [] [] [] | 45
- gutenprint | [] | 10
- hello | [] [] [] [] [] [] | 21
- help2man | [] [] | 7
- hylafax | [] | 5
- idutils | [] [] [] [] | 17
- indent | [] [] [] [] [] [] | 30
- iso_15924 | () [] () [] [] | 16
- iso_3166 | [] [] () [] [] () [] [] [] () | 53
- iso_3166_2 | () [] () [] | 9
- iso_4217 | [] () [] [] () [] [] | 26
- iso_639 | [] [] [] () [] () [] [] [] [] | 38
- iso_639_3 | [] () | 8
- jwhois | [] [] [] [] [] | 16
- kbd | [] [] [] [] [] | 15
- keytouch | [] [] [] | 16
- keytouch-editor | [] [] [] | 14
- keytouch-keyboa... | [] [] [] | 14
- klavaro | [] | 11
- latrine | [] [] [] | 10
- ld | [] [] [] [] | 11
- leafpad | [] [] [] [] [] [] | 33
- libc | [] [] [] [] [] | 21
- libexif | [] () | 7
- libextractor | [] | 1
- libgnutls | [] [] [] | 9
- libgpewidget | [] [] [] | 14
- libgpg-error | [] [] [] | 9
- libgphoto2 | [] [] | 8
- libgphoto2_port | [] [] [] [] | 14
- libgsasl | [] [] [] | 13
- libiconv | [] [] [] [] | 21
- libidn | () [] [] | 11
- lifelines | [] | 4
- liferea | [] [] [] | 21
- lilypond | [] | 7
- linkdr | [] [] [] [] [] | 17
- lordsawar | | 1
- lprng | [] | 3
- lynx | [] [] [] [] | 17
- m4 | [] [] [] [] | 19
- mailfromd | [] [] | 3
- mailutils | [] | 5
- make | [] [] [] [] | 21
- man-db | [] [] [] | 8
- man-db-manpages | | 4
- minicom | [] [] | 16
- mkisofs | [] [] | 9
- myserver | | 0
- nano | [] [] [] [] | 21
- opcodes | [] [] [] | 11
- parted | [] [] [] [] [] | 15
- pies | [] [] | 3
- popt | [] [] [] [] [] [] | 27
- psmisc | [] [] | 11
- pspp | | 4
- pwdutils | [] [] | 6
- radius | [] [] | 9
- recode | [] [] [] [] | 28
- rosegarden | () | 0
- rpm | [] [] [] | 11
- rush | [] [] | 4
- sarg | | 1
- screem | [] | 3
- scrollkeeper | [] [] [] [] [] | 27
- sed | [] [] [] [] [] | 30
- sharutils | [] [] [] [] [] | 22
- shishi | [] | 3
- skencil | [] [] | 7
- solfege | [] [] [] [] | 16
- solfege-manual | [] | 8
- soundtracker | [] [] [] | 9
- sp | [] | 3
- sysstat | [] [] | 15
- tar | [] [] [] [] [] [] | 23
- texinfo | [] [] [] [] [] | 17
- tin | | 4
- unicode-han-tra... | | 0
- unicode-transla... | | 2
- util-linux-ng | [] [] [] [] | 20
- vice | () () | 1
- vmm | [] | 4
- vorbis-tools | [] | 6
- wastesedge | | 2
- wdiff | [] [] | 7
- wget | [] [] [] [] [] | 26
- wyslij-po | [] [] | 8
- xchat | [] [] [] [] [] [] | 36
- xdg-user-dirs | [] [] [] [] [] [] [] [] [] [] | 63
- xkeyboard-config | [] [] [] | 22
- +---------------------------------------------------+
- 85 teams sv sw ta te tg th tr uk vi wa zh_CN zh_HK zh_TW
- 178 domains 119 1 3 3 0 10 65 51 155 17 98 7 41 2618
-
- Some counters in the preceding matrix are higher than the number of
-visible blocks let us expect. This is because a few extra PO files are
-used for implementing regional variants of languages, or language
-dialects.
-
- For a PO file in the matrix above to be effective, the package to
-which it applies should also have been internationalized and
-distributed as such by its maintainer. There might be an observable
-lag between the mere existence a PO file and its wide availability in a
-distribution.
-
- If June 2010 seems to be old, you may fetch a more recent copy of
-this `ABOUT-NLS' file on most GNU archive sites. The most up-to-date
-matrix with full percentage details can be found at
-`http://translationproject.org/extra/matrix.html'.
-
-1.5 Using `gettext' in new packages
-===================================
-
-If you are writing a freely available program and want to
-internationalize it you are welcome to use GNU `gettext' in your
-package. Of course you have to respect the GNU Library General Public
-License which covers the use of the GNU `gettext' library. This means
-in particular that even non-free programs can use `libintl' as a shared
-library, whereas only free software can use `libintl' as a static
-library or use modified versions of `libintl'.
-
- Once the sources are changed appropriately and the setup can handle
-the use of `gettext' the only thing missing are the translations. The
-Free Translation Project is also available for packages which are not
-developed inside the GNU project. Therefore the information given above
-applies also for every other Free Software Project. Contact
-`coordinator@translationproject.org' to make the `.pot' files available
-to the translation teams.
-
+<https://www.gnu.org/software/gettext/manual/html_node/Users.html>
diff --git a/contrib/libs/xz/ChangeLog b/contrib/libs/xz/ChangeLog
index 955b113008..37c0d95c42 100644
--- a/contrib/libs/xz/ChangeLog
+++ b/contrib/libs/xz/ChangeLog
@@ -1,3 +1,1335 @@
+commit 2327a461e1afce862c22269b80d3517801103c1b
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2020-03-17 16:27:42 +0200
+
+ Bump version and soname for 5.2.5.
+
+ src/liblzma/Makefile.am | 2 +-
+ src/liblzma/api/lzma/version.h | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+commit 3be82d2f7dc882258caf0f0a69214e5916b2bdda
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2020-03-17 16:26:04 +0200
+
+ Update NEWS for 5.2.5.
+
+ NEWS | 105 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 105 insertions(+)
+
+commit ab3e57539c7337f0653b13b75dbc5d03ade9700e
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2020-03-16 21:57:21 +0200
+
+ Translations: Rebuild cs.po to avoid incorrect fuzzy strings.
+
+ "make dist" updates the .po files and the fuzzy strings would
+ result in multiple very wrong translations.
+
+ po/cs.po | 592 ++++++++++++++++++++++++++++++++++-----------------------------
+ 1 file changed, 322 insertions(+), 270 deletions(-)
+
+commit 3a6f38309dc5d44d8a63ebb337b6b2028561c93e
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2020-03-16 20:01:37 +0200
+
+ README: Update outdated sections.
+
+ README | 21 +++++++++++----------
+ 1 file changed, 11 insertions(+), 10 deletions(-)
+
+commit 9cc0901798217e258e91c13cf6fda7ad42ba108c
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2020-03-16 19:46:27 +0200
+
+ README: Mention that translatable strings will change after 5.2.x.
+
+ README | 74 +++---------------------------------------------------------------
+ 1 file changed, 3 insertions(+), 71 deletions(-)
+
+commit cc163574249f6a4a66f3dc09d6fe5a71bee24fab
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2020-03-16 19:39:45 +0200
+
+ README: Mention that man pages can be translated.
+
+ README | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+commit ca261994edc3f2d03d5589c037171c63471ee9dc
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2020-03-16 17:30:39 +0200
+
+ Translations: Add partial Danish translation.
+
+ I made a few minor white space changes without getting them
+ approved by the Danish translation team.
+
+ po/LINGUAS | 1 +
+ po/da.po | 896 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 897 insertions(+)
+
+commit 51cd5d051fc730d61411dee292e863582784e189
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2020-03-16 16:43:29 +0200
+
+ Update INSTALL.generic from Automake 1.16.1.
+
+ INSTALL.generic | 321 ++++++++++++++++++++++++++++----------------------------
+ 1 file changed, 162 insertions(+), 159 deletions(-)
+
+commit 69d694e5f1beae2bbfa3b6c348ec0ec5f14b5cd0
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2020-03-15 15:27:22 +0200
+
+ Update INSTALL for Windows and DOS and add preliminary info for z/OS.
+
+ INSTALL | 51 +++++++++++++++++++++++++++++++++++++++++----------
+ 1 file changed, 41 insertions(+), 10 deletions(-)
+
+commit 2c3b1bb80a3ca7e09728fe4d7a1d8648a5cb9bca
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2020-03-15 15:26:20 +0200
+
+ Build: Update m4/ax_pthread.m4 from Autoconf Archive (again).
+
+ m4/ax_pthread.m4 | 219 +++++++++++++++++++++++++++++--------------------------
+ 1 file changed, 117 insertions(+), 102 deletions(-)
+
+commit 74a5af180a6a6c4b8c90cefb37ee900d3fea7dc6
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2020-03-11 21:15:35 +0200
+
+ xz: Never use thousand separators in DJGPP builds.
+
+ DJGPP 2.05 added support for thousands separators but it's
+ broken at least under WinXP with Finnish locale that uses
+ a non-breaking space as the thousands separator. Workaround
+ by disabling thousands separators for DJGPP builds.
+
+ src/xz/util.c | 14 ++++++++++++--
+ 1 file changed, 12 insertions(+), 2 deletions(-)
+
+commit ceba0d25e826bcdbf64bb4cb03385a2a66f8cbcb
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2020-03-11 19:38:08 +0200
+
+ DOS: Update dos/Makefile for DJGPP 2.05.
+
+ It doesn't need -fgnu89-inline like 2.04beta did.
+
+ dos/Makefile | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+commit 29e5bd71612253281fb22bbaa0a566990a74dcc3
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2020-03-11 19:36:07 +0200
+
+ DOS: Update instructions in dos/INSTALL.txt.
+
+ dos/INSTALL.txt | 59 ++++++++++++++++++++++++++++-----------------------------
+ 1 file changed, 29 insertions(+), 30 deletions(-)
+
+commit 00a037ee9c8ee5a03cf9744e05570ae93d56b875
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2020-03-11 17:58:51 +0200
+
+ DOS: Update config.h.
+
+ The added defines assume GCC >= 4.8.
+
+ dos/config.h | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+commit 4ec2feaefa310b4249eb41893caf526e5c51ee39
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2020-03-11 22:37:54 +0200
+
+ Translations: Add hu, zh_CN, and zh_TW.
+
+ I made a few white space changes to these without getting them
+ approved by the translation teams. (I tried to contact the hu and
+ zh_TW teams but didn't succeed. I didn't contact the zh_CN team.)
+
+ po/LINGUAS | 3 +
+ po/hu.po | 985 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ po/zh_CN.po | 963 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ po/zh_TW.po | 956 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 2907 insertions(+)
+
+commit b6ed09729ae408be4533a0ddbc7df3d6f566846a
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2020-03-11 14:33:30 +0200
+
+ Translations: Update vi.po to match the file from the TP.
+
+ The translated strings haven't been updated but word wrapping
+ is different.
+
+ po/vi.po | 407 ++++++++++++++++++++++++++++-----------------------------------
+ 1 file changed, 179 insertions(+), 228 deletions(-)
+
+commit 7c85e8953ced204c858101872a15183e4639e9fb
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2020-03-11 14:18:03 +0200
+
+ Translations: Add fi and pt_BR, and update de, fr, it, and pl.
+
+ The German translation isn't identical to the file in
+ the Translation Project but the changes (white space changes
+ only) were approved by the translator Mario Blättermann.
+
+ po/LINGUAS | 2 +
+ po/de.po | 476 ++++++++++++++--------------
+ po/fi.po | 974 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ po/fr.po | 272 ++++++++--------
+ po/it.po | 479 ++++++++++++----------------
+ po/pl.po | 239 +++++++-------
+ po/pt_BR.po | 1001 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 7 files changed, 2697 insertions(+), 746 deletions(-)
+
+commit 7da3ebc67fb5414034685ec16c7a29dad03dfa9b
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2020-02-25 21:35:14 +0200
+
+ Update THANKS.
+
+ THANKS | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 1acc48794364606c9091cae6fa56db75a1325114
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2020-03-11 13:05:29 +0200
+
+ Build: Add very limited experimental CMake support.
+
+ This version matches CMake files in the master branch (commit
+ 265daa873c0d871f5f23f9b56e133a6f20045a0a) except that this omits
+ two source files that aren't in v5.2 and in the beginning of
+ CMakeLists.txt the first paragraph in the comment is slightly
+ different to point out possible issues in building shared liblzma.
+
+ CMakeLists.txt | 659 ++++++++++++++++++++++++++++++++++++++++++++
+ cmake/tuklib_common.cmake | 49 ++++
+ cmake/tuklib_cpucores.cmake | 175 ++++++++++++
+ cmake/tuklib_integer.cmake | 102 +++++++
+ cmake/tuklib_mbstr.cmake | 20 ++
+ cmake/tuklib_physmem.cmake | 150 ++++++++++
+ cmake/tuklib_progname.cmake | 19 ++
+ 7 files changed, 1174 insertions(+)
+
+commit 9acc6abea1552803c74c1486fbb10af119550772
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2020-02-27 20:24:27 +0200
+
+ Build: Add support for --no-po4a option to autogen.sh.
+
+ Normally, if po4a isn't available, autogen.sh will return
+ with non-zero exit status. The option --no-po4a can be useful
+ when one knows that po4a isn't available but wants autogen.sh
+ to still return with zero exit status.
+
+ autogen.sh | 11 ++++++++++-
+ 1 file changed, 10 insertions(+), 1 deletion(-)
+
+commit c8853b31545db7bd0551be85949624b1261efd47
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2020-02-24 23:37:07 +0200
+
+ Update m4/.gitignore.
+
+ m4/.gitignore | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 901eb4a8c992354c3ea482f5bad60a1f8ad6fcc8
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2020-02-24 23:01:00 +0200
+
+ liblzma: Remove unneeded <sys/types.h> from fastpos_tablegen.c.
+
+ This file only generates fastpos_table.c.
+ It isn't built as a part of liblzma.
+
+ src/liblzma/lzma/fastpos_tablegen.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+commit ac35c9585fb734b7a19785d490c152e0b8cd4663
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2020-02-22 14:15:07 +0200
+
+ Use defined(__GNUC__) before __GNUC__ in preprocessor lines.
+
+ This should silence the equivalent of -Wundef in compilers that
+ don't define __GNUC__.
+
+ src/common/sysdefs.h | 3 ++-
+ src/liblzma/api/lzma.h | 5 +++--
+ 2 files changed, 5 insertions(+), 3 deletions(-)
+
+commit fb9cada7cfade1156d6277717280e05b5cd342d6
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2020-02-21 17:40:02 +0200
+
+ liblzma: Add more uses of lzma_memcmplen() to the normal mode of LZMA.
+
+ This gives a tiny encoder speed improvement. This could have been done
+ in 2014 after the commit 544aaa3d13554e8640f9caf7db717a96360ec0f6 but
+ it was forgotten.
+
+ src/liblzma/lzma/lzma_encoder_optimum_normal.c | 16 ++++++++++------
+ 1 file changed, 10 insertions(+), 6 deletions(-)
+
+commit 6117955af0b9cef5acde7859e86f773692b5f43c
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2020-02-21 17:01:15 +0200
+
+ Build: Add visibility.m4 from gnulib.
+
+ Appears that this file used to get included as a side effect of
+ gettext. After the change to gettext version requirements this file
+ no longer got copied to the package and so the build was broken.
+
+ m4/.gitignore | 1 -
+ m4/visibility.m4 | 77 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 77 insertions(+), 1 deletion(-)
+
+commit c2cc64d78c098834231f9cfd7d852c9cd8950d74
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2020-02-21 16:10:44 +0200
+
+ xz: Silence a warning when sig_atomic_t is long int.
+
+ It can be true at least on z/OS.
+
+ src/xz/signals.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit b6314aa275b35c714e0a191d0b2e9b6106129ea9
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2020-02-21 15:59:26 +0200
+
+ xz: Avoid unneeded access of a volatile variable.
+
+ src/xz/signals.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit f772a1572f723e5dc7d2d32e1d4287ac7a0da55e
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2020-02-21 01:24:18 +0200
+
+ tuklib_integer.m4: Optimize the check order.
+
+ The __builtin byteswapping is the preferred one so check for it first.
+
+ m4/tuklib_integer.m4 | 56 +++++++++++++++++++++++++++-------------------------
+ 1 file changed, 29 insertions(+), 27 deletions(-)
+
+commit 641042e63f665f3231c2fd1241fd3dddda3fb313
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2020-02-20 18:54:04 +0200
+
+ tuklib_exit: Add missing header.
+
+ strerror() needs <string.h> which happened to be included via
+ tuklib_common.h -> tuklib_config.h -> sysdefs.h if HAVE_CONFIG_H
+ was defined. This wasn't tested without config.h before so it
+ had worked fine.
+
+ src/common/tuklib_exit.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit dbd55a69e530fec9ae866aaf6c3ccc0b4daf1f1f
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2020-02-16 11:18:28 +0200
+
+ sysdefs.h: Omit the conditionals around string.h and limits.h.
+
+ string.h is used unconditionally elsewhere in the project and
+ configure has always stopped if limits.h is missing, so these
+ headers must have been always available even on the weirdest
+ systems.
+
+ src/common/sysdefs.h | 8 ++------
+ 1 file changed, 2 insertions(+), 6 deletions(-)
+
+commit 9294909861e6d22b32418467e0e988f953a82264
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2020-02-15 15:07:11 +0200
+
+ Build: Bump Autoconf and Libtool version requirements.
+
+ There is no specific reason for this other than blocking
+ the most ancient versions. These are still old:
+
+ Autoconf 2.69 (2012)
+ Automake 1.12 (2012)
+ gettext 0.19.6 (2015)
+ Libtool 2.4 (2010)
+
+ configure.ac | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit bd09081bbdf552f730030d2fd0e5e39ccb3936af
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2020-02-15 03:08:32 +0200
+
+ Build: Use AM_GNU_GETTEXT_REQUIRE_VERSION and require 0.19.6.
+
+ This bumps the version requirement from 0.19 (from 2014) to
+ 0.19.6 (2015).
+
+ Using only the old AM_GNU_GETTEXT_VERSION results in old
+ gettext infrastructure being placed in the package. By using
+ both macros we get the latest gettext files while the other
+ programs in the Autotools family can still see the old macro.
+
+ configure.ac | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+commit 1e5e08d86534aec7ca957982c7f6e90203c19e9f
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2020-02-14 20:42:06 +0200
+
+ Translations: Add German translation of the man pages.
+
+ Thanks to Mario Blättermann.
+
+ po4a/de.po | 5532 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ po4a/po4a.conf | 2 +-
+ 2 files changed, 5533 insertions(+), 1 deletion(-)
+
+commit 4b1447809ffbc0d77c0ad456bd6b3afcf0b8623e
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2020-02-07 15:32:21 +0200
+
+ Build: Add support for translated man pages using po4a.
+
+ The dependency on po4a is optional. It's never required to install
+ the translated man pages when xz is built from a release tarball.
+ If po4a is missing when building from xz.git, the translated man
+ pages won't be generated but otherwise the build will work normally.
+
+ The translations are only updated automatically by autogen.sh and
+ by "make mydist". This makes it easy to keep po4a as an optional
+ dependency and ensures that I won't forget to put updated
+ translations to a release tarball.
+
+ The translated man pages aren't installed if --disable-nls is used.
+
+ The installation of translated man pages abuses Automake internals
+ by calling "install-man" with redefined dist_man_MANS and man_MANS.
+ This makes the hairy script code slightly less hairy. If it breaks
+ some day, this code needs to be fixed; don't blame Automake developers.
+
+ Also, this adds more quotes to the existing shell script code in
+ the Makefile.am "-hook"s.
+
+ Makefile.am | 4 ++++
+ autogen.sh | 8 ++++---
+ po4a/.gitignore | 2 ++
+ po4a/po4a.conf | 14 +++++++++++
+ po4a/update-po | 45 ++++++++++++++++++++++++++++++++++
+ src/scripts/Makefile.am | 64 +++++++++++++++++++++++++++++++++++++------------
+ src/xz/Makefile.am | 50 +++++++++++++++++++++++++++-----------
+ src/xzdec/Makefile.am | 55 ++++++++++++++++++++++++++++++++----------
+ 8 files changed, 197 insertions(+), 45 deletions(-)
+
+commit 882fcfdcd86525cc5c6f6d0bf0230d0089206d13
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2020-02-06 00:04:42 +0200
+
+ Update THANKS (sync with the master branch).
+
+ THANKS | 3 +++
+ 1 file changed, 3 insertions(+)
+
+commit 134bb7765815d5f265eb0bc9e6ebacd9ae4a52bc
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2020-02-05 22:35:06 +0200
+
+ Update tests/.gitignore.
+
+ .gitignore | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+commit 6912472fafb656be8f4c5b4ac9ea28fea3065de4
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2020-02-05 22:28:51 +0200
+
+ Update m4/.gitignore.
+
+ m4/.gitignore | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 68c60735bbb6e51d4205ba8a9fde307bcfb22f8c
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2020-02-05 20:47:38 +0200
+
+ Update THANKS.
+
+ THANKS | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit e1beaa74bc7cb5a409d59b55870e01ae7784ce3a
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2020-02-05 20:33:50 +0200
+
+ xz: Comment out annoying sandboxing messages.
+
+ src/xz/file_io.c | 10 +++++++---
+ 1 file changed, 7 insertions(+), 3 deletions(-)
+
+commit 8238192652290df78bd728b20e3f6542d1a2819e
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2020-02-05 19:33:37 +0200
+
+ Build: Workaround a POSIX shell detection problem on Solaris.
+
+ I don't know if the problem is in gnulib's gl_POSIX_SHELL macro
+ or if xzgrep does something that isn't in POSIX. The workaround
+ adds a special case for Solaris: if /usr/xpg4/bin/sh exists and
+ gl_cv_posix_shell wasn't overriden on the configure command line,
+ use that shell for xzgrep and other scripts. That shell is known
+ to work and exists on most Solaris systems.
+
+ configure.ac | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+commit 93a1f61e892e145607dd938e3b30098af19a1672
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2020-02-03 22:03:50 +0200
+
+ Build: Update m4/ax_pthread.m4 from Autoconf Archive.
+
+ m4/ax_pthread.m4 | 398 ++++++++++++++++++++++++++++++++++++++-----------------
+ 1 file changed, 279 insertions(+), 119 deletions(-)
+
+commit d0daa21792ff861e5423bbd82aaa6c8ba9fa0462
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2020-02-01 19:56:18 +0200
+
+ xz: Limit --memlimit-compress to at most 4020 MiB for 32-bit xz.
+
+ See the code comment for reasoning. It's far from perfect but
+ hopefully good enough for certain cases while hopefully doing
+ nothing bad in other situations.
+
+ At presets -5 ... -9, 4020 MiB vs. 4096 MiB makes no difference
+ on how xz scales down the number of threads.
+
+ The limit has to be a few MiB below 4096 MiB because otherwise
+ things like "xz --lzma2=dict=500MiB" won't scale down the dict
+ size enough and xz cannot allocate enough memory. With
+ "ulimit -v $((4096 * 1024))" on x86-64, the limit in xz had
+ to be no more than 4085 MiB. Some safety margin is good though.
+
+ This is hack but it should be useful when running 32-bit xz on
+ a 64-bit kernel that gives full 4 GiB address space to xz.
+ Hopefully this is enough to solve this:
+
+ https://bugzilla.redhat.com/show_bug.cgi?id=1196786
+
+ FreeBSD has a patch that limits the result in tuklib_physmem()
+ to SIZE_MAX on 32-bit systems. While I think it's not the way
+ to do it, the results on --memlimit-compress have been good. This
+ commit should achieve practically identical results for compression
+ while leaving decompression and tuklib_physmem() and thus
+ lzma_physmem() unaffected.
+
+ src/xz/hardware.c | 32 +++++++++++++++++++++++++++++++-
+ src/xz/xz.1 | 21 ++++++++++++++++++++-
+ 2 files changed, 51 insertions(+), 2 deletions(-)
+
+commit 4433c2dc5727ee6aef570e001a5a024e0d94e609
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2020-01-26 20:53:25 +0200
+
+ xz: Set the --flush-timeout deadline when the first input byte arrives.
+
+ xz --flush-timeout=2000, old version:
+
+ 1. xz is started. The next flush will happen after two seconds.
+ 2. No input for one second.
+ 3. A burst of a few kilobytes of input.
+ 4. No input for one second.
+ 5. Two seconds have passed and flushing starts.
+
+ The first second counted towards the flush-timeout even though
+ there was no pending data. This can cause flushing to occur more
+ often than needed.
+
+ xz --flush-timeout=2000, after this commit:
+
+ 1. xz is started.
+ 2. No input for one second.
+ 3. A burst of a few kilobytes of input. The next flush will
+ happen after two seconds counted from the time when the
+ first bytes of the burst were read.
+ 4. No input for one second.
+ 5. No input for another second.
+ 6. Two seconds have passed and flushing starts.
+
+ src/xz/coder.c | 6 +-----
+ src/xz/file_io.c | 6 +++++-
+ src/xz/mytime.c | 1 -
+ 3 files changed, 6 insertions(+), 7 deletions(-)
+
+commit acc0ef3ac80f18e349c6d0252177707105c0a29c
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2020-01-26 20:19:19 +0200
+
+ xz: Move flush_needed from mytime.h to file_pair struct in file_io.h.
+
+ src/xz/coder.c | 3 ++-
+ src/xz/file_io.c | 3 ++-
+ src/xz/file_io.h | 3 +++
+ src/xz/mytime.c | 3 ---
+ src/xz/mytime.h | 4 ----
+ 5 files changed, 7 insertions(+), 9 deletions(-)
+
+commit 4afe69d30b66812682a2016ee18441958019cbb2
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2020-01-26 14:49:22 +0200
+
+ xz: coder.c: Make writing output a separate function.
+
+ The same code sequence repeats so it's nicer as a separate function.
+ Note that in one case there was no test for opt_mode != MODE_TEST,
+ but that was only because that condition would always be true, so
+ this commit doesn't change the behavior there.
+
+ src/xz/coder.c | 30 +++++++++++++++++-------------
+ 1 file changed, 17 insertions(+), 13 deletions(-)
+
+commit ec26f3ace5f9b260ca91508030f07465ae2f9f78
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2020-01-26 14:13:42 +0200
+
+ xz: Fix semi-busy-waiting in xz --flush-timeout.
+
+ When input blocked, xz --flush-timeout=1 would wake up every
+ millisecond and initiate flushing which would have nothing to
+ flush and thus would just waste CPU time. The fix disables the
+ timeout when no input has been seen since the previous flush.
+
+ src/xz/coder.c | 4 ++++
+ src/xz/file_io.c | 15 +++++++++++----
+ src/xz/file_io.h | 4 ++++
+ 3 files changed, 19 insertions(+), 4 deletions(-)
+
+commit 38915703241e69a64f133ff9a02ec9100c6019c6
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2020-01-26 13:47:31 +0200
+
+ xz: Refactor io_read() a bit.
+
+ src/xz/file_io.c | 17 ++++++++---------
+ 1 file changed, 8 insertions(+), 9 deletions(-)
+
+commit f6d24245349cecfae6ec0d2366fa80716c9f6d37
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2020-01-26 13:37:08 +0200
+
+ xz: Update a comment in file_io.h.
+
+ src/xz/file_io.h | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+commit 15b55d5c63d27f81776edb1abc05872a751fc674
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2020-01-26 13:27:51 +0200
+
+ xz: Move the setting of flush_needed in file_io.c to a nicer location.
+
+ src/xz/file_io.c | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+commit 609c7067859146ffc62ac655f6ba53599c891801
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2020-02-05 19:56:09 +0200
+
+ xz: Enable Capsicum sandboxing by default if available.
+
+ It has been enabled in FreeBSD for a while and reported to work fine.
+
+ Thanks to Xin Li.
+
+ INSTALL | 6 ------
+ configure.ac | 8 ++++----
+ 2 files changed, 4 insertions(+), 10 deletions(-)
+
+commit 00517d125cc26ecece0eebb84c1c3975cd19bee0
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2019-12-31 22:41:45 +0200
+
+ Rename unaligned_read32ne to read32ne, and similarly for the others.
+
+ src/common/tuklib_integer.h | 64 +++++++++++++++----------------
+ src/liblzma/common/alone_encoder.c | 2 +-
+ src/liblzma/common/block_header_decoder.c | 2 +-
+ src/liblzma/common/block_header_encoder.c | 2 +-
+ src/liblzma/common/memcmplen.h | 9 ++---
+ src/liblzma/common/stream_flags_decoder.c | 6 +--
+ src/liblzma/common/stream_flags_encoder.c | 8 ++--
+ src/liblzma/lz/lz_encoder_hash.h | 2 +-
+ src/liblzma/lzma/lzma_decoder.c | 2 +-
+ src/liblzma/lzma/lzma_encoder.c | 2 +-
+ src/liblzma/lzma/lzma_encoder_private.h | 3 +-
+ src/liblzma/simple/simple_decoder.c | 2 +-
+ src/liblzma/simple/simple_encoder.c | 2 +-
+ tests/test_block_header.c | 4 +-
+ tests/test_stream_flags.c | 6 +--
+ 15 files changed, 54 insertions(+), 62 deletions(-)
+
+commit 52d89d8443c4a31a69c0701062f2c7711d82bbed
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2019-12-31 00:29:48 +0200
+
+ Rename read32ne to aligned_read32ne, and similarly for the others.
+
+ Using the aligned methods requires more care to ensure that
+ the address really is aligned, so it's nicer if the aligned
+ methods are prefixed. The next commit will remove the unaligned_
+ prefix from the unaligned methods which in liblzma are used in
+ more places than the aligned ones.
+
+ src/common/tuklib_integer.h | 56 +++++++++++++++++++++---------------------
+ src/liblzma/check/crc32_fast.c | 4 +--
+ src/liblzma/check/crc64_fast.c | 4 +--
+ 3 files changed, 32 insertions(+), 32 deletions(-)
+
+commit 850620468b57d49f16093e5870d1050886fcb37a
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2019-12-31 00:18:24 +0200
+
+ Revise tuklib_integer.h and .m4.
+
+ Add a configure option --enable-unsafe-type-punning to get the
+ old non-conforming memory access methods. It can be useful with
+ old compilers or in some other less typical situations but
+ shouldn't normally be used.
+
+ Omit the packed struct trick for unaligned access. While it's
+ best in some cases, this is simpler. If the memcpy trick doesn't
+ work, one can request unsafe type punning from configure.
+
+ Because CRC32/CRC64 code needs fast aligned reads, if no very
+ safe way to do it is found, type punning is used as a fallback.
+ This sucks but since it currently works in practice, it seems to
+ be the least bad option. It's never needed with GCC >= 4.7 or
+ Clang >= 3.6 since these support __builtin_assume_aligned and
+ thus fast aligned access can be done with the memcpy trick.
+
+ Other things:
+ - Support GCC/Clang __builtin_bswapXX
+ - Cleaner bswap fallback macros
+ - Minor cleanups
+
+ m4/tuklib_integer.m4 | 43 ++++
+ src/common/tuklib_integer.h | 488 ++++++++++++++++++++++++--------------------
+ 2 files changed, 314 insertions(+), 217 deletions(-)
+
+commit a45badf0342666462cc6a7107a071418570ab773
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2019-12-29 22:51:58 +0200
+
+ Tests: Hopefully fix test_check.c to work on EBCDIC systems.
+
+ Thanks to Daniel Richard G.
+
+ tests/test_check.c | 9 +++++++--
+ 1 file changed, 7 insertions(+), 2 deletions(-)
+
+commit c9a8071e6690a8db8a485c075920df254e7c70ea
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2019-09-24 23:02:40 +0300
+
+ Scripts: Put /usr/xpg4/bin to the beginning of PATH on Solaris.
+
+ This adds a configure option --enable-path-for-scripts=PREFIX
+ which defaults to empty except on Solaris it is /usr/xpg4/bin
+ to make POSIX grep and others available. The Solaris case had
+ been documented in INSTALL with a manual fix but it's better
+ to do this automatically since it is needed on most Solaris
+ systems anyway.
+
+ Thanks to Daniel Richard G.
+
+ INSTALL | 43 +++++++++++++++++++++++++++++++++++--------
+ configure.ac | 26 ++++++++++++++++++++++++++
+ src/scripts/xzdiff.in | 1 +
+ src/scripts/xzgrep.in | 1 +
+ src/scripts/xzless.in | 1 +
+ src/scripts/xzmore.in | 1 +
+ 6 files changed, 65 insertions(+), 8 deletions(-)
+
+commit aba140e2df3ff63ad124ae997de16d517b98ca50
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2019-07-12 18:57:43 +0300
+
+ Fix comment typos in tuklib_mbstr* files.
+
+ src/common/tuklib_mbstr.h | 2 +-
+ src/common/tuklib_mbstr_fw.c | 2 +-
+ src/common/tuklib_mbstr_width.c | 2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+commit 710f5bd769a5d2bd8684256c2727d15350ee2ab8
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2019-07-12 18:30:46 +0300
+
+ Add missing include to tuklib_mbstr_width.c.
+
+ It didn't matter in XZ Utils because sysdefs.h
+ includes string.h anyway.
+
+ src/common/tuklib_mbstr_width.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 0e491aa8cd72e0100cd15c1b9469cd57fae500b0
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2019-06-25 23:15:21 +0300
+
+ liblzma: Fix a buggy comment.
+
+ src/liblzma/lz/lz_encoder_mf.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit bfc245569f340a75bd71ad32a6beba786712683b
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2019-06-25 00:16:06 +0300
+
+ configure.ac: Fix a typo in a comment.
+
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit f18eee9d15a22c8449ef395a05f0eb637c4ad253
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2019-06-25 00:08:13 +0300
+
+ Tests: Silence warnings from clang -Wassign-enum.
+
+ Also changed 999 to 99 so it fits even if lzma_check happened
+ to be 8 bits wide.
+
+ tests/test_block_header.c | 3 ++-
+ tests/test_stream_flags.c | 2 +-
+ 2 files changed, 3 insertions(+), 2 deletions(-)
+
+commit 25f74554723e8deabc66fed1abf0ec27a4ed19d5
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2019-06-24 23:52:17 +0300
+
+ liblzma: Add a comment.
+
+ src/liblzma/common/stream_encoder_mt.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 44eb961f2a51d02420d017bc5ff470360663650c
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2019-06-24 23:45:21 +0300
+
+ liblzma: Silence clang -Wmissing-variable-declarations.
+
+ src/liblzma/check/crc32_table.c | 3 +++
+ src/liblzma/check/crc64_table.c | 3 +++
+ 2 files changed, 6 insertions(+)
+
+commit 267afcd9955e668c1532b069230c21c348eb4f82
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2019-06-24 22:57:43 +0300
+
+ xz: Silence a warning from clang -Wsign-conversion in main.c.
+
+ src/xz/main.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 0e3c4002f809311ecef239b05e556d9c462b5703
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2019-06-24 22:47:39 +0300
+
+ liblzma: Remove incorrect uses of lzma_attribute((__unused__)).
+
+ Caught by clang -Wused-but-marked-unused.
+
+ src/liblzma/common/alone_decoder.c | 3 +--
+ src/liblzma/common/alone_encoder.c | 3 +--
+ src/liblzma/lz/lz_decoder.c | 3 +--
+ 3 files changed, 3 insertions(+), 6 deletions(-)
+
+commit cb708e8fa3405ec13a0ebfebbbf2793f927deab1
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2019-06-24 20:53:55 +0300
+
+ Tests: Silence a warning from -Wsign-conversion.
+
+ tests/create_compress_files.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+commit c8cace3d6e965c0fb537591372bf71b9357dd76c
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2019-06-24 20:45:49 +0300
+
+ xz: Fix an integer overflow with 32-bit off_t.
+
+ Or any off_t which isn't very big (like signed 64 bit integer
+ that most system have). A small off_t could overflow if the
+ file being decompressed had long enough run of zero bytes,
+ which would result in corrupt output.
+
+ src/xz/file_io.c | 11 +++++++++--
+ 1 file changed, 9 insertions(+), 2 deletions(-)
+
+commit 65a42741e290fbcd85dfc5db8a62c4bce5f7712c
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2019-06-24 00:57:23 +0300
+
+ Tests: Remove a duplicate branch from tests/tests.h.
+
+ The duplication was introduced about eleven years ago and
+ should have been cleaned up back then already.
+
+ This was caught by -Wduplicated-branches.
+
+ tests/tests.h | 9 ++-------
+ 1 file changed, 2 insertions(+), 7 deletions(-)
+
+commit 5c4fb60e8df026e933afab0cfe0a8b55be20036c
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2019-06-23 23:22:45 +0300
+
+ tuklib_mbstr_width: Fix a warning from -Wsign-conversion.
+
+ src/common/tuklib_mbstr_width.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 37df03ce52ce53710e1513387648763f8a744154
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2019-06-23 23:19:34 +0300
+
+ xz: Fix some of the warnings from -Wsign-conversion.
+
+ src/xz/args.c | 4 ++--
+ src/xz/coder.c | 4 ++--
+ src/xz/file_io.c | 5 +++--
+ src/xz/message.c | 4 ++--
+ src/xz/mytime.c | 4 ++--
+ src/xz/options.c | 2 +-
+ src/xz/util.c | 4 ++--
+ 7 files changed, 14 insertions(+), 13 deletions(-)
+
+commit 7c65ae0f5f2e2431f88621e8fe6d1dc7907e30c1
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2019-06-23 22:27:45 +0300
+
+ tuklib_cpucores: Silence warnings from -Wsign-conversion.
+
+ src/common/tuklib_cpucores.c | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+commit a502dd1d000b598406637d452f535f4bbd43e2a4
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2019-06-23 21:40:47 +0300
+
+ xzdec: Fix warnings from -Wsign-conversion.
+
+ src/xzdec/xzdec.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit a45d1a5374ceb22e23255b0b595b9e641e9860af
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2019-06-23 21:38:56 +0300
+
+ liblzma: Fix warnings from -Wsign-conversion.
+
+ Also, more parentheses were added to the literal_subcoder
+ macro in lzma_comon.h (better style but no functional change
+ in the current usage).
+
+ src/liblzma/common/block_header_decoder.c | 2 +-
+ src/liblzma/delta/delta_decoder.c | 2 +-
+ src/liblzma/lzma/fastpos.h | 2 +-
+ src/liblzma/lzma/lzma2_decoder.c | 8 ++++----
+ src/liblzma/lzma/lzma_common.h | 3 ++-
+ src/liblzma/lzma/lzma_decoder.c | 16 ++++++++--------
+ src/liblzma/simple/arm.c | 6 +++---
+ src/liblzma/simple/armthumb.c | 8 ++++----
+ src/liblzma/simple/ia64.c | 2 +-
+ src/liblzma/simple/powerpc.c | 9 +++++----
+ src/liblzma/simple/x86.c | 2 +-
+ 11 files changed, 31 insertions(+), 29 deletions(-)
+
+commit 4ff87ddf80ed7cb233444cddd86ab1940b5b55ec
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2019-06-23 19:33:55 +0300
+
+ tuklib_integer: Silence warnings from -Wsign-conversion.
+
+ src/common/tuklib_integer.h | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+commit ed1a9d33984a3a37ae9a775a46859850d98ea4d0
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2019-06-20 19:40:30 +0300
+
+ tuklib_integer: Fix usage of conv macros.
+
+ Use a temporary variable instead of e.g.
+ conv32le(unaligned_read32ne(buf)) because the macro can
+ evaluate its argument multiple times.
+
+ src/common/tuklib_integer.h | 12 ++++++++----
+ 1 file changed, 8 insertions(+), 4 deletions(-)
+
+commit 612c88dfc08e2c572623954ecfde541d21c84882
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2019-06-03 20:44:19 +0300
+
+ Update THANKS.
+
+ THANKS | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 85da31d8b882b8b9671ab3e3d74d88bd945cd0bb
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2019-06-03 20:41:54 +0300
+
+ liblzma: Fix comments.
+
+ Thanks to Bruce Stark.
+
+ src/liblzma/common/alone_encoder.c | 4 ++--
+ src/liblzma/common/block_util.c | 2 +-
+ src/liblzma/common/common.c | 2 +-
+ src/liblzma/common/filter_common.h | 2 +-
+ src/liblzma/common/filter_decoder.h | 2 +-
+ src/liblzma/common/filter_flags_encoder.c | 2 +-
+ 6 files changed, 7 insertions(+), 7 deletions(-)
+
+commit 6a73a7889587aa394e236c7e9e4f870b44851036
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2019-06-02 00:50:59 +0300
+
+ liblzma: Fix one more unaligned read to use unaligned_read16ne().
+
+ src/liblzma/lz/lz_encoder_hash.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit ce59b34ec9ac344d62a57cad5f94f695f42cdaee
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2019-06-01 21:41:55 +0300
+
+ Update THANKS.
+
+ THANKS | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 94aa3fb568fe41dd4925a961966ed5cf8213bd1f
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2019-06-01 21:36:13 +0300
+
+ liblzma: memcmplen: Use ctz32() from tuklib_integer.h.
+
+ The same compiler-specific #ifdefs are already in tuklib_integer.h
+
+ src/liblzma/common/memcmplen.h | 10 +---------
+ 1 file changed, 1 insertion(+), 9 deletions(-)
+
+commit 412791486dfb430219d8e30bcbebbfc57a99484a
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2019-06-01 21:30:03 +0300
+
+ tuklib_integer: Cleanup MSVC-specific code.
+
+ src/common/tuklib_integer.h | 20 +++++++++-----------
+ 1 file changed, 9 insertions(+), 11 deletions(-)
+
+commit efbf6e5f0932e6c1a4250f91ee99059f449f2470
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2019-06-01 19:01:21 +0300
+
+ liblzma: Use unaligned_readXXne functions instead of type punning.
+
+ Now gcc -fsanitize=undefined should be clean.
+
+ Thanks to Jeffrey Walton.
+
+ src/liblzma/common/memcmplen.h | 12 ++++++------
+ src/liblzma/lzma/lzma_encoder_private.h | 2 +-
+ 2 files changed, 7 insertions(+), 7 deletions(-)
+
+commit 29afef03486d461c23f57150ac5436684bff7811
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2019-06-01 18:41:16 +0300
+
+ tuklib_integer: Improve unaligned memory access.
+
+ Now memcpy() or GNU C packed structs for unaligned access instead
+ of type punning. See the comment in this commit for details.
+
+ Avoiding type punning with unaligned access is needed to
+ silence gcc -fsanitize=undefined.
+
+ New functions: unaliged_readXXne and unaligned_writeXXne where
+ XX is 16, 32, or 64.
+
+ src/common/tuklib_integer.h | 180 +++++++++++++++++++++++++++++++++++++++++---
+ 1 file changed, 168 insertions(+), 12 deletions(-)
+
+commit 596ed3de4485a4b1d83b5fe506ae9d0a172139b4
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2019-05-13 20:05:17 +0300
+
+ liblzma: Avoid memcpy(NULL, foo, 0) because it is undefined behavior.
+
+ I should have always known this but I didn't. Here is an example
+ as a reminder to myself:
+
+ int mycopy(void *dest, void *src, size_t n)
+ {
+ memcpy(dest, src, n);
+ return dest == NULL;
+ }
+
+ In the example, a compiler may assume that dest != NULL because
+ passing NULL to memcpy() would be undefined behavior. Testing
+ with GCC 8.2.1, mycopy(NULL, NULL, 0) returns 1 with -O0 and -O1.
+ With -O2 the return value is 0 because the compiler infers that
+ dest cannot be NULL because it was already used with memcpy()
+ and thus the test for NULL gets optimized out.
+
+ In liblzma, if a null-pointer was passed to memcpy(), there were
+ no checks for NULL *after* the memcpy() call, so I cautiously
+ suspect that it shouldn't have caused bad behavior in practice,
+ but it's hard to be sure, and the problematic cases had to be
+ fixed anyway.
+
+ Thanks to Jeffrey Walton.
+
+ src/liblzma/common/common.c | 6 +++++-
+ src/liblzma/lz/lz_decoder.c | 12 +++++++++---
+ src/liblzma/simple/simple_coder.c | 10 +++++++++-
+ 3 files changed, 23 insertions(+), 5 deletions(-)
+
+commit b4b83555c576e1d845a2b98a193b23c021437804
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2019-05-11 20:56:08 +0300
+
+ Update THANKS.
+
+ THANKS | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 8d4906262b45557ed164cd74adb270e6ef7f6f03
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2019-05-11 20:54:12 +0300
+
+ xz: Update xz man page date.
+
+ src/xz/xz.1 | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 0d318402f8a022f707622c72f8f1894ea476cf89
+Author: Antoine CÅ“ur <antoine.coeur@ef.com>
+Date: 2019-05-08 13:30:57 +0800
+
+ spelling
+
+ Doxyfile.in | 2 +-
+ NEWS | 2 +-
+ src/liblzma/api/lzma/block.h | 2 +-
+ src/liblzma/api/lzma/hardware.h | 2 +-
+ src/liblzma/api/lzma/lzma12.h | 2 +-
+ src/liblzma/api/lzma/vli.h | 2 +-
+ src/liblzma/common/hardware_physmem.c | 2 +-
+ src/liblzma/common/index.c | 4 ++--
+ src/liblzma/common/stream_encoder_mt.c | 2 +-
+ src/liblzma/common/vli_decoder.c | 2 +-
+ src/liblzma/lz/lz_decoder.c | 2 +-
+ src/scripts/xzgrep.in | 2 +-
+ src/xz/args.c | 2 +-
+ src/xz/coder.c | 4 ++--
+ src/xz/main.c | 2 +-
+ src/xz/mytime.h | 2 +-
+ src/xz/private.h | 2 +-
+ src/xz/xz.1 | 2 +-
+ windows/build.bash | 2 +-
+ 19 files changed, 21 insertions(+), 21 deletions(-)
+
+commit aeb3be8ac4c4b06a745c3799b80b38159fb78b1a
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2019-03-04 22:49:04 +0200
+
+ README: Update translation instructions.
+
+ XZ Utils is now part of the Translation Project
+ <https://translationproject.org/>.
+
+ README | 32 +++++++++++++-------------------
+ 1 file changed, 13 insertions(+), 19 deletions(-)
+
+commit 0c238dc3feb0a3eea1e713feb8d338c8dfba9f74
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2018-12-20 20:42:29 +0200
+
+ Update THANKS.
+
+ THANKS | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 3ca432d9cce4bf7e793de173dd22025b68611c42
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2018-12-14 20:34:30 +0200
+
+ xz: Fix a crash in progress indicator when in passthru mode.
+
+ "xz -dcfv not_an_xz_file" crashed (all four options are
+ required to trigger it). It caused xz to call
+ lzma_get_progress(&strm, ...) when no coder was initialized
+ in strm. In this situation strm.internal is NULL which leads
+ to a crash in lzma_get_progress().
+
+ The bug was introduced when xz started using lzma_get_progress()
+ to get progress info for multi-threaded compression, so the
+ bug is present in versions 5.1.3alpha and higher.
+
+ Thanks to Filip Palian <Filip.Palian@pjwstk.edu.pl> for
+ the bug report.
+
+ src/xz/coder.c | 11 +++++++----
+ src/xz/message.c | 18 ++++++++++++++++--
+ src/xz/message.h | 3 ++-
+ 3 files changed, 25 insertions(+), 7 deletions(-)
+
+commit fcc419e3c3f77a8b6fc5056a86b1b8abbe266e62
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2018-11-22 17:20:31 +0200
+
+ xz: Update man page timestamp.
+
+ src/xz/xz.1 | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 5a2fc3cd0194e55df329dd29f805299aaca5f32f
+Author: Pavel Raiskup <praiskup@redhat.com>
+Date: 2018-11-22 15:14:34 +0100
+
+ 'have have' typos
+
+ src/xz/signals.c | 2 +-
+ src/xz/xz.1 | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+commit 7143b04fe49390807f355b1dad686a3d8c4dbdcf
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2018-07-27 18:10:44 +0300
+
+ xzless: Rename unused variables to silence static analysers.
+
+ In this particular case I don't see this affecting readability
+ of the code.
+
+ Thanks to Pavel Raiskup.
+
+ src/scripts/xzless.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 273c33297bb69621045ed19665eaf8338bcf4a50
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2018-07-27 16:02:58 +0300
+
+ liblzma: Remove an always-true condition from lzma_index_cat().
+
+ This should help static analysis tools to see that newg
+ isn't leaked.
+
+ Thanks to Pavel Raiskup.
+
+ src/liblzma/common/index.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 65b4aba6d06d2cd24ba9ad01fa389c238ad8f352
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2018-05-19 21:23:25 +0300
+
+ liblzma: Improve lzma_properties_decode() API documentation.
+
+ src/liblzma/api/lzma/filter.h | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+commit 531e78e5a253a3e2c4d4dd1505acaccee48f4083
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2019-05-01 16:52:36 +0300
+
+ Update THANKS.
+
+ THANKS | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 905de7e93528ca5a47039e7e1e5270163f9fc67e
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2019-05-01 16:43:16 +0300
+
+ Windows: Update VS version in windows/vs2019/config.h.
+
+ windows/vs2019/config.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 0ffd30e172fd18cc619823b2a86448bf56a67e22
+Author: Julien Marrec <julien.marrec@gmail.com>
+Date: 2019-04-25 17:44:06 +0200
+
+ Windows: Upgrade solution itself
+
+ windows/vs2019/xz_win.sln | 7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+commit c2ef96685fc7ca36311649eeb2284b9808292040
+Author: Julien Marrec <julien.marrec@gmail.com>
+Date: 2019-04-25 17:40:24 +0200
+
+ Windows: Upgrade solution with VS2019
+
+ windows/vs2019/liblzma.vcxproj | 15 ++++++++-------
+ windows/vs2019/liblzma_dll.vcxproj | 15 ++++++++-------
+ 2 files changed, 16 insertions(+), 14 deletions(-)
+
+commit 25fccaf00bea399d8aa026e5b8fa254ce196e6e0
+Author: Julien Marrec <julien.marrec@gmail.com>
+Date: 2019-04-25 17:39:32 +0200
+
+ Windows: Duplicate windows/vs2017 before upgrading
+
+ windows/vs2019/config.h | 148 ++++++++++++++
+ windows/vs2019/liblzma.vcxproj | 354 ++++++++++++++++++++++++++++++++++
+ windows/vs2019/liblzma_dll.vcxproj | 383 +++++++++++++++++++++++++++++++++++++
+ windows/vs2019/xz_win.sln | 48 +++++
+ 4 files changed, 933 insertions(+)
+
+commit 1424078d6328291c7c524b64328ce9660617cb24
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2019-01-13 17:29:23 +0200
+
+ Windows/VS2017: Omit WindowsTargetPlatformVersion from project files.
+
+ I understood that if a WTPV is specified, it's often wrong
+ because different VS installations have different SDK version
+ installed. Omitting the WTPV tag makes VS2017 default to
+ Windows SDK 8.1 which often is also missing, so in any case
+ people may need to specify the WTPV before building. But some
+ day in the future a missing WTPV tag will start to default to
+ the latest installed SDK which sounds reasonable:
+
+ https://developercommunity.visualstudio.com/content/problem/140294/windowstargetplatformversion-makes-it-impossible-t.html
+
+ Thanks to "dom".
+
+ windows/INSTALL-MSVC.txt | 4 ++++
+ windows/vs2017/liblzma.vcxproj | 1 -
+ windows/vs2017/liblzma_dll.vcxproj | 1 -
+ 3 files changed, 4 insertions(+), 2 deletions(-)
+
commit b5be61cc06088bb07f488f9baf7d447ff47b37c1
Author: Lasse Collin <lasse.collin@tukaani.org>
Date: 2018-04-29 19:00:06 +0300
diff --git a/contrib/libs/xz/INSTALL b/contrib/libs/xz/INSTALL
index c59bec5283..a55affb03d 100644
--- a/contrib/libs/xz/INSTALL
+++ b/contrib/libs/xz/INSTALL
@@ -14,6 +14,7 @@ XZ Utils Installation
1.2.6. Tru64
1.2.7. Windows
1.2.8. DOS
+ 1.2.9. z/OS
1.3. Adding support for new platforms
2. configure options
2.1. Static vs. dynamic linking of liblzma
@@ -123,8 +124,11 @@ XZ Utils Installation
as an argument to the configure script.
test_scripts.sh in "make check" may fail if good enough tools are
- missing from PATH (/usr/xpg4/bin or /usr/xpg6/bin). See sections
- 4.5 and 3.2 for more information.
+ missing from PATH (/usr/xpg4/bin or /usr/xpg6/bin). Nowadays
+ /usr/xpg4/bin is added to the script PATH by default on Solaris
+ (see --enable-path-for-scripts=PREFIX in section 2), but old xz
+ releases needed extra steps. See sections 4.5 and 3.2 for more
+ information.
1.2.6. Tru64
@@ -136,8 +140,22 @@ XZ Utils Installation
1.2.7. Windows
- Building XZ Utils on Windows is supported under the following
- environments:
+ If it is enough to build liblzma (no command line tools):
+
+ - There is experimental CMake support. As it is, it should be
+ good enough to build static liblzma with Visual Studio.
+ Building liblzma.dll might work too (if it doesn't, it should
+ be fixed). The CMake support may work with MinGW or MinGW-w64.
+ Read the comment in the beginning of CMakeLists.txt before
+ running CMake!
+
+ - There are Visual Studio project files under the "windows"
+ directory. See windows/INSTALL-MSVC.txt. In the future the
+ project files will be removed when CMake support is good
+ enough. Thus, please test the CMake version and help fix
+ possible issues.
+
+ To build also the command line tools:
- MinGW-w64 + MSYS (32-bit and 64-bit x86): This is used
for building the official binary packages for Windows.
@@ -153,9 +171,6 @@ XZ Utils Installation
which is safe under older Cygwin versions. You can check
the Cygwin version with the command "cygcheck -V".
- - Microsoft Visual Studio 2013 update 2 or later (MSVC for short):
- See windows/INSTALL-MSVC.txt for more information.
-
It may be possible to build liblzma with other toolchains too, but
that will probably require writing a separate makefile. Building
the command line tools with non-GNU toolchains will be harder than
@@ -168,12 +183,31 @@ XZ Utils Installation
1.2.8. DOS
- There is an experimental Makefile in the "dos" directory to build
- XZ Utils on DOS using DJGPP. Support for long file names (LFN) is
- needed. See dos/README for more information.
+ There is a Makefile in the "dos" directory to build XZ Utils on
+ DOS using DJGPP. Support for long file names (LFN) is needed at
+ build time but the resulting xz.exe works without LFN support too.
+ See dos/INSTALL.txt and dos/README.txt for more information.
+
+
+1.2.9. z/OS
+
+ To build XZ Utils on z/OS UNIX System Services using xlc, pass
+ these options to the configure script: CC='xlc -qhaltonmsg=CCN3296'
+ CPPFLAS='-D_UNIX03_THREADS -D_XOPEN_SOURCE=600'. The first makes
+ xlc throw an error if a header file is missing, which is required
+ to make the tests in configure work. The CPPFLAGS are needed to
+ get pthread support (some other CPPFLAGS may work too; if there
+ are problems, try -D_UNIX95_THREADS instead of -D_UNIX03_THREADS).
- GNU Autotools based build hasn't been tried on DOS. If you try, I
- would like to hear if it worked.
+ test_scripts.sh in "make check" will fail even if the scripts
+ actually work because the test data includes compressed files
+ with US-ASCII text.
+
+ No other tests should fail. If test_files.sh fails, check that
+ the included .xz test files weren't affected by EBCDIC conversion.
+
+ XZ Utils doesn't have code to detect the amount of physical RAM and
+ number of CPU cores on z/OS.
1.3. Adding support for new platforms
@@ -400,12 +434,6 @@ XZ Utils Installation
one thread, something bad may happen.
--enable-sandbox=METHOD
- This feature is EXPERIMENTAL in the XZ Utils 5.2.x and
- disabled by default. If you test this, look especially
- if message translations and locale-specific decimal and
- thousand separators (e.g. xz --list foo.xz) work the
- same way as they do without sandboxing.
-
There is limited sandboxing support in the xz tool. If
built with sandbox support, it's used automatically when
(de)compressing exactly one file to standard output and
@@ -443,6 +471,23 @@ XZ Utils Installation
and should work on most systems. This has no effect on the
resulting binaries.
+ --enable-path-for-scripts=PREFIX
+ If PREFIX isn't empty, PATH=PREFIX:$PATH will be set in
+ the beginning of the scripts (xzgrep and others).
+ The default is empty except on Solaris the default is
+ /usr/xpg4/bin.
+
+ This can be useful if the default PATH doesn't contain
+ modern POSIX tools (as can be the case on Solaris) or if
+ one wants to ensure that the correct xz binary is in the
+ PATH for the scripts. Note that the latter use can break
+ "make check" if the prefixed PATH causes a wrong xz binary
+ (other than the one that was just built) to be used.
+
+ Older xz releases support a different method for setting
+ the PATH for the scripts. It is described in section 3.2
+ and is supported in this xz version too.
+
2.1. Static vs. dynamic linking of liblzma
@@ -515,11 +560,17 @@ XZ Utils Installation
3.2. PATH
+ The method described below is supported by older xz releases.
+ It is supported by the current version too, but the newer
+ --enable-path-for-scripts=PREFIX described in section 2 may be
+ more convenient.
+
The scripts assume that the required tools (standard POSIX utilities,
- mktemp, and xz) are in PATH; the scripts don't set the PATH themselves.
- Some people like this while some think this is a bug. Those in the
- latter group can easily patch the scripts before running the configure
- script by taking advantage of a placeholder line in the scripts.
+ mktemp, and xz) are in PATH; the scripts don't set the PATH themselves
+ (except as described for --enable-path-for-scripts=PREFIX). Some
+ people like this while some think this is a bug. Those in the latter
+ group can easily patch the scripts before running the configure script
+ by taking advantage of a placeholder line in the scripts.
For example, to make the scripts prefix /usr/bin:/bin to PATH:
@@ -593,8 +644,9 @@ XZ Utils Installation
some tools are missing from the current PATH or the tools lack
support for some POSIX features. This can happen at least on
Solaris where the tools in /bin may be ancient but good enough
- tools are available in /usr/xpg4/bin or /usr/xpg6/bin. One fix
- for this problem is described in section 3.2 of this file.
+ tools are available in /usr/xpg4/bin or /usr/xpg6/bin. For possible
+ fixes, see --enable-path-for-scripts=PREFIX in section 2 and the
+ older alternative method described in section 3.2 of this file.
If tests other than test_scripts.sh fail, a likely reason is that
libtool links the test programs against an installed version of
diff --git a/contrib/libs/xz/INSTALL.generic b/contrib/libs/xz/INSTALL.generic
index 81fd332cef..8865734f81 100644
--- a/contrib/libs/xz/INSTALL.generic
+++ b/contrib/libs/xz/INSTALL.generic
@@ -1,8 +1,8 @@
Installation Instructions
*************************
-Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
-2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+ Copyright (C) 1994-1996, 1999-2002, 2004-2016 Free Software
+Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
@@ -12,97 +12,96 @@ without warranty of any kind.
Basic Installation
==================
- Briefly, the shell commands `./configure; make; make install' should
-configure, build, and install this package. The following
-more-detailed instructions are generic; see the `README' file for
+ Briefly, the shell command './configure && make && make install'
+should configure, build, and install this package. The following
+more-detailed instructions are generic; see the 'README' file for
instructions specific to this package. Some packages provide this
-`INSTALL' file but do not implement all of the features documented
+'INSTALL' file but do not implement all of the features documented
below. The lack of an optional feature in a given package is not
necessarily a bug. More recommendations for GNU packages can be found
in *note Makefile Conventions: (standards)Makefile Conventions.
- The `configure' shell script attempts to guess correct values for
+ The 'configure' shell script attempts to guess correct values for
various system-dependent variables used during compilation. It uses
-those values to create a `Makefile' in each directory of the package.
-It may also create one or more `.h' files containing system-dependent
-definitions. Finally, it creates a shell script `config.status' that
+those values to create a 'Makefile' in each directory of the package.
+It may also create one or more '.h' files containing system-dependent
+definitions. Finally, it creates a shell script 'config.status' that
you can run in the future to recreate the current configuration, and a
-file `config.log' containing compiler output (useful mainly for
-debugging `configure').
+file 'config.log' containing compiler output (useful mainly for
+debugging 'configure').
- It can also use an optional file (typically called `config.cache'
-and enabled with `--cache-file=config.cache' or simply `-C') that saves
-the results of its tests to speed up reconfiguring. Caching is
-disabled by default to prevent problems with accidental use of stale
-cache files.
+ It can also use an optional file (typically called 'config.cache' and
+enabled with '--cache-file=config.cache' or simply '-C') that saves the
+results of its tests to speed up reconfiguring. Caching is disabled by
+default to prevent problems with accidental use of stale cache files.
If you need to do unusual things to compile the package, please try
-to figure out how `configure' could check whether to do them, and mail
-diffs or instructions to the address given in the `README' so they can
+to figure out how 'configure' could check whether to do them, and mail
+diffs or instructions to the address given in the 'README' so they can
be considered for the next release. If you are using the cache, and at
-some point `config.cache' contains results you don't want to keep, you
+some point 'config.cache' contains results you don't want to keep, you
may remove or edit it.
- The file `configure.ac' (or `configure.in') is used to create
-`configure' by a program called `autoconf'. You need `configure.ac' if
-you want to change it or regenerate `configure' using a newer version
-of `autoconf'.
+ The file 'configure.ac' (or 'configure.in') is used to create
+'configure' by a program called 'autoconf'. You need 'configure.ac' if
+you want to change it or regenerate 'configure' using a newer version of
+'autoconf'.
The simplest way to compile this package is:
- 1. `cd' to the directory containing the package's source code and type
- `./configure' to configure the package for your system.
+ 1. 'cd' to the directory containing the package's source code and type
+ './configure' to configure the package for your system.
- Running `configure' might take a while. While running, it prints
+ Running 'configure' might take a while. While running, it prints
some messages telling which features it is checking for.
- 2. Type `make' to compile the package.
+ 2. Type 'make' to compile the package.
- 3. Optionally, type `make check' to run any self-tests that come with
+ 3. Optionally, type 'make check' to run any self-tests that come with
the package, generally using the just-built uninstalled binaries.
- 4. Type `make install' to install the programs and any data files and
+ 4. Type 'make install' to install the programs and any data files and
documentation. When installing into a prefix owned by root, it is
recommended that the package be configured and built as a regular
- user, and only the `make install' phase executed with root
+ user, and only the 'make install' phase executed with root
privileges.
- 5. Optionally, type `make installcheck' to repeat any self-tests, but
+ 5. Optionally, type 'make installcheck' to repeat any self-tests, but
this time using the binaries in their final installed location.
This target does not install anything. Running this target as a
- regular user, particularly if the prior `make install' required
+ regular user, particularly if the prior 'make install' required
root privileges, verifies that the installation completed
correctly.
6. You can remove the program binaries and object files from the
- source code directory by typing `make clean'. To also remove the
- files that `configure' created (so you can compile the package for
- a different kind of computer), type `make distclean'. There is
- also a `make maintainer-clean' target, but that is intended mainly
+ source code directory by typing 'make clean'. To also remove the
+ files that 'configure' created (so you can compile the package for
+ a different kind of computer), type 'make distclean'. There is
+ also a 'make maintainer-clean' target, but that is intended mainly
for the package's developers. If you use it, you may have to get
all sorts of other programs in order to regenerate files that came
with the distribution.
- 7. Often, you can also type `make uninstall' to remove the installed
+ 7. Often, you can also type 'make uninstall' to remove the installed
files again. In practice, not all packages have tested that
uninstallation works correctly, even though it is required by the
GNU Coding Standards.
- 8. Some packages, particularly those that use Automake, provide `make
+ 8. Some packages, particularly those that use Automake, provide 'make
distcheck', which can by used by developers to test that all other
- targets like `make install' and `make uninstall' work correctly.
+ targets like 'make install' and 'make uninstall' work correctly.
This target is generally not run by end users.
Compilers and Options
=====================
Some systems require unusual options for compilation or linking that
-the `configure' script does not know about. Run `./configure --help'
+the 'configure' script does not know about. Run './configure --help'
for details on some of the pertinent environment variables.
- You can give `configure' initial values for configuration parameters
-by setting variables in the command line or in the environment. Here
-is an example:
+ You can give 'configure' initial values for configuration parameters
+by setting variables in the command line or in the environment. Here is
+an example:
./configure CC=c99 CFLAGS=-g LIBS=-lposix
@@ -113,21 +112,21 @@ Compiling For Multiple Architectures
You can compile the package for more than one kind of computer at the
same time, by placing the object files for each architecture in their
-own directory. To do this, you can use GNU `make'. `cd' to the
+own directory. To do this, you can use GNU 'make'. 'cd' to the
directory where you want the object files and executables to go and run
-the `configure' script. `configure' automatically checks for the
-source code in the directory that `configure' is in and in `..'. This
-is known as a "VPATH" build.
+the 'configure' script. 'configure' automatically checks for the source
+code in the directory that 'configure' is in and in '..'. This is known
+as a "VPATH" build.
- With a non-GNU `make', it is safer to compile the package for one
+ With a non-GNU 'make', it is safer to compile the package for one
architecture at a time in the source code directory. After you have
-installed the package for one architecture, use `make distclean' before
+installed the package for one architecture, use 'make distclean' before
reconfiguring for another architecture.
On MacOS X 10.5 and later systems, you can create libraries and
executables that work on multiple system types--known as "fat" or
-"universal" binaries--by specifying multiple `-arch' options to the
-compiler but only a single `-arch' option to the preprocessor. Like
+"universal" binaries--by specifying multiple '-arch' options to the
+compiler but only a single '-arch' option to the preprocessor. Like
this:
./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
@@ -136,100 +135,104 @@ this:
This is not guaranteed to produce working output in all cases, you
may have to build one architecture at a time and combine the results
-using the `lipo' tool if you have problems.
+using the 'lipo' tool if you have problems.
Installation Names
==================
- By default, `make install' installs the package's commands under
-`/usr/local/bin', include files under `/usr/local/include', etc. You
-can specify an installation prefix other than `/usr/local' by giving
-`configure' the option `--prefix=PREFIX', where PREFIX must be an
+ By default, 'make install' installs the package's commands under
+'/usr/local/bin', include files under '/usr/local/include', etc. You
+can specify an installation prefix other than '/usr/local' by giving
+'configure' the option '--prefix=PREFIX', where PREFIX must be an
absolute file name.
You can specify separate installation prefixes for
architecture-specific files and architecture-independent files. If you
-pass the option `--exec-prefix=PREFIX' to `configure', the package uses
+pass the option '--exec-prefix=PREFIX' to 'configure', the package uses
PREFIX as the prefix for installing programs and libraries.
Documentation and other data files still use the regular prefix.
In addition, if you use an unusual directory layout you can give
-options like `--bindir=DIR' to specify different values for particular
-kinds of files. Run `configure --help' for a list of the directories
-you can set and what kinds of files go in them. In general, the
-default for these options is expressed in terms of `${prefix}', so that
-specifying just `--prefix' will affect all of the other directory
+options like '--bindir=DIR' to specify different values for particular
+kinds of files. Run 'configure --help' for a list of the directories
+you can set and what kinds of files go in them. In general, the default
+for these options is expressed in terms of '${prefix}', so that
+specifying just '--prefix' will affect all of the other directory
specifications that were not explicitly provided.
The most portable way to affect installation locations is to pass the
-correct locations to `configure'; however, many packages provide one or
+correct locations to 'configure'; however, many packages provide one or
both of the following shortcuts of passing variable assignments to the
-`make install' command line to change installation locations without
+'make install' command line to change installation locations without
having to reconfigure or recompile.
The first method involves providing an override variable for each
-affected directory. For example, `make install
+affected directory. For example, 'make install
prefix=/alternate/directory' will choose an alternate location for all
directory configuration variables that were expressed in terms of
-`${prefix}'. Any directories that were specified during `configure',
-but not in terms of `${prefix}', must each be overridden at install
-time for the entire installation to be relocated. The approach of
-makefile variable overrides for each directory variable is required by
-the GNU Coding Standards, and ideally causes no recompilation.
-However, some platforms have known limitations with the semantics of
-shared libraries that end up requiring recompilation when using this
-method, particularly noticeable in packages that use GNU Libtool.
-
- The second method involves providing the `DESTDIR' variable. For
-example, `make install DESTDIR=/alternate/directory' will prepend
-`/alternate/directory' before all installation names. The approach of
-`DESTDIR' overrides is not required by the GNU Coding Standards, and
+'${prefix}'. Any directories that were specified during 'configure',
+but not in terms of '${prefix}', must each be overridden at install time
+for the entire installation to be relocated. The approach of makefile
+variable overrides for each directory variable is required by the GNU
+Coding Standards, and ideally causes no recompilation. However, some
+platforms have known limitations with the semantics of shared libraries
+that end up requiring recompilation when using this method, particularly
+noticeable in packages that use GNU Libtool.
+
+ The second method involves providing the 'DESTDIR' variable. For
+example, 'make install DESTDIR=/alternate/directory' will prepend
+'/alternate/directory' before all installation names. The approach of
+'DESTDIR' overrides is not required by the GNU Coding Standards, and
does not work on platforms that have drive letters. On the other hand,
it does better at avoiding recompilation issues, and works well even
-when some directory options were not specified in terms of `${prefix}'
-at `configure' time.
+when some directory options were not specified in terms of '${prefix}'
+at 'configure' time.
Optional Features
=================
If the package supports it, you can cause programs to be installed
-with an extra prefix or suffix on their names by giving `configure' the
-option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
-
- Some packages pay attention to `--enable-FEATURE' options to
-`configure', where FEATURE indicates an optional part of the package.
-They may also pay attention to `--with-PACKAGE' options, where PACKAGE
-is something like `gnu-as' or `x' (for the X Window System). The
-`README' should mention any `--enable-' and `--with-' options that the
+with an extra prefix or suffix on their names by giving 'configure' the
+option '--program-prefix=PREFIX' or '--program-suffix=SUFFIX'.
+
+ Some packages pay attention to '--enable-FEATURE' options to
+'configure', where FEATURE indicates an optional part of the package.
+They may also pay attention to '--with-PACKAGE' options, where PACKAGE
+is something like 'gnu-as' or 'x' (for the X Window System). The
+'README' should mention any '--enable-' and '--with-' options that the
package recognizes.
- For packages that use the X Window System, `configure' can usually
+ For packages that use the X Window System, 'configure' can usually
find the X include and library files automatically, but if it doesn't,
-you can use the `configure' options `--x-includes=DIR' and
-`--x-libraries=DIR' to specify their locations.
+you can use the 'configure' options '--x-includes=DIR' and
+'--x-libraries=DIR' to specify their locations.
Some packages offer the ability to configure how verbose the
-execution of `make' will be. For these packages, running `./configure
+execution of 'make' will be. For these packages, running './configure
--enable-silent-rules' sets the default to minimal output, which can be
-overridden with `make V=1'; while running `./configure
+overridden with 'make V=1'; while running './configure
--disable-silent-rules' sets the default to verbose, which can be
-overridden with `make V=0'.
+overridden with 'make V=0'.
Particular systems
==================
- On HP-UX, the default C compiler is not ANSI C compatible. If GNU
-CC is not installed, it is recommended to use the following options in
+ On HP-UX, the default C compiler is not ANSI C compatible. If GNU CC
+is not installed, it is recommended to use the following options in
order to use an ANSI C compiler:
./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
and if that doesn't work, install pre-built binaries of GCC for HP-UX.
+ HP-UX 'make' updates targets which have the same time stamps as their
+prerequisites, which makes it generally unusable when shipped generated
+files such as 'configure' are involved. Use GNU 'make' instead.
+
On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
-parse its `<wchar.h>' header file. The option `-nodtk' can be used as
-a workaround. If GNU CC is not installed, it is therefore recommended
-to try
+parse its '<wchar.h>' header file. The option '-nodtk' can be used as a
+workaround. If GNU CC is not installed, it is therefore recommended to
+try
./configure CC="cc"
@@ -237,26 +240,26 @@ and if that doesn't work, try
./configure CC="cc -nodtk"
- On Solaris, don't put `/usr/ucb' early in your `PATH'. This
+ On Solaris, don't put '/usr/ucb' early in your 'PATH'. This
directory contains several dysfunctional programs; working variants of
-these programs are available in `/usr/bin'. So, if you need `/usr/ucb'
-in your `PATH', put it _after_ `/usr/bin'.
+these programs are available in '/usr/bin'. So, if you need '/usr/ucb'
+in your 'PATH', put it _after_ '/usr/bin'.
- On Haiku, software installed for all users goes in `/boot/common',
-not `/usr/local'. It is recommended to use the following options:
+ On Haiku, software installed for all users goes in '/boot/common',
+not '/usr/local'. It is recommended to use the following options:
./configure --prefix=/boot/common
Specifying the System Type
==========================
- There may be some features `configure' cannot figure out
+ There may be some features 'configure' cannot figure out
automatically, but needs to determine by the type of machine the package
will run on. Usually, assuming the package is built to be run on the
-_same_ architectures, `configure' can figure that out, but if it prints
+_same_ architectures, 'configure' can figure that out, but if it prints
a message saying it cannot guess the machine type, give it the
-`--build=TYPE' option. TYPE can either be a short name for the system
-type, such as `sun4', or a canonical name which has the form:
+'--build=TYPE' option. TYPE can either be a short name for the system
+type, such as 'sun4', or a canonical name which has the form:
CPU-COMPANY-SYSTEM
@@ -265,101 +268,101 @@ where SYSTEM can have one of these forms:
OS
KERNEL-OS
- See the file `config.sub' for the possible values of each field. If
-`config.sub' isn't included in this package, then this package doesn't
+ See the file 'config.sub' for the possible values of each field. If
+'config.sub' isn't included in this package, then this package doesn't
need to know the machine type.
If you are _building_ compiler tools for cross-compiling, you should
-use the option `--target=TYPE' to select the type of system they will
+use the option '--target=TYPE' to select the type of system they will
produce code for.
If you want to _use_ a cross compiler, that generates code for a
platform different from the build platform, you should specify the
"host" platform (i.e., that on which the generated programs will
-eventually be run) with `--host=TYPE'.
+eventually be run) with '--host=TYPE'.
Sharing Defaults
================
- If you want to set default values for `configure' scripts to share,
-you can create a site shell script called `config.site' that gives
-default values for variables like `CC', `cache_file', and `prefix'.
-`configure' looks for `PREFIX/share/config.site' if it exists, then
-`PREFIX/etc/config.site' if it exists. Or, you can set the
-`CONFIG_SITE' environment variable to the location of the site script.
-A warning: not all `configure' scripts look for a site script.
+ If you want to set default values for 'configure' scripts to share,
+you can create a site shell script called 'config.site' that gives
+default values for variables like 'CC', 'cache_file', and 'prefix'.
+'configure' looks for 'PREFIX/share/config.site' if it exists, then
+'PREFIX/etc/config.site' if it exists. Or, you can set the
+'CONFIG_SITE' environment variable to the location of the site script.
+A warning: not all 'configure' scripts look for a site script.
Defining Variables
==================
Variables not defined in a site shell script can be set in the
-environment passed to `configure'. However, some packages may run
+environment passed to 'configure'. However, some packages may run
configure again during the build, and the customized values of these
variables may be lost. In order to avoid this problem, you should set
-them in the `configure' command line, using `VAR=value'. For example:
+them in the 'configure' command line, using 'VAR=value'. For example:
./configure CC=/usr/local2/bin/gcc
-causes the specified `gcc' to be used as the C compiler (unless it is
+causes the specified 'gcc' to be used as the C compiler (unless it is
overridden in the site shell script).
-Unfortunately, this technique does not work for `CONFIG_SHELL' due to
-an Autoconf bug. Until the bug is fixed you can use this workaround:
+Unfortunately, this technique does not work for 'CONFIG_SHELL' due to an
+Autoconf limitation. Until the limitation is lifted, you can use this
+workaround:
- CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
+ CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash
-`configure' Invocation
+'configure' Invocation
======================
- `configure' recognizes the following options to control how it
+ 'configure' recognizes the following options to control how it
operates.
-`--help'
-`-h'
- Print a summary of all of the options to `configure', and exit.
+'--help'
+'-h'
+ Print a summary of all of the options to 'configure', and exit.
-`--help=short'
-`--help=recursive'
+'--help=short'
+'--help=recursive'
Print a summary of the options unique to this package's
- `configure', and exit. The `short' variant lists options used
- only in the top level, while the `recursive' variant lists options
- also present in any nested packages.
+ 'configure', and exit. The 'short' variant lists options used only
+ in the top level, while the 'recursive' variant lists options also
+ present in any nested packages.
-`--version'
-`-V'
- Print the version of Autoconf used to generate the `configure'
+'--version'
+'-V'
+ Print the version of Autoconf used to generate the 'configure'
script, and exit.
-`--cache-file=FILE'
+'--cache-file=FILE'
Enable the cache: use and save the results of the tests in FILE,
- traditionally `config.cache'. FILE defaults to `/dev/null' to
+ traditionally 'config.cache'. FILE defaults to '/dev/null' to
disable caching.
-`--config-cache'
-`-C'
- Alias for `--cache-file=config.cache'.
+'--config-cache'
+'-C'
+ Alias for '--cache-file=config.cache'.
-`--quiet'
-`--silent'
-`-q'
+'--quiet'
+'--silent'
+'-q'
Do not print messages saying which checks are being made. To
- suppress all normal output, redirect it to `/dev/null' (any error
+ suppress all normal output, redirect it to '/dev/null' (any error
messages will still be shown).
-`--srcdir=DIR'
+'--srcdir=DIR'
Look for the package's source code in directory DIR. Usually
- `configure' can determine that directory automatically.
+ 'configure' can determine that directory automatically.
-`--prefix=DIR'
- Use DIR as the installation prefix. *note Installation Names::
- for more details, including other options available for fine-tuning
- the installation locations.
+'--prefix=DIR'
+ Use DIR as the installation prefix. *note Installation Names:: for
+ more details, including other options available for fine-tuning the
+ installation locations.
-`--no-create'
-`-n'
+'--no-create'
+'-n'
Run the configure checks, but stop before creating any output
files.
-`configure' also accepts some other, not widely useful, options. Run
-`configure --help' for more details.
-
+'configure' also accepts some other, not widely useful, options. Run
+'configure --help' for more details.
diff --git a/contrib/libs/xz/NEWS b/contrib/libs/xz/NEWS
index f2a1ad3b51..d3f7d60234 100644
--- a/contrib/libs/xz/NEWS
+++ b/contrib/libs/xz/NEWS
@@ -2,6 +2,111 @@
XZ Utils Release Notes
======================
+5.2.5 (2020-03-17)
+
+ * liblzma:
+
+ - Fixed several C99/C11 conformance bugs. Now the code is clean
+ under gcc/clang -fsanitize=undefined. Some of these changes
+ might have a negative effect on performance with old GCC
+ versions or compilers other than GCC and Clang. The configure
+ option --enable-unsafe-type-punning can be used to (mostly)
+ restore the old behavior but it shouldn't normally be used.
+
+ - Improved API documentation of lzma_properties_decode().
+
+ - Added a very minor encoder speed optimization.
+
+ * xz:
+
+ - Fixed a crash in "xz -dcfv not_an_xz_file". All four options
+ were required to trigger it. The crash occurred in the
+ progress indicator code when xz was in passthru mode where
+ xz works like "cat".
+
+ - Fixed an integer overflow with 32-bit off_t. It could happen
+ when decompressing a file that has a long run of zero bytes
+ which xz would try to write as a sparse file. Since the build
+ system enables large file support by default, off_t is
+ normally 64-bit even on 32-bit systems.
+
+ - Fixes for --flush-timeout:
+ * Fix semi-busy-waiting.
+ * Avoid unneeded flushes when no new input has arrived
+ since the previous flush was completed.
+
+ - Added a special case for 32-bit xz: If --memlimit-compress is
+ used to specify a limit that exceeds 4020 MiB, the limit will
+ be set to 4020 MiB. The values "0" and "max" aren't affected
+ by this and neither is decompression. This hack can be
+ helpful when a 32-bit xz has access to 4 GiB address space
+ but the specified memlimit exceeds 4 GiB. This can happen
+ e.g. with some scripts.
+
+ - Capsicum sandbox is now enabled by default where available
+ (FreeBSD >= 10). The sandbox debug messages (xz -vv) were
+ removed since they seemed to be more annoying than useful.
+
+ - DOS build now requires DJGPP 2.05 instead of 2.04beta.
+ A workaround for a locale problem with DJGPP 2.05 was added.
+
+ * xzgrep and other scripts:
+
+ - Added a configure option --enable-path-for-scripts=PREFIX.
+ It is disabled by default except on Solaris where the default
+ is /usr/xpg4/bin. See INSTALL for details.
+
+ - Added a workaround for a POSIX shell detection problem on
+ Solaris.
+
+ * Build systems:
+
+ - Added preliminary build instructions for z/OS. See INSTALL
+ section 1.2.9.
+
+ - Experimental CMake support was added. It should work to build
+ static liblzma on a few operating systems. It may or may not
+ work to build shared liblzma. On some platforms it can build
+ xz and xzdec too but those are only for testing. See the
+ comment in the beginning of CMakeLists.txt for details.
+
+ - Visual Studio project files were updated.
+ WindowsTargetPlatformVersion was removed from VS2017 files
+ and set to "10.0" in the added VS2019 files. In the future
+ the VS project files will be removed when CMake support is
+ good enough.
+
+ - New #defines in config.h: HAVE___BUILTIN_ASSUME_ALIGNED,
+ HAVE___BUILTIN_BSWAPXX, and TUKLIB_USE_UNSAFE_TYPE_PUNNING.
+
+ - autogen.sh has a new optional dependency on po4a and a new
+ option --no-po4a to skip that step. This matters only if one
+ wants to remake the build files. po4a is used to update the
+ translated man pages but as long as the man pages haven't
+ been modified, there's nothing to update and one can use
+ --no-po4a to avoid the dependency on po4a.
+
+ * Translations:
+
+ - XZ Utils translations are now handled by the Translation
+ Project: https://translationproject.org/domain/xz.html
+
+ - All man pages are now included in German too.
+
+ - New xz translations: Brazilian Portuguese, Finnish,
+ Hungarian, Chinese (simplified), Chinese (traditional),
+ and Danish (partial translation)
+
+ - Updated xz translations: French, German, Italian, and Polish
+
+ - Unfortunately a few new xz translations weren't included due
+ to technical problems like too long lines in --help output or
+ misaligned column headings in tables. In the future, many of
+ these strings will be split and e.g. the table column
+ alignment will be handled in software. This should make the
+ strings easier to translate.
+
+
5.2.4 (2018-04-29)
* liblzma:
@@ -21,7 +126,7 @@ XZ Utils Release Notes
* xz:
- Fix "xz --list --robot missing_or_bad_file.xz" which would
- try to print an unitialized string and thus produce garbage
+ try to print an uninitialized string and thus produce garbage
output. Since the exit status is non-zero, most uses of such
a command won't try to interpret the garbage output.
diff --git a/contrib/libs/xz/README b/contrib/libs/xz/README
index 720a1a5802..3f0c38dca6 100644
--- a/contrib/libs/xz/README
+++ b/contrib/libs/xz/README
@@ -9,7 +9,7 @@ XZ Utils
1.3. Documentation for liblzma
2. Version numbering
3. Reporting bugs
- 4. Translating the xz tool
+ 4. Translations
5. Other implementations of the .xz format
6. Contact information
@@ -55,9 +55,11 @@ XZ Utils
Similarly, it is possible that some day there is a filter that will
compress better than LZMA2.
- XZ Utils doesn't support multithreaded compression or decompression
- yet. It has been planned though and taken into account when designing
- the .xz file format.
+ XZ Utils supports multithreaded compression. XZ Utils doesn't support
+ multithreaded decompression yet. It has been planned though and taken
+ into account when designing the .xz file format. In the future, files
+ that were created in threaded mode can be decompressed in threaded
+ mode too.
1. Documentation
@@ -103,14 +105,13 @@ XZ Utils
and data type as Doxygen tags. These docs should be quite OK as
a quick reference.
- I have planned to write a bunch of very well documented example
- programs, which (due to comments) should work as a tutorial to
- various features of liblzma. No such example programs have been
- written yet.
+ There are a few example/tutorial programs that should help in
+ getting started with liblzma. In the source package the examples
+ are in "doc/examples" and in binary packages they may be under
+ "examples" in the same directory as this README.
- For now, if you have never used liblzma, libbzip2, or zlib, I
- recommend learning the *basics* of the zlib API. Once you know that,
- it should be easier to learn liblzma.
+ Since the liblzma API has similarities to the zlib API, some people
+ may find it useful to read the zlib docs and tutorial too:
http://zlib.net/manual.html
http://zlib.net/zlib_how.html
@@ -192,91 +193,18 @@ XZ Utils
system.
-4. Translating the xz tool
---------------------------
-
- The messages from the xz tool have been translated into a few
- languages. Before starting to translate into a new language, ask
- the author whether someone else hasn't already started working on it.
-
- Test your translation. Testing includes comparing the translated
- output to the original English version by running the same commands
- in both your target locale and with LC_ALL=C. Ask someone to
- proof-read and test the translation.
-
- Testing can be done e.g. by installing xz into a temporary directory:
-
- ./configure --disable-shared --prefix=/tmp/xz-test
- # <Edit the .po file in the po directory.>
- make -C po update-po
- make install
- bash debug/translation.bash | less
- bash debug/translation.bash | less -S # For --list outputs
-
- Repeat the above as needed (no need to re-run configure though).
-
- Note especially the following:
-
- - 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. If they suggest testing the
- translation with some type of command, do it. If testing needs
- input files, use e.g. tests/files/good-*.xz.
-
- - When updating the translation, read the fuzzy (modified) strings
- carefully, and don't mark them as updated before you actually
- have updated them. Reading through the unchanged messages can be
- good too; sometimes you may find a better wording for them.
-
- - 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.
-
- In short, take your time and pay attention to the details. Making
- a good translation is not a quick and trivial thing to do. The
- translated xz should look as polished as the English version.
+4. Translations
+---------------
+
+ The xz command line tool and all man pages can be translated.
+ The translations are handled via the Translation Project. If you
+ wish to help translating xz, please join the Translation Project:
+
+ https://translationproject.org/html/translators.html
+
+ Several strings will change in a future version of xz so if you
+ wish to start a new translation, look at the code in the xz git
+ repostiory instead of a 5.2.x release.
5. Other implementations of the .xz format
diff --git a/contrib/libs/xz/THANKS b/contrib/libs/xz/THANKS
index 30fbfb6f01..4301f205c3 100644
--- a/contrib/libs/xz/THANKS
+++ b/contrib/libs/xz/THANKS
@@ -23,6 +23,7 @@ has been important. :-) In alphabetical order:
- Milo Casagrande
- Marek Černocký
- Tomer Chachamu
+ - Antoine CÅ“ur
- Gabi Davar
- Chris Donawa
- Andrew Dudman
@@ -45,6 +46,7 @@ has been important. :-) In alphabetical order:
- Peter Ivanov
- Jouk Jansen
- Jun I Jin
+ - Kiyoshi Kanazawa
- Per Øyvind Karlsen
- Thomas Klausner
- Richard Koch
@@ -58,10 +60,13 @@ has been important. :-) In alphabetical order:
- Andraž 'ruskie' Levstik
- Cary Lewis
- Wim Lewis
+ - Xin Li
- Eric Lindblad
- Lorenzo De Liso
- Bela Lubkin
- Gregory Margo
+ - Julien Marrec
+ - Martin Matuška
- Jim Meyering
- Arkadiusz Miskiewicz
- Conley Moorhous
@@ -72,6 +77,7 @@ has been important. :-) In alphabetical order:
- Jonathan Nieder
- Andre Noll
- Peter O'Gorman
+ - Filip Palian
- Peter Pallinger
- Rui Paulo
- Igor Pavlov
@@ -92,10 +98,12 @@ has been important. :-) In alphabetical order:
- Alexandre Sauvé
- Benno Schulenberg
- Andreas Schwab
+ - Bhargava Shastry
- Dan Shechter
- Stuart Shelton
- Sebastian Andrzej Siewior
- Brad Smith
+ - Bruce Stark
- Pippijn van Steenhoven
- Jonathan Stott
- Dan Stromberg
@@ -103,9 +111,11 @@ has been important. :-) In alphabetical order:
- Paul Townsend
- Mohammed Adnène Trojette
- Alexey Tourbin
+ - Loganaden Velvindron
- Patrick J. Volkerding
- Martin Väth
- Adam Walling
+ - Jeffrey Walton
- Christian Weisgerber
- Bert Wesarg
- Fredrik Wikstrom
diff --git a/contrib/libs/xz/common/sysdefs.h b/contrib/libs/xz/common/sysdefs.h
index e056ca4ac9..df7ecf4002 100644
--- a/contrib/libs/xz/common/sysdefs.h
+++ b/contrib/libs/xz/common/sysdefs.h
@@ -44,9 +44,7 @@
// Some pre-C99 systems have SIZE_MAX in limits.h instead of stdint.h. The
// limits are also used to figure out some macros missing from pre-C99 systems.
-#ifdef HAVE_LIMITS_H
-# include <limits.h>
-#endif
+#include <limits.h>
// Be more compatible with systems that have non-conforming inttypes.h.
// We assume that int is 32-bit and that long is either 32-bit or 64-bit.
@@ -153,9 +151,7 @@ typedef unsigned char _Bool;
// string.h should be enough but let's include strings.h and memory.h too if
// they exists, since that shouldn't do any harm, but may improve portability.
-#ifdef HAVE_STRING_H
-# include <string.h>
-#endif
+#include <string.h>
#ifdef HAVE_STRINGS_H
# include <strings.h>
@@ -193,7 +189,8 @@ typedef unsigned char _Bool;
# define ARRAY_SIZE(array) (sizeof(array) / sizeof((array)[0]))
#endif
-#if (__GNUC__ == 4 && __GNUC_MINOR__ >= 3) || __GNUC__ > 4
+#if defined(__GNUC__) \
+ && ((__GNUC__ == 4 && __GNUC_MINOR__ >= 3) || __GNUC__ > 4)
# define lzma_attr_alloc_size(x) __attribute__((__alloc_size__(x)))
#else
# define lzma_attr_alloc_size(x)
diff --git a/contrib/libs/xz/common/tuklib_cpucores.c b/contrib/libs/xz/common/tuklib_cpucores.c
index c16e188d53..cc968dd25e 100644
--- a/contrib/libs/xz/common/tuklib_cpucores.c
+++ b/contrib/libs/xz/common/tuklib_cpucores.c
@@ -56,14 +56,14 @@ tuklib_cpucores(void)
#elif defined(TUKLIB_CPUCORES_SCHED_GETAFFINITY)
cpu_set_t cpu_mask;
if (sched_getaffinity(0, sizeof(cpu_mask), &cpu_mask) == 0)
- ret = CPU_COUNT(&cpu_mask);
+ ret = (uint32_t)CPU_COUNT(&cpu_mask);
#elif defined(TUKLIB_CPUCORES_CPUSET)
cpuset_t set;
if (cpuset_getaffinity(CPU_LEVEL_WHICH, CPU_WHICH_PID, -1,
sizeof(set), &set) == 0) {
# ifdef CPU_COUNT
- ret = CPU_COUNT(&set);
+ ret = (uint32_t)CPU_COUNT(&set);
# else
for (unsigned i = 0; i < CPU_SETSIZE; ++i)
if (CPU_ISSET(i, &set))
@@ -77,7 +77,7 @@ tuklib_cpucores(void)
size_t cpus_size = sizeof(cpus);
if (sysctl(name, 2, &cpus, &cpus_size, NULL, 0) != -1
&& cpus_size == sizeof(cpus) && cpus > 0)
- ret = cpus;
+ ret = (uint32_t)cpus;
#elif defined(TUKLIB_CPUCORES_SYSCONF)
# ifdef _SC_NPROCESSORS_ONLN
@@ -88,12 +88,12 @@ tuklib_cpucores(void)
const long cpus = sysconf(_SC_NPROC_ONLN);
# endif
if (cpus > 0)
- ret = cpus;
+ ret = (uint32_t)cpus;
#elif defined(TUKLIB_CPUCORES_PSTAT_GETDYNAMIC)
struct pst_dynamic pst;
if (pstat_getdynamic(&pst, sizeof(pst), 1, 0) != -1)
- ret = pst.psd_proc_cnt;
+ ret = (uint32_t)pst.psd_proc_cnt;
#endif
return ret;
diff --git a/contrib/libs/xz/common/tuklib_integer.h b/contrib/libs/xz/common/tuklib_integer.h
index b1e84d5c1d..6f44a7a0ac 100644
--- a/contrib/libs/xz/common/tuklib_integer.h
+++ b/contrib/libs/xz/common/tuklib_integer.h
@@ -6,22 +6,26 @@
/// This file provides macros or functions to do some basic integer and bit
/// operations.
///
-/// Endianness related integer operations (XX = 16, 32, or 64; Y = b or l):
-/// - Byte swapping: bswapXX(num)
-/// - Byte order conversions to/from native: convXXYe(num)
-/// - Aligned reads: readXXYe(ptr)
-/// - Aligned writes: writeXXYe(ptr, num)
-/// - Unaligned reads (16/32-bit only): unaligned_readXXYe(ptr)
-/// - Unaligned writes (16/32-bit only): unaligned_writeXXYe(ptr, num)
+/// Native endian inline functions (XX = 16, 32, or 64):
+/// - Unaligned native endian reads: readXXne(ptr)
+/// - Unaligned native endian writes: writeXXne(ptr, num)
+/// - Aligned native endian reads: aligned_readXXne(ptr)
+/// - Aligned native endian writes: aligned_writeXXne(ptr, num)
///
-/// Since they can macros, the arguments should have no side effects since
-/// they may be evaluated more than once.
+/// Endianness-converting integer operations (these can be macros!)
+/// (XX = 16, 32, or 64; Y = b or l):
+/// - Byte swapping: bswapXX(num)
+/// - Byte order conversions to/from native (byteswaps if Y isn't
+/// the native endianness): convXXYe(num)
+/// - Unaligned reads (16/32-bit only): readXXYe(ptr)
+/// - Unaligned writes (16/32-bit only): writeXXYe(ptr, num)
+/// - Aligned reads: aligned_readXXYe(ptr)
+/// - Aligned writes: aligned_writeXXYe(ptr, num)
///
-/// \todo PowerPC and possibly some other architectures support
-/// byte swapping load and store instructions. This file
-/// doesn't take advantage of those instructions.
+/// Since the above can macros, the arguments should have no side effects
+/// because they may be evaluated more than once.
///
-/// Bit scan operations for non-zero 32-bit integers:
+/// Bit scan operations for non-zero 32-bit integers (inline functions):
/// - Bit scan reverse (find highest non-zero bit): bsr32(num)
/// - Count leading zeros: clz32(num)
/// - Count trailing zeros: ctz32(num)
@@ -42,13 +46,26 @@
#define TUKLIB_INTEGER_H
#include "tuklib_common.h"
+#include <string.h>
+
+// Newer Intel C compilers require immintrin.h for _bit_scan_reverse()
+// and such functions.
+#if defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 1500)
+# include <immintrin.h>
+#endif
-////////////////////////////////////////
-// Operating system specific features //
-////////////////////////////////////////
+///////////////////
+// Byte swapping //
+///////////////////
-#if defined(HAVE_BYTESWAP_H)
+#if defined(HAVE___BUILTIN_BSWAPXX)
+ // GCC >= 4.8 and Clang
+# define bswap16(n) __builtin_bswap16(n)
+# define bswap32(n) __builtin_bswap32(n)
+# define bswap64(n) __builtin_bswap64(n)
+
+#elif defined(HAVE_BYTESWAP_H)
// glibc, uClibc, dietlibc
# include <byteswap.h>
# ifdef HAVE_BSWAP_16
@@ -97,45 +114,33 @@
# endif
#endif
-
-////////////////////////////////
-// Compiler-specific features //
-////////////////////////////////
-
-// Newer Intel C compilers require immintrin.h for _bit_scan_reverse()
-// and such functions.
-#if defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 1500)
-# include <immintrin.h>
-#endif
-
-
-///////////////////
-// Byte swapping //
-///////////////////
-
#ifndef bswap16
-# define bswap16(num) \
- (((uint16_t)(num) << 8) | ((uint16_t)(num) >> 8))
+# define bswap16(n) (uint16_t)( \
+ (((n) & 0x00FFU) << 8) \
+ | (((n) & 0xFF00U) >> 8) \
+ )
#endif
#ifndef bswap32
-# define bswap32(num) \
- ( (((uint32_t)(num) << 24) ) \
- | (((uint32_t)(num) << 8) & UINT32_C(0x00FF0000)) \
- | (((uint32_t)(num) >> 8) & UINT32_C(0x0000FF00)) \
- | (((uint32_t)(num) >> 24) ) )
+# define bswap32(n) (uint32_t)( \
+ (((n) & UINT32_C(0x000000FF)) << 24) \
+ | (((n) & UINT32_C(0x0000FF00)) << 8) \
+ | (((n) & UINT32_C(0x00FF0000)) >> 8) \
+ | (((n) & UINT32_C(0xFF000000)) >> 24) \
+ )
#endif
#ifndef bswap64
-# define bswap64(num) \
- ( (((uint64_t)(num) << 56) ) \
- | (((uint64_t)(num) << 40) & UINT64_C(0x00FF000000000000)) \
- | (((uint64_t)(num) << 24) & UINT64_C(0x0000FF0000000000)) \
- | (((uint64_t)(num) << 8) & UINT64_C(0x000000FF00000000)) \
- | (((uint64_t)(num) >> 8) & UINT64_C(0x00000000FF000000)) \
- | (((uint64_t)(num) >> 24) & UINT64_C(0x0000000000FF0000)) \
- | (((uint64_t)(num) >> 40) & UINT64_C(0x000000000000FF00)) \
- | (((uint64_t)(num) >> 56) ) )
+# define bswap64(n) (uint64_t)( \
+ (((n) & UINT64_C(0x00000000000000FF)) << 56) \
+ | (((n) & UINT64_C(0x000000000000FF00)) << 40) \
+ | (((n) & UINT64_C(0x0000000000FF0000)) << 24) \
+ | (((n) & UINT64_C(0x00000000FF000000)) << 8) \
+ | (((n) & UINT64_C(0x000000FF00000000)) >> 8) \
+ | (((n) & UINT64_C(0x0000FF0000000000)) >> 24) \
+ | (((n) & UINT64_C(0x00FF000000000000)) >> 40) \
+ | (((n) & UINT64_C(0xFF00000000000000)) >> 56) \
+ )
#endif
// Define conversion macros using the basic byte swapping macros.
@@ -180,76 +185,76 @@
#endif
-//////////////////////////////
-// Aligned reads and writes //
-//////////////////////////////
-
-static inline uint16_t
-read16be(const uint8_t *buf)
-{
- uint16_t num = *(const uint16_t *)buf;
- return conv16be(num);
-}
+////////////////////////////////
+// Unaligned reads and writes //
+////////////////////////////////
+// The traditional way of casting e.g. *(const uint16_t *)uint8_pointer
+// is bad even if the uint8_pointer is properly aligned because this kind
+// of casts break strict aliasing rules and result in undefined behavior.
+// With unaligned pointers it's even worse: compilers may emit vector
+// instructions that require aligned pointers even if non-vector
+// instructions work with unaligned pointers.
+//
+// Using memcpy() is the standard compliant way to do unaligned access.
+// Many modern compilers inline it so there is no function call overhead.
+// For those compilers that don't handle the memcpy() method well, the
+// old casting method (that violates strict aliasing) can be requested at
+// build time. A third method, casting to a packed struct, would also be
+// an option but isn't provided to keep things simpler (it's already a mess).
+// Hopefully this is flexible enough in practice.
static inline uint16_t
-read16le(const uint8_t *buf)
+read16ne(const uint8_t *buf)
{
- uint16_t num = *(const uint16_t *)buf;
- return conv16le(num);
-}
-
-
-static inline uint32_t
-read32be(const uint8_t *buf)
-{
- uint32_t num = *(const uint32_t *)buf;
- return conv32be(num);
+#if defined(TUKLIB_FAST_UNALIGNED_ACCESS) \
+ && defined(TUKLIB_USE_UNSAFE_TYPE_PUNNING)
+ return *(const uint16_t *)buf;
+#else
+ uint16_t num;
+ memcpy(&num, buf, sizeof(num));
+ return num;
+#endif
}
static inline uint32_t
-read32le(const uint8_t *buf)
-{
- uint32_t num = *(const uint32_t *)buf;
- return conv32le(num);
-}
-
-
-static inline uint64_t
-read64be(const uint8_t *buf)
+read32ne(const uint8_t *buf)
{
- uint64_t num = *(const uint64_t *)buf;
- return conv64be(num);
+#if defined(TUKLIB_FAST_UNALIGNED_ACCESS) \
+ && defined(TUKLIB_USE_UNSAFE_TYPE_PUNNING)
+ return *(const uint32_t *)buf;
+#else
+ uint32_t num;
+ memcpy(&num, buf, sizeof(num));
+ return num;
+#endif
}
static inline uint64_t
-read64le(const uint8_t *buf)
+read64ne(const uint8_t *buf)
{
- uint64_t num = *(const uint64_t *)buf;
- return conv64le(num);
+#if defined(TUKLIB_FAST_UNALIGNED_ACCESS) \
+ && defined(TUKLIB_USE_UNSAFE_TYPE_PUNNING)
+ return *(const uint64_t *)buf;
+#else
+ uint64_t num;
+ memcpy(&num, buf, sizeof(num));
+ return num;
+#endif
}
-// NOTE: Possible byte swapping must be done in a macro to allow GCC
-// to optimize byte swapping of constants when using glibc's or *BSD's
-// byte swapping macros. The actual write is done in an inline function
-// to make type checking of the buf pointer possible similarly to readXXYe()
-// functions.
-
-#define write16be(buf, num) write16ne((buf), conv16be(num))
-#define write16le(buf, num) write16ne((buf), conv16le(num))
-#define write32be(buf, num) write32ne((buf), conv32be(num))
-#define write32le(buf, num) write32ne((buf), conv32le(num))
-#define write64be(buf, num) write64ne((buf), conv64be(num))
-#define write64le(buf, num) write64ne((buf), conv64le(num))
-
-
static inline void
write16ne(uint8_t *buf, uint16_t num)
{
+#if defined(TUKLIB_FAST_UNALIGNED_ACCESS) \
+ && defined(TUKLIB_USE_UNSAFE_TYPE_PUNNING)
*(uint16_t *)buf = num;
+#else
+ memcpy(buf, &num, sizeof(num));
+#endif
return;
}
@@ -257,7 +262,12 @@ write16ne(uint8_t *buf, uint16_t num)
static inline void
write32ne(uint8_t *buf, uint32_t num)
{
+#if defined(TUKLIB_FAST_UNALIGNED_ACCESS) \
+ && defined(TUKLIB_USE_UNSAFE_TYPE_PUNNING)
*(uint32_t *)buf = num;
+#else
+ memcpy(buf, &num, sizeof(num));
+#endif
return;
}
@@ -265,90 +275,114 @@ write32ne(uint8_t *buf, uint32_t num)
static inline void
write64ne(uint8_t *buf, uint64_t num)
{
+#if defined(TUKLIB_FAST_UNALIGNED_ACCESS) \
+ && defined(TUKLIB_USE_UNSAFE_TYPE_PUNNING)
*(uint64_t *)buf = num;
+#else
+ memcpy(buf, &num, sizeof(num));
+#endif
return;
}
-////////////////////////////////
-// Unaligned reads and writes //
-////////////////////////////////
-
-// NOTE: TUKLIB_FAST_UNALIGNED_ACCESS indicates only support for 16-bit and
-// 32-bit unaligned integer loads and stores. It's possible that 64-bit
-// unaligned access doesn't work or is slower than byte-by-byte access.
-// Since unaligned 64-bit is probably not needed as often as 16-bit or
-// 32-bit, we simply don't support 64-bit unaligned access for now.
-#ifdef TUKLIB_FAST_UNALIGNED_ACCESS
-# define unaligned_read16be read16be
-# define unaligned_read16le read16le
-# define unaligned_read32be read32be
-# define unaligned_read32le read32le
-# define unaligned_write16be write16be
-# define unaligned_write16le write16le
-# define unaligned_write32be write32be
-# define unaligned_write32le write32le
-
-#else
-
static inline uint16_t
-unaligned_read16be(const uint8_t *buf)
+read16be(const uint8_t *buf)
{
+#if defined(WORDS_BIGENDIAN) || defined(TUKLIB_FAST_UNALIGNED_ACCESS)
+ uint16_t num = read16ne(buf);
+ return conv16be(num);
+#else
uint16_t num = ((uint16_t)buf[0] << 8) | (uint16_t)buf[1];
return num;
+#endif
}
static inline uint16_t
-unaligned_read16le(const uint8_t *buf)
+read16le(const uint8_t *buf)
{
+#if !defined(WORDS_BIGENDIAN) || defined(TUKLIB_FAST_UNALIGNED_ACCESS)
+ uint16_t num = read16ne(buf);
+ return conv16le(num);
+#else
uint16_t num = ((uint16_t)buf[0]) | ((uint16_t)buf[1] << 8);
return num;
+#endif
}
static inline uint32_t
-unaligned_read32be(const uint8_t *buf)
+read32be(const uint8_t *buf)
{
+#if defined(WORDS_BIGENDIAN) || defined(TUKLIB_FAST_UNALIGNED_ACCESS)
+ uint32_t num = read32ne(buf);
+ return conv32be(num);
+#else
uint32_t num = (uint32_t)buf[0] << 24;
num |= (uint32_t)buf[1] << 16;
num |= (uint32_t)buf[2] << 8;
num |= (uint32_t)buf[3];
return num;
+#endif
}
static inline uint32_t
-unaligned_read32le(const uint8_t *buf)
+read32le(const uint8_t *buf)
{
+#if !defined(WORDS_BIGENDIAN) || defined(TUKLIB_FAST_UNALIGNED_ACCESS)
+ uint32_t num = read32ne(buf);
+ return conv32le(num);
+#else
uint32_t num = (uint32_t)buf[0];
num |= (uint32_t)buf[1] << 8;
num |= (uint32_t)buf[2] << 16;
num |= (uint32_t)buf[3] << 24;
return num;
+#endif
}
+// NOTE: Possible byte swapping must be done in a macro to allow the compiler
+// to optimize byte swapping of constants when using glibc's or *BSD's
+// byte swapping macros. The actual write is done in an inline function
+// to make type checking of the buf pointer possible.
+#if defined(WORDS_BIGENDIAN) || defined(TUKLIB_FAST_UNALIGNED_ACCESS)
+# define write16be(buf, num) write16ne(buf, conv16be(num))
+# define write32be(buf, num) write32ne(buf, conv32be(num))
+#endif
+
+#if !defined(WORDS_BIGENDIAN) || defined(TUKLIB_FAST_UNALIGNED_ACCESS)
+# define write16le(buf, num) write16ne(buf, conv16le(num))
+# define write32le(buf, num) write32ne(buf, conv32le(num))
+#endif
+
+
+#ifndef write16be
static inline void
-unaligned_write16be(uint8_t *buf, uint16_t num)
+write16be(uint8_t *buf, uint16_t num)
{
buf[0] = (uint8_t)(num >> 8);
buf[1] = (uint8_t)num;
return;
}
+#endif
+#ifndef write16le
static inline void
-unaligned_write16le(uint8_t *buf, uint16_t num)
+write16le(uint8_t *buf, uint16_t num)
{
buf[0] = (uint8_t)num;
buf[1] = (uint8_t)(num >> 8);
return;
}
+#endif
+#ifndef write32be
static inline void
-unaligned_write32be(uint8_t *buf, uint32_t num)
+write32be(uint8_t *buf, uint32_t num)
{
buf[0] = (uint8_t)(num >> 24);
buf[1] = (uint8_t)(num >> 16);
@@ -356,10 +390,12 @@ unaligned_write32be(uint8_t *buf, uint32_t num)
buf[3] = (uint8_t)num;
return;
}
+#endif
+#ifndef write32le
static inline void
-unaligned_write32le(uint8_t *buf, uint32_t num)
+write32le(uint8_t *buf, uint32_t num)
{
buf[0] = (uint8_t)num;
buf[1] = (uint8_t)(num >> 8);
@@ -367,10 +403,184 @@ unaligned_write32le(uint8_t *buf, uint32_t num)
buf[3] = (uint8_t)(num >> 24);
return;
}
+#endif
+
+
+//////////////////////////////
+// Aligned reads and writes //
+//////////////////////////////
+// Separate functions for aligned reads and writes are provided since on
+// strict-align archs aligned access is much faster than unaligned access.
+//
+// Just like in the unaligned case, memcpy() is needed to avoid
+// strict aliasing violations. However, on archs that don't support
+// unaligned access the compiler cannot know that the pointers given
+// to memcpy() are aligned which results in slow code. As of C11 there is
+// no standard way to tell the compiler that we know that the address is
+// aligned but some compilers have language extensions to do that. With
+// such language extensions the memcpy() method gives excellent results.
+//
+// What to do on a strict-align system when no known language extentensions
+// are available? Falling back to byte-by-byte access would be safe but ruin
+// optimizations that have been made specifically with aligned access in mind.
+// As a compromise, aligned reads will fall back to non-compliant type punning
+// but aligned writes will be byte-by-byte, that is, fast reads are preferred
+// over fast writes. This obviously isn't great but hopefully it's a working
+// compromise for now.
+//
+// __builtin_assume_aligned is support by GCC >= 4.7 and clang >= 3.6.
+#ifdef HAVE___BUILTIN_ASSUME_ALIGNED
+# define tuklib_memcpy_aligned(dest, src, size) \
+ memcpy(dest, __builtin_assume_aligned(src, size), size)
+#else
+# define tuklib_memcpy_aligned(dest, src, size) \
+ memcpy(dest, src, size)
+# ifndef TUKLIB_FAST_UNALIGNED_ACCESS
+# define TUKLIB_USE_UNSAFE_ALIGNED_READS 1
+# endif
#endif
+static inline uint16_t
+aligned_read16ne(const uint8_t *buf)
+{
+#if defined(TUKLIB_USE_UNSAFE_TYPE_PUNNING) \
+ || defined(TUKLIB_USE_UNSAFE_ALIGNED_READS)
+ return *(const uint16_t *)buf;
+#else
+ uint16_t num;
+ tuklib_memcpy_aligned(&num, buf, sizeof(num));
+ return num;
+#endif
+}
+
+
+static inline uint32_t
+aligned_read32ne(const uint8_t *buf)
+{
+#if defined(TUKLIB_USE_UNSAFE_TYPE_PUNNING) \
+ || defined(TUKLIB_USE_UNSAFE_ALIGNED_READS)
+ return *(const uint32_t *)buf;
+#else
+ uint32_t num;
+ tuklib_memcpy_aligned(&num, buf, sizeof(num));
+ return num;
+#endif
+}
+
+
+static inline uint64_t
+aligned_read64ne(const uint8_t *buf)
+{
+#if defined(TUKLIB_USE_UNSAFE_TYPE_PUNNING) \
+ || defined(TUKLIB_USE_UNSAFE_ALIGNED_READS)
+ return *(const uint64_t *)buf;
+#else
+ uint64_t num;
+ tuklib_memcpy_aligned(&num, buf, sizeof(num));
+ return num;
+#endif
+}
+
+
+static inline void
+aligned_write16ne(uint8_t *buf, uint16_t num)
+{
+#ifdef TUKLIB_USE_UNSAFE_TYPE_PUNNING
+ *(uint16_t *)buf = num;
+#else
+ tuklib_memcpy_aligned(buf, &num, sizeof(num));
+#endif
+ return;
+}
+
+
+static inline void
+aligned_write32ne(uint8_t *buf, uint32_t num)
+{
+#ifdef TUKLIB_USE_UNSAFE_TYPE_PUNNING
+ *(uint32_t *)buf = num;
+#else
+ tuklib_memcpy_aligned(buf, &num, sizeof(num));
+#endif
+ return;
+}
+
+
+static inline void
+aligned_write64ne(uint8_t *buf, uint64_t num)
+{
+#ifdef TUKLIB_USE_UNSAFE_TYPE_PUNNING
+ *(uint64_t *)buf = num;
+#else
+ tuklib_memcpy_aligned(buf, &num, sizeof(num));
+#endif
+ return;
+}
+
+
+static inline uint16_t
+aligned_read16be(const uint8_t *buf)
+{
+ uint16_t num = aligned_read16ne(buf);
+ return conv16be(num);
+}
+
+
+static inline uint16_t
+aligned_read16le(const uint8_t *buf)
+{
+ uint16_t num = aligned_read16ne(buf);
+ return conv16le(num);
+}
+
+
+static inline uint32_t
+aligned_read32be(const uint8_t *buf)
+{
+ uint32_t num = aligned_read32ne(buf);
+ return conv32be(num);
+}
+
+
+static inline uint32_t
+aligned_read32le(const uint8_t *buf)
+{
+ uint32_t num = aligned_read32ne(buf);
+ return conv32le(num);
+}
+
+
+static inline uint64_t
+aligned_read64be(const uint8_t *buf)
+{
+ uint64_t num = aligned_read64ne(buf);
+ return conv64be(num);
+}
+
+
+static inline uint64_t
+aligned_read64le(const uint8_t *buf)
+{
+ uint64_t num = aligned_read64ne(buf);
+ return conv64le(num);
+}
+
+
+// These need to be macros like in the unaligned case.
+#define aligned_write16be(buf, num) aligned_write16ne((buf), conv16be(num))
+#define aligned_write16le(buf, num) aligned_write16ne((buf), conv16le(num))
+#define aligned_write32be(buf, num) aligned_write32ne((buf), conv32be(num))
+#define aligned_write32le(buf, num) aligned_write32ne((buf), conv32le(num))
+#define aligned_write64be(buf, num) aligned_write64ne((buf), conv64be(num))
+#define aligned_write64le(buf, num) aligned_write64ne((buf), conv64le(num))
+
+
+////////////////////
+// Bit operations //
+////////////////////
+
static inline uint32_t
bsr32(uint32_t n)
{
@@ -383,44 +593,42 @@ bsr32(uint32_t n)
// multiple architectures. On x86, __builtin_clz() ^ 31U becomes
// either plain BSR (so the XOR gets optimized away) or LZCNT and
// XOR (if -march indicates that SSE4a instructions are supported).
- return __builtin_clz(n) ^ 31U;
+ return (uint32_t)__builtin_clz(n) ^ 31U;
#elif defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
uint32_t i;
__asm__("bsrl %1, %0" : "=r" (i) : "rm" (n));
return i;
-#elif defined(_MSC_VER) && _MSC_VER >= 1400
- // MSVC isn't supported by tuklib, but since this code exists,
- // it doesn't hurt to have it here anyway.
- uint32_t i;
- _BitScanReverse((DWORD *)&i, n);
+#elif defined(_MSC_VER)
+ unsigned long i;
+ _BitScanReverse(&i, n);
return i;
#else
uint32_t i = 31;
- if ((n & UINT32_C(0xFFFF0000)) == 0) {
+ if ((n & 0xFFFF0000) == 0) {
n <<= 16;
i = 15;
}
- if ((n & UINT32_C(0xFF000000)) == 0) {
+ if ((n & 0xFF000000) == 0) {
n <<= 8;
i -= 8;
}
- if ((n & UINT32_C(0xF0000000)) == 0) {
+ if ((n & 0xF0000000) == 0) {
n <<= 4;
i -= 4;
}
- if ((n & UINT32_C(0xC0000000)) == 0) {
+ if ((n & 0xC0000000) == 0) {
n <<= 2;
i -= 2;
}
- if ((n & UINT32_C(0x80000000)) == 0)
+ if ((n & 0x80000000) == 0)
--i;
return i;
@@ -435,7 +643,7 @@ clz32(uint32_t n)
return _bit_scan_reverse(n) ^ 31U;
#elif TUKLIB_GNUC_REQ(3, 4) && UINT_MAX == UINT32_MAX
- return __builtin_clz(n);
+ return (uint32_t)__builtin_clz(n);
#elif defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
uint32_t i;
@@ -444,35 +652,35 @@ clz32(uint32_t n)
: "=r" (i) : "rm" (n));
return i;
-#elif defined(_MSC_VER) && _MSC_VER >= 1400
- uint32_t i;
- _BitScanReverse((DWORD *)&i, n);
+#elif defined(_MSC_VER)
+ unsigned long i;
+ _BitScanReverse(&i, n);
return i ^ 31U;
#else
uint32_t i = 0;
- if ((n & UINT32_C(0xFFFF0000)) == 0) {
+ if ((n & 0xFFFF0000) == 0) {
n <<= 16;
i = 16;
}
- if ((n & UINT32_C(0xFF000000)) == 0) {
+ if ((n & 0xFF000000) == 0) {
n <<= 8;
i += 8;
}
- if ((n & UINT32_C(0xF0000000)) == 0) {
+ if ((n & 0xF0000000) == 0) {
n <<= 4;
i += 4;
}
- if ((n & UINT32_C(0xC0000000)) == 0) {
+ if ((n & 0xC0000000) == 0) {
n <<= 2;
i += 2;
}
- if ((n & UINT32_C(0x80000000)) == 0)
+ if ((n & 0x80000000) == 0)
++i;
return i;
@@ -487,42 +695,42 @@ ctz32(uint32_t n)
return _bit_scan_forward(n);
#elif TUKLIB_GNUC_REQ(3, 4) && UINT_MAX >= UINT32_MAX
- return __builtin_ctz(n);
+ return (uint32_t)__builtin_ctz(n);
#elif defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
uint32_t i;
__asm__("bsfl %1, %0" : "=r" (i) : "rm" (n));
return i;
-#elif defined(_MSC_VER) && _MSC_VER >= 1400
- uint32_t i;
- _BitScanForward((DWORD *)&i, n);
+#elif defined(_MSC_VER)
+ unsigned long i;
+ _BitScanForward(&i, n);
return i;
#else
uint32_t i = 0;
- if ((n & UINT32_C(0x0000FFFF)) == 0) {
+ if ((n & 0x0000FFFF) == 0) {
n >>= 16;
i = 16;
}
- if ((n & UINT32_C(0x000000FF)) == 0) {
+ if ((n & 0x000000FF) == 0) {
n >>= 8;
i += 8;
}
- if ((n & UINT32_C(0x0000000F)) == 0) {
+ if ((n & 0x0000000F) == 0) {
n >>= 4;
i += 4;
}
- if ((n & UINT32_C(0x00000003)) == 0) {
+ if ((n & 0x00000003) == 0) {
n >>= 2;
i += 2;
}
- if ((n & UINT32_C(0x00000001)) == 0)
+ if ((n & 0x00000001) == 0)
++i;
return i;
diff --git a/contrib/libs/xz/liblzma/api/lzma.h b/contrib/libs/xz/liblzma/api/lzma.h
index aa88e4243a..122dab80d3 100644
--- a/contrib/libs/xz/liblzma/api/lzma.h
+++ b/contrib/libs/xz/liblzma/api/lzma.h
@@ -224,7 +224,8 @@
# else
# define lzma_nothrow throw()
# endif
-# elif __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3)
+# elif defined(__GNUC__) && (__GNUC__ > 3 \
+ || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3))
# define lzma_nothrow __attribute__((__nothrow__))
# else
# define lzma_nothrow
@@ -241,7 +242,7 @@
* break anything if these are sometimes enabled and sometimes not, only
* affects warnings and optimizations.
*/
-#if __GNUC__ >= 3
+#if defined(__GNUC__) && __GNUC__ >= 3
# ifndef lzma_attribute
# define lzma_attribute(attr) __attribute__(attr)
# endif
diff --git a/contrib/libs/xz/liblzma/api/lzma/block.h b/contrib/libs/xz/liblzma/api/lzma/block.h
index 7bdcfd7cbe..962f38779c 100644
--- a/contrib/libs/xz/liblzma/api/lzma/block.h
+++ b/contrib/libs/xz/liblzma/api/lzma/block.h
@@ -448,7 +448,7 @@ extern LZMA_API(lzma_vli) lzma_block_total_size(const lzma_block *block)
* - LZMA_MEM_ERROR
* - LZMA_OPTIONS_ERROR
* - LZMA_UNSUPPORTED_CHECK: block->check specifies a Check ID
- * that is not supported by this buid of liblzma. Initializing
+ * that is not supported by this build of liblzma. Initializing
* the encoder failed.
* - LZMA_PROG_ERROR
*/
diff --git a/contrib/libs/xz/liblzma/api/lzma/filter.h b/contrib/libs/xz/liblzma/api/lzma/filter.h
index 4e78752b8f..8c85931476 100644
--- a/contrib/libs/xz/liblzma/api/lzma/filter.h
+++ b/contrib/libs/xz/liblzma/api/lzma/filter.h
@@ -341,9 +341,10 @@ extern LZMA_API(lzma_ret) lzma_properties_encode(
* \param filter filter->id must have been set to the correct
* Filter ID. filter->options doesn't need to be
* initialized (it's not freed by this function). The
- * decoded options will be stored to filter->options.
- * filter->options is set to NULL if there are no
- * properties or if an error occurs.
+ * decoded options will be stored in filter->options;
+ * it's application's responsibility to free it when
+ * appropriate. filter->options is set to NULL if
+ * there are no properties or if an error occurs.
* \param allocator Custom memory allocator used to allocate the
* options. Set to NULL to use the default malloc(),
* and in case of an error, also free().
diff --git a/contrib/libs/xz/liblzma/api/lzma/hardware.h b/contrib/libs/xz/liblzma/api/lzma/hardware.h
index 5321d9af8e..47481f2581 100644
--- a/contrib/libs/xz/liblzma/api/lzma/hardware.h
+++ b/contrib/libs/xz/liblzma/api/lzma/hardware.h
@@ -6,7 +6,7 @@
* ways to limit the resource usage. Applications linking against liblzma
* need to do the actual decisions how much resources to let liblzma to use.
* To ease making these decisions, liblzma provides functions to find out
- * the relevant capabilities of the underlaying hardware. Currently there
+ * the relevant capabilities of the underlying hardware. Currently there
* is only a function to find out the amount of RAM, but in the future there
* will be also a function to detect how many concurrent threads the system
* can run.
diff --git a/contrib/libs/xz/liblzma/api/lzma/lzma12.h b/contrib/libs/xz/liblzma/api/lzma/lzma12.h
index 4e32fa3a21..df5f23b61a 100644
--- a/contrib/libs/xz/liblzma/api/lzma/lzma12.h
+++ b/contrib/libs/xz/liblzma/api/lzma/lzma12.h
@@ -301,7 +301,7 @@ typedef struct {
* (2^ pb =2^2=4), which is often a good choice when there's
* no better guess.
*
- * When the aligment is known, setting pb accordingly may reduce
+ * When the alignment is known, setting pb accordingly may reduce
* the file size a little. E.g. with text files having one-byte
* alignment (US-ASCII, ISO-8859-*, UTF-8), setting pb=0 can
* improve compression slightly. For UTF-16 text, pb=1 is a good
diff --git a/contrib/libs/xz/liblzma/api/lzma/version.h b/contrib/libs/xz/liblzma/api/lzma/version.h
index 143c7dea69..2bf3eaed24 100644
--- a/contrib/libs/xz/liblzma/api/lzma/version.h
+++ b/contrib/libs/xz/liblzma/api/lzma/version.h
@@ -22,7 +22,7 @@
*/
#define LZMA_VERSION_MAJOR 5
#define LZMA_VERSION_MINOR 2
-#define LZMA_VERSION_PATCH 4
+#define LZMA_VERSION_PATCH 5
#define LZMA_VERSION_STABILITY LZMA_VERSION_STABILITY_STABLE
#ifndef LZMA_VERSION_COMMIT
diff --git a/contrib/libs/xz/liblzma/api/lzma/vli.h b/contrib/libs/xz/liblzma/api/lzma/vli.h
index 9ad13f2e2f..1b7a952a40 100644
--- a/contrib/libs/xz/liblzma/api/lzma/vli.h
+++ b/contrib/libs/xz/liblzma/api/lzma/vli.h
@@ -54,7 +54,7 @@
*
* Valid VLI values are in the range [0, LZMA_VLI_MAX]. Unknown value is
* indicated with LZMA_VLI_UNKNOWN, which is the maximum value of the
- * underlaying integer type.
+ * underlying integer type.
*
* lzma_vli will be uint64_t for the foreseeable future. If a bigger size
* is needed in the future, it is guaranteed that 2 * LZMA_VLI_MAX will
diff --git a/contrib/libs/xz/liblzma/check/crc32_fast.c b/contrib/libs/xz/liblzma/check/crc32_fast.c
index 3de02638d7..eed7350582 100644
--- a/contrib/libs/xz/liblzma/check/crc32_fast.c
+++ b/contrib/libs/xz/liblzma/check/crc32_fast.c
@@ -49,7 +49,7 @@ lzma_crc32(const uint8_t *buf, size_t size, uint32_t crc)
// Calculate the CRC32 using the slice-by-eight algorithm.
while (buf < limit) {
- crc ^= *(const uint32_t *)(buf);
+ crc ^= aligned_read32ne(buf);
buf += 4;
crc = lzma_crc32_table[7][A(crc)]
@@ -57,7 +57,7 @@ lzma_crc32(const uint8_t *buf, size_t size, uint32_t crc)
^ lzma_crc32_table[5][C(crc)]
^ lzma_crc32_table[4][D(crc)];
- const uint32_t tmp = *(const uint32_t *)(buf);
+ const uint32_t tmp = aligned_read32ne(buf);
buf += 4;
// At least with some compilers, it is critical for
diff --git a/contrib/libs/xz/liblzma/check/crc32_table.c b/contrib/libs/xz/liblzma/check/crc32_table.c
index 6d66dd5c54..e9c1928cf9 100644
--- a/contrib/libs/xz/liblzma/check/crc32_table.c
+++ b/contrib/libs/xz/liblzma/check/crc32_table.c
@@ -12,6 +12,9 @@
#include "common.h"
+// Having the declaration here silences clang -Wmissing-variable-declarations.
+extern const uint32_t lzma_crc32_table[8][256];
+
#ifdef WORDS_BIGENDIAN
# error #include "crc32_table_be.h"
#else
diff --git a/contrib/libs/xz/liblzma/check/crc64_fast.c b/contrib/libs/xz/liblzma/check/crc64_fast.c
index 52af29ed48..8af54cda7b 100644
--- a/contrib/libs/xz/liblzma/check/crc64_fast.c
+++ b/contrib/libs/xz/liblzma/check/crc64_fast.c
@@ -47,9 +47,9 @@ lzma_crc64(const uint8_t *buf, size_t size, uint64_t crc)
while (buf < limit) {
#ifdef WORDS_BIGENDIAN
const uint32_t tmp = (crc >> 32)
- ^ *(const uint32_t *)(buf);
+ ^ aligned_read32ne(buf);
#else
- const uint32_t tmp = crc ^ *(const uint32_t *)(buf);
+ const uint32_t tmp = crc ^ aligned_read32ne(buf);
#endif
buf += 4;
diff --git a/contrib/libs/xz/liblzma/check/crc64_table.c b/contrib/libs/xz/liblzma/check/crc64_table.c
index 8e4b57abb7..fa334df321 100644
--- a/contrib/libs/xz/liblzma/check/crc64_table.c
+++ b/contrib/libs/xz/liblzma/check/crc64_table.c
@@ -12,6 +12,9 @@
#include "common.h"
+// Having the declaration here silences clang -Wmissing-variable-declarations.
+extern const uint64_t lzma_crc64_table[4][256];
+
#ifdef WORDS_BIGENDIAN
# error #include "crc64_table_be.h"
#else
diff --git a/contrib/libs/xz/liblzma/common/alone_decoder.c b/contrib/libs/xz/liblzma/common/alone_decoder.c
index 77d0a9b100..239b230ef1 100644
--- a/contrib/libs/xz/liblzma/common/alone_decoder.c
+++ b/contrib/libs/xz/liblzma/common/alone_decoder.c
@@ -50,8 +50,7 @@ typedef struct {
static lzma_ret
-alone_decode(void *coder_ptr,
- const lzma_allocator *allocator lzma_attribute((__unused__)),
+alone_decode(void *coder_ptr, const lzma_allocator *allocator,
const uint8_t *restrict in, size_t *restrict in_pos,
size_t in_size, uint8_t *restrict out,
size_t *restrict out_pos, size_t out_size,
diff --git a/contrib/libs/xz/liblzma/common/alone_encoder.c b/contrib/libs/xz/liblzma/common/alone_encoder.c
index 4853cfd1d6..96c1db70cc 100644
--- a/contrib/libs/xz/liblzma/common/alone_encoder.c
+++ b/contrib/libs/xz/liblzma/common/alone_encoder.c
@@ -1,7 +1,7 @@
///////////////////////////////////////////////////////////////////////////////
//
-/// \file alone_decoder.c
-/// \brief Decoder for LZMA_Alone files
+/// \file alone_encoder.c
+/// \brief Encoder for LZMA_Alone files
//
// Author: Lasse Collin
//
@@ -31,8 +31,7 @@ typedef struct {
static lzma_ret
-alone_encode(void *coder_ptr,
- const lzma_allocator *allocator lzma_attribute((__unused__)),
+alone_encode(void *coder_ptr, const lzma_allocator *allocator,
const uint8_t *restrict in, size_t *restrict in_pos,
size_t in_size, uint8_t *restrict out,
size_t *restrict out_pos, size_t out_size,
@@ -122,7 +121,7 @@ alone_encoder_init(lzma_next_coder *next, const lzma_allocator *allocator,
if (d != UINT32_MAX)
++d;
- unaligned_write32le(coder->header + 1, d);
+ write32le(coder->header + 1, d);
// - Uncompressed size (always unknown and using EOPM)
memset(coder->header + 1 + 4, 0xFF, 8);
diff --git a/contrib/libs/xz/liblzma/common/block_header_decoder.c b/contrib/libs/xz/liblzma/common/block_header_decoder.c
index 1dd982f6bd..2e1135dd63 100644
--- a/contrib/libs/xz/liblzma/common/block_header_decoder.c
+++ b/contrib/libs/xz/liblzma/common/block_header_decoder.c
@@ -67,7 +67,7 @@ lzma_block_header_decode(lzma_block *block,
const size_t in_size = block->header_size - 4;
// Verify CRC32
- if (lzma_crc32(in, in_size, 0) != unaligned_read32le(in + in_size))
+ if (lzma_crc32(in, in_size, 0) != read32le(in + in_size))
return LZMA_DATA_ERROR;
// Check for unsupported flags.
@@ -98,7 +98,7 @@ lzma_block_header_decode(lzma_block *block,
block->uncompressed_size = LZMA_VLI_UNKNOWN;
// Filter Flags
- const size_t filter_count = (in[1] & 3) + 1;
+ const size_t filter_count = (in[1] & 3U) + 1;
for (size_t i = 0; i < filter_count; ++i) {
const lzma_ret ret = lzma_filter_flags_decode(
&block->filters[i], allocator,
diff --git a/contrib/libs/xz/liblzma/common/block_header_encoder.c b/contrib/libs/xz/liblzma/common/block_header_encoder.c
index 5c5f5424ae..160425d27a 100644
--- a/contrib/libs/xz/liblzma/common/block_header_encoder.c
+++ b/contrib/libs/xz/liblzma/common/block_header_encoder.c
@@ -126,7 +126,7 @@ lzma_block_header_encode(const lzma_block *block, uint8_t *out)
memzero(out + out_pos, out_size - out_pos);
// CRC32
- unaligned_write32le(out + out_size, lzma_crc32(out, out_size, 0));
+ write32le(out + out_size, lzma_crc32(out, out_size, 0));
return LZMA_OK;
}
diff --git a/contrib/libs/xz/liblzma/common/block_util.c b/contrib/libs/xz/liblzma/common/block_util.c
index 00c7fe8d51..acb311142c 100644
--- a/contrib/libs/xz/liblzma/common/block_util.c
+++ b/contrib/libs/xz/liblzma/common/block_util.c
@@ -1,6 +1,6 @@
///////////////////////////////////////////////////////////////////////////////
//
-/// \file block_header.c
+/// \file block_util.c
/// \brief Utility functions to handle lzma_block
//
// Author: Lasse Collin
diff --git a/contrib/libs/xz/liblzma/common/common.c b/contrib/libs/xz/liblzma/common/common.c
index 57e3f8ebd6..cf714e5e43 100644
--- a/contrib/libs/xz/liblzma/common/common.c
+++ b/contrib/libs/xz/liblzma/common/common.c
@@ -1,6 +1,6 @@
///////////////////////////////////////////////////////////////////////////////
//
-/// \file common.h
+/// \file common.c
/// \brief Common functions needed in many places in liblzma
//
// Author: Lasse Collin
@@ -99,7 +99,11 @@ lzma_bufcpy(const uint8_t *restrict in, size_t *restrict in_pos,
const size_t out_avail = out_size - *out_pos;
const size_t copy_size = my_min(in_avail, out_avail);
- memcpy(out + *out_pos, in + *in_pos, copy_size);
+ // Call memcpy() only if there is something to copy. If there is
+ // nothing to copy, in or out might be NULL and then the memcpy()
+ // call would trigger undefined behavior.
+ if (copy_size > 0)
+ memcpy(out + *out_pos, in + *in_pos, copy_size);
*in_pos += copy_size;
*out_pos += copy_size;
diff --git a/contrib/libs/xz/liblzma/common/filter_common.h b/contrib/libs/xz/liblzma/common/filter_common.h
index 42a26a24a4..9390305c26 100644
--- a/contrib/libs/xz/liblzma/common/filter_common.h
+++ b/contrib/libs/xz/liblzma/common/filter_common.h
@@ -1,6 +1,6 @@
///////////////////////////////////////////////////////////////////////////////
//
-/// \file filter_common.c
+/// \file filter_common.h
/// \brief Filter-specific stuff common for both encoder and decoder
//
// Author: Lasse Collin
diff --git a/contrib/libs/xz/liblzma/common/filter_decoder.h b/contrib/libs/xz/liblzma/common/filter_decoder.h
index a2e255fe5f..2dac602828 100644
--- a/contrib/libs/xz/liblzma/common/filter_decoder.h
+++ b/contrib/libs/xz/liblzma/common/filter_decoder.h
@@ -1,6 +1,6 @@
///////////////////////////////////////////////////////////////////////////////
//
-/// \file filter_decoder.c
+/// \file filter_decoder.h
/// \brief Filter ID mapping to filter-specific functions
//
// Author: Lasse Collin
diff --git a/contrib/libs/xz/liblzma/common/filter_flags_encoder.c b/contrib/libs/xz/liblzma/common/filter_flags_encoder.c
index d110566de9..b57b9fd80b 100644
--- a/contrib/libs/xz/liblzma/common/filter_flags_encoder.c
+++ b/contrib/libs/xz/liblzma/common/filter_flags_encoder.c
@@ -1,7 +1,7 @@
///////////////////////////////////////////////////////////////////////////////
//
/// \file filter_flags_encoder.c
-/// \brief Decodes a Filter Flags field
+/// \brief Encodes a Filter Flags field
//
// Author: Lasse Collin
//
diff --git a/contrib/libs/xz/liblzma/common/hardware_physmem.c b/contrib/libs/xz/liblzma/common/hardware_physmem.c
index 7405b658af..a2bbbe29d4 100644
--- a/contrib/libs/xz/liblzma/common/hardware_physmem.c
+++ b/contrib/libs/xz/liblzma/common/hardware_physmem.c
@@ -19,7 +19,7 @@ extern LZMA_API(uint64_t)
lzma_physmem(void)
{
// It is simpler to make lzma_physmem() a wrapper for
- // tuklib_physmem() than to hack appropriate symbol visiblity
+ // tuklib_physmem() than to hack appropriate symbol visibility
// support for the tuklib modules.
return tuklib_physmem();
}
diff --git a/contrib/libs/xz/liblzma/common/index.c b/contrib/libs/xz/liblzma/common/index.c
index 26e4e519bc..a41e8f3308 100644
--- a/contrib/libs/xz/liblzma/common/index.c
+++ b/contrib/libs/xz/liblzma/common/index.c
@@ -105,7 +105,7 @@ typedef struct {
typedef struct {
- /// Every index_stream is a node in the tree of Sreams.
+ /// Every index_stream is a node in the tree of Streams.
index_tree_node node;
/// Number of this Stream (first one is 1)
@@ -166,7 +166,7 @@ struct lzma_index_s {
lzma_vli index_list_size;
/// How many Records to allocate at once in lzma_index_append().
- /// This defaults to INDEX_GROUP_SIZE but can be overriden with
+ /// This defaults to INDEX_GROUP_SIZE but can be overridden with
/// lzma_index_prealloc().
size_t prealloc;
@@ -825,8 +825,8 @@ lzma_index_cat(lzma_index *restrict dest, lzma_index *restrict src,
s->groups.root = &newg->node;
}
- if (s->groups.rightmost == &g->node)
- s->groups.rightmost = &newg->node;
+ assert(s->groups.rightmost == &g->node);
+ s->groups.rightmost = &newg->node;
lzma_free(g, allocator);
diff --git a/contrib/libs/xz/liblzma/common/memcmplen.h b/contrib/libs/xz/liblzma/common/memcmplen.h
index c1efc9e28b..dcfd8d6f89 100644
--- a/contrib/libs/xz/liblzma/common/memcmplen.h
+++ b/contrib/libs/xz/liblzma/common/memcmplen.h
@@ -61,8 +61,7 @@ lzma_memcmplen(const uint8_t *buf1, const uint8_t *buf2,
// to __builtin_clzll().
#define LZMA_MEMCMPLEN_EXTRA 8
while (len < limit) {
- const uint64_t x = *(const uint64_t *)(buf1 + len)
- - *(const uint64_t *)(buf2 + len);
+ const uint64_t x = read64ne(buf1 + len) - read64ne(buf2 + len);
if (x != 0) {
# if defined(_M_X64) // MSVC or Intel C compiler on Windows
unsigned long tmp;
@@ -99,15 +98,7 @@ lzma_memcmplen(const uint8_t *buf1, const uint8_t *buf2,
_mm_loadu_si128((const __m128i *)(buf2 + len))));
if (x != 0) {
-# if defined(__INTEL_COMPILER)
- len += _bit_scan_forward(x);
-# elif defined(_MSC_VER)
- unsigned long tmp;
- _BitScanForward(&tmp, x);
- len += tmp;
-# else
- len += __builtin_ctz(x);
-# endif
+ len += ctz32(x);
return my_min(len, limit);
}
@@ -120,8 +111,7 @@ lzma_memcmplen(const uint8_t *buf1, const uint8_t *buf2,
// Generic 32-bit little endian method
# define LZMA_MEMCMPLEN_EXTRA 4
while (len < limit) {
- uint32_t x = *(const uint32_t *)(buf1 + len)
- - *(const uint32_t *)(buf2 + len);
+ uint32_t x = read32ne(buf1 + len) - read32ne(buf2 + len);
if (x != 0) {
if ((x & 0xFFFF) == 0) {
len += 2;
@@ -143,8 +133,7 @@ lzma_memcmplen(const uint8_t *buf1, const uint8_t *buf2,
// Generic 32-bit big endian method
# define LZMA_MEMCMPLEN_EXTRA 4
while (len < limit) {
- uint32_t x = *(const uint32_t *)(buf1 + len)
- ^ *(const uint32_t *)(buf2 + len);
+ uint32_t x = read32ne(buf1 + len) ^ read32ne(buf2 + len);
if (x != 0) {
if ((x & 0xFFFF0000) == 0) {
len += 2;
diff --git a/contrib/libs/xz/liblzma/common/stream_encoder_mt.c b/contrib/libs/xz/liblzma/common/stream_encoder_mt.c
index 2efe44c253..01e4033975 100644
--- a/contrib/libs/xz/liblzma/common/stream_encoder_mt.c
+++ b/contrib/libs/xz/liblzma/common/stream_encoder_mt.c
@@ -700,7 +700,7 @@ stream_encode_mt(void *coder_ptr, const lzma_allocator *allocator,
ret = coder->thread_error;
if (ret != LZMA_OK) {
assert(ret != LZMA_STREAM_END);
- break;
+ break; // Break out of mythread_sync.
}
// Try to read compressed data to out[].
@@ -958,7 +958,7 @@ stream_encoder_mt_init(lzma_next_coder *next, const lzma_allocator *allocator,
// Validate the filter chain so that we can give an error in this
// function instead of delaying it to the first call to lzma_code().
// The memory usage calculation verifies the filter chain as
- // a side effect so we take advatange of that.
+ // a side effect so we take advantage of that.
if (lzma_raw_encoder_memusage(filters) == UINT64_MAX)
return LZMA_OPTIONS_ERROR;
diff --git a/contrib/libs/xz/liblzma/common/stream_flags_decoder.c b/contrib/libs/xz/liblzma/common/stream_flags_decoder.c
index 1bc2f97c51..4e43e359e1 100644
--- a/contrib/libs/xz/liblzma/common/stream_flags_decoder.c
+++ b/contrib/libs/xz/liblzma/common/stream_flags_decoder.c
@@ -38,7 +38,7 @@ lzma_stream_header_decode(lzma_stream_flags *options, const uint8_t *in)
// and unsupported files.
const uint32_t crc = lzma_crc32(in + sizeof(lzma_header_magic),
LZMA_STREAM_FLAGS_SIZE, 0);
- if (crc != unaligned_read32le(in + sizeof(lzma_header_magic)
+ if (crc != read32le(in + sizeof(lzma_header_magic)
+ LZMA_STREAM_FLAGS_SIZE))
return LZMA_DATA_ERROR;
@@ -67,7 +67,7 @@ lzma_stream_footer_decode(lzma_stream_flags *options, const uint8_t *in)
// CRC32
const uint32_t crc = lzma_crc32(in + sizeof(uint32_t),
sizeof(uint32_t) + LZMA_STREAM_FLAGS_SIZE, 0);
- if (crc != unaligned_read32le(in))
+ if (crc != read32le(in))
return LZMA_DATA_ERROR;
// Stream Flags
@@ -75,7 +75,7 @@ lzma_stream_footer_decode(lzma_stream_flags *options, const uint8_t *in)
return LZMA_OPTIONS_ERROR;
// Backward Size
- options->backward_size = unaligned_read32le(in + sizeof(uint32_t));
+ options->backward_size = read32le(in + sizeof(uint32_t));
options->backward_size = (options->backward_size + 1) * 4;
return LZMA_OK;
diff --git a/contrib/libs/xz/liblzma/common/stream_flags_encoder.c b/contrib/libs/xz/liblzma/common/stream_flags_encoder.c
index 4e717159f1..b98ab17c45 100644
--- a/contrib/libs/xz/liblzma/common/stream_flags_encoder.c
+++ b/contrib/libs/xz/liblzma/common/stream_flags_encoder.c
@@ -46,8 +46,8 @@ lzma_stream_header_encode(const lzma_stream_flags *options, uint8_t *out)
const uint32_t crc = lzma_crc32(out + sizeof(lzma_header_magic),
LZMA_STREAM_FLAGS_SIZE, 0);
- unaligned_write32le(out + sizeof(lzma_header_magic)
- + LZMA_STREAM_FLAGS_SIZE, crc);
+ write32le(out + sizeof(lzma_header_magic) + LZMA_STREAM_FLAGS_SIZE,
+ crc);
return LZMA_OK;
}
@@ -66,7 +66,7 @@ lzma_stream_footer_encode(const lzma_stream_flags *options, uint8_t *out)
if (!is_backward_size_valid(options))
return LZMA_PROG_ERROR;
- unaligned_write32le(out + 4, options->backward_size / 4 - 1);
+ write32le(out + 4, options->backward_size / 4 - 1);
// Stream Flags
if (stream_flags_encode(options, out + 2 * 4))
@@ -76,7 +76,7 @@ lzma_stream_footer_encode(const lzma_stream_flags *options, uint8_t *out)
const uint32_t crc = lzma_crc32(
out + 4, 4 + LZMA_STREAM_FLAGS_SIZE, 0);
- unaligned_write32le(out, crc);
+ write32le(out, crc);
// Magic
memcpy(out + 2 * 4 + LZMA_STREAM_FLAGS_SIZE,
diff --git a/contrib/libs/xz/liblzma/common/vli_decoder.c b/contrib/libs/xz/liblzma/common/vli_decoder.c
index c181828bf5..af2799d1fb 100644
--- a/contrib/libs/xz/liblzma/common/vli_decoder.c
+++ b/contrib/libs/xz/liblzma/common/vli_decoder.c
@@ -72,7 +72,7 @@ lzma_vli_decode(lzma_vli *restrict vli, size_t *vli_pos,
// corrupt.
//
// If we need bigger integers in future, old versions liblzma
- // will confusingly indicate the file being corrupt istead of
+ // will confusingly indicate the file being corrupt instead of
// unsupported. I suppose it's still better this way, because
// in the foreseeable future (writing this in 2008) the only
// reason why files would appear having over 63-bit integers
diff --git a/contrib/libs/xz/liblzma/delta/delta_decoder.c b/contrib/libs/xz/liblzma/delta/delta_decoder.c
index 6859afa5cd..13d8a28f0d 100644
--- a/contrib/libs/xz/liblzma/delta/delta_decoder.c
+++ b/contrib/libs/xz/liblzma/delta/delta_decoder.c
@@ -70,7 +70,7 @@ lzma_delta_props_decode(void **options, const lzma_allocator *allocator,
return LZMA_MEM_ERROR;
opt->type = LZMA_DELTA_TYPE_BYTE;
- opt->dist = props[0] + 1;
+ opt->dist = props[0] + 1U;
*options = opt;
diff --git a/contrib/libs/xz/liblzma/lz/lz_decoder.c b/contrib/libs/xz/liblzma/lz/lz_decoder.c
index c7086440bf..09b574388f 100644
--- a/contrib/libs/xz/liblzma/lz/lz_decoder.c
+++ b/contrib/libs/xz/liblzma/lz/lz_decoder.c
@@ -91,11 +91,17 @@ decode_buffer(lzma_coder *coder,
in, in_pos, in_size);
// Copy the decoded data from the dictionary to the out[]
- // buffer.
+ // buffer. Do it conditionally because out can be NULL
+ // (in which case copy_size is always 0). Calling memcpy()
+ // with a null-pointer is undefined even if the third
+ // argument is 0.
const size_t copy_size = coder->dict.pos - dict_start;
assert(copy_size <= out_size - *out_pos);
- memcpy(out + *out_pos, coder->dict.buf + dict_start,
- copy_size);
+
+ if (copy_size > 0)
+ memcpy(out + *out_pos, coder->dict.buf + dict_start,
+ copy_size);
+
*out_pos += copy_size;
// Reset the dictionary if so requested by coder->lz.code().
@@ -125,8 +131,7 @@ decode_buffer(lzma_coder *coder,
static lzma_ret
-lz_decode(void *coder_ptr,
- const lzma_allocator *allocator lzma_attribute((__unused__)),
+lz_decode(void *coder_ptr, const lzma_allocator *allocator,
const uint8_t *restrict in, size_t *restrict in_pos,
size_t in_size, uint8_t *restrict out,
size_t *restrict out_pos, size_t out_size,
@@ -241,7 +246,7 @@ lzma_lz_decoder_init(lzma_next_coder *next, const lzma_allocator *allocator,
if (lz_options.dict_size < 4096)
lz_options.dict_size = 4096;
- // Make dictionary size a multipe of 16. Some LZ-based decoders like
+ // Make dictionary size a multiple of 16. Some LZ-based decoders like
// LZMA use the lowest bits lzma_dict.pos to know the alignment of the
// data. Aligned buffer is also good when memcpying from the
// dictionary to the output buffer, since applications are
diff --git a/contrib/libs/xz/liblzma/lz/lz_encoder_hash.h b/contrib/libs/xz/liblzma/lz/lz_encoder_hash.h
index 342a333d16..fb15c58146 100644
--- a/contrib/libs/xz/liblzma/lz/lz_encoder_hash.h
+++ b/contrib/libs/xz/liblzma/lz/lz_encoder_hash.h
@@ -39,7 +39,7 @@
// Endianness doesn't matter in hash_2_calc() (no effect on the output).
#ifdef TUKLIB_FAST_UNALIGNED_ACCESS
# define hash_2_calc() \
- const uint32_t hash_value = *(const uint16_t *)(cur)
+ const uint32_t hash_value = read16ne(cur)
#else
# define hash_2_calc() \
const uint32_t hash_value \
diff --git a/contrib/libs/xz/liblzma/lz/lz_encoder_mf.c b/contrib/libs/xz/liblzma/lz/lz_encoder_mf.c
index 78520779f1..d03657a7c9 100644
--- a/contrib/libs/xz/liblzma/lz/lz_encoder_mf.c
+++ b/contrib/libs/xz/liblzma/lz/lz_encoder_mf.c
@@ -113,7 +113,7 @@ normalize(lzma_mf *mf)
// may be match finders that use larger resolution than one byte.
const uint32_t subvalue
= (MUST_NORMALIZE_POS - mf->cyclic_size);
- // & (~(UINT32_C(1) << 10) - 1);
+ // & ~((UINT32_C(1) << 10) - 1);
for (uint32_t i = 0; i < mf->hash_count; ++i) {
// If the distance is greater than the dictionary size,
diff --git a/contrib/libs/xz/liblzma/lzma/fastpos.h b/contrib/libs/xz/liblzma/lzma/fastpos.h
index a3feea58d8..cba442c27e 100644
--- a/contrib/libs/xz/liblzma/lzma/fastpos.h
+++ b/contrib/libs/xz/liblzma/lzma/fastpos.h
@@ -101,7 +101,7 @@ extern const uint8_t lzma_fastpos[1 << FASTPOS_BITS];
(UINT32_C(1) << (FASTPOS_BITS + fastpos_shift(extra, n)))
#define fastpos_result(dist, extra, n) \
- lzma_fastpos[(dist) >> fastpos_shift(extra, n)] \
+ (uint32_t)(lzma_fastpos[(dist) >> fastpos_shift(extra, n)]) \
+ 2 * fastpos_shift(extra, n)
diff --git a/contrib/libs/xz/liblzma/lzma/lzma2_decoder.c b/contrib/libs/xz/liblzma/lzma/lzma2_decoder.c
index 878c870ae1..cf1b5110ac 100644
--- a/contrib/libs/xz/liblzma/lzma/lzma2_decoder.c
+++ b/contrib/libs/xz/liblzma/lzma/lzma2_decoder.c
@@ -136,7 +136,7 @@ lzma2_decode(void *coder_ptr, lzma_dict *restrict dict,
break;
case SEQ_UNCOMPRESSED_2:
- coder->uncompressed_size += in[(*in_pos)++] + 1;
+ coder->uncompressed_size += in[(*in_pos)++] + 1U;
coder->sequence = SEQ_COMPRESSED_0;
coder->lzma.set_uncompressed(coder->lzma.coder,
coder->uncompressed_size);
@@ -148,7 +148,7 @@ lzma2_decode(void *coder_ptr, lzma_dict *restrict dict,
break;
case SEQ_COMPRESSED_1:
- coder->compressed_size += in[(*in_pos)++] + 1;
+ coder->compressed_size += in[(*in_pos)++] + 1U;
coder->sequence = coder->next_sequence;
break;
@@ -297,8 +297,8 @@ lzma_lzma2_props_decode(void **options, const lzma_allocator *allocator,
if (props[0] == 40) {
opt->dict_size = UINT32_MAX;
} else {
- opt->dict_size = 2 | (props[0] & 1);
- opt->dict_size <<= props[0] / 2 + 11;
+ opt->dict_size = 2 | (props[0] & 1U);
+ opt->dict_size <<= props[0] / 2U + 11;
}
opt->preset_dict = NULL;
diff --git a/contrib/libs/xz/liblzma/lzma/lzma_common.h b/contrib/libs/xz/liblzma/lzma/lzma_common.h
index 09efd38729..9d040d95bb 100644
--- a/contrib/libs/xz/liblzma/lzma/lzma_common.h
+++ b/contrib/libs/xz/liblzma/lzma/lzma_common.h
@@ -122,7 +122,8 @@ typedef enum {
/// byte; and
/// - the highest literal_context_bits bits of the previous byte.
#define literal_subcoder(probs, lc, lp_mask, pos, prev_byte) \
- ((probs)[(((pos) & lp_mask) << lc) + ((prev_byte) >> (8 - lc))])
+ ((probs)[(((pos) & (lp_mask)) << (lc)) \
+ + ((uint32_t)(prev_byte) >> (8U - (lc)))])
static inline void
diff --git a/contrib/libs/xz/liblzma/lzma/lzma_decoder.c b/contrib/libs/xz/liblzma/lzma/lzma_decoder.c
index d0f29b763a..e605a0a916 100644
--- a/contrib/libs/xz/liblzma/lzma/lzma_decoder.c
+++ b/contrib/libs/xz/liblzma/lzma/lzma_decoder.c
@@ -398,7 +398,7 @@ lzma_decode(void *coder_ptr, lzma_dict *restrict dictptr,
// ("match byte") to "len" to minimize the
// number of variables we need to store
// between decoder calls.
- len = dict_get(&dict, rep0) << 1;
+ len = (uint32_t)(dict_get(&dict, rep0)) << 1;
// The usage of "offset" allows omitting some
// branches, which should give tiny speed
@@ -569,7 +569,7 @@ lzma_decode(void *coder_ptr, lzma_dict *restrict dictptr,
#ifdef HAVE_SMALL
do {
rc_bit(probs[symbol], ,
- rep0 += 1 << offset,
+ rep0 += 1U << offset,
SEQ_DIST_MODEL);
} while (++offset < limit);
#else
@@ -577,25 +577,25 @@ lzma_decode(void *coder_ptr, lzma_dict *restrict dictptr,
case 5:
assert(offset == 0);
rc_bit(probs[symbol], ,
- rep0 += 1,
+ rep0 += 1U,
SEQ_DIST_MODEL);
++offset;
--limit;
case 4:
rc_bit(probs[symbol], ,
- rep0 += 1 << offset,
+ rep0 += 1U << offset,
SEQ_DIST_MODEL);
++offset;
--limit;
case 3:
rc_bit(probs[symbol], ,
- rep0 += 1 << offset,
+ rep0 += 1U << offset,
SEQ_DIST_MODEL);
++offset;
--limit;
case 2:
rc_bit(probs[symbol], ,
- rep0 += 1 << offset,
+ rep0 += 1U << offset,
SEQ_DIST_MODEL);
++offset;
--limit;
@@ -607,7 +607,7 @@ lzma_decode(void *coder_ptr, lzma_dict *restrict dictptr,
// the unneeded updating of
// "symbol".
rc_bit_last(probs[symbol], ,
- rep0 += 1 << offset,
+ rep0 += 1U << offset,
SEQ_DIST_MODEL);
}
#endif
@@ -635,7 +635,7 @@ lzma_decode(void *coder_ptr, lzma_dict *restrict dictptr,
do {
rc_bit(coder->pos_align[
symbol], ,
- rep0 += 1 << offset,
+ rep0 += 1U << offset,
SEQ_ALIGN);
} while (++offset < ALIGN_BITS);
#else
@@ -1049,7 +1049,7 @@ lzma_lzma_props_decode(void **options, const lzma_allocator *allocator,
// All dictionary sizes are accepted, including zero. LZ decoder
// will automatically use a dictionary at least a few KiB even if
// a smaller dictionary is requested.
- opt->dict_size = unaligned_read32le(props + 1);
+ opt->dict_size = read32le(props + 1);
opt->preset_dict = NULL;
opt->preset_dict_size = 0;
diff --git a/contrib/libs/xz/liblzma/lzma/lzma_encoder.c b/contrib/libs/xz/liblzma/lzma/lzma_encoder.c
index ba9ce6989c..07d2b87bc6 100644
--- a/contrib/libs/xz/liblzma/lzma/lzma_encoder.c
+++ b/contrib/libs/xz/liblzma/lzma/lzma_encoder.c
@@ -663,7 +663,7 @@ lzma_lzma_props_encode(const void *options, uint8_t *out)
if (lzma_lzma_lclppb_encode(opt, out))
return LZMA_PROG_ERROR;
- unaligned_write32le(out + 1, opt->dict_size);
+ write32le(out + 1, opt->dict_size);
return LZMA_OK;
}
diff --git a/contrib/libs/xz/liblzma/lzma/lzma_encoder_optimum_normal.c b/contrib/libs/xz/liblzma/lzma/lzma_encoder_optimum_normal.c
index 59f77343ed..101c8d4790 100644
--- a/contrib/libs/xz/liblzma/lzma/lzma_encoder_optimum_normal.c
+++ b/contrib/libs/xz/liblzma/lzma/lzma_encoder_optimum_normal.c
@@ -636,9 +636,10 @@ helper2(lzma_lzma1_encoder *coder, uint32_t *reps, const uint8_t *buf,
uint32_t len_test_2 = len_test + 1;
const uint32_t limit = my_min(buf_avail_full,
len_test_2 + nice_len);
- for (; len_test_2 < limit
- && buf[len_test_2] == buf_back[len_test_2];
- ++len_test_2) ;
+ // NOTE: len_test_2 may be greater than limit so the call to
+ // lzma_memcmplen() must be done conditionally.
+ if (len_test_2 < limit)
+ len_test_2 = lzma_memcmplen(buf, buf_back, len_test_2, limit);
len_test_2 -= len_test + 1;
@@ -732,9 +733,12 @@ helper2(lzma_lzma1_encoder *coder, uint32_t *reps, const uint8_t *buf,
const uint32_t limit = my_min(buf_avail_full,
len_test_2 + nice_len);
- for (; len_test_2 < limit &&
- buf[len_test_2] == buf_back[len_test_2];
- ++len_test_2) ;
+ // NOTE: len_test_2 may be greater than limit
+ // so the call to lzma_memcmplen() must be
+ // done conditionally.
+ if (len_test_2 < limit)
+ len_test_2 = lzma_memcmplen(buf, buf_back,
+ len_test_2, limit);
len_test_2 -= len_test + 1;
diff --git a/contrib/libs/xz/liblzma/lzma/lzma_encoder_private.h b/contrib/libs/xz/liblzma/lzma/lzma_encoder_private.h
index a2da969f49..2e34aace16 100644
--- a/contrib/libs/xz/liblzma/lzma/lzma_encoder_private.h
+++ b/contrib/libs/xz/liblzma/lzma/lzma_encoder_private.h
@@ -25,8 +25,7 @@
// MATCH_LEN_MIN bytes. Unaligned access gives tiny gain so there's no
// reason to not use it when it is supported.
#ifdef TUKLIB_FAST_UNALIGNED_ACCESS
-# define not_equal_16(a, b) \
- (*(const uint16_t *)(a) != *(const uint16_t *)(b))
+# define not_equal_16(a, b) (read16ne(a) != read16ne(b))
#else
# define not_equal_16(a, b) \
((a)[0] != (b)[0] || (a)[1] != (b)[1])
diff --git a/contrib/libs/xz/liblzma/simple/arm.c b/contrib/libs/xz/liblzma/simple/arm.c
index 181d0e3b22..ff5073ae58 100644
--- a/contrib/libs/xz/liblzma/simple/arm.c
+++ b/contrib/libs/xz/liblzma/simple/arm.c
@@ -22,9 +22,9 @@ arm_code(void *simple lzma_attribute((__unused__)),
size_t i;
for (i = 0; i + 4 <= size; i += 4) {
if (buffer[i + 3] == 0xEB) {
- uint32_t src = (buffer[i + 2] << 16)
- | (buffer[i + 1] << 8)
- | (buffer[i + 0]);
+ uint32_t src = ((uint32_t)(buffer[i + 2]) << 16)
+ | ((uint32_t)(buffer[i + 1]) << 8)
+ | (uint32_t)(buffer[i + 0]);
src <<= 2;
uint32_t dest;
diff --git a/contrib/libs/xz/liblzma/simple/armthumb.c b/contrib/libs/xz/liblzma/simple/armthumb.c
index eab4862dd7..a8da334a04 100644
--- a/contrib/libs/xz/liblzma/simple/armthumb.c
+++ b/contrib/libs/xz/liblzma/simple/armthumb.c
@@ -23,10 +23,10 @@ armthumb_code(void *simple lzma_attribute((__unused__)),
for (i = 0; i + 4 <= size; i += 2) {
if ((buffer[i + 1] & 0xF8) == 0xF0
&& (buffer[i + 3] & 0xF8) == 0xF8) {
- uint32_t src = ((buffer[i + 1] & 0x7) << 19)
- | (buffer[i + 0] << 11)
- | ((buffer[i + 3] & 0x7) << 8)
- | (buffer[i + 2]);
+ uint32_t src = (((uint32_t)(buffer[i + 1]) & 7) << 19)
+ | ((uint32_t)(buffer[i + 0]) << 11)
+ | (((uint32_t)(buffer[i + 3]) & 7) << 8)
+ | (uint32_t)(buffer[i + 2]);
src <<= 1;
diff --git a/contrib/libs/xz/liblzma/simple/ia64.c b/contrib/libs/xz/liblzma/simple/ia64.c
index 580529e808..6492d0a384 100644
--- a/contrib/libs/xz/liblzma/simple/ia64.c
+++ b/contrib/libs/xz/liblzma/simple/ia64.c
@@ -70,7 +70,7 @@ ia64_code(void *simple lzma_attribute((__unused__)),
inst_norm |= (uint64_t)(dest & 0x100000)
<< (36 - 20);
- instruction &= (1 << bit_res) - 1;
+ instruction &= (1U << bit_res) - 1;
instruction |= (inst_norm << bit_res);
for (size_t j = 0; j < 6; j++)
diff --git a/contrib/libs/xz/liblzma/simple/powerpc.c b/contrib/libs/xz/liblzma/simple/powerpc.c
index 54dfbf1028..0b60e9b3fe 100644
--- a/contrib/libs/xz/liblzma/simple/powerpc.c
+++ b/contrib/libs/xz/liblzma/simple/powerpc.c
@@ -25,10 +25,11 @@ powerpc_code(void *simple lzma_attribute((__unused__)),
if ((buffer[i] >> 2) == 0x12
&& ((buffer[i + 3] & 3) == 1)) {
- const uint32_t src = ((buffer[i + 0] & 3) << 24)
- | (buffer[i + 1] << 16)
- | (buffer[i + 2] << 8)
- | (buffer[i + 3] & (~3));
+ const uint32_t src
+ = (((uint32_t)(buffer[i + 0]) & 3) << 24)
+ | ((uint32_t)(buffer[i + 1]) << 16)
+ | ((uint32_t)(buffer[i + 2]) << 8)
+ | ((uint32_t)(buffer[i + 3]) & ~UINT32_C(3));
uint32_t dest;
if (is_encoder)
diff --git a/contrib/libs/xz/liblzma/simple/simple_coder.c b/contrib/libs/xz/liblzma/simple/simple_coder.c
index 13ebabc76d..4f499befe9 100644
--- a/contrib/libs/xz/liblzma/simple/simple_coder.c
+++ b/contrib/libs/xz/liblzma/simple/simple_coder.c
@@ -118,7 +118,15 @@ simple_code(void *coder_ptr, const lzma_allocator *allocator,
// coder->pos and coder->size yet. This way the coder can be
// restarted if the next filter in the chain returns e.g.
// LZMA_MEM_ERROR.
- memcpy(out + *out_pos, coder->buffer + coder->pos, buf_avail);
+ //
+ // Do the memcpy() conditionally because out can be NULL
+ // (in which case buf_avail is always 0). Calling memcpy()
+ // with a null-pointer is undefined even if the third
+ // argument is 0.
+ if (buf_avail > 0)
+ memcpy(out + *out_pos, coder->buffer + coder->pos,
+ buf_avail);
+
*out_pos += buf_avail;
// Copy/Encode/Decode more data to out[].
diff --git a/contrib/libs/xz/liblzma/simple/simple_decoder.c b/contrib/libs/xz/liblzma/simple/simple_decoder.c
index 1d864f2bf7..dc4d241511 100644
--- a/contrib/libs/xz/liblzma/simple/simple_decoder.c
+++ b/contrib/libs/xz/liblzma/simple/simple_decoder.c
@@ -28,7 +28,7 @@ lzma_simple_props_decode(void **options, const lzma_allocator *allocator,
if (opt == NULL)
return LZMA_MEM_ERROR;
- opt->start_offset = unaligned_read32le(props);
+ opt->start_offset = read32le(props);
// Don't leave an options structure allocated if start_offset is zero.
if (opt->start_offset == 0)
diff --git a/contrib/libs/xz/liblzma/simple/simple_encoder.c b/contrib/libs/xz/liblzma/simple/simple_encoder.c
index 8aa463bed2..d2cc03e58b 100644
--- a/contrib/libs/xz/liblzma/simple/simple_encoder.c
+++ b/contrib/libs/xz/liblzma/simple/simple_encoder.c
@@ -32,7 +32,7 @@ lzma_simple_props_encode(const void *options, uint8_t *out)
if (opt == NULL || opt->start_offset == 0)
return LZMA_OK;
- unaligned_write32le(out, opt->start_offset);
+ write32le(out, opt->start_offset);
return LZMA_OK;
}
diff --git a/contrib/libs/xz/liblzma/simple/x86.c b/contrib/libs/xz/liblzma/simple/x86.c
index 0b14807e90..0e78909ccc 100644
--- a/contrib/libs/xz/liblzma/simple/x86.c
+++ b/contrib/libs/xz/liblzma/simple/x86.c
@@ -97,7 +97,7 @@ x86_code(void *simple_ptr, uint32_t now_pos, bool is_encoder,
if (!Test86MSByte(b))
break;
- src = dest ^ ((1 << (32 - i * 8)) - 1);
+ src = dest ^ ((1U << (32 - i * 8)) - 1);
}
buffer[buffer_pos + 4]