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 - jreidinger@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
+
+- 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 - jreidinger@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
+
+- Provide icon with module (boo#1109310)
+- 4.1.12
+
+-------------------------------------------------------------------
Tue Oct 23 14:54:29 UTC 2018 - jreidinger@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