Hello community, here is the log from the commit of package yast2-bootloader for openSUSE:Factory checked in at 2018-12-31 09:42:17 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/yast2-bootloader (Old) and /work/SRC/openSUSE:Factory/.yast2-bootloader.new.28833 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "yast2-bootloader" Mon Dec 31 09:42:17 2018 rev:269 rq:653888 version:4.1.13 Changes: -------- --- /work/SRC/openSUSE:Factory/yast2-bootloader/yast2-bootloader.changes 2018-11-01 19:04:13.882013738 +0100 +++ /work/SRC/openSUSE:Factory/.yast2-bootloader.new.28833/yast2-bootloader.changes 2018-12-31 09:42:18.934416755 +0100 @@ -1,0 +2,15 @@ +Tue Dec 4 15:14:47 UTC 2018 - jreidin...@suse.com + +- always use absolute path to binaries (bsc#1118291) +- escape properly shell arguments (bsc#1118291) +- do not show grub2 password in list of processes when encrypting + (bsc#1118291) +- 4.1.13 + +------------------------------------------------------------------- +Sat Nov 24 00:39:54 UTC 2018 - Stasiek Michalski <hel...@mailbox.org> + +- Provide icon with module (boo#1109310) +- 4.1.12 + +------------------------------------------------------------------- Old: ---- yast2-bootloader-4.1.11.tar.bz2 New: ---- yast2-bootloader-4.1.13.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ yast2-bootloader.spec ++++++ --- /var/tmp/diff_new_pack.lMlQC9/_old 2018-12-31 09:42:19.366416401 +0100 +++ /var/tmp/diff_new_pack.lMlQC9/_new 2018-12-31 09:42:19.366416401 +0100 @@ -17,7 +17,7 @@ Name: yast2-bootloader -Version: 4.1.11 +Version: 4.1.13 Release: 0 BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -101,6 +101,7 @@ %dir %{yast_schemadir}/autoyast/rnc %{yast_schemadir}/autoyast/rnc/bootloader.rnc %{yast_libdir}/bootloader +%{yast_icondir} %dir %{yast_docdir} %license COPYING ++++++ yast2-bootloader-4.1.11.tar.bz2 -> yast2-bootloader-4.1.13.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-bootloader-4.1.11/package/yast2-bootloader.changes new/yast2-bootloader-4.1.13/package/yast2-bootloader.changes --- old/yast2-bootloader-4.1.11/package/yast2-bootloader.changes 2018-10-24 10:51:22.000000000 +0200 +++ new/yast2-bootloader-4.1.13/package/yast2-bootloader.changes 2018-12-04 16:58:26.000000000 +0100 @@ -1,4 +1,19 @@ ------------------------------------------------------------------- +Tue Dec 4 15:14:47 UTC 2018 - jreidin...@suse.com + +- always use absolute path to binaries (bsc#1118291) +- escape properly shell arguments (bsc#1118291) +- do not show grub2 password in list of processes when encrypting + (bsc#1118291) +- 4.1.13 + +------------------------------------------------------------------- +Sat Nov 24 00:39:54 UTC 2018 - Stasiek Michalski <hel...@mailbox.org> + +- Provide icon with module (boo#1109310) +- 4.1.12 + +------------------------------------------------------------------- Tue Oct 23 14:54:29 UTC 2018 - jreidin...@suse.com - Do not crash if an unknown device is found in a cloned configuration diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-bootloader-4.1.11/package/yast2-bootloader.spec new/yast2-bootloader-4.1.13/package/yast2-bootloader.spec --- old/yast2-bootloader-4.1.11/package/yast2-bootloader.spec 2018-10-24 10:51:22.000000000 +0200 +++ new/yast2-bootloader-4.1.13/package/yast2-bootloader.spec 2018-12-04 16:58:26.000000000 +0100 @@ -17,7 +17,7 @@ Name: yast2-bootloader -Version: 4.1.11 +Version: 4.1.13 Release: 0 BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -101,6 +101,7 @@ %dir %{yast_schemadir}/autoyast/rnc %{yast_schemadir}/autoyast/rnc/bootloader.rnc %{yast_libdir}/bootloader +%{yast_icondir} %dir %{yast_docdir} %license COPYING diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-bootloader-4.1.11/src/icons/hicolor/scalable/apps/yast-bootloader.svg new/yast2-bootloader-4.1.13/src/icons/hicolor/scalable/apps/yast-bootloader.svg --- old/yast2-bootloader-4.1.11/src/icons/hicolor/scalable/apps/yast-bootloader.svg 1970-01-01 01:00:00.000000000 +0100 +++ new/yast2-bootloader-4.1.13/src/icons/hicolor/scalable/apps/yast-bootloader.svg 2018-12-04 16:58:26.000000000 +0100 @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<svg version="1.1" viewBox="0 0 128 128" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<defs> +<linearGradient id="b" x1="4" x2="60" y1="19" y2="19" gradientTransform="matrix(3.9932 0 0 4 .027382 -147)" gradientUnits="userSpaceOnUse"> +<stop stop-color="#9a9996" offset="0"/> +<stop stop-color="#9a9996" offset=".10113"/> +<stop stop-color="#c0bfbc" offset=".17405"/> +<stop stop-color="#c0bfbc" offset=".39765"/> +<stop stop-color="#9a9996" offset="1"/> +</linearGradient> +<linearGradient id="a" x1="130" x2="130" y1="-191" y2="29" gradientUnits="userSpaceOnUse"> +<stop stop-color="#f6f5f4" offset="0"/> +<stop stop-color="#deddda" offset="1"/> +</linearGradient> +</defs> +<g transform="matrix(.5 0 0 .5 0 103.5)"> +<ellipse cx="127.81" cy="-71" rx="111.81" ry="112" fill="url(#b)"/> +<ellipse cx="128.19" cy="-79" rx="111.81" ry="112" fill="url(#a)"/> +<path d="m103.85-155.3a79.863 80 0 0 0 -55.904 76.297 79.863 80 0 0 0 79.863 80 79.863 80 0 0 0 79.863 -80 79.863 80 0 0 0 -55.904 -76.218v16.938a63.89 64 0 0 1 39.932 59.282 63.89 64 0 0 1 -63.89 64 63.89 64 0 0 1 -63.89 -64 63.89 64 0 0 1 39.932 -59.297v-17z" fill="#e01b24"/> +<rect x="119.82" y="-159" width="15.973" height="64" ry="8" fill="#e01b24"/> +</g> +</svg> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-bootloader-4.1.11/src/icons/hicolor/symbolic/apps/yast-bootloader-symbolic.svg new/yast2-bootloader-4.1.13/src/icons/hicolor/symbolic/apps/yast-bootloader-symbolic.svg --- old/yast2-bootloader-4.1.11/src/icons/hicolor/symbolic/apps/yast-bootloader-symbolic.svg 1970-01-01 01:00:00.000000000 +0100 +++ new/yast2-bootloader-4.1.13/src/icons/hicolor/symbolic/apps/yast-bootloader-symbolic.svg 2018-12-04 16:58:26.000000000 +0100 @@ -0,0 +1,3 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"> + <path d="M 8 0 A 8 8 0 0 0 0 8 A 8 8 0 0 0 8 16 A 8 8 0 0 0 10 15.740234 L 10 13.648438 A 6 6 0 0 1 8 14 A 6 6 0 0 1 2 8 A 6 6 0 0 1 6 2.3515625 L 6 4.5410156 A 4 4 0 0 0 4 8 A 4 4 0 0 0 8 12 A 4 4 0 0 0 10 11.458984 L 10 10 L 11.458984 10 A 4 4 0 0 0 12 8 A 4 4 0 0 0 10 4.5410156 L 10 2.3496094 A 6 6 0 0 1 14 8 A 6 6 0 0 1 13.650391 10 L 15.734375 10 A 8 8 0 0 0 16 8 A 8 8 0 0 0 8 0 z M 7 2 L 9 2 L 9 7 L 7 7 L 7 2 z M 11 11 L 11 16 L 16 16 L 16 11 L 11 11 z M 12 12 L 13 12 L 13 13 L 14 13 L 14 12 L 15 12 L 15 14 L 14 14 L 14 15 L 13 15 L 13 14 L 12 14 L 12 12 z " fill="#c0bfbc" /> +</svg> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-bootloader-4.1.11/src/lib/bootloader/boot_record_backup.rb new/yast2-bootloader-4.1.13/src/lib/bootloader/boot_record_backup.rb --- old/yast2-bootloader-4.1.11/src/lib/bootloader/boot_record_backup.rb 2018-10-24 10:51:22.000000000 +0200 +++ new/yast2-bootloader-4.1.13/src/lib/bootloader/boot_record_backup.rb 2018-12-04 16:58:26.000000000 +0100 @@ -1,5 +1,6 @@ require "yast" require "date" +require "shellwords" module Bootloader # Responsibility of class is to manage backup of MBR, respective PBR of disk, @@ -35,7 +36,7 @@ # Backup is stored in /var/lib/YaST2/backup_boot_sectors, in logs # directory and if it is MBR of primary disk, then also in /boot/backup_mbr def write - Yast::SCR.Execute(BASH_PATH, "mkdir -p #{MAIN_BACKUP_DIR}") + Yast::SCR.Execute(BASH_PATH, "/usr/sbin/mkdir -p #{MAIN_BACKUP_DIR.shellescape}") if exists? rotate @@ -88,7 +89,8 @@ def copy_br(device, target_path, bs: 512) Yast::SCR.Execute( BASH_PATH, - "/bin/dd if=#{device} of=#{target_path} bs=#{bs} count=1 2>&1" + "/bin/dd if=#{device.shellescape} of=#{target_path.shellescape} " \ + "bs=#{bs.to_s.shellescape} count=1 2>&1" ) end @@ -114,7 +116,7 @@ Yast::SCR.Execute( BASH_PATH, format("/bin/mv %{path} %{path}-%{date}", - path: device_file_path, date: change_date) + path: device_file_path.shellescape, date: change_date.shellescape) ) end end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-bootloader-4.1.11/src/lib/bootloader/grub2pwd.rb new/yast2-bootloader-4.1.13/src/lib/bootloader/grub2pwd.rb --- old/yast2-bootloader-4.1.11/src/lib/bootloader/grub2pwd.rb 2018-10-24 10:51:22.000000000 +0200 +++ new/yast2-bootloader-4.1.13/src/lib/bootloader/grub2pwd.rb 2018-12-04 16:58:26.000000000 +0100 @@ -1,4 +1,5 @@ require "yast" +require "shellwords" Yast.import "Stage" @@ -120,28 +121,23 @@ return unless used_on_target? # operate on target as we have to remove password during installation from target grub2 - Yast::SCR.Execute(Yast::Path.new(".target.bash"), "rm '#{PWD_ENCRYPTION_FILE}'") + Yast::SCR.Execute(Yast::Path.new(".target.bash"), "rm '#{PWD_ENCRYPTION_FILE.shellescape}'") end def encrypt(password) - Yast.import "String" + result = Yast::Execute.locally("/usr/bin/grub2-mkpasswd-pbkdf2", + env: { "LANG" => "C" }, + stdin: "#{password}\n#{password}\n", + stdout: :capture) - quoted_password = Yast::String.Quote(password) - result = Yast::WFM.Execute(YAST_BASH_PATH, - "echo '#{quoted_password}\n#{quoted_password}\n' | LANG=C grub2-mkpasswd-pbkdf2") - - if result["exit"] != 0 - raise "Failed to create encrypted password for grub2. Command output: #{result["stderr"]}" - end - - pwd_line = result["stdout"].split("\n").grep(/password is/).first + pwd_line = result.split("\n").grep(/password is/).first if !pwd_line - raise "grub2-mkpasswd output do not contain encrypted password. Output: #{result["stdout"]}" + raise "grub2-mkpasswd output do not contain encrypted password. Output: #{result}" end ret = pwd_line[/^.*password is\s*(\S+)/, 1] if !ret - raise "grub2-mkpasswd output do not contain encrypted password. Output: #{result["stdout"]}" + raise "grub2-mkpasswd output do not contain encrypted password. Output: #{result}" end ret diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-bootloader-4.1.11/src/modules/BootSupportCheck.rb new/yast2-bootloader-4.1.13/src/modules/BootSupportCheck.rb --- old/yast2-bootloader-4.1.11/src/modules/BootSupportCheck.rb 2018-10-24 10:51:22.000000000 +0200 +++ new/yast2-bootloader-4.1.13/src/modules/BootSupportCheck.rb 2018-12-04 16:58:26.000000000 +0100 @@ -125,7 +125,7 @@ # Check if EFI is needed def efi? - cmd = "modprobe efivars 2>/dev/null" + cmd = "/usr/sbin/modprobe efivars 2>/dev/null" SCR.Execute(path(".target.bash_output"), cmd) FileUtils.Exists("/sys/firmware/efi/systab") end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-bootloader-4.1.11/test/grub2pwd_test.rb new/yast2-bootloader-4.1.13/test/grub2pwd_test.rb --- old/yast2-bootloader-4.1.11/test/grub2pwd_test.rb 2018-10-24 10:51:22.000000000 +0200 +++ new/yast2-bootloader-4.1.13/test/grub2pwd_test.rb 2018-12-04 16:58:26.000000000 +0100 @@ -214,13 +214,9 @@ PBKDF2 hash of your password is #{ENCRYPTED_PASSWORD} EOF - expect(Yast::WFM).to receive(:Execute) - .with(kind_of(Yast::Path), /grub2-mkpasswd/) - .and_return( - "exit" => 0, - "stderr" => "", - "stdout" => success_stdout - ) + expect(Yast::Execute).to receive(:locally) + .with(/grub2-mkpasswd/, anything) + .and_return(success_stdout) subject.password = "really strong password" expect(subject.instance_variable_get(:@encrypted_password)).to eq ENCRYPTED_PASSWORD