Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package dwarfs for openSUSE:Factory checked in at 2026-03-24 18:48:59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/dwarfs (Old) and /work/SRC/openSUSE:Factory/.dwarfs.new.8177 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "dwarfs" Tue Mar 24 18:48:59 2026 rev:8 rq:1342131 version:0.15.1 Changes: -------- --- /work/SRC/openSUSE:Factory/dwarfs/dwarfs.changes 2026-02-07 15:34:06.155058409 +0100 +++ /work/SRC/openSUSE:Factory/.dwarfs.new.8177/dwarfs.changes 2026-03-24 18:49:53.941006268 +0100 @@ -1,0 +2,170 @@ +Mon Mar 23 03:05:32 UTC 2026 - Mia Herkt <[email protected]> + +- Update to version 0.15.1: +Bug fixes: + * mkdwarfs did not correctly handle inputs where hardlinks had + the same inode number on different devices. To run into this + issue, you would have to make mkdwarfs scan files from multiple + devices (e.g. the root of a directory tree with multiple + mounted filesystems) and have files with the same inode number + on different devices and have at least two of those files also + have a link count greater than 1. While this is hopefully rare + in practice, it is a serious bug that can lead to crashes (in + the best case) or even data loss (in the worst case), as only + the data of one of these files would be stored in the image. + This has been fixed and a test has been added to cover this + case. +- Version 0.15.0: +Bug fixes: + * Commas in the filesystem image path were not escaped when + passed to the FUSE driver as the fsname option. Because commas + are used as FUSE argument separators, this could cause mounting + to fail for paths containing commas. + gh#mhx/dwarfs#323 + * Progress reporting in dwarfsextract was broken when extracting + a subset of files using patterns, because it was computed + relative to the total filesystem size rather than the total + size of the selected files. Several subtle edge cases could + also cause progress percentages to fail to reach 100% or even + exceed it. These issues have been fixed. + gh#mhx/dwarfs#316 + * Fixed FUSE argument vector initialization in dwarfs_main, which + could trigger an assertion inside libfuse when extra arguments + were added after an uninitialized vector was passed to + FUSE_ARGS_INIT. + * Fixed a metadata lookup bug for parent_dir_entry in filesystems + with format version 2.2 and earlier (that is, DwarFS releases + before v0.5.0), where an additional level of indirection was + required but missing. Fortunately, this only affected the debug + output of dwarfsck: the parent= field shown with + -d directory_tree would display the parent inode number rather + than the parent entry number. The only other code path using + parent_dir_entry effectively compensated for the missing + indirection. + * Recompressing a filesystem image with sparse files, without + also rebuilding the metadata, could erroneously fail with an + error claiming that sparse file support could not be disabled, + even without --no-sparse-files. The root cause was an unchecked + std::optional access. This has been fixed. + * When rewriting a filesystem image, the bytes_in and bytes_out + progress counters were updated at different times, which could + lead to incorrect compression ratios being shown during + progress reporting. Both counters are now updated together + after compression. + * When using --format=newc and extracting a subset of hardlinked + files, dwarfsextract could crash with an "unexpected deferred + entry" error. This was caused by a peculiarity of libarchive's + newc implementation that was not handled correctly. The bug has + been fixed and is now covered by a test. + * Corrected the license information in a few headers, changing + them from GPL-3.0-or-later to MIT. +Features: + * Major dependency reduction / de-Meta-ing the project. + fbthrift and folly are no longer dependencies of DwarFS, and + the corresponding submodules have been removed from the + repository. fbthrift has been replaced by a new thrift_lite + library that implements the subset DwarFS actually needs, + including the thrift compiler, compact protocol support, JSON + serialization, debug output, and frozen-layout support. + The frozen library from fbthrift has been forked and is now + maintained as an internal component with all folly dependencies + removed. DwarFS now relies on standard C++23, Boost, and a few + new in-repo components instead. This also removes several + indirect dependencies (gflags, glog, double-conversion, + libevent, and on macOS also libsodium). The resulting code is + simpler, the dependency footprint is smaller, and binary size + is reduced in many cases. The compact protocol remains fully + compatible, but the debug and JSON output formats are no longer + identical to fbthrift's output. + * mkdwarfs now automatically selects the progress display mode + based on whether the output is connected to a terminal and + whether the current locale uses UTF-8. Previously, the default + was always unicode, which could produce garbled output in + non-UTF-8 environments. + gh#mhx/dwarfs#326 + * The project is now compliant with the REUSE specification. + All source files now carry SPDX license identifiers, a + REUSE.toml file has been added, and full license texts are + included in the LICENSES directory. + * New --hollow option for mkdwarfs. This allows building hollow + filesystem images that preserve the structure, metadata, and + file sizes of the input while replacing actual file contents + with zero-filled sparse files. This is useful for testing + scenarios where realistic filesystem structure matters but the + actual contents do not. + gh#mhx/dwarfs#131 + * mkdwarfs now supports ZSTD long-distance matching (LDM) via a + new long algorithm option for --compression. This can improve + compression ratios with extremely large block sizes (typically + above 128 MiB), or with smaller block sizes at lower + compression levels. + * New binary file categorizer (--categorize=binary). + This categorizer can identify ELF (Linux/FreeBSD), + PE (Windows), and Mach-O (macOS) executables and shared + libraries and group them into separate categories by type and + architecture. This can dramatically improve compression ratios + when binaries from different platforms and architectures are + mixed together. + * dwarfsextract has a new --num-disk-writers option to run + multiple writer threads in parallel when extracting files to + disk. This can improve throughput, especially when extracting + large numbers of small files. + * dwarfsextract has new --skip-devices and --skip-specials + options to skip device nodes and special files (such as sockets + and FIFOs) during extraction. + * dwarfsextract now emits a warning when a pattern is provided + but no matching files are found. + * dwarfsck can now export metadata to stdout instead of to a file + by using --export-metadata=-. + * With mkdwarfs in --input-list mode, specifying --order=none now + preserves the exact order of entries given in the input file. + Previously, none was not treated as a meaningful ordering + guarantee in this mode. + * New --no-check option for mkdwarfs to skip the filesystem + integrity check before recompression. This can speed up + recompression workflows when the source image is assumed to be + valid. The individual checks are still performed during the + rewrite itself. + gh#mhx/dwarfs#322 + * When recompressing a filesystem image, blocks that are + uncompressed in the source image are no longer unnecessarily + copied into memory. Instead, the mapped memory region is passed + directly to the compressor, saving some memory and CPU time in + this case. + * While profiling mkdwarfs, reading memory usage from + /proc/self/smaps_rollup turned out to be a significant hotspot. + DwarFS now reads /proc/self/status by default instead, trading + some accuracy for much lower overhead. It is still possible to + use /proc/self/smaps_rollup by setting + DWARFS_ACCURATE_MEMORY_USAGE=1. This can be combined with + DWARFS_LOG_MEMORY_USAGE to periodically log memory usage during + a mkdwarfs run. If /proc/self/smaps_rollup is inaccessible, + DwarFS automatically falls back to /proc/self/status. + * Memory usage during mkdwarfs rewrite operations is now properly + constrained by the -L / --memory-limit option, taking into + account both queued blocks and memory used by the compression + algorithm itself. + gh#mhx/dwarfs#322 + * The similarity ordering option now uses a different hash mixing + function. The main goal is to improve distribution, since only + a small number of hash bits are actually used. This may or may + not improve compression ratios, but it will affect the + resulting image size. +Build: + * The project now requires C++23 compiler support instead of + C++20. Care has been taken to restrict usage to widely + available and long-supported C++23 features. + * Cleaned up many compiler warnings across different platforms. +Docs: + * Added documentation for the fits, hotness, and binary + categorizers to the mkdwarfs manual page. +Test: + * Test coverage has been significantly improved from 96.4% to + 97.1%, with more than 10,000 lines of new test code. + +------------------------------------------------------------------- +Sat Mar 21 12:11:32 UTC 2026 - ecsos <[email protected]> + +- Fix build error for Leap. + +------------------------------------------------------------------- Old: ---- dwarfs-0.14.1.tar.xz New: ---- dwarfs-0.15.1.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ dwarfs.spec ++++++ --- /var/tmp/diff_new_pack.GgNM5U/_old 2026-03-24 18:49:54.537030860 +0100 +++ /var/tmp/diff_new_pack.GgNM5U/_new 2026-03-24 18:49:54.537030860 +0100 @@ -19,14 +19,13 @@ %define sover %(echo %{version} | sed 's/\\./_/g;') %define __builder ninja Name: dwarfs -Version: 0.14.1 +Version: 0.15.1 Release: 0 Summary: Deduplicating compressed read-only file system License: GPL-3.0-or-later AND MIT URL: https://github.com/mhx/dwarfs Source0: https://github.com/mhx/dwarfs/releases/download/v%{version}/dwarfs-%{version}.tar.xz BuildRequires: bison -BuildRequires: c++_compiler BuildRequires: cmake BuildRequires: flex BuildRequires: libboost_chrono-devel @@ -37,6 +36,7 @@ BuildRequires: libboost_program_options-devel BuildRequires: libboost_regex-devel BuildRequires: libboost_thread-devel +BuildRequires: memory-constraints BuildRequires: ninja BuildRequires: parallel-hashmap-devel BuildRequires: pkgconfig @@ -53,8 +53,6 @@ BuildRequires: pkgconfig(libbrotlicommon) BuildRequires: pkgconfig(libdwarf) BuildRequires: pkgconfig(libelf) -BuildRequires: pkgconfig(libevent) -BuildRequires: pkgconfig(libglog) BuildRequires: pkgconfig(liblz4) BuildRequires: pkgconfig(liblzma) BuildRequires: pkgconfig(libmagic) @@ -63,6 +61,13 @@ BuildRequires: pkgconfig(libxxhash) BuildRequires: pkgconfig(libzstd) BuildRequires: pkgconfig(nlohmann_json) +%if 0%{?suse_version} <= 1600 +BuildRequires: gcc15 +BuildRequires: gcc15-c++ +%else +BuildRequires: gcc +BuildRequires: gcc-c++ +%endif # SECTION test requirements BuildRequires: pkgconfig(gmock) BuildRequires: pkgconfig(gtest) @@ -126,6 +131,11 @@ %autosetup -p1 %build +%limit_build -m 1500M +%if 0%{?suse_version} <= 1600 +export CC=gcc-15 +export CXX=g++-15 +%endif %cmake \ -DCMAKE_EXE_LINKER_FLAGS="-lboost_filesystem -lboost_process" \ -DWITH_TESTS=ON -DPREFER_SYSTEM_GTEST=ON ++++++ dwarfs-0.14.1.tar.xz -> dwarfs-0.15.1.tar.xz ++++++ /work/SRC/openSUSE:Factory/dwarfs/dwarfs-0.14.1.tar.xz /work/SRC/openSUSE:Factory/.dwarfs.new.8177/dwarfs-0.15.1.tar.xz differ: char 15, line 1
