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 - [email protected]
+
+- 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 - [email protected]
+
+- Update zypp-po.tar.bz2
+
+-------------------------------------------------------------------
+Thu Jun  4 01:13:22 CEST 2015 - [email protected]
+
+- 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 - [email protected]
+
+- 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 - [email protected]
+
+- Update zypp-po.tar.bz2
+
+-------------------------------------------------------------------
+Thu Jun  4 01:13:22 CEST 2015 - [email protected]
+
+- Update zypp-po.tar.bz2
+
+-------------------------------------------------------------------
 Wed Jun  3 13:00:59 CEST 2015 - [email protected]
 
 - 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:[email protected]/$arch/";)).asCompleteString(),
                    "ftp://user:[email protected]/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.get<RpmDb::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;
 


Reply via email to