Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package snapper for openSUSE:Factory checked in at 2023-01-21 19:10:12 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/snapper (Old) and /work/SRC/openSUSE:Factory/.snapper.new.32243 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "snapper" Sat Jan 21 19:10:12 2023 rev:146 rq:1059934 version:0.10.4 Changes: -------- --- /work/SRC/openSUSE:Factory/snapper/snapper.changes 2023-01-10 14:59:24.589077707 +0100 +++ /work/SRC/openSUSE:Factory/.snapper.new.32243/snapper.changes 2023-01-21 19:10:19.072872590 +0100 @@ -1,0 +2,17 @@ +Thu Jan 19 12:00:00 PM CET 2023 - David Sterba <dste...@suse.cz> + +- Use libbtrfsutil implementation for BtrfsUtil::get_subvolume + +------------------------------------------------------------------- +Thu Jan 12 12:00:00 PM CET 2023 - David Sterba <dste...@suse.cz> + +- Add build support for libbtrfsutil +- Use libbtrfsutil implementation for the following methods: + - check if a subvolume exists + - create subvolume, snapshot + - subvolume read-only check + - delete subvolume + - set/get default subvolume + - filesystem sync + +------------------------------------------------------------------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ snapper.spec ++++++ --- /var/tmp/diff_new_pack.oxbHVl/_old 2023-01-21 19:10:20.476880606 +0100 +++ /var/tmp/diff_new_pack.oxbHVl/_new 2023-01-21 19:10:20.520880856 +0100 @@ -55,6 +55,9 @@ %if 0%{?suse_version} BuildRequires: libbtrfs-devel %endif +%if 0%{?suse_version} >= 1550 +BuildRequires: libbtrfsutil-devel +%endif %if 0%{?suse_version} > 1310 BuildRequires: libmount-devel >= 2.24 %endif ++++++ debian.tar.gz ++++++ ++++++ snapper-0.10.4.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.10.4/Makefile.in new/snapper-0.10.4/Makefile.in --- old/snapper-0.10.4/Makefile.in 2023-01-04 15:44:48.000000000 +0100 +++ new/snapper-0.10.4/Makefile.in 2023-01-20 10:34:38.000000000 +0100 @@ -290,6 +290,8 @@ JSONC_LIBS = @JSONC_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ +LIBBTRFSUTIL_CFLAGS = @LIBBTRFSUTIL_CFLAGS@ +LIBBTRFSUTIL_LIBS = @LIBBTRFSUTIL_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.10.4/client/Makefile.in new/snapper-0.10.4/client/Makefile.in --- old/snapper-0.10.4/client/Makefile.in 2023-01-04 15:44:48.000000000 +0100 +++ new/snapper-0.10.4/client/Makefile.in 2023-01-20 10:34:38.000000000 +0100 @@ -344,6 +344,8 @@ JSONC_LIBS = @JSONC_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ +LIBBTRFSUTIL_CFLAGS = @LIBBTRFSUTIL_CFLAGS@ +LIBBTRFSUTIL_LIBS = @LIBBTRFSUTIL_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.10.4/client/utils/Makefile.in new/snapper-0.10.4/client/utils/Makefile.in --- old/snapper-0.10.4/client/utils/Makefile.in 2023-01-04 15:44:48.000000000 +0100 +++ new/snapper-0.10.4/client/utils/Makefile.in 2023-01-20 10:34:38.000000000 +0100 @@ -244,6 +244,8 @@ JSONC_LIBS = @JSONC_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ +LIBBTRFSUTIL_CFLAGS = @LIBBTRFSUTIL_CFLAGS@ +LIBBTRFSUTIL_LIBS = @LIBBTRFSUTIL_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.10.4/config.h.in new/snapper-0.10.4/config.h.in --- old/snapper-0.10.4/config.h.in 2023-01-04 15:44:48.000000000 +0100 +++ new/snapper-0.10.4/config.h.in 2023-01-20 10:34:38.000000000 +0100 @@ -36,6 +36,9 @@ /* Enable extended attributes support */ #undef ENABLE_XATTRS +/* Define to 1 if you have the <btrfsutil.h> header file. */ +#undef HAVE_BTRFSUTIL_H + /* Define to 1 if you have the <btrfs/version.h> header file. */ #undef HAVE_BTRFS_VERSION_H @@ -48,6 +51,9 @@ /* Define to 1 if you have the `btrfs' library (-lbtrfs). */ #undef HAVE_LIBBTRFS +/* Define to 1 if you have the `btrfsutil' library (-lbtrfsutil). */ +#undef HAVE_LIBBTRFSUTIL + /* Define to 1 if you have the `selinux' library (-lselinux). */ #undef HAVE_LIBSELINUX diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.10.4/configure new/snapper-0.10.4/configure --- old/snapper-0.10.4/configure 2023-01-04 15:44:48.000000000 +0100 +++ new/snapper-0.10.4/configure 2023-01-20 10:34:38.000000000 +0100 @@ -667,6 +667,8 @@ LIBVERSION_PATCHLEVEL LIBVERSION_MINOR LIBVERSION_MAJOR +LIBBTRFSUTIL_LIBS +LIBBTRFSUTIL_CFLAGS ZLIB_LIBS ZLIB_CFLAGS JSONC_LIBS @@ -890,7 +892,9 @@ JSONC_CFLAGS JSONC_LIBS ZLIB_CFLAGS -ZLIB_LIBS' +ZLIB_LIBS +LIBBTRFSUTIL_CFLAGS +LIBBTRFSUTIL_LIBS' # Initialize some variables set by options. @@ -1583,6 +1587,10 @@ JSONC_LIBS linker flags for JSONC, overriding pkg-config ZLIB_CFLAGS C compiler flags for ZLIB, overriding pkg-config ZLIB_LIBS linker flags for ZLIB, overriding pkg-config + LIBBTRFSUTIL_CFLAGS + C compiler flags for LIBBTRFSUTIL, overriding pkg-config + LIBBTRFSUTIL_LIBS + linker flags for LIBBTRFSUTIL, overriding pkg-config Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. @@ -18380,6 +18388,152 @@ fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for btrfs_util_strerror in -lbtrfsutil" >&5 +printf %s "checking for btrfs_util_strerror in -lbtrfsutil... " >&6; } +if test ${ac_cv_lib_btrfsutil_btrfs_util_strerror+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_check_lib_save_LIBS=$LIBS +LIBS="-lbtrfsutil $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. */ +char btrfs_util_strerror (); +int +main (void) +{ +return btrfs_util_strerror (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_cv_lib_btrfsutil_btrfs_util_strerror=yes +else $as_nop + ac_cv_lib_btrfsutil_btrfs_util_strerror=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_btrfsutil_btrfs_util_strerror" >&5 +printf "%s\n" "$ac_cv_lib_btrfsutil_btrfs_util_strerror" >&6; } +if test "x$ac_cv_lib_btrfsutil_btrfs_util_strerror" = xyes +then : + printf "%s\n" "#define HAVE_LIBBTRFSUTIL 1" >>confdefs.h + + LIBS="-lbtrfsutil $LIBS" + +fi + +ac_fn_c_check_header_compile "$LINENO" "btrfsutil.h" "ac_cv_header_btrfsutil_h" "$ac_includes_default" +if test "x$ac_cv_header_btrfsutil_h" = xyes +then : + printf "%s\n" "#define HAVE_BTRFSUTIL_H 1" >>confdefs.h + +fi + + +# Conditional support for libbtrfsutil +if test "x$ac_cv_lib_btrfsutil_btrfs_util_strerror" = "xyes"; then + +pkg_failed=no +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for LIBBTRFSUTIL" >&5 +printf %s "checking for LIBBTRFSUTIL... " >&6; } + +if test -n "$LIBBTRFSUTIL_CFLAGS"; then + pkg_cv_LIBBTRFSUTIL_CFLAGS="$LIBBTRFSUTIL_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libbtrfsutil\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libbtrfsutil") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_LIBBTRFSUTIL_CFLAGS=`$PKG_CONFIG --cflags "libbtrfsutil" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$LIBBTRFSUTIL_LIBS"; then + pkg_cv_LIBBTRFSUTIL_LIBS="$LIBBTRFSUTIL_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libbtrfsutil\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libbtrfsutil") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_LIBBTRFSUTIL_LIBS=`$PKG_CONFIG --libs "libbtrfsutil" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + LIBBTRFSUTIL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libbtrfsutil" 2>&1` + else + LIBBTRFSUTIL_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libbtrfsutil" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$LIBBTRFSUTIL_PKG_ERRORS" >&5 + + as_fn_error $? "Package requirements (libbtrfsutil) were not met: + +$LIBBTRFSUTIL_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables LIBBTRFSUTIL_CFLAGS +and LIBBTRFSUTIL_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details." "$LINENO" 5 +elif test $pkg_failed = untried; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +Alternatively, you may set the environment variables LIBBTRFSUTIL_CFLAGS +and LIBBTRFSUTIL_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see <http://pkg-config.freedesktop.org/>. +See \`config.log' for more details" "$LINENO" 5; } +else + LIBBTRFSUTIL_CFLAGS=$pkg_cv_LIBBTRFSUTIL_CFLAGS + LIBBTRFSUTIL_LIBS=$pkg_cv_LIBBTRFSUTIL_LIBS + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + +fi +fi + ac_fn_c_check_header_compile "$LINENO" "acl/libacl.h" "ac_cv_header_acl_libacl_h" "$ac_includes_default" if test "x$ac_cv_header_acl_libacl_h" = xyes then : diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.10.4/configure.ac new/snapper-0.10.4/configure.ac --- old/snapper-0.10.4/configure.ac 2023-01-04 15:44:48.000000000 +0100 +++ new/snapper-0.10.4/configure.ac 2023-01-20 10:34:38.000000000 +0100 @@ -179,6 +179,14 @@ PKG_CHECK_MODULES(JSONC, json-c, [], [AC_MSG_WARN([Cannot find json-c. Please install libjson-c-devel])]) PKG_CHECK_MODULES(ZLIB, zlib) +AC_CHECK_LIB(btrfsutil, btrfs_util_strerror) +AC_CHECK_HEADERS([btrfsutil.h]) + +# Conditional support for libbtrfsutil +if test "x$ac_cv_lib_btrfsutil_btrfs_util_strerror" = "xyes"; then + PKG_CHECK_MODULES(LIBBTRFSUTIL, libbtrfsutil) +fi + AC_CHECK_HEADER(acl/libacl.h,[],[AC_MSG_ERROR([Cannout find libacl headers. Please install libacl-devel])]) AC_SUBST(VERSION) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.10.4/data/Makefile.in new/snapper-0.10.4/data/Makefile.in --- old/snapper-0.10.4/data/Makefile.in 2023-01-04 15:44:48.000000000 +0100 +++ new/snapper-0.10.4/data/Makefile.in 2023-01-20 10:34:38.000000000 +0100 @@ -171,6 +171,8 @@ JSONC_LIBS = @JSONC_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ +LIBBTRFSUTIL_CFLAGS = @LIBBTRFSUTIL_CFLAGS@ +LIBBTRFSUTIL_LIBS = @LIBBTRFSUTIL_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.10.4/dbus/Makefile.in new/snapper-0.10.4/dbus/Makefile.in --- old/snapper-0.10.4/dbus/Makefile.in 2023-01-04 15:44:48.000000000 +0100 +++ new/snapper-0.10.4/dbus/Makefile.in 2023-01-20 10:34:38.000000000 +0100 @@ -244,6 +244,8 @@ JSONC_LIBS = @JSONC_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ +LIBBTRFSUTIL_CFLAGS = @LIBBTRFSUTIL_CFLAGS@ +LIBBTRFSUTIL_LIBS = @LIBBTRFSUTIL_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.10.4/doc/Makefile.in new/snapper-0.10.4/doc/Makefile.in --- old/snapper-0.10.4/doc/Makefile.in 2023-01-04 15:44:48.000000000 +0100 +++ new/snapper-0.10.4/doc/Makefile.in 2023-01-20 10:34:38.000000000 +0100 @@ -212,6 +212,8 @@ JSONC_LIBS = @JSONC_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ +LIBBTRFSUTIL_CFLAGS = @LIBBTRFSUTIL_CFLAGS@ +LIBBTRFSUTIL_LIBS = @LIBBTRFSUTIL_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.10.4/examples/Makefile.in new/snapper-0.10.4/examples/Makefile.in --- old/snapper-0.10.4/examples/Makefile.in 2023-01-04 15:44:48.000000000 +0100 +++ new/snapper-0.10.4/examples/Makefile.in 2023-01-20 10:34:38.000000000 +0100 @@ -229,6 +229,8 @@ JSONC_LIBS = @JSONC_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ +LIBBTRFSUTIL_CFLAGS = @LIBBTRFSUTIL_CFLAGS@ +LIBBTRFSUTIL_LIBS = @LIBBTRFSUTIL_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.10.4/examples/c/Makefile.in new/snapper-0.10.4/examples/c/Makefile.in --- old/snapper-0.10.4/examples/c/Makefile.in 2023-01-04 15:44:48.000000000 +0100 +++ new/snapper-0.10.4/examples/c/Makefile.in 2023-01-20 10:34:38.000000000 +0100 @@ -223,6 +223,8 @@ JSONC_LIBS = @JSONC_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ +LIBBTRFSUTIL_CFLAGS = @LIBBTRFSUTIL_CFLAGS@ +LIBBTRFSUTIL_LIBS = @LIBBTRFSUTIL_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.10.4/examples/c++-lib/Makefile.in new/snapper-0.10.4/examples/c++-lib/Makefile.in --- old/snapper-0.10.4/examples/c++-lib/Makefile.in 2023-01-04 15:44:48.000000000 +0100 +++ new/snapper-0.10.4/examples/c++-lib/Makefile.in 2023-01-20 10:34:38.000000000 +0100 @@ -247,6 +247,8 @@ JSONC_LIBS = @JSONC_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ +LIBBTRFSUTIL_CFLAGS = @LIBBTRFSUTIL_CFLAGS@ +LIBBTRFSUTIL_LIBS = @LIBBTRFSUTIL_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.10.4/pam/Makefile.in new/snapper-0.10.4/pam/Makefile.in --- old/snapper-0.10.4/pam/Makefile.in 2023-01-04 15:44:48.000000000 +0100 +++ new/snapper-0.10.4/pam/Makefile.in 2023-01-20 10:34:38.000000000 +0100 @@ -253,6 +253,8 @@ JSONC_LIBS = @JSONC_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ +LIBBTRFSUTIL_CFLAGS = @LIBBTRFSUTIL_CFLAGS@ +LIBBTRFSUTIL_LIBS = @LIBBTRFSUTIL_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.10.4/po/Makefile.in new/snapper-0.10.4/po/Makefile.in --- old/snapper-0.10.4/po/Makefile.in 2023-01-04 15:44:48.000000000 +0100 +++ new/snapper-0.10.4/po/Makefile.in 2023-01-20 10:34:38.000000000 +0100 @@ -171,6 +171,8 @@ JSONC_LIBS = @JSONC_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ +LIBBTRFSUTIL_CFLAGS = @LIBBTRFSUTIL_CFLAGS@ +LIBBTRFSUTIL_LIBS = @LIBBTRFSUTIL_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.10.4/po/es.po new/snapper-0.10.4/po/es.po --- old/snapper-0.10.4/po/es.po 2023-01-04 15:44:48.000000000 +0100 +++ new/snapper-0.10.4/po/es.po 2023-01-20 10:34:38.000000000 +0100 @@ -4,9 +4,8 @@ "Project-Id-Version: snapper\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-03-23 12:54+0100\n" -"PO-Revision-Date: 2022-06-27 00:13+0000\n" -"Last-Translator: Jaime MarquÃnez Ferrándiz <jaime.marquinez." -"ferran...@fastmail.net>\n" +"PO-Revision-Date: 2023-01-05 07:13+0000\n" +"Last-Translator: Alejandro Leal <ajl...@msn.com>\n" "Language-Team: Spanish <https://l10n.opensuse.org/projects/snapper/master/es/" ">\n" "Language: es\n" @@ -580,7 +579,6 @@ msgid "Failed to query free space." msgstr "Error al consultar el espacio libre." -#, fuzzy msgid "Failed to set locale." msgstr "Error al establecer la configuración regional." diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.10.4/scripts/Makefile.in new/snapper-0.10.4/scripts/Makefile.in --- old/snapper-0.10.4/scripts/Makefile.in 2023-01-04 15:44:48.000000000 +0100 +++ new/snapper-0.10.4/scripts/Makefile.in 2023-01-20 10:34:38.000000000 +0100 @@ -201,6 +201,8 @@ JSONC_LIBS = @JSONC_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ +LIBBTRFSUTIL_CFLAGS = @LIBBTRFSUTIL_CFLAGS@ +LIBBTRFSUTIL_LIBS = @LIBBTRFSUTIL_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.10.4/server/Makefile.in new/snapper-0.10.4/server/Makefile.in --- old/snapper-0.10.4/server/Makefile.in 2023-01-04 15:44:48.000000000 +0100 +++ new/snapper-0.10.4/server/Makefile.in 2023-01-20 10:34:38.000000000 +0100 @@ -247,6 +247,8 @@ JSONC_LIBS = @JSONC_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ +LIBBTRFSUTIL_CFLAGS = @LIBBTRFSUTIL_CFLAGS@ +LIBBTRFSUTIL_LIBS = @LIBBTRFSUTIL_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.10.4/snapper/BtrfsUtils.cc new/snapper-0.10.4/snapper/BtrfsUtils.cc --- old/snapper-0.10.4/snapper/BtrfsUtils.cc 2023-01-04 15:44:48.000000000 +0100 +++ new/snapper-0.10.4/snapper/BtrfsUtils.cc 2023-01-20 10:34:38.000000000 +0100 @@ -1,6 +1,6 @@ /* * Copyright (c) [2011-2015] Novell, Inc. - * Copyright (c) [2016-2020] SUSE LLC + * Copyright (c) [2016-2023] SUSE LLC * * All Rights Reserved. * @@ -37,6 +37,9 @@ #else #include <linux/btrfs.h> #endif +#ifdef HAVE_LIBBTRFSUTIL +#include <btrfsutil.h> +#endif #include <algorithm> #include <functional> @@ -67,17 +70,35 @@ bool is_subvolume_read_only(int fd) { +#ifdef HAVE_LIBBTRFSUTIL + enum btrfs_util_error err; + bool readonly; + + err = btrfs_util_get_subvolume_read_only_fd(fd, &readonly); + if (err) + throw runtime_error_with_errno("btrfs_util_get_subvolume_read_only_fd() failed", errno); + + return readonly; +#else __u64 flags; if (ioctl(fd, BTRFS_IOC_SUBVOL_GETFLAGS, &flags) < 0) throw runtime_error_with_errno("ioctl(BTRFS_IOC_SUBVOL_GETFLAGS) failed", errno); return flags & BTRFS_SUBVOL_RDONLY; +#endif } void create_subvolume(int fddst, const string& name) { +#ifdef HAVE_LIBBTRFSUTIL + enum btrfs_util_error err; + + err = btrfs_util_create_subvolume_fd(fddst, name.c_str(), 0, NULL, NULL); + if (err) + throw runtime_error_with_errno("btrfs_util_create_subvolume_fd() failed", errno); +#else struct btrfs_ioctl_vol_args args; memset(&args, 0, sizeof(args)); @@ -85,12 +106,44 @@ if (ioctl(fddst, BTRFS_IOC_SUBVOL_CREATE, &args) < 0) throw runtime_error_with_errno("ioctl(BTRFS_IOC_SUBVOL_CREATE) failed", errno); +#endif } void create_snapshot(int fd, int fddst, const string& name, bool read_only, qgroup_t qgroup) { +#ifdef HAVE_LIBBTRFSUTIL + struct btrfs_util_qgroup_inherit *util_inherit = NULL; + int flags = 0; + + if (read_only) + flags |= BTRFS_UTIL_CREATE_SNAPSHOT_READ_ONLY; + +#ifdef ENABLE_BTRFS_QUOTA + size_t size = sizeof(btrfs_qgroup_inherit) + sizeof(((btrfs_qgroup_inherit*) 0)->qgroups[0]); + vector<char> buffer(size, 0); + + if (qgroup != no_qgroup) + { + struct btrfs_qgroup_inherit *inherit; + + inherit = (btrfs_qgroup_inherit*) &buffer[0]; + inherit->num_qgroups = 1; + inherit->num_ref_copies = 0; + inherit->num_excl_copies = 0; + inherit->qgroups[0] = qgroup; + util_inherit = (struct btrfs_util_qgroup_inherit *)inherit; + } +#endif + enum btrfs_util_error err = btrfs_util_create_snapshot_fd2(fd, fddst, name.c_str(), flags, NULL, + util_inherit); + if (!err) + return; + else if (errno != ENOTTY && errno != EINVAL) + throw runtime_error_with_errno("btrfs_util_create_snapshot_fd2() failed", errno); + +#else struct btrfs_ioctl_vol_args_v2 args_v2; memset(&args_v2, 0, sizeof(args_v2)); @@ -124,6 +177,8 @@ else if (errno != ENOTTY && errno != EINVAL) throw runtime_error_with_errno("ioctl(BTRFS_IOC_SNAP_CREATE_V2) failed", errno); +#endif + struct btrfs_ioctl_vol_args args; memset(&args, 0, sizeof(args)); @@ -138,6 +193,13 @@ void delete_subvolume(int fd, const string& name) { +#ifdef HAVE_LIBBTRFSUTIL + enum btrfs_util_error err; + + err = btrfs_util_delete_subvolume_fd(fd, name.c_str(), 0); + if (err) + throw runtime_error_with_errno("btrfs_util_delete_subvolume_fd() failed", errno); +#else struct btrfs_ioctl_vol_args args; memset(&args, 0, sizeof(args)); @@ -145,6 +207,7 @@ if (ioctl(fd, BTRFS_IOC_SNAP_DESTROY, &args) < 0) throw runtime_error_with_errno("ioctl(BTRFS_IOC_SNAP_DESTROY) failed", errno); +#endif } @@ -153,14 +216,32 @@ void set_default_id(int fd, subvolid_t id) { +#ifdef HAVE_LIBBTRFSUTIL + enum btrfs_util_error err; + + err = btrfs_util_set_default_subvolume_fd(fd, id); + if (err) + throw runtime_error_with_errno("btrfs_util_set_default_subvolume_fd() failed", errno); +#else if (ioctl(fd, BTRFS_IOC_DEFAULT_SUBVOL, &id) < 0) throw runtime_error_with_errno("ioctl(BTRFS_IOC_DEFAULT_SUBVOL) failed", errno); +#endif } subvolid_t get_default_id(int fd) { +#ifdef HAVE_LIBBTRFSUTIL + enum btrfs_util_error err; + uint64_t id; + + err = btrfs_util_get_default_subvolume_fd(fd, &id); + if (err) + throw runtime_error_with_errno("btrfs_util_get_default_subvolume_fd() failed", errno); + + return id; +#else struct btrfs_ioctl_search_args args; memset(&args, 0, sizeof(args)); @@ -191,12 +272,59 @@ throw std::runtime_error("name != default"); return btrfs_disk_key_objectid(&di->location); +#endif } string get_subvolume(int fd, subvolid_t id) { +#ifdef HAVE_LIBBTRFSUTIL + enum btrfs_util_error err; + char *tmp; + string path; + + /* This requires CAP_SYS_ADMIN as it uses the TREE_SEARCH ioctl but is fast. */ + err = btrfs_util_subvolume_path_fd(fd, id, &tmp); + if (err == BTRFS_UTIL_ERROR_SUBVOLUME_NOT_FOUND) + throw runtime_error_with_errno("btrfs_util_subvolume_path_fd() failed", errno); + + /* Try slower iterative search but without restrictions. */ + if (err == BTRFS_UTIL_OK) { + path = tmp; + free(tmp); + } else if (err == BTRFS_UTIL_ERROR_SEARCH_FAILED || err == BTRFS_UTIL_ERROR_NO_MEMORY) { + struct btrfs_util_subvolume_iterator *iter; + + err = btrfs_util_create_subvolume_iterator_fd(fd, 0, 0, &iter); + if (err) + throw runtime_error_with_errno("btrfs_util_subvolume_path_fd() failed", errno); + + while (1) { + struct btrfs_util_subvolume_info subvol; + + err = btrfs_util_subvolume_iterator_next_info(iter, &tmp, &subvol); + if (err != BTRFS_UTIL_OK) { + /* Nothing found or other error */ + btrfs_util_destroy_subvolume_iterator(iter); + throw std::runtime_error("get_subvolume() failed"); + } + + if (subvol.id == id) { + btrfs_util_destroy_subvolume_iterator(iter); + path = tmp; + free(tmp); + break; + } + free(tmp); + } + } else { + /* Unknown error */ + throw std::runtime_error("get_subvolume() failed"); + } + + return path; +#else char path[BTRFS_PATH_NAME_MAX + 1]; if (btrfs_subvolid_resolve(fd, path, sizeof(path), id) != 0) @@ -204,6 +332,7 @@ path[BTRFS_PATH_NAME_MAX] = '\0'; return path; +#endif } #endif @@ -229,6 +358,18 @@ bool does_subvolume_exist(int fd, subvolid_t subvolid) { +#ifdef HAVE_LIBBTRFSUTIL + enum btrfs_util_error err; + struct btrfs_util_subvolume_info subvol_info; + + err = btrfs_util_subvolume_info_fd(fd, subvolid, &subvol_info); + if (err == BTRFS_UTIL_ERROR_SUBVOLUME_NOT_FOUND) + return false; + else if (err) + throw runtime_error_with_errno("btrfs_util_subvolume_info_fd() failed", errno); + + return true; +#else struct btrfs_ioctl_search_args args; struct btrfs_ioctl_search_key* sk = &args.key; @@ -247,6 +388,7 @@ throw runtime_error_with_errno("ioctl(BTRFS_IOC_TREE_SEARCH) failed", errno); return sk->nr_items == 0; +#endif } #endif @@ -567,8 +709,16 @@ void sync(int fd) { +#ifdef HAVE_LIBBTRFSUTIL + enum btrfs_util_error err; + + err = btrfs_util_sync_fd(fd); + if (err) + throw runtime_error_with_errno("(btrfs_util_sync_fd() failed", errno); +#else if (ioctl(fd, BTRFS_IOC_SYNC) < 0) throw runtime_error_with_errno("ioctl(BTRFS_IOC_SYNC) failed", errno); +#endif } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.10.4/snapper/Makefile.am new/snapper-0.10.4/snapper/Makefile.am --- old/snapper-0.10.4/snapper/Makefile.am 2023-01-04 15:44:48.000000000 +0100 +++ new/snapper-0.10.4/snapper/Makefile.am 2023-01-20 10:34:38.000000000 +0100 @@ -67,6 +67,10 @@ if ENABLE_ROLLBACK libsnapper_la_LIBADD += -lmount endif +if ENABLE_BTRFS +libsnapper_la_CPPFLAGS += $(LIBBTRFSUTIL_CFLAGS) +libsnapper_la_LIBADD += $(LIBBTRFSUTIL_LIBS) +endif pkgincludedir = $(includedir)/snapper diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.10.4/snapper/Makefile.in new/snapper-0.10.4/snapper/Makefile.in --- old/snapper-0.10.4/snapper/Makefile.in 2023-01-04 15:44:48.000000000 +0100 +++ new/snapper-0.10.4/snapper/Makefile.in 2023-01-20 10:34:38.000000000 +0100 @@ -111,6 +111,8 @@ @ENABLE_SELINUX_TRUE@ Selinux.cc Selinux.h @ENABLE_ROLLBACK_TRUE@am__append_6 = -lmount +@ENABLE_BTRFS_TRUE@am__append_7 = $(LIBBTRFSUTIL_CFLAGS) +@ENABLE_BTRFS_TRUE@am__append_8 = $(LIBBTRFSUTIL_LIBS) subdir = snapper ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac @@ -152,8 +154,10 @@ am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgincludedir)" LTLIBRARIES = $(lib_LTLIBRARIES) am__DEPENDENCIES_1 = +@ENABLE_BTRFS_TRUE@am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1) libsnapper_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_2) am__libsnapper_la_SOURCES_DIST = Snapper.cc Snapper.h Snapshot.cc \ Snapshot.h Comparison.cc Comparison.h ComparisonImpl.cc \ ComparisonImpl.h Filesystem.cc Filesystem.h File.cc File.h \ @@ -352,6 +356,8 @@ JSONC_LIBS = @JSONC_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ +LIBBTRFSUTIL_CFLAGS = @LIBBTRFSUTIL_CFLAGS@ +LIBBTRFSUTIL_LIBS = @LIBBTRFSUTIL_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ @@ -470,10 +476,10 @@ Hooks.h Exception.cc Exception.h SnapperTmpl.h SnapperTypes.h \ SnapperDefines.h Version.h $(am__append_1) $(am__append_2) \ $(am__append_3) $(am__append_4) $(am__append_5) -libsnapper_la_CPPFLAGS = $(XML2_CFLAGS) $(ZLIB_CFLAGS) +libsnapper_la_CPPFLAGS = $(XML2_CFLAGS) $(ZLIB_CFLAGS) $(am__append_7) libsnapper_la_LDFLAGS = -version-info @LIBVERSION_INFO@ libsnapper_la_LIBADD = -lboost_thread -lboost_system $(XML2_LIBS) \ - -lacl $(ZLIB_LIBS) $(am__append_6) + -lacl $(ZLIB_LIBS) $(am__append_6) $(am__append_8) pkginclude_HEADERS = \ Version.h \ Snapper.h \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.10.4/snapper.spec.in new/snapper-0.10.4/snapper.spec.in --- old/snapper-0.10.4/snapper.spec.in 2023-01-04 15:44:48.000000000 +0100 +++ new/snapper-0.10.4/snapper.spec.in 2023-01-20 10:34:38.000000000 +0100 @@ -55,6 +55,9 @@ %if 0%{?suse_version} BuildRequires: libbtrfs-devel %endif +%if 0%{?suse_version} >= 1550 +BuildRequires: libbtrfsutil-devel +%endif %if 0%{?suse_version} > 1310 BuildRequires: libmount-devel >= 2.24 %endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.10.4/testsuite/Makefile.in new/snapper-0.10.4/testsuite/Makefile.in --- old/snapper-0.10.4/testsuite/Makefile.in 2023-01-04 15:44:48.000000000 +0100 +++ new/snapper-0.10.4/testsuite/Makefile.in 2023-01-20 10:34:38.000000000 +0100 @@ -520,6 +520,8 @@ JSONC_LIBS = @JSONC_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ +LIBBTRFSUTIL_CFLAGS = @LIBBTRFSUTIL_CFLAGS@ +LIBBTRFSUTIL_LIBS = @LIBBTRFSUTIL_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.10.4/testsuite-cmp/Makefile.in new/snapper-0.10.4/testsuite-cmp/Makefile.in --- old/snapper-0.10.4/testsuite-cmp/Makefile.in 2023-01-04 15:44:48.000000000 +0100 +++ new/snapper-0.10.4/testsuite-cmp/Makefile.in 2023-01-20 10:34:38.000000000 +0100 @@ -223,6 +223,8 @@ JSONC_LIBS = @JSONC_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ +LIBBTRFSUTIL_CFLAGS = @LIBBTRFSUTIL_CFLAGS@ +LIBBTRFSUTIL_LIBS = @LIBBTRFSUTIL_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.10.4/testsuite-real/Makefile.in new/snapper-0.10.4/testsuite-real/Makefile.in --- old/snapper-0.10.4/testsuite-real/Makefile.in 2023-01-04 15:44:48.000000000 +0100 +++ new/snapper-0.10.4/testsuite-real/Makefile.in 2023-01-20 10:34:38.000000000 +0100 @@ -384,6 +384,8 @@ JSONC_LIBS = @JSONC_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ +LIBBTRFSUTIL_CFLAGS = @LIBBTRFSUTIL_CFLAGS@ +LIBBTRFSUTIL_LIBS = @LIBBTRFSUTIL_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.10.4/zypp-plugin/Makefile.in new/snapper-0.10.4/zypp-plugin/Makefile.in --- old/snapper-0.10.4/zypp-plugin/Makefile.in 2023-01-04 15:44:48.000000000 +0100 +++ new/snapper-0.10.4/zypp-plugin/Makefile.in 2023-01-20 10:34:38.000000000 +0100 @@ -522,6 +522,8 @@ JSONC_LIBS = @JSONC_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ +LIBBTRFSUTIL_CFLAGS = @LIBBTRFSUTIL_CFLAGS@ +LIBBTRFSUTIL_LIBS = @LIBBTRFSUTIL_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.10.4/zypp-plugin/testsuite/Makefile.in new/snapper-0.10.4/zypp-plugin/testsuite/Makefile.in --- old/snapper-0.10.4/zypp-plugin/testsuite/Makefile.in 2023-01-04 15:44:48.000000000 +0100 +++ new/snapper-0.10.4/zypp-plugin/testsuite/Makefile.in 2023-01-20 10:34:38.000000000 +0100 @@ -373,6 +373,8 @@ JSONC_LIBS = @JSONC_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ +LIBBTRFSUTIL_CFLAGS = @LIBBTRFSUTIL_CFLAGS@ +LIBBTRFSUTIL_LIBS = @LIBBTRFSUTIL_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ ++++++ snapper-Debian_10.0.dsc ++++++ --- /var/tmp/diff_new_pack.oxbHVl/_old 2023-01-21 19:10:21.780888049 +0100 +++ /var/tmp/diff_new_pack.oxbHVl/_new 2023-01-21 19:10:21.784888072 +0100 @@ -11,5 +11,5 @@ # 423a20ae6e882d44e65a4eff97f2269f 630905 snapper-0.2.8.tar.gz # Files: -746d03d606b9273e46b0361dcbbb83ce 669404 snapper-0.10.4.tar.bz2 +3f8f1a6e46b9e424ba3ce75b3a8bc6d0 670300 snapper-0.10.4.tar.bz2 ++++++ snapper-Debian_11.0.dsc ++++++ --- /var/tmp/diff_new_pack.oxbHVl/_old 2023-01-21 19:10:21.800888164 +0100 +++ /var/tmp/diff_new_pack.oxbHVl/_new 2023-01-21 19:10:21.804888187 +0100 @@ -11,5 +11,5 @@ # 423a20ae6e882d44e65a4eff97f2269f 630905 snapper-0.2.8.tar.gz # Files: -746d03d606b9273e46b0361dcbbb83ce 669404 snapper-0.10.4.tar.bz2 +3f8f1a6e46b9e424ba3ce75b3a8bc6d0 670300 snapper-0.10.4.tar.bz2 ++++++ snapper-Debian_Unstable.dsc ++++++ --- /var/tmp/diff_new_pack.oxbHVl/_old 2023-01-21 19:10:21.820888278 +0100 +++ /var/tmp/diff_new_pack.oxbHVl/_new 2023-01-21 19:10:21.824888301 +0100 @@ -11,5 +11,5 @@ # 423a20ae6e882d44e65a4eff97f2269f 630905 snapper-0.2.8.tar.gz # Files: -746d03d606b9273e46b0361dcbbb83ce 669404 snapper-0.10.4.tar.bz2 +3f8f1a6e46b9e424ba3ce75b3a8bc6d0 670300 snapper-0.10.4.tar.bz2 ++++++ snapper-xUbuntu_18.04.dsc ++++++ --- /var/tmp/diff_new_pack.oxbHVl/_old 2023-01-21 19:10:21.864888529 +0100 +++ /var/tmp/diff_new_pack.oxbHVl/_new 2023-01-21 19:10:21.868888552 +0100 @@ -11,5 +11,5 @@ # 423a20ae6e882d44e65a4eff97f2269f 630905 snapper-0.2.8.tar.gz # Files: -746d03d606b9273e46b0361dcbbb83ce 669404 snapper-0.10.4.tar.bz2 +3f8f1a6e46b9e424ba3ce75b3a8bc6d0 670300 snapper-0.10.4.tar.bz2 ++++++ snapper-xUbuntu_18.10.dsc ++++++ --- /var/tmp/diff_new_pack.oxbHVl/_old 2023-01-21 19:10:21.888888666 +0100 +++ /var/tmp/diff_new_pack.oxbHVl/_new 2023-01-21 19:10:21.896888712 +0100 @@ -11,5 +11,5 @@ # 423a20ae6e882d44e65a4eff97f2269f 630905 snapper-0.2.8.tar.gz # Files: -746d03d606b9273e46b0361dcbbb83ce 669404 snapper-0.10.4.tar.bz2 +3f8f1a6e46b9e424ba3ce75b3a8bc6d0 670300 snapper-0.10.4.tar.bz2 ++++++ snapper-xUbuntu_19.04.dsc ++++++ --- /var/tmp/diff_new_pack.oxbHVl/_old 2023-01-21 19:10:21.912888803 +0100 +++ /var/tmp/diff_new_pack.oxbHVl/_new 2023-01-21 19:10:21.916888826 +0100 @@ -11,5 +11,5 @@ # 423a20ae6e882d44e65a4eff97f2269f 630905 snapper-0.2.8.tar.gz # Files: -746d03d606b9273e46b0361dcbbb83ce 669404 snapper-0.10.4.tar.bz2 +3f8f1a6e46b9e424ba3ce75b3a8bc6d0 670300 snapper-0.10.4.tar.bz2 ++++++ snapper-xUbuntu_19.10.dsc ++++++ --- /var/tmp/diff_new_pack.oxbHVl/_old 2023-01-21 19:10:21.936888940 +0100 +++ /var/tmp/diff_new_pack.oxbHVl/_new 2023-01-21 19:10:21.940888963 +0100 @@ -11,5 +11,5 @@ # 423a20ae6e882d44e65a4eff97f2269f 630905 snapper-0.2.8.tar.gz # Files: -746d03d606b9273e46b0361dcbbb83ce 669404 snapper-0.10.4.tar.bz2 +3f8f1a6e46b9e424ba3ce75b3a8bc6d0 670300 snapper-0.10.4.tar.bz2 ++++++ snapper-xUbuntu_20.04.dsc ++++++ --- /var/tmp/diff_new_pack.oxbHVl/_old 2023-01-21 19:10:21.956889054 +0100 +++ /var/tmp/diff_new_pack.oxbHVl/_new 2023-01-21 19:10:21.960889077 +0100 @@ -11,5 +11,5 @@ # 423a20ae6e882d44e65a4eff97f2269f 630905 snapper-0.2.8.tar.gz # Files: -746d03d606b9273e46b0361dcbbb83ce 669404 snapper-0.10.4.tar.bz2 +3f8f1a6e46b9e424ba3ce75b3a8bc6d0 670300 snapper-0.10.4.tar.bz2 ++++++ snapper-xUbuntu_20.10.dsc ++++++ --- /var/tmp/diff_new_pack.oxbHVl/_old 2023-01-21 19:10:21.980889191 +0100 +++ /var/tmp/diff_new_pack.oxbHVl/_new 2023-01-21 19:10:21.984889214 +0100 @@ -11,5 +11,5 @@ # 423a20ae6e882d44e65a4eff97f2269f 630905 snapper-0.2.8.tar.gz # Files: -746d03d606b9273e46b0361dcbbb83ce 669404 snapper-0.10.4.tar.bz2 +3f8f1a6e46b9e424ba3ce75b3a8bc6d0 670300 snapper-0.10.4.tar.bz2 ++++++ snapper-xUbuntu_21.04.dsc ++++++ --- /var/tmp/diff_new_pack.oxbHVl/_old 2023-01-21 19:10:22.004889328 +0100 +++ /var/tmp/diff_new_pack.oxbHVl/_new 2023-01-21 19:10:22.008889351 +0100 @@ -11,5 +11,5 @@ # 423a20ae6e882d44e65a4eff97f2269f 630905 snapper-0.2.8.tar.gz # Files: -746d03d606b9273e46b0361dcbbb83ce 669404 snapper-0.10.4.tar.bz2 +3f8f1a6e46b9e424ba3ce75b3a8bc6d0 670300 snapper-0.10.4.tar.bz2 ++++++ snapper-xUbuntu_21.10.dsc ++++++ --- /var/tmp/diff_new_pack.oxbHVl/_old 2023-01-21 19:10:22.028889465 +0100 +++ /var/tmp/diff_new_pack.oxbHVl/_new 2023-01-21 19:10:22.032889488 +0100 @@ -11,5 +11,5 @@ # 423a20ae6e882d44e65a4eff97f2269f 630905 snapper-0.2.8.tar.gz # Files: -746d03d606b9273e46b0361dcbbb83ce 669404 snapper-0.10.4.tar.bz2 +3f8f1a6e46b9e424ba3ce75b3a8bc6d0 670300 snapper-0.10.4.tar.bz2 ++++++ snapper-xUbuntu_22.04.dsc ++++++ --- /var/tmp/diff_new_pack.oxbHVl/_old 2023-01-21 19:10:22.048889580 +0100 +++ /var/tmp/diff_new_pack.oxbHVl/_new 2023-01-21 19:10:22.052889602 +0100 @@ -11,5 +11,5 @@ # 423a20ae6e882d44e65a4eff97f2269f 630905 snapper-0.2.8.tar.gz # Files: -746d03d606b9273e46b0361dcbbb83ce 669404 snapper-0.10.4.tar.bz2 +3f8f1a6e46b9e424ba3ce75b3a8bc6d0 670300 snapper-0.10.4.tar.bz2 ++++++ snapper-xUbuntu_22.10.dsc ++++++ --- /var/tmp/diff_new_pack.oxbHVl/_old 2023-01-21 19:10:22.072889716 +0100 +++ /var/tmp/diff_new_pack.oxbHVl/_new 2023-01-21 19:10:22.076889739 +0100 @@ -11,5 +11,5 @@ # 423a20ae6e882d44e65a4eff97f2269f 630905 snapper-0.2.8.tar.gz # Files: -746d03d606b9273e46b0361dcbbb83ce 669404 snapper-0.10.4.tar.bz2 +3f8f1a6e46b9e424ba3ce75b3a8bc6d0 670300 snapper-0.10.4.tar.bz2