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)