Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package yast2-storage-ng for
openSUSE:Factory checked in at 2025-04-14 12:55:18
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2-storage-ng (Old)
and /work/SRC/openSUSE:Factory/.yast2-storage-ng.new.1907 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "yast2-storage-ng"
Mon Apr 14 12:55:18 2025 rev:173 rq:1268545 version:5.0.29
Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2-storage-ng/yast2-storage-ng.changes
2025-04-07 17:34:59.308736253 +0200
+++
/work/SRC/openSUSE:Factory/.yast2-storage-ng.new.1907/yast2-storage-ng.changes
2025-04-14 12:55:21.108613436 +0200
@@ -1,0 +2,6 @@
+Thu Apr 10 11:30:44 UTC 2025 - Ancor Gonzalez Sosa <[email protected]>
+
+- Create /etc/lvm/devices if needed (jsc#PED-7355, jsc#PED-12241).
+- 5.0.29
+
+-------------------------------------------------------------------
Old:
----
yast2-storage-ng-5.0.28.tar.bz2
New:
----
yast2-storage-ng-5.0.29.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ yast2-storage-ng.spec ++++++
--- /var/tmp/diff_new_pack.7a1Iks/_old 2025-04-14 12:55:21.912647200 +0200
+++ /var/tmp/diff_new_pack.7a1Iks/_new 2025-04-14 12:55:21.912647200 +0200
@@ -17,7 +17,7 @@
Name: yast2-storage-ng
-Version: 5.0.28
+Version: 5.0.29
Release: 0
Summary: YaST2 - Storage Configuration
License: GPL-2.0-only OR GPL-3.0-only
@@ -26,8 +26,8 @@
Source: %{name}-%{version}.tar.bz2
-# Encryption#use_key_file_in_commit
-BuildRequires: libstorage-ng-ruby >= 4.5.144
+# RB_FILESYSTEM_MOUNT_READ_ONLY
+BuildRequires: libstorage-ng-ruby >= 4.5.246
BuildRequires: update-desktop-files
# Replace PackageSystem with Package
BuildRequires: yast2 >= 4.4.38
@@ -48,8 +48,8 @@
# findutils for xargs
Requires: findutils
-# Encryption#use_key_file_in_commit
-Requires: libstorage-ng-ruby >= 4.5.144
+# RB_FILESYSTEM_MOUNT_READ_ONLY
+Requires: libstorage-ng-ruby >= 4.5.246
# Require libstorage bindings for the current Ruby version (bsc#1235598)
Requires: libstorage-ng-ruby-%{rb_ver}
# Replace PackageSystem with Package
++++++ yast2-storage-ng-5.0.28.tar.bz2 -> yast2-storage-ng-5.0.29.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/yast2-storage-ng-5.0.28/package/yast2-storage-ng.changes
new/yast2-storage-ng-5.0.29/package/yast2-storage-ng.changes
--- old/yast2-storage-ng-5.0.28/package/yast2-storage-ng.changes
2025-04-04 09:16:44.000000000 +0200
+++ new/yast2-storage-ng-5.0.29/package/yast2-storage-ng.changes
2025-04-11 09:04:25.000000000 +0200
@@ -1,4 +1,10 @@
-------------------------------------------------------------------
+Thu Apr 10 11:30:44 UTC 2025 - Ancor Gonzalez Sosa <[email protected]>
+
+- Create /etc/lvm/devices if needed (jsc#PED-7355, jsc#PED-12241).
+- 5.0.29
+
+-------------------------------------------------------------------
Fri Apr 4 07:00:19 UTC 2025 - Ancor Gonzalez Sosa <[email protected]>
- New environment variables YAST_STORAGE_TEST_MODE and
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/yast2-storage-ng-5.0.28/package/yast2-storage-ng.spec
new/yast2-storage-ng-5.0.29/package/yast2-storage-ng.spec
--- old/yast2-storage-ng-5.0.28/package/yast2-storage-ng.spec 2025-04-04
09:16:44.000000000 +0200
+++ new/yast2-storage-ng-5.0.29/package/yast2-storage-ng.spec 2025-04-11
09:04:25.000000000 +0200
@@ -16,7 +16,7 @@
#
Name: yast2-storage-ng
-Version: 5.0.28
+Version: 5.0.29
Release: 0
Summary: YaST2 - Storage Configuration
License: GPL-2.0-only OR GPL-3.0-only
@@ -25,8 +25,8 @@
Source: %{name}-%{version}.tar.bz2
-# Encryption#use_key_file_in_commit
-BuildRequires: libstorage-ng-ruby >= 4.5.144
+# RB_FILESYSTEM_MOUNT_READ_ONLY
+BuildRequires: libstorage-ng-ruby >= 4.5.246
BuildRequires: update-desktop-files
# Replace PackageSystem with Package
BuildRequires: yast2 >= 4.4.38
@@ -47,8 +47,8 @@
# findutils for xargs
Requires: findutils
-# Encryption#use_key_file_in_commit
-Requires: libstorage-ng-ruby >= 4.5.144
+# RB_FILESYSTEM_MOUNT_READ_ONLY
+Requires: libstorage-ng-ruby >= 4.5.246
# Require libstorage bindings for the current Ruby version (bsc#1235598)
Requires: libstorage-ng-ruby-%{rb_ver}
# Replace PackageSystem with Package
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/yast2-storage-ng-5.0.28/src/lib/y2storage/clients/finish.rb
new/yast2-storage-ng-5.0.29/src/lib/y2storage/clients/finish.rb
--- old/yast2-storage-ng-5.0.28/src/lib/y2storage/clients/finish.rb
2025-04-04 09:16:44.000000000 +0200
+++ new/yast2-storage-ng-5.0.29/src/lib/y2storage/clients/finish.rb
2025-04-11 09:04:25.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright (c) [2018-2019] SUSE LLC
+# Copyright (c) [2018-2025] SUSE LLC
#
# All Rights Reserved.
#
@@ -17,9 +17,11 @@
# To contact SUSE LLC about this file by physical or electronic mail, you may
# find current contact information at www.suse.com.
+require "fileutils"
require "yast"
require "installation/finish_client"
require "y2storage/used_filesystems"
+Yast.import "Mode"
module Y2Storage
module Clients
@@ -47,6 +49,7 @@
enable_multipath
update_sysconfig
finish_devices
+ copy_lvm_devices
true
end
@@ -81,6 +84,23 @@
staging.finish_installation
end
+ LVM_DEVICES_DIR = "/etc/lvm/devices".freeze
+
+ # Copies the files from /etc/lvm/devices to the target system, if needed
+ def copy_lvm_devices
+ # No files should be generated during a system upgrade, since
libstorage-ng is not
+ # involved. But better be safe and skip this in the update case.
+ return unless Yast::Mode.installation
+
+ files = Dir.glob(File.join(LVM_DEVICES_DIR, "*"))
+ target_path = File.join(Installation.destdir, LVM_DEVICES_DIR)
+ target_exists = File.exist?(target_path)
+ log.info("Trying to copy LVM devices files. Target: #{target_exists}.
Files: #{files}")
+ return unless target_exists
+
+ files.each { |f| ::FileUtils.cp_r(f, target_path) }
+ end
+
# Staging devicegraph
#
# @return [Devicegraph]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/yast2-storage-ng-5.0.28/src/lib/y2storage/resize_info.rb
new/yast2-storage-ng-5.0.29/src/lib/y2storage/resize_info.rb
--- old/yast2-storage-ng-5.0.28/src/lib/y2storage/resize_info.rb
2025-04-04 09:16:44.000000000 +0200
+++ new/yast2-storage-ng-5.0.29/src/lib/y2storage/resize_info.rb
2025-04-11 09:04:25.000000000 +0200
@@ -57,7 +57,8 @@
RB_NO_SPACE_IN_LVM_VG: N_("No space left
in the LVM volume group."),
RB_MIN_SIZE_FOR_LVM_LV: N_("The LVM logical
volume already has the minimum possible size."),
RB_MAX_SIZE_FOR_LVM_LV_THIN: N_("The LVM thin
logical volume already has the maximum size."),
- RB_PASSWORD_REQUIRED: N_("The encryption
password is required.")
+ RB_PASSWORD_REQUIRED: N_("The encryption
password is required."),
+ RB_FILESYSTEM_MOUNT_READ_ONLY: N_("Filesystem
mounted in read-only mode.")
}.freeze
# rubocop:enable Layout/LineLength
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/yast2-storage-ng-5.0.28/src/lib/y2storage/storage_manager.rb
new/yast2-storage-ng-5.0.29/src/lib/y2storage/storage_manager.rb
--- old/yast2-storage-ng-5.0.28/src/lib/y2storage/storage_manager.rb
2025-04-04 09:16:44.000000000 +0200
+++ new/yast2-storage-ng-5.0.29/src/lib/y2storage/storage_manager.rb
2025-04-11 09:04:25.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright (c) [2015-2022] SUSE LLC
+# Copyright (c) [2015-2025] SUSE LLC
#
# All Rights Reserved.
#
@@ -342,6 +342,9 @@
storage.commit(commit_options, callbacks)
staging.post_commit
+ # Make sure /etc/lvm/devices is written in case it is missing
+ add_missing_lvm_devices
+
@committed = true
rescue Storage::Exception
false
@@ -555,6 +558,16 @@
root.configure_snapper
end
+ # Generates the files at /etc/lvm/devices if they are not there but
libstorage-ng considers
+ # they should be.
+ #
+ # See jsc#PED-7355
+ def add_missing_lvm_devices
+ return unless Storage::LvmDevicesFile.status ==
Storage::LvmDevicesFile::Status_MISSING
+
+ Storage::LvmDevicesFile.create(staging.to_storage_value)
+ end
+
# Class methods
class << self
# Initializes storage with a specific access mode (read-only or
read-write)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/yast2-storage-ng-5.0.28/test/y2storage/clients/finish_test.rb
new/yast2-storage-ng-5.0.29/test/y2storage/clients/finish_test.rb
--- old/yast2-storage-ng-5.0.28/test/y2storage/clients/finish_test.rb
2025-04-04 09:16:44.000000000 +0200
+++ new/yast2-storage-ng-5.0.29/test/y2storage/clients/finish_test.rb
2025-04-11 09:04:25.000000000 +0200
@@ -1,5 +1,5 @@
#!/usr/bin/env rspec
-# Copyright (c) [2018-2019] SUSE LLC
+# Copyright (c) [2018-2025] SUSE LLC
#
# All Rights Reserved.
#
@@ -46,7 +46,12 @@
context "Write" do
let(:args) { ["Write"] }
- before { fake_scenario(scenario) }
+ before do
+ fake_scenario(scenario)
+ allow(Yast::Mode).to receive(:installation).and_return true
+ allow(Dir).to receive(:glob).and_call_original
+ allow(Dir).to receive(:glob).with("/etc/lvm/devices/*").and_return []
+ end
let(:scenario) { "lvm-two-vgs" }
@@ -149,6 +154,40 @@
end
end
end
+
+ context "if there are files at /etc/lvm/devices" do
+ around do |example|
+ @orig_root = Dir.mktmpdir
+ @orig_dir_path = File.join(@orig_root, "etc", "lvm", "devices")
+ FileUtils.mkdir_p(@orig_dir_path)
+ @orig_file_name = "system"
+ FileUtils.touch(File.join(@orig_dir_path, @orig_file_name))
+
+ @dest_root = Dir.mktmpdir
+ @dest_dir_path = File.join(@dest_root, "etc", "lvm", "devices")
+ FileUtils.mkdir_p(@dest_dir_path)
+
+ example.run
+ ensure
+ FileUtils.remove_entry @orig_root
+ FileUtils.remove_entry @dest_root
+ end
+
+ before do
+ allow(Dir).to receive(:glob).with("/etc/lvm/devices/*") do
+ Dir.glob(File.join(@orig_dir_path, "*"))
+ end
+ allow(Yast::Installation).to receive(:destdir).and_return @dest_root
+ end
+
+ it "copies the files to the corresponding path at the target system" do
+ file = File.join(Yast::Installation.destdir, "etc", "lvm",
"devices", @orig_file_name)
+
+ expect(File.exist?(file)).to eq false
+ client.run
+ expect(File.exist?(file)).to eq true
+ end
+ end
end
end
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/yast2-storage-ng-5.0.28/test/y2storage/storage_manager_test.rb
new/yast2-storage-ng-5.0.29/test/y2storage/storage_manager_test.rb
--- old/yast2-storage-ng-5.0.28/test/y2storage/storage_manager_test.rb
2025-04-04 09:16:44.000000000 +0200
+++ new/yast2-storage-ng-5.0.29/test/y2storage/storage_manager_test.rb
2025-04-11 09:04:25.000000000 +0200
@@ -1,6 +1,6 @@
#!/usr/bin/env rspec
-# Copyright (c) [2017-2022] SUSE LLC
+# Copyright (c) [2017-2025] SUSE LLC
#
# All Rights Reserved.
#
@@ -27,9 +27,13 @@
include Yast::Logger
+ let(:lvm_devs_disabled) { Storage::LvmDevicesFile::Status_DISABLED }
+ let(:lvm_devs_missing) { Storage::LvmDevicesFile::Status_MISSING }
+
before do
described_class.create_test_instance
allow(Yast::Pkg).to receive(:SourceReleaseAll)
+ allow(Storage::LvmDevicesFile).to receive(:status).and_return
lvm_devs_disabled
end
describe ".new" do
@@ -597,6 +601,22 @@
manager.commit(force_rw: true)
end
+ it "does not generate /etc/lvm/devices if not needed" do
+ expect(Storage::LvmDevicesFile).to_not receive(:create)
+ manager.commit
+ end
+
+ context "if there is a missing file at /etc/lvm/devices" do
+ before do
+ allow(Storage::LvmDevicesFile).to receive(:status).and_return
lvm_devs_missing
+ end
+
+ it "generates the files at /etc/lvm/devices" do
+ expect(Storage::LvmDevicesFile).to receive(:create)
+ manager.commit
+ end
+ end
+
it "returns true if everything goes fine" do
expect(manager.commit).to eq true
end