Hello community, here is the log from the commit of package yast2-registration for openSUSE:Factory checked in at 2018-12-31 09:44:01 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/yast2-registration (Old) and /work/SRC/openSUSE:Factory/.yast2-registration.new.28833 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "yast2-registration" Mon Dec 31 09:44:01 2018 rev:27 rq:658051 version:4.1.11 Changes: -------- --- /work/SRC/openSUSE:Factory/yast2-registration/yast2-registration.changes 2018-11-22 13:24:40.550053139 +0100 +++ /work/SRC/openSUSE:Factory/.yast2-registration.new.28833/yast2-registration.changes 2018-12-31 09:44:03.346331278 +0100 @@ -1,0 +2,20 @@ +Fri Dec 14 13:14:15 UTC 2018 - [email protected] + +- Hardening commands execution (part of bsc#1118291). +- Replace backticks by Yast::Execute. +- 4.1.11 + +------------------------------------------------------------------- +Fri Dec 14 09:41:49 UTC 2018 - [email protected] + +- Fixed UI display issue in the installation workflow + (not cleared screen) (bsc#1117492) +- 4.1.10 + +------------------------------------------------------------------- +Mon Nov 26 01:17:32 UTC 2018 - Noah Davis <[email protected]> + +- Provide icon with module (boo#1109310) +- 4.1.9 + +------------------------------------------------------------------- Old: ---- yast2-registration-4.1.8.tar.bz2 New: ---- yast2-registration-4.1.11.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ yast2-registration.spec ++++++ --- /var/tmp/diff_new_pack.3JLkPe/_old 2018-12-31 09:44:03.994330747 +0100 +++ /var/tmp/diff_new_pack.3JLkPe/_new 2018-12-31 09:44:03.998330744 +0100 @@ -17,7 +17,7 @@ Name: yast2-registration -Version: 4.1.8 +Version: 4.1.11 Release: 0 BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -98,6 +98,7 @@ %{yast_libdir}/registration %{yast_libdir}/yast %{yast_libdir}/yast/suse_connect.rb +%{yast_icondir} %doc %{yast_docdir} %license COPYING ++++++ yast2-registration-4.1.8.tar.bz2 -> yast2-registration-4.1.11.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-registration-4.1.8/package/yast2-registration.changes new/yast2-registration-4.1.11/package/yast2-registration.changes --- old/yast2-registration-4.1.8/package/yast2-registration.changes 2018-11-21 17:44:29.000000000 +0100 +++ new/yast2-registration-4.1.11/package/yast2-registration.changes 2018-12-14 14:25:06.000000000 +0100 @@ -1,4 +1,24 @@ ------------------------------------------------------------------- +Fri Dec 14 13:14:15 UTC 2018 - [email protected] + +- Hardening commands execution (part of bsc#1118291). +- Replace backticks by Yast::Execute. +- 4.1.11 + +------------------------------------------------------------------- +Fri Dec 14 09:41:49 UTC 2018 - [email protected] + +- Fixed UI display issue in the installation workflow + (not cleared screen) (bsc#1117492) +- 4.1.10 + +------------------------------------------------------------------- +Mon Nov 26 01:17:32 UTC 2018 - Noah Davis <[email protected]> + +- Provide icon with module (boo#1109310) +- 4.1.9 + +------------------------------------------------------------------- Wed Nov 21 16:39:02 CET 2018 - [email protected] - Do not allow redirection while checking via HTTP request if diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-registration-4.1.8/package/yast2-registration.spec new/yast2-registration-4.1.11/package/yast2-registration.spec --- old/yast2-registration-4.1.8/package/yast2-registration.spec 2018-11-21 17:44:29.000000000 +0100 +++ new/yast2-registration-4.1.11/package/yast2-registration.spec 2018-12-14 14:25:06.000000000 +0100 @@ -17,7 +17,7 @@ Name: yast2-registration -Version: 4.1.8 +Version: 4.1.11 Release: 0 BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -99,6 +99,7 @@ %{yast_libdir}/registration %{yast_libdir}/yast %{yast_libdir}/yast/suse_connect.rb +%{yast_icondir} %doc %{yast_docdir} %license COPYING diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-registration-4.1.8/src/desktop/add_extensions.desktop new/yast2-registration-4.1.11/src/desktop/add_extensions.desktop --- old/yast2-registration-4.1.8/src/desktop/add_extensions.desktop 2018-11-21 17:44:29.000000000 +0100 +++ new/yast2-registration-4.1.11/src/desktop/add_extensions.desktop 2018-12-14 14:25:06.000000000 +0100 @@ -8,7 +8,7 @@ X-SuSE-YaST-Group=Software X-SuSE-YaST-Keywords=extensions,modules,software,registration,scc,package,repositories -Icon=yast-addon +Icon=yast-addon-extension Exec=/usr/bin/xdg-su -c "/sbin/yast2 scc select_extensions" Name=Add System Extensions or Modules diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-registration-4.1.8/src/icons/hicolor/scalable/apps/yast-addon-extension.svg new/yast2-registration-4.1.11/src/icons/hicolor/scalable/apps/yast-addon-extension.svg --- old/yast2-registration-4.1.8/src/icons/hicolor/scalable/apps/yast-addon-extension.svg 1970-01-01 01:00:00.000000000 +0100 +++ new/yast2-registration-4.1.11/src/icons/hicolor/scalable/apps/yast-addon-extension.svg 2018-12-14 14:25:06.000000000 +0100 @@ -0,0 +1 @@ +<svg viewBox="0 0 128 128" xmlns="http://www.w3.org/2000/svg"><linearGradient id="a" gradientUnits="userSpaceOnUse" x1="8" x2="120" y1="238" y2="238"><stop offset="0" stop-color="#c0bfbc"/><stop offset=".143" stop-color="#c0bfbc"/><stop offset=".25" stop-color="#deddda"/><stop offset=".5" stop-color="#c0bfbc" stop-opacity=".939"/><stop offset="1" stop-color="#c0bfbc" stop-opacity=".984"/></linearGradient><g stroke-width="4"><path d="M64 182c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56zm0 36a20 20 0 0 1 20 20 20 20 0 0 1-20 20 20 20 0 0 1-20-20 20 20 0 0 1 20-20z" fill="url(#a)" transform="translate(0 -172)"/><path d="M64 8C33.072 8 8 33.072 8 64s25.072 56 56 56 56-25.072 56-56S94.928 8 64 8zm0 36a20 20 0 0 1 20 20 20 20 0 0 1-20 20 20 20 0 0 1-20-20 20 20 0 0 1 20-20z" fill="#deddda"/><path d="M64 44a20 20 0 0 0-20 20 20 20 0 0 0 20 20 20 20 0 0 0 20-20 20 20 0 0 0-20-20zm0 12a8 8 0 0 1 8 8 8 8 0 0 1-8 8 8 8 0 0 1-8-8 8 8 0 0 1 8-8z" fill="#c0bfbc" fill-opacity=".947"/><path d="M64 8v36a20 20 0 0 1 14.133 5.867l25.469-25.469C93.468 14.264 79.464 8 64 8zM49.867 78.132l-25.469 25.469C34.532 113.735 48.536 119.999 64 119.999v-36a20 20 0 0 1-14.133-5.867z" fill="#f6f5f4" opacity=".5"/><path d="M64 40a24 24 0 0 0-24 24 24 24 0 0 0 24 24 24 24 0 0 0 24-24 24 24 0 0 0-24-24zm0 4a20 20 0 0 1 20 20 20 20 0 0 1-20 20 20 20 0 0 1-20-20 20 20 0 0 1 20-20z" fill="#9a9996" fill-opacity=".947"/></g><path d="M117.05 78h-14c-3-1-2.96-1.368-3-3-.052-2.091 3-4 3-7 0-2.216-1.784-4-4-4h-4c-2.216 0-4 1.784-4 4 0 3 2.914 4.751 3 7 .062 1.615 0 2-2.898 3H75.05v16c-1 3-1.368 2.96-3 3-2.092.052-4-3-7-3-2.216 0-4 1.784-4 4v4c0 2.216 1.784 4 4 4 3 0 4.751-2.914 7-3 1.614-.062 2 0 3 2.898V120h42v-14.246c-.96-2.74-1.363-2.814-2.948-2.754-2.248.087-4 3-7 3a3.99 3.99 0 0 1-4-4v-4c0-2.215 1.784-4 4-4 3 0 4.909 3.052 7 3 1.601-.04 1.989-.018 2.948-2.851z" fill="#1a5fb4"/><path d="M117 76h-14c-3-1-2.96-1.368-3-3-.052-2.091 3-4 3-7 0-2.216-1.784-4-4-4h-4c-2.216 0-4 1.784-4 4 0 3 2.914 4.751 3 7 .062 1.615 0 2-2.898 3H75v16c-1 3-1.368 2.96-3 3-2.092.052-4-3-7-3-2.216 0-4 1.784-4 4v4c0 2.216 1.784 4 4 4 3 0 4.751-2.914 7-3 1.614-.062 2 0 3 2.898V118h42v-14.246c-.96-2.74-1.363-2.814-2.948-2.754-2.248.087-4 3-7 3a3.99 3.99 0 0 1-4-4v-4c0-2.215 1.784-4 4-4 3 0 4.909 3.052 7 3 1.601-.04 1.989-.018 2.948-2.851z" fill="#3584e4"/></svg> \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-registration-4.1.8/src/icons/hicolor/scalable/apps/yast-product-registration.svg new/yast2-registration-4.1.11/src/icons/hicolor/scalable/apps/yast-product-registration.svg --- old/yast2-registration-4.1.8/src/icons/hicolor/scalable/apps/yast-product-registration.svg 1970-01-01 01:00:00.000000000 +0100 +++ new/yast2-registration-4.1.11/src/icons/hicolor/scalable/apps/yast-product-registration.svg 2018-12-14 14:25:06.000000000 +0100 @@ -0,0 +1 @@ +<svg height="128" width="128" xmlns="http://www.w3.org/2000/svg"><linearGradient id="a" gradientUnits="userSpaceOnUse" x1="24" x2="104" y1="20" y2="20"><stop offset="0" stop-color="#8ff0a4"/><stop offset="1" stop-color="#81dffe"/></linearGradient><path d="M20 8h88v108H20z" fill="#f6f5f4"/><path d="M20 116h88v4H20z" fill="#deddda"/><path d="M60 104h44v4H60z" fill="#5e5c64"/><path d="M24 16h80v8H24z" fill="url(#a)"/><path d="M24 32h80v4H24zm0 8h80v4H24zm0 8h52v4H24zm0 12h80v4H24zm0 8h80v4H24zm0 8h60v4H24z" fill="#deddda"/><path d="M60 92h4v12h-4zm4 0h36v4H64zm36 0h4v12h-4z" fill="#5e5c64"/><path d="M24 96h32v8H24z" fill="#deddda"/><path d="M99.828 28.172L60 68l8 8 39.82-39.82a10 10 0 0 0-7.992-8.008z" fill="#f6d32d"/><path d="M60 68l-8 16 16-8z" fill="#ffd097"/><path d="M105.07 30.93L64 72l4 4 39.82-39.82a10 10 0 0 0-2.75-5.25z" fill="#f5c211"/><path d="M64 72L52 84l16-8z" fill="#ffb56c"/><path d="M56 76l4 4-8 4z" fill="#3d3846"/><path d="M58 78l-6 6 8-4z"/><path d="M24 12h8v4h-8zm12 0h8v4h-8z" fill="#9a9996"/></svg> \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-registration-4.1.8/src/lib/registration/clients/inst_scc.rb new/yast2-registration-4.1.11/src/lib/registration/clients/inst_scc.rb --- old/yast2-registration-4.1.8/src/lib/registration/clients/inst_scc.rb 2018-11-21 17:44:29.000000000 +0100 +++ new/yast2-registration-4.1.11/src/lib/registration/clients/inst_scc.rb 2018-12-14 14:25:06.000000000 +0100 @@ -188,7 +188,7 @@ return Mode.normal ? :abort : :auto end - if Mode.update + if Stage.initial Wizard.SetContents( _("Registration"), Empty(), @@ -197,7 +197,9 @@ false, false ) + end + if Mode.update ::Registration::SwMgmt.copy_old_credentials(Installation.destdir) if File.exist?(SUSE::Connect::YaST::GLOBAL_CREDENTIALS_FILE) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-registration-4.1.8/src/lib/registration/sw_mgmt.rb new/yast2-registration-4.1.11/src/lib/registration/sw_mgmt.rb --- old/yast2-registration-4.1.8/src/lib/registration/sw_mgmt.rb 2018-11-21 17:44:29.000000000 +0100 +++ new/yast2-registration-4.1.11/src/lib/registration/sw_mgmt.rb 2018-12-14 14:25:06.000000000 +0100 @@ -25,7 +25,6 @@ require "tmpdir" require "fileutils" -require "shellwords" require "ostruct" require "registration/exceptions" @@ -35,6 +34,7 @@ require "packager/product_patterns" require "y2packager/product_reader" +require "yast2/execute" module Registration Yast.import "AddOnProduct" @@ -481,14 +481,28 @@ # SMT uses extra ACL permissions, make sure they are kept in the copied file, # (use "cp -a ", ::FileUtils.cp(..., preserve: true) cannot be used as it preserves only # the traditional Unix file permissions, the extended ACLs are NOT copied!) - `cp -a #{Shellwords.escape(file)} #{Shellwords.escape(new_file)}` + Yast::Execute.locally!("cp", "-a", file, new_file) - credentials = SUSE::Connect::YaST.credentials(new_file) + use_credentials(new_file) + rescue Cheetah::ExecutionFailed => error + log.warn "Cannot copy the old credentials file #{file} to #{new_file}: #{error.message}" + end + + # Use credentials from a file + # + # @param filename [String] credentials filename. + # @return [Boolean] true if credentials can be used; false otherwise. + def self.use_credentials(filename) + credentials = SUSE::Connect::YaST.credentials(filename) log.info "Using previous credentials (username): #{credentials.username}" + true rescue SUSE::Connect::MalformedSccCredentialsFile => e log.warn "Cannot parse the credentials file: #{e.inspect}" + false end + private_class_method :use_credentials + def self.find_addon_updates(addons) log.info "Available addons: #{addons.map(&:identifier)}" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-registration-4.1.8/src/lib/registration/ui/base_system_registration_dialog.rb new/yast2-registration-4.1.11/src/lib/registration/ui/base_system_registration_dialog.rb --- old/yast2-registration-4.1.8/src/lib/registration/ui/base_system_registration_dialog.rb 2018-11-21 17:44:29.000000000 +0100 +++ new/yast2-registration-4.1.11/src/lib/registration/ui/base_system_registration_dialog.rb 2018-12-14 14:25:06.000000000 +0100 @@ -74,6 +74,8 @@ set_focus event_loop + ensure + Yast::Wizard.ClearContents end # Set the initial action diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-registration-4.1.8/test/sw_mgmt_spec.rb new/yast2-registration-4.1.11/test/sw_mgmt_spec.rb --- old/yast2-registration-4.1.8/test/sw_mgmt_spec.rb 2018-11-21 17:44:29.000000000 +0100 +++ new/yast2-registration-4.1.11/test/sw_mgmt_spec.rb 2018-12-14 14:25:06.000000000 +0100 @@ -224,67 +224,85 @@ let(:scc_credentials) { File.join(root_dir, target_dir, "SCCcredentials") } before do - expect(File).to receive(:exist?).with(target_dir).and_return(false) + allow(File).to receive(:exist?).with(target_dir).and_return(false) allow(File).to receive(:file?).and_return(true) - expect(FileUtils).to receive(:mkdir_p).with(target_dir) + allow(FileUtils).to receive(:mkdir_p).with(target_dir) end it "does not fail when the old credentials are missing" do - expect(Dir).to receive(:[]).with(File.join(root_dir, target_dir, "*")) + allow(Dir).to receive(:[]).with(File.join(root_dir, target_dir, "*")) .and_return([]) # no copy - expect(FileUtils).to receive(:cp).never + expect(Yast::Execute).to_not receive(:locally!).with("cp", any_args) + + expect { subject.copy_old_credentials(root_dir) }.to_not raise_error + end + + it "does not fail when the old credentials file cannot be copied" do + allow(Dir).to receive(:[]).with(File.join(root_dir, target_dir, "*")) + .and_return([ncc_credentials]) + + error = Cheetah::ExecutionFailed.new([], "", nil, nil) + + allow(Yast::Execute).to receive(:locally!).with("cp", any_args) + .and_raise(error) expect { subject.copy_old_credentials(root_dir) }.to_not raise_error end it "copies old NCC credentials at upgrade" do - expect(Dir).to receive(:[]).with(File.join(root_dir, target_dir, "*")) + allow(Dir).to receive(:[]).with(File.join(root_dir, target_dir, "*")) .and_return([ncc_credentials]) - expect(subject).to receive(:`).with("cp -a " + ncc_credentials + " " + - File.join(target_dir, "SCCcredentials")) - expect(SUSE::Connect::YaST).to receive(:credentials).and_return(OpenStruct.new) + allow(SUSE::Connect::YaST).to receive(:credentials).and_return(OpenStruct.new) + + expect(Yast::Execute).to receive(:locally!) + .with("cp", "-a", ncc_credentials, File.join(target_dir, "SCCcredentials")) subject.copy_old_credentials(root_dir) end it "prefers the SCC credentials if both NCC and SCC credentials are present" do # deliberately return the SCC credentials first here - expect(Dir).to receive(:[]).with(File.join(root_dir, target_dir, "*")) + allow(Dir).to receive(:[]).with(File.join(root_dir, target_dir, "*")) .and_return([scc_credentials, ncc_credentials]) - # copy the credentials in the NCC, SCC order (bsc#1096813) - expect(subject).to receive(:`).with("cp -a " + ncc_credentials + " " + - File.join(target_dir, "SCCcredentials")).ordered - expect(subject).to receive(:`).with("cp -a " + scc_credentials + " " + - File.join(target_dir, "SCCcredentials")).ordered - allow(SUSE::Connect::YaST).to receive(:credentials).and_return(OpenStruct.new) + # copy the credentials in the NCC, SCC order (bsc#1096813) + expect(Yast::Execute).to receive(:locally!) + .with("cp", "-a", ncc_credentials, File.join(target_dir, "SCCcredentials")) + .ordered + + expect(Yast::Execute).to receive(:locally!) + .with("cp", "-a", scc_credentials, File.join(target_dir, "SCCcredentials")) + .ordered + subject.copy_old_credentials(root_dir) end it "copies old SCC credentials at upgrade" do - expect(Dir).to receive(:[]).with(File.join(root_dir, target_dir, "*")) + allow(Dir).to receive(:[]).with(File.join(root_dir, target_dir, "*")) .and_return([scc_credentials]) - expect(subject).to receive(:`).with("cp -a " + scc_credentials + " " + - File.join(target_dir, "SCCcredentials")) - expect(SUSE::Connect::YaST).to receive(:credentials).and_return(OpenStruct.new) + allow(SUSE::Connect::YaST).to receive(:credentials).and_return(OpenStruct.new) + + expect(Yast::Execute).to receive(:locally!) + .with("cp", "-a", scc_credentials, File.join(target_dir, "SCCcredentials")) subject.copy_old_credentials(root_dir) end it "copies old SMT credentials at upgrade" do smt_credentials = File.join(root_dir, target_dir, "SMT-http_smt_example_com") - expect(Dir).to receive(:[]).with(File.join(root_dir, target_dir, "*")) + allow(Dir).to receive(:[]).with(File.join(root_dir, target_dir, "*")) .and_return([smt_credentials]) - expect(subject).to receive(:`).with("cp -a " + smt_credentials + " " + - File.join(target_dir, "SMT-http_smt_example_com")) - expect(SUSE::Connect::YaST).to receive(:credentials).and_return(OpenStruct.new) + allow(SUSE::Connect::YaST).to receive(:credentials).and_return(OpenStruct.new) + + expect(Yast::Execute).to receive(:locally!) + .with("cp", "-a", smt_credentials, File.join(target_dir, "SMT-http_smt_example_com")) subject.copy_old_credentials(root_dir) end
