openSUSE Commits
Threads by month
- ----- 2024 -----
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
July 2019
- 2 participants
- 2045 discussions
Hello community,
here is the log from the commit of package yast2-cluster for openSUSE:Factory checked in at 2019-07-31 14:16:59
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2-cluster (Old)
and /work/SRC/openSUSE:Factory/.yast2-cluster.new.4126 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "yast2-cluster"
Wed Jul 31 14:16:59 2019 rev:32 rq:707041 version:4.2.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2-cluster/yast2-cluster.changes 2019-04-30 13:06:48.749549756 +0200
+++ /work/SRC/openSUSE:Factory/.yast2-cluster.new.4126/yast2-cluster.changes 2019-07-31 14:17:05.462707223 +0200
@@ -1,0 +2,8 @@
+Fri May 31 12:27:33 UTC 2019 - Stasiek Michalski <hellcp(a)mailbox.org>
+
+- Add metainfo (fate#319035)
+- Revamp spec
+- Replace GenericName with Comment
+- 4.2.0
+
+-------------------------------------------------------------------
Old:
----
yast2-cluster-4.1.2.tar.bz2
New:
----
yast2-cluster-4.2.0.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ yast2-cluster.spec ++++++
--- /var/tmp/diff_new_pack.64AWRG/_old 2019-07-31 14:17:07.218706476 +0200
+++ /var/tmp/diff_new_pack.64AWRG/_new 2019-07-31 14:17:07.218706476 +0200
@@ -16,63 +16,61 @@
#
+%define _fwdefdir %{_libexecdir}/firewalld/services
+
Name: yast2-cluster
-Version: 4.1.2
+Version: 4.2.0
Release: 0
+Summary: Configuration of cluster
+License: GPL-2.0-only
+Group: System/YaST
+Url: https://github.com/yast/yast-cluster
-BuildArch: noarch
-BuildRoot: %{_tmppath}/%{name}-%{version}-build
Source0: %{name}-%{version}.tar.bz2
Source1: cluster.firewalld.xml
# Yast2::Systemd::Socket
-BuildRequires: yast2 >= 4.1.3
-Requires: yast2 >= 4.1.3
-
BuildRequires: firewall-macros
BuildRequires: perl-XML-Writer
BuildRequires: update-desktop-files
-BuildRequires: yast2-devtools >= 3.1.10
+BuildRequires: yast2 >= 4.1.3
+BuildRequires: yast2-devtools >= 4.2.2
BuildRequires: yast2-testsuite
+Requires: yast2 >= 4.1.3
Requires: yast2-ruby-bindings >= 1.0.0
-Summary: Configuration of cluster
-License: GPL-2.0-only
-Group: System/YaST
-
-%define _fwdefdir %{_libexecdir}/firewalld/services
+BuildArch: noarch
%description
-
%prep
-%setup -n %{name}-%{version}
+%setup -q
%build
%yast_build
%install
%yast_install
+%yast_metainfo
-install -D -m 0644 %{S:1} $RPM_BUILD_ROOT/%{_fwdefdir}/cluster.xml
+install -D -m 0644 %{S:1} %{buildroot}%{_fwdefdir}/cluster.xml
%post
%firewalld_reload
%files
-%defattr(-,root,root)
-%dir %{yast_yncludedir}/cluster
+%{yast_yncludedir}
+%{yast_clientdir}
+%{yast_moduledir}
+%{yast_desktopdir}
+%{yast_metainfodir}
+%{yast_scrconfdir}
+%{yast_agentdir}
+%doc %{yast_docdir}
%dir %{_libexecdir}/firewalld
%dir %{_fwdefdir}
-%{yast_yncludedir}/cluster/*
-%{yast_clientdir}/cluster.rb
-%{yast_clientdir}/cluster_*.rb
-%{yast_moduledir}/Cluster.*
-%{yast_desktopdir}/cluster.desktop
-%{yast_scrconfdir}/*.scr
-%{yast_agentdir}/ag_openais
-%doc %{yast_docdir}
%{_fwdefdir}/cluster.xml
%{yast_icondir}
%license COPYING
++++++ yast2-cluster-4.1.2.tar.bz2 -> yast2-cluster-4.2.0.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-cluster-4.1.2/package/yast2-cluster.changes new/yast2-cluster-4.2.0/package/yast2-cluster.changes
--- old/yast2-cluster-4.1.2/package/yast2-cluster.changes 2019-04-29 15:40:02.000000000 +0200
+++ new/yast2-cluster-4.2.0/package/yast2-cluster.changes 2019-06-03 09:51:25.000000000 +0200
@@ -1,4 +1,12 @@
-------------------------------------------------------------------
+Fri May 31 12:27:33 UTC 2019 - Stasiek Michalski <hellcp(a)mailbox.org>
+
+- Add metainfo (fate#319035)
+- Revamp spec
+- Replace GenericName with Comment
+- 4.2.0
+
+-------------------------------------------------------------------
Thu Apr 25 07:00:13 UTC 2019 - nick wang <nwang(a)suse.com>
- bsc#1132881, using ruby base64 to replace uuencode/uudecode
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-cluster-4.1.2/package/yast2-cluster.spec new/yast2-cluster-4.2.0/package/yast2-cluster.spec
--- old/yast2-cluster-4.1.2/package/yast2-cluster.spec 2019-04-29 15:40:02.000000000 +0200
+++ new/yast2-cluster-4.2.0/package/yast2-cluster.spec 2019-06-03 09:51:25.000000000 +0200
@@ -12,67 +12,64 @@
# 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/
#
+%define _fwdefdir %{_libexecdir}/firewalld/services
Name: yast2-cluster
-Version: 4.1.2
+Version: 4.2.0
Release: 0
+Summary: Configuration of cluster
+License: GPL-2.0-only
+Group: System/YaST
+Url: https://github.com/yast/yast-cluster
-BuildArch: noarch
-BuildRoot: %{_tmppath}/%{name}-%{version}-build
Source0: %{name}-%{version}.tar.bz2
Source1: cluster.firewalld.xml
# Yast2::Systemd::Socket
BuildRequires: yast2 >= 4.1.3
-Requires: yast2 >= 4.1.3
-
BuildRequires: perl-XML-Writer
BuildRequires: update-desktop-files
-BuildRequires: yast2-devtools >= 3.1.10
+BuildRequires: yast2-devtools >= 4.2.2
BuildRequires: yast2-testsuite
BuildRequires: firewall-macros
Requires: yast2-ruby-bindings >= 1.0.0
+Requires: yast2 >= 4.1.3
-Summary: Configuration of cluster
-License: GPL-2.0-only
-Group: System/YaST
-
-%define _fwdefdir %{_libexecdir}/firewalld/services
+BuildArch: noarch
%description
-
%prep
-%setup -n %{name}-%{version}
+%setup -q
%build
%yast_build
%install
%yast_install
+%yast_metainfo
-install -D -m 0644 %{S:1} $RPM_BUILD_ROOT/%{_fwdefdir}/cluster.xml
+install -D -m 0644 %{S:1} %{buildroot}%{_fwdefdir}/cluster.xml
%post
%firewalld_reload
%files
-%defattr(-,root,root)
-%dir %{yast_yncludedir}/cluster
+%{yast_yncludedir}
+%{yast_clientdir}
+%{yast_moduledir}
+%{yast_desktopdir}
+%{yast_metainfodir}
+%{yast_scrconfdir}
+%{yast_agentdir}
+%doc %{yast_docdir}
%dir %{_libexecdir}/firewalld
%dir %{_fwdefdir}
-%{yast_yncludedir}/cluster/*
-%{yast_clientdir}/cluster.rb
-%{yast_clientdir}/cluster_*.rb
-%{yast_moduledir}/Cluster.*
-%{yast_desktopdir}/cluster.desktop
-%{yast_scrconfdir}/*.scr
-%{yast_agentdir}/ag_openais
-%doc %{yast_docdir}
%{_fwdefdir}/cluster.xml
%{yast_icondir}
%license COPYING
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-cluster-4.1.2/src/Makefile.am new/yast2-cluster-4.2.0/src/Makefile.am
--- old/yast2-cluster-4.1.2/src/Makefile.am 2019-04-29 15:40:02.000000000 +0200
+++ new/yast2-cluster-4.2.0/src/Makefile.am 2019-06-03 09:51:25.000000000 +0200
@@ -27,7 +27,7 @@
servers_non_y2/ag_openais
desktop_DATA = \
- desktop/cluster.desktop
+ desktop/org.opensuse.yast.Cluster.desktop
symbolicdir = @icondir@/hicolor/symbolic/apps
symbolic_DATA = \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-cluster-4.1.2/src/desktop/cluster.desktop new/yast2-cluster-4.2.0/src/desktop/cluster.desktop
--- old/yast2-cluster-4.1.2/src/desktop/cluster.desktop 2019-04-29 15:40:02.000000000 +0200
+++ new/yast2-cluster-4.2.0/src/desktop/cluster.desktop 1970-01-01 01:00:00.000000000 +0100
@@ -1,24 +0,0 @@
-[Desktop Entry]
-Type=Application
-Categories=Qt;X-SuSE-YaST;X-SuSE-YaST-High_Availability;
-
-X-KDE-ModuleType=Library
-X-KDE-RootOnly=true
-X-KDE-HasReadOnlyMode=true
-X-SuSE-YaST-Call=cluster
-
-X-SuSE-YaST-Group=High_Availability
-X-SuSE-YaST-Argument=
-X-SuSE-YaST-RootOnly=true
-X-SuSE-YaST-AutoInst=all
-X-SuSE-YaST-Geometry=
-X-SuSE-YaST-SortKey=
-X-SuSE-YaST-AutoInstResource=cluster
-X-SuSE-YaST-AutoInstClonable=true
-X-SuSE-YaST-Keywords=high,availability
-
-Icon=yast-heartbeat
-Exec=xdg-su -c "/sbin/yast2 cluster"
-
-Name=Cluster
-GenericName=Configure Cluster
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-cluster-4.1.2/src/desktop/org.opensuse.yast.Cluster.desktop new/yast2-cluster-4.2.0/src/desktop/org.opensuse.yast.Cluster.desktop
--- old/yast2-cluster-4.1.2/src/desktop/org.opensuse.yast.Cluster.desktop 1970-01-01 01:00:00.000000000 +0100
+++ new/yast2-cluster-4.2.0/src/desktop/org.opensuse.yast.Cluster.desktop 2019-06-03 09:51:25.000000000 +0200
@@ -0,0 +1,25 @@
+[Desktop Entry]
+Type=Application
+Categories=Qt;X-SuSE-YaST;X-SuSE-YaST-High_Availability;
+
+X-KDE-ModuleType=Library
+X-KDE-RootOnly=true
+X-KDE-HasReadOnlyMode=true
+X-SuSE-YaST-Call=cluster
+
+X-SuSE-YaST-Group=High_Availability
+X-SuSE-YaST-Argument=
+X-SuSE-YaST-RootOnly=true
+X-SuSE-YaST-AutoInst=all
+X-SuSE-YaST-Geometry=
+X-SuSE-YaST-SortKey=
+X-SuSE-YaST-AutoInstResource=cluster
+X-SuSE-YaST-AutoInstClonable=true
+X-SuSE-YaST-Keywords=high,availability
+
+Icon=yast-heartbeat
+Exec=xdg-su -c "/sbin/yast2 cluster"
+
+Name=YaST Cluster
+GenericName=Cluster
+Comment=Configure Cluster
1
0
Hello community,
here is the log from the commit of package yast2-pkg-bindings for openSUSE:Factory checked in at 2019-07-31 14:16:45
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2-pkg-bindings (Old)
and /work/SRC/openSUSE:Factory/.yast2-pkg-bindings.new.4126 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "yast2-pkg-bindings"
Wed Jul 31 14:16:45 2019 rev:205 rq:706661 version:4.2.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2-pkg-bindings/yast2-pkg-bindings.changes 2019-03-12 09:50:53.407568256 +0100
+++ /work/SRC/openSUSE:Factory/.yast2-pkg-bindings.new.4126/yast2-pkg-bindings.changes 2019-07-31 14:16:48.114712540 +0200
@@ -1,0 +2,7 @@
+Thu May 23 07:09:08 UTC 2019 - Ladislav Slezák <lslezak(a)suse.cz>
+
+- Added Pkg.Resolvables() and Pkg.AnyResolvable() calls
+ (related to bsc#1132650)
+- 4.2.0
+
+-------------------------------------------------------------------
Old:
----
yast2-pkg-bindings-4.1.2.tar.bz2
New:
----
yast2-pkg-bindings-4.2.0.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ yast2-pkg-bindings-devel-doc.spec ++++++
--- /var/tmp/diff_new_pack.zEM52b/_old 2019-07-31 14:16:48.746712368 +0200
+++ /var/tmp/diff_new_pack.zEM52b/_new 2019-07-31 14:16:48.750712367 +0200
@@ -17,7 +17,7 @@
Name: yast2-pkg-bindings-devel-doc
-Version: 4.1.2
+Version: 4.2.0
Release: 0
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Source0: yast2-pkg-bindings-%{version}.tar.bz2
++++++ yast2-pkg-bindings.spec ++++++
--- /var/tmp/diff_new_pack.zEM52b/_old 2019-07-31 14:16:48.770712361 +0200
+++ /var/tmp/diff_new_pack.zEM52b/_new 2019-07-31 14:16:48.770712361 +0200
@@ -17,7 +17,7 @@
Name: yast2-pkg-bindings
-Version: 4.1.2
+Version: 4.2.0
Release: 0
BuildRoot: %{_tmppath}/%{name}-%{version}-build
++++++ yast2-pkg-bindings-4.1.2.tar.bz2 -> yast2-pkg-bindings-4.2.0.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-pkg-bindings-4.1.2/Dockerfile new/yast2-pkg-bindings-4.2.0/Dockerfile
--- old/yast2-pkg-bindings-4.1.2/Dockerfile 2019-03-08 13:05:55.000000000 +0100
+++ new/yast2-pkg-bindings-4.2.0/Dockerfile 2019-05-27 09:27:48.000000000 +0200
@@ -1,4 +1,4 @@
-FROM yastdevel/cpp
+FROM registry.opensuse.org/yast/head/containers/yast-cpp:latest
RUN zypper --gpg-auto-import-keys --non-interactive in --no-recommends \
libzypp-devel yast2-ruby-bindings iproute2
COPY . /usr/src/app
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-pkg-bindings-4.1.2/package/yast2-pkg-bindings-devel-doc.spec new/yast2-pkg-bindings-4.2.0/package/yast2-pkg-bindings-devel-doc.spec
--- old/yast2-pkg-bindings-4.1.2/package/yast2-pkg-bindings-devel-doc.spec 2019-03-08 13:05:55.000000000 +0100
+++ new/yast2-pkg-bindings-4.2.0/package/yast2-pkg-bindings-devel-doc.spec 2019-05-27 09:27:48.000000000 +0200
@@ -16,7 +16,7 @@
#
Name: yast2-pkg-bindings-devel-doc
-Version: 4.1.2
+Version: 4.2.0
Release: 0
License: GPL-2.0-only
Group: Documentation/HTML
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-pkg-bindings-4.1.2/package/yast2-pkg-bindings.changes new/yast2-pkg-bindings-4.2.0/package/yast2-pkg-bindings.changes
--- old/yast2-pkg-bindings-4.1.2/package/yast2-pkg-bindings.changes 2019-03-08 13:05:55.000000000 +0100
+++ new/yast2-pkg-bindings-4.2.0/package/yast2-pkg-bindings.changes 2019-05-27 09:27:48.000000000 +0200
@@ -1,4 +1,11 @@
-------------------------------------------------------------------
+Thu May 23 07:09:08 UTC 2019 - Ladislav Slezák <lslezak(a)suse.cz>
+
+- Added Pkg.Resolvables() and Pkg.AnyResolvable() calls
+ (related to bsc#1132650)
+- 4.2.0
+
+-------------------------------------------------------------------
Fri Mar 8 11:44:51 UTC 2019 - mvidner(a)suse.com
- zypp::TriBool now needs an explicit cast to bool (bsc#1128364)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-pkg-bindings-4.1.2/package/yast2-pkg-bindings.spec new/yast2-pkg-bindings-4.2.0/package/yast2-pkg-bindings.spec
--- old/yast2-pkg-bindings-4.1.2/package/yast2-pkg-bindings.spec 2019-03-08 13:05:55.000000000 +0100
+++ new/yast2-pkg-bindings-4.2.0/package/yast2-pkg-bindings.spec 2019-05-27 09:27:48.000000000 +0200
@@ -17,7 +17,7 @@
Name: yast2-pkg-bindings
-Version: 4.1.2
+Version: 4.2.0
Release: 0
BuildRoot: %{_tmppath}/%{name}-%{version}-build
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-pkg-bindings-4.1.2/smoke_test_run.rb new/yast2-pkg-bindings-4.2.0/smoke_test_run.rb
--- old/yast2-pkg-bindings-4.1.2/smoke_test_run.rb 2019-03-08 13:05:55.000000000 +0100
+++ new/yast2-pkg-bindings-4.2.0/smoke_test_run.rb 2019-05-27 09:27:48.000000000 +0200
@@ -16,7 +16,7 @@
# to y2log without affecting the return value :-(
def check_y2log
y2log = File.read(log_file).split("\n")
-
+
# keep only errors and higher
y2log.select! { |l| l =~ /^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2} <[3-5]>/ }
@@ -28,7 +28,7 @@
# ignore "Can't openfile '/var/lib/zypp/LastDistributionFlavor' for writing"
# (when running as non-root)
y2log.reject! { |l| l =~ /\/var\/lib\/zypp\/LastDistributionFlavor/ }
-
+
if !y2log.empty?
puts "Found errors in #{log_file}:"
puts y2log
@@ -80,5 +80,31 @@
end
puts "OK"
+# Check all packages - this expects at least one package is available/installed
+puts "Checking Pkg.Resolvabless..."
+resolvables = Yast::Pkg.Resolvables({kind: :package}, [])
+raise "Pkg.Resolvables failed!" unless resolvables
+raise "No package found!" if resolvables.empty?
+# compare with the old Pkg.ResolvableProperties call
+raise "Different number of packages found!" if packages.size != resolvables.size
+puts "OK (found #{resolvables.size} packages)"
+
+patterns = Yast::Pkg.Resolvables({kind: :pattern}, [:name])
+raise "Pkg.Resolvables failed!" unless patterns
+raise "No pattern found!" if patterns.empty?
+raise "Pattern devel_yast not found" unless patterns.include?("name" => "devel_yast")
+puts "OK (found #{patterns.size} patterns)"
+
+installed_products = Yast::Pkg.Resolvables({kind: :product, status: :installed}, [:name, :display_name])
+available_products = Yast::Pkg.Resolvables({kind: :product, status: :available}, [:name, :display_name])
+selected_products = Yast::Pkg.Resolvables({kind: :product, status: :selected}, [:name, :display_name])
+raise "Pkg.Resolvables failed!" unless patterns
+raise "No installed product found!" if installed_products.empty?
+raise "No available product found!" if available_products.empty?
+raise "A selected product found, nothing should be selected now!" unless selected_products.empty?
+puts "Found #{installed_products.size} installed products: #{installed_products.map{|p| p["display_name"]}}"
+puts "Found #{available_products.size} available products: #{available_products.map{|p| p["display_name"]}}"
+puts "OK"
+
# scan y2log for errors
check_y2log
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-pkg-bindings-4.1.2/src/PkgFunctions.h new/yast2-pkg-bindings-4.2.0/src/PkgFunctions.h
--- old/yast2-pkg-bindings-4.1.2/src/PkgFunctions.h 2019-03-08 13:05:55.000000000 +0100
+++ new/yast2-pkg-bindings-4.2.0/src/PkgFunctions.h 2019-05-27 09:27:48.000000000 +0200
@@ -215,7 +215,7 @@
bool CreateBaseProductSymlink();
- YCPMap Resolvable2YCPMap(const zypp::PoolItem &item, const std::string &req_kind, bool dependencies);
+ YCPMap Resolvable2YCPMap(const zypp::PoolItem &item, bool all, bool deps, const YCPList &attrs);
// CommitPolicy used for commit
zypp::ZYppCommitPolicy *commit_policy;
@@ -766,6 +766,11 @@
/* TYPEINFO: boolean(symbol,symbol)*/
YCPValue IsAnyResolvable(const YCPSymbol& kind_r, const YCPSymbol& status);
+ /* TYPEINFO: list<map<string,any> >(map<symbol,any>, list<symbol>) */
+ YCPValue Resolvables(const YCPMap& filter, const YCPList& attrs);
+ /* TYPEINFO: boolean(map<symbol,any>) */
+ YCPValue AnyResolvable(const YCPMap& filter);
+
// keyring related
/* TYPEINFO: boolean(string,boolean)*/
YCPValue ImportGPGKey(const YCPString& filename, const YCPBoolean& trusted);
@@ -821,7 +826,7 @@
/* TYPEINFO: boolean(string) */
YCPValue UrlSchemeIsDownloading(const YCPString &url_scheme);
- YCPValue ResolvablePropertiesEx(const YCPString& name, const YCPSymbol& kind_r, const YCPString& version, bool dependencies);
+ YCPValue ResolvablePropertiesEx(const YCPString& name, const YCPSymbol& kind_r, const YCPString& version, bool all, bool deps, const YCPList &attrs);
YCPValue ResolvableSetPatches(const YCPSymbol& kind_r, bool preselect);
/* TYPEINFO: integer(string, string) */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-pkg-bindings-4.1.2/src/Resolvable_Properties.cc new/yast2-pkg-bindings-4.2.0/src/Resolvable_Properties.cc
--- old/yast2-pkg-bindings-4.1.2/src/Resolvable_Properties.cc 2019-03-08 13:05:55.000000000 +0100
+++ new/yast2-pkg-bindings-4.2.0/src/Resolvable_Properties.cc 2019-05-27 09:27:48.000000000 +0200
@@ -56,19 +56,20 @@
@description
return list of resolvables of selected kind with required name
+ **Obsolete**
+
+ This call is obsolete, use `Resolvables()` call instead, it has more filtering
+ options and allows to return only the selected keys (saves memory and time).
+
**Warning**
Calling `ResolvableProperties("", :package, "")` variant is memory expansive
esp. when there are repositories with too many packages (e.g. the OpenSUSE
OSS repository contains ~40,000 packages).
- If you need only packages in a specific state then use `GetPackages()` call
- instead. If you need more details about the packages then read the details only
- for that packages using `ResolvableProperties(package_name, :package, "")`.
- In some cases it is also possible to use the `IsAnyResolvable` call.
-
- The other resolvable types (e.g. :pattern or :product) do not cause memory
- problems as there are usually just few items of this type.
+ It is recommended to use the `Resolvables()` call instead and use a more specific
+ input filter. If you only need a boolean result if a certain resolvable exists
+ then use the `AnyResolvable` call.
See bsc#106768.
@@ -85,11 +86,13 @@
if status is `selected or `removed there is extra key "transact_by" : symbol, where symbol is `user (the highest level),
`app_high (selected by Yast), `app_low and `solver (the lowest level)
on_system_by_user shows if the resolvable has been installed by user(USER,APPL_HIGH,APPL_LOW) or due solved dependencies. This information comes from
- the solver which cannot distinguis between the state USER,APPL_HIGH and APPL_LOW.
+ the solver which cannot distinguish between the state USER,APPL_HIGH and APPL_LOW.
"version" value contains edition with all components in form "[epoch:]version[-release]",
"version_epoch", "version_version" and "version_release" values contain the parts of the edition.
+ The "kind" attribute contains the kind of the resolvable, it can be either :package, :patch, :product, :srcpackage or :pattern.
+
Additionally to keys returned for all resolvables, there also some
resolvable-specific ones:
@@ -171,7 +174,10 @@
YCPValue
PkgFunctions::ResolvableProperties(const YCPString& name, const YCPSymbol& kind_r, const YCPString& version)
{
- return ResolvablePropertiesEx (name, kind_r, version, false);
+ y2warning("Pkg::ResolvableProperties() is obsolete.");
+ y2warning("Use Pkg::Resolvables({name: ..., kind: ...}, [...]) instead.");
+
+ return ResolvablePropertiesEx (name, kind_r, version, true, false, YCPList());
}
/*
@@ -184,7 +190,10 @@
YCPValue
PkgFunctions::ResolvableDependencies(const YCPString& name, const YCPSymbol& kind_r, const YCPString& version)
{
- return ResolvablePropertiesEx (name, kind_r, version, true);
+ y2warning("Pkg::ResolvableDependencies() is obsolete.");
+ y2warning("Use Pkg::Resolvables({name: ..., kind: ...}, [:dependencies, ...]) instead.");
+
+ return ResolvablePropertiesEx (name, kind_r, version, true, true, YCPList());
}
std::string PkgFunctions::TransactToString(zypp::ResStatus::TransactByValue trans)
@@ -202,388 +211,337 @@
return ret;
}
-YCPMap PkgFunctions::Resolvable2YCPMap(const zypp::PoolItem &item, const std::string &req_kind, bool dependencies)
+YCPMap PkgFunctions::Resolvable2YCPMap(const zypp::PoolItem &item, bool all, bool deps, const YCPList &attrs)
{
YCPMap info;
- info->add(YCPString("name"), YCPString(item->name()));
+// define some helper macros
+#define ADD_STRING(K, V) \
+ if (all || attrs->contains(YCPSymbol(K))) \
+ info->add(YCPString(K), YCPString(V));
+#define ADD_BOOLEAN(K, V) \
+ if (all || attrs->contains(YCPSymbol(K))) \
+ info->add(YCPString(K), YCPBoolean(V));
+#define ADD_INTEGER(K, V) \
+ if (all || attrs->contains(YCPSymbol(K))) \
+ info->add(YCPString(K), YCPInteger(V));
+#define ADD_SYMBOL(K, V) \
+ if (all || attrs->contains(YCPSymbol(K))) \
+ info->add(YCPString(K), YCPSymbol(V));
+#define ADD_NOT_EMPTY_LIST(K, V) \
+ if ((all && !(V).isEmpty()) || attrs->contains(YCPSymbol(K))) \
+ info->add(YCPString(K), V);
+#define ADD_NOT_EMPTY_STRING(K, V) \
+ if ((all && !(V).empty()) || attrs->contains(YCPSymbol(K))) \
+ info->add(YCPString(K), YCPString(V));
+
+ ADD_STRING("name", item->name());
// complete edition: [epoch:]version[-release]
- info->add(YCPString("version"), YCPString(item->edition().asString()));
+ ADD_STRING("version", item->edition().asString());
+ ADD_STRING("version_version", item->edition().version());
+ ADD_STRING("version_release", item->edition().release());
// parts of the edition
- if (item->edition().epoch() == zypp::Edition::noepoch)
- info->add(YCPString("version_epoch"), YCPVoid());
- else
- info->add(YCPString("version_epoch"), YCPInteger(item->edition().epoch()));
- info->add(YCPString("version_version"), YCPString(item->edition().version()));
- info->add(YCPString("version_release"), YCPString(item->edition().release()));
+ if (all || attrs->contains(YCPSymbol("version_epoch")))
+ {
+ if (item->edition().epoch() == zypp::Edition::noepoch)
+ info->add(YCPString("version_epoch"), YCPVoid());
+ else
+ info->add(YCPString("version_epoch"), YCPInteger(item->edition().epoch()));
+ }
- info->add(YCPString("arch"), YCPString(item->arch().asString()));
- info->add(YCPString("description"), YCPString(item->description()));
+ ADD_STRING("arch", item->arch().asString());
+ ADD_STRING("description", item->description());
std::string resolvable_summary = item->summary();
- if (resolvable_summary.size() > 0)
- {
- info->add(YCPString("summary"), YCPString(resolvable_summary));
- }
-
- // status
- std::string stat;
+ ADD_NOT_EMPTY_STRING("summary", resolvable_summary);
zypp::ResStatus status = item.status();
- if (status.isToBeInstalled())
- {
- stat = "selected";
- }
- else if (status.isInstalled() || status.isSatisfied())
- {
- if (status.isToBeUninstalled())
- {
- stat = "removed";
- }
- else
+ // status
+ if (all || attrs->contains(YCPSymbol("status")))
{
- stat = "installed";
- }
- }
- else
- {
- stat = "available";
- }
+ std::string stat;
- info->add(YCPString("transact_by"), YCPSymbol(TransactToString(status.getTransactByValue())));
+ if (status.isToBeInstalled())
+ stat = "selected";
+ else if (status.isInstalled() || status.isSatisfied())
+ stat = (status.isToBeUninstalled()) ? "removed" : "installed";
+ else
+ stat = "available";
- info->add(YCPString("on_system_by_user"), YCPBoolean(item.satSolvable().onSystemByUser()));
-
- info->add(YCPString("status"), YCPSymbol(stat));
+ info->add(YCPString("status"), YCPSymbol(stat));
+ }
+ ADD_SYMBOL("transact_by", TransactToString(status.getTransactByValue()));
+ ADD_BOOLEAN("on_system_by_user", item.satSolvable().onSystemByUser());
// is the resolvable locked? (Locked or Taboo in the UI)
- info->add(YCPString("locked"), YCPBoolean(status.isLocked()));
-
+ ADD_BOOLEAN("locked", status.isLocked());
// source
- info->add(YCPString("source"), YCPInteger(logFindAlias(item->repoInfo().alias())));
+ ADD_INTEGER("source", logFindAlias(item->repoInfo().alias()));
// add license info if it is defined
std::string license = item->licenseToConfirm();
- if (!license.empty())
- {
- info->add(YCPString("license_confirmed"), YCPBoolean(item.status().isLicenceConfirmed()));
- info->add(YCPString("license"), YCPString(license));
- }
-
- info->add(YCPString("download_size"), YCPInteger(item->downloadSize()));
- info->add(YCPString("inst_size"), YCPInteger(item->installSize()));
-
- info->add(YCPString("medium_nr"), YCPInteger(item->mediaNr()));
- info->add(YCPString("vendor"), YCPString(item->vendor()));
+ if ((all && !license.empty()) || attrs->contains(YCPSymbol("license_confirmed")))
+ {
+ info->add(YCPString("license_confirmed"), YCPBoolean(item.status().isLicenceConfirmed()));
+ info->add(YCPString("license"), YCPString(license));
+ }
+ ADD_INTEGER("download_size", item->downloadSize());
+ ADD_INTEGER("inst_size", item->installSize());
+ ADD_INTEGER("medium_nr", item->mediaNr());
+ ADD_STRING("vendor", item->vendor());
// package specific info
- if( req_kind == "package" )
- {
zypp::Package::constPtr pkg = zypp::asKind<zypp::Package>(item.resolvable());
- if ( pkg )
- {
- std::string tmp = pkg->location().filename().asString();
- if (!tmp.empty())
- {
- info->add(YCPString("path"), YCPString(tmp));
- }
-
- tmp = pkg->location().filename().basename();
- if (!tmp.empty())
- {
- info->add(YCPString("location"), YCPString(tmp));
- }
- } else
- {
- y2error("package %s is not a package", item->name().c_str() );
- }
- }
- else if( req_kind == "srcpackage" )
- {
- zypp::SrcPackage::constPtr pkg = zypp::asKind<zypp::SrcPackage>(item.resolvable());
if (pkg)
{
- std::string tmp(pkg->location().filename().asString());
- if (!tmp.empty())
- {
- info->add(YCPString("path"), YCPString(tmp));
- }
-
- tmp = pkg->location().filename().basename();
- if (!tmp.empty())
- {
- info->add(YCPString("location"), YCPString(tmp));
- }
-
- info->add(YCPString("src_type"), YCPString(pkg->sourcePkgType()));
- }
- else
- {
- y2error("%s is not a srcpackage", item->name().c_str() );
- }
- }
- // product specific info
- else if( req_kind == "product" ) {
- zypp::Product::constPtr product = zypp::asKind<zypp::Product>(item.resolvable());
- if ( !product )
- {
- y2error("product %s is not a product", item->name().c_str() );
- return YCPMap();
- }
-
- std::string category(product->isTargetDistribution() ? "base" : "addon");
+ ADD_SYMBOL("kind", "package");
- info->add(YCPString("category"), YCPString(category));
- info->add(YCPString("type"), YCPString(category));
- info->add(YCPString("relnotes_url"), YCPString(product->releaseNotesUrls().first().asString()));
+ std::string path = pkg->location().filename().asString();
+ ADD_NOT_EMPTY_STRING("path", path);
- std::string product_summary = product->summary();
- if (product_summary.size() > 0)
- {
- info->add(YCPString("display_name"), YCPString(product_summary));
+ std::string location = pkg->location().filename().basename();
+ ADD_NOT_EMPTY_STRING("location", location);
}
- std::string product_shortname = product->shortName();
- if (product_shortname.size() > 0)
+ zypp::SrcPackage::constPtr src_pkg = zypp::asKind<zypp::SrcPackage>(item.resolvable());
+ if (src_pkg)
{
- info->add(YCPString("short_name"), YCPString(product_shortname));
- }
- // use summary for the short name if it's defined
- else if (product_summary.size() > 0)
- {
- info->add(YCPString("short_name"), YCPString(product_summary));
- }
+ ADD_SYMBOL("kind", "srcpackage");
- zypp::Date eol = product->endOfLife();
- if (eol > 0)
- {
- info->add(YCPString("eol"), YCPInteger(eol));
- }
+ std::string path = src_pkg->location().filename().asString();
+ ADD_NOT_EMPTY_STRING("path", path);
- YCPList updateUrls(asYCPList(product->updateUrls()));
- info->add(YCPString("update_urls"), updateUrls);
+ std::string location = src_pkg->location().filename().basename();
+ ADD_NOT_EMPTY_STRING("location", location);
- YCPList flags;
- std::list<std::string> pflags = product->flags();
- for (std::list<std::string>::const_iterator flag_it = pflags.begin();
- flag_it != pflags.end(); ++flag_it)
- {
- flags->add(YCPString(*flag_it));
+ ADD_STRING("src_type", src_pkg->sourcePkgType());
}
- info->add(YCPString("flags"), flags);
- YCPList extraUrls( asYCPList(product->extraUrls()) );
- if ( extraUrls.size() )
+ zypp::Product::constPtr product = zypp::asKind<zypp::Product>(item.resolvable());
+ if ( product )
{
- info->add(YCPString("extra_urls"), extraUrls);
- }
+ ADD_SYMBOL("kind", "product");
- YCPList optionalUrls( asYCPList(product->optionalUrls()) );
- if ( optionalUrls.size() )
- {
- info->add(YCPString("optional_urls"), optionalUrls);
- }
+ std::string category(product->isTargetDistribution() ? "base" : "addon");
- YCPList registerUrls( asYCPList(product->registerUrls()) );
- if ( registerUrls.size() )
- {
- info->add(YCPString("register_urls"), registerUrls);
- }
+ ADD_STRING("category", category);
+ ADD_STRING("type", category);
+ ADD_STRING("relnotes_url", product->releaseNotesUrls().first().asString());
- YCPList smoltUrls( asYCPList(product->smoltUrls()) );
- if ( smoltUrls.size() )
- {
- info->add(YCPString("smolt_urls"), smoltUrls);
- }
+ std::string product_summary = product->summary();
+ ADD_STRING("display_name", product_summary);
- YCPList relNotesUrls(asYCPList(product->releaseNotesUrls()));
- if ( relNotesUrls.size() )
- {
- info->add(YCPString("relnotes_urls"), relNotesUrls);
- }
+ if (all || attrs->contains(YCPSymbol("short_name")))
+ {
+ std::string product_shortname = product->shortName();
+ ADD_NOT_EMPTY_STRING("short_name", product_shortname)
+ else if (!product_summary.empty())
+ // use summary for the short name if it's defined
+ info->add(YCPString("short_name"), YCPString(product_summary));
+ }
- // registration data
- info->add(YCPString("register_target"), YCPString(product->registerTarget()));
- info->add(YCPString("register_release"), YCPString(product->registerRelease()));
- info->add(YCPString("register_flavor"), YCPString(product->registerFlavor()));
- info->add(YCPString("product_line"), YCPString(product->productLine()));
+ if ((all && product->endOfLife() > 0) || attrs->contains(YCPSymbol("eol")))
+ info->add(YCPString("eol"), YCPInteger(product->endOfLife()));
- // Live CD, FTP Edition...
- info->add(YCPString("flavor"), YCPString(product->flavor()));
+ if (all || attrs->contains(YCPSymbol("update_urls")))
+ {
+ YCPList updateUrls(asYCPList(product->updateUrls()));
+ info->add(YCPString("update_urls"), updateUrls);
+ }
- // get the installed Products it would replace.
- zypp::Product::ReplacedProducts replaced(product->replacedProducts());
+ if (all || attrs->contains(YCPSymbol("flags")))
+ {
+ YCPList flags;
- if (!replaced.empty())
- {
- YCPList rep_prods;
+ for (auto const &flag : product->flags())
+ flags->add(YCPString(flag));
- // add the products to the list
- for_( it, replaced.begin(), replaced.end() )
- {
- // The current replaced Product.
- zypp::Product::constPtr replacedProduct(*it);
+ info->add(YCPString("flags"), flags);
+ }
- if (!replacedProduct) continue;
+ YCPList extraUrls( asYCPList(product->extraUrls()) );
+ ADD_NOT_EMPTY_LIST("extra_urls", extraUrls);
- YCPMap rprod;
- rprod->add(YCPString("name"), YCPString(replacedProduct->name()));
- rprod->add(YCPString("version"), YCPString(replacedProduct->edition().asString()));
- rprod->add(YCPString("arch"), YCPString(replacedProduct->arch().asString()));
- rprod->add(YCPString("description"), YCPString(replacedProduct->description()));
+ YCPList optionalUrls( asYCPList(product->optionalUrls()) );
+ ADD_NOT_EMPTY_LIST("optional_urls", optionalUrls);
- std::string product_summary = replacedProduct->summary();
- if (product_summary.size() > 0)
- {
- rprod->add(YCPString("display_name"), YCPString(product_summary));
- }
+ YCPList registerUrls( asYCPList(product->registerUrls()) );
+ ADD_NOT_EMPTY_LIST("register_urls", registerUrls);
- std::string product_shortname = replacedProduct->shortName();
- if (product_shortname.size() > 0)
- {
- rprod->add(YCPString("short_name"), YCPString(product_shortname));
- }
- // use summary for the short name if it's defined
- else if (product_summary.size() > 0)
+ YCPList smoltUrls( asYCPList(product->smoltUrls()));
+ ADD_NOT_EMPTY_LIST("smolt_urls", smoltUrls);
+
+ YCPList relNotesUrls(asYCPList(product->releaseNotesUrls()));
+ ADD_NOT_EMPTY_LIST("relnotes_urls", relNotesUrls);
+
+ // registration data
+ ADD_STRING("register_target", product->registerTarget());
+ ADD_STRING("register_release", product->registerRelease());
+ ADD_STRING("register_flavor", product->registerFlavor());
+ ADD_STRING("product_line", product->productLine());
+ // Live CD, FTP Edition...
+ ADD_STRING("flavor", product->flavor());
+
+ // get the installed Products it would replace.
+ zypp::Product::ReplacedProducts replaced(product->replacedProducts());
+ if ((all && !replaced.empty()) || attrs->contains(YCPSymbol("replaces")))
{
- rprod->add(YCPString("short_name"), YCPString(product_summary));
- }
- }
+ YCPList rep_prods;
- info->add(YCPString("replaces"), rep_prods);
- }
-
- std::string product_file;
+ // add the products to the list
+ for (auto const &replacedProduct : replaced)
+ {
+ if (!replacedProduct) continue;
- // add reference file in /etc/products.d
- if (status.isInstalled())
- {
- product_file = (_target_root + "/etc/products.d/" + product->referenceFilename()).asString();
- y2milestone("Parsing product file %s", product_file.c_str());
- const zypp::parser::ProductFileData productFileData = zypp::parser::ProductFileReader::scanFile(product_file);
+ YCPMap rprod;
+ rprod->add(YCPString("name"), YCPString(replacedProduct->name()));
+ rprod->add(YCPString("version"), YCPString(replacedProduct->edition().asString()));
+ rprod->add(YCPString("arch"), YCPString(replacedProduct->arch().asString()));
+ rprod->add(YCPString("description"), YCPString(replacedProduct->description()));
+
+ std::string product_summary = replacedProduct->summary();
+ ADD_NOT_EMPTY_STRING("display_name", product_summary);
+
+ std::string product_shortname = replacedProduct->shortName();
+ ADD_NOT_EMPTY_STRING("short_name", product_shortname)
+ // use summary for the short name if it's defined
+ else if (product_summary.size() > 0)
+ rprod->add(YCPString("short_name"), YCPString(product_summary));
+ }
- YCPList upgrade_list;
+ info->add(YCPString("replaces"), rep_prods);
+ }
- for_( upit, productFileData.upgrades().begin(), productFileData.upgrades().end() )
- {
- const zypp::parser::ProductFileData::Upgrade & upgrade( *upit );
+ std::string product_file;
- YCPMap upgrades;
- upgrades->add(YCPString("name"), YCPString(upgrade.name()));
- upgrades->add(YCPString("summary"), YCPString(upgrade.summary()));
- upgrades->add(YCPString("repository"), YCPString(upgrade.repository()));
- upgrades->add(YCPString("notify"), YCPBoolean(upgrade.notify()));
- upgrades->add(YCPString("status"), YCPString(upgrade.status()));
- upgrades->add(YCPString("product"), YCPString(upgrade.product()));
+ // add reference file in /etc/products.d
+ if (status.isInstalled() && (all || attrs->contains(YCPSymbol("upgrades"))))
+ {
+ product_file = (_target_root + "/etc/products.d/" + product->referenceFilename()).asString();
+ y2milestone("Parsing product file %s", product_file.c_str());
+ const zypp::parser::ProductFileData productFileData = zypp::parser::ProductFileReader::scanFile(product_file);
- upgrade_list->add(upgrades);
- }
+ YCPList upgrade_list;
- info->add(YCPString("upgrades"), upgrade_list);
- }
- else
- {
- // get the package
- zypp::sat::Solvable refsolvable = product->referencePackage();
+ for (const auto &upgrade : productFileData.upgrades())
+ {
+ YCPMap upgrades;
+ upgrades->add(YCPString("name"), YCPString(upgrade.name()));
+ upgrades->add(YCPString("summary"), YCPString(upgrade.summary()));
+ upgrades->add(YCPString("repository"), YCPString(upgrade.repository()));
+ upgrades->add(YCPString("notify"), YCPBoolean(upgrade.notify()));
+ upgrades->add(YCPString("status"), YCPString(upgrade.status()));
+ upgrades->add(YCPString("product"), YCPString(upgrade.product()));
- if (refsolvable != zypp::sat::Solvable::noSolvable)
- {
- // create a package pointer from the SAT solvable
- zypp::Package::Ptr refpkg(zypp::make<zypp::Package>(refsolvable));
+ upgrade_list->add(upgrades);
+ }
- if (refpkg)
+ info->add(YCPString("upgrades"), upgrade_list);
+ }
+ else
{
- info->add(YCPString("product_package"), YCPString(refpkg->name()));
+ // get the package
+ zypp::sat::Solvable refsolvable = product->referencePackage();
- // get the package files
- zypp::Package::FileList files( refpkg->filelist() );
- y2milestone("The reference package has %d files", files.size());
+ if (refsolvable != zypp::sat::Solvable::noSolvable)
+ {
+ // create a package pointer from the SAT solvable
+ zypp::Package::Ptr refpkg(zypp::make<zypp::Package>(refsolvable));
- zypp::str::smatch what;
- const zypp::str::regex product_file_regex("^/etc/products\\.d/(.*\\.prod)$");
+ if (refpkg)
+ {
+ info->add(YCPString("product_package"), YCPString(refpkg->name()));
+
+ // get the package files
+ zypp::Package::FileList files( refpkg->filelist() );
+ y2milestone("The reference package has %d files", files.size());
+
+ zypp::str::smatch what;
+ const zypp::str::regex product_file_regex("^/etc/products\\.d/(.*\\.prod)$");
+
+ // find the product file
+ for(const auto &f : files)
+ {
+ if (zypp::str::regex_match(f, what, product_file_regex))
+ {
+ product_file = what[1];
+ break;
+ }
+ }
+ }
+ }
+ }
- // find the product file
- for_(iter, files.begin(), files.end())
- {
- if (zypp::str::regex_match(*iter, what, product_file_regex))
- {
- product_file = what[1];
- break;
- }
- }
+ if (all || attrs->contains(YCPSymbol("product_file")))
+ {
+ if (product_file.empty())
+ y2warning("The product file has not been found");
+ else
+ y2milestone("Found product file %s", product_file.c_str());
+
+ ADD_NOT_EMPTY_STRING("product_file", product_file);
}
- }
}
- if (product_file.empty())
- {
- y2warning("The product file has not been found");
- }
- else
- {
- y2milestone("Found product file %s", product_file.c_str());
- info->add(YCPString("product_file"), YCPString(product_file));
- }
- }
// pattern specific info
- else if ( req_kind == "pattern" ) {
zypp::Pattern::constPtr pattern = zypp::asKind<zypp::Pattern>(item.resolvable());
- info->add(YCPString("category"), YCPString(pattern->category()));
- info->add(YCPString("user_visible"), YCPBoolean(pattern->userVisible()));
- info->add(YCPString("default"), YCPBoolean(pattern->isDefault()));
- info->add(YCPString("icon"), YCPString(pattern->icon().asString()));
- info->add(YCPString("script"), YCPString(pattern->script().asString()));
- info->add(YCPString("order"), YCPString(pattern->order()));
+ if (pattern) {
+ ADD_SYMBOL("kind", "pattern");
+
+ ADD_STRING("category", pattern->category());
+ ADD_BOOLEAN("user_visible", pattern->userVisible());
+
+ ADD_BOOLEAN("default", pattern->isDefault());
+ ADD_STRING("icon", pattern->icon().asString());
+ ADD_STRING("script", pattern->script().asString());
+ ADD_STRING("order", pattern->order());
}
+
// patch specific info
- else if ( req_kind == "patch" )
- {
zypp::Patch::constPtr patch_ptr = zypp::asKind<zypp::Patch>(item.resolvable());
+ if (patch_ptr)
+ {
+ ADD_SYMBOL("kind", "patch");
+
+ ADD_BOOLEAN("interactive", patch_ptr->interactive());
+ ADD_BOOLEAN("reboot_needed", patch_ptr->rebootSuggested());
+ ADD_BOOLEAN("relogin_needed", patch_ptr->reloginSuggested());
+ ADD_BOOLEAN("affects_pkg_manager", patch_ptr->restartSuggested());
+ ADD_BOOLEAN("is_needed", item.isBroken());
- info->add(YCPString("interactive"), YCPBoolean(patch_ptr->interactive()));
- info->add(YCPString("reboot_needed"), YCPBoolean(patch_ptr->rebootSuggested()));
- info->add(YCPString("relogin_needed"), YCPBoolean(patch_ptr->reloginSuggested()));
- info->add(YCPString("affects_pkg_manager"), YCPBoolean(patch_ptr->restartSuggested()));
- info->add(YCPString("is_needed"), YCPBoolean(item.isBroken()));
// names and versions of packages, contained in the patch
- YCPMap contents;
- zypp::Patch::Contents c( patch_ptr->contents() );
- for_( it, c.begin(), c.end() )
- {
- contents->add (YCPString (it->name()), YCPString (it->edition().c_str()));
- }
- info->add(YCPString("contents"), contents);
+ if (all || attrs->contains(YCPSymbol("contents")))
+ {
+ YCPMap contents;
+ for (const auto &res : patch_ptr->contents())
+ contents->add (YCPString (res.name()), YCPString (res.edition().c_str()));
+ info->add(YCPString("contents"), contents);
+ }
}
// dependency info
- if (dependencies)
+ if (deps || attrs->contains(YCPSymbol("dependencies")))
{
- std::set<std::string> _kinds;
- _kinds.insert("provides");
- _kinds.insert("prerequires");
- _kinds.insert("requires");
- _kinds.insert("conflicts");
- _kinds.insert("obsoletes");
- _kinds.insert("recommends");
- _kinds.insert("suggests");
- _kinds.insert("enhances");
- _kinds.insert("supplements");
- YCPList ycpdeps;
- YCPList rawdeps;
- for (std::set<std::string>::const_iterator kind_it = _kinds.begin();
- kind_it != _kinds.end(); ++kind_it)
- {
- zypp::Dep depkind(*kind_it);
+ std::set<std::string> _kinds = {
+ "provides", "prerequires", "requires", "conflicts", "obsoletes",
+ "recommends", "suggests", "enhances", "supplements"
+ };
+
+ YCPList ycpdeps;
+ YCPList rawdeps;
+ for (const auto &kind : _kinds)
+ {
+ zypp::Dep depkind(kind);
zypp::Capabilities deps = item.resolvable()->dep(depkind);
// add raw dependencies
- for_(it, deps.begin(), deps.end())
+ for (const auto &d : deps)
{
YCPMap rawdep;
- rawdep->add(YCPString(*kind_it), YCPString(it->asString()));
+ rawdep->add(YCPString(kind), YCPString(d.asString()));
rawdeps->add(rawdep);
}
@@ -593,40 +551,32 @@
for (zypp::sat::WhatProvides::const_iterator d = prv.begin(); d != prv.end(); ++d)
{
if (d->kind().asString().empty() || d->name().empty())
- {
y2debug("Empty kind or name: kind: %s, name: %s", d->kind().asString().c_str(), d->name().c_str());
- }
else
{
YCPMap ycpdep;
ycpdep->add (YCPString ("res_kind"), YCPString (d->kind().asString()));
ycpdep->add (YCPString ("name"), YCPString (d->name()));
- ycpdep->add (YCPString ("dep_kind"), YCPString (*kind_it));
+ ycpdep->add (YCPString ("dep_kind"), YCPString (kind));
if (!ycpdeps.contains(ycpdep))
- {
ycpdeps->add (ycpdep);
- }
}
}
- }
+ }
- if (ycpdeps.size() > 0)
- {
- info->add (YCPString ("dependencies"), ycpdeps);
- }
+ if (ycpdeps.size() > 0)
+ info->add (YCPString ("dependencies"), ycpdeps);
- if (rawdeps.size() > 0)
- {
- info->add (YCPString ("deps"), rawdeps);
- }
+ if (rawdeps.size() > 0)
+ info->add (YCPString ("deps"), rawdeps);
}
return info;
}
YCPValue
-PkgFunctions::ResolvablePropertiesEx(const YCPString& name, const YCPSymbol& kind_r, const YCPString& version, bool dependencies)
+PkgFunctions::ResolvablePropertiesEx(const YCPString& name, const YCPSymbol& kind_r, const YCPString& version, bool all_attrs, bool deps, const YCPList &attrs = YCPList())
{
zypp::Resolvable::Kind kind;
std::string req_kind = kind_r->symbol ();
@@ -704,7 +654,7 @@
// check version if required
if (vers.empty() || vers == inst_it->resolvable()->edition().asString())
{
- ret->add(Resolvable2YCPMap(*inst_it, req_kind, dependencies));
+ ret->add(Resolvable2YCPMap(*inst_it, all_attrs, deps, attrs));
}
}
}
@@ -717,7 +667,7 @@
// check version if required
if (vers.empty() || vers == avail_it->resolvable()->edition().asString())
{
- ret->add(Resolvable2YCPMap(*avail_it, req_kind, dependencies));
+ ret->add(Resolvable2YCPMap(*avail_it, all_attrs, deps, attrs));
}
}
}
@@ -730,7 +680,7 @@
return YCPVoid();
}
}
- }
+ }
}
catch(const zypp::Exception &expt)
{
@@ -748,16 +698,12 @@
it != zypp::ResPool::instance().proxy().byKindEnd(kind);
++it)
{
- zypp::ui::Selectable::Fate fate = (*it)->fate();
+ zypp::ui::Selectable::Fate fate = (*it)->fate();
- if (to_install && fate == zypp::ui::Selectable::TO_INSTALL)
- {
- return true;
- }
- else if (!to_install && fate == zypp::ui::Selectable::TO_DELETE)
- {
- return true;
- }
+ if (to_install && fate == zypp::ui::Selectable::TO_INSTALL)
+ return true;
+ else if (!to_install && fate == zypp::ui::Selectable::TO_DELETE)
+ return true;
}
return false;
@@ -765,20 +711,28 @@
/**
@builtin IsAnyResolvable
- @short Is there any resolvable in the requried state?
+ @short Is there any resolvable in the required state?
@param symbol kind_r kind of resolvable, can be `product, `patch, `package, `pattern or `any for any kind of resolvable
@param symbol status status of resolvable, can be `to_install or `to_remove
@return boolean true if a resolvable with the requested status was found
+
+ **Obsolete**
+
+ This call is obsolete, use `AnyResolvable()` call instead, it has more filtering options.
+
*/
YCPValue
PkgFunctions::IsAnyResolvable(const YCPSymbol& kind_r, const YCPSymbol& status)
{
+ y2warning("Pkg::IsAnyResolvable() is obsolete.");
+ y2warning("Use Pkg::AnyResolvable({kind: ..., status: ...}) instead.");
+
zypp::Resolvable::Kind kind;
if (kind_r.isNull() || status.isNull())
{
- y2error("Invalid nil parameter!");
- return YCPVoid();
+ y2error("Invalid nil parameter!");
+ return YCPVoid();
}
std::string req_kind = kind_r->symbol ();
@@ -786,23 +740,23 @@
if (stat_str != "to_install" && stat_str != "to_remove")
{
- y2error("Invalid status parameter: %s", stat_str.c_str());
- return YCPVoid();
+ y2error("Invalid status parameter: %s", stat_str.c_str());
+ return YCPVoid();
}
bool to_install = stat_str == "to_install";
if( req_kind == "product" ) {
- kind = zypp::ResKind::product;
+ kind = zypp::ResKind::product;
}
else if ( req_kind == "patch" ) {
kind = zypp::ResKind::patch;
}
else if ( req_kind == "package" ) {
- kind = zypp::ResKind::package;
+ kind = zypp::ResKind::package;
}
else if ( req_kind == "pattern" ) {
- kind = zypp::ResKind::pattern;
+ kind = zypp::ResKind::pattern;
}
else if ( req_kind == "any" ) {
try
@@ -837,3 +791,215 @@
}
}
+// A custom filter for filtering the libzypp resolvables.
+struct ResolvableFilter
+{
+ // The constructor, convert the input filters into the internal
+ // structure to make the filtering process faster and simpler.
+ ResolvableFilter(const YCPMap &attributes, const PkgFunctions &pf)
+ : pkg(pf), check_repo(false), check_transact_by(false), check_vendor(false),
+ check_locked(false), check_on_system(false), check_license_confirmed(false),
+ medium_nr(-1)
+ {
+ YCPValue kind_symbol = attributes->value(YCPSymbol("kind"));
+ if (!kind_symbol.isNull() && kind_symbol->isSymbol())
+ kind = kind_symbol->asSymbol()->symbol();
+
+ YCPValue name_value = attributes->value(YCPSymbol("name"));
+ if (!name_value.isNull() && name_value->isString())
+ name = name_value->asString()->value();
+
+ YCPValue status_symbol = attributes->value(YCPSymbol("status"));
+ if (!status_symbol.isNull() && status_symbol->isSymbol())
+ status_str = status_symbol->asSymbol()->symbol();
+
+ YCPValue source_value = attributes->value(YCPSymbol("source"));
+ if (!source_value.isNull() && source_value->isInteger()) {
+ check_repo = true;
+ repo = source_value->asInteger()->value();
+ }
+
+ YCPValue medium_nr_value = attributes->value(YCPSymbol("medium_nr"));
+ if (!medium_nr_value.isNull() && medium_nr_value->isInteger())
+ medium_nr = medium_nr_value->asInteger()->value();
+
+ YCPValue transact_by_value = attributes->value(YCPSymbol("transact_by"));
+ if (!transact_by_value.isNull() && transact_by_value->isSymbol()) {
+ check_transact_by = true;
+ std::string transact_by_str = transact_by_value->asSymbol()->symbol();
+
+ if (transact_by_str == "user")
+ transact_by = zypp::ResStatus::USER;
+ else if (transact_by_str == "app_high")
+ transact_by = zypp::ResStatus::APPL_HIGH;
+ else if (transact_by_str == "app_low")
+ transact_by = zypp::ResStatus::APPL_LOW;
+ else if (transact_by_str == "solver")
+ transact_by = zypp::ResStatus::SOLVER;
+ else {
+ y2warning("Invalid 'transact_by' value: %s", transact_by_str.c_str());
+ check_transact_by = false;
+ }
+ }
+
+ YCPValue arch_value = attributes->value(YCPSymbol("arch"));
+ if (!arch_value.isNull() && arch_value->isString())
+ arch_str = arch_value->asString()->value();
+
+ YCPValue version_value = attributes->value(YCPSymbol("version"));
+ if (!version_value.isNull() && version_value->isString())
+ version_str = version_value->asString()->value();
+
+ YCPValue vendor_value = attributes->value(YCPSymbol("vendor"));
+ if (!vendor_value.isNull() && vendor_value->isString())
+ {
+ check_vendor = true;
+ vendor = vendor_value->asString()->value();
+ }
+
+ YCPValue locked_value = attributes->value(YCPSymbol("locked"));
+ if (!locked_value.isNull() && locked_value->isBoolean())
+ {
+ check_locked = true;
+ locked = vendor_value->asBoolean()->value();
+ }
+
+ YCPValue on_system_value = attributes->value(YCPSymbol("on_system_by_user"));
+ if (!on_system_value.isNull() && on_system_value->isBoolean())
+ {
+ check_on_system = true;
+ on_system = on_system_value->asBoolean()->value();
+ }
+
+ YCPValue license_confirmed_value = attributes->value(YCPSymbol("license_confirmed"));
+ if (!license_confirmed_value.isNull() && license_confirmed_value->isBoolean())
+ {
+ check_license_confirmed = true;
+ license_confirmed = license_confirmed_value->asBoolean()->value();
+ }
+ }
+
+ // The main filtering function, returns true/false for each resolvable in the pool
+ // whether it matches the required criteria.
+ bool operator()(const zypp::PoolItem &r) const
+ {
+ // check the kind
+ if (!kind.empty() && kind != r->kind())
+ return false;
+
+ // check the name
+ if (!name.empty() && name != r->name())
+ return false;
+
+ // check the version
+ if (!version_str.empty() && version_str != r->edition().asString())
+ return false;
+
+ // check the architecture
+ if (!arch_str.empty() && arch_str != r->arch().asString())
+ return false;
+
+ // check the vendor
+ if (check_vendor && vendor != r->vendor())
+ return false;
+
+ // check the lock status
+ if (check_locked && locked != r.status().isLocked())
+ return false;
+
+ // check the license status
+ if (check_license_confirmed && license_confirmed != r.status().isLicenceConfirmed())
+ return false;
+
+ // check the status
+ if (!status_str.empty()) {
+ zypp::ResStatus status = r.status();
+
+ if (!status.isToBeInstalled() && status_str == "selected")
+ return false;
+ if (!status.isToBeUninstalled() && status_str == "removed")
+ return false;
+ if (!(status.isInstalled() || status.isSatisfied()) && status_str == "installed")
+ return false;
+ // otherwise the resolvable has status available
+ if ((status.isToBeInstalled() || status.isInstalled() || status.isSatisfied()) && status_str == "available")
+ return false;
+ }
+
+ // check who changed the status
+ if (check_transact_by && r.status().getTransactByValue() != transact_by)
+ return false;
+
+ // check the repository
+ if (check_repo && pkg.logFindAlias(r->repoInfo().alias()) != repo)
+ return false;
+
+ // check if on system by user
+ if (check_on_system && on_system != r.satSolvable().onSystemByUser())
+ return false;
+
+ // check the medium number
+ if (medium_nr >= 0 && medium_nr != r->mediaNr())
+ return false;
+
+ return true;
+ }
+
+ // reference to PkgFunctions, we need to call PkgFunctions::logFindAlias()
+ const PkgFunctions &pkg;
+
+ std::string kind, name, status_str, transact_by_str, arch_str, version_str;
+
+ bool check_repo;
+ PkgFunctions::RepoId repo;
+
+ bool check_transact_by;
+ zypp::ResStatus::TransactByValue transact_by;
+
+ bool check_vendor;
+ std::string vendor;
+
+ bool check_locked, locked;
+ bool check_on_system, on_system;
+ bool check_license_confirmed, license_confirmed;
+ long long medium_nr;
+};
+
+/**
+ @builtin Resolvables
+ @short Is there any resolvable matching the input filter?
+ @param map filter
+ @param list attrs the list of required attributes
+ @return boolean true if a resolvable was found, false otherwise
+
+ See the ResolvableProperties() call for the accepted filtering keys
+ and returned attributes.
+*/
+YCPValue PkgFunctions::Resolvables(const YCPMap& filter, const YCPList& attrs)
+{
+ if (attrs.isEmpty())
+ y2warning("Passed empty attribute list, empty maps will be returned");
+
+ YCPList ret;
+
+ for (const auto &r : zypp::ResPool::instance().filter(ResolvableFilter(filter, *this)) )
+ ret->add(Resolvable2YCPMap(r, false, false, attrs));
+
+ return ret;
+}
+
+/**
+ @builtin AnyResolvable
+ @short Is there any resolvable matching the input filter?
+ @param map filter
+ @return boolean true if a resolvable was found, false otherwise
+
+ See the ResolvableProperties() call for the accepted filtering keys.
+*/
+YCPValue PkgFunctions::AnyResolvable(const YCPMap& filter)
+{
+ for (const auto &r : zypp::ResPool::instance().filter(ResolvableFilter(filter, *this)) )
+ return YCPBoolean(true);
+
+ return YCPBoolean(false);
+}
1
0
Hello community,
here is the log from the commit of package patterns-containers for openSUSE:Factory checked in at 2019-07-31 14:16:18
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/patterns-containers (Old)
and /work/SRC/openSUSE:Factory/.patterns-containers.new.4126 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "patterns-containers"
Wed Jul 31 14:16:18 2019 rev:9 rq:719390 version:5.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/patterns-containers/patterns-containers.changes 2019-07-16 08:39:48.435039484 +0200
+++ /work/SRC/openSUSE:Factory/.patterns-containers.new.4126/patterns-containers.changes 2019-07-31 14:16:19.742720265 +0200
@@ -1,0 +2,10 @@
+Sun Jul 28 10:29:12 CEST 2019 - kukuk(a)suse.de
+
+- Add kail to kubernetes_utilities
+
+-------------------------------------------------------------------
+Fri Jul 26 12:57:51 CEST 2019 - kukuk(a)suse.de
+
+- Add weave-k8s-yaml to kubeadm pattern
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ patterns-containers.spec ++++++
--- /var/tmp/diff_new_pack.sSUTNf/_old 2019-07-31 14:16:21.442719802 +0200
+++ /var/tmp/diff_new_pack.sSUTNf/_new 2019-07-31 14:16:21.446719801 +0200
@@ -57,9 +57,10 @@
Requires: lvm2
Requires: metallb-k8s-yaml
Requires: nfs-client
+Requires: rook-k8s-yaml
Requires: rpcbind
+Requires: weave-k8s-yaml
Requires: pattern() = basesystem
-Requires: rook-k8s-yaml
%description kubeadm
This provides a vanilla kubeadm stack. It contains everything needed to
@@ -143,6 +144,7 @@
Provides: pattern-order() = 9050
Provides: pattern-visible()
Requires: helm
+Requires: kail
Requires: kubectl-who-can
Requires: rakkess
Requires: rbac-lookup
1
0
Hello community,
here is the log from the commit of package open-isns for openSUSE:Factory checked in at 2019-07-31 14:16:11
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/open-isns (Old)
and /work/SRC/openSUSE:Factory/.open-isns.new.4126 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "open-isns"
Wed Jul 31 14:16:11 2019 rev:9 rq:718912 version:0.99
Changes:
--------
--- /work/SRC/openSUSE:Factory/open-isns/open-isns.changes 2019-05-03 22:07:23.918913678 +0200
+++ /work/SRC/openSUSE:Factory/.open-isns.new.4126/open-isns.changes 2019-07-31 14:16:13.870721863 +0200
@@ -1,0 +2,8 @@
+Wed Jul 24 13:52:45 UTC 2019 - matthias.gerstner(a)suse.com
+
+- removal of SuSEfirewall2 service, since SuSEfirewall2 has been replaced by
+ firewalld, see [1].
+
+ [1]: https://lists.opensuse.org/opensuse-factory/2019-01/msg00490.html
+
+-------------------------------------------------------------------
Old:
----
open-isns-firewall.service
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ open-isns.spec ++++++
--- /var/tmp/diff_new_pack.VMuuFA/_old 2019-07-31 14:16:14.890721586 +0200
+++ /var/tmp/diff_new_pack.VMuuFA/_new 2019-07-31 14:16:14.910721580 +0200
@@ -24,7 +24,6 @@
Release: 0
Source: %{name}-%{version}.tar.xz
Url: https://github.com/open-iscsi/%{name}
-Source1: %{name}-firewall.service
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: autoconf
BuildRequires: automake
@@ -70,7 +69,6 @@
mkdir -p %{buildroot}/usr/sbin
fi
ln -sf /usr/sbin/service %{buildroot}/usr/sbin/rcisnsd
-install -vD %{S:1} %{buildroot}/etc/sysconfig/SuSEfirewall2.d/services/isns
make DESTDIR="%{buildroot}" install_hdrs install_lib
%post
@@ -94,7 +92,6 @@
%attr(0600,root,root) %config(noreplace) %{_sysconfdir}/isns/isnsd.conf
%attr(0600,root,root) %config(noreplace) %{_sysconfdir}/isns/isnsadm.conf
%attr(0600,root,root) %config(noreplace) %{_sysconfdir}/isns/isnsdd.conf
-%attr(0644,root,root) %config /etc/sysconfig/SuSEfirewall2.d/services/isns
%{_sbindir}/rcisnsd
%doc COPYING HACKING README TODO
%doc %{_mandir}/man8/isnsd.8%{?ext_man}
1
0
Hello community,
here is the log from the commit of package gnome-shell for openSUSE:Factory checked in at 2019-07-31 14:16:02
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gnome-shell (Old)
and /work/SRC/openSUSE:Factory/.gnome-shell.new.4126 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gnome-shell"
Wed Jul 31 14:16:02 2019 rev:164 rq:718876 version:3.32.2+11
Changes:
--------
--- /work/SRC/openSUSE:Factory/gnome-shell/gnome-shell.changes 2019-06-24 21:46:10.495773570 +0200
+++ /work/SRC/openSUSE:Factory/.gnome-shell.new.4126/gnome-shell.changes 2019-07-31 14:16:03.790724608 +0200
@@ -1,0 +2,19 @@
+Wed Jul 24 20:55:12 UTC 2019 - bjorn.lie(a)gmail.com
+
+- Update to version 3.32.2+11:
+ + shell-global: don't warn when unsetting non-existent state
+ + keyring-prompt: relax NULL check in remove_mnemonics()
+ + modemManager: improve check for CDMA system identifier
+ + windowAttentionHandler: disconnect signals before destruction
+ + shell-recorder: Restore cursor recording
+ + altTab:
+ - Remove get_preferred_width override of AppIcon
+ - Fix a wrong variable name
+ - Ensure style of this._list before calculating icon sizes
+ + boxpointer: Unset the sourceActor on destruction
+- Switch to git checkout via source service, upstream is lacking in
+ stable releases. In the future we will use a stable tag when
+ possible, but when upstream slacks off, we will use a checkout of
+ the stable branch.
+
+-------------------------------------------------------------------
Old:
----
gnome-shell-3.32.2.tar.xz
New:
----
_service
_servicedata
gnome-shell-3.32.2+11.obscpio
gnome-shell.obsinfo
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gnome-shell.spec ++++++
--- /var/tmp/diff_new_pack.KtvP3t/_old 2019-07-31 14:16:04.742724349 +0200
+++ /var/tmp/diff_new_pack.KtvP3t/_new 2019-07-31 14:16:04.742724349 +0200
@@ -17,18 +17,22 @@
%global __requires_exclude typelib\\(Meta\\)
+
Name: gnome-shell
-Version: 3.32.2
+Version: 3.32.2+11
Release: 0
Summary: GNOME Shell
License: GPL-2.0-or-later
Group: System/GUI/GNOME
URL: https://wiki.gnome.org/Projects/GnomeShell
-Source0: https://download.gnome.org/sources/gnome-shell/3.32/%{name}-%{version}.tar.…
+# We are using source services, so no download url for source
+Source: %{name}-%{version}.tar.xz
+
# SOURCE-FEATURE-SLE aboutMenu fate#314545 dliang(a)suse.com -- Add an applet on login UI to display suse icon, product name, hostname.
Source1: aboutMenu.js
# SOURCE-FEATURE-SLE sle-background bsc#1007468 xwang(a)suse.com -- Add SUSE logo on lock screen for GNOME theme
Source2: sle-background.png
+
# PATCH-FIX-UPSTREAM gnome-shell-private-connection.patch bnc#751211 bgo#646187 dimstar(a)opensuse.org -- create private connections if the user is not authorized
Patch1: gnome-shell-private-connection.patch
# PATCH-FIX-OPENSUSE gnome-shell-disable-ibus-when-not-installed.patch bsc#987360 qzhao(a)suse.com -- disable ibus start when outof Chinese, Japanese, Korean area
@@ -55,6 +59,7 @@
Patch1007: gs-fate318433-prevent-same-account-multi-logins.patch
# PATCH-FEATURE-SLE gnome-shell-1007468-lock-screen-SUSE-logo-missing.patch xwang(a)suse.com -- Add SUSE logo on lock screen for GNOME theme.
Patch1008: gnome-shell-1007468-lock-screen-SUSE-logo-missing.patch
+
# needed for directory ownership
BuildRequires: dbus-1
BuildRequires: docbook-xsl-stylesheets
++++++ _service ++++++
<services>
<service name="obs_scm" mode="disabled" >
<param name="url">https://gitlab.gnome.org/GNOME/gnome-shell.git</param>
<param name="scm">git</param>
<param name="revision">gnome-3-32</param>
<param name="versionformat">@PARENT_TAG@+@TAG_OFFSET@</param>
<param name="changesgenerate">enable</param>
</service>
<service name="tar" mode="buildtime"/>
<service name="recompress" mode="buildtime">
<param name="file">*.tar</param>
<param name="compression">xz</param>
</service>
<service name="set_version" mode="disabled" />
</services>
++++++ _servicedata ++++++
<servicedata>
<service name="tar_scm">
<param name="url">https://gitlab.gnome.org/GNOME/gnome-shell.git</param>
<param name="changesrevision">1c6abf37855cd4f834569b6db32d32c1d8876f2a</param></service></servicedata>++++++ gnome-shell.obsinfo ++++++
name: gnome-shell
version: 3.32.2+11
mtime: 1563954838
commit: 1c6abf37855cd4f834569b6db32d32c1d8876f2a
1
0
Hello community,
here is the log from the commit of package mutter for openSUSE:Factory checked in at 2019-07-31 14:15:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/mutter (Old)
and /work/SRC/openSUSE:Factory/.mutter.new.4126 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mutter"
Wed Jul 31 14:15:53 2019 rev:137 rq:718875 version:3.32.2+43
Changes:
--------
--- /work/SRC/openSUSE:Factory/mutter/mutter.changes 2019-06-02 15:14:50.250118402 +0200
+++ /work/SRC/openSUSE:Factory/.mutter.new.4126/mutter.changes 2019-07-31 14:15:55.846726771 +0200
@@ -1,0 +2,21 @@
+Wed Jul 24 20:49:24 UTC 2019 - bjorn.lie(a)gmail.com
+
+- Update to version 3.32.2+43:
+ + metatest: Dispatch the destruction instead of sleeping after it
+ + window-x11: Remove double definition of MetaStack
+ + window-x11: Focus a window in the active workspace as
+ take-focus fallback
+ + meson: Bump meson requirement to 0.50.0
+ + window-x11: Use any focusable window as fallback delayed focus
+ window
+ + tests: Add "accept_take_focus" command
+ + test-client: Add x11 events GSource handler
+ + stack: Add a function to get a sorted list of focus candidates
+ + window-x11: Accept any focusable window as fallback focus
+ + window-x11: Don't double-check for unmanaging windows
+- Switch to git checkout via source service, upstream is lacking in
+ stable releases. In the future we will use a stable tag when
+ possible, but when upstream slacks off, we will use a checkout of
+ the stable branch.
+
+-------------------------------------------------------------------
Old:
----
mutter-3.32.2.tar.xz
New:
----
_service
_servicedata
mutter-3.32.2+43.obscpio
mutter.obsinfo
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ mutter.spec ++++++
--- /var/tmp/diff_new_pack.P1beic/_old 2019-07-31 14:15:56.510726590 +0200
+++ /var/tmp/diff_new_pack.P1beic/_new 2019-07-31 14:15:56.514726589 +0200
@@ -20,13 +20,15 @@
%define api_minor 0
%define libmutter libmutter-%{api_major}-%{api_minor}
Name: mutter
-Version: 3.32.2
+Version: 3.32.2+43
Release: 0
Summary: Window and compositing manager based on Clutter
License: GPL-2.0-or-later
Group: System/GUI/GNOME
URL: https://www.gnome.org
-Source0: https://download.gnome.org/sources/mutter/3.32/%{name}-%{version}.tar.xz
+# We are using source services, so no download url for source
+Source: %{name}-%{version}.tar.xz
+
# PATCH-FEATURE-UPSTREAM mutter-iconcache-Support-RGB16_565-format-for-16-bit-color-.patch FATE#323412 bgo#781704 bsc#1024748 vliaskovitis(a)suse.com -- iconcache: Support RGB16_565 format for 16-bit sessions
Patch1: mutter-iconcache-Support-RGB16_565-format-for-16-bit-color-.patch
# PATCH-FIX-OPENSUSE mutter-xwayland-create-xauthority.patch bsc#1084737 hpj(a)suse.com -- Create and pass an Xauthority file to Xwayland and session
@@ -40,6 +42,7 @@
Patch1001: mutter-SLE-relax-some-constraints-on-CSD-windows.patch
# PATCH-FIX-UPSTREAM mutter-SLE-bsc984738-grab-display.patch bsc#984738 bgo#769387 hpj(a)suse.com -- Revert a upstream commit to avoid X11 race condition that results in wrong dialog sizes.
Patch1002: mutter-SLE-bsc984738-grab-display.patch
+
BuildRequires: Mesa-libGLESv3-devel
BuildRequires: fdupes
BuildRequires: meson
++++++ _service ++++++
<services>
<service name="obs_scm" mode="disabled">
<param name="scm">git</param>
<param name="url">https://gitlab.gnome.org/GNOME/mutter.git</param>
<param name="revision">gnome-3-32</param>
<param name="versionformat">@PARENT_TAG@+@TAG_OFFSET@</param>
<param name="changesgenerate">enable</param>
</service>
<service name="tar" mode="buildtime"/>
<service name="recompress" mode="buildtime">
<param name="file">*.tar</param>
<param name="compression">xz</param>
</service>
<service name="set_version" mode="disabled" />
</services>
++++++ _servicedata ++++++
<servicedata>
<service name="tar_scm">
<param name="url">https://gitlab.gnome.org/GNOME/mutter.git</param>
<param name="changesrevision">b7f158811934d8e4d9dd0be28ad8e1746ceac46c</param></service></servicedata>++++++ mutter.obsinfo ++++++
name: mutter
version: 3.32.2+43
mtime: 1563468013
commit: b7f158811934d8e4d9dd0be28ad8e1746ceac46c
1
0
Hello community,
here is the log from the commit of package python-flaky for openSUSE:Factory checked in at 2019-07-31 14:15:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-flaky (Old)
and /work/SRC/openSUSE:Factory/.python-flaky.new.4126 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-flaky"
Wed Jul 31 14:15:46 2019 rev:4 rq:718853 version:3.6.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-flaky/python-flaky.changes 2019-03-29 20:34:17.034631063 +0100
+++ /work/SRC/openSUSE:Factory/.python-flaky.new.4126/python-flaky.changes 2019-07-31 14:15:48.522739425 +0200
@@ -1,0 +2,9 @@
+Fri Jul 26 10:48:12 UTC 2019 - pgajdos(a)suse.com
+
+- version update to 3.6.0
+ * Do not print an empty report if no tests marked 'flaky' were run at all (#116). NOTE: This change could be breaking if you relied on the flaky report being printed.
+- test via multibuild
+- added sources
+ + _multibuild
+
+-------------------------------------------------------------------
Old:
----
flaky-3.5.3.tar.gz
New:
----
_multibuild
flaky-3.6.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-flaky.spec ++++++
--- /var/tmp/diff_new_pack.UTDFAy/_old 2019-07-31 14:15:49.090738375 +0200
+++ /var/tmp/diff_new_pack.UTDFAy/_new 2019-07-31 14:15:49.094738367 +0200
@@ -17,18 +17,29 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
+%global flavor @BUILD_FLAVOR@%{nil}
+%if "%{flavor}" == "test"
+%define psuffix -test
+%bcond_without test
+%else
+%define psuffix %{nil}
+%bcond_with test
+%endif
Name: python-flaky
-Version: 3.5.3
+Version: 3.6.0
Release: 0
Summary: Plugin for nose or py.test that automatically reruns flaky tests
License: Apache-2.0
Group: Development/Languages/Python
URL: https://github.com/box/flaky
Source: https://files.pythonhosted.org/packages/source/f/flaky/flaky-%{version}.tar…
+%if %{with test}
+BuildRequires: %{python_module flaky >= %{version}}
BuildRequires: %{python_module genty}
BuildRequires: %{python_module mock}
BuildRequires: %{python_module nose}
BuildRequires: %{python_module pytest}
+%endif
BuildRequires: %{python_module setuptools}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
@@ -47,16 +58,36 @@
%prep
%setup -q -n flaky-%{version}
+%if !%{with test}
%build
%python_build
+%endif
+%if !%{with test}
%install
%python_install
%python_expand %fdupes %{buildroot}%{$python_sitelib}
+%endif
+%if %{with test}
+%check
+%{python_expand echo
+ nosetests="nosetests-%{$python_bin_suffix}"
+ pytest="pytest-%{$python_bin_suffix}"
+ $nosetests --with-flaky --exclude="test_nose_options_example" test/test_nose/
+ $pytest -k 'example and not options' --doctest-modules test/test_pytest/
+ $pytest -k 'example and not options' test/test_pytest/
+ $pytest -p no:flaky test/test_pytest/test_flaky_pytest_plugin.py
+ $nosetests --with-flaky --force-flaky --max-runs 2 test/test_nose/test_nose_options_example.py
+ $pytest --force-flaky --max-runs 2 test/test_pytest/test_pytest_options_example.py
+}
+%endif
+
+%if !%{with test}
%files %{python_files}
%doc README.rst
%license LICENSE
%{python_sitelib}/*
+%endif
%changelog
++++++ _multibuild ++++++
<multibuild>
<package>test</package>
</multibuild>
++++++ flaky-3.5.3.tar.gz -> flaky-3.6.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/flaky-3.5.3/MANIFEST.in new/flaky-3.6.0/MANIFEST.in
--- old/flaky-3.5.3/MANIFEST.in 2019-01-07 20:05:58.000000000 +0100
+++ new/flaky-3.6.0/MANIFEST.in 2019-06-24 19:05:14.000000000 +0200
@@ -1,2 +1,2 @@
include README.rst LICENSE
-recursive-include test test*.py __init__.py
+recursive-include test test*.py __init__.py conftest.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/flaky-3.5.3/PKG-INFO new/flaky-3.6.0/PKG-INFO
--- old/flaky-3.5.3/PKG-INFO 2019-01-17 01:06:33.000000000 +0100
+++ new/flaky-3.6.0/PKG-INFO 2019-06-25 18:47:28.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.2
Name: flaky
-Version: 3.5.3
+Version: 3.6.0
Summary: Plugin for nose or pytest that automatically reruns flaky tests.
Home-page: https://github.com/box/flaky
Author: Box
@@ -107,7 +107,7 @@
def test_something_else():
raise ProductCrashedError
- Flaky will run `test_something` twice, but will only run `test_something_else` once.
+ Flaky will run ``test_something`` twice, but will only run ``test_something_else`` once.
It can also be used to incur a delay between test retries:
@@ -179,7 +179,7 @@
- Nosetests. Doctests cannot be marked flaky.
- - Py.test. Works with `pytest-xdist` but not with the `--boxed` option. Doctests cannot be marked flaky.
+ - Py.test. Works with ``pytest-xdist`` but not with the ``--boxed`` option. Doctests cannot be marked flaky.
Contributing
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/flaky-3.5.3/README.rst new/flaky-3.6.0/README.rst
--- old/flaky-3.5.3/README.rst 2019-01-09 18:41:23.000000000 +0100
+++ new/flaky-3.6.0/README.rst 2019-06-24 19:05:14.000000000 +0200
@@ -99,7 +99,7 @@
def test_something_else():
raise ProductCrashedError
-Flaky will run `test_something` twice, but will only run `test_something_else` once.
+Flaky will run ``test_something`` twice, but will only run ``test_something_else`` once.
It can also be used to incur a delay between test retries:
@@ -171,7 +171,7 @@
- Nosetests. Doctests cannot be marked flaky.
-- Py.test. Works with `pytest-xdist` but not with the `--boxed` option. Doctests cannot be marked flaky.
+- Py.test. Works with ``pytest-xdist`` but not with the ``--boxed`` option. Doctests cannot be marked flaky.
Contributing
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/flaky-3.5.3/flaky/_flaky_plugin.py new/flaky-3.6.0/flaky/_flaky_plugin.py
--- old/flaky-3.5.3/flaky/_flaky_plugin.py 2019-01-17 00:39:05.000000000 +0100
+++ new/flaky-3.6.0/flaky/_flaky_plugin.py 2019-06-24 19:05:14.000000000 +0200
@@ -19,6 +19,7 @@
super(_FlakyPlugin, self).__init__()
self._stream = StringIO()
self._flaky_success_report = True
+ self._had_flaky_tests = False
@property
def stream(self):
@@ -180,6 +181,7 @@
return False
if self._has_flaky_attributes(test):
+ self._had_flaky_tests = True
self._add_flaky_test_failure(test, err)
should_handle = self._should_handle_test_error_or_failure(test)
self._increment_flaky_attribute(test, FlakyNames.CURRENT_RUNS)
@@ -269,6 +271,7 @@
need_reruns = self._should_handle_test_success(test)
if self._has_flaky_attributes(test):
+ self._had_flaky_tests = True
flaky = self._get_flaky_attributes(test)
min_passes = flaky[FlakyNames.MIN_PASSES]
passes = flaky[FlakyNames.CURRENT_PASSES] + 1
@@ -376,6 +379,10 @@
"""
value = self._stream.getvalue()
+ # Do not print report if there were no tests marked 'flaky' at all.
+ if not self._had_flaky_tests and not value:
+ return
+
# If everything succeeded and --no-success-flaky-report is specified
# don't print anything.
if not self._flaky_success_report and not value:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/flaky-3.5.3/flaky.egg-info/PKG-INFO new/flaky-3.6.0/flaky.egg-info/PKG-INFO
--- old/flaky-3.5.3/flaky.egg-info/PKG-INFO 2019-01-17 01:06:32.000000000 +0100
+++ new/flaky-3.6.0/flaky.egg-info/PKG-INFO 2019-06-25 18:47:28.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.2
Name: flaky
-Version: 3.5.3
+Version: 3.6.0
Summary: Plugin for nose or pytest that automatically reruns flaky tests.
Home-page: https://github.com/box/flaky
Author: Box
@@ -107,7 +107,7 @@
def test_something_else():
raise ProductCrashedError
- Flaky will run `test_something` twice, but will only run `test_something_else` once.
+ Flaky will run ``test_something`` twice, but will only run ``test_something_else`` once.
It can also be used to incur a delay between test retries:
@@ -179,7 +179,7 @@
- Nosetests. Doctests cannot be marked flaky.
- - Py.test. Works with `pytest-xdist` but not with the `--boxed` option. Doctests cannot be marked flaky.
+ - Py.test. Works with ``pytest-xdist`` but not with the ``--boxed`` option. Doctests cannot be marked flaky.
Contributing
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/flaky-3.5.3/flaky.egg-info/SOURCES.txt new/flaky-3.6.0/flaky.egg-info/SOURCES.txt
--- old/flaky-3.5.3/flaky.egg-info/SOURCES.txt 2019-01-17 01:06:32.000000000 +0100
+++ new/flaky-3.6.0/flaky.egg-info/SOURCES.txt 2019-06-25 18:47:28.000000000 +0200
@@ -33,4 +33,5 @@
test/test_pytest/test_pytest_options_example.py
test/test_pytest/test_pytester_plugin.py
test/test_pytest/pytest_generate_example/__init__.py
+test/test_pytest/pytest_generate_example/conftest.py
test/test_pytest/pytest_generate_example/test_pytest_generate_example.py
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/flaky-3.5.3/setup.py new/flaky-3.6.0/setup.py
--- old/flaky-3.5.3/setup.py 2019-01-17 01:02:40.000000000 +0100
+++ new/flaky-3.6.0/setup.py 2019-06-24 19:11:57.000000000 +0200
@@ -55,7 +55,7 @@
base_dir = dirname(__file__)
setup(
name='flaky',
- version='3.5.3',
+ version='3.6.0',
description='Plugin for nose or pytest that automatically reruns flaky tests.',
long_description=open(join(base_dir, 'README.rst')).read(),
author='Box',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/flaky-3.5.3/test/test_pytest/pytest_generate_example/conftest.py new/flaky-3.6.0/test/test_pytest/pytest_generate_example/conftest.py
--- old/flaky-3.5.3/test/test_pytest/pytest_generate_example/conftest.py 1970-01-01 01:00:00.000000000 +0100
+++ new/flaky-3.6.0/test/test_pytest/pytest_generate_example/conftest.py 2019-01-07 20:05:58.000000000 +0100
@@ -0,0 +1,11 @@
+# coding: utf-8
+
+from __future__ import unicode_literals
+
+
+def pytest_generate_tests(metafunc):
+ """
+ Parameterize a fixture named 'dummy_list' with an empty list
+ """
+ if 'dummy_list' in metafunc.fixturenames:
+ metafunc.parametrize("dummy_list", [[]])
1
0
Hello community,
here is the log from the commit of package libcryptopp for openSUSE:Factory checked in at 2019-07-31 14:15:39
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libcryptopp (Old)
and /work/SRC/openSUSE:Factory/.libcryptopp.new.4126 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libcryptopp"
Wed Jul 31 14:15:39 2019 rev:31 rq:718852 version:8.2.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/libcryptopp/libcryptopp.changes 2018-12-04 20:57:20.732652082 +0100
+++ /work/SRC/openSUSE:Factory/.libcryptopp.new.4126/libcryptopp.changes 2019-07-31 14:15:41.446752510 +0200
@@ -1,0 +2,41 @@
+Sat Jul 20 09:34:46 UTC 2019 - Dave Plater <davejplater(a)gmail.com>
+
+- Update to major version 8.2.0
+- Filter out -flto= flag for arm7 see cryptopp issue#865
+- Remove 0001-disable_os_rng_test.patch which is no longer needed.
+- Rebase libcryptopp-shared.patch
+- Added patchs from git which is indicated in cryptopp issue#865:
+ 0001-Fix-TCXXFLAGS-using-openSUSE-standard-flags-GH-865.patch
+ and 0001-Fix-missing-if-statement.patch.
+ Upstream changes since 7.0.0:
+ *use PowerPC unaligned loads and stores with Power8
+ *add SKIPJACK test vectors
+ *fix SHAKE-128 and SHAKE-256 compile
+ *removed IS_NEON from Makefile
+ *fix Aarch64 build on Fedora 29
+ *fix missing GF2NT_233_Multiply_Reduce_CLMUL in FIPS DLL
+ *add missing BLAKE2 constructors
+ *fix missing BlockSize() in BLAKE2 classes
+ *add CRYPTOPP_BUGGY_SIMD_LOAD_AND_STORE
+ *add carryless multiplies for NIST b233 and k233 curves
+ *fix OpenMP build due to use of OpenMP 4 with down-level compilers
+ *add SignStream and VerifyStream for ed25519 and large files
+ *fix missing AlgorithmProvider in PanamaHash
+ *add SHAKE-128 and SHAKE-256
+ *fix AVX2 build due to _mm256_broadcastsi128_si256
+ *add IETF ChaCha, XChaCha, ChaChaPoly1305 and XChaChaPoly1305
+ *add x25519 key exchange and ed25519 signature scheme
+ *add limited Asymmetric Key Package support from RFC 5958
+ *add Power9 DARN random number generator support
+ *add CHAM, HC-128, HC-256, Hight, LEA, Rabbit, Simeck
+ *fix FixedSizeAllocatorWithCleanup may be unaligned on some
+ platforms
+ *cutover to GNU Make-based cpu feature tests
+ *rename files with dashes to underscores
+ *fix LegacyDecryptor and LegacyDecryptorWithMAC use wrong MAC
+ *avoid Singleton<T> when possible, avoid std::call_once completely
+ *fix SPARC alignment problems due to GetAlignmentOf<T>() on word64
+ *add ARM AES asm implementation from Cryptogams
+ *remove CRYPTOPP_ALLOW_UNALIGNED_DATA_ACCESS support
+
+-------------------------------------------------------------------
Old:
----
0001-disable_os_rng_test.patch
cryptopp700.zip
New:
----
0001-Fix-TCXXFLAGS-using-openSUSE-standard-flags-GH-865.patch
0001-Fix-missing-if-statement.patch
CRYPTOPP_8_2_0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libcryptopp.spec ++++++
--- /var/tmp/diff_new_pack.BlmMpL/_old 2019-07-31 14:15:42.010751466 +0200
+++ /var/tmp/diff_new_pack.BlmMpL/_new 2019-07-31 14:15:42.014751459 +0200
@@ -1,7 +1,7 @@
#
# spec file for package libcryptopp
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -16,14 +16,14 @@
#
-%define major 7
-%define minor 0
+%define major 8
+%define minor 2
%define patch 0
%define pkg_version %{major}%{minor}%{patch}
Name: libcryptopp
# WARNING: Execute "sh precheckin_baselibs.sh" to update baselibs.conf
-# WARNING: uses source zip file name to create lib name.
+# WARNING: uses source tarball name to create lib name.
Version: %{major}.%{minor}.%{patch}
Release: 0
# There is no upstream interface version information.
@@ -33,13 +33,14 @@
License: BSL-1.0
Group: Development/Libraries/C and C++
Url: http://www.cryptopp.com
-Source: http://www.cryptopp.com/cryptopp%{major}%{minor}%{patch}.zip
+Source: https://github.com/weidai11/cryptopp/archive/CRYPTOPP_%{major}_%{minor}_%{p…
Source1: precheckin_baselibs.sh
Source2: baselibs.conf
# PATCH-FEATURE-OPENSUSE libcryptopp-shared.patch -- improve shared library creation
Patch1: libcryptopp-shared.patch
-# PATCH-BUILDFIX-OPENSUSE 0001-disable_os_rng_test.patch sfalken(a)opensuse.org -- disable OS Random Number Generator test
-Patch4: 0001-disable_os_rng_test.patch
+# PATCH-UPSTREAM from git see https://github.com/weidai11/cryptopp/issues/865
+Patch4: 0001-Fix-TCXXFLAGS-using-openSUSE-standard-flags-GH-865.patch
+Patch5: 0001-Fix-missing-if-statement.patch
BuildRequires: gcc-c++
BuildRequires: pkg-config
BuildRequires: unzip
@@ -76,21 +77,20 @@
%prep
-%setup -q -c "%{name}-%{version}"
+%setup -q -n "cryptopp-CRYPTOPP_%{major}_%{minor}_%{patch}"
%patch1 -p1
%patch4 -p1
+%patch5 -p1
echo %{major}.%{minor}.%{patch}
echo %{pkg_version}
#mv config.recommend config.h
%build
-CXXFLAGS="-DNDEBUG %{optflags} -fpic -fPIC -pthread -fopenmp"
-%ifarch %{arm} aarch64
-%if %{suse_version} < 1500
-sed -i 's/# define CRYPTOPP_ARM_ACLE_AVAILABLE 1//g' config.h
-CXXFLAGS="$CXXFLAGS -DCRYPTOPP_DISABLE_ASM"
-%endif
+%ifarch %{arm}
+%define _lto_cflags %{nil}
%endif
+CXXFLAGS="-DNDEBUG %{optflags} -fpic -fPIC -pthread -fopenmp"
+# aarch64 arm -march=armv7-a -mfpu=neon
%ifarch ppc64
CXXFLAGS="$CXXFLAGS -DCRYPTOPP_DISABLE_ALTIVEC"
%endif
@@ -111,9 +111,10 @@
LIB="%{_lib}" \
LIBSUFFIX="-%{version}" \
install
+
rm -rf "%{buildroot}%{_bindir}" %{buildroot}%{_datadir}/cryptopp
rm -rf "%{buildroot}%{_bindir}"
-rm %{buildroot}%{_libdir}/*.a
+rm -rf %{buildroot}%{_libdir}/*.a
# Install .pc file with correct version field.
mkdir %{buildroot}%{_libdir}/pkgconfig/
echo "prefix=%{_prefix}" >%{buildroot}%{_libdir}/pkgconfig/cryptopp.pc
@@ -140,10 +141,12 @@
%files -n %{name}%{sover}
%defattr(-,root,root)
%{_libdir}/libcryptopp.so.%{major}.*
+%license License.txt
%files -n %{name}-devel
%defattr(-,root,root)
-%doc License.txt Readme.txt
+%doc Readme.txt
+%license License.txt
%{_includedir}/cryptopp
%{_libdir}/libcryptopp.so
%{_libdir}/pkgconfig/cryptopp.pc
++++++ 0001-Fix-TCXXFLAGS-using-openSUSE-standard-flags-GH-865.patch ++++++
>From 058a59814f0be1d89e2a0fa11438c2037112cd7a Mon Sep 17 00:00:00 2001
From: Jeffrey Walton <noloader(a)gmail.com>
Date: Fri, 19 Jul 2019 00:14:25 -0400
Subject: [PATCH] Fix TCXXFLAGS using openSUSE standard flags (GH #865)
---
GNUmakefile | 2 +-
GNUmakefile-cross | 3 +--
2 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/GNUmakefile b/GNUmakefile
index 405a26fa..6fee54d3 100755
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -121,7 +121,7 @@ endif
# Strip out -Wall, -Wextra and friends for feature testing
ifeq ($(DETECT_FEATURES),1)
- TCXXFLAGS := $(filter-out -Wall -Wextra -Werror% -Wunused -Wconversion -Wp%, $(CXXFLAGS))
+ TCXXFLAGS := $(filter-out -D_FORTIFY_SOURCE=1 -D_FORTIFY_SOURCE=2 -Wall -Wextra -Werror% -Wunused -Wconversion -Wp%, $(CXXFLAGS))
ifneq ($(strip $(TCXXFLAGS)),)
$(info Using testing flags: $(TCXXFLAGS))
endif
diff --git a/GNUmakefile-cross b/GNUmakefile-cross
index c84b399a..7c151c59 100755
--- a/GNUmakefile-cross
+++ b/GNUmakefile-cross
@@ -194,8 +194,7 @@ endif
# Strip out -Wall, -Wextra and friends for feature testing
ifeq ($(DETECT_FEATURES),1)
- TCXXFLAGS := $(filter-out -Wall -Wextra -Werror% -Wunused -Wconversion -Wp%, $(CXXFLAGS))
- ifneq ($(strip $(TCXXFLAGS)),)
+ TCXXFLAGS := $(filter-out -D_FORTIFY_SOURCE=1 -D_FORTIFY_SOURCE=2 -Wall -Wextra -Werror% -Wunused -Wconversion -Wp%, $(CXXFLAGS))
$(info Using testing flags: $(TCXXFLAGS))
endif
#TPROG = TestPrograms/test_cxx.cxx
--
2.16.4
++++++ 0001-Fix-missing-if-statement.patch ++++++
>From 417fbd719ab6a40aa35d7dfe2562e56b0e425130 Mon Sep 17 00:00:00 2001
From: Jeffrey Walton <noloader(a)gmail.com>
Date: Fri, 19 Jul 2019 00:16:23 -0400
Subject: [PATCH] Fix missing if statement Copy/paste error from the regular
GNUmakefile
---
GNUmakefile-cross | 1 +
1 file changed, 1 insertion(+)
diff --git a/GNUmakefile-cross b/GNUmakefile-cross
index 7c151c59..d32139ed 100755
--- a/GNUmakefile-cross
+++ b/GNUmakefile-cross
@@ -195,6 +195,7 @@ endif
# Strip out -Wall, -Wextra and friends for feature testing
ifeq ($(DETECT_FEATURES),1)
TCXXFLAGS := $(filter-out -D_FORTIFY_SOURCE=1 -D_FORTIFY_SOURCE=2 -Wall -Wextra -Werror% -Wunused -Wconversion -Wp%, $(CXXFLAGS))
+ ifneq ($(strip $(TCXXFLAGS)),)
$(info Using testing flags: $(TCXXFLAGS))
endif
#TPROG = TestPrograms/test_cxx.cxx
--
2.16.4
++++++ baselibs.conf ++++++
--- /var/tmp/diff_new_pack.BlmMpL/_old 2019-07-31 14:15:42.058751378 +0200
+++ /var/tmp/diff_new_pack.BlmMpL/_new 2019-07-31 14:15:42.058751378 +0200
@@ -1,2 +1,2 @@
-libcryptopp7_0_0
+libcryptopp8_2_0
++++++ libcryptopp-shared.patch ++++++
--- /var/tmp/diff_new_pack.BlmMpL/_old 2019-07-31 14:15:42.066751363 +0200
+++ /var/tmp/diff_new_pack.BlmMpL/_new 2019-07-31 14:15:42.066751363 +0200
@@ -1,8 +1,8 @@
-Index: cryptopp700/GNUmakefile
+Index: cryptopp-CRYPTOPP_8_2_0/GNUmakefile
===================================================================
---- cryptopp700.orig/GNUmakefile
-+++ cryptopp700/GNUmakefile
-@@ -139,7 +139,7 @@ ifeq ($(DATADIR),)
+--- cryptopp-CRYPTOPP_8_2_0.orig/GNUmakefile 2019-07-20 10:55:12.852313936 +0200
++++ cryptopp-CRYPTOPP_8_2_0/GNUmakefile 2019-07-20 11:15:12.773950685 +0200
+@@ -174,7 +174,7 @@ ifeq ($(DATADIR),)
DATADIR := $(PREFIX)/share
endif
ifeq ($(LIBDIR),)
@@ -11,20 +11,20 @@
endif
ifeq ($(BINDIR),)
BINDIR := $(PREFIX)/bin
-@@ -690,7 +690,7 @@ ifeq ($(HAS_SOLIB_VERSION),1)
+@@ -1009,7 +1009,7 @@ SOLIB_COMPAT_SUFFIX=.$(LIB_MAJOR)
+ ifneq ($(IS_LINUX)$(IS_HURD),00)
+ # Linux uses full version suffix for shared library
SOLIB_VERSION_SUFFIX=.$(LIB_MAJOR).$(LIB_MINOR).$(LIB_PATCH)
- # Different patchlevels and minors are compatible since 6.1
- SOLIB_COMPAT_SUFFIX=.$(LIB_MAJOR)
-SOLIB_FLAGS=-Wl,-soname,libcryptopp.so$(SOLIB_COMPAT_SUFFIX)
+SOLIB_FLAGS=-Wl,-soname,libcryptopp.so$(SOLIB_VERSION_SUFFIX)
- endif # HAS_SOLIB_VERSION
-
- ###########################################################
-@@ -918,8 +918,8 @@ endif
+ endif
+ # Solaris uses -Wl,-h
+ ifeq ($(IS_SUN),1)
+@@ -1302,8 +1302,8 @@ endif
libcryptopp.dylib: $(LIBOBJS)
$(CXX) -dynamiclib -o $@ $(strip $(CXXFLAGS)) -install_name "$@" -current_version "$(LIB_MAJOR).$(LIB_MINOR).$(LIB_PATCH)" -compatibility_version "$(LIB_MAJOR).$(LIB_MINOR)" -headerpad_max_install_names $(LDFLAGS) $(LIBOBJS)
--cryptest.exe: libcryptopp.a $(TESTOBJS)
+-cryptest.exe:libcryptopp.a $(TESTOBJS)
- $(CXX) -o $@ $(strip $(CXXFLAGS)) $(TESTOBJS) ./libcryptopp.a $(LDFLAGS) $(LDLIBS)
+cryptest.exe: libcryptopp.so$(SOLIB_VERSION_SUFFIX) $(TESTOBJS)
+ $(CXX) -o $@ $(strip $(CXXFLAGS)) $(TESTOBJS) -L. -lcryptopp $(LDFLAGS) $(LDLIBS)
++++++ precheckin_baselibs.sh ++++++
--- /var/tmp/diff_new_pack.BlmMpL/_old 2019-07-31 14:15:42.082751333 +0200
+++ /var/tmp/diff_new_pack.BlmMpL/_new 2019-07-31 14:15:42.086751326 +0200
@@ -1,4 +1,4 @@
#!/bin/bash
rm baselibs.conf
-echo "libcryptopp$(ls -1 *zip |cut -b 9)_$(ls -1 *zip |cut -b 10)_$(ls -1 *zip |cut -b 11)" > baselibs.conf
+echo "libcryptopp$(ls -1 *tar.gz |cut -b 10)_$(ls -1 *tar.gz |cut -b 12)_$(ls -1 *tar.gz |cut -b 14)" > baselibs.conf
echo "" >> baselibs.conf
1
0
Hello community,
here is the log from the commit of package ceph for openSUSE:Factory checked in at 2019-07-31 14:15:24
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ceph (Old)
and /work/SRC/openSUSE:Factory/.ceph.new.4126 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ceph"
Wed Jul 31 14:15:24 2019 rev:49 rq:718805 version:14.2.2.348+gf6da3d1d18
Changes:
--------
--- /work/SRC/openSUSE:Factory/ceph/ceph-test.changes 2019-07-16 08:39:59.679033081 +0200
+++ /work/SRC/openSUSE:Factory/.ceph.new.4126/ceph-test.changes 2019-07-31 14:15:31.434771023 +0200
@@ -1,0 +2,10 @@
+Thu Jul 25 11:48:55 UTC 2019 - Nathan Cutler <ncutler(a)suse.com>
+
+- Update to 14.2.2-348-gf6da3d1d18:
+ + rebase on top of upstream Nautilus v14.2.2 release, SHA1 4f8fa0a0024755aae7d95567c63f11d6862d55be
+ + mgr/volumes: add CephFS subvolumes library (bsc#1135205)
+ + mgr/dashboard: Warn that tcmu-runner backstore is tech-preview (bsc#1137261)
+ + mgr/dashboard: Add, update and remove translations (bsc#1140737)
+ + osd/PG: fix cleanup of pgmeta-like objects on PG deletion
+
+-------------------------------------------------------------------
ceph.changes: same change
Old:
----
ceph-14.2.1-475-g83b977ffbd.tar.bz2
New:
----
ceph-14.2.2-348-gf6da3d1d18.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ceph-test.spec ++++++
--- /var/tmp/diff_new_pack.4AROeA/_old 2019-07-31 14:15:33.578767058 +0200
+++ /var/tmp/diff_new_pack.4AROeA/_new 2019-07-31 14:15:33.590767037 +0200
@@ -100,7 +100,7 @@
# main package definition
#################################################################################
Name: ceph-test
-Version: 14.2.1.475+g83b977ffbd
+Version: 14.2.2.348+gf6da3d1d18
Release: 0%{?dist}
%if 0%{?fedora} || 0%{?rhel}
Epoch: 2
@@ -116,7 +116,7 @@
Group: System/Filesystems
%endif
URL: http://ceph.com/
-Source0: %{?_remote_tarball_prefix}ceph-14.2.1-475-g83b977ffbd.tar.bz2
+Source0: %{?_remote_tarball_prefix}ceph-14.2.2-348-gf6da3d1d18.tar.bz2
%if 0%{?suse_version}
Source96: checkin.sh
Source97: README-checkin.txt
@@ -504,11 +504,11 @@
%if 0%{?suse_version}
%endif
%if 0%{?suse_version}
-%endif
%if 0%{?suse_version}
%endif
+%endif
%prep
-%autosetup -p1 -n ceph-14.2.1-475-g83b977ffbd
+%autosetup -p1 -n ceph-14.2.2-348-gf6da3d1d18
%build
# LTO can be enabled as soon as the following GCC bug is fixed:
++++++ ceph.spec ++++++
--- /var/tmp/diff_new_pack.4AROeA/_old 2019-07-31 14:15:33.678766873 +0200
+++ /var/tmp/diff_new_pack.4AROeA/_new 2019-07-31 14:15:33.690766852 +0200
@@ -100,7 +100,7 @@
# main package definition
#################################################################################
Name: ceph
-Version: 14.2.1.475+g83b977ffbd
+Version: 14.2.2.348+gf6da3d1d18
Release: 0%{?dist}
%if 0%{?fedora} || 0%{?rhel}
Epoch: 2
@@ -116,7 +116,7 @@
Group: System/Filesystems
%endif
URL: http://ceph.com/
-Source0: %{?_remote_tarball_prefix}ceph-14.2.1-475-g83b977ffbd.tar.bz2
+Source0: %{?_remote_tarball_prefix}ceph-14.2.2-348-gf6da3d1d18.tar.bz2
%if 0%{?suse_version}
# _insert_obs_source_lines_here
ExclusiveArch: x86_64 aarch64 ppc64le s390x
@@ -1071,7 +1071,6 @@
Group: System/Monitoring
%description prometheus-alerts
This package provides Ceph’s default alerts for Prometheus.
-%endif
%package dashboard-e2e
Summary: Standalone Ceph Dashboard End-To-End ("E2E") tests
@@ -1083,12 +1082,13 @@
%description dashboard-e2e
This package provides the Ceph Dashboard End-To-End ("E2E") tests as a
standalone RPM for use in Continuous Integration and ad hoc testing.
+%endif
#################################################################################
# common
#################################################################################
%prep
-%autosetup -p1 -n ceph-14.2.1-475-g83b977ffbd
+%autosetup -p1 -n ceph-14.2.2-348-gf6da3d1d18
%build
# LTO can be enabled as soon as the following GCC bug is fixed:
++++++ ceph-14.2.1-475-g83b977ffbd.tar.bz2 -> ceph-14.2.2-348-gf6da3d1d18.tar.bz2 ++++++
/work/SRC/openSUSE:Factory/ceph/ceph-14.2.1-475-g83b977ffbd.tar.bz2 /work/SRC/openSUSE:Factory/.ceph.new.4126/ceph-14.2.2-348-gf6da3d1d18.tar.bz2 differ: char 11, line 1
1
0
Hello community,
here is the log from the commit of package python-cloudpickle for openSUSE:Factory checked in at 2019-07-31 14:15:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-cloudpickle (Old)
and /work/SRC/openSUSE:Factory/.python-cloudpickle.new.4126 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-cloudpickle"
Wed Jul 31 14:15:17 2019 rev:7 rq:718787 version:1.2.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-cloudpickle/python-cloudpickle.changes 2019-05-25 13:17:58.988386797 +0200
+++ /work/SRC/openSUSE:Factory/.python-cloudpickle.new.4126/python-cloudpickle.changes 2019-07-31 14:15:18.638794685 +0200
@@ -1,0 +2,10 @@
+Fri Jul 26 07:52:16 UTC 2019 - pgajdos(a)suse.com
+
+- version update to 1.2.1
+ * Restore (partial) support for Python 3.4 for downstream projects that have LTS versions that would benefit from cloudpickle bug fixes.
+ * Leverage the C-accelerated Pickler new subclassing API (available in Python 3.8) in cloudpickle. This allows cloudpickle to pickle Python objects up to 30 times faster. (issue #253)
+ * Support pickling of classmethod and staticmethod objects in python2. arguments. (issue #262)
+ * Add support to pickle type annotations for Python 3.5 and 3.6 (pickling type annotations was already supported for Python 3.7, Python 3.4 might also work but is no longer officially supported by cloudpickle) (issue #276)
+ * Internal refactoring to proactively detect dynamic functions and classes when pickling them. This refactoring also yields small performance improvements when pickling dynamic classes (~10%) (issue #273)
+
+-------------------------------------------------------------------
Old:
----
cloudpickle-1.1.1.tar.gz
New:
----
cloudpickle-1.2.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-cloudpickle.spec ++++++
--- /var/tmp/diff_new_pack.AAoI01/_old 2019-07-31 14:15:19.218793612 +0200
+++ /var/tmp/diff_new_pack.AAoI01/_new 2019-07-31 14:15:19.226793598 +0200
@@ -18,7 +18,7 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-cloudpickle
-Version: 1.1.1
+Version: 1.2.1
Release: 0
Summary: Extended pickling support for Python objects
License: BSD-3-Clause
++++++ cloudpickle-1.1.1.tar.gz -> cloudpickle-1.2.1.tar.gz ++++++
++++ 1623 lines of diff (skipped)
1
0