Hello community, here is the log from the commit of package mtd-utils for openSUSE:Factory checked in at 2020-02-04 19:53:59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/mtd-utils (Old) and /work/SRC/openSUSE:Factory/.mtd-utils.new.26092 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mtd-utils" Tue Feb 4 19:53:59 2020 rev:7 rq:769713 version:2.1.1 Changes: -------- --- /work/SRC/openSUSE:Factory/mtd-utils/mtd-utils.changes 2019-06-19 21:02:15.470181693 +0200 +++ /work/SRC/openSUSE:Factory/.mtd-utils.new.26092/mtd-utils.changes 2020-02-04 19:54:07.649348694 +0100 @@ -1,0 +2,21 @@ +Mon Feb 3 16:22:01 UTC 2020 - Martin Pluskal <[email protected]> + +- Update to version 2.1.1: + * Features: + - mkfs.ubifs: Add ZSTD compression + * Fixes: + + ubiformat: Dont ignore sequence number CLI option + + mkfs.ubifs: fix build without openssl + + mkfs.ubifs: fix regression when trying to store device special files + + mkfs.ubifs: fix description of favor_lzo + + unittests/test_lib: Include proper header for _IOC_SIZE + + unittests/libmtd_test: Include fcntl header + + unittests: Define the use of _GNU_SOURCE + + ubinize: Exit with non-zero exit code on error. + + mtd-tests: nandbiterrs: Fix issue that just insert error at bit 7 + + ubi-tests: ubi_mkvol_request: Fully initialize 'struct ubi_mkvol_request req' + + ubi-tests: io_read: Filter invalid offset value before 'lseek' in io_read test + + ubi-tests: mkvol test: Checks return value 'ENOSPC' for 'ubi_mkvol' + + ubi-tests: fm_param: Replace 'fm_auto' with 'fm_autoconvert' + +------------------------------------------------------------------- Old: ---- mtd-utils-2.1.0.tar.bz2 mtd-utils-2.1.0.tar.bz2.asc New: ---- mtd-utils-2.1.1.tar.bz2 mtd-utils-2.1.1.tar.bz2.asc ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ mtd-utils.spec ++++++ --- /var/tmp/diff_new_pack.xeTyFi/_old 2020-02-04 19:54:08.401349132 +0100 +++ /var/tmp/diff_new_pack.xeTyFi/_new 2020-02-04 19:54:08.405349134 +0100 @@ -1,7 +1,7 @@ # # spec file for package mtd-utils # -# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2020 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ Name: mtd-utils -Version: 2.1.0 +Version: 2.1.1 Release: 0 Summary: Tools for maintaining Memory Technology Devices License: GPL-2.0-or-later @@ -26,9 +26,10 @@ Source0: ftp://ftp.infradead.org/pub/mtd-utils/mtd-utils-%{version}.tar.bz2 Source1: ftp://ftp.infradead.org/pub/mtd-utils/mtd-utils-%{version}.tar.bz2.asc Source2: %{name}.keyring -BuildRequires: libacl-devel -BuildRequires: lzo-devel BuildRequires: pkgconfig +BuildRequires: pkgconfig(libacl) +BuildRequires: pkgconfig(libzstd) +BuildRequires: pkgconfig(lzo2) BuildRequires: pkgconfig(openssl) BuildRequires: pkgconfig(uuid) BuildRequires: pkgconfig(zlib) @@ -44,7 +45,7 @@ %build %configure -make %{?_smp_mflags} V=1 +%make_build %install %make_install ++++++ mtd-utils-2.1.0.tar.bz2 -> mtd-utils-2.1.1.tar.bz2 ++++++ ++++ 4259 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/mtd-utils-2.1.0/Makefile.am new/mtd-utils-2.1.1/Makefile.am --- old/mtd-utils-2.1.0/Makefile.am 2018-11-01 12:42:31.000000000 +0100 +++ new/mtd-utils-2.1.1/Makefile.am 2019-06-01 19:38:44.000000000 +0200 @@ -10,6 +10,10 @@ AM_CPPFLAGS += -DWITHOUT_LZO endif +if WITHOUT_ZSTD +AM_CPPFLAGS += -DWITHOUT_ZSTD +endif + if WITH_SELINUX AM_CPPFLAGS += -DWITH_SELINUX endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/mtd-utils-2.1.0/configure.ac new/mtd-utils-2.1.1/configure.ac --- old/mtd-utils-2.1.0/configure.ac 2019-03-13 17:42:12.000000000 +0100 +++ new/mtd-utils-2.1.1/configure.ac 2019-07-21 22:40:28.000000000 +0200 @@ -1,6 +1,6 @@ AC_PREREQ([2.60]) -m4_define([RELEASE], 2.1.0) +m4_define([RELEASE], 2.1.1) AC_INIT([mtd-utils], [RELEASE], [[email protected]], mtd-utils) @@ -66,6 +66,7 @@ need_uuid="no" need_zlib="no" need_lzo="no" +need_zstd="no" need_xattr="no" need_cmocka="no" need_selinux="no" @@ -138,6 +139,7 @@ need_xattr="yes" need_zlib="yes" need_lzo="yes" + need_zstd="yes" need_openssl="yes" ]) @@ -164,6 +166,14 @@ *) AC_MSG_ERROR([bad value ${withval} for --without-lzo]) ;; esac]) +AC_ARG_WITH([zstd], + [AS_HELP_STRING([--without-zstd], [Disable support for ZSTD compression])], + [case "${withval}" in + yes) ;; + no) need_zstd="no" ;; + *) AC_MSG_ERROR([bad value ${withval} for --without-zstd]) ;; + esac]) + AC_ARG_WITH([selinux], [AS_HELP_STRING([--with-selinux], [Enable support for selinux extended attributes])], @@ -189,6 +199,7 @@ uuid_missing="no" zlib_missing="no" lzo_missing="no" +zstd_missing="no" xattr_missing="no" cmocka_missing="no" selinux_missing="no" @@ -225,6 +236,10 @@ ) fi +if test "x$need_zstd" = "xyes"; then + PKG_CHECK_MODULES([ZSTD], [libzstd],, zstd_missing="yes") +fi + if test "x$need_xattr" = "xyes"; then AC_CHECK_HEADERS([sys/xattr.h], [], [xattr_missing="yes"]) AC_CHECK_HEADERS([sys/acl.h], [], [xattr_missing="yes"]) @@ -283,6 +298,13 @@ dep_missing="yes" fi +if test "x$zstd_missing" = "xyes"; then + AC_MSG_WARN([cannot find ZSTD library required for mkfs program]) + AC_MSG_NOTICE([mtd-utils can optionally be built without mkfs.ubifs]) + AC_MSG_NOTICE([mtd-utils can optionally be built without ZSTD support]) + dep_missing="yes" +fi + if test "x$xattr_missing" = "xyes"; then AC_MSG_WARN([cannot find headers for extended attributes]) AC_MSG_WARN([disabling XATTR support]) @@ -314,6 +336,7 @@ ##### generate output ##### AM_CONDITIONAL([WITHOUT_LZO], [test "x$need_lzo" != "xyes"]) +AM_CONDITIONAL([WITHOUT_ZSTD], [test "x$need_zstd" != "xyes"]) AM_CONDITIONAL([WITHOUT_XATTR], [test "x$need_xattr" != "xyes"]) AM_CONDITIONAL([WITH_SELINUX], [test "x$need_selinux" == "xyes"]) AM_CONDITIONAL([WITH_CRYPTO], [test "x$need_openssl" == "xyes"]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/mtd-utils-2.1.0/include/config.h new/mtd-utils-2.1.1/include/config.h --- old/mtd-utils-2.1.0/include/config.h 2019-03-13 17:42:25.000000000 +0100 +++ new/mtd-utils-2.1.1/include/config.h 2019-07-21 22:40:42.000000000 +0200 @@ -68,7 +68,7 @@ #define PACKAGE_NAME "mtd-utils" /* Define to the full name and version of this package. */ -#define PACKAGE_STRING "mtd-utils 2.1.0" +#define PACKAGE_STRING "mtd-utils 2.1.1" /* Define to the one symbol short name of this package. */ #define PACKAGE_TARNAME "mtd-utils" @@ -77,7 +77,7 @@ #define PACKAGE_URL "" /* Define to the version of this package. */ -#define PACKAGE_VERSION "2.1.0" +#define PACKAGE_VERSION "2.1.1" /* Define to necessary symbol if this constant uses a non-standard name on your system. */ @@ -93,4 +93,4 @@ #define STDC_HEADERS 1 /* Version number of package */ -#define VERSION "2.1.0" +#define VERSION "2.1.1" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/mtd-utils-2.1.0/include/mtd/ubifs-media.h new/mtd-utils-2.1.1/include/mtd/ubifs-media.h --- old/mtd-utils-2.1.0/include/mtd/ubifs-media.h 2018-11-01 12:31:41.000000000 +0100 +++ new/mtd-utils-2.1.1/include/mtd/ubifs-media.h 2019-06-01 19:38:44.000000000 +0200 @@ -343,12 +343,14 @@ * UBIFS_COMPR_NONE: no compression * UBIFS_COMPR_LZO: LZO compression * UBIFS_COMPR_ZLIB: ZLIB compression + * UBIFS_COMPR_ZSTD: ZSTD compression * UBIFS_COMPR_TYPES_CNT: count of supported compression types */ enum { UBIFS_COMPR_NONE, UBIFS_COMPR_LZO, UBIFS_COMPR_ZLIB, + UBIFS_COMPR_ZSTD, UBIFS_COMPR_TYPES_CNT, }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/mtd-utils-2.1.0/tests/mtd-tests/nandbiterrs.c new/mtd-utils-2.1.1/tests/mtd-tests/nandbiterrs.c --- old/mtd-utils-2.1.0/tests/mtd-tests/nandbiterrs.c 2017-11-15 00:29:09.000000000 +0100 +++ new/mtd-utils-2.1.1/tests/mtd-tests/nandbiterrs.c 2019-04-29 08:39:15.000000000 +0200 @@ -333,7 +333,7 @@ int bit, mask, byte; for (byte = 0; byte < pagesize; ++byte) { - for (bit = 7, mask = 0x80; bit >= 0; bit--, mask>>=0) { + for (bit = 7, mask = 0x80; bit >= 0; bit--, mask >>= 1) { if (wbuffer[byte] & mask) { wbuffer[byte] &= ~mask; printf("Inserted biterror @ %u/%u\n", byte, bit); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/mtd-utils-2.1.0/tests/ubi-tests/integ.c new/mtd-utils-2.1.1/tests/ubi-tests/integ.c --- old/mtd-utils-2.1.0/tests/ubi-tests/integ.c 2018-10-02 14:07:55.000000000 +0200 +++ new/mtd-utils-2.1.1/tests/ubi-tests/integ.c 2019-06-16 12:27:10.000000000 +0200 @@ -467,6 +467,7 @@ req.vol_id = UBI_VOL_NUM_AUTO; req.alignment = 1; /* TODO: What is this? */ req.bytes = ubi_device->info.leb_size * max_ebs_per_vol; + req.flags = 0; if (req.bytes == 0 || req.bytes > ubi_device->info.avail_bytes) req.bytes = ubi_device->info.avail_bytes; req.vol_type = UBI_DYNAMIC_VOLUME; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/mtd-utils-2.1.0/tests/ubi-tests/io_basic.c new/mtd-utils-2.1.1/tests/ubi-tests/io_basic.c --- old/mtd-utils-2.1.0/tests/ubi-tests/io_basic.c 2016-07-12 14:16:45.000000000 +0200 +++ new/mtd-utils-2.1.1/tests/ubi-tests/io_basic.c 2019-06-16 12:27:10.000000000 +0200 @@ -55,6 +55,7 @@ req.bytes = dev_info.avail_bytes; req.vol_type = type; req.name = name; + req.flags = 0; if (ubi_mkvol(libubi, node, &req)) { failed("ubi_mkvol"); @@ -102,6 +103,7 @@ req.vol_type = type; req.name = name; + req.flags = 0; for (i = 0; i < sizeof(alignments)/sizeof(int); i++) { req.vol_id = UBI_VOL_NUM_AUTO; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/mtd-utils-2.1.0/tests/ubi-tests/io_paral.c new/mtd-utils-2.1.1/tests/ubi-tests/io_paral.c --- old/mtd-utils-2.1.0/tests/ubi-tests/io_paral.c 2018-10-02 14:07:55.000000000 +0200 +++ new/mtd-utils-2.1.1/tests/ubi-tests/io_paral.c 2019-06-16 12:27:10.000000000 +0200 @@ -266,6 +266,7 @@ sprintf(vol_name[i], PROGRAM_NAME":%d", i); reqests[i].name = vol_name[i]; reqests[i].vol_type = UBI_DYNAMIC_VOLUME; + reqests[i].flags = 0; if (i == THREADS_NUM) reqests[i].vol_type = UBI_STATIC_VOLUME; sprintf(vol_nodes[i], UBI_VOLUME_PATTERN, dev_info.dev_num, i); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/mtd-utils-2.1.0/tests/ubi-tests/io_read.c new/mtd-utils-2.1.1/tests/ubi-tests/io_read.c --- old/mtd-utils-2.1.0/tests/ubi-tests/io_read.c 2017-11-15 00:29:09.000000000 +0100 +++ new/mtd-utils-2.1.1/tests/ubi-tests/io_read.c 2019-06-16 12:27:13.000000000 +0200 @@ -74,6 +74,7 @@ req.bytes = dev_info.avail_bytes; req.vol_type = UBI_STATIC_VOLUME; req.name = name; + req.flags = 0; if (ubi_mkvol(libubi, node, &req)) { failed("ubi_mkvol"); @@ -227,6 +228,10 @@ vol_info->data_bytes); for (i = 0; i < sizeof(offsets)/sizeof(off_t); i++) { + /* Filter invalid offset value */ + if (offsets[i] < 0 || offsets[i] > vol_info->data_bytes) + continue; + if (test_read3(vol_info, len, offsets[i])) { errorm("offset = %d", offsets[i]); return -1; @@ -329,6 +334,7 @@ req.vol_id = UBI_VOL_NUM_AUTO; req.vol_type = type; req.name = name; + req.flags = 0; req.alignment = alignments[i]; req.alignment -= req.alignment % dev_info.min_io_size; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/mtd-utils-2.1.0/tests/ubi-tests/io_update.c new/mtd-utils-2.1.1/tests/ubi-tests/io_update.c --- old/mtd-utils-2.1.0/tests/ubi-tests/io_update.c 2017-11-15 00:29:09.000000000 +0100 +++ new/mtd-utils-2.1.1/tests/ubi-tests/io_update.c 2019-06-16 12:27:10.000000000 +0200 @@ -233,6 +233,7 @@ req.vol_id = UBI_VOL_NUM_AUTO; req.vol_type = type; req.name = name; + req.flags = 0; req.alignment = alignments[i]; req.alignment -= req.alignment % dev_info.min_io_size; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/mtd-utils-2.1.0/tests/ubi-tests/mkvol_bad.c new/mtd-utils-2.1.1/tests/ubi-tests/mkvol_bad.c --- old/mtd-utils-2.1.0/tests/ubi-tests/mkvol_bad.c 2016-07-12 14:16:45.000000000 +0200 +++ new/mtd-utils-2.1.1/tests/ubi-tests/mkvol_bad.c 2019-06-16 12:27:15.000000000 +0200 @@ -48,6 +48,7 @@ req.bytes = dev_info.avail_bytes; req.vol_type = UBI_DYNAMIC_VOLUME; req.name = name; + req.flags = 0; /* Bad volume ID */ req.vol_id = -2; @@ -199,7 +200,7 @@ * Note, because of gluebi we may be unable to create * dev_info.max_vol_count devices (MTD restrictions). */ - if (errno == ENFILE) + if (errno == ENFILE || errno == ENOSPC) break; failed("ubi_mkvol"); errorm("vol_id %d", i); @@ -251,6 +252,7 @@ req.bytes = dev_info.avail_bytes; req.vol_type = UBI_DYNAMIC_VOLUME; req.name = name; + req.flags = 0; if (ubi_mkvol(libubi, node, &req)) { failed("ubi_mkvol"); return -1; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/mtd-utils-2.1.0/tests/ubi-tests/mkvol_basic.c new/mtd-utils-2.1.1/tests/ubi-tests/mkvol_basic.c --- old/mtd-utils-2.1.0/tests/ubi-tests/mkvol_basic.c 2017-09-22 15:33:54.000000000 +0200 +++ new/mtd-utils-2.1.1/tests/ubi-tests/mkvol_basic.c 2019-06-16 12:27:15.000000000 +0200 @@ -59,6 +59,7 @@ req.vol_type = UBI_DYNAMIC_VOLUME; req.name = name; + req.flags = 0; if (ubi_mkvol(libubi, node, &req)) { failed("ubi_mkvol"); @@ -101,6 +102,7 @@ req.bytes = dev_info.avail_bytes; req.vol_type = UBI_DYNAMIC_VOLUME; req.name = name; + req.flags = 0; if (ubi_mkvol(libubi, node, &req)) { failed("ubi_mkvol"); @@ -170,12 +172,13 @@ req.alignment = 1; req.bytes = 1; req.vol_type = UBI_STATIC_VOLUME; + req.flags = 0; sprintf(nm, "%s:%d", name, i); req.name = nm; if (ubi_mkvol(libubi, node, &req)) { - if (errno == ENFILE) { + if (errno == ENFILE || errno == ENOSPC) { max = i; break; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/mtd-utils-2.1.0/tests/ubi-tests/mkvol_paral.c new/mtd-utils-2.1.1/tests/ubi-tests/mkvol_paral.c --- old/mtd-utils-2.1.0/tests/ubi-tests/mkvol_paral.c 2016-07-12 14:16:45.000000000 +0200 +++ new/mtd-utils-2.1.1/tests/ubi-tests/mkvol_paral.c 2019-06-16 12:27:10.000000000 +0200 @@ -54,6 +54,7 @@ req.vol_type = UBI_DYNAMIC_VOLUME; sprintf(nm, "%s:%d", name, n); req.name = nm; + req.flags = 0; while (iter--) { req.vol_id = UBI_VOL_NUM_AUTO; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/mtd-utils-2.1.0/tests/ubi-tests/rsvol.c new/mtd-utils-2.1.1/tests/ubi-tests/rsvol.c --- old/mtd-utils-2.1.0/tests/ubi-tests/rsvol.c 2017-11-15 00:29:09.000000000 +0100 +++ new/mtd-utils-2.1.1/tests/ubi-tests/rsvol.c 2019-06-16 12:27:10.000000000 +0200 @@ -54,6 +54,7 @@ req.bytes = MIN_AVAIL_EBS * dev_info.leb_size; req.vol_type = type; req.name = name; + req.flags = 0; if (ubi_mkvol(libubi, node, &req)) { failed("ubi_mkvol"); @@ -237,6 +238,7 @@ req.vol_id = UBI_VOL_NUM_AUTO; req.vol_type = type; req.name = name; + req.flags = 0; req.alignment = alignments[i]; req.alignment -= req.alignment % dev_info.min_io_size; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/mtd-utils-2.1.0/tests/ubi-tests/ubi-stress-test.sh.in new/mtd-utils-2.1.1/tests/ubi-tests/ubi-stress-test.sh.in --- old/mtd-utils-2.1.0/tests/ubi-tests/ubi-stress-test.sh.in 2016-11-17 12:46:31.000000000 +0100 +++ new/mtd-utils-2.1.1/tests/ubi-tests/ubi-stress-test.sh.in 2019-06-16 12:27:18.000000000 +0200 @@ -117,7 +117,7 @@ fm_param= elif [ "$fm_supported" = "yes" ]; then fastmap="disabled" - fm_param="fm_auto" + fm_param="fm_autoconvert" else echo "Fastmap is not supported, skip" return 0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/mtd-utils-2.1.0/tests/ubi-tests/volrefcnt.c new/mtd-utils-2.1.1/tests/ubi-tests/volrefcnt.c --- old/mtd-utils-2.1.0/tests/ubi-tests/volrefcnt.c 2016-07-12 14:16:45.000000000 +0200 +++ new/mtd-utils-2.1.1/tests/ubi-tests/volrefcnt.c 2019-06-16 12:27:10.000000000 +0200 @@ -67,6 +67,7 @@ req.bytes = dev_info.leb_size; req.vol_type = UBI_DYNAMIC_VOLUME; req.name = "rmvol"; + req.flags = 0; if (ubi_mkvol(libubi, node, &req)) { failed("ubi_mkvol"); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/mtd-utils-2.1.0/tests/unittests/Makemodule.am new/mtd-utils-2.1.1/tests/unittests/Makemodule.am --- old/mtd-utils-2.1.0/tests/unittests/Makemodule.am 2018-06-14 22:42:39.000000000 +0200 +++ new/mtd-utils-2.1.1/tests/unittests/Makemodule.am 2019-04-25 08:24:36.000000000 +0200 @@ -6,7 +6,7 @@ mtdlib_test_SOURCES = tests/unittests/libmtd_test.c lib/libmtd.c lib/libmtd_legacy.c mtdlib_test_LDADD = $(CMOCKA_LIBS) mtdlib_test_LDFLAGS = -Wl,--wrap=open -Wl,--wrap=close -Wl,--wrap=ioctl -Wl,--wrap=read -Wl,--wrap=lseek -Wl,--wrap=write -mtdlib_test_CPPFLAGS = -O0 --std=gnu99 $(CMOCKA_CFLAGS) -I$(top_srcdir)/lib/ -I$(top_srcdir)/include -DSYSFS_ROOT='"$(top_srcdir)/tests/unittests/sysfs_mock"' +mtdlib_test_CPPFLAGS = -O0 -D_GNU_SOURCE --std=gnu99 $(CMOCKA_CFLAGS) -I$(top_srcdir)/lib/ -I$(top_srcdir)/include -DSYSFS_ROOT='"$(top_srcdir)/tests/unittests/sysfs_mock"' TEST_BINS = \ ubilib_test \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/mtd-utils-2.1.0/tests/unittests/libmtd_test.c new/mtd-utils-2.1.1/tests/unittests/libmtd_test.c --- old/mtd-utils-2.1.0/tests/unittests/libmtd_test.c 2018-06-14 22:42:39.000000000 +0200 +++ new/mtd-utils-2.1.1/tests/unittests/libmtd_test.c 2019-04-25 08:24:34.000000000 +0200 @@ -1,3 +1,4 @@ +#include <fcntl.h> #include <stdarg.h> #include <setjmp.h> #include <stddef.h> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/mtd-utils-2.1.0/tests/unittests/test_lib.h new/mtd-utils-2.1.1/tests/unittests/test_lib.h --- old/mtd-utils-2.1.0/tests/unittests/test_lib.h 2018-03-08 00:30:27.000000000 +0100 +++ new/mtd-utils-2.1.1/tests/unittests/test_lib.h 2019-04-25 08:24:31.000000000 +0200 @@ -1,3 +1,4 @@ +#include <asm/ioctl.h> #include <stdarg.h> #include <setjmp.h> #include <stddef.h> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/mtd-utils-2.1.0/ubi-utils/ubiformat.c new/mtd-utils-2.1.1/ubi-utils/ubiformat.c --- old/mtd-utils-2.1.0/ubi-utils/ubiformat.c 2019-01-25 12:50:13.000000000 +0100 +++ new/mtd-utils-2.1.1/ubi-utils/ubiformat.c 2019-05-13 08:27:22.000000000 +0200 @@ -120,6 +120,7 @@ { .name = "ubi-ver", .has_arg = 1, .flag = NULL, .val = 'x' }, { .name = "help", .has_arg = 0, .flag = NULL, .val = 'h' }, { .name = "version", .has_arg = 0, .flag = NULL, .val = 'V' }, + { .name = "image-seq", .has_arg = 1, .flag = NULL, .val = 'Q' }, { NULL, 0, NULL, 0}, }; @@ -132,7 +133,7 @@ int key, error = 0; unsigned long int image_seq; - key = getopt_long(argc, argv, "nh?Vyqve:x:s:O:f:S:", long_options, NULL); + key = getopt_long(argc, argv, "nh?Vyqve:x:s:O:f:S:Q:", long_options, NULL); if (key == -1) break; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/mtd-utils-2.1.0/ubi-utils/ubinize.c new/mtd-utils-2.1.1/ubi-utils/ubinize.c --- old/mtd-utils-2.1.0/ubi-utils/ubinize.c 2018-06-28 13:50:07.000000000 +0200 +++ new/mtd-utils-2.1.1/ubi-utils/ubinize.c 2019-07-02 14:33:02.000000000 +0200 @@ -442,11 +442,14 @@ verbose(args.verbose, "UBI image sequence number: %u", ui.image_seq); vtbl = ubigen_create_empty_vtbl(&ui); - if (!vtbl) + if (!vtbl) { + err = -1; goto out; + } args.dict = iniparser_load(args.f_in); if (!args.dict) { + err = -1; errmsg("cannot load the input ini file \"%s\"", args.f_in); goto out_vtbl; } @@ -456,17 +459,20 @@ /* Each section describes one volume */ sects = iniparser_getnsec(args.dict); if (sects == -1) { + err = -1; errmsg("ini-file parsing error (iniparser_getnsec)"); goto out_dict; } verbose(args.verbose, "count of sections: %d", sects); if (sects == 0) { + err = -1; errmsg("no sections found the ini-file \"%s\"", args.f_in); goto out_dict; } if (sects > ui.max_volumes) { + err = -1; errmsg("too many sections (%d) in the ini-file \"%s\"", sects, args.f_in); normsg("each section corresponds to an UBI volume, maximum " @@ -476,6 +482,7 @@ vi = calloc(sizeof(struct ubigen_vol_info), sects); if (!vi) { + err = -1; errmsg("cannot allocate memory"); goto out_dict; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/mtd-utils-2.1.0/ubifs-utils/Makemodule.am new/mtd-utils-2.1.1/ubifs-utils/Makemodule.am --- old/mtd-utils-2.1.0/ubifs-utils/Makemodule.am 2018-11-01 12:42:31.000000000 +0100 +++ new/mtd-utils-2.1.1/ubifs-utils/Makemodule.am 2019-06-01 19:38:44.000000000 +0200 @@ -22,8 +22,8 @@ ubifs-utils/mkfs.ubifs/fscrypt.c endif -mkfs_ubifs_LDADD = libmtd.a libubi.a $(ZLIB_LIBS) $(LZO_LIBS) $(UUID_LIBS) $(LIBSELINUX_LIBS) $(OPENSSL_LIBS) -lm -mkfs_ubifs_CPPFLAGS = $(AM_CPPFLAGS) $(ZLIB_CFLAGS) $(LZO_CFLAGS) $(UUID_CFLAGS) $(LIBSELINUX_CFLAGS)\ +mkfs_ubifs_LDADD = libmtd.a libubi.a $(ZLIB_LIBS) $(LZO_LIBS) $(ZSTD_LIBS) $(UUID_LIBS) $(LIBSELINUX_LIBS) $(OPENSSL_LIBS) -lm +mkfs_ubifs_CPPFLAGS = $(AM_CPPFLAGS) $(ZLIB_CFLAGS) $(LZO_CFLAGS) $(ZSTD_CFLAGS) $(UUID_CFLAGS) $(LIBSELINUX_CFLAGS)\ -I$(top_srcdir)/ubi-utils/include -I$(top_srcdir)/ubifs-utils/mkfs.ubifs/ UBIFS_BINS = \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/mtd-utils-2.1.0/ubifs-utils/mkfs.ubifs/compr.c new/mtd-utils-2.1.1/ubifs-utils/mkfs.ubifs/compr.c --- old/mtd-utils-2.1.0/ubifs-utils/mkfs.ubifs/compr.c 2016-07-12 14:16:45.000000000 +0200 +++ new/mtd-utils-2.1.1/ubifs-utils/mkfs.ubifs/compr.c 2019-07-16 07:53:33.000000000 +0200 @@ -28,6 +28,9 @@ #include <lzo/lzo1x.h> #endif #include <linux/types.h> +#ifndef WITHOUT_ZSTD +#include <zstd.h> +#endif #define crc32 __zlib_crc32 #include <zlib.h> @@ -109,6 +112,24 @@ } #endif +#ifndef WITHOUT_ZSTD +static ZSTD_CCtx *zctx; + +static int zstd_compress(void *in_buf, size_t in_len, void *out_buf, + size_t *out_len) +{ + size_t ret; + + ret = ZSTD_compressCCtx(zctx, out_buf, *out_len, in_buf, in_len, 0); + if (ZSTD_isError(ret)) { + errcnt += 1; + return -1; + } + *out_len = ret; + return 0; +} +#endif + static int no_compress(void *in_buf, size_t in_len, void *out_buf, size_t *out_len) { @@ -192,6 +213,11 @@ case MKFS_UBIFS_COMPR_ZLIB: ret = zlib_deflate(in_buf, in_len, out_buf, out_len); break; +#ifndef WITHOUT_ZSTD + case MKFS_UBIFS_COMPR_ZSTD: + ret = zstd_compress(in_buf, in_len, out_buf, out_len); + break; +#endif case MKFS_UBIFS_COMPR_NONE: ret = 1; break; @@ -219,18 +245,29 @@ #endif zlib_buf = malloc(UBIFS_BLOCK_SIZE * WORST_COMPR_FACTOR); - if (!zlib_buf) { - free(lzo_mem); - return -1; - } + if (!zlib_buf) + goto err; + +#ifndef WITHOUT_ZSTD + zctx = ZSTD_createCCtx(); + if (!zctx) + goto err; +#endif return 0; +err: + free(zlib_buf); + free(lzo_mem); + return -1; } void destroy_compression(void) { free(zlib_buf); free(lzo_mem); +#ifndef WITHOUT_ZSTD + ZSTD_freeCCtx(zctx); +#endif if (errcnt) fprintf(stderr, "%llu compression errors occurred\n", errcnt); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/mtd-utils-2.1.0/ubifs-utils/mkfs.ubifs/compr.h new/mtd-utils-2.1.1/ubifs-utils/mkfs.ubifs/compr.h --- old/mtd-utils-2.1.0/ubifs-utils/mkfs.ubifs/compr.h 2016-07-12 14:16:45.000000000 +0200 +++ new/mtd-utils-2.1.1/ubifs-utils/mkfs.ubifs/compr.h 2019-06-01 19:38:44.000000000 +0200 @@ -36,6 +36,7 @@ MKFS_UBIFS_COMPR_NONE, MKFS_UBIFS_COMPR_LZO, MKFS_UBIFS_COMPR_ZLIB, + MKFS_UBIFS_COMPR_ZSTD, }; int compress_data(void *in_buf, size_t in_len, void *out_buf, size_t *out_len, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/mtd-utils-2.1.0/ubifs-utils/mkfs.ubifs/mkfs.ubifs.c new/mtd-utils-2.1.1/ubifs-utils/mkfs.ubifs/mkfs.ubifs.c --- old/mtd-utils-2.1.0/ubifs-utils/mkfs.ubifs/mkfs.ubifs.c 2019-02-11 04:58:33.000000000 +0100 +++ new/mtd-utils-2.1.1/ubifs-utils/mkfs.ubifs/mkfs.ubifs.c 2019-07-18 11:45:37.000000000 +0200 @@ -35,6 +35,10 @@ #include <selinux/label.h> #endif +#ifndef WITHOUT_ZSTD +#include <zstd.h> +#endif + #include "crypto.h" #include "fscrypt.h" @@ -209,8 +213,8 @@ "-o, --output=FILE output to FILE\n" "-j, --jrn-size=SIZE journal size\n" "-R, --reserved=SIZE how much space should be reserved for the super-user\n" -"-x, --compr=TYPE compression type - \"lzo\", \"favor_lzo\", \"zlib\" or\n" -" \"none\" (default: \"lzo\")\n" +"-x, --compr=TYPE compression type - \"lzo\", \"favor_lzo\", \"zlib\"\n" +" \"zstd\" or \"none\" (default: \"lzo\")\n" "-X, --favor-percent may only be used with favor LZO compression and defines\n" " how many percent better zlib should compress to make\n" " mkfs.ubifs use zlib instead of LZO (default 20%)\n" @@ -246,8 +250,8 @@ "really a separate compressor. It is just a method of combining \"lzo\" and \"zlib\"\n" "compressors. Namely, mkfs.ubifs tries to compress data with both \"lzo\" and \"zlib\"\n" "compressors, then it compares which compressor is better. If \"zlib\" compresses 20\n" -"or more percent better than \"lzo\", mkfs.ubifs chooses \"lzo\", otherwise it chooses\n" -"\"zlib\". The \"--favor-percent\" may specify arbitrary threshold instead of the\n" +"or more percent better than \"lzo\", mkfs.ubifs chooses \"zlib\", otherwise it chooses\n" +"\"lzo\". The \"--favor-percent\" may specify arbitrary threshold instead of the\n" "default 20%.\n\n" "The -F parameter is used to set the \"fix up free space\" flag in the superblock,\n" "which forces UBIFS to \"fixup\" all the free space which it is going to use. This\n" @@ -654,6 +658,10 @@ c->default_compr = UBIFS_COMPR_NONE; else if (strcmp(optarg, "zlib") == 0) c->default_compr = UBIFS_COMPR_ZLIB; +#ifndef WITHOUT_ZSTD + else if (strcmp(optarg, "zstd") == 0) + c->default_compr = UBIFS_COMPR_ZSTD; +#endif #ifndef WITHOUT_LZO else if (strcmp(optarg, "favor_lzo") == 0) { c->default_compr = UBIFS_COMPR_LZO; @@ -1531,12 +1539,13 @@ ino->flags = cpu_to_le32(use_flags); ino->compr_type = cpu_to_le16(c->default_compr); if (data_len) { - if (!S_ISLNK(st->st_mode)) - return err_msg("Expected symlink"); - if (!fctx) { memcpy(&ino->data, data, data_len); } else { + /* TODO: what about device files? */ + if (!S_ISLNK(st->st_mode)) + return err_msg("Expected symlink"); + ret = encrypt_symlink(&ino->data, data, data_len, fctx); if (ret < 0) return ret; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/mtd-utils-2.1.0/ubifs-utils/mkfs.ubifs/mkfs.ubifs.h new/mtd-utils-2.1.1/ubifs-utils/mkfs.ubifs/mkfs.ubifs.h --- old/mtd-utils-2.1.0/ubifs-utils/mkfs.ubifs/mkfs.ubifs.h 2018-11-01 12:32:28.000000000 +0100 +++ new/mtd-utils-2.1.1/ubifs-utils/mkfs.ubifs/mkfs.ubifs.h 2019-06-01 19:38:44.000000000 +0200 @@ -46,7 +46,9 @@ #include <uuid.h> #include <sys/file.h> +#ifdef WITH_CRYPTO #include <openssl/rand.h> +#endif #include <mtd/ubifs-media.h> @@ -75,6 +77,9 @@ #if MKFS_UBIFS_COMPR_ZLIB != UBIFS_COMPR_ZLIB #error MKFS_UBIFS_COMPR_ZLIB != UBIFS_COMPR_ZLIB #endif +#if MKFS_UBIFS_COMPR_ZSTD != UBIFS_COMPR_ZSTD +#error MKFS_UBIFS_COMPR_ZSTD != UBIFS_COMPR_ZSTD +#endif extern int verbose; extern int debug_level;
