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 2021-12-13 20:42:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2-storage-ng (Old)
 and      /work/SRC/openSUSE:Factory/.yast2-storage-ng.new.2520 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "yast2-storage-ng"

Mon Dec 13 20:42:17 2021 rev:112 rq:939113 version:4.4.23

Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2-storage-ng/yast2-storage-ng.changes        
2021-12-03 20:35:51.352122847 +0100
+++ 
/work/SRC/openSUSE:Factory/.yast2-storage-ng.new.2520/yast2-storage-ng.changes  
    2021-12-13 20:46:57.816503947 +0100
@@ -1,0 +2,19 @@
+Fri Dec 10 10:18:05 UTC 2021 - Jos?? Iv??n L??pez Gonz??lez <jlo...@suse.com>
+
+- Proposal: add support for mount options (related to fate#318196).
+- 4.4.23
+
+-------------------------------------------------------------------
+Thu Dec  9 13:25:29 UTC 2021 - Steffen Winterfeldt <snw...@suse.com>
+
+- use libstorage-ng to determine whether efibootmgr is available
+  (bsc#937067)
+- 4.4.22
+
+-------------------------------------------------------------------
+Wed Dec  8 10:01:35 UTC 2021 - Josef Reidinger <jreidin...@suse.com>
+
+- Prepare code for ruby3 - adapt openstruct usage (bsc#1193192)
+- 4.4.21
+
+-------------------------------------------------------------------

Old:
----
  yast2-storage-ng-4.4.20.tar.bz2

New:
----
  yast2-storage-ng-4.4.23.tar.bz2

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

Other differences:
------------------
++++++ yast2-storage-ng.spec ++++++
--- /var/tmp/diff_new_pack.CL2WHe/_old  2021-12-13 20:46:58.448504025 +0100
+++ /var/tmp/diff_new_pack.CL2WHe/_new  2021-12-13 20:46:58.452504025 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           yast2-storage-ng
-Version:        4.4.20
+Version:        4.4.23
 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#pbkdf
-BuildRequires:  libstorage-ng-ruby >= 4.4.56
+# Storage::Arch.is_efibootmgr
+BuildRequires:  libstorage-ng-ruby >= 4.4.61
 BuildRequires:  update-desktop-files
 # Yast::Kernel.propose_hibernation?
 BuildRequires:  yast2 >= 4.3.41
@@ -48,8 +48,8 @@
 
 # findutils for xargs
 Requires:       findutils
-# Encryption#pbkdf
-Requires:       libstorage-ng-ruby >= 4.4.56
+# Storage::Arch.is_efibootmgr
+Requires:       libstorage-ng-ruby >= 4.4.61
 # Yast::Kernel.propose_hibernation?
 Requires:       yast2 >= 4.3.41
 # Y2Packager::Repository

++++++ yast2-storage-ng-4.4.20.tar.bz2 -> yast2-storage-ng-4.4.23.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-storage-ng-4.4.20/package/yast2-storage-ng.changes 
new/yast2-storage-ng-4.4.23/package/yast2-storage-ng.changes
--- old/yast2-storage-ng-4.4.20/package/yast2-storage-ng.changes        
2021-12-03 13:42:04.000000000 +0100
+++ new/yast2-storage-ng-4.4.23/package/yast2-storage-ng.changes        
2021-12-10 13:15:51.000000000 +0100
@@ -1,4 +1,23 @@
 -------------------------------------------------------------------
+Fri Dec 10 10:18:05 UTC 2021 - Jos?? Iv??n L??pez Gonz??lez <jlo...@suse.com>
+
+- Proposal: add support for mount options (related to fate#318196).
+- 4.4.23
+
+-------------------------------------------------------------------
+Thu Dec  9 13:25:29 UTC 2021 - Steffen Winterfeldt <snw...@suse.com>
+
+- use libstorage-ng to determine whether efibootmgr is available
+  (bsc#937067)
+- 4.4.22
+
+-------------------------------------------------------------------
+Wed Dec  8 10:01:35 UTC 2021 - Josef Reidinger <jreidin...@suse.com>
+
+- Prepare code for ruby3 - adapt openstruct usage (bsc#1193192)
+- 4.4.21
+
+-------------------------------------------------------------------
 Fri Dec  3 12:21:14 UTC 2021 - Jos?? Iv??n L??pez Gonz??lez <jlo...@suse.com>
 
 - Fix regression for unit tests: mock the generation of Bcache
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-storage-ng-4.4.20/package/yast2-storage-ng.spec 
new/yast2-storage-ng-4.4.23/package/yast2-storage-ng.spec
--- old/yast2-storage-ng-4.4.20/package/yast2-storage-ng.spec   2021-12-03 
13:42:04.000000000 +0100
+++ new/yast2-storage-ng-4.4.23/package/yast2-storage-ng.spec   2021-12-10 
13:15:51.000000000 +0100
@@ -16,7 +16,7 @@
 #
 
 Name:           yast2-storage-ng
-Version:        4.4.20
+Version:        4.4.23
 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#pbkdf
-BuildRequires: libstorage-ng-ruby >= 4.4.56
+# Storage::Arch.is_efibootmgr
+BuildRequires: libstorage-ng-ruby >= 4.4.61
 BuildRequires:  update-desktop-files
 # Yast::Kernel.propose_hibernation?
 BuildRequires:  yast2 >= 4.3.41
@@ -47,8 +47,8 @@
 
 # findutils for xargs
 Requires:       findutils
-# Encryption#pbkdf
-Requires:       libstorage-ng-ruby >= 4.4.56
+# Storage::Arch.is_efibootmgr
+Requires:       libstorage-ng-ruby >= 4.4.61
 # Yast::Kernel.propose_hibernation?
 Requires:       yast2 >= 4.3.41
 # Y2Packager::Repository
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-storage-ng-4.4.20/src/lib/y2storage/arch.rb 
new/yast2-storage-ng-4.4.23/src/lib/y2storage/arch.rb
--- old/yast2-storage-ng-4.4.20/src/lib/y2storage/arch.rb       2021-12-03 
13:42:04.000000000 +0100
+++ new/yast2-storage-ng-4.4.23/src/lib/y2storage/arch.rb       2021-12-10 
13:15:51.000000000 +0100
@@ -23,12 +23,30 @@
 module Y2Storage
   # Hardware architecture
   #
-  # This is a wrapper for Storage::Arch
+  # This is a wrapper for Storage::Arch.
   class Arch
     include StorageClassWrapper
 
     wrap_class Storage::Arch
 
+    # Wraps the Storage::Arch object passed to it or creates a new
+    # Storage::Arch object and wraps that.
+    #
+    # This also adjusts {#efiboot?} according to the `/etc/install.inf::EFI` 
setting.
+    #
+    # @param storage_arch [Storage::Arch] Storage::Arch object to wrap.
+    #
+    # @return [Y2Storage::Arch]
+    def initialize(storage_arch = Storage::Arch.new)
+      super(storage_arch)
+
+      Yast.import "Linuxrc"
+
+      return if Yast::Linuxrc.InstallInf("EFI").nil?
+
+      storage_arch.efiboot = Yast::Linuxrc.InstallInf("EFI") == "1"
+    end
+
     # @!method x86?
     #   @return [Boolean] whether the architecture is x86
     storage_forward :x86?
@@ -53,6 +71,23 @@
     #   @return [Integer] the system page size
     storage_forward :page_size
 
+    # @!method efibootmgr?
+    #
+    # Whether the UEFI boot manager can write UEFI boot entries.
+    #
+    # Storage::Arch exports it as static function to not break the existing 
ABI.
+    # Make it available as instance method to have a consistent API
+    # in {Y2Storage::Arch}.
+    #
+    # @note This is entirely independent of {#efiboot?}. In particular
+    #   overriding {#efiboot?} with environment variables or config files will
+    #   have no effect on {#efibootmgr?}.
+    #
+    # @return [Boolean] whether the UEFI boot manager can write UEFI boot 
entries
+    def efibootmgr?
+      to_storage_value.class.efibootmgr?
+    end
+
     # Current RAM size in bytes
     #
     # @note RAM size is read from /proc/meminfo, where sizes are supposed to
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-storage-ng-4.4.20/src/lib/y2storage/hwinfo_disk.rb 
new/yast2-storage-ng-4.4.23/src/lib/y2storage/hwinfo_disk.rb
--- old/yast2-storage-ng-4.4.20/src/lib/y2storage/hwinfo_disk.rb        
2021-12-03 13:42:04.000000000 +0100
+++ new/yast2-storage-ng-4.4.23/src/lib/y2storage/hwinfo_disk.rb        
2021-12-10 13:15:51.000000000 +0100
@@ -47,9 +47,9 @@
     def self.define_property(name, multi: false)
       define_method(name) do
         if multi
-          super() || []
+          self[name] || []
         else
-          super()
+          self[name]
         end
       end
     end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-storage-ng-4.4.20/src/lib/y2storage/proposal/devices_planner.rb 
new/yast2-storage-ng-4.4.23/src/lib/y2storage/proposal/devices_planner.rb
--- old/yast2-storage-ng-4.4.20/src/lib/y2storage/proposal/devices_planner.rb   
2021-12-03 13:42:04.000000000 +0100
+++ new/yast2-storage-ng-4.4.23/src/lib/y2storage/proposal/devices_planner.rb   
2021-12-10 13:15:51.000000000 +0100
@@ -131,7 +131,7 @@
       # Plans a device based on a <volume> section from control file
       #
       # @param volume [VolumeSpecification]
-      # @return [Planned::device]
+      # @return [Planned::Device]
       def planned_device(volume)
         if settings.separate_vgs && volume.separate_vg?
           planned_separate_vg(volume)
@@ -176,8 +176,9 @@
         adjust_sizes(planned_device, volume)
         adjust_btrfs(planned_device, volume)
         adjust_device(planned_device, volume)
-
         adjust_swap(planned_device, volume) if planned_device.swap?
+
+        planned_device.fstab_options = volume.mount_options&.split(",")
       end
 
       # Adjusts planned device weight according to settings
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-storage-ng-4.4.20/src/lib/y2storage/volume_specification.rb 
new/yast2-storage-ng-4.4.23/src/lib/y2storage/volume_specification.rb
--- old/yast2-storage-ng-4.4.20/src/lib/y2storage/volume_specification.rb       
2021-12-03 13:42:04.000000000 +0100
+++ new/yast2-storage-ng-4.4.23/src/lib/y2storage/volume_specification.rb       
2021-12-10 13:15:51.000000000 +0100
@@ -1,4 +1,4 @@
-# Copyright (c) [2017-2020] SUSE LLC
+# Copyright (c) [2017-2021] SUSE LLC
 #
 # All Rights Reserved.
 #
@@ -34,6 +34,9 @@
     # @return [String] directory where the volume will be mounted in the system
     attr_accessor :mount_point
 
+    # @return [String] mount options, separated by comma
+    attr_accessor :mount_options
+
     # @return [Boolean] whether this volume should be created or skipped
     attr_accessor :proposed
 
@@ -288,6 +291,7 @@
 
     FEATURES = {
       mount_point:                :string,
+      mount_options:              :string,
       proposed:                   :boolean,
       proposed_configurable:      :boolean,
       fs_types:                   :list,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-storage-ng-4.4.20/test/y2storage/arch_test.rb 
new/yast2-storage-ng-4.4.23/test/y2storage/arch_test.rb
--- old/yast2-storage-ng-4.4.20/test/y2storage/arch_test.rb     1970-01-01 
01:00:00.000000000 +0100
+++ new/yast2-storage-ng-4.4.23/test/y2storage/arch_test.rb     2021-12-10 
13:15:51.000000000 +0100
@@ -0,0 +1,54 @@
+#!/usr/bin/env rspec
+# Copyright (c) [2021] SUSE LLC
+#
+# All Rights Reserved.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of version 2 of the GNU General Public License as published
+# by the Free Software Foundation.
+#
+# This program is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+# more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, contact SUSE LLC.
+#
+# To contact SUSE LLC about this file by physical or electronic mail, you may
+# find current contact information at www.suse.com.
+
+require_relative "spec_helper"
+require "y2storage"
+
+describe Y2Storage::Arch do
+  subject = described_class
+
+  describe "#new" do
+    it "returns a Y2Storage::Arch object" do
+      expect(subject.new).to be_a Y2Storage::Arch
+    end
+  end
+
+  describe "#efiboot?" do
+    context "if /etc/install.inf::EFI is set to 1" do
+      before do
+        allow(Yast::Linuxrc).to 
receive(:InstallInf).with("EFI").and_return("1")
+      end
+
+      it "returns true" do
+        expect(subject.new.efiboot?).to eq true
+      end
+    end
+
+    context "if /etc/install.inf::EFI is set to 0" do
+      before do
+        allow(Yast::Linuxrc).to 
receive(:InstallInf).with("EFI").and_return("0")
+      end
+
+      it "returns false" do
+        expect(subject.new.efiboot?).to eq false
+      end
+    end
+  end
+end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-storage-ng-4.4.20/test/y2storage/proposal/devices_planner_test.rb 
new/yast2-storage-ng-4.4.23/test/y2storage/proposal/devices_planner_test.rb
--- old/yast2-storage-ng-4.4.20/test/y2storage/proposal/devices_planner_test.rb 
2021-12-03 13:42:04.000000000 +0100
+++ new/yast2-storage-ng-4.4.23/test/y2storage/proposal/devices_planner_test.rb 
2021-12-10 13:15:51.000000000 +0100
@@ -57,6 +57,7 @@
       {
         "proposed"        => proposed,
         "mount_point"     => mount_point,
+        "mount_options"   => mount_options,
         "fs_type"         => fs_type,
         "desired_size"    => desired_size.to_s,
         "min_size"        => min_size.to_s,
@@ -74,6 +75,8 @@
 
     let(:mount_point) { "/" }
 
+    let(:mount_options) { nil }
+
     let(:fs_type) { :ext3 }
 
     let(:desired_size) { 10.GiB }
@@ -128,6 +131,30 @@
             expect(planned_devices).to 
include(an_object_having_attributes(mount_point: mount_point))
           end
 
+          context "and the <volume> entry contains empty <mount_options>" do
+            let(:mount_options) { "" }
+
+            it "plans a device with empty mount options" do
+              expect(planned_device.fstab_options).to eq([])
+            end
+          end
+
+          context "and the <volume> entry contains <mount_options>" do
+            let(:mount_options) { "ro,defaults" }
+
+            it "plans a device with the indicated mount options" do
+              expect(planned_device.fstab_options).to eq(["ro", "defaults"])
+            end
+          end
+
+          context "and the <volume> entry does not contain <mount_options>" do
+            let(:mount_options) { nil }
+
+            it "plans a device without (default) mount options" do
+              expect(planned_device.fstab_options).to be_nil
+            end
+          end
+
           context "and it is proposing a partition-based setup" do
             let(:lvm) { false }
 
@@ -401,6 +428,10 @@
           end
 
           context "when it is using adjust_by_ram" do
+            before do
+              allow(Yast::Linuxrc).to receive(:InstallInf)
+            end
+
             let(:adjust_by_ram) { true }
 
             let(:desired_size) { 1.GiB }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-storage-ng-4.4.20/test/y2storage/volume_specification_test.rb 
new/yast2-storage-ng-4.4.23/test/y2storage/volume_specification_test.rb
--- old/yast2-storage-ng-4.4.20/test/y2storage/volume_specification_test.rb     
2021-12-03 13:42:04.000000000 +0100
+++ new/yast2-storage-ng-4.4.23/test/y2storage/volume_specification_test.rb     
2021-12-10 13:15:51.000000000 +0100
@@ -83,6 +83,7 @@
     let(:volume_features) do
       {
         "mount_point"                => mount_point,
+        "mount_options"              => mount_options,
         "proposed"                   => proposed,
         "proposed_configurable"      => proposed_configurable,
         "desired_size"               => desired_size,
@@ -103,6 +104,7 @@
     end
 
     let(:mount_point) { "/home" }
+    let(:mount_options) { "ro,defaults" }
     let(:proposed) { true }
     let(:proposed_configurable) { true }
     let(:desired_size) { "5 GiB" }
@@ -122,6 +124,7 @@
 
     it "creates an object with the indicated features" do
       expect(subject.mount_point).to eq("/home")
+      expect(subject.mount_options).to eq("ro,defaults")
       expect(subject.proposed).to eq(true)
       expect(subject.proposed_configurable).to eq(true)
       expect(subject.desired_size).to eq(5.GiB)

Reply via email to