Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package mt-st for openSUSE:Factory checked in at 2023-05-23 14:55:22 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/mt-st (Old) and /work/SRC/openSUSE:Factory/.mt-st.new.1533 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mt-st" Tue May 23 14:55:22 2023 rev:6 rq:1088623 version:1.7 Changes: -------- --- /work/SRC/openSUSE:Factory/mt-st/mt-st.changes 2020-11-26 23:15:02.317020344 +0100 +++ /work/SRC/openSUSE:Factory/.mt-st.new.1533/mt-st.changes 2023-05-23 14:55:43.878904837 +0200 @@ -1,0 +2,8 @@ +Wed May 17 13:48:11 UTC 2023 - Alexey Svistunov <sv...@svalx.net> + +- Update to version 1.7: + * fixes a single bug in stinit parsing of invalid definitions + * add IBM 3590 B/E format to tape densities table (Chris Dinneen) +- Cleanup secfile + +------------------------------------------------------------------- Old: ---- mt-st-1.4.tar.gz mt-st-1.4.tar.gz.asc New: ---- mt-st-1.7.tar.gz mt-st-1.7.tar.gz.asc ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ mt-st.spec ++++++ --- /var/tmp/diff_new_pack.IgbBWd/_old 2023-05-23 14:55:44.410907984 +0200 +++ /var/tmp/diff_new_pack.IgbBWd/_new 2023-05-23 14:55:44.418908031 +0200 @@ -1,7 +1,7 @@ # # spec file for package mt-st # -# Copyright (c) 2020 SUSE LLC +# Copyright (c) 2023 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: mt-st -Version: 1.4 +Version: 1.7 Release: 0 Summary: Utility for Controlling Magnetic Tape Drives License: GPL-2.0-or-later @@ -28,13 +28,8 @@ Source2: stinit.def Source3: 61-storage-tape-init.rules Source4: %{name}.keyring -BuildRequires: pkgconfig -BuildRequires: pkgconfig(udev) -Requires: udev -Requires(post): udev Requires(post): update-alternatives -Requires(postun): udev -Requires(postun): update-alternatives +Requires(postun):update-alternatives Provides: mt %description ++++++ mt-st-1.4.tar.gz -> mt-st-1.7.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mt-st-1.4/CHANGELOG.md new/mt-st-1.7/CHANGELOG.md --- old/mt-st-1.4/CHANGELOG.md 2020-08-30 11:40:54.000000000 +0200 +++ new/mt-st-1.7/CHANGELOG.md 2023-04-20 23:23:11.000000000 +0200 @@ -1,5 +1,32 @@ # Changelog +## Changes in version 1.7 (Thu, 20 Apr 2023) + +Fixes a single bug in stinit parsing of invalid definitions. This is a +trivial bug, and only affects config files manually installed by root, +so the impact should be minimal. + +The bug also does not appear on amd64/x86, but (in Debian) was only +triggered (as undefined behaviour) on mips64el, arm64 and s390x, +likely due to different platform behaviour. + +## Changes in version 1.6 (Wed, 19 Apr 2023) + +This is bugfix release agains 1.5. In between 1.4 and 1.5, the "make +check" target was migrated to using +[shelltest](https://github.com/simonmichael/shelltestrunner), but the +`make dist` and `distcheck` targets were no, so the built archive was +actually not. This only fixes that and has no functional code changes +from 1.5. + +## Changes in version 1.5 (Wed, 19 Apr 2023) + +Trivial release: + +- add IBM 3590 B/E format to tape densities table (Chris Dinneen). + +Thanks! + ## Changes in version 1.4 (Sun, 30 Aug 2020) Small bugfixes and improvements release: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mt-st-1.4/Makefile new/mt-st-1.7/Makefile --- old/mt-st-1.4/Makefile 2020-08-30 11:42:03.000000000 +0200 +++ new/mt-st-1.7/Makefile 2023-04-20 23:23:21.000000000 +0200 @@ -28,7 +28,10 @@ .dir-locals.el \ .clang-format -VERSION=1.4 +TESTFILES = $(wildcard tests/*.test) +TESTDATAFILES = $(wildcard tests/data/*.data) + +VERSION=1.7 RELEASEDIR=mt-st-$(VERSION) TARFILE=mt-st-$(VERSION).tar.gz @@ -58,7 +61,10 @@ trap "rm -rf $$BASE" EXIT && \ DIST="$$BASE/$(RELEASEDIR)" && \ mkdir "$$DIST" && \ - $(INSTALL) -m 0644 -p -t "$$DIST/" $(DISTFILES) && \ + mkdir "$$DIST/tests" && mkdir "$$DIST/tests/data" && \ + $(INSTALL) -m 0644 -p -t "$$DIST/" $(DISTFILES) && \ + $(INSTALL) -m 0644 -p -t "$$DIST/tests" $(TESTFILES) && \ + $(INSTALL) -m 0644 -p -t "$$DIST/tests/data" $(TESTDATAFILES) && \ tar czvf $(TARFILE) -C "$$BASE" \ --owner root --group root \ $(RELEASEDIR) @@ -71,12 +77,7 @@ tar xvf $(TARFILE) -C "$$SRC" && \ cd "$$SRC/$(RELEASEDIR)" && \ make CFLAGS="-Wall -Wextra -Werror" && \ - echo Checking version output && \ - ./mt --version && ./stinit --version && \ - echo Checking parse status && \ - ./stinit -p -f stinit.def.examples && \ - echo Checking complete stinit parsing && \ - ( ./stinit -v -v -p -f stinit.def.examples 2>&1 | grep -q 'Mode 1 definition: scsi2logical=1 can-bsr=1 auto-lock=0 two-fms=0 drive-buffering=1 buffer-writes read-ahead=1 async-writes=1 can-partitions=0 fast-eom=1 blocksize=0 sili=1 timeout=900 long-timeout=14400 density=0x44 compression=0' ) && \ + make check && \ make dist && \ make install DESTDIR="$$DST" && \ numfiles=$$( \ @@ -86,11 +87,23 @@ echo "$$numfiles files installed (5 expected)" && \ test "$$numfiles" -eq 5 +check: $(PROGS) + shelltest -DVERSION=$(VERSION) tests + +# This needs lcov installed, and it's useful for local testing. +coverage: clean + $(MAKE) CFLAGS=-coverage + $(MAKE) check + lcov --capture --directory . --no-external --output-file coverage.info + genhtml coverage.info --output-directory out + + release-tag: git tag -s -m 'Release version $(VERSION).' mt-st-$(VERSION) clean: - rm -f *~ \#*\# *.o $(PROGS) version.h + rm -f *~ \#*\# *.o *.gcno *.gcda coverage.info $(PROGS) version.h + rm -rf out reindent: clang-format -i mt.c stinit.c diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mt-st-1.4/README.md new/mt-st-1.7/README.md --- old/mt-st-1.4/README.md 2020-08-30 02:21:04.000000000 +0200 +++ new/mt-st-1.7/README.md 2023-04-18 20:41:46.000000000 +0200 @@ -11,8 +11,12 @@ For more information, bug reports and the source code repository, please see the project homepage at <https://github.com/iustin/mt-st>. -Build status: -[](https://travis-ci.org/iustin/mt-st) +[](https://github.com/iustin/mt-st/actions/workflows/ci.yml) +[](https://codecov.io/gh/iustin/mt-st) + + + + ## mt diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mt-st-1.4/mt.c new/mt-st-1.7/mt.c --- old/mt-st-1.4/mt.c 2020-08-30 02:20:25.000000000 +0200 +++ new/mt-st-1.7/mt.c 2023-03-17 13:10:17.000000000 +0100 @@ -175,7 +175,8 @@ { 0x26, "DDS-4 or QIC-4GB" }, { 0x27, "Exabyte Mammoth" }, { 0x28, "Exabyte Mammoth-2" }, - { 0x29, "QIC-3080MC" }, + { 0x29, "QIC-3080MC, IBM 3590 B" }, + { 0x2a, "IBM 3590 E" }, { 0x30, "AIT-1 or MLR3" }, { 0x31, "AIT-2" }, { 0x32, "AIT-3 or SLR7" }, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mt-st-1.4/stinit.c new/mt-st-1.7/stinit.c --- old/mt-st-1.4/stinit.c 2019-10-13 20:11:26.000000000 +0200 +++ new/mt-st-1.7/stinit.c 2023-04-20 23:05:22.000000000 +0200 @@ -139,9 +139,13 @@ cp++; for (cp2 = cp; *cp2 != '"' && *cp2 != '\0'; cp2++) ; - } else - for (cp2 = cp + 1; isalnum(*cp2) || *cp2 == '-'; cp2++) - ; + } else { + if (*cp == '\0') + return NULL; + else + for (cp2 = cp + 1; isalnum(*cp2) || *cp2 == '-'; cp2++) + ; + } if (*cp2 == '\0') return NULL; have_arg = TRUE; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mt-st-1.4/tests/basic.test new/mt-st-1.7/tests/basic.test --- old/mt-st-1.4/tests/basic.test 1970-01-01 01:00:00.000000000 +0100 +++ new/mt-st-1.7/tests/basic.test 2021-06-06 02:40:44.000000000 +0200 @@ -0,0 +1,21 @@ +# Check --version works +./mt --version +>>> /VERSION/ +>>>= 0 + +./mt -v +>>> /VERSION/ +>>>= 0 + +./stinit --version +>>> /VERSION/ +>>>= 0 + +# Check -h works +./mt -h +>>>2 /commands: weof, wset, eof/ +>>>= 0 + +./stinit -h +>>>2 /Usage: stinit/ +>>>= 0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mt-st-1.4/tests/data/bad-definition.data new/mt-st-1.7/tests/data/bad-definition.data --- old/mt-st-1.4/tests/data/bad-definition.data 1970-01-01 01:00:00.000000000 +0100 +++ new/mt-st-1.7/tests/data/bad-definition.data 2023-04-18 21:57:45.000000000 +0200 @@ -0,0 +1,6 @@ +# A non-compressing DAT (DDS-1) +# The manufacturer, model, and revision strings can be obtained, +# from the file /proc/scsi/scsi (cat /proc/scsi/scsi). +manufacturer=XYZ model = "UVW1" { +mode1 blocksize= +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mt-st-1.4/tests/data/illegal-mode.data new/mt-st-1.7/tests/data/illegal-mode.data --- old/mt-st-1.4/tests/data/illegal-mode.data 1970-01-01 01:00:00.000000000 +0100 +++ new/mt-st-1.7/tests/data/illegal-mode.data 2021-06-06 02:40:44.000000000 +0200 @@ -0,0 +1,7 @@ +# A non-compressing DAT (DDS-1) +# The manufacturer, model, and revision strings can be obtained, +# from the file /proc/scsi/scsi (cat /proc/scsi/scsi). +manufacturer=XYZ model = "UVW1" { +scsi2logical=1 can-bsr can-partitions auto-lock +mode1 blocksize=0 +modeABC blocksize=1024 } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mt-st-1.4/tests/data/incomplete-block.data new/mt-st-1.7/tests/data/incomplete-block.data --- old/mt-st-1.4/tests/data/incomplete-block.data 1970-01-01 01:00:00.000000000 +0100 +++ new/mt-st-1.7/tests/data/incomplete-block.data 2023-04-18 21:49:46.000000000 +0200 @@ -0,0 +1,4 @@ +# A non-compressing DAT (DDS-1) +# The manufacturer, model, and revision strings can be obtained, +# from the file /proc/scsi/scsi (cat /proc/scsi/scsi). +manufacturer=XYZ model = "UVW1" { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mt-st-1.4/tests/data/large-units.data new/mt-st-1.7/tests/data/large-units.data --- old/mt-st-1.4/tests/data/large-units.data 1970-01-01 01:00:00.000000000 +0100 +++ new/mt-st-1.7/tests/data/large-units.data 2023-04-18 21:39:30.000000000 +0200 @@ -0,0 +1,7 @@ +# A non-compressing DAT (DDS-1) +# The manufacturer, model, and revision strings can be obtained, +# from the file /proc/scsi/scsi (cat /proc/scsi/scsi). +manufacturer=XYZ model = "UVW1" { +scsi2logical=1 can-bsr can-partitions auto-lock +mode1 blocksize=1k +mode2 blocksize=1M } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mt-st-1.4/tests/mt-cli.test new/mt-st-1.7/tests/mt-cli.test --- old/mt-st-1.4/tests/mt-cli.test 1970-01-01 01:00:00.000000000 +0100 +++ new/mt-st-1.7/tests/mt-cli.test 2021-06-06 02:40:44.000000000 +0200 @@ -0,0 +1,34 @@ +# Wrong argument +./mt -x +>>>2 /usage: / +>>>= 1 + +# Missing tape argument +./mt -f +>>>2 /usage: / +>>>= 1 + +# Unknown command +./mt to-the-moon +>>>2 /mt: unknown command "to-the-moon"/ +>>>= 1 + +# Too many arguments +./mt rewind 1 +>>>2 /mt: too many arguments for the command 'rewind'\./ +>>>= 1 + +# Ambigous command +./mt l +>>>2 /mt: ambiguous command "l"/ +>>>= 1 + +# Shortened but not ambiguous command. +./mt rewi 1 +>>>2 /mt: too many arguments for the command 'rewind'\./ +>>>= 1 + +# Densities command - the only one not requiring a tape. +./mt densities +>>> /LTO-6/ +>>>= 0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mt-st-1.4/tests/mt-errors.test new/mt-st-1.7/tests/mt-errors.test --- old/mt-st-1.4/tests/mt-errors.test 1970-01-01 01:00:00.000000000 +0100 +++ new/mt-st-1.7/tests/mt-errors.test 2021-06-06 02:40:44.000000000 +0200 @@ -0,0 +1,4 @@ +# Wrong tape argument +./mt -f /dev/no-such-tape rewind +>>>2 /no-such-tape: No such file or directory/ +>>>= 1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mt-st-1.4/tests/stinit-errors.test new/mt-st-1.7/tests/stinit-errors.test --- old/mt-st-1.4/tests/stinit-errors.test 1970-01-01 01:00:00.000000000 +0100 +++ new/mt-st-1.7/tests/stinit-errors.test 2023-04-18 21:58:04.000000000 +0200 @@ -0,0 +1,51 @@ +# Check handling of missing file +./stinit -p -f no-such-database +>>>2 /Can't find SCSI tape database/ +>>>= 1 + +# No file passed +./stinit -p -f +>>>2 /Usage:/ +>>>= 1 + +# Wrong arguments +./stinit -x +>>>2 /Usage:/ +>>>= 1 + +# Illegal ordering of arguments +./stinit -f stinit.def.examples 1000 - +>>>2 /Usage:/ +>>>= 1 + +# Check bad mode +./stinit -v -v -p -f tests/data/illegal-mode.data +>>> /Errors found!/ +>>>2 /Illegal mode for/ +>>>= 1 + +# No modes defined +#./stinit -v -v -f tests/data/no-modes.data +#>>> /Errors found!/ +#>>>2 /Illegal mode for/ +#>>>= 1 + +# Wrong tape device +./stinit -f stinit.def.examples /dev/no-such-tape +>>>2 /Can't find tape number for name/ +>>>= 0 + +# Wrong tape number. Well, this is flaky, but let's hope nobody has +# 1000 tapes. +./stinit -f stinit.def.examples 1000 +>>>2 /Can't find any device files for tape 1000/ +>>>= 0 + +./stinit -f stinit.def.examples 1000 +>>>2 /Definition for '1000' failed/ +>>>= 0 + +# Wrong tape number (non-numeric). +./stinit -f stinit.def.examples 1000a +>>>2 /Invalid tape device index '1000a': don't know how to parse 'a'/ +>>>= 0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mt-st-1.4/tests/stinit-parsing.test new/mt-st-1.7/tests/stinit-parsing.test --- old/mt-st-1.4/tests/stinit-parsing.test 1970-01-01 01:00:00.000000000 +0100 +++ new/mt-st-1.7/tests/stinit-parsing.test 2023-04-18 22:06:29.000000000 +0200 @@ -0,0 +1,30 @@ +# Check example file parsing +./stinit -p -f stinit.def.examples +>>>= 0 + +# Extra arguments ignored while file parsing +./stinit -p -f stinit.def.examples abc +>>>2 /Extra arguments .* ignored/ +>>>= 0 + +# Checking complete stinit parsing +./stinit -v -v -p -f stinit.def.examples +>>> /No errors found./ +>>>2 /Mode 1 definition: scsi2logical=1 can-bsr=1 auto-lock=0 two-fms=0 drive-buffering=1 buffer-writes read-ahead=1 async-writes=1 can-partitions=0 fast-eom=1 blocksize=0 sili=1 timeout=900 long-timeout=14400 density=0x44 compression=0/ +>>>= 0 + +# Check units +./stinit -v -v -p -f tests/data/large-units.data +>>> /No errors found./ +>>>2 /blocksize=1(k|M)/ +>>>= 0 + +# Incomplete block +./stinit -p -v -f tests/data/incomplete-block.data +>>>2 /End of definition block not found for/ +>>>= 1 + +# Wrong definition +./stinit -p -v -f tests/data/bad-definition.data +>>>2 /Warning: errors in definition for/ +>>>= 1