Hello community, here is the log from the commit of package libzypp for openSUSE:Factory checked in at 2015-06-18 06:36:38 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 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 2015-06-04 08:53:25.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.libzypp.new/libzypp.changes 2015-06-18 06:36:40.000000000 +0200 @@ -1,0 +2,18 @@ +Fri Jun 12 12:14:04 CEST 2015 - ma@suse.de + +- Add details to the default signature verification problem report +- PathInfo: Avoid ExternalProgram in clean_dir +- call rpmdb2solv without executing user-supplied scripts (bnc#926853) +- version 15.4.1 (3) + +------------------------------------------------------------------- +Thu Jun 11 01:13:31 CEST 2015 - ma@suse.de + +- Update zypp-po.tar.bz2 + +------------------------------------------------------------------- +Thu Jun 4 01:13:22 CEST 2015 - ma@suse.de + +- Update zypp-po.tar.bz2 + +------------------------------------------------------------------- Old: ---- libzypp-15.4.0.tar.bz2 New: ---- libzypp-15.4.1.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libzypp.spec ++++++ --- /var/tmp/diff_new_pack.krWGY6/_old 2015-06-18 06:36:41.000000000 +0200 +++ /var/tmp/diff_new_pack.krWGY6/_new 2015-06-18 06:36:41.000000000 +0200 @@ -19,7 +19,7 @@ %define force_gcc_46 0 Name: libzypp -Version: 15.4.0 +Version: 15.4.1 Release: 0 Url: git://gitorious.org/opensuse/libzypp.git Summary: Package, Patch, Pattern, and Product Management ++++++ libzypp-15.4.0.tar.bz2 -> libzypp-15.4.1.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-15.4.0/VERSION.cmake new/libzypp-15.4.1/VERSION.cmake --- old/libzypp-15.4.0/VERSION.cmake 2015-06-03 13:04:17.000000000 +0200 +++ new/libzypp-15.4.1/VERSION.cmake 2015-06-12 12:17:07.000000000 +0200 @@ -61,8 +61,8 @@ SET(LIBZYPP_MAJOR "15") SET(LIBZYPP_COMPATMINOR "3") SET(LIBZYPP_MINOR "4") -SET(LIBZYPP_PATCH "0") +SET(LIBZYPP_PATCH "1") # -# LAST RELEASED: 15.4.0 (3) +# LAST RELEASED: 15.4.1 (3) # (The number in parenthesis is LIBZYPP_COMPATMINOR) #======= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-15.4.0/doc/locks.5 new/libzypp-15.4.1/doc/locks.5 --- old/libzypp-15.4.0/doc/locks.5 2015-06-01 10:27:31.000000000 +0200 +++ new/libzypp-15.4.1/doc/locks.5 2015-06-12 13:21:35.000000000 +0200 @@ -2,12 +2,12 @@ ." Title: locks ." Author: [see the "AUTHORS" section] ." Generator: DocBook XSL Stylesheets v1.78.1 http://docbook.sf.net/ -." Date: 10/02/2014 +." Date: 06/12/2015 ." Manual: LIBZYPP -." Source: libzypp +." Source: SUSE Linux ." Language: English ." -.TH "LOCKS" "5" "10/02/2014" "libzypp" "LIBZYPP" +.TH "LOCKS" "5" "06/12/2015" "SUSE Linux" "LIBZYPP" ." ----------------------------------------------------------------- ." * Define some portability stuff ." ----------------------------------------------------------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-15.4.0/doc/locks.5.txt new/libzypp-15.4.1/doc/locks.5.txt --- old/libzypp-15.4.0/doc/locks.5.txt 2014-10-02 16:21:09.000000000 +0200 +++ new/libzypp-15.4.1/doc/locks.5.txt 2015-06-12 13:21:35.000000000 +0200 @@ -1,7 +1,7 @@ -locks(5) +LOCKS(5) ======== :man manual: LIBZYPP -:man source: libzypp +:man source: SUSE Linux NAME diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-15.4.0/doc/zypp-CheckAccessDeleted.1 new/libzypp-15.4.1/doc/zypp-CheckAccessDeleted.1 --- old/libzypp-15.4.0/doc/zypp-CheckAccessDeleted.1 2015-06-01 10:27:31.000000000 +0200 +++ new/libzypp-15.4.1/doc/zypp-CheckAccessDeleted.1 2015-06-12 13:21:35.000000000 +0200 @@ -1,13 +1,13 @@ '" t -." Title: zypp-CheckAccessDeleted +." Title: zypp-checkaccessdeleted ." Author: [see the "AUTHORS" section] ." Generator: DocBook XSL Stylesheets v1.78.1 http://docbook.sf.net/ -." Date: 10/02/2014 +." Date: 06/12/2015 ." Manual: LIBZYPP -." Source: libzypp +." Source: SUSE Linux ." Language: English ." -.TH "ZYPP-CHECKACCESSDEL" "1" "10/02/2014" "libzypp" "LIBZYPP" +.TH "ZYPP-CHECKACCESSDEL" "1" "06/12/2015" "SUSE Linux" "LIBZYPP" ." ----------------------------------------------------------------- ." * Define some portability stuff ." ----------------------------------------------------------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-15.4.0/doc/zypp-CheckAccessDeleted.1.txt new/libzypp-15.4.1/doc/zypp-CheckAccessDeleted.1.txt --- old/libzypp-15.4.0/doc/zypp-CheckAccessDeleted.1.txt 2014-10-02 16:21:09.000000000 +0200 +++ new/libzypp-15.4.1/doc/zypp-CheckAccessDeleted.1.txt 2015-06-12 13:21:35.000000000 +0200 @@ -1,7 +1,7 @@ -zypp-CheckAccessDeleted(1) +ZYPP-CHECKACCESSDELETED(1) ========================== :man manual: LIBZYPP -:man source: libzypp +:man source: SUSE Linux NAME diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-15.4.0/doc/zypp-NameReqPrv.1 new/libzypp-15.4.1/doc/zypp-NameReqPrv.1 --- old/libzypp-15.4.0/doc/zypp-NameReqPrv.1 2015-06-01 10:27:31.000000000 +0200 +++ new/libzypp-15.4.1/doc/zypp-NameReqPrv.1 2015-06-12 13:21:35.000000000 +0200 @@ -1,13 +1,13 @@ '" t -." Title: zypp-NameReqPrv +." Title: zypp-namereqprv ." Author: [see the "AUTHORS" section] ." Generator: DocBook XSL Stylesheets v1.78.1 http://docbook.sf.net/ -." Date: 10/02/2014 +." Date: 06/12/2015 ." Manual: LIBZYPP -." Source: libzypp +." Source: SUSE Linux ." Language: English ." -.TH "ZYPP-NAMEREQPRV" "1" "10/02/2014" "libzypp" "LIBZYPP" +.TH "ZYPP-NAMEREQPRV" "1" "06/12/2015" "SUSE Linux" "LIBZYPP" ." ----------------------------------------------------------------- ." * Define some portability stuff ." ----------------------------------------------------------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-15.4.0/doc/zypp-NameReqPrv.1.txt new/libzypp-15.4.1/doc/zypp-NameReqPrv.1.txt --- old/libzypp-15.4.0/doc/zypp-NameReqPrv.1.txt 2014-10-02 16:21:09.000000000 +0200 +++ new/libzypp-15.4.1/doc/zypp-NameReqPrv.1.txt 2015-06-12 13:21:35.000000000 +0200 @@ -1,7 +1,7 @@ -zypp-NameReqPrv(1) +ZYPP-NAMEREQPRV(1) ================== :man manual: LIBZYPP -:man source: libzypp +:man source: SUSE Linux NAME diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-15.4.0/package/libzypp.changes new/libzypp-15.4.1/package/libzypp.changes --- old/libzypp-15.4.0/package/libzypp.changes 2015-06-03 13:04:17.000000000 +0200 +++ new/libzypp-15.4.1/package/libzypp.changes 2015-06-12 12:17:07.000000000 +0200 @@ -1,4 +1,22 @@ ------------------------------------------------------------------- +Fri Jun 12 12:14:04 CEST 2015 - ma@suse.de + +- Add details to the default signature verification problem report +- PathInfo: Avoid ExternalProgram in clean_dir +- call rpmdb2solv without executing user-supplied scripts (bnc#926853) +- version 15.4.1 (3) + +------------------------------------------------------------------- +Thu Jun 11 01:13:31 CEST 2015 - ma@suse.de + +- Update zypp-po.tar.bz2 + +------------------------------------------------------------------- +Thu Jun 4 01:13:22 CEST 2015 - ma@suse.de + +- Update zypp-po.tar.bz2 + +------------------------------------------------------------------- Wed Jun 3 13:00:59 CEST 2015 - ma@suse.de - Enhance solv.idx file handling to support zypper bash completion Files old/libzypp-15.4.0/po/zypp-po.tar.bz2 and new/libzypp-15.4.1/po/zypp-po.tar.bz2 differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-15.4.0/tests/repo/RepoVariables_test.cc new/libzypp-15.4.1/tests/repo/RepoVariables_test.cc --- old/libzypp-15.4.0/tests/repo/RepoVariables_test.cc 2015-03-11 09:29:11.000000000 +0100 +++ new/libzypp-15.4.1/tests/repo/RepoVariables_test.cc 2015-06-12 12:04:17.000000000 +0200 @@ -207,6 +207,11 @@ /* check RepoVariablesUrlReplacer */ repo::RepoVariablesUrlReplacer replacer2; +// // first of all url with {} must be accepted: + BOOST_CHECK_NO_THROW( Url("ftp://site.org/${arch}/?arch=${arch}") ); + BOOST_CHECK_NO_THROW( Url("ftp://site.org/${arch:-noarch}/?arch=${arch:-noarch}") ); + BOOST_CHECK_NO_THROW( Url("ftp://site.org/${arch:+somearch}/?arch=${arch:+somearch}") ); + BOOST_CHECK_EQUAL(replacer2(Url("ftp://user:secret@site.org/$arch/")).asCompleteString(), "ftp://user:secret@site.org/i686/"); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-15.4.0/zypp/PathInfo.cc new/libzypp-15.4.1/zypp/PathInfo.cc --- old/libzypp-15.4.0/zypp/PathInfo.cc 2015-04-22 10:56:56.000000000 +0200 +++ new/libzypp-15.4.1/zypp/PathInfo.cc 2015-06-08 15:12:17.000000000 +0200 @@ -382,7 +382,7 @@ // METHOD NAME : recursive_rmdir // METHOD TYPE : int // - static int recursive_rmdir_1( const Pathname & dir ) + static int recursive_rmdir_1( const Pathname & dir, bool removeDir = true ) { DIR * dp; struct dirent * d; @@ -408,7 +408,7 @@ } closedir( dp ); - if ( ::rmdir( dir.c_str() ) < 0 ) + if ( removeDir && ::rmdir( dir.c_str() ) < 0 ) return errno; return 0; @@ -448,13 +448,7 @@ return _Log_Result( ENOTDIR ); } - string cmd( str::form( "cd '%s' && rm -rf --preserve-root -- *", path.asString().c_str() ) ); - ExternalProgram prog( cmd, ExternalProgram::Stderr_To_Stdout ); - for ( string output( prog.receiveLine() ); output.length(); output = prog.receiveLine() ) { - MIL << " " << output; - } - int ret = prog.close(); - return _Log_Result( ret, "returned" ); + return _Log_Result( recursive_rmdir_1( path, false/* don't remove path itself */ ) ); } /////////////////////////////////////////////////////////////////// diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-15.4.0/zypp/Pathname.h new/libzypp-15.4.1/zypp/Pathname.h --- old/libzypp-15.4.0/zypp/Pathname.h 2014-07-01 11:30:28.000000000 +0200 +++ new/libzypp-15.4.1/zypp/Pathname.h 2015-06-05 12:00:17.000000000 +0200 @@ -76,11 +76,11 @@ Pathname & operator=( Pathname rhs ) { swap( *this, rhs ); return *this; } - /** Concatenate and assing. \see cat */ + /** Concatenate and assign. \see cat */ Pathname & operator/=( const Pathname & path_tv ) { return( *this = cat( *this, path_tv ) ); } - /** Concatenate and assing. \see cat + /** Concatenate and assign. \see cat * \deprecated: use /= */ Pathname & operator+=( const Pathname & path_tv ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-15.4.0/zypp/Url.h new/libzypp-15.4.1/zypp/Url.h --- old/libzypp-15.4.0/zypp/Url.h 2014-07-01 11:30:28.000000000 +0200 +++ new/libzypp-15.4.1/zypp/Url.h 2015-06-05 12:00:17.000000000 +0200 @@ -45,7 +45,7 @@ * * Using the Url::registerScheme() method, it is possible to register * a preconfigured or derived UrlBase object for a specific scheme - * name. The registered object will be cloned to handle all URL's + * name. The registered object will be cloned to handle all URLs * containing the specified scheme name. * * \par RFC3986, Syntax Components: @@ -131,7 +131,7 @@ * \brief Construct a Url object from percent-encoded URL string. * * Parses the \p encodedUrl string using the parseUrl() method - * and assings the result to the new created object. + * and assigns the result to the newly created object. * * \param encodedUrl A percent-encoded URL string. * \throws url::UrlParsingException if parsing of the url fails. @@ -147,8 +147,8 @@ /** * \brief Parse a percent-encoded URL string. * - * Trys to parses the given string into generic URL components - * and created a clone of a scheme-specialized object or a new + * Tries to parse the given string into generic URL components + * and creates a clone of a scheme-specialized object or a new * UrlBase object. * * \param encodedUrl A percent-encoded URL string. @@ -184,10 +184,10 @@ /** - * \brief Assign shared copy of \p url to the current object. + * \brief Assign a shared copy of \p url to the current object. * * Upon return, both objects will point to the same underlying - * object. This state will remain until one of the object is + * object. This state will remain until one of the objects is * modified. * * \param url The Url object to make a copy of. @@ -234,7 +234,7 @@ /** - * \brief Verifies specified scheme name. + * \brief Verifies the specified scheme name. * * Verifies the generic syntax of the specified \p scheme name * and if it is contained in the current object's list of known @@ -315,7 +315,7 @@ * * This function ignores the configuration of the view options * in the current object (see setViewOption()) and forces to - * return an string with all URL components included. + * return a string with all URL components included. * * \return A complete string representation of the Url object. */ @@ -488,8 +488,8 @@ * Returns the encoded query string component of the URL. * * The query string is returned without first "?" (separator) - * character. Further "?" characters as in e.g. LDAP URL's - * remains in the returned string. + * character. Further "?" characters as in e.g. LDAP URLs + * remain in the returned string. * * \return The encoded query string component of the URL. */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-15.4.0/zypp/base/Easy.h new/libzypp-15.4.1/zypp/base/Easy.h --- old/libzypp-15.4.0/zypp/base/Easy.h 2015-03-05 14:04:38.000000000 +0100 +++ new/libzypp-15.4.1/zypp/base/Easy.h 2015-06-08 15:12:17.000000000 +0200 @@ -28,7 +28,7 @@ #else #define for_(IT,BEG,END) for ( auto IT = BEG, _for_end = END; IT != _for_end; ++IT ) #endif -#define for_each_(IT,CONT) for_( IT, CONT.begin(), CONT.end() ) +#define for_each_(IT,CONT) for_( IT, (CONT).begin(), (CONT).end() ) /** Simple C-array iterator * \code diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-15.4.0/zypp/media/MediaCIFS.cc new/libzypp-15.4.1/zypp/media/MediaCIFS.cc --- old/libzypp-15.4.0/zypp/media/MediaCIFS.cc 2014-07-01 11:30:28.000000000 +0200 +++ new/libzypp-15.4.1/zypp/media/MediaCIFS.cc 2015-06-05 12:00:17.000000000 +0200 @@ -123,7 +123,7 @@ * or the user will be promted for them via AuthenticationReport callback. * * \note The implementation currently serves both, "smb" and - * and "cifs" URL's, but passes "cifs" to the mount command + * and "cifs" URLs, but passes "cifs" to the mount command * in any case. */ void MediaCIFS::attachTo(bool next) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-15.4.0/zypp/media/MediaCIFS.h new/libzypp-15.4.1/zypp/media/MediaCIFS.h --- old/libzypp-15.4.0/zypp/media/MediaCIFS.h 2014-07-01 11:30:28.000000000 +0200 +++ new/libzypp-15.4.1/zypp/media/MediaCIFS.h 2015-06-05 12:00:17.000000000 +0200 @@ -25,7 +25,7 @@ /** * @short Implementation class for CIFS MediaHandler * - * NOTE: The implementation serves both, "smb" and "cifs" URL's, + * NOTE: The implementation serves both, "smb" and "cifs" URLs, * but passes "cifs" to the mount command in any case. * @see MediaHandler **/ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-15.4.0/zypp/media/MediaManager.h new/libzypp-15.4.1/zypp/media/MediaManager.h --- old/libzypp-15.4.0/zypp/media/MediaManager.h 2015-06-03 13:04:17.000000000 +0200 +++ new/libzypp-15.4.1/zypp/media/MediaManager.h 2015-06-05 12:00:17.000000000 +0200 @@ -144,7 +144,7 @@ * The MediaManager uses several media access handlers (backends), * that can be specified by a Media Access URL in its open() method. * - * All URL's may contain following query parameters, that are + * All URLs may contain following query parameters, that are * reserved by the Source classes and unused/ignored by the media * manager: * - <tt>alias</tt>: A source specific media alias string. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-15.4.0/zypp/repo/PackageProvider.cc new/libzypp-15.4.1/zypp/repo/PackageProvider.cc --- old/libzypp-15.4.0/zypp/repo/PackageProvider.cc 2015-05-24 18:20:17.000000000 +0200 +++ new/libzypp-15.4.1/zypp/repo/PackageProvider.cc 2015-06-12 12:12:17.000000000 +0200 @@ -210,10 +210,13 @@ } /** Default signature verrification error handling. */ - void defaultReportSignatureError( RpmDb::CheckPackageResult ret ) const + void defaultReportSignatureError( RpmDb::CheckPackageResult ret, const std::string & detail_r = std::string() ) const { - std::string msg( str::Str() << _package->asUserString() << ": " << _("Signature verification failed") << " " << ret ); - resolveSignatureErrorAction( report()->problem( _package, repo::DownloadResolvableReport::INVALID, msg ) ); + str::Str msg; + msg << _package->asUserString() << ": " << _("Signature verification failed") << " " << ret; + if ( ! detail_r.empty() ) + msg << "\n" << detail_r; + resolveSignatureErrorAction( report()->problem( _package, repo::DownloadResolvableReport::INVALID, msg.str() ) ); } protected: @@ -318,7 +321,7 @@ ret.reset(); } report()->start( _package, url ); - try // ELIMINATE try/catch by providing a log-guard + try { ret = doProvidePackage(); @@ -337,7 +340,7 @@ { resolveSignatureErrorAction( userData.get( "Action", repo::DownloadResolvableReport::ABORT ) ); } - else if ( userData.haskey( "Action" ) ) // pkgGpgCheck requests the default problem report + else if ( userData.haskey( "Action" ) ) // pkgGpgCheck requests the default problem report (wo. details) { defaultReportSignatureError( res ); } @@ -354,8 +357,8 @@ 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 default: - // report problem, throw if to abort, else retry/ignore - defaultReportSignatureError( res ); + // report problem (w. details), throw if to abort, else retry/ignore + defaultReportSignatureError( res, str::Str() << userData.getRpmDb::CheckPackageDetail( "CheckPackageDetail" ) ); break; } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-15.4.0/zypp/target/TargetImpl.cc new/libzypp-15.4.1/zypp/target/TargetImpl.cc --- old/libzypp-15.4.0/zypp/target/TargetImpl.cc 2015-06-03 13:04:17.000000000 +0200 +++ new/libzypp-15.4.1/zypp/target/TargetImpl.cc 2015-06-08 15:12:17.000000000 +0200 @@ -1046,33 +1046,40 @@ // Take care we unlink the solvfile on exception ManagedFile guard( base, filesystem::recursive_rmdir ); - std::ostringstream cmd; - cmd << "rpmdb2solv"; - if ( ! _root.empty() ) - cmd << " -r '" << _root << "'"; - cmd << " -X"; // autogenerate pattern/product/... from -package - cmd << " -A"; // autogenerate application pseudo packages - cmd << " -p '" << Pathname::assertprefix( _root, "/etc/products.d" ) << "'"; + ExternalProgram::Arguments cmd; + cmd.push_back( "rpmdb2solv" ); + if ( ! _root.empty() ) { + cmd.push_back( "-r" ); + cmd.push_back( _root.asString() ); + } + cmd.push_back( "-X" ); // autogenerate pattern/product/... from -package + cmd.push_back( "-A" ); // autogenerate application pseudo packages + cmd.push_back( "-p" ); + cmd.push_back( Pathname::assertprefix( _root, "/etc/products.d" ).asString() ); if ( ! oldSolvFile.empty() ) - cmd << " '" << oldSolvFile << "'"; + cmd.push_back( oldSolvFile.asString() ); - cmd << " > '" << tmpsolv.path() << "'"; + cmd.push_back( "-o" ); + cmd.push_back( tmpsolv.path().asString() ); - MIL << "Executing: " << cmd.str() << endl; - ExternalProgram prog( cmd.str(), ExternalProgram::Stderr_To_Stdout ); + ExternalProgram prog( cmd, ExternalProgram::Stderr_To_Stdout ); + std::string errdetail; - cmd << endl; for ( std::string output( prog.receiveLine() ); output.length(); output = prog.receiveLine() ) { WAR << " " << output; - cmd << " " << output; + if ( errdetail.empty() ) { + errdetail = prog.command(); + errdetail += '\n'; + } + errdetail += output; } int ret = prog.close(); if ( ret != 0 ) { Exception ex(str::form("Failed to cache rpm database (%d).", ret)); - ex.remember( cmd.str() ); + ex.remember( errdetail ); ZYPP_THROW(ex); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-15.4.0/zypp/url/UrlBase.cc new/libzypp-15.4.1/zypp/url/UrlBase.cc --- old/libzypp-15.4.0/zypp/url/UrlBase.cc 2014-10-15 15:12:42.000000000 +0200 +++ new/libzypp-15.4.1/zypp/url/UrlBase.cc 2015-06-12 12:04:17.000000000 +0200 @@ -280,11 +280,11 @@ config("rx_username", "^([" a_zA_Z "0-9!$&'\(\)*+=,;~\._-]|%[a-fA-F0-9]{2})+$"); config("rx_password", "^([" a_zA_Z "0-9!$&'\(\)*+=,:;~\._-]|%[a-fA-F0-9]{2})+$"); - config("rx_pathname", "^([" a_zA_Z "0-9!$&'\(\)*+=,:@/~\._-]|%[a-fA-F0-9]{2})+$"); - config("rx_pathparams", "^([" a_zA_Z "0-9!$&'\(\)*+=,:;@/~\._-]|%[a-fA-F0-9]{2})+$"); + config("rx_pathname", "^([" a_zA_Z "0-9!$&'\(\){}*+=,:@/~\._-]|%[a-fA-F0-9]{2})+$"); + config("rx_pathparams", "^([" a_zA_Z "0-9!$&'\(\){}*+=,:;@/~\._-]|%[a-fA-F0-9]{2})+$"); - config("rx_querystr", "^([" a_zA_Z "0-9!$&'\(\)*+=,:;@/?~\._-]|%[a-fA-F0-9]{2})+$"); - config("rx_fragment", "^([" a_zA_Z "0-9!$&'\(\)*+=,:;@/?~\._-]|%[a-fA-F0-9]{2})+$"); + config("rx_querystr", "^([" a_zA_Z "0-9!$&'\(\){}*+=,:;@/?~\._-]|%[a-fA-F0-9]{2})+$"); + config("rx_fragment", "^([" a_zA_Z "0-9!$&'\(\){}*+=,:;@/?~\._-]|%[a-fA-F0-9]{2})+$"); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-15.4.0/zypp/url/UrlBase.h new/libzypp-15.4.1/zypp/url/UrlBase.h --- old/libzypp-15.4.0/zypp/url/UrlBase.h 2014-07-01 11:30:28.000000000 +0200 +++ new/libzypp-15.4.1/zypp/url/UrlBase.h 2015-06-05 12:00:17.000000000 +0200 @@ -263,7 +263,7 @@ * * The UrlBase class implements default behaviour for URL * manipulations and a base for implementation of scheme- - * specialized URL's for the Url class. + * specialized URLs for the Url class. * */ class UrlBase @@ -354,11 +354,11 @@ * or compatible to). * * For example, if your derived class implements special - * features of LDAP URL's, this method may return "ldap" + * features of LDAP URLs, this method may return "ldap" * and "ldaps" scheme names. * * The UrlBase class returns an empty vector, that signals - * that it is useable with all URL's. + * that it is useable with all URLs. * * \return A vector with scheme names known by this object. */ @@ -586,7 +586,7 @@ * Returns the encoded query string component of the URL. * * The query string is returned without first "?" (separator) - * character. Further "?" characters as in e.g. LDAP URL's + * character. Further "?" characters as in e.g. LDAP URLs * remains in the returned string. * * \return The encoded query string component of the URL. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-15.4.0/zypp/url/UrlUtils.cc new/libzypp-15.4.1/zypp/url/UrlUtils.cc --- old/libzypp-15.4.0/zypp/url/UrlUtils.cc 2014-07-01 11:30:28.000000000 +0200 +++ new/libzypp-15.4.1/zypp/url/UrlUtils.cc 2015-06-12 12:04:17.000000000 +0200 @@ -35,7 +35,7 @@ std::string skip("ABCDEFGHIJKLMNOPQRSTUVWXYZ" "abcdefghijklmnopqrstuvwxyz" "0123456789.~_-"); - std::string more(":/?#[]@!$&'()*+,;="); + static const std::string more(URL_SAFE_CHARS); // ":/?#[]@!$&'()*+,;=" size_t beg, pos, len; std::string out;