Hello community,

here is the log from the commit of package libzypp for openSUSE:Factory checked 
in at 2015-04-02 16:01:06
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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-03-16 
06:58:04.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.libzypp.new/libzypp.changes     2015-04-02 
16:01:07.000000000 +0200
@@ -1,0 +2,12 @@
+Thu Mar 19 16:44:39 CET 2015 - [email protected]
+
+- Suppress MediaChangeReport while testing multiple baseurls (bnc#899510)
+- version 14.38.0 (30)
+
+-------------------------------------------------------------------
+Mon Mar 16 14:05:28 CET 2015 - [email protected]
+
+- add support for SHA224/384/512
+- version 14.37.1 (30)
+
+-------------------------------------------------------------------

Old:
----
  libzypp-14.37.0.tar.bz2

New:
----
  libzypp-14.38.0.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ libzypp.spec ++++++
--- /var/tmp/diff_new_pack.RoOztA/_old  2015-04-02 16:01:07.000000000 +0200
+++ /var/tmp/diff_new_pack.RoOztA/_new  2015-04-02 16:01:07.000000000 +0200
@@ -19,7 +19,7 @@
 %define force_gcc_46 0
 
 Name:           libzypp
-Version:        14.37.0
+Version:        14.38.0
 Release:        0
 Url:            git://gitorious.org/opensuse/libzypp.git
 Summary:        Package, Patch, Pattern, and Product Management

++++++ libzypp-14.37.0.tar.bz2 -> libzypp-14.38.0.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-14.37.0/VERSION.cmake 
new/libzypp-14.38.0/VERSION.cmake
--- old/libzypp-14.37.0/VERSION.cmake   2015-03-11 09:29:11.000000000 +0100
+++ new/libzypp-14.38.0/VERSION.cmake   2015-03-19 16:46:37.000000000 +0100
@@ -60,9 +60,9 @@
 #
 SET(LIBZYPP_MAJOR "14")
 SET(LIBZYPP_COMPATMINOR "30")
-SET(LIBZYPP_MINOR "37")
+SET(LIBZYPP_MINOR "38")
 SET(LIBZYPP_PATCH "0")
 #
-# LAST RELEASED: 14.37.0 (30)
+# LAST RELEASED: 14.38.0 (30)
 # (The number in parenthesis is LIBZYPP_COMPATMINOR)
 #=======
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-14.37.0/package/libzypp.changes 
new/libzypp-14.38.0/package/libzypp.changes
--- old/libzypp-14.37.0/package/libzypp.changes 2015-03-11 09:29:11.000000000 
+0100
+++ new/libzypp-14.38.0/package/libzypp.changes 2015-03-19 16:46:37.000000000 
+0100
@@ -1,4 +1,16 @@
 -------------------------------------------------------------------
+Thu Mar 19 16:44:39 CET 2015 - [email protected]
+
+- Suppress MediaChangeReport while testing multiple baseurls (bnc#899510)
+- version 14.38.0 (30)
+
+-------------------------------------------------------------------
+Mon Mar 16 14:05:28 CET 2015 - [email protected]
+
+- add support for SHA224/384/512
+- version 14.37.1 (30)
+
+-------------------------------------------------------------------
 Wed Mar 11 09:22:46 CET 2015 - [email protected]
 
 - New RepoVarExpand: Functor expanding repo variables in a 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-14.37.0/tests/zypp/CheckSum_test.cc 
new/libzypp-14.38.0/tests/zypp/CheckSum_test.cc
--- old/libzypp-14.37.0/tests/zypp/CheckSum_test.cc     2014-07-01 
11:30:28.000000000 +0200
+++ new/libzypp-14.38.0/tests/zypp/CheckSum_test.cc     2015-03-16 
14:07:17.000000000 +0100
@@ -1,4 +1,3 @@
-
 #include <iostream>
 #include <list>
 #include <string>
@@ -9,17 +8,46 @@
 #include "zypp/base/Logger.h"
 #include "zypp/base/Exception.h"
 #include "zypp/ZYppFactory.h"
+#include "zypp/Digest.h"
 #include "zypp/ZYpp.h"
 
+
 using boost::unit_test::test_case;
 using namespace std;
 using namespace zypp;
 
+void chksumtest( const std::string & type_r, const std::string & sum_r )
+{
+  BOOST_CHECK_EQUAL( type_r, CheckSum( sum_r ).type() );       // autodetect 
type
+  BOOST_CHECK_EQUAL( type_r, CheckSum( type_r, sum_r ).type() );
+  BOOST_CHECK_EQUAL( sum_r, Digest::digest( type_r, "" ) );
+  for ( const std::string & t : { "md5", "sha1", "sha224", "sha256", "sha384", 
"sha512", } )
+  {
+    if ( t != type_r )
+    {
+      BOOST_CHECK_THROW( CheckSum( t, sum_r ), Exception ); // wrong type/size
+    }
+  }
+}
 
 // most frequently you implement test cases as a free functions
 BOOST_AUTO_TEST_CASE(checksum_test)
 {
-  BOOST_CHECK_THROW( CheckSum( "sha1", "dsdsads" ), Exception ); // wrong size
-  BOOST_CHECK_THROW( CheckSum( "sha256", "dsdsads" ), Exception ); // wrong 
size
-  BOOST_CHECK_THROW( CheckSum( "md5", "dsdsads" ), Exception ); // wrong size
+  CheckSum e;
+  BOOST_CHECK( e.empty() );
+  BOOST_CHECK( e.type().empty() );
+  BOOST_CHECK( e.checksum().empty() );
+  //   sum for ""
+  //   md5  32 d41d8cd98f00b204e9800998ecf8427e
+  //     1  40 da39a3ee5e6b4b0d3255bfef95601890afd80709
+  //   224  56 d14a028c2a3a2bc9476102bb288234c415a2b01f828ea62ac5b3e42f
+  //   256  64 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
+  //   384  96 
38b060a751ac96384cd9327eb1b1e36a21fdb71114be07434c0cc7bf63f6e1da274edebfe76f65fbd51ad2f14898b95b
+  //   512 128 
cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e
+  chksumtest( CheckSum::md5Type(),     "d41d8cd98f00b204e9800998ecf8427e" );
+  chksumtest( CheckSum::sha1Type(),    
"da39a3ee5e6b4b0d3255bfef95601890afd80709" );
+  chksumtest( CheckSum::sha224Type(),  
"d14a028c2a3a2bc9476102bb288234c415a2b01f828ea62ac5b3e42f" );
+  chksumtest( CheckSum::sha256Type(),  
"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" );
+  chksumtest( CheckSum::sha384Type(),  
"38b060a751ac96384cd9327eb1b1e36a21fdb71114be07434c0cc7bf63f6e1da274edebfe76f65fbd51ad2f14898b95b"
 );
+  chksumtest( CheckSum::sha512Type(),  
"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e"
 );
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-14.37.0/zypp/CheckSum.cc 
new/libzypp-14.38.0/zypp/CheckSum.cc
--- old/libzypp-14.37.0/zypp/CheckSum.cc        2014-07-01 11:30:28.000000000 
+0200
+++ new/libzypp-14.38.0/zypp/CheckSum.cc        2015-03-16 14:07:17.000000000 
+0100
@@ -26,17 +26,25 @@
 { /////////////////////////////////////////////////////////////////
 
   const std::string & CheckSum::md5Type()
-  { static std::string _type( "md5" ); return _type; }
+  { return Digest::md5(); }
 
   const std::string & CheckSum::shaType()
   { static std::string _type( "sha" ); return _type; }
 
   const std::string & CheckSum::sha1Type()
-  { static std::string _type( "sha1" ); return _type; }
+  { return Digest::sha1(); }
+
+  const std::string & CheckSum::sha224Type()
+  { return Digest::sha224(); }
 
   const std::string & CheckSum::sha256Type()
-  { static std::string _type( "sha256" ); return _type; }
+  { return Digest::sha256(); }
+
+  const std::string & CheckSum::sha384Type()
+  { return Digest::sha384(); }
 
+  const std::string & CheckSum::sha512Type()
+  { return Digest::sha512(); }
 
   CheckSum::CheckSum( const std::string & type, const std::string & checksum )
   : _type( str::toLower( type ) )
@@ -44,6 +52,28 @@
   {
     switch ( checksum.size() )
     {
+      case 128:
+        if ( _type == sha512Type() )
+          return;
+        if ( _type.empty() || _type == shaType() )
+        {
+          _type = sha512Type();
+          return;
+        }
+        // else: dubious
+        break;
+
+      case 96:
+        if ( _type == sha384Type() )
+          return;
+        if ( _type.empty() || _type == shaType() )
+        {
+          _type = sha384Type();
+          return;
+        }
+        // else: dubious
+        break;
+
       case 64:
         if ( _type == sha256Type() )
           return;
@@ -55,6 +85,17 @@
         // else: dubious
         break;
 
+      case 56:
+        if ( _type == sha224Type() )
+          return;
+        if ( _type.empty() || _type == shaType() )
+        {
+          _type = sha224Type();
+          return;
+        }
+        // else: dubious
+        break;
+
       case 40:
         if ( _type == sha1Type() )
           return;
@@ -97,7 +138,10 @@
     if (    _type == md5Type()
          || _type == shaType()
          || _type == sha1Type()
-         || _type == sha256Type() )
+         || _type == sha224Type()
+         || _type == sha256Type()
+         || _type == sha384Type()
+         || _type == sha512Type() )
     {
       ZYPP_THROW( CheckSumException( msg ) );
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-14.37.0/zypp/CheckSum.h 
new/libzypp-14.38.0/zypp/CheckSum.h
--- old/libzypp-14.37.0/zypp/CheckSum.h 2014-07-01 11:30:28.000000000 +0200
+++ new/libzypp-14.38.0/zypp/CheckSum.h 2015-03-16 14:07:17.000000000 +0100
@@ -65,14 +65,20 @@
     static const std::string & md5Type();
     static const std::string & shaType();
     static const std::string & sha1Type();
+    static const std::string & sha224Type();
     static const std::string & sha256Type();
+    static const std::string & sha384Type();
+    static const std::string & sha512Type();
 
     /** \name Creates a checksum for algorithm \param type. */
     //@{
     static CheckSum md5( const std::string & checksum )                { 
return  CheckSum( md5Type(), checksum); }
     static CheckSum sha( const std::string & checksum )                { 
return  CheckSum( shaType(), checksum); }
     static CheckSum sha1( const std::string & checksum )       { return  
CheckSum( sha1Type(), checksum); }
+    static CheckSum sha224( const std::string & checksum )     { return  
CheckSum( sha224Type(), checksum); }
     static CheckSum sha256( const std::string & checksum )     { return  
CheckSum( sha256Type(), checksum); }
+    static CheckSum sha384( const std::string & checksum )     { return  
CheckSum( sha384Type(), checksum); }
+    static CheckSum sha512( const std::string & checksum )     { return  
CheckSum( sha512Type(), checksum); }
     //@}
 
     /** \name Reads the content of \param input_r and computes the checksum. */
@@ -80,12 +86,18 @@
     static CheckSum md5( std::istream & input_r )              { return  
CheckSum( md5Type(), input_r ); }
     static CheckSum sha( std::istream & input_r )              { return  
CheckSum( sha1Type(), input_r ); }
     static CheckSum sha1( std::istream & input_r )             { return  
CheckSum( sha1Type(), input_r ); }
+    static CheckSum sha224( std::istream & input_r )           { return  
CheckSum( sha224Type(), input_r ); }
     static CheckSum sha256( std::istream & input_r )           { return  
CheckSum( sha256Type(), input_r ); }
+    static CheckSum sha384( std::istream & input_r )           { return  
CheckSum( sha384Type(), input_r ); }
+    static CheckSum sha512( std::istream & input_r )           { return  
CheckSum( sha512Type(), input_r ); }
 #ifndef SWIG // Swig treats it as syntax error
     static CheckSum md5( std::istream && input_r )             { return  
CheckSum( md5Type(), input_r ); }
     static CheckSum sha( std::istream && input_r )             { return  
CheckSum( sha1Type(), input_r ); }
     static CheckSum sha1( std::istream && input_r )            { return  
CheckSum( sha1Type(), input_r ); }
+    static CheckSum sha224( std::istream && input_r )          { return  
CheckSum( sha224Type(), input_r ); }
     static CheckSum sha256( std::istream && input_r )          { return  
CheckSum( sha256Type(), input_r ); }
+    static CheckSum sha384( std::istream && input_r )          { return  
CheckSum( sha384Type(), input_r ); }
+    static CheckSum sha512( std::istream && input_r )          { return  
CheckSum( sha512Type(), input_r ); }
 #endif
     //@}
 
@@ -94,7 +106,10 @@
     static CheckSum md5FromString( const std::string & input_r )       { 
return md5( std::stringstream( input_r ) ); }
     static CheckSum shaFromString( const std::string & input_r )       { 
return sha( std::stringstream( input_r ) ); }
     static CheckSum sha1FromString( const std::string & input_r )      { 
return sha1( std::stringstream( input_r ) ); }
+    static CheckSum sha224FromString( const std::string & input_r )    { 
return sha224( std::stringstream( input_r ) ); }
     static CheckSum sha256FromString( const std::string & input_r )    { 
return sha256( std::stringstream( input_r ) ); }
+    static CheckSum sha384FromString( const std::string & input_r )    { 
return sha384( std::stringstream( input_r ) ); }
+    static CheckSum sha512FromString( const std::string & input_r )    { 
return sha512( std::stringstream( input_r ) ); }
     //@}
 
   public:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-14.37.0/zypp/Digest.cc 
new/libzypp-14.38.0/zypp/Digest.cc
--- old/libzypp-14.37.0/zypp/Digest.cc  2014-07-01 11:30:28.000000000 +0200
+++ new/libzypp-14.38.0/zypp/Digest.cc  2015-03-16 14:07:17.000000000 +0100
@@ -46,9 +46,18 @@
     const std::string & Digest::sha1()
     { static std::string _type( "sha1" ); return _type; }
 
+    const std::string & Digest::sha224()
+    { static std::string _type( "sha224" ); return _type; }
+
     const std::string & Digest::sha256()
     { static std::string _type( "sha256" ); return _type; }
 
+    const std::string & Digest::sha384()
+    { static std::string _type( "sha384" ); return _type; }
+
+    const std::string & Digest::sha512()
+    { static std::string _type( "sha512" ); return _type; }
+
     // private data
     class Digest::P
     {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-14.37.0/zypp/Digest.h 
new/libzypp-14.38.0/zypp/Digest.h
--- old/libzypp-14.37.0/zypp/Digest.h   2014-07-01 11:30:28.000000000 +0200
+++ new/libzypp-14.38.0/zypp/Digest.h   2015-03-16 14:07:17.000000000 +0100
@@ -60,8 +60,14 @@
        static const std::string & md5();
        /** sha1 */
        static const std::string & sha1();
+       /** sha224 */
+       static const std::string & sha224();
        /** sha256 */
        static const std::string & sha256();
+       /** sha384 */
+       static const std::string & sha384();
+       /** sha512 */
+       static const std::string & sha512();
        //@}
 
       public:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-14.37.0/zypp/RepoManager.cc 
new/libzypp-14.38.0/zypp/RepoManager.cc
--- old/libzypp-14.37.0/zypp/RepoManager.cc     2015-02-24 14:29:04.000000000 
+0100
+++ new/libzypp-14.38.0/zypp/RepoManager.cc     2015-03-19 16:46:37.000000000 
+0100
@@ -1012,6 +1012,9 @@
                                        "Valid metadata not found at specified 
URLs",
                                        info.baseUrlsSize() ) );
 
+    // Suppress (interactive) media::MediaChangeReport if we in have multiple 
basurls (>1)
+    media::ScopedDisableMediaChangeReport guard( info.baseUrlsSize() > 1 );
+
     // try urls one by one
     for ( RepoInfo::urls_const_iterator it = info.baseUrlsBegin(); it != 
info.baseUrlsEnd(); ++it )
     {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-14.37.0/zypp/ZYppCallbacks.h 
new/libzypp-14.38.0/zypp/ZYppCallbacks.h
--- old/libzypp-14.37.0/zypp/ZYppCallbacks.h    2014-08-29 14:49:37.000000000 
+0200
+++ new/libzypp-14.38.0/zypp/ZYppCallbacks.h    2015-03-19 16:46:37.000000000 
+0100
@@ -337,6 +337,19 @@
       ) { return ABORT; }
     };
 
+    ///////////////////////////////////////////////////////////////////
+    /// \class ScopedDisableMediaChangeReport
+    /// \brief Temporarily disable MediaChangeReport
+    /// Sometimes helpful to suppress interactive messages connected to
+    /// MediaChangeReport while fallback URLs are avaialble.
+    struct ScopedDisableMediaChangeReport
+    {
+      /** Disbale MediaChangeReport if \a condition_r is \c true.*/
+      ScopedDisableMediaChangeReport( bool condition_r = true );
+    private:
+      shared_ptr<callback::TempConnect<media::MediaChangeReport> > _guard;
+    };
+
     // progress for downloading a file
     struct DownloadProgressReport : public callback::ReportBase
     {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-14.37.0/zypp/repo/RepoProvideFile.cc 
new/libzypp-14.38.0/zypp/repo/RepoProvideFile.cc
--- old/libzypp-14.37.0/zypp/repo/RepoProvideFile.cc    2014-07-01 
11:30:28.000000000 +0200
+++ new/libzypp-14.38.0/zypp/repo/RepoProvideFile.cc    2015-03-20 
14:17:12.000000000 +0100
@@ -291,6 +291,9 @@
         MIL << "Added cache path " << destinationDir << endl;
       }
 
+      // Suppress (interactive) media::MediaChangeReport if we in have 
multiple basurls (>1)
+      media::ScopedDisableMediaChangeReport guard( repo_r.baseUrlsSize() > 1 );
+
       for ( RepoInfo::urls_const_iterator it = repo_r.baseUrlsBegin();
             it != repo_r.baseUrlsEnd();
             /* incremented in the loop */ )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-14.37.0/zypp/sat/LookupAttr.cc 
new/libzypp-14.38.0/zypp/sat/LookupAttr.cc
--- old/libzypp-14.37.0/zypp/sat/LookupAttr.cc  2014-07-01 11:30:28.000000000 
+0200
+++ new/libzypp-14.38.0/zypp/sat/LookupAttr.cc  2015-03-16 14:07:17.000000000 
+0100
@@ -695,9 +695,21 @@
             return CheckSum::sha1( ::repodata_chk2str( _dip->data, 
solvAttrType(), (unsigned char *)_dip->kv.str ) );
             break;
 
+          case REPOKEY_TYPE_SHA224:
+            return CheckSum::sha224( ::repodata_chk2str( _dip->data, 
solvAttrType(), (unsigned char *)_dip->kv.str ) );
+            break;
+
           case REPOKEY_TYPE_SHA256:
             return CheckSum::sha256( ::repodata_chk2str( _dip->data, 
solvAttrType(), (unsigned char *)_dip->kv.str ) );
             break;
+
+          case REPOKEY_TYPE_SHA384:
+            return CheckSum::sha384( ::repodata_chk2str( _dip->data, 
solvAttrType(), (unsigned char *)_dip->kv.str ) );
+            break;
+
+          case REPOKEY_TYPE_SHA512:
+            return CheckSum::sha512( ::repodata_chk2str( _dip->data, 
solvAttrType(), (unsigned char *)_dip->kv.str ) );
+            break;
         }
       }
       return CheckSum();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-14.37.0/zypp/sat/Solvable.cc 
new/libzypp-14.38.0/zypp/sat/Solvable.cc
--- old/libzypp-14.37.0/zypp/sat/Solvable.cc    2014-07-01 11:30:28.000000000 
+0200
+++ new/libzypp-14.38.0/zypp/sat/Solvable.cc    2015-03-16 14:07:17.000000000 
+0100
@@ -196,7 +196,10 @@
       {
         case REPOKEY_TYPE_MD5:    return CheckSum::md5( s );
         case REPOKEY_TYPE_SHA1:   return CheckSum::sha1( s );
+        case REPOKEY_TYPE_SHA224: return CheckSum::sha224( s );
         case REPOKEY_TYPE_SHA256: return CheckSum::sha256( s );
+        case REPOKEY_TYPE_SHA384: return CheckSum::sha384( s );
+        case REPOKEY_TYPE_SHA512: return CheckSum::sha512( s );
       }
       return CheckSum( std::string(), s ); // try to autodetect
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-14.37.0/zypp/ui/SelectableTraits.h 
new/libzypp-14.38.0/zypp/ui/SelectableTraits.h
--- old/libzypp-14.37.0/zypp/ui/SelectableTraits.h      2014-07-01 
11:30:28.000000000 +0200
+++ new/libzypp-14.38.0/zypp/ui/SelectableTraits.h      2015-03-20 
14:17:12.000000000 +0100
@@ -37,6 +37,7 @@
        * \li repository priority
        * \li best Arch (arch/noarch changes are ok)
        * \li best Edition
+       * \li newer buildtime
        * \li ResObject::constPtr as fallback.
       */
       struct AVOrder : public std::binary_function<PoolItem,PoolItem,bool>
@@ -65,6 +66,11 @@
           if ( res )
             return res > 0;
 
+         lprio = lhs->buildtime();
+         rprio = rhs->buildtime();
+         if ( lprio != rprio )
+            return( lprio > rprio );
+
           lprio = lhs->satSolvable().repository().satInternalSubPriority();
           rprio = rhs->satSolvable().repository().satInternalSubPriority();
           if ( lprio != rprio )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-14.37.0/zypp/zypp_detail/ZYppImpl.cc 
new/libzypp-14.38.0/zypp/zypp_detail/ZYppImpl.cc
--- old/libzypp-14.37.0/zypp/zypp_detail/ZYppImpl.cc    2014-07-01 
11:30:28.000000000 +0200
+++ new/libzypp-14.38.0/zypp/zypp_detail/ZYppImpl.cc    2015-03-19 
16:46:37.000000000 +0100
@@ -32,12 +32,29 @@
 namespace zypp
 { /////////////////////////////////////////////////////////////////
 
+  ///////////////////////////////////////////////////////////////////
+  namespace media
+  {
+    ScopedDisableMediaChangeReport::ScopedDisableMediaChangeReport( bool 
condition_r )
+    {
+      static weak_ptr<callback::TempConnect<media::MediaChangeReport> > 
globalguard;
+      if ( condition_r && ! (_guard = globalguard.lock()) )
+      {
+       // aquire a new one....
+       _guard.reset( new callback::TempConnect<media::MediaChangeReport>() );
+       globalguard = _guard;
+      }
+    }
+  } // namespace media
+  ///////////////////////////////////////////////////////////////////
+
   callback::SendReport<JobReport> & JobReport::instance()
   {
     static callback::SendReport<JobReport> _report;
     return _report;
   }
 
+
   ///////////////////////////////////////////////////////////////////
   namespace zypp_detail
   { /////////////////////////////////////////////////////////////////


Reply via email to