Hello community,
here is the log from the commit of package yast2-add-on for openSUSE:Factory checked in at 2019-07-31 14:25:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2-add-on (Old)
and /work/SRC/openSUSE:Factory/.yast2-add-on.new.4126 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "yast2-add-on"
Wed Jul 31 14:25:41 2019 rev:99 rq:718823 version:4.2.4
Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2-add-on/yast2-add-on.changes 2019-05-27 08:35:37.971135355 +0200
+++ /work/SRC/openSUSE:Factory/.yast2-add-on.new.4126/yast2-add-on.changes 2019-07-31 14:25:43.430299197 +0200
@@ -1,0 +2,34 @@
+Fri Jul 26 12:27:45 CEST 2019 - schubi@suse.de
+
+- AY: Adapted docu regarding flag (bsc#1125411).
+- 4.2.4
+
+-------------------------------------------------------------------
+Thu Jul 25 08:40:00 UTC 2019 - Ladislav Slezák
+
+- Release the sources to avoid using up all server connections
+ (bsc#1141127)
+- 4.2.3
+
+-------------------------------------------------------------------
+Tue Jul 9 17:42:52 CEST 2019 - schubi@suse.de
+
+- AY Export/Import: Support also repositories not containing any
+ product (usually custom or 3rd party repositories) (bsc#1125441).
+- 4.2.2
+
+-------------------------------------------------------------------
+Mon Jul 1 07:40:05 UTC 2019 - David Diaz
+
+- Do not abort when an addon license is refused (bsc#1114018).
+- 4.2.1
+
+-------------------------------------------------------------------
+Fri May 31 12:23:30 UTC 2019 - Stasiek Michalski
+
+- Add metainfo (fate#319035)
+- Revamp spec
+- Replace GenericName with Comment
+- 4.2.0
+
+-------------------------------------------------------------------
Old:
----
yast2-add-on-4.1.12.tar.bz2
New:
----
yast2-add-on-4.2.4.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ yast2-add-on.spec ++++++
--- /var/tmp/diff_new_pack.AFo8MW/_old 2019-07-31 14:25:44.038298727 +0200
+++ /var/tmp/diff_new_pack.AFo8MW/_new 2019-07-31 14:25:44.042298724 +0200
@@ -17,31 +17,34 @@
Name: yast2-add-on
-Version: 4.1.12
+Version: 4.2.4
Release: 0
Summary: YaST2 - Add-On media installation code
License: GPL-2.0-only
Group: System/YaST
-Url: http://github.com/yast/yast-add-on
+Url: https://github.com/yast/yast-add-on
+
Source0: %{name}-%{version}.tar.bz2
+
BuildRequires: update-desktop-files
BuildRequires: yast2 >= 3.0.1
BuildRequires: yast2-devtools >= 3.1.10
-BuildRequires: yast2-packager
BuildRequires: rubygem(%{rb_default_ruby_abi}:rspec)
BuildRequires: rubygem(%{rb_default_ruby_abi}:yast-rake)
+# Y2packager::Resolvables
+BuildRequires: yast2-packager >= 4.2.11
+
Requires: autoyast2-installation
# ProductProfile
Requires: yast2 >= 3.0.1
Requires: yast2-country
Requires: yast2-installation
-# new AddOnProduct.DoInstall argument
-Requires: yast2-packager >= 4.0.25
+# Packager ProductLicense#HandleLicenseDialogRet allowing "refuse" action
+Requires: yast2-packager >= 4.2.16
Requires: yast2-ruby-bindings >= 1.0.0
Obsoletes: yast2-add-on-devel-doc
-BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildArch: noarch
%description
@@ -51,30 +54,24 @@
%setup -q
%check
-rake test:unit
+%yast_check
%build
%install
-rake install DESTDIR=%{buildroot}
+%yast_install
+%yast_metainfo
%files
-%defattr(-,root,root)
-%dir %{yast_yncludedir}/add-on
-%{yast_yncludedir}/add-on/*
-%dir %{yast_libdir}/add-on
-%dir %{yast_libdir}/add-on/clients
-%{yast_libdir}/add-on/clients/*.rb
-%{yast_clientdir}/add-on.rb
-%{yast_clientdir}/add-on_*.rb
-%{yast_clientdir}/inst_add-on*.rb
-%{yast_clientdir}/vendor.rb
-%{yast_desktopdir}/*.desktop
-%{yast_schemadir}/autoyast/rnc/add-on.rnc
-%{_datadir}/icons/*
-%dir %{yast_docdir}
+%{yast_yncludedir}
+%{yast_libdir}
+%{yast_clientdir}
+%{yast_moduledir}
+%{yast_desktopdir}
+%{yast_metainfodir}
+%{yast_schemadir}
+%{yast_icondir}
+%doc %{yast_docdir}
%license COPYING
-%doc %{yast_docdir}/CONTRIBUTING.md
-%doc %{yast_docdir}/README.md
%changelog
++++++ yast2-add-on-4.1.12.tar.bz2 -> yast2-add-on-4.2.4.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-add-on-4.1.12/package/yast2-add-on.changes new/yast2-add-on-4.2.4/package/yast2-add-on.changes
--- old/yast2-add-on-4.1.12/package/yast2-add-on.changes 2019-05-23 10:24:34.000000000 +0200
+++ new/yast2-add-on-4.2.4/package/yast2-add-on.changes 2019-07-26 12:49:51.000000000 +0200
@@ -1,4 +1,38 @@
-------------------------------------------------------------------
+Fri Jul 26 12:27:45 CEST 2019 - schubi@suse.de
+
+- AY: Adapted docu regarding flag (bsc#1125411).
+- 4.2.4
+
+-------------------------------------------------------------------
+Thu Jul 25 08:40:00 UTC 2019 - Ladislav Slezák
+
+- Release the sources to avoid using up all server connections
+ (bsc#1141127)
+- 4.2.3
+
+-------------------------------------------------------------------
+Tue Jul 9 17:42:52 CEST 2019 - schubi@suse.de
+
+- AY Export/Import: Support also repositories not containing any
+ product (usually custom or 3rd party repositories) (bsc#1125441).
+- 4.2.2
+
+-------------------------------------------------------------------
+Mon Jul 1 07:40:05 UTC 2019 - David Diaz
+
+- Do not abort when an addon license is refused (bsc#1114018).
+- 4.2.1
+
+-------------------------------------------------------------------
+Fri May 31 12:23:30 UTC 2019 - Stasiek Michalski
+
+- Add metainfo (fate#319035)
+- Revamp spec
+- Replace GenericName with Comment
+- 4.2.0
+
+-------------------------------------------------------------------
Wed May 22 16:20:22 CEST 2019 - schubi@suse.de
- Fix: Update repository will be registered while installing
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-add-on-4.1.12/package/yast2-add-on.spec new/yast2-add-on-4.2.4/package/yast2-add-on.spec
--- old/yast2-add-on-4.1.12/package/yast2-add-on.spec 2019-05-23 10:24:34.000000000 +0200
+++ new/yast2-add-on-4.2.4/package/yast2-add-on.spec 2019-07-26 12:49:51.000000000 +0200
@@ -12,36 +12,39 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: yast2-add-on
-Version: 4.1.12
+Version: 4.2.4
Release: 0
Summary: YaST2 - Add-On media installation code
License: GPL-2.0-only
Group: System/YaST
-Url: http://github.com/yast/yast-add-on
+Url: https://github.com/yast/yast-add-on
+
Source0: %{name}-%{version}.tar.bz2
+
BuildRequires: rubygem(%{rb_default_ruby_abi}:yast-rake)
BuildRequires: rubygem(%{rb_default_ruby_abi}:rspec)
BuildRequires: update-desktop-files
BuildRequires: yast2 >= 3.0.1
BuildRequires: yast2-devtools >= 3.1.10
-BuildRequires: yast2-packager
+# Y2packager::Resolvables
+BuildRequires: yast2-packager >= 4.2.11
+
Requires: autoyast2-installation
# ProductProfile
Requires: yast2 >= 3.0.1
Requires: yast2-country
Requires: yast2-installation
-# new AddOnProduct.DoInstall argument
-Requires: yast2-packager >= 4.0.25
+# Packager ProductLicense#HandleLicenseDialogRet allowing "refuse" action
+Requires: yast2-packager >= 4.2.16
Requires: yast2-ruby-bindings >= 1.0.0
Obsoletes: yast2-add-on-devel-doc
-BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildArch: noarch
%description
@@ -51,30 +54,24 @@
%setup -q
%check
-rake test:unit
+%yast_check
%build
%install
-rake install DESTDIR=%{buildroot}
+%yast_install
+%yast_metainfo
%files
-%defattr(-,root,root)
-%dir %{yast_yncludedir}/add-on
-%{yast_yncludedir}/add-on/*
-%dir %{yast_libdir}/add-on
-%dir %{yast_libdir}/add-on/clients
-%{yast_libdir}/add-on/clients/*.rb
-%{yast_clientdir}/add-on.rb
-%{yast_clientdir}/add-on_*.rb
-%{yast_clientdir}/inst_add-on*.rb
-%{yast_clientdir}/vendor.rb
-%{yast_desktopdir}/*.desktop
-%{yast_schemadir}/autoyast/rnc/add-on.rnc
-%{_datadir}/icons/*
-%dir %{yast_docdir}
+%{yast_yncludedir}
+%{yast_libdir}
+%{yast_clientdir}
+%{yast_moduledir}
+%{yast_desktopdir}
+%{yast_metainfodir}
+%{yast_schemadir}
+%{yast_icondir}
+%doc %{yast_docdir}
%license COPYING
-%doc %{yast_docdir}/CONTRIBUTING.md
-%doc %{yast_docdir}/README.md
%changelog
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-add-on-4.1.12/src/autoyast-rnc/add-on.rnc new/yast2-add-on-4.2.4/src/autoyast-rnc/add-on.rnc
--- old/yast2-add-on-4.1.12/src/autoyast-rnc/add-on.rnc 2019-05-23 10:24:34.000000000 +0200
+++ new/yast2-add-on-4.2.4/src/autoyast-rnc/add-on.rnc 2019-07-26 12:49:51.000000000 +0200
@@ -3,7 +3,10 @@
namespace config = "http://www.suse.com/1.0/configns"
add-on =
- element add-on { add_on_products* }
+ element add-on {
+ add_on_products* &
+ add_on_others*
+ }
listentry =
element listentry {
media_url & # here it is mandatory
@@ -49,8 +52,25 @@
ask_on_error = element ask_on_error { BOOLEAN }
confirm_license = element confirm_license { BOOLEAN }
priority = element priority { INTEGER }
+#
+# Describes all Add-On products which have to be added
+# while and after the installation.
+#
add_on_products =
element add_on_products {
attribute config:type { text }?,
listentry*
}
+#
+# Describes all Add-Ons which are not Add-On-Products or Base-Products.
+# Usually custom or 3rd party repositories.
+#
+# Add-On products and other user defined repos will be split in order to
+# 1. keep a better overview about the repos
+# 2. ensure backward compatibility
+#
+add_on_others =
+ element add_on_others {
+ attribute config:type { text }?,
+ listentry*
+ }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-add-on-4.1.12/src/clients/add-on.rb new/yast2-add-on-4.2.4/src/clients/add-on.rb
--- old/yast2-add-on-4.1.12/src/clients/add-on.rb 2019-05-23 10:24:34.000000000 +0200
+++ new/yast2-add-on-4.2.4/src/clients/add-on.rb 2019-07-26 12:49:51.000000000 +0200
@@ -111,7 +111,7 @@
false
)
- Wizard.SetDesktopTitleAndIcon("add-on")
+ Wizard.SetDesktopTitleAndIcon("org.opensuse.yast.AddOn")
Wizard.DisableBackButton
Wizard.DisableAbortButton
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-add-on-4.1.12/src/clients/add-on_proposal.rb new/yast2-add-on-4.2.4/src/clients/add-on_proposal.rb
--- old/yast2-add-on-4.1.12/src/clients/add-on_proposal.rb 2019-05-23 10:24:34.000000000 +0200
+++ new/yast2-add-on-4.2.4/src/clients/add-on_proposal.rb 2019-07-26 12:49:51.000000000 +0200
@@ -32,13 +32,13 @@
@items = Builtins.maplist(AddOnProduct.add_on_products) do |product|
data = Pkg.SourceGeneralData(Ops.get_integer(product, "media", -1))
# placeholder for unknown path
- dir = Ops.get_locale(data, "product_dir", _("Unknown"))
+ dir = Ops.get_locale(data, "product_dir", product.fetch( "product_dir", _("Unknown")))
dir = "/" if dir == ""
# summary item, %1 is product name, %2 media URL, %3 directory on media
Builtins.sformat(
"%1 (Media %2, directory %3)",
- Ops.get_string(product, "product", ""),
- Ops.get_locale(data, "url", _("Unknown")),
+ Ops.get_string(product, "product", _("No name defined")),
+ Ops.get_locale(data, "url", product.fetch( "media_url", _("Unknown"))),
dir
)
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-add-on-4.1.12/src/clients/vendor.rb new/yast2-add-on-4.2.4/src/clients/vendor.rb
--- old/yast2-add-on-4.1.12/src/clients/vendor.rb 2019-05-23 10:24:34.000000000 +0200
+++ new/yast2-add-on-4.2.4/src/clients/vendor.rb 2019-07-26 12:49:51.000000000 +0200
@@ -55,7 +55,7 @@
@result = nil
Wizard.CreateDialog
- Wizard.SetDesktopTitleAndIcon("vendor")
+ Wizard.SetDesktopTitleAndIcon("org.opensuse.yast.Vendor")
Wizard.HideAbortButton
# VENDOR: main screen heading
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-add-on-4.1.12/src/desktop/add-on.desktop new/yast2-add-on-4.2.4/src/desktop/add-on.desktop
--- old/yast2-add-on-4.1.12/src/desktop/add-on.desktop 2019-05-23 10:24:34.000000000 +0200
+++ new/yast2-add-on-4.2.4/src/desktop/add-on.desktop 1970-01-01 01:00:00.000000000 +0100
@@ -1,26 +0,0 @@
-[Desktop Entry]
-Type=Application
-Categories=Settings;System;Qt;X-SuSE-YaST;X-SuSE-YaST-Software;
-
-X-KDE-ModuleType=Library
-X-KDE-HasReadOnlyMode=true
-X-SuSE-YaST-Call=add-on
-
-X-SuSE-YaST-Group=Software
-X-SuSE-YaST-Argument=
-X-SuSE-YaST-RootOnly=true
-X-SuSE-YaST-AutoInst=configure
-X-SuSE-YaST-Geometry=
-X-SuSE-YaST-SortKey=
-X-SuSE-YaST-AutoInstResource=
-X-SuSE-YaST-AutoInstPath=install
-X-SuSE-YaST-AutoInstSchema=add-on.rnc
-X-SuSE-YaST-AutoInstClonable=true
-X-SuSE-YaST-Keywords=update,packages,repositories,software
-
-Icon=yast-addon
-Exec=xdg-su -c "/sbin/yast2 add-on"
-
-Name=Add-On Products
-GenericName=Install or remove add-on products
-StartupNotify=true
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-add-on-4.1.12/src/desktop/org.opensuse.yast.AddOn.desktop new/yast2-add-on-4.2.4/src/desktop/org.opensuse.yast.AddOn.desktop
--- old/yast2-add-on-4.1.12/src/desktop/org.opensuse.yast.AddOn.desktop 1970-01-01 01:00:00.000000000 +0100
+++ new/yast2-add-on-4.2.4/src/desktop/org.opensuse.yast.AddOn.desktop 2019-07-26 12:49:51.000000000 +0200
@@ -0,0 +1,27 @@
+[Desktop Entry]
+Type=Application
+Categories=Settings;System;Qt;X-SuSE-YaST;X-SuSE-YaST-Software;
+
+X-KDE-ModuleType=Library
+X-KDE-HasReadOnlyMode=true
+X-SuSE-YaST-Call=add-on
+
+X-SuSE-YaST-Group=Software
+X-SuSE-YaST-Argument=
+X-SuSE-YaST-RootOnly=true
+X-SuSE-YaST-AutoInst=configure
+X-SuSE-YaST-Geometry=
+X-SuSE-YaST-SortKey=
+X-SuSE-YaST-AutoInstResource=
+X-SuSE-YaST-AutoInstPath=install
+X-SuSE-YaST-AutoInstSchema=add-on.rnc
+X-SuSE-YaST-AutoInstClonable=true
+X-SuSE-YaST-Keywords=update,packages,repositories,software
+
+Icon=yast-addon
+Exec=xdg-su -c "/sbin/yast2 add-on"
+
+Name=YaST Add-On Products
+GenericName=Add-On Products
+Comment=Install or remove add-on products
+StartupNotify=true
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-add-on-4.1.12/src/desktop/org.opensuse.yast.Vendor.desktop new/yast2-add-on-4.2.4/src/desktop/org.opensuse.yast.Vendor.desktop
--- old/yast2-add-on-4.1.12/src/desktop/org.opensuse.yast.Vendor.desktop 1970-01-01 01:00:00.000000000 +0100
+++ new/yast2-add-on-4.2.4/src/desktop/org.opensuse.yast.Vendor.desktop 2019-07-26 12:49:51.000000000 +0200
@@ -0,0 +1,24 @@
+[Desktop Entry]
+Type=Application
+Categories=Settings;System;Qt;X-SuSE-YaST;X-SuSE-YaST-Misc;
+
+X-KDE-ModuleType=Library
+X-KDE-HasReadOnlyMode=true
+X-SuSE-YaST-Call=vendor
+
+X-SuSE-YaST-Group=Misc
+X-SuSE-YaST-Argument=
+X-SuSE-YaST-RootOnly=true
+X-SuSE-YaST-AutoInst=
+X-SuSE-YaST-Geometry=
+X-SuSE-YaST-SortKey=
+X-SuSE-YaST-AutoInstResource=
+X-SuSE-YaST-Keywords=vendor,cd,driver,update,packages,repositories,software
+
+Icon=yast-vendor
+Exec=xdg-su -c "/sbin/yast2 vendor"
+
+Name=YaST Vendor Driver
+GenericName=Vendor Driver
+Comment=Install a driver from a vendor-specific medium
+StartupNotify=true
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-add-on-4.1.12/src/desktop/vendor.desktop new/yast2-add-on-4.2.4/src/desktop/vendor.desktop
--- old/yast2-add-on-4.1.12/src/desktop/vendor.desktop 2019-05-23 10:24:34.000000000 +0200
+++ new/yast2-add-on-4.2.4/src/desktop/vendor.desktop 1970-01-01 01:00:00.000000000 +0100
@@ -1,23 +0,0 @@
-[Desktop Entry]
-Type=Application
-Categories=Settings;System;Qt;X-SuSE-YaST;X-SuSE-YaST-Misc;
-
-X-KDE-ModuleType=Library
-X-KDE-HasReadOnlyMode=true
-X-SuSE-YaST-Call=vendor
-
-X-SuSE-YaST-Group=Misc
-X-SuSE-YaST-Argument=
-X-SuSE-YaST-RootOnly=true
-X-SuSE-YaST-AutoInst=
-X-SuSE-YaST-Geometry=
-X-SuSE-YaST-SortKey=
-X-SuSE-YaST-AutoInstResource=
-X-SuSE-YaST-Keywords=vendor,cd,driver,update,packages,repositories,software
-
-Icon=yast-vendor
-Exec=xdg-su -c "/sbin/yast2 vendor"
-
-Name=Vendor Driver CD
-GenericName=Install a driver from a vendor-specific CD-ROM
-StartupNotify=true
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-add-on-4.1.12/src/include/add-on/add-on-workflow.rb new/yast2-add-on-4.2.4/src/include/add-on/add-on-workflow.rb
--- old/yast2-add-on-4.1.12/src/include/add-on/add-on-workflow.rb 2019-05-23 10:24:34.000000000 +0200
+++ new/yast2-add-on-4.2.4/src/include/add-on/add-on-workflow.rb 2019-07-26 12:49:51.000000000 +0200
@@ -847,7 +847,7 @@
Wizard.HideBackButton if !enable_back
Wizard.HideAbortButton if !enable_abort
- Wizard.SetDesktopIcon("add-on")
+ Wizard.SetDesktopIcon("org.opensuse.yast.AddOn")
# disable delete button if no items listed
# bug #203809
@@ -1027,6 +1027,9 @@
Wizard.SetTitleIcon("yast-addon")
ret2 = RunWizard()
+ break if ret2 == :back
+ return :abort if ret2 == :abort
+
log.info "Subworkflow result: ret2: #{ret2}"
if ret2 == :next
@@ -1052,7 +1055,7 @@
# Release all sources after adding a new one
# because of CD/DVD + url cd://
Pkg.SourceReleaseAll
- elsif ret2 == :abort || ret2 == :cancel
+ elsif ret2 == :cancel
log.info("Aborted, removing add-on repositories: #{@added_repos.inspect}")
# remove the repository
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-add-on-4.1.12/src/lib/add-on/clients/add-on_auto.rb new/yast2-add-on-4.2.4/src/lib/add-on/clients/add-on_auto.rb
--- old/yast2-add-on-4.1.12/src/lib/add-on/clients/add-on_auto.rb 2019-05-23 10:24:34.000000000 +0200
+++ new/yast2-add-on-4.2.4/src/lib/add-on/clients/add-on_auto.rb 2019-07-26 12:49:51.000000000 +0200
@@ -2,6 +2,7 @@
require "installation/auto_client"
Yast.import "AddOnProduct"
+Yast.import "AddOnOthers"
Yast.import "AutoinstSoftware"
Yast.import "Installation"
Yast.import "Label"
@@ -24,12 +25,15 @@
end
def import(data)
- add_on_products = data.fetch("add_on_products", [])
+ add_ons = data.fetch("add_on_products", [])
+ # Add-on products have the same format as add-ons which have been
+ # added manually by the user. So we can take the same workflow here.
+ add_ons += data.fetch("add_on_others", [])
- valid_add_on_products = add_on_products.reject.with_index(1) do |add_on, index|
+ valid_add_ons = add_ons.reject.with_index(1) do |add_on, index|
next false unless add_on.fetch("media_url", "").empty?
- log.error("Missing value in the #{index}. add-on-product definition")
+ log.error("Missing value in the #{index}. add-on definition")
# abort import/installation
return false unless skip_add_on_and_continue?(index)
@@ -37,7 +41,7 @@
true
end
- AddOnProduct.Import("add_on_products" => valid_add_on_products)
+ AddOnProduct.Import("add_on_products" => valid_add_ons)
end
# Returns an unordered HTML list summarizing the Add-on products
@@ -114,7 +118,7 @@
end
def export
- AddOnProduct.Export
+ AddOnProduct.Export.merge(AddOnOthers.Export())
end
# Creates sources from add on products
@@ -165,6 +169,9 @@
Pkg.PkgSolve(true)
ReadFromSystem()
+
+ # Reading user defined repos
+ AddOnOthers.Read()
end
private
@@ -189,6 +196,7 @@
loop do
source_id = Pkg.SourceCreate(url, product_dir)
+ Pkg.SourceReleaseAll
log.info("New source ID: #{source_id}")
@@ -203,6 +211,7 @@
else
# bugzilla #260613
AddOnProduct.Integrate(source_id)
+ Pkg.SourceReleaseAll
adjust_source_attributes(add_on, source_id)
install_product(product)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-add-on-4.1.12/src/modules/AddOnOthers.rb new/yast2-add-on-4.2.4/src/modules/AddOnOthers.rb
--- old/yast2-add-on-4.1.12/src/modules/AddOnOthers.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/yast2-add-on-4.2.4/src/modules/AddOnOthers.rb 2019-07-26 12:49:51.000000000 +0200
@@ -0,0 +1,80 @@
+# encoding: utf-8
+require "yast"
+require "y2packager/resolvable"
+
+# Yast namespace
+module Yast
+ # Describes all Add-Ons which are not Add-On-Products or Base-Products.
+ # Usually custom or 3rd party repositories.
+
+ class AddOnOthersClass < Module
+
+ include Yast::Logger
+
+ # add_on_others = [
+ # {
+ # "media" => 4, # ID of the source
+ # "name" : "openSUSE version XX.Y",
+ # "media_url"=>"dvd:/?devices=/dev/sr1"
+ # ....
+ # },
+ # ...
+ # ]
+ attr_reader :add_on_others
+
+ def main
+ Yast.import "Pkg"
+ textdomain "add-on"
+
+ @add_on_others = []
+ end
+
+ def Read
+ # Removing all repos which have installed based products
+ # and add-on products.
+ installed_product_names = Y2Packager::Resolvable.find(kind: :product, status: :installed).map(&:name)
+ installed_available_products = Y2Packager::Resolvable.find(kind: :product, status: :available).select do |p|
+ installed_product_names.include?(p.name)
+ end
+
+ installed_src_ids = installed_available_products.map(&:source).uniq
+ other_repo_ids = Pkg.SourceGetCurrent(true) - installed_src_ids
+ @add_on_others = other_repo_ids.map{ |id| Pkg.SourceGeneralData(id) }
+ end
+
+ # Returns all enabled user added repos which are not base products or add-on products.
+ #
+ # @return [Hash] User defined repos.
+ #
+ # @example This is an XML file created from exported map:
+ # <add-on>
+ #
+ # <listentry>
+ # ftp://server.name/.../
+ # <alias>alias name</alias>
+ # <priority config:type="integer">20</priority>
+ # <name>Repository name</name>
+ # /
+ # </listentry>
+ # ...
+ #
+ # </add-on>
+ def Export
+ others = @add_on_others.map do |p|
+ { "media_url" => p["url"],
+ "alias" => p["alias"],
+ "priority" => p["priority"],
+ "name" => p["name"],
+ "product_dir" => p["product_dir"] }
+ end
+ { "add_on_others" => others }
+ end
+
+ publish function: :Export, type: "map ()"
+ publish function: :Read, type: "map()"
+ end
+
+ AddOnOthers = AddOnOthersClass.new
+ AddOnOthers.main
+end
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-add-on-4.1.12/test/addon_others_test.rb new/yast2-add-on-4.2.4/test/addon_others_test.rb
--- old/yast2-add-on-4.1.12/test/addon_others_test.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/yast2-add-on-4.2.4/test/addon_others_test.rb 2019-07-26 12:49:51.000000000 +0200
@@ -0,0 +1,96 @@
+#! /usr/bin/env rspec
+
+require_relative "./test_helper"
+Yast.import "AddOnOthers"
+
+describe Yast::AddOnOthers do
+ subject { Yast::AddOnOthers }
+
+ let(:available_products) do
+ [ Y2Packager::Resolvable.new(kind: :product,
+ name: "SLE_RT", status: :available, source: 2 ),
+ Y2Packager::Resolvable.new(kind: :product,
+ name: "SLE_HPC", status: :available, source: 2 ),
+ Y2Packager::Resolvable.new(kind: :product,
+ name: "SLE_SAP", status: :available, source: 2 ),
+ Y2Packager::Resolvable.new(kind: :product,
+ name: "SLE_BCL", status: :available, source: 2 ),
+ Y2Packager::Resolvable.new(kind: :product,
+ name: "SLED", status: :available, source: 2 ),
+ Y2Packager::Resolvable.new(kind: :product,
+ name: "SUSE-Manager-Server", status: :available, source: 2 ),
+ Y2Packager::Resolvable.new(kind: :product,
+ name: "SUSE-Manager-Proxy", status: :available, source: 2 ),
+ Y2Packager::Resolvable.new(kind: :product,
+ name: "sle-module-desktop-applications", status: :available, source: 1 ),
+ Y2Packager::Resolvable.new(kind: :product,
+ name: "sle-module-basesystem", status: :available, source: 0 ),
+ Y2Packager::Resolvable.new(kind: :product,
+ name: "SLES", status: :available, source: 3 ),
+ Y2Packager::Resolvable.new(kind: :product,
+ name: "SLES", status: :available, source: 2 ),
+ Y2Packager::Resolvable.new(kind: :product,
+ name: "SUSE-Manager-Retail-Branch-Server", status: :available, source: 2 )
+ ]
+ end
+
+ let(:installed_products) do
+ [ Y2Packager::Resolvable.new(kind: :product,
+ name: "sle-module-desktop-applications", status: :installed, source: -1 ),
+ Y2Packager::Resolvable.new(kind: :product,
+ name: "sle-module-basesystem", status: :installed, source: -1 ),
+ Y2Packager::Resolvable.new(kind: :product,
+ name: "SLES", status: :installed, source: -1 ),
+ ]
+ end
+
+ let(:repo_hash) do
+ { "alias" => "user defined",
+ "url" => "http://xxx.url",
+ "name" => "user_defined",
+ "priority" => 19,
+ "product_dir" => "/"
+ }
+ end
+
+ before do
+ allow(Y2Packager::Resolvable).to receive(:find).with(kind: :product, status: :available)
+ .and_return(available_products)
+ allow(Y2Packager::Resolvable).to receive(:find).with(kind: :product, status: :installed)
+ .and_return(installed_products)
+ allow(Yast::Pkg).to receive(:SourceGetCurrent).with(true)
+ .and_return([0,1,2,3,4])
+ end
+
+ describe "#Read" do
+
+ context "installed products and add-ons are available" do
+
+ it "returns user defined repo only" do
+ expect(Yast::Pkg).to receive(:SourceGeneralData).with(4)
+ .and_return(repo_hash)
+ expect(Yast::AddOnOthers.Read).to eq([repo_hash])
+ end
+ end
+ end
+
+ describe "#Export" do
+
+ context "installed products and add-ons are available" do
+ let(:ret) do
+ { "media_url" => repo_hash["url"],
+ "alias" => repo_hash["alias"],
+ "priority" => repo_hash["priority"],
+ "name" => repo_hash["name"],
+ "product_dir" => repo_hash["product_dir"] }
+ end
+
+ it "returns an array of user defined repos in AY format" do
+ allow(Yast::Pkg).to receive(:SourceGeneralData).with(4)
+ .and_return(repo_hash)
+ Yast::AddOnOthers.Read()
+ expect(Yast::AddOnOthers.Export).to eq({ "add_on_others" => [ret] })
+ end
+ end
+ end
+end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-add-on-4.1.12/test/y2add_on/clients/add-on_auto_test.rb new/yast2-add-on-4.2.4/test/y2add_on/clients/add-on_auto_test.rb
--- old/yast2-add-on-4.1.12/test/y2add_on/clients/add-on_auto_test.rb 2019-05-23 10:24:34.000000000 +0200
+++ new/yast2-add-on-4.2.4/test/y2add_on/clients/add-on_auto_test.rb 2019-07-26 12:49:51.000000000 +0200
@@ -8,7 +8,9 @@
describe Yast::AddOnAutoClient do
describe "#import" do
let(:params) do
- { "add_on_products" => add_on_products }
+ { "add_on_products" => add_on_products,
+ "add_on_others" => add_on_others
+ }
end
context "when 'add_on_products' param is NOT given" do
@@ -32,8 +34,21 @@
]
end
+ let(:add_on_others) do
+ [
+ {
+ "alias" => "user defined",
+ "media_url" => "http://xxx.url",
+ "name" => "user_defined",
+ "priority" => 19,
+ "product_dir" => "/"
+ }
+ ]
+ end
+
it "imports all add-on products given" do
- expect(Yast::AddOnProduct).to receive(:Import).with(params)
+ expect(Yast::AddOnProduct).to receive(:Import).with(
+ { "add_on_products" => add_on_products + add_on_others})
subject.import(params)
end
@@ -68,6 +83,7 @@
}
]
end
+ let(:add_on_others) { [] }
let(:rejected_package_error) { "Missing value in the 2. add-on-product definition" }
let(:missed_media_url_error) { /Missing mandatory value at index 2/ }
@@ -205,11 +221,23 @@
end
describe "#export" do
- # FIXME: use a more reallistic configuration data example
- it "returns configuration data" do
- allow(Yast::AddOnProduct).to receive(:Export).and_return("configuration data")
+ let(:add_on_products) do
+ {"add_on_products"=> [
+ { "product_dir"=>"/Module-Desktop-Applications",
+ "product"=>"sle-module-desktop-applications",
+ "media_url"=>"dvd:/?devices=/dev/sr1" },
+ { "product_dir"=>"/Module-Basesystem",
+ "product"=>"sle-module-basesystem",
+ "media_url"=>"dvd:/?devices=/dev/sr1" }
+ ]}
+ end
+ let(:add_on_others) { {"add_on_others"=>[]} }
+
+ it "returns add-on products and other user defined add-ons" do
+ expect(Yast::AddOnProduct).to receive(:Export).and_return(add_on_products)
+ expect(Yast::AddOnOthers).to receive(:Export).and_return(add_on_others)
- expect(subject.export).to eq("configuration data")
+ expect(subject.export).to eq(add_on_products.merge(add_on_others))
end
end
@@ -276,6 +304,7 @@
before do
allow(Yast::AddOnProduct).to receive(:add_on_products).and_return(add_on_products)
allow(Yast::Pkg).to receive(:SourceEditSet)
+ allow(Yast::Pkg).to receive(:SourceReleaseAll)
allow(Yast::Pkg).to receive(:SourceCreate).and_return(1)
allow(Yast::Pkg).to receive(:SourceEditGet).and_return(repos)
allow(Yast::Pkg).to receive(:ExpandedUrl)
@@ -320,6 +349,12 @@
subject.write
end
+
+ it "releases the media accessors" do
+ expect(Yast::Pkg).to receive(:SourceReleaseAll)
+
+ subject.write
+ end
end
end