Hello community,

here is the log from the commit of package libzypp for openSUSE:Factory checked 
in at 2012-12-21 10:22:28
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libzypp (Old)
 and      /work/SRC/openSUSE:Factory/.libzypp.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libzypp", Maintainer is "[email protected]"

Changes:
--------
--- /work/SRC/openSUSE:Factory/libzypp/libzypp.changes  2012-12-05 
13:59:01.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.libzypp.new/libzypp.changes     2012-12-21 
10:22:30.000000000 +0100
@@ -1,0 +2,14 @@
+Mon Dec 17 13:31:15 CET 2012 - [email protected]
+
+- Add NamedValue<_Tp>: Simple value<>name mapping supporting aliases
+- Enable zypper to remove zypp locks without evaluating the
+  query (bnc#792901)
+- Configure curl to "not fix the BEAST attack" (bnc#779177)
+- version 12.6.0 (0)
+
+-------------------------------------------------------------------
+Sun Dec 16 01:13:16 CET 2012 - [email protected]
+
+- Update zypp-po.tar.bz2
+
+-------------------------------------------------------------------

Old:
----
  libzypp-12.5.0.tar.bz2

New:
----
  libzypp-12.6.0.tar.bz2

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

Other differences:
------------------
++++++ libzypp.spec ++++++
--- /var/tmp/diff_new_pack.CKeD7t/_old  2012-12-21 10:22:31.000000000 +0100
+++ /var/tmp/diff_new_pack.CKeD7t/_new  2012-12-21 10:22:31.000000000 +0100
@@ -24,7 +24,7 @@
 Group:          System/Packages
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 Summary:        Package, Patch, Pattern, and Product Management
-Version:        12.5.0
+Version:        12.6.0
 Release:        1
 Source:         %{name}-%{version}.tar.bz2
 Source1:        %{name}-rpmlintrc

++++++ libzypp-12.5.0.tar.bz2 -> libzypp-12.6.0.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-12.5.0/VERSION.cmake 
new/libzypp-12.6.0/VERSION.cmake
--- old/libzypp-12.5.0/VERSION.cmake    2012-12-03 14:41:52.000000000 +0100
+++ new/libzypp-12.6.0/VERSION.cmake    2012-12-18 15:58:29.000000000 +0100
@@ -60,9 +60,9 @@
 #
 SET(LIBZYPP_MAJOR "12")
 SET(LIBZYPP_COMPATMINOR "0")
-SET(LIBZYPP_MINOR "5")
+SET(LIBZYPP_MINOR "6")
 SET(LIBZYPP_PATCH "0")
 #
-# LAST RELEASED: 12.5.0 (0)
+# LAST RELEASED: 12.6.0 (0)
 # (The number in parenthesis is LIBZYPP_COMPATMINOR)
 #=======
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-12.5.0/mkChangelog 
new/libzypp-12.6.0/mkChangelog
--- old/libzypp-12.5.0/mkChangelog      2012-12-03 14:41:52.000000000 +0100
+++ new/libzypp-12.6.0/mkChangelog      2012-12-18 15:58:29.000000000 +0100
@@ -172,6 +172,7 @@
     [cCsS])
       Becho "!!! Store new $CHANGESFILE"
       mv $TMPFILE $CHANGESFILE
+      chmod 644 $CHANGESFILE
 
       test "$RES" == "s" && {
        if [ "$LAST_RELEASE" == "$THIS_RELEASE" ]; then
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-12.5.0/package/libzypp.changes 
new/libzypp-12.6.0/package/libzypp.changes
--- old/libzypp-12.5.0/package/libzypp.changes  2012-12-03 14:41:52.000000000 
+0100
+++ new/libzypp-12.6.0/package/libzypp.changes  2012-12-18 15:58:29.000000000 
+0100
@@ -1,4 +1,18 @@
 -------------------------------------------------------------------
+Mon Dec 17 13:31:15 CET 2012 - [email protected]
+
+- Add NamedValue<_Tp>: Simple value<>name mapping supporting aliases
+- Enable zypper to remove zypp locks without evaluating the
+  query (bnc#792901)
+- Configure curl to "not fix the BEAST attack" (bnc#779177)
+- version 12.6.0 (0)
+
+-------------------------------------------------------------------
+Sun Dec 16 01:13:16 CET 2012 - [email protected]
+
+- Update zypp-po.tar.bz2
+
+-------------------------------------------------------------------
 Mon Dec  3 14:31:59 CET 2012 - [email protected]
 
 - HistoryLogReader: new HistoryLogData based API for parsing the new 
Files old/libzypp-12.5.0/po/zypp-po.tar.bz2 and 
new/libzypp-12.6.0/po/zypp-po.tar.bz2 differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-12.5.0/zypp/CMakeLists.txt 
new/libzypp-12.6.0/zypp/CMakeLists.txt
--- old/libzypp-12.5.0/zypp/CMakeLists.txt      2012-12-03 14:41:52.000000000 
+0100
+++ new/libzypp-12.6.0/zypp/CMakeLists.txt      2012-12-18 15:58:29.000000000 
+0100
@@ -246,6 +246,7 @@
   base/LogTools.h
   base/Logger.h
   base/Measure.h
+  base/NamedValue.h
   base/NonCopyable.h
   base/ProfilingFormater.h
   base/ProvideNumericId.h
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-12.5.0/zypp/PoolQuery.cc 
new/libzypp-12.6.0/zypp/PoolQuery.cc
--- old/libzypp-12.5.0/zypp/PoolQuery.cc        2012-12-03 14:41:52.000000000 
+0100
+++ new/libzypp-12.6.0/zypp/PoolQuery.cc        2012-12-18 15:58:29.000000000 
+0100
@@ -401,17 +401,30 @@
 
     bool operator==( const PoolQuery::Impl & rhs ) const
     {
-      return ( _strings == rhs._strings
-               && _attrs == rhs._attrs
-               && _uncompiledPredicated == rhs._uncompiledPredicated
-               && _flags == rhs._flags
-               && _match_word == rhs._match_word
-               && _require_all == rhs._require_all
-               && _status_flags == rhs._status_flags
-               && _edition == rhs._edition
-               && _op == rhs._op
-               && _repos == rhs._repos
-               && _kinds == rhs._kinds );
+      if ( _flags == rhs._flags
+       // bnc#792901: while libzypp uses exact match mode for a single
+       // package name lock, zypper always uses glob. :(
+       // We unify those two forms to enable zypper to remove zypp locks
+       // without need to actually evaluate the query (which would require
+       // repos to be loaded).
+       || ( _flags.isModeString() && rhs._flags.isModeGlob()
+         || _flags.isModeGlob() && rhs._flags.isModeString() )
+         && _strings.empty()
+         && _attrs.size() == 1
+         && _attrs.begin()->first == sat::SolvAttr::name )
+      {
+       return ( _strings == rhs._strings
+             && _attrs == rhs._attrs
+             && _uncompiledPredicated == rhs._uncompiledPredicated
+             && _match_word == rhs._match_word
+             && _require_all == rhs._require_all
+             && _status_flags == rhs._status_flags
+             && _edition == rhs._edition
+             && _op == rhs._op
+             && _repos == rhs._repos
+             && _kinds == rhs._kinds );
+      }
+      return false;
     }
 
     bool operator!=( const PoolQuery::Impl & rhs ) const
@@ -1127,8 +1140,6 @@
 
       PoolQueryAttr attribute( attrName );
 
-      MIL << "attribute name: " << attrName << endl;
-
       if ( attribute==PoolQueryAttr::repoAttr )
       {
         addRepo( attrValue );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-12.5.0/zypp/base/NamedValue.h 
new/libzypp-12.6.0/zypp/base/NamedValue.h
--- old/libzypp-12.5.0/zypp/base/NamedValue.h   1970-01-01 01:00:00.000000000 
+0100
+++ new/libzypp-12.6.0/zypp/base/NamedValue.h   2012-12-18 15:58:29.000000000 
+0100
@@ -0,0 +1,161 @@
+/*---------------------------------------------------------------------\
+|                          ____ _   __ __ ___                          |
+|                         |__  / \ / / . \ . \                         |
+|                           / / \ V /|  _/  _/                         |
+|                          / /__ | | | | | |                           |
+|                         /_____||_| |_| |_|                           |
+|                                                                      |
+\---------------------------------------------------------------------*/
+/** \file      zypp/base/NamedValue.h
+ *
+*/
+#ifndef ZYPP_BASE_NAMEDVALUE_H
+#define ZYPP_BASE_NAMEDVALUE_H
+
+#include <stdexcept>
+#include <string>
+#include <map>
+
+///////////////////////////////////////////////////////////////////
+namespace zypp
+{
+
+  ///////////////////////////////////////////////////////////////////
+  /// \class NamedValue<_Tp>
+  /// \brief Simple value<>name mapping supporting aliases.
+  /// \code
+  ///   enum Commands {
+  ///     CMD_1,
+  ///     CMD_2
+  ///   };
+  ///   NamedValue<Commands> clist;
+  ///   //     Value   | Name   | Alias...
+  ///   clist( CMD_1 ) | "cmd1";
+  ///   clist( CMD_2 ) | "cmd2" | "second";
+  ///
+  ///   std::string name( clist.getName( CMD_1 ) );
+  ///   Commands    cmd( clist.getValue( "second" ) );
+  /// \endcode
+  ///////////////////////////////////////////////////////////////////
+  template< class _Tp, const bool _WithAlias = true >
+  class NamedValue
+  {
+    typedef std::map< std::string, _Tp > NameMap;
+    typedef std::map< _Tp, std::string > ValueMap;
+
+  public:
+    /** Wheter not initialized (no (name,value) pair remembered) */
+    bool empty() const
+    { return( _nameMap.empty() && _valueMap.empty() ); }
+
+  public:
+    /** \name Get value for name or alias. */
+    //@{
+      /** Whether there is a \c value mapped for \a name_r.
+       */
+      bool haveValue( const std::string & name_r ) const
+      {
+       typename NameMap::const_iterator it( _nameMap.find( name_r ) );
+       return( it != _nameMap.end() );
+      }
+
+      /** Get value mapped for name or alias.
+       * \return \c true if name or alias was found.
+       */
+      bool getValue( const std::string & name_r, _Tp & value_r ) const
+      {
+       typename NameMap::const_iterator it( _nameMap.find( name_r ) );
+       if ( it == _nameMap.end() )
+         return false;
+       value_r = it->second;
+       return true;
+      }
+      /** \overload \throws std::out_of_range exception if \a name_r was not 
found. */
+      const _Tp & getValue( const std::string & name_r ) const
+      { return _nameMap.at( name_r ); }
+    //@}
+
+
+    /** \name Get name for value. */
+    //@{
+      /** Whether there is a \c name mapped for \a value_r.
+       */
+      bool haveName( const std::string & value_r ) const
+      {
+       typename ValueMap::const_iterator it( _valueMap.find( value_r ) );
+       return( it != _valueMap.end() );
+      }
+
+      /** Get name of value.
+       * \return \c true if name or alias was found.
+       */
+      bool getName( const _Tp & value_r, std::string & name_r ) const
+      {
+       typename ValueMap::const_iterator it( _valueMap.find( value_r ) );
+       if ( it == _valueMap.end() )
+         return false;
+       value_r = it->second;
+       return true;
+      }
+      /** \overload \throws std::out_of_range exception if \a value_r was not 
found. */
+      const std::string & getName( const _Tp & value_r ) const
+      { return _valueMap.at( value_r ); }
+    //@}
+
+  public:
+    /** \name Inserter
+     */
+    //@{
+      class _Inserter
+      {
+      public:
+       _Inserter( NamedValue & parent_r, const _Tp & value_r )
+       : _parent( &parent_r )
+       , _value( value_r )
+       {}
+       _Inserter & operator|( const std::string & name_r )
+       { _parent->insert( _value, name_r ); return *this; }
+      private:
+       NamedValue * _parent;
+       _Tp _value;
+      };
+
+      _Inserter operator()( const _Tp & value_r )
+      { return _Inserter( *this, value_r ); }
+    //@}
+
+    /** Remember name (1st call) or alias (subsequent calls).
+     * \return \C true if this is the 1st call for \a value_r.
+     * \throws std::logic_error if \a name_r is already used as name or alias.
+     * \throws std::logic_error if \c _WithAlias is \c false and a name for \a 
value_r is already defined.
+     */
+    bool insert( const _Tp & value_r, const std::string & name_r )
+    {
+      typename NameMap::const_iterator nit( _nameMap.find( name_r ) );
+      if ( nit != _nameMap.end() )     // duplicate name
+       throw std::logic_error( "NamedValue::insert name" );
+
+      typename ValueMap::const_iterator tit( _valueMap.find( value_r ) );
+      if ( tit != _valueMap.end() )    // duplicate value, i.e. an alias
+      {
+       if ( !_WithAlias )
+         throw std::logic_error( "NamedValue::insert alias" );
+
+       _nameMap[name_r] = value_r;
+       return false;
+      }
+      // here: 1st entry for value_r
+      _nameMap[name_r] = value_r;
+      _valueMap[value_r] = name_r;
+      return true;
+    }
+
+  private:
+    NameMap _nameMap;
+    ValueMap _valueMap;
+  };
+  ///////////////////////////////////////////////////////////////////
+
+} // namespace zypp
+///////////////////////////////////////////////////////////////////
+#endif // ZYPP_BASE_NAMEDVALUE_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-12.5.0/zypp/media/MediaCurl.cc 
new/libzypp-12.6.0/zypp/media/MediaCurl.cc
--- old/libzypp-12.5.0/zypp/media/MediaCurl.cc  2012-12-03 14:41:52.000000000 
+0100
+++ new/libzypp-12.6.0/zypp/media/MediaCurl.cc  2012-12-18 15:58:29.000000000 
+0100
@@ -607,6 +607,14 @@
       SET_OPTION(CURLOPT_CAPATH, 
_settings.certificateAuthoritiesPath().c_str());
     }
 
+#ifdef CURLSSLOPT_ALLOW_BEAST
+    // see bnc#779177
+    ret = curl_easy_setopt( _curl, CURLOPT_SSL_OPTIONS, CURLSSLOPT_ALLOW_BEAST 
);
+    if ( ret != 0 ) {
+      disconnectFrom();
+      ZYPP_THROW(MediaCurlSetOptException(_url, _curlError));
+    }
+#endif
     SET_OPTION(CURLOPT_SSL_VERIFYPEER, _settings.verifyPeerEnabled() ? 1L : 
0L);
     SET_OPTION(CURLOPT_SSL_VERIFYHOST, _settings.verifyHostEnabled() ? 2L : 
0L);
   }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-12.5.0/zypp/repo/PackageProvider.cc 
new/libzypp-12.6.0/zypp/repo/PackageProvider.cc
--- old/libzypp-12.5.0/zypp/repo/PackageProvider.cc     2012-12-03 
14:41:52.000000000 +0100
+++ new/libzypp-12.6.0/zypp/repo/PackageProvider.cc     2012-12-18 
15:58:29.000000000 +0100
@@ -335,30 +335,23 @@
         url = * info.baseUrlsBegin();
 
       // check whether to process patch/delta rpms
-      if ( url.schemeIsDownloading() || 
ZConfig::instance().download_use_deltarpm_always() )
-        {
-          std::list<DeltaRpm> deltaRpms;
-          if ( ZConfig::instance().download_use_deltarpm() )
-          {
-            _deltas.deltaRpms( _package ).swap( deltaRpms );
-          }
+      if ( ZConfig::instance().download_use_deltarpm()
+       && ( url.schemeIsDownloading() || 
ZConfig::instance().download_use_deltarpm_always() ) )
+      {
+       std::list<DeltaRpm> deltaRpms;
+       _deltas.deltaRpms( _package ).swap( deltaRpms );
 
-          if ( ! ( deltaRpms.empty() )
-               && queryInstalled() )
-            {
-              if ( ! deltaRpms.empty() && applydeltarpm::haveApplydeltarpm() )
-                {
-                  for( std::list<DeltaRpm>::const_iterator it = 
deltaRpms.begin();
-                       it != deltaRpms.end(); ++it )
-                    {
-                      DBG << "tryDelta " << *it << endl;
-                      ManagedFile ret( tryDelta( *it ) );
-                      if ( ! ret->empty() )
-                        return ret;
-                    }
-                }
-            }
-        }
+       if ( ! deltaRpms.empty() && queryInstalled() && 
applydeltarpm::haveApplydeltarpm() )
+       {
+         for_( it, deltaRpms.begin(), deltaRpms.end())
+         {
+           DBG << "tryDelta " << *it << endl;
+           ManagedFile ret( tryDelta( *it ) );
+           if ( ! ret->empty() )
+             return ret;
+         }
+       }
+      }
 
       // no patch/delta -> provide full package
       return Base::doProvidePackage();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-12.5.0/zypp/repo/RepoType.cc 
new/libzypp-12.6.0/zypp/repo/RepoType.cc
--- old/libzypp-12.5.0/zypp/repo/RepoType.cc    2012-12-03 14:41:52.000000000 
+0100
+++ new/libzypp-12.6.0/zypp/repo/RepoType.cc    2012-12-18 15:58:29.000000000 
+0100
@@ -8,7 +8,7 @@
 \---------------------------------------------------------------------*/
 
 #include <iostream>
-#include <map>
+#include "zypp/base/NamedValue.h"
 #include "zypp/repo/RepoException.h"
 #include "RepoType.h"
 
@@ -16,72 +16,46 @@
 {
 namespace repo
 {
+  ///////////////////////////////////////////////////////////////////
+  namespace
+  {
+    static NamedValue<RepoType::Type> & table()
+    {
+      static NamedValue<RepoType::Type> _t;
+      if ( _t.empty() )
+      {
+       _t( RepoType::RPMMD_e )         | "rpm-md"      | 
"rpmmd"|"repomd"|"yum"|"up2date";
+       _t( RepoType::YAST2_e )         | "yast2"       | "yast"|"susetags";
+       _t( RepoType::RPMPLAINDIR_e )   | "plaindir";
+       _t( RepoType::NONE_e )          | "NONE"        | "none";
+      }
+      return _t;
+    }
+  } // namespace
+  ///////////////////////////////////////////////////////////////////
 
-  static std::map<std::string,RepoType::Type> _table;
-
-  const RepoType RepoType::RPMMD(RepoType::RPMMD_e);
-  const RepoType RepoType::YAST2(RepoType::YAST2_e);
-  const RepoType RepoType::RPMPLAINDIR(RepoType::RPMPLAINDIR_e);
-  const RepoType RepoType::NONE(RepoType::NONE_e);
+  const RepoType RepoType::RPMMD       ( RepoType::RPMMD_e );
+  const RepoType RepoType::YAST2       ( RepoType::YAST2_e );
+  const RepoType RepoType::RPMPLAINDIR ( RepoType::RPMPLAINDIR_e );
+  const RepoType RepoType::NONE                ( RepoType::NONE_e );
 
   RepoType::RepoType(const std::string & strval_r)
     : _type(parse(strval_r))
   {}
 
-  RepoType::Type RepoType::parse(const std::string & strval_r)
+  RepoType::Type RepoType::parse( const std::string & strval_r )
   {
-    if (_table.empty())
-    {
-      // initialize it
-      _table["repomd"]
-      = _table["rpmmd"]
-      = _table["rpm-md"]
-      = _table["yum"]
-      = _table["YUM"]
-      = _table["up2date"]
-      = RepoType::RPMMD_e;
-
-      _table["susetags"]
-      = _table["yast"]
-      = _table["YaST"]
-      = _table["YaST2"]
-      = _table["YAST"]
-      = _table["YAST2"]
-      = _table["yast2"]
-      = RepoType::YAST2_e;
-
-      _table["plaindir"]
-      = _table["Plaindir"]
-      = RepoType::RPMPLAINDIR_e;
-
-      _table["NONE"]
-      = _table["none"]
-      = RepoType::NONE_e;
-    }
-
-    std::map<std::string,RepoType::Type>::const_iterator it
-      = _table.find(strval_r);
-    if (it == _table.end())
+    RepoType::Type type;
+    if ( ! table().getValue( str::toLower( strval_r ), type ) )
     {
-      ZYPP_THROW(RepoUnknownTypeException(
-        "Unknown repository type '" + strval_r + "'"));
+      ZYPP_THROW( RepoUnknownTypeException( "Unknown repository type '" + 
strval_r + "'") );
     }
-    return it->second;
+    return type;
   }
 
-
   const std::string & RepoType::asString() const
   {
-    static std::map<Type, std::string> _table;
-    if ( _table.empty() )
-    {
-      // initialize it
-      _table[RPMMD_e]          = "rpm-md";
-      _table[YAST2_e]          = "yast2";
-      _table[RPMPLAINDIR_e]    = "plaindir";
-      _table[NONE_e]           = "NONE";
-    }
-    return _table[_type];
+    return table().getName( _type );
   }
 
 

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to