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
April 2016
- 1 participants
- 1255 discussions
Hello community,
here is the log from the commit of package nghttp2 for openSUSE:Factory checked in at 2016-04-30 23:28:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/nghttp2 (Old)
and /work/SRC/openSUSE:Factory/.nghttp2.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "nghttp2"
Changes:
--------
--- /work/SRC/openSUSE:Factory/nghttp2/nghttp2.changes 2016-04-01 13:01:24.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.nghttp2.new/nghttp2.changes 2016-04-30 23:28:54.000000000 +0200
@@ -1,0 +2,36 @@
+Wed Apr 27 10:04:48 UTC 2016 - mpluskal(a)suse.com
+
+- Update to 1.10.0
+ * Pass unknown SETTINGS values to nghttp2_on_frame_recv_callback
+ * Add ALTSVC frame support
+ * Run error callback when peer does not send initial SETTINGS
+ frame
+ * Update http-parser
+ * Update sphinx_rtd_theme
+ * nghttp: add an --expect-continue option
+ * nghttpx: Fix downstream connect callback called early
+ * nghttpx: Truncate too long -b option signature
+ * nghttpx: Fix bug that server push from mruby script did not
+ work
+ * nghttpx: Try next HTTP/1 backend address when connection
+ cannot be made
+ * nghttpx: Retry next HTTP/2 backend address when connection
+ cannot be made
+ * nghttpx: Enable link header field based push for non-final
+ response
+ * nghttpx: Detect online/offline state of backend servers
+ * nghttpx: Better load balancing between backend HTTP/2 servers
+ * nghttpx: Fix crash with backend failure
+
+-------------------------------------------------------------------
+Wed Apr 13 18:31:20 UTC 2016 - mpluskal(a)suse.com
+
+- Update to 1.9.2
+ * nghttpx: Fix crash with backend failure
+ * nghttpx: Better distribute load to backend h2 servers
+ * nghttpx: Fix error messages on deprecated mode
+ * nghttpx: Fix bug that logger wrote string which was not
+ NULL-terminated
+ * nghttpx: Fix bug that proxy with HTTP/1.1 CONNECT did not work
+
+-------------------------------------------------------------------
Old:
----
nghttp2-1.9.1.tar.xz
New:
----
nghttp2-1.10.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ nghttp2.spec ++++++
--- /var/tmp/diff_new_pack.ISBEQI/_old 2016-04-30 23:28:55.000000000 +0200
+++ /var/tmp/diff_new_pack.ISBEQI/_new 2016-04-30 23:28:55.000000000 +0200
@@ -21,7 +21,7 @@
%define soname_asio libnghttp2_asio
%define sover_asio 1
Name: nghttp2
-Version: 1.9.1
+Version: 1.10.0
Release: 0
Summary: Implementation of Hypertext Transfer Protocol version 2 in C
License: MIT
@@ -35,20 +35,19 @@
BuildRequires: automake
BuildRequires: boost-devel
BuildRequires: gcc-c++
-BuildRequires: jemalloc-devel
BuildRequires: libtool
BuildRequires: pkg-config
BuildRequires: python-Cython
-BuildRequires: python-devel
BuildRequires: python-Sphinx
BuildRequires: python-setuptools
BuildRequires: pkgconfig(cunit)
BuildRequires: pkgconfig(jansson)
+BuildRequires: pkgconfig(jemalloc)
BuildRequires: pkgconfig(libev)
BuildRequires: pkgconfig(libspdylay)
BuildRequires: pkgconfig(libxml-2.0)
BuildRequires: pkgconfig(openssl)
-BuildRequires: pkgconfig(python)
+BuildRequires: pkgconfig(python2)
BuildRequires: pkgconfig(zlib)
%description
@@ -150,11 +149,8 @@
make %{?_smp_mflags} check
%post -n %{soname}-%{sover} -p /sbin/ldconfig
-
%post -n %{soname_asio}%{sover_asio} -p /sbin/ldconfig
-
%postun -n %{soname}-%{sover} -p /sbin/ldconfig
-
%postun -n %{soname_asio}%{sover_asio} -p /sbin/ldconfig
%files
++++++ nghttp2-1.9.1.tar.xz -> nghttp2-1.10.0.tar.xz ++++++
++++ 28563 lines of diff (skipped)
++++++ nghttp2-remove-python-build.patch ++++++
--- /var/tmp/diff_new_pack.ISBEQI/_old 2016-04-30 23:28:56.000000000 +0200
+++ /var/tmp/diff_new_pack.ISBEQI/_new 2016-04-30 23:28:56.000000000 +0200
@@ -1,7 +1,7 @@
Index: python/Makefile.am
===================================================================
---- python/Makefile.am.orig 2016-03-27 15:20:38.000000000 +0200
-+++ python/Makefile.am 2016-03-27 18:34:28.238374041 +0200
+--- python/Makefile.am.orig
++++ python/Makefile.am
@@ -29,16 +29,6 @@ EXTRA_DIST = cnghttp2.pxd nghttp2.pyx CM
if ENABLE_PYTHON_BINDINGS
1
0
Hello community,
here is the log from the commit of package libzypp for openSUSE:Factory checked in at 2016-04-30 23:28:45
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libzypp (Old)
and /work/SRC/openSUSE:Factory/.libzypp.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libzypp"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libzypp/libzypp.changes 2016-03-26 15:11:12.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.libzypp.new/libzypp.changes 2016-04-30 23:28:48.000000000 +0200
@@ -1,0 +2,23 @@
+Mon Apr 25 14:59:41 CEST 2016 - ma(a)suse.de
+
+- Fix credential file parser losing entries with known URL but
+ different user name (bsc#933760)
+- RepoManager: allow extraction of multiple baseurls for service
+ repos (bsc#964932)
+- addRepository: fix to use the correct history file for logging
+- specfile: add /etc/zypp/credentials.d to the file list
+- version 15.22.0 (19)
+
+-------------------------------------------------------------------
+Mon Apr 18 15:03:13 CEST 2016 - ma(a)suse.de
+
+- RepoindexFileReader: fix service metadata TTL default value (bsc#967828)
+- version 15.21.7 (19)
+
+-------------------------------------------------------------------
+Fri Apr 15 11:31:08 CEST 2016 - ma(a)suse.de
+
+- DiskUsageCounter: Limit estimated waste per file (bsc#974275)
+- version 15.21.6 (19)
+
+-------------------------------------------------------------------
Old:
----
libzypp-15.21.5.tar.bz2
New:
----
libzypp-15.22.0.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libzypp.spec ++++++
--- /var/tmp/diff_new_pack.WY7OPz/_old 2016-04-30 23:28:49.000000000 +0200
+++ /var/tmp/diff_new_pack.WY7OPz/_new 2016-04-30 23:28:49.000000000 +0200
@@ -19,7 +19,7 @@
%define force_gcc_46 0
Name: libzypp
-Version: 15.21.5
+Version: 15.22.0
Release: 0
Url: git://gitorious.org/opensuse/libzypp.git
Summary: Package, Patch, Pattern, and Product Management
@@ -35,7 +35,7 @@
Provides: libzypp(plugin) = 0
Provides: libzypp(plugin:appdata) = 0
Provides: libzypp(plugin:commit) = 1
-Provides: libzypp(plugin:services) = 0
+Provides: libzypp(plugin:services) = 1
Provides: libzypp(plugin:system) = 1
Provides: libzypp(plugin:urlresolver) = 0
Provides: libzypp(repovarexpand) = 0
@@ -242,6 +242,7 @@
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/zypp/systemCheck.d
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/zypp/vendors.d
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/zypp/multiversion.d
+mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/zypp/credentials.d
mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib/zypp
mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib/zypp/plugins
mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib/zypp/plugins/appdata
@@ -339,6 +340,7 @@
%dir %{_sysconfdir}/zypp/systemCheck.d
%dir %{_sysconfdir}/zypp/vendors.d
%dir %{_sysconfdir}/zypp/multiversion.d
+%dir %{_sysconfdir}/zypp/credentials.d
%config(noreplace) %{_sysconfdir}/zypp/zypp.conf
%config(noreplace) %{_sysconfdir}/zypp/systemCheck
%config(noreplace) %{_sysconfdir}/logrotate.d/zypp-history.lr
++++++ libzypp-15.21.5.tar.bz2 -> libzypp-15.22.0.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-15.21.5/VERSION.cmake new/libzypp-15.22.0/VERSION.cmake
--- old/libzypp-15.21.5/VERSION.cmake 2016-03-18 13:40:46.000000000 +0100
+++ new/libzypp-15.22.0/VERSION.cmake 2016-04-25 15:05:27.000000000 +0200
@@ -60,9 +60,9 @@
#
SET(LIBZYPP_MAJOR "15")
SET(LIBZYPP_COMPATMINOR "19")
-SET(LIBZYPP_MINOR "21")
-SET(LIBZYPP_PATCH "5")
+SET(LIBZYPP_MINOR "22")
+SET(LIBZYPP_PATCH "0")
#
-# LAST RELEASED: 15.21.5 (19)
+# LAST RELEASED: 15.22.0 (19)
# (The number in parenthesis is LIBZYPP_COMPATMINOR)
#=======
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-15.21.5/doc/autoinclude/FeatureTest.doc new/libzypp-15.22.0/doc/autoinclude/FeatureTest.doc
--- old/libzypp-15.21.5/doc/autoinclude/FeatureTest.doc 2016-03-18 13:28:44.000000000 +0100
+++ new/libzypp-15.22.0/doc/autoinclude/FeatureTest.doc 2016-04-25 15:49:26.000000000 +0200
@@ -41,6 +41,8 @@
<DT>\ref plugin-services </DT>
<DT>version 0</DT>
<DD>Provide a client a list of repositories.</DD>
+ <DT>version 1</DT>
+ <DD>Support multiple repo baseurls in plugin services.</DD>
</DL></DD>
<DT>plugin:system</DT>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-15.21.5/libzypp.spec.cmake new/libzypp-15.22.0/libzypp.spec.cmake
--- old/libzypp-15.21.5/libzypp.spec.cmake 2016-03-18 13:28:44.000000000 +0100
+++ new/libzypp-15.22.0/libzypp.spec.cmake 2016-04-25 15:49:26.000000000 +0200
@@ -35,7 +35,7 @@
Provides: libzypp(plugin) = 0
Provides: libzypp(plugin:appdata) = 0
Provides: libzypp(plugin:commit) = 1
-Provides: libzypp(plugin:services) = 0
+Provides: libzypp(plugin:services) = 1
Provides: libzypp(plugin:system) = 1
Provides: libzypp(plugin:urlresolver) = 0
Provides: libzypp(repovarexpand) = 0
@@ -242,6 +242,7 @@
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/zypp/systemCheck.d
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/zypp/vendors.d
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/zypp/multiversion.d
+mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/zypp/credentials.d
mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib/zypp
mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib/zypp/plugins
mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib/zypp/plugins/appdata
@@ -339,6 +340,7 @@
%dir %{_sysconfdir}/zypp/systemCheck.d
%dir %{_sysconfdir}/zypp/vendors.d
%dir %{_sysconfdir}/zypp/multiversion.d
+%dir %{_sysconfdir}/zypp/credentials.d
%config(noreplace) %{_sysconfdir}/zypp/zypp.conf
%config(noreplace) %{_sysconfdir}/zypp/systemCheck
%config(noreplace) %{_sysconfdir}/logrotate.d/zypp-history.lr
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-15.21.5/package/libzypp.changes new/libzypp-15.22.0/package/libzypp.changes
--- old/libzypp-15.21.5/package/libzypp.changes 2016-03-18 13:40:46.000000000 +0100
+++ new/libzypp-15.22.0/package/libzypp.changes 2016-04-25 15:05:27.000000000 +0200
@@ -1,4 +1,27 @@
-------------------------------------------------------------------
+Mon Apr 25 14:59:41 CEST 2016 - ma(a)suse.de
+
+- Fix credential file parser losing entries with known URL but
+ different user name (bsc#933760)
+- RepoManager: allow extraction of multiple baseurls for service
+ repos (bsc#964932)
+- addRepository: fix to use the correct history file for logging
+- specfile: add /etc/zypp/credentials.d to the file list
+- version 15.22.0 (19)
+
+-------------------------------------------------------------------
+Mon Apr 18 15:03:13 CEST 2016 - ma(a)suse.de
+
+- RepoindexFileReader: fix service metadata TTL default value (bsc#967828)
+- version 15.21.7 (19)
+
+-------------------------------------------------------------------
+Fri Apr 15 11:31:08 CEST 2016 - ma(a)suse.de
+
+- DiskUsageCounter: Limit estimated waste per file (bsc#974275)
+- version 15.21.6 (19)
+
+-------------------------------------------------------------------
Fri Mar 18 13:37:22 CET 2016 - ma(a)suse.de
- Use PluginExecutor for commit- and system-hooks (bnc#971637)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-15.21.5/tests/media/CredentialFileReader_test.cc new/libzypp-15.22.0/tests/media/CredentialFileReader_test.cc
--- old/libzypp-15.21.5/tests/media/CredentialFileReader_test.cc 2016-02-11 17:22:14.000000000 +0100
+++ new/libzypp-15.22.0/tests/media/CredentialFileReader_test.cc 2016-04-26 18:01:29.000000000 +0200
@@ -34,5 +34,5 @@
CredentialFileReader reader(credfile,
bind( &CredCollector::collect, &collector, _1 ));
- BOOST_CHECK(collector.creds.size() == 2);
+ BOOST_CHECK_EQUAL(collector.creds.size(), 3);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-15.21.5/tests/media/CredentialManager_test.cc new/libzypp-15.22.0/tests/media/CredentialManager_test.cc
--- old/libzypp-15.21.5/tests/media/CredentialManager_test.cc 2016-02-11 17:22:14.000000000 +0100
+++ new/libzypp-15.22.0/tests/media/CredentialManager_test.cc 2016-04-26 18:01:29.000000000 +0200
@@ -13,38 +13,47 @@
using namespace zypp;
using namespace zypp::media;
+inline void testGetCreds( CredentialManager & cm_r, const std::string & url_r,
+ const std::string & user_r = "",
+ const std::string & pass_r = "" )
+{
+ Url url( url_r );
+ AuthData_Ptr cred = cm_r.getCred( url );
+ //cout << "FOR: " << url << endl;
+ //cout << "GOT: " << cred << endl;
+ if ( user_r.empty() && pass_r.empty() )
+ {
+ BOOST_CHECK_EQUAL( cred, AuthData_Ptr() );
+ }
+ else
+ {
+ BOOST_CHECK_EQUAL( cred->username(), user_r );
+ BOOST_CHECK_EQUAL( cred->password(), pass_r );
+ }
+}
BOOST_AUTO_TEST_CASE(read_cred_for_url)
{
CredManagerOptions opts;
opts.globalCredFilePath = TESTS_SRC_DIR "/media/data/credentials.cat";
opts.userCredFilePath = Pathname();
+ CredentialManager cm( opts );
- CredentialManager cm(opts);
- BOOST_CHECK(cm.credsGlobalSize() == 2);
+ BOOST_CHECK_EQUAL( cm.credsGlobalSize(), 3 );
- Url url("https://drink.it/repo/roots");
- AuthData_Ptr credentials = cm.getCred(url);
- BOOST_CHECK(credentials.get() != NULL);
- if (!credentials)
- return;
- BOOST_CHECK(credentials->username() == "ginger");
- BOOST_CHECK(credentials->password() == "ale");
-
- Url url2("ftp://magda@weprovidesoft.fr/download/opensuse/110");
- credentials = cm.getCred(url2);
- BOOST_CHECK(credentials.get() != NULL);
- if (!credentials)
- return;
- BOOST_CHECK(credentials->username() == "magda");
- BOOST_CHECK(credentials->password() == "richard");
+ testGetCreds( cm, "https://drink.it/repo/roots", "ginger", "ale" );
+ testGetCreds( cm, "ftp://weprovidesoft.fr/download/opensuse/110", "agda", "ichard" );
+ testGetCreds( cm, "ftp://magda@weprovidesoft.fr/download/opensuse/110", "magda", "richard" );
+ testGetCreds( cm, "ftp://agda@weprovidesoft.fr/download/opensuse/110", "agda", "ichard" );
+ testGetCreds( cm, "ftp://unknown@weprovidesoft.fr/download/opensuse/110" ); // NULL
+ testGetCreds( cm, "http://url.ok/but/not/creds" ); // NULL
}
struct CredCollector
{
bool collect(AuthData_Ptr & cred)
{
- cout << "got: " << endl << *cred << endl;
+ //cout << "got: " << endl << *cred << endl;
creds.insert(cred);
return true;
}
@@ -56,13 +65,13 @@
BOOST_AUTO_TEST_CASE(save_creds)
{
filesystem::TmpDir tmp;
-
CredManagerOptions opts;
opts.globalCredFilePath = tmp / "fooha";
-
CredentialManager cm1(opts);
+
AuthData cr1("benson","absolute");
cr1.setUrl(Url("http://joooha.com"));
+
AuthData cr2("pat","vymetheny");
cr2.setUrl(Url("ftp://filesuck.org"));
@@ -70,27 +79,19 @@
cm1.saveInGlobal(cr1);
CredCollector collector;
- CredentialFileReader reader(opts.globalCredFilePath,
- bind( &CredCollector::collect, &collector, _1 ));
- BOOST_CHECK(collector.creds.size() == 1);
+ CredentialFileReader( opts.globalCredFilePath, bind( &CredCollector::collect, &collector, _1 ) );
+ BOOST_CHECK_EQUAL( collector.creds.size(), 1 );
- cout << "----" << endl;
collector.creds.clear();
-
cm1.saveInGlobal(cr2);
+ CredentialFileReader( opts.globalCredFilePath, bind( &CredCollector::collect, &collector, _1 ) );
+ BOOST_CHECK_EQUAL(collector.creds.size(), 2 );
- CredentialFileReader reader1(opts.globalCredFilePath,
- bind( &CredCollector::collect, &collector, _1 ));
- BOOST_CHECK(collector.creds.size() == 2);
-
- cout << "----" << endl;
collector.creds.clear();
-
// save the same creds again
cm1.saveInGlobal(cr2);
- CredentialFileReader reader2(opts.globalCredFilePath,
- bind( &CredCollector::collect, &collector, _1 ));
- BOOST_CHECK(collector.creds.size() == 2);
+ CredentialFileReader( opts.globalCredFilePath, bind( &CredCollector::collect, &collector, _1 ) );
+ BOOST_CHECK_EQUAL(collector.creds.size(), 2 );
// todo check created file permissions
}
@@ -98,30 +99,15 @@
BOOST_AUTO_TEST_CASE(service_base_url)
{
filesystem::TmpDir tmp;
-
CredManagerOptions opts;
opts.globalCredFilePath = tmp / "fooha";
+ CredentialManager cm( opts );
- CredentialManager cm1(opts);
- AuthData cr1("benson","absolute");
- cr1.setUrl(Url("http://joooha.com/service/path"));
- cm1.addGlobalCred(cr1);
-
- AuthData_Ptr creds;
- creds = cm1.getCred(Url("http://joooha.com/service/path/repo/repofoo"));
-
- BOOST_CHECK(creds.get() != NULL);
- if (!creds)
- return;
- BOOST_CHECK(creds->username() == "benson");
-
- creds = cm1.getCred(Url("http://benson@joooha.com/service/path/repo/repofoo"));
-
- BOOST_CHECK(creds.get() != NULL);
- if (!creds)
- return;
- BOOST_CHECK(creds->username() == "benson");
-
- creds = cm1.getCred(Url("http://nobody@joooha.com/service/path/repo/repofoo"));
- BOOST_CHECK(creds.get() == NULL);
+ AuthData cred( "benson","absolute" );
+ cred.setUrl( Url( "http://joooha.com/service/path" ) );
+ cm.addGlobalCred( cred );
+
+ testGetCreds( cm, "http://joooha.com/service/path/repo/repofoo", "benson", "absolute" );
+ testGetCreds( cm, "http://benson@joooha.com/service/path/repo/repofoo", "benson", "absolute" );
+ testGetCreds( cm, "http://nobody@joooha.com/service/path/repo/repofoo" ); // NULL
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-15.21.5/tests/media/data/credentials.cat new/libzypp-15.22.0/tests/media/data/credentials.cat
--- old/libzypp-15.21.5/tests/media/data/credentials.cat 2016-02-11 17:22:14.000000000 +0100
+++ new/libzypp-15.22.0/tests/media/data/credentials.cat 2016-04-26 18:01:29.000000000 +0200
@@ -1,15 +1,24 @@
+# no 1
[https://drink.it/repo/roots]
username=ginger
password=ale
+#no 2
[ftp://weprovidesoft.fr/download/opensuse/110]
username=magda
password=richard
+# no 3 - same urla s 2 but different user (lex less than magda)
+[ftp://weprovidesoft.fr/download/opensuse/110]
+username=agda
+password=ichard
+
+# fail
[http://url.ok/but/not/creds]
username=
password=any
+# fail
[badurl]
username=foo
password=bar
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-15.21.5/zypp/DiskUsageCounter.cc new/libzypp-15.22.0/zypp/DiskUsageCounter.cc
--- old/libzypp-15.21.5/zypp/DiskUsageCounter.cc 2016-02-11 17:22:14.000000000 +0100
+++ new/libzypp-15.22.0/zypp/DiskUsageCounter.cc 2016-04-15 11:32:37.000000000 +0200
@@ -71,10 +71,13 @@
unsigned idx = 0;
for_( it, result.begin(), result.end() )
{
- static const ByteCount blockAdjust( 2, ByteCount::K ); // (files * blocksize) / (2 * 1K)
+ // Limit estimated waste (half block per file) as it does not apply to
+ // btrfs, which reports up to 64K blocksize (bsc#974275,bsc#965322)
+ static const ByteCount blockAdjust( 2, ByteCount::K ); // (files * blocksize) / 2 / 1K; result value in K!
+
it->pkg_size = it->used_size // current usage
+ duchanges[idx].kbytes // package data size
- + ( duchanges[idx].files * it->block_size / blockAdjust ); // half block per file
+ + ( duchanges[idx].files * ( it->fstype == "btrfs" ? 4096 : it->block_size ) / blockAdjust ); // half block per file
++idx;
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-15.21.5/zypp/RepoInfo.cc new/libzypp-15.22.0/zypp/RepoInfo.cc
--- old/libzypp-15.21.5/zypp/RepoInfo.cc 2016-02-11 17:22:14.000000000 +0100
+++ new/libzypp-15.22.0/zypp/RepoInfo.cc 2016-04-25 15:05:27.000000000 +0200
@@ -347,6 +347,9 @@
_pimpl->baseUrls().raw().push_back( url_r );
}
+ void RepoInfo::setBaseUrls( url_set urls )
+ { _pimpl->baseUrls().raw().swap( urls ); }
+
void RepoInfo::setPath( const Pathname &path )
{ _pimpl->path = path; }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-15.21.5/zypp/RepoInfo.h new/libzypp-15.22.0/zypp/RepoInfo.h
--- old/libzypp-15.21.5/zypp/RepoInfo.h 2016-02-11 17:22:14.000000000 +0100
+++ new/libzypp-15.22.0/zypp/RepoInfo.h 2016-04-25 15:05:27.000000000 +0200
@@ -159,6 +159,10 @@
* Clears current base URL list and adds \a url.
*/
void setBaseUrl( const Url &url );
+ /**
+ * Clears current base URL list and adds an \ref url_set.
+ */
+ void setBaseUrls( url_set urls );
/**
* \short Repository path
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-15.21.5/zypp/RepoManager.cc new/libzypp-15.22.0/zypp/RepoManager.cc
--- old/libzypp-15.21.5/zypp/RepoManager.cc 2016-02-11 17:22:14.000000000 +0100
+++ new/libzypp-15.22.0/zypp/RepoManager.cc 2016-04-25 15:05:27.000000000 +0200
@@ -64,6 +64,76 @@
///////////////////////////////////////////////////////////////////
namespace
{
+ ///////////////////////////////////////////////////////////////////
+ /// \class UrlCredentialExtractor
+ /// \brief Extract credentials in \ref Url authority and store them via \ref CredentialManager.
+ ///
+ /// Lazy init CredentialManager and save collected credentials when
+ /// going out of scope.
+ ///
+ /// Methods return whether a password has been collected/extracted.
+ ///
+ /// \code
+ /// UrlCredentialExtractor( "/rootdir" ).collect( oneUrlOrUrlContainer );
+ /// \endcode
+ /// \code
+ /// {
+ /// UrlCredentialExtractor extractCredentials;
+ /// extractCredentials.collect( oneUrlOrUrlContainer );
+ /// extractCredentials.extract( oneMoreUrlOrUrlContainer );
+ /// ....
+ /// }
+ /// \endcode
+ ///
+ class UrlCredentialExtractor
+ {
+ public:
+ UrlCredentialExtractor( Pathname & root_r )
+ : _root( root_r )
+ {}
+
+ ~UrlCredentialExtractor()
+ { if ( _cmPtr ) _cmPtr->save(); }
+
+ /** Remember credentials stored in URL authority leaving the password in \a url_r. */
+ bool collect( const Url & url_r )
+ {
+ bool ret = url_r.hasCredentialsInAuthority();
+ if ( ret )
+ {
+ if ( !_cmPtr ) _cmPtr.reset( new media::CredentialManager( _root ) );
+ _cmPtr->addUserCred( url_r );
+ }
+ return ret;
+ }
+ /** \overload operating on Url container */
+ template<class TContainer>
+ bool collect( const TContainer & urls_r )
+ { bool ret = false; for ( const Url & url : urls_r ) { if ( collect( url ) && !ret ) ret = true; } return ret; }
+
+ /** Remember credentials stored in URL authority stripping the passowrd from \a url_r. */
+ bool extract( Url & url_r )
+ {
+ bool ret = collect( url_r );
+ if ( ret )
+ url_r.setPassword( std::string() );
+ return ret;
+ }
+ /** \overload operating on Url container */
+ template<class TContainer>
+ bool extract( TContainer & urls_r )
+ { bool ret = false; for ( Url & url : urls_r ) { if ( extract( url ) && !ret ) ret = true; } return ret; }
+
+ private:
+ const Pathname & _root;
+ scoped_ptr<media::CredentialManager> _cmPtr;
+ };
+ } // namespace
+ ///////////////////////////////////////////////////////////////////
+
+ ///////////////////////////////////////////////////////////////////
+ namespace
+ {
/** Simple media mounter to access non-downloading URLs e.g. for non-local plaindir repos.
* \ingroup g_RAII
*/
@@ -1596,26 +1666,9 @@
progress.set(90);
// check for credentials in Urls
- bool havePasswords = false;
- for_( urlit, tosave.baseUrlsBegin(), tosave.baseUrlsEnd() )
- if ( urlit->hasCredentialsInAuthority() )
- {
- havePasswords = true;
- break;
- }
- // save the credentials
- if ( havePasswords )
- {
- media::CredentialManager cm(
- media::CredManagerOptions(_options.rootDir) );
-
- for_(urlit, tosave.baseUrlsBegin(), tosave.baseUrlsEnd())
- if (urlit->hasCredentialsInAuthority())
- //! \todo use a method calling UI callbacks to ask where to save creds?
- cm.saveInUser(media::AuthData(*urlit));
- }
+ UrlCredentialExtractor( _options.rootDir ).collect( tosave.baseUrls() );
- HistoryLog().addRepository(tosave);
+ HistoryLog(_options.rootDir).addRepository(tosave);
progress.toMax();
MIL << "done" << endl;
@@ -1823,6 +1876,8 @@
newinfo.setFilepath(toedit.filepath());
reposManip().erase(toedit);
reposManip().insert(newinfo);
+ // check for credentials in Urls
+ UrlCredentialExtractor( _options.rootDir ).collect( newinfo.baseUrls() );
HistoryLog(_options.rootDir).modifyRepository(toedit, newinfo);
MIL << "repo " << alias << " modified" << endl;
}
@@ -1876,15 +1931,8 @@
saveService( toSave );
_services.insert( toSave );
- // check for credentials in Url (username:password, not ?credentials param)
- if ( toSave.url().hasCredentialsInAuthority() )
- {
- media::CredentialManager cm(
- media::CredManagerOptions(_options.rootDir) );
-
- //! \todo use a method calling UI callbacks to ask where to save creds?
- cm.saveInUser(media::AuthData(toSave.url()));
- }
+ // check for credentials in Url
+ UrlCredentialExtractor( _options.rootDir ).collect( toSave.url() );
MIL << "added service " << toSave.alias() << endl;
}
@@ -1972,7 +2020,7 @@
assert_url( service );
MIL << "Going to refresh service '" << service.alias() << "', url: " << service.url() << ", opts: " << options_r << endl;
- if ( service.ttl() && !options_r.testFlag( RefreshService_forceRefresh ) )
+ if ( service.ttl() && !( options_r.testFlag( RefreshService_forceRefresh) || options_r.testFlag( RefreshService_restoreStatus ) ) )
{
// Service defines a TTL; maybe we can re-use existing data without refresh.
Date lrf = service.lrf();
@@ -2051,34 +2099,41 @@
{
// First of all: Prepend service alias:
it->setAlias( str::form( "%s:%s", service.alias().c_str(), it->alias().c_str() ) );
- // set refrence to the parent service
+ // set reference to the parent service
it->setService( service.alias() );
// remember the new parsed repo state
newRepoStates[it->alias()] = *it;
- // if the repo url was not set by the repoindex parser, set service's url
- Url url;
- if ( it->baseUrlsEmpty() )
- url = service.rawUrl();
- else
+ // - If the repo url was not set by the repoindex parser, set service's url.
+ // - Libzypp currently has problem with separate url + path handling so just
+ // append a path, if set, to the baseurls
+ // - Credentials in the url authority will be extracted later, either if the
+ // repository is added or if we check for changed urls.
+ Pathname path;
+ if ( !it->path().empty() )
{
- // service repo can contain only one URL now, so no need to iterate.
- url = it->rawUrl(); // raw!
+ if ( it->path() != "/" )
+ path = it->path();
+ it->setPath("");
}
- // libzypp currently has problem with separate url + path handling
- // so just append the path to the baseurl
- if ( !it->path().empty() )
+ if ( it->baseUrlsEmpty() )
{
- Pathname path(url.getPathName());
- path /= it->path();
- url.setPathName( path.asString() );
- it->setPath("");
+ Url url( service.rawUrl() );
+ if ( !path.empty() )
+ url.setPathName( url.getPathName() / path );
+ it->setBaseUrl( std::move(url) );
+ }
+ else if ( !path.empty() )
+ {
+ RepoInfo::url_set urls( it->rawBaseUrls() );
+ for ( Url & url : urls )
+ {
+ url.setPathName( url.getPathName() / path );
+ }
+ it->setBaseUrls( std::move(urls) );
}
-
- // save the url
- it->setBaseUrl( url );
}
////////////////////////////////////////////////////////////////////////////
@@ -2114,7 +2169,8 @@
}
////////////////////////////////////////////////////////////////////////////
- // create missing repositories and modify exising ones if needed...
+ // create missing repositories and modify existing ones if needed...
+ UrlCredentialExtractor urlCredentialExtractor( _options.rootDir ); // To collect any credentials stored in repo URLs
for_( it, collector.repos.begin(), collector.repos.end() )
{
// User explicitly requested the repo being enabled?
@@ -2239,13 +2295,16 @@
}
// changed url?
- // service repo can contain only one URL now, so no need to iterate.
- if ( oldRepo->rawUrl() != it->rawUrl() )
{
- DBG << "Service repo " << it->alias() << " gets new URL " << it->rawUrl() << endl;
- oldRepo->setBaseUrl( it->rawUrl() );
- oldRepoModified = true;
- }
+ RepoInfo::url_set newUrls( it->rawBaseUrls() );
+ urlCredentialExtractor.extract( newUrls ); // Extract! to prevent passwds from disturbing the comparison below
+ if ( oldRepo->rawBaseUrls() != newUrls )
+ {
+ DBG << "Service repo " << it->alias() << " gets new URLs " << newUrls << endl;
+ oldRepo->setBaseUrls( std::move(newUrls) );
+ oldRepoModified = true;
+ }
+ }
// changed gpg check settings?
// ATM only plugin services can set GPG values.
@@ -2353,6 +2412,9 @@
_services.erase(oldAlias);
_services.insert(service);
+ // check for credentials in Urls
+ UrlCredentialExtractor( _options.rootDir ).collect( service.url() );
+
// changed properties affecting also repositories
if ( oldAlias != service.alias() // changed alias
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-15.21.5/zypp/media/CredentialFileReader.cc new/libzypp-15.22.0/zypp/media/CredentialFileReader.cc
--- old/libzypp-15.21.5/zypp/media/CredentialFileReader.cc 2016-02-11 17:22:14.000000000 +0100
+++ new/libzypp-15.22.0/zypp/media/CredentialFileReader.cc 2016-04-25 15:05:27.000000000 +0200
@@ -22,79 +22,123 @@
#undef ZYPP_BASE_LOGGER_LOGGROUP
#define ZYPP_BASE_LOGGER_LOGGROUP "parser"
-
///////////////////////////////////////////////////////////////////
namespace zypp
-{ /////////////////////////////////////////////////////////////////
+{
///////////////////////////////////////////////////////////////////
namespace media
- { /////////////////////////////////////////////////////////////////
-
-
- //////////////////////////////////////////////////////////////////////
- //
- // CLASS NAME : CredentialFileReader
- //
- //////////////////////////////////////////////////////////////////////
-
- CredentialFileReader::CredentialFileReader(
- const Pathname & crfile,
- const ProcessCredentials & callback)
{
- InputStream is(crfile);
- parser::IniDict dict(is);
- for (parser::IniDict::section_const_iterator its = dict.sectionsBegin();
- its != dict.sectionsEnd();
- ++its)
+ ///////////////////////////////////////////////////////////////////
+ namespace
{
- Url storedUrl;
- if (!its->empty())
+ // Looks like INI but allows multiple sections for the same URL
+ // but different user (in .cat files). So don't use an Ini
+ // Also support a global section without '[URL]' which is used
+ // in credential files.
+ // -------------------------------------
+ // username = emptyUSER
+ // password = emptyPASS
+ // -------------------------------------
+ // [http://server/tmp/sumafake222]
+ // username = USER
+ // password = PASS
+ //
+ // [http://server/tmp/sumafake222]
+ // username = USER2
+ // password = PASS
+ // -------------------------------------
+ struct CredentialFileReaderImpl : public parser::IniParser
{
- try { storedUrl = Url(*its); }
- catch (const url::UrlException &)
- {
- ERR << "invalid URL '" << *its << "' in credentials in file: "
- << crfile << endl;
- continue;
- }
- }
-
- AuthData_Ptr credentials;
- credentials.reset(new AuthData());
-
- // set url
- if (storedUrl.isValid())
- credentials->setUrl(storedUrl);
-
- for (parser::IniDict::entry_const_iterator it = dict.entriesBegin(*its);
- it != dict.entriesEnd(*its);
- ++it)
- {
- if (it->first == "username")
- credentials->setUsername(it->second);
- else if (it->first == "password")
- credentials->setPassword(it->second);
- else
- ERR << "Unknown attribute in [" << crfile << "]: "
- << it->second << " ignored" << endl;
- }
-
- if (credentials->valid())
- callback(credentials);
- else
- ERR << "invalid credentials in file: " << crfile << endl;
- } // sections
- }
+ typedef CredentialFileReader::ProcessCredentials ProcessCredentials;
+
+ struct StopParsing {};
+ CredentialFileReaderImpl( const Pathname & input_r, const ProcessCredentials & callback_r )
+ : _input( input_r )
+ , _callback( callback_r )
+ {
+ try
+ {
+ parse( input_r );
+ }
+ catch ( StopParsing )
+ { /* NO error but consumer aborted parsing */ }
+ }
+
+ // NO-OP; new sections are opened in consume()
+ virtual void beginParse()
+ { /*EMPTY*/ }
+
+ // start a new section [url]
+ virtual void consume( const std::string & section_r )
+ {
+ endParse(); // close any open section
+ _secret.reset( new AuthData );
+ try
+ {
+ _secret->setUrl( Url(section_r) );
+ }
+ catch ( const url::UrlException & )
+ {
+ ERR << "Ignore invalid URL '" << section_r << "' in file " << _input << endl;
+ _secret.reset(); // ignore this section
+ }
+ }
+
+ virtual void consume( const std::string & section_r, const std::string & key_r, const std::string & value_r )
+ {
+ if ( !_secret && section_r.empty() )
+ _secret.reset( new AuthData ); // a initial global section without [URL]
+
+ if ( _secret )
+ {
+ if ( key_r == "username" )
+ _secret->setUsername( value_r );
+ else if ( key_r == "password" )
+ _secret->setPassword( value_r );
+ else
+ WAR << "Ignore unknown attribute '" << key_r << "=" << value_r << "' in file " << _input << endl;
+ }
+ // else: ignored section due to wrong URL
+ }
+
+ // send any valid pending section
+ virtual void endParse()
+ {
+ if ( _secret )
+ {
+ if ( _secret->valid() )
+ {
+ if ( !_callback( _secret ) )
+ throw( StopParsing() );
+ }
+ else
+ ERR << "Ignore invalid credentials for URL '" << _secret->url() << "' in file " << _input << endl;
+ }
+ }
+
+ private:
+ const Pathname & _input;
+ const ProcessCredentials & _callback;
+ AuthData_Ptr _secret;
+ };
+ } // namespace
+ ///////////////////////////////////////////////////////////////////
+
+ //////////////////////////////////////////////////////////////////////
+ //
+ // CLASS NAME : CredentialFileReader
+ //
+ //////////////////////////////////////////////////////////////////////
- CredentialFileReader::~CredentialFileReader()
- {}
+ CredentialFileReader::CredentialFileReader( const Pathname & crfile_r, const ProcessCredentials & callback_r )
+ { CredentialFileReaderImpl( crfile_r, callback_r ); }
+ CredentialFileReader::~CredentialFileReader()
+ {}
- /////////////////////////////////////////////////////////////////
- } // media
+ } // namespace media
///////////////////////////////////////////////////////////////////
- /////////////////////////////////////////////////////////////////
-} // zypp
+} // namespace zypp
///////////////////////////////////////////////////////////////////
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-15.21.5/zypp/media/CredentialFileReader.h new/libzypp-15.22.0/zypp/media/CredentialFileReader.h
--- old/libzypp-15.21.5/zypp/media/CredentialFileReader.h 2016-02-11 17:22:14.000000000 +0100
+++ new/libzypp-15.22.0/zypp/media/CredentialFileReader.h 2016-04-25 15:05:27.000000000 +0200
@@ -20,43 +20,31 @@
///////////////////////////////////////////////////////////////////
namespace zypp
-{ /////////////////////////////////////////////////////////////////
+{
///////////////////////////////////////////////////////////////////
namespace media
- { /////////////////////////////////////////////////////////////////
-
-
- //////////////////////////////////////////////////////////////////////
- //
- // CLASS NAME : CredentialFileReader
- //
- class CredentialFileReader
{
- public:
- /**
- * Callback definition.
- * First parameter is the \ref Url with which the credentials are
- * associated, the second are the credentials.
- *
- * Return false from the callback to get a \ref AbortRequestException
- * to be thrown and the processing to be cancelled.
- */
- typedef function<bool(AuthData_Ptr &)> ProcessCredentials;
-
- CredentialFileReader(const Pathname & crfile,
- const ProcessCredentials & callback);
- ~CredentialFileReader();
- private:
- ProcessCredentials _callback;
- };
- //////////////////////////////////////////////////////////////////////
-
+ //////////////////////////////////////////////////////////////////////
+ /// \class CredentialFileReader
+ /// \brief Parse credentials files and catalogs
+ class CredentialFileReader
+ {
+ public:
+ /** Callback invoked for each entry found in the file.
+ * Return \c false to abort parsing.
+ */
+ typedef function<bool(AuthData_Ptr &)> ProcessCredentials;
+
+ CredentialFileReader( const Pathname & crfile_r, const ProcessCredentials & callback_r );
+ ~CredentialFileReader();
+ private:
+ ProcessCredentials _callback;
+ };
+ //////////////////////////////////////////////////////////////////////
- /////////////////////////////////////////////////////////////////
- } // media
+ } // namespace media
///////////////////////////////////////////////////////////////////
- /////////////////////////////////////////////////////////////////
-} // zypp
+} // namespace zypp
///////////////////////////////////////////////////////////////////
#endif /* ZYPP_MEDIA_CREDENTIALFILEREADER_H */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-15.21.5/zypp/media/CredentialManager.cc new/libzypp-15.22.0/zypp/media/CredentialManager.cc
--- old/libzypp-15.21.5/zypp/media/CredentialManager.cc 2016-02-11 17:22:14.000000000 +0100
+++ new/libzypp-15.22.0/zypp/media/CredentialManager.cc 2016-04-25 15:05:27.000000000 +0200
@@ -39,23 +39,17 @@
//
//////////////////////////////////////////////////////////////////////
- bool
- AuthDataComparator::operator()(
- const AuthData_Ptr & lhs, const AuthData_Ptr & rhs)
+ bool AuthDataComparator::operator()( const AuthData_Ptr & lhs, const AuthData_Ptr & rhs )
{
- static const url::ViewOption vopt =
- url::ViewOption::DEFAULTS
- - url::ViewOption::WITH_USERNAME
- - url::ViewOption::WITH_PASSWORD
- - url::ViewOption::WITH_QUERY_STR;
-
- if (lhs->username() != rhs->username())
- return true;
-
- if (lhs->url().asString(vopt) != rhs->url().asString(vopt))
- return true;
-
- return false;
+ static const url::ViewOption vopt = url::ViewOption::DEFAULTS
+ - url::ViewOption::WITH_USERNAME
+ - url::ViewOption::WITH_PASSWORD
+ - url::ViewOption::WITH_QUERY_STR;
+ // std::less semantic!
+ int cmp = lhs->url().asString(vopt).compare( rhs->url().asString(vopt) );
+ if ( ! cmp )
+ cmp = lhs->username().compare( rhs->username() );
+ return( cmp < 0 );
}
//////////////////////////////////////////////////////////////////////
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-15.21.5/zypp/media/MediaUserAuth.cc new/libzypp-15.22.0/zypp/media/MediaUserAuth.cc
--- old/libzypp-15.21.5/zypp/media/MediaUserAuth.cc 2016-02-11 17:22:14.000000000 +0100
+++ new/libzypp-15.22.0/zypp/media/MediaUserAuth.cc 2016-04-25 15:05:27.000000000 +0200
@@ -41,9 +41,12 @@
std::ostream & AuthData::dumpOn( std::ostream & str ) const
{
+ if (_url.isValid())
+ str << "[" << _url.asString( url::ViewOptions() - url::ViewOptions::WITH_USERNAME - url::ViewOptions::WITH_PASSWORD ) << "]" << endl;
+ else
+ str << "[<no-url>]" << endl;
str << "username: '" << _username << "'" << std::endl
- << "password: " << (_password.empty() ? "<empty>" : "<non-empty>")
- << std::endl;
+ << "password: " << (_password.empty() ? "<empty>" : "<non-empty>");
return str;
}
@@ -83,8 +86,8 @@
std::ostream & CurlAuthData::dumpOn( std::ostream & str ) const
{
- AuthData::dumpOn(str) << " auth_type: " << _auth_type_str
- << " (" << _auth_type << ")" << std::endl;
+ AuthData::dumpOn(str) << endl
+ << " auth_type: " << _auth_type_str << " (" << _auth_type << ")";
return str;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-15.21.5/zypp/parser/RepoindexFileReader.cc new/libzypp-15.22.0/zypp/parser/RepoindexFileReader.cc
--- old/libzypp-15.21.5/zypp/parser/RepoindexFileReader.cc 2016-02-11 17:22:14.000000000 +0100
+++ new/libzypp-15.22.0/zypp/parser/RepoindexFileReader.cc 2016-04-18 15:04:47.000000000 +0200
@@ -113,7 +113,7 @@
*/
bool consumeNode( Reader & reader_r );
- DefaultIntegral<Date::Duration,2> _ttl;
+ DefaultIntegral<Date::Duration,0> _ttl;
private:
bool getAttrValue( const std::string & key_r, Reader & reader_r, std::string & value_r )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-15.21.5/zypp/target/rpm/RpmDb.cc new/libzypp-15.22.0/zypp/target/rpm/RpmDb.cc
--- old/libzypp-15.21.5/zypp/target/rpm/RpmDb.cc 2016-02-11 17:22:14.000000000 +0100
+++ new/libzypp-15.22.0/zypp/target/rpm/RpmDb.cc 2016-04-13 10:24:44.000000000 +0200
@@ -1525,7 +1525,8 @@
if ( res == 0 )
{
- detail_r.push_back( CheckPackageDetail::value_type( CHK_OK, std::move(vresult) ) );
+ // remove trailing NL!
+ detail_r.push_back( CheckPackageDetail::value_type( CHK_OK, str::rtrim( std::move(vresult) ) ) );
return CHK_OK;
}
1
0
Hello community,
here is the log from the commit of package gstreamer-plugins-good for openSUSE:Factory checked in at 2016-04-30 23:28:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gstreamer-plugins-good (Old)
and /work/SRC/openSUSE:Factory/.gstreamer-plugins-good.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gstreamer-plugins-good"
Changes:
--------
--- /work/SRC/openSUSE:Factory/gstreamer-plugins-good/gstreamer-plugins-good.changes 2016-02-12 11:21:45.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.gstreamer-plugins-good.new/gstreamer-plugins-good.changes 2016-04-30 23:28:39.000000000 +0200
@@ -1,0 +2,34 @@
+Mon Apr 18 13:04:31 UTC 2016 - joerg.lorenzen(a)ki.tng.de
+
+- Changed required version of libvpx to >= 1.3.0, package can be
+ successfully built against it and version >= 1.4.0 isn't
+ available for openSUSE 13.2 and Leap 42.1 on PMBS.
+
+-------------------------------------------------------------------
+Sat Mar 26 18:58:46 UTC 2016 - zaitor(a)opensuse.org
+
+- Update to version 1.8.0:
+ + Hardware-accelerated zero-copy video decoding on Android
+ + New video capture source for Android using the
+ android.hardware.Camera API.
+ + Windows Media reverse playback support (ASF/WMV/WMA).
+ + New tracing system provides support for more sophisticated
+ debugging tools.
+ + New high-level GstPlayer playback convenience API.
+ + Initial support for the new Vulkan API, see Matthew Waters'
+ blog post for more details.
+ + Improved Opus audio codec support: Support for more than two
+ channels; MPEG-TS demuxer/muxer can now handle Opus;
+ sample-accurate encoding/decoding/transmuxing with Ogg,
+ Matroska, ISOBMFF (Quicktime/MP4), and MPEG-TS as container;
+ new codec utility functions for Opus header and caps handling
+ in pbutils library. The Opus encoder/decoder elements were
+ also moved to gst-plugins-base (from -bad), and the opus RTP
+ depayloader/payloader to -good.
+ + GStreamer VAAPI module now released and maintained as part of
+ the GStreamer project.
+ + Asset proxy support in the GStreamer Editing Services.
+- Add explicit pkgconfig(libsoup-2.4) BuildRequires and version it.
+- Pass --enable-v4l2-probe to configure. This is a runtime check.
+
+-------------------------------------------------------------------
Old:
----
gst-plugins-good-1.6.3.tar.xz
New:
----
gst-plugins-good-1.8.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gstreamer-plugins-good.spec ++++++
--- /var/tmp/diff_new_pack.bdnras/_old 2016-04-30 23:28:40.000000000 +0200
+++ /var/tmp/diff_new_pack.bdnras/_new 2016-04-30 23:28:40.000000000 +0200
@@ -22,7 +22,7 @@
Name: gstreamer-plugins-good
%define _name gst-plugins-good
-Version: 1.6.3
+Version: 1.8.0
Release: 0
%define gst_branch 1.0
Summary: GStreamer Streaming-Media Framework Plug-Ins
@@ -36,9 +36,9 @@
BuildRequires: aalib-devel
%endif
BuildRequires: gcc-c++
-BuildRequires: glib2-devel >= 2.31.14
-BuildRequires: gstreamer-devel >= 1.6.3
-BuildRequires: gstreamer-plugins-base-devel >= 1.6.3
+BuildRequires: glib2-devel >= 2.40.0
+BuildRequires: gstreamer-devel >= 1.8.0
+BuildRequires: gstreamer-plugins-base-devel >= 1.8.0
BuildRequires: gtk-doc >= 1.12
BuildRequires: libICE-devel
BuildRequires: libSM-devel
@@ -69,13 +69,14 @@
BuildRequires: pkgconfig(libpng) >= 1.2
BuildRequires: pkgconfig(libpulse) >= 1.0
BuildRequires: pkgconfig(libraw1394) >= 2.0.0
+BuildRequires: pkgconfig(libsoup-2.4) >= 2.48.0
BuildRequires: pkgconfig(libsoup-gnome-2.4) >= 2.40.0
BuildRequires: pkgconfig(libv4l2)
BuildRequires: pkgconfig(libxml-2.0) >= 2.4.9
BuildRequires: pkgconfig(shout) >= 2.0
BuildRequires: pkgconfig(speex) >= 1.1.6
BuildRequires: pkgconfig(taglib) >= 1.5
-BuildRequires: pkgconfig(vpx) >= 1.1.0
+BuildRequires: pkgconfig(vpx) >= 1.3.0
BuildRequires: pkgconfig(wavpack) >= 4.60.0
BuildRequires: pkgconfig(xdamage)
BuildRequires: pkgconfig(xfixes)
@@ -127,6 +128,7 @@
--disable-aalib\
%endif
--enable-gtk-doc\
+ --enable-v4l2-probe\
--with-gtk=3.0\
--enable-experimental
make %{?jobs:-j%jobs}
++++++ gst-plugins-good-1.6.3.tar.xz -> gst-plugins-good-1.8.0.tar.xz ++++++
++++ 118251 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package gyp for openSUSE:Factory checked in at 2016-04-30 23:28:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gyp (Old)
and /work/SRC/openSUSE:Factory/.gyp.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gyp"
Changes:
--------
--- /work/SRC/openSUSE:Factory/gyp/gyp.changes 2016-03-26 15:09:53.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.gyp.new/gyp.changes 2016-04-30 23:28:30.000000000 +0200
@@ -1,0 +2,15 @@
+Fri Apr 15 14:30:35 UTC 2016 - mpluskal(a)suse.com
+
+- Update to version 0+git.20160413:
+ * ninja: Add target_rpath generator flag
+ * Add support for iOS Frameworks with header maps.
+ * Detect and warn on missing vcvarsall.bat
+ * Support DEVELOPER_DIR in gyp-ninja for mac.
+ * [GN] Use hard-link if possible when copying to bundle.
+ * Fix mac_tool.py copy-bundle-resource errors.
+ * [iOS/OS X] Copy file instead of hard-linking them.
+ * gyp-win-tool: Let LinkWrapper only transmogrify / when the host platform is Windows.
+ * gyp-win-tool: Fix regression from my last change.
+ * gyp-win-tool: Don't use shell=True on non-Windows hosts.
+
+-------------------------------------------------------------------
Old:
----
gyp-0~git.20160318.tar.xz
New:
----
gyp-0+git.20160413.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gyp.spec ++++++
--- /var/tmp/diff_new_pack.8r9JQ3/_old 2016-04-30 23:28:31.000000000 +0200
+++ /var/tmp/diff_new_pack.8r9JQ3/_new 2016-04-30 23:28:31.000000000 +0200
@@ -17,10 +17,10 @@
#
-%define version_unconverted 0~git.20160318
+%define version_unconverted 0+git.20160413
Name: gyp
-Version: 0~git.20160318
+Version: 0+git.20160413
Release: 0
Summary: Generate Your Projects
License: BSD-3-Clause
@@ -42,7 +42,7 @@
%prep
%setup -q
-%patch0 -p1
+%patch0
for i in $(find pylib -name '*.py'); do
sed -e '\,#![ \t]*/.*python,{d}' $i > $i.new && touch -r $i $i.new && mv $i.new $i
done
++++++ _service ++++++
--- /var/tmp/diff_new_pack.8r9JQ3/_old 2016-04-30 23:28:31.000000000 +0200
+++ /var/tmp/diff_new_pack.8r9JQ3/_new 2016-04-30 23:28:31.000000000 +0200
@@ -4,7 +4,7 @@
<param name="scm">git</param>
<param name="filename">gyp</param>
<param name="changesgenerate">enable</param>
- <param name="versionformat">0~git.%ad</param>
+ <param name="versionformat">0+git.%ad</param>
</service>
<service mode="localonly" name="recompress">
<param name="file">*.tar</param>
++++++ gyp-rpmoptflags.patch ++++++
--- /var/tmp/diff_new_pack.8r9JQ3/_old 2016-04-30 23:28:31.000000000 +0200
+++ /var/tmp/diff_new_pack.8r9JQ3/_new 2016-04-30 23:28:31.000000000 +0200
@@ -1,7 +1,7 @@
-Index: gyp-0~git.20160318/pylib/gyp/generator/make.py
+Index: pylib/gyp/generator/make.py
===================================================================
---- gyp-0~git.20160318.orig/pylib/gyp/generator/make.py
-+++ gyp-0~git.20160318/pylib/gyp/generator/make.py
+--- pylib/gyp/generator/make.py.orig
++++ pylib/gyp/generator/make.py
@@ -1183,6 +1183,7 @@ $(obj).$(TOOLSET)/$(TARGET)/%%.o: $(obj)
# Write configuration-specific variables for CFLAGS, etc.
for configname in sorted(configs.keys()):
1
0
Hello community,
here is the log from the commit of package kf5-filesystem for openSUSE:Factory checked in at 2016-04-30 23:28:20
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kf5-filesystem (Old)
and /work/SRC/openSUSE:Factory/.kf5-filesystem.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kf5-filesystem"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kf5-filesystem/kf5-filesystem.changes 2016-04-12 19:07:32.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.kf5-filesystem.new/kf5-filesystem.changes 2016-04-30 23:28:22.000000000 +0200
@@ -1,0 +2,5 @@
+Wed Apr 20 21:13:17 UTC 2016 - hrvoje.senjan(a)gmail.com
+
+- Define %_kf5_appstreamdir
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kf5-filesystem.spec ++++++
--- /var/tmp/diff_new_pack.h7zscg/_old 2016-04-30 23:28:23.000000000 +0200
+++ /var/tmp/diff_new_pack.h7zscg/_new 2016-04-30 23:28:23.000000000 +0200
@@ -18,7 +18,7 @@
Name: kf5-filesystem
Url: http://www.kde.org
-Version: 20160409
+Version: 20160420
Release: 0
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Summary: KF5 Directory Layout
++++++ macros.kf5 ++++++
--- /var/tmp/diff_new_pack.h7zscg/_old 2016-04-30 23:28:23.000000000 +0200
+++ /var/tmp/diff_new_pack.h7zscg/_new 2016-04-30 23:28:23.000000000 +0200
@@ -30,6 +30,7 @@
%_kf5_servicetypesdir %{_kf5_sharedir}/kservicetypes5
%_kf5_htmldir %{_kf5_sharedir}/doc/HTML
%_kf5_kxmlguidir %{_kf5_sharedir}/kxmlgui5
+%_kf5_appstreamdir %{_kf5_sharedir}/appdata
%_kf5_build_type None
1
0
Hello community,
here is the log from the commit of package ibus for openSUSE:Factory checked in at 2016-04-30 23:28:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ibus (Old)
and /work/SRC/openSUSE:Factory/.ibus.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ibus"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ibus/ibus.changes 2016-03-29 09:52:17.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.ibus.new/ibus.changes 2016-04-30 23:28:13.000000000 +0200
@@ -1,0 +2,26 @@
+Mon Apr 18 14:40:35 UTC 2016 - ftake(a)geeko.jp
+
+- Upstream update to 1.5.13
+ * Add SetCursorLocationRelative D-Bus method
+- Upstream update to 1.5.12
+ * Fix ibus-daemon does not update user cache
+ * Fix lookup window on a secondary monitor cannot get its correct
+ size
+ * Fix default position of property panel under multi monitor
+ environments
+ * Change language code from ISO 939-2 to ISO 639-1
+ * Fix minor bugs
+
+-------------------------------------------------------------------
+Mon Apr 18 13:51:12 UTC 2016 - ftake(a)geeko.jp
+
+- Drop show-input-mode-icon.patch
+ * this feature has been reimplemented in another approach
+
+-------------------------------------------------------------------
+Wed Apr 13 16:47:52 UTC 2016 - hrvoje.senjan(a)gmail.com
+
+- Own all oxygen icon subdirs, starting with KF 5.21.0, oxygen is
+ no longer installed to the same location
+
+-------------------------------------------------------------------
Old:
----
ibus-1.5.11.tar.gz
show-input-mode-icon.patch
New:
----
ibus-1.5.13.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ibus.spec ++++++
--- /var/tmp/diff_new_pack.aytsk2/_old 2016-04-30 23:28:14.000000000 +0200
+++ /var/tmp/diff_new_pack.aytsk2/_new 2016-04-30 23:28:14.000000000 +0200
@@ -30,7 +30,7 @@
%endif
Name: ibus
-Version: 1.5.11
+Version: 1.5.13
Release: 0
Summary: Intelligent Input Bus for Linux OS
License: LGPL-2.1+
@@ -49,8 +49,6 @@
Source99: baselibs.conf
# PATCH-FIX-OPENSUSE ibus-python-install-dir.patch ftake(a)geeko.jp
Patch0: ibus-python-install-dir.patch
-# PATCH-FIX-OPENSUSE reload-preload-engines-until-users-customize-the-list.patch ftake(a)geeko.jp
-Patch3: show-input-mode-icon.patch
# PATFH-FIX-SUSE ibus-xim-fix-re-focus-after-lock.patch bnc#874869 tiwa(a)suse.de -- Fix lost XIM input after screenlock
Patch4: ibus-xim-fix-re-focus-after-lock.patch
# PATCH-FIX-UPSTREAM marguerite(a)opensuse.org
@@ -246,7 +244,6 @@
%{SOURCE99}
%endif
-%patch3 -p1
%patch4 -p1
%if %{with_python3}
@@ -453,8 +450,8 @@
%files branding-openSUSE-KDE
%defattr(-,root,root)
-%dir %{_datadir}/icons/oxygen/24x24
-%dir %{_datadir}/icons/oxygen/24x24/apps
+%dir %{_datadir}/icons/oxygen/*
+%dir %{_datadir}/icons/oxygen/*/apps
%{_datadir}/icons/oxygen/*/apps/ibus-keyboard.*
%changelog
++++++ ibus-1.5.11.tar.gz -> ibus-1.5.13.tar.gz ++++++
++++ 39969 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package sssd for openSUSE:Factory checked in at 2016-04-30 23:28:03
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/sssd (Old)
and /work/SRC/openSUSE:Factory/.sssd.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "sssd"
Changes:
--------
--- /work/SRC/openSUSE:Factory/sssd/sssd.changes 2016-02-17 12:25:06.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.sssd.new/sssd.changes 2016-04-30 23:28:08.000000000 +0200
@@ -1,0 +2,47 @@
+Mon Apr 18 12:24:29 UTC 2016 - hguo(a)suse.com
+
+- Enable PAC responder.
+ PAC is an extension element returned by domain controller, to speed
+ up resolution of authorisation data such as group memberships.
+
+-------------------------------------------------------------------
+Thu Apr 14 17:20:11 UTC 2016 - michael(a)stroeder.com
+
+- Update to new upstream release 1.13.4
+ * The IPA sudo provider was reimplemented. The new version reads the
+ data from IPA's LDAP tree (as opposed to the compat tree populated by
+ the slapi-nis plugin that was used previously). The benefit is that
+ deployments which don't require the compat tree for other purposes,
+ such as support for non-SSSD clients can disable those autogenerated
+ LDAP trees to conserve resources that slapi-nis otherwise requires. There
+ should be no visible changes to the end user.
+ * SSSD now has the ability to renew the machine credentials (keytabs)
+ when the ad provider is used. Please note that a recent version of
+ the adcli (0.8 or newer) package is required for this feature to work.
+ * The automatic ID mapping feature was improved so that the administrator
+ is no longer required to manually set the range size in case a RID in
+ the AD domain is larger than the default range size
+ * A potential infinite loop in the NFS ID mapping plugin that was
+ resulting in an excessive memory usage was fixed
+ * Clients that are pinned to a particular AD site using the ad_site
+ option no longer communicate with DCs outside that site during service
+ discovery.
+ * The IPA identity provider is now able to resolve external
+ (typically coming from a trusted AD forest) group members during
+ get-group-information requests. Please note that resolving external
+ group memberships for AD users during the initgroup requests used to
+ work even prior to this update. This feature is mostly useful for cases
+ where an IPA client is using the compat tree to resolve AD trust users.
+ * The IPA ID views feature now works correctly even for deployments
+ without a trust relationship. Previously, the subdomains IPA provider
+ failed to read the views data if no master domain record was created
+ on the IPA server during trust establishment.
+ * A race condition in the client libraries between the SSSD closing
+ the socket as idle and the client application using the socket was
+ fixed. This bug manifested with a Broken Pipe error message on the
+ client.
+ * SSSD is now able to resolve users with the same usernames in different
+ OUs of an AD domain
+ * The smartcard authentication now works properly with gnome-screensaver
+
+-------------------------------------------------------------------
Old:
----
sssd-1.13.3.tar.gz
sssd-1.13.3.tar.gz.asc
New:
----
sssd-1.13.4.tar.gz
sssd-1.13.4.tar.gz.asc
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ sssd.spec ++++++
--- /var/tmp/diff_new_pack.9YIG5K/_old 2016-04-30 23:28:09.000000000 +0200
+++ /var/tmp/diff_new_pack.9YIG5K/_new 2016-04-30 23:28:09.000000000 +0200
@@ -17,7 +17,7 @@
Name: sssd
-Version: 1.13.3
+Version: 1.13.4
Release: 0
Summary: System Security Services Daemon
License: GPL-3.0+ and LGPL-3.0+
@@ -81,6 +81,7 @@
BuildRequires: pkgconfig(talloc)
BuildRequires: pkgconfig(tdb) >= 1.1.3
BuildRequires: pkgconfig(tevent)
+BuildRequires: pkgconfig(ndr_krb5pac)
%{?systemd_requires}
Requires: sssd-ldap = %version-%release
Requires(postun): pam-config
@@ -401,7 +402,6 @@
--with-os=suse \
--with-semanage=no \
--disable-ldb-version-check \
- --disable-pac-responder
make %{?_smp_mflags} all
@@ -540,6 +540,7 @@
%dir %_libdir/%name/
%_libdir/%name/libsss_ad.so
%dir %_libexecdir/%name/
+%_libexecdir/%name/sssd_pac
%_libexecdir/%name/gpo_child
%dir %_datadir/%name/
%dir %_datadir/%name/sssd.api.d/
++++++ sssd-1.13.3.tar.gz -> sssd-1.13.4.tar.gz ++++++
++++ 138517 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package gstreamer-plugins-ugly for openSUSE:Factory checked in at 2016-04-30 23:27:56
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gstreamer-plugins-ugly (Old)
and /work/SRC/openSUSE:Factory/.gstreamer-plugins-ugly.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gstreamer-plugins-ugly"
Changes:
--------
--- /work/SRC/openSUSE:Factory/gstreamer-plugins-ugly/gstreamer-plugins-ugly.changes 2016-02-12 11:21:56.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.gstreamer-plugins-ugly.new/gstreamer-plugins-ugly.changes 2016-04-30 23:27:58.000000000 +0200
@@ -1,0 +2,32 @@
+Mon Apr 18 09:17:13 UTC 2016 - joerg.lorenzen(a)ki.tng.de
+
+- Added installed (but unpackaged) file libgstmpg123.so on PMBS to
+ subpackage gstreamer-plugins-ugly-orig-addon.
+
+-------------------------------------------------------------------
+Sat Mar 26 20:08:33 UTC 2016 - zaitor(a)opensuse.org
+
+- Update to version 1.8.0:
+ + Hardware-accelerated zero-copy video decoding on Android
+ + New video capture source for Android using the
+ android.hardware.Camera API.
+ + Windows Media reverse playback support (ASF/WMV/WMA).
+ + New tracing system provides support for more sophisticated
+ debugging tools.
+ + New high-level GstPlayer playback convenience API.
+ + Initial support for the new Vulkan API, see Matthew Waters'
+ blog post for more details.
+ + Improved Opus audio codec support: Support for more than two
+ channels; MPEG-TS demuxer/muxer can now handle Opus;
+ sample-accurate encoding/decoding/transmuxing with Ogg,
+ Matroska, ISOBMFF (Quicktime/MP4), and MPEG-TS as container;
+ new codec utility functions for Opus header and caps handling
+ in pbutils library. The Opus encoder/decoder elements were
+ also moved to gst-plugins-base (from -bad), and the opus RTP
+ depayloader/payloader to -good.
+ + GStreamer VAAPI module now released and maintained as part of
+ the GStreamer project.
+ + Asset proxy support in the GStreamer Editing Services.
+- Add pkgconfig(libmpg123) BuildRequires.
+
+-------------------------------------------------------------------
Old:
----
gst-plugins-ugly-1.6.3-patched.tar.xz
gst-plugins-ugly-1.6.3.tar.xz
New:
----
gst-plugins-ugly-1.8.0-patched.tar.xz
gst-plugins-ugly-1.8.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gstreamer-plugins-ugly.spec ++++++
--- /var/tmp/diff_new_pack.UMihv6/_old 2016-04-30 23:27:59.000000000 +0200
+++ /var/tmp/diff_new_pack.UMihv6/_new 2016-04-30 23:27:59.000000000 +0200
@@ -24,7 +24,7 @@
%define _experimental 1
Name: gstreamer-plugins-ugly
-Version: 1.6.3
+Version: 1.8.0
Release: 0
Summary: GStreamer Streaming-Media Framework Plug-Ins
License: LGPL-2.1+
@@ -45,9 +45,9 @@
Patch1: gstreamer-revert-bogus-automake-version.patch
BuildRequires: automake
BuildRequires: gcc-c++
-BuildRequires: glib2-devel >= 2.32.0
-BuildRequires: gstreamer-devel >= 1.6.3
-BuildRequires: gstreamer-plugins-base-devel >= 1.6.3
+BuildRequires: glib2-devel >= 2.40.0
+BuildRequires: gstreamer-devel >= 1.8.0
+BuildRequires: gstreamer-plugins-base-devel >= 1.8.0
BuildRequires: gtk-doc >= 1.12
BuildRequires: libcdio-devel >= 0.76
BuildRequires: libdvdread-devel
@@ -67,6 +67,7 @@
BuildRequires: libopencore-amr-devel
BuildRequires: libtwolame-devel
BuildRequires: libx264-devel >= 0.120
+BuildRequires: pkgconfig(libmpg123) >= 1.13
%endif
# Get minimum gstreamer and gstreamer-plugins-base required versions from configure.ac
%define gstreamer_plugins_ugly_req %(xzgrep --text "^GST.*_REQ" %{S:0} | sort -u | sed 's/GST_REQ=/gstreamer >= /;s/GSTPB_REQ=/gstreamer-plugins-base >= /' | tr '\\n' ' ')
@@ -218,6 +219,7 @@
%{_libdir}/gstreamer-%{gst_branch}/libgstlame.so
%{_libdir}/gstreamer-%{gst_branch}/libgstmad.so
%{_libdir}/gstreamer-%{gst_branch}/libgstmpeg2dec.so
+%{_libdir}/gstreamer-%{gst_branch}/libgstmpg123.so
%{_libdir}/gstreamer-%{gst_branch}/libgsttwolame.so
%{_libdir}/gstreamer-%{gst_branch}/libgstx264.so
%{_datadir}/gstreamer-%{gst_branch}/presets/GstAmrnbEnc.prs
++++++ gst-plugins-ugly-1.6.3-patched.tar.xz -> gst-plugins-ugly-1.8.0-patched.tar.xz ++++++
++++ 110318 lines of diff (skipped)
++++++ gst-plugins-ugly-1.6.3-patched.tar.xz -> gst-plugins-ugly-1.8.0.tar.xz ++++++
++++ 118608 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package pulseaudio for openSUSE:Factory checked in at 2016-04-30 23:27:49
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/pulseaudio (Old)
and /work/SRC/openSUSE:Factory/.pulseaudio.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "pulseaudio"
Changes:
--------
--- /work/SRC/openSUSE:Factory/pulseaudio/pulseaudio.changes 2016-03-29 09:52:47.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.pulseaudio.new/pulseaudio.changes 2016-04-30 23:27:51.000000000 +0200
@@ -1,0 +2,18 @@
+Thu Apr 14 12:45:13 CEST 2016 - tiwai(a)suse.de
+
+- Use /etc/pulse/client.conf.d/50-system.conf as a system setup by
+ setup-pulseaudio script instead of modifying the global config.
+
+-------------------------------------------------------------------
+Mon Apr 4 14:06:06 CEST 2016 - tiwai(a)suse.de
+
+- Move libpulsedsp.so into pulseaudio-utils subpackage and add it
+ to baselibs.conf so that 32bit compat lib is built (boo#968568);
+ also recommends is added in libpulse0-32bit for easy installation
+- Fix padsp script to support bi-arch libs (boo#968568) with
+ padsp-biarch.patch
+- Call bootstrap.sh for rebuilding properly with patches
+- Drop the obsoleted disable-srbchannel.patch, which has been fixed
+ in upstream already
+
+-------------------------------------------------------------------
Old:
----
disable-srbchannel.patch
New:
----
padsp-biarch.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ pulseaudio.spec ++++++
--- /var/tmp/diff_new_pack.4X64t7/_old 2016-04-30 23:27:52.000000000 +0200
+++ /var/tmp/diff_new_pack.4X64t7/_new 2016-04-30 23:27:52.000000000 +0200
@@ -44,9 +44,8 @@
Patch0: disabled-start.diff
Patch1: suppress-socket-error-msg.diff
Patch2: pulseaudio-wrong-memset.patch
-# PATCH-FIX-SUSE disable-srbchannel.patch boo#950487 Disable srbchannel as a workaround for crashes on KDE
-# XXX note this patch isn't used for now, kept just for workaround in future
-Patch3: disable-srbchannel.patch
+# PATCH-FIX-OPENSUSE padsp-biarch.patch bnc#968568
+Patch4: padsp-biarch.patch
BuildRequires: alsa-devel >= 1.0.19
# require only minimal bluez, if we are on bluez 5 we will determine in build phase
BuildRequires: bluez-devel >= 4.99
@@ -326,11 +325,10 @@
%patch0
%patch1 -p1
%patch2
-%if 0
-%patch3 -p1
-%endif
+%patch4 -p1
%build
+./bootstrap.sh
echo 'HTML_TIMESTAMP=NO' >> doxygen/doxygen.conf.in
export LDFLAGS="-pie"
export CFLAGS="%{optflags} -fPIE"
@@ -394,6 +392,8 @@
mkdir -p %{buildroot}%{_sysconfdir}/pulse/daemon.conf.d
# Install disable_flat_volumes.conf
install -m 0644 %{S:6} %{buildroot}%{_sysconfdir}/pulse/daemon.conf.d
+# created by setup-pulseaudio script
+touch %{buildroot}%{_sysconfdir}/pulse/client.conf.d/50-system.conf
%fdupes doxygen/html
%pre
@@ -445,7 +445,6 @@
%{_datadir}/pulseaudio/alsa-mixer
%{_localstatedir}/adm/fillup-templates/sysconfig.sound-pulseaudio
%dir %{_libdir}/pulseaudio
-%{_libdir}/pulseaudio/libpulsedsp.so
%{_libdir}/pulseaudio/libpulsecore-%{drvver}.so
%dir %{_libdir}/pulse-%{drvver}/
%dir %{_libdir}/pulse-%{drvver}/modules/
@@ -554,6 +553,7 @@
# created by setup-pulseaudio script
%ghost %{_sysconfdir}/profile.d/pulseaudio.sh
%ghost %{_sysconfdir}/profile.d/pulseaudio.csh
+%ghost %{_sysconfdir}/pulse/client.conf.d/50-system.conf
%files esound-compat
%defattr(-,root,root)
@@ -670,6 +670,8 @@
%{_bindir}/pax11publish
%{_bindir}/padsp
%{_bindir}/pasuspender
+%dir %{_libdir}/pulseaudio
+%{_libdir}/pulseaudio/libpulsedsp.so
%{_mandir}/man1/pacat.1*
%{_mandir}/man1/pacmd.1*
%{_mandir}/man1/pactl.1*
++++++ baselibs.conf ++++++
--- /var/tmp/diff_new_pack.4X64t7/_old 2016-04-30 23:27:52.000000000 +0200
+++ /var/tmp/diff_new_pack.4X64t7/_new 2016-04-30 23:27:52.000000000 +0200
@@ -1,5 +1,7 @@
libpulse0
obsoletes "pulseaudio-libs-<targettype> <= <version>"
provides "pulseaudio-libs-<targettype> = <version>"
+ recommends "pulseaudio-utils-<targettype>"
libpulse-mainloop-glib0
libpulse-devel
+pulseaudio-utils
++++++ padsp-biarch.patch ++++++
---
src/Makefile.am | 5 ++++-
src/utils/padsp.in | 6 ++++--
2 files changed, 8 insertions(+), 3 deletions(-)
--- a/src/utils/padsp.in
+++ b/src/utils/padsp.in
@@ -73,10 +73,12 @@ done
shift $(( $OPTIND - 1 ))
+prefix=@prefix@
+exec_prefix=@exec_prefix@
if [ x"$LD_PRELOAD" = x ] ; then
- LD_PRELOAD="@pkglibdir@/libpulsedsp.so"
+ LD_PRELOAD="${exec_prefix}/\$LIB/@PACKAGE@/libpulsedsp.so"
else
- LD_PRELOAD="$LD_PRELOAD @pkglibdir@/libpulsedsp.so"
+ LD_PRELOAD="$LD_PRELOAD ${exec_prefix}/\$LIB/@PACKAGE@/libpulsedsp.so"
fi
export LD_PRELOAD
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -901,7 +901,10 @@ padsplib_LTLIBRARIES = libpulsedsp.la
bin_SCRIPTS += padsp
edit = @SED@ \
- -e "s|@pkglibdir[@]|$(pkglibdir)|g"
+ -e "s|@pkglibdir[@]|$(pkglibdir)|g" \
+ -e "s|@prefix[@]|$(prefix)|g" \
+ -e "s|@exec_prefix[@]|$(exec_prefix)|g" \
+ -e "s|@PACKAGE[@]|$(PACKAGE)|g"
padsp: utils/padsp.in
$(edit) $< > $@
++++++ setup-pulseaudio ++++++
--- /var/tmp/diff_new_pack.4X64t7/_old 2016-04-30 23:27:52.000000000 +0200
+++ /var/tmp/diff_new_pack.4X64t7/_new 2016-04-30 23:27:52.000000000 +0200
@@ -28,6 +28,7 @@
PROFNAME=/etc/profile.d/pulseaudio.sh
CPROFNAME=/etc/profile.d/pulseaudio.csh
+pulse_client_conf=/etc/pulse/client.conf.d/50-system.conf
MPLAYER_CONF=/etc/mplayer/mplayer.conf
@@ -199,10 +200,10 @@
enable_autospawn() {
echo "Enabling PulseAudio autospawn..."
- if grep -q ^autospawn /etc/pulse/client.conf; then
- sed -i -e "s|^autospawn.*|autospawn = yes|g" /etc/pulse/client.conf
+ if grep -q ^autospawn $pulse_client_conf >/dev/null 2>&1; then
+ sed -i -e "s|^autospawn.*|autospawn = yes|g" $pulse_client_conf
else
- echo "autospawn = yes" >> /etc/pulse/client.conf
+ echo "autospawn = yes" >> $pulse_client_conf
fi
}
@@ -306,10 +307,10 @@
disable_autospawn() {
echo "Disabling PulseAudio autospawn..."
- if grep -q ^autospawn /etc/pulse/client.conf; then
- sed -i -e "s|^autospawn.*|autospawn = no|g" /etc/pulse/client.conf
+ if grep -q ^autospawn $pulse_client_conf >/dev/null 2>&1; then
+ sed -i -e "s|^autospawn.*|autospawn = no|g" $pulse_client_conf
else
- echo "autospawn = no" >> /etc/pulse/client.conf
+ echo "autospawn = no" >> $pulse_client_conf
fi
# kill leftover PA processes
killall pulseaudio > /dev/null 2>&1
1
0
Hello community,
here is the log from the commit of package mailx for openSUSE:Factory checked in at 2016-04-30 23:27:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/mailx (Old)
and /work/SRC/openSUSE:Factory/.mailx.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mailx"
Changes:
--------
--- /work/SRC/openSUSE:Factory/mailx/mailx.changes 2015-03-19 20:48:54.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.mailx.new/mailx.changes 2016-04-30 23:27:33.000000000 +0200
@@ -1,0 +2,5 @@
+Fri Apr 8 15:02:17 UTC 2016 - werner(a)suse.de
+
+- Correct parenthese expansion to fulfill natural order (bnc#974561)
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ mailx.spec ++++++
--- /var/tmp/diff_new_pack.Ldf55V/_old 2016-04-30 23:27:34.000000000 +0200
+++ /var/tmp/diff_new_pack.Ldf55V/_new 2016-04-30 23:27:34.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package mailx
#
-# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 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
++++++ mailx-12.5-mime.dif ++++++
--- /var/tmp/diff_new_pack.Ldf55V/_old 2016-04-30 23:27:34.000000000 +0200
+++ /var/tmp/diff_new_pack.Ldf55V/_new 2016-04-30 23:27:34.000000000 +0200
@@ -1,5 +1,11 @@
+---
+ def.h | 4 +
+ mime.c | 144 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----
+ sendout.c | 40 +++++++++++++----
+ 3 files changed, 172 insertions(+), 16 deletions(-)
+
--- def.h
-+++ def.h 2012-03-23 13:57:44.000000000 +0000
++++ def.h 2016-04-08 14:58:42.729798789 +0000
@@ -142,7 +142,9 @@ enum mimeclean {
MIME_LONGLINES = 002, /* has lines too long for RFC 2822 */
MIME_CTRLCHAR = 004, /* contains control characters */
@@ -12,7 +18,7 @@
enum tdflags {
--- mime.c
-+++ mime.c 2013-07-02 10:25:35.000000000 +0000
++++ mime.c 2016-04-08 15:00:05.808259514 +0000
@@ -302,13 +302,78 @@ gettcharset(void)
return t;
}
@@ -101,7 +107,7 @@
if (w & GIDENT) {
if (hp->h_from && name_highbit(hp->h_from))
goto needs;
-@@ -355,7 +422,7 @@ need_hdrconv(struct header *hp, enum gfi
+@@ -355,7 +421,7 @@ need_hdrconv(struct header *hp, enum gfi
if (w & GSUBJECT && has_highbit(hp->h_subject))
goto needs;
return NULL;
@@ -128,7 +134,7 @@
match = 1;
break;
}
-@@ -748,16 +814,66 @@ mime_isclean(FILE *f)
+@@ -748,14 +814,62 @@ mime_isclean(FILE *f)
maxlen = curlen;
curlen = 1;
} else if (c & 0200) {
@@ -172,10 +178,8 @@
+ continue;
+ }
+ latin:
-+ if (text_chars[i & 0377] == I) {
++ if (text_chars[i & 0377] == I)
+ isclean |= MIME_LATIN;
-+ continue;
-+ }
+ if (text_chars[i & 0377] == X) {
+ isclean |= MIME_CTRLCHAR;
+ break;
@@ -189,14 +193,12 @@
+ break;
}
} while (c != EOF);
- if (lastc != '\n')
- isclean |= MIME_NOTERMNL;
+ if (isclean & (MIME_CTRLCHAR|MIME_HASNUL))
+ isclean &= (MIME_CTRLCHAR|MIME_HASNUL);
+ if (lastc != '\n')
+ isclean |= MIME_NOTERMNL;
clearerr(f);
- fseek(f, initial_pos, SEEK_SET);
- if ((cp = value("maximum-unencoded-line-length")) != NULL)
-@@ -826,11 +942,16 @@ get_mime_convert(FILE *fp, char **conten
+@@ -826,11 +940,16 @@ get_mime_convert(FILE *fp, char **conten
* ^I or ^L in text/plain bodies. However, some
* obscure character sets actually contain these
* characters, so the content type can be set.
@@ -213,7 +215,7 @@
}
return convert;
}
-@@ -989,8 +1110,14 @@ mime_fromhdr(struct str *in, struct str
+@@ -989,8 +1108,14 @@ mime_fromhdr(struct str *in, struct str
#ifdef HAVE_ICONV
iconv_t fhicd = (iconv_t)-1;
#endif
@@ -228,7 +230,7 @@
maxstor = in->l;
out->s = smalloc(maxstor + 1);
out->l = 0;
-@@ -1010,7 +1137,7 @@ mime_fromhdr(struct str *in, struct str
+@@ -1010,7 +1135,7 @@ mime_fromhdr(struct str *in, struct str
#ifdef HAVE_ICONV
if (fhicd != (iconv_t)-1)
iconv_close(fhicd);
@@ -237,7 +239,7 @@
fhicd = iconv_open_ft(tcs, cs);
else
fhicd = (iconv_t)-1;
-@@ -1105,12 +1232,17 @@ notmime:
+@@ -1105,12 +1230,17 @@ notmime:
}
fromhdr_end:
*q = '\0';
@@ -257,7 +259,7 @@
out->l = delctrl(out->s, out->l);
#ifdef HAVE_ICONV
--- sendout.c
-+++ sendout.c 2012-03-23 18:30:50.949933289 +0000
++++ sendout.c 2016-04-08 14:58:42.729798789 +0000
@@ -226,6 +226,23 @@ attach_file1(struct attachment *ap, FILE
charset = ap->a_charset;
convert = get_mime_convert(fi, &contenttype, &charset, &isclean,
++++++ mailx-12.5-parentheses.dif ++++++
--- /var/tmp/diff_new_pack.Ldf55V/_old 2016-04-30 23:27:34.000000000 +0200
+++ /var/tmp/diff_new_pack.Ldf55V/_new 2016-04-30 23:27:34.000000000 +0200
@@ -1,5 +1,19 @@
+---
+ cmd1.c | 20 ++++++++++----------
+ collect.c | 8 ++++----
+ def.h | 2 +-
+ fio.c | 4 ++--
+ imap.c | 8 ++++----
+ junk.c | 30 +++++++++++++++---------------
+ macro.c | 2 +-
+ md5.c | 38 +++++++++++++++++++-------------------
+ mime.c | 24 ++++++++++++------------
+ sendout.c | 8 ++++----
+ tty.c | 2 +-
+ 11 files changed, 73 insertions(+), 73 deletions(-)
+
--- cmd1.c
-+++ cmd1.c 2013-07-02 10:44:54.178300341 +0000
++++ cmd1.c 2016-04-08 14:08:47.753310695 +0000
@@ -112,14 +112,14 @@ headers(void *v)
lastg = g;
lastmq = mq;
@@ -16,7 +30,7 @@
g++;
}
- if (lastmq && (n==-2 || n==-1 && mp==&message[msgCount])) {
-+ if (lastmq && ((n==-2 || n==-1) && mp==&message[msgCount])) {
++ if (lastmq && (n==-2 || (n==-1 && mp==&message[msgCount]))) {
g = lastg;
mq = lastmq;
}
@@ -36,12 +50,12 @@
g++;
}
- if (lastmq && (n==-2 || n==-1 && mp==&message[msgCount])) {
-+ if (lastmq && ((n==-2 || n==-1) && mp==&message[msgCount])) {
++ if (lastmq && (n==-2 || (n==-1 && mp==&message[msgCount]))) {
g = lastg;
mq = lastmq;
}
--- collect.c
-+++ collect.c 2013-07-02 10:56:15.602310172 +0000
++++ collect.c 2016-04-08 14:14:42.838735568 +0000
@@ -279,8 +279,8 @@ read_attachment_data(struct attachment *
perror(ap->a_name);
}
@@ -49,7 +63,7 @@
- (cp = value("sendcharsets")) != NULL &&
- strchr(cp, ',') != NULL)) {
+ ((cp = value("sendcharsets")) != NULL &&
-+ strchr(cp, ',') != NULL))) {
++ strchr(cp, ',') != NULL))) {
snprintf(prefix, sizeof prefix, "#%u\tcharset: ", number);
ap->a_charset = readtty(prefix, ap->a_charset);
}
@@ -65,7 +79,7 @@
if (putline(collf, linebuf, count) < 0)
goto err;
--- def.h
-+++ def.h 2013-07-02 10:36:04.091168058 +0000
++++ def.h 2016-04-08 14:21:12.939513915 +0000
@@ -408,7 +408,7 @@ enum gfield {
#define GMASK (GTO|GSUBJECT|GCC|GBCC|GREPLYTO) /* Mask of places from whence */
@@ -76,8 +90,8 @@
/*
* Structure used to pass about the current
--- fio.c
-+++ fio.c 2013-07-02 10:59:31.683460415 +0000
-@@ -600,8 +600,8 @@ getfold(char *name, int size)
++++ fio.c 2016-04-08 14:17:14.651924938 +0000
+@@ -543,8 +543,8 @@ getfold(char *name, int size)
if ((folder = value("folder")) == NULL)
return (-1);
@@ -89,7 +103,7 @@
name[size-1]='\0';
} else {
--- imap.c
-+++ imap.c 2013-07-02 09:26:20.434847340 +0000
++++ imap.c 2016-04-08 14:20:47.983975844 +0000
@@ -1868,11 +1868,11 @@ imap_update(struct mailbox *mp)
stored++;
gotcha++;
@@ -110,25 +124,25 @@
initcache(&xmb);
memset(&xm, 0, sizeof xm);
- xm.m_flag = flag&MREAD | MNEW;
-+ xm.m_flag = flag&(MREAD|MNEW);
++ xm.m_flag = (flag&MREAD) | MNEW;
xm.m_time = t;
xm.m_block = mailx_blockof(off1);
xm.m_offset = mailx_offsetof(off1);
--- junk.c
-+++ junk.c 2013-07-02 09:36:11.306215424 +0000
++++ junk.c 2016-04-08 14:32:27.147010580 +0000
@@ -345,11 +345,11 @@ putdb(void)
void *zp;
int scomp, ncomp;
- if (!super_mmapped && (sfp = dbfp(SUPER, O_WRONLY, &scomp, &sname))
- == NULL || sfp == (FILE *)-1)
-+ if (!super_mmapped && ((sfp = dbfp(SUPER, O_WRONLY, &scomp, &sname))
-+ == NULL || sfp == (FILE *)-1))
++ if ((!super_mmapped && (sfp = dbfp(SUPER, O_WRONLY, &scomp, &sname))
++ == NULL) || sfp == (FILE *)-1)
return;
- if (!nodes_mmapped && (nfp = dbfp(NODES, O_WRONLY, &ncomp, &nname))
- == NULL || nfp == (FILE *)-1)
-+ if (!nodes_mmapped && ((nfp = dbfp(NODES, O_WRONLY, &ncomp, &nname))
-+ == NULL || nfp == (FILE *)-1))
++ if ((!nodes_mmapped && (nfp = dbfp(NODES, O_WRONLY, &ncomp, &nname))
++ == NULL) || nfp == (FILE *)-1)
return;
if (super_mmapped == 0 || nodes_mmapped == 0)
holdint();
@@ -197,7 +211,7 @@
best[j+1] = best[j];
best[i].dist = d;
--- macro.c
-+++ macro.c 2013-07-02 10:57:57.718909269 +0000
++++ macro.c 2016-04-08 14:34:50.856343786 +0000
@@ -195,7 +195,7 @@ ccall(void *v)
char **args = v;
struct macro *mp;
@@ -208,7 +222,7 @@
return 1;
}
--- md5.c
-+++ md5.c 2013-07-02 11:17:37.825823499 +0000
++++ md5.c 2016-04-08 13:55:12.292417526 +0000
@@ -70,42 +70,42 @@ static unsigned char PADDING[64] = {
/*
* F, G, H and I are basic MD5 functions.
@@ -225,7 +239,7 @@
* ROTATE_LEFT rotates x left n bits.
*/
-#define ROTATE_LEFT(x, n) ((x)<<(n) & 0xffffffff | (x) >> 32-(n))
-+#define ROTATE_LEFT(x, n) ((((x)<<(n)) & 0xffffffff) | ((x) >> (32-(n))))
++#define ROTATE_LEFT(x, n) (((x)<<(n) & 0xffffffff) | (x) >> (32-(n)))
/*
* FF, GG, HH, and II transformations for rounds 1, 2, 3, and 4.
@@ -233,34 +247,34 @@
*/
#define FF(a, b, c, d, x, s, ac) { \
- (a) = (a) + F((b), (c), (d)) + (x) + ((ac)&0xffffffff) & 0xffffffff; \
-+ (a) = (a) + F((b), (c), (d)) + (((x) + ((ac)&0xffffffff)) & 0xffffffff); \
++ (a) = ((a) + F((b), (c), (d)) + (x) + ((ac)&0xffffffff)) & 0xffffffff; \
(a) = ROTATE_LEFT((a), (s)); \
- (a) = (a) + (b) & 0xffffffff; \
-+ (a) = (a) + ((b) & 0xffffffff); \
++ (a) = ((a) + (b)) & 0xffffffff; \
}
#define GG(a, b, c, d, x, s, ac) { \
- (a) = (a) + G((b), (c), (d)) + (x) + ((ac)&0xffffffff) & 0xffffffff; \
-+ (a) = (a) + G((b), (c), (d)) + (((x) + ((ac)&0xffffffff)) & 0xffffffff); \
++ (a) = ((a) + G((b), (c), (d)) + (x) + ((ac)&0xffffffff)) & 0xffffffff; \
(a) = ROTATE_LEFT((a), (s)); \
- (a) = (a) + (b) & 0xffffffff; \
-+ (a) = (a) + ((b) & 0xffffffff); \
++ (a) = ((a) + (b)) & 0xffffffff; \
}
#define HH(a, b, c, d, x, s, ac) { \
- (a) = (a) + H((b), (c), (d)) + (x) + ((ac)&0xffffffff) & 0xffffffff; \
-+ (a) = (a) + H((b), (c), (d)) + (((x) + ((ac)&0xffffffff)) & 0xffffffff); \
++ (a) = ((a) + H((b), (c), (d)) + (x) + ((ac)&0xffffffff)) & 0xffffffff; \
(a) = ROTATE_LEFT((a), (s)); \
- (a) = (a) + (b) & 0xffffffff; \
-+ (a) = (a) + ((b) & 0xffffffff); \
++ (a) = ((a) + (b)) & 0xffffffff; \
}
#define II(a, b, c, d, x, s, ac) { \
- (a) = (a) + I((b), (c), (d)) + (x) + ((ac)&0xffffffff) & 0xffffffff; \
-+ (a) = (a) + I((b), (c), (d)) + (((x) + ((ac)&0xffffffff)) & 0xffffffff); \
++ (a) = ((a) + I((b), (c), (d)) + (x) + ((ac)&0xffffffff)) & 0xffffffff; \
(a) = ROTATE_LEFT((a), (s)); \
- (a) = (a) + (b) & 0xffffffff; \
-+ (a) = (a) + ((b) & 0xffffffff); \
++ (a) = ((a) + (b)) & 0xffffffff; \
}
/*
@@ -269,12 +283,12 @@
/* Update number of bits */
- if ((context->count[0] = context->count[0] + (inputLen<<3) & 0xffffffff)
-+ if ((context->count[0] = context->count[0] + ((inputLen<<3) & 0xffffffff))
++ if ((context->count[0] = (context->count[0] + (inputLen<<3)) & 0xffffffff)
< (inputLen<<3 & 0xffffffff))
- context->count[1] = context->count[1] + 1 & 0xffffffff;
- context->count[1] = context->count[1] + (inputLen>>29) & 0xffffffff;
-+ context->count[1] = context->count[1] + (1 & 0xffffffff);
-+ context->count[1] = context->count[1] + ((inputLen>>29) & 0xffffffff);
++ context->count[1] = (context->count[1] + 1) & 0xffffffff;
++ context->count[1] = (context->count[1] + (inputLen>>29)) & 0xffffffff;
partLen = 64 - index;
@@ -286,41 +300,16 @@
- state[1] = state[1] + b & 0xffffffff;
- state[2] = state[2] + c & 0xffffffff;
- state[3] = state[3] + d & 0xffffffff;
-+ state[0] = state[0] + (a & 0xffffffff);
-+ state[1] = state[1] + (b & 0xffffffff);
-+ state[2] = state[2] + (c & 0xffffffff);
-+ state[3] = state[3] + (d & 0xffffffff);
++ state[0] = (state[0] + a) & 0xffffffff;
++ state[1] = (state[1] + b) & 0xffffffff;
++ state[2] = (state[2] + c) & 0xffffffff;
++ state[3] = (state[3] + d) & 0xffffffff;
/*
* Zeroize sensitive information.
--- mime.c
-+++ mime.c 2013-07-02 10:19:41.993365604 +0000
-@@ -855,10 +855,8 @@ mime_isclean(FILE *f)
- continue;
- }
- latin:
-- if (text_chars[i & 0377] == I) {
-+ if (text_chars[i & 0377] == I)
- isclean |= MIME_LATIN;
-- continue;
-- }
- if (text_chars[i & 0377] == X) {
- isclean |= MIME_CTRLCHAR;
- break;
-@@ -871,10 +869,10 @@ mime_isclean(FILE *f)
- break;
- }
- } while (c != EOF);
-- if (lastc != '\n')
-- isclean |= MIME_NOTERMNL;
- if (isclean & (MIME_CTRLCHAR|MIME_HASNUL))
- isclean &= (MIME_CTRLCHAR|MIME_HASNUL);
-+ if (lastc != '\n')
-+ isclean |= MIME_NOTERMNL;
- clearerr(f);
- fseek(f, initial_pos, SEEK_SET);
- if ((cp = value("maximum-unencoded-line-length")) != NULL)
-@@ -916,8 +914,8 @@ get_mime_convert(FILE *fp, char **conten
++++ mime.c 2016-04-08 14:52:21.924855005 +0000
+@@ -916,8 +916,8 @@ get_mime_convert(FILE *fp, char **conten
int convert;
*isclean = mime_isclean(fp);
@@ -331,7 +320,7 @@
convert = CONV_TOB64;
if (*contenttype == NULL ||
ascncasecmp(*contenttype, "text/", 5) == 0)
-@@ -990,13 +988,13 @@ mime_write_toqp(struct str *in, FILE *fo
+@@ -990,13 +990,13 @@ mime_write_toqp(struct str *in, FILE *fo
upper = in->s + in->l;
for (p = in->s, l = 0; p < upper; p++) {
if (mustquote(*p&0377) ||
@@ -351,7 +340,7 @@
if (l >= 69) {
sz += 2;
fwrite("=\n", sizeof (char), 2, fo);
-@@ -1036,8 +1034,8 @@ mime_str_toqp(struct str *in, struct str
+@@ -1036,8 +1036,8 @@ mime_str_toqp(struct str *in, struct str
out->l = in->l;
upper = in->s + in->l;
for (p = in->s; p < upper; p++) {
@@ -362,7 +351,7 @@
if (inhdr && *p == ' ') {
*q++ = '_';
} else {
-@@ -1347,8 +1345,8 @@ mime_write_tohdr(struct str *in, FILE *f
+@@ -1347,8 +1347,8 @@ mime_write_tohdr(struct str *in, FILE *f
wbeg == &upper[-1]))
mustquote++;
}
@@ -374,7 +363,7 @@
cin.s = lastwordend ? lastwordend :
wbeg;
--- sendout.c
-+++ sendout.c 2013-07-02 08:04:20.342719526 +0000
++++ sendout.c 2016-04-08 14:46:47.127059692 +0000
@@ -1372,10 +1372,10 @@ fmt(char *str, struct name *np, FILE *fo
if (col) {
fwrite(str, sizeof *str, strlen(str), fo);
@@ -391,7 +380,7 @@
}
for (; np != NULL; np = np->n_flink) {
--- tty.c
-+++ tty.c 2013-07-02 11:02:18.880440821 +0000
++++ tty.c 2016-04-08 14:47:33.838193954 +0000
@@ -438,6 +438,6 @@ yorn(char *msg)
do
cp = readtty(msg, NULL);
++++++ mailx-12.5.dif ++++++
--- /var/tmp/diff_new_pack.Ldf55V/_old 2016-04-30 23:27:34.000000000 +0200
+++ /var/tmp/diff_new_pack.Ldf55V/_new 2016-04-30 23:27:34.000000000 +0200
@@ -263,7 +263,7 @@
if (Iflag && ef == NULL) {
--- makeconfig
+++ makeconfig 2011-05-13 11:28:45.907925652 +0000
-@@ -304,23 +304,48 @@ int main(void)
+@@ -304,23 +304,49 @@ int main(void)
'for socket functionality in libsocket and libnsl' \
'#define HAVE_SOCKETS' '-lsocket -lnsl'
@@ -324,6 +324,7 @@
+ <$tmp2.c link_check ipv6 'for IPv6 functionality getnameinfo' '#define HAVE_GETNAMEINFO'
+echo \
+'#if defined(HAVE_GETADDRINFO) && defined(HAVE_GETNAMEINFO)
++# undef HAVE_IPv6_FUNCS
+# define HAVE_IPv6_FUNCS
+#endif' >>$out
1
0