openSUSE Commits
Threads by month
- ----- 2025 -----
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- 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
December 2018
- 1 participants
- 2073 discussions
Hello community,
here is the log from the commit of package libzypp for openSUSE:Factory checked in at 2018-12-03 10:08:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libzypp (Old)
and /work/SRC/openSUSE:Factory/.libzypp.new.19453 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libzypp"
Mon Dec 3 10:08:58 2018 rev:408 rq:652440 version:17.10.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/libzypp/libzypp.changes 2018-11-26 10:16:27.790002710 +0100
+++ /work/SRC/openSUSE:Factory/.libzypp.new.19453/libzypp.changes 2018-12-03 10:09:00.551785474 +0100
@@ -1,0 +2,15 @@
+Wed Nov 28 14:40:26 CET 2018 - ma(a)suse.de
+
+- Adapt to changes in upcoming Boost 1.69.0
+- Do not fail service-refresh on a empty repoindex.xml (bnc#1116840)
+- version 17.10.1 (9)
+
+-------------------------------------------------------------------
+Mon Nov 26 12:14:49 CET 2018 - ma(a)suse.de
+
+- str: recognize 'always' and 'never' as valid boolean strings
+- Fix needreboot code to use SolvableSpec parser (fate#326451)
+- SolvableSpec: Define a set of Solvables by ident and provides
+- version 17.10.0 (9)
+
+-------------------------------------------------------------------
Old:
----
libzypp-17.9.0.tar.bz2
New:
----
libzypp-17.10.1.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libzypp.spec ++++++
--- /var/tmp/diff_new_pack.m27jP6/_old 2018-12-03 10:09:01.275784807 +0100
+++ /var/tmp/diff_new_pack.m27jP6/_new 2018-12-03 10:09:01.279784803 +0100
@@ -17,10 +17,10 @@
Name: libzypp
-Version: 17.9.0
+Version: 17.10.1
Release: 0
Url: https://github.com/openSUSE/libzypp
-Summary: Package, Patch, Pattern, and Product Management
+Summary: Library for package, patch, pattern and product management
License: GPL-2.0-or-later
Group: System/Packages
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -134,10 +134,24 @@
%endif
%description
-Package, Patch, Pattern, and Product Management
+libzypp is the package management library that powers applications
+like YaST, zypper and the openSUSE/SLE implementation of PackageKit.
+
+libzypp provides functionality for a package manager:
+
+ * An API for package repository management, supporting most common
+ repository metadata formats and signed repositories.
+ * An API for solving packages, products, patterns and patches
+ (installation, removal, update and distribution upgrade
+ operations) dependencies, with additional features like locking.
+ * An API for commiting the transaction to the system over a rpm
+ target. Supporting deltarpm calculation, media changing and
+ installation order calculation.
+ * An API for browsing available and installed software, with some
+ facilities for programs with an user interface.
%package devel
-Summary: Package, Patch, Pattern, and Product Management - developers files
+Summary: Header files for libzypp, a library for package management
Group: Development/Libraries/C and C++
Provides: yast2-packagemanager-devel
Obsoletes: yast2-packagemanager-devel
@@ -182,14 +196,15 @@
%endif
%description devel
-Package, Patch, Pattern, and Product Management - developers files
+Development files for libzypp, a library for package, patch, pattern
+and product management.
%package devel-doc
-Summary: Package, Patch, Pattern, and Product Management - developers files
+Summary: Developer documentation for libzypp
Group: Documentation/HTML
%description devel-doc
-Package, Patch, Pattern, and Product Management - developers files
+Developer documentation for libzypp.
%prep
%setup -q
@@ -197,8 +212,8 @@
%build
mkdir build
cd build
-export CFLAGS="$RPM_OPT_FLAGS"
-export CXXFLAGS="$RPM_OPT_FLAGS"
+export CFLAGS="%{optflags}"
+export CXXFLAGS="%{optflags}"
unset EXTRA_CMAKE_OPTIONS
# No libproxy on SLE11
%if 0%{?suse_version} == 1110
@@ -218,46 +233,45 @@
make -C tests %{?_smp_mflags}
%install
-rm -rf "$RPM_BUILD_ROOT"
cd build
-make install DESTDIR=$RPM_BUILD_ROOT
-make -C doc/autodoc install DESTDIR=$RPM_BUILD_ROOT
+%make_install
+%make_install -C doc/autodoc
%if 0%{?fedora_version} || 0%{?rhel_version} >= 600 || 0%{?centos_version} >= 600
-ln -s %{_sysconfdir}/yum.repos.d $RPM_BUILD_ROOT%{_sysconfdir}/zypp/repos.d
+ln -s %{_sysconfdir}/yum.repos.d %{buildroot}/%{_sysconfdir}/zypp/repos.d
%else
-mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/zypp/repos.d
+mkdir -p %{buildroot}/%{_sysconfdir}/zypp/repos.d
%endif
-mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/zypp/services.d
-mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/zypp/systemCheck.d
-mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/zypp/vars.d
-mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/zypp/vendors.d
-mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/zypp/multiversion.d
-mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/zypp/needreboot.d
-mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/zypp/credentials.d
-mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib/zypp
-mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib/zypp/plugins
-mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib/zypp/plugins/appdata
-mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib/zypp/plugins/commit
-mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib/zypp/plugins/services
-mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib/zypp/plugins/system
-mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib/zypp/plugins/urlresolver
-mkdir -p $RPM_BUILD_ROOT%{_var}/lib/zypp
-mkdir -p $RPM_BUILD_ROOT%{_var}/log/zypp
-mkdir -p $RPM_BUILD_ROOT%{_var}/cache/zypp
+mkdir -p %{buildroot}/%{_sysconfdir}/zypp/services.d
+mkdir -p %{buildroot}/%{_sysconfdir}/zypp/systemCheck.d
+mkdir -p %{buildroot}/%{_sysconfdir}/zypp/vars.d
+mkdir -p %{buildroot}/%{_sysconfdir}/zypp/vendors.d
+mkdir -p %{buildroot}/%{_sysconfdir}/zypp/multiversion.d
+mkdir -p %{buildroot}/%{_sysconfdir}/zypp/needreboot.d
+mkdir -p %{buildroot}/%{_sysconfdir}/zypp/credentials.d
+mkdir -p %{buildroot}/%{_prefix}/lib/zypp
+mkdir -p %{buildroot}/%{_prefix}/lib/zypp/plugins
+mkdir -p %{buildroot}/%{_prefix}/lib/zypp/plugins/appdata
+mkdir -p %{buildroot}/%{_prefix}/lib/zypp/plugins/commit
+mkdir -p %{buildroot}/%{_prefix}/lib/zypp/plugins/services
+mkdir -p %{buildroot}/%{_prefix}/lib/zypp/plugins/system
+mkdir -p %{buildroot}/%{_prefix}/lib/zypp/plugins/urlresolver
+mkdir -p %{buildroot}/%{_var}/lib/zypp
+mkdir -p %{buildroot}/%{_var}/log/zypp
+mkdir -p %{buildroot}/%{_var}/cache/zypp
# Default to 'solver.dupAllowVendorChange = false' on TW and post SLE12
%if 0%{?suse_version} >= 1330 || "%{distribution}" == "openSUSE Tumbleweed"
sed -i "s|# solver.dupAllowVendorChange = true|solver.dupAllowVendorChange = false|g" %{buildroot}%{_sysconfdir}/zypp/zypp.conf
%endif
-make -C po install DESTDIR=$RPM_BUILD_ROOT
+%make_install -C po
# Create filelist with translations
cd ..
%{find_lang} zypp
%check
pushd build/tests
-LD_LIBRARY_PATH=$RPM_BUILD_ROOT%{_libdir}:${LD_LIBRARY_PATH} ctest .
+LD_LIBRARY_PATH="%{buildroot}/%{_libdir}:$LD_LIBRARY_PATH" ctest .
popd
%post
@@ -326,9 +340,6 @@
%postun -p /sbin/ldconfig
-%clean
-rm -rf "$RPM_BUILD_ROOT"
-
%files -f zypp.lang
%defattr(-,root,root)
%if 0%{?suse_version} >= 1500
++++++ libzypp-17.9.0.tar.bz2 -> libzypp-17.10.1.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.9.0/CMakeLists.txt new/libzypp-17.10.1/CMakeLists.txt
--- old/libzypp-17.9.0/CMakeLists.txt 2018-11-14 11:56:53.000000000 +0100
+++ new/libzypp-17.10.1/CMakeLists.txt 2018-11-27 14:51:43.000000000 +0100
@@ -154,13 +154,31 @@
INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIR})
ENDIF( NOT ZLIB_FOUND)
-#SET(LibSolv_USE_STATIC_LIBS ON)
-FIND_PACKAGE(LibSolv REQUIRED ext)
-IF ( NOT LibSolv_FOUND )
- MESSAGE( FATAL_ERROR " libsolv not found" )
+
+#Allow to override the libsolv install location
+IF( LIBSOLV_SRCDIR AND LIBSOLV_BUILDDIR )
+ execute_process(
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/libsolv
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/libsolv/include
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/libsolv/ext
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/libsolv/solvversion
+ COMMAND ${CMAKE_COMMAND} -E create_symlink ${LIBSOLV_SRCDIR}/src ${CMAKE_BINARY_DIR}/libsolv/include/solv
+ COMMAND ${CMAKE_COMMAND} -E create_symlink ${LIBSOLV_SRCDIR}/ext ${CMAKE_BINARY_DIR}/libsolv/ext/solv
+ COMMAND ${CMAKE_COMMAND} -E create_symlink ${LIBSOLV_BUILDDIR}/src ${CMAKE_BINARY_DIR}/libsolv/solvversion/solv
+ )
+
+ INCLUDE_DIRECTORIES( ${CMAKE_BINARY_DIR}/libsolv/include ${CMAKE_BINARY_DIR}/libsolv/ext ${CMAKE_BINARY_DIR}/libsolv/solvversion ${CMAKE_BINARY_DIR}/libsolv/solvversion/solv ${CMAKE_BINARY_DIR}/libsolv/ext/solv ${CMAKE_BINARY_DIR}/libsolv/include/solv )
+ SET( LibSolv_LIBRARIES ${LIBSOLV_BUILDDIR}/src/libsolv.a ${LIBSOLV_BUILDDIR}/ext/libsolvext.a )
+
ELSE()
- INCLUDE_DIRECTORIES( ${LibSolv_INCLUDE_DIRS} )
-ENDIF()
+ FIND_PACKAGE(LibSolv REQUIRED ext)
+ #SET(LibSolv_USE_STATIC_LIBS ON)
+ IF ( NOT LibSolv_FOUND )
+ MESSAGE( FATAL_ERROR " libsolv not found" )
+ ELSE()
+ INCLUDE_DIRECTORIES( ${LibSolv_INCLUDE_DIRS} )
+ ENDIF()
+ENDIF( LIBSOLV_SRCDIR AND LIBSOLV_BUILDDIR )
FIND_PACKAGE(Gpgme REQUIRED)
IF ( NOT GPGME_PTHREAD_FOUND )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.9.0/VERSION.cmake new/libzypp-17.10.1/VERSION.cmake
--- old/libzypp-17.9.0/VERSION.cmake 2018-11-14 11:56:53.000000000 +0100
+++ new/libzypp-17.10.1/VERSION.cmake 2018-11-28 14:46:29.000000000 +0100
@@ -60,9 +60,9 @@
#
SET(LIBZYPP_MAJOR "17")
SET(LIBZYPP_COMPATMINOR "9")
-SET(LIBZYPP_MINOR "9")
-SET(LIBZYPP_PATCH "0")
+SET(LIBZYPP_MINOR "10")
+SET(LIBZYPP_PATCH "1")
#
-# LAST RELEASED: 17.9.0 (9)
+# LAST RELEASED: 17.10.1 (9)
# (The number in parenthesis is LIBZYPP_COMPATMINOR)
#=======
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.9.0/libzypp.spec.cmake new/libzypp-17.10.1/libzypp.spec.cmake
--- old/libzypp-17.9.0/libzypp.spec.cmake 2018-11-14 15:51:54.000000000 +0100
+++ new/libzypp-17.10.1/libzypp.spec.cmake 2018-11-20 12:39:44.000000000 +0100
@@ -21,7 +21,7 @@
Release: 0
License: GPL-2.0+
Url: https://github.com/openSUSE/libzypp
-Summary: Package, Patch, Pattern, and Product Management
+Summary: Library for package, patch, pattern and product management
Group: System/Packages
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Source: %{name}-%{version}.tar.bz2
@@ -134,10 +134,24 @@
%endif
%description
-Package, Patch, Pattern, and Product Management
+libzypp is the package management library that powers applications
+like YaST, zypper and the openSUSE/SLE implementation of PackageKit.
+
+libzypp provides functionality for a package manager:
+
+ * An API for package repository management, supporting most common
+ repository metadata formats and signed repositories.
+ * An API for solving packages, products, patterns and patches
+ (installation, removal, update and distribution upgrade
+ operations) dependencies, with additional features like locking.
+ * An API for commiting the transaction to the system over a rpm
+ target. Supporting deltarpm calculation, media changing and
+ installation order calculation.
+ * An API for browsing available and installed software, with some
+ facilities for programs with an user interface.
%package devel
-Summary: Package, Patch, Pattern, and Product Management - developers files
+Summary: Header files for libzypp, a library for package management
Group: Development/Libraries/C and C++
Provides: yast2-packagemanager-devel
Obsoletes: yast2-packagemanager-devel
@@ -182,14 +196,15 @@
%endif
%description devel
-Package, Patch, Pattern, and Product Management - developers files
+Development files for libzypp, a library for package, patch, pattern
+and product management.
%package devel-doc
-Summary: Package, Patch, Pattern, and Product Management - developers files
+Summary: Developer documentation for libzypp
Group: Documentation/HTML
%description devel-doc
-Package, Patch, Pattern, and Product Management - developers files
+Developer documentation for libzypp.
%prep
%setup -q
@@ -197,8 +212,8 @@
%build
mkdir build
cd build
-export CFLAGS="$RPM_OPT_FLAGS"
-export CXXFLAGS="$RPM_OPT_FLAGS"
+export CFLAGS="%{optflags}"
+export CXXFLAGS="%{optflags}"
unset EXTRA_CMAKE_OPTIONS
# No libproxy on SLE11
%if 0%{?suse_version} == 1110
@@ -218,46 +233,45 @@
make -C tests %{?_smp_mflags}
%install
-rm -rf "$RPM_BUILD_ROOT"
cd build
-make install DESTDIR=$RPM_BUILD_ROOT
-make -C doc/autodoc install DESTDIR=$RPM_BUILD_ROOT
+%make_install
+%make_install -C doc/autodoc
%if 0%{?fedora_version} || 0%{?rhel_version} >= 600 || 0%{?centos_version} >= 600
-ln -s %{_sysconfdir}/yum.repos.d $RPM_BUILD_ROOT%{_sysconfdir}/zypp/repos.d
+ln -s %{_sysconfdir}/yum.repos.d %{buildroot}/%{_sysconfdir}/zypp/repos.d
%else
-mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/zypp/repos.d
+mkdir -p %{buildroot}/%{_sysconfdir}/zypp/repos.d
%endif
-mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/zypp/services.d
-mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/zypp/systemCheck.d
-mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/zypp/vars.d
-mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/zypp/vendors.d
-mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/zypp/multiversion.d
-mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/zypp/needreboot.d
-mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/zypp/credentials.d
-mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib/zypp
-mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib/zypp/plugins
-mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib/zypp/plugins/appdata
-mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib/zypp/plugins/commit
-mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib/zypp/plugins/services
-mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib/zypp/plugins/system
-mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib/zypp/plugins/urlresolver
-mkdir -p $RPM_BUILD_ROOT%{_var}/lib/zypp
-mkdir -p $RPM_BUILD_ROOT%{_var}/log/zypp
-mkdir -p $RPM_BUILD_ROOT%{_var}/cache/zypp
+mkdir -p %{buildroot}/%{_sysconfdir}/zypp/services.d
+mkdir -p %{buildroot}/%{_sysconfdir}/zypp/systemCheck.d
+mkdir -p %{buildroot}/%{_sysconfdir}/zypp/vars.d
+mkdir -p %{buildroot}/%{_sysconfdir}/zypp/vendors.d
+mkdir -p %{buildroot}/%{_sysconfdir}/zypp/multiversion.d
+mkdir -p %{buildroot}/%{_sysconfdir}/zypp/needreboot.d
+mkdir -p %{buildroot}/%{_sysconfdir}/zypp/credentials.d
+mkdir -p %{buildroot}/%{_prefix}/lib/zypp
+mkdir -p %{buildroot}/%{_prefix}/lib/zypp/plugins
+mkdir -p %{buildroot}/%{_prefix}/lib/zypp/plugins/appdata
+mkdir -p %{buildroot}/%{_prefix}/lib/zypp/plugins/commit
+mkdir -p %{buildroot}/%{_prefix}/lib/zypp/plugins/services
+mkdir -p %{buildroot}/%{_prefix}/lib/zypp/plugins/system
+mkdir -p %{buildroot}/%{_prefix}/lib/zypp/plugins/urlresolver
+mkdir -p %{buildroot}/%{_var}/lib/zypp
+mkdir -p %{buildroot}/%{_var}/log/zypp
+mkdir -p %{buildroot}/%{_var}/cache/zypp
# Default to 'solver.dupAllowVendorChange = false' on TW and post SLE12
%if 0%{?suse_version} >= 1330 || "%{distribution}" == "openSUSE Tumbleweed"
sed -i "s|# solver.dupAllowVendorChange = true|solver.dupAllowVendorChange = false|g" %{buildroot}%{_sysconfdir}/zypp/zypp.conf
%endif
-make -C po install DESTDIR=$RPM_BUILD_ROOT
+%make_install -C po
# Create filelist with translations
cd ..
%{find_lang} zypp
%check
pushd build/tests
-LD_LIBRARY_PATH=$RPM_BUILD_ROOT%{_libdir}:${LD_LIBRARY_PATH} ctest .
+LD_LIBRARY_PATH="%{buildroot}/%{_libdir}:$LD_LIBRARY_PATH" ctest .
popd
%post
@@ -326,9 +340,6 @@
%postun -p /sbin/ldconfig
-%clean
-rm -rf "$RPM_BUILD_ROOT"
-
%files -f zypp.lang
%defattr(-,root,root)
%if 0%{?suse_version} >= 1500
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.9.0/package/libzypp.changes new/libzypp-17.10.1/package/libzypp.changes
--- old/libzypp-17.9.0/package/libzypp.changes 2018-11-14 11:56:53.000000000 +0100
+++ new/libzypp-17.10.1/package/libzypp.changes 2018-11-28 14:46:29.000000000 +0100
@@ -1,4 +1,19 @@
-------------------------------------------------------------------
+Wed Nov 28 14:40:26 CET 2018 - ma(a)suse.de
+
+- Adapt to changes in upcoming Boost 1.69.0
+- Do not fail service-refresh on a empty repoindex.xml (bnc#1116840)
+- version 17.10.1 (9)
+
+-------------------------------------------------------------------
+Mon Nov 26 12:14:49 CET 2018 - ma(a)suse.de
+
+- str: recognize 'always' and 'never' as valid boolean strings
+- Fix needreboot code to use SolvableSpec parser (fate#326451)
+- SolvableSpec: Define a set of Solvables by ident and provides
+- version 17.10.0 (9)
+
+-------------------------------------------------------------------
Wed Nov 14 11:48:35 CET 2018 - ma(a)suse.de
- Provide needreboot config files in /etc/zypp (fate#326451, fixes #140)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.9.0/tests/data/TCSelectable/RepoSRC.xml new/libzypp-17.10.1/tests/data/TCSelectable/RepoSRC.xml
--- old/libzypp-17.9.0/tests/data/TCSelectable/RepoSRC.xml 1970-01-01 01:00:00.000000000 +0100
+++ new/libzypp-17.10.1/tests/data/TCSelectable/RepoSRC.xml 2018-11-19 16:01:30.000000000 +0100
@@ -0,0 +1,57 @@
+<channel><subchannel>
+<srcpackage>
+ <name>candidate</name>
+ <vendor>openSUSE</vendor>
+ <history><update>
+ <arch>noarch</arch>
+ <version>0</version>
+ <release>1</release>
+ </update></history>
+</srcpackage>
+<srcpackage>
+ <name>candidate</name>
+ <vendor>openSUSE</vendor>
+ <history><update>
+ <arch>noarch</arch>
+ <version>0</version>
+ <release>1</release>
+ </update></history>
+</srcpackage>
+
+<srcpackage>
+ <name>candidatenoarch</name>
+ <vendor>openSUSE</vendor>
+ <history><update>
+ <arch>noarch</arch>
+ <version>0</version>
+ <release>2</release>
+ </update></history>
+</srcpackage>
+<srcpackage>
+ <name>candidatenoarch</name>
+ <vendor>openSUSE</vendor>
+ <history><update>
+ <arch>noarch</arch>
+ <version>0</version>
+ <release>1</release>
+ </update></history>
+</srcpackage>
+<srcpackage>
+ <name>candidatenoarch</name>
+ <vendor>openSUSE</vendor>
+ <history><update>
+ <arch>noarch</arch>
+ <version>0</version>
+ <release>1</release>
+ </update></history>
+</srcpackage>
+<srcpackage>
+ <name>candidatenoarch</name>
+ <vendor>openSUSE</vendor>
+ <history><update>
+ <arch>noarch</arch>
+ <version>0</version>
+ <release>1</release>
+ </update></history>
+</srcpackage>
+</subchannel></channel>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.9.0/tests/data/TCSelectable/solver-test.xml new/libzypp-17.10.1/tests/data/TCSelectable/solver-test.xml
--- old/libzypp-17.9.0/tests/data/TCSelectable/solver-test.xml 2018-10-01 14:31:07.000000000 +0200
+++ new/libzypp-17.10.1/tests/data/TCSelectable/solver-test.xml 2018-11-19 16:01:30.000000000 +0100
@@ -17,6 +17,11 @@
- url : http://foo.org/distribution/LOW
-->
<channel file="RepoLOW.xml" name="RepoLOW" priority="99" />
+ <!--
+ - alias : RepoLOW
+ - url : http://foo.org/distribution/LOW
+ -->
+ <channel file="RepoSRC.xml" name="RepoSRC" priority="99" />
<locale name="en_US" />
<locale name="de" />
</setup>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.9.0/tests/sat/CMakeLists.txt new/libzypp-17.10.1/tests/sat/CMakeLists.txt
--- old/libzypp-17.9.0/tests/sat/CMakeLists.txt 2018-10-01 14:31:07.000000000 +0200
+++ new/libzypp-17.10.1/tests/sat/CMakeLists.txt 2018-11-19 16:01:30.000000000 +0100
@@ -9,6 +9,7 @@
Queue
Map
Solvable
+ SolvableSpec
SolvParsing
WhatObsoletes
WhatProvides
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.9.0/tests/sat/SolvableSpec_test.cc new/libzypp-17.10.1/tests/sat/SolvableSpec_test.cc
--- old/libzypp-17.9.0/tests/sat/SolvableSpec_test.cc 1970-01-01 01:00:00.000000000 +0100
+++ new/libzypp-17.10.1/tests/sat/SolvableSpec_test.cc 2018-11-19 16:01:30.000000000 +0100
@@ -0,0 +1,112 @@
+#include <stdio.h>
+#include <iostream>
+#include <boost/test/auto_unit_test.hpp>
+
+#include "zypp/sat/SolvableSpec.h"
+#include "zypp/base/Logger.h"
+#include "TestSetup.h"
+
+#define BOOST_CHECK_MODULE SolvableSpec
+
+using std::cout;
+using std::endl;
+using std::string;
+using namespace zypp;
+using namespace boost::unit_test;
+
+
+BOOST_AUTO_TEST_CASE(parsing)
+{
+ {
+ sat::SolvableSpec specs;
+ // adds no empty values
+ specs.addIdent ( IdString() );
+ specs.addIdent ( IdString( "" ) );
+ specs.addProvides( Capability() );
+ specs.addProvides( Capability( "" ) );
+ BOOST_CHECK( ! specs.containsIdent( IdString() ) );
+ BOOST_CHECK( ! specs.containsProvides( Capability() ) );
+ BOOST_CHECK( ! specs.containsIdent( IdString( "" ) ) );
+ BOOST_CHECK( ! specs.containsProvides( Capability( "" ) ) );
+ }
+ {
+ sat::SolvableSpec specs;
+ specs.addIdent ( IdString( "idstr" ) );
+ specs.addProvides( Capability( "idcap" ) );
+ specs.addProvides( Capability( "idvcap=13" ) );
+ specs.addProvides( Capability( "idvwcap = 14" ) );
+ BOOST_CHECK( specs.containsIdent ( IdString( "idstr" ) ) );
+ BOOST_CHECK( specs.containsProvides( Capability( "", "idcap", "", "" ) ) );
+ BOOST_CHECK( specs.containsProvides( Capability( "", "idvcap", "=", "13" ) ) );
+ BOOST_CHECK( specs.containsProvides( Capability( "", "idvwcap", "=", "14" ) ) );
+ }
+ {
+ sat::SolvableSpec specs;
+ specs.parse( "idstr" );
+ specs.parse( "provides:idcap" );
+ specs.parse( "provides:idvcap=13" );
+ specs.parse( "provides:idvwcap = 14" );
+ BOOST_CHECK( specs.containsIdent ( IdString( "idstr" ) ) );
+ BOOST_CHECK( specs.containsProvides( Capability( "", "idcap", "", "" ) ) );
+ BOOST_CHECK( specs.containsProvides( Capability( "", "idvcap", "=", "13" ) ) );
+ BOOST_CHECK( specs.containsProvides( Capability( "", "idvwcap", "=", "14" ) ) );
+ }
+ {
+ sat::SolvableSpec specs;
+ std::stringstream str;
+ str << "# some comment" << endl;
+ str << " # maybe indented" << endl;
+ str << " \t " << endl; // white line
+ str << " idstr " << endl;
+ str << " provides:idcap " << endl;
+ str << " provides:idvcap=13 " << endl;
+ str << " provides:idvwcap = 14 " << endl;
+ str << "" << endl;
+ specs.parseFrom( str );
+ BOOST_CHECK( specs.containsIdent ( IdString( "idstr" ) ) );
+ BOOST_CHECK( specs.containsProvides( Capability( "", "idcap", "", "" ) ) );
+ BOOST_CHECK( specs.containsProvides( Capability( "", "idvcap", "=", "13" ) ) );
+ BOOST_CHECK( specs.containsProvides( Capability( "", "idvwcap", "=", "14" ) ) );
+ }
+ {
+ sat::SolvableSpec specs;
+ specs.splitParseFrom( "idstr provides:idcap provides:idvcap=13 provides:idvwcap\\ =\\ 14 id\\ ws\\ str provides:id\\ ws\\ cap\\ =\\ 99" );
+ BOOST_CHECK( specs.containsIdent ( IdString( "idstr" ) ) );
+ BOOST_CHECK( specs.containsProvides( Capability( "", "idcap", "", "" ) ) );
+ BOOST_CHECK( specs.containsProvides( Capability( "", "idvcap", "=", "13" ) ) );
+ BOOST_CHECK( specs.containsProvides( Capability( "", "idvwcap", "=", "14" ) ) );
+ BOOST_CHECK( specs.containsIdent ( IdString( "id ws str" ) ) );
+ BOOST_CHECK( specs.containsProvides( Capability( "", "id ws cap", "=", "99" ) ) );
+ }
+}
+
+BOOST_AUTO_TEST_CASE(eval)
+{
+ sat::SolvableSpec specs;
+ specs.parse( "candidate" );
+ BOOST_CHECK( !specs.dirty() ); // ident don't
+ specs.parse( "provides:available_only > 1-1" );
+ BOOST_CHECK( specs.dirty() ); // deps do
+
+ TestSetup test( Arch_x86_64 );
+ test.loadTestcaseRepos( TESTS_SRC_DIR "/data/TCSelectable" );
+ std::set<sat::Solvable::IdType> matches {2,3,8,9,14,15,16,17,28}; // matching Solvable IDs in TestcaseRepo (does not match srcpackage:!)
+ for ( const auto & solv : ResPool::instance() )
+ {
+ //cout << ( specs.contains( solv ) ? "* " : " " ) << solv << endl;
+ BOOST_CHECK_MESSAGE( specs.contains( solv ) == matches.count( solv.id() ), str::Str() << "Wrong: " << ( specs.contains( solv ) ? "* " : " " ) << solv );
+ }
+
+ BOOST_CHECK( !specs.dirty() ); // loop built the cache
+ specs.parse( "provides:available_only > 1-1" );
+ BOOST_CHECK( !specs.dirty() ); // already have this spec, no need to set dirty
+
+ specs.parse( "provides:available_only = 1-1" );
+ BOOST_CHECK( specs.dirty() ); // This is a new one, so got dirty
+ matches.insert( 13 );
+
+ for ( const auto & solv : ResPool::instance() )
+ {
+ BOOST_CHECK_MESSAGE( specs.contains( solv ) == matches.count( solv.id() ), str::Str() << "Wrong: " << ( specs.contains( solv ) ? "* " : " " ) << solv );
+ }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.9.0/tools/DiskUsageCounter.cc new/libzypp-17.10.1/tools/DiskUsageCounter.cc
--- old/libzypp-17.9.0/tools/DiskUsageCounter.cc 1970-01-01 01:00:00.000000000 +0100
+++ new/libzypp-17.10.1/tools/DiskUsageCounter.cc 2018-11-21 18:41:27.000000000 +0100
@@ -0,0 +1,54 @@
+#define INCLUDE_TESTSETUP_WITHOUT_BOOST
+#include "zypp/../tests/lib/TestSetup.h"
+#undef INCLUDE_TESTSETUP_WITHOUT_BOOST
+#include "argparse.h"
+
+#include <iostream>
+#include <zypp/DiskUsageCounter.h>
+
+using std::cout;
+using std::cerr;
+using std::endl;
+
+static std::string appname { "NO_NAME" };
+
+int errexit( const std::string & msg_r = std::string(), int exit_r = 100 )
+{
+ if ( ! msg_r.empty() )
+ cerr << endl << appname << ": ERR: " << msg_r << endl << endl;
+ return exit_r;
+}
+
+int usage( const argparse::Options & options_r, int return_r = 0 )
+{
+ cerr << "USAGE: " << appname << " [OPTION]... [ARGS]..." << endl;
+ cerr << " Print default mountpoint set for disk usage computation." << endl;
+ cerr << options_r << endl;
+ return return_r;
+}
+
+int main( int argc, char * argv[] )
+{
+ appname = Pathname::basename( argv[0] );
+
+ std::string sysRoot { "/" };
+
+ argparse::Options options;
+ options.add()
+ ( "help,h", "Print help and exit." )
+ ( "root", "Use the system located below ROOTDIR.", argparse::Option::Arg::required )
+ ;
+ auto result = options.parse( argc, argv );
+
+ if ( result.count( "help" ) )
+ return usage( options );
+
+ if ( result.count( "root" ) )
+ sysRoot = result["root"].arg();
+
+ // go...
+ cout << "DiskUsageCounter: relevant mount points detected below '" << sysRoot << "':" << endl;
+ cout << DiskUsageCounter::detectMountPoints( sysRoot ) << endl;
+
+ return 0;
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.9.0/tools/argparse.h new/libzypp-17.10.1/tools/argparse.h
--- old/libzypp-17.9.0/tools/argparse.h 1970-01-01 01:00:00.000000000 +0100
+++ new/libzypp-17.10.1/tools/argparse.h 2018-11-21 18:41:27.000000000 +0100
@@ -0,0 +1,340 @@
+#ifndef ZYPP_TOOLS_ARGPARSE_H
+#define ZYPP_TOOLS_ARGPARSE_H
+
+#include <iosfwd>
+#include <string>
+#include <exception>
+#include <unordered_map>
+#include <unordered_set>
+#include <vector>
+
+//#include <regex> seems to be bad with gcc < 4.9
+#include <zypp/base/Regex.h>
+
+///////////////////////////////////////////////////////////////////
+/// Simple arg parser for tools
+/// \code
+/// argparse::Options options;
+/// options.add()
+/// ( "help,h", "Print help and exit." )
+/// ( "root", "Use the system located below ROOTDIR.", argparse::Option::Arg::required )
+/// ;
+/// auto result = options.parse( argc, argv );
+///
+/// if ( result.count( "root" ) )
+/// sysRoot = result["root"].arg();
+/// \endcode
+namespace argparse
+{
+ using zypp::str::regex;
+ using zypp::str::smatch;
+ using zypp::str::regex_match;
+
+ ///////////////////////////////////////////////////////////////////
+ /// Exception thrown when defining Options or parsing.
+ class OptionException : public std::exception
+ {
+ public:
+ OptionException( std::string msg_r )
+ : _msg { std::move(msg_r) }
+ {}
+
+ OptionException( std::string msg_r, const std::string & msg2_r )
+ : _msg { std::move(msg_r) }
+ { if ( ! msg2_r.empty() ) _msg += msg2_r; }
+
+ const char* what() const noexcept override
+ { return _msg.c_str(); }
+
+ private:
+ std::string _msg;
+ };
+
+ ///////////////////////////////////////////////////////////////////
+ /// Option description (TBD define arg consumer)
+ class Option
+ {
+ public:
+ enum class Arg { none, required, optional };
+
+ public:
+ Option( std::string descr_r, Arg hasarg_r )
+ : _descr { std::move(descr_r) }
+ , _hasarg { hasarg_r }
+ {
+ if ( hasarg_r == Arg::optional )
+ throw OptionException( "Not yet implemented: Option::Arg::optional" );
+ }
+
+ const std::string & descr() const
+ { return _descr; }
+
+ Arg hasarg() const
+ { return _hasarg; }
+
+ private:
+ std::string _descr;
+ Arg _hasarg;
+ };
+
+
+ class ParsedOptions;
+
+ ///////////////////////////////////////////////////////////////////
+ /// Map of option names -> option descriptions.
+ class Options
+ {
+ typedef std::unordered_map<std::string, std::shared_ptr<const Option>> OptionMap;
+ public:
+ Options()
+ {}
+
+ public:
+ class Injector
+ {
+ public:
+ Injector( OptionMap & optmap_r )
+ : _optmap { optmap_r }
+ {}
+
+ Injector & operator()( const std::string & names_r, std::string descr_r, Option::Arg hasarg_r = Option::Arg::none )
+ {
+ smatch result;
+ if ( regex_match( names_r, result, regex("([[:alnum:]][-_[:alnum:]]+)(,([[:alnum:]]))?") ) )
+ {
+ auto opt = std::make_shared<const Option>( std::move(descr_r), hasarg_r );
+ add( result[1], opt );
+ if ( ! result[3].empty() )
+ add( result[3], opt );
+ }
+ else
+ throw OptionException( "Illegal option names: ", names_r );
+
+ return *this;
+ }
+
+ private:
+ void add( std::string name_r, std::shared_ptr<const Option> opt_r )
+ {
+ if ( _optmap.count( name_r ) )
+ throw OptionException( "Duplicate option name: ", name_r );
+ _optmap[name_r] = opt_r;
+ }
+
+ private:
+ OptionMap & _optmap;
+ };
+
+ Injector add()
+ { return Injector( _optmap ); }
+
+ public:
+ ParsedOptions parse( int argc, char * argv[] ) const;
+
+ public:
+ std::ostream & dumpOn( std::ostream & str_r ) const
+ {
+ str_r << "OPTIONS:";
+ if ( ! _optmap.empty() )
+ {
+ std::unordered_map<std::shared_ptr<const Option>, std::string> unify;
+ for ( const auto & p : _optmap )
+ {
+ std::string & t { unify[p.second] };
+ if ( t.empty() )
+ t = (p.first.length()>1?"--":"-")+p.first;
+ else if ( p.first.length() > 1 )
+ t = "--"+p.first+", "+t;
+ else
+ t = t+", -"+p.first;
+ }
+
+ boost::format fmt( "\n %1% %|30t|%2%" );
+ for ( const auto & p : unify )
+ {
+ fmt % p.second % p.first->descr();
+ str_r << fmt.str();
+ }
+ }
+ else
+ {
+ str_r << " This command accepts no options.";
+ }
+ return str_r;
+ }
+
+ private:
+ OptionMap _optmap;
+ };
+
+ inline std::ostream & operator<<( std::ostream & str_r, const Options & obj_r )
+ { return obj_r.dumpOn( str_r ); }
+
+ ///////////////////////////////////////////////////////////////////
+ /// Parsed option incl. option args value (by now just stores the string)
+ class OptionValue
+ {
+ public:
+ OptionValue( std::shared_ptr<const Option> opt_r )
+ : _opt { opt_r }
+ {}
+
+ OptionValue( std::shared_ptr<const Option> opt_r, std::string arg_r )
+ : _opt { opt_r }
+ , _arg { std::make_shared<std::string>( std::move(arg_r) ) }
+ {}
+
+ const std::string & arg() const
+ {
+ if ( ! _arg )
+ throw std::domain_error( "No arg value" );
+
+ return *_arg;
+ }
+
+ private:
+ std::shared_ptr<const Option> _opt;
+ std::shared_ptr<std::string> _arg;
+ };
+
+ ///////////////////////////////////////////////////////////////////
+ /// Parsed options and positional args
+ class ParsedOptions
+ {
+ typedef std::unordered_map<std::string, std::shared_ptr<const Option>> OptionMap;
+ typedef std::unordered_map<std::shared_ptr<const Option>, OptionValue> ResultMap;
+ public:
+ ParsedOptions( const OptionMap & optmap_r, int argc, char * argv[] )
+ : _optmap { optmap_r }
+ { parse( argc, argv ); }
+
+ public:
+ size_t count( const std::string & optname_r ) const
+ {
+ auto iter = _optmap.find( optname_r );
+ if ( iter == _optmap.end() )
+ return 0;
+
+ auto resiter = _options.find( iter->second );
+ return( resiter == _options.end() ? 0 : 1 );
+ }
+
+ const OptionValue & operator[]( const std::string & optname_r ) const
+ {
+ return requireOptValByName( optname_r );
+ }
+
+ const std::vector<std::string> & positionals() const
+ { return _positionals; }
+
+ private:
+ void parse( int argc, char * argv[] )
+ {
+ bool collectpositional = false;
+ for ( --argc,++argv; argc; --argc,++argv )
+ {
+ if ( (*argv)[0] == '-' && !collectpositional )
+ {
+ if ( (*argv)[1] == '-' )
+ {
+ if ( (*argv)[2] == '\0' )
+ {
+ // -- rest are positional...
+ collectpositional = true;
+ }
+ else
+ {
+ // --longopt
+ parseoptl( (*argv)+2, argc, argv );
+ }
+ }
+ else
+ {
+ // -s(hortopt)
+ parseopts( (*argv)+1, argc, argv );
+ }
+ }
+ else
+ {
+ // positional
+ _positionals.push_back( *argv );
+ }
+ }
+ }
+
+ private:
+ std::string dashed( std::string name_r ) const
+ { return name_r.insert( 0, name_r.size()>1?"--":"-" ); }
+
+ void parseoptl( const std::string & name_r, int & argc, char **& argv )
+ {
+ if ( name_r.length() < 2 )
+ throw OptionException( "Illegal long opt: --", name_r );
+
+ parseopt( name_r, argc, argv );
+ }
+
+ void parseopts( const std::string & name_r, int & argc, char **& argv )
+ {
+ if ( name_r.length() != 1 )
+ throw OptionException( "Illegal short opt: -", name_r );
+
+ parseopt( name_r, argc, argv );
+ }
+
+ void parseopt( const std::string & name_r, int & argc, char **& argv )
+ {
+ auto opt = requireOptByName( name_r );
+
+ auto iter = _options.find( opt );
+ if ( iter != _options.end() )
+ throw OptionException( "Multiple occurrences of option: ", dashed( name_r ) );
+
+ if ( opt->hasarg() != Option::Arg::none )
+ {
+ if ( opt->hasarg() == Option::Arg::optional )
+ throw OptionException( "Not yet implemented: Option::Arg::optional" ); // i.e. '--opt=arg'
+
+ if ( argc < 2 )
+ throw OptionException( "Missing argument for option: ", dashed( name_r ) );
+
+ --argc,++argv;
+ moveToResult( opt, OptionValue( opt, *argv ) );
+ }
+ else
+ moveToResult( opt, OptionValue( opt ) );
+ }
+
+ void moveToResult( std::shared_ptr<const Option> opt_r, OptionValue && value_r )
+ { _options.insert( std::make_pair( opt_r, std::move(value_r) ) ); }
+
+ std::shared_ptr<const Option> requireOptByName( const std::string & name_r ) const
+ {
+ auto iter = _optmap.find( name_r );
+ if ( iter == _optmap.end() )
+ throw OptionException( "Unknown option: ", dashed( name_r ) );
+ return iter->second;
+ }
+
+ const OptionValue & requireOptValByName( const std::string & name_r ) const
+ {
+ auto iter = _options.find( requireOptByName( name_r ) );
+ if ( iter == _options.end() )
+ throw OptionException( "Option not present: ", dashed( name_r ) );
+ return iter->second;
+ }
+
+ private:
+ const OptionMap & _optmap;
+ ResultMap _options;
+ std::vector<std::string> _positionals;
+ };
+
+ inline ParsedOptions Options::parse( int argc, char * argv[] ) const
+ { return ParsedOptions( _optmap, argc, argv ); }
+
+
+
+} // namespace argparse
+///////////////////////////////////////////////////////////////////
+#endif // ZYPP_TOOLS_ARGPARSE_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.9.0/zypp/CMakeLists.txt new/libzypp-17.10.1/zypp/CMakeLists.txt
--- old/libzypp-17.9.0/zypp/CMakeLists.txt 2018-11-12 11:55:49.000000000 +0100
+++ new/libzypp-17.10.1/zypp/CMakeLists.txt 2018-11-19 16:01:31.000000000 +0100
@@ -534,6 +534,7 @@
sat/Pool.cc
sat/Solvable.cc
sat/SolvableSet.cc
+ sat/SolvableSpec.cc
sat/SolvIterMixin.cc
sat/Map.cc
sat/Queue.cc
@@ -551,6 +552,7 @@
sat/Solvable.h
sat/SolvableSet.h
sat/SolvableType.h
+ sat/SolvableSpec.h
sat/SolvIterMixin.h
sat/Map.h
sat/Queue.h
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.9.0/zypp/TriBool.h new/libzypp-17.10.1/zypp/TriBool.h
--- old/libzypp-17.9.0/zypp/TriBool.h 2018-10-01 14:31:07.000000000 +0200
+++ new/libzypp-17.10.1/zypp/TriBool.h 2018-11-27 16:16:49.000000000 +0100
@@ -68,7 +68,7 @@
/** \relates TriBool whether 2 tribool have the same state (this is NOT ==) */
inline bool sameTriboolState( tribool lhs, tribool rhs )
- { return( ( indeterminate(lhs) && indeterminate(rhs) ) || ( lhs == rhs ) ); }
+ { return( ( indeterminate(lhs) && indeterminate(rhs) ) || ( bool )( lhs == rhs ) ); }
}
}
#endif // ZYPP_TRIBOOL_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.9.0/zypp/base/String.cc new/libzypp-17.10.1/zypp/base/String.cc
--- old/libzypp-17.9.0/zypp/base/String.cc 2018-10-01 14:31:07.000000000 +0200
+++ new/libzypp-17.10.1/zypp/base/String.cc 2018-11-26 12:31:41.000000000 +0100
@@ -66,6 +66,7 @@
return( t == "1"
|| t == "yes"
|| t == "true"
+ || t == "always"
|| t == "on"
|| t == "+"
|| strtonum<long long>( str )
@@ -83,6 +84,7 @@
return ! ( t == "0"
|| t == "no"
|| t == "false"
+ || t == "never"
|| t == "off"
|| t == "-"
);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.9.0/zypp/base/String.h new/libzypp-17.10.1/zypp/base/String.h
--- old/libzypp-17.9.0/zypp/base/String.h 2018-10-01 14:31:07.000000000 +0200
+++ new/libzypp-17.10.1/zypp/base/String.h 2018-11-26 12:31:41.000000000 +0100
@@ -415,10 +415,10 @@
/** Parsing boolean from string.
*/
//@{
- /** Return \c true if str is <tt>1, true, yes, on</tt> (or a nonzero number). */
+ /** Return \c true if str is <tt>1, true, yes, on, always</tt> (or a nonzero number). */
bool strToTrue( const C_Str & str );
- /** Return \c false if str is <tt>0, false, no, off</tt>. */
+ /** Return \c false if str is <tt>0, false, no, off, never</tt>. */
bool strToFalse( const C_Str & str );
/** Parse \c str into a bool depending on the default value.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.9.0/zypp/repo/ServiceRepos.cc new/libzypp-17.10.1/zypp/repo/ServiceRepos.cc
--- old/libzypp-17.9.0/zypp/repo/ServiceRepos.cc 2018-10-01 14:31:07.000000000 +0200
+++ new/libzypp-17.10.1/zypp/repo/ServiceRepos.cc 2018-11-27 14:51:43.000000000 +0100
@@ -40,10 +40,19 @@
mediamanager.attach( mid );
mediamanager.provideFile( mid, "repo/repoindex.xml" );
Pathname path = mediamanager.localPath(mid, "repo/repoindex.xml" );
- parser::RepoindexFileReader reader(path, callback);
- service.setProbedTtl( reader.ttl() ); // hack! Modifying the const Service to set parsed TTL
- mediamanager.release( mid );
- mediamanager.close( mid );
+ try {
+ parser::RepoindexFileReader reader(path, callback);
+ service.setProbedTtl( reader.ttl() ); // hack! Modifying the const Service to set parsed TTL
+ mediamanager.release( mid );
+ mediamanager.close( mid );
+ } catch ( const Exception &e ) {
+ //Reader throws a bare exception, we need to translate it into something our calling
+ //code expects and handles (bnc#1116840)
+ ZYPP_CAUGHT ( e );
+ ServicePluginInformalException ex ( e.msg() );
+ ex.remember( e );
+ ZYPP_THROW( ex );
+ }
}
};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.9.0/zypp/sat/Pool.cc new/libzypp-17.10.1/zypp/sat/Pool.cc
--- old/libzypp-17.9.0/zypp/sat/Pool.cc 2018-10-12 12:44:03.000000000 +0200
+++ new/libzypp-17.10.1/zypp/sat/Pool.cc 2018-11-19 16:01:31.000000000 +0100
@@ -243,8 +243,7 @@
Queue Pool::autoInstalled() const { return myPool().autoInstalled(); }
void Pool::setAutoInstalled( const Queue & autoInstalled_r ){ myPool().setAutoInstalled( autoInstalled_r ); }
- Queue Pool::rebootNeededIdents() const { return myPool().rebootNeededIdents(); }
- void Pool::setRebootNeededIdents( const Queue & rebootNeeded_r ){ myPool().setRebootNeededIdents( rebootNeeded_r ); }
+ void Pool::setNeedrebootSpec( sat::SolvableSpec needrebootSpec_r ) { myPool().setNeedrebootSpec( std::move(needrebootSpec_r) ); }
/******************************************************************
**
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.9.0/zypp/sat/Pool.h new/libzypp-17.10.1/zypp/sat/Pool.h
--- old/libzypp-17.9.0/zypp/sat/Pool.h 2018-10-12 12:44:03.000000000 +0200
+++ new/libzypp-17.10.1/zypp/sat/Pool.h 2018-11-19 16:01:31.000000000 +0100
@@ -33,6 +33,8 @@
namespace sat
{ /////////////////////////////////////////////////////////////////
+ class SolvableSpec;
+
///////////////////////////////////////////////////////////////////
//
// CLASS NAME : Pool
@@ -265,11 +267,12 @@
void setAutoInstalled( const Queue & autoInstalled_r );
//@}
- /** Get ident list of all solvables that trigger the "reboot needed" flag. */
- Queue rebootNeededIdents() const;
-
- /** Set ident list of all solvables that trigger the "reboot needed" flag. */
- void setRebootNeededIdents( const Queue & rebootNeeded_r );
+ public:
+ /** \name Needreboot */
+ //@{
+ /** Solvables which should trigger the reboot-needed hint if installed/updated. */
+ void setNeedrebootSpec( sat::SolvableSpec needrebootSpec_r );
+ //@}
public:
/** Expert backdoor. */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.9.0/zypp/sat/Solvable.cc new/libzypp-17.10.1/zypp/sat/Solvable.cc
--- old/libzypp-17.9.0/zypp/sat/Solvable.cc 2018-10-29 15:22:46.000000000 +0100
+++ new/libzypp-17.10.1/zypp/sat/Solvable.cc 2018-11-19 16:01:31.000000000 +0100
@@ -387,9 +387,10 @@
return myPool().isOnSystemByAuto( ident_r );
}
- bool Solvable::identTriggersRebootNeededHint ( const IdString &ident_r )
+ bool Solvable::isNeedreboot() const
{
- return myPool().triggersRebootNeededHint( ident_r );
+ NO_SOLVABLE_RETURN( false );
+ return myPool().isNeedreboot( *this );
}
bool Solvable::multiversionInstall() const
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.9.0/zypp/sat/Solvable.h new/libzypp-17.10.1/zypp/sat/Solvable.h
--- old/libzypp-17.9.0/zypp/sat/Solvable.h 2018-10-29 15:22:46.000000000 +0100
+++ new/libzypp-17.10.1/zypp/sat/Solvable.h 2018-11-19 16:01:31.000000000 +0100
@@ -136,10 +136,8 @@
/** \overload static version */
static bool identIsAutoInstalled( const IdString & ident_r );
- /** Whether installing or upgrading a solvable with the same \ref ident will trigger the reboot needed hint. */
- bool identTriggersRebootNeededHint() const
- { return identTriggersRebootNeededHint( ident() ); }
- static bool identTriggersRebootNeededHint ( const IdString &ident_r );
+ /** Whether this solvable triggers the reboot-needed hint if installed/updated. */
+ bool isNeedreboot() const;
/** Whether different versions of this package can be installed at the same time.
* Per default \c false. \see also \ref ZConfig::multiversion.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.9.0/zypp/sat/SolvableSpec.cc new/libzypp-17.10.1/zypp/sat/SolvableSpec.cc
--- old/libzypp-17.9.0/zypp/sat/SolvableSpec.cc 1970-01-01 01:00:00.000000000 +0100
+++ new/libzypp-17.10.1/zypp/sat/SolvableSpec.cc 2018-11-19 16:01:31.000000000 +0100
@@ -0,0 +1,167 @@
+/*---------------------------------------------------------------------\
+| ____ _ __ __ ___ |
+| |__ / \ / / . \ . \ |
+| / / \ V /| _/ _/ |
+| / /__ | | | | | | |
+| /_____||_| |_| |_| |
+| |
+\---------------------------------------------------------------------*/
+/** \file zypp/sat/SolvableSpec.cc
+ */
+#include <iostream>
+
+#include "zypp/base/LogTools.h"
+#include "zypp/base/IOStream.h"
+
+#include "zypp/sat/SolvableSpec.h"
+#include "zypp/sat/WhatProvides.h"
+
+using std::endl;
+
+///////////////////////////////////////////////////////////////////
+namespace zypp
+{
+ ///////////////////////////////////////////////////////////////////
+ namespace sat
+ {
+ ///////////////////////////////////////////////////////////////////
+ /// \class SolvableSpec::Impl
+ /// \brief SolvableSpec implementation.
+ ///////////////////////////////////////////////////////////////////
+ class SolvableSpec::Impl
+ {
+ public:
+ void addIdent( IdString ident_r )
+ {
+ if ( ! ident_r.empty() )
+ _idents.insert( ident_r );
+ }
+
+ void addProvides( Capability provides_r )
+ {
+ if ( ! provides_r.empty() && _provides.insert( provides_r ).second )
+ setDirty();
+ }
+
+
+ void parse( const C_Str & spec_r )
+ {
+ if ( str::hasPrefix( spec_r, "provides:" ) )
+ addProvides( Capability(spec_r.c_str()+9) );
+ else
+ addIdent( IdString(spec_r) );
+ }
+
+
+ bool needed() const
+ { return !_provides.empty(); }
+
+ bool dirty() const
+ { return needed() && !_cache; }
+
+ void setDirty() const
+ { _cache.reset(); }
+
+ const WhatProvides & cache() const
+ {
+ if ( !_cache )
+ {
+ _cache.reset( new WhatProvides( _provides ) );
+ }
+ return *_cache;
+ }
+
+ bool contains( const sat::Solvable & solv_r ) const
+ { return( _idents.count( solv_r.ident() ) || ( needed() && cache().contains( solv_r ) ) ); }
+
+
+ const IdStringSet & idents() const
+ { return _idents; }
+
+ const CapabilitySet & provides() const
+ { return _provides; }
+
+ private:
+ IdStringSet _idents;
+ CapabilitySet _provides;
+
+ mutable shared_ptr<WhatProvides> _cache;
+
+ private:
+ friend Impl * rwcowClone<Impl>( const Impl * rhs );
+ /** clone for RWCOW_pointer */
+ Impl * clone() const
+ { return new Impl( *this ); }
+ };
+
+ /** \relates SolvableSpec::Impl Stream output */
+ inline std::ostream & operator<<( std::ostream & str, const SolvableSpec::Impl & obj )
+ {
+ str << "SolvableSpec {" << endl
+ << " Idents " << obj.idents() << endl
+ << " Provides " << obj.provides() << endl
+ << "}";
+ return str;
+ }
+
+ ///////////////////////////////////////////////////////////////////
+ //
+ // CLASS NAME : SolvableSpec
+ //
+ ///////////////////////////////////////////////////////////////////
+
+ SolvableSpec::SolvableSpec()
+ : _pimpl( new Impl )
+ {}
+
+ SolvableSpec::~SolvableSpec()
+ {}
+
+ void SolvableSpec::addIdent( IdString ident_r )
+ { _pimpl->addIdent( ident_r ); }
+
+ void SolvableSpec::addProvides( Capability provides_r )
+ { _pimpl->addProvides( provides_r ); }
+
+ void SolvableSpec::parse( const C_Str & spec_r )
+ { _pimpl->parse( spec_r ); }
+
+ void SolvableSpec::parseFrom( const InputStream & istr_r )
+ {
+ iostr::simpleParseFile( istr_r,
+ [this]( int num_r, const std::string & line_r )->bool
+ {
+ this->parse( line_r );
+ return true;
+ });
+ }
+
+ void SolvableSpec::splitParseFrom( const C_Str & multispec_r )
+ {
+ std::vector<std::string> v;
+ str::splitEscaped( multispec_r, std::back_inserter( v ), ", \t" );
+ parseFrom( v.begin(), v.end() );
+ }
+
+ bool SolvableSpec::contains( const sat::Solvable & solv_r ) const
+ { return _pimpl->contains( solv_r ) && !solv_r.isKind( ResKind::srcpackage ); }
+
+ bool SolvableSpec::dirty() const
+ { return _pimpl->dirty(); }
+
+ void SolvableSpec::setDirty() const
+ { _pimpl->setDirty(); }
+
+ bool SolvableSpec::containsIdent( const IdString & ident_r ) const
+ { return _pimpl->idents().count( ident_r ); }
+
+ bool SolvableSpec::containsProvides( const Capability & provides_r ) const
+ { return _pimpl->provides().count( provides_r ); }
+
+ std::ostream & operator<<( std::ostream & str, const SolvableSpec & obj )
+ { return str << *obj._pimpl; }
+
+ } // namespace sat
+ ///////////////////////////////////////////////////////////////////
+} // namespace zypp
+///////////////////////////////////////////////////////////////////
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.9.0/zypp/sat/SolvableSpec.h new/libzypp-17.10.1/zypp/sat/SolvableSpec.h
--- old/libzypp-17.9.0/zypp/sat/SolvableSpec.h 1970-01-01 01:00:00.000000000 +0100
+++ new/libzypp-17.10.1/zypp/sat/SolvableSpec.h 2018-11-19 16:01:31.000000000 +0100
@@ -0,0 +1,118 @@
+/*---------------------------------------------------------------------\
+| ____ _ __ __ ___ |
+| |__ / \ / / . \ . \ |
+| / / \ V /| _/ _/ |
+| / /__ | | | | | | |
+| /_____||_| |_| |_| |
+| |
+\---------------------------------------------------------------------*/
+/** \file zypp/sat/SolvableSpec.h
+ */
+#ifndef ZYPP_SAT_SOLVABLESPEC_H
+#define ZYPP_SAT_SOLVABLESPEC_H
+
+#include <iosfwd>
+
+#include "zypp/APIConfig.h"
+#include "zypp/base/PtrTypes.h"
+#include "zypp/base/InputStream.h"
+#include "zypp/base/String.h"
+
+#include "zypp/sat/SolvableType.h"
+
+///////////////////////////////////////////////////////////////////
+namespace zypp
+{
+ ///////////////////////////////////////////////////////////////////
+ namespace sat
+ {
+ ///////////////////////////////////////////////////////////////////
+ /// \class SolvableSpec
+ /// \brief Define a set of \ref Solvables by ident and provides.
+ ///
+ /// Able to keep the definition of solvable sets like in 'needreboot'
+ /// or 'multiversion'. The associated file parser allows reading
+ /// stored definitions (one `IDENT` or provides:CAPABILITY` per line;
+ /// empty lines and lines starting with '#' are ignored).
+ ///
+ /// The use of provides requires re-computation of the solvable set,
+ /// whenever the solvable pool changes. This computation via \ref WhatProvides
+ /// is expensive, that's why a built in cache is also offered.
+ ///
+ /// \note \ref contains does not match srcpackage: per default.
+ ///////////////////////////////////////////////////////////////////
+ class SolvableSpec
+ {
+ public:
+ /** Default ctor */
+ SolvableSpec();
+
+ /** Dtor */
+ ~SolvableSpec();
+
+ public:
+ /** Add all \ref sat::Solvable with this \a ident_r */
+ void addIdent( IdString ident_r );
+
+ /** A all \ref sat::Solvable matching this \a provides_r. */
+ void addProvides( Capability provides_r );
+
+ public:
+ /** Parse and add spec from a string (`IDENT` or provides:CAPABILITY`). */
+ void parse( const C_Str & spec_r );
+
+ /** Parse file \a istr_r and add it's specs (one per line, #-comments). */
+ void parseFrom( const InputStream & istr_r );
+
+ /** Parse and add specs from iterator range. */
+ template <class TIterator>
+ void parseFrom( TIterator begin, TIterator end )
+ { for_( it, begin, end ) parse( *it ); }
+
+ /** Convenience using \ref str::splitEscaped(", \t") to parse multiple specs from one line. */
+ void splitParseFrom( const C_Str & multispec_r );
+
+ public:
+ /** Test whether \a solv_r matches the spec.
+ * (Re-)builds the \ref WhatProvides cache on demand.
+ *
+ * \note Does not match srcpackage: per default.
+ */
+ bool contains( const sat::Solvable & solv_r ) const;
+ /** \overload */
+ template <class Derived>
+ bool contains( const SolvableType<Derived> & solv_r ) const
+ { return contains( solv_r.satSolvable() ); }
+
+ /** Whether the cache is needed and dirty. */
+ bool dirty() const;
+
+ /** Explicitly flag the cache as dirty, so it will be rebuilt on the next request.
+ * To be called if the \ref ResPool content has changed. Intentionally `const` as
+ * this does not change the set of spects (though the set of matches might change).
+ * \note This has no effect if no cache is needed (i.e. no provides: are used).
+ */
+ void setDirty() const;
+
+ public:
+ /** Whether \a ident_r has been added to the specs (mainly for parser tests). */
+ bool containsIdent( const IdString & ident_r ) const;
+
+ /** Whether \a provides_r has been added to the sepcs (mainly for parser tests).*/
+ bool containsProvides( const Capability & provides_r ) const;
+
+ public:
+ class Impl; ///< Implementation class.
+ private:
+ RWCOW_pointer<Impl> _pimpl; ///< Pointer to implementation.
+ friend std::ostream & operator<<( std::ostream & str, const SolvableSpec & obj );
+ };
+
+ /** \relates SolvableSpec Stream output */
+ std::ostream & operator<<( std::ostream & str, const SolvableSpec & obj );
+
+ } // namespace sat
+ ///////////////////////////////////////////////////////////////////
+} // namespace zypp
+///////////////////////////////////////////////////////////////////
+#endif // ZYPP_SAT_SOLVABLESPEC_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.9.0/zypp/sat/SolvableType.h new/libzypp-17.10.1/zypp/sat/SolvableType.h
--- old/libzypp-17.9.0/zypp/sat/SolvableType.h 2018-10-29 15:22:46.000000000 +0100
+++ new/libzypp-17.10.1/zypp/sat/SolvableType.h 2018-11-19 16:01:31.000000000 +0100
@@ -80,7 +80,7 @@
bool onSystemByAuto() const { return satSolvable().onSystemByAuto(); }
bool identIsAutoInstalled() const { return satSolvable().identIsAutoInstalled(); }
bool multiversionInstall() const { return satSolvable().multiversionInstall(); }
- bool identTriggersRebootNeededHint() const { return satSolvable().identTriggersRebootNeededHint(); }
+ bool isNeedreboot() const { return satSolvable().isNeedreboot(); }
Date buildtime() const { return satSolvable().buildtime(); }
Date installtime() const { return satSolvable().installtime(); }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.9.0/zypp/sat/detail/PoolImpl.cc new/libzypp-17.10.1/zypp/sat/detail/PoolImpl.cc
--- old/libzypp-17.9.0/zypp/sat/detail/PoolImpl.cc 2018-10-01 14:31:07.000000000 +0200
+++ new/libzypp-17.10.1/zypp/sat/detail/PoolImpl.cc 2018-11-19 16:01:31.000000000 +0100
@@ -236,6 +236,7 @@
_serial.setDirty(); // pool content change
_availableLocalesPtr.reset(); // available locales may change
_multiversionListPtr.reset(); // re-evaluate ZConfig::multiversionSpec.
+ _needrebootSpec.setDirty(); // re-evaluate needrebootSpec
depSetDirty(); // invaldate dependency/namespace related indices
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.9.0/zypp/sat/detail/PoolImpl.h new/libzypp-17.10.1/zypp/sat/detail/PoolImpl.h
--- old/libzypp-17.9.0/zypp/sat/detail/PoolImpl.h 2018-10-12 12:44:03.000000000 +0200
+++ new/libzypp-17.10.1/zypp/sat/detail/PoolImpl.h 2018-11-19 16:01:31.000000000 +0100
@@ -26,6 +26,7 @@
#include "zypp/base/SerialNumber.h"
#include "zypp/base/SetTracker.h"
#include "zypp/sat/detail/PoolMember.h"
+#include "zypp/sat/SolvableSpec.h"
#include "zypp/sat/Queue.h"
#include "zypp/RepoInfo.h"
#include "zypp/Locale.h"
@@ -306,18 +307,21 @@
bool isOnSystemByAuto( IdString ident_r ) const
{ return _autoinstalled.contains( ident_r.id() ); }
+ //@}
- /** Get ident list of all solvables that trigger the "reboot needed" flag. */
- StringQueue rebootNeededIdents() const
- { return _rebootNeeded; }
-
- /** Set ident list of all solvables that trigger the "reboot needed" flag. */
- void setRebootNeededIdents( const StringQueue & rebootNeeded_r )
- { _rebootNeeded = rebootNeeded_r; }
-
- bool triggersRebootNeededHint( IdString ident_r ) const
- { return _rebootNeeded.contains( ident_r.id() ); }
+ public:
+ /** \name Solvables which should trigger the reboot-needed hint if installed/updated. */
+ //@{
+ /** Set new Solvable specs.*/
+ void setNeedrebootSpec( sat::SolvableSpec needrebootSpec_r )
+ {
+ _needrebootSpec = std::move(needrebootSpec_r);
+ _needrebootSpec.setDirty();
+ }
+ /** Whether \a solv_r matches the spec.*/
+ bool isNeedreboot( const Solvable & solv_r ) const
+ { return _needrebootSpec.contains( solv_r ); }
//@}
public:
@@ -349,8 +353,8 @@
/** */
sat::StringQueue _autoinstalled;
- /** database of all identifiers that will trigger the "reboot needed" flag */
- sat::StringQueue _rebootNeeded;
+ /** Solvables which should trigger the reboot-needed hint if installed/updated. */
+ sat::SolvableSpec _needrebootSpec;
/** filesystems mentioned in /etc/sysconfig/storage */
mutable scoped_ptr<std::set<std::string> > _requiredFilesystemsPtr;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.9.0/zypp/sat/detail/PoolMember.h new/libzypp-17.10.1/zypp/sat/detail/PoolMember.h
--- old/libzypp-17.9.0/zypp/sat/detail/PoolMember.h 2018-10-29 09:30:52.000000000 +0100
+++ new/libzypp-17.10.1/zypp/sat/detail/PoolMember.h 2018-11-16 11:36:48.000000000 +0100
@@ -12,8 +12,6 @@
#ifndef ZYPP_SAT_DETAIL_POOLMEMBER_H
#define ZYPP_SAT_DETAIL_POOLMEMBER_H
-#include <solv/solvversion.h>
-
#include "zypp/base/Hash.h"
#include "zypp/base/Iterator.h"
#include "zypp/base/String.h"
@@ -21,8 +19,7 @@
extern "C"
{
- // Those _Type names are exposed as sat::detail::CType below!
-#if ( LIBSOLV_VERSION >= 700 )
+ // Those s_Type names are exposed as sat::detail::CType below!
struct s_Dataiterator;
struct s_Datamatcher;
struct s_Map;
@@ -32,17 +29,6 @@
struct s_Solvable;
struct s_Solver;
struct s_Transaction;
-#else
- struct _Dataiterator;
- struct _Datamatcher;
- struct _Map;
- struct _Pool;
- struct _Queue;
- struct _Repo;
- struct _Solvable;
- struct _Solver;
- struct _Transaction;
-#endif
}
///////////////////////////////////////////////////////////////////
@@ -69,7 +55,6 @@
///////////////////////////////////////////////////////////////////
namespace detail
{
-#if ( LIBSOLV_VERSION >= 700 )
typedef ::s_Dataiterator CDataiterator; ///< Wrapped libsolv C data type exposed as backdoor
typedef ::s_Datamatcher CDatamatcher; ///< Wrapped libsolv C data type exposed as backdoor
typedef ::s_Map CMap; ///< Wrapped libsolv C data type exposed as backdoor
@@ -79,17 +64,6 @@
typedef ::s_Solvable CSolvable; ///< Wrapped libsolv C data type exposed as backdoor
typedef ::s_Solver CSolver; ///< Wrapped libsolv C data type exposed as backdoor
typedef ::s_Transaction CTransaction; ///< Wrapped libsolv C data type exposed as backdoor
-#else
- typedef ::_Dataiterator CDataiterator; ///< Wrapped libsolv C data type exposed as backdoor
- typedef ::_Datamatcher CDatamatcher; ///< Wrapped libsolv C data type exposed as backdoor
- typedef ::_Map CMap; ///< Wrapped libsolv C data type exposed as backdoor
- typedef ::_Pool CPool; ///< Wrapped libsolv C data type exposed as backdoor
- typedef ::_Queue CQueue; ///< Wrapped libsolv C data type exposed as backdoor
- typedef ::_Repo CRepo; ///< Wrapped libsolv C data type exposed as backdoor
- typedef ::_Solvable CSolvable; ///< Wrapped libsolv C data type exposed as backdoor
- typedef ::_Solver CSolver; ///< Wrapped libsolv C data type exposed as backdoor
- typedef ::_Transaction CTransaction; ///< Wrapped libsolv C data type exposed as backdoor
-#endif
} // namespace detail
///////////////////////////////////////////////////////////////////
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.9.0/zypp/target/TargetImpl.cc new/libzypp-17.10.1/zypp/target/TargetImpl.cc
--- old/libzypp-17.9.0/zypp/target/TargetImpl.cc 2018-11-14 11:56:53.000000000 +0100
+++ new/libzypp-17.10.1/zypp/target/TargetImpl.cc 2018-11-19 16:01:31.000000000 +0100
@@ -54,6 +54,7 @@
#include "zypp/sat/Pool.h"
#include "zypp/sat/detail/PoolImpl.h"
+#include "zypp/sat/SolvableSpec.h"
#include "zypp/sat/Transaction.h"
#include "zypp/PluginExecutor.h"
@@ -1074,53 +1075,34 @@
satpool.setAutoInstalled( q );
}
- //load the packages that will trigger the update flag being set
+ // Load the needreboot package specs
{
- sat::StringQueue q;
- filesystem::Pathname needRebootFile { Pathname::assertprefix( root(), ZConfig::instance().needrebootFile() ) };
- if ( filesystem::PathInfo ( needRebootFile ).isExist() ) {
- SolvIdentFile file ( needRebootFile );
- for ( const auto & idstr : file.data() ) {
- q.push( idstr.id() );
- }
-#if 1
-#warning Hotfix: temp workaround missing SolvableSpec Parser
- // Also consider excluding .rpmnew/.rpmsave/.rpmorig files in needreboot.d
- q.push( IdString("kernel-azure").id() );
- q.push( IdString("kernel-azure-base").id() );
- q.push( IdString("kernel-debug").id() );
- q.push( IdString("kernel-debug-base").id() );
- q.push( IdString("kernel-default").id() );
- q.push( IdString("kernel-default-base").id() );
- q.push( IdString("kernel-kvmsmall").id() );
- q.push( IdString("kernel-kvmsmall-base").id() );
- q.push( IdString("kernel-rt").id() );
- q.push( IdString("kernel-rt-base").id() );
- q.push( IdString("kernel-rt_debug").id() );
- q.push( IdString("kernel-rt_debug-base").id() );
- q.push( IdString("kernel-vanilla").id() );
- q.push( IdString("kernel-vanilla-base").id() );
-#endif
- }
-
- filesystem::Pathname needRebootDir { Pathname::assertprefix( root(), ZConfig::instance().needrebootPath() ) };
- if ( filesystem::PathInfo ( needRebootDir ).isExist() ) {
- filesystem::DirContent ls;
- filesystem::readdir( ls, needRebootDir, false );
+ sat::SolvableSpec needrebootSpec;
- for ( const filesystem::DirEntry &entry : ls ) {
+ Pathname needrebootFile { Pathname::assertprefix( root(), ZConfig::instance().needrebootFile() ) };
+ if ( PathInfo( needrebootFile ).isFile() )
+ needrebootSpec.parseFrom( needrebootFile );
- if ( entry.type != filesystem::FT_FILE )
- continue;
+ Pathname needrebootDir { Pathname::assertprefix( root(), ZConfig::instance().needrebootPath() ) };
+ if ( PathInfo( needrebootDir ).isDir() )
+ {
+ static const StrMatcher isRpmConfigBackup( "\\.rpm(new|save|orig)$", Match::REGEX );
- SolvIdentFile file ( needRebootDir / entry.name );
- for ( const auto & idstr : file.data() ) {
- q.push( idstr.id() );
- }
- }
- }
+ filesystem::dirForEach( needrebootDir, filesystem::matchNoDots(),
+ [&]( const Pathname & dir_r, const char *const str_r )->bool
+ {
+ if ( ! isRpmConfigBackup( str_r ) )
+ {
+ Pathname needrebootFile { needrebootDir / str_r };
+ if ( PathInfo( needrebootFile ).isFile() )
+ needrebootSpec.parseFrom( needrebootFile );
+ }
+ return true;
+ });
+ }
- satpool.setRebootNeededIdents( q );
+ INT << "Needreboot " << needrebootSpec << endl;
+ satpool.setNeedrebootSpec( std::move(needrebootSpec) );
}
if ( ZConfig::instance().apply_locks_file() )
@@ -1519,7 +1501,7 @@
}
else
{
- if ( citem.identTriggersRebootNeededHint() ) {
+ if ( citem.isNeedreboot() ) {
auto rebootNeededFile = root() / "/var/run/reboot-needed";
if ( filesystem::assert_file( rebootNeededFile ) == EEXIST)
filesystem::touch( rebootNeededFile );
1
0
Hello community,
here is the log from the commit of package man for openSUSE:Factory checked in at 2018-12-03 10:08:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/man (Old)
and /work/SRC/openSUSE:Factory/.man.new.19453 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "man"
Mon Dec 3 10:08:53 2018 rev:72 rq:652353 version:2.8.4
Changes:
--------
--- /work/SRC/openSUSE:Factory/man/man.changes 2018-04-22 14:31:40.130274984 +0200
+++ /work/SRC/openSUSE:Factory/.man.new.19453/man.changes 2018-12-03 10:08:56.199789484 +0100
@@ -1,0 +2,99 @@
+Mon Nov 26 11:37:32 UTC 2018 - Dr. Werner Fink <werner(a)suse.de>
+
+- Update to man-db 2.8.4
+ * Major changes since man-db 2.8.3:
+ + Rely on decompressors reading from their standard input rather
+ than redundantly passing them the input file on their command
+ line. This works better with downstream AppArmor confinement of
+ decompressors.
+ + Fix invalid syntax in tmpfiles.d/man-db.conf when configured with
+ --disable-cache-owner.
+ + Make seccomp sandbox allow sched_getaffinity, sometimes used by
+ xz.
+ + Check for mandb_nfmt and mandb_tfmt in the manual page hierarchy
+ as documented, not in the current directory. This was broken by
+ the working-directory-handling changes in 2.8.3. Note that this
+ change means that "man -l" will never use an external formatter
+ (which was never documented behaviour and was surely a bad idea).
+ + Make seccomp sandbox allow some shared memory operations across
+ the board rather than just when ESET File Security is in use; the
+ Astrill VPN seems to require something similar, and there are
+ doubtless other such preload hacks.
+ + Some versions of ESET File Security call msgget and msgsnd; if
+ this program is in use, then allow those.
+ * Major changes since man-db 2.8.2:
+ + Make seccomp sandbox allow madvise, since that's used by lbzip2.
+ + Make seccomp sandbox allow kill and tgkill outright, since groff
+ uses kill to pass on signals to its child processes.
+ + Make seccomp sandbox allow sibling architectures on
+ x86/x86_64/x32, since people sometimes mix and match architectures
+ there for performance reasons.
+ + Fix version check in locale macro loading to tolerate groff
+ release candidates.
+ + man now only changes working directory in child processes, so
+ never fails due to being unable to change back to its original
+ working directory.
+ + accessdb, apropos, and lexgrog no longer emit spurious gettext
+ headers in their --help output when localised.
+ * Major changes since man-db 2.8.1:
+ + Make seccomp sandbox allow kill and tgkill when the signal is
+ directed at the current process or one of its threads; this is
+ needed by xz.
+ + Make seccomp sandbox allow ioctl(fd, TIOCGWINSZ), since that's used
+ by musl.
+ + Work around the proprietary "ESET File Security" antivirus program in
+ seccomp sandbox: if this is in use then we need to allow some
+ socket-related system calls.
+ + Work around the "snoopy" execve() wrapper and logger in seccomp
+ sandbox: if this is in use then we need to allow some
+ socket-related system calls.
+ + Interpret EFAULT from seccomp_load as meaning that seccomp is
+ unavailable, since this can be returned by some versions of
+ qemu-user.
+ * Major changes since man-db 2.8.0:
+ + Fix seccomp sandbox build on Linux/POWER.
+ + Fix manconv execution under seccomp when man is installed setuid.
+ + Make seccomp sandbox allow mremap (used by iconv, for example).
+ + configure now has a --without-libseccomp option to disable the use
+ of seccomp even if the library is available.
+ * Major changes since man-db 2.7.6.1:
+ + Fix locale macro loading for Chinese to load the macro file
+ corresponding to just the language part of the user's locale.
+ + Honour --enable-cache-owner in generated systemd tmpfiles snippet
+ rather than hardcoding "man".
+ + If man adds prefixes to a page to handle such things as disabling
+ hyphenation, then take account of those when looking for a
+ preprocessor line at the start of the page.
+ + Fix a segfault in 'man -D --help'.
+ + Treat "\(en" as another synonym for "\-" in NAME sections.
+ + Confine most subprocesses that handle untrusted data using
+ seccomp. This mainly deals with subprocesses that perform
+ encoding conversions, (de)compressors, groff programs, and a few
+ other odds and ends. groff programs use a slightly more
+ permissive filter since they need to create temporary files, so
+ additional path-based confinement (e.g. using AppArmor) is still
+ useful.
+ If this goes wrong, then MAN_DISABLE_SECCOMP=1 can be set in the
+ environment to disable it, but please report any such problem as a
+ bug.
+ + man now falls back to cat if the compile-time default pager is not
+ executable.
+ * Major changes since man-db 2.7.6:
+ + Don't chmod CACHEDIR.TAG if it doesn't exist.
+ + Correct installation of Swedish manual pages.
+- Modify the patches
+ *man-db-2.6.3-listall.dif
+ * man-db-2.6.3-man0.dif
+ * man-db-2.6.3-section.dif
+ * man-db-2.7.1-firefox.dif
+ * man-db-2.7.1-security4.dif
+ * man-db-2.7.1-zio.dif
+- Rename patch man-db-2.7.6.dif which is now man-db-2.8.4.dif
+
+-------------------------------------------------------------------
+Fri Nov 9 13:37:43 UTC 2018 - Dr. Werner Fink <werner(a)suse.de>
+
+- Add systemd timer service and its timer unit to refresh man
+ data base daily without using cron (bsc#1115406)
+
+-------------------------------------------------------------------
Old:
----
man-db-2.7.6.dif
man-db-2.7.6.tar.xz
New:
----
man-db-2.8.4.dif
man-db-2.8.4.tar.xz
mandb.service
mandb.timer
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ man.spec ++++++
--- /var/tmp/diff_new_pack.KsfMM4/_old 2018-12-03 10:08:56.903788835 +0100
+++ /var/tmp/diff_new_pack.KsfMM4/_new 2018-12-03 10:08:56.903788835 +0100
@@ -32,22 +32,24 @@
BuildRequires: groff
BuildRequires: less
BuildRequires: libbz2-devel
-BuildRequires: libpipeline-devel
+BuildRequires: libpipeline-devel >= 1.5.0
BuildRequires: libzio-devel
BuildRequires: man-pages
BuildRequires: pkg-config
BuildRequires: po4a
BuildRequires: xz-devel
BuildRequires: zlib-devel
-Version: 2.7.6
+Version: 2.8.4
Release: 0
Summary: A Program for Displaying man Pages
-License: GPL-2.0+
+License: GPL-2.0-or-later
Group: System/Base
Url: https://savannah.nongnu.org/projects/man-db
PreReq: coreutils fillup
Provides: man_db
+%if 0%{suse_version} < 1500
Requires: cron
+%endif
Requires: glibc-locale
%if 0%{suse_version} > 1300
Recommends: groff-full
@@ -63,8 +65,10 @@
Source5: wrapper.c
Source6: man-rpmlintrc
Source7: man-db-create.service
-Patch0: man-db-2.7.6.dif
-Patch1: man-db-2.6.3-man0.dif
+Source8: mandb.timer
+Source9: mandb.service
+Source10: man-db-2.6.3-man0.dif
+Patch0: man-db-2.8.4.dif
Patch2: man-db-2.3.19deb4.0-groff.dif
Patch4: man-db-2.6.3-section.dif
Patch5: man-db-2.7.1-security4.dif
@@ -93,7 +97,7 @@
Colin Watson <cjwatson(a)debian.org>
%prep
-%setup -n man-db-%{version}
+%setup -q -n man-db-%{version}
%patch2 -p0 -b .groff
%patch4 -p0 -b .sect
%patch5 -p0 -b .secu4
@@ -143,8 +147,8 @@
LINGUAS="${LINGUAS:+$LINGUAS }$d"
done
export CFLAGS LDFLAGS LIBS LINGUAS
- aclocal -I ${PWD} -I ${PWD}/m4 -I ${PWD}/gnulib/m4
- autoconf -B ${PWD} -B ${PWD}/m4 -B ${PWD}/gnulib/m4
+ aclocal -I ${PWD} -I ${PWD}/m4 -I ${PWD}/gl/m4
+ autoconf -B ${PWD} -B ${PWD}/m4 -B ${PWD}/gl/m4
automake --add-missing
find -name 'Makefile.*' | xargs \
sed -ri -e '/^pkglibdir/{ s@^(pkglibdir[[:blank:]]+=[[:blank:]]+\$\(libdir\)).*@\1@p }'
@@ -181,9 +185,9 @@
" $man
esac
done
- patch -p0 < %{P:1}
- gcc $CFLAGS -I gnulib/lib/ -I include/ --include config.h --include configmake.h \
- -o wrapper %{S:5} -L gnulib/lib/.libs/ -lgnu
+ patch --backup --suffix=.s10 ${FUZZ+"--fuzz=$FUZZ"} -p0 < %{S:10}
+ gcc $CFLAGS -I gl/lib/ -I include/ --include config.h -D LOCALEDIR="\"%{_datarootdir}/locale\"" \
+ -o wrapper %{S:5} -L gl/lib/.libs/ -lgnu
%check
if ! make check; then
@@ -236,30 +240,53 @@
install -m 0644 groff/tmac.andb %{buildroot}%{_datadir}/groff/site-tmac/
install -m 0644 groff/tmac.andocdb %{buildroot}%{_datadir}/groff/site-tmac/
mkdir -p %{buildroot}%{_fillupdir}
+ mkdir -p %{buildroot}%{_unitdir}/
+%if 0%{suse_version} < 1500
mkdir -p %{buildroot}/etc/cron.daily
+%endif
install -m 0644 %{SOURCE1} %{buildroot}%{_fillupdir}
+%if 0%{suse_version} < 1500
install -m 0744 %{SOURCE2} %{buildroot}/etc/cron.daily/suse-do_mandb
- mkdir -p %{buildroot}%{_unitdir}/
+%else
+ install -m 0744 %{SOURCE2} %{buildroot}/%{_libexecdir}/man-db/do_mandb
+%endif
install -m 0644 %{SOURCE7} %{buildroot}%{_unitdir}/
+%if 0%{suse_version} >= 1500
+ install -m 0644 %{SOURCE8} %{buildroot}%{_unitdir}/
+ install -m 0644 %{SOURCE9} %{buildroot}%{_unitdir}/
+%endif
%find_lang man-db --all-name --with-man
%pre
test -d var/catman/ && rm -rf var/catman/ || true
+%if 0%{suse_version} >= 1500
+%service_add_pre man-db-create.service mandb.service mandb.timer
+%else
%service_add_pre man-db-create.service
+%endif
%post
%{?tmpfiles_create:%tmpfiles_create %{_libexecdir}/tmpfiles.d/man-db.conf}
%{fillup_only -an cron}
/sbin/ldconfig
%service_add_post man-db-create.service
+%if 0%{suse_version} >= 1500
+%service_add_post mandb.service mandb.timer
+%endif
%preun
%service_del_preun man-db-create.service
+%if 0%{suse_version} >= 1500
+%service_del_preun mandb.service mandb.timer
+%endif
%postun
/sbin/ldconfig
%service_del_postun man-db-create.service
+%if 0%{suse_version} >= 1500
+%service_del_postun mandb.service mandb.timer
+%endif
%posttrans
test -d /var/cache/man && mandb --quiet --create ||:
@@ -270,7 +297,9 @@
%doc ChangeLog
%doc %{_datadir}/doc/packages/man/man-db-manual.*
%config /etc/manpath.config
+%if 0%{suse_version} < 1500
%attr(0744,root,root) /etc/cron.daily/suse-do_mandb
+%endif
%{_bindir}/apropos
%{_bindir}/catman
%{_bindir}/lexgrog
@@ -285,6 +314,9 @@
%attr(0755,root,root) %{_libexecdir}/man-db/mandb
%attr(0755,man,man) %{_libexecdir}/man-db/manconv
%attr(0755,man,man) %{_libexecdir}/man-db/globbing
+%if 0%{suse_version} >= 1500
+%attr(0744,man,man) %{_libexecdir}/man-db/do_mandb
+%endif
%{_sbindir}/accessdb
%{_libdir}/libman*.so
%{_libexecdir}/man-db/zsoelim
@@ -293,6 +325,10 @@
%endif
%{_libexecdir}/tmpfiles.d/man-db.conf
%{_unitdir}/man-db-create.service
+%if 0%{suse_version} >= 1500
+%{_unitdir}/mandb.service
+%{_unitdir}/mandb.timer
+%endif
%dir %{_datadir}/groff/site-tmac
%{_datadir}/groff/site-tmac/tmac.andb
%{_datadir}/groff/site-tmac/tmac.andocdb
@@ -300,6 +336,8 @@
%doc %{_mandir}/man5/*.5.gz
%doc %{_mandir}/man8/*.8.gz
%dir %{_mandir}/id
+%dir %{_mandir}/sr
+%dir %{_mandir}/tr
%{_fillupdir}/sysconfig.cron-man
%defattr(-,man,man)
%ghost %{_localstatedir}/cache/man
++++++ man-db-2.6.3-listall.dif ++++++
--- /var/tmp/diff_new_pack.KsfMM4/_old 2018-12-03 10:08:56.947788795 +0100
+++ /var/tmp/diff_new_pack.KsfMM4/_new 2018-12-03 10:08:56.947788795 +0100
@@ -3,8 +3,8 @@
1 file changed, 178 insertions(+), 2 deletions(-)
--- src/man.c
-+++ src/man.c 2016-12-15 14:08:57.993676527 +0000
-@@ -3514,12 +3514,141 @@ static int locate_page (const char *manp
++++ src/man.c 2018-11-23 13:56:09.131098574 +0000
+@@ -3573,12 +3573,141 @@ static int locate_page (const char *manp
return found;
}
@@ -146,7 +146,7 @@
global_manpath = is_global_mandir (candp->path);
if (!global_manpath)
drop_effective_privs ();
-@@ -3541,9 +3670,56 @@ static int display_pages (struct candida
+@@ -3600,9 +3729,56 @@ static int display_pages (struct candida
regain_effective_privs ();
if (found && !findall)
++++++ man-db-2.6.3-man0.dif ++++++
--- /var/tmp/diff_new_pack.KsfMM4/_old 2018-12-03 10:08:56.955788787 +0100
+++ /var/tmp/diff_new_pack.KsfMM4/_new 2018-12-03 10:08:56.955788787 +0100
@@ -1,6 +1,14 @@
+---
+ man/de/man1/man.1 | 3 +++
+ man/es/man1/man.1 | 3 +++
+ man/it/man1/man.1 | 3 +++
+ man/ja/man1/man.1 | 3 +++
+ man/man1/man.1 | 3 +++
+ 5 files changed, 15 insertions(+)
+
--- man/de/man1/man.1
-+++ man/de/man1/man.1
-@@ -79,6 +79,9 @@ und den Typ der dort zu findenden Seiten
++++ man/de/man1/man.1 2018-11-23 14:23:22.531297359 +0000
+@@ -83,6 +83,9 @@ und den Typ der dort zu findenden Seiten
.TS
tab (@);
l lx.
@@ -11,8 +19,8 @@
Ausführbare Programme oder Shell\-Befehle
T}
--- man/es/man1/man.1
-+++ man/es/man1/man.1
-@@ -101,6 +101,9 @@ del manual y los tipos de páginas que c
++++ man/es/man1/man.1 2018-11-23 14:23:22.531297359 +0000
+@@ -80,6 +80,9 @@ seguidos por el tipo de página que cont
.TS
tab (@);
l lx.
@@ -20,10 +28,10 @@
+Ficheros (se encuentran generalmente en \fI/usr/include\fR)
+T}
1@T{
- Programas ejecutables y guiones del intérprete de órdenes
+ Programa ejecutable o mandatos del shell
T}
--- man/it/man1/man.1
-+++ man/it/man1/man.1
++++ man/it/man1/man.1 2018-11-23 14:23:22.531297359 +0000
@@ -124,6 +124,9 @@ del manuale seguiti dai tipi di pagine c
.TS
tab (@);
@@ -35,8 +43,8 @@
Programmi eseguibili e comandi della shell
T}
--- man/ja/man1/man.1
-+++ man/ja/man1/man.1
-@@ -73,6 +73,9 @@ man \- オンラインマニュアルの
++++ man/ja/man1/man.1 2018-11-23 14:23:22.531297359 +0000
+@@ -78,6 +78,9 @@ default, unless overridden by the \fBSEC
.TS
tab (@);
l lx.
@@ -47,8 +55,8 @@
実行プログラムまたはシェルコマンド
T}
--- man/man1/man.1
-+++ man/man1/man.1
-@@ -179,6 +179,9 @@ numbers of the manual followed by the ty
++++ man/man1/man.1 2018-11-23 14:23:22.531297359 +0000
+@@ -186,6 +186,9 @@ numbers of the manual followed by the ty
.TS
tab (@);
l lx.
++++++ man-db-2.6.3-section.dif ++++++
--- /var/tmp/diff_new_pack.KsfMM4/_old 2018-12-03 10:08:56.963788780 +0100
+++ /var/tmp/diff_new_pack.KsfMM4/_new 2018-12-03 10:08:56.963788780 +0100
@@ -3,8 +3,8 @@
1 file changed, 4 insertions(+), 4 deletions(-)
--- src/man.c
-+++ src/man.c 2016-12-15 13:49:52.184819971 +0000
-@@ -961,7 +961,7 @@ static const char *is_section (const cha
++++ src/man.c 2018-11-23 12:42:32.280720195 +0000
+@@ -978,7 +978,7 @@ static const char *is_section (const cha
{
const char **vs;
@@ -13,7 +13,7 @@
if (STREQ (*vs, name))
return name;
/* allow e.g. 3perl but disallow 8139too and libfoo */
-@@ -2714,7 +2714,7 @@ static int compare_candidates (const str
+@@ -2776,7 +2776,7 @@ static int compare_candidates (const str
/* Find out whether lsource->ext is ahead of rsource->ext in
* section_list.
*/
@@ -22,7 +22,7 @@
if (!*(*sp + 1)) {
/* No extension */
if (!sec_left && **sp == *(lsource->ext))
-@@ -3679,7 +3679,7 @@ static int do_global_apropos (const char
+@@ -3738,7 +3738,7 @@ static int do_global_apropos (const char
} else
my_section_list = section_list;
@@ -31,7 +31,7 @@
for (mp = manpathlist; *mp; mp++)
*found += do_global_apropos_section (*mp, *sp, name);
-@@ -3879,7 +3879,7 @@ static int man (const char *name, int *f
+@@ -3927,7 +3927,7 @@ static int man (const char *name, int *f
else {
const char **sp;
++++++ man-db-2.7.1-firefox.dif ++++++
--- /var/tmp/diff_new_pack.KsfMM4/_old 2018-12-03 10:08:56.971788773 +0100
+++ /var/tmp/diff_new_pack.KsfMM4/_new 2018-12-03 10:08:56.971788773 +0100
@@ -1,47 +1,17 @@
---
- src/man.c | 22 ++++++++++++----------
- 1 file changed, 12 insertions(+), 10 deletions(-)
+ src/man.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
--- src/man.c
-+++ src/man.c 2016-12-15 14:02:44.261219082 +0000
-@@ -1949,16 +1949,6 @@ static void format_display (pipeline *de
- if (!disp_status)
- break;
- }
-- if (!candidate) {
-- if (html_pager && *html_pager)
-- error (CHILD_FAIL, 0,
-- "couldn't execute any browser from %s",
-- html_pager);
-- else
-- error (CHILD_FAIL, 0,
-- "no browser configured, so cannot show "
-- "HTML output");
++++ src/man.c 2018-11-23 13:08:52.119497206 +0000
+@@ -2020,7 +2020,9 @@ static void format_display (pipeline *de
+ error (CHILD_FAIL, 0,
+ "no browser configured, so cannot show "
+ "HTML output");
- }
++ } else if (!disp_status)
++ sleep (5); /* firefox runs into background to fast */
++
free (browser_list);
- if (have_old_cwd && restore_cwd (&old_cwd) < 0) {
- error (0, errno,
-@@ -1967,11 +1957,23 @@ static void format_display (pipeline *de
- if (chdir ("/")) { /* ignore errors */ }
- }
- free_cwd (&old_cwd);
-+ if (!disp_status)
-+ sleep (5); /* firefox runs into background to fast */
if (remove_directory (htmldir, 0) == -1)
error (0, errno, _("can't remove directory %s"),
- htmldir);
- free (htmlfile);
- free (htmldir);
-+ if (!candidate) {
-+ if (html_pager && *html_pager)
-+ error (CHILD_FAIL, 0,
-+ "couldn't execute any browser from %s",
-+ html_pager);
-+ else
-+ error (CHILD_FAIL, 0,
-+ "no browser configured, so cannot show "
-+ "HTML output");
-+ }
- } else
- #endif /* TROFF_IS_GROFF */
- {
++++++ man-db-2.7.1-security4.dif ++++++
--- /var/tmp/diff_new_pack.KsfMM4/_old 2018-12-03 10:08:56.979788765 +0100
+++ /var/tmp/diff_new_pack.KsfMM4/_new 2018-12-03 10:08:56.979788765 +0100
@@ -3,8 +3,8 @@
1 file changed, 11 insertions(+), 1 deletion(-)
--- src/mandb.c
-+++ src/mandb.c 2016-12-16 07:14:50.995017235 +0000
-@@ -439,17 +439,26 @@ static int mandb (struct dbpaths *dbpath
++++ src/mandb.c 2018-11-23 12:50:40.139688661 +0000
+@@ -442,18 +442,27 @@ static int mandb (struct dbpaths *dbpath
int ret, amount;
char *dbname;
int should_create;
@@ -27,15 +27,16 @@
if (!STREQ (catpath, manpath)) {
char *cachedir_tag;
- int fd;
+ int cachedir_tag_exists = 0;
+ drop_effective_privs ();
cachedir_tag = xasprintf ("%s/CACHEDIR.TAG", catpath);
fd = open (cachedir_tag, O_RDONLY);
if (fd < 0) {
-@@ -467,6 +476,7 @@ static int mandb (struct dbpaths *dbpath
- if (global_manpath)
- chown_if_possible (cachedir_tag);
- check_chmod (cachedir_tag, DBMODE);
+@@ -476,6 +485,7 @@ static int mandb (struct dbpaths *dbpath
+ chown_if_possible (cachedir_tag);
+ check_chmod (cachedir_tag, DBMODE);
+ }
+ regain_effective_privs ();
free (cachedir_tag);
}
++++++ man-db-2.7.1-zio.dif ++++++
--- /var/tmp/diff_new_pack.KsfMM4/_old 2018-12-03 10:08:56.987788758 +0100
+++ /var/tmp/diff_new_pack.KsfMM4/_new 2018-12-03 10:08:56.987788758 +0100
@@ -5,20 +5,20 @@
3 files changed, 120 insertions(+)
--- config.h.in
-+++ config.h.in 2016-12-15 14:07:41.579217715 +0000
-@@ -740,6 +740,9 @@
++++ config.h.in 2018-11-23 13:11:12.684900437 +0000
+@@ -896,6 +896,9 @@
/* Define to 1 if you have the `z' library (-lz). */
#undef HAVE_LIBZ
+/* Define to 1 if you have libzio for opening compressed manuals */
+#undef HAVE_ZIO
+
- /* Define to 1 if you have the <linewrap.h> header file. */
- #undef HAVE_LINEWRAP_H
+ /* Define to 1 if you have the <limits.h> header file. */
+ #undef HAVE_LIMITS_H
--- configure.ac
-+++ configure.ac 2016-12-15 14:07:41.579217715 +0000
-@@ -32,6 +32,18 @@ MAN_ARG_DEVICE
++++ configure.ac 2018-11-23 13:09:58.982262008 +0000
+@@ -34,6 +34,18 @@ MAN_ARG_DEVICE
MAN_ARG_DB
MAN_ARG_CONFIG_FILE
MAN_ARG_SECTIONS
@@ -37,7 +37,7 @@
MAN_ARG_AUTOMATIC_CREATE
MAN_ARG_AUTOMATIC_UPDATE
MAN_ARG_CATS
-@@ -321,6 +333,46 @@ AC_SUBST([unlzma])
+@@ -325,6 +337,46 @@ AC_SUBST([unlzma])
AC_SUBST([unxz])
AC_SUBST([unlzip])
MAN_COMPRESS_LIB([z], [gzopen])
@@ -85,7 +85,7 @@
# Check for various header files and associated libraries.
--- lib/decompress.c
-+++ lib/decompress.c 2016-12-15 14:07:41.579217715 +0000
++++ lib/decompress.c 2018-11-23 13:12:59.714923151 +0000
@@ -38,6 +38,10 @@
#include "xvasprintf.h"
@@ -97,7 +97,7 @@
#include "manconfig.h"
#include "comp_src.h"
#include "pipeline.h"
-@@ -68,6 +72,32 @@ static void decompress_zlib (void *data
+@@ -69,6 +73,32 @@ static void decompress_zlib (void *data
#endif /* HAVE_LIBZ */
@@ -107,11 +107,11 @@
+{
+ const char *what = (const char*)data;
+ FILE *file;
-+
++
+ file = fdzopen(dup (fileno (stdin)), "r", what);
+ if (!file)
+ return;
-+
++
+ for (;;) {
+ char buffer[4096];
+ int r = fread(buffer, sizeof(char), sizeof(buffer), file);
@@ -120,17 +120,17 @@
+ if (fwrite (buffer, 1, (size_t) r, stdout) < (size_t) r)
+ break;
+ }
-+
-+ fclose(file);
++
++ fclose(file);
+ return;
+}
+
+#endif /* HAVE_ZIO */
+
+ extern man_sandbox *sandbox;
+
pipeline *decompress_open (const char *filename)
- {
- pipecmd *cmd;
-@@ -82,6 +112,37 @@ pipeline *decompress_open (const char *f
+@@ -85,6 +115,37 @@ pipeline *decompress_open (const char *f
if (stat (filename, &st) < 0 || S_ISDIR (st.st_mode))
return NULL;
@@ -168,7 +168,7 @@
#ifdef HAVE_LIBZ
filename_len = strlen (filename);
if (filename_len > 3 && STREQ (filename + filename_len - 3, ".gz")) {
-@@ -95,7 +156,11 @@ pipeline *decompress_open (const char *f
+@@ -96,7 +157,11 @@ pipeline *decompress_open (const char *f
}
#endif /* HAVE_LIBZ */
++++++ man-db-2.7.6.dif -> man-db-2.8.4.dif ++++++
++++ 836 lines (skipped)
++++ between /work/SRC/openSUSE:Factory/man/man-db-2.7.6.dif
++++ and /work/SRC/openSUSE:Factory/.man.new.19453/man-db-2.8.4.dif
++++++ man-db-2.7.6.tar.xz -> man-db-2.8.4.tar.xz ++++++
++++ 402288 lines of diff (skipped)
++++++ man-rpmlintrc ++++++
--- /var/tmp/diff_new_pack.KsfMM4/_old 2018-12-03 10:08:57.887787929 +0100
+++ /var/tmp/diff_new_pack.KsfMM4/_new 2018-12-03 10:08:57.887787929 +0100
@@ -1,2 +1,7 @@
addFilter(".*W:.*patch-not-applied.*Patch1:.*man-db-2.6.3-man0.dif.*")
addFilter(".*W:.*tmpfile-not-in-filelist.*/var/cache/man.*")
+addFilter(".*W:.*name-repeated-in-summary.*C.*man.*")
+addFilter(".*W:.*no-version-in-last-changelog.*")
+addFilter(".*W:.*permissions-incorrect-owner.*/var/cache/man/.*")
+addFilter(".*W:.*shared-lib-calls-exit.*/usr/lib.*/libman-2\.8\.4\.so.*")
+addFilter(".*W:.*suse-missing-rclink.*")
++++++ mandb.service ++++++
[Unit]
Description=Do daily mandb update
Documentation=man:mandb(8) man:catman(8)
ConditionACPower=true
[Service]
Type=oneshot
Nice=5
IOSchedulingClass=idle
ExecStart=/usr/lib/man-db/do_mandb
++++++ mandb.timer ++++++
[Unit]
Description=Do daily mandb update
Documentation=man:mandb(8) man:catman(8)
[Timer]
OnCalendar=daily
AccuracySec=12h
Persistent=true
[Install]
WantedBy=timers.target
++++++ sysconfig.cron-man ++++++
--- /var/tmp/diff_new_pack.KsfMM4/_old 2018-12-03 10:08:57.939787881 +0100
+++ /var/tmp/diff_new_pack.KsfMM4/_new 2018-12-03 10:08:57.939787881 +0100
@@ -6,18 +6,3 @@
# Should mandb and whatis be recreated by cron.daily ("yes" or "no")
#
REINIT_MANDB=yes
-
-## Type: yesno
-## Default: yes
-#
-# Should old preformatted man pages (in /var/cache/man) be deleted? (yes/no)
-#
-DELETE_OLD_CATMAN=yes
-
-## Type: integer
-## Default: 7
-#
-# How long should old preformatted man pages be kept before deletion? (days)
-#
-CATMAN_ATIME=7
-
1
0
Hello community,
here is the log from the commit of package freerdp for openSUSE:Factory checked in at 2018-12-03 10:08:38
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/freerdp (Old)
and /work/SRC/openSUSE:Factory/.freerdp.new.19453 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "freerdp"
Mon Dec 3 10:08:38 2018 rev:33 rq:652282 version:2.0.0~rc4
Changes:
--------
--- /work/SRC/openSUSE:Factory/freerdp/freerdp.changes 2018-11-22 13:23:31.878124657 +0100
+++ /work/SRC/openSUSE:Factory/.freerdp.new.19453/freerdp.changes 2018-12-03 10:08:44.111800619 +0100
@@ -4 +4 @@
-- upgrade to version 2.0.0-rc4
+- upgrade to version 2.0.0-rc4 (FATE#326739)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ freerdp.spec ++++++
--- /var/tmp/diff_new_pack.XK6beV/_old 2018-12-03 10:08:45.631799220 +0100
+++ /var/tmp/diff_new_pack.XK6beV/_new 2018-12-03 10:08:45.631799220 +0100
@@ -12,7 +12,7 @@
# 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/
#
1
0
Hello community,
here is the log from the commit of package grilo for openSUSE:Factory checked in at 2018-12-03 10:08:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/grilo (Old)
and /work/SRC/openSUSE:Factory/.grilo.new.19453 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "grilo"
Mon Dec 3 10:08:17 2018 rev:36 rq:652235 version:0.3.7
Changes:
--------
--- /work/SRC/openSUSE:Factory/grilo/grilo.changes 2018-10-17 08:14:46.323038483 +0200
+++ /work/SRC/openSUSE:Factory/.grilo.new.19453/grilo.changes 2018-12-03 10:08:25.391817855 +0100
@@ -1,0 +2,15 @@
+Wed Nov 21 11:22:56 UTC 2018 - bjorn.lie(a)gmail.com
+
+- Update to version 0.3.7:
+ + Fix crash in totem after emitting source-{add remove}.
+ + Add grl_related_keys_{get,set}_int64 functions.
+ + Support transform GValue on grl_data_*_for_id().
+ + Add per Source configs on keyfile.
+ + Pattern matching for GRL_PLUGIN_RANKS.
+ + Documentation improvements.
+ + Removed Autotools supported.
+ + Updated translations.
+- Add meson BuildRequires and macros, switch to meson buildsystem
+ following upstreams changes.
+
+-------------------------------------------------------------------
Old:
----
grilo-0.3.6.tar.xz
New:
----
grilo-0.3.7.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ grilo.spec ++++++
--- /var/tmp/diff_new_pack.aGFVQR/_old 2018-12-03 10:08:27.571815849 +0100
+++ /var/tmp/diff_new_pack.aGFVQR/_new 2018-12-03 10:08:27.571815849 +0100
@@ -12,22 +12,23 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: grilo
-Version: 0.3.6
+Version: 0.3.7
Release: 0
Summary: Framework for browsing and searching media content
License: LGPL-2.1-or-later
Group: Productivity/Multimedia/Other
URL: https://live.gnome.org/Grilo
-Source: http://download.gnome.org/sources/grilo/0.3/%{name}-%{version}.tar.xz
+Source0: https://download.gnome.org/sources/grilo/0.3/%{name}-%{version}.tar.xz
+
BuildRequires: fdupes
-# Required to build documentation
BuildRequires: gtk-doc
BuildRequires: intltool
+BuildRequires: meson
BuildRequires: pkgconfig
BuildRequires: vala
BuildRequires: pkgconfig(gio-2.0) >= 2.44
@@ -134,22 +135,17 @@
%lang_package
%prep
-%setup -q
+%autosetup
%build
-%configure \
- --disable-static \
- --disable-tests \
- --disable-debug \
- --enable-gtk-doc \
- --enable-vala \
- --enable-grl-net \
- --enable-grl-pls
-make %{?_smp_mflags}
+%meson \
+ -Denable-gtk-doc=true \
+ %{nil}
+%meson_build
%install
-%make_install
-find %{buildroot} -type f -name "*.la" -delete -print
+%meson_install
+
%find_lang %{name} %{?no_lang_C}
# Create directories needed for plugins
install -d %{buildroot}%{_libdir}/grilo-0.3
@@ -169,7 +165,7 @@
%files -n libgrilo-0_3-0
%license COPYING
-%doc AUTHORS ChangeLog NEWS README
+%doc AUTHORS NEWS README.md
%{_libdir}/libgrilo-0.3.so.*
# Directories needed for plugins
%dir %{_libdir}/grilo-0.3
@@ -195,7 +191,7 @@
%files tools
%license COPYING
-%doc AUTHORS ChangeLog NEWS README
+%doc AUTHORS NEWS README.md
%{_bindir}/grl-inspect-0.3
%{_bindir}/grl-launch-0.3
%{_bindir}/grilo-test-ui-0.3
++++++ grilo-0.3.6.tar.xz -> grilo-0.3.7.tar.xz ++++++
++++ 115909 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package nautilus for openSUSE:Factory checked in at 2018-12-03 10:07:57
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/nautilus (Old)
and /work/SRC/openSUSE:Factory/.nautilus.new.19453 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "nautilus"
Mon Dec 3 10:07:57 2018 rev:169 rq:652234 version:3.30.4
Changes:
--------
--- /work/SRC/openSUSE:Factory/nautilus/nautilus.changes 2018-11-08 09:46:34.317235088 +0100
+++ /work/SRC/openSUSE:Factory/.nautilus.new.19453/nautilus.changes 2018-12-03 10:08:09.571832414 +0100
@@ -1,0 +2,9 @@
+Wed Nov 21 21:09:56 UTC 2018 - bjorn.lie(a)gmail.com
+
+- Update to version 3.30.4:
+ + Fix crash when opening windows quickly.
+ + Show trash action bar when trash status changes.
+ + Implement rename file support in dbus for integration with
+ desktop icons extension.
+
+-------------------------------------------------------------------
Old:
----
nautilus-3.30.3.tar.xz
New:
----
nautilus-3.30.4.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ nautilus.spec ++++++
--- /var/tmp/diff_new_pack.6YkJKS/_old 2018-12-03 10:08:12.015830165 +0100
+++ /var/tmp/diff_new_pack.6YkJKS/_new 2018-12-03 10:08:12.019830161 +0100
@@ -17,7 +17,7 @@
Name: nautilus
-Version: 3.30.3
+Version: 3.30.4
Release: 0
Summary: File Manager for the GNOME Desktop
License: GPL-3.0-or-later AND LGPL-2.1-or-later
++++++ nautilus-3.30.3.tar.xz -> nautilus-3.30.4.tar.xz ++++++
++++ 15638 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package gnome-boxes for openSUSE:Factory checked in at 2018-12-03 10:07:45
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gnome-boxes (Old)
and /work/SRC/openSUSE:Factory/.gnome-boxes.new.19453 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gnome-boxes"
Mon Dec 3 10:07:45 2018 rev:60 rq:652231 version:3.30.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/gnome-boxes/gnome-boxes.changes 2018-11-08 09:45:01.805343405 +0100
+++ /work/SRC/openSUSE:Factory/.gnome-boxes.new.19453/gnome-boxes.changes 2018-12-03 10:07:50.583849877 +0100
@@ -1,0 +2,8 @@
+Fri Nov 23 10:52:47 UTC 2018 - bjorn.lie(a)gmail.com
+
+- Update to version 3.30.3:
+ + Offer new OS releases to Download.
+ + Fixes authentication issues with RDP.
+ + Updated translations.
+
+-------------------------------------------------------------------
Old:
----
gnome-boxes-3.30.2.tar.xz
New:
----
gnome-boxes-3.30.3.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gnome-boxes.spec ++++++
--- /var/tmp/diff_new_pack.U8pTY8/_old 2018-12-03 10:07:51.743848810 +0100
+++ /var/tmp/diff_new_pack.U8pTY8/_new 2018-12-03 10:07:51.743848810 +0100
@@ -22,7 +22,7 @@
%define govf_sover 0.1
%define gfrdp_sover 0.1
Name: gnome-boxes
-Version: 3.30.2
+Version: 3.30.3
Release: 0
Summary: A GNOME 3 application to access remote or virtual systems
License: LGPL-2.0-or-later
++++++ gnome-boxes-3.30.2.tar.xz -> gnome-boxes-3.30.3.tar.xz ++++++
++++ 7143 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package pixman for openSUSE:Factory checked in at 2018-12-03 10:07:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/pixman (Old)
and /work/SRC/openSUSE:Factory/.pixman.new.19453 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "pixman"
Mon Dec 3 10:07:40 2018 rev:55 rq:652230 version:0.36.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/pixman/pixman.changes 2018-03-14 19:31:32.405179975 +0100
+++ /work/SRC/openSUSE:Factory/.pixman.new.19453/pixman.changes 2018-12-03 10:07:42.587857228 +0100
@@ -1,0 +2,26 @@
+Fri Nov 23 14:16:04 UTC 2018 - mvetter(a)suse.com
+
+- Update to version 0.36.0:
+ + Add tests for (a)rgb floating point formats
+ + Add support for argb/xrgb float formats, v5
+ + Fix stride calculation in stress-test
+ + Adjust for clang's removal of __builtin_shuffle
+ + Fix vector loads on ppc64le
+ + Promote unsigned short to unsigned int explicitly
+ + pixman-filter: Made Gaussian a bit wider
+ + pixman-filter: Nested polynomial for cubic
+ + pixman-filter: Fix several issues related to normalization
+ + pixman-filter: Speed up BOX/BOX filter
+ + pixman-filter: integral splitting is only needed for triangle
+ filterdd
+ + pixman-filter: Correct Simpsons integration
+ + pixman-filter: reduce amount of malloc/free/memcpy to generate
+ filter
+ + pixman-image: Added enable-gnuplot config to view filters in
+ gnuplot
+ + pixman-fast-path.c: Pick NEAREST affine fast paths before
+ BILINEAR ones
+ + pixman-private: include <float.h> only in C code
+- Remove pixman-private-correct-include.patch: upstreamed
+
+-------------------------------------------------------------------
Old:
----
pixman-0.34.0.tar.gz
pixman-private-correct-include.patch
New:
----
pixman-0.36.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ pixman.spec ++++++
--- /var/tmp/diff_new_pack.7qZBI0/_old 2018-12-03 10:07:43.003856846 +0100
+++ /var/tmp/diff_new_pack.7qZBI0/_new 2018-12-03 10:07:43.007856843 +0100
@@ -17,7 +17,7 @@
Name: pixman
-Version: 0.34.0
+Version: 0.36.0
Release: 0
Summary: Pixel manipulation library
License: MIT
@@ -25,8 +25,6 @@
Url: http://xorg.freedesktop.org/
Source: http://cairographics.org/releases/%{name}-%{version}.tar.gz
Source99: baselibs.conf
-# PATCH-FIX-UPSTREAM pixman-private-correct-include.patch zaitor(a)opensuse.org -- pixman-private: include <float.h> only in C code
-Patch0: pixman-private-correct-include.patch
BuildRequires: pkgconfig
%description
@@ -49,7 +47,6 @@
%prep
%setup -q
-%patch0 -p1
%build
#autoreconf -fi
++++++ pixman-0.34.0.tar.gz -> pixman-0.36.0.tar.gz ++++++
++++ 7437 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package s390-tools for openSUSE:Factory checked in at 2018-12-03 10:07:03
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/s390-tools (Old)
and /work/SRC/openSUSE:Factory/.s390-tools.new.19453 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "s390-tools"
Mon Dec 3 10:07:03 2018 rev:22 rq:653162 version:2.1.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/s390-tools/s390-tools.changes 2018-11-18 23:22:43.346169888 +0100
+++ /work/SRC/openSUSE:Factory/.s390-tools.new.19453/s390-tools.changes 2018-12-03 10:07:20.555877473 +0100
@@ -1,0 +2,11 @@
+Thu Nov 29 00:03:01 UTC 2018 - mpost(a)suse.com
+
+- Added the following patches for Fate#326862 (bsc#1113328)
+ zcrypt DD: introduce APQN tags to support deterministic driver binding
+ * s390-tools-sles15sp1-01-chzcrypt-Corrections-at-the-chzcrypt-man-page.patch
+ * s390-tools-sles15sp1-02-lszcrypt-support-for-alternate-zcrypt-device-drivers.patch
+- Added the following patches for Fate#326804 (bsc#1113330)
+ Extended access controls for AP queue
+ * s390-tools-sles15sp1-01-zcryptctl-new-tool-zcryptctl-for-multiple-zcrypt-node.patch
+
+-------------------------------------------------------------------
@@ -7,0 +19 @@
+ PCI error reporting tool (zpcictl)
@@ -18,0 +31 @@
+ Protected key dm-crypt key management tool (crypto)
@@ -29,0 +43 @@
+ dm-crypt with protected keys - change master key tool
@@ -39,0 +54 @@
+ Add support for new crypto hardware
@@ -42,0 +58 @@
+ CPUMF Counters for z14
@@ -50,0 +67 @@
+ Collect NVMe-related debug data
New:
----
s390-tools-sles15sp1-01-chzcrypt-Corrections-at-the-chzcrypt-man-page.patch
s390-tools-sles15sp1-01-zcryptctl-new-tool-zcryptctl-for-multiple-zcrypt-node.patch
s390-tools-sles15sp1-02-lszcrypt-support-for-alternate-zcrypt-device-drivers.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ s390-tools.spec ++++++
--- /var/tmp/diff_new_pack.UmYfCx/_old 2018-12-03 10:07:25.295873119 +0100
+++ /var/tmp/diff_new_pack.UmYfCx/_new 2018-12-03 10:07:25.299873115 +0100
@@ -12,7 +12,7 @@
# 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/
#
@@ -24,7 +24,7 @@
Name: s390-tools
Version: 2.1.0
Release: 0
-Url: https://github.com/ibm-s390-tools/s390-tools
+URL: https://github.com/ibm-s390-tools/s390-tools
Summary: S/390 tools like zipl and dasdfmt
License: MIT
Group: System/Kernel
@@ -153,45 +153,48 @@
Patch42: s390-tools-sles15-7-lstape-fix-SCSI-output-description-in-man-page.patch
Patch43: s390-tools-sles15-8-lstape-fix-SCSI-HBA-CCW-device-bus-ID-e.g.-for-virti.patch
Patch44: s390-tools-sles15-zdev-fix-qeth-BridgePort-and-VNICC-conflict-checking.patch
-Patch45: s390-tools-sles15sp1-01-util_path-add-function-to-check-if-a-path-exists.patch
-Patch46: s390-tools-sles15sp1-02-util_path-Add-description-for-util_path_exists.patch
-Patch47: s390-tools-sles15sp1-03-util_path-Make-true-false-handling-consistent-with-o.patch
-Patch48: s390-tools-sles15sp1-04-zpcictl-Introduce-new-tool-zpcictl.patch
-Patch49: s390-tools-sles15sp1-05-zpcictl-include-sys-sysmacros.h-to-avoid-minor-major.patch
-Patch50: s390-tools-sles15sp1-06-zpcictl-Rephrase-man-page-entries-and-tool-output.patch
-Patch51: s390-tools-sles15sp1-07-zpcictl-Use-fopen-instead-of-open-for-writes.patch
-Patch52: s390-tools-sles15sp1-08-zpcictl-Read-device-link-to-obtain-device-address.patch
-Patch53: s390-tools-sles15sp1-09-zpcictl-Make-device-node-for-NVMe-optional.patch
-Patch54: s390-tools-sles15sp1-10-zpcictl-Change-wording-of-man-page-and-help-output.patch
-Patch55: s390-tools-sles15sp1-0001-zkey-Add-properties-file-handling-routines.patch
-Patch56: s390-tools-sles15sp1-0002-zkey-Add-build-dependency-to-OpenSSL-libcrypto.patch
-Patch57: s390-tools-sles15sp1-0003-zkey-Add-helper-functions-for-comma-separated-string.patch
-Patch58: s390-tools-sles15sp1-0004-zkey-Externalize-secure-key-back-end-functions.patch
-Patch59: s390-tools-sles15sp1-0005-zkey-Add-keystore-implementation.patch
-Patch60: s390-tools-sles15sp1-0006-zkey-Add-keystore-related-commands.patch
-Patch61: s390-tools-sles15sp1-0007-zkey-Create-key-repository-and-group-during-make-ins.patch
-Patch62: s390-tools-sles15sp1-0008-zkey-Man-page-updates.patch
-Patch63: s390-tools-sles15sp1-0009-zkey-let-packaging-create-the-zkeyadm-group-and-perm.patch
-Patch64: s390-tools-sles15sp1-0010-zkey-Update-README-to-add-info-about-packaging-requi.patch
-Patch65: s390-tools-sles15sp1-0011-zkey-Typo-in-message.patch
-Patch66: s390-tools-sles15sp1-0012-zkey-Fix-memory-leak.patch
-Patch67: s390-tools-sles15sp1-0013-zkey-Fix-APQN-validation-routine.patch
-Patch68: s390-tools-sles15sp1-0014-zkey-Fix-generate-and-import-leaving-key-in-an-incon.patch
-Patch69: s390-tools-sles15sp1-0015-zkey-Add-zkey-cryptsetup-tool.patch
-Patch70: s390-tools-sles15sp1-0016-zkey-Add-man-page-for-zkey-cryptsetup.patch
-Patch71: s390-tools-sles15sp1-0017-zkey-Add-build-dependency-for-libcryptsetup-and-json.patch
-Patch72: s390-tools-sles15sp1-0018-zkey-Add-key-verification-pattern-property.patch
-Patch73: s390-tools-sles15sp1-0019-zkey-Add-volume-type-property-to-support-LUKS2-volum.patch
-Patch74: s390-tools-sles15sp1-01-lszcrypt-CEX6S-exploitation.patch
-Patch75: s390-tools-sles15sp1-02-lszcrypt-fix-date-and-wrong-indentation.patch
-Patch76: s390-tools-sles15sp1-01-cpumf-Add-extended-counter-defintion-files-for-IBM-z.patch
-Patch77: s390-tools-sles15sp1-02-cpumf-z14-split-counter-sets-according-to-CFVN-CSVN-.patch
-Patch78: s390-tools-sles15sp1-03-cpumf-cpumf_helper-read-split-counter-sets-part-2-2.patch
-Patch79: s390-tools-sles15sp1-04-cpumf-correct-z14-counter-number.patch
-Patch80: s390-tools-sles15sp1-05-cpumf-add-missing-Description-tag-for-z13-z14-ctr-12.patch
-Patch81: s390-tools-sles15sp1-06-cpumf-correct-counter-name-for-z13-and-z14.patch
-Patch82: s390-tools-sles15sp1-07-cpumf-Add-IBM-z14-ZR1-to-the-CPU-Measurement-Facilit.patch
-Patch83: s390-tools-sles15sp1-dbginfo-gather-nvme-related-data.patch
+Patch45: s390-tools-sles15sp1-0001-zkey-Add-properties-file-handling-routines.patch
+Patch46: s390-tools-sles15sp1-0002-zkey-Add-build-dependency-to-OpenSSL-libcrypto.patch
+Patch47: s390-tools-sles15sp1-0003-zkey-Add-helper-functions-for-comma-separated-string.patch
+Patch48: s390-tools-sles15sp1-0004-zkey-Externalize-secure-key-back-end-functions.patch
+Patch49: s390-tools-sles15sp1-0005-zkey-Add-keystore-implementation.patch
+Patch50: s390-tools-sles15sp1-0006-zkey-Add-keystore-related-commands.patch
+Patch51: s390-tools-sles15sp1-0007-zkey-Create-key-repository-and-group-during-make-ins.patch
+Patch52: s390-tools-sles15sp1-0008-zkey-Man-page-updates.patch
+Patch53: s390-tools-sles15sp1-0009-zkey-let-packaging-create-the-zkeyadm-group-and-perm.patch
+Patch54: s390-tools-sles15sp1-0010-zkey-Update-README-to-add-info-about-packaging-requi.patch
+Patch55: s390-tools-sles15sp1-0011-zkey-Typo-in-message.patch
+Patch56: s390-tools-sles15sp1-0012-zkey-Fix-memory-leak.patch
+Patch57: s390-tools-sles15sp1-0013-zkey-Fix-APQN-validation-routine.patch
+Patch58: s390-tools-sles15sp1-0014-zkey-Fix-generate-and-import-leaving-key-in-an-incon.patch
+Patch59: s390-tools-sles15sp1-0015-zkey-Add-zkey-cryptsetup-tool.patch
+Patch60: s390-tools-sles15sp1-0016-zkey-Add-man-page-for-zkey-cryptsetup.patch
+Patch61: s390-tools-sles15sp1-0017-zkey-Add-build-dependency-for-libcryptsetup-and-json.patch
+Patch62: s390-tools-sles15sp1-0018-zkey-Add-key-verification-pattern-property.patch
+Patch63: s390-tools-sles15sp1-0019-zkey-Add-volume-type-property-to-support-LUKS2-volum.patch
+Patch64: s390-tools-sles15sp1-01-lszcrypt-CEX6S-exploitation.patch
+Patch65: s390-tools-sles15sp1-02-lszcrypt-fix-date-and-wrong-indentation.patch
+Patch66: s390-tools-sles15sp1-01-chzcrypt-Corrections-at-the-chzcrypt-man-page.patch
+Patch67: s390-tools-sles15sp1-02-lszcrypt-support-for-alternate-zcrypt-device-drivers.patch
+Patch68: s390-tools-sles15sp1-01-zcryptctl-new-tool-zcryptctl-for-multiple-zcrypt-node.patch
+Patch69: s390-tools-sles15sp1-01-cpumf-Add-extended-counter-defintion-files-for-IBM-z.patch
+Patch70: s390-tools-sles15sp1-02-cpumf-z14-split-counter-sets-according-to-CFVN-CSVN-.patch
+Patch71: s390-tools-sles15sp1-03-cpumf-cpumf_helper-read-split-counter-sets-part-2-2.patch
+Patch72: s390-tools-sles15sp1-04-cpumf-correct-z14-counter-number.patch
+Patch73: s390-tools-sles15sp1-05-cpumf-add-missing-Description-tag-for-z13-z14-ctr-12.patch
+Patch74: s390-tools-sles15sp1-06-cpumf-correct-counter-name-for-z13-and-z14.patch
+Patch75: s390-tools-sles15sp1-07-cpumf-Add-IBM-z14-ZR1-to-the-CPU-Measurement-Facilit.patch
+Patch76: s390-tools-sles15sp1-01-util_path-add-function-to-check-if-a-path-exists.patch
+Patch77: s390-tools-sles15sp1-02-util_path-Add-description-for-util_path_exists.patch
+Patch78: s390-tools-sles15sp1-03-util_path-Make-true-false-handling-consistent-with-o.patch
+Patch79: s390-tools-sles15sp1-04-zpcictl-Introduce-new-tool-zpcictl.patch
+Patch80: s390-tools-sles15sp1-05-zpcictl-include-sys-sysmacros.h-to-avoid-minor-major.patch
+Patch81: s390-tools-sles15sp1-06-zpcictl-Rephrase-man-page-entries-and-tool-output.patch
+Patch82: s390-tools-sles15sp1-07-zpcictl-Use-fopen-instead-of-open-for-writes.patch
+Patch83: s390-tools-sles15sp1-08-zpcictl-Read-device-link-to-obtain-device-address.patch
+Patch84: s390-tools-sles15sp1-09-zpcictl-Make-device-node-for-NVMe-optional.patch
+Patch85: s390-tools-sles15sp1-10-zpcictl-Change-wording-of-man-page-and-help-output.patch
+Patch86: s390-tools-sles15sp1-dbginfo-gather-nvme-related-data.patch
Patch999: customize-zdev-root-update-script.patch
@@ -333,6 +336,9 @@
%patch81 -p1
%patch82 -p1
%patch83 -p1
+%patch84 -p1
+%patch85 -p1
+%patch86 -p1
%patch999 -p1
++++++ s390-tools-sles15sp1-01-chzcrypt-Corrections-at-the-chzcrypt-man-page.patch ++++++
Subject: zcrypt: Corrections at the chzcrypt man page.
From: Harald Freudenberger <freude(a)linux.ibm.com>
Summary: lszcrypt: support for alternate zcrypt device drivers
Description: With kernel 4.19 there comes an extension to the
existing AP bus which supports alternate zcrypt
drivers. For details about this see kernel patch
"s390/zcrypt: AP bus support for alternate
driver(s)". So now lszcrypt displays the driver name
in verbose mode. As some of the information
displayed by lszcrypt was based on sysfs attributes,
which are only available when the default zcrypt
driver is bound to the device, this also needed some
rework. If a sysfs attribute is not available
because of an alternate driver binding (or no
driver) a question mark is printed into the field.
Upstream-ID: 13648dd6f424bdbf855cd756e3039c8d4e9fd944
Problem-ID: SEC1806
Upstream-Description:
zcrypt: Corrections at the chzcrypt man page.
Fixed typo and added one sentence to explain more details
about online switching of queue devices.
Signed-off-by: Harald Freudenberger <freude(a)linux.vnet.ibm.com>
Signed-off-by: Jan Höppner <hoeppner(a)linux.ibm.com>
Signed-off-by: Harald Freudenberger <freude(a)linux.ibm.com>
---
zconf/zcrypt/chzcrypt.8 | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
--- a/zconf/zcrypt/chzcrypt.8
+++ b/zconf/zcrypt/chzcrypt.8
@@ -57,6 +57,7 @@ Set all available cryptographic device(s
.B <device id>
Specifies a cryptographic device which will be set either online or offline.
The device can either be a card device or a queue device.
+A queue device can only get switched online when the providing card is online.
Please note that the card device and queue device representation are both
in hexadecimal notation.
@@ -95,7 +96,7 @@ Print version information and exit.
.B chzcrypt -e 0 1 12
Will set the cryptographic card devices 0, 1 and 12 online.
.TP
-.B chzcrypt -e 01.0038
+.B chzcrypt -e 10.0038
Will set the cryptographic device '10.0038' respectively card id 16
(0x10) with domain 56 (0x38) online.
.TP
++++++ s390-tools-sles15sp1-01-zcryptctl-new-tool-zcryptctl-for-multiple-zcrypt-node.patch ++++++
++++ 1246 lines (skipped)
++++++ s390-tools-sles15sp1-02-lszcrypt-support-for-alternate-zcrypt-device-drivers.patch ++++++
Subject: lszcrypt: support for alternate zcrypt device drivers
From: Harald Freudenberger <freude(a)linux.ibm.com>
Summary: lszcrypt: support for alternate zcrypt device drivers
Description: With kernel 4.19 there comes an extension to the
existing AP bus which supports alternate zcrypt
drivers. For details about this see kernel patch
"s390/zcrypt: AP bus support for alternate
driver(s)". So now lszcrypt displays the driver name
in verbose mode. As some of the information
displayed by lszcrypt was based on sysfs attributes,
which are only available when the default zcrypt
driver is bound to the device, this also needed some
rework. If a sysfs attribute is not available
because of an alternate driver binding (or no
driver) a question mark is printed into the field.
Upstream-ID: 0a0b4c382693cded5652404e8fa2c0e483aa33df
Problem-ID: SEC1806
Upstream-Description:
lszcrypt: support for alternate zcrypt device drivers
With kernel 4.19 there comes an extension to the existing
AP bus which supports alternate zcrypt drivers. For details
about this see kernel patch "s390/zcrypt: AP bus support for
alternate driver(s)". So now lszcrypt displays the driver
name in verbose mode. As some of the information displayed
by lszcrypt was based on sysfs attributes, which are only
available when the default zcrypt driver is bound to the
device, this also needed some rework. If a sysfs attribute
is not available because of an alternate driver binding
(or no driver) a question mark is printed into the field.
Together with this a slight rework of the displayed information
has been done. The two columns for pending requests and pending
replies has been merged to one pending column and the column
sizes have been adjusted.
Signed-off-by: Harald Freudenberger <freude(a)linux.ibm.com>
Signed-off-by: Jan Höppner <hoeppner(a)linux.ibm.com>
Signed-off-by: Harald Freudenberger <freude(a)linux.ibm.com>
---
zconf/zcrypt/lszcrypt.8 | 4 -
zconf/zcrypt/lszcrypt.c | 163 ++++++++++++++++++++++++++++++++----------------
2 files changed, 112 insertions(+), 55 deletions(-)
--- a/zconf/zcrypt/lszcrypt.8
+++ b/zconf/zcrypt/lszcrypt.8
@@ -54,8 +54,8 @@ status.
.B -V, --verbose
The verbose level for cryptographic device information.
With this verbose level additional information like hardware card type,
-hardware queue depth, pending request queue count, outstanding
-request queue count, and installed function facilities are displayed.
+hardware queue depth, pending requests count, installed function
+facilities and driver binding is displayed.
.TP 8
.B <device-id>
Specifies a cryptographic device to display. A cryptographic device can be
--- a/zconf/zcrypt/lszcrypt.c
+++ b/zconf/zcrypt/lszcrypt.c
@@ -1,7 +1,7 @@
/**
* lszcrypt - Display zcrypt devices and configuration settings
*
- * Copyright IBM Corp. 2008, 2017
+ * Copyright IBM Corp. 2008, 2018
*
* s390-tools is free software; you can redistribute it and/or modify
* it under the terms of the MIT license. See LICENSE for details.
@@ -57,6 +57,25 @@ struct lszcrypt_l *lszcrypt_l = &l;
#define CLASS_STATELESS "restricted function set"
/*
+ * facility bits
+ */
+#define MAX_FAC_BITS 9
+static struct fac_bits_s {
+ int mask;
+ char c;
+} fac_bits[MAX_FAC_BITS] = {
+ { 0x80000000, 'S' },
+ { 0x40000000, 'M' },
+ { 0x20000000, 'C' },
+ { 0x10000000, 'D' },
+ { 0x08000000, 'A' },
+ { 0x04000000, 'X' },
+ { 0x02000000, 'N' },
+ { 0x00800000, 'F' },
+ { 0x00400000, 'R' },
+};
+
+/*
* Program configuration
*/
const struct util_prg prg = {
@@ -66,7 +85,7 @@ const struct util_prg prg = {
{
.owner = "IBM Corp.",
.pub_first = 2008,
- .pub_last = 2017,
+ .pub_last = 2018,
},
UTIL_PRG_COPYRIGHT_END
}
@@ -255,7 +274,8 @@ static void show_capability(const char *
/* Skip devices, which are not supported by zcrypt layer */
if (!util_path_is_readable("%s/type", dev) ||
!util_path_is_readable("%s/online", dev)) {
- printf("Detailed capability information for %s (hardware type %ld) is not available.\n", card, hwtype);
+ printf("Detailed capability information for %s (hardware type %ld) is not available.\n",
+ card, hwtype);
return;
}
cbuf[0] = '\0';
@@ -299,11 +319,13 @@ static void show_capability(const char *
} else if (func_val & MASK_EP11) {
printf("%s", CAP_EP11);
} else {
- printf("Detailed capability information for %s (hardware type %ld) is not available.", card, hwtype);
+ printf("Detailed capability information for %s (hardware type %ld) is not available.",
+ card, hwtype);
}
break;
default:
- printf("Detailed capability information for %s (hardware type %ld) is not available.", card, hwtype);
+ printf("Detailed capability information for %s (hardware type %ld) is not available.",
+ card, hwtype);
break;
}
printf("\n");
@@ -315,17 +337,22 @@ static void show_capability(const char *
static void read_subdev_rec_default(struct util_rec *rec, const char *grp_dev,
const char *sub_dev)
{
- unsigned long facility;
char buf[256];
+ unsigned long facility;
- util_file_read_line(buf, sizeof(buf), "%s/type", grp_dev);
- util_rec_set(rec, "type", buf);
+ if (util_file_read_line(buf, sizeof(buf), "%s/type", grp_dev))
+ util_rec_set(rec, "type", "-");
+ else
+ util_rec_set(rec, "type", buf);
- util_file_read_line(buf, sizeof(buf), "%s/%s/online", grp_dev, sub_dev);
- if (strcmp(buf, "0") == 0)
- util_rec_set(rec, "online", "offline");
+ if (util_file_read_line(buf, sizeof(buf), "%s/%s/online",
+ grp_dev, sub_dev))
+ util_rec_set(rec, "online", "-");
else
- util_rec_set(rec, "online", "online");
+ if (strcmp(buf, "0") == 0)
+ util_rec_set(rec, "online", "offline");
+ else
+ util_rec_set(rec, "online", "online");
util_file_read_ul(&facility, 16, "%s/ap_functions", grp_dev);
if (facility & MASK_COPRO)
@@ -339,7 +366,7 @@ static void read_subdev_rec_default(stru
util_file_read_line(buf, sizeof(buf), "%s/%s/request_count",
grp_dev, sub_dev);
- util_rec_set(rec, "request_count", buf);
+ util_rec_set(rec, "requests", buf);
}
/*
@@ -348,20 +375,19 @@ static void read_subdev_rec_default(stru
static void read_subdev_rec_verbose(struct util_rec *rec, const char *grp_dev,
const char *sub_dev)
{
+ int i;
unsigned long facility;
- char buf[256];
- long depth;
+ char buf[256], afile[PATH_MAX];
+ long depth, pending1, pending2;
if (l.verbose == 0)
return;
- util_file_read_line(buf, sizeof(buf), "%s/%s/pendingq_count",
- grp_dev, sub_dev);
- util_rec_set(rec, "pendingq_count", buf);
-
- util_file_read_line(buf, sizeof(buf), "%s/%s/requestq_count",
- grp_dev, sub_dev);
- util_rec_set(rec, "requestq_count", buf);
+ util_file_read_l(&pending1, 10, "%s/%s/pendingq_count",
+ grp_dev, sub_dev);
+ util_file_read_l(&pending2, 10, "%s/%s/requestq_count",
+ grp_dev, sub_dev);
+ util_rec_set(rec, "pending", "%ld", pending1 + pending2);
util_file_read_line(buf, sizeof(buf), "%s/hwtype", grp_dev);
util_rec_set(rec, "hwtype", buf);
@@ -370,7 +396,18 @@ static void read_subdev_rec_verbose(stru
util_rec_set(rec, "depth", "%02d", depth + 1);
util_file_read_ul(&facility, 16, "%s/ap_functions", grp_dev);
- util_rec_set(rec, "facility", "0x%08x", facility);
+ for (i = 0; i < MAX_FAC_BITS; i++)
+ buf[i] = facility & fac_bits[i].mask ? fac_bits[i].c : '-';
+ buf[i] = '\0';
+ util_rec_set(rec, "facility", buf);
+
+ snprintf(afile, sizeof(afile), "%s/%s/driver", grp_dev, sub_dev);
+ afile[sizeof(afile) - 1] = '\0';
+ memset(buf, 0, sizeof(buf));
+ if (readlink(afile, buf, sizeof(buf)) > 0)
+ util_rec_set(rec, "driver", strrchr(buf, '/') + 1);
+ else
+ util_rec_set(rec, "driver", "-no-driver-");
}
/*
@@ -382,9 +419,13 @@ static void show_subdevice(struct util_r
if (!util_path_is_dir("%s/%s", grp_dev, sub_dev))
errx(EXIT_FAILURE, "Error - cryptographic device %s/%s does not exist.", grp_dev, sub_dev);
- /* Skip devices, which are not supported by zcrypt layer */
- if (!util_path_is_readable("%s/type", grp_dev) ||
- !util_path_is_readable("%s/%s/online", grp_dev, sub_dev))
+ /*
+ * If not verbose mode, skip devices which are not supported
+ * by the zcrypt layer.
+ */
+ if (l.verbose == 0 &&
+ (!util_path_is_readable("%s/type", grp_dev) ||
+ !util_path_is_readable("%s/%s/online", grp_dev, sub_dev)))
return;
util_rec_set(rec, "card", sub_dev);
@@ -414,11 +455,13 @@ static void show_subdevices(struct util_
*/
static void read_rec_default(struct util_rec *rec, const char *grp_dev)
{
- unsigned long facility;
char buf[256];
+ unsigned long facility;
- util_file_read_line(buf, sizeof(buf), "%s/type", grp_dev);
- util_rec_set(rec, "type", buf);
+ if (util_file_read_line(buf, sizeof(buf), "%s/type", grp_dev))
+ util_rec_set(rec, "type", "-");
+ else
+ util_rec_set(rec, "type", buf);
util_file_read_ul(&facility, 16, "%s/ap_functions", grp_dev);
if (facility & MASK_COPRO)
@@ -430,14 +473,16 @@ static void read_rec_default(struct util
else
util_rec_set(rec, "mode", "Unknown");
- util_file_read_line(buf, sizeof(buf), "%s/online", grp_dev);
- if (strcmp(buf, "0") == 0)
- util_rec_set(rec, "online", "offline");
+ if (util_file_read_line(buf, sizeof(buf), "%s/online", grp_dev))
+ util_rec_set(rec, "online", "-");
else
- util_rec_set(rec, "online", "online");
+ if (strcmp(buf, "0") == 0)
+ util_rec_set(rec, "online", "offline");
+ else
+ util_rec_set(rec, "online", "online");
util_file_read_line(buf, sizeof(buf), "%s/request_count", grp_dev);
- util_rec_set(rec, "request_count", buf);
+ util_rec_set(rec, "requests", buf);
}
/*
@@ -445,18 +490,17 @@ static void read_rec_default(struct util
*/
static void read_rec_verbose(struct util_rec *rec, const char *grp_dev)
{
+ int i;
unsigned long facility;
- char buf[256];
- long depth;
+ char buf[256], afile[PATH_MAX];
+ long depth, pending1, pending2;
if (l.verbose == 0)
return;
- util_file_read_line(buf, sizeof(buf), "%s/pendingq_count", grp_dev);
- util_rec_set(rec, "pendingq_count", buf);
-
- util_file_read_line(buf, sizeof(buf), "%s/requestq_count", grp_dev);
- util_rec_set(rec, "requestq_count", buf);
+ util_file_read_l(&pending1, 10, "%s/pendingq_count", grp_dev);
+ util_file_read_l(&pending2, 10, "%s/requestq_count", grp_dev);
+ util_rec_set(rec, "pending", "%ld", pending1 + pending2);
util_file_read_line(buf, sizeof(buf), "%s/hwtype", grp_dev);
util_rec_set(rec, "hwtype", buf);
@@ -465,7 +509,18 @@ static void read_rec_verbose(struct util
util_rec_set(rec, "depth", "%02d", depth + 1);
util_file_read_ul(&facility, 16, "%s/ap_functions", grp_dev);
- util_rec_set(rec, "facility", "0x%08x", facility);
+ for (i = 0; i < MAX_FAC_BITS; i++)
+ buf[i] = facility & fac_bits[i].mask ? fac_bits[i].c : '-';
+ buf[i] = '\0';
+ util_rec_set(rec, "facility", buf);
+
+ snprintf(afile, sizeof(afile), "%s/driver", grp_dev);
+ afile[sizeof(afile) - 1] = '\0';
+ memset(buf, 0, sizeof(buf));
+ if (readlink(afile, buf, sizeof(buf)) > 0)
+ util_rec_set(rec, "driver", strrchr(buf, '/') + 1);
+ else
+ util_rec_set(rec, "driver", "-no-driver-");
}
/*
@@ -481,9 +536,14 @@ static void show_device(struct util_rec
grp_dev = util_path_sysfs("devices/ap/%s", device);
if (!util_path_is_dir(grp_dev))
errx(EXIT_FAILURE, "Error - cryptographic device %s does not exist.", device);
- /* Skip devices, which are not supported by zcrypt layer */
- if (!util_path_is_readable("%s/type", grp_dev) ||
- !util_path_is_readable("%s/online", grp_dev)) {
+
+ /*
+ * If not verbose mode, skip devices which are not supported
+ * by the zcrypt layer.
+ */
+ if (l.verbose == 0 &&
+ (!util_path_is_readable("%s/type", grp_dev) ||
+ !util_path_is_readable("%s/online", grp_dev))) {
goto out_free;
}
util_rec_set(rec, "card", card);
@@ -506,8 +566,7 @@ static void define_rec_default(struct ut
util_rec_def(rec, "type", UTIL_REC_ALIGN_LEFT, 5, "TYPE");
util_rec_def(rec, "mode", UTIL_REC_ALIGN_LEFT, 11, "MODE");
util_rec_def(rec, "online", UTIL_REC_ALIGN_LEFT, 7, "STATUS");
- util_rec_def(rec, "request_count", UTIL_REC_ALIGN_RIGHT, 11,
- "REQUEST_CNT");
+ util_rec_def(rec, "requests", UTIL_REC_ALIGN_RIGHT, 8, "REQUESTS");
}
/*
@@ -517,13 +576,11 @@ static void define_rec_verbose(struct ut
{
if (l.verbose == 0)
return;
- util_rec_def(rec, "pendingq_count", UTIL_REC_ALIGN_RIGHT, 12,
- "PENDINGQ_CNT");
- util_rec_def(rec, "requestq_count", UTIL_REC_ALIGN_RIGHT, 12,
- "REQUESTQ_CNT");
- util_rec_def(rec, "hwtype", UTIL_REC_ALIGN_RIGHT, 7, "HW_TYPE");
- util_rec_def(rec, "depth", UTIL_REC_ALIGN_RIGHT, 7, "Q_DEPTH");
+ util_rec_def(rec, "pending", UTIL_REC_ALIGN_RIGHT, 8, "PENDING");
+ util_rec_def(rec, "hwtype", UTIL_REC_ALIGN_RIGHT, 6, "HWTYPE");
+ util_rec_def(rec, "depth", UTIL_REC_ALIGN_RIGHT, 6, "QDEPTH");
util_rec_def(rec, "facility", UTIL_REC_ALIGN_LEFT, 10, "FUNCTIONS");
+ util_rec_def(rec, "driver", UTIL_REC_ALIGN_LEFT, 11, "DRIVER");
}
/*
1
0
Hello community,
here is the log from the commit of package linuxrc for openSUSE:Factory checked in at 2018-12-03 10:05:59
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/linuxrc (Old)
and /work/SRC/openSUSE:Factory/.linuxrc.new.19453 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "linuxrc"
Mon Dec 3 10:05:59 2018 rev:265 rq:652465 version:6.0.5
Changes:
--------
--- /work/SRC/openSUSE:Factory/linuxrc/linuxrc.changes 2018-11-14 14:29:54.455528761 +0100
+++ /work/SRC/openSUSE:Factory/.linuxrc.new.19453/linuxrc.changes 2018-12-03 10:06:14.571938020 +0100
@@ -1,0 +2,14 @@
+Wed Nov 28 15:45:17 UTC 2018 - shundhammer(a)suse.de
+
+- merge gh#openSUSE/linuxrc#183
+- Added parameter norepo (fate#325482)
+- 6.0.5
+
+--------------------------------------------------------------------
+Tue Nov 27 14:55:44 UTC 2018 - shundhammer(a)suse.de
+
+- merge gh#openSUSE/linuxrc#182
+- Added new BuildRequires to devel doc
+- 6.0.4
+
+--------------------------------------------------------------------
Old:
----
linuxrc-6.0.3.tar.xz
New:
----
linuxrc-6.0.5.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ linuxrc.spec ++++++
--- /var/tmp/diff_new_pack.FOzPMZ/_old 2018-12-03 10:06:18.195934698 +0100
+++ /var/tmp/diff_new_pack.FOzPMZ/_new 2018-12-03 10:06:18.195934698 +0100
@@ -17,7 +17,7 @@
Name: linuxrc
-Version: 6.0.3
+Version: 6.0.5
Release: 0
Summary: SUSE Installation Program
License: GPL-3.0+
++++++ linuxrc-6.0.3.tar.xz -> linuxrc-6.0.5.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/linuxrc-6.0.3/README.md new/linuxrc-6.0.5/README.md
--- old/linuxrc-6.0.3/README.md 2018-11-14 10:27:23.000000000 +0100
+++ new/linuxrc-6.0.5/README.md 2018-11-28 16:45:17.000000000 +0100
@@ -55,7 +55,7 @@
For example on openSUSE/SUSE distributions run:
```sh
-zypper install e2fsprogs-devel hwinfo-devel libblkid-devel libcurl-devel readline-devel
+zypper install e2fsprogs-devel hwinfo-devel libblkid-devel libcurl-devel readline-devel libmediacheck-devel
```
## Debugging
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/linuxrc-6.0.3/VERSION new/linuxrc-6.0.5/VERSION
--- old/linuxrc-6.0.3/VERSION 2018-11-14 10:27:23.000000000 +0100
+++ new/linuxrc-6.0.5/VERSION 2018-11-28 16:45:17.000000000 +0100
@@ -1 +1 @@
-6.0.3
+6.0.5
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/linuxrc-6.0.3/changelog new/linuxrc-6.0.5/changelog
--- old/linuxrc-6.0.3/changelog 2018-11-14 10:27:23.000000000 +0100
+++ new/linuxrc-6.0.5/changelog 2018-11-28 16:45:17.000000000 +0100
@@ -1,3 +1,11 @@
+2018-11-28: 6.0.5
+ - merge gh#openSUSE/linuxrc#183
+ - Added parameter norepo (fate#325482)
+
+2018-11-27: 6.0.4
+ - merge gh#openSUSE/linuxrc#182
+ - Added new BuildRequires to devel doc
+
2018-11-14: 6.0.3
- merge gh#openSUSE/linuxrc#181
- setctsid is dead, long live setsid (bsc#1109290)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/linuxrc-6.0.3/file.c new/linuxrc-6.0.5/file.c
--- old/linuxrc-6.0.3/file.c 2018-11-14 10:27:23.000000000 +0100
+++ new/linuxrc-6.0.5/file.c 2018-11-28 16:45:17.000000000 +0100
@@ -311,6 +311,7 @@
{ key_self_update, "SelfUpdate", kf_cfg + kf_cmd },
{ key_ibft_devices, "IBFTDevices", kf_cfg + kf_cmd },
{ key_linuxrc_core, "LinuxrcCore", kf_cfg + kf_cmd_early },
+ { key_norepo, "NoRepo", kf_cfg + kf_cmd },
};
static struct {
@@ -1766,6 +1767,10 @@
str_copy(&config.core, *f->value ? f->value : NULL);
break;
+ case key_norepo:
+ if(f->is.numeric) config.norepo = f->nvalue;
+ break;
+
default:
break;
}
@@ -1883,7 +1888,7 @@
file_write_num(f, key_sourcemounted, url->mount ? 1 : 0);
fprintf(f, "RepoURL: %s\n", url_print(url, 3));
- fprintf(f, "ZyppRepoURL: %s\n", url_print(url, 4));
+ if(!config.norepo) fprintf(f, "ZyppRepoURL: %s\n", url_print(url, 4));
if(!config.sslcerts) fprintf(f, "ssl_verify: no\n");
if(url->used.device && !url->is.network) fprintf(f, "Device: %s\n", short_dev(url->used.device));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/linuxrc-6.0.3/file.h new/linuxrc-6.0.5/file.h
--- old/linuxrc-6.0.3/file.h 2018-11-14 10:27:23.000000000 +0100
+++ new/linuxrc-6.0.5/file.h 2018-11-28 16:45:17.000000000 +0100
@@ -56,7 +56,7 @@
key_withipoib, key_upgrade, key_media_upgrade, key_ifcfg, key_defaultinstall,
key_nanny, key_vlanid,
key_sshkey, key_systemboot, key_sethostname, key_debugshell, key_self_update,
- key_ibft_devices, key_linuxrc_core
+ key_ibft_devices, key_linuxrc_core, key_norepo
} file_key_t;
typedef enum {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/linuxrc-6.0.3/global.h new/linuxrc-6.0.5/global.h
--- old/linuxrc-6.0.3/global.h 2018-11-14 10:27:23.000000000 +0100
+++ new/linuxrc-6.0.5/global.h 2018-11-28 16:45:17.000000000 +0100
@@ -446,6 +446,7 @@
unsigned systemboot:1; /**< boot installed system */
unsigned extend_running:1; /**< currently running an 'extend' job */
unsigned repomd:1; /**< install repo is repo-md */
+ unsigned norepo:1; /**< disable repo location check, expect YaST */
struct {
unsigned check:1; /**< check for braille displays and start brld if found */
char *dev; /**< braille device */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/linuxrc-6.0.3/url.c new/linuxrc-6.0.5/url.c
--- old/linuxrc-6.0.3/url.c 2018-11-14 10:27:23.000000000 +0100
+++ new/linuxrc-6.0.5/url.c 2018-11-28 16:45:17.000000000 +0100
@@ -374,7 +374,7 @@
if(url->scheme) {
s0 = s1;
-
+
if(s0[0] == '/' && s0[1] == '/') {
i = strcspn(s0 + 2, "/?");
if(i) {
@@ -466,7 +466,7 @@
*s1++ = 0;
url->path = strdup(s1);
}
- }
+ }
/* unescape strings */
{
@@ -1190,7 +1190,7 @@
* 2: ok, but continue search
*
* url->used.device must be set
- *
+ *
* return:
* 0: failed
* 1: ok
@@ -1276,7 +1276,7 @@
log_debug("[server = %s]\n", url->server ?: "");
err = url_mount_really(url, buf, url->tmp_mount);
-
+
if(err) {
log_info("nfs: %s: mount failed\n", url->used.device);
str_copy(&url->tmp_mount, NULL);
@@ -2000,7 +2000,7 @@
tc_dst = dst;
tc_flags = flags;
tc_label = label;
-
+
if(!dst || !url->scheme) return 1;
if(!(flags & URL_FLAG_NOUNLINK)) unlink(dst);
@@ -2139,7 +2139,7 @@
}
LXRC_WAIT
-
+
return found ? 0 : 1;
}
@@ -2192,24 +2192,28 @@
) {
if(config.zen) return 0;
- // no content file -> download repomd.xml
- int read_failed = url_read_file(
- url, NULL, "/repodata/repomd.xml", "/repomd.xml", NULL,
- URL_FLAG_NODIGEST + (config.secure ? URL_FLAG_CHECK_SIG : 0)
- );
+ config.repomd = 1;
- if(read_failed) return 0;
+ if(!config.norepo) {
+ // no content file -> download repomd.xml
+ int read_failed = url_read_file(
+ url, NULL, "/repodata/repomd.xml", "/repomd.xml", NULL,
+ URL_FLAG_NODIGEST + (config.secure ? URL_FLAG_CHECK_SIG : 0)
+ );
- config.repomd = 1;
+ if(read_failed) return 0;
- file_parse_repomd("/repomd.xml");
+ file_parse_repomd("/repomd.xml");
+ }
// download CHECKSUMS ...
- read_failed = url_read_file(
+ int read_failed = url_read_file(
url, NULL, "/CHECKSUMS", "/CHECKSUMS", NULL,
URL_FLAG_NODIGEST + (config.secure ? URL_FLAG_CHECK_SIG : 0)
);
+ if(read_failed && config.norepo) return 0;
+
// ... and parse it
if(!read_failed) file_parse_checksums("/CHECKSUMS");
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/linuxrc-6.0.3/util.c new/linuxrc-6.0.5/util.c
--- old/linuxrc-6.0.3/util.c 2018-11-14 10:27:23.000000000 +0100
+++ new/linuxrc-6.0.5/util.c 2018-11-28 16:45:17.000000000 +0100
@@ -1204,6 +1204,7 @@
add_flag(&sl0, buf, config.net.sethostname, "hostname");
add_flag(&sl0, buf, config.self_update, "self_update");
add_flag(&sl0, buf, config.repomd, "repomd");
+ add_flag(&sl0, buf, config.norepo, "norepo");
if(*buf) slist_append_str(&sl0, buf);
if(config.self_update_url) {
1
0
Hello community,
here is the log from the commit of package virtualbox for openSUSE:Factory checked in at 2018-12-03 10:05:26
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/virtualbox (Old)
and /work/SRC/openSUSE:Factory/.virtualbox.new.19453 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "virtualbox"
Mon Dec 3 10:05:26 2018 rev:170 rq:652201 version:5.2.22
Changes:
--------
--- /work/SRC/openSUSE:Factory/virtualbox/virtualbox.changes 2018-11-10 16:50:35.276401265 +0100
+++ /work/SRC/openSUSE:Factory/.virtualbox.new.19453/virtualbox.changes 2018-12-03 10:05:59.587951751 +0100
@@ -1,0 +2,30 @@
+Tue Nov 27 01:04:06 UTC 2018 - Larry Finger <Larry.Finger(a)gmail.com>
+
+- Fix the changes for kernel 4.20 API differences. The previous version compiled but had an error in logic.
+
+-------------------------------------------------------------------
+Fri Nov 9 19:30:20 UTC 2018 - Larry Finger <Larry.Finger(a)gmail.com>
+
+- Version bump to 5.2.22 (released November 09 2018 by Oracle)
+
+This is a maintenance release. The following items were fixed and/or added:
+
+Audio: fixed a regression in the Core Audio backend causing a hang when returning from host sleep when processing input buffers
+Audio: fixed a potential crash in the HDA emulation if a stream has no valid mixer sink attached -- thanks to Rink Springer (rink@…)
+Linux Additions: disable 3D for recent guests using Wayland (bug #18116)
+Linux Additions: fix for rebuilding kernel modules for new kernels on RPM guests
+Linux Additions: further fixes for Linux 4.19
+Linux Additions: fixed errors rebuilding initrd files with dracut on EL 6 (bug 18055#)
+Linux Additions: fixed 5.2.20 regression: guests not remembering the screen size after shutdown and restart (bug #18078)
+
+Patch file "gcc8-configure.patch" removed. The issue is fixed upstream.
+Patch file "fixes_for_4.19.patch" removed. The issue is fixed upstream.
+Add file "change_default_net_adapter.patch" to set PCnet-FAST III as the default adapter. This helps with the vulnerability listed in bsc#1115041.
+-------------------------------------------------------------------
+Thu Nov 8 19:53:22 UTC 2018 - Larry Finger <Larry.Finger(a)gmail.com>
+
+- Update "fixes_for_4.20.patch" for one additional API change so that
+ Kernel_HEAD_standard will build.
+ The description of VB was modified as suggested by Jan Engelhardt.
+
+-------------------------------------------------------------------
Old:
----
VirtualBox-5.2.20-patched.tar.bz2
fixes_for_4.19.patch
gcc8-configure.patch
New:
----
VirtualBox-5.2.22-patched.tar.bz2
change_default_net_adapter.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ virtualbox.spec ++++++
--- /var/tmp/diff_new_pack.tlSA6a/_old 2018-12-03 10:06:02.407949168 +0100
+++ /var/tmp/diff_new_pack.tlSA6a/_new 2018-12-03 10:06:02.411949164 +0100
@@ -40,7 +40,7 @@
%define _udevrulesdir %{_sysconfdir}/udev/rules.d
Name: virtualbox
# ********* If the VB version exceeds 5.2.x, notify the libvirt maintainer!!
-Version: 5.2.20
+Version: 5.2.22
Release: 0
Summary: VirtualBox is an Emulator
License: GPL-2.0-or-later
@@ -123,16 +123,15 @@
Patch120: fixes_for_python.patch
# Remove vboxvideo from build
Patch121: remove_vbox_video_build.patch
-Patch124: gcc8-configure.patch
# Fix build for Qt 5.11
-Patch125: fixes_for_Qt5.11.patch
+Patch122: fixes_for_Qt5.11.patch
# Switch to Python 3.6
-Patch126: switch_to_python3.6.patch
-Patch127: fix_32_bit_builds.patch
-# Fix API changes for kernel 4.19+
-Patch128: fixes_for_4.19.patch
+Patch123: switch_to_python3.6.patch
+Patch124: fix_32_bit_builds.patch
# Fix API changes for kernel 4.20+
-Patch129: fixes_for_4.20.patch
+Patch125: fixes_for_4.20.patch
+# Change default network adapter
+Patch126: change_default_net_adapter.patch
#
BuildRequires: LibVNCServer-devel
BuildRequires: SDL-devel
@@ -233,10 +232,12 @@
%posttrans
%description
-VirtualBox is an extremely feature rich, high performance product
-for enterprise customers, it is also the only professional solution
-that is freely available as Open Source Software under the terms of the
-GNU Public License (GPL).
+VirtualBox is a hosted hypervisor for x86 computers. It supports the
+creation and management of guest virtual machines running versions
+and derivations of Windows, Linux, BSD, OS/2, Solaris, Haiku, OSx86
+and others, and limited virtualization of macOS guests on Apple
+hardware. VirtualBox is freely available as Open Source Software under
+the terms of the GNU Public License (GPL).
##########################################
%package qt
@@ -431,12 +432,11 @@
%endif
%patch120 -p1
%patch121 -p1
+%patch122 -p1
+%patch123 -p1
%patch124 -p1
%patch125 -p1
%patch126 -p1
-%patch127 -p1
-%patch128 -p1
-%patch129 -p1
#copy user manual
cp %{SOURCE1} UserManual.pdf
++++++ UserManual.pdf ++++++
(binary differes)
++++++ VirtualBox-5.2.20-patched.tar.bz2 -> VirtualBox-5.2.22-patched.tar.bz2 ++++++
/work/SRC/openSUSE:Factory/virtualbox/VirtualBox-5.2.20-patched.tar.bz2 /work/SRC/openSUSE:Factory/.virtualbox.new.19453/VirtualBox-5.2.22-patched.tar.bz2 differ: char 11, line 1
++++++ change_default_net_adapter.patch ++++++
Index: VirtualBox-5.2.22/src/VBox/Main/src-all/Global.cpp
===================================================================
--- VirtualBox-5.2.22.orig/src/VBox/Main/src-all/Global.cpp
+++ VirtualBox-5.2.22/src/VBox/Main/src-all/Global.cpp
@@ -181,18 +181,18 @@ const Global::OSType Global::sOSTypes[]
{ "Linux", "Linux", "Linux24_64", "Linux 2.4 (64-bit)",
VBOXOSTYPE_Linux24_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC,
- 128, 16, 4 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
+ 128, 16, 4 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980 },
{ "Linux", "Linux", "Linux26", "Linux 2.6 / 3.x / 4.x (32-bit)",
VBOXOSTYPE_Linux26, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET | VBOXOSHINT_X2APIC,
- 512, 16, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
+ 512, 16, 8 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980 },
{ "Linux", "Linux", "Linux26_64", "Linux 2.6 / 3.x / 4.x (64-bit)",
VBOXOSTYPE_Linux26_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC
| VBOXOSHINT_USBTABLET | VBOXOSHINT_X2APIC,
- 1024, 16, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
+ 1024, 16, 8 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980 },
{ "Linux", "Linux", "ArchLinux", "Arch Linux (32-bit)",
@@ -219,13 +219,13 @@ const Global::OSType Global::sOSTypes[]
{ "Linux", "Linux", "OpenSUSE", "openSUSE (32-bit)",
VBOXOSTYPE_OpenSUSE, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET | VBOXOSHINT_X2APIC,
- 1024, 16, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
+ 1024, 16, 8 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980 },
{ "Linux", "Linux", "OpenSUSE_64", "openSUSE (64-bit)",
VBOXOSTYPE_OpenSUSE_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC
| VBOXOSHINT_USBTABLET | VBOXOSHINT_X2APIC,
- 1024, 16, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
+ 1024, 16, 8 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980 },
{ "Linux", "Linux", "Fedora", "Fedora (32-bit)",
@@ -323,7 +323,7 @@ const Global::OSType Global::sOSTypes[]
{ "Linux", "Linux", "Linux_64", "Other Linux (64-bit)",
VBOXOSTYPE_Linux_x64, VBOXOSHINT_64BIT | VBOXOSHINT_PAE | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC
| VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET | VBOXOSHINT_X2APIC,
- 512, 16, 8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
+ 512, 16, 8 * _1G64, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700 },
{ "Solaris", "Solaris", "Solaris", "Oracle Solaris 10 5/09 and earlier (32-bit)",
++++++ fixes_for_4.20.patch ++++++
--- /var/tmp/diff_new_pack.tlSA6a/_old 2018-12-03 10:06:02.479949101 +0100
+++ /var/tmp/diff_new_pack.tlSA6a/_new 2018-12-03 10:06:02.483949098 +0100
@@ -1,7 +1,7 @@
-Index: VirtualBox-5.2.20/src/VBox/HostDrivers/VBoxNetAdp/linux/VBoxNetAdp-linux.c
+Index: VirtualBox-5.2.22/src/VBox/HostDrivers/VBoxNetAdp/linux/VBoxNetAdp-linux.c
===================================================================
---- VirtualBox-5.2.20.orig/src/VBox/HostDrivers/VBoxNetAdp/linux/VBoxNetAdp-linux.c
-+++ VirtualBox-5.2.20/src/VBox/HostDrivers/VBoxNetAdp/linux/VBoxNetAdp-linux.c
+--- VirtualBox-5.2.22.orig/src/VBox/HostDrivers/VBoxNetAdp/linux/VBoxNetAdp-linux.c
++++ VirtualBox-5.2.22/src/VBox/HostDrivers/VBoxNetAdp/linux/VBoxNetAdp-linux.c
@@ -84,8 +84,11 @@ static long VBoxNetAdpLinuxIOCtlUnlocked
#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 36) */
@@ -27,85 +27,38 @@
.get_link = ethtool_op_get_link,
};
-@@ -200,10 +207,64 @@ static void vboxNetAdpEthGetDrvinfo(stru
+@@ -200,8 +207,18 @@ static void vboxNetAdpEthGetDrvinfo(stru
"N/A");
}
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 20, 0)
-+static bool
-+convert_link_ksettings_to_legacy_settings(
-+ struct ethtool_cmd *legacy_settings,
-+ const struct ethtool_link_ksettings *link_ksettings)
-+{
-+ bool retval = true;
-+
-+ memset(legacy_settings, 0, sizeof(*legacy_settings));
-+ /* this also clears the deprecated fields in legacy structure:
-+ * __u8 transceiver;
-+ * __u32 maxtxpkt;
-+ * __u32 maxrxpkt;
-+ */
-+
-+ retval &= ethtool_convert_link_mode_to_legacy_u32(
-+ &legacy_settings->supported,
-+ link_ksettings->link_modes.supported);
-+ retval &= ethtool_convert_link_mode_to_legacy_u32(
-+ &legacy_settings->advertising,
-+ link_ksettings->link_modes.advertising);
-+ retval &= ethtool_convert_link_mode_to_legacy_u32(
-+ &legacy_settings->lp_advertising,
-+ link_ksettings->link_modes.lp_advertising);
-+ ethtool_cmd_speed_set(legacy_settings, link_ksettings->base.speed);
-+ legacy_settings->duplex
-+ = link_ksettings->base.duplex;
-+ legacy_settings->port
-+ = link_ksettings->base.port;
-+ legacy_settings->phy_address
-+ = link_ksettings->base.phy_address;
-+ legacy_settings->autoneg
-+ = link_ksettings->base.autoneg;
-+ legacy_settings->mdio_support
-+ = link_ksettings->base.mdio_support;
-+ legacy_settings->eth_tp_mdix
-+ = link_ksettings->base.eth_tp_mdix;
-+ legacy_settings->eth_tp_mdix_ctrl
-+ = link_ksettings->base.eth_tp_mdix_ctrl;
-+ legacy_settings->transceiver
-+ = link_ksettings->base.transceiver;
-+ return retval;
-+}
-+#endif
-
+-
/* ethtool_ops::get_settings */
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 20, 0)
+static int vboxNetAdpEthGetSettings(struct net_device *pNetDev, struct ethtool_link_ksettings *link_ksettings)
++{
++ link_ksettings->link_modes.supported[0] = 0;
++ ethtool_link_ksettings_zero_link_mode(link_ksettings, advertising);
++ link_ksettings->base.speed = SPEED_10;
++ link_ksettings->base.duplex = DUPLEX_FULL;
++ link_ksettings->base.port = PORT_TP;
++ link_ksettings->base.phy_address = 0;
++ link_ksettings->base.autoneg = AUTONEG_DISABLE;
+#else
static int vboxNetAdpEthGetSettings(struct net_device *pNetDev, struct ethtool_cmd *cmd)
-+#endif
{
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 20, 0)
-+ struct ethtool_cmd *cmd = kzalloc(sizeof(struct ethtool_cmd), GFP_KERNEL);
-+ if (!cmd)
-+ return 1;
-+ convert_link_ksettings_to_legacy_settings(cmd, link_ksettings);
-+#endif
cmd->supported = 0;
- cmd->advertising = 0;
- #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27)
-@@ -218,6 +279,9 @@ static int vboxNetAdpEthGetSettings(stru
+@@ -218,6 +235,7 @@ static int vboxNetAdpEthGetSettings(stru
cmd->autoneg = AUTONEG_DISABLE;
cmd->maxtxpkt = 0;
cmd->maxrxpkt = 0;
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 20, 0)
-+ kfree(cmd);
+#endif
return 0;
}
-Index: VirtualBox-5.2.20/src/VBox/Runtime/r0drv/linux/time-r0drv-linux.c
+Index: VirtualBox-5.2.22/src/VBox/Runtime/r0drv/linux/time-r0drv-linux.c
===================================================================
---- VirtualBox-5.2.20.orig/src/VBox/Runtime/r0drv/linux/time-r0drv-linux.c
-+++ VirtualBox-5.2.20/src/VBox/Runtime/r0drv/linux/time-r0drv-linux.c
+--- VirtualBox-5.2.22.orig/src/VBox/Runtime/r0drv/linux/time-r0drv-linux.c
++++ VirtualBox-5.2.22/src/VBox/Runtime/r0drv/linux/time-r0drv-linux.c
@@ -171,11 +171,19 @@ RTDECL(PRTTIMESPEC) RTTimeNow(PRTTIMESPE
{
IPRT_LINUX_SAVE_EFL_AC();
@@ -127,10 +80,10 @@
#else /* < 2.6.16 */
struct timeval Tv;
do_gettimeofday(&Tv);
-Index: VirtualBox-5.2.20/include/iprt/time.h
+Index: VirtualBox-5.2.22/include/iprt/time.h
===================================================================
---- VirtualBox-5.2.20.orig/include/iprt/time.h
-+++ VirtualBox-5.2.20/include/iprt/time.h
+--- VirtualBox-5.2.22.orig/include/iprt/time.h
++++ VirtualBox-5.2.22/include/iprt/time.h
@@ -54,7 +54,6 @@ typedef struct RTTIMESPEC
int64_t i64NanosecondsRelativeToUnixEpoch;
} RTTIMESPEC;
@@ -173,3 +126,20 @@
#endif /* various ways of detecting struct timespec */
+Index: VirtualBox-5.2.22/src/VBox/Additions/linux/drm/vbox_fb.c
+===================================================================
+--- VirtualBox-5.2.22.orig/src/VBox/Additions/linux/drm/vbox_fb.c
++++ VirtualBox-5.2.22/src/VBox/Additions/linux/drm/vbox_fb.c
+@@ -297,8 +297,12 @@ static int vboxfb_create(struct drm_fb_h
+ * The last flag forces a mode set on VT switches even if the kernel
+ * does not think it is needed.
+ */
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 20, 0)
++ info->flags = FBINFO_DEFAULT | FBINFO_MISC_ALWAYS_SETPAR;
++#else
+ info->flags = FBINFO_DEFAULT | FBINFO_CAN_FORCE_OUTPUT |
+ FBINFO_MISC_ALWAYS_SETPAR;
++#endif
+ info->fbops = &vboxfb_ops;
+
+ ret = fb_alloc_cmap(&info->cmap, 256, 0);
++++++ vbox-vboxadd-init-script.diff ++++++
--- /var/tmp/diff_new_pack.tlSA6a/_old 2018-12-03 10:06:02.535949051 +0100
+++ /var/tmp/diff_new_pack.tlSA6a/_new 2018-12-03 10:06:02.535949051 +0100
@@ -1,7 +1,7 @@
-Index: VirtualBox-5.2.20/src/VBox/Additions/linux/installer/vboxadd.sh
+Index: VirtualBox-5.2.22/src/VBox/Additions/linux/installer/vboxadd.sh
===================================================================
---- VirtualBox-5.2.20.orig/src/VBox/Additions/linux/installer/vboxadd.sh
-+++ VirtualBox-5.2.20/src/VBox/Additions/linux/installer/vboxadd.sh
+--- VirtualBox-5.2.22.orig/src/VBox/Additions/linux/installer/vboxadd.sh
++++ VirtualBox-5.2.22/src/VBox/Additions/linux/installer/vboxadd.sh
@@ -26,11 +26,14 @@
# Provides: vboxadd
# Required-Start:
@@ -66,7 +66,7 @@
@@ -224,9 +206,8 @@ start()
begin "Starting."
# If we got this far assume that the slow set-up has been done.
- QUICKSETUP=yes
+ QUICKSETUP=start
- if test -z "${INSTALL_NO_MODULE_BUILDS}"; then
- uname -r | grep -q -E '^2\.6|^3|^4' 2>/dev/null &&
- ps -A -o comm | grep -q '/*udevd$' 2>/dev/null ||
@@ -84,9 +84,9 @@
fail "modprobe vboxguest failed"
}
case "$no_udev" in 1)
-@@ -270,7 +251,8 @@ start()
- rm -Rf /var/lib/VBoxGuestAdditions/lib
- if /usr/bin/VBoxClient --check3d 2>/dev/null; then
+@@ -284,7 +265,8 @@ start()
+ fi
+ if test -n "${setup_gl}"; then
mkdir -p /var/lib/VBoxGuestAdditions/lib
- ln -sf "${INSTALL_DIR}/lib/VBoxOGL.so" /var/lib/VBoxGuestAdditions/lib/libGL.so.1
+ ln -sf "/usr/lib64/VBoxOGL.so" /var/lib/VBoxGuestAdditions/lib/libGL.so.1
@@ -94,7 +94,7 @@
# SELinux for the OpenGL libraries, so that gdm can load them during the
# acceleration support check. This prevents an "Oh no, something has gone
# wrong!" error when starting EL7 guests.
-@@ -281,6 +263,15 @@ start()
+@@ -295,6 +277,15 @@ start()
chcon -h -t lib_t "/var/lib/VBoxGuestAdditions/lib/libGL.so.1"
fi
echo "/var/lib/VBoxGuestAdditions/lib" > /etc/ld.so.conf.d/00vboxvideo.conf
@@ -110,7 +110,7 @@
fi
ldconfig
-@@ -455,9 +446,9 @@ create_udev_rule()
+@@ -488,9 +479,9 @@ create_udev_rule()
echo "KERNEL=${udev_fix}\"vboxuser\", NAME=\"vboxuser\", OWNER=\"vboxadd\", MODE=\"0666\"" >> /etc/udev/rules.d/60-vboxadd.rules
fi
}
@@ -123,7 +123,7 @@
# And a post-installation script for rebuilding modules when a new kernel
# is installed.
mkdir -p /etc/kernel/postinst.d /etc/kernel/prerm.d
-@@ -487,20 +478,13 @@ shared_folder_setup()
+@@ -521,20 +512,13 @@ shared_folder_setup()
## @todo It would be nicer if the kernel module just parsed parameters
# itself instead of needing a separate binary to do that.
ln -sf "${INSTALL_DIR}/other/mount.vboxsf" /sbin
@@ -146,7 +146,7 @@
export BUILD_TYPE
export USERNAME
-@@ -517,16 +501,33 @@ setup()
+@@ -551,16 +535,33 @@ setup()
shared_folder_setup
if running_vboxguest || running_vboxadd; then
info "Running kernel modules will not be replaced until the system is restarted"
@@ -185,7 +185,7 @@
depmod
# Remove old module sources
-@@ -536,13 +537,14 @@ cleanup()
+@@ -570,13 +571,14 @@ cleanup()
fi
# Clean-up X11-related bits
@@ -204,10 +204,10 @@
fi
rm /etc/udev/rules.d/60-vboxadd.rules 2>/dev/null
}
-Index: VirtualBox-5.2.20/src/VBox/Additions/linux/installer/vboxadd-service.sh
+Index: VirtualBox-5.2.22/src/VBox/Additions/linux/installer/vboxadd-service.sh
===================================================================
---- VirtualBox-5.2.20.orig/src/VBox/Additions/linux/installer/vboxadd-service.sh
-+++ VirtualBox-5.2.20/src/VBox/Additions/linux/installer/vboxadd-service.sh
+--- VirtualBox-5.2.22.orig/src/VBox/Additions/linux/installer/vboxadd-service.sh
++++ VirtualBox-5.2.22/src/VBox/Additions/linux/installer/vboxadd-service.sh
@@ -26,7 +26,7 @@
# Provides: vboxadd-service
# Required-Start: vboxadd
@@ -217,10 +217,10 @@
# Default-Stop: 0 1 6
# X-Conflicts-With: systemd-timesyncd.service
# Description: VirtualBox Additions Service
-Index: VirtualBox-5.2.20/src/VBox/Installer/linux/vboxautostart-service.sh
+Index: VirtualBox-5.2.22/src/VBox/Installer/linux/vboxautostart-service.sh
===================================================================
---- VirtualBox-5.2.20.orig/src/VBox/Installer/linux/vboxautostart-service.sh
-+++ VirtualBox-5.2.20/src/VBox/Installer/linux/vboxautostart-service.sh
+--- VirtualBox-5.2.22.orig/src/VBox/Installer/linux/vboxautostart-service.sh
++++ VirtualBox-5.2.22/src/VBox/Installer/linux/vboxautostart-service.sh
@@ -23,7 +23,7 @@
# Provides: vboxautostart-service
# Required-Start: vboxdrv
@@ -230,10 +230,10 @@
# Default-Stop: 0 1 6
# Description: VirtualBox autostart service
### END INIT INFO
-Index: VirtualBox-5.2.20/src/VBox/Installer/linux/vboxballoonctrl-service.sh
+Index: VirtualBox-5.2.22/src/VBox/Installer/linux/vboxballoonctrl-service.sh
===================================================================
---- VirtualBox-5.2.20.orig/src/VBox/Installer/linux/vboxballoonctrl-service.sh
-+++ VirtualBox-5.2.20/src/VBox/Installer/linux/vboxballoonctrl-service.sh
+--- VirtualBox-5.2.22.orig/src/VBox/Installer/linux/vboxballoonctrl-service.sh
++++ VirtualBox-5.2.22/src/VBox/Installer/linux/vboxballoonctrl-service.sh
@@ -23,7 +23,7 @@
# Provides: vboxballoonctrl-service
# Required-Start: vboxdrv
@@ -243,10 +243,10 @@
# Default-Stop: 0 1 6
# Description: VirtualBox watchdog daemon
### END INIT INFO
-Index: VirtualBox-5.2.20/src/VBox/ValidationKit/testboxscript/linux/testboxscript-service.sh
+Index: VirtualBox-5.2.22/src/VBox/ValidationKit/testboxscript/linux/testboxscript-service.sh
===================================================================
---- VirtualBox-5.2.20.orig/src/VBox/ValidationKit/testboxscript/linux/testboxscript-service.sh
-+++ VirtualBox-5.2.20/src/VBox/ValidationKit/testboxscript/linux/testboxscript-service.sh
+--- VirtualBox-5.2.22.orig/src/VBox/ValidationKit/testboxscript/linux/testboxscript-service.sh
++++ VirtualBox-5.2.22/src/VBox/ValidationKit/testboxscript/linux/testboxscript-service.sh
@@ -31,7 +31,7 @@
# Provides: testboxscript-service
# Required-Start: $network
@@ -256,10 +256,10 @@
# Default-Stop: 0 1 6
# Description: TestBoxScript service
### END INIT INFO
-Index: VirtualBox-5.2.20/src/VBox/ValidationKit/utils/TestExecServ/linux/vboxtxs-nat.sh
+Index: VirtualBox-5.2.22/src/VBox/ValidationKit/utils/TestExecServ/linux/vboxtxs-nat.sh
===================================================================
---- VirtualBox-5.2.20.orig/src/VBox/ValidationKit/utils/TestExecServ/linux/vboxtxs-nat.sh
-+++ VirtualBox-5.2.20/src/VBox/ValidationKit/utils/TestExecServ/linux/vboxtxs-nat.sh
+--- VirtualBox-5.2.22.orig/src/VBox/ValidationKit/utils/TestExecServ/linux/vboxtxs-nat.sh
++++ VirtualBox-5.2.22/src/VBox/ValidationKit/utils/TestExecServ/linux/vboxtxs-nat.sh
@@ -31,7 +31,7 @@
# Provides: vboxtxs
# Required-Start: $network
@@ -269,10 +269,10 @@
# Default-Stop: 0 1 6
# Description: VirtualBox Test Execution Service
### END INIT INFO
-Index: VirtualBox-5.2.20/src/VBox/ValidationKit/utils/TestExecServ/linux/vboxtxs.sh
+Index: VirtualBox-5.2.22/src/VBox/ValidationKit/utils/TestExecServ/linux/vboxtxs.sh
===================================================================
---- VirtualBox-5.2.20.orig/src/VBox/ValidationKit/utils/TestExecServ/linux/vboxtxs.sh
-+++ VirtualBox-5.2.20/src/VBox/ValidationKit/utils/TestExecServ/linux/vboxtxs.sh
+--- VirtualBox-5.2.22.orig/src/VBox/ValidationKit/utils/TestExecServ/linux/vboxtxs.sh
++++ VirtualBox-5.2.22/src/VBox/ValidationKit/utils/TestExecServ/linux/vboxtxs.sh
@@ -31,7 +31,7 @@
# Provides: vboxtxs
# Required-Start: $network
1
0