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-11-02 22:33:06
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2-storage-ng (Old)
 and      /work/SRC/openSUSE:Factory/.yast2-storage-ng.new.1980 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "yast2-storage-ng"

Sun Nov  2 22:33:06 2025 rev:178 rq:1313165 version:5.0.37

Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2-storage-ng/yast2-storage-ng.changes        
2025-08-07 16:48:52.908465422 +0200
+++ 
/work/SRC/openSUSE:Factory/.yast2-storage-ng.new.1980/yast2-storage-ng.changes  
    2025-11-02 22:33:07.996082077 +0100
@@ -1,0 +2,13 @@
+Fri Oct 10 09:44:39 UTC 2025 - Stefan Schubert <[email protected]>
+
+- Add umask=0077 fstab option to vfat partitions in order to reduce
+  security risks (bsc#1250510).
+- 5.0.37
+
+-------------------------------------------------------------------
+Wed Sep 24 10:34:05 UTC 2025 - Stefan Schubert <[email protected]>
+
+- Using PbkdFunction::PBKDF2 for none efi systems (bsc#1249670).
+- 5.0.36
+
+-------------------------------------------------------------------

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

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

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

Other differences:
------------------
++++++ yast2-storage-ng.spec ++++++
--- /var/tmp/diff_new_pack.aS4y9I/_old  2025-11-02 22:33:08.604107567 +0100
+++ /var/tmp/diff_new_pack.aS4y9I/_new  2025-11-02 22:33:08.604107567 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           yast2-storage-ng
-Version:        5.0.35
+Version:        5.0.37
 Release:        0
 Summary:        YaST2 - Storage Configuration
 License:        GPL-2.0-only OR GPL-3.0-only

++++++ yast2-storage-ng-5.0.35.tar.bz2 -> yast2-storage-ng-5.0.37.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-storage-ng-5.0.35/package/yast2-storage-ng.changes 
new/yast2-storage-ng-5.0.37/package/yast2-storage-ng.changes
--- old/yast2-storage-ng-5.0.35/package/yast2-storage-ng.changes        
2025-08-06 14:13:12.000000000 +0200
+++ new/yast2-storage-ng-5.0.37/package/yast2-storage-ng.changes        
2025-10-23 10:08:23.000000000 +0200
@@ -1,4 +1,17 @@
 -------------------------------------------------------------------
+Fri Oct 10 09:44:39 UTC 2025 - Stefan Schubert <[email protected]>
+
+- Add umask=0077 fstab option to vfat partitions in order to reduce
+  security risks (bsc#1250510).
+- 5.0.37
+
+-------------------------------------------------------------------
+Wed Sep 24 10:34:05 UTC 2025 - Stefan Schubert <[email protected]>
+
+- Using PbkdFunction::PBKDF2 for none efi systems (bsc#1249670).
+- 5.0.36
+
+-------------------------------------------------------------------
 Mon Jul 28 10:59:39 UTC 2025 - Stefan Schubert <[email protected]>
 
 - Do not generate grub2 error messages and proposals if a BLS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-storage-ng-5.0.35/package/yast2-storage-ng.spec 
new/yast2-storage-ng-5.0.37/package/yast2-storage-ng.spec
--- old/yast2-storage-ng-5.0.35/package/yast2-storage-ng.spec   2025-08-06 
14:13:12.000000000 +0200
+++ new/yast2-storage-ng-5.0.37/package/yast2-storage-ng.spec   2025-10-23 
10:08:23.000000000 +0200
@@ -16,7 +16,7 @@
 #
 
 Name:           yast2-storage-ng
-Version:        5.0.35
+Version:        5.0.37
 Release:        0
 Summary:        YaST2 - Storage Configuration
 License:        GPL-2.0-only OR GPL-3.0-only
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-storage-ng-5.0.35/src/lib/y2storage/filesystems/type.rb 
new/yast2-storage-ng-5.0.37/src/lib/y2storage/filesystems/type.rb
--- old/yast2-storage-ng-5.0.35/src/lib/y2storage/filesystems/type.rb   
2025-08-06 14:13:12.000000000 +0200
+++ new/yast2-storage-ng-5.0.37/src/lib/y2storage/filesystems/type.rb   
2025-10-23 10:08:23.000000000 +0200
@@ -414,7 +414,11 @@
         case to_sym
         when :vfat
           # "iocharset=utf8" breaks VFAT case insensitivity (bsc#1080731)
-          opt.reject { |o| o == "iocharset=utf8" }
+          ret = opt.reject { |o| o == "iocharset=utf8" }
+          # Protecting vfat partitions in order to reduce security risks
+          # (bsc#1250510).
+          ret += ["dmask=0077"] unless ret.find_index { |x| 
x.start_with?("dmask=") }
+          ret
         else
           opt
         end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-storage-ng-5.0.35/src/lib/y2storage/guided_proposal.rb 
new/yast2-storage-ng-5.0.37/src/lib/y2storage/guided_proposal.rb
--- old/yast2-storage-ng-5.0.35/src/lib/y2storage/guided_proposal.rb    
2025-08-06 14:13:12.000000000 +0200
+++ new/yast2-storage-ng-5.0.37/src/lib/y2storage/guided_proposal.rb    
2025-10-23 10:08:23.000000000 +0200
@@ -63,6 +63,7 @@
       #
       # @return [InitialGuidedProposal]
       def initial(settings: nil, devicegraph: nil, disk_analyzer: nil)
+        settings.encryption_pbkdf = 
GuidedProposal.check_pbkdf(settings.encryption_pbkdf) if settings
         proposal = InitialGuidedProposal.new(
           settings:      settings,
           devicegraph:   devicegraph,
@@ -75,6 +76,19 @@
         log.error("Initial proposal failed")
         proposal
       end
+
+      # Checks if the given pbkdf can be used for the installation.
+      #
+      # @param pbkdf which has to be checked [PbkdFunction]
+      # @return updated PbkdFunction
+      def check_pbkdf(pbkdf)
+        # none efi system has to use PBKDF2
+        unless Y2Storage::Arch.new.efiboot?
+          log.info "Using PBKDF2 because it is not a EFI system."
+          return PbkdFunction::PBKDF2
+        end
+        pbkdf
+      end
     end
 
     # Constructor
@@ -89,6 +103,7 @@
       super(devicegraph: devicegraph, disk_analyzer: disk_analyzer)
 
       @settings = settings || ProposalSettings.new_for_current_product
+      @settings.encryption_pbkdf = 
GuidedProposal.check_pbkdf(@settings.encryption_pbkdf)
     end
 
     private
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-storage-ng-5.0.35/test/data/devicegraphs/output/raspi_empty.yml 
new/yast2-storage-ng-5.0.37/test/data/devicegraphs/output/raspi_empty.yml
--- old/yast2-storage-ng-5.0.35/test/data/devicegraphs/output/raspi_empty.yml   
2025-08-06 14:13:12.000000000 +0200
+++ new/yast2-storage-ng-5.0.37/test/data/devicegraphs/output/raspi_empty.yml   
2025-10-23 10:08:23.000000000 +0200
@@ -10,8 +10,7 @@
         type: primary
         id: dos32
         file_system: vfat
-        fstab_options:
-          - utf8
+        fstab_options: ["utf8", "dmask=0077"]
         mount_point: /boot/efi
     - partition:
         size: 40 GiB
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-storage-ng-5.0.35/test/data/devicegraphs/output/raspi_firmware.yml 
new/yast2-storage-ng-5.0.37/test/data/devicegraphs/output/raspi_firmware.yml
--- 
old/yast2-storage-ng-5.0.35/test/data/devicegraphs/output/raspi_firmware.yml    
    2025-08-06 14:13:12.000000000 +0200
+++ 
new/yast2-storage-ng-5.0.37/test/data/devicegraphs/output/raspi_firmware.yml    
    2025-10-23 10:08:23.000000000 +0200
@@ -17,8 +17,7 @@
         type: primary
         id: esp
         file_system: vfat
-        fstab_options:
-          - utf8
+        fstab_options: ["utf8", "dmask=0077"]
         mount_point: /boot/efi
     - partition:
         size: 40 GiB
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-storage-ng-5.0.35/test/y2storage/clients/inst_disk_proposal_test.rb 
new/yast2-storage-ng-5.0.37/test/y2storage/clients/inst_disk_proposal_test.rb
--- 
old/yast2-storage-ng-5.0.35/test/y2storage/clients/inst_disk_proposal_test.rb   
    2025-08-06 14:13:12.000000000 +0200
+++ 
new/yast2-storage-ng-5.0.37/test/y2storage/clients/inst_disk_proposal_test.rb   
    2025-10-23 10:08:23.000000000 +0200
@@ -524,7 +524,7 @@
       end
 
       context "if the guided setup returns :next" do
-        let(:new_settings) { double("Y2Storage::ProposalSettings") }
+        let(:new_settings) { Y2Storage::ProposalSettings.new }
 
         before do
           allow(proposal_dialog).to 
receive(:devicegraph).and_return(devicegraph)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-storage-ng-5.0.35/test/y2storage/filesystems/type_test.rb 
new/yast2-storage-ng-5.0.37/test/y2storage/filesystems/type_test.rb
--- old/yast2-storage-ng-5.0.35/test/y2storage/filesystems/type_test.rb 
2025-08-06 14:13:12.000000000 +0200
+++ new/yast2-storage-ng-5.0.37/test/y2storage/filesystems/type_test.rb 
2025-10-23 10:08:23.000000000 +0200
@@ -202,16 +202,18 @@
         it "vfat has the correct fstab options for a utf8 locale" do
           Yast::Encoding.SetUtf8Lang(true)
           Yast::Encoding.SetEncLang("de_DE")
-          expect(described_class::VFAT.default_fstab_options("/boot")).to eq 
["utf8"]
-          expect(described_class::VFAT.default_fstab_options("/boot/efi")).to 
eq ["utf8"]
-          
expect(described_class::VFAT.default_fstab_options("/boot/whatever")).to eq 
["utf8"]
+          expect(described_class::VFAT.default_fstab_options("/boot")).to eq 
["utf8", "dmask=0077"]
+          expect(described_class::VFAT.default_fstab_options("/boot/efi")).to 
eq ["utf8", "dmask=0077"]
+          
expect(described_class::VFAT.default_fstab_options("/boot/whatever")).to eq 
["utf8",
+                                                                               
        "dmask=0077"]
         end
 
         it "vfat has the correct fstab options for a non-utf8 de_DE locale" do
           Yast::Encoding.SetUtf8Lang(false)
           Yast::Encoding.SetEncLang("de_DE")
           # "codepage=437" is default and thus omitted
-          expect(described_class::VFAT.default_fstab_options("/boot/efi")).to 
eq ["iocharset=iso8859-15"]
+          expect(described_class::VFAT.default_fstab_options("/boot/efi"))
+            .to include("iocharset=iso8859-15")
         end
       end
 
@@ -226,7 +228,8 @@
           Yast::Encoding.SetUtf8Lang(false)
           Yast::Encoding.SetEncLang("de_DE")
           # "codepage=437" is default and thus omitted
-          expect(described_class::VFAT.default_fstab_options("/bootme")).to eq 
["iocharset=iso8859-15"]
+          expect(described_class::VFAT.default_fstab_options("/bootme"))
+            .to eq ["iocharset=iso8859-15"]
         end
       end
     end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-storage-ng-5.0.35/test/y2storage/proposal_luks2_x86_test.rb 
new/yast2-storage-ng-5.0.37/test/y2storage/proposal_luks2_x86_test.rb
--- old/yast2-storage-ng-5.0.35/test/y2storage/proposal_luks2_x86_test.rb       
2025-08-06 14:13:12.000000000 +0200
+++ new/yast2-storage-ng-5.0.37/test/y2storage/proposal_luks2_x86_test.rb       
2025-10-23 10:08:23.000000000 +0200
@@ -68,69 +68,51 @@
       expect(encs.map(&:pbkdf)).to all(eq pbkdf)
     end
 
-    RSpec.shared_examples "/boot unless PBKDF2" do
-      context "using Argon2id as key derivation function" do
-        let(:pbkdf) { Y2Storage::PbkdFunction::ARGON2ID }
-
-        it "proposes a separate unencrypted /boot partition" do
-          proposal.propose
-          boot_fs = proposal.devices.filesystems.find { |fs| fs.mount_path == 
"/boot" }
-          expect(boot_fs.encrypted?).to eq false
-        end
+    RSpec.shared_examples "proposes /boot" do
+      it "does propose a separate /boot partition" do
+        proposal.propose
+        boot_fs = proposal.devices.filesystems.find { |fs| fs.mount_path == 
"/boot" }
+        expect(boot_fs.encrypted?).to eq false
       end
+    end
 
-      context "using PBKDF2 as key derivation function" do
-        let(:pbkdf) { Y2Storage::PbkdFunction::PBKDF2 }
-
-        it "does not propose a separate /boot partition" do
-          proposal.propose
-          boot_fs = proposal.devices.filesystems.find { |fs| fs.mount_path == 
"/boot" }
-          expect(boot_fs).to be_nil
-        end
+    RSpec.shared_examples "not proposes /boot" do
+      it "does not propose a separate /boot partition" do
+        proposal.propose
+        boot_fs = proposal.devices.filesystems.find { |fs| fs.mount_path == 
"/boot" }
+        expect(boot_fs).to be_nil
       end
     end
 
-    RSpec.shared_examples "correct PBKDF encrypted partitions" do
-      context "using Argon2id as key derivation function" do
-        let(:pbkdf) { Y2Storage::PbkdFunction::ARGON2ID }
-
-        it "proposes LUKS2 encrypted partitions with Argon2 for all system 
partitions" do
-          proposal.propose
-          expect_luks2_fs("/", Y2Storage::PbkdFunction::ARGON2ID)
-          expect_luks2_fs("swap", Y2Storage::PbkdFunction::ARGON2ID)
-        end
+    RSpec.shared_examples "correct Argon2id encrypted partitions" do
+      it "proposes LUKS2 encrypted partitions with Argon2 for all system 
partitions" do
+        proposal.propose
+        expect_luks2_fs("/", Y2Storage::PbkdFunction::ARGON2ID)
+        expect_luks2_fs("swap", Y2Storage::PbkdFunction::ARGON2ID)
       end
+    end
 
-      context "using PBKDF2 as key derivation function" do
-        let(:pbkdf) { Y2Storage::PbkdFunction::PBKDF2 }
-
-        it "proposes LUKS2 encrypted partitions with PBKDF2 for all system 
partitions" do
-          proposal.propose
-          expect_luks2_fs("/", Y2Storage::PbkdFunction::PBKDF2)
-          expect_luks2_fs("swap", Y2Storage::PbkdFunction::PBKDF2)
-        end
+    RSpec.shared_examples "correct PBKDF2 encrypted partitions" do
+      it "proposes LUKS2 encrypted partitions with PBKDF2 for all system 
partitions" do
+        proposal.propose
+        expect_luks2_fs("/", Y2Storage::PbkdFunction::PBKDF2)
+        expect_luks2_fs("swap", Y2Storage::PbkdFunction::PBKDF2)
       end
     end
 
-    RSpec.shared_examples "correct PBKDF encrypted LVM" do
-      context "using Argon2id as key derivation function" do
-        let(:pbkdf) { Y2Storage::PbkdFunction::ARGON2ID }
-
-        it "proposes LUKS2 encrypted LVM with Argon2 for all system volumes" do
-          proposal.propose
-          expect_luks2_lvm_fs("/", Y2Storage::PbkdFunction::ARGON2ID)
-          expect_luks2_lvm_fs("swap", Y2Storage::PbkdFunction::ARGON2ID)
-        end
+    RSpec.shared_examples "correct Argon2id encrypted LVM" do
+      it "proposes LUKS2 encrypted LVM with Argon2 for all system volumes" do
+        proposal.propose
+        expect_luks2_lvm_fs("/", Y2Storage::PbkdFunction::ARGON2ID)
+        expect_luks2_lvm_fs("swap", Y2Storage::PbkdFunction::ARGON2ID)
       end
+    end
 
-      context "using PBKDF2 as key derivation function" do
-        let(:pbkdf) { Y2Storage::PbkdFunction::PBKDF2 }
-
-        it "proposes LUKS2 encrypted LVM with PBKDF2 for all system volumes" do
-          proposal.propose
-          expect_luks2_lvm_fs("/", Y2Storage::PbkdFunction::PBKDF2)
-          expect_luks2_lvm_fs("swap", Y2Storage::PbkdFunction::PBKDF2)
-        end
+    RSpec.shared_examples "correct PBKDF2 encrypted LVM" do
+      it "proposes LUKS2 encrypted LVM with PBKDF2 for all system volumes" do
+        proposal.propose
+        expect_luks2_lvm_fs("/", Y2Storage::PbkdFunction::PBKDF2)
+        expect_luks2_lvm_fs("swap", Y2Storage::PbkdFunction::PBKDF2)
       end
     end
 
@@ -140,16 +122,32 @@
       context "proposing LVM" do
         let(:lvm) { true }
 
-        # FIXME: commented out because the combination of LVM + LUKS2 with 
Argon2 doesn't work yet
-        # include_examples "/boot unless PBKDF2"
-        include_examples "correct PBKDF encrypted LVM"
+        context "default ARGON2ID" do
+          let(:pbkdf) { Y2Storage::PbkdFunction::ARGON2ID }
+          # FIXME: commented out because the combination of LVM + LUKS2 with 
Argon2 doesn't work yet
+          # include_examples "proposes /boot"
+          include_examples "correct Argon2id encrypted LVM"
+        end
+        context "default PBKDF2" do
+          let(:pbkdf) { Y2Storage::PbkdFunction::PBKDF2 }
+          include_examples "correct PBKDF2 encrypted LVM"
+          include_examples "not proposes /boot"
+        end
       end
 
       context "proposing partitions (no LVM)" do
         let(:lvm) { false }
 
-        include_examples "/boot unless PBKDF2"
-        include_examples "correct PBKDF encrypted partitions"
+        context "default ARGON2ID" do
+          let(:pbkdf) { Y2Storage::PbkdFunction::ARGON2ID }
+          include_examples "correct Argon2id encrypted partitions"
+          include_examples "proposes /boot"
+        end
+        context "default PBKDF2" do
+          let(:pbkdf) { Y2Storage::PbkdFunction::PBKDF2 }
+          include_examples "correct PBKDF2 encrypted partitions"
+          include_examples "not proposes /boot"
+        end
       end
     end
 
@@ -159,16 +157,37 @@
       context "proposing LVM" do
         let(:lvm) { true }
 
-        # FIXME: commented out because the combination of LVM + LUKS2 with 
Argon2 doesn't work yet
-        # include_examples "/boot unless PBKDF2"
-        include_examples "correct PBKDF encrypted LVM"
+        context "default ARGON2ID" do
+          let(:pbkdf) { Y2Storage::PbkdFunction::ARGON2ID }
+          # proposes PBKDF2 although ARGON2ID has been set in the
+          # control.xml file because grub2 in a none EFI system can
+          # only handle PBKDF2 (bnc#1249670).
+          include_examples "correct PBKDF2 encrypted LVM"
+          include_examples "not proposes /boot"
+        end
+        context "default PBKDF2" do
+          let(:pbkdf) { Y2Storage::PbkdFunction::PBKDF2 }
+          include_examples "correct PBKDF2 encrypted LVM"
+          include_examples "not proposes /boot"
+        end
       end
 
       context "proposing partitions (no LVM)" do
         let(:lvm) { false }
 
-        include_examples "/boot unless PBKDF2"
-        include_examples "correct PBKDF encrypted partitions"
+        context "default ARGON2ID" do
+          # proposes PBKDF2 although ARGON2ID has been set in the
+          # control.xml file because grub2 in a none EFI system can
+          # only handle PBKDF2 (bnc#1249670).
+          let(:pbkdf) { Y2Storage::PbkdFunction::ARGON2ID }
+          include_examples "correct PBKDF2 encrypted partitions"
+          include_examples "not proposes /boot"
+        end
+        context "default PBKDF2" do
+          let(:pbkdf) { Y2Storage::PbkdFunction::PBKDF2 }
+          include_examples "correct PBKDF2 encrypted partitions"
+          include_examples "not proposes /boot"
+        end
       end
     end
   end

Reply via email to