Hello community, here is the log from the commit of package snapper for openSUSE:Factory checked in at 2020-01-30 09:37:45 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/snapper (Old) and /work/SRC/openSUSE:Factory/.snapper.new.26092 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "snapper" Thu Jan 30 09:37:45 2020 rev:112 rq:767949 version:0.8.9 Changes: -------- --- /work/SRC/openSUSE:Factory/snapper/snapper.changes 2020-01-11 14:38:55.989158510 +0100 +++ /work/SRC/openSUSE:Factory/.snapper.new.26092/snapper.changes 2020-01-30 09:38:20.741392008 +0100 @@ -1,0 +2,7 @@ +Thu Jan 16 13:01:15 UTC 2020 - Martin Vidner <[email protected]> + +- Fix "Snapper is not creating the post snapshot" (bsc#1160938) +- Fix `make clean; make check` failing in zypp-plugin (bsc#1160891) +- version 0.8.9 + +------------------------------------------------------------------- Old: ---- snapper-0.8.8.tar.bz2 New: ---- snapper-0.8.9.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ snapper.spec ++++++ --- /var/tmp/diff_new_pack.6mYyLc/_old 2020-01-30 09:38:22.389392889 +0100 +++ /var/tmp/diff_new_pack.6mYyLc/_new 2020-01-30 09:38:22.393392892 +0100 @@ -21,8 +21,11 @@ %define _fillupdir /var/adm/fillup-templates %endif +# optionally build with test coverage reporting +%bcond_with coverage + Name: snapper -Version: 0.8.8 +Version: 0.8.9 Release: 0 BuildRoot: %{_tmppath}/%{name}-%{version}-build Source: snapper-%{version}.tar.bz2 @@ -77,6 +80,9 @@ %else BuildRequires: libjson-c-devel %endif +%if %{with coverage} +BuildRequires: lcov +%endif Requires: diffutils Requires: libsnapper5 = %version %if 0%{?suse_version} @@ -95,12 +101,22 @@ %setup %build +%if %{with coverage} +# optimized code may confuse the coverage measurement, turn it off +# -fPIC is mysteriously needed on Fedora. +export CFLAGS="-g3 -fPIC" +export CXXFLAGS="-g3 -fPIC" +%else export CFLAGS="%{optflags} -DNDEBUG" export CXXFLAGS="%{optflags} -DNDEBUG" +%endif autoreconf -fi %configure \ --docdir="%{_defaultdocdir}/snapper" \ +%if %{with coverage} + --enable-coverage \ +%endif %if 0%{?suse_version} <= 1310 --disable-rollback \ %endif ++++++ debian.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/debian/changelog new/debian/changelog --- old/debian/changelog 2020-01-10 01:00:00.000000000 +0100 +++ new/debian/changelog 2020-01-28 01:00:00.000000000 +0100 @@ -1,3 +1,11 @@ +snapper (0.8.9) stable; urgency=low + + * Fix "Snapper is not creating the post snapshot" (bsc#1160938) + + * Fix `make clean; make check` failing in zypp-plugin (bsc#1160891) + + -- Martin Vidner <[email protected]> Thu, 16 Jan 2020 14:03:44 +0100 + snapper (0.8.8) stable; urgency=low * Add a "writeble copy" description to the 2nd snapshot ++++++ snapper-0.8.8.tar.bz2 -> snapper-0.8.9.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.8.8/Makefile.am new/snapper-0.8.9/Makefile.am --- old/snapper-0.8.8/Makefile.am 2020-01-10 01:00:00.000000000 +0100 +++ new/snapper-0.8.9/Makefile.am 2020-01-28 01:00:00.000000000 +0100 @@ -43,6 +43,21 @@ rm -f package/debian.* rm -f package/*.dsc* +if ENABLE_COVERAGE +# Run `make coverage` after all the tests have been run. +# See also make -f Makefile.repo coveralls +COVERAGE_INFO = coverage/coverage.info +.PHONY: coverage +coverage: + mkdir -p $(dir $(COVERAGE_INFO)) + lcov --capture --no-external --exclude '*/testsuite*/*' --output-file $(COVERAGE_INFO) --directory . --quiet + lcov --list $(COVERAGE_INFO) + genhtml --output-directory coverage --legend --title "Snapper code coverage" -q $(COVERAGE_INFO) + +clean-local: + find -name '*.gcda' -o -name '*.gcno' | xargs rm +endif + # Create all the files necessary for building the package with OBS: # # - Clean up the package/ directory diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.8.8/Makefile.in new/snapper-0.8.9/Makefile.in --- old/snapper-0.8.8/Makefile.in 2020-01-10 01:00:00.000000000 +0100 +++ new/snapper-0.8.9/Makefile.in 2020-01-28 01:00:00.000000000 +0100 @@ -418,6 +418,10 @@ xUbuntu_19.04 +# Run `make coverage` after all the tests have been run. +# See also make -f Makefile.repo coveralls +@ENABLE_COVERAGE_TRUE@COVERAGE_INFO = coverage/coverage.info + # Create all the files necessary for building the package with OBS: # # - Clean up the package/ directory @@ -877,9 +881,10 @@ maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." +@ENABLE_COVERAGE_FALSE@clean-local: clean: clean-recursive -clean-am: clean-generic clean-libtool mostlyclean-am +clean-am: clean-generic clean-libtool clean-local mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) @@ -951,20 +956,20 @@ .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ am--refresh check check-am clean clean-cscope clean-generic \ - clean-libtool cscope cscopelist-am ctags ctags-am dist \ - dist-all dist-bzip2 dist-gzip dist-lzip dist-shar dist-tarZ \ - dist-xz dist-zip distcheck distclean distclean-generic \ - distclean-hdr distclean-libtool distclean-tags distcleancheck \ - distdir distuninstallcheck dvi dvi-am html html-am info \ - info-am install install-am install-data install-data-am \ - install-docDATA install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ - uninstall-am uninstall-docDATA + clean-libtool clean-local cscope cscopelist-am ctags ctags-am \ + dist dist-all dist-bzip2 dist-gzip dist-lzip dist-shar \ + dist-tarZ dist-xz dist-zip distcheck distclean \ + distclean-generic distclean-hdr distclean-libtool \ + distclean-tags distcleancheck distdir distuninstallcheck dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-docDATA install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am uninstall-docDATA .PRECIOUS: Makefile @@ -981,6 +986,15 @@ rm -f package/snapper-*.tar.bz2 rm -f package/debian.* rm -f package/*.dsc* +@[email protected]: coverage +@ENABLE_COVERAGE_TRUE@coverage: +@ENABLE_COVERAGE_TRUE@ mkdir -p $(dir $(COVERAGE_INFO)) +@ENABLE_COVERAGE_TRUE@ lcov --capture --no-external --exclude '*/testsuite*/*' --output-file $(COVERAGE_INFO) --directory . --quiet +@ENABLE_COVERAGE_TRUE@ lcov --list $(COVERAGE_INFO) +@ENABLE_COVERAGE_TRUE@ genhtml --output-directory coverage --legend --title "Snapper code coverage" -q $(COVERAGE_INFO) + +@ENABLE_COVERAGE_TRUE@clean-local: +@ENABLE_COVERAGE_TRUE@ find -name '*.gcda' -o -name '*.gcno' | xargs rm package: snapper-$(VERSION).tar.bz2 package-clean find dists/debian -not -name '*.in' -not -name '.*' -type f -print0 | \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.8.8/VERSION new/snapper-0.8.9/VERSION --- old/snapper-0.8.8/VERSION 2020-01-10 01:00:00.000000000 +0100 +++ new/snapper-0.8.9/VERSION 2020-01-28 01:00:00.000000000 +0100 @@ -1 +1 @@ -0.8.8 +0.8.9 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.8.8/configure new/snapper-0.8.9/configure --- old/snapper-0.8.8/configure 2020-01-10 01:00:00.000000000 +0100 +++ new/snapper-0.8.9/configure 2020-01-28 01:00:00.000000000 +0100 @@ -648,6 +648,8 @@ PKG_CONFIG_LIBDIR PKG_CONFIG_PATH PKG_CONFIG +ENABLE_COVERAGE_FALSE +ENABLE_COVERAGE_TRUE ENABLE_SELINUX_FALSE ENABLE_SELINUX_TRUE HAVE_PAM_FALSE @@ -822,6 +824,7 @@ enable_btrfs_quota enable_pam enable_selinux +enable_coverage ' ac_precious_vars='build_alias host_alias @@ -1482,6 +1485,7 @@ --disable-btrfs-quota Disable btrfs quota support --disable-pam Disable pam plugin support --enable-selinux Enable support for SELinux LSM + --enable-coverage Enable test coverage measurement Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] @@ -16876,6 +16880,27 @@ fi +# Check whether --enable-coverage was given. +if test "${enable_coverage+set}" = set; then : + enableval=$enable_coverage; enable_coverage=$enableval +else + enable_coverage=no +fi + + if test "x$enable_coverage" = "xyes"; then + ENABLE_COVERAGE_TRUE= + ENABLE_COVERAGE_FALSE='#' +else + ENABLE_COVERAGE_TRUE='#' + ENABLE_COVERAGE_FALSE= +fi + +if test "x$enable_coverage" = "xyes"; then + CFLAGS="${CFLAGS} --coverage" + CXXFLAGS="${CXXFLAGS} --coverage" + LDFLAGS="${LDFLAGS} --coverage" +fi + @@ -17446,6 +17471,10 @@ as_fn_error $? "conditional \"ENABLE_SELINUX\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${ENABLE_COVERAGE_TRUE}" && test -z "${ENABLE_COVERAGE_FALSE}"; then + as_fn_error $? "conditional \"ENABLE_COVERAGE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.8.8/configure.ac new/snapper-0.8.9/configure.ac --- old/snapper-0.8.8/configure.ac 2020-01-10 01:00:00.000000000 +0100 +++ new/snapper-0.8.9/configure.ac 2020-01-28 01:00:00.000000000 +0100 @@ -166,6 +166,15 @@ AC_CHECK_LIB(selinux, selinux_snapperd_contexts_path, [], [AC_MSG_ERROR([selinux library does not provide selinux_snapperd_contexts_path symbol])]) fi +AC_ARG_ENABLE([coverage], AC_HELP_STRING([--enable-coverage], [Enable test coverage measurement]), + [enable_coverage=$enableval], [enable_coverage=no]) +AM_CONDITIONAL(ENABLE_COVERAGE, [test "x$enable_coverage" = "xyes"]) +if test "x$enable_coverage" = "xyes"; then + CFLAGS="${CFLAGS} --coverage" + CXXFLAGS="${CXXFLAGS} --coverage" + LDFLAGS="${LDFLAGS} --coverage" +fi + PKG_CHECK_MODULES(DBUS, dbus-1) PKG_CHECK_MODULES(XML2, libxml-2.0) if test "x$with_zypp" = "xyes"; then diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.8.8/snapper.spec.in new/snapper-0.8.9/snapper.spec.in --- old/snapper-0.8.8/snapper.spec.in 2020-01-10 01:00:00.000000000 +0100 +++ new/snapper-0.8.9/snapper.spec.in 2020-01-28 01:00:00.000000000 +0100 @@ -20,6 +20,9 @@ %define _fillupdir /var/adm/fillup-templates %endif +# optionally build with test coverage reporting +%bcond_with coverage + Name: snapper Version: @VERSION@ Release: 0 @@ -76,6 +79,9 @@ %else BuildRequires: libjson-c-devel %endif +%if %{with coverage} +BuildRequires: lcov +%endif Requires: diffutils Requires: libsnapper@LIBVERSION_MAJOR@ = %version %if 0%{?suse_version} @@ -94,12 +100,22 @@ %setup %build +%if %{with coverage} +# optimized code may confuse the coverage measurement, turn it off +# -fPIC is mysteriously needed on Fedora. +export CFLAGS="-g3 -fPIC" +export CXXFLAGS="-g3 -fPIC" +%else export CFLAGS="%{optflags} -DNDEBUG" export CXXFLAGS="%{optflags} -DNDEBUG" +%endif autoreconf -fi %configure \ --docdir="%{_defaultdocdir}/snapper" \ +%if %{with coverage} + --enable-coverage \ +%endif %if 0%{?suse_version} <= 1310 --disable-rollback \ %endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.8.8/zypp-plugin/Makefile.am new/snapper-0.8.9/zypp-plugin/Makefile.am --- old/snapper-0.8.8/zypp-plugin/Makefile.am 2020-01-10 01:00:00.000000000 +0100 +++ new/snapper-0.8.9/zypp-plugin/Makefile.am 2020-01-28 01:00:00.000000000 +0100 @@ -1,4 +1,4 @@ -SUBDIRS = testsuite +SUBDIRS = . testsuite if HAVE_ZYPP @@ -17,8 +17,17 @@ ../dbus/libdbus.la \ $(JSONC_LIBS) -check_PROGRAMS = regex.test -TESTS = $(check_PROGRAMS) +check_PROGRAMS = regex.test forwarding-zypp-plugin + +forwarding_zypp_plugin_SOURCES = \ + forwarding_zypp_plugin.cc \ + zypp_plugin.cc zypp_plugin.h +forwarding_zypp_plugin_LDADD = \ + ../snapper/libsnapper.la \ + -lboost_system \ + -lpthread + +TESTS = regex.test regex_test_SOURCES = regex_test.cc \ solvable_matcher.cc solvable_matcher.h regex_test_LDADD = \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.8.8/zypp-plugin/Makefile.in new/snapper-0.8.9/zypp-plugin/Makefile.in --- old/snapper-0.8.8/zypp-plugin/Makefile.in 2020-01-10 01:00:00.000000000 +0100 +++ new/snapper-0.8.9/zypp-plugin/Makefile.in 2020-01-28 01:00:00.000000000 +0100 @@ -89,7 +89,9 @@ build_triplet = @build@ host_triplet = @host@ @HAVE_ZYPP_TRUE@plugin_PROGRAMS = snapper-zypp-plugin$(EXEEXT) -@HAVE_ZYPP_TRUE@check_PROGRAMS = regex.test$(EXEEXT) +@HAVE_ZYPP_TRUE@check_PROGRAMS = regex.test$(EXEEXT) \ +@HAVE_ZYPP_TRUE@ forwarding-zypp-plugin$(EXEEXT) +@HAVE_ZYPP_TRUE@TESTS = regex.test$(EXEEXT) subdir = zypp-plugin ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac @@ -102,6 +104,18 @@ CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(plugindir)" PROGRAMS = $(plugin_PROGRAMS) +am__forwarding_zypp_plugin_SOURCES_DIST = forwarding_zypp_plugin.cc \ + zypp_plugin.cc zypp_plugin.h +@HAVE_ZYPP_TRUE@am_forwarding_zypp_plugin_OBJECTS = \ +@HAVE_ZYPP_TRUE@ forwarding_zypp_plugin.$(OBJEXT) \ +@HAVE_ZYPP_TRUE@ zypp_plugin.$(OBJEXT) +forwarding_zypp_plugin_OBJECTS = $(am_forwarding_zypp_plugin_OBJECTS) +@HAVE_ZYPP_TRUE@forwarding_zypp_plugin_DEPENDENCIES = \ +@HAVE_ZYPP_TRUE@ ../snapper/libsnapper.la +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = am__regex_test_SOURCES_DIST = regex_test.cc solvable_matcher.cc \ solvable_matcher.h @HAVE_ZYPP_TRUE@am_regex_test_OBJECTS = regex_test.$(OBJEXT) \ @@ -110,10 +124,6 @@ am__DEPENDENCIES_1 = @HAVE_ZYPP_TRUE@regex_test_DEPENDENCIES = ../snapper/libsnapper.la \ @HAVE_ZYPP_TRUE@ $(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 -am__v_lt_1 = am__snapper_zypp_plugin_SOURCES_DIST = snapper_zypp_plugin.cc \ solvable_matcher.cc solvable_matcher.h zypp_commit_plugin.cc \ zypp_commit_plugin.h zypp_plugin.cc zypp_plugin.h @@ -142,8 +152,8 @@ DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ./$(DEPDIR)/regex_test.Po \ - ./$(DEPDIR)/snapper_zypp_plugin.Po \ +am__depfiles_remade = ./$(DEPDIR)/forwarding_zypp_plugin.Po \ + ./$(DEPDIR)/regex_test.Po ./$(DEPDIR)/snapper_zypp_plugin.Po \ ./$(DEPDIR)/solvable_matcher.Po \ ./$(DEPDIR)/zypp_commit_plugin.Po ./$(DEPDIR)/zypp_plugin.Po am__mv = mv -f @@ -183,8 +193,10 @@ am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = -SOURCES = $(regex_test_SOURCES) $(snapper_zypp_plugin_SOURCES) -DIST_SOURCES = $(am__regex_test_SOURCES_DIST) \ +SOURCES = $(forwarding_zypp_plugin_SOURCES) $(regex_test_SOURCES) \ + $(snapper_zypp_plugin_SOURCES) +DIST_SOURCES = $(am__forwarding_zypp_plugin_SOURCES_DIST) \ + $(am__regex_test_SOURCES_DIST) \ $(am__snapper_zypp_plugin_SOURCES_DIST) RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ @@ -603,7 +615,7 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -SUBDIRS = testsuite +SUBDIRS = . testsuite @HAVE_ZYPP_TRUE@plugindir = /usr/lib/zypp/plugins/commit @HAVE_ZYPP_TRUE@AM_CPPFLAGS = $(DBUS_CFLAGS) $(XML2_CFLAGS) $(JSONC_CFLAGS) @HAVE_ZYPP_TRUE@snapper_zypp_plugin_SOURCES = \ @@ -618,7 +630,15 @@ @HAVE_ZYPP_TRUE@ ../dbus/libdbus.la \ @HAVE_ZYPP_TRUE@ $(JSONC_LIBS) -@HAVE_ZYPP_TRUE@TESTS = $(check_PROGRAMS) +@HAVE_ZYPP_TRUE@forwarding_zypp_plugin_SOURCES = \ +@HAVE_ZYPP_TRUE@ forwarding_zypp_plugin.cc \ +@HAVE_ZYPP_TRUE@ zypp_plugin.cc zypp_plugin.h + +@HAVE_ZYPP_TRUE@forwarding_zypp_plugin_LDADD = \ +@HAVE_ZYPP_TRUE@ ../snapper/libsnapper.la \ +@HAVE_ZYPP_TRUE@ -lboost_system \ +@HAVE_ZYPP_TRUE@ -lpthread + @HAVE_ZYPP_TRUE@regex_test_SOURCES = regex_test.cc \ @HAVE_ZYPP_TRUE@ solvable_matcher.cc solvable_matcher.h @@ -719,6 +739,10 @@ echo " rm -f" $$list; \ rm -f $$list +forwarding-zypp-plugin$(EXEEXT): $(forwarding_zypp_plugin_OBJECTS) $(forwarding_zypp_plugin_DEPENDENCIES) $(EXTRA_forwarding_zypp_plugin_DEPENDENCIES) + @rm -f forwarding-zypp-plugin$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(forwarding_zypp_plugin_OBJECTS) $(forwarding_zypp_plugin_LDADD) $(LIBS) + regex.test$(EXEEXT): $(regex_test_OBJECTS) $(regex_test_DEPENDENCIES) $(EXTRA_regex_test_DEPENDENCIES) @rm -f regex.test$(EXEEXT) $(AM_V_CXXLD)$(CXXLINK) $(regex_test_OBJECTS) $(regex_test_LDADD) $(LIBS) @@ -733,6 +757,7 @@ distclean-compile: -rm -f *.tab.c +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/forwarding_zypp_plugin.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/regex_test.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/snapper_zypp_plugin.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/solvable_matcher.Po@am__quote@ # am--include-marker @@ -1134,7 +1159,8 @@ clean-pluginPROGRAMS mostlyclean-am distclean: distclean-recursive - -rm -f ./$(DEPDIR)/regex_test.Po + -rm -f ./$(DEPDIR)/forwarding_zypp_plugin.Po + -rm -f ./$(DEPDIR)/regex_test.Po -rm -f ./$(DEPDIR)/snapper_zypp_plugin.Po -rm -f ./$(DEPDIR)/solvable_matcher.Po -rm -f ./$(DEPDIR)/zypp_commit_plugin.Po @@ -1184,7 +1210,8 @@ installcheck-am: maintainer-clean: maintainer-clean-recursive - -rm -f ./$(DEPDIR)/regex_test.Po + -rm -f ./$(DEPDIR)/forwarding_zypp_plugin.Po + -rm -f ./$(DEPDIR)/regex_test.Po -rm -f ./$(DEPDIR)/snapper_zypp_plugin.Po -rm -f ./$(DEPDIR)/solvable_matcher.Po -rm -f ./$(DEPDIR)/zypp_commit_plugin.Po diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.8.8/zypp-plugin/forwarding_zypp_plugin.cc new/snapper-0.8.9/zypp-plugin/forwarding_zypp_plugin.cc --- old/snapper-0.8.8/zypp-plugin/forwarding_zypp_plugin.cc 1970-01-01 01:00:00.000000000 +0100 +++ new/snapper-0.8.9/zypp-plugin/forwarding_zypp_plugin.cc 2020-01-28 01:00:00.000000000 +0100 @@ -0,0 +1,79 @@ +/* + * Copyright (c) 2020 SUSE LLC + * + * All Rights Reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as published + * by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, contact SUSE LLC. + * + * To contact SUSE about this file by physical or electronic mail, you may + * find current contact information at www.suse.com. + */ + +#include <string> +using namespace std; + +#include <boost/process.hpp> +namespace bp = boost::process; + +#include "zypp_plugin.h" + +/** + * A middleware that can wrap an actual plugin for enhanced validation. + * + * In a test suite, SnapperZyppPlugin is fed by a shell script. The plugin can + * validate its input but shell will not validate all aspects of the + * output. Inserting ForwardingZyppPlugin in between means that ZyppPlugin's + * validation will check SnapperZyppPlugin's output. + */ +class ForwardingZyppPlugin : public ZyppPlugin { +public: + ForwardingZyppPlugin(const string& another_plugin); + + virtual int main() override; + virtual Message dispatch(const Message&) override; +private: + string child_program; + bp::ipstream childs_out; // we read this + // bp::ipstream childs_err; // we read this + bp::opstream childs_in; // we write this +}; + +ForwardingZyppPlugin::ForwardingZyppPlugin(const string& another_plugin) + : child_program(another_plugin) +{ +} + +int ForwardingZyppPlugin::main() { + bp::child c(child_program, + bp::std_out > childs_out, + // bp::std_err > childs_err, + bp::std_in < childs_in); + + int result = ZyppPlugin::main(); + + // c.wait(); + return result; +} + +ZyppPlugin::Message ForwardingZyppPlugin::dispatch(const Message& msg) { + write_message(childs_in, msg); + Message reply = read_message(childs_out); + return reply; +} + +int main(int argc, char** argv) { + if (argc != 2) + throw runtime_error("Usage: forwarding-zypp-plugin ANOTHER_ZYPP_PLUGIN"); + ForwardingZyppPlugin plugin(argv[1]); + return plugin.main(); +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.8.8/zypp-plugin/snapper_zypp_plugin.cc new/snapper-0.8.9/zypp-plugin/snapper_zypp_plugin.cc --- old/snapper-0.8.8/zypp-plugin/snapper_zypp_plugin.cc 2020-01-10 01:00:00.000000000 +0100 +++ new/snapper-0.8.9/zypp-plugin/snapper_zypp_plugin.cc 2020-01-28 01:00:00.000000000 +0100 @@ -302,7 +302,6 @@ if (json_object_get_type(steps) == json_type_array) { size_t i, len = json_object_array_length(steps); - printf("steps: %zu\n", len); for (i = 0; i < len; ++i) { json_object * step = json_object_array_get_idx(steps, i); bool have_type = json_object_object_get_ex(step, "type", NULL); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.8.8/zypp-plugin/testsuite/1-happy.test new/snapper-0.8.9/zypp-plugin/testsuite/1-happy.test --- old/snapper-0.8.8/zypp-plugin/testsuite/1-happy.test 2020-01-10 01:00:00.000000000 +0100 +++ new/snapper-0.8.9/zypp-plugin/testsuite/1-happy.test 2020-01-28 01:00:00.000000000 +0100 @@ -8,33 +8,40 @@ mock_snapperd_setup || { echo "1..0 # SKIP"; exit; } # http://testanything.org/ -echo 1..4 +COUNT=0 +echo 1..8 -TEST="1 - It wants to make pre and post snapshots" -rm -f mock-snapperd.log -test_pre_post_snapshots | runit ../../data/zypp-plugin.conf > /dev/null -if [ "${PIPESTATUS[1]}" != 0 ]; then - echo -n "not " -fi -echo "ok $TEST" +for VALIDATION in "" --validate; do + COUNT=$((COUNT + 1)) + TEST="$COUNT - It wants to make pre and post snapshots $VALIDATION" + rm -f mock-snapperd.log + test_pre_post_snapshots | runit $VALIDATION zypp-plugin-maxcover.conf > /dev/null + if [ "${PIPESTATUS[1]}" != 0 ]; then + echo -n "not " + fi + echo "ok $TEST" -TEST="2 - It tells snapperd so" -grep "Mock CreatePreSnapshot" mock-snapperd.log \ - && grep "Mock CreatePostSnapshot" mock-snapperd.log \ - || echo -n "not " -echo "ok $TEST" + COUNT=$((COUNT + 1)) + TEST="$COUNT - It tells snapperd so" + grep "Mock CreatePreSnapshot" mock-snapperd.log \ + && grep "Mock CreatePostSnapshot" mock-snapperd.log \ + || echo -n "not " + echo "ok $TEST" -TEST="3 - It wants to make and delete pre snapshot" -rm -f mock-snapperd.log -test_pre_del_snapshots | runit ../../data/zypp-plugin.conf > /dev/null -if [ "${PIPESTATUS[1]}" != 0 ]; then - echo -n "not " -fi -echo "ok $TEST" + COUNT=$((COUNT + 1)) + TEST="$COUNT - It wants to make and delete pre snapshot $VALIDATION" + rm -f mock-snapperd.log + test_pre_del_snapshots | runit $VALIDATION zypp-plugin-maxcover.conf > /dev/null + if [ "${PIPESTATUS[1]}" != 0 ]; then + echo -n "not " + fi + echo "ok $TEST" -TEST="4 - It tells snapperd so" -grep "Mock CreatePreSnapshot" mock-snapperd.log \ - && grep "Mock DeleteSnapshots" mock-snapperd.log \ - || echo -n "not " -rm -f mock-snapperd.log -echo "ok $TEST" + COUNT=$((COUNT + 1)) + TEST="$COUNT - It tells snapperd so" + grep "Mock CreatePreSnapshot" mock-snapperd.log \ + && grep "Mock DeleteSnapshots" mock-snapperd.log \ + || echo -n "not " + rm -f mock-snapperd.log + echo "ok $TEST" +done diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.8.8/zypp-plugin/testsuite/Makefile.am new/snapper-0.8.9/zypp-plugin/testsuite/Makefile.am --- old/snapper-0.8.8/zypp-plugin/testsuite/Makefile.am 2020-01-10 01:00:00.000000000 +0100 +++ new/snapper-0.8.9/zypp-plugin/testsuite/Makefile.am 2020-01-28 01:00:00.000000000 +0100 @@ -3,11 +3,10 @@ check_SCRIPTS = 1-happy.test 2-malformed-xml.test 3-invalid-xml.test 4-badjson.test 99-shell.test noinst_SCRIPTS = mock-snapperd test-helper.sh -noinst_DATA = zypp-plugin-malformed.conf zypp-plugin-invalid.conf - -# Hack: these tests both use mock-snapperd which is not paralellized -# so serialize them -4-badjson.log: 1-happy.log +noinst_DATA = \ + zypp-plugin-invalid.conf \ + zypp-plugin-malformed.conf \ + zypp-plugin-maxcover.conf TESTS = $(check_SCRIPTS) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.8.8/zypp-plugin/testsuite/Makefile.in new/snapper-0.8.9/zypp-plugin/testsuite/Makefile.in --- old/snapper-0.8.8/zypp-plugin/testsuite/Makefile.in 2020-01-10 01:00:00.000000000 +0100 +++ new/snapper-0.8.9/zypp-plugin/testsuite/Makefile.in 2020-01-28 01:00:00.000000000 +0100 @@ -474,7 +474,11 @@ @HAVE_ZYPP_TRUE@TEST_LOG_DRIVER = $(SHELL) tap-driver.sh @HAVE_ZYPP_TRUE@check_SCRIPTS = 1-happy.test 2-malformed-xml.test 3-invalid-xml.test 4-badjson.test 99-shell.test @HAVE_ZYPP_TRUE@noinst_SCRIPTS = mock-snapperd test-helper.sh -@HAVE_ZYPP_TRUE@noinst_DATA = zypp-plugin-malformed.conf zypp-plugin-invalid.conf +@HAVE_ZYPP_TRUE@noinst_DATA = \ +@HAVE_ZYPP_TRUE@ zypp-plugin-invalid.conf \ +@HAVE_ZYPP_TRUE@ zypp-plugin-malformed.conf \ +@HAVE_ZYPP_TRUE@ zypp-plugin-maxcover.conf + @HAVE_ZYPP_TRUE@TESTS = $(check_SCRIPTS) @HAVE_ZYPP_TRUE@EXTRA_DIST = $(check_SCRIPTS) $(noinst_SCRIPTS) $(noinst_DATA) tap-driver.sh all: all-am @@ -835,10 +839,6 @@ .PRECIOUS: Makefile -# Hack: these tests both use mock-snapperd which is not paralellized -# so serialize them -@[email protected]: 1-happy.log - # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.8.8/zypp-plugin/testsuite/test-helper.sh new/snapper-0.8.9/zypp-plugin/testsuite/test-helper.sh --- old/snapper-0.8.8/zypp-plugin/testsuite/test-helper.sh 2020-01-10 01:00:00.000000000 +0100 +++ new/snapper-0.8.9/zypp-plugin/testsuite/test-helper.sh 2020-01-28 01:00:00.000000000 +0100 @@ -3,7 +3,16 @@ MYDIR=$(dirname "$0") +# usage: echo "message..." | runit [--validate] > /dev/null runit() { + # with --validate, insert a validating plugin + # into the communication pipeline + if [ "$1" = "--validate" ]; then + local VALIDATE=("$MYDIR"/../forwarding-zypp-plugin) + shift + else + local VALIDATE=() + fi local CONFIG="${1:-../../data/zypp-plugin.conf}" local STRACE="" # STRACE="strace -efile" @@ -12,6 +21,7 @@ SNAPPER_ZYPP_PLUGIN_SNAPPER_CONFIG=testsuite \ SNAPPER_ZYPP_PLUGIN_DBUS_SESSION=1 \ $STRACE \ + "${VALIDATE[@]}" \ "$MYDIR"/../snapper-zypp-plugin } @@ -54,6 +64,8 @@ stomp_message COMMITBEGIN "" "$(json mypkg)" stomp_message COMMITEND "" "$(json mypkg)" stomp_message PLUGINEND "" "" + stomp_message UNKNOWNMESSAGE "" "" + stomp_message _DISCONNECT "" "" } test_pre_del_snapshots() { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.8.8/zypp-plugin/testsuite/zypp-plugin-maxcover.conf new/snapper-0.8.9/zypp-plugin/testsuite/zypp-plugin-maxcover.conf --- old/snapper-0.8.8/zypp-plugin/testsuite/zypp-plugin-maxcover.conf 1970-01-01 01:00:00.000000000 +0100 +++ new/snapper-0.8.9/zypp-plugin/testsuite/zypp-plugin-maxcover.conf 2020-01-28 01:00:00.000000000 +0100 @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="utf-8"?> +<snapper-zypp-plugin-conf> + <!-- + A default config extended so that more code paths are tested + --> + <solvables> + <solvable match="w" important="true">kernel-*</solvable> + <solvable match="w" important="true">dracut</solvable> + <solvable match="w" important="true">glibc</solvable> + <solvable match="w" important="true">systemd*</solvable> + <solvable match="w" important="true">udev</solvable> + <solvable match="re" important="true">my[_-]?pkg</solvable> + <solvable>ignored-no-match-attr</solvable> + <solvable match="w">*</solvable> + </solvables> + +</snapper-zypp-plugin-conf> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.8.8/zypp-plugin/zypp_commit_plugin.h new/snapper-0.8.9/zypp-plugin/zypp_commit_plugin.h --- old/snapper-0.8.8/zypp-plugin/zypp_commit_plugin.h 2020-01-10 01:00:00.000000000 +0100 +++ new/snapper-0.8.9/zypp-plugin/zypp_commit_plugin.h 2020-01-28 01:00:00.000000000 +0100 @@ -24,6 +24,8 @@ #include "zypp_plugin.h" +/// Dispatches begin+end of plugin+commit in dedicated methods. +// The default implementations just ack. class ZyppCommitPlugin : public ZyppPlugin { public: Message dispatch(const Message& msg) override; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.8.8/zypp-plugin/zypp_plugin.cc new/snapper-0.8.9/zypp-plugin/zypp_plugin.cc --- old/snapper-0.8.8/zypp-plugin/zypp_plugin.cc 2020-01-10 01:00:00.000000000 +0100 +++ new/snapper-0.8.9/zypp-plugin/zypp_plugin.cc 2020-01-28 01:00:00.000000000 +0100 @@ -27,17 +27,28 @@ #include "snapper/Regex.h" #include "zypp_plugin.h" -void ZyppPlugin::answer(const Message& msg) { - cout << msg.command << endl; +int ZyppPlugin::main() { + while(true) { + Message msg = read_message(pin); + if (pin.eof()) + break; + Message reply = dispatch(msg); + write_message(pout, reply); + } + return 0; +} + +void ZyppPlugin::write_message(ostream& os, const Message& msg) { + os << msg.command << endl; for(auto it: msg.headers) { - cout << it.first << ':' << it.second << endl; + os << it.first << ':' << it.second << endl; } - cout << endl; - cout << msg.body << '\0'; - cout.flush(); + os << endl; + os << msg.body << '\0'; + os.flush(); } -int ZyppPlugin::main() { +ZyppPlugin::Message ZyppPlugin::read_message(istream& is) { enum class State { Start, Headers, @@ -45,16 +56,21 @@ } state = State::Start; Message msg; - static const snapper::Regex rx_word("^[A-Za-z0-9_]+$"); - while(!cin.eof()) { + + while(!is.eof()) { string line; - getline(cin, line); + getline(is, line); boost::trim_right(line); if (state == State::Start) { + if (is.eof()) + return msg; //empty + if (line.empty()) continue; + + static const snapper::Regex rx_word("^[A-Za-z0-9_]+$"); if (rx_word.match(line)) { msg = Message(); msg.command = line; @@ -66,12 +82,10 @@ } else if (state == State::Headers) { if (line.empty()) { - getline(cin, msg.body, '\0'); + state = State::Body; + getline(is, msg.body, '\0'); - Message reply = dispatch(msg); - answer(reply); - - state = State::Start; + return msg; } else { static const snapper::Regex rx_header("^([A-Za-z0-9_]+):[ \t]*(.+)$"); @@ -86,7 +100,8 @@ } } } - return 0; + + throw runtime_error("Plugin protocol error: expected a message, got a part of it"); } ZyppPlugin::Message ZyppPlugin::dispatch(const Message& msg) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.8.8/zypp-plugin/zypp_plugin.h new/snapper-0.8.9/zypp-plugin/zypp_plugin.h --- old/snapper-0.8.8/zypp-plugin/zypp_plugin.h 2020-01-10 01:00:00.000000000 +0100 +++ new/snapper-0.8.9/zypp-plugin/zypp_plugin.h 2020-01-28 01:00:00.000000000 +0100 @@ -22,6 +22,7 @@ #ifndef ZYPP_PLUGIN_H #define ZYPP_PLUGIN_H +#include <iostream> #include <map> #include <string> @@ -35,10 +36,31 @@ std::string body; }; + /// Where the protocol reads from + std::istream& pin; + /// Where the protocol writes to + std::ostream& pout; + /// Where the plugin writes log messages to + std::ostream& plog; + ZyppPlugin(std::istream& in = std::cin, + std::ostream& out = std::cout, + std::ostream& log = std::cerr) + : pin(in) + , pout(out) + , plog(log) + {} + virtual ~ZyppPlugin() {} + virtual int main(); + +protected: + /// Handle a message and return a reply. + // Derived classes should override it. + // The base acks a _DISCONNECT and replies _ENOMETHOD to everything else. virtual Message dispatch(const Message&); - void answer(const Message&); - virtual ~ZyppPlugin() {} + + Message read_message(std::istream& is); + void write_message(std::ostream& os, const Message& msg); Message ack() { Message a; ++++++ snapper-Debian_10.0.dsc ++++++ --- /var/tmp/diff_new_pack.6mYyLc/_old 2020-01-30 09:38:22.845393133 +0100 +++ /var/tmp/diff_new_pack.6mYyLc/_new 2020-01-30 09:38:22.845393133 +0100 @@ -1,6 +1,6 @@ Format: 1.0 Source: snapper -Version: 0.8.8 +Version: 0.8.9 Binary: snapper Maintainer: Arvin Schnell <[email protected]> Architecture: any @@ -11,4 +11,4 @@ # 423a20ae6e882d44e65a4eff97f2269f 630905 snapper-0.2.8.tar.gz # Files: -3e58beb64b0c3cbf774033cbd4185090 622739 snapper-0.8.8.tar.bz2 +42afe66a756752a0e6dbcc765df0e7bf 624187 snapper-0.8.9.tar.bz2 ++++++ snapper-Debian_7.0.dsc ++++++ --- /var/tmp/diff_new_pack.6mYyLc/_old 2020-01-30 09:38:22.861393142 +0100 +++ /var/tmp/diff_new_pack.6mYyLc/_new 2020-01-30 09:38:22.861393142 +0100 @@ -1,6 +1,6 @@ Format: 1.0 Source: snapper -Version: 0.8.8 +Version: 0.8.9 Binary: snapper Maintainer: Arvin Schnell <[email protected]> Architecture: any @@ -11,4 +11,4 @@ # 423a20ae6e882d44e65a4eff97f2269f 630905 snapper-0.2.8.tar.gz # Files: -3e58beb64b0c3cbf774033cbd4185090 622739 snapper-0.8.8.tar.bz2 +42afe66a756752a0e6dbcc765df0e7bf 624187 snapper-0.8.9.tar.bz2 ++++++ snapper-Debian_8.0.dsc ++++++ --- /var/tmp/diff_new_pack.6mYyLc/_old 2020-01-30 09:38:22.873393148 +0100 +++ /var/tmp/diff_new_pack.6mYyLc/_new 2020-01-30 09:38:22.873393148 +0100 @@ -1,6 +1,6 @@ Format: 1.0 Source: snapper -Version: 0.8.8 +Version: 0.8.9 Binary: snapper Maintainer: Arvin Schnell <[email protected]> Architecture: any @@ -11,4 +11,4 @@ # 423a20ae6e882d44e65a4eff97f2269f 630905 snapper-0.2.8.tar.gz # Files: -3e58beb64b0c3cbf774033cbd4185090 622739 snapper-0.8.8.tar.bz2 +42afe66a756752a0e6dbcc765df0e7bf 624187 snapper-0.8.9.tar.bz2 ++++++ snapper-Debian_9.0.dsc ++++++ --- /var/tmp/diff_new_pack.6mYyLc/_old 2020-01-30 09:38:22.885393155 +0100 +++ /var/tmp/diff_new_pack.6mYyLc/_new 2020-01-30 09:38:22.885393155 +0100 @@ -1,6 +1,6 @@ Format: 1.0 Source: snapper -Version: 0.8.8 +Version: 0.8.9 Binary: snapper Maintainer: Arvin Schnell <[email protected]> Architecture: any @@ -11,4 +11,4 @@ # 423a20ae6e882d44e65a4eff97f2269f 630905 snapper-0.2.8.tar.gz # Files: -3e58beb64b0c3cbf774033cbd4185090 622739 snapper-0.8.8.tar.bz2 +42afe66a756752a0e6dbcc765df0e7bf 624187 snapper-0.8.9.tar.bz2 ++++++ snapper-xUbuntu_14.04.dsc ++++++ --- /var/tmp/diff_new_pack.6mYyLc/_old 2020-01-30 09:38:22.905393165 +0100 +++ /var/tmp/diff_new_pack.6mYyLc/_new 2020-01-30 09:38:22.905393165 +0100 @@ -1,6 +1,6 @@ Format: 1.0 Source: snapper -Version: 0.8.8 +Version: 0.8.9 Binary: snapper Maintainer: Arvin Schnell <[email protected]> Architecture: any @@ -11,4 +11,4 @@ # 423a20ae6e882d44e65a4eff97f2269f 630905 snapper-0.2.8.tar.gz # Files: -3e58beb64b0c3cbf774033cbd4185090 622739 snapper-0.8.8.tar.bz2 +42afe66a756752a0e6dbcc765df0e7bf 624187 snapper-0.8.9.tar.bz2 ++++++ snapper-xUbuntu_14.10.dsc ++++++ --- /var/tmp/diff_new_pack.6mYyLc/_old 2020-01-30 09:38:22.917393172 +0100 +++ /var/tmp/diff_new_pack.6mYyLc/_new 2020-01-30 09:38:22.917393172 +0100 @@ -1,6 +1,6 @@ Format: 1.0 Source: snapper -Version: 0.8.8 +Version: 0.8.9 Binary: snapper Maintainer: Arvin Schnell <[email protected]> Architecture: any @@ -11,4 +11,4 @@ # 423a20ae6e882d44e65a4eff97f2269f 630905 snapper-0.2.8.tar.gz # Files: -3e58beb64b0c3cbf774033cbd4185090 622739 snapper-0.8.8.tar.bz2 +42afe66a756752a0e6dbcc765df0e7bf 624187 snapper-0.8.9.tar.bz2 ++++++ snapper-xUbuntu_15.04.dsc ++++++ --- /var/tmp/diff_new_pack.6mYyLc/_old 2020-01-30 09:38:22.933393181 +0100 +++ /var/tmp/diff_new_pack.6mYyLc/_new 2020-01-30 09:38:22.937393182 +0100 @@ -1,6 +1,6 @@ Format: 1.0 Source: snapper -Version: 0.8.8 +Version: 0.8.9 Binary: snapper Maintainer: Arvin Schnell <[email protected]> Architecture: any @@ -11,4 +11,4 @@ # 423a20ae6e882d44e65a4eff97f2269f 630905 snapper-0.2.8.tar.gz # Files: -3e58beb64b0c3cbf774033cbd4185090 622739 snapper-0.8.8.tar.bz2 +42afe66a756752a0e6dbcc765df0e7bf 624187 snapper-0.8.9.tar.bz2 ++++++ snapper-xUbuntu_15.10.dsc ++++++ --- /var/tmp/diff_new_pack.6mYyLc/_old 2020-01-30 09:38:22.949393189 +0100 +++ /var/tmp/diff_new_pack.6mYyLc/_new 2020-01-30 09:38:22.949393189 +0100 @@ -1,6 +1,6 @@ Format: 1.0 Source: snapper -Version: 0.8.8 +Version: 0.8.9 Binary: snapper Maintainer: Arvin Schnell <[email protected]> Architecture: any @@ -11,4 +11,4 @@ # 423a20ae6e882d44e65a4eff97f2269f 630905 snapper-0.2.8.tar.gz # Files: -3e58beb64b0c3cbf774033cbd4185090 622739 snapper-0.8.8.tar.bz2 +42afe66a756752a0e6dbcc765df0e7bf 624187 snapper-0.8.9.tar.bz2 ++++++ snapper-xUbuntu_16.04.dsc ++++++ --- /var/tmp/diff_new_pack.6mYyLc/_old 2020-01-30 09:38:22.965393198 +0100 +++ /var/tmp/diff_new_pack.6mYyLc/_new 2020-01-30 09:38:22.965393198 +0100 @@ -1,6 +1,6 @@ Format: 1.0 Source: snapper -Version: 0.8.8 +Version: 0.8.9 Binary: snapper Maintainer: Arvin Schnell <[email protected]> Architecture: any @@ -11,4 +11,4 @@ # 423a20ae6e882d44e65a4eff97f2269f 630905 snapper-0.2.8.tar.gz # Files: -3e58beb64b0c3cbf774033cbd4185090 622739 snapper-0.8.8.tar.bz2 +42afe66a756752a0e6dbcc765df0e7bf 624187 snapper-0.8.9.tar.bz2 ++++++ snapper-xUbuntu_16.10.dsc ++++++ --- /var/tmp/diff_new_pack.6mYyLc/_old 2020-01-30 09:38:22.981393206 +0100 +++ /var/tmp/diff_new_pack.6mYyLc/_new 2020-01-30 09:38:22.981393206 +0100 @@ -1,6 +1,6 @@ Format: 1.0 Source: snapper -Version: 0.8.8 +Version: 0.8.9 Binary: snapper Maintainer: Arvin Schnell <[email protected]> Architecture: any @@ -11,4 +11,4 @@ # 423a20ae6e882d44e65a4eff97f2269f 630905 snapper-0.2.8.tar.gz # Files: -3e58beb64b0c3cbf774033cbd4185090 622739 snapper-0.8.8.tar.bz2 +42afe66a756752a0e6dbcc765df0e7bf 624187 snapper-0.8.9.tar.bz2 ++++++ snapper-xUbuntu_17.04.dsc ++++++ --- /var/tmp/diff_new_pack.6mYyLc/_old 2020-01-30 09:38:22.997393214 +0100 +++ /var/tmp/diff_new_pack.6mYyLc/_new 2020-01-30 09:38:22.997393214 +0100 @@ -1,6 +1,6 @@ Format: 1.0 Source: snapper -Version: 0.8.8 +Version: 0.8.9 Binary: snapper Maintainer: Arvin Schnell <[email protected]> Architecture: any @@ -11,4 +11,4 @@ # 423a20ae6e882d44e65a4eff97f2269f 630905 snapper-0.2.8.tar.gz # Files: -3e58beb64b0c3cbf774033cbd4185090 622739 snapper-0.8.8.tar.bz2 +42afe66a756752a0e6dbcc765df0e7bf 624187 snapper-0.8.9.tar.bz2 ++++++ snapper-xUbuntu_17.10.dsc ++++++ --- /var/tmp/diff_new_pack.6mYyLc/_old 2020-01-30 09:38:23.009393221 +0100 +++ /var/tmp/diff_new_pack.6mYyLc/_new 2020-01-30 09:38:23.013393223 +0100 @@ -1,6 +1,6 @@ Format: 1.0 Source: snapper -Version: 0.8.8 +Version: 0.8.9 Binary: snapper Maintainer: Arvin Schnell <[email protected]> Architecture: any @@ -11,4 +11,4 @@ # 423a20ae6e882d44e65a4eff97f2269f 630905 snapper-0.2.8.tar.gz # Files: -3e58beb64b0c3cbf774033cbd4185090 622739 snapper-0.8.8.tar.bz2 +42afe66a756752a0e6dbcc765df0e7bf 624187 snapper-0.8.9.tar.bz2 ++++++ snapper-xUbuntu_18.04.dsc ++++++ --- /var/tmp/diff_new_pack.6mYyLc/_old 2020-01-30 09:38:23.033393234 +0100 +++ /var/tmp/diff_new_pack.6mYyLc/_new 2020-01-30 09:38:23.033393234 +0100 @@ -1,6 +1,6 @@ Format: 1.0 Source: snapper -Version: 0.8.8 +Version: 0.8.9 Binary: snapper Maintainer: Arvin Schnell <[email protected]> Architecture: any @@ -11,4 +11,4 @@ # 423a20ae6e882d44e65a4eff97f2269f 630905 snapper-0.2.8.tar.gz # Files: -3e58beb64b0c3cbf774033cbd4185090 622739 snapper-0.8.8.tar.bz2 +42afe66a756752a0e6dbcc765df0e7bf 624187 snapper-0.8.9.tar.bz2 ++++++ snapper-xUbuntu_18.10.dsc ++++++ --- /var/tmp/diff_new_pack.6mYyLc/_old 2020-01-30 09:38:23.049393243 +0100 +++ /var/tmp/diff_new_pack.6mYyLc/_new 2020-01-30 09:38:23.049393243 +0100 @@ -1,6 +1,6 @@ Format: 1.0 Source: snapper -Version: 0.8.8 +Version: 0.8.9 Binary: snapper Maintainer: Arvin Schnell <[email protected]> Architecture: any @@ -11,4 +11,4 @@ # 423a20ae6e882d44e65a4eff97f2269f 630905 snapper-0.2.8.tar.gz # Files: -3e58beb64b0c3cbf774033cbd4185090 622739 snapper-0.8.8.tar.bz2 +42afe66a756752a0e6dbcc765df0e7bf 624187 snapper-0.8.9.tar.bz2 ++++++ snapper-xUbuntu_19.04.dsc ++++++ --- /var/tmp/diff_new_pack.6mYyLc/_old 2020-01-30 09:38:23.073393256 +0100 +++ /var/tmp/diff_new_pack.6mYyLc/_new 2020-01-30 09:38:23.073393256 +0100 @@ -1,6 +1,6 @@ Format: 1.0 Source: snapper -Version: 0.8.8 +Version: 0.8.9 Binary: snapper Maintainer: Arvin Schnell <[email protected]> Architecture: any @@ -11,4 +11,4 @@ # 423a20ae6e882d44e65a4eff97f2269f 630905 snapper-0.2.8.tar.gz # Files: -3e58beb64b0c3cbf774033cbd4185090 622739 snapper-0.8.8.tar.bz2 +42afe66a756752a0e6dbcc765df0e7bf 624187 snapper-0.8.9.tar.bz2
