Cleanup Tumbleweed new release changelogs

Hi, Does it really make sense to send the whole changelog of the package. As a sysadmin, I would like to see quickly what the changes are between currently installed and the upcoming version so I can make a decision how to react, cosmetic or security related. For the former I may prefer to wait, if it is not an issue for my system. Just as an example I am adding the changelog of btrfsprogs, and I dropped further parts as I am sure most people are not interested the boring parts. rpm -qi says I have 5.16 Name : btrfsprogs Version : 5.16 Release : 1.1 Architecture: x86_64 Install Date: Wed 19 Jan 2022 11:22:20 AM CET Group : System/Filesystems Size : 3997347 License : GPL-2.0-only Signature : RSA/SHA256, Fri 14 Jan 2022 11:35:48 PM CET, Key ID b88b2fd43dbdc284 Source RPM : btrfsprogs-5.16-1.1.src.rpm Build Date : Fri 14 Jan 2022 11:32:32 PM CET With the new Tumbleweed release news I am interested in the following part ==== btrfsprogs ==== Subpackages: btrfsprogs-udev-rules libbtrfs0 - add python-rpm-macros (bsc#1194748) - spec: also provide btrfs-progs as it's common package name in other distros - spec: clean up conditionals for < 12 versions - spec: let SLE12 build again (conditional dependency of libreiserfscore) - Removed patches: sles11-defaults.h (no SLE11 compatibility anymore) - Added patches: btrfs-progs-kerncompat-add-local-definition-for-alig.patch (fix build on SLE12/SLE15) - Update to 5.16 * rescue: new subcommand clear-uuid-tree to fix failed mount due to bad uuid subvolume keys, caught by tree-checker * fi du: skip inaccessible files * prop: properly resolve to symlink targets * send, receive: fix crash after parent subvolume lookup errors * build: * fix build on 5.12+ kernels due to changes in linux/kernel.h * fix build on musl with old kernel headers * other: * error handling fixes, cleanups, refactoring * extent tree v2 preparatory work * lots of RST documentation updates (last release with asciidoc sources), https://btrfs.readthedocs.io From here further down I don't need it in the announcement. If I really want to know what happened all I need to do is rpm -q --changelog btrfsprogs So can we pretty please cut the unnecessary, not really needed info part. Thank you in advance - Update to 5.15.1 * fi usage: fix wrongly reported space of used or unallocated space * fix detection of block device discard capability * check: add more sanity checks for checksum items * build: make sphinx optional backend for documentation - Update to 5.15 * mkfs: new defaults! * no-holes * free-space-tree * DUP for metadata unconditionally * libbtrfsutil: add missing profile defines * libbtrfs: minimize its impact on the other code, refactor and separate implementation where needed, cleanup afterwards, reduced header exports * documentation: introduce sphinx build and RST versions of manual pages, will become the new format and replace asciidoc * fixes: warning regarding v1 space cache when only v2 (free space tree) is enabled - Update to 5.14.1 * fixes * zoned mode * properly detect non-zoned devices in emulation mode * properly create quota tree * raid1c3/4 also excluded from unsupported profiles * use sysfs-based detection of device discard capability, fix mkfs-time trim for non-standard devices * mkfs: fix creation of populated filesystem with free space tree * detect multipath devices (needs libudev) * replace start: add option -K/--nodiscard, similar to what mkfs or device add has * dump-tree: print complete root_item * mkfs: add option --verbose * sb-mod: better help, no checksum calculation on read-only actions * subvol show: * print more information (regarding send and receive) * print warning if read-write subvolume has received_uuid set * property set: * add parameter -f to force changes * changing ro->rw switch now needs -f if subvolume has received_uuid set, (see documentation) * build: optional libudev (on by default) * other * remove deprecated support for CREATE_ASYNC bit for subvolume ioctl * CI updates * new and updated tests - Update patch: mkfs-default-features.patch (add stub define for new defaults) - Update to 5.14.1 * fixes: * defrag: fix parsing of compression (option -c) * add workaround for old kernels when reading zone sizes * let only check and restore open the fs with transid failures, namely preventing btrfstune to do so * convert: --uuid copy does not fail on duplicate uuids - Update to 5.14 * convert: * new option --uuid to copy, generate or set a given uuid * improve output * mkfs: * allow to create degenerate raid0 (on 1 device) and raid10 (on 2 devices) * image: * improved error messages * fix some alignment of restored image * subvol delete: allow to delete by id when path is not resolvable * check: * require alignment of nodesize for 64k page systems * detect and fix invalid block groups * libbtrfs (deprecated): * remove most exported symbols, leave only a few that are used by snapper * no version change (still 0.1) * remove btrfs-list.h, btrfsck.h * fixes: * reset generation of space v1 if v2 is used * fi us: don't wrongly report missing device size when partition is not readable * other: * build: experimental features * build: better detection of 64bit timestamp support for ext4 * corrupt-block: block group items * new and updated tests * refactoring * experimental features: * new image dump format, with data - Update to 5.13.1 * build: fix build on musl libc due to missing definition of NAME_MAX * check: * batch more work into one transaction when clearing v1 free space inodes * detect directoris with wrong number of links * libbtrfsutil: fix race between subvolume iterator and deletion * mkfs: be more specific about supported profiles for zoned device * other: * documentation updates - Update to 5.13 * restore: remove loop checks for extent count and directory scan * inspect dump-tree: new options to print node (--csum-headers) and data checksums (--csum-items) * fi usage: * print stripe count for striped profiles * print zoned information: size, total unusable * mkfs: print note about sha256 accelerated module loading issue * check: ability to reset dev_item::bytes_used * fixes * detect zoned kernel support at run time too * exclusive op running check return value * fi resize: support cancel (kernel 5.14) * device remove: support cancel (kernel 5.14) * documentation about general topics * compression * zoned mode * storage model * hardware considerations * other * libbtrfsutil API overview * help text fixes and updates * hash speedtest measure time, cycles using perf and print throughput - Add --disable-zoned for leap - revert previous change, unintentionally disables zstd on tumbleweed - Fix build for leap * --disable-zstd if leap < 42.3 * --disable-zoned for leap - Update to 5.12.1 * build: fix missing symbols in libbtrfs * mkfs: check for minimal number of zones * check: fix warning about cache generation when free space tree is enabled * fix superblock write in zoned mode on 16K pages - Update to 5.12 * libbtrfsutil: relicensed to LGPL v2.1+ * mkfs: zoned mode support (kernel 5.12+) * fi df: show zone_unusable per profile type in zoned mode * fi usage: show total amount of zone_unusable * fi resize: fix message for exact size * image: fix warning and enlarge output file if necessary * core * refactor chunk allocator for more modes * implement zoned mode support: allocation and writes, sb log * crypto/hash refactoring and cleanups * refactoring and cleanups * other * test updates * CI updates * travis-ci integration disabled * docker images updated, more coverage * incomplete build support for Android removed * doc updates * chattr mode m for 'NOCOMPRESS" * swapfile used from fstab * how to add a new export to libbtrfsutil * update status of mount options since 5.9 - Update to 5.11.1 * properly format checksums when a mismatch is reported * check: fix false alert on tree block crossing 64K page boundary * convert: * refuse to convert filesystem with 'needs_recovery' * update documentation to require fsck before conversion * balance convert: fix raid56 warning when converting other profiles * fi resize: improved summary * other * build: fix checks and autoconf defines * fix symlink paths for CI support scripts * updated tests - Update to 5.11 * fix device path canonicalization for device mapper devices * receive: remove workaround for setting capabilities, all stable kernels have been patched * receive: fix duplicate mount path detection * rescue: new subcommand create-control-device * device stats: minor fix for plain text format output * build: detect if e2fsprogs support 64bit timestamps * build: drop libmount, required functionality has been reimplemented * mkfs: warn when raid56 is used * balance convert: warn when raid56 is used * other * new and updated tests * documentation updates * seeding device * raid56 status * CI updates * docker images for various distros - Update to 5.10.1 * static build works again * other: * add a way to test static binaries with the testsuite * clarify scrub docs * update dependencies, minimum version for libmount is 2.24, this may change in the future - Update to 5.10 * scrub status: * print percentage of progress * add size unit options * fi usage: also print free space from statfs * convert: copy full 64 bit timestamp from ext4 if availalble * check: * add ability to repair extent item generation * new option to remove leftovers from inode number cache (-o inode_cache) * check for already running exclusive operation (balance, device add/...) when starting one * preliminary json output support for 'device stats' * fixes: * subvolume set-default: id 0 correctly falls back to toplevel * receive: align internal buffer to allow fast CRC calculation * logical-resolve: distinguish -o subvol and bind mounts * build: new dependency libmount * other * doc fixes and updates * new tests * ci on gitlab temporarily disabled * debugging output enhancements - prepare usrmerge (boo#1029961)

Does it really make sense to send the whole changelog of the package. As a sysadmin, I would like to see quickly what the changes are between currently installed and the upcoming version
With Tumbleweed moving at the pace that it does, every one has a different version installed. The output of `rpm -q --changelog` _is_ trimmed; cf. `osc meta prjconf openSUSE:Factory`:: # trim binary changelogs back to Jan 01 2018 # maxnum,cuttime,minnum # 2018/01/01 %_binarychangelogtrim 0,1514764800,10 so it's a bit shorter than some .changes files.
With the new Tumbleweed release news I am interested in the following part
==== btrfsprogs ==== Subpackages: btrfsprogs-udev-rules libbtrfs0
- add python-rpm-macros (bsc#1194748) - spec: also provide btrfs-progs as it's common package name in other distros - spec: clean up conditionals for < 12 versions - spec: let SLE12 build again (conditional dependency of libreiserfscore) - Removed patches: sles11-defaults.h (no SLE11 compatibility anymore) - Added patches: btrfs-progs-kerncompat-add-local-definition-for-alig.patch (fix build on SLE12/SLE15) - Update to 5.16 * rescue: new subcommand clear-uuid-tree to fix failed mount due to bad uuid subvolume keys, caught by tree-checker * fi du: skip inaccessible files * prop: properly resolve to symlink targets * send, receive: fix crash after parent subvolume lookup errors * build: * fix build on 5.12+ kernels due to changes in linux/kernel.h * fix build on musl with old kernel headers * other: * error handling fixes, cleanups, refactoring * extent tree v2 preparatory work * lots of RST documentation updates (last release with asciidoc sources), https://btrfs.readthedocs.io
The mail announcing new TW snapshots is also trimmed; I believe it's in relation to the last TW snapshot. Something probably went wrong with regards to btrfsprogs. Do take note however that the script is not as smart as a human; in particular, when a new .changes file appears (classic multibuilds via multiple spec files), it is possible that it is considered all newsworthy.
- Update to 5.14.1 - Update to 5.14 - Update to 5.13.1 - Update to 5.13 - Update to 5.12.1 - Update to 5.12 - Update to 5.11.1 - Update to 5.11 - Update to 5.10.1 [...]

On Sat, 2022-01-22 at 20:27 +0100, Togan Muftuoglu wrote:
Hi,
Does it really make sense to send the whole changelog of the package. As a sysadmin, I would like to see quickly what the changes are between currently installed and the upcoming version so I can make a decision how to react, cosmetic or security related. For the former I may prefer to wait, if it is not an issue for my system.
The changelog generator between snapshots is actually instructed to find the entry that was last there, and only put the newer stuff on the mailing list (this never works with reverts, as the 'top most' changelog entry would not be found)
==== btrfsprogs ==== Subpackages: btrfsprogs-udev-rules libbtrfs0
- add python-rpm-macros (bsc#1194748) - spec: also provide btrfs-progs as it's common package name in other distros - spec: clean up conditionals for < 12 versions - spec: let SLE12 build again (conditional dependency of libreiserfscore) - Removed patches: sles11-defaults.h (no SLE11 compatibility anymore) - Added patches: btrfs-progs-kerncompat-add-local-definition-for-alig.patch (fix build on SLE12/SLE15)
Here should actually be thre break of the changelog. Which would match https://build.opensuse.org/request/show/947370 The asme log file (that was snapshot 20220121) shows that this worked fine for other packages, e.g. ==== chrony ==== Subpackages: chrony-pool-openSUSE - boo#1194206: Use /run instead of /var/run throughout. - bsc#1194229: Fix pool package dependencies, so that SLE actually prefers chrony-pool-suse over chrony-pool-empty. This is obviously not the entire changelog in the package, but the differ did what it was supposed to do and only added the new entries. So, long story short: essentially, what you ask for is implemented, but for some (yet unknown) reason failed to work on btrfsprogs. If anybody is interested in debugging the scripts [0], I have the 'base files' that are used by the scripts available (so the 'full blob' of 20220120 and 20220121 - two 50MB blobs that are interesected) Cheers Dominique [0] https://github.com/openSUSE/openSUSE-release-tools/blob/master/factory-packa...

Hi, Am Dienstag, 25. Januar 2022, 14:47:33 CET schrieb Dominique Leuenberger / DimStar:
On Sat, 2022-01-22 at 20:27 +0100, Togan Muftuoglu wrote:
Hi,
Does it really make sense to send the whole changelog of the package. As a sysadmin, I would like to see quickly what the changes are between currently installed and the upcoming version so I can make a decision how to react, cosmetic or security related. For the former I may prefer to wait, if it is not an issue for my system.
The changelog generator between snapshots is actually instructed to find the entry that was last there, and only put the newer stuff on the mailing list (this never works with reverts, as the 'top most' changelog entry would not be found)
==== btrfsprogs ==== Subpackages: btrfsprogs-udev-rules libbtrfs0
- add python-rpm-macros (bsc#1194748) - spec: also provide btrfs-progs as it's common package name in other distros - spec: clean up conditionals for < 12 versions - spec: let SLE12 build again (conditional dependency of libreiserfscore) - Removed patches: sles11-defaults.h (no SLE11 compatibility anymore) - Added patches: btrfs-progs-kerncompat-add-local-definition-for-alig.patch (fix build on SLE12/SLE15)
Here should actually be thre break of the changelog. Which would match https://build.opensuse.org/request/show/947370
The asme log file (that was snapshot 20220121) shows that this worked fine for other packages, e.g.
==== chrony ==== Subpackages: chrony-pool-openSUSE
- boo#1194206: Use /run instead of /var/run throughout. - bsc#1194229: Fix pool package dependencies, so that SLE actually prefers chrony-pool-suse over chrony-pool-empty.
This is obviously not the entire changelog in the package, but the differ did what it was supposed to do and only added the new entries.
So, long story short: essentially, what you ask for is implemented, but for some (yet unknown) reason failed to work on btrfsprogs.
If anybody is interested in debugging the scripts [0], I have the 'base files' that are used by the scripts available (so the 'full blob' of 20220120 and 20220121 - two 50MB blobs that are interesected)
It's caused by the latest entry. That uses UTC as timezone, while many others use CET. The changelog2spec script uses only the first timezone to calculate and those close to midnight got moved back a day. I filed https://github.com/openSUSE/obs-build/issues/768. factory-package-news.py doesn't check for t2 <= t1 for finding the intersection, but checks for t2 == t1 instead. Due to the day mismatch that never occurs, so it printed the entire changelog instead. It can probably be changed to t2 <= t1. Cheers, Fabian
Cheers Dominique
[0] https://github.com/openSUSE/openSUSE-release-tools/blob/master/factory-packa...

Hello, Am Dienstag, 25. Januar 2022, 14:47:33 CET schrieb Dominique Leuenberger / DimStar:
On Sat, 2022-01-22 at 20:27 +0100, Togan Muftuoglu wrote:
Does it really make sense to send the whole changelog of the package. As a sysadmin, I would like to see quickly what the changes are between currently installed and the upcoming version so I can make a decision how to react, cosmetic or security related. For the former I may prefer to wait, if it is not an issue for my system.
The changelog generator between snapshots is actually instructed to find the entry that was last there, and only put the newer stuff on the mailing list (this never works with reverts, as the 'top most' changelog entry would not be found)
Still, shortening the changelog to a sane amount of lines would avoid the "worst case" of having the full changelog in the "new snapshot" mail. Which reminds me - I opened a PR for this years ago, but it's still open: https://github.com/openSUSE/openSUSE-release-tools/pull/1726 Yan you look at it again, and maybe even merge it? ;-) (I know it's flagged as "changes requested", but please read my comment that explains why I did things the way I did. IMHO the requested change would make the result slightly worse.) Regards, Christian Boltz -- When you say "I wrote a program that crashed Windows", people just stare at you blankly and say "Hey, I got those with the system, *for free*". [Linus Torvalds]
participants (5)
-
Christian Boltz
-
Dominique Leuenberger / DimStar
-
Fabian Vogt
-
Jan Engelhardt
-
Togan Muftuoglu