Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package yast2-packager for openSUSE:Factory checked in at 2021-03-28 11:54:03 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/yast2-packager (Old) and /work/SRC/openSUSE:Factory/.yast2-packager.new.2401 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "yast2-packager" Sun Mar 28 11:54:03 2021 rev:408 rq:880127 version:4.3.20 Changes: -------- --- /work/SRC/openSUSE:Factory/yast2-packager/yast2-packager.changes 2021-02-26 21:58:46.923785548 +0100 +++ /work/SRC/openSUSE:Factory/.yast2-packager.new.2401/yast2-packager.changes 2021-03-28 11:54:12.992109962 +0200 @@ -0,0 +1,46 @@ +------------------------------------------------------------------- +Thu Mar 18 16:33:19 UTC 2021 - Ladislav Slez??k <lsle...@suse.cz> + +- Do not create zypp cache symlink when running in installed + system, it would create /var/cache/zypp -> /var/cache/zypp + loop (bsc#1183683) +- Remove the "Software Repositories" button from the YaST console, + users can easily break the installer with it. Added + "configure_repositories" command to the command line interface + for experts (bsc#1183687) +- 4.3.20 + +------------------------------------------------------------------- +Thu Mar 11 15:01:58 UTC 2021 - Ladislav Slez??k <lsle...@suse.cz> + +- Move the libzypp cache to the installed system to save some + memory and avoid crashing because out of memory (bsc#1182928) +- 4.3.19 + +------------------------------------------------------------------- +Tue Mar 9 09:15:41 UTC 2021 - Ladislav Slez??k <lsle...@suse.cz> + +- Added IBM tools product rename to the list (part of bsc#1182837) +- 4.3.18 + +------------------------------------------------------------------- +Mon Mar 8 15:44:31 UTC 2021 - Imobach Gonzalez Sosa <igonzalezs...@suse.com> + +- During installation, explain what "online repositories" are + (bsc#1180707). +- 4.3.17 + +------------------------------------------------------------------- +Mon Mar 8 14:31:30 UTC 2021 - Ladislav Slez??k <lsle...@suse.cz> + +- Extend the special installer configuration dialog with + repository options (jsc#PM-1895, jsc#SLE-16263) +- 4.3.16 + +------------------------------------------------------------------- +Fri Mar 5 10:41:42 UTC 2021 - Ancor Gonzalez Sosa <an...@suse.com> + +- Support for configuring minimalistic DNF (bsc#1182849) + contributed by Sasi Olin (hel@lcp.world). +- 4.3.15 + Old: ---- yast2-packager-4.3.14.tar.bz2 New: ---- yast2-packager-4.3.20.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ yast2-packager.spec ++++++ --- /var/tmp/diff_new_pack.f4INTy/_old 2021-03-28 11:54:13.604110504 +0200 +++ /var/tmp/diff_new_pack.f4INTy/_new 2021-03-28 11:54:13.608110508 +0200 @@ -17,7 +17,7 @@ Name: yast2-packager -Version: 4.3.14 +Version: 4.3.20 Release: 0 Summary: YaST2 - Package Library License: GPL-2.0-or-later @@ -116,8 +116,8 @@ %{yast_yncludedir}/packager/* %{yast_libdir}/language_tag.rb %{yast_libdir}/packager/* -%{yast_libdir}/packager/cfa/* %{yast_libdir}/y2packager/* +%{yast_libdir}/installation/* %{yast_clientdir}/*.rb %{yast_moduledir}/* %{yast_desktopdir}/*.desktop ++++++ yast2-packager-4.3.14.tar.bz2 -> yast2-packager-4.3.20.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-packager-4.3.14/package/yast2-packager.changes new/yast2-packager-4.3.20/package/yast2-packager.changes --- old/yast2-packager-4.3.14/package/yast2-packager.changes 2021-02-19 16:52:01.000000000 +0100 +++ new/yast2-packager-4.3.20/package/yast2-packager.changes 2021-03-19 15:41:17.000000000 +0100 @@ -1,3 +1,49 @@ +------------------------------------------------------------------- +Thu Mar 18 16:33:19 UTC 2021 - Ladislav Slez??k <lsle...@suse.cz> + +- Do not create zypp cache symlink when running in installed + system, it would create /var/cache/zypp -> /var/cache/zypp + loop (bsc#1183683) +- Remove the "Software Repositories" button from the YaST console, + users can easily break the installer with it. Added + "configure_repositories" command to the command line interface + for experts (bsc#1183687) +- 4.3.20 + +------------------------------------------------------------------- +Thu Mar 11 15:01:58 UTC 2021 - Ladislav Slez??k <lsle...@suse.cz> + +- Move the libzypp cache to the installed system to save some + memory and avoid crashing because out of memory (bsc#1182928) +- 4.3.19 + +------------------------------------------------------------------- +Tue Mar 9 09:15:41 UTC 2021 - Ladislav Slez??k <lsle...@suse.cz> + +- Added IBM tools product rename to the list (part of bsc#1182837) +- 4.3.18 + +------------------------------------------------------------------- +Mon Mar 8 15:44:31 UTC 2021 - Imobach Gonzalez Sosa <igonzalezs...@suse.com> + +- During installation, explain what "online repositories" are + (bsc#1180707). +- 4.3.17 + +------------------------------------------------------------------- +Mon Mar 8 14:31:30 UTC 2021 - Ladislav Slez??k <lsle...@suse.cz> + +- Extend the special installer configuration dialog with + repository options (jsc#PM-1895, jsc#SLE-16263) +- 4.3.16 + +------------------------------------------------------------------- +Fri Mar 5 10:41:42 UTC 2021 - Ancor Gonzalez Sosa <an...@suse.com> + +- Support for configuring minimalistic DNF (bsc#1182849) + contributed by Sasi Olin (hel@lcp.world). +- 4.3.15 + Fri Feb 19 14:07:15 UTC 2021 - Josef Reidinger <jreidin...@suse.com> ------------------------------------------------------------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-packager-4.3.14/package/yast2-packager.spec new/yast2-packager-4.3.20/package/yast2-packager.spec --- old/yast2-packager-4.3.14/package/yast2-packager.spec 2021-02-19 16:52:01.000000000 +0100 +++ new/yast2-packager-4.3.20/package/yast2-packager.spec 2021-03-19 15:41:17.000000000 +0100 @@ -17,7 +17,7 @@ Name: yast2-packager -Version: 4.3.14 +Version: 4.3.20 Release: 0 Summary: YaST2 - Package Library License: GPL-2.0-or-later @@ -116,8 +116,8 @@ %{yast_yncludedir}/packager/* %{yast_libdir}/language_tag.rb %{yast_libdir}/packager/* -%{yast_libdir}/packager/cfa/* %{yast_libdir}/y2packager/* +%{yast_libdir}/installation/* %{yast_clientdir}/*.rb %{yast_moduledir}/* %{yast_desktopdir}/*.desktop diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-packager-4.3.14/src/clients/inst_kickoff.rb new/yast2-packager-4.3.20/src/clients/inst_kickoff.rb --- old/yast2-packager-4.3.14/src/clients/inst_kickoff.rb 2021-02-19 16:52:01.000000000 +0100 +++ new/yast2-packager-4.3.20/src/clients/inst_kickoff.rb 2021-03-19 15:41:17.000000000 +0100 @@ -4,6 +4,8 @@ module Yast # Do various tasks before starting with installation of rpms. class InstKickoffClient < Client + include Yast::Logger + def main Yast.import "Pkg" textdomain "packager" @@ -44,16 +46,7 @@ ) end - # copy the credential files, libzypp loads them from target - zypp_dir = "/etc/zypp" - credentials_d = zypp_dir + "/credentials.d" - - if File.exist?(credentials_d) && Installation.destdir != "/" - target_zypp = Installation.destdir + zypp_dir - Builtins.y2milestone("Copying libzypp credentials to #{target_zypp}...") - ::FileUtils.mkdir_p(target_zypp) - ::FileUtils.cp_r(credentials_d, target_zypp) - end + copy_zypp_cache # installation, for instance... if !Mode.update @@ -138,6 +131,22 @@ :next end + # copy the zypp cache to the target system (only when running in inst-sys!) + # to save some memory during installation + def copy_zypp_cache + return unless Stage.initial + + # copy the credential files (libzypp loads them from target) + # and the repository cache to the target system + Pkg.SourceCacheCopyTo(Installation.destdir) + + # symlink the cache from inst-sys to save same space (RAM!) + cache_path = Pkg.ZConfig()["repo_cache_path"] || "/var/cache/zypp" + log.info("Zypp cache size: #{`du -h -s #{cache_path.shellescape}`}") + ::FileUtils.rm_rf(cache_path) + File.symlink(File.join(Installation.destdir, cache_path), cache_path) + end + # Handle the backup. def backup_stuff if Installation.update_backup_modified diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-packager-4.3.14/src/lib/installation/console/plugins/configure_repositories_command.rb new/yast2-packager-4.3.20/src/lib/installation/console/plugins/configure_repositories_command.rb --- old/yast2-packager-4.3.14/src/lib/installation/console/plugins/configure_repositories_command.rb 1970-01-01 01:00:00.000000000 +0100 +++ new/yast2-packager-4.3.20/src/lib/installation/console/plugins/configure_repositories_command.rb 2021-03-19 15:41:17.000000000 +0100 @@ -0,0 +1,30 @@ +# ------------------------------------------------------------------------------ +# 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. +# +# ------------------------------------------------------------------------------ + +module Installation + module Console + # define the "configure_repositories" command in the expert console + class Commands + def configure_repositories + run_yast_module("repositories") + end + + private + + def configure_repositories_description + "Run the repository manager. Be careful when using it,\n" \ + "you might easily break the installer when wrongly used!" + end + end + end +end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-packager-4.3.14/src/lib/installation/console/plugins/repositories_command.rb new/yast2-packager-4.3.20/src/lib/installation/console/plugins/repositories_command.rb --- old/yast2-packager-4.3.14/src/lib/installation/console/plugins/repositories_command.rb 1970-01-01 01:00:00.000000000 +0100 +++ new/yast2-packager-4.3.20/src/lib/installation/console/plugins/repositories_command.rb 2021-03-19 15:41:17.000000000 +0100 @@ -0,0 +1,38 @@ +# ------------------------------------------------------------------------------ +# 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. +# +# ------------------------------------------------------------------------------ + +require "pp" +require "yast" + +module Installation + module Console + # define the "repositories" command in the expert console + class Commands + def repositories + Yast.import "Pkg" + + repos = Yast::Pkg.SourceGetCurrent(false).map do |repo| + Yast::Pkg.SourceGeneralData(repo) + end + + pp repos + end + + private + + def repositories_description + "Dump the details of the currently defined software repositories" + end + end + end +end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-packager-4.3.14/src/lib/packager/cfa/dnf_conf.rb new/yast2-packager-4.3.20/src/lib/packager/cfa/dnf_conf.rb --- old/yast2-packager-4.3.14/src/lib/packager/cfa/dnf_conf.rb 1970-01-01 01:00:00.000000000 +0100 +++ new/yast2-packager-4.3.20/src/lib/packager/cfa/dnf_conf.rb 2021-03-19 15:41:17.000000000 +0100 @@ -0,0 +1,36 @@ +require "cfa/base_model" +require "cfa/augeas_parser" +require "cfa/matcher" + +module Yast + module Packager + module CFA + # Represents a dnf configuration file. + class DnfConf < ::CFA::BaseModel + # Configuration parser + PARSER = ::CFA::AugeasParser.new("puppet.lns") + # Path to configuration file + PATH = "/etc/dnf/dnf.conf".freeze + + def initialize(file_handler: nil) + super(PARSER, PATH, file_handler: file_handler) + end + + # Set options to keep a minimalistic package selection + def set_minimalistic! + tree = data["main"] + if !tree + tree = ::CFA::AugeasTree.new + data["main"] = tree + end + generic_set("install_weak_deps", "False", tree) + generic_set("tsflags", "nodocs", tree) + end + + def section(name) + data[name] + end + end + end + end +end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-packager-4.3.14/src/lib/packager/clients/pkg_finish.rb new/yast2-packager-4.3.20/src/lib/packager/clients/pkg_finish.rb --- old/yast2-packager-4.3.14/src/lib/packager/clients/pkg_finish.rb 2021-02-19 16:52:01.000000000 +0100 +++ new/yast2-packager-4.3.20/src/lib/packager/clients/pkg_finish.rb 2021-03-19 15:41:17.000000000 +0100 @@ -14,6 +14,7 @@ require "installation/finish_client" require "y2packager/repository" require "packager/cfa/zypp_conf" +require "packager/cfa/dnf_conf" Yast.import "InstURL" @@ -32,6 +33,11 @@ "&& /bin/tar -czf '%<archive>s' '%<source>s'".freeze # Format of the timestamp to be used as repositories backup BACKUP_TIMESTAMP_FORMAT = "%Y%m%d-%H%M%S".freeze + # Map the CFAs to package managers + PKG_MAPPING = { + "dnf" => Packager::CFA::DnfConf, + "libzypp" => Packager::CFA::ZyppConf + }.freeze # Constructor def initialize @@ -92,15 +98,11 @@ Pkg.SourceSaveAll Pkg.TargetFinish - # save repository metadata cache to the installed system - # (needs to be done _after_ saving repositories, see bnc#700881) - Pkg.SourceCacheCopyTo(Installation.destdir) - # Patching /etc/zypp/zypp.conf in order not to install # recommended packages, doc-packages,... # (needed for products like CASP) if ProductFeatures.GetBooleanFeature("software", "minimalistic_libzypp_config") - set_minimalistic_libzypp_conf + set_minimalistic_pkg_conf end # copy list of failed packages to installed system @@ -284,15 +286,19 @@ Pkg.TargetInitialize(Installation.destdir) end - # Set libzypp configuration to install the minimal amount of packages + # Set package manager configuration to install the minimal amount of packages # # @see Yast::Packager::CFA::ZyppConf#set_minimalistic! - def set_minimalistic_libzypp_conf - log.info("Setting libzypp configuration as minimalistic") - config = Packager::CFA::ZyppConf.new - config.load - config.set_minimalistic! - config.save + def set_minimalistic_pkg_conf + PKG_MAPPING.each do |pkg, cfa| + next unless File.file?(File.join(Installation.destdir, cfa::PATH)) + + log.info("Setting #{pkg} configuration as minimalistic") + config = cfa.new + config.load + config.set_minimalistic! + config.save + end end end end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-packager-4.3.14/src/lib/y2packager/clients/inst_productsources.rb new/yast2-packager-4.3.20/src/lib/y2packager/clients/inst_productsources.rb --- old/yast2-packager-4.3.14/src/lib/y2packager/clients/inst_productsources.rb 2021-02-19 16:52:01.000000000 +0100 +++ new/yast2-packager-4.3.20/src/lib/y2packager/clients/inst_productsources.rb 2021-03-19 15:41:17.000000000 +0100 @@ -1724,15 +1724,17 @@ # Ask only once return @@ask_activate_online_repos_result unless @@ask_activate_online_repos_result.nil? - msg << _("The system has an active network connection.\n" \ - "Additional software is available online.") + msg << _("Enabling the online repositories during installation\n" \ + "gives you access to all software that does not fit on\n" \ + "the installation media anymore. Additionally, those\n" \ + "repositories might contain updated software packages.") if low_memory? - msg << _("Since the system has less than %d MiB memory,\n" \ + msg << _("However, since the system has less than %d MiB memory,\n" \ "there is a significant risk of running out of memory,\n" \ - "and the installer may crash or freeze.\n" \ - "\n" \ - "Using the online repositories later in the installed\n" \ + "and the installer may crash or freeze.\n" \ + "\n" \ + "Using the online repositories later in the installed\n" \ "system is recommended.") % LOW_MEMORY_MIB @@posted_low_memory_warning = true end @@ -1740,7 +1742,7 @@ msg << _("Activate online repositories now?") @@ask_activate_online_repos_result = Popup.AnyQuestion( - Popup.NoHeadline, + _("Online Repositories"), msg.join("\n\n"), Label.YesButton, Label.NoButton, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-packager-4.3.14/src/modules/AddOnProduct.rb new/yast2-packager-4.3.20/src/modules/AddOnProduct.rb --- old/yast2-packager-4.3.14/src/modules/AddOnProduct.rb 2021-02-19 16:52:01.000000000 +0100 +++ new/yast2-packager-4.3.20/src/modules/AddOnProduct.rb 2021-03-19 15:41:17.000000000 +0100 @@ -40,7 +40,9 @@ "sle-module-toolchain" => ["sle-module-development-tools"], "sle-sdk" => ["sle-module-development-tools"], # openSUSE => SLES migration - "openSUSE" => ["SLES"] + "openSUSE" => ["SLES"], + # the IBM tools have been renamed in SLE12->SLE15 upgrade + "ibm-dlpar-utils" => ["ibm-power-tools"] }.freeze # @return [Hash] Product renames added externally through the #add_rename method diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-packager-4.3.14/test/data/dnf/dnf.conf new/yast2-packager-4.3.20/test/data/dnf/dnf.conf --- old/yast2-packager-4.3.14/test/data/dnf/dnf.conf 1970-01-01 01:00:00.000000000 +0100 +++ new/yast2-packager-4.3.20/test/data/dnf/dnf.conf 2021-03-19 15:41:17.000000000 +0100 @@ -0,0 +1,6 @@ +[main] +gpgcheck=1 +installonly_limit=3 +clean_requirements_on_remove=True +best=False +skip_if_unavailable=True diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-packager-4.3.14/test/data/dnf/dnf.conf.expected new/yast2-packager-4.3.20/test/data/dnf/dnf.conf.expected --- old/yast2-packager-4.3.14/test/data/dnf/dnf.conf.expected 1970-01-01 01:00:00.000000000 +0100 +++ new/yast2-packager-4.3.20/test/data/dnf/dnf.conf.expected 2021-03-19 15:41:17.000000000 +0100 @@ -0,0 +1,8 @@ +[main] +gpgcheck=1 +installonly_limit=3 +clean_requirements_on_remove=True +best=False +skip_if_unavailable=True +install_weak_deps=False +tsflags=nodocs diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-packager-4.3.14/test/lib/cfa/dnf_conf_test.rb new/yast2-packager-4.3.20/test/lib/cfa/dnf_conf_test.rb --- old/yast2-packager-4.3.14/test/lib/cfa/dnf_conf_test.rb 1970-01-01 01:00:00.000000000 +0100 +++ new/yast2-packager-4.3.20/test/lib/cfa/dnf_conf_test.rb 2021-03-19 15:41:17.000000000 +0100 @@ -0,0 +1,58 @@ +#!/usr/bin/env rspec + +require_relative "../../test_helper" + +require "packager/cfa/dnf_conf" +require "tmpdir" + +describe Yast::Packager::CFA::DnfConf do + DNF_CONF_EXAMPLE = DATA_PATH.join("dnf/dnf.conf").freeze + DNF_CONF_EXPECTED = DATA_PATH.join("dnf/dnf.conf.expected").freeze + + subject(:config) { Yast::Packager::CFA::DnfConf.new } + let(:dnf_conf_path) { DNF_CONF_EXAMPLE } + + before do + stub_const("Yast::Packager::CFA::DnfConf::PATH", dnf_conf_path) + end + + describe "#set_minimalistic!" do + before { config.load } + + it "sets minimalistic options" do + config.set_minimalistic! + main = config.section("main") + expect(main["install_weak_deps"]).to eq("False") + expect(main["tsflags"]).to eq("nodocs") + end + end + + describe "#save" do + let(:tmpdir) { Dir.mktmpdir } + let(:dnf_conf_path) { File.join(tmpdir, "dnf.conf") } + let(:expected_content) { File.read(DATA_PATH.join("dnf/dnf.conf.expected")) } + + before do + FileUtils.cp(DNF_CONF_EXAMPLE, File.join(tmpdir, "dnf.conf")) + config.load + end + + after do + FileUtils.remove_entry tmpdir + end + + it "do nothing if no option is not modified" do + config.save + expect(File.read(dnf_conf_path)).to eq(File.read(DNF_CONF_EXAMPLE)) + end + + it "modifies the file accordingly to given options" do + # FIXME: now expected file include also whitespace changes caused + # by https://github.com/hercules-team/augeas/issues/450 + # modify it when augeas is fixed + config.set_minimalistic! + config.save + expect(File.read(dnf_conf_path)).to eq(File.read(DNF_CONF_EXPECTED)) + end + end +end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-packager-4.3.14/test/pkg_finish_test.rb new/yast2-packager-4.3.20/test/pkg_finish_test.rb --- old/yast2-packager-4.3.14/test/pkg_finish_test.rb 2021-02-19 16:52:01.000000000 +0100 +++ new/yast2-packager-4.3.20/test/pkg_finish_test.rb 2021-03-19 15:41:17.000000000 +0100 @@ -68,7 +68,6 @@ expect(Yast::Pkg).to receive(:SourceLoad) expect(Yast::Pkg).to receive(:SourceSaveAll) expect(Yast::Pkg).to receive(:TargetFinish) - expect(Yast::Pkg).to receive(:SourceCacheCopyTo).with(destdir) allow(Yast::WFM).to receive(:Execute) expect(client.run).to be_nil end @@ -341,6 +340,13 @@ context "if libzypp's minimalistic configuration is enabled" do let(:minimalistic_libzypp_config) { true } + let(:destdir) { tmpdir } + + before do + conf_file = File.join(tmpdir, Yast::Packager::CFA::ZyppConf::PATH) + FileUtils.mkdir_p(File.dirname(conf_file)) + FileUtils.touch(conf_file) + end it "sets libzypp configuration to be minimalistic" do expect(zypp_conf).to receive(:set_minimalistic!) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-packager-4.3.14/test/test_helper.rb new/yast2-packager-4.3.20/test/test_helper.rb --- old/yast2-packager-4.3.14/test/test_helper.rb 2021-02-19 16:52:01.000000000 +0100 +++ new/yast2-packager-4.3.20/test/test_helper.rb 2021-03-19 15:41:17.000000000 +0100 @@ -67,3 +67,13 @@ ] end end + +# mock empty class to avoid build dependency on yast2-installation +module Installation + module Console + module Plugins + class MenuPlugin + end + end + end +end