Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package libstorage-ng for openSUSE:Factory 
checked in at 2026-07-06 12:27:55
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libstorage-ng (Old)
 and      /work/SRC/openSUSE:Factory/.libstorage-ng.new.1982 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libstorage-ng"

Mon Jul  6 12:27:55 2026 rev:347 rq:1363631 version:4.5.339

Changes:
--------
--- /work/SRC/openSUSE:Factory/libstorage-ng/libstorage-ng.changes      
2026-06-30 15:11:34.092252796 +0200
+++ /work/SRC/openSUSE:Factory/.libstorage-ng.new.1982/libstorage-ng.changes    
2026-07-06 12:28:36.783646620 +0200
@@ -1,0 +2,23 @@
+Fri Jul 3 06:57:38 UTC 2026 - [email protected]
+
+- merge gh#openSUSE/libstorage-ng#1087
+- improved logging
+- 4.5.339
+
+--------------------------------------------------------------------
+Thu Jul 2 06:41:14 UTC 2026 - [email protected]
+
+- merge gh#openSUSE/libstorage-ng#1086
+- updated tests
+- 4.5.338
+
+--------------------------------------------------------------------
+Wed Jul 1 15:14:23 UTC 2026 - [email protected]
+
+- merge gh#openSUSE/libstorage-ng#1085
+- provide functions for mkfs and tune options using vector of
+  strings
+- use string_view to reduce number of functions
+- 4.5.337
+
+--------------------------------------------------------------------

Old:
----
  libstorage-ng-4.5.336.tar.xz

New:
----
  libstorage-ng-4.5.339.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ libstorage-ng.spec ++++++
--- /var/tmp/diff_new_pack.dELg5r/_old  2026-07-06 12:28:37.615675486 +0200
+++ /var/tmp/diff_new_pack.dELg5r/_new  2026-07-06 12:28:37.619675625 +0200
@@ -18,7 +18,7 @@
 
 %define libname %{name}1
 Name:           libstorage-ng
-Version:        4.5.336
+Version:        4.5.339
 Release:        0
 Summary:        Library for storage management
 License:        GPL-2.0-only

++++++ libstorage-ng-4.5.336.tar.xz -> libstorage-ng-4.5.339.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstorage-ng-4.5.336/LIBVERSION 
new/libstorage-ng-4.5.339/LIBVERSION
--- old/libstorage-ng-4.5.336/LIBVERSION        2026-06-29 15:15:06.000000000 
+0200
+++ new/libstorage-ng-4.5.339/LIBVERSION        2026-07-03 08:57:38.000000000 
+0200
@@ -1 +1 @@
-1.104.2
+1.105.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstorage-ng-4.5.336/VERSION 
new/libstorage-ng-4.5.339/VERSION
--- old/libstorage-ng-4.5.336/VERSION   2026-06-29 15:15:06.000000000 +0200
+++ new/libstorage-ng-4.5.339/VERSION   2026-07-03 08:57:38.000000000 +0200
@@ -1 +1 @@
-4.5.336
+4.5.339
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libstorage-ng-4.5.336/integration-tests/filesystems/create-ext4.py 
new/libstorage-ng-4.5.339/integration-tests/filesystems/create-ext4.py
--- old/libstorage-ng-4.5.336/integration-tests/filesystems/create-ext4.py      
2026-06-29 15:15:06.000000000 +0200
+++ new/libstorage-ng-4.5.339/integration-tests/filesystems/create-ext4.py      
2026-07-03 08:57:38.000000000 +0200
@@ -23,7 +23,7 @@
 
 ext4 = partition.create_blk_filesystem(FsType_EXT4)
 ext4.set_label("TEST")
-ext4.set_tune_options("-c 10")
+ext4.set_tune_options_v2(VectorString([ "-c", "10" ]))
 
 mount_point = ext4.create_mount_point("/test")
 mount_point.set_mount_by(MountByType_LABEL)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libstorage-ng-4.5.336/integration-tests/filesystems/create-reiserfs.py 
new/libstorage-ng-4.5.339/integration-tests/filesystems/create-reiserfs.py
--- old/libstorage-ng-4.5.336/integration-tests/filesystems/create-reiserfs.py  
2026-06-29 15:15:06.000000000 +0200
+++ new/libstorage-ng-4.5.339/integration-tests/filesystems/create-reiserfs.py  
2026-07-03 08:57:38.000000000 +0200
@@ -23,7 +23,7 @@
 
 reiserfs = partition.create_blk_filesystem(FsType_REISERFS)
 reiserfs.set_label("TEST")
-reiserfs.set_tune_options("-m 10")
+reiserfs.set_tune_options_v2(VectorString([ "-m", "10" ]))
 
 mount_point = reiserfs.create_mount_point("/test")
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libstorage-ng-4.5.336/integration-tests/filesystems/tune-ext4.py 
new/libstorage-ng-4.5.339/integration-tests/filesystems/tune-ext4.py
--- old/libstorage-ng-4.5.336/integration-tests/filesystems/tune-ext4.py        
2026-06-29 15:15:06.000000000 +0200
+++ new/libstorage-ng-4.5.339/integration-tests/filesystems/tune-ext4.py        
2026-07-03 08:57:38.000000000 +0200
@@ -22,7 +22,7 @@
 
 ext4 = sdc1.get_blk_filesystem()
 
-ext4.set_tune_options("-c 20")
+ext4.set_tune_options_v2(VectorString([ "-c", "20" ]))
 
 print(staging)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libstorage-ng-4.5.336/integration-tests/filesystems/tune-reiserfs.py 
new/libstorage-ng-4.5.339/integration-tests/filesystems/tune-reiserfs.py
--- old/libstorage-ng-4.5.336/integration-tests/filesystems/tune-reiserfs.py    
2026-06-29 15:15:06.000000000 +0200
+++ new/libstorage-ng-4.5.339/integration-tests/filesystems/tune-reiserfs.py    
2026-07-03 08:57:38.000000000 +0200
@@ -22,7 +22,7 @@
 
 reiserfs = sdc1.get_blk_filesystem()
 
-reiserfs.set_tune_options("-m 20")
+reiserfs.set_tune_options_v2(VectorString([ "-m", "20" ]))
 
 print(staging)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libstorage-ng-4.5.336/storage/Filesystems/BcachefsImpl.cc 
new/libstorage-ng-4.5.339/storage/Filesystems/BcachefsImpl.cc
--- old/libstorage-ng-4.5.336/storage/Filesystems/BcachefsImpl.cc       
2026-06-29 15:15:06.000000000 +0200
+++ new/libstorage-ng-4.5.339/storage/Filesystems/BcachefsImpl.cc       
2026-07-03 08:57:38.000000000 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2024 SUSE LLC
+ * Copyright (c) [2024-2026] SUSE LLC
  *
  * All Rights Reserved.
  *
@@ -54,19 +54,38 @@
     {
        const BlkDevice* blk_device = get_blk_device();
 
-       string cmd_line = MKFS_BCACHEFS_BIN;
+       if (get_mkfs_options().empty())
+       {
+           SystemCmd::Args cmd_args = { MKFS_BCACHEFS_BIN };
+
+           if (!get_label().empty())
+               cmd_args << "--fs_label=" + get_label();
+
+           if (!get_uuid().empty())
+               cmd_args << "--uuid=" + get_uuid();
+
+           cmd_args << get_mkfs_options_v2() << blk_device->get_name();
+
+           wait_for_devices();
+
+           SystemCmd cmd(cmd_args, SystemCmd::DoThrow);
+       }
+       else
+       {
+           string cmd_line = MKFS_BCACHEFS_BIN;
 
-       if (!get_label().empty())
-           cmd_line += " --fs_label=" + quote(get_label());
+           if (!get_label().empty())
+               cmd_line += " --fs_label=" + quote(get_label());
 
-       if (!get_uuid().empty())
-           cmd_line += " --uuid=" + quote(get_uuid());
+           if (!get_uuid().empty())
+               cmd_line += " --uuid=" + quote(get_uuid());
 
-       cmd_line += " " + get_mkfs_options() + " " + 
quote(blk_device->get_name());
+           cmd_line += " " + get_mkfs_options() + " " + 
quote(blk_device->get_name());
 
-       wait_for_devices();
+           wait_for_devices();
 
-       SystemCmd cmd(cmd_line, SystemCmd::DoThrow);
+           SystemCmd cmd(cmd_line, SystemCmd::DoThrow);
+       }
 
        if (get_uuid().empty())
        {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libstorage-ng-4.5.336/storage/Filesystems/BlkFilesystem.cc 
new/libstorage-ng-4.5.339/storage/Filesystems/BlkFilesystem.cc
--- old/libstorage-ng-4.5.336/storage/Filesystems/BlkFilesystem.cc      
2026-06-29 15:15:06.000000000 +0200
+++ new/libstorage-ng-4.5.339/storage/Filesystems/BlkFilesystem.cc      
2026-07-03 08:57:38.000000000 +0200
@@ -1,6 +1,6 @@
 /*
  * Copyright (c) [2014-2015] Novell, Inc.
- * Copyright (c) [2016-2021] SUSE LLC
+ * Copyright (c) [2016-2026] SUSE LLC
  *
  * All Rights Reserved.
  *
@@ -136,6 +136,20 @@
     }
 
 
+    const vector<string>&
+    BlkFilesystem::get_mkfs_options_v2() const
+    {
+       return get_impl().get_mkfs_options_v2();
+    }
+
+
+    void
+    BlkFilesystem::set_mkfs_options_v2(const vector<string>& mkfs_options_v2)
+    {
+       get_impl().set_mkfs_options_v2(mkfs_options_v2);
+    }
+
+
     bool
     BlkFilesystem::supports_tune_options() const
     {
@@ -157,6 +171,20 @@
     }
 
 
+    const vector<string>&
+    BlkFilesystem::get_tune_options_v2() const
+    {
+       return get_impl().get_tune_options_v2();
+    }
+
+
+    void
+    BlkFilesystem::set_tune_options_v2(const vector<string>& tune_options_v2)
+    {
+       get_impl().set_tune_options_v2(tune_options_v2);
+    }
+
+
     bool
     BlkFilesystem::supports_shrink() const
     {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libstorage-ng-4.5.336/storage/Filesystems/BlkFilesystem.h 
new/libstorage-ng-4.5.339/storage/Filesystems/BlkFilesystem.h
--- old/libstorage-ng-4.5.336/storage/Filesystems/BlkFilesystem.h       
2026-06-29 15:15:06.000000000 +0200
+++ new/libstorage-ng-4.5.339/storage/Filesystems/BlkFilesystem.h       
2026-07-03 08:57:38.000000000 +0200
@@ -1,6 +1,6 @@
 /*
  * Copyright (c) [2014-2015] Novell, Inc.
- * Copyright (c) [2016-2022] SUSE LLC
+ * Copyright (c) [2016-2026] SUSE LLC
  *
  * All Rights Reserved.
  *
@@ -91,36 +91,44 @@
         */
        void set_uuid(const std::string& uuid);
 
+       const std::string& get_mkfs_options() const ST_DEPRECATED;
+       void set_mkfs_options(const std::string& mkfs_options) ST_DEPRECATED;
+
        /**
         * Get extra options for the filesystem mkfs command.
         */
-       const std::string& get_mkfs_options() const;
+       const std::vector<std::string>& get_mkfs_options_v2() const;
 
        /**
-        * Set extra options for the filesystem mkfs command. The
-        * options are injected as-is to the command so must be
-        * properly quoted.
+        * Set extra options for the filesystem mkfs command. No quoting 
required. It is
+        * undefined where exactly the extra options are inserted into the 
command line
+        * options of the external program.
         */
-       void set_mkfs_options(const std::string& mkfs_options);
+       void set_mkfs_options_v2(const std::vector<std::string>& 
mkfs_options_v2);
 
        /**
         * Checks whether the filesystem supports tune options.
         */
        bool supports_tune_options() const;
 
+       const std::string& get_tune_options() const ST_DEPRECATED;
+       void set_tune_options(const std::string& tune_options) ST_DEPRECATED;
+
        /**
         * Get extra options for the filesystem tune command.
         */
-       const std::string& get_tune_options() const;
+       const std::vector<std::string>& get_tune_options_v2() const;
 
        /**
-        * Set extra options for the filesystem tune command. The
-        * options are injected as-is to the command so must be
-        * properly quoted. May not work if the filesystem is mounted.
+        * Set extra options for the filesystem tune command. No quoting 
required. It is
+        * undefined where exactly the extra options are inserted into the 
command line
+        * options of the external program.
+        *
+        * May not work if the filesystem is mounted.
         *
         * Only supported on Ext, Reiserfs and Nilfs2.
         */
-       void set_tune_options(const std::string& tune_options);
+       void set_tune_options_v2(const std::vector<std::string>& tune_options);
 
        /**
         * Checks whether shrinking the filesystem is supported.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libstorage-ng-4.5.336/storage/Filesystems/BlkFilesystemImpl.cc 
new/libstorage-ng-4.5.339/storage/Filesystems/BlkFilesystemImpl.cc
--- old/libstorage-ng-4.5.336/storage/Filesystems/BlkFilesystemImpl.cc  
2026-06-29 15:15:06.000000000 +0200
+++ new/libstorage-ng-4.5.339/storage/Filesystems/BlkFilesystemImpl.cc  
2026-07-03 08:57:38.000000000 +0200
@@ -69,7 +69,9 @@
        getChildValue(node, "uuid", uuid);
 
        getChildValue(node, "mkfs-options", mkfs_options);
+       getChildValue(node, "mkfs-options-v2", mkfs_options_v2);
        getChildValue(node, "tune-options", tune_options);
+       getChildValue(node, "tune-options-v2", tune_options_v2);
 
        const xmlNode* resize_info_node = getChildNode(node, "ResizeInfo");
        if (resize_info_node)
@@ -156,7 +158,9 @@
        setChildValueIf(node, "uuid", uuid, !uuid.empty());
 
        setChildValueIf(node, "mkfs-options", mkfs_options, 
!mkfs_options.empty());
+       setChildValueIf(node, "mkfs-options-v2", mkfs_options_v2, 
!mkfs_options_v2.empty());
        setChildValueIf(node, "tune-options", tune_options, 
!tune_options.empty());
+       setChildValueIf(node, "tune-options-v2", tune_options_v2, 
!tune_options_v2.empty());
 
        if (resize_info.has_value())
        {
@@ -532,7 +536,7 @@
        if (!get_uuid().empty() && supports_modify_uuid())
            actions.push_back(make_shared<Action::SetUuid>(get_sid()));
 
-       if (!tune_options.empty())
+       if (!tune_options.empty() || !tune_options_v2.empty())
            actions.push_back(make_shared<Action::SetTuneOptions>(get_sid()));
 
        actiongraph.add_chain(actions);
@@ -563,7 +567,7 @@
            actions.push_back(make_shared<Action::SetUuid>(get_sid()));
        }
 
-       if (get_tune_options() != lhs.get_tune_options())
+       if (get_tune_options() != lhs.get_tune_options() || 
get_tune_options_v2() != lhs.get_tune_options_v2())
        {
            actions.push_back(make_shared<Action::SetTuneOptions>(get_sid()));
        }
@@ -620,7 +624,8 @@
            return false;
 
        return label == rhs.label && uuid == rhs.uuid && mkfs_options == 
rhs.mkfs_options &&
-           tune_options == rhs.tune_options;
+           mkfs_options_v2 == rhs.mkfs_options_v2 && tune_options == 
rhs.tune_options &&
+           tune_options_v2 == rhs.tune_options_v2;
     }
 
 
@@ -635,7 +640,9 @@
        storage::log_diff(log, "uuid", uuid, rhs.uuid);
 
        storage::log_diff(log, "mkfs-options", mkfs_options, rhs.mkfs_options);
+       storage::log_diff(log, "mkfs-options-v2", mkfs_options_v2, 
rhs.mkfs_options_v2);
        storage::log_diff(log, "tune-options", tune_options, rhs.tune_options);
+       storage::log_diff(log, "tune-options-v2", tune_options_v2, 
rhs.tune_options_v2);
     }
 
 
@@ -653,8 +660,14 @@
        if (!mkfs_options.empty())
            out << " mkfs-options:" << mkfs_options;
 
+       if (!mkfs_options_v2.empty())
+           out << " mkfs-options-v2:" << mkfs_options_v2;
+
        if (!tune_options.empty())
            out << " tune-options:" << tune_options;
+
+       if (!tune_options_v2.empty())
+           out << " tune-options-v2:" << tune_options_v2;
     }
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libstorage-ng-4.5.336/storage/Filesystems/BlkFilesystemImpl.h 
new/libstorage-ng-4.5.339/storage/Filesystems/BlkFilesystemImpl.h
--- old/libstorage-ng-4.5.336/storage/Filesystems/BlkFilesystemImpl.h   
2026-06-29 15:15:06.000000000 +0200
+++ new/libstorage-ng-4.5.339/storage/Filesystems/BlkFilesystemImpl.h   
2026-07-03 08:57:38.000000000 +0200
@@ -1,6 +1,6 @@
 /*
  * Copyright (c) [2014-2015] Novell, Inc.
- * Copyright (c) [2016-2022] SUSE LLC
+ * Copyright (c) [2016-2026] SUSE LLC
  *
  * All Rights Reserved.
  *
@@ -83,11 +83,17 @@
        const string& get_mkfs_options() const { return mkfs_options; }
        void set_mkfs_options(const string& mkfs_options) { Impl::mkfs_options 
= mkfs_options; }
 
+       const vector<string>& get_mkfs_options_v2() const { return 
mkfs_options_v2; }
+       void set_mkfs_options_v2(const vector<string>& mkfs_options_v2) { 
Impl::mkfs_options_v2 = mkfs_options_v2; }
+
        virtual bool supports_tune_options() const { return false; }
 
        const string& get_tune_options() const { return tune_options; }
        void set_tune_options(const string& tune_options) { Impl::tune_options 
= tune_options; }
 
+       const vector<string>& get_tune_options_v2() const { return 
tune_options_v2; }
+       void set_tune_options_v2(const vector<string>& tune_options_v2) { 
Impl::tune_options_v2 = tune_options_v2; }
+
        virtual MountByType get_default_mount_by() const override;
 
        virtual vector<MountByType> possible_mount_bys() const override;
@@ -193,7 +199,9 @@
        string uuid;
 
        string mkfs_options;
+       vector<string> mkfs_options_v2;
        string tune_options;
+       vector<string> tune_options_v2;
 
        /**
         * mutable to allow updating cache from const functions. Otherwise
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libstorage-ng-4.5.336/storage/Filesystems/BtrfsImpl.cc 
new/libstorage-ng-4.5.339/storage/Filesystems/BtrfsImpl.cc
--- old/libstorage-ng-4.5.336/storage/Filesystems/BtrfsImpl.cc  2026-06-29 
15:15:06.000000000 +0200
+++ new/libstorage-ng-4.5.339/storage/Filesystems/BtrfsImpl.cc  2026-07-03 
08:57:38.000000000 +0200
@@ -1,6 +1,6 @@
 /*
  * Copyright (c) 2015 Novell, Inc.
- * Copyright (c) [2016-2021] SUSE LLC
+ * Copyright (c) [2016-2026] SUSE LLC
  *
  * All Rights Reserved.
  *
@@ -986,33 +986,66 @@
     void
     Btrfs::Impl::do_create()
     {
-       string cmd_line = MKFS_BTRFS_BIN " --force";
+       if (get_mkfs_options().empty())
+       {
+           SystemCmd::Args cmd_args = { MKFS_BTRFS_BIN, "--force" };
 
-       if (metadata_raid_level != BtrfsRaidLevel::DEFAULT)
-           cmd_line += " --metadata=" + toString(metadata_raid_level);
+           if (metadata_raid_level != BtrfsRaidLevel::DEFAULT)
+               cmd_args << "--metadata" << toString(metadata_raid_level);
 
-       if (data_raid_level != BtrfsRaidLevel::DEFAULT)
-           cmd_line += " --data=" + toString(data_raid_level);
+           if (data_raid_level != BtrfsRaidLevel::DEFAULT)
+               cmd_args << "--data" << toString(data_raid_level);
 
-       if (!get_uuid().empty())
-           cmd_line += " --uuid=" + quote(get_uuid());
+           if (!get_uuid().empty())
+               cmd_args << "--uuid" << get_uuid();
 
-       if (!get_mkfs_options().empty())
-           cmd_line += " " + get_mkfs_options();
+           cmd_args << get_mkfs_options_v2();
 
-       // sort is required for testsuite
-       vector<const BlkDevice*> blk_devices = 
std::as_const(*this).get_blk_devices();
-       sort(blk_devices.begin(), blk_devices.end(), 
BlkDevice::compare_by_name);
-       for (const BlkDevice* blk_device : blk_devices)
-           cmd_line += " " + quote(blk_device->get_name());
+           // sort is required for testsuite
+           vector<const BlkDevice*> blk_devices = 
std::as_const(*this).get_blk_devices();
+           sort(blk_devices.begin(), blk_devices.end(), 
BlkDevice::compare_by_name);
+           for (const BlkDevice* blk_device : blk_devices)
+               cmd_args << blk_device->get_name();
 
-       wait_for_devices();
+           wait_for_devices();
 
-       SystemCmd cmd(cmd_line, SystemCmd::DoThrow);
+           SystemCmd cmd(cmd_args, SystemCmd::DoThrow);
 
-       if (get_uuid().empty())
+           if (get_uuid().empty())
+           {
+               parse_mkfs_output(cmd.stdout());
+           }
+       }
+       else
        {
-           parse_mkfs_output(cmd.stdout());
+           string cmd_line = MKFS_BTRFS_BIN " --force";
+
+           if (metadata_raid_level != BtrfsRaidLevel::DEFAULT)
+               cmd_line += " --metadata=" + toString(metadata_raid_level);
+
+           if (data_raid_level != BtrfsRaidLevel::DEFAULT)
+               cmd_line += " --data=" + toString(data_raid_level);
+
+           if (!get_uuid().empty())
+               cmd_line += " --uuid=" + quote(get_uuid());
+
+           if (!get_mkfs_options().empty())
+               cmd_line += " " + get_mkfs_options();
+
+           // sort is required for testsuite
+           vector<const BlkDevice*> blk_devices = 
std::as_const(*this).get_blk_devices();
+           sort(blk_devices.begin(), blk_devices.end(), 
BlkDevice::compare_by_name);
+           for (const BlkDevice* blk_device : blk_devices)
+               cmd_line += " " + quote(blk_device->get_name());
+
+           wait_for_devices();
+
+           SystemCmd cmd(cmd_line, SystemCmd::DoThrow);
+
+           if (get_uuid().empty())
+           {
+               parse_mkfs_output(cmd.stdout());
+           }
        }
 
         // This would fit better in do_mount(), but that one is a const method
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libstorage-ng-4.5.336/storage/Filesystems/ExfatImpl.cc 
new/libstorage-ng-4.5.339/storage/Filesystems/ExfatImpl.cc
--- old/libstorage-ng-4.5.336/storage/Filesystems/ExfatImpl.cc  2026-06-29 
15:15:06.000000000 +0200
+++ new/libstorage-ng-4.5.339/storage/Filesystems/ExfatImpl.cc  2026-07-03 
08:57:38.000000000 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) [2018-2023] SUSE LLC
+ * Copyright (c) [2018-2026] SUSE LLC
  *
  * All Rights Reserved.
  *
@@ -69,11 +69,23 @@
     {
        const BlkDevice* blk_device = get_blk_device();
 
-       string cmd_line = MKFS_EXFAT_BIN " " + get_mkfs_options() + " " + 
quote(blk_device->get_name());
+       if (get_mkfs_options().empty())
+       {
+           SystemCmd::Args cmd_args = { MKFS_EXFAT_BIN };
+           cmd_args << get_mkfs_options_v2() << blk_device->get_name();
+
+           wait_for_devices();
+
+           SystemCmd cmd(cmd_args, SystemCmd::DoThrow);
+       }
+       else
+       {
+           string cmd_line = MKFS_EXFAT_BIN " " + get_mkfs_options() + " " + 
quote(blk_device->get_name());
 
-       wait_for_devices();
+           wait_for_devices();
 
-       SystemCmd cmd(cmd_line, SystemCmd::DoThrow);
+           SystemCmd cmd(cmd_line, SystemCmd::DoThrow);
+       }
 
        probe_uuid();
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstorage-ng-4.5.336/storage/Filesystems/ExtImpl.cc 
new/libstorage-ng-4.5.339/storage/Filesystems/ExtImpl.cc
--- old/libstorage-ng-4.5.336/storage/Filesystems/ExtImpl.cc    2026-06-29 
15:15:06.000000000 +0200
+++ new/libstorage-ng-4.5.339/storage/Filesystems/ExtImpl.cc    2026-07-03 
08:57:38.000000000 +0200
@@ -1,6 +1,6 @@
 /*
  * Copyright (c) [2014-2015] Novell, Inc.
- * Copyright (c) [2016-2023] SUSE LLC
+ * Copyright (c) [2016-2026] SUSE LLC
  *
  * All Rights Reserved.
  *
@@ -152,12 +152,24 @@
     {
        const BlkDevice* blk_device = get_blk_device();
 
-       string cmd_line = MKFS_EXT2_BIN " -v -t " + toString(get_type()) + " -F 
" +
-           get_mkfs_options() + " " + quote(blk_device->get_name());
+       if (get_mkfs_options().empty())
+       {
+           SystemCmd::Args cmd_args = { MKFS_EXT2_BIN, "-v", "-F" };
+           cmd_args << "-t" << toString(get_type()) << get_mkfs_options_v2() 
<< blk_device->get_name();
 
-       wait_for_devices();
+           wait_for_devices();
+
+           SystemCmd cmd(cmd_args, SystemCmd::DoThrow);
+       }
+       else
+       {
+           string cmd_line = MKFS_EXT2_BIN " -v -t " + toString(get_type()) + 
" -F " +
+               get_mkfs_options() + " " + quote(blk_device->get_name());
+
+           wait_for_devices();
 
-       SystemCmd cmd(cmd_line, SystemCmd::DoThrow);
+           SystemCmd cmd(cmd_line, SystemCmd::DoThrow);
+       }
 
        if (get_uuid().empty())
        {
@@ -195,9 +207,19 @@
     {
        const BlkDevice* blk_device = get_blk_device();
 
-       string cmd_line = TUNE2FS_BIN " " + get_tune_options() + " " + 
quote(blk_device->get_name());
+       if (get_tune_options().empty())
+       {
+           SystemCmd::Args cmd_args = { TUNE2FS_BIN };
+           cmd_args << get_tune_options_v2() << blk_device->get_name();
 
-       SystemCmd cmd(cmd_line, SystemCmd::DoThrow);
+           SystemCmd cmd(cmd_args, SystemCmd::DoThrow);
+       }
+       else
+       {
+           string cmd_line = TUNE2FS_BIN " " + get_tune_options() + " " + 
quote(blk_device->get_name());
+
+           SystemCmd cmd(cmd_line, SystemCmd::DoThrow);
+       }
     }
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libstorage-ng-4.5.336/storage/Filesystems/F2fsImpl.cc 
new/libstorage-ng-4.5.339/storage/Filesystems/F2fsImpl.cc
--- old/libstorage-ng-4.5.336/storage/Filesystems/F2fsImpl.cc   2026-06-29 
15:15:06.000000000 +0200
+++ new/libstorage-ng-4.5.339/storage/Filesystems/F2fsImpl.cc   2026-07-03 
08:57:38.000000000 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018 SUSE LLC
+ * Copyright (c) [2018-2026] SUSE LLC
  *
  * All Rights Reserved.
  *
@@ -56,16 +56,30 @@
     {
        const BlkDevice* blk_device = get_blk_device();
 
-       string cmd_line = MKFS_F2FS_BIN " " + get_mkfs_options();
+       if (get_mkfs_options().empty())
+       {
+           SystemCmd::Args cmd_args = { MKFS_F2FS_BIN };
+           if (!get_label().empty())
+               cmd_args << "-l" << get_label();
+           cmd_args << get_mkfs_options_v2() << blk_device->get_name();
+
+           wait_for_devices();
+
+           SystemCmd cmd(cmd_args, SystemCmd::DoThrow);
+       }
+       else
+       {
+           string cmd_line = MKFS_F2FS_BIN " " + get_mkfs_options();
+
+           if (!get_label().empty())
+               cmd_line += " -l " + quote(get_label());
 
-       if (!get_label().empty())
-           cmd_line += " -l " + quote(get_label());
+           cmd_line += " " + quote(blk_device->get_name());
 
-       cmd_line += " " + quote(blk_device->get_name());
+           wait_for_devices();
 
-       wait_for_devices();
-
-       SystemCmd cmd(cmd_line, SystemCmd::DoThrow);
+           SystemCmd cmd(cmd_line, SystemCmd::DoThrow);
+       }
 
        probe_uuid();
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstorage-ng-4.5.336/storage/Filesystems/JfsImpl.cc 
new/libstorage-ng-4.5.339/storage/Filesystems/JfsImpl.cc
--- old/libstorage-ng-4.5.336/storage/Filesystems/JfsImpl.cc    2026-06-29 
15:15:06.000000000 +0200
+++ new/libstorage-ng-4.5.339/storage/Filesystems/JfsImpl.cc    2026-07-03 
08:57:38.000000000 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) [2018-2023] SUSE LLC
+ * Copyright (c) [2018-2026] SUSE LLC
  *
  * All Rights Reserved.
  *
@@ -56,12 +56,24 @@
     {
        const BlkDevice* blk_device = get_blk_device();
 
-       string cmd_line = MKFS_JFS_BIN " -q " + get_mkfs_options() + " " +
-           quote(blk_device->get_name());
+       if (get_mkfs_options().empty())
+       {
+           SystemCmd::Args cmd_args = { MKFS_JFS_BIN, "-q" };
+           cmd_args << get_mkfs_options_v2() << blk_device->get_name();
+
+           wait_for_devices();
+
+           SystemCmd cmd(cmd_args, SystemCmd::DoThrow);
+       }
+       else
+       {
+           string cmd_line = MKFS_JFS_BIN " -q " + get_mkfs_options() + " " +
+               quote(blk_device->get_name());
 
-       wait_for_devices();
+           wait_for_devices();
 
-       SystemCmd cmd(cmd_line, SystemCmd::DoThrow);
+           SystemCmd cmd(cmd_line, SystemCmd::DoThrow);
+       }
 
        if (get_uuid().empty())
        {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libstorage-ng-4.5.336/storage/Filesystems/Nilfs2Impl.cc 
new/libstorage-ng-4.5.339/storage/Filesystems/Nilfs2Impl.cc
--- old/libstorage-ng-4.5.336/storage/Filesystems/Nilfs2Impl.cc 2026-06-29 
15:15:06.000000000 +0200
+++ new/libstorage-ng-4.5.339/storage/Filesystems/Nilfs2Impl.cc 2026-07-03 
08:57:38.000000000 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) [2022-2023] SUSE LLC
+ * Copyright (c) [2022-2026] SUSE LLC
  *
  * All Rights Reserved.
  *
@@ -56,11 +56,23 @@
     {
        const BlkDevice* blk_device = get_blk_device();
 
-       string cmd_line = MKFS_NILFS2_BIN " -v -f " + get_mkfs_options() + " " 
+ quote(blk_device->get_name());
+       if (get_mkfs_options().empty())
+       {
+           SystemCmd::Args cmd_args = { MKFS_NILFS2_BIN, "-v", "-f" };
+           cmd_args << get_mkfs_options_v2() << blk_device->get_name();
+
+           wait_for_devices();
+
+           SystemCmd cmd(cmd_args, SystemCmd::DoThrow);
+       }
+       else
+       {
+           string cmd_line = MKFS_NILFS2_BIN " -v -f " + get_mkfs_options() + 
" " + quote(blk_device->get_name());
 
-       wait_for_devices();
+           wait_for_devices();
 
-       SystemCmd cmd(cmd_line, SystemCmd::DoThrow);
+           SystemCmd cmd(cmd_line, SystemCmd::DoThrow);
+       }
 
        if (get_uuid().empty())
        {
@@ -96,9 +108,19 @@
     {
        const BlkDevice* blk_device = get_blk_device();
 
-       string cmd_line = NILFS_TUNE_BIN " " + get_tune_options() + " " + 
quote(blk_device->get_name());
+       if (get_tune_options().empty())
+       {
+           SystemCmd::Args cmd_args = { NILFS_TUNE_BIN };
+           cmd_args << get_tune_options_v2() << blk_device->get_name();
 
-       SystemCmd cmd(cmd_line, SystemCmd::DoThrow);
+           SystemCmd cmd(cmd_args, SystemCmd::DoThrow);
+       }
+       else
+       {
+           string cmd_line = NILFS_TUNE_BIN " " + get_tune_options() + " " + 
quote(blk_device->get_name());
+
+           SystemCmd cmd(cmd_line, SystemCmd::DoThrow);
+       }
     }
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libstorage-ng-4.5.336/storage/Filesystems/NtfsImpl.cc 
new/libstorage-ng-4.5.339/storage/Filesystems/NtfsImpl.cc
--- old/libstorage-ng-4.5.336/storage/Filesystems/NtfsImpl.cc   2026-06-29 
15:15:06.000000000 +0200
+++ new/libstorage-ng-4.5.339/storage/Filesystems/NtfsImpl.cc   2026-07-03 
08:57:38.000000000 +0200
@@ -1,6 +1,6 @@
 /*
  * Copyright (c) 2015 Novell, Inc.
- * Copyright (c) [2016-2023] SUSE LLC
+ * Copyright (c) [2016-2026] SUSE LLC
  *
  * All Rights Reserved.
  *
@@ -110,12 +110,24 @@
     {
        const BlkDevice* blk_device = get_blk_device();
 
-       string cmd_line = MKFS_NTFS_BIN " --fast --with-uuid " + 
get_mkfs_options() + " " +
-           quote(blk_device->get_name());
+       if (get_mkfs_options().empty())
+       {
+           SystemCmd::Args cmd_args = { MKFS_NTFS_BIN, "--fast", "--with-uuid" 
};
+           cmd_args << get_mkfs_options_v2() << blk_device->get_name();
 
-       wait_for_devices();
+           wait_for_devices();
 
-       SystemCmd cmd(cmd_line, SystemCmd::DoThrow);
+           SystemCmd cmd(cmd_args, SystemCmd::DoThrow);
+       }
+       else
+       {
+           string cmd_line = MKFS_NTFS_BIN " --fast --with-uuid " + 
get_mkfs_options() + " " +
+               quote(blk_device->get_name());
+
+           wait_for_devices();
+
+           SystemCmd cmd(cmd_line, SystemCmd::DoThrow);
+       }
 
        probe_uuid();
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libstorage-ng-4.5.336/storage/Filesystems/ReiserfsImpl.cc 
new/libstorage-ng-4.5.339/storage/Filesystems/ReiserfsImpl.cc
--- old/libstorage-ng-4.5.336/storage/Filesystems/ReiserfsImpl.cc       
2026-06-29 15:15:06.000000000 +0200
+++ new/libstorage-ng-4.5.339/storage/Filesystems/ReiserfsImpl.cc       
2026-07-03 08:57:38.000000000 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) [2017-2023] SUSE LLC
+ * Copyright (c) [2017-2026] SUSE LLC
  *
  * All Rights Reserved.
  *
@@ -57,12 +57,24 @@
     {
        const BlkDevice* blk_device = get_blk_device();
 
-       string cmd_line = MKFS_REISERFS_BIN " -f -f " + get_mkfs_options() + " 
" +
-           quote(blk_device->get_name());
+       if (get_mkfs_options().empty())
+       {
+           SystemCmd::Args cmd_args = { MKFS_REISERFS_BIN, "-f", "-f" };
+           cmd_args << get_mkfs_options_v2() << blk_device->get_name();
+
+           wait_for_devices();
+
+           SystemCmd cmd(cmd_args, SystemCmd::DoThrow);
+       }
+       else
+       {
+           string cmd_line = MKFS_REISERFS_BIN " -f -f " + get_mkfs_options() 
+ " " +
+               quote(blk_device->get_name());
 
-       wait_for_devices();
+           wait_for_devices();
 
-       SystemCmd cmd(cmd_line, SystemCmd::DoThrow);
+           SystemCmd cmd(cmd_line, SystemCmd::DoThrow);
+       }
 
        if (get_uuid().empty())
        {
@@ -104,9 +116,19 @@
     {
        const BlkDevice* blk_device = get_blk_device();
 
-       string cmd_line = TUNEREISERFS_BIN " " + get_tune_options() + " " + 
quote(blk_device->get_name());
+       if (get_tune_options().empty())
+       {
+           SystemCmd::Args cmd_args = { TUNEREISERFS_BIN };
+           cmd_args << get_tune_options_v2() << blk_device->get_name();
 
-       SystemCmd cmd(cmd_line, SystemCmd::DoThrow);
+           SystemCmd cmd(cmd_args, SystemCmd::DoThrow);
+       }
+       else
+       {
+           string cmd_line = TUNEREISERFS_BIN " " + get_tune_options() + " " + 
quote(blk_device->get_name());
+
+           SystemCmd cmd(cmd_line, SystemCmd::DoThrow);
+       }
     }
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libstorage-ng-4.5.336/storage/Filesystems/SwapImpl.cc 
new/libstorage-ng-4.5.339/storage/Filesystems/SwapImpl.cc
--- old/libstorage-ng-4.5.336/storage/Filesystems/SwapImpl.cc   2026-06-29 
15:15:06.000000000 +0200
+++ new/libstorage-ng-4.5.339/storage/Filesystems/SwapImpl.cc   2026-07-03 
08:57:38.000000000 +0200
@@ -1,6 +1,6 @@
 /*
  * Copyright (c) [2014-2015] Novell, Inc.
- * Copyright (c) [2016-2023] SUSE LLC
+ * Copyright (c) [2016-2026] SUSE LLC
  *
  * All Rights Reserved.
  *
@@ -102,14 +102,26 @@
     {
        const BlkDevice* blk_device = get_blk_device();
 
-       string cmd_line = MKSWAP_BIN " -f " + quote(blk_device->get_name());
+       if (get_mkfs_options().empty())
+       {
+           SystemCmd::Args cmd_args = { MKSWAP_BIN, "--force" };
+           cmd_args << get_mkfs_options_v2() << blk_device->get_name();
+
+           wait_for_devices();
+
+           SystemCmd cmd(cmd_args, SystemCmd::DoThrow);
+       }
+       else
+       {
+           string cmd_line = MKSWAP_BIN " -f " + quote(blk_device->get_name());
 
-       if (!get_mkfs_options().empty())
-           cmd_line += " " + get_mkfs_options();
+           if (!get_mkfs_options().empty())
+               cmd_line += " " + get_mkfs_options();
 
-       wait_for_devices();
+           wait_for_devices();
 
-       SystemCmd cmd(cmd_line, SystemCmd::DoThrow);
+           SystemCmd cmd(cmd_line, SystemCmd::DoThrow);
+       }
 
        if (get_uuid().empty())
        {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstorage-ng-4.5.336/storage/Filesystems/UdfImpl.cc 
new/libstorage-ng-4.5.339/storage/Filesystems/UdfImpl.cc
--- old/libstorage-ng-4.5.336/storage/Filesystems/UdfImpl.cc    2026-06-29 
15:15:06.000000000 +0200
+++ new/libstorage-ng-4.5.339/storage/Filesystems/UdfImpl.cc    2026-07-03 
08:57:38.000000000 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) [2017-2021] SUSE LLC
+ * Copyright (c) [2017-2026] SUSE LLC
  *
  * All Rights Reserved.
  *
@@ -74,16 +74,30 @@
     {
        const BlkDevice* blk_device = get_blk_device();
 
-       string cmd_line = MKFS_UDF_BIN " " + get_mkfs_options() + " --label=" + 
quote(get_label());
+       if (get_mkfs_options().empty())
+       {
+           SystemCmd::Args cmd_args = { MKFS_UDF_BIN, "--label", get_label() };
+           if (!get_uuid().empty())
+               cmd_args << "--uuid" << get_uuid();
+           cmd_args << get_mkfs_options_v2() << blk_device->get_name();
+
+           wait_for_devices();
+
+           SystemCmd cmd(cmd_args, SystemCmd::DoThrow);
+       }
+       else
+       {
+           string cmd_line = MKFS_UDF_BIN " " + get_mkfs_options() + " 
--label=" + quote(get_label());
 
-       if (!get_uuid().empty())
-           cmd_line += " --uuid=" + quote(get_uuid());
+           if (!get_uuid().empty())
+               cmd_line += " --uuid=" + quote(get_uuid());
 
-       cmd_line += " " + quote(blk_device->get_name());
+           cmd_line += " " + quote(blk_device->get_name());
 
-       wait_for_devices();
+           wait_for_devices();
 
-       SystemCmd cmd(cmd_line, SystemCmd::DoThrow);
+           SystemCmd cmd(cmd_line, SystemCmd::DoThrow);
+       }
 
        if (get_uuid().empty())
        {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libstorage-ng-4.5.336/storage/Filesystems/VfatImpl.cc 
new/libstorage-ng-4.5.339/storage/Filesystems/VfatImpl.cc
--- old/libstorage-ng-4.5.336/storage/Filesystems/VfatImpl.cc   2026-06-29 
15:15:06.000000000 +0200
+++ new/libstorage-ng-4.5.339/storage/Filesystems/VfatImpl.cc   2026-07-03 
08:57:38.000000000 +0200
@@ -1,6 +1,6 @@
 /*
  * Copyright (c) 2015 Novell, Inc.
- * Copyright (c) [2016-2023] SUSE LLC
+ * Copyright (c) [2016-2026] SUSE LLC
  *
  * All Rights Reserved.
  *
@@ -73,11 +73,23 @@
     {
        const BlkDevice* blk_device = get_blk_device();
 
-       string cmd_line = MKFS_FAT_BIN " -v " + get_mkfs_options() + " " + 
quote(blk_device->get_name());
+       if (get_mkfs_options().empty())
+       {
+           SystemCmd::Args cmd_args = { MKFS_FAT_BIN, "-v" };
+           cmd_args << get_mkfs_options_v2() << blk_device->get_name();
 
-       wait_for_devices();
+           wait_for_devices();
 
-       SystemCmd cmd(cmd_line, SystemCmd::DoThrow);
+           SystemCmd cmd(cmd_args, SystemCmd::DoThrow);
+       }
+       else
+       {
+           string cmd_line = MKFS_FAT_BIN " -v " + get_mkfs_options() + " " + 
quote(blk_device->get_name());
+
+           wait_for_devices();
+
+           SystemCmd cmd(cmd_line, SystemCmd::DoThrow);
+       }
 
        // uuid is included in mkfs output
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstorage-ng-4.5.336/storage/Filesystems/XfsImpl.cc 
new/libstorage-ng-4.5.339/storage/Filesystems/XfsImpl.cc
--- old/libstorage-ng-4.5.336/storage/Filesystems/XfsImpl.cc    2026-06-29 
15:15:06.000000000 +0200
+++ new/libstorage-ng-4.5.339/storage/Filesystems/XfsImpl.cc    2026-07-03 
08:57:38.000000000 +0200
@@ -1,6 +1,6 @@
 /*
  * Copyright (c) 2015 Novell, Inc.
- * Copyright (c) [2016-2023] SUSE LLC
+ * Copyright (c) [2016-2026] SUSE LLC
  *
  * All Rights Reserved.
  *
@@ -98,12 +98,24 @@
     {
        const BlkDevice* blk_device = get_blk_device();
 
-       string cmd_line = MKFS_XFS_BIN " -q -f " + get_mkfs_options() + " " +
-           quote(blk_device->get_name());
+       if (get_mkfs_options().empty())
+       {
+           SystemCmd::Args cmd_args = { MKFS_XFS_BIN, "-q", "-f" };
+           cmd_args << get_mkfs_options_v2() << blk_device->get_name();
+
+           wait_for_devices();
+
+           SystemCmd cmd(cmd_args, SystemCmd::DoThrow);
+       }
+       else
+       {
+           string cmd_line = MKFS_XFS_BIN " -q -f " + get_mkfs_options() + " " 
+
+               quote(blk_device->get_name());
 
-       wait_for_devices();
+           wait_for_devices();
 
-       SystemCmd cmd(cmd_line, SystemCmd::DoThrow);
+           SystemCmd cmd(cmd_line, SystemCmd::DoThrow);
+       }
 
        if (get_uuid().empty())
        {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstorage-ng-4.5.336/storage/Utils/SystemCmd.cc 
new/libstorage-ng-4.5.339/storage/Utils/SystemCmd.cc
--- old/libstorage-ng-4.5.336/storage/Utils/SystemCmd.cc        2026-06-29 
15:15:06.000000000 +0200
+++ new/libstorage-ng-4.5.339/storage/Utils/SystemCmd.cc        2026-07-03 
08:57:38.000000000 +0200
@@ -192,7 +192,24 @@
     string
     SystemCmd::display_command() const
     {
-       return command().empty() ? boost::join(args(), " ") : command();
+       if (!command().empty())
+           return command();
+
+       string ret;
+
+       for (const string& s : args())
+       {
+           if (!ret.empty())
+               ret += ' ';
+
+           // For display only. No proper check needed.
+           if (s.empty() || s.find_first_of(" $&();<>|") != string::npos)
+               ret += quote(s);
+           else
+               ret += s;
+       }
+
+       return ret;
     }
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstorage-ng-4.5.336/storage/Utils/SystemCmd.h 
new/libstorage-ng-4.5.339/storage/Utils/SystemCmd.h
--- old/libstorage-ng-4.5.336/storage/Utils/SystemCmd.h 2026-06-29 
15:15:06.000000000 +0200
+++ new/libstorage-ng-4.5.339/storage/Utils/SystemCmd.h 2026-07-03 
08:57:38.000000000 +0200
@@ -26,6 +26,7 @@
 
 
 #include <string>
+#include <string_view>
 #include <vector>
 #include <functional>
 #include <initializer_list>
@@ -37,6 +38,7 @@
 namespace storage
 {
     using std::string;
+    using std::string_view;
     using std::vector;
 
 
@@ -60,8 +62,10 @@
            vector<string>& get_values() { return values; }
            const vector<string>& get_values() const { return values; }
 
-           Args& operator<<(const char* arg) { values.push_back(arg); return 
*this; }
-           Args& operator<<(const string& arg) { values.push_back(arg); return 
*this; }
+           Args& operator<<(string_view arg) { values.emplace_back(arg); 
return *this; }
+
+           Args& operator<<(const vector<string>& args)
+               { values.insert(values.end(), args.begin(), args.end()); return 
*this; }
 
        private:
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstorage-ng-4.5.336/storage/Utils/Text.h 
new/libstorage-ng-4.5.339/storage/Utils/Text.h
--- old/libstorage-ng-4.5.336/storage/Utils/Text.h      2026-06-29 
15:15:06.000000000 +0200
+++ new/libstorage-ng-4.5.339/storage/Utils/Text.h      2026-07-03 
08:57:38.000000000 +0200
@@ -1,6 +1,6 @@
 /*
  * Copyright (c) [2004-2015] Novell, Inc.
- * Copyright (c) [2016,2018] SUSE LLC
+ * Copyright (c) [2016-2026] SUSE LLC
  *
  * All Rights Reserved.
  *
@@ -26,6 +26,7 @@
 
 
 #include <string>
+#include <string_view>
 #include <vector>
 
 
@@ -36,16 +37,15 @@
 
 
     /**
-     * Simple class to keep a native and a translated string in
-     * parallel. Purpose is to be able to log user messages in English.
+     * Simple class to keep a native and a translated string in parallel. 
Purpose is to be
+     * able to log user messages in English even when another locale is 
selected.
      */
     class Text
     {
     public:
 
        Text() = default;
-       Text(const char* native, const char* translated) : native(native), 
translated(translated) {}
-       Text(const string& native, const string& translated) : native(native), 
translated(translated) {}
+       Text(string_view native, string_view translated) : native(native), 
translated(translated) {}
 
        bool empty() const { return native.empty(); }
 
@@ -67,8 +67,7 @@
     {
     public:
 
-       UntranslatedText(const char* native) : Text(native, native) {}
-       UntranslatedText(const string& native) : Text(native, native) {}
+       UntranslatedText(string_view native) : Text(native, native) {}
     };
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libstorage-ng-4.5.336/testsuite/dependencies/btrfs/create2-mockup.xml 
new/libstorage-ng-4.5.339/testsuite/dependencies/btrfs/create2-mockup.xml
--- old/libstorage-ng-4.5.336/testsuite/dependencies/btrfs/create2-mockup.xml   
2026-06-29 15:15:06.000000000 +0200
+++ new/libstorage-ng-4.5.339/testsuite/dependencies/btrfs/create2-mockup.xml   
2026-07-03 08:57:38.000000000 +0200
@@ -5,7 +5,7 @@
       <name>/usr/bin/udevadm settle --timeout=20</name>
     </Command>
     <Command>
-      <name>/sbin/mkfs.btrfs --force --metadata=RAID1 --data=RAID0 --nodiscard 
'/dev/sda' '/dev/sdb' '/dev/sdc' '/dev/sdd'</name>
+      <name>/sbin/mkfs.btrfs --force --metadata RAID1 --data RAID0 --nodiscard 
--checksum sha256 /dev/sda /dev/sdb /dev/sdc /dev/sdd</name>
       <stdout>btrfs-progs v4.19.1 </stdout>
       <stdout>See http://btrfs.wiki.kernel.org for more information.</stdout>
       <stdout></stdout>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libstorage-ng-4.5.336/testsuite/dependencies/btrfs/create2-staging.xml 
new/libstorage-ng-4.5.339/testsuite/dependencies/btrfs/create2-staging.xml
--- old/libstorage-ng-4.5.336/testsuite/dependencies/btrfs/create2-staging.xml  
2026-06-29 15:15:06.000000000 +0200
+++ new/libstorage-ng-4.5.339/testsuite/dependencies/btrfs/create2-staging.xml  
2026-07-03 08:57:38.000000000 +0200
@@ -77,7 +77,9 @@
       <sid>46</sid>
       <metadata-raid-level>RAID1</metadata-raid-level>
       <data-raid-level>RAID0</data-raid-level>
-      <mkfs-options>--nodiscard</mkfs-options>
+      <mkfs-options-v2>--nodiscard</mkfs-options-v2>
+      <mkfs-options-v2>--checksum</mkfs-options-v2>
+      <mkfs-options-v2>sha256</mkfs-options-v2>
     </Btrfs>
     <BtrfsSubvolume>
       <sid>47</sid>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstorage-ng-4.5.336/testsuite/probe/error1.cc 
new/libstorage-ng-4.5.339/testsuite/probe/error1.cc
--- old/libstorage-ng-4.5.336/testsuite/probe/error1.cc 2026-06-29 
15:15:06.000000000 +0200
+++ new/libstorage-ng-4.5.339/testsuite/probe/error1.cc 2026-07-03 
08:57:38.000000000 +0200
@@ -31,7 +31,7 @@
     BOOST_REQUIRE_EQUAL(probe_messages.size(), 3);
     BOOST_CHECK_EQUAL(probe_messages[0], "begin:");
     BOOST_CHECK_EQUAL(probe_messages[1], "error: message = 'Probing LVM 
failed', what = 'command '/sbin/pvs "
-                     "--reportformat json --config log { command_names = 0 
prefix = \"\" } --units b "
+                     "--reportformat json --config 'log { command_names = 0 
prefix = \"\" }' --units b "
                      "--nosuffix --all --options 
pv_name,pv_uuid,vg_name,vg_uuid,pv_attr,pe_start' "
                      "failed:\n\nstderr:\nerror: system is screwed\n\nexit 
code:\n42'");
     BOOST_CHECK_EQUAL(probe_messages[2], "end:");

Reply via email to