File ubuntu-zstd-support.patch of Package dpkg
diff -urN dpkg-1.20.9/config.h.in dpkg-1.20.9ubuntu1/config.h.in
--- dpkg-1.20.9/config.h.in 2021-04-14 00:43:39.000000000 +0200
+++ dpkg-1.20.9ubuntu1/config.h.in 2021-04-14 12:32:22.000000000 +0200
@@ -380,6 +380,9 @@
/* Define to 1 to use z library rather than console tool */
#undef WITH_LIBZ
+/* Define to 1 to use zstd library rather than console tool */
+#undef WITH_LIBZSTD
+
/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
significant byte first (like Motorola and SPARC, unlike Intel). */
#if defined AC_APPLE_UNIVERSAL_BUILD
diff -urN dpkg-1.20.9/configure dpkg-1.20.9ubuntu1/configure
--- dpkg-1.20.9/configure 2021-04-14 00:43:39.000000000 +0200
+++ dpkg-1.20.9ubuntu1/configure 2021-04-14 12:32:22.000000000 +0200
@@ -741,6 +741,7 @@
PKG_CONFIG
LZMA_LIBS
BZ2_LIBS
+ZSTD_LIBS
Z_LIBS
HAVE_LIBMD_MD5_FALSE
HAVE_LIBMD_MD5_TRUE
@@ -959,6 +960,7 @@
enable_largefile
with_libmd
with_libz
+with_libzstd
with_libbz2
with_liblzma
with_libselinux
@@ -991,6 +993,7 @@
POD2MAN
MD_LIBS
Z_LIBS
+ZSTD_LIBS
BZ2_LIBS
LZMA_LIBS
PKG_CONFIG
@@ -1686,6 +1689,7 @@
change default dpkg-deb build compressor
--with-libmd use libmd library for message digest functions
--with-libz use z library for compression and decompression
+ --with-libzstd use zstd library for compression and decompression
--with-libbz2 use bz2 library for compression and decompression
--with-liblzma use lzma library for compression and decompression
--with-libselinux use selinux library to set security contexts
@@ -1712,6 +1716,7 @@
POD2MAN pod2man program
MD_LIBS linker flags for md library
Z_LIBS linker flags for z library
+ ZSTD_LIBS linker flags for zstd library
BZ2_LIBS linker flags for bz2 library
LZMA_LIBS linker flags for lzma library
PKG_CONFIG path to pkg-config utility
@@ -21919,6 +21924,106 @@
+# Check whether --with-libzstd was given.
+if test "${with_libzstd+set}" = set; then :
+ withval=$with_libzstd;
+else
+ with_libzstd=check
+fi
+
+ have_libzstd="no"
+ if test "x$with_libzstd" != "xno"; then :
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ZSTD_decompressStream in -lzstd" >&5
+$as_echo_n "checking for ZSTD_decompressStream in -lzstd... " >&6; }
+if ${ac_cv_lib_zstd_ZSTD_decompressStream+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lzstd $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ZSTD_decompressStream ();
+int
+main ()
+{
+return ZSTD_decompressStream ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_zstd_ZSTD_decompressStream=yes
+else
+ ac_cv_lib_zstd_ZSTD_decompressStream=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_zstd_ZSTD_decompressStream" >&5
+$as_echo "$ac_cv_lib_zstd_ZSTD_decompressStream" >&6; }
+if test "x$ac_cv_lib_zstd_ZSTD_decompressStream" = xyes; then :
+
+ ac_fn_c_check_header_mongrel "$LINENO" "zstd.h" "ac_cv_header_zstd_h" "$ac_includes_default"
+if test "x$ac_cv_header_zstd_h" = xyes; then :
+
+ have_libzstd="yes"
+
+fi
+
+
+
+fi
+
+
+ if test "x$with_libzstd" != "xno"; then :
+
+ if test "x$have_libzstd" = "xyes"; then :
+
+
+$as_echo "#define WITH_LIBZSTD 1" >>confdefs.h
+
+ if test "x$with_libzstd" = "xstatic"; then :
+
+ dpkg_zstd_libs="-Wl,-Bstatic -lzstd -Wl,-Bdynamic"
+
+else
+
+ dpkg_zstd_libs="-lzstd"
+
+fi
+ ZSTD_LIBS="${ZSTD_LIBS:+$ZSTD_LIBS }$dpkg_zstd_libs"
+
+else
+
+ if test "x$with_libzstd" != "xcheck"; then :
+
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "libzstd library or header not found
+See \`config.log' for more details" "$LINENO" 5; }
+
+fi
+
+fi
+
+fi
+
+fi
+
+
+
+
+
+
# Check whether --with-libbz2 was given.
if test "${with_libbz2+set}" = set; then :
withval=$with_libbz2;
@@ -30344,6 +30449,7 @@
libselinux . . . . . . . . . : $have_libselinux
libmd . . . . . . . . . . . . : $have_libmd
libz . . . . . . . . . . . . : $have_libz
+ libzstd . . . . . . . . . . : $have_libzstd
liblzma . . . . . . . . . . . : $have_liblzma
libbz2 . . . . . . . . . . . : $have_libbz2
libcurses . . . . . . . . . . : ${have_libcurses:-no}
diff -urN dpkg-1.20.9/configure.ac dpkg-1.20.9ubuntu1/configure.ac
--- dpkg-1.20.9/configure.ac 2021-01-30 07:09:02.000000000 +0100
+++ dpkg-1.20.9ubuntu1/configure.ac 2021-06-14 16:04:10.000000000 +0200
@@ -66,7 +66,7 @@
[system logging directory [LOCALSTATEDIR/log]])
# Set default dpkg-deb values
-DPKG_DEB_COMPRESSOR([xz])
+DPKG_DEB_COMPRESSOR([zstd])
DPKG_DEB_PROG_TAR
# Checks for programs.
@@ -88,6 +88,7 @@
# Checks for libraries.
DPKG_LIB_MD
DPKG_LIB_Z
+DPKG_LIB_ZSTD
DPKG_LIB_BZ2
DPKG_LIB_LZMA
DPKG_LIB_SELINUX
@@ -279,6 +280,7 @@
libselinux . . . . . . . . . : $have_libselinux
libmd . . . . . . . . . . . . : $have_libmd
libz . . . . . . . . . . . . : $have_libz
+ libzstd . . . . . . . . . . : $have_libzstd
liblzma . . . . . . . . . . . : $have_liblzma
libbz2 . . . . . . . . . . . : $have_libbz2
libcurses . . . . . . . . . . : ${have_libcurses:-no}
diff -urN dpkg-1.20.9/dpkg-deb/extract.c dpkg-1.20.9ubuntu1/dpkg-deb/extract.c
--- dpkg-1.20.9/dpkg-deb/extract.c 2021-02-15 00:03:29.000000000 +0100
+++ dpkg-1.20.9ubuntu1/dpkg-deb/extract.c 2021-04-14 12:32:22.000000000 +0200
@@ -180,6 +180,7 @@
decompressor = compressor_find_by_extension(extension);
if (decompressor != COMPRESSOR_TYPE_NONE &&
decompressor != COMPRESSOR_TYPE_GZIP &&
+ decompressor != COMPRESSOR_TYPE_ZSTD &&
decompressor != COMPRESSOR_TYPE_XZ)
ohshit(_("archive '%s' uses unknown compression for member '%.*s', "
"giving up"),
diff -urN dpkg-1.20.9/dpkg-deb/main.c dpkg-1.20.9ubuntu1/dpkg-deb/main.c
--- dpkg-1.20.9/dpkg-deb/main.c 2021-01-30 07:09:02.000000000 +0100
+++ dpkg-1.20.9ubuntu1/dpkg-deb/main.c 2021-04-14 12:32:22.000000000 +0200
@@ -108,7 +108,7 @@
" --[no-]uniform-compression Use the compression params on all members.\n"
" -z# Set the compression level when building.\n"
" -Z<type> Set the compression type used when building.\n"
-" Allowed types: gzip, xz, none.\n"
+" Allowed types: gzip, xz, zstd, none.\n"
" -S<strategy> Set the compression strategy when building.\n"
" Allowed values: none; extreme (xz);\n"
" filtered, huffman, rle, fixed (gzip).\n"
@@ -245,6 +245,7 @@
if (opt_uniform_compression &&
(compress_params.type != COMPRESSOR_TYPE_NONE &&
compress_params.type != COMPRESSOR_TYPE_GZIP &&
+ compress_params.type != COMPRESSOR_TYPE_ZSTD &&
compress_params.type != COMPRESSOR_TYPE_XZ))
badusage(_("unsupported compression type '%s' with uniform compression"),
compressor_get_name(compress_params.type));
diff -urN dpkg-1.20.9/dpkg-deb/Makefile.am dpkg-1.20.9ubuntu1/dpkg-deb/Makefile.am
--- dpkg-1.20.9/dpkg-deb/Makefile.am 2021-01-30 07:07:17.000000000 +0100
+++ dpkg-1.20.9ubuntu1/dpkg-deb/Makefile.am 2021-04-14 12:32:22.000000000 +0200
@@ -21,5 +21,6 @@
../lib/dpkg/libdpkg.la \
$(LIBINTL) \
$(Z_LIBS) \
+ $(ZSTD_LIBS) \
$(LZMA_LIBS) \
$(BZ2_LIBS)
diff -urN dpkg-1.20.9/dpkg-deb/Makefile.in dpkg-1.20.9ubuntu1/dpkg-deb/Makefile.in
--- dpkg-1.20.9/dpkg-deb/Makefile.in 2021-04-14 00:43:39.000000000 +0200
+++ dpkg-1.20.9ubuntu1/dpkg-deb/Makefile.in 2021-04-14 12:32:22.000000000 +0200
@@ -122,7 +122,7 @@
am__DEPENDENCIES_1 =
dpkg_deb_DEPENDENCIES = ../lib/dpkg/libdpkg.la $(am__DEPENDENCIES_1) \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_1)
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
am__v_lt_0 = --silent
@@ -313,6 +313,7 @@
XGETTEXT = @XGETTEXT@
XGETTEXT_015 = @XGETTEXT_015@
XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+ZSTD_LIBS = @ZSTD_LIBS@
Z_LIBS = @Z_LIBS@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
@@ -389,6 +390,7 @@
../lib/dpkg/libdpkg.la \
$(LIBINTL) \
$(Z_LIBS) \
+ $(ZSTD_LIBS) \
$(LZMA_LIBS) \
$(BZ2_LIBS)
diff -urN dpkg-1.20.9/dpkg-split/Makefile.in dpkg-1.20.9ubuntu1/dpkg-split/Makefile.in
--- dpkg-1.20.9/dpkg-split/Makefile.in 2021-04-14 00:43:39.000000000 +0200
+++ dpkg-1.20.9ubuntu1/dpkg-split/Makefile.in 2021-04-14 12:32:22.000000000 +0200
@@ -311,6 +311,7 @@
XGETTEXT = @XGETTEXT@
XGETTEXT_015 = @XGETTEXT_015@
XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+ZSTD_LIBS = @ZSTD_LIBS@
Z_LIBS = @Z_LIBS@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
diff -urN dpkg-1.20.9/dselect/Makefile.in dpkg-1.20.9ubuntu1/dselect/Makefile.in
--- dpkg-1.20.9/dselect/Makefile.in 2021-04-14 00:43:39.000000000 +0200
+++ dpkg-1.20.9ubuntu1/dselect/Makefile.in 2021-04-14 12:32:22.000000000 +0200
@@ -385,6 +385,7 @@
XGETTEXT = @XGETTEXT@
XGETTEXT_015 = @XGETTEXT_015@
XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+ZSTD_LIBS = @ZSTD_LIBS@
Z_LIBS = @Z_LIBS@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
diff -urN dpkg-1.20.9/dselect/methods/Makefile.in dpkg-1.20.9ubuntu1/dselect/methods/Makefile.in
--- dpkg-1.20.9/dselect/methods/Makefile.in 2021-04-14 00:43:39.000000000 +0200
+++ dpkg-1.20.9ubuntu1/dselect/methods/Makefile.in 2021-04-14 12:32:22.000000000 +0200
@@ -290,6 +290,7 @@
XGETTEXT = @XGETTEXT@
XGETTEXT_015 = @XGETTEXT_015@
XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+ZSTD_LIBS = @ZSTD_LIBS@
Z_LIBS = @Z_LIBS@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
diff -urN dpkg-1.20.9/lib/compat/Makefile.in dpkg-1.20.9ubuntu1/lib/compat/Makefile.in
--- dpkg-1.20.9/lib/compat/Makefile.in 2021-04-14 00:43:39.000000000 +0200
+++ dpkg-1.20.9ubuntu1/lib/compat/Makefile.in 2021-04-14 12:32:22.000000000 +0200
@@ -391,6 +391,7 @@
XGETTEXT = @XGETTEXT@
XGETTEXT_015 = @XGETTEXT_015@
XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+ZSTD_LIBS = @ZSTD_LIBS@
Z_LIBS = @Z_LIBS@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
diff -urN dpkg-1.20.9/lib/dpkg/compress.c dpkg-1.20.9ubuntu1/lib/dpkg/compress.c
--- dpkg-1.20.9/lib/dpkg/compress.c 2021-01-30 07:07:17.000000000 +0100
+++ dpkg-1.20.9ubuntu1/lib/dpkg/compress.c 2021-04-14 12:32:22.000000000 +0200
@@ -32,6 +32,9 @@
#ifdef WITH_LIBZ
#include <zlib.h>
#endif
+#ifdef WITH_LIBZSTD
+#include <zstd.h>
+#endif
#ifdef WITH_LIBLZMA
#include <lzma.h>
#endif
@@ -47,7 +50,7 @@
#include <dpkg/buffer.h>
#include <dpkg/command.h>
#include <dpkg/compress.h>
-#if !defined(WITH_LIBZ) || !defined(WITH_LIBLZMA) || !defined(WITH_LIBBZ2)
+#if !defined(WITH_LIBZ) || !defined(WITH_LIBZSTD) || !defined(WITH_LIBLZMA) || !defined(WITH_LIBBZ2)
#include <dpkg/subproc.h>
static void DPKG_ATTR_SENTINEL
@@ -764,6 +767,157 @@
};
/*
+ * Zstd compressor.
+ */
+
+#define ZSTD "zstd"
+
+#ifdef WITH_LIBZSTD
+
+static void
+decompress_zstd(int fd_in, int fd_out, const char *desc)
+{
+ size_t const buf_in_size = ZSTD_DStreamInSize();
+ void* const buf_in = m_malloc(buf_in_size);
+ size_t const buf_out_size = ZSTD_DStreamOutSize();
+ void* const buf_out = m_malloc(buf_out_size);
+ size_t init_result, just_read, to_read;
+ ZSTD_DStream* const dstream = ZSTD_createDStream();
+ if (dstream == NULL) {
+ ohshit(_("ZSTD_createDStream error creating stream"));
+ }
+
+ init_result = ZSTD_initDStream(dstream);
+ if (ZSTD_isError(init_result)) {
+ ohshit(_("ZSTD_initDStream error : %s"), ZSTD_getErrorName(init_result));
+ }
+ to_read = init_result;
+ while ((just_read = fd_read(fd_in, buf_in, to_read))) {
+ ZSTD_inBuffer input = { buf_in, just_read, 0 };
+ while (input.pos < input.size) {
+ size_t actualwrite;
+ ZSTD_outBuffer output = { buf_out, buf_out_size, 0 };
+ to_read = ZSTD_decompressStream(dstream, &output , &input);
+ if (ZSTD_isError(to_read)) {
+ ohshit(_("ZSTD_decompressStream error : %s \n"),
+ ZSTD_getErrorName(to_read));
+ }
+ actualwrite = fd_write(fd_out, output.dst, output.pos);
+ if (actualwrite != output.pos) {
+ const char *errmsg = strerror(errno);
+ ohshite(_("%s: internal zstd write error: '%s'"), desc, errmsg);
+ }
+ /* possible next frame */
+ if (to_read == 0) {
+ init_result = ZSTD_initDStream(dstream);
+ if (ZSTD_isError(init_result)) {
+ ohshit(_("ZSTD_initDStream error : %s"), ZSTD_getErrorName(init_result));
+ }
+ to_read = init_result;
+ }
+ }
+ }
+
+ ZSTD_freeDStream(dstream);
+ free(buf_in);
+ free(buf_out);
+ if (close(fd_out))
+ ohshite(_("%s: internal zstd write error"), desc);
+}
+
+static void
+compress_zstd(int fd_in, int fd_out, struct compress_params *params, const char *desc)
+{
+ size_t const buf_in_size = ZSTD_CStreamInSize();
+ void* const buf_in = m_malloc(buf_in_size);
+ size_t const buf_out_size = ZSTD_CStreamOutSize();
+ void* const buf_out = m_malloc(buf_out_size);
+ size_t init_result, end_res;
+ size_t just_read, to_read;
+ ZSTD_CStream* const cstream = ZSTD_createCStream();
+ if (cstream == NULL) {
+ ohshit(_("ZSTD_createCStream error"));
+ }
+
+ init_result = ZSTD_initCStream(cstream, params->level);
+ if (ZSTD_isError(init_result)) {
+ ohshit(_("ZSTD_initCStream error : %s"), ZSTD_getErrorName(init_result));
+ }
+ to_read = buf_in_size;
+ while ((just_read = fd_read(fd_in, buf_in, to_read))) {
+ ZSTD_inBuffer input = { buf_in, just_read, 0 };
+ while (input.pos < input.size) {
+ size_t actualwrite;
+ ZSTD_outBuffer output = { buf_out, buf_out_size, 0 };
+ to_read = ZSTD_compressStream(cstream, &output , &input);
+ if (ZSTD_isError(to_read)) {
+ ohshit(_("ZSTD_decompressStream error : %s \n"),
+ ZSTD_getErrorName(to_read));
+ }
+ actualwrite = fd_write(fd_out, output.dst, output.pos);
+ if (actualwrite != output.pos) {
+ const char *errmsg = strerror(errno);
+ ohshite(_("%s: internal zstd write error: '%s'"),
+ desc, errmsg);
+ }
+ }
+ }
+ do {
+ size_t actualwrite;
+ ZSTD_outBuffer output = { buf_out, buf_out_size, 0 };
+ end_res = ZSTD_endStream(cstream, &output);
+ if (ZSTD_isError(end_res)) {
+ ohshit(_("ZSTD_endStream error : %s \n"),
+ ZSTD_getErrorName(end_res));
+ }
+ actualwrite = fd_write(fd_out, output.dst, output.pos);
+ if (actualwrite != output.pos) {
+ const char *errmsg = strerror(errno);
+ ohshite(_("%s: internal zstd write error: '%s'"), desc,
+ errmsg);
+ }
+ } while (end_res > 0);
+
+ ZSTD_freeCStream(cstream);
+ free(buf_in);
+ free(buf_out);
+
+ /* ZSTD_endStream() already flushed the output buffers */
+ if (close(fd_out))
+ ohshite(_("%s: internal zstd write error"), desc);
+}
+
+#else
+static const char *env_zstd[] = {};
+
+static void
+decompress_zstd(int fd_in, int fd_out, const char *desc)
+{
+ fd_fd_filter(fd_in, fd_out, desc, env_zstd, ZSTD, "-dcq", NULL);
+}
+
+static void
+compress_zstd(int fd_in, int fd_out, struct compress_params *params, const char *desc)
+{
+ char combuf[6];
+
+ snprintf(combuf, sizeof(combuf), "-c%d", params->level);
+ fd_fd_filter(fd_in, fd_out, desc, env_zstd, ZSTD, combuf, "-q", NULL);
+}
+#endif
+
+static const struct compressor compressor_zstd = {
+ .name = "zstd",
+ .extension = ".zst",
+ /* zstd commands's default is 3 but the aim is to be closer to xz's
+ * default compression efficiency */
+ .default_level = 19,
+ .fixup_params = fixup_none_params,
+ .compress = compress_zstd,
+ .decompress = decompress_zstd,
+};
+
+/*
* Generic compressor filter.
*/
@@ -773,6 +927,7 @@
[COMPRESSOR_TYPE_XZ] = &compressor_xz,
[COMPRESSOR_TYPE_BZIP2] = &compressor_bzip2,
[COMPRESSOR_TYPE_LZMA] = &compressor_lzma,
+ [COMPRESSOR_TYPE_ZSTD] = &compressor_zstd,
};
static const struct compressor *
diff -urN dpkg-1.20.9/lib/dpkg/compress.h dpkg-1.20.9ubuntu1/lib/dpkg/compress.h
--- dpkg-1.20.9/lib/dpkg/compress.h 2021-01-30 07:07:17.000000000 +0100
+++ dpkg-1.20.9ubuntu1/lib/dpkg/compress.h 2021-04-14 12:32:22.000000000 +0200
@@ -42,6 +42,7 @@
COMPRESSOR_TYPE_XZ,
COMPRESSOR_TYPE_BZIP2,
COMPRESSOR_TYPE_LZMA,
+ COMPRESSOR_TYPE_ZSTD,
};
enum compressor_strategy {
diff -urN dpkg-1.20.9/lib/dpkg/Makefile.in dpkg-1.20.9ubuntu1/lib/dpkg/Makefile.in
--- dpkg-1.20.9/lib/dpkg/Makefile.in 2021-04-14 00:43:39.000000000 +0200
+++ dpkg-1.20.9ubuntu1/lib/dpkg/Makefile.in 2021-04-14 12:32:22.000000000 +0200
@@ -446,6 +446,7 @@
XGETTEXT = @XGETTEXT@
XGETTEXT_015 = @XGETTEXT_015@
XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+ZSTD_LIBS = @ZSTD_LIBS@
Z_LIBS = @Z_LIBS@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
diff -urN dpkg-1.20.9/lib/dpkg/parse.c dpkg-1.20.9ubuntu1/lib/dpkg/parse.c
--- dpkg-1.20.9/lib/dpkg/parse.c 2021-03-02 03:15:25.000000000 +0100
+++ dpkg-1.20.9ubuntu1/lib/dpkg/parse.c 2021-04-14 12:32:22.000000000 +0200
@@ -319,7 +319,8 @@
if (pkg->status == PKG_STAT_NOTINSTALLED)
return;
- if (pkgbin->multiarch == PKG_MULTIARCH_SAME)
+ // mvo: consider stat_configfiles multiarch to prevent LP: #1015567
+ if (pkgbin->multiarch == PKG_MULTIARCH_SAME || pkg->status == PKG_STAT_CONFIGFILES)
count->multi++;
else
count->single++;
diff -urN dpkg-1.20.9/lib/dpkg/pkg-spec.c dpkg-1.20.9ubuntu1/lib/dpkg/pkg-spec.c
--- dpkg-1.20.9/lib/dpkg/pkg-spec.c 2021-01-30 07:07:17.000000000 +0100
+++ dpkg-1.20.9ubuntu1/lib/dpkg/pkg-spec.c 2021-04-14 12:32:22.000000000 +0200
@@ -102,10 +102,7 @@
/* Single instancing only applies with no architecture. */
if (ps->arch->type == DPKG_ARCH_NONE &&
pkgset_installed_instances(set) > 1) {
- snprintf(msg, sizeof(msg),
- _("ambiguous package name '%s' with more "
- "than one installed instance"), ps->name);
- return msg;
+ ps->arch = dpkg_arch_get(DPKG_ARCH_NATIVE);
}
}
diff -urN dpkg-1.20.9/lib/dpkg/t/Makefile.in dpkg-1.20.9ubuntu1/lib/dpkg/t/Makefile.in
--- dpkg-1.20.9/lib/dpkg/t/Makefile.in 2021-04-14 00:43:39.000000000 +0200
+++ dpkg-1.20.9ubuntu1/lib/dpkg/t/Makefile.in 2021-04-14 12:32:22.000000000 +0200
@@ -556,6 +556,7 @@
XGETTEXT = @XGETTEXT@
XGETTEXT_015 = @XGETTEXT_015@
XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+ZSTD_LIBS = @ZSTD_LIBS@
Z_LIBS = @Z_LIBS@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
diff -urN dpkg-1.20.9/lib/Makefile.in dpkg-1.20.9ubuntu1/lib/Makefile.in
--- dpkg-1.20.9/lib/Makefile.in 2021-04-14 00:43:39.000000000 +0200
+++ dpkg-1.20.9ubuntu1/lib/Makefile.in 2021-04-14 12:32:22.000000000 +0200
@@ -315,6 +315,7 @@
XGETTEXT = @XGETTEXT@
XGETTEXT_015 = @XGETTEXT_015@
XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+ZSTD_LIBS = @ZSTD_LIBS@
Z_LIBS = @Z_LIBS@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
diff -urN dpkg-1.20.9/m4/codeset.m4 dpkg-1.20.9ubuntu1/m4/codeset.m4
--- dpkg-1.20.9/m4/codeset.m4 1970-01-01 01:00:00.000000000 +0100
+++ dpkg-1.20.9ubuntu1/m4/codeset.m4 2021-04-14 12:32:22.000000000 +0200
@@ -0,0 +1,24 @@
+# codeset.m4 serial 5 (gettext-0.18.2)
+dnl Copyright (C) 2000-2002, 2006, 2008-2014, 2016 Free Software Foundation,
+dnl Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Bruno Haible.
+
+AC_DEFUN([AM_LANGINFO_CODESET],
+[
+ AC_CACHE_CHECK([for nl_langinfo and CODESET], [am_cv_langinfo_codeset],
+ [AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <langinfo.h>]],
+ [[char* cs = nl_langinfo(CODESET); return !cs;]])],
+ [am_cv_langinfo_codeset=yes],
+ [am_cv_langinfo_codeset=no])
+ ])
+ if test $am_cv_langinfo_codeset = yes; then
+ AC_DEFINE([HAVE_LANGINFO_CODESET], [1],
+ [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
+ fi
+])
diff -urN dpkg-1.20.9/m4/dpkg-build.m4 dpkg-1.20.9ubuntu1/m4/dpkg-build.m4
--- dpkg-1.20.9/m4/dpkg-build.m4 2021-01-30 07:07:17.000000000 +0100
+++ dpkg-1.20.9ubuntu1/m4/dpkg-build.m4 2021-06-14 16:04:10.000000000 +0200
@@ -78,7 +78,7 @@
[change default dpkg-deb build compressor])],
[with_dpkg_deb_compressor=$withval], [with_dpkg_deb_compressor=$1])
AS_CASE([$with_dpkg_deb_compressor],
- [gzip|xz], [:],
+ [gzip|xz|zstd], [:],
[AC_MSG_ERROR([unsupported default compressor $with_dpkg_deb_compressor])])
AC_DEFINE_UNQUOTED([DPKG_DEB_DEFAULT_COMPRESSOR],
[COMPRESSOR_TYPE_]AS_TR_CPP(${with_dpkg_deb_compressor}),
diff -urN dpkg-1.20.9/m4/dpkg-libs.m4 dpkg-1.20.9ubuntu1/m4/dpkg-libs.m4
--- dpkg-1.20.9/m4/dpkg-libs.m4 2021-01-30 07:07:17.000000000 +0100
+++ dpkg-1.20.9ubuntu1/m4/dpkg-libs.m4 2021-04-14 12:32:22.000000000 +0200
@@ -75,6 +75,13 @@
DPKG_WITH_COMPRESS_LIB([z], [zlib.h], [gzdopen])
])# DPKG_LIB_Z
+# DPKG_LIB_ZSTD
+# -------------
+# Check for zstd library.
+AC_DEFUN([DPKG_LIB_ZSTD], [
+ DPKG_WITH_COMPRESS_LIB([zstd], [zstd.h], [ZSTD_decompressStream])
+])# DPKG_LIB_ZSTD
+
# DPKG_LIB_LZMA
# -------------
# Check for lzma library.
diff -urN dpkg-1.20.9/m4/extern-inline.m4 dpkg-1.20.9ubuntu1/m4/extern-inline.m4
--- dpkg-1.20.9/m4/extern-inline.m4 1970-01-01 01:00:00.000000000 +0100
+++ dpkg-1.20.9ubuntu1/m4/extern-inline.m4 2021-04-14 12:32:22.000000000 +0200
@@ -0,0 +1,102 @@
+dnl 'extern inline' a la ISO C99.
+
+dnl Copyright 2012-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_EXTERN_INLINE],
+[
+ AH_VERBATIM([extern_inline],
+[/* Please see the Gnulib manual for how to use these macros.
+
+ Suppress extern inline with HP-UX cc, as it appears to be broken; see
+ <http://lists.gnu.org/archive/html/bug-texinfo/2013-02/msg00030.html>.
+
+ Suppress extern inline with Sun C in standards-conformance mode, as it
+ mishandles inline functions that call each other. E.g., for 'inline void f
+ (void) { } inline void g (void) { f (); }', c99 incorrectly complains
+ 'reference to static identifier "f" in extern inline function'.
+ This bug was observed with Sun C 5.12 SunOS_i386 2011/11/16.
+
+ Suppress extern inline (with or without __attribute__ ((__gnu_inline__)))
+ on configurations that mistakenly use 'static inline' to implement
+ functions or macros in standard C headers like <ctype.h>. For example,
+ if isdigit is mistakenly implemented via a static inline function,
+ a program containing an extern inline function that calls isdigit
+ may not work since the C standard prohibits extern inline functions
+ from calling static functions. This bug is known to occur on:
+
+ OS X 10.8 and earlier; see:
+ http://lists.gnu.org/archive/html/bug-gnulib/2012-12/msg00023.html
+
+ DragonFly; see
+ http://muscles.dragonflybsd.org/bulk/bleeding-edge-potential/latest-per-pkg/ah-tty-0.3.12.log
+
+ FreeBSD; see:
+ http://lists.gnu.org/archive/html/bug-gnulib/2014-07/msg00104.html
+
+ OS X 10.9 has a macro __header_inline indicating the bug is fixed for C and
+ for clang but remains for g++; see <http://trac.macports.org/ticket/41033>.
+ Assume DragonFly and FreeBSD will be similar. */
+#if (((defined __APPLE__ && defined __MACH__) \
+ || defined __DragonFly__ || defined __FreeBSD__) \
+ && (defined __header_inline \
+ ? (defined __cplusplus && defined __GNUC_STDC_INLINE__ \
+ && ! defined __clang__) \
+ : ((! defined _DONT_USE_CTYPE_INLINE_ \
+ && (defined __GNUC__ || defined __cplusplus)) \
+ || (defined _FORTIFY_SOURCE && 0 < _FORTIFY_SOURCE \
+ && defined __GNUC__ && ! defined __cplusplus))))
+# define _GL_EXTERN_INLINE_STDHEADER_BUG
+#endif
+#if ((__GNUC__ \
+ ? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \
+ : (199901L <= __STDC_VERSION__ \
+ && !defined __HP_cc \
+ && !defined __PGI \
+ && !(defined __SUNPRO_C && __STDC__))) \
+ && !defined _GL_EXTERN_INLINE_STDHEADER_BUG)
+# define _GL_INLINE inline
+# define _GL_EXTERN_INLINE extern inline
+# define _GL_EXTERN_INLINE_IN_USE
+#elif (2 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __STRICT_ANSI__ \
+ && !defined _GL_EXTERN_INLINE_STDHEADER_BUG)
+# if defined __GNUC_GNU_INLINE__ && __GNUC_GNU_INLINE__
+ /* __gnu_inline__ suppresses a GCC 4.2 diagnostic. */
+# define _GL_INLINE extern inline __attribute__ ((__gnu_inline__))
+# else
+# define _GL_INLINE extern inline
+# endif
+# define _GL_EXTERN_INLINE extern
+# define _GL_EXTERN_INLINE_IN_USE
+#else
+# define _GL_INLINE static _GL_UNUSED
+# define _GL_EXTERN_INLINE static _GL_UNUSED
+#endif
+
+/* In GCC 4.6 (inclusive) to 5.1 (exclusive),
+ suppress bogus "no previous prototype for 'FOO'"
+ and "no previous declaration for 'FOO'" diagnostics,
+ when FOO is an inline function in the header; see
+ <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54113> and
+ <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63877>. */
+#if __GNUC__ == 4 && 6 <= __GNUC_MINOR__
+# if defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__
+# define _GL_INLINE_HEADER_CONST_PRAGMA
+# else
+# define _GL_INLINE_HEADER_CONST_PRAGMA \
+ _Pragma ("GCC diagnostic ignored \"-Wsuggest-attribute=const\"")
+# endif
+# define _GL_INLINE_HEADER_BEGIN \
+ _Pragma ("GCC diagnostic push") \
+ _Pragma ("GCC diagnostic ignored \"-Wmissing-prototypes\"") \
+ _Pragma ("GCC diagnostic ignored \"-Wmissing-declarations\"") \
+ _GL_INLINE_HEADER_CONST_PRAGMA
+# define _GL_INLINE_HEADER_END \
+ _Pragma ("GCC diagnostic pop")
+#else
+# define _GL_INLINE_HEADER_BEGIN
+# define _GL_INLINE_HEADER_END
+#endif])
+])
diff -urN dpkg-1.20.9/m4/fcntl-o.m4 dpkg-1.20.9ubuntu1/m4/fcntl-o.m4
--- dpkg-1.20.9/m4/fcntl-o.m4 1970-01-01 01:00:00.000000000 +0100
+++ dpkg-1.20.9ubuntu1/m4/fcntl-o.m4 2021-04-14 12:32:22.000000000 +0200
@@ -0,0 +1,134 @@
+# fcntl-o.m4 serial 4
+dnl Copyright (C) 2006, 2009-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl Written by Paul Eggert.
+
+# Test whether the flags O_NOATIME and O_NOFOLLOW actually work.
+# Define HAVE_WORKING_O_NOATIME to 1 if O_NOATIME works, or to 0 otherwise.
+# Define HAVE_WORKING_O_NOFOLLOW to 1 if O_NOFOLLOW works, or to 0 otherwise.
+AC_DEFUN([gl_FCNTL_O_FLAGS],
+[
+ dnl Persuade glibc <fcntl.h> to define O_NOATIME and O_NOFOLLOW.
+ dnl AC_USE_SYSTEM_EXTENSIONS was introduced in autoconf 2.60 and obsoletes
+ dnl AC_GNU_SOURCE.
+ m4_ifdef([AC_USE_SYSTEM_EXTENSIONS],
+ [AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])],
+ [AC_REQUIRE([AC_GNU_SOURCE])])
+
+ AC_CHECK_HEADERS_ONCE([unistd.h])
+ AC_CHECK_FUNCS_ONCE([symlink])
+ AC_CACHE_CHECK([for working fcntl.h], [gl_cv_header_working_fcntl_h],
+ [AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <sys/types.h>
+ #include <sys/stat.h>
+ #if HAVE_UNISTD_H
+ # include <unistd.h>
+ #else /* on Windows with MSVC */
+ # include <io.h>
+ # include <stdlib.h>
+ # defined sleep(n) _sleep ((n) * 1000)
+ #endif
+ #include <fcntl.h>
+ #ifndef O_NOATIME
+ #define O_NOATIME 0
+ #endif
+ #ifndef O_NOFOLLOW
+ #define O_NOFOLLOW 0
+ #endif
+ static int const constants[] =
+ {
+ O_CREAT, O_EXCL, O_NOCTTY, O_TRUNC, O_APPEND,
+ O_NONBLOCK, O_SYNC, O_ACCMODE, O_RDONLY, O_RDWR, O_WRONLY
+ };
+ ]],
+ [[
+ int result = !constants;
+ #if HAVE_SYMLINK
+ {
+ static char const sym[] = "conftest.sym";
+ if (symlink ("/dev/null", sym) != 0)
+ result |= 2;
+ else
+ {
+ int fd = open (sym, O_WRONLY | O_NOFOLLOW | O_CREAT, 0);
+ if (fd >= 0)
+ {
+ close (fd);
+ result |= 4;
+ }
+ }
+ if (unlink (sym) != 0 || symlink (".", sym) != 0)
+ result |= 2;
+ else
+ {
+ int fd = open (sym, O_RDONLY | O_NOFOLLOW);
+ if (fd >= 0)
+ {
+ close (fd);
+ result |= 4;
+ }
+ }
+ unlink (sym);
+ }
+ #endif
+ {
+ static char const file[] = "confdefs.h";
+ int fd = open (file, O_RDONLY | O_NOATIME);
+ if (fd < 0)
+ result |= 8;
+ else
+ {
+ struct stat st0;
+ if (fstat (fd, &st0) != 0)
+ result |= 16;
+ else
+ {
+ char c;
+ sleep (1);
+ if (read (fd, &c, 1) != 1)
+ result |= 24;
+ else
+ {
+ if (close (fd) != 0)
+ result |= 32;
+ else
+ {
+ struct stat st1;
+ if (stat (file, &st1) != 0)
+ result |= 40;
+ else
+ if (st0.st_atime != st1.st_atime)
+ result |= 64;
+ }
+ }
+ }
+ }
+ }
+ return result;]])],
+ [gl_cv_header_working_fcntl_h=yes],
+ [case $? in #(
+ 4) gl_cv_header_working_fcntl_h='no (bad O_NOFOLLOW)';; #(
+ 64) gl_cv_header_working_fcntl_h='no (bad O_NOATIME)';; #(
+ 68) gl_cv_header_working_fcntl_h='no (bad O_NOATIME, O_NOFOLLOW)';; #(
+ *) gl_cv_header_working_fcntl_h='no';;
+ esac],
+ [gl_cv_header_working_fcntl_h=cross-compiling])])
+
+ case $gl_cv_header_working_fcntl_h in #(
+ *O_NOATIME* | no | cross-compiling) ac_val=0;; #(
+ *) ac_val=1;;
+ esac
+ AC_DEFINE_UNQUOTED([HAVE_WORKING_O_NOATIME], [$ac_val],
+ [Define to 1 if O_NOATIME works.])
+
+ case $gl_cv_header_working_fcntl_h in #(
+ *O_NOFOLLOW* | no | cross-compiling) ac_val=0;; #(
+ *) ac_val=1;;
+ esac
+ AC_DEFINE_UNQUOTED([HAVE_WORKING_O_NOFOLLOW], [$ac_val],
+ [Define to 1 if O_NOFOLLOW works.])
+])
diff -urN dpkg-1.20.9/m4/glibc21.m4 dpkg-1.20.9ubuntu1/m4/glibc21.m4
--- dpkg-1.20.9/m4/glibc21.m4 1970-01-01 01:00:00.000000000 +0100
+++ dpkg-1.20.9ubuntu1/m4/glibc21.m4 2021-04-14 12:32:22.000000000 +0200
@@ -0,0 +1,34 @@
+# glibc21.m4 serial 5
+dnl Copyright (C) 2000-2002, 2004, 2008, 2010-2016 Free Software Foundation,
+dnl Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+# Test for the GNU C Library, version 2.1 or newer, or uClibc.
+# From Bruno Haible.
+
+AC_DEFUN([gl_GLIBC21],
+ [
+ AC_CACHE_CHECK([whether we are using the GNU C Library >= 2.1 or uClibc],
+ [ac_cv_gnu_library_2_1],
+ [AC_EGREP_CPP([Lucky],
+ [
+#include <features.h>
+#ifdef __GNU_LIBRARY__
+ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2)
+ Lucky GNU user
+ #endif
+#endif
+#ifdef __UCLIBC__
+ Lucky user
+#endif
+ ],
+ [ac_cv_gnu_library_2_1=yes],
+ [ac_cv_gnu_library_2_1=no])
+ ]
+ )
+ AC_SUBST([GLIBC21])
+ GLIBC21="$ac_cv_gnu_library_2_1"
+ ]
+)
diff -urN dpkg-1.20.9/m4/glibc2.m4 dpkg-1.20.9ubuntu1/m4/glibc2.m4
--- dpkg-1.20.9/m4/glibc2.m4 1970-01-01 01:00:00.000000000 +0100
+++ dpkg-1.20.9ubuntu1/m4/glibc2.m4 2021-04-14 12:32:22.000000000 +0200
@@ -0,0 +1,31 @@
+# glibc2.m4 serial 3
+dnl Copyright (C) 2000-2002, 2004, 2008, 2010-2016 Free Software Foundation,
+dnl Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+# Test for the GNU C Library, version 2.0 or newer.
+# From Bruno Haible.
+
+AC_DEFUN([gt_GLIBC2],
+ [
+ AC_CACHE_CHECK([whether we are using the GNU C Library 2 or newer],
+ [ac_cv_gnu_library_2],
+ [AC_EGREP_CPP([Lucky GNU user],
+ [
+#include <features.h>
+#ifdef __GNU_LIBRARY__
+ #if (__GLIBC__ >= 2) && !defined __UCLIBC__
+ Lucky GNU user
+ #endif
+#endif
+ ],
+ [ac_cv_gnu_library_2=yes],
+ [ac_cv_gnu_library_2=no])
+ ]
+ )
+ AC_SUBST([GLIBC2])
+ GLIBC2="$ac_cv_gnu_library_2"
+ ]
+)
diff -urN dpkg-1.20.9/m4/intdiv0.m4 dpkg-1.20.9ubuntu1/m4/intdiv0.m4
--- dpkg-1.20.9/m4/intdiv0.m4 1970-01-01 01:00:00.000000000 +0100
+++ dpkg-1.20.9ubuntu1/m4/intdiv0.m4 2021-04-14 12:32:22.000000000 +0200
@@ -0,0 +1,87 @@
+# intdiv0.m4 serial 6 (gettext-0.18.2)
+dnl Copyright (C) 2002, 2007-2008, 2010-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Bruno Haible.
+
+AC_DEFUN([gt_INTDIV0],
+[
+ AC_REQUIRE([AC_PROG_CC])dnl
+ AC_REQUIRE([AC_CANONICAL_HOST])dnl
+
+ AC_CACHE_CHECK([whether integer division by zero raises SIGFPE],
+ gt_cv_int_divbyzero_sigfpe,
+ [
+ gt_cv_int_divbyzero_sigfpe=
+changequote(,)dnl
+ case "$host_os" in
+ macos* | darwin[6-9]* | darwin[1-9][0-9]*)
+ # On Mac OS X 10.2 or newer, just assume the same as when cross-
+ # compiling. If we were to perform the real test, 1 Crash Report
+ # dialog window would pop up.
+ case "$host_cpu" in
+ i[34567]86 | x86_64)
+ gt_cv_int_divbyzero_sigfpe="guessing yes" ;;
+ esac
+ ;;
+ esac
+changequote([,])dnl
+ if test -z "$gt_cv_int_divbyzero_sigfpe"; then
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <stdlib.h>
+#include <signal.h>
+
+static void
+sigfpe_handler (int sig)
+{
+ /* Exit with code 0 if SIGFPE, with code 1 if any other signal. */
+ _exit (sig != SIGFPE);
+}
+
+int x = 1;
+int y = 0;
+int z;
+int nan;
+
+int main ()
+{
+ signal (SIGFPE, sigfpe_handler);
+/* IRIX and AIX (when "xlc -qcheck" is used) yield signal SIGTRAP. */
+#if (defined (__sgi) || defined (_AIX)) && defined (SIGTRAP)
+ signal (SIGTRAP, sigfpe_handler);
+#endif
+/* Linux/SPARC yields signal SIGILL. */
+#if defined (__sparc__) && defined (__linux__)
+ signal (SIGILL, sigfpe_handler);
+#endif
+
+ z = x / y;
+ nan = y / y;
+ exit (2);
+}
+]])],
+ [gt_cv_int_divbyzero_sigfpe=yes],
+ [gt_cv_int_divbyzero_sigfpe=no],
+ [
+ # Guess based on the CPU.
+changequote(,)dnl
+ case "$host_cpu" in
+ alpha* | i[34567]86 | x86_64 | m68k | s390*)
+ gt_cv_int_divbyzero_sigfpe="guessing yes";;
+ *)
+ gt_cv_int_divbyzero_sigfpe="guessing no";;
+ esac
+changequote([,])dnl
+ ])
+ fi
+ ])
+ case "$gt_cv_int_divbyzero_sigfpe" in
+ *yes) value=1;;
+ *) value=0;;
+ esac
+ AC_DEFINE_UNQUOTED([INTDIV0_RAISES_SIGFPE], [$value],
+ [Define if integer division by zero raises signal SIGFPE.])
+])
diff -urN dpkg-1.20.9/m4/intldir.m4 dpkg-1.20.9ubuntu1/m4/intldir.m4
--- dpkg-1.20.9/m4/intldir.m4 1970-01-01 01:00:00.000000000 +0100
+++ dpkg-1.20.9ubuntu1/m4/intldir.m4 2021-04-14 12:32:22.000000000 +0200
@@ -0,0 +1,19 @@
+# intldir.m4 serial 2 (gettext-0.18)
+dnl Copyright (C) 2006, 2009-2014, 2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+dnl
+dnl This file can be used in projects which are not available under
+dnl the GNU General Public License or the GNU Library General Public
+dnl License but which still want to provide support for the GNU gettext
+dnl functionality.
+dnl Please note that the actual code of the GNU gettext library is covered
+dnl by the GNU Library General Public License, and the rest of the GNU
+dnl gettext package is covered by the GNU General Public License.
+dnl They are *not* in the public domain.
+
+AC_PREREQ([2.52])
+
+dnl Tells the AM_GNU_GETTEXT macro to consider an intl/ directory.
+AC_DEFUN([AM_GNU_GETTEXT_INTL_SUBDIR], [])
diff -urN dpkg-1.20.9/m4/intl.m4 dpkg-1.20.9ubuntu1/m4/intl.m4
--- dpkg-1.20.9/m4/intl.m4 1970-01-01 01:00:00.000000000 +0100
+++ dpkg-1.20.9ubuntu1/m4/intl.m4 2021-04-14 12:32:22.000000000 +0200
@@ -0,0 +1,304 @@
+# intl.m4 serial 29 (gettext-0.19)
+dnl Copyright (C) 1995-2014, 2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+dnl
+dnl This file can be used in projects which are not available under
+dnl the GNU General Public License or the GNU Library General Public
+dnl License but which still want to provide support for the GNU gettext
+dnl functionality.
+dnl Please note that the actual code of the GNU gettext library is covered
+dnl by the GNU Library General Public License, and the rest of the GNU
+dnl gettext package is covered by the GNU General Public License.
+dnl They are *not* in the public domain.
+
+dnl Authors:
+dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
+dnl Bruno Haible <haible@clisp.cons.org>, 2000-2009.
+
+AC_PREREQ([2.60])
+
+dnl Checks for all prerequisites of the intl subdirectory,
+dnl except for INTL_LIBTOOL_SUFFIX_PREFIX (and possibly LIBTOOL), INTLOBJS,
+dnl USE_INCLUDED_LIBINTL, BUILD_INCLUDED_LIBINTL.
+AC_DEFUN([AM_INTL_SUBDIR],
+[
+ AC_REQUIRE([AC_PROG_INSTALL])dnl
+ AC_REQUIRE([AC_PROG_MKDIR_P])dnl
+ AC_REQUIRE([AC_PROG_CC])dnl
+ AC_REQUIRE([AC_CANONICAL_HOST])dnl
+ AC_REQUIRE([gt_GLIBC2])dnl
+ AC_REQUIRE([AC_PROG_RANLIB])dnl
+ AC_REQUIRE([gl_VISIBILITY])dnl
+ AC_REQUIRE([gt_INTL_SUBDIR_CORE])dnl
+ AC_REQUIRE([AC_TYPE_LONG_LONG_INT])dnl
+ AC_REQUIRE([gt_TYPE_WCHAR_T])dnl
+ AC_REQUIRE([gt_TYPE_WINT_T])dnl
+ AC_REQUIRE([gl_AC_HEADER_INTTYPES_H])
+ AC_REQUIRE([gt_TYPE_INTMAX_T])
+ AC_REQUIRE([gt_PRINTF_POSIX])
+ AC_REQUIRE([gl_GLIBC21])dnl
+ AC_REQUIRE([gl_XSIZE])dnl
+ AC_REQUIRE([gl_FCNTL_O_FLAGS])dnl
+ AC_REQUIRE([gt_INTL_MACOSX])dnl
+ AC_REQUIRE([gl_EXTERN_INLINE])dnl
+ AC_REQUIRE([gt_GL_ATTRIBUTE])dnl
+
+ dnl Support for automake's --enable-silent-rules.
+ case "$enable_silent_rules" in
+ yes) INTL_DEFAULT_VERBOSITY=0;;
+ no) INTL_DEFAULT_VERBOSITY=1;;
+ *) INTL_DEFAULT_VERBOSITY=1;;
+ esac
+ AC_SUBST([INTL_DEFAULT_VERBOSITY])
+
+ AC_CHECK_TYPE([ptrdiff_t], ,
+ [AC_DEFINE([ptrdiff_t], [long],
+ [Define as the type of the result of subtracting two pointers, if the system doesn't define it.])
+ ])
+ AC_CHECK_HEADERS([features.h stddef.h stdlib.h string.h])
+ AC_CHECK_FUNCS([asprintf fwprintf newlocale putenv setenv setlocale \
+ snprintf strnlen wcslen wcsnlen mbrtowc wcrtomb])
+
+ dnl Use the _snprintf function only if it is declared (because on NetBSD it
+ dnl is defined as a weak alias of snprintf; we prefer to use the latter).
+ AC_CHECK_DECLS([_snprintf, _snwprintf], , , [#include <stdio.h>])
+
+ dnl Use the *_unlocked functions only if they are declared.
+ dnl (because some of them were defined without being declared in Solaris
+ dnl 2.5.1 but were removed in Solaris 2.6, whereas we want binaries built
+ dnl on Solaris 2.5.1 to run on Solaris 2.6).
+ AC_CHECK_DECLS([getc_unlocked], , , [#include <stdio.h>])
+
+ case $gt_cv_func_printf_posix in
+ *yes) HAVE_POSIX_PRINTF=1 ;;
+ *) HAVE_POSIX_PRINTF=0 ;;
+ esac
+ AC_SUBST([HAVE_POSIX_PRINTF])
+ if test "$ac_cv_func_asprintf" = yes; then
+ HAVE_ASPRINTF=1
+ else
+ HAVE_ASPRINTF=0
+ fi
+ AC_SUBST([HAVE_ASPRINTF])
+ if test "$ac_cv_func_snprintf" = yes; then
+ HAVE_SNPRINTF=1
+ else
+ HAVE_SNPRINTF=0
+ fi
+ AC_SUBST([HAVE_SNPRINTF])
+ if test "$ac_cv_func_newlocale" = yes; then
+ HAVE_NEWLOCALE=1
+ else
+ HAVE_NEWLOCALE=0
+ fi
+ AC_SUBST([HAVE_NEWLOCALE])
+ if test "$ac_cv_func_wprintf" = yes; then
+ HAVE_WPRINTF=1
+ else
+ HAVE_WPRINTF=0
+ fi
+ AC_SUBST([HAVE_WPRINTF])
+
+ AM_LANGINFO_CODESET
+ gt_LC_MESSAGES
+
+ dnl Compilation on mingw and Cygwin needs special Makefile rules, because
+ dnl 1. when we install a shared library, we must arrange to export
+ dnl auxiliary pointer variables for every exported variable,
+ dnl 2. when we install a shared library and a static library simultaneously,
+ dnl the include file specifies __declspec(dllimport) and therefore we
+ dnl must arrange to define the auxiliary pointer variables for the
+ dnl exported variables _also_ in the static library.
+ if test "$enable_shared" = yes; then
+ case "$host_os" in
+ mingw* | cygwin*) is_woe32dll=yes ;;
+ *) is_woe32dll=no ;;
+ esac
+ else
+ is_woe32dll=no
+ fi
+ WOE32DLL=$is_woe32dll
+ AC_SUBST([WOE32DLL])
+
+ dnl On mingw and Cygwin, we can activate special Makefile rules which add
+ dnl version information to the shared libraries and executables.
+ case "$host_os" in
+ mingw* | cygwin*) is_woe32=yes ;;
+ *) is_woe32=no ;;
+ esac
+ WOE32=$is_woe32
+ AC_SUBST([WOE32])
+ if test $WOE32 = yes; then
+ dnl Check for a program that compiles Windows resource files.
+ AC_CHECK_TOOL([WINDRES], [windres])
+ fi
+
+ dnl Determine whether when creating a library, "-lc" should be passed to
+ dnl libtool or not. On many platforms, it is required for the libtool option
+ dnl -no-undefined to work. On HP-UX, however, the -lc - stored by libtool
+ dnl in the *.la files - makes it impossible to create multithreaded programs,
+ dnl because libtool also reorders the -lc to come before the -pthread, and
+ dnl this disables pthread_create() <http://docs.hp.com/en/1896/pthreads.html>.
+ case "$host_os" in
+ hpux*) LTLIBC="" ;;
+ *) LTLIBC="-lc" ;;
+ esac
+ AC_SUBST([LTLIBC])
+
+ dnl Rename some macros and functions used for locking.
+ AH_BOTTOM([
+#define __libc_lock_t gl_lock_t
+#define __libc_lock_define gl_lock_define
+#define __libc_lock_define_initialized gl_lock_define_initialized
+#define __libc_lock_init gl_lock_init
+#define __libc_lock_lock gl_lock_lock
+#define __libc_lock_unlock gl_lock_unlock
+#define __libc_lock_recursive_t gl_recursive_lock_t
+#define __libc_lock_define_recursive gl_recursive_lock_define
+#define __libc_lock_define_initialized_recursive gl_recursive_lock_define_initialized
+#define __libc_lock_init_recursive gl_recursive_lock_init
+#define __libc_lock_lock_recursive gl_recursive_lock_lock
+#define __libc_lock_unlock_recursive gl_recursive_lock_unlock
+#define glthread_in_use libintl_thread_in_use
+#define glthread_lock_init_func libintl_lock_init_func
+#define glthread_lock_lock_func libintl_lock_lock_func
+#define glthread_lock_unlock_func libintl_lock_unlock_func
+#define glthread_lock_destroy_func libintl_lock_destroy_func
+#define glthread_rwlock_init_multithreaded libintl_rwlock_init_multithreaded
+#define glthread_rwlock_init_func libintl_rwlock_init_func
+#define glthread_rwlock_rdlock_multithreaded libintl_rwlock_rdlock_multithreaded
+#define glthread_rwlock_rdlock_func libintl_rwlock_rdlock_func
+#define glthread_rwlock_wrlock_multithreaded libintl_rwlock_wrlock_multithreaded
+#define glthread_rwlock_wrlock_func libintl_rwlock_wrlock_func
+#define glthread_rwlock_unlock_multithreaded libintl_rwlock_unlock_multithreaded
+#define glthread_rwlock_unlock_func libintl_rwlock_unlock_func
+#define glthread_rwlock_destroy_multithreaded libintl_rwlock_destroy_multithreaded
+#define glthread_rwlock_destroy_func libintl_rwlock_destroy_func
+#define glthread_recursive_lock_init_multithreaded libintl_recursive_lock_init_multithreaded
+#define glthread_recursive_lock_init_func libintl_recursive_lock_init_func
+#define glthread_recursive_lock_lock_multithreaded libintl_recursive_lock_lock_multithreaded
+#define glthread_recursive_lock_lock_func libintl_recursive_lock_lock_func
+#define glthread_recursive_lock_unlock_multithreaded libintl_recursive_lock_unlock_multithreaded
+#define glthread_recursive_lock_unlock_func libintl_recursive_lock_unlock_func
+#define glthread_recursive_lock_destroy_multithreaded libintl_recursive_lock_destroy_multithreaded
+#define glthread_recursive_lock_destroy_func libintl_recursive_lock_destroy_func
+#define glthread_once_func libintl_once_func
+#define glthread_once_singlethreaded libintl_once_singlethreaded
+#define glthread_once_multithreaded libintl_once_multithreaded
+])
+])
+
+
+dnl Checks for the core files of the intl subdirectory:
+dnl dcigettext.c
+dnl eval-plural.h
+dnl explodename.c
+dnl finddomain.c
+dnl gettextP.h
+dnl gmo.h
+dnl hash-string.h hash-string.c
+dnl l10nflist.c
+dnl libgnuintl.h.in (except the *printf stuff)
+dnl loadinfo.h
+dnl loadmsgcat.c
+dnl localealias.c
+dnl log.c
+dnl plural-exp.h plural-exp.c
+dnl plural.y
+dnl Used by libglocale.
+AC_DEFUN([gt_INTL_SUBDIR_CORE],
+[
+ AC_REQUIRE([AC_C_INLINE])dnl
+ AC_REQUIRE([AC_TYPE_SIZE_T])dnl
+ AC_REQUIRE([gl_AC_HEADER_STDINT_H])
+ AC_REQUIRE([AC_FUNC_ALLOCA])dnl
+ AC_REQUIRE([AC_FUNC_MMAP])dnl
+ AC_REQUIRE([gt_INTDIV0])dnl
+ AC_REQUIRE([gl_AC_TYPE_UINTMAX_T])dnl
+ AC_REQUIRE([gt_INTTYPES_PRI])dnl
+ AC_REQUIRE([gl_LOCK])dnl
+
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[int foo (int a) { a = __builtin_expect (a, 10); return a == 10 ? 0 : 1; }]],
+ [[]])],
+ [AC_DEFINE([HAVE_BUILTIN_EXPECT], [1],
+ [Define to 1 if the compiler understands __builtin_expect.])])
+
+ AC_CHECK_HEADERS([argz.h inttypes.h limits.h unistd.h sys/param.h])
+ AC_CHECK_FUNCS([getcwd getegid geteuid getgid getuid mempcpy munmap \
+ stpcpy strcasecmp strdup strtoul tsearch uselocale argz_count \
+ argz_stringify argz_next __fsetlocking])
+
+ dnl Solaris 12 provides getlocalename_l, while Illumos doesn't have
+ dnl it nor the equivalent.
+ if test $ac_cv_func_uselocale = yes; then
+ AC_CHECK_FUNCS([getlocalename_l])
+ fi
+
+ dnl Use the *_unlocked functions only if they are declared.
+ dnl (because some of them were defined without being declared in Solaris
+ dnl 2.5.1 but were removed in Solaris 2.6, whereas we want binaries built
+ dnl on Solaris 2.5.1 to run on Solaris 2.6).
+ AC_CHECK_DECLS([feof_unlocked, fgets_unlocked], , , [#include <stdio.h>])
+
+ AM_ICONV
+
+ dnl intl/plural.c is generated from intl/plural.y. It requires bison,
+ dnl because plural.y uses bison specific features. It requires at least
+ dnl bison-2.7 for %define api.pure.
+ dnl bison is only needed for the maintainer (who touches plural.y). But in
+ dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put
+ dnl the rule in general Makefile. Now, some people carelessly touch the
+ dnl files or have a broken "make" program, hence the plural.c rule will
+ dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not
+ dnl present or too old.
+ AC_CHECK_PROGS([INTLBISON], [bison])
+ if test -z "$INTLBISON"; then
+ ac_verc_fail=yes
+ else
+ dnl Found it, now check the version.
+ AC_MSG_CHECKING([version of bison])
+changequote(<<,>>)dnl
+ ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
+ case $ac_prog_version in
+ '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
+ 2.[7-9]* | [3-9].*)
+changequote([,])dnl
+ ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
+ *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
+ esac
+ AC_MSG_RESULT([$ac_prog_version])
+ fi
+ if test $ac_verc_fail = yes; then
+ INTLBISON=:
+ fi
+])
+
+dnl Copies _GL_UNUSED and _GL_ATTRIBUTE_PURE definitions from
+dnl gnulib-common.m4 as a fallback, if the project isn't using Gnulib.
+AC_DEFUN([gt_GL_ATTRIBUTE], [
+ m4_ifndef([gl_[]COMMON],
+ AH_VERBATIM([gt_gl_attribute],
+[/* Define as a marker that can be attached to declarations that might not
+ be used. This helps to reduce warnings, such as from
+ GCC -Wunused-parameter. */
+#ifndef _GL_UNUSED
+# if __GNUC__ >= 3 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)
+# define _GL_UNUSED __attribute__ ((__unused__))
+# else
+# define _GL_UNUSED
+# endif
+#endif
+
+/* The __pure__ attribute was added in gcc 2.96. */
+#ifndef _GL_ATTRIBUTE_PURE
+# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)
+# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__))
+# else
+# define _GL_ATTRIBUTE_PURE /* empty */
+# endif
+#endif
+]))])
diff -urN dpkg-1.20.9/m4/intmax.m4 dpkg-1.20.9ubuntu1/m4/intmax.m4
--- dpkg-1.20.9/m4/intmax.m4 1970-01-01 01:00:00.000000000 +0100
+++ dpkg-1.20.9ubuntu1/m4/intmax.m4 2021-04-14 12:32:22.000000000 +0200
@@ -0,0 +1,36 @@
+# intmax.m4 serial 6 (gettext-0.18.2)
+dnl Copyright (C) 2002-2005, 2008-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Bruno Haible.
+dnl Test whether the system has the 'intmax_t' type, but don't attempt to
+dnl find a replacement if it is lacking.
+
+AC_DEFUN([gt_TYPE_INTMAX_T],
+[
+ AC_REQUIRE([gl_AC_HEADER_INTTYPES_H])
+ AC_REQUIRE([gl_AC_HEADER_STDINT_H])
+ AC_CACHE_CHECK([for intmax_t], [gt_cv_c_intmax_t],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[
+#include <stddef.h>
+#include <stdlib.h>
+#if HAVE_STDINT_H_WITH_UINTMAX
+#include <stdint.h>
+#endif
+#if HAVE_INTTYPES_H_WITH_UINTMAX
+#include <inttypes.h>
+#endif
+ ]],
+ [[intmax_t x = -1;
+ return !x;]])],
+ [gt_cv_c_intmax_t=yes],
+ [gt_cv_c_intmax_t=no])])
+ if test $gt_cv_c_intmax_t = yes; then
+ AC_DEFINE([HAVE_INTMAX_T], [1],
+ [Define if you have the 'intmax_t' type in <stdint.h> or <inttypes.h>.])
+ fi
+])
diff -urN dpkg-1.20.9/m4/inttypes_h.m4 dpkg-1.20.9ubuntu1/m4/inttypes_h.m4
--- dpkg-1.20.9/m4/inttypes_h.m4 1970-01-01 01:00:00.000000000 +0100
+++ dpkg-1.20.9ubuntu1/m4/inttypes_h.m4 2021-04-14 12:32:22.000000000 +0200
@@ -0,0 +1,29 @@
+# inttypes_h.m4 serial 10
+dnl Copyright (C) 1997-2004, 2006, 2008-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Paul Eggert.
+
+# Define HAVE_INTTYPES_H_WITH_UINTMAX if <inttypes.h> exists,
+# doesn't clash with <sys/types.h>, and declares uintmax_t.
+
+AC_DEFUN([gl_AC_HEADER_INTTYPES_H],
+[
+ AC_CACHE_CHECK([for inttypes.h], [gl_cv_header_inttypes_h],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[
+#include <sys/types.h>
+#include <inttypes.h>
+ ]],
+ [[uintmax_t i = (uintmax_t) -1; return !i;]])],
+ [gl_cv_header_inttypes_h=yes],
+ [gl_cv_header_inttypes_h=no])])
+ if test $gl_cv_header_inttypes_h = yes; then
+ AC_DEFINE_UNQUOTED([HAVE_INTTYPES_H_WITH_UINTMAX], [1],
+ [Define if <inttypes.h> exists, doesn't clash with <sys/types.h>,
+ and declares uintmax_t. ])
+ fi
+])
diff -urN dpkg-1.20.9/m4/inttypes-pri.m4 dpkg-1.20.9ubuntu1/m4/inttypes-pri.m4
--- dpkg-1.20.9/m4/inttypes-pri.m4 1970-01-01 01:00:00.000000000 +0100
+++ dpkg-1.20.9ubuntu1/m4/inttypes-pri.m4 2021-04-14 12:32:22.000000000 +0200
@@ -0,0 +1,42 @@
+# inttypes-pri.m4 serial 7 (gettext-0.18.2)
+dnl Copyright (C) 1997-2002, 2006, 2008-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Bruno Haible.
+
+AC_PREREQ([2.53])
+
+# Define PRI_MACROS_BROKEN if <inttypes.h> exists and defines the PRI*
+# macros to non-string values. This is the case on AIX 4.3.3.
+
+AC_DEFUN([gt_INTTYPES_PRI],
+[
+ AC_CHECK_HEADERS([inttypes.h])
+ if test $ac_cv_header_inttypes_h = yes; then
+ AC_CACHE_CHECK([whether the inttypes.h PRIxNN macros are broken],
+ [gt_cv_inttypes_pri_broken],
+ [
+ AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[
+#include <inttypes.h>
+#ifdef PRId32
+char *p = PRId32;
+#endif
+ ]],
+ [[]])],
+ [gt_cv_inttypes_pri_broken=no],
+ [gt_cv_inttypes_pri_broken=yes])
+ ])
+ fi
+ if test "$gt_cv_inttypes_pri_broken" = yes; then
+ AC_DEFINE_UNQUOTED([PRI_MACROS_BROKEN], [1],
+ [Define if <inttypes.h> exists and defines unusable PRI* macros.])
+ PRI_MACROS_BROKEN=1
+ else
+ PRI_MACROS_BROKEN=0
+ fi
+ AC_SUBST([PRI_MACROS_BROKEN])
+])
diff -urN dpkg-1.20.9/m4/lcmessage.m4 dpkg-1.20.9ubuntu1/m4/lcmessage.m4
--- dpkg-1.20.9/m4/lcmessage.m4 1970-01-01 01:00:00.000000000 +0100
+++ dpkg-1.20.9ubuntu1/m4/lcmessage.m4 2021-04-14 12:32:22.000000000 +0200
@@ -0,0 +1,35 @@
+# lcmessage.m4 serial 7 (gettext-0.18.2)
+dnl Copyright (C) 1995-2002, 2004-2005, 2008-2014, 2016 Free Software
+dnl Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+dnl
+dnl This file can be used in projects which are not available under
+dnl the GNU General Public License or the GNU Library General Public
+dnl License but which still want to provide support for the GNU gettext
+dnl functionality.
+dnl Please note that the actual code of the GNU gettext library is covered
+dnl by the GNU Library General Public License, and the rest of the GNU
+dnl gettext package is covered by the GNU General Public License.
+dnl They are *not* in the public domain.
+
+dnl Authors:
+dnl Ulrich Drepper <drepper@cygnus.com>, 1995.
+
+# Check whether LC_MESSAGES is available in <locale.h>.
+
+AC_DEFUN([gt_LC_MESSAGES],
+[
+ AC_CACHE_CHECK([for LC_MESSAGES], [gt_cv_val_LC_MESSAGES],
+ [AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <locale.h>]],
+ [[return LC_MESSAGES]])],
+ [gt_cv_val_LC_MESSAGES=yes],
+ [gt_cv_val_LC_MESSAGES=no])])
+ if test $gt_cv_val_LC_MESSAGES = yes; then
+ AC_DEFINE([HAVE_LC_MESSAGES], [1],
+ [Define if your <locale.h> file defines LC_MESSAGES.])
+ fi
+])
diff -urN dpkg-1.20.9/m4/lock.m4 dpkg-1.20.9ubuntu1/m4/lock.m4
--- dpkg-1.20.9/m4/lock.m4 1970-01-01 01:00:00.000000000 +0100
+++ dpkg-1.20.9ubuntu1/m4/lock.m4 2021-04-14 12:32:22.000000000 +0200
@@ -0,0 +1,42 @@
+# lock.m4 serial 13 (gettext-0.18.2)
+dnl Copyright (C) 2005-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Bruno Haible.
+
+AC_DEFUN([gl_LOCK],
+[
+ AC_REQUIRE([gl_THREADLIB])
+ if test "$gl_threads_api" = posix; then
+ # OSF/1 4.0 and Mac OS X 10.1 lack the pthread_rwlock_t type and the
+ # pthread_rwlock_* functions.
+ AC_CHECK_TYPE([pthread_rwlock_t],
+ [AC_DEFINE([HAVE_PTHREAD_RWLOCK], [1],
+ [Define if the POSIX multithreading library has read/write locks.])],
+ [],
+ [#include <pthread.h>])
+ # glibc defines PTHREAD_MUTEX_RECURSIVE as enum, not as a macro.
+ AC_COMPILE_IFELSE([
+ AC_LANG_PROGRAM(
+ [[#include <pthread.h>]],
+ [[
+#if __FreeBSD__ == 4
+error "No, in FreeBSD 4.0 recursive mutexes actually don't work."
+#elif (defined __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ \
+ && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 1070)
+error "No, in Mac OS X < 10.7 recursive mutexes actually don't work."
+#else
+int x = (int)PTHREAD_MUTEX_RECURSIVE;
+return !x;
+#endif
+ ]])],
+ [AC_DEFINE([HAVE_PTHREAD_MUTEX_RECURSIVE], [1],
+ [Define if the <pthread.h> defines PTHREAD_MUTEX_RECURSIVE.])])
+ fi
+ gl_PREREQ_LOCK
+])
+
+# Prerequisites of lib/glthread/lock.c.
+AC_DEFUN([gl_PREREQ_LOCK], [:])
diff -urN dpkg-1.20.9/m4/longlong.m4 dpkg-1.20.9ubuntu1/m4/longlong.m4
--- dpkg-1.20.9/m4/longlong.m4 1970-01-01 01:00:00.000000000 +0100
+++ dpkg-1.20.9ubuntu1/m4/longlong.m4 2021-04-14 12:32:22.000000000 +0200
@@ -0,0 +1,113 @@
+# longlong.m4 serial 17
+dnl Copyright (C) 1999-2007, 2009-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Paul Eggert.
+
+# Define HAVE_LONG_LONG_INT if 'long long int' works.
+# This fixes a bug in Autoconf 2.61, and can be faster
+# than what's in Autoconf 2.62 through 2.68.
+
+# Note: If the type 'long long int' exists but is only 32 bits large
+# (as on some very old compilers), HAVE_LONG_LONG_INT will not be
+# defined. In this case you can treat 'long long int' like 'long int'.
+
+AC_DEFUN([AC_TYPE_LONG_LONG_INT],
+[
+ AC_REQUIRE([AC_TYPE_UNSIGNED_LONG_LONG_INT])
+ AC_CACHE_CHECK([for long long int], [ac_cv_type_long_long_int],
+ [ac_cv_type_long_long_int=yes
+ if test "x${ac_cv_prog_cc_c99-no}" = xno; then
+ ac_cv_type_long_long_int=$ac_cv_type_unsigned_long_long_int
+ if test $ac_cv_type_long_long_int = yes; then
+ dnl Catch a bug in Tandem NonStop Kernel (OSS) cc -O circa 2004.
+ dnl If cross compiling, assume the bug is not important, since
+ dnl nobody cross compiles for this platform as far as we know.
+ AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[@%:@include <limits.h>
+ @%:@ifndef LLONG_MAX
+ @%:@ define HALF \
+ (1LL << (sizeof (long long int) * CHAR_BIT - 2))
+ @%:@ define LLONG_MAX (HALF - 1 + HALF)
+ @%:@endif]],
+ [[long long int n = 1;
+ int i;
+ for (i = 0; ; i++)
+ {
+ long long int m = n << i;
+ if (m >> i != n)
+ return 1;
+ if (LLONG_MAX / 2 < m)
+ break;
+ }
+ return 0;]])],
+ [],
+ [ac_cv_type_long_long_int=no],
+ [:])
+ fi
+ fi])
+ if test $ac_cv_type_long_long_int = yes; then
+ AC_DEFINE([HAVE_LONG_LONG_INT], [1],
+ [Define to 1 if the system has the type 'long long int'.])
+ fi
+])
+
+# Define HAVE_UNSIGNED_LONG_LONG_INT if 'unsigned long long int' works.
+# This fixes a bug in Autoconf 2.61, and can be faster
+# than what's in Autoconf 2.62 through 2.68.
+
+# Note: If the type 'unsigned long long int' exists but is only 32 bits
+# large (as on some very old compilers), AC_TYPE_UNSIGNED_LONG_LONG_INT
+# will not be defined. In this case you can treat 'unsigned long long int'
+# like 'unsigned long int'.
+
+AC_DEFUN([AC_TYPE_UNSIGNED_LONG_LONG_INT],
+[
+ AC_CACHE_CHECK([for unsigned long long int],
+ [ac_cv_type_unsigned_long_long_int],
+ [ac_cv_type_unsigned_long_long_int=yes
+ if test "x${ac_cv_prog_cc_c99-no}" = xno; then
+ AC_LINK_IFELSE(
+ [_AC_TYPE_LONG_LONG_SNIPPET],
+ [],
+ [ac_cv_type_unsigned_long_long_int=no])
+ fi])
+ if test $ac_cv_type_unsigned_long_long_int = yes; then
+ AC_DEFINE([HAVE_UNSIGNED_LONG_LONG_INT], [1],
+ [Define to 1 if the system has the type 'unsigned long long int'.])
+ fi
+])
+
+# Expands to a C program that can be used to test for simultaneous support
+# of 'long long' and 'unsigned long long'. We don't want to say that
+# 'long long' is available if 'unsigned long long' is not, or vice versa,
+# because too many programs rely on the symmetry between signed and unsigned
+# integer types (excluding 'bool').
+AC_DEFUN([_AC_TYPE_LONG_LONG_SNIPPET],
+[
+ AC_LANG_PROGRAM(
+ [[/* For now, do not test the preprocessor; as of 2007 there are too many
+ implementations with broken preprocessors. Perhaps this can
+ be revisited in 2012. In the meantime, code should not expect
+ #if to work with literals wider than 32 bits. */
+ /* Test literals. */
+ long long int ll = 9223372036854775807ll;
+ long long int nll = -9223372036854775807LL;
+ unsigned long long int ull = 18446744073709551615ULL;
+ /* Test constant expressions. */
+ typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll)
+ ? 1 : -1)];
+ typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1
+ ? 1 : -1)];
+ int i = 63;]],
+ [[/* Test availability of runtime routines for shift and division. */
+ long long int llmax = 9223372036854775807ll;
+ unsigned long long int ullmax = 18446744073709551615ull;
+ return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i)
+ | (llmax / ll) | (llmax % ll)
+ | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i)
+ | (ullmax / ull) | (ullmax % ull));]])
+])
diff -urN dpkg-1.20.9/m4/printf-posix.m4 dpkg-1.20.9ubuntu1/m4/printf-posix.m4
--- dpkg-1.20.9/m4/printf-posix.m4 1970-01-01 01:00:00.000000000 +0100
+++ dpkg-1.20.9ubuntu1/m4/printf-posix.m4 2021-04-14 12:32:22.000000000 +0200
@@ -0,0 +1,48 @@
+# printf-posix.m4 serial 6 (gettext-0.18.2)
+dnl Copyright (C) 2003, 2007, 2009-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Bruno Haible.
+dnl Test whether the printf() function supports POSIX/XSI format strings with
+dnl positions.
+
+AC_DEFUN([gt_PRINTF_POSIX],
+[
+ AC_REQUIRE([AC_PROG_CC])
+ AC_CACHE_CHECK([whether printf() supports POSIX/XSI format strings],
+ gt_cv_func_printf_posix,
+ [
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <stdio.h>
+#include <string.h>
+/* The string "%2$d %1$d", with dollar characters protected from the shell's
+ dollar expansion (possibly an autoconf bug). */
+static char format[] = { '%', '2', '$', 'd', ' ', '%', '1', '$', 'd', '\0' };
+static char buf[100];
+int main ()
+{
+ sprintf (buf, format, 33, 55);
+ return (strcmp (buf, "55 33") != 0);
+}]])],
+ [gt_cv_func_printf_posix=yes],
+ [gt_cv_func_printf_posix=no],
+ [
+ AC_EGREP_CPP([notposix], [
+#if defined __NetBSD__ || defined __BEOS__ || defined _MSC_VER || defined __MINGW32__ || defined __CYGWIN__
+ notposix
+#endif
+ ],
+ [gt_cv_func_printf_posix="guessing no"],
+ [gt_cv_func_printf_posix="guessing yes"])
+ ])
+ ])
+ case $gt_cv_func_printf_posix in
+ *yes)
+ AC_DEFINE([HAVE_POSIX_PRINTF], [1],
+ [Define if your printf() function supports format strings with positions.])
+ ;;
+ esac
+])
diff -urN dpkg-1.20.9/m4/size_max.m4 dpkg-1.20.9ubuntu1/m4/size_max.m4
--- dpkg-1.20.9/m4/size_max.m4 1970-01-01 01:00:00.000000000 +0100
+++ dpkg-1.20.9ubuntu1/m4/size_max.m4 2021-04-14 12:32:22.000000000 +0200
@@ -0,0 +1,79 @@
+# size_max.m4 serial 10
+dnl Copyright (C) 2003, 2005-2006, 2008-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Bruno Haible.
+
+AC_DEFUN([gl_SIZE_MAX],
+[
+ AC_CHECK_HEADERS([stdint.h])
+ dnl First test whether the system already has SIZE_MAX.
+ AC_CACHE_CHECK([for SIZE_MAX], [gl_cv_size_max], [
+ gl_cv_size_max=
+ AC_EGREP_CPP([Found it], [
+#include <limits.h>
+#if HAVE_STDINT_H
+#include <stdint.h>
+#endif
+#ifdef SIZE_MAX
+Found it
+#endif
+], [gl_cv_size_max=yes])
+ if test -z "$gl_cv_size_max"; then
+ dnl Define it ourselves. Here we assume that the type 'size_t' is not wider
+ dnl than the type 'unsigned long'. Try hard to find a definition that can
+ dnl be used in a preprocessor #if, i.e. doesn't contain a cast.
+ AC_COMPUTE_INT([size_t_bits_minus_1], [sizeof (size_t) * CHAR_BIT - 1],
+ [#include <stddef.h>
+#include <limits.h>], [size_t_bits_minus_1=])
+ AC_COMPUTE_INT([fits_in_uint], [sizeof (size_t) <= sizeof (unsigned int)],
+ [#include <stddef.h>], [fits_in_uint=])
+ if test -n "$size_t_bits_minus_1" && test -n "$fits_in_uint"; then
+ if test $fits_in_uint = 1; then
+ dnl Even though SIZE_MAX fits in an unsigned int, it must be of type
+ dnl 'unsigned long' if the type 'size_t' is the same as 'unsigned long'.
+ AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <stddef.h>
+ extern size_t foo;
+ extern unsigned long foo;
+ ]],
+ [[]])],
+ [fits_in_uint=0])
+ fi
+ dnl We cannot use 'expr' to simplify this expression, because 'expr'
+ dnl works only with 'long' integers in the host environment, while we
+ dnl might be cross-compiling from a 32-bit platform to a 64-bit platform.
+ if test $fits_in_uint = 1; then
+ gl_cv_size_max="(((1U << $size_t_bits_minus_1) - 1) * 2 + 1)"
+ else
+ gl_cv_size_max="(((1UL << $size_t_bits_minus_1) - 1) * 2 + 1)"
+ fi
+ else
+ dnl Shouldn't happen, but who knows...
+ gl_cv_size_max='((size_t)~(size_t)0)'
+ fi
+ fi
+ ])
+ if test "$gl_cv_size_max" != yes; then
+ AC_DEFINE_UNQUOTED([SIZE_MAX], [$gl_cv_size_max],
+ [Define as the maximum value of type 'size_t', if the system doesn't define it.])
+ fi
+ dnl Don't redefine SIZE_MAX in config.h if config.h is re-included after
+ dnl <stdint.h>. Remember that the #undef in AH_VERBATIM gets replaced with
+ dnl #define by AC_DEFINE_UNQUOTED.
+ AH_VERBATIM([SIZE_MAX],
+[/* Define as the maximum value of type 'size_t', if the system doesn't define
+ it. */
+#ifndef SIZE_MAX
+# undef SIZE_MAX
+#endif])
+])
+
+dnl Autoconf >= 2.61 has AC_COMPUTE_INT built-in.
+dnl Remove this when we can assume autoconf >= 2.61.
+m4_ifdef([AC_COMPUTE_INT], [], [
+ AC_DEFUN([AC_COMPUTE_INT], [_AC_COMPUTE_INT([$2],[$1],[$3],[$4])])
+])
diff -urN dpkg-1.20.9/m4/stdint_h.m4 dpkg-1.20.9ubuntu1/m4/stdint_h.m4
--- dpkg-1.20.9/m4/stdint_h.m4 1970-01-01 01:00:00.000000000 +0100
+++ dpkg-1.20.9ubuntu1/m4/stdint_h.m4 2021-04-14 12:32:22.000000000 +0200
@@ -0,0 +1,27 @@
+# stdint_h.m4 serial 9
+dnl Copyright (C) 1997-2004, 2006, 2008-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Paul Eggert.
+
+# Define HAVE_STDINT_H_WITH_UINTMAX if <stdint.h> exists,
+# doesn't clash with <sys/types.h>, and declares uintmax_t.
+
+AC_DEFUN([gl_AC_HEADER_STDINT_H],
+[
+ AC_CACHE_CHECK([for stdint.h], [gl_cv_header_stdint_h],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <sys/types.h>
+ #include <stdint.h>]],
+ [[uintmax_t i = (uintmax_t) -1; return !i;]])],
+ [gl_cv_header_stdint_h=yes],
+ [gl_cv_header_stdint_h=no])])
+ if test $gl_cv_header_stdint_h = yes; then
+ AC_DEFINE_UNQUOTED([HAVE_STDINT_H_WITH_UINTMAX], [1],
+ [Define if <stdint.h> exists, doesn't clash with <sys/types.h>,
+ and declares uintmax_t. ])
+ fi
+])
diff -urN dpkg-1.20.9/m4/threadlib.m4 dpkg-1.20.9ubuntu1/m4/threadlib.m4
--- dpkg-1.20.9/m4/threadlib.m4 1970-01-01 01:00:00.000000000 +0100
+++ dpkg-1.20.9ubuntu1/m4/threadlib.m4 2021-04-14 12:32:22.000000000 +0200
@@ -0,0 +1,389 @@
+# threadlib.m4 serial 11 (gettext-0.18.2)
+dnl Copyright (C) 2005-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Bruno Haible.
+
+dnl gl_THREADLIB
+dnl ------------
+dnl Tests for a multithreading library to be used.
+dnl If the configure.ac contains a definition of the gl_THREADLIB_DEFAULT_NO
+dnl (it must be placed before the invocation of gl_THREADLIB_EARLY!), then the
+dnl default is 'no', otherwise it is system dependent. In both cases, the user
+dnl can change the choice through the options --enable-threads=choice or
+dnl --disable-threads.
+dnl Defines at most one of the macros USE_POSIX_THREADS, USE_SOLARIS_THREADS,
+dnl USE_PTH_THREADS, USE_WINDOWS_THREADS
+dnl Sets the variables LIBTHREAD and LTLIBTHREAD to the linker options for use
+dnl in a Makefile (LIBTHREAD for use without libtool, LTLIBTHREAD for use with
+dnl libtool).
+dnl Sets the variables LIBMULTITHREAD and LTLIBMULTITHREAD similarly, for
+dnl programs that really need multithread functionality. The difference
+dnl between LIBTHREAD and LIBMULTITHREAD is that on platforms supporting weak
+dnl symbols, typically LIBTHREAD is empty whereas LIBMULTITHREAD is not.
+dnl Adds to CPPFLAGS the flag -D_REENTRANT or -D_THREAD_SAFE if needed for
+dnl multithread-safe programs.
+
+AC_DEFUN([gl_THREADLIB_EARLY],
+[
+ AC_REQUIRE([gl_THREADLIB_EARLY_BODY])
+])
+
+dnl The guts of gl_THREADLIB_EARLY. Needs to be expanded only once.
+
+AC_DEFUN([gl_THREADLIB_EARLY_BODY],
+[
+ dnl Ordering constraints: This macro modifies CPPFLAGS in a way that
+ dnl influences the result of the autoconf tests that test for *_unlocked
+ dnl declarations, on AIX 5 at least. Therefore it must come early.
+ AC_BEFORE([$0], [gl_FUNC_GLIBC_UNLOCKED_IO])dnl
+ AC_BEFORE([$0], [gl_ARGP])dnl
+
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ dnl _GNU_SOURCE is needed for pthread_rwlock_t on glibc systems.
+ dnl AC_USE_SYSTEM_EXTENSIONS was introduced in autoconf 2.60 and obsoletes
+ dnl AC_GNU_SOURCE.
+ m4_ifdef([AC_USE_SYSTEM_EXTENSIONS],
+ [AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])],
+ [AC_REQUIRE([AC_GNU_SOURCE])])
+ dnl Check for multithreading.
+ m4_ifdef([gl_THREADLIB_DEFAULT_NO],
+ [m4_divert_text([DEFAULTS], [gl_use_threads_default=no])],
+ [m4_divert_text([DEFAULTS], [gl_use_threads_default=])])
+ AC_ARG_ENABLE([threads],
+AC_HELP_STRING([--enable-threads={posix|solaris|pth|windows}], [specify multithreading API])m4_ifdef([gl_THREADLIB_DEFAULT_NO], [], [
+AC_HELP_STRING([--disable-threads], [build without multithread safety])]),
+ [gl_use_threads=$enableval],
+ [if test -n "$gl_use_threads_default"; then
+ gl_use_threads="$gl_use_threads_default"
+ else
+changequote(,)dnl
+ case "$host_os" in
+ dnl Disable multithreading by default on OSF/1, because it interferes
+ dnl with fork()/exec(): When msgexec is linked with -lpthread, its
+ dnl child process gets an endless segmentation fault inside execvp().
+ dnl Disable multithreading by default on Cygwin 1.5.x, because it has
+ dnl bugs that lead to endless loops or crashes. See
+ dnl <http://cygwin.com/ml/cygwin/2009-08/msg00283.html>.
+ osf*) gl_use_threads=no ;;
+ cygwin*)
+ case `uname -r` in
+ 1.[0-5].*) gl_use_threads=no ;;
+ *) gl_use_threads=yes ;;
+ esac
+ ;;
+ *) gl_use_threads=yes ;;
+ esac
+changequote([,])dnl
+ fi
+ ])
+ if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then
+ # For using <pthread.h>:
+ case "$host_os" in
+ osf*)
+ # On OSF/1, the compiler needs the flag -D_REENTRANT so that it
+ # groks <pthread.h>. cc also understands the flag -pthread, but
+ # we don't use it because 1. gcc-2.95 doesn't understand -pthread,
+ # 2. putting a flag into CPPFLAGS that has an effect on the linker
+ # causes the AC_LINK_IFELSE test below to succeed unexpectedly,
+ # leading to wrong values of LIBTHREAD and LTLIBTHREAD.
+ CPPFLAGS="$CPPFLAGS -D_REENTRANT"
+ ;;
+ esac
+ # Some systems optimize for single-threaded programs by default, and
+ # need special flags to disable these optimizations. For example, the
+ # definition of 'errno' in <errno.h>.
+ case "$host_os" in
+ aix* | freebsd*) CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE" ;;
+ solaris*) CPPFLAGS="$CPPFLAGS -D_REENTRANT" ;;
+ esac
+ fi
+])
+
+dnl The guts of gl_THREADLIB. Needs to be expanded only once.
+
+AC_DEFUN([gl_THREADLIB_BODY],
+[
+ AC_REQUIRE([gl_THREADLIB_EARLY_BODY])
+ gl_threads_api=none
+ LIBTHREAD=
+ LTLIBTHREAD=
+ LIBMULTITHREAD=
+ LTLIBMULTITHREAD=
+ if test "$gl_use_threads" != no; then
+ dnl Check whether the compiler and linker support weak declarations.
+ AC_CACHE_CHECK([whether imported symbols can be declared weak],
+ [gl_cv_have_weak],
+ [gl_cv_have_weak=no
+ dnl First, test whether the compiler accepts it syntactically.
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[extern void xyzzy ();
+#pragma weak xyzzy]],
+ [[xyzzy();]])],
+ [gl_cv_have_weak=maybe])
+ if test $gl_cv_have_weak = maybe; then
+ dnl Second, test whether it actually works. On Cygwin 1.7.2, with
+ dnl gcc 4.3, symbols declared weak always evaluate to the address 0.
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <stdio.h>
+#pragma weak fputs
+int main ()
+{
+ return (fputs == NULL);
+}]])],
+ [gl_cv_have_weak=yes],
+ [gl_cv_have_weak=no],
+ [dnl When cross-compiling, assume that only ELF platforms support
+ dnl weak symbols.
+ AC_EGREP_CPP([Extensible Linking Format],
+ [#ifdef __ELF__
+ Extensible Linking Format
+ #endif
+ ],
+ [gl_cv_have_weak="guessing yes"],
+ [gl_cv_have_weak="guessing no"])
+ ])
+ fi
+ ])
+ if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then
+ # On OSF/1, the compiler needs the flag -pthread or -D_REENTRANT so that
+ # it groks <pthread.h>. It's added above, in gl_THREADLIB_EARLY_BODY.
+ AC_CHECK_HEADER([pthread.h],
+ [gl_have_pthread_h=yes], [gl_have_pthread_h=no])
+ if test "$gl_have_pthread_h" = yes; then
+ # Other possible tests:
+ # -lpthreads (FSU threads, PCthreads)
+ # -lgthreads
+ gl_have_pthread=
+ # Test whether both pthread_mutex_lock and pthread_mutexattr_init exist
+ # in libc. IRIX 6.5 has the first one in both libc and libpthread, but
+ # the second one only in libpthread, and lock.c needs it.
+ #
+ # If -pthread works, prefer it to -lpthread, since Ubuntu 14.04
+ # needs -pthread for some reason. See:
+ # http://lists.gnu.org/archive/html/bug-gnulib/2014-09/msg00023.html
+ save_LIBS=$LIBS
+ for gl_pthread in '' '-pthread'; do
+ LIBS="$LIBS $gl_pthread"
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <pthread.h>
+ pthread_mutex_t m;
+ pthread_mutexattr_t ma;
+ ]],
+ [[pthread_mutex_lock (&m);
+ pthread_mutexattr_init (&ma);]])],
+ [gl_have_pthread=yes
+ LIBTHREAD=$gl_pthread LTLIBTHREAD=$gl_pthread
+ LIBMULTITHREAD=$gl_pthread LTLIBMULTITHREAD=$gl_pthread])
+ LIBS=$save_LIBS
+ test -n "$gl_have_pthread" && break
+ done
+
+ # Test for libpthread by looking for pthread_kill. (Not pthread_self,
+ # since it is defined as a macro on OSF/1.)
+ if test -n "$gl_have_pthread" && test -z "$LIBTHREAD"; then
+ # The program links fine without libpthread. But it may actually
+ # need to link with libpthread in order to create multiple threads.
+ AC_CHECK_LIB([pthread], [pthread_kill],
+ [LIBMULTITHREAD=-lpthread LTLIBMULTITHREAD=-lpthread
+ # On Solaris and HP-UX, most pthread functions exist also in libc.
+ # Therefore pthread_in_use() needs to actually try to create a
+ # thread: pthread_create from libc will fail, whereas
+ # pthread_create will actually create a thread.
+ case "$host_os" in
+ solaris* | hpux*)
+ AC_DEFINE([PTHREAD_IN_USE_DETECTION_HARD], [1],
+ [Define if the pthread_in_use() detection is hard.])
+ esac
+ ])
+ elif test -z "$gl_have_pthread"; then
+ # Some library is needed. Try libpthread and libc_r.
+ AC_CHECK_LIB([pthread], [pthread_kill],
+ [gl_have_pthread=yes
+ LIBTHREAD=-lpthread LTLIBTHREAD=-lpthread
+ LIBMULTITHREAD=-lpthread LTLIBMULTITHREAD=-lpthread])
+ if test -z "$gl_have_pthread"; then
+ # For FreeBSD 4.
+ AC_CHECK_LIB([c_r], [pthread_kill],
+ [gl_have_pthread=yes
+ LIBTHREAD=-lc_r LTLIBTHREAD=-lc_r
+ LIBMULTITHREAD=-lc_r LTLIBMULTITHREAD=-lc_r])
+ fi
+ fi
+ if test -n "$gl_have_pthread"; then
+ gl_threads_api=posix
+ AC_DEFINE([USE_POSIX_THREADS], [1],
+ [Define if the POSIX multithreading library can be used.])
+ if test -n "$LIBMULTITHREAD" || test -n "$LTLIBMULTITHREAD"; then
+ if case "$gl_cv_have_weak" in *yes) true;; *) false;; esac; then
+ AC_DEFINE([USE_POSIX_THREADS_WEAK], [1],
+ [Define if references to the POSIX multithreading library should be made weak.])
+ LIBTHREAD=
+ LTLIBTHREAD=
+ fi
+ fi
+ fi
+ fi
+ fi
+ if test -z "$gl_have_pthread"; then
+ if test "$gl_use_threads" = yes || test "$gl_use_threads" = solaris; then
+ gl_have_solaristhread=
+ gl_save_LIBS="$LIBS"
+ LIBS="$LIBS -lthread"
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[
+#include <thread.h>
+#include <synch.h>
+ ]],
+ [[thr_self();]])],
+ [gl_have_solaristhread=yes])
+ LIBS="$gl_save_LIBS"
+ if test -n "$gl_have_solaristhread"; then
+ gl_threads_api=solaris
+ LIBTHREAD=-lthread
+ LTLIBTHREAD=-lthread
+ LIBMULTITHREAD="$LIBTHREAD"
+ LTLIBMULTITHREAD="$LTLIBTHREAD"
+ AC_DEFINE([USE_SOLARIS_THREADS], [1],
+ [Define if the old Solaris multithreading library can be used.])
+ if case "$gl_cv_have_weak" in *yes) true;; *) false;; esac; then
+ AC_DEFINE([USE_SOLARIS_THREADS_WEAK], [1],
+ [Define if references to the old Solaris multithreading library should be made weak.])
+ LIBTHREAD=
+ LTLIBTHREAD=
+ fi
+ fi
+ fi
+ fi
+ if test "$gl_use_threads" = pth; then
+ gl_save_CPPFLAGS="$CPPFLAGS"
+ AC_LIB_LINKFLAGS([pth])
+ gl_have_pth=
+ gl_save_LIBS="$LIBS"
+ LIBS="$LIBS $LIBPTH"
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM([[#include <pth.h>]], [[pth_self();]])],
+ [gl_have_pth=yes])
+ LIBS="$gl_save_LIBS"
+ if test -n "$gl_have_pth"; then
+ gl_threads_api=pth
+ LIBTHREAD="$LIBPTH"
+ LTLIBTHREAD="$LTLIBPTH"
+ LIBMULTITHREAD="$LIBTHREAD"
+ LTLIBMULTITHREAD="$LTLIBTHREAD"
+ AC_DEFINE([USE_PTH_THREADS], [1],
+ [Define if the GNU Pth multithreading library can be used.])
+ if test -n "$LIBMULTITHREAD" || test -n "$LTLIBMULTITHREAD"; then
+ if case "$gl_cv_have_weak" in *yes) true;; *) false;; esac; then
+ AC_DEFINE([USE_PTH_THREADS_WEAK], [1],
+ [Define if references to the GNU Pth multithreading library should be made weak.])
+ LIBTHREAD=
+ LTLIBTHREAD=
+ fi
+ fi
+ else
+ CPPFLAGS="$gl_save_CPPFLAGS"
+ fi
+ fi
+ if test -z "$gl_have_pthread"; then
+ case "$gl_use_threads" in
+ yes | windows | win32) # The 'win32' is for backward compatibility.
+ if { case "$host_os" in
+ mingw*) true;;
+ *) false;;
+ esac
+ }; then
+ gl_threads_api=windows
+ AC_DEFINE([USE_WINDOWS_THREADS], [1],
+ [Define if the native Windows multithreading API can be used.])
+ fi
+ ;;
+ esac
+ fi
+ fi
+ AC_MSG_CHECKING([for multithread API to use])
+ AC_MSG_RESULT([$gl_threads_api])
+ AC_SUBST([LIBTHREAD])
+ AC_SUBST([LTLIBTHREAD])
+ AC_SUBST([LIBMULTITHREAD])
+ AC_SUBST([LTLIBMULTITHREAD])
+])
+
+AC_DEFUN([gl_THREADLIB],
+[
+ AC_REQUIRE([gl_THREADLIB_EARLY])
+ AC_REQUIRE([gl_THREADLIB_BODY])
+])
+
+
+dnl gl_DISABLE_THREADS
+dnl ------------------
+dnl Sets the gl_THREADLIB default so that threads are not used by default.
+dnl The user can still override it at installation time, by using the
+dnl configure option '--enable-threads'.
+
+AC_DEFUN([gl_DISABLE_THREADS], [
+ m4_divert_text([INIT_PREPARE], [gl_use_threads_default=no])
+])
+
+
+dnl Survey of platforms:
+dnl
+dnl Platform Available Compiler Supports test-lock
+dnl flavours option weak result
+dnl --------------- --------- --------- -------- ---------
+dnl Linux 2.4/glibc posix -lpthread Y OK
+dnl
+dnl GNU Hurd/glibc posix
+dnl
+dnl Ubuntu 14.04 posix -pthread Y OK
+dnl
+dnl FreeBSD 5.3 posix -lc_r Y
+dnl posix -lkse ? Y
+dnl posix -lpthread ? Y
+dnl posix -lthr Y
+dnl
+dnl FreeBSD 5.2 posix -lc_r Y
+dnl posix -lkse Y
+dnl posix -lthr Y
+dnl
+dnl FreeBSD 4.0,4.10 posix -lc_r Y OK
+dnl
+dnl NetBSD 1.6 --
+dnl
+dnl OpenBSD 3.4 posix -lpthread Y OK
+dnl
+dnl Mac OS X 10.[123] posix -lpthread Y OK
+dnl
+dnl Solaris 7,8,9 posix -lpthread Y Sol 7,8: 0.0; Sol 9: OK
+dnl solaris -lthread Y Sol 7,8: 0.0; Sol 9: OK
+dnl
+dnl HP-UX 11 posix -lpthread N (cc) OK
+dnl Y (gcc)
+dnl
+dnl IRIX 6.5 posix -lpthread Y 0.5
+dnl
+dnl AIX 4.3,5.1 posix -lpthread N AIX 4: 0.5; AIX 5: OK
+dnl
+dnl OSF/1 4.0,5.1 posix -pthread (cc) N OK
+dnl -lpthread (gcc) Y
+dnl
+dnl Cygwin posix -lpthread Y OK
+dnl
+dnl Any of the above pth -lpth 0.0
+dnl
+dnl Mingw windows N OK
+dnl
+dnl BeOS 5 --
+dnl
+dnl The test-lock result shows what happens if in test-lock.c EXPLICIT_YIELD is
+dnl turned off:
+dnl OK if all three tests terminate OK,
+dnl 0.5 if the first test terminates OK but the second one loops endlessly,
+dnl 0.0 if the first test already loops endlessly.
diff -urN dpkg-1.20.9/m4/uintmax_t.m4 dpkg-1.20.9ubuntu1/m4/uintmax_t.m4
--- dpkg-1.20.9/m4/uintmax_t.m4 1970-01-01 01:00:00.000000000 +0100
+++ dpkg-1.20.9ubuntu1/m4/uintmax_t.m4 2021-04-14 12:32:22.000000000 +0200
@@ -0,0 +1,30 @@
+# uintmax_t.m4 serial 12
+dnl Copyright (C) 1997-2004, 2007-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Paul Eggert.
+
+AC_PREREQ([2.13])
+
+# Define uintmax_t to 'unsigned long' or 'unsigned long long'
+# if it is not already defined in <stdint.h> or <inttypes.h>.
+
+AC_DEFUN([gl_AC_TYPE_UINTMAX_T],
+[
+ AC_REQUIRE([gl_AC_HEADER_INTTYPES_H])
+ AC_REQUIRE([gl_AC_HEADER_STDINT_H])
+ if test $gl_cv_header_inttypes_h = no && test $gl_cv_header_stdint_h = no; then
+ AC_REQUIRE([AC_TYPE_UNSIGNED_LONG_LONG_INT])
+ test $ac_cv_type_unsigned_long_long_int = yes \
+ && ac_type='unsigned long long' \
+ || ac_type='unsigned long'
+ AC_DEFINE_UNQUOTED([uintmax_t], [$ac_type],
+ [Define to unsigned long or unsigned long long
+ if <stdint.h> and <inttypes.h> don't define.])
+ else
+ AC_DEFINE([HAVE_UINTMAX_T], [1],
+ [Define if you have the 'uintmax_t' type in <stdint.h> or <inttypes.h>.])
+ fi
+])
diff -urN dpkg-1.20.9/m4/visibility.m4 dpkg-1.20.9ubuntu1/m4/visibility.m4
--- dpkg-1.20.9/m4/visibility.m4 1970-01-01 01:00:00.000000000 +0100
+++ dpkg-1.20.9ubuntu1/m4/visibility.m4 2021-04-14 12:32:22.000000000 +0200
@@ -0,0 +1,77 @@
+# visibility.m4 serial 5 (gettext-0.18.2)
+dnl Copyright (C) 2005, 2008, 2010-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Bruno Haible.
+
+dnl Tests whether the compiler supports the command-line option
+dnl -fvisibility=hidden and the function and variable attributes
+dnl __attribute__((__visibility__("hidden"))) and
+dnl __attribute__((__visibility__("default"))).
+dnl Does *not* test for __visibility__("protected") - which has tricky
+dnl semantics (see the 'vismain' test in glibc) and does not exist e.g. on
+dnl Mac OS X.
+dnl Does *not* test for __visibility__("internal") - which has processor
+dnl dependent semantics.
+dnl Does *not* test for #pragma GCC visibility push(hidden) - which is
+dnl "really only recommended for legacy code".
+dnl Set the variable CFLAG_VISIBILITY.
+dnl Defines and sets the variable HAVE_VISIBILITY.
+
+AC_DEFUN([gl_VISIBILITY],
+[
+ AC_REQUIRE([AC_PROG_CC])
+ CFLAG_VISIBILITY=
+ HAVE_VISIBILITY=0
+ if test -n "$GCC"; then
+ dnl First, check whether -Werror can be added to the command line, or
+ dnl whether it leads to an error because of some other option that the
+ dnl user has put into $CC $CFLAGS $CPPFLAGS.
+ AC_MSG_CHECKING([whether the -Werror option is usable])
+ AC_CACHE_VAL([gl_cv_cc_vis_werror], [
+ gl_save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -Werror"
+ AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([[]], [[]])],
+ [gl_cv_cc_vis_werror=yes],
+ [gl_cv_cc_vis_werror=no])
+ CFLAGS="$gl_save_CFLAGS"])
+ AC_MSG_RESULT([$gl_cv_cc_vis_werror])
+ dnl Now check whether visibility declarations are supported.
+ AC_MSG_CHECKING([for simple visibility declarations])
+ AC_CACHE_VAL([gl_cv_cc_visibility], [
+ gl_save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -fvisibility=hidden"
+ dnl We use the option -Werror and a function dummyfunc, because on some
+ dnl platforms (Cygwin 1.7) the use of -fvisibility triggers a warning
+ dnl "visibility attribute not supported in this configuration; ignored"
+ dnl at the first function definition in every compilation unit, and we
+ dnl don't want to use the option in this case.
+ if test $gl_cv_cc_vis_werror = yes; then
+ CFLAGS="$CFLAGS -Werror"
+ fi
+ AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[extern __attribute__((__visibility__("hidden"))) int hiddenvar;
+ extern __attribute__((__visibility__("default"))) int exportedvar;
+ extern __attribute__((__visibility__("hidden"))) int hiddenfunc (void);
+ extern __attribute__((__visibility__("default"))) int exportedfunc (void);
+ void dummyfunc (void) {}
+ ]],
+ [[]])],
+ [gl_cv_cc_visibility=yes],
+ [gl_cv_cc_visibility=no])
+ CFLAGS="$gl_save_CFLAGS"])
+ AC_MSG_RESULT([$gl_cv_cc_visibility])
+ if test $gl_cv_cc_visibility = yes; then
+ CFLAG_VISIBILITY="-fvisibility=hidden"
+ HAVE_VISIBILITY=1
+ fi
+ fi
+ AC_SUBST([CFLAG_VISIBILITY])
+ AC_SUBST([HAVE_VISIBILITY])
+ AC_DEFINE_UNQUOTED([HAVE_VISIBILITY], [$HAVE_VISIBILITY],
+ [Define to 1 or 0, depending whether the compiler supports simple visibility declarations.])
+])
diff -urN dpkg-1.20.9/m4/wchar_t.m4 dpkg-1.20.9ubuntu1/m4/wchar_t.m4
--- dpkg-1.20.9/m4/wchar_t.m4 1970-01-01 01:00:00.000000000 +0100
+++ dpkg-1.20.9ubuntu1/m4/wchar_t.m4 2021-04-14 12:32:22.000000000 +0200
@@ -0,0 +1,24 @@
+# wchar_t.m4 serial 4 (gettext-0.18.2)
+dnl Copyright (C) 2002-2003, 2008-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Bruno Haible.
+dnl Test whether <stddef.h> has the 'wchar_t' type.
+dnl Prerequisite: AC_PROG_CC
+
+AC_DEFUN([gt_TYPE_WCHAR_T],
+[
+ AC_CACHE_CHECK([for wchar_t], [gt_cv_c_wchar_t],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <stddef.h>
+ wchar_t foo = (wchar_t)'\0';]],
+ [[]])],
+ [gt_cv_c_wchar_t=yes],
+ [gt_cv_c_wchar_t=no])])
+ if test $gt_cv_c_wchar_t = yes; then
+ AC_DEFINE([HAVE_WCHAR_T], [1], [Define if you have the 'wchar_t' type.])
+ fi
+])
diff -urN dpkg-1.20.9/m4/wint_t.m4 dpkg-1.20.9ubuntu1/m4/wint_t.m4
--- dpkg-1.20.9/m4/wint_t.m4 1970-01-01 01:00:00.000000000 +0100
+++ dpkg-1.20.9ubuntu1/m4/wint_t.m4 2021-04-14 12:32:22.000000000 +0200
@@ -0,0 +1,32 @@
+# wint_t.m4 serial 5 (gettext-0.18.2)
+dnl Copyright (C) 2003, 2007-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Bruno Haible.
+dnl Test whether <wchar.h> has the 'wint_t' type.
+dnl Prerequisite: AC_PROG_CC
+
+AC_DEFUN([gt_TYPE_WINT_T],
+[
+ AC_CACHE_CHECK([for wint_t], [gt_cv_c_wint_t],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+ <wchar.h>.
+ BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included
+ before <wchar.h>. */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
+#include <wchar.h>
+ wint_t foo = (wchar_t)'\0';]],
+ [[]])],
+ [gt_cv_c_wint_t=yes],
+ [gt_cv_c_wint_t=no])])
+ if test $gt_cv_c_wint_t = yes; then
+ AC_DEFINE([HAVE_WINT_T], [1], [Define if you have the 'wint_t' type.])
+ fi
+])
diff -urN dpkg-1.20.9/m4/xsize.m4 dpkg-1.20.9ubuntu1/m4/xsize.m4
--- dpkg-1.20.9/m4/xsize.m4 1970-01-01 01:00:00.000000000 +0100
+++ dpkg-1.20.9ubuntu1/m4/xsize.m4 2021-04-14 12:32:22.000000000 +0200
@@ -0,0 +1,12 @@
+# xsize.m4 serial 5
+dnl Copyright (C) 2003-2004, 2008-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_XSIZE],
+[
+ dnl Prerequisites of lib/xsize.h.
+ AC_REQUIRE([gl_SIZE_MAX])
+ AC_CHECK_HEADERS([stdint.h])
+])
diff -urN dpkg-1.20.9/Makefile.in dpkg-1.20.9ubuntu1/Makefile.in
--- dpkg-1.20.9/Makefile.in 2021-04-14 00:43:39.000000000 +0200
+++ dpkg-1.20.9ubuntu1/Makefile.in 2021-04-14 12:32:22.000000000 +0200
@@ -225,9 +225,9 @@
$(top_srcdir)/build-aux/ltmain.sh \
$(top_srcdir)/build-aux/missing $(top_srcdir)/check.am \
$(top_srcdir)/cpan.am $(top_srcdir)/doc/Doxyfile.in ABOUT-NLS \
- AUTHORS COPYING NEWS README THANKS TODO build-aux/ar-lib \
- build-aux/compile build-aux/config.guess \
- build-aux/config.rpath build-aux/config.sub \
+ AUTHORS COPYING ChangeLog NEWS README THANKS TODO \
+ build-aux/ar-lib build-aux/compile build-aux/config.guess \
+ build-aux/config.rpath build-aux/config.sub build-aux/depcomp \
build-aux/install-sh build-aux/ltmain.sh build-aux/missing
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(PACKAGE)-$(VERSION)
@@ -393,6 +393,7 @@
XGETTEXT = @XGETTEXT@
XGETTEXT_015 = @XGETTEXT_015@
XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+ZSTD_LIBS = @ZSTD_LIBS@
Z_LIBS = @Z_LIBS@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
diff -urN dpkg-1.20.9/man/dpkg-buildflags.pod dpkg-1.20.9ubuntu1/man/dpkg-buildflags.pod
--- dpkg-1.20.9/man/dpkg-buildflags.pod 2021-04-05 00:50:44.000000000 +0200
+++ dpkg-1.20.9ubuntu1/man/dpkg-buildflags.pod 2021-04-14 12:32:22.000000000 +0200
@@ -354,6 +354,24 @@
=back
+=head2 optimize
+
+Several compile-time options (detailed below) can be used to help optimize
+a resulting binary (since dpkg 1.21.0).
+B<Note>: enabling B<all> these options can result in unreproducible binary
+artifacts.
+
+=over
+
+=item lto
+
+This setting (since dpkg 1.21.0; disabled by default) enables
+Link Time Optimization by adding B<-flto=auto -ffat-lto-objects> to
+B<CFLAGS>, B<CXXFLAGS>, B<OBJCFLAGS>, B<OBJCXXFLAGS>, B<GCJFLAGS>,
+B<FFLAGS> and B<FCFLAGS>.
+
+=back
+
=head2 sanitize
Several compile-time options (detailed below) can be used to help sanitize
diff -urN dpkg-1.20.9/man/dpkg-deb.pod dpkg-1.20.9ubuntu1/man/dpkg-deb.pod
--- dpkg-1.20.9/man/dpkg-deb.pod 2021-01-30 07:09:02.000000000 +0100
+++ dpkg-1.20.9ubuntu1/man/dpkg-deb.pod 2021-06-14 16:04:10.000000000 +0200
@@ -254,7 +254,7 @@
=item B<-z>I<compress-level>
Specify which compression level to use on the compressor backend, when
-building a package (default is 9 for gzip, 6 for xz).
+building a package (default is 9 for gzip, 6 for xz and 19 for zstd).
The accepted values are 0-9 with: 0 being mapped to compressor none for gzip.
Before dpkg 1.16.2 level 0 was equivalent to compressor none for all
compressors.
@@ -269,8 +269,8 @@
=item B<-Z>I<compress-type>
Specify which compression type to use when building a package.
-Allowed values are B<gzip>, B<xz> (since dpkg 1.15.6),
-and B<none> (default is B<xz>).
+Allowed values are B<gzip>, B<xz> (since dpkg 1.15.6), B<zstd>
+(since dpkg 1.19.0.5ubuntu2) and B<none> (default is B<zstd>).
=item B<--[no-]uniform-compression>
@@ -278,8 +278,7 @@
members (i.e. B<control.tar> and B<data.tar>; since dpkg 1.17.6).
Otherwise only the
B<data.tar> member will use those parameters. The only supported
-compression types allowed to be uniformly used are B<none>, B<gzip>
-and B<xz>.
+compression types allowed to be uniformly used are B<none>, B<gzip>, B<xz> and B<zstd>.
The B<--no-uniform-compression> option disables uniform compression
(since dpkg 1.19.0).
Uniform compression is the default (since dpkg 1.19.0).
diff -urN dpkg-1.20.9/man/Makefile.in dpkg-1.20.9ubuntu1/man/Makefile.in
--- dpkg-1.20.9/man/Makefile.in 2021-04-14 00:43:39.000000000 +0200
+++ dpkg-1.20.9ubuntu1/man/Makefile.in 2021-04-14 12:32:22.000000000 +0200
@@ -300,6 +300,7 @@
XGETTEXT = @XGETTEXT@
XGETTEXT_015 = @XGETTEXT_015@
XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+ZSTD_LIBS = @ZSTD_LIBS@
Z_LIBS = @Z_LIBS@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
diff -urN dpkg-1.20.9/man/po/dpkg-man.pot dpkg-1.20.9ubuntu1/man/po/dpkg-man.pot
--- dpkg-1.20.9/man/po/dpkg-man.pot 2021-04-14 00:43:16.000000000 +0200
+++ dpkg-1.20.9ubuntu1/man/po/dpkg-man.pot 2021-04-14 12:32:22.000000000 +0200
@@ -9390,7 +9390,8 @@
#: dpkg-deb.pod
msgid ""
"Specify which compression level to use on the compressor backend, when "
-"building a package (default is 9 for gzip, 6 for xz). The accepted values "
+"building a package (default is 9 for gzip, 6 for xz and 19 for zstd). "
+"The accepted values "
"are 0-9 with: 0 being mapped to compressor none for gzip. Before dpkg "
"1.16.2 level 0 was equivalent to compressor none for all compressors."
msgstr ""
diff -urN dpkg-1.20.9/po/Makevars.template dpkg-1.20.9ubuntu1/po/Makevars.template
--- dpkg-1.20.9/po/Makevars.template 1970-01-01 01:00:00.000000000 +0100
+++ dpkg-1.20.9ubuntu1/po/Makevars.template 2021-04-14 12:32:22.000000000 +0200
@@ -0,0 +1,78 @@
+# Makefile variables for PO directory in any package using GNU gettext.
+
+# Usually the message domain is the same as the package name.
+DOMAIN = $(PACKAGE)
+
+# These two variables depend on the location of this directory.
+subdir = po
+top_builddir = ..
+
+# These options get passed to xgettext.
+XGETTEXT_OPTIONS = --keyword=_ --keyword=N_
+
+# This is the copyright holder that gets inserted into the header of the
+# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding
+# package. (Note that the msgstr strings, extracted from the package's
+# sources, belong to the copyright holder of the package.) Translators are
+# expected to transfer the copyright for their translations to this person
+# or entity, or to disclaim their copyright. The empty string stands for
+# the public domain; in this case the translators are expected to disclaim
+# their copyright.
+COPYRIGHT_HOLDER = Free Software Foundation, Inc.
+
+# This tells whether or not to prepend "GNU " prefix to the package
+# name that gets inserted into the header of the $(DOMAIN).pot file.
+# Possible values are "yes", "no", or empty. If it is empty, try to
+# detect it automatically by scanning the files in $(top_srcdir) for
+# "GNU packagename" string.
+PACKAGE_GNU =
+
+# This is the email address or URL to which the translators shall report
+# bugs in the untranslated strings:
+# - Strings which are not entire sentences, see the maintainer guidelines
+# in the GNU gettext documentation, section 'Preparing Strings'.
+# - Strings which use unclear terms or require additional context to be
+# understood.
+# - Strings which make invalid assumptions about notation of date, time or
+# money.
+# - Pluralisation problems.
+# - Incorrect English spelling.
+# - Incorrect formatting.
+# It can be your email address, or a mailing list address where translators
+# can write to without being subscribed, or the URL of a web page through
+# which the translators can contact you.
+MSGID_BUGS_ADDRESS =
+
+# This is the list of locale categories, beyond LC_MESSAGES, for which the
+# message catalogs shall be used. It is usually empty.
+EXTRA_LOCALE_CATEGORIES =
+
+# This tells whether the $(DOMAIN).pot file contains messages with an 'msgctxt'
+# context. Possible values are "yes" and "no". Set this to yes if the
+# package uses functions taking also a message context, like pgettext(), or
+# if in $(XGETTEXT_OPTIONS) you define keywords with a context argument.
+USE_MSGCTXT = no
+
+# These options get passed to msgmerge.
+# Useful options are in particular:
+# --previous to keep previous msgids of translated messages,
+# --quiet to reduce the verbosity.
+MSGMERGE_OPTIONS =
+
+# These options get passed to msginit.
+# If you want to disable line wrapping when writing PO files, add
+# --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and
+# MSGINIT_OPTIONS.
+MSGINIT_OPTIONS =
+
+# This tells whether or not to regenerate a PO file when $(DOMAIN).pot
+# has changed. Possible values are "yes" and "no". Set this to no if
+# the POT file is checked in the repository and the version control
+# program ignores timestamps.
+PO_DEPENDS_ON_POT = yes
+
+# This tells whether or not to forcibly update $(DOMAIN).pot and
+# regenerate PO files on "make dist". Possible values are "yes" and
+# "no". Set this to no if the POT file and PO files are maintained
+# externally.
+DIST_DEPENDS_ON_UPDATE_PO = yes
diff -urN dpkg-1.20.9/README dpkg-1.20.9ubuntu1/README
--- dpkg-1.20.9/README 2021-01-30 07:07:17.000000000 +0100
+++ dpkg-1.20.9ubuntu1/README 2021-04-14 12:32:22.000000000 +0200
@@ -73,6 +73,7 @@
libmd (used by libdpkg, currently falling back to embedded code)
libz (from zlib, used instead of gzip command-line tool)
+ libzstd (from libzstd, used instead of zstd command-line tool)
liblzma (from xz utils, used instead of xz command-line tool)
libbz2 (from bzip2, used instead of bzip2 command-line tool)
libselinux
diff -urN dpkg-1.20.9/scripts/Dpkg/BuildProfiles.pm dpkg-1.20.9ubuntu1/scripts/Dpkg/BuildProfiles.pm
--- dpkg-1.20.9/scripts/Dpkg/BuildProfiles.pm 2021-01-30 07:07:17.000000000 +0100
+++ dpkg-1.20.9ubuntu1/scripts/Dpkg/BuildProfiles.pm 2021-04-14 12:32:22.000000000 +0200
@@ -30,6 +30,7 @@
use List::Util qw(any);
use Dpkg::Build::Env;
+use Dpkg::Vendor qw(run_vendor_hook);
my $cache_profiles;
my @build_profiles;
@@ -63,6 +64,7 @@
@build_profiles = split ' ', Dpkg::Build::Env::get('DEB_BUILD_PROFILES');
}
$cache_profiles = 1;
+ run_vendor_hook('update-buildprofiles', \@build_profiles);
return @build_profiles;
}
@@ -79,7 +81,8 @@
$cache_profiles = 1;
@build_profiles = @profiles;
- Dpkg::Build::Env::set('DEB_BUILD_PROFILES', join ' ', @profiles);
+ run_vendor_hook('update-buildprofiles', \@build_profiles);
+ Dpkg::Build::Env::set('DEB_BUILD_PROFILES', join ' ', @build_profiles);
}
=item @profiles = parse_build_profiles($string)
diff -urN dpkg-1.20.9/scripts/Dpkg/Shlibs/Objdump.pm dpkg-1.20.9ubuntu1/scripts/Dpkg/Shlibs/Objdump.pm
--- dpkg-1.20.9/scripts/Dpkg/Shlibs/Objdump.pm 2021-01-30 07:07:17.000000000 +0100
+++ dpkg-1.20.9ubuntu1/scripts/Dpkg/Shlibs/Objdump.pm 2021-04-14 12:32:22.000000000 +0200
@@ -24,6 +24,7 @@
use Dpkg::Gettext;
use Dpkg::ErrorHandling;
+use Dpkg::IPC;
sub new {
my $this = shift;
@@ -73,6 +74,53 @@
return exists $self->{objects}{$objid};
}
+sub is_armhf {
+ my ($file) = @_;
+ my ($output, %opts, $pid, $res);
+ my $hf = 0;
+ my $sf = 0;
+ $pid = spawn(exec => [ "readelf", "-h", "--", $file ],
+ env => { "LC_ALL" => "C" },
+ to_pipe => \$output, %opts);
+ while (<$output>) {
+ chomp;
+ if (/0x500040./) {
+ $hf = 1;
+ last;
+ }
+ if (/0x500020./) {
+ $sf = 1;
+ last;
+ }
+ }
+ close($output);
+ wait_child($pid, nocheck => 1);
+ if ($?) {
+ subprocerr("readelf");
+ }
+ if(($hf) || ($sf)) {
+ return $hf;
+ }
+ $hf = 0;
+ undef $output;
+ $pid = spawn(exec => [ "readelf", "-A", "--", $file ],
+ env => { "LC_ALL" => "C" },
+ to_pipe => \$output, %opts);
+ while (<$output>) {
+ chomp;
+ if (/Tag_ABI_VFP_args: VFP registers/) {
+ $hf = 1;
+ last;
+ }
+ }
+ close($output);
+ wait_child($pid, nocheck => 1);
+ if ($?) {
+ subprocerr("readelf");
+ }
+ return $hf;
+}
+
use constant {
ELF_BITS_NONE => 0,
ELF_BITS_32 => 1,
@@ -212,6 +260,14 @@
# Mask any processor flags that might not change the architecture ABI.
$elf{flags} &= $elf_flags_mask{$elf{mach}} // 0;
+ if (($elf{mach} == ELF_MACH_ARM) && ($elf{endian} == ELF_ORDER_2LSB)) {
+ if (is_armhf($file)) {
+ $elf{flags} |= ELF_FLAG_ARM_HARD_FLOAT;
+ } else {
+ $elf{flags} |= ELF_FLAG_ARM_SOFT_FLOAT;
+ }
+ }
+
# Repack for easy comparison, as a big-endian byte stream, so that
# unpacking for output gives meaningful results.
$format{$file} = pack 'C2(SL)>', @elf{qw(bits endian mach flags)};
@@ -373,6 +429,13 @@
} elsif ($section eq 'none') {
if (/^\s*.+:\s*file\s+format\s+(\S+)$/) {
$self->{format} = $1;
+ if (($self->{format} eq "elf32-littlearm") && $self->{file}) {
+ if (Dpkg::Shlibs::Objdump::is_armhf($self->{file})) {
+ $self->{format} = "elf32-littlearm-hfabi";
+ } else {
+ $self->{format} = "elf32-littlearm-sfabi";
+ }
+ }
} elsif (/^architecture:\s*\S+,\s*flags\s*\S+:$/) {
# Parse 2 lines of "-f"
# architecture: i386, flags 0x00000112:
diff -urN dpkg-1.20.9/scripts/Dpkg/Source/Package/V3/Native.pm dpkg-1.20.9ubuntu1/scripts/Dpkg/Source/Package/V3/Native.pm
--- dpkg-1.20.9/scripts/Dpkg/Source/Package/V3/Native.pm 2021-01-30 07:07:17.000000000 +0100
+++ dpkg-1.20.9ubuntu1/scripts/Dpkg/Source/Package/V3/Native.pm 2021-04-14 12:32:22.000000000 +0200
@@ -73,7 +73,7 @@
my ($self, $dir) = @_;
my $v = Dpkg::Version->new($self->{fields}->{'Version'});
- return (0, g_('native package version may not have a revision'))
+ warning (g_('native package version may not have a revision'))
unless $v->is_native();
return 1;
diff -urN dpkg-1.20.9/scripts/Dpkg/Source/Package/V3/Quilt.pm dpkg-1.20.9ubuntu1/scripts/Dpkg/Source/Package/V3/Quilt.pm
--- dpkg-1.20.9/scripts/Dpkg/Source/Package/V3/Quilt.pm 2021-01-30 07:07:17.000000000 +0100
+++ dpkg-1.20.9ubuntu1/scripts/Dpkg/Source/Package/V3/Quilt.pm 2021-04-14 12:32:22.000000000 +0200
@@ -93,7 +93,7 @@
return ($code, $msg) if $code == 0;
my $v = Dpkg::Version->new($self->{fields}->{'Version'});
- return (0, g_('non-native package version does not contain a revision'))
+ warning (g_('non-native package version does not contain a revision'))
if $v->is_native();
my $quilt = $self->_build_quilt_object($dir);
diff -urN dpkg-1.20.9/scripts/Dpkg/Vendor/Debian.pm dpkg-1.20.9ubuntu1/scripts/Dpkg/Vendor/Debian.pm
--- dpkg-1.20.9/scripts/Dpkg/Vendor/Debian.pm 2021-04-05 00:50:44.000000000 +0200
+++ dpkg-1.20.9ubuntu1/scripts/Dpkg/Vendor/Debian.pm 2021-04-14 12:32:22.000000000 +0200
@@ -26,6 +26,7 @@
our $VERSION = '0.01';
use Dpkg;
+use Dpkg::Arch;
use Dpkg::Gettext;
use Dpkg::ErrorHandling;
use Dpkg::Control::Types;
@@ -91,6 +92,45 @@
}
}
+sub _lto_disabled {
+ my $fn = "/usr/share/lto-disabled-list/lto-disabled-list";
+ open(LIST, "<", $fn) or return;
+
+ # get source name
+ -r "debian/control" or return;
+ require Dpkg::Control::Info;
+ my $ctrl = Dpkg::Control::Info->new();
+ my $src_fields = $ctrl->get_source();
+ return unless defined $src_fields;
+
+ my $src = "";
+ foreach (keys %{$src_fields}) {
+ my $v = $src_fields->{$_};
+ if (m/^Source$/i) {
+ $src = $v;
+ last;
+ }
+ }
+ return unless $src ne "";
+
+ my $arch = Dpkg::Arch::get_host_arch();
+
+ # read disabled-list
+ while (<LIST>) {
+ if (m/^$src\s/) {
+ if (m/^$src\s.*(any|$arch)\s/) {
+ close(LIST);
+ return 1;
+ } else {
+ close(LIST);
+ return;
+ }
+ }
+ }
+ close(LIST);
+ return;
+}
+
sub _add_build_flags {
my ($self, $flags) = @_;
@@ -108,6 +148,9 @@
fixfilepath => 1,
fixdebugpath => 1,
},
+ optimize => {
+ lto => 0,
+ },
sanitize => {
address => 0,
thread => 0,
@@ -127,6 +170,21 @@
},
);
+ # no hook to set in Ubuntu.pm
+ require Dpkg::Arch;
+ my $arch = Dpkg::Arch::get_host_arch();
+
+ if (Dpkg::Arch::debarch_eq($arch, 'amd64')
+ or Dpkg::Arch::debarch_eq($arch, 'arm64')
+ or Dpkg::Arch::debarch_eq($arch, 'ppc64el')
+ or Dpkg::Arch::debarch_eq($arch, 's390x'))
+ {
+ $use_feature{optimize}{lto} = 1;
+ if (_lto_disabled()) {
+ $use_feature{optimize}{lto} = 0;
+ }
+ }
+
my %builtin_feature = (
hardening => {
pie => 1,
@@ -146,9 +204,6 @@
$opts_maint->parse_features($area, $use_feature{$area});
}
- require Dpkg::Arch;
-
- my $arch = Dpkg::Arch::get_host_arch();
my ($abi, $libc, $os, $cpu) = Dpkg::Arch::debarch_to_debtuple($arch);
unless (defined $abi and defined $libc and defined $os and defined $cpu) {
@@ -270,6 +325,20 @@
$flags->append('GCJFLAGS', $map);
}
+ ## Area: optimize
+
+ if ($use_feature{optimize}{lto}) {
+ my $ltoflag = '-flto=auto -ffat-lto-objects';
+ $flags->append('CFLAGS', $ltoflag);
+ $flags->append('CXXFLAGS', $ltoflag);
+ $flags->append('OBJCFLAGS', $ltoflag);
+ $flags->append('OBJCXXFLAGS', $ltoflag);
+ $flags->append('FFLAGS', $ltoflag);
+ $flags->append('FCFLAGS', $ltoflag);
+
+ $flags->append('LDFLAGS', '-flto=auto');
+ }
+
## Area: sanitize
# Handle logical feature interactions.
diff -urN dpkg-1.20.9/scripts/Dpkg/Vendor/Default.pm dpkg-1.20.9ubuntu1/scripts/Dpkg/Vendor/Default.pm
--- dpkg-1.20.9/scripts/Dpkg/Vendor/Default.pm 2021-01-30 07:07:17.000000000 +0100
+++ dpkg-1.20.9ubuntu1/scripts/Dpkg/Vendor/Default.pm 2021-04-14 12:32:22.000000000 +0200
@@ -130,6 +130,12 @@
the default values set for the various build flags. $flags is a
Dpkg::BuildFlags object.
+=item update-buildprofiles ($build_profiles_ref)
+
+The hook is called in Dpkg::BuildProfiles to allow the vendor to
+override the default values set. $build_profiles_ref is a array ref to
+Dpkg::BuildProfiles object.
+
=item builtin-system-build-paths ()
The hook is called by dpkg-genbuildinfo to determine if the current path
@@ -180,6 +186,8 @@
my ($textref, $ch_info) = @params;
} elsif ($hook eq 'update-buildflags') {
my $flags = shift @params;
+ } elsif ($hook eq 'update-buildprofiles') {
+ my $build_profiles_ref = shift @params;
} elsif ($hook eq 'builtin-system-build-paths') {
return ();
} elsif ($hook eq 'build-tainted-by') {
diff -urN dpkg-1.20.9/scripts/Dpkg/Vendor/Ubuntu.pm dpkg-1.20.9ubuntu1/scripts/Dpkg/Vendor/Ubuntu.pm
--- dpkg-1.20.9/scripts/Dpkg/Vendor/Ubuntu.pm 2021-01-30 07:07:17.000000000 +0100
+++ dpkg-1.20.9ubuntu1/scripts/Dpkg/Vendor/Ubuntu.pm 2021-04-14 12:32:22.000000000 +0200
@@ -92,6 +92,14 @@
$fields->{'Launchpad-Bugs-Fixed'} = join(' ', @$bugs);
}
+ } elsif ($hook eq 'update-buildopts') {
+ my $build_opts = shift @params;
+ require Dpkg::Arch;
+ my $arch = Dpkg::Arch::get_host_arch();
+ if (Dpkg::Arch::debarch_eq($arch, 'riscv64')) {
+ $build_opts->set('nocheck', 1, 'riscv64');
+ }
+
} elsif ($hook eq 'update-buildflags') {
my $flags = shift @params;
@@ -117,6 +125,14 @@
}
# Per https://wiki.ubuntu.com/DistCompilerFlags
$flags->prepend('LDFLAGS', '-Wl,-Bsymbolic-functions');
+ } elsif ($hook eq 'update-buildprofiles') {
+ my $build_profiles_ref = shift @params;
+ unless(grep $_ =~ /^!?noudeb$/, @$build_profiles_ref) {
+ unshift(@$build_profiles_ref, 'noudeb');
+ } else {
+ # Strip otherwise invalid profile name
+ @$build_profiles_ref = grep { $_ ne "!noudeb" } @$build_profiles_ref;
+ }
} else {
return $self->SUPER::run_hook($hook, @params);
}
diff -urN dpkg-1.20.9/scripts/dpkg-buildpackage.pl dpkg-1.20.9ubuntu1/scripts/dpkg-buildpackage.pl
--- dpkg-1.20.9/scripts/dpkg-buildpackage.pl 2021-04-05 00:50:44.000000000 +0200
+++ dpkg-1.20.9ubuntu1/scripts/dpkg-buildpackage.pl 2021-04-14 12:32:22.000000000 +0200
@@ -203,6 +203,8 @@
my $build_opts = Dpkg::BuildOptions->new();
+run_vendor_hook('update-buildopts', $build_opts);
+
if ($build_opts->has('nocheck')) {
$check_command = undef;
} elsif (not find_command($check_command)) {
@@ -426,9 +428,11 @@
}
$build_opts->set('parallel', $parallel);
$build_opts->export();
+} else {
+ $build_opts->export();
}
-set_build_profiles(@build_profiles) if @build_profiles;
+set_build_profiles(@build_profiles);
my $changelog = changelog_parse();
my $ctrl = Dpkg::Control::Info->new();
diff -urN dpkg-1.20.9/scripts/dpkg-gencontrol.pl dpkg-1.20.9ubuntu1/scripts/dpkg-gencontrol.pl
--- dpkg-1.20.9/scripts/dpkg-gencontrol.pl 2021-01-30 07:07:17.000000000 +0100
+++ dpkg-1.20.9ubuntu1/scripts/dpkg-gencontrol.pl 2021-04-14 12:32:22.000000000 +0200
@@ -313,7 +313,8 @@
unless defined $fields->{$f};
}
-my $pkg_type = $pkg->{'Package-Type'} ||
+my $pkg_type = $override{'Package-Type'} ||
+ $pkg->{'Package-Type'} ||
$pkg->get_custom_field('Package-Type') || 'deb';
if ($pkg_type eq 'udeb') {
diff -urN dpkg-1.20.9/scripts/Makefile.in dpkg-1.20.9ubuntu1/scripts/Makefile.in
--- dpkg-1.20.9/scripts/Makefile.in 2021-04-14 00:43:39.000000000 +0200
+++ dpkg-1.20.9ubuntu1/scripts/Makefile.in 2021-04-14 12:32:22.000000000 +0200
@@ -365,6 +365,7 @@
XGETTEXT = @XGETTEXT@
XGETTEXT_015 = @XGETTEXT_015@
XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+ZSTD_LIBS = @ZSTD_LIBS@
Z_LIBS = @Z_LIBS@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
diff -urN dpkg-1.20.9/scripts/mk/Makefile.in dpkg-1.20.9ubuntu1/scripts/mk/Makefile.in
--- dpkg-1.20.9/scripts/mk/Makefile.in 2021-04-14 00:43:39.000000000 +0200
+++ dpkg-1.20.9ubuntu1/scripts/mk/Makefile.in 2021-04-14 12:32:22.000000000 +0200
@@ -286,6 +286,7 @@
XGETTEXT = @XGETTEXT@
XGETTEXT_015 = @XGETTEXT_015@
XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+ZSTD_LIBS = @ZSTD_LIBS@
Z_LIBS = @Z_LIBS@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
diff -urN dpkg-1.20.9/scripts/po/Makevars.template dpkg-1.20.9ubuntu1/scripts/po/Makevars.template
--- dpkg-1.20.9/scripts/po/Makevars.template 1970-01-01 01:00:00.000000000 +0100
+++ dpkg-1.20.9ubuntu1/scripts/po/Makevars.template 2021-04-14 12:32:22.000000000 +0200
@@ -0,0 +1,78 @@
+# Makefile variables for PO directory in any package using GNU gettext.
+
+# Usually the message domain is the same as the package name.
+DOMAIN = $(PACKAGE)
+
+# These two variables depend on the location of this directory.
+subdir = po
+top_builddir = ..
+
+# These options get passed to xgettext.
+XGETTEXT_OPTIONS = --keyword=_ --keyword=N_
+
+# This is the copyright holder that gets inserted into the header of the
+# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding
+# package. (Note that the msgstr strings, extracted from the package's
+# sources, belong to the copyright holder of the package.) Translators are
+# expected to transfer the copyright for their translations to this person
+# or entity, or to disclaim their copyright. The empty string stands for
+# the public domain; in this case the translators are expected to disclaim
+# their copyright.
+COPYRIGHT_HOLDER = Free Software Foundation, Inc.
+
+# This tells whether or not to prepend "GNU " prefix to the package
+# name that gets inserted into the header of the $(DOMAIN).pot file.
+# Possible values are "yes", "no", or empty. If it is empty, try to
+# detect it automatically by scanning the files in $(top_srcdir) for
+# "GNU packagename" string.
+PACKAGE_GNU =
+
+# This is the email address or URL to which the translators shall report
+# bugs in the untranslated strings:
+# - Strings which are not entire sentences, see the maintainer guidelines
+# in the GNU gettext documentation, section 'Preparing Strings'.
+# - Strings which use unclear terms or require additional context to be
+# understood.
+# - Strings which make invalid assumptions about notation of date, time or
+# money.
+# - Pluralisation problems.
+# - Incorrect English spelling.
+# - Incorrect formatting.
+# It can be your email address, or a mailing list address where translators
+# can write to without being subscribed, or the URL of a web page through
+# which the translators can contact you.
+MSGID_BUGS_ADDRESS =
+
+# This is the list of locale categories, beyond LC_MESSAGES, for which the
+# message catalogs shall be used. It is usually empty.
+EXTRA_LOCALE_CATEGORIES =
+
+# This tells whether the $(DOMAIN).pot file contains messages with an 'msgctxt'
+# context. Possible values are "yes" and "no". Set this to yes if the
+# package uses functions taking also a message context, like pgettext(), or
+# if in $(XGETTEXT_OPTIONS) you define keywords with a context argument.
+USE_MSGCTXT = no
+
+# These options get passed to msgmerge.
+# Useful options are in particular:
+# --previous to keep previous msgids of translated messages,
+# --quiet to reduce the verbosity.
+MSGMERGE_OPTIONS =
+
+# These options get passed to msginit.
+# If you want to disable line wrapping when writing PO files, add
+# --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and
+# MSGINIT_OPTIONS.
+MSGINIT_OPTIONS =
+
+# This tells whether or not to regenerate a PO file when $(DOMAIN).pot
+# has changed. Possible values are "yes" and "no". Set this to no if
+# the POT file is checked in the repository and the version control
+# program ignores timestamps.
+PO_DEPENDS_ON_POT = yes
+
+# This tells whether or not to forcibly update $(DOMAIN).pot and
+# regenerate PO files on "make dist". Possible values are "yes" and
+# "no". Set this to no if the POT file and PO files are maintained
+# externally.
+DIST_DEPENDS_ON_UPDATE_PO = yes
diff -urN dpkg-1.20.9/scripts/t/Dpkg_BuildFlags.t dpkg-1.20.9ubuntu1/scripts/t/Dpkg_BuildFlags.t
--- dpkg-1.20.9/scripts/t/Dpkg_BuildFlags.t 2021-04-13 20:15:56.000000000 +0200
+++ dpkg-1.20.9ubuntu1/scripts/t/Dpkg_BuildFlags.t 2021-04-14 12:32:22.000000000 +0200
@@ -16,7 +16,7 @@
use strict;
use warnings;
-use Test::More tests => 26;
+use Test::More tests => 28;
BEGIN {
$ENV{DEB_BUILD_ARCH} = 'amd64';
@@ -71,6 +71,9 @@
fixfilepath
timeless
) ],
+ optimize => [ qw)
+ lto
+ ) ],
sanitize => [ qw(
address
leak
diff -urN dpkg-1.20.9/scripts/t/Dpkg_BuildProfiles.t dpkg-1.20.9ubuntu1/scripts/t/Dpkg_BuildProfiles.t
--- dpkg-1.20.9/scripts/t/Dpkg_BuildProfiles.t 2021-01-30 07:07:17.000000000 +0100
+++ dpkg-1.20.9ubuntu1/scripts/t/Dpkg_BuildProfiles.t 2021-04-14 12:32:22.000000000 +0200
@@ -16,7 +16,7 @@
use strict;
use warnings;
-use Test::More tests => 8;
+use Test::More tests => 10;
BEGIN {
use_ok('Dpkg::BuildProfiles', qw(parse_build_profiles
@@ -26,6 +26,9 @@
# TODO: Add actual test cases.
+# Check stock things
+$ENV{DEB_VENDOR} = 'Debian';
+
my $formula;
$formula = [ ];
@@ -58,4 +61,16 @@
is_deeply([ get_build_profiles() ], [ qw(nocheck stage1) ],
'get active build profiles explicitly set');
+# Check Ubuntu vendor hook
+$ENV{DEB_VENDOR} = 'Ubuntu';
+
+set_build_profiles(qw(nocheck stage1));
+is_deeply([ get_build_profiles() ], [ qw(noudeb nocheck stage1) ],
+ 'get active build profiles explicitly set');
+
+set_build_profiles(qw(!noudeb nocheck stage1));
+is_deeply([ get_build_profiles() ], [ qw(nocheck stage1) ],
+ 'get active build profiles explicitly set');
+
+
1;
diff -urN dpkg-1.20.9/src/Makefile.in dpkg-1.20.9ubuntu1/src/Makefile.in
--- dpkg-1.20.9/src/Makefile.in 2021-04-14 00:43:39.000000000 +0200
+++ dpkg-1.20.9ubuntu1/src/Makefile.in 2021-04-14 12:32:22.000000000 +0200
@@ -363,6 +363,7 @@
XGETTEXT = @XGETTEXT@
XGETTEXT_015 = @XGETTEXT_015@
XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+ZSTD_LIBS = @ZSTD_LIBS@
Z_LIBS = @Z_LIBS@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
Datei dpkg-1.20.9/tests/t-unpack-fifo/pkg-fifo/test-fifo ist ein FIFO, während Datei dpkg-1.20.9ubuntu1/tests/t-unpack-fifo/pkg-fifo/test-fifo ein FIFO ist.
Datei dpkg-1.20.9/tests/t-unpack-hardlink/pkg-hardlink/test-fifo-link0 ist ein FIFO, während Datei dpkg-1.20.9ubuntu1/tests/t-unpack-hardlink/pkg-hardlink/test-fifo-link0 ein FIFO ist.
Datei dpkg-1.20.9/tests/t-unpack-hardlink/pkg-hardlink/test-fifo-link1 ist ein FIFO, während Datei dpkg-1.20.9ubuntu1/tests/t-unpack-hardlink/pkg-hardlink/test-fifo-link1 ein FIFO ist.
diff -urN dpkg-1.20.9/t-func/deb-format.at dpkg-1.20.9ubuntu1/t-func/deb-format.at
--- dpkg-1.20.9/t-func/deb-format.at 2021-01-30 07:07:17.000000000 +0100
+++ dpkg-1.20.9ubuntu1/t-func/deb-format.at 2021-04-14 12:32:22.000000000 +0200
@@ -28,6 +28,7 @@
xz -c data.tar >data.tar.xz
bzip2 -c data.tar >data.tar.bz2
lzma -c data.tar >data.tar.lzma
+pzstd -q -c data.tar >data.tar.zst
touch _ignore
touch unknown
])
@@ -289,6 +290,18 @@
drwxr-xr-x root/root 0 1970-01-01 00:00 ./
-rw-r--r-- root/root 5 1970-01-01 00:00 ./file-templ
])
+
+AT_CHECK([
+# Test data.tar.zst member
+ar rc pkg-data-zst.deb debian-binary control.tar.gz data.tar.zst
+ar t pkg-data-zst.deb
+dpkg-deb -c pkg-data-zst.deb
+], [], [debian-binary
+control.tar.gz
+data.tar.zst
+drwxr-xr-x root/root 0 1970-01-01 00:00 ./
+-rw-r--r-- root/root 5 1970-01-01 00:00 ./file-templ
+])
AT_CHECK([
# Test data.tar.lzma member
diff -urN dpkg-1.20.9/t-func/Makefile.in dpkg-1.20.9ubuntu1/t-func/Makefile.in
--- dpkg-1.20.9/t-func/Makefile.in 2021-04-14 00:43:39.000000000 +0200
+++ dpkg-1.20.9ubuntu1/t-func/Makefile.in 2021-04-14 12:32:22.000000000 +0200
@@ -255,6 +255,7 @@
XGETTEXT = @XGETTEXT@
XGETTEXT_015 = @XGETTEXT_015@
XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+ZSTD_LIBS = @ZSTD_LIBS@
Z_LIBS = @Z_LIBS@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
diff -urN dpkg-1.20.9/utils/Makefile.in dpkg-1.20.9ubuntu1/utils/Makefile.in
--- dpkg-1.20.9/utils/Makefile.in 2021-04-14 00:43:39.000000000 +0200
+++ dpkg-1.20.9ubuntu1/utils/Makefile.in 2021-04-14 12:32:22.000000000 +0200
@@ -370,6 +370,7 @@
XGETTEXT = @XGETTEXT@
XGETTEXT_015 = @XGETTEXT_015@
XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+ZSTD_LIBS = @ZSTD_LIBS@
Z_LIBS = @Z_LIBS@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
diff -urN dpkg-1.20.9/utils/update-alternatives.c dpkg-1.20.9ubuntu1/utils/update-alternatives.c
--- dpkg-1.20.9/utils/update-alternatives.c 2021-03-02 03:15:25.000000000 +0100
+++ dpkg-1.20.9ubuntu1/utils/update-alternatives.c 2021-04-14 12:32:22.000000000 +0200
@@ -2850,7 +2850,8 @@
bool modifies_sys = false;
int i = 0;
- setlocale(LC_ALL, "");
+ if (getenv("DPKG_UNTRANSLATED_MESSAGES") == NULL)
+ setlocale(LC_ALL, "");
bindtextdomain(PACKAGE, LOCALEDIR);
textdomain(PACKAGE);