openSUSE Commits
Threads by month
- ----- 2024 -----
- 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
August 2018
- 1 participants
- 1600 discussions
Hello community,
here is the log from the commit of package pacemaker for openSUSE:Factory checked in at 2018-08-02 14:50:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/pacemaker (Old)
and /work/SRC/openSUSE:Factory/.pacemaker.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "pacemaker"
Thu Aug 2 14:50:43 2018 rev:121 rq:625814 version:2.0.0+20180726.3d81c89b8
Changes:
--------
--- /work/SRC/openSUSE:Factory/pacemaker/pacemaker.changes 2018-05-06 14:57:41.521341457 +0200
+++ /work/SRC/openSUSE:Factory/.pacemaker.new/pacemaker.changes 2018-08-02 14:50:45.967539322 +0200
@@ -1,0 +2,185 @@
+Fri Jul 27 14:19:11 UTC 2018 - ygao(a)suse.com
+
+- Update to version 2.0.0+20180726.3d81c89b8:
+- Shutdown corosync after a fatal error
+- tools: ipmiservicelogd FTBFS on ppc64le
+- tools: notifyServicelogEvent FTBFS on ppc64le
+- tools: detect CIB directory correctly
+- tools: avoid memory leak when crm_resource checks resource
+- controller: avoid any chance of use-of-NULL when doing LRM op
+- resources: controld doesn't need to check for corosync 1 plugin
+- resources: use correct variable name in Stateful
+- cts-scheduler: restore ability to pass arguments to single test run
+- resources: use ocf_is_true in SysInfo
+- spec: drop superfluous dependency of -libs-devel on -cts
+- tools: update URL in crm_simulate help
+- crm_mon: rhbz#1461964 - add fence history features
+
+-------------------------------------------------------------------
+Fri Jul 27 11:23:32 UTC 2018 - ygao(a)suse.com
+
+- Update to version 2.0.0+20180706.8cf3fe749 (Pacemaker-2.0.0):
+- tools: Multiple -V increase debug level (#1526)
+- scheduler: clarify multiple-anonymous-instances message
+- scheduler: avoid use-after-free when on-fail=block
+- controller: add node name to meta-data call environment
+- controller: filter certain synthesized failures from CIB
+- controller: filter certain action timeouts from CIB
+- controller: don't record pending notifies in CIB
+- executor: cancel recurring monitors if fence device registration is lost
+- controller: avoid memory leak if start-up fails
+- XML: schemas.c: fix possible memleak + less magic with numeric constants
+- tools: stonith_admin -h/-H options are queries
+- libstonithd: avoid memory leak when getting meta-data
+- XML: resources-3.1.rng: relaxed schema after tight upgrade enforcement
+- XML: schemas.c: take severities of XSLT messages into account properly
+- XML: assets/upgrade-2.10-htmldiff.xsl: express message severity visually
+- XML: upgrade-2.10{,-leave}.rng: distinguish message severity
+- XML: upgrade-2.10-roundtrip.xsl et al.: new tests incl. browser view
+- XML: upgrade-2.10.xsl: simplify thanks to diehard assumptions wrt. input
+- XML: upgrade-2.10-leave.xsl: post-upgrade output restoring stylesheet
+- XML: upgrade-2.10-enter.xsl: pre-upgrade input normalizing stylesheet
+- XML: schemas.c: implement & employ full round-trip apply_upgrade
+- XML: schemas.c: switch to using add_schema_by_version
+- XML: schemas.c: prepare the ground for unfold-transform-refold logic
+- XML: schemas.c: crm_schema_init: simplify for/break, call add_schema 1x
+- XML: schemas.c: shortcut upgrade transformation when not needed
+- st_client, stonith_admin: cleanup memory of stonith-history
+- XML: cib_ops.c: make use of cib_verbose flag for RNG/XSLT handling
+- XML: xml_internal.h: accept changing priority over particular chunks
+- CIB: no schema violating oversimplified patching with @id-ref
+- schemas.c: cleanup XSLT extension modules' data and whatnot
+- spec: move crm_node to -cli package
+- attrd: support removing node by ID
+- tools: query controller for crm_node -n
+- controller: add CRM_OP_NODE_INFO operation
+- xml.c: fix cleaning of own vs. XSLT's XML node's _private load
+- xml.c: properly "staticize" or drop eligible functions
+- scheduler: print to stdout when appropriate
+- tools: treat INFINITY correctly in crm_failcount
+- libcrmservice: support mount, path, and timer systemd unit types
+- libcrmcluster: avoid use-of-NULL when searching for remote node
+- spec: add procps-ng & psmisc dependencies as suitable
+- libcrmcommon: lower maximum IPC flush delay to 1.5 seconds
+- CTS: fix python3 usage
+- libstonithd: show error if agent not found for meta-data call
+- fencing: add stonith_admin --validate option
+- libstonithd: add client API for device validation
+- based_callbacks.c: restore -Werror buildability, avoid truncation
+- tools: handle stonith_admin exit codes better
+- tools: stonith_admin should print error if stonithd connection fails
+- tools: improve stonith meta-data error messages
+
+-------------------------------------------------------------------
+Mon Jun 4 12:36:13 UTC 2018 - ygao(a)suse.com
+
+- Update to version 1.1.18+20180531.63ff11d35:
+- scheduler: ensure orphaned recurring monitors have interval set
+- scheduler: improve action creation messages
+- XML: regression.sh + upgrade-2.10.xsl + test-2: browser-based test drive
+- XML: upgrade-2.10.xsl: use namespacing and/or modes for easier mash-ups
+- XML: regression.sh + upgrade-detail.xsl: fix minor cosmetic issues
+- scheduler: "requires" shouldn't apply to guest node fencing
+- libpe_status: handle "requires" properly for anonymous clones
+- scheduler: avoid unnecessary delay of start actions
+- scheduler: order implicit actions more strictly
+- all: prefer appropriate node when multiply active
+- libpe_status: find active instances properly according to requires
+- libpe_status: handle pending migrations correctly
+- tools: correctly check crm_resource --move for master role
+- scheduler: update wiki URL in log message
+- libcrmcommon: use proper IPC buffer size when reading
+- CIB manager: improve notification failure messages
+- liblrmd: improve TLS key reading
+- XML: upgrade-2.10.xsl: rsc op instance_attrs [2/2]: remaining meta attrs
+- XML: upgrade-2.10.xsl: rsc op instance_attrs [1/2]: meta-like requires
+- XML: upgrade-2.10.xsl: resource meta_attributes: in-situ exchange
+- XML: upgrade-2.10.xsl: simplify "should diagnostics be emitted" decision
+- XML: upgrade-2.10.xsl: related commits in "./regression.sh -X" output
+- XML: regression.sh + upgrade-2.10.xsl: remove commented out leftovers
+- XML: resources-3.0.rng: omit "isolation*" resource meta_attributes
+- XML: upgrade-2.10.xsl: normalize indentation of new rsc meta attributes
+- executor: give more detail when TLS handshake fails
+- fenced: be more paranoid about freeing memory
+- cts: use python2/3-compatible comparison
+
+-------------------------------------------------------------------
+Fri May 18 18:44:31 UTC 2018 - ygao(a)suse.com
+
+- Update to version 1.1.18+20180517.adf4d77b8:
+- spec: unify quoting in {pre,post}* scriptlets' action soliciting
+- spec: add a simple retention of pre-existing log move targets
+- libcrmcommon,libcrmcluster,liblrmd: recognize daemons under new names
+- XML: upgrade-2.10.xsl: resource meta_attributes: tweak diagnostic msg
+- XML: upgrade-2.10.xsl: re-apply on scheduler CTS test cases
+- XML: upgrade-2.10.xsl: resource meta_attributes: validity conformance
+
+-------------------------------------------------------------------
+Mon May 14 08:54:18 UTC 2018 - ygao(a)suse.com
+
+- Update to version 1.1.18+20180511.acd8ff5a7:
+- execd: avoid memory leak when testing remote key
+- cts-scheduler: avoid unsupported usage of requires
+- controld: avoid memory leak when synthesizing failure
+- XML: upgrade-2.10.xsl: resource meta_attributes: isolation* items
+- XML: upgrade-2.10.xsl: make diagnostics more direct wrt. context
+- XML: upgrade-2.10.xsl: remaining "marking" space with op meta_attributes
+- XML: upgrade-2.10.xsl: simplify 2/2: HelperIdentity, no INNER-RECURSION
+- XML: upgrade-2.10.xsl: simplify 1/2: resource instance_attributes
+- XML: regression.sh: avoid doubts when tests expected at stdin with '-'
+- XML: regression.sh: modularize "XSLT processor", allow substitutes
+- tools: improve error messages from crm_resource --move
+- tools: use output redirection correctly in crm_standby
+- tools: handle multiple values properly in crm_attribute
+- tools: bash portability issue in crm_failcount
+- libcrmservice: don't consider a cancelled recurring operation as failed
+- tools: cibsecret checks pacemaker-controld instead of crmd
+- tools: cibsecret --help/--version doesn't require cluster to be running (bsc#1102915)
+- spec: package cts-exec-helper with main package instead of -cli
+- spec: move old logs after upgrade
+- scheduler: improve failed op message
+- libcrmservice: find absolute paths when used with "service:"
+- libcrmservice: separate LSB-specific code into own source files
+- execd: handle systemd actions correctly when used with "service:"
+
+-------------------------------------------------------------------
+Wed May 9 10:48:06 UTC 2018 - ygao(a)suse.com
+
+- Update to version 1.1.18+20180504.70fe3d6e9:
+- all: take advantage of new libqb features
+- contoller,scheduler: guard hash table deletes
+- controller: don't abort after delay if we're no longer DC
+- libcrmcommon,pacemakerd: kernel task name is at most 15 characters
+- cts: install dummy systemd daemon via helper script
+- cts: externalize log watcher script
+- Maint: make systemctl react to pacemaker-remote as with underscored one
+- make some old daemon references traceable with "man -K OLDNAME"
+- io.c: restore -Werror buildability, put conversion specifier last
+
+-------------------------------------------------------------------
+Tue May 8 14:28:49 UTC 2018 - ygao(a)suse.com
+
+- Update to version 1.1.18+20180430.c0d7ba798:
+- libcrmcommon: avoid memory leak on failed IPC send
+- daemons: add configure option to create links at old daemon names
+- controld: rename "crmd-*" cluster options
+- all: change log file message format
+- daemons: improve connection loss messages
+- libcrmcommon: improve connection loss message
+- pacemaker_remote: correct documentation URL in systemd unit file
+- libcrmcommon: check file/directory writability better
+- spec: no more buildroot XML to modify
+- cib: rename cib daemon to pacemaker-based
+- cts-stonithd: rename cts-stonithd to cts-fencing
+- fenced: rename stonith-test to cts-fence-helper
+- fencing: rename stonithd to pacemaker-fenced
+- rename cts-pengine to cts-scheduler
+- pengine: rename pengine daemon to pacemaker-schedulerd
+- crmd: rename crmd daemon to pacemaker-controld
+- pacemaker-execd: rename pacemaker_remoted to pacemaker-remoted
+- rename cts-lrmd to cts-exec
+- pacemaker-execd: rename lrmd_test to cts-exec-helper
+- lrmd: rename lrmd daemon to pacemaker-execd
+- attrd: rename attrd daemon to pacemaker-attrd
+
+-------------------------------------------------------------------
Old:
----
pacemaker-1.1.18+20180430.b12c320f5.tar.xz
New:
----
pacemaker-2.0.0+20180726.3d81c89b8.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ pacemaker.spec ++++++
--- /var/tmp/diff_new_pack.przF9j/_old 2018-08-02 14:50:46.759540630 +0200
+++ /var/tmp/diff_new_pack.przF9j/_new 2018-08-02 14:50:46.763540637 +0200
@@ -62,6 +62,9 @@
## Add option to turn off hardening of libraries and daemon executables
%bcond_with hardening
+## Add option to disable links for legacy daemon names
+%bcond_without legacy_links
+
# Keep sane profiling data if requested
%if %{with profiling}
@@ -71,11 +74,11 @@
%endif
Name: pacemaker
-Version: 1.1.18+20180430.b12c320f5
+Version: 2.0.0+20180726.3d81c89b8
Release: 0
Summary: Scalable High-Availability cluster resource manager
# AGPL-3.0 licensed extra/clustermon.sh is not present in the binary
-License: GPL-2.0 and GPL-2.0+ and LGPL-2.1+
+License: GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later
Group: Productivity/Clustering/HA
Url: http://www.clusterlabs.org
# Hint: use "spectool -s 0 pacemaker.spec" (rpmdevtools) to check the final URL:
@@ -187,6 +190,9 @@
Requires: libpacemaker3 = %{version}-%{release}
Requires: logrotate
Requires: perl-TimeDate
+Requires: procps
+Requires: psmisc
+Requires(post): coreutils
%description cli
Pacemaker is an advanced, scalable High-Availability cluster resource
@@ -227,6 +233,7 @@
Group: Productivity/Clustering/HA
Requires: %{name}-cli = %{version}-%{release}
Requires: libpacemaker3 = %{version}-%{release}
+Requires: procps
Requires: resource-agents
%{?systemd_requires}
@@ -241,7 +248,6 @@
%package -n libpacemaker-devel
Summary: Pacemaker development package
Group: Development/Libraries/C and C++
-Requires: %{name}-cts = %{version}-%{release}
Requires: libpacemaker3 = %{version}-%{release}
Requires: libtool-ltdl-devel
Requires: pkgconfig
@@ -273,6 +279,8 @@
Summary: Test framework for cluster-related technologies
Group: Productivity/Clustering/HA
Requires: libpacemaker3 = %{version}-%{release}
+Requires: procps
+Requires: psmisc
Requires: python3
BuildArch: noarch
#Requires: python3-systemd
@@ -325,8 +333,6 @@
autoreconf -fvi
%configure \
- %{?with_profiling: --with-profiling} \
- %{?with_coverage: --with-coverage} \
--docdir=%{_docdir}/%{name} \
--disable-static \
--disable-silent-rules \
@@ -340,9 +346,12 @@
%if !%{enable_fatal_warnings}
--enable-fatal-warnings=no \
%endif
- %{!?with_doc: --with-brand=} \
- %{!?with_hardening: --disable-hardening} \
%{?python_path: PYTHON=%{python_path}} \
+ %{!?with_hardening: --disable-hardening} \
+ %{!?with_legacy_links: --disable-legacy-links} \
+ %{?with_profiling: --with-profiling} \
+ %{?with_coverage: --with-coverage} \
+ %{!?with_doc: --with-brand=} \
--with-initdir=%{_initddir} \
--localstatedir=%{_var} \
--with-version=%{version}-%{release}
@@ -356,9 +365,6 @@
install -m 644 daemons/pacemakerd/pacemaker.sysconfig %{buildroot}%{_fillupdir}/sysconfig.pacemaker
install -m 644 tools/crm_mon.sysconfig %{buildroot}%{_fillupdir}/sysconfig.crm_mon
-# These are not actually scripts
-find %{buildroot} -name '*.xml' -type f -print0 | xargs -0 chmod a-x
-
# Don't package static libs
find %{buildroot} -type f -name "*.a" -delete -print
find %{buildroot} -type f -name "*.la" -delete -print
@@ -390,7 +396,7 @@
%check
# Prevent false positives in rpmlint
-./cts/cts-regression -V pengine cli 2>&1
+./cts/cts-regression -V scheduler cli 2>&1
%pre
%service_add_pre pacemaker.service
@@ -430,21 +436,20 @@
%fillup_only -n crm_mon
fi
+if [ "$1" -eq "2" ]; then
+ # Package upgrade, not initial install:
+ # Move any pre-2.0 logs to new location to ensure they get rotated
+ { mv -fbS.rpmsave %{_var}/log/pacemaker.log* %{_var}/log/pacemaker \
+ || mv -f %{_var}/log/pacemaker.log* %{_var}/log/pacemaker
+ } >/dev/null 2>/dev/null || :
+fi
+
%preun cli
%service_del_preun crm_mon.service
%postun cli
%service_del_postun crm_mon.service
-%post cts
-%service_add_post pacemaker-cts-dummyd@.service
-
-%preun cts
-%service_del_preun pacemaker-cts-dummyd@.service
-
-%postun cts
-%service_del_postun pacemaker-cts-dummyd@.service
-
%pre -n libpacemaker3
getent group %{gname} >/dev/null || groupadd -r %{gname} -g 189
getent passwd %{uname} >/dev/null || useradd -r -g %{gname} -u 189 -s /sbin/nologin -c "cluster user" %{uname}
@@ -465,13 +470,8 @@
# Needed so that the shell doesn't get stuck on escape
# sequences
export TERM=dumb
- %{_datadir}/pacemaker/tests/cli/regression.sh || true
- %{_datadir}/pacemaker/tests/pengine/regression.sh -V || true
- echo Now running shell regression tests ; date
- if ! %{_datadir}/pacemaker/tests/shell/regression.sh ; then
- echo "Shell tests failed."
- cat crmtestout/regression.out
- fi
+ %{_datadir}/pacemaker/tests/cts-cli || true
+ %{_datadir}/pacemaker/tests/cts-scheduler -V || true
fi
%endif
@@ -483,24 +483,26 @@
%{_unitdir}/pacemaker.service
%{_sbindir}/rcpacemaker
-%exclude %{_libexecdir}/pacemaker/lrmd_test
+%exclude %{_libexecdir}/pacemaker/cts-log-watcher
+%exclude %{_libexecdir}/pacemaker/cts-support
+%exclude %{_sbindir}/pacemaker-remoted
+%if %{with legacy_links}
%exclude %{_sbindir}/pacemaker_remoted
+%endif
%dir %{_libexecdir}/pacemaker
%{_libexecdir}/pacemaker/*
%{_sbindir}/cibsecret
-%{_sbindir}/crm_node
%{_sbindir}/fence_legacy
%{_sbindir}/stonith_admin
-%{_mandir}/man7/crmd.7%{ext_man}
-%{_mandir}/man7/pengine.7%{ext_man}
-%{_mandir}/man7/stonithd.7%{ext_man}
+%{_mandir}/man7/pacemaker-controld.7%{ext_man}
+%{_mandir}/man7/pacemaker-schedulerd.7%{ext_man}
+%{_mandir}/man7/pacemaker-fenced.7%{ext_man}
%{_mandir}/man7/ocf_pacemaker_controld.7%{ext_man}
%{_mandir}/man7/ocf_pacemaker_o2cb.7%{ext_man}
%{_mandir}/man7/ocf_pacemaker_remote.7%{ext_man}
%{_mandir}/man8/cibsecret.8%{ext_man}
-%{_mandir}/man8/crm_node.8%{ext_man}
%{_mandir}/man8/fence_legacy.8%{ext_man}
%{_mandir}/man8/pacemakerd.8%{ext_man}
%{_mandir}/man8/stonith_admin.8%{ext_man}
@@ -524,6 +526,7 @@
%files cli
%defattr(-,root,root)
+%dir %attr (750, root, %{gname}) %{_sysconfdir}/pacemaker
%config(noreplace) %{_sysconfdir}/logrotate.d/pacemaker
%{_unitdir}/crm_mon.service
%{_sbindir}/rccrm_mon
@@ -535,6 +538,7 @@
%{_sbindir}/crm_failcount
%{_sbindir}/crm_master
%{_sbindir}/crm_mon
+%{_sbindir}/crm_node
%{_sbindir}/crm_resource
%{_sbindir}/crm_standby
%{_sbindir}/crm_verify
@@ -549,7 +553,6 @@
%exclude %{_datadir}/pacemaker/tests
%{_datadir}/pacemaker
%{_datadir}/snmp/mibs/PCMK-MIB.txt
-%{_libexecdir}/pacemaker/lrmd_test
%exclude %{_libexecdir}/ocf/resource.d/pacemaker/controld
%exclude %{_libexecdir}/ocf/resource.d/pacemaker/o2cb
@@ -562,18 +565,17 @@
%config(noreplace) %{_fillupdir}/sysconfig.pacemaker
%config(noreplace) %{_fillupdir}/sysconfig.crm_mon
%{_mandir}/man7/*
-%exclude %{_mandir}/man7/crmd.*
-%exclude %{_mandir}/man7/pengine.*
-%exclude %{_mandir}/man7/stonithd.*
+%exclude %{_mandir}/man7/pacemaker-controld.*
+%exclude %{_mandir}/man7/pacemaker-schedulerd.*
+%exclude %{_mandir}/man7/pacemaker-fenced.*
%exclude %{_mandir}/man7/ocf_pacemaker_controld.*
%exclude %{_mandir}/man7/ocf_pacemaker_o2cb.*
%exclude %{_mandir}/man7/ocf_pacemaker_remote.*
%{_mandir}/man8/*
%exclude %{_mandir}/man8/cibsecret.*
-%exclude %{_mandir}/man8/crm_node.*
%exclude %{_mandir}/man8/fence_legacy.*
%exclude %{_mandir}/man8/pacemakerd.*
-%exclude %{_mandir}/man8/pacemaker_remoted.*
+%exclude %{_mandir}/man8/pacemaker-remoted.*
%exclude %{_mandir}/man8/stonith_admin.*
#%license licenses/GPLv2
@@ -613,8 +615,12 @@
%defattr(-,root,root)
%{_unitdir}/pacemaker_remote.service
%{_sbindir}/rcpacemaker_remote
+
+%{_sbindir}/pacemaker-remoted
+%if %{with legacy_links}
%{_sbindir}/pacemaker_remoted
-%{_mandir}/man8/pacemaker_remoted.8%{ext_man}
+%endif
+%{_mandir}/man8/pacemaker-remoted.8%{ext_man}
#%license licenses/GPLv2
%doc COPYING ChangeLog
@@ -629,7 +635,10 @@
%defattr(-,root,root)
%{python3_sitelib}/cts
%{_datadir}/pacemaker/tests
-%{_unitdir}/pacemaker-cts-dummyd@.service
+
+%{_libexecdir}/pacemaker/cts-log-watcher
+%{_libexecdir}/pacemaker/cts-support
+
#%license licenses/GPLv2
%doc COPYING ChangeLog
++++++ _service ++++++
--- /var/tmp/diff_new_pack.przF9j/_old 2018-08-02 14:50:46.791540683 +0200
+++ /var/tmp/diff_new_pack.przF9j/_new 2018-08-02 14:50:46.795540690 +0200
@@ -8,10 +8,10 @@
To update to a new release, change "revision" to the desired
git commit hash and bump "version" if necessary
- <param name="version">1.1.18</param>
+ <param name="version">2.0.0</param>
-->
- <param name="versionformat">1.1.18+%cd.%h</param>
- <param name="revision">2.0</param>
+ <param name="versionformat">2.0.0+%cd.%h</param>
+ <param name="revision">master</param>
<param name="changesgenerate">enable</param>
</service>
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.przF9j/_old 2018-08-02 14:50:46.811540716 +0200
+++ /var/tmp/diff_new_pack.przF9j/_new 2018-08-02 14:50:46.811540716 +0200
@@ -1,6 +1,6 @@
<servicedata>
<service name="tar_scm">
<param name="url">git://github.com/ClusterLabs/pacemaker.git</param>
- <param name="changesrevision">224e03bb1a842db796283054eb27eee6f00f1a7c</param>
+ <param name="changesrevision">3d81c89b84db34ba5cb0b91354b46a32fcb5a3b2</param>
</service>
</servicedata>
\ No newline at end of file
++++++ bug-728579_pacemaker-stonith-dev-id.patch ++++++
--- /var/tmp/diff_new_pack.przF9j/_old 2018-08-02 14:50:46.819540729 +0200
+++ /var/tmp/diff_new_pack.przF9j/_new 2018-08-02 14:50:46.819540729 +0200
@@ -4,11 +4,11 @@
Medium: stonith: Expose IDs of stonith resources to stonith agents through "$CRM_meta_st_device_id" environment variable
-Index: pacemaker-1.1.17+20170926.4328c6a65/fencing/commands.c
+Index: pacemaker-2.0.0+20180726.3d81c89b8/daemons/fenced/fenced_commands.c
===================================================================
---- pacemaker-1.1.17+20170926.4328c6a65.orig/fencing/commands.c
-+++ pacemaker-1.1.17+20170926.4328c6a65/fencing/commands.c
-@@ -925,6 +925,7 @@ build_device_from_xml(xmlNode * msg)
+--- pacemaker-2.0.0+20180726.3d81c89b8.orig/daemons/fenced/fenced_commands.c
++++ pacemaker-2.0.0+20180726.3d81c89b8/daemons/fenced/fenced_commands.c
+@@ -940,6 +940,7 @@ build_device_from_xml(xmlNode * msg)
device->id, device->on_target_actions);
}
@@ -16,11 +16,11 @@
device->work = mainloop_add_trigger(G_PRIORITY_HIGH, stonith_device_dispatch, device);
/* TODO: Hook up priority */
-Index: pacemaker-1.1.17+20170926.4328c6a65/lib/fencing/st_client.c
+Index: pacemaker-2.0.0+20180726.3d81c89b8/lib/fencing/st_client.c
===================================================================
---- pacemaker-1.1.17+20170926.4328c6a65.orig/lib/fencing/st_client.c
-+++ pacemaker-1.1.17+20170926.4328c6a65/lib/fencing/st_client.c
-@@ -54,6 +54,7 @@ struct stonith_action_s {
+--- pacemaker-2.0.0+20180726.3d81c89b8.orig/lib/fencing/st_client.c
++++ pacemaker-2.0.0+20180726.3d81c89b8/lib/fencing/st_client.c
+@@ -38,6 +38,7 @@ struct stonith_action_s {
char *action;
char *victim;
char *args;
@@ -28,15 +28,15 @@
int timeout;
int async;
void *userdata;
-@@ -666,6 +667,7 @@ stonith_action_destroy(stonith_action_t
- free(action->args);
- free(action->action);
- free(action->victim);
-+ free(action->dev_id);
- free(action);
+@@ -621,6 +622,7 @@ stonith__destroy_action(stonith_action_t
+ free(action->args);
+ free(action->action);
+ free(action->victim);
++ free(action->dev_id);
+ free(action);
+ }
}
-
-@@ -693,6 +695,8 @@ stonith_action_create(const char *agent,
+@@ -690,6 +692,8 @@ stonith_action_create(const char *agent,
if (device_args) {
char buffer[512];
const char *value = NULL;
@@ -45,7 +45,7 @@
snprintf(buffer, sizeof(buffer), "pcmk_%s_retries", _action);
value = g_hash_table_lookup(device_args, buffer);
-@@ -700,6 +704,11 @@ stonith_action_create(const char *agent,
+@@ -697,6 +701,11 @@ stonith_action_create(const char *agent,
if (value) {
action->max_retries = atoi(value);
}
@@ -57,7 +57,7 @@
}
return action;
-@@ -881,6 +890,8 @@ internal_stonith_action_execute(stonith_
+@@ -878,6 +887,8 @@ internal_stonith_action_execute(stonith_
if (!pid) {
/* child */
@@ -66,7 +66,7 @@
setpgid(0, 0);
close(1);
-@@ -903,6 +914,10 @@ internal_stonith_action_execute(stonith_
+@@ -900,6 +911,10 @@ internal_stonith_action_execute(stonith_
close(p_write_fd);
close(p_stderr_fd);
++++++ bug-806256_pacemaker-log-level-notice.patch ++++++
--- /var/tmp/diff_new_pack.przF9j/_old 2018-08-02 14:50:46.827540742 +0200
+++ /var/tmp/diff_new_pack.przF9j/_new 2018-08-02 14:50:46.827540742 +0200
@@ -4,11 +4,11 @@
Log: Change some messages to notice level (bnc#806256)
-Index: pacemaker-1.1.18+20180406.633845120/crmd/membership.c
+Index: pacemaker-1.1.18+20180430.c0d7ba798/daemons/controld/controld_membership.c
===================================================================
---- pacemaker-1.1.18+20180406.633845120.orig/crmd/membership.c
-+++ pacemaker-1.1.18+20180406.633845120/crmd/membership.c
-@@ -426,7 +426,7 @@ crm_update_quorum(gboolean quorum, gbool
+--- pacemaker-1.1.18+20180430.c0d7ba798.orig/daemons/controld/controld_membership.c
++++ pacemaker-1.1.18+20180430.c0d7ba798/daemons/controld/controld_membership.c
+@@ -414,7 +414,7 @@ crm_update_quorum(gboolean quorum, gbool
crm_xml_add(update, XML_ATTR_DC_UUID, fsa_our_uuid);
fsa_cib_update(XML_TAG_CIB, update, call_options, call_id, NULL);
@@ -17,11 +17,11 @@
fsa_register_cib_callback(call_id, FALSE, NULL, cib_quorum_update_complete);
free_xml(update);
-Index: pacemaker-1.1.18+20180406.633845120/crmd/tengine.c
+Index: pacemaker-1.1.18+20180430.c0d7ba798/daemons/controld/controld_transition.c
===================================================================
---- pacemaker-1.1.18+20180406.633845120.orig/crmd/tengine.c
-+++ pacemaker-1.1.18+20180406.633845120/crmd/tengine.c
-@@ -188,7 +188,7 @@ do_te_invoke(long long action,
+--- pacemaker-1.1.18+20180430.c0d7ba798.orig/daemons/controld/controld_transition.c
++++ pacemaker-1.1.18+20180430.c0d7ba798/daemons/controld/controld_transition.c
+@@ -187,7 +187,7 @@ do_te_invoke(long long action,
transition_graph = create_blank_graph();
return;
}
@@ -30,11 +30,11 @@
graph_input);
te_reset_job_counts();
-Index: pacemaker-1.1.18+20180406.633845120/fencing/remote.c
+Index: pacemaker-1.1.18+20180430.c0d7ba798/daemons/fenced/fenced_remote.c
===================================================================
---- pacemaker-1.1.18+20180406.633845120.orig/fencing/remote.c
-+++ pacemaker-1.1.18+20180406.633845120/fencing/remote.c
-@@ -576,7 +576,7 @@ remote_op_timeout(gpointer userdata)
+--- pacemaker-1.1.18+20180430.c0d7ba798.orig/daemons/fenced/fenced_remote.c
++++ pacemaker-1.1.18+20180430.c0d7ba798/daemons/fenced/fenced_remote.c
+@@ -578,7 +578,7 @@ remote_op_timeout(gpointer userdata)
return FALSE;
}
++++++ bug-812269_pacemaker-fencing-device-register-messages.patch ++++++
--- /var/tmp/diff_new_pack.przF9j/_old 2018-08-02 14:50:46.835540756 +0200
+++ /var/tmp/diff_new_pack.przF9j/_new 2018-08-02 14:50:46.839540762 +0200
@@ -4,11 +4,11 @@
Log: fencing: Drop the severity of the messages on registering a stonith device
-Index: pacemaker-1.1.11+git20140303.ca8234d/fencing/commands.c
+Index: pacemaker-1.1.18+20180430.c0d7ba798/daemons/fenced/fenced_commands.c
===================================================================
---- pacemaker-1.1.11+git20140303.ca8234d.orig/fencing/commands.c
-+++ pacemaker-1.1.11+git20140303.ca8234d/fencing/commands.c
-@@ -840,7 +840,7 @@ stonith_device_register(xmlNode * msg, c
+--- pacemaker-1.1.18+20180430.c0d7ba798.orig/daemons/fenced/fenced_commands.c
++++ pacemaker-1.1.18+20180430.c0d7ba798/daemons/fenced/fenced_commands.c
+@@ -1190,7 +1190,7 @@ stonith_device_register(xmlNode * msg, c
}
g_hash_table_replace(device_list, device->id, device);
@@ -17,11 +17,11 @@
g_hash_table_size(device_list));
}
if (desc) {
-Index: pacemaker-1.1.11+git20140303.ca8234d/fencing/main.c
+Index: pacemaker-1.1.18+20180430.c0d7ba798/daemons/fenced/pacemaker-fenced.c
===================================================================
---- pacemaker-1.1.11+git20140303.ca8234d.orig/fencing/main.c
-+++ pacemaker-1.1.11+git20140303.ca8234d/fencing/main.c
-@@ -981,7 +981,7 @@ update_cib_cache_cb(const char *event, x
+--- pacemaker-1.1.18+20180430.c0d7ba798.orig/daemons/fenced/pacemaker-fenced.c
++++ pacemaker-1.1.18+20180430.c0d7ba798/daemons/fenced/pacemaker-fenced.c
+@@ -1021,7 +1021,7 @@ update_cib_cache_cb(const char *event, x
break;
case -pcmk_err_diff_resync:
case -pcmk_err_diff_failed:
++++++ bug-943295_pacemaker-lrmd-log-notice.patch ++++++
--- /var/tmp/diff_new_pack.przF9j/_old 2018-08-02 14:50:46.843540769 +0200
+++ /var/tmp/diff_new_pack.przF9j/_new 2018-08-02 14:50:46.847540776 +0200
@@ -1,8 +1,8 @@
-Index: pacemaker-1.1.13+git20150827.e8888b9/lrmd/lrmd.c
+Index: pacemaker-1.1.18+20180430.c0d7ba798/daemons/execd/execd_commands.c
===================================================================
---- pacemaker-1.1.13+git20150827.e8888b9.orig/lrmd/lrmd.c
-+++ pacemaker-1.1.13+git20150827.e8888b9/lrmd/lrmd.c
-@@ -97,7 +97,7 @@ static void
+--- pacemaker-1.1.18+20180430.c0d7ba798.orig/daemons/execd/execd_commands.c
++++ pacemaker-1.1.18+20180430.c0d7ba798/daemons/execd/execd_commands.c
+@@ -83,7 +83,7 @@ static void
log_finished(lrmd_cmd_t * cmd, int exec_time, int queue_time)
{
char pid_str[32] = { 0, };
@@ -11,7 +11,7 @@
if (cmd->last_pid) {
snprintf(pid_str, 32, "%d", cmd->last_pid);
-@@ -121,7 +121,7 @@ log_finished(lrmd_cmd_t * cmd, int exec_
+@@ -107,7 +107,7 @@ log_finished(lrmd_cmd_t * cmd, int exec_
static void
log_execute(lrmd_cmd_t * cmd)
{
++++++ bug-977201_pacemaker-controld-self-fencing.patch ++++++
--- /var/tmp/diff_new_pack.przF9j/_old 2018-08-02 14:50:46.855540789 +0200
+++ /var/tmp/diff_new_pack.przF9j/_new 2018-08-02 14:50:46.855540789 +0200
@@ -4,18 +4,18 @@
Fix: controld: Prevent unwanted self-fencing if "stateful_merge_wait" state of dlm is not available
-Index: pacemaker-1.1.18+20180427.a34ccd926/extra/resources/controld
+Index: pacemaker-2.0.0+20180726.3d81c89b8/extra/resources/controld
===================================================================
---- pacemaker-1.1.18+20180427.a34ccd926.orig/extra/resources/controld
-+++ pacemaker-1.1.18+20180427.a34ccd926/extra/resources/controld
-@@ -227,10 +227,6 @@ controld_monitor() {
+--- pacemaker-2.0.0+20180726.3d81c89b8.orig/extra/resources/controld
++++ pacemaker-2.0.0+20180726.3d81c89b8/extra/resources/controld
+@@ -224,10 +224,6 @@ controld_monitor() {
if [ -n "$smw" ] && [ $smw -eq 1 ]; then
ocf_log err "DLM status is: stateful_merge_wait"
- rc=$OCF_ERR_GENERIC
+ CM_RC=$OCF_ERR_GENERIC
- elif [ -z "$smw" ] && dlm_tool ls | grep -q "wait fencing" && \
- ! stonith_admin -H '*' -V | grep -q "wishes to"; then
- ocf_log err "DLM status is: wait fencing"
-- rc=$OCF_ERR_GENERIC
+- CM_RC=$OCF_ERR_GENERIC
else
- rc=$OCF_SUCCESS
+ CM_RC=$OCF_SUCCESS
fi
++++++ pacemaker-1.1.18+20180430.b12c320f5.tar.xz -> pacemaker-2.0.0+20180726.3d81c89b8.tar.xz ++++++
++++ 966288 lines of diff (skipped)
++++++ pacemaker-cts-StartCmd.patch ++++++
--- /var/tmp/diff_new_pack.przF9j/_old 2018-08-02 14:50:49.335544886 +0200
+++ /var/tmp/diff_new_pack.przF9j/_new 2018-08-02 14:50:49.335544886 +0200
@@ -1,13 +1,13 @@
-Index: pacemaker-1.1.18+20180104.7ba28d854/cts/patterns.py
+Index: pacemaker-1.1.18+20180430.c0d7ba798/cts/patterns.py
===================================================================
---- pacemaker-1.1.18+20180104.7ba28d854.orig/cts/patterns.py
-+++ pacemaker-1.1.18+20180104.7ba28d854/cts/patterns.py
-@@ -103,7 +103,7 @@ class crm_corosync(BasePatterns):
+--- pacemaker-1.1.18+20180430.c0d7ba798.orig/cts/patterns.py
++++ pacemaker-1.1.18+20180430.c0d7ba798/cts/patterns.py
+@@ -114,7 +114,7 @@ class crm_corosync(BasePatterns):
BasePatterns.__init__(self, name)
self.commands.update({
- "StartCmd" : "service corosync start && service pacemaker start",
+ "StartCmd" : "service pacemaker start",
- "StopCmd" : "service pacemaker stop; [ ! -e /usr/sbin/pacemaker_remoted ] || service pacemaker_remote stop; service corosync stop",
+ "StopCmd" : "service pacemaker stop; [ ! -e /usr/sbin/pacemaker-remoted ] || service pacemaker_remote stop; service corosync stop",
"EpochCmd" : "crm_node -e",
1
0
Hello community,
here is the log from the commit of package python-wxWidgets-3_0 for openSUSE:Factory checked in at 2018-08-02 14:50:36
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-wxWidgets-3_0 (Old)
and /work/SRC/openSUSE:Factory/.python-wxWidgets-3_0.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-wxWidgets-3_0"
Thu Aug 2 14:50:36 2018 rev:8 rq:625779 version:3.0.2.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-wxWidgets-3_0/python-wxWidgets-3_0.changes 2018-03-08 10:41:20.752230764 +0100
+++ /work/SRC/openSUSE:Factory/.python-wxWidgets-3_0.new/python-wxWidgets-3_0.changes 2018-08-02 14:50:37.435525229 +0200
@@ -1,0 +2,5 @@
+Fri Jul 20 11:53:28 UTC 2018 - jengelh(a)inai.de
+
+- Remove duplicate fdupes call [bnc#1101908]
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-wxWidgets-3_0.spec ++++++
--- /var/tmp/diff_new_pack.IOOQvU/_old 2018-08-02 14:50:38.467526934 +0200
+++ /var/tmp/diff_new_pack.IOOQvU/_new 2018-08-02 14:50:38.471526940 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-wxWidgets-3_0
#
-# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -21,7 +21,7 @@
Version: 3.0.2.0
Release: 0
Summary: Python Bindings for wxWidgets
-License: GPL-2.0+
+License: GPL-2.0-or-later
Group: Development/Languages/Python
Url: http://www.wxpython.org/
%define wx_version %(echo "%version" | perl -pe 's{\\.\\d+\\.\\d+$}{}')
@@ -40,9 +40,9 @@
BuildRequires: fdupes
BuildRequires: gcc-c++
BuildRequires: perl
+BuildRequires: python-rpm-macros
BuildRequires: python2-devel
BuildRequires: python2-xml
-BuildRequires: python-rpm-macros
BuildRequires: wxWidgets-3_0-devel
BuildRequires: xz
#Requires: wxWidgets-3_0 = %(rpm -q --qf="%%VERSION" wxWidgets-3_0)
@@ -151,8 +151,6 @@
update-alternatives --remove pywxrc %{_bindir}/pywxrc-%{python2_bin_suffix}
fi
-%fdupes %buildroot/%_prefix
-
%files
%defattr(-,root,root)
%doc wxPython/docs/*.txt wxPython/docs/*.html wxPython/docs/screenshots wxPython/licence
1
0
Hello community,
here is the log from the commit of package systemd for openSUSE:Factory checked in at 2018-08-02 14:50:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/systemd (Old)
and /work/SRC/openSUSE:Factory/.systemd.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "systemd"
Thu Aug 2 14:50:30 2018 rev:283 rq:625755 version:237
Changes:
--------
--- /work/SRC/openSUSE:Factory/systemd/systemd-mini.changes 2018-07-13 10:11:33.789760866 +0200
+++ /work/SRC/openSUSE:Factory/.systemd.new/systemd-mini.changes 2018-08-02 14:50:30.699514107 +0200
@@ -1,0 +2,12 @@
+Fri Jul 27 10:23:29 UTC 2018 - fbui(a)suse.com
+
+- Import commit 0350f62a8cf7f151951b6b78337fe3c198b8bf6a
+
+ fbf43a697 core: don't freeze OnCalendar= timer units when the clock goes back a lot (bsc#1090944)
+ 4134ba8b6 man: SystemMaxUse= clarification in journald.conf(5) (bnc#1101040)
+ 78bb2a0c4 socket-util: fix getpeergroups() assert(fd) (#8080) (bsc#1096516)
+ 1753d0420 systemctl: mask always reports the same unit names when different unknown units are passed (bsc#1095973)
+ 50ebf79d7 scsi_id: Fixup prefix for pre-SPC inquiry reply (bsc#1039099)
+ 570f7655b locale-util: on overlayfs FTW_MOUNT causes nftw(3) to not list *any* files
+
+-------------------------------------------------------------------
systemd.changes: same change
Old:
----
systemd-v237+suse.64.gf63623c1f.tar.xz
New:
----
systemd-v237+suse.71.g0350f62a8.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ systemd-mini.spec ++++++
--- /var/tmp/diff_new_pack.qrGLWI/_old 2018-08-02 14:50:32.123516458 +0200
+++ /var/tmp/diff_new_pack.qrGLWI/_new 2018-08-02 14:50:32.127516464 +0200
@@ -26,7 +26,7 @@
##### WARNING: please do not edit this auto generated spec file. Use the systemd.spec! #####
%define mini -mini
%define min_kernel_version 4.5
-%define suse_version +suse.64.gf63623c1f
+%define suse_version +suse.71.g0350f62a8
%bcond_with gnuefi
%if 0%{?bootstrap}
++++++ systemd.spec ++++++
--- /var/tmp/diff_new_pack.qrGLWI/_old 2018-08-02 14:50:32.151516504 +0200
+++ /var/tmp/diff_new_pack.qrGLWI/_new 2018-08-02 14:50:32.151516504 +0200
@@ -24,7 +24,7 @@
%define bootstrap 0
%define mini %nil
%define min_kernel_version 4.5
-%define suse_version +suse.64.gf63623c1f
+%define suse_version +suse.71.g0350f62a8
%bcond_with gnuefi
%if 0%{?bootstrap}
++++++ systemd-v237+suse.64.gf63623c1f.tar.xz -> systemd-v237+suse.71.g0350f62a8.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v237+suse.64.gf63623c1f/man/journald.conf.xml new/systemd-v237+suse.71.g0350f62a8/man/journald.conf.xml
--- old/systemd-v237+suse.64.gf63623c1f/man/journald.conf.xml 2018-06-13 14:50:24.000000000 +0200
+++ new/systemd-v237+suse.71.g0350f62a8/man/journald.conf.xml 2018-07-27 12:20:39.000000000 +0200
@@ -216,7 +216,11 @@
subsequently something else causes the file system to fill up,
journald will stop using more space, but it will not be
removing existing files to reduce the footprint again,
- either.</para>
+ either. Also note that only archived files are deleted to reduce the
+ space occupied by journal files. This means that, in effect, there might
+ still be more space used than <varname>SystemMaxUse=</varname> or
+ <varname>RuntimeMaxUse=</varname> limit after a vacuuming operation is
+ complete.</para>
<para><varname>SystemMaxFileSize=</varname> and
<varname>RuntimeMaxFileSize=</varname> control how large
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v237+suse.64.gf63623c1f/src/basic/locale-util.c new/systemd-v237+suse.71.g0350f62a8/src/basic/locale-util.c
--- old/systemd-v237+suse.64.gf63623c1f/src/basic/locale-util.c 2018-06-13 14:50:24.000000000 +0200
+++ new/systemd-v237+suse.71.g0350f62a8/src/basic/locale-util.c 2018-07-27 12:20:39.000000000 +0200
@@ -320,7 +320,7 @@
return -ENOMEM;
NULSTR_FOREACH(dir, KBD_KEYMAP_DIRS) {
- r = nftw(dir, nftw_cb, 20, FTW_MOUNT|FTW_PHYS|FTW_ACTIONRETVAL);
+ r = nftw(dir, nftw_cb, 20, FTW_PHYS|FTW_ACTIONRETVAL);
if (r == FTW_STOP)
log_debug("Directory not found %s", dir);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v237+suse.64.gf63623c1f/src/basic/socket-util.c new/systemd-v237+suse.71.g0350f62a8/src/basic/socket-util.c
--- old/systemd-v237+suse.64.gf63623c1f/src/basic/socket-util.c 2018-06-13 14:50:24.000000000 +0200
+++ new/systemd-v237+suse.71.g0350f62a8/src/basic/socket-util.c 2018-07-27 12:20:39.000000000 +0200
@@ -1008,7 +1008,7 @@
socklen_t n = sizeof(gid_t) * 64;
_cleanup_free_ gid_t *d = NULL;
- assert(fd);
+ assert(fd >= 0);
assert(ret);
for (;;) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v237+suse.64.gf63623c1f/src/core/timer.c new/systemd-v237+suse.71.g0350f62a8/src/core/timer.c
--- old/systemd-v237+suse.64.gf63623c1f/src/core/timer.c 2018-06-13 14:50:24.000000000 +0200
+++ new/systemd-v237+suse.71.g0350f62a8/src/core/timer.c 2018-07-27 12:20:39.000000000 +0200
@@ -807,12 +807,21 @@
static void timer_time_change(Unit *u) {
Timer *t = TIMER(u);
+ usec_t ts;
assert(u);
if (t->state != TIMER_WAITING)
return;
+ /* If we appear to have triggered in the future, the system clock must
+ * have been set backwards. So let's rewind our own clock and allow
+ * the future trigger(s) to happen again :). Exactly the same as when
+ * you start a timer unit with Persistent=yes. */
+ ts = now(CLOCK_REALTIME);
+ if (t->last_trigger.realtime > ts)
+ t->last_trigger.realtime = ts;
+
log_unit_debug(u, "Time change, recalculating next elapse.");
timer_enter_waiting(t, false);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v237+suse.64.gf63623c1f/src/systemctl/systemctl.c new/systemd-v237+suse.71.g0350f62a8/src/systemctl/systemctl.c
--- old/systemd-v237+suse.64.gf63623c1f/src/systemctl/systemctl.c 2018-06-13 14:50:24.000000000 +0200
+++ new/systemd-v237+suse.71.g0350f62a8/src/systemctl/systemctl.c 2018-07-27 12:20:39.000000000 +0200
@@ -6342,7 +6342,7 @@
if (r < 0)
return r;
if (r == 0)
- log_notice("Unit %s does not exist, proceeding anyway.", *names);
+ log_notice("Unit %s does not exist, proceeding anyway.", *name);
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v237+suse.64.gf63623c1f/src/udev/scsi_id/scsi_serial.c new/systemd-v237+suse.71.g0350f62a8/src/udev/scsi_id/scsi_serial.c
--- old/systemd-v237+suse.64.gf63623c1f/src/udev/scsi_id/scsi_serial.c 2018-06-13 14:50:24.000000000 +0200
+++ new/systemd-v237+suse.71.g0350f62a8/src/udev/scsi_id/scsi_serial.c 2018-07-27 12:20:39.000000000 +0200
@@ -590,7 +590,7 @@
{
int i, j;
- serial[0] = hex_str[id_search->id_type];
+ serial[0] = hex_str[SCSI_ID_NAA];
/* serial has been memset to zero before */
j = strlen(serial); /* j = 1; */
@@ -739,7 +739,7 @@
if (page_83[6] == 0)
return 2;
- serial[0] = hex_str[id_search_list[0].id_type];
+ serial[0] = hex_str[SCSI_ID_NAA];
/*
* The first four bytes contain data, not a descriptor.
*/
1
0
Hello community,
here is the log from the commit of package libzypp for openSUSE:Factory checked in at 2018-08-02 14:50:24
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libzypp (Old)
and /work/SRC/openSUSE:Factory/.libzypp.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libzypp"
Thu Aug 2 14:50:24 2018 rev:401 rq:625747 version:17.5.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/libzypp/libzypp.changes 2018-06-27 10:17:16.005106943 +0200
+++ /work/SRC/openSUSE:Factory/.libzypp.new/libzypp.changes 2018-08-02 14:50:27.859509418 +0200
@@ -1,0 +2,29 @@
+Thu Jul 19 12:57:21 CEST 2018 - ma(a)suse.de
+
+- Prevent the system from sleeping during a commit
+ (fixes openSUSE/zypper#135)
+- RepoManager: Explicitly request repo2solv to generate application
+ pseudo packages.
+- version 17.5.2 (2)
+
+-------------------------------------------------------------------
+Wed Jul 18 10:55:49 CEST 2018 - ma(a)suse.de
+
+- libzypp-devel should not require cmake (bsc#1101349)
+- Avoid zombies from ExternalProgram
+- Update ApiConfig
+- fix typo
+- version 17.5.1 (2)
+
+-------------------------------------------------------------------
+Mon Jul 9 14:43:15 CEST 2018 - ma(a)suse.de
+
+- HardLocksFile: Prevent against empty commit without Target having
+ been been loaded (bsc#1096803)
+- lsof: use '-K i' if lsof supports it (bsc#1099847)
+- PackageProvider: Validate deta rpms before caching (bsc#1091624)
+- PackageProvider: Validate downloaded rpm package signatures
+ before caching (bsc#1091624)
+- version 17.5.0 (2)
+
+-------------------------------------------------------------------
Old:
----
libzypp-17.4.0.tar.bz2
New:
----
libzypp-17.5.2.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libzypp.spec ++++++
--- /var/tmp/diff_new_pack.V9iFze/_old 2018-08-02 14:50:28.583510613 +0200
+++ /var/tmp/diff_new_pack.V9iFze/_new 2018-08-02 14:50:28.583510613 +0200
@@ -17,7 +17,7 @@
Name: libzypp
-Version: 17.4.0
+Version: 17.5.2
Release: 0
Url: git://gitorious.org/opensuse/libzypp.git
Summary: Package, Patch, Pattern, and Product Management
@@ -163,7 +163,6 @@
%else
Requires: hal-devel
%endif
-Requires: cmake
%if 0%{?suse_version}
%if 0%{?suse_version} >= 1100
# Code11+
++++++ libzypp-17.4.0.tar.bz2 -> libzypp-17.5.2.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.4.0/VERSION.cmake new/libzypp-17.5.2/VERSION.cmake
--- old/libzypp-17.4.0/VERSION.cmake 2018-06-25 10:57:11.000000000 +0200
+++ new/libzypp-17.5.2/VERSION.cmake 2018-07-19 13:09:00.000000000 +0200
@@ -60,9 +60,9 @@
#
SET(LIBZYPP_MAJOR "17")
SET(LIBZYPP_COMPATMINOR "2")
-SET(LIBZYPP_MINOR "4")
-SET(LIBZYPP_PATCH "0")
+SET(LIBZYPP_MINOR "5")
+SET(LIBZYPP_PATCH "2")
#
-# LAST RELEASED: 17.4.0 (2)
+# LAST RELEASED: 17.5.2 (2)
# (The number in parenthesis is LIBZYPP_COMPATMINOR)
#=======
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.4.0/libzypp.spec.cmake new/libzypp-17.5.2/libzypp.spec.cmake
--- old/libzypp-17.4.0/libzypp.spec.cmake 2018-03-09 11:26:43.000000000 +0100
+++ new/libzypp-17.5.2/libzypp.spec.cmake 2018-07-17 12:24:54.000000000 +0200
@@ -163,7 +163,6 @@
%else
Requires: hal-devel
%endif
-Requires: cmake
%if 0%{?suse_version}
%if 0%{?suse_version} >= 1100
# Code11+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.4.0/package/libzypp.changes new/libzypp-17.5.2/package/libzypp.changes
--- old/libzypp-17.4.0/package/libzypp.changes 2018-06-25 10:57:11.000000000 +0200
+++ new/libzypp-17.5.2/package/libzypp.changes 2018-07-19 13:09:00.000000000 +0200
@@ -1,4 +1,33 @@
-------------------------------------------------------------------
+Thu Jul 19 12:57:21 CEST 2018 - ma(a)suse.de
+
+- Prevent the system from sleeping during a commit
+ (fixes openSUSE/zypper#135)
+- RepoManager: Explicitly request repo2solv to generate application
+ pseudo packages.
+- version 17.5.2 (2)
+
+-------------------------------------------------------------------
+Wed Jul 18 10:55:49 CEST 2018 - ma(a)suse.de
+
+- libzypp-devel should not require cmake (bsc#1101349)
+- Avoid zombies from ExternalProgram
+- Update ApiConfig
+- fix typo
+- version 17.5.1 (2)
+
+-------------------------------------------------------------------
+Mon Jul 9 14:43:15 CEST 2018 - ma(a)suse.de
+
+- HardLocksFile: Prevent against empty commit without Target having
+ been been loaded (bsc#1096803)
+- lsof: use '-K i' if lsof supports it (bsc#1099847)
+- PackageProvider: Validate deta rpms before caching (bsc#1091624)
+- PackageProvider: Validate downloaded rpm package signatures
+ before caching (bsc#1091624)
+- version 17.5.0 (2)
+
+-------------------------------------------------------------------
Mon Jun 25 10:48:55 CEST 2018 - ma(a)suse.de
- Flags: make it std=c++14 ready
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.4.0/po/de.po new/libzypp-17.5.2/po/de.po
--- old/libzypp-17.4.0/po/de.po 2018-04-17 17:19:03.000000000 +0200
+++ new/libzypp-17.5.2/po/de.po 2018-07-20 11:46:11.000000000 +0200
@@ -4647,7 +4647,7 @@
#: zypp/target/RpmPostTransCollector.cc:160
#, c-format, boost-format
msgid "Executing %posttrans scripts"
-msgstr "%p osttrans scripts werden ausgeführt"
+msgstr "%posttrans scripts werden ausgeführt"
#: zypp/target/TargetImpl.cc:310
msgid " executed"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.4.0/tests/repo/yum/data/extensions/repodata/repomd.xml new/libzypp-17.5.2/tests/repo/yum/data/extensions/repodata/repomd.xml
--- old/libzypp-17.4.0/tests/repo/yum/data/extensions/repodata/repomd.xml 2018-06-25 10:57:11.000000000 +0200
+++ new/libzypp-17.5.2/tests/repo/yum/data/extensions/repodata/repomd.xml 2018-07-20 11:46:11.000000000 +0200
@@ -37,8 +37,8 @@
<data type="suseinfo">
<location href="repodata/suseinfo.xml.gz"/>
- <checksum type="sha">e0b9149c1b7f48c952e9b3ea996669d8d0d9e1e8</checksum>
+ <checksum type="sha">34599f8eed67ec256299d295617ceaf05ae7ebdd</checksum>
<timestamp>1227279057.0</timestamp>
- <open-checksum type="sha">b17c055bef95bca397faffdf028cfa91dd1b24bc</open-checksum>
+ <open-checksum type="sha">a3011438085ac55f06c68053201ea3ded17ee85c</open-checksum>
</data>
</repomd>
Binary files old/libzypp-17.4.0/tests/repo/yum/data/extensions/repodata/suseinfo.xml.gz and new/libzypp-17.5.2/tests/repo/yum/data/extensions/repodata/suseinfo.xml.gz differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.4.0/tests/zypp/base/CMakeLists.txt new/libzypp-17.5.2/tests/zypp/base/CMakeLists.txt
--- old/libzypp-17.4.0/tests/zypp/base/CMakeLists.txt 2017-10-10 12:48:09.000000000 +0200
+++ new/libzypp-17.5.2/tests/zypp/base/CMakeLists.txt 2018-07-16 16:37:05.000000000 +0200
@@ -2,3 +2,4 @@
ADD_TESTS(Sysconfig )
ADD_TESTS(String )
ADD_TESTS( InterProcessMutex InterProcessMutex2 )
+ADD_TESTS(CleanerThread )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.4.0/tests/zypp/base/CleanerThread_test.cc new/libzypp-17.5.2/tests/zypp/base/CleanerThread_test.cc
--- old/libzypp-17.4.0/tests/zypp/base/CleanerThread_test.cc 1970-01-01 01:00:00.000000000 +0100
+++ new/libzypp-17.5.2/tests/zypp/base/CleanerThread_test.cc 2018-07-16 16:37:05.000000000 +0200
@@ -0,0 +1,26 @@
+#include "TestSetup.h"
+#include "zypp/ExternalProgram.h"
+
+#include <chrono>
+#include <thread>
+#include <sys/types.h>
+#include <sys/wait.h>
+
+#define BOOST_TEST_MODULE CleanerThread
+
+using zypp::ExternalProgram;
+
+BOOST_AUTO_TEST_CASE( CleanerThread_default )
+{
+ pid_t pid = -1;
+ {
+ ExternalProgram proc( "bash -c 'sleep 2'", ExternalProgram::Normal_Stderr );
+ BOOST_CHECK( proc.running() );
+ pid = proc.getpid();
+ }
+ std::this_thread::sleep_for( std::chrono::seconds(4) );
+ int status = 0;
+ int res = waitpid( pid, &status, WNOHANG );
+ BOOST_CHECK_EQUAL( res, -1 );
+ BOOST_CHECK_EQUAL( errno, ECHILD );
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.4.0/zypp/APIConfig.h new/libzypp-17.5.2/zypp/APIConfig.h
--- old/libzypp-17.4.0/zypp/APIConfig.h 2017-10-10 12:48:09.000000000 +0200
+++ new/libzypp-17.5.2/zypp/APIConfig.h 2018-07-16 16:37:05.000000000 +0200
@@ -31,18 +31,20 @@
* \endcode
};*/
#if __GNUC__ >= 4
- #define ZYPP_HELPER_DLL_EXPORT __attribute__ ((visibility ("default")))
- #define ZYPP_HELPER_DLL_LOCAL __attribute__ ((visibility ("hidden")))
+ #define ZYPP_DECL_EXPORT __attribute__ ((visibility ("default")))
+ #define ZYPP_DECL_IMPORT __attribute__ ((visibility ("default")))
+ #define ZYPP_DECL_HIDDEN __attribute__ ((visibility ("hidden")))
#else
- #define ZYPP_HELPER_DLL_EXPORT
- #define ZYPP_HELPER_DLL_LOCAL
+ #define ZYPP_DECL_EXPORT
+ #define ZYPP_DECL_IMPORT
+ #define ZYPP_DECL_HIDDEN
#endif
#ifdef ZYPP_DLL //defined if zypp is compiled as DLL
- #define ZYPP_API ZYPP_HELPER_DLL_EXPORT
- #define ZYPP_LOCAL ZYPP_HELPER_DLL_LOCAL
+ #define ZYPP_API ZYPP_DECL_EXPORT
+ #define ZYPP_LOCAL ZYPP_DECL_HIDDEN
#else
- #define ZYPP_API
+ #define ZYPP_API ZYPP_DECL_IMPORT
#define ZYPP_LOCAL
#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.4.0/zypp/CMakeLists.txt new/libzypp-17.5.2/zypp/CMakeLists.txt
--- old/libzypp-17.4.0/zypp/CMakeLists.txt 2018-03-20 17:04:51.000000000 +0100
+++ new/libzypp-17.5.2/zypp/CMakeLists.txt 2018-07-19 08:52:30.000000000 +0200
@@ -72,6 +72,7 @@
ServiceInfo.cc
Signature.cc
SrcPackage.cc
+ ShutdownLock.cc
SysContent.cc
Target.cc
TmpPath.cc
@@ -202,6 +203,7 @@
SET( zypp_base_SRCS
base/InterProcessMutex.cc
base/Backtrace.cc
+ base/CleanerThread.cc
base/DrunkenBishop.cc
base/SerialNumber.cc
base/Random.cc
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.4.0/zypp/CountryCode.cc new/libzypp-17.5.2/zypp/CountryCode.cc
--- old/libzypp-17.4.0/zypp/CountryCode.cc 2017-10-10 12:48:09.000000000 +0200
+++ new/libzypp-17.5.2/zypp/CountryCode.cc 2018-07-16 16:37:05.000000000 +0200
@@ -100,7 +100,7 @@
nval.second = link->second;
}
}
- MIL << "Remember CountryCode '" << code_r << "': '" << nval.second << "'" << endl;
+ MIL << "Remember CountryCode '" << code_r << "': '" << (nval.second?nval.second:"Unknown country") << "'" << endl;
return (_indexMap[index_r] = _codeMap.insert( nval ).first);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.4.0/zypp/ExternalProgram.cc new/libzypp-17.5.2/zypp/ExternalProgram.cc
--- old/libzypp-17.4.0/zypp/ExternalProgram.cc 2017-11-07 16:18:51.000000000 +0100
+++ new/libzypp-17.5.2/zypp/ExternalProgram.cc 2018-07-19 08:52:30.000000000 +0200
@@ -27,6 +27,7 @@
#include "zypp/base/String.h"
#include "zypp/base/Gettext.h"
#include "zypp/ExternalProgram.h"
+#include "zypp/base/CleanerThread_p.h"
using namespace std;
@@ -167,16 +168,22 @@
ExternalProgram::~ExternalProgram()
- {}
+ {
+ if ( running() ) {
+ // we got destructed while the external process is still alive
+ // make sure the zombie is cleaned up once it exits
+ CleanerThread::watchPID( pid );
+ }
+ }
- void ExternalProgram::start_program( const char *const *argv,
+ void ExternalProgram::start_program(const char *const *argv,
const Environment & environment,
Stderr_Disposition stderr_disp,
int stderr_fd,
bool default_locale,
- const char * root )
+ const char * root , bool switch_pgid)
{
pid = -1;
_exitStatus = 0;
@@ -300,6 +307,8 @@
}
else
{
+ if ( switch_pgid )
+ setpgid( 0, 0);
renumber_fd (to_external[0], 0); // set new stdin
::close(from_external[0]); // Belongs to father process
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.4.0/zypp/ExternalProgram.h new/libzypp-17.5.2/zypp/ExternalProgram.h
--- old/libzypp-17.4.0/zypp/ExternalProgram.h 2018-03-23 18:24:02.000000000 +0100
+++ new/libzypp-17.5.2/zypp/ExternalProgram.h 2018-07-19 08:52:30.000000000 +0200
@@ -19,6 +19,7 @@
#include <string>
#include <vector>
+#include "zypp/APIConfig.h"
#include "zypp/base/ExternalDataSource.h"
#include "zypp/Pathname.h"
@@ -225,10 +226,12 @@
/** Remember execution errors like failed fork/exec. */
std::string _execError;
+ protected:
+
void start_program (const char *const *argv, const Environment & environment,
Stderr_Disposition stderr_disp = Normal_Stderr,
int stderr_fd = -1, bool default_locale = false,
- const char* root = NULL);
+ const char* root = NULL, bool switch_pgid = false);
};
@@ -299,6 +302,22 @@
std::string _buffer;
};
+ /** ExternalProgram extended to change the progress group ID after forking.
+ * \see \ref ExternalProgram
+ */
+ class ZYPP_LOCAL ExternalProgramWithSeperatePgid : public ExternalProgram
+ {
+ public:
+ ExternalProgramWithSeperatePgid (const char *const *argv,
+ Stderr_Disposition stderr_disp = Normal_Stderr,
+ int stderr_fd = -1, bool default_locale = false,
+ const Pathname& root = "") : ExternalProgram()
+ {
+ start_program( argv, Environment(), stderr_disp, stderr_fd, default_locale, root.c_str(), true );
+ }
+
+ };
+
} // namespace zypp
#endif // ZYPP_EXTERNALPROGRAM_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.4.0/zypp/FileChecker.h new/libzypp-17.5.2/zypp/FileChecker.h
--- old/libzypp-17.4.0/zypp/FileChecker.h 2017-10-10 12:48:09.000000000 +0200
+++ new/libzypp-17.5.2/zypp/FileChecker.h 2018-07-16 16:37:05.000000000 +0200
@@ -94,7 +94,6 @@
{
public:
typedef SignatureCheckException ExceptionType;
- typedef function<void ( const SignatureFileChecker & checker, const Pathname & file )> OnSigValidated;
public:
/**
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.4.0/zypp/LanguageCode.cc new/libzypp-17.5.2/zypp/LanguageCode.cc
--- old/libzypp-17.4.0/zypp/LanguageCode.cc 2017-10-10 12:48:09.000000000 +0200
+++ new/libzypp-17.5.2/zypp/LanguageCode.cc 2018-07-16 16:37:05.000000000 +0200
@@ -99,7 +99,7 @@
nval.second = link->second;
}
}
- MIL << "Remember LanguageCode '" << code_r << "': '" << nval.second << "'" << endl;
+ MIL << "Remember LanguageCode '" << code_r << "': '" << (nval.second?nval.second:"Unknown language") << "'" << endl;
return (_indexMap[index_r] = _codeMap.insert( nval ).first);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.4.0/zypp/ProvideFilePolicy.h new/libzypp-17.5.2/zypp/ProvideFilePolicy.h
--- old/libzypp-17.4.0/zypp/ProvideFilePolicy.h 2017-10-10 12:48:09.000000000 +0200
+++ new/libzypp-17.5.2/zypp/ProvideFilePolicy.h 2018-07-16 16:37:05.000000000 +0200
@@ -14,16 +14,18 @@
#include "zypp/base/Function.h"
#include "zypp/base/Functional.h"
+#include "zypp/FileChecker.h"
///////////////////////////////////////////////////////////////////
namespace zypp
-{ /////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////
-// CLASS NAME : ProvideFilePolicy
-
- /** Policy for \ref provideFile.
- * Provides callback hook for progress reporting.
- */
+{
+ ///////////////////////////////////////////////////////////////////
+ /// \class ProvideFilePolicy
+ /// \brief Policy for \ref provideFile and \ref RepoMediaAccess.
+ ///
+ /// Provides callback hook for progress reporting and an optional
+ /// \ref FileCecker passed down to the \ref Fetcher.
+ ///////////////////////////////////////////////////////////////////
class ProvideFilePolicy
{
public:
@@ -38,9 +40,16 @@
bool progress( int value ) const;
public:
- typedef function<bool ()> FailOnChecksumErrorCB; ///< Legacy to remain bincompat
+ /** Add a \ref FileCecker passed down to the \ref Fetcher */
+ ProvideFilePolicy & fileChecker( FileChecker fileChecker_r )
+ { _fileChecker = std::move(fileChecker_r); return *this; }
+
+ /** The \ref FileCecker. */
+ const FileChecker & fileChecker() const
+ { return _fileChecker; }
+
private:
- FailOnChecksumErrorCB _failOnChecksumErrorCB; ///< Legacy to remain bincompat
+ FileChecker _fileChecker;
ProgressCB _progressCB;
};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.4.0/zypp/RepoManager.cc new/libzypp-17.5.2/zypp/RepoManager.cc
--- old/libzypp-17.4.0/zypp/RepoManager.cc 2018-04-05 16:06:23.000000000 +0200
+++ new/libzypp-17.5.2/zypp/RepoManager.cc 2018-07-18 12:09:57.000000000 +0200
@@ -1348,6 +1348,7 @@
cmd.push_back( "-o" );
cmd.push_back( solvfile.asString() );
cmd.push_back( "-X" ); // autogenerate pattern from pattern-package
+ cmd.push_back( "-A" ); // autogenerate application pseudo packages
if ( repokind == RepoType::RPMPLAINDIR )
{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.4.0/zypp/Repository.h new/libzypp-17.5.2/zypp/Repository.h
--- old/libzypp-17.4.0/zypp/Repository.h 2017-10-10 12:48:09.000000000 +0200
+++ new/libzypp-17.5.2/zypp/Repository.h 2018-07-16 16:37:05.000000000 +0200
@@ -420,9 +420,9 @@
* MIL << "3 " << satpool << endl;
* \endcode
* \code
- * 1 sat::pool(){0repos|2slov}
- * 2 sat::pool(){1repos|2612slov}
- * 3 sat::pool(){0repos|2slov}
+ * 1 sat::pool(){0repos|2solv}
+ * 2 sat::pool(){1repos|2612solv}
+ * 3 sat::pool(){0repos|2solv}
* \endcode
* Leaving the block without calling <tt>tmprepo.resetDispose();</tt>
* before, will automatically remove the \ref Repo from it's \ref Pool.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.4.0/zypp/ShutdownLock.cc new/libzypp-17.5.2/zypp/ShutdownLock.cc
--- old/libzypp-17.4.0/zypp/ShutdownLock.cc 1970-01-01 01:00:00.000000000 +0100
+++ new/libzypp-17.5.2/zypp/ShutdownLock.cc 2018-07-19 08:52:30.000000000 +0200
@@ -0,0 +1,32 @@
+#include "ShutdownLock_p.h"
+
+#include "zypp/ExternalProgram.h"
+#include <iostream>
+
+zypp::ShutdownLock::ShutdownLock(const std::string &reason)
+{
+ try {
+
+ std::string whyStr = str::form("--why=%s", reason.c_str());
+
+ const char* argv[] =
+ {
+ "/usr/bin/systemd-inhibit",
+ "--what=sleep:shutdown:idle",
+ "--who=zypp",
+ "--mode=block",
+ whyStr.c_str(),
+ "/usr/bin/cat",
+ NULL
+ };
+ _prog = shared_ptr<ExternalProgramWithSeperatePgid>( new ExternalProgramWithSeperatePgid( argv, ExternalProgram::Discard_Stderr ) );
+ } catch (...) {
+ }
+}
+
+zypp::ShutdownLock::~ShutdownLock()
+{
+ if (_prog) {
+ _prog->kill();
+ }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.4.0/zypp/ShutdownLock_p.h new/libzypp-17.5.2/zypp/ShutdownLock_p.h
--- old/libzypp-17.4.0/zypp/ShutdownLock_p.h 1970-01-01 01:00:00.000000000 +0100
+++ new/libzypp-17.5.2/zypp/ShutdownLock_p.h 2018-07-19 08:52:30.000000000 +0200
@@ -0,0 +1,45 @@
+/*---------------------------------------------------------------------\
+| ____ _ __ __ ___ |
+| |__ / \ / / . \ . \ |
+| / / \ V /| _/ _/ |
+| / /__ | | | | | | |
+| /_____||_| |_| |_| |
+| |
+\---------------------------------------------------------------------*/
+/** \file zypp/ShutdownLock_p.h
+ *
+*/
+
+#ifndef ZYPP_SHUTDOWNLOCK_P_H_INCLUDED
+#define ZYPP_SHUTDOWNLOCK_P_H_INCLUDED
+
+#include <string>
+
+#include "zypp/APIConfig.h"
+#include "zypp/base/PtrTypes.h"
+
+namespace zypp
+{
+
+class ExternalProgramWithSeperatePgid;
+
+/**
+ * Attempts to create a lock to prevent the system
+ * from going into hibernate/shutdown. The lock is automatically
+ * released when the object is destroyed.
+ */
+class ZYPP_LOCAL ShutdownLock
+{
+public:
+ ShutdownLock( const std::string &reason );
+ ~ShutdownLock();
+
+private:
+ shared_ptr<ExternalProgramWithSeperatePgid> _prog;
+
+};
+
+}
+
+
+#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.4.0/zypp/base/CleanerThread.cc new/libzypp-17.5.2/zypp/base/CleanerThread.cc
--- old/libzypp-17.4.0/zypp/base/CleanerThread.cc 1970-01-01 01:00:00.000000000 +0100
+++ new/libzypp-17.5.2/zypp/base/CleanerThread.cc 2018-07-16 16:37:05.000000000 +0200
@@ -0,0 +1,78 @@
+/*---------------------------------------------------------------------\
+| ____ _ __ __ ___ |
+| |__ / \ / / . \ . \ |
+| / / \ V /| _/ _/ |
+| / /__ | | | | | | |
+| /_____||_| |_| |_| |
+| |
+\---------------------------------------------------------------------*/
+/** \file zypp/base/CleanerThread.cc
+ */
+
+#include "zypp/base/CleanerThread_p.h"
+#include <algorithm>
+#include <thread>
+#include <mutex>
+#include <condition_variable>
+#include <chrono>
+#include <vector>
+#include <sys/types.h>
+#include <sys/wait.h>
+
+struct CleanerData
+{
+ static CleanerData &instance ()
+ {
+ // C++11 requires that this is thread safe "magic statics"
+ // this is a intentional leak and will live until the application exits
+ static CleanerData *data( new CleanerData );
+ return *data;
+ }
+
+ CleanerData ()
+ {
+ std::thread t ( [&](){
+ this->run();
+ } );
+ t.detach(); //we will control the thread otherwise
+ }
+
+ void run ()
+ {
+ std::unique_lock<std::mutex> lk( _m );
+
+ while ( true )
+ {
+ auto filter = []( pid_t pid ){
+ int status = 0;
+ int res = waitpid( pid, &status, WNOHANG );
+ // we either got an error, or the child has exited, remove it from list
+ bool removeMe = ( res == -1 || res == pid );
+ return removeMe;
+ };
+ _watchedPIDs.erase( std::remove_if( _watchedPIDs.begin(), _watchedPIDs.end(), filter ), _watchedPIDs.end() );
+
+ if ( _watchedPIDs.size() )
+ _cv.wait_for( lk, std::chrono::milliseconds(100) );
+ else
+ _cv.wait( lk );
+ }
+ }
+
+ std::mutex _m; // < locks all data in CleanerData, do not access it without owning the mutex
+ std::condition_variable _cv;
+
+ std::vector<pid_t> _watchedPIDs;
+};
+
+
+void zypp::CleanerThread::watchPID( pid_t pid_r )
+{
+ CleanerData &data = CleanerData::instance();
+ {
+ std::lock_guard<std::mutex> guard( data._m );
+ data._watchedPIDs.push_back( pid_r );
+ }
+ //wake the thread up
+ data._cv.notify_one();
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.4.0/zypp/base/CleanerThread_p.h new/libzypp-17.5.2/zypp/base/CleanerThread_p.h
--- old/libzypp-17.4.0/zypp/base/CleanerThread_p.h 1970-01-01 01:00:00.000000000 +0100
+++ new/libzypp-17.5.2/zypp/base/CleanerThread_p.h 2018-07-16 16:37:05.000000000 +0200
@@ -0,0 +1,28 @@
+/*---------------------------------------------------------------------\
+| ____ _ __ __ ___ |
+| |__ / \ / / . \ . \ |
+| / / \ V /| _/ _/ |
+| / /__ | | | | | | |
+| /_____||_| |_| |_| |
+| |
+\---------------------------------------------------------------------*/
+/** \file zypp/base/CleanerThread_p.h
+ * This file contains private API, it will change without notice.
+ * You have been warned.
+*/
+
+#include <unistd.h>
+
+#include "zypp/APIConfig.h"
+
+namespace zypp
+{
+
+ class ZYPP_LOCAL CleanerThread
+ {
+ public:
+ CleanerThread() = delete;
+ static void watchPID ( pid_t pid_r );
+ };
+
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.4.0/zypp/base/LogControl.cc new/libzypp-17.5.2/zypp/base/LogControl.cc
--- old/libzypp-17.4.0/zypp/base/LogControl.cc 2017-10-10 12:48:09.000000000 +0200
+++ new/libzypp-17.5.2/zypp/base/LogControl.cc 2018-07-16 16:37:05.000000000 +0200
@@ -319,7 +319,13 @@
{
_streamtable[group_r][level_r].reset( new Loglinestream( group_r, level_r ) );
}
- return _streamtable[group_r][level_r]->getStream( file_r, func_r, line_r );
+ std::ostream & ret( _streamtable[group_r][level_r]->getStream( file_r, func_r, line_r ) );
+ if ( !ret )
+ {
+ ret.clear();
+ ret << "---<RESET LOGSTREAM FROM FAILED STATE]" << endl;
+ }
+ return ret;
}
/** Format and write out a logline from Loglinebuf. */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.4.0/zypp/misc/CheckAccessDeleted.cc new/libzypp-17.5.2/zypp/misc/CheckAccessDeleted.cc
--- old/libzypp-17.4.0/zypp/misc/CheckAccessDeleted.cc 2018-06-11 15:21:01.000000000 +0200
+++ new/libzypp-17.5.2/zypp/misc/CheckAccessDeleted.cc 2018-07-16 16:37:05.000000000 +0200
@@ -24,6 +24,7 @@
#include "zypp/base/Regex.h"
#include "zypp/base/IOStream.h"
#include "zypp/base/InputStream.h"
+#include "zypp/target/rpm/librpmDb.h"
#include "zypp/misc/CheckAccessDeleted.h"
@@ -74,6 +75,29 @@
ino_t pidNS;
};
+
+ /** bsc#1099847: Check for lsof version < 4.90 which does not support '-K i'
+ * Just a quick check to allow code15 libzypp runnig in a code12 environment.
+ */
+ bool lsofNoOptKi()
+ {
+ using target::rpm::librpmDb;
+ // RpmDb access is blocked while the Target is not initialized.
+ // Launching the Target just for this query would be an overkill.
+ struct TmpUnblock {
+ TmpUnblock()
+ : _wasBlocked( librpmDb::isBlocked() )
+ { if ( _wasBlocked ) librpmDb::unblockAccess(); }
+ ~TmpUnblock()
+ { if ( _wasBlocked ) librpmDb::blockAccess(); }
+ private:
+ bool _wasBlocked;
+ } tmpUnblock;
+
+ librpmDb::db_const_iterator it;
+ return( it.findPackage( "lsof" ) && it->tag_edition() < Edition("4.90") );
+ }
+
} //namespace
/////////////////////////////////////////////////////////////////
@@ -312,10 +336,9 @@
CheckAccessDeleted::size_type CheckAccessDeleted::check( bool verbose_r )
{
- static const char* argv[] =
- {
- "lsof", "-n", "-FpcuLRftkn0", NULL
- };
+ static const char* argv[] = { "lsof", "-n", "-FpcuLRftkn0", "-K", "i", NULL };
+ if ( lsofNoOptKi() )
+ argv[3] = NULL;
_pimpl->_verbose = verbose_r;
_pimpl->_fromLsofFileMode = false;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.4.0/zypp/repo/PackageProvider.cc new/libzypp-17.5.2/zypp/repo/PackageProvider.cc
--- old/libzypp-17.4.0/zypp/repo/PackageProvider.cc 2017-10-12 18:16:06.000000000 +0200
+++ new/libzypp-17.5.2/zypp/repo/PackageProvider.cc 2018-07-16 16:37:05.000000000 +0200
@@ -41,6 +41,27 @@
namespace repo
{
///////////////////////////////////////////////////////////////////
+ /// \class RpmSigCheckException
+ /// \brief Exception thrown by \ref PackageProviderImpl::rpmSigFileChecker
+ ///////////////////////////////////////////////////////////////////
+ class RpmSigCheckException : public FileCheckException
+ {
+ public:
+ RpmSigCheckException( repo::DownloadResolvableReport::Action action_r, std::string msg_r = "RpmSigCheckException" )
+ : FileCheckException( std::move(msg_r) )
+ , _action( std::move(action_r) )
+ {}
+
+ /** Users final decision how to proceed */
+ const repo::DownloadResolvableReport::Action & action() const
+ { return _action; }
+
+ private:
+ repo::DownloadResolvableReport::Action _action;
+ };
+
+
+ ///////////////////////////////////////////////////////////////////
// class PackageProviderPolicy
///////////////////////////////////////////////////////////////////
@@ -151,6 +172,7 @@
ProvideFilePolicy policy;
policy.progressCB( bind( &Base::progressPackageDownload, this, _1 ) );
+ policy.fileChecker( bind( &Base::rpmSigFileChecker, this, _1 ) );
return _access.provideFile( _package->repoInfo(), loc, policy );
}
@@ -163,8 +185,72 @@
bool progressPackageDownload( int value ) const
{ return report()->progress( value, _package ); }
+
+ /** \name Validate a rpm packages signature.
+ *
+ * This is the \ref FileChecker passed down to the \ref Fetcher to validate
+ * a provided rpm package. This builtin checker includes the workflow
+ * communicating with the user in case of a problem with the package
+ * signature.
+ *
+ * \throws RpmSigCheckException if the package is not accepted, propagating
+ * the users decision how to proceed (\ref DownloadResolvableReport::Action).
+ *
+ * \note This check is also needed, if the the rpm is built locally by using
+ * delta rpms! \ref \see RpmPackageProvider
+ */
+ //@{
+ void rpmSigFileChecker( const Pathname & file_r ) const
+ {
+ const RepoInfo & info = _package->repoInfo();
+ if ( info.pkgGpgCheck() )
+ {
+ UserData userData( "pkgGpgCheck" );
+ ResObject::constPtr roptr( _package ); // gcc6 needs it more explcit. Has problem deducing
+ userData.set( "ResObject", roptr ); // a type for '_package->asKind<ResObject>()'...
+ /*legacy:*/userData.set( "Package", roptr->asKind<Package>() );
+ userData.set( "Localpath", file_r );
+ RpmDb::CheckPackageResult res = packageSigCheck( file_r, info.pkgGpgCheckIsMandatory(), userData );
+
+ // publish the checkresult, even if it is OK. Apps may want to report something...
+ report()->pkgGpgCheck( userData );
+
+ if ( res != RpmDb::CHK_OK )
+ {
+ if ( userData.hasvalue( "Action" ) ) // pkgGpgCheck report provided an user error action
+ {
+ resolveSignatureErrorAction( userData.get( "Action", repo::DownloadResolvableReport::ABORT ) );
+ }
+ else if ( userData.haskey( "Action" ) ) // pkgGpgCheck requests the default problem report (wo. details)
+ {
+ defaultReportSignatureError( res );
+ }
+ else // no advice from user => usedefaults
+ {
+ switch ( res )
+ {
+ case RpmDb::CHK_OK: // Signature is OK
+ break;
+
+ case RpmDb::CHK_NOKEY: // Public key is unavailable
+ case RpmDb::CHK_NOTFOUND: // Signature is unknown type
+ case RpmDb::CHK_FAIL: // Signature does not verify
+ case RpmDb::CHK_NOTTRUSTED: // Signature is OK, but key is not trusted
+ case RpmDb::CHK_ERROR: // File does not exist or can't be opened
+ case RpmDb::CHK_NOSIG: // File is unsigned
+ default:
+ // report problem (w. details), throw if to abort, else retry/ignore
+ defaultReportSignatureError( res, str::Str() << userData.get<RpmDb::CheckPackageDetail>( "CheckPackageDetail" ) );
+ break;
+ }
+ }
+ }
+ }
+ }
+
typedef target::rpm::RpmDb RpmDb;
+ /** Actual rpm package signature check. */
RpmDb::CheckPackageResult packageSigCheck( const Pathname & path_r, bool isMandatory_r, UserData & userData ) const
{
if ( !_target )
@@ -189,22 +275,20 @@
return ret;
}
- /** React on signature verification error user action
+ /** React on signature verification error user action.
* \note: IGNORE == accept insecure file (no SkipRequestException!)
*/
void resolveSignatureErrorAction( repo::DownloadResolvableReport::Action action_r ) const
{
switch ( action_r )
{
- case repo::DownloadResolvableReport::RETRY:
- _retry = true;
- break;
case repo::DownloadResolvableReport::IGNORE:
WAR << _package->asUserString() << ": " << "User requested to accept insecure file" << endl;
break;
default:
+ case repo::DownloadResolvableReport::RETRY:
case repo::DownloadResolvableReport::ABORT:
- ZYPP_THROW(AbortRequestException("User requested to abort"));
+ ZYPP_THROW(RpmSigCheckException(action_r,"Signature verification failed"));
break;
}
}
@@ -218,6 +302,7 @@
msg << "\n" << detail_r;
resolveSignatureErrorAction( report()->problem( _package, repo::DownloadResolvableReport::INVALID, msg.str() ) );
}
+ //@}
protected:
PackageProviderPolicy _policy;
@@ -307,70 +392,6 @@
try
{
ret = doProvidePackage();
-
- if ( info.pkgGpgCheck() )
- {
- UserData userData( "pkgGpgCheck" );
- ResObject::constPtr roptr( _package ); // gcc6 needs it more explcit. Has problem deducing
- userData.set( "ResObject", roptr ); // a type for '_package->asKind<ResObject>()'...
- /*legacy:*/userData.set( "Package", roptr->asKind<Package>() );
- userData.set( "Localpath", ret.value() );
-#if ( 1 )
- bool pkgGpgCheckIsMandatory = info.pkgGpgCheckIsMandatory();
- if ( str::startsWith( VERSION, "16.15." ) )
- {
- // BSC#1038984: For a short period of time, libzypp-16.15.x
- // will silently accept unsigned packages IFF a repositories gpgcheck
- // configuration is explicitly turned OFF like this:
- // gpgcheck = 0
- // repo_gpgcheck = 0
- // pkg_gpgcheck = 1
- // This will allow some already released products to adapt to the behavioral
- // changes introduced by fixing BSC#1038984, while systems with a default
- // configuration (gpgcheck = 1) already benefit from the fix.
- // With libzypp-16.16.x the above configuration will reject unsigned packages
- // as it should.
- if ( pkgGpgCheckIsMandatory && !info.gpgCheck() && !info.repoGpgCheck() )
- pkgGpgCheckIsMandatory = false;
- }
- RpmDb::CheckPackageResult res = packageSigCheck( ret, pkgGpgCheckIsMandatory, userData );
-#else
- RpmDb::CheckPackageResult res = packageSigCheck( ret, info.pkgGpgCheckIsMandatory(), userData );
-#endif
- // publish the checkresult, even if it is OK. Apps may want to report something...
- report()->pkgGpgCheck( userData );
-
- if ( res != RpmDb::CHK_OK )
- {
- if ( userData.hasvalue( "Action" ) ) // pkgGpgCheck report provided an user error action
- {
- resolveSignatureErrorAction( userData.get( "Action", repo::DownloadResolvableReport::ABORT ) );
- }
- else if ( userData.haskey( "Action" ) ) // pkgGpgCheck requests the default problem report (wo. details)
- {
- defaultReportSignatureError( res );
- }
- else // no advice from user => usedefaults
- {
- switch ( res )
- {
- case RpmDb::CHK_OK: // Signature is OK
- break;
-
- case RpmDb::CHK_NOKEY: // Public key is unavailable
- case RpmDb::CHK_NOTFOUND: // Signature is unknown type
- case RpmDb::CHK_FAIL: // Signature does not verify
- case RpmDb::CHK_NOTTRUSTED: // Signature is OK, but key is not trusted
- case RpmDb::CHK_ERROR: // File does not exist or can't be opened
- case RpmDb::CHK_NOSIG: // File is unsigned
- default:
- // report problem (w. details), throw if to abort, else retry/ignore
- defaultReportSignatureError( res, str::Str() << userData.get<RpmDb::CheckPackageDetail>( "CheckPackageDetail" ) );
- break;
- }
- }
- }
- }
}
catch ( const UserRequestException & excpt )
{
@@ -378,6 +399,28 @@
if ( ! _retry )
ZYPP_RETHROW( excpt );
}
+ catch ( const RpmSigCheckException & excpt )
+ {
+ ERR << "Failed to provide Package " << _package << endl;
+ if ( ! _retry )
+ {
+ // Signature verification error was already reported by the
+ // rpmSigFileChecker. Just handle the users action decision:
+ switch ( excpt.action() )
+ {
+ case repo::DownloadResolvableReport::RETRY:
+ _retry = true;
+ break;
+ case repo::DownloadResolvableReport::IGNORE:
+ ZYPP_THROW(SkipRequestException("User requested skip of corrupted file"));
+ break;
+ default:
+ case repo::DownloadResolvableReport::ABORT:
+ ZYPP_THROW(AbortRequestException("User requested to abort"));
+ break;
+ }
+ }
+ }
catch ( const FileCheckException & excpt )
{
ERR << "Failed to provide Package " << _package << endl;
@@ -393,11 +436,10 @@
case repo::DownloadResolvableReport::IGNORE:
ZYPP_THROW(SkipRequestException("User requested skip of corrupted file"));
break;
+ default:
case repo::DownloadResolvableReport::ABORT:
ZYPP_THROW(AbortRequestException("User requested to abort"));
break;
- default:
- break;
}
}
}
@@ -421,22 +463,16 @@
case repo::DownloadResolvableReport::IGNORE:
ZYPP_THROW(SkipRequestException("User requested skip of file", excpt));
break;
+ default:
case repo::DownloadResolvableReport::ABORT:
ZYPP_THROW(AbortRequestException("User requested to abort", excpt));
break;
- default:
- ZYPP_RETHROW( excpt );
- break;
}
}
}
} while ( _retry );
} catch(...){
// bsc#1045735: Be sure no invalid files stay in the cache!
- // TODO: It would be better to provide a filechecker passed to the
- // fetcher that performs the pkgGpgCheck. This way a bad file would be
- // discarded before it's moved to the cache.
- // For now make sure the file gets deleted (even if keeppackages=1).
if ( ! ret->empty() )
ret.setDispose( filesystem::unlink );
throw;
@@ -487,17 +523,10 @@
ManagedFile RpmPackageProvider::doProvidePackage() const
{
- Url url;
- RepoInfo info = _package->repoInfo();
- // FIXME we only support the first url for now.
- if ( info.baseUrlsEmpty() )
- ZYPP_THROW(Exception("No url in repository."));
- else
- url = * info.baseUrlsBegin();
-
// check whether to process patch/delta rpms
+ // FIXME we only check the first url for now.
if ( ZConfig::instance().download_use_deltarpm()
- && ( url.schemeIsDownloading() || ZConfig::instance().download_use_deltarpm_always() ) )
+ && ( _package->repoInfo().url().schemeIsDownloading() || ZConfig::instance().download_use_deltarpm_always() ) )
{
std::list<DeltaRpm> deltaRpms;
_deltas.deltaRpms( _package ).swap( deltaRpms );
@@ -550,18 +579,28 @@
return ManagedFile();
}
- // build the package and put it into the cache
- Pathname destination( _package->repoInfo().packagesPath() / _package->repoInfo().path() / _package->location().filename() );
+ // Build the package
+ Pathname cachedest( _package->repoInfo().packagesPath() / _package->repoInfo().path() / _package->location().filename() );
+ Pathname builddest( cachedest.extend( ".drpm" ) );
- if ( ! applydeltarpm::provide( delta, destination,
+ if ( ! applydeltarpm::provide( delta, builddest,
bind( &RpmPackageProvider::progressDeltaApply, this, _1 ) ) )
{
report()->problemDeltaApply( _("applydeltarpm failed.") );
return ManagedFile();
}
+ ManagedFile builddestCleanup( builddest, filesystem::unlink );
report()->finishDeltaApply();
- return ManagedFile( destination, filesystem::unlink );
+ // Check and move it into the cache
+ // Here the rpm itself is ready. If the packages sigcheck fails, it
+ // makes no sense to return a ManagedFile() and fallback to download the
+ // full rpm. It won't be different. So let the exceptions escape...
+ rpmSigFileChecker( builddest );
+ if ( filesystem::hardlinkCopy( builddest, cachedest ) != 0 )
+ ZYPP_THROW( Exception( str::Str() << "Can't hardlink/copy " << builddest << " to " << cachedest ) );
+
+ return ManagedFile( cachedest, filesystem::unlink );
}
///////////////////////////////////////////////////////////////////
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.4.0/zypp/repo/RepoProvideFile.cc new/libzypp-17.5.2/zypp/repo/RepoProvideFile.cc
--- old/libzypp-17.4.0/zypp/repo/RepoProvideFile.cc 2017-10-12 18:16:06.000000000 +0200
+++ new/libzypp-17.5.2/zypp/repo/RepoProvideFile.cc 2018-07-16 16:37:05.000000000 +0200
@@ -307,7 +307,7 @@
MIL << "Providing file of repo '" << repo_r.alias() << "' from " << url << endl;
shared_ptr<MediaSetAccess> access = _impl->mediaAccessForUrl( url, repo_r );
- fetcher.enqueue( locWithPath );
+ fetcher.enqueue( locWithPath, policy_r.fileChecker() );
fetcher.start( destinationDir, *access );
// reached if no exception has been thrown, so this is the correct file
@@ -322,12 +322,10 @@
}
catch ( const UserRequestException & excpt )
{
- ZYPP_CAUGHT( excpt );
ZYPP_RETHROW( excpt );
}
catch ( const FileCheckException & excpt )
{
- ZYPP_CAUGHT( excpt );
ZYPP_RETHROW( excpt );
}
catch ( const Exception &e )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.4.0/zypp/sat/Pool.cc new/libzypp-17.5.2/zypp/sat/Pool.cc
--- old/libzypp-17.4.0/zypp/sat/Pool.cc 2017-10-10 12:48:09.000000000 +0200
+++ new/libzypp-17.5.2/zypp/sat/Pool.cc 2018-07-16 16:37:05.000000000 +0200
@@ -253,7 +253,7 @@
return str << "sat::pool(" << obj.serial() << ")["
<< obj.capacity() << "]{"
<< obj.reposSize() << "repos|"
- << obj.solvablesSize() << "slov}";
+ << obj.solvablesSize() << "solv}";
}
/////////////////////////////////////////////////////////////////
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.4.0/zypp/target/HardLocksFile.h new/libzypp-17.5.2/zypp/target/HardLocksFile.h
--- old/libzypp-17.4.0/zypp/target/HardLocksFile.h 2017-10-10 12:48:09.000000000 +0200
+++ new/libzypp-17.5.2/zypp/target/HardLocksFile.h 2018-07-16 16:37:05.000000000 +0200
@@ -73,7 +73,11 @@
void setData( const Data & data_r )
{
if ( !_dataPtr )
+ {
+ if ( data_r.empty() )
+ return; // bsc#1096803: Prevent against empty commit without Target having been been loaded (!_dataPtr )
_dataPtr.reset( new Data );
+ }
if ( differs( *_dataPtr, data_r ) )
{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.4.0/zypp/target/TargetImpl.cc new/libzypp-17.5.2/zypp/target/TargetImpl.cc
--- old/libzypp-17.4.0/zypp/target/TargetImpl.cc 2018-06-18 16:24:26.000000000 +0200
+++ new/libzypp-17.5.2/zypp/target/TargetImpl.cc 2018-07-19 08:52:30.000000000 +0200
@@ -38,6 +38,7 @@
#include "zypp/RepoStatus.h"
#include "zypp/ExternalProgram.h"
#include "zypp/Repository.h"
+#include "zypp/ShutdownLock_p.h"
#include "zypp/ResFilters.h"
#include "zypp/HistoryLog.h"
@@ -1095,6 +1096,7 @@
{
// ----------------------------------------------------------------- //
ZYppCommitPolicy policy_r( policy_rX );
+ ShutdownLock lck("Zypp commit running.");
// Fake outstanding YCP fix: Honour restriction to media 1
// at installation, but install all remaining packages if post-boot.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.4.0/zypp/ui/Selectable.cc new/libzypp-17.5.2/zypp/ui/Selectable.cc
--- old/libzypp-17.4.0/zypp/ui/Selectable.cc 2017-10-10 12:48:09.000000000 +0200
+++ new/libzypp-17.5.2/zypp/ui/Selectable.cc 2018-07-18 17:13:04.000000000 +0200
@@ -155,6 +155,21 @@
Selectable::picklist_iterator Selectable::picklistEnd() const
{ return _pimpl->picklistEnd(); }
+ Selectable::picklist_size_type Selectable::picklistPos( const PoolItem & pi_r ) const
+ { return picklistPos( pi_r.satSolvable() ); }
+
+ Selectable::picklist_size_type Selectable::picklistPos( const sat::Solvable & solv_r ) const
+ {
+ picklist_size_type idx = picklist_size_type(0);
+ for ( const auto & pi : picklist() )
+ {
+ if ( pi == solv_r )
+ return idx;
+ ++idx;
+ }
+ return picklistNoPos;
+ }
+
////////////////////////////////////////////////////////////////////////
bool Selectable::isUnmaintained() const
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.4.0/zypp/ui/Selectable.h new/libzypp-17.5.2/zypp/ui/Selectable.h
--- old/libzypp-17.4.0/zypp/ui/Selectable.h 2017-10-10 12:48:09.000000000 +0200
+++ new/libzypp-17.5.2/zypp/ui/Selectable.h 2018-07-16 16:37:05.000000000 +0200
@@ -277,6 +277,18 @@
picklist_iterator picklistEnd() const;
inline Iterable<picklist_iterator> picklist() const
{ return makeIterable( picklistBegin(), picklistEnd() ); }
+
+ /** Returned by \ref picklistPos if the Item does not belong to the picklist. */
+ static constexpr const picklist_size_type picklistNoPos = picklist_size_type(-1);
+
+ /** Return the position of \a pi_r in the piclist or \ref picklistNoPos.
+ * \note \ref picklistNoPos is returned if you pass an installed Poolitem,
+ * whci has an \ref identicalAvailableObj.
+ */
+ picklist_size_type picklistPos( const PoolItem & pi_r ) const;
+
+ /** \overload taking a sat::Solvable */
+ picklist_size_type picklistPos( const sat::Solvable & solv_r ) const;
//@}
////////////////////////////////////////////////////////////////////////
1
0
Hello community,
here is the log from the commit of package baobab for openSUSE:Factory checked in at 2018-08-02 14:50:18
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/baobab (Old)
and /work/SRC/openSUSE:Factory/.baobab.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "baobab"
Thu Aug 2 14:50:18 2018 rev:41 rq:625744 version:3.28.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/baobab/baobab.changes 2018-03-30 11:57:30.647239180 +0200
+++ /work/SRC/openSUSE:Factory/.baobab.new/baobab.changes 2018-08-02 14:50:19.311495311 +0200
@@ -1,0 +2,6 @@
+Thu Jul 26 22:37:48 UTC 2018 - bjorn.lie(a)gmail.com
+
+- Add baobab-fix-gschema-translations.patch: build: Fix gschema
+ translations.
+
+-------------------------------------------------------------------
New:
----
baobab-fix-gschema-translations.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ baobab.spec ++++++
--- /var/tmp/diff_new_pack.x8og5T/_old 2018-08-02 14:50:19.927496327 +0200
+++ /var/tmp/diff_new_pack.x8og5T/_new 2018-08-02 14:50:19.931496334 +0200
@@ -29,6 +29,8 @@
Source0: https://download.gnome.org/sources/baobab/3.28/%{name}-%{version}.tar.xz
# PATCH-FIX-UPSTREAM baobab-fix-linguas-build-issues.patch bgo#794381 bgo#794449 bjorn.lie(a)gmail.com -- Fix various linguas issues.
Patch0: baobab-fix-linguas-build-issues.patch
+# PATCH-FIX-UPSTREAM baobab-fix-gschema-translations.patch -- build: Fix gschema translations
+Patch1: baobab-fix-gschema-translations.patch
BuildRequires: fdupes
BuildRequires: meson
BuildRequires: pkgconfig
@@ -56,6 +58,7 @@
%prep
%setup -q
%patch0 -p1
+%patch1 -p1
%build
%meson
@@ -70,7 +73,7 @@
%files
%license COPYING COPYING.docs
%doc AUTHORS NEWS README
-%doc %{_datadir}/help/C/%{name}/
+%{_datadir}/help/C/%{name}/
%{_bindir}/%{name}
%{_mandir}/man1/%{name}.1%{?ext_man}
%{_datadir}/icons/hicolor/*/apps/%{name}*.*
++++++ baobab-fix-gschema-translations.patch ++++++
>From 80f7e1c144103d52a877f2d42db6a427867591f6 Mon Sep 17 00:00:00 2001
From: Ondrej Holy <oholy(a)redhat.com>
Date: Thu, 14 Jun 2018 15:22:15 +0200
Subject: [PATCH] build: Fix gschema translations
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
After meson port, translations are merged in gschema file, which doesn't
work:
$ LANG=en_US gsettings describe org.gnome.baobab.preferences excluded-uris
Una lista d'URI t'as particiones que cal excluir de l'anal�s.
Translations should not be merged in gschema files and also I don't see any
other gschema file with merged translations in /usr/share/glib-2.0/schemas/.
Let's install gschema file as is. After this change, translations works as
expected.
---
data/meson.build | 7 ++-----
....baobab.gschema.xml.in => org.gnome.baobab.gschema.xml} | 0
po/POTFILES.in | 2 +-
3 files changed, 3 insertions(+), 6 deletions(-)
rename data/{org.gnome.baobab.gschema.xml.in => org.gnome.baobab.gschema.xml} (100%)
diff --git a/data/meson.build b/data/meson.build
index 5b1ef00..98d1d69 100644
--- a/data/meson.build
+++ b/data/meson.build
@@ -22,11 +22,8 @@ appdata_file = i18n.merge_file(
install_dir: join_paths(get_option('datadir'), 'metainfo'),
)
-gschema_file = i18n.merge_file(
- input: 'org.gnome.baobab.gschema.xml.in',
- output: 'org.gnome.baobab.gschema.xml',
- po_dir: '../po',
- install: true,
+install_data (
+ 'org.gnome.baobab.gschema.xml',
install_dir: join_paths(get_option('datadir'), 'glib-2.0', 'schemas')
)
diff --git a/data/org.gnome.baobab.gschema.xml.in b/data/org.gnome.baobab.gschema.xml
similarity index 100%
rename from data/org.gnome.baobab.gschema.xml.in
rename to data/org.gnome.baobab.gschema.xml
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 0c9452a..f3d6521 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -2,7 +2,7 @@
# Please keep this file sorted alphabetically.
data/org.gnome.baobab.appdata.xml.in
data/org.gnome.baobab.desktop.in
-data/org.gnome.baobab.gschema.xml.in
+data/org.gnome.baobab.gschema.xml
src/baobab-application.vala
src/baobab-cellrenderers.vala
src/baobab-location-list.ui
--
2.17.1
1
0
Hello community,
here is the log from the commit of package vino for openSUSE:Factory checked in at 2018-08-02 14:50:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/vino (Old)
and /work/SRC/openSUSE:Factory/.vino.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "vino"
Thu Aug 2 14:50:13 2018 rev:99 rq:625741 version:3.22.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/vino/vino.changes 2018-03-08 10:45:33.475131360 +0100
+++ /work/SRC/openSUSE:Factory/.vino.new/vino.changes 2018-08-02 14:50:15.095488354 +0200
@@ -1,0 +2,18 @@
+Mon Jul 9 08:34:28 UTC 2018 - bjorn.lie(a)gmail.com
+
+- Drop NetworkManager-devel BuildRequires and stop passing
+ with-network-manager: No longer needed, nor recognized.
+- Stop passing with-libnotify and with-gnome-keyring to configure,
+ no longer recognized.
+- Modernize spec, use autosetup and make_build macros.
+- Drop glib2_gsettings_schema_requires macro and stop post(un)
+ handling of glib2_gsettings_schema_post(un), no longer needed.
+- Drop update-desktop-files BuildRequires and no longer use
+ suse_update_desktop_file macro, no longer needed.
+- Replace telepathy-glib-devel with pkgconfig(telepathy-glib)
+ BuildRequires.
+- Add explicit pkgconfig(dbus-glib-1), pkgconfig(gio-unix-2.0),
+ pkgconfig(glib-2.0) and pkgconfig(gtk+-x11-3.0) BuildRequires:
+ align with what configure checks for.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ vino.spec ++++++
--- /var/tmp/diff_new_pack.yw6OP9/_old 2018-08-02 14:50:15.875489641 +0200
+++ /var/tmp/diff_new_pack.yw6OP9/_new 2018-08-02 14:50:15.879489648 +0200
@@ -23,27 +23,29 @@
License: GPL-2.0-or-later
Group: Productivity/Networking/Other
URL: http://www.gnome.org
-Source: http://download.gnome.org/sources/vino/3.22/%{name}-%{version}.tar.xz
-BuildRequires: NetworkManager-devel
+Source0: https://download.gnome.org/sources/vino/3.22/%{name}-%{version}.tar.xz
+
BuildRequires: fdupes
BuildRequires: intltool >= 0.50.0
BuildRequires: libavahi-glib-devel
BuildRequires: libgcrypt-devel
BuildRequires: libjpeg-devel
BuildRequires: pkgconfig
-BuildRequires: telepathy-glib-devel >= 0.18.0
BuildRequires: translation-update-upstream
-BuildRequires: update-desktop-files
+BuildRequires: pkgconfig(dbus-glib-1)
+BuildRequires: pkgconfig(gio-unix-2.0)
+BuildRequires: pkgconfig(glib-2.0) >= 2.32.0
BuildRequires: pkgconfig(gnutls) >= 2.2.0
BuildRequires: pkgconfig(gtk+-3.0)
+BuildRequires: pkgconfig(gtk+-x11-3.0) >= 3.0.0
BuildRequires: pkgconfig(ice)
BuildRequires: pkgconfig(libnotify) >= 0.7.0
BuildRequires: pkgconfig(libsecret-1)
BuildRequires: pkgconfig(sm)
BuildRequires: pkgconfig(systemd)
+BuildRequires: pkgconfig(telepathy-glib) >= 0.18.0
BuildRequires: pkgconfig(xtst)
Recommends: %{name}-lang
-%glib2_gsettings_schema_requires
%description
A VNC Server for GNOME
@@ -51,36 +53,27 @@
%lang_package
%prep
-%setup -q
+%autosetup -p1
translation-update-upstream
%build
-%configure\
+%configure \
--libexecdir=%{_libexecdir}/vino \
--enable-ipv6 \
--with-telepathy \
- --with-libnotify \
- --with-network-manager \
- --with-gnome-keyring \
--with-gnutls \
--with-gcrypt \
--with-avahi \
--with-zlib \
- --with-jpeg
-make %{?_smp_mflags}
+ --with-jpeg \
+ %{nil}
+%make_build
%install
%make_install
-%suse_update_desktop_file vino-server
%find_lang %{name} %{?no_lang_C}
%fdupes %{buildroot}
-%post
-%glib2_gsettings_schema_post
-
-%postun
-%glib2_gsettings_schema_postun
-
%files
%license COPYING
%doc AUTHORS ChangeLog NEWS README
1
0
Hello community,
here is the log from the commit of package virglrenderer for openSUSE:Factory checked in at 2018-08-02 14:50:07
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/virglrenderer (Old)
and /work/SRC/openSUSE:Factory/.virglrenderer.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "virglrenderer"
Thu Aug 2 14:50:07 2018 rev:5 rq:625740 version:0.6.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/virglrenderer/virglrenderer.changes 2017-11-11 14:17:22.908091297 +0100
+++ /work/SRC/openSUSE:Factory/.virglrenderer.new/virglrenderer.changes 2018-08-02 14:50:08.471477428 +0200
@@ -1,0 +2,6 @@
+Thu Jul 26 16:13:35 CEST 2018 - vliaskovitis(a)suse.com
+
+- vrend: Increase VREND_MAX_CTX to 64. (bsc#1102749)
+ 0002-1fdafd62-vrend-Increase-VREND_MAX_CTX-to-64.patch
+
+-------------------------------------------------------------------
New:
----
0002-1fdafd62-vrend-Increase-VREND_MAX_CTX-to-64.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ virglrenderer.spec ++++++
--- /var/tmp/diff_new_pack.pmVrHZ/_old 2018-08-02 14:50:09.067478411 +0200
+++ /var/tmp/diff_new_pack.pmVrHZ/_new 2018-08-02 14:50:09.071478418 +0200
@@ -1,7 +1,7 @@
#
# spec file for package virglrenderer
#
-# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -29,6 +29,8 @@
Source2: %{name}.keyring
# PATCH-FIX-UPSTREAM 0001-737c3350-renderer-fix-memory-leak-in-vertex-elements-state-cr.patch
Patch0001: 0001-737c3350-renderer-fix-memory-leak-in-vertex-elements-state-cr.patch
+# PATCH-FIX-UPSTREAM 0002-1fdafd62-vrend-Increase-VREND_MAX_CTX-to-64.patch
+Patch0002: 0002-1fdafd62-vrend-Increase-VREND_MAX_CTX-to-64.patch
BuildRequires: Mesa-devel
BuildRequires: autoconf
BuildRequires: automake
@@ -81,6 +83,7 @@
%prep
%setup -q
%patch0001 -p1
+%patch0002 -p1
%build
sed -i -e 's|@CODE_COVERAGE_RULES@| |g' Makefile.am
++++++ 0002-1fdafd62-vrend-Increase-VREND_MAX_CTX-to-64.patch ++++++
>From 90bddda133cae9dd7b5d222fd87f39becd7b2e87 Mon Sep 17 00:00:00 2001
From: Lepton Wu <lepton(a)chromium.org>
Date: Wed, 14 Mar 2018 14:35:00 -0700
Subject: [PATCH] vrend: Increase VREND_MAX_CTX to 64.
The current default value is not big enough for running android app
inside Chrome OS under qemu+virgl. Increase it to 64 so we can run
several android apps inside ARC++ under Chrome OS in qemu+virgl at
same time.
Signed-off-by: Lepton Wu <lepton(a)chromium.org>
Signed-off-by: Dave Airlie <airlied(a)redhat.com>
---
src/vrend_decode.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/vrend_decode.c b/src/vrend_decode.c
index 11ac1ed..68419ea 100644
--- a/src/vrend_decode.c
+++ b/src/vrend_decode.c
@@ -47,7 +47,7 @@ struct vrend_decode_ctx {
struct vrend_decoder_state ids, *ds;
struct vrend_context *grctx;
};
-#define VREND_MAX_CTX 16
+#define VREND_MAX_CTX 64
static struct vrend_decode_ctx *dec_ctx[VREND_MAX_CTX];
static inline uint32_t get_buf_entry(struct vrend_decode_ctx *ctx, uint32_t offset)
--
2.17.0
1
0
Hello community,
here is the log from the commit of package ffmpeg-4 for openSUSE:Factory checked in at 2018-08-02 14:50:00
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ffmpeg-4 (Old)
and /work/SRC/openSUSE:Factory/.ffmpeg-4.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ffmpeg-4"
Thu Aug 2 14:50:00 2018 rev:2 rq:625732 version:4.0.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/ffmpeg-4/ffmpeg-4.changes 2018-07-12 09:16:37.806205595 +0200
+++ /work/SRC/openSUSE:Factory/.ffmpeg-4.new/ffmpeg-4.changes 2018-08-02 14:50:02.083466893 +0200
@@ -1,0 +2,37 @@
+Fri Jul 27 08:56:56 UTC 2018 - tchvatal(a)suse.com
+
+- Reduce the optional conditional for the SLE12 backports to
+ cover everything, most of the packages in old codestreams were
+ not really ready as they need additional baselibs/etc.
+ * Since these are new features user will simply wait or use TW
+
+-------------------------------------------------------------------
+Fri Jul 27 07:03:06 UTC 2018 - jengelh(a)inai.de
+
+- Enable "kmsgrab" input device
+
+-------------------------------------------------------------------
+Thu Jul 26 08:09:32 UTC 2018 - tchvatal(a)suse.com
+
+- Redo the nvidia condition based on review feeback
+
+-------------------------------------------------------------------
+Wed Jul 25 08:30:56 UTC 2018 - tchvatal(a)suse.com
+
+- Do not condition nvidia based on BUILD_ORIG all the support is in
+ TW only and not on different instances as such safeguard it with
+ version check only bsc#1102532
+
+-------------------------------------------------------------------
+Wed Jul 18 12:13:38 UTC 2018 - tchvatal(a)suse.com
+
+- Add new bconds to build on SLE12 backports project without
+ requiring extra packages:
+ * %bcond_without codec2
+ * %bcond_without bs2b
+ * %bcond_without lv2
+ * %bcond_without rubberband
+ * %bcond_without soxr
+ * %bcond_without zmq
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ffmpeg-4.spec ++++++
--- /var/tmp/diff_new_pack.rJVdG6/_old 2018-08-02 14:50:03.287468879 +0200
+++ /var/tmp/diff_new_pack.rJVdG6/_new 2018-08-02 14:50:03.291468886 +0200
@@ -38,8 +38,13 @@
%{preamble_string} ffmpeg-private-devel %{comparator} %{conflicts_version} \
%{nil}
+# nvidia adds library present only after leap15
+%bcond_with nvcodec
%if 0%{?BUILD_ORIG}
%bcond_without nvidia
+%if 0%{?suse_version} > 1500
+%bcond_without nvcodec
+%endif
%else
%bcond_with nvidia
%endif
@@ -61,10 +66,22 @@
%bcond_without mysofa
%bcond_without vidstab
%bcond_without srt
+%bcond_without codec2
+%bcond_without bs2b
+%bcond_without lv2
+%bcond_without rubberband
+%bcond_without soxr
+%bcond_without zmq
%else
%bcond_with mysofa
%bcond_with vidstab
%bcond_with srt
+%bcond_with codec2
+%bcond_with bs2b
+%bcond_with lv2
+%bcond_with rubberband
+%bcond_with soxr
+%bcond_with zmq
%endif
%if 0%{?suse_version} >= 1500
@@ -110,7 +127,9 @@
BuildRequires: pkgconfig(alsa)
BuildRequires: pkgconfig(bzip2)
BuildRequires: pkgconfig(celt) >= 0.11.0
+%if %{with codec2}
BuildRequires: pkgconfig(codec2)
+%endif
BuildRequires: pkgconfig(enca)
BuildRequires: pkgconfig(fontconfig) >= 2.4.2
BuildRequires: pkgconfig(freetype2)
@@ -119,10 +138,13 @@
BuildRequires: pkgconfig(jack)
BuildRequires: pkgconfig(libass)
BuildRequires: pkgconfig(libbluray)
+%if %{with bs2b}
BuildRequires: pkgconfig(libbs2b)
+%endif
BuildRequires: pkgconfig(libcdio)
BuildRequires: pkgconfig(libcdio_paranoia)
BuildRequires: pkgconfig(libdc1394-2)
+BuildRequires: pkgconfig(libdrm)
BuildRequires: pkgconfig(libgme)
BuildRequires: pkgconfig(liboil-0.3) >= 0.3.15
BuildRequires: pkgconfig(libopenjp2) >= 2.1.0
@@ -138,13 +160,21 @@
BuildRequires: pkgconfig(libva) >= 0.35.0
BuildRequires: pkgconfig(libwebp) >= 0.4
BuildRequires: pkgconfig(libxml-2.0)
+%if %{with zmq}
BuildRequires: pkgconfig(libzmq)
+%endif
+%if %{with lv2}
BuildRequires: pkgconfig(lilv-0)
+%endif
BuildRequires: pkgconfig(ogg)
BuildRequires: pkgconfig(opus)
+%if %{with rubberband}
BuildRequires: pkgconfig(rubberband)
+%endif
BuildRequires: pkgconfig(sdl2)
+%if %{with soxr}
BuildRequires: pkgconfig(soxr)
+%endif
BuildRequires: pkgconfig(speex)
%if %{with srt}
BuildRequires: pkgconfig(srt)
@@ -176,7 +206,7 @@
%if %{with librtmp}
BuildRequires: pkgconfig(librtmp)
%endif
-%if %{with nvidia}
+%if %{with nvcodec}
BuildRequires: pkgconfig(ffnvcodec)
%endif
%if %{with xvid}
@@ -555,8 +585,11 @@
--enable-libbluray \
--enable-libcelt \
--enable-libcdio \
+%if %{with codec2}
--enable-libcodec2 \
+%endif
--enable-libdc1394 \
+ --enable-libdrm \
--enable-libfontconfig \
--enable-libfreetype \
--enable-libfribidi \
@@ -572,8 +605,12 @@
%endif
--enable-libopus \
--enable-libpulse \
+%if %{with rubberband}
--enable-librubberband \
+%endif
+%if %{with soxr}
--enable-libsoxr \
+%endif
--enable-libspeex \
--enable-libssh \
%if %{with srt}
@@ -592,9 +629,13 @@
%if %{with zimg}
--enable-libzimg \
%endif
+%if %{with zmq}
--enable-libzmq \
+%endif
--enable-libzvbi \
+%if %{with lv2}
--enable-lv2 \
+%endif
--enable-vaapi \
--enable-vdpau \
%if %{with fdk_aac}
1
0
Hello community,
here is the log from the commit of package libinput for openSUSE:Factory checked in at 2018-08-02 14:49:55
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libinput (Old)
and /work/SRC/openSUSE:Factory/.libinput.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libinput"
Thu Aug 2 14:49:55 2018 rev:65 rq:625692 version:1.11.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/libinput/libinput.changes 2018-07-14 20:14:34.126552391 +0200
+++ /work/SRC/openSUSE:Factory/.libinput.new/libinput.changes 2018-08-02 14:49:57.491459323 +0200
@@ -1,0 +2,7 @@
+Fri Jul 27 06:39:22 UTC 2018 - kbabioch(a)suse.com
+
+- Update to 1.11.3
+ * Improve HP Chromebook 14 pressure ranges
+ * Several documentation updates
+
+-------------------------------------------------------------------
Old:
----
libinput-1.11.2.tar.xz
libinput-1.11.2.tar.xz.sig
New:
----
libinput-1.11.3.tar.xz
libinput-1.11.3.tar.xz.sig
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libinput.spec ++++++
--- /var/tmp/diff_new_pack.YBFE4q/_old 2018-08-02 14:49:58.095460319 +0200
+++ /var/tmp/diff_new_pack.YBFE4q/_new 2018-08-02 14:49:58.099460326 +0200
@@ -22,7 +22,7 @@
Name: libinput
%define lname libinput10
-Version: 1.11.2
+Version: 1.11.3
Release: 0
Summary: Input device and event processing library
License: MIT
++++++ libinput-1.11.2.tar.xz -> libinput-1.11.3.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinput-1.11.2/README.md new/libinput-1.11.3/README.md
--- old/libinput-1.11.2/README.md 2018-07-03 06:47:19.000000000 +0200
+++ new/libinput-1.11.3/README.md 2018-07-25 06:51:26.000000000 +0200
@@ -11,6 +11,17 @@
processing includes scaling touch coordinates, generating
relative pointer events from touchpads, pointer acceleration, etc.
+User documentation
+------------------
+
+Documentation explaining features available in libinput is available
+[here](https://wayland.freedesktop.org/libinput/doc/latest/pages.html).
+
+This includes the [FAQ](https://wayland.freedesktop.org/libinput/doc/latest/faq.html)
+and the instructions on
+[reporting bugs](https://wayland.freedesktop.org/libinput/doc/latest/reporting_bugs.ht….
+
+
Architecture
------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinput-1.11.2/doc/faqs.dox new/libinput-1.11.3/doc/faqs.dox
--- old/libinput-1.11.2/doc/faqs.dox 2018-07-03 06:47:19.000000000 +0200
+++ new/libinput-1.11.3/doc/faqs.dox 2018-07-25 06:51:26.000000000 +0200
@@ -220,4 +220,27 @@
functionality that relies on the timer may be impeded (e.g. palms are not
detected as they should be).
+@section faq_wayland Is libinput required for Wayland?
+
+Technically - no. But for your use-case - probably.
+
+Wayland is a display server communication protocol. libinput is a low-level
+library to simplify handling input devices and their events. They have no
+direct connection. As a technical analogy, the question is similar to "is
+glibc required for HTTP", or (stretching the analogy a bit further) "Is a
+pen required to write English". No, it isn't.
+
+You can use libinput without a Wayland compositor, you can
+write a Wayland compositor without libinput. Until 2018 the most common use
+of libinput is with the X.Org X server through the xf86-input-libinput
+driver. As Wayland compositors become more commonplace they will eventually
+overtake X.
+
+So why "for your use-case - probably"? All general-purpose Wayland
+compositors use libinput for their input stack. Wayland compositors that
+are more specialized (e.g. in-vehicle infotainment or IVI) can handle input
+devices directly but the compositor you want to use
+on your desktop needs an input stack that is more complex. And right now,
+libinput is the only input stack that exists for this use-case.
+
*/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinput-1.11.2/doc/page-hierarchy.dox new/libinput-1.11.3/doc/page-hierarchy.dox
--- old/libinput-1.11.2/doc/page-hierarchy.dox 2018-07-03 06:47:19.000000000 +0200
+++ new/libinput-1.11.3/doc/page-hierarchy.dox 2018-07-25 06:51:26.000000000 +0200
@@ -35,6 +35,10 @@
- @subpage tablet-support
+@page other_devices Other devices
+
+- @subpage switches
+
@page general General
- @subpage udev_config
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinput-1.11.2/doc/switches.dox new/libinput-1.11.3/doc/switches.dox
--- old/libinput-1.11.2/doc/switches.dox 2018-07-03 06:47:19.000000000 +0200
+++ new/libinput-1.11.3/doc/switches.dox 2018-07-25 06:51:26.000000000 +0200
@@ -1,9 +1,9 @@
/**
@page switches Switches
-libinput supports a couple of switches. Unlike button events that come in
-press and release pairs, switches are usually toggled once and left at the
-setting for an extended period of time.
+libinput supports the lid and tablet-mode switches. Unlike button events
+that come in press and release pairs, switches are usually toggled once and
+left at the setting for an extended period of time.
Only some switches are handled by libinput, see @ref libinput_switch for a
list of supported switches. Switch events are exposed to the caller, but
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinput-1.11.2/doc/tools.dox new/libinput-1.11.3/doc/tools.dox
--- old/libinput-1.11.2/doc/tools.dox 2018-07-03 06:47:19.000000000 +0200
+++ new/libinput-1.11.3/doc/tools.dox 2018-07-25 06:51:26.000000000 +0200
@@ -202,6 +202,35 @@
More arguments are available, see the **libinput-record(1)** and
**libinput-replay(1)** man pages.
+@subsection libinput-record-autorestart libinput record's autorestart feature
+
+`libinput record` often collects thousands of events per minute. However,
+the output of `libinput record` usually needs to be visually inspected
+or replayed in realtime on a developer machine. It is thus imperative that
+the event log is kept as short as possible.
+
+For bugs that are difficult to reproduce use
+`libinput record --autorestart=2 --output-file=recording.yml`.
+All events will be recorded to a file named
+`recording.yml.<current-date-and-time>` and whenever the device does not
+send events for 2 seconds, a new file is created. This helps to keep
+individual recordings short.
+
+To use the `--autorestart` option correctly:
+- run `libinput record --autorestart=2 --output-file=<somefilename>.yml`.
+ You may provide a timeout other than 2 if needed.
+- use the device to reproduce the bug, pausing frequently for 2s and longer
+ to rotate the logs
+- when the bug triggers, **immediately stop using the device** and wait
+ several seconds for the log to rotate
+- Ctrl+C the `libinput record` process without using the device
+ again. Attach the **last recording** to the bug report.
+
+If you have to use the recorded device to stop `libinput record` (e.g. to
+switch windows), remember that this will cause a new recording to be
+created. Thus, attach the **second-to-last recording** to the bug report
+because this one contains the bug trigger.
+
@subsection libinput-record-multiple Recording multiple devices at once
In some cases, an interaction between multiple devices is the cause for a
@@ -226,7 +255,7 @@
$ sudo libinput replay touchpad-bug.log
@endverbatim
-@subsection libinput-measure Measuring device properties with libinput measure
+@section libinput-measure Measuring device properties with libinput measure
The `libinput measure` tool is a multiplexer for various sub-tools that can
measure specific properties on the device. These tools generally measure one
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinput-1.11.2/meson.build new/libinput-1.11.3/meson.build
--- old/libinput-1.11.2/meson.build 2018-07-03 06:47:19.000000000 +0200
+++ new/libinput-1.11.3/meson.build 2018-07-25 06:51:26.000000000 +0200
@@ -1,5 +1,5 @@
project('libinput', 'c', 'cpp',
- version : '1.11.2',
+ version : '1.11.3',
license : 'MIT/Expat',
default_options : [ 'c_std=gnu99', 'warning_level=2' ],
meson_version : '>= 0.40.0')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinput-1.11.2/tools/libinput-replay new/libinput-1.11.3/tools/libinput-replay
--- old/libinput-1.11.2/tools/libinput-replay 2018-07-03 06:47:19.000000000 +0200
+++ new/libinput-1.11.3/tools/libinput-replay 2018-07-25 06:51:26.000000000 +0200
@@ -89,6 +89,10 @@
data = 20
d.enable(libevdev.evbit(evtype, code), data=data)
+ properties = fetch(evdev, 'properties')
+ for prop in properties:
+ d.enable(libevdev.propbit(prop))
+
uinput = d.create_uinput_device()
return uinput
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinput-1.11.2/tools/shared.c new/libinput-1.11.3/tools/shared.c
--- old/libinput-1.11.2/tools/shared.c 2018-07-03 06:47:19.000000000 +0200
+++ new/libinput-1.11.3/tools/shared.c 2018-07-25 06:51:26.000000000 +0200
@@ -267,10 +267,9 @@
goto out;
}
- if (verbose) {
- libinput_log_set_handler(li, log_handler);
+ libinput_log_set_handler(li, log_handler);
+ if (verbose)
libinput_log_set_priority(li, LIBINPUT_LOG_PRIORITY_DEBUG);
- }
if (libinput_udev_assign_seat(li, seat)) {
fprintf(stderr, "Failed to set seat\n");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinput-1.11.2/udev/90-libinput-model-quirks.hwdb new/libinput-1.11.3/udev/90-libinput-model-quirks.hwdb
--- old/libinput-1.11.2/udev/90-libinput-model-quirks.hwdb 2018-07-03 06:47:19.000000000 +0200
+++ new/libinput-1.11.3/udev/90-libinput-model-quirks.hwdb 2018-07-25 06:51:26.000000000 +0200
@@ -175,6 +175,10 @@
# HP
##########################################
+# HP Chromebook 14
+libinput:name:*Cypress APA Trackpad *cyapa*:dmi:*svnHewlett-Packard*:pnFalco*
+ LIBINPUT_ATTR_PRESSURE_RANGE=12:8
+
# HP Compaq6910p
libinput:name:SynPS/2 Synaptics TouchPad:dmi:*svnHewlett-Packard:*pnHPCompaq6910p*
LIBINPUT_MODEL_HP6910_TOUCHPAD=1
1
0
Hello community,
here is the log from the commit of package iputils for openSUSE:Factory checked in at 2018-08-02 14:49:50
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/iputils (Old)
and /work/SRC/openSUSE:Factory/.iputils.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "iputils"
Thu Aug 2 14:49:50 2018 rev:44 rq:625585 version:s20180629
Changes:
--------
--- /work/SRC/openSUSE:Factory/iputils/iputils.changes 2018-07-06 10:38:40.407491819 +0200
+++ /work/SRC/openSUSE:Factory/.iputils.new/iputils.changes 2018-08-02 14:49:51.735448435 +0200
@@ -1,0 +2,7 @@
+Thu Jul 26 09:17:45 UTC 2018 - pvorel(a)suse.cz
+
+- Backport upstream patch fixing tracepath6 (poo#38492)
+ e0baf20 tracepath: Fix copying input IPv6 address
+ 0001-tracepath-Fix-copying-input-IPv6-address.patch
+
+-------------------------------------------------------------------
New:
----
0001-tracepath-Fix-copying-input-IPv6-address.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ iputils.spec ++++++
--- /var/tmp/diff_new_pack.X9t8Pl/_old 2018-08-02 14:49:52.535449967 +0200
+++ /var/tmp/diff_new_pack.X9t8Pl/_new 2018-08-02 14:49:52.539449974 +0200
@@ -25,8 +25,9 @@
Url: https://github.com/iputils/iputils
Source0: https://github.com/iputils/iputils/archive/%{version}.tar.gz
Source1: rarpd.service
-Patch8: iputils-sec-ping-unblock.diff
-Patch9: iputils-ping-interrupt.diff
+Patch1: iputils-sec-ping-unblock.diff
+Patch2: iputils-ping-interrupt.diff
+Patch3: 0001-tracepath-Fix-copying-input-IPv6-address.patch
BuildRequires: docbook-xsl-stylesheets
BuildRequires: docbook_3
BuildRequires: iso_ent
@@ -63,8 +64,9 @@
%prep
%setup -q
-%patch8 -p1
-%patch9 -p1
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
%build
++++++ 0001-tracepath-Fix-copying-input-IPv6-address.patch ++++++
>From e0baf20067a75f093d690bd51a6db3f5afabca77 Mon Sep 17 00:00:00 2001
From: Petr Vorel <pvorel(a)suse.cz>
Date: Tue, 17 Jul 2018 17:56:10 +0200
Subject: [PATCH] tracepath: Fix copying input IPv6 address
Commit e669c86 broke copying input IPv6 address.
tracepath recover from it, but it's slower.
Previously was address too short:
strace ./tracepath -6 fe80::8895:e2af:e96e:fd8f
sendto(3, "\1\0\0\0\0\0\0\0\307\36N[\0\0\0\0w_\f\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 127952, 0, {sa_family=AF_INET6, sin6_port=htons(44444), inet_pton(AF_INET6, "fe80::", &sin6_addr), sin6_flowinfo=htonl(0), sin6_scope_id=0}, 28) = -1 EMSGSIZE (Message too long)
After fix is correct:
sendto(3, "\1\0\0\0\0\0\0\0\300\36N[\0\0\0\0'B\3\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 127952, 0, {sa_family=AF_INET6, sin6_port=htons(44444), inet_pton(AF_INET6, "fe80::8895:e2af:e96e:fd8f", &sin6_addr), sin6_flowinfo=htonl(0), sin6_scope_id=0}, 28) = -1 EMSGSIZE (Message too long)
Bug found by LTP test.
Fixes: e669c86 tracepath: fix heap-buffer-overflow [asan]
Fixes: #137
---
tracepath.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tracepath.c b/tracepath.c
index 53bda16..539a7a1 100644
--- a/tracepath.c
+++ b/tracepath.c
@@ -475,7 +475,7 @@ int main(int argc, char **argv)
fd = socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol);
if (fd < 0)
continue;
- memcpy(&target, ai->ai_addr, sizeof(*ai->ai_addr));
+ memcpy(&target, ai->ai_addr, ai->ai_addrlen);
targetlen = ai->ai_addrlen;
break;
}
--
2.18.0
1
0