Hello community,

here is the log from the commit of package libzypp for openSUSE:11.4
checked in at Wed Oct 19 21:28:20 CEST 2011.



--------
--- old-versions/11.4/UPDATES/all/libzypp/libzypp.changes       2011-07-28 
14:59:32.000000000 +0200
+++ 11.4/libzypp/libzypp.changes        2011-10-13 13:18:13.000000000 +0200
@@ -1,0 +2,13 @@
+Thu Oct 13 12:21:19 CEST 2011 - [email protected]
+
+- Must not differ between type nfs and nfs4 when checking the mount 
+  table (bnc#710269)
+- version 8.13.1 (10)
+
+-------------------------------------------------------------------
+Thu Aug  4 15:20:48 CEST 2011 - [email protected]
+
+- Allow to turn Resolvers upgrade mode on and off (bnc#709480)
+- version 8.13.0 (10)
+
+-------------------------------------------------------------------

calling whatdependson for 11.4-i586


Old:
----
  libzypp-8.12.6.tar.bz2

New:
----
  libzypp-8.13.1.tar.bz2

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

Other differences:
------------------
++++++ libzypp.spec ++++++
--- /var/tmp/diff_new_pack.UkLTln/_old  2011-10-19 21:27:36.000000000 +0200
+++ /var/tmp/diff_new_pack.UkLTln/_new  2011-10-19 21:27:36.000000000 +0200
@@ -23,12 +23,19 @@
 Group:          System/Packages
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 Summary:        Package, Patch, Pattern, and Product Management
-Version:        8.12.6
+Version:        8.13.1
 Release:        0.<RELEASE2>
 Source:         %{name}-%{version}.tar.bz2
 Source1:        %{name}-rpmlintrc
 Provides:       yast2-packagemanager
 Obsoletes:      yast2-packagemanager
+
+# Features we provide (update doc/autoinclude/FeatureTest.doc):
+Provides:       libzypp(plugin) = 0
+Provides:       libzypp(plugin:services) = 0
+Provides:       libzypp(plugin:system) = 0
+Provides:       libzypp(plugin:urlresolver) = 0
+
 %if 0%{?suse_version}
 Recommends:     logrotate
 %endif

++++++ libzypp-8.12.6.tar.bz2 -> libzypp-8.13.1.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-8.12.6/VERSION.cmake 
new/libzypp-8.13.1/VERSION.cmake
--- old/libzypp-8.12.6/VERSION.cmake    2011-07-28 14:18:14.000000000 +0200
+++ new/libzypp-8.13.1/VERSION.cmake    2011-10-13 13:10:00.000000000 +0200
@@ -60,9 +60,9 @@
 #
 SET(LIBZYPP_MAJOR "8")
 SET(LIBZYPP_COMPATMINOR "10")
-SET(LIBZYPP_MINOR "12")
-SET(LIBZYPP_PATCH "6")
+SET(LIBZYPP_MINOR "13")
+SET(LIBZYPP_PATCH "1")
 #
-# LAST RELEASED: 8.12.6 (10)
+# LAST RELEASED: 8.13.1 (10)
 # (The number in parenthesis is LIBZYPP_COMPATMINOR)
 #=======
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-8.12.6/doc/autoinclude/FeatureTest.doc 
new/libzypp-8.13.1/doc/autoinclude/FeatureTest.doc
--- old/libzypp-8.12.6/doc/autoinclude/FeatureTest.doc  1970-01-01 
01:00:00.000000000 +0100
+++ new/libzypp-8.13.1/doc/autoinclude/FeatureTest.doc  2011-10-13 
13:10:00.000000000 +0200
@@ -0,0 +1,55 @@
+/**
+
+\page feature-test Testing for provided features.
+
+\author Michael Andres <[email protected]>
+
+<HR><!-- 
====================================================================== -->
+\section intro Introduction
+
+The libzypp rpm package will indicate the presence of certain features by 
using special \c Provides:
+
+\verbatim
+  # Provides:     libzypp(FEATURE) = FEATURE_VERSION
+  Provides:       libzypp(code10) = 0
+\endverbatim
+
+Packages requiring a feature may use the corresponding \c Requires: in their 
.spec file.
+
+
+<HR><!-- 
====================================================================== -->
+\section features Features
+<DL>
+
+  <DT>plugin</DT>
+  <DD><DL>
+    <DT>version 0</DT>
+    <DD>General ability to provide and handle plugins.</DD>
+  </DL></DD>
+
+  <DT>plugin:services</DT>
+  <DD><DL>
+    <DT>version 0</DT>
+    <DD>\see \ref plugin-services </DD>
+  </DL></DD>
+
+  <DT>plugin:system</DT>
+  <DD><DL>
+    <DT>version 0</DT>
+    <DD>Plugin executed when system content change is detected (by now SUSE 
Manager/spacewalk only).</DD>
+  </DL></DD>
+
+  <DT>plugin:urlresolver</DT>
+  <DD><DL>
+    <DT>version 0</DT>
+    <DD>\see \ref plugin-url-resolver </DD>
+
+  <DT>code10</DT>
+  <DD><DL>
+    <DT>version 0</DT>
+    <DD>Package provides some tools for metadata conversion on Code10 Systems. 
For example \c /usr/share/zypp/migrate/10-11.migrate.products.sh to migrate 
Code10 to Code11 product metadata.</DD>
+  </DL></DD>
+
+</DL>
+
+*/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-8.12.6/doc/autoinclude/Plugins.doc 
new/libzypp-8.13.1/doc/autoinclude/Plugins.doc
--- old/libzypp-8.12.6/doc/autoinclude/Plugins.doc      1970-01-01 
01:00:00.000000000 +0100
+++ new/libzypp-8.13.1/doc/autoinclude/Plugins.doc      2011-10-13 
13:10:00.000000000 +0200
@@ -0,0 +1,200 @@
+/**
+
+\page zypp-plugins Extending ZYpp: Plugins and Hooks
+
+\author Duncan Mac-Vicar P. <[email protected]>
+\author Michael Andres <[email protected]>
+
+<HR><!-- 
====================================================================== -->
+\section plugins-intro Introduction
+
+Plugins allow to extend the ZYpp package manager without the need to change
+code. Plugins are designed as external programs so that they can be written in 
any language.
+
+\section plugin-protocols Plugin protocols
+
+Depending on the complexity and need for future extension, plugins talk
+to ZYpp using two methods.
+
+\subsection plugin-protocol-stateless Stateless
+
+This type of plugin receive input reading the standard input, and answer ZYpp 
writing to the standard output. This means the plugin is executed once per hook 
and they are stateless (unless the plugin keeps the state out of process).
+
+\subsection plugin-protocol-stateful Stateful
+
+This type of plugin is called by ZYpp and a conversation using a simple 
protocol. The protocol is based on STOMP http://stomp.codehaus.org/Protocol 
(Streaming Text Orientated Messaging Protocol). Messages (called "frames") look 
like the following:
+
+\verbatim
+COMMAND
+param1:val1
+param2:val2
+...
+Thus a COMMAND hollowed by key:value header lines
+and a multiline body separated from header
+by an empty line and terminated by NUL.
+^@
+\endverbatim
+
+\note ^@ is a null (control-@ in ASCII) byte.
+
+<HR><!-- 
====================================================================== -->
+\section plugin-writing Writing plugins
+
+A python class is offered as a helper to handle communication between the 
plugin and
+libzypp. It is available by installing \c zypp-plugin-python.
+
+\verbatim
+zypper in -C zypp-plugin-python
+\endverbatim
+
+The plugin must define a method for each message it may receive from \ref 
libzypp. Message header list and body are passed to the method as arguments.
+
+\verbatim
+#!/usr/bin/env python
+#
+# zypp plugin
+#
+import os
+import sys
+from zypp_plugin import Plugin
+
+class MyPlugin(Plugin):
+
+  def SAMPLE( self, headers, body ):
+    # called upon revieving a SAMPLE message
+    ...
+    if ( ok ):
+      self.ack()
+    else:
+      self.error( { "aheader":"header value" }, "body\n(multiline text ok)" )
+
+plugin = MyPlugin()
+plugin.main()
+\endverbatim
+
+Two methods \c ack and \c error are available to send back a standard \c ACK 
or \c ERROR message. You may optionally pass header entries and a multiline 
body. For sending custom messages use \c answer, which takes the command name 
as 1st argument, followed by optional header entries and a multiline body.
+
+Plugin closes \c stdin and exits when receiving a \c _DISCONNECT message. Upon 
an \c ACK response to \c _DISCONNECT libzypp will not attempt to kill the 
script. An exit value different than \c 0 may be set via an \c 'exit' header in 
\c ACK.
+
+\verbatim
+  def _DISCONNECT( self, headers, body ):
+    sys.stding.close()
+    self.ack( {'exit':'99'}, 'Famous last words.' )
+\endverbatim
+
+<HR><!-- 
====================================================================== -->
+\section plugin-toc Supported plugins
+
+\ref plugin-services
+
+\ref plugin-url-resolver
+
+
+<HR><!-- 
====================================================================== -->
+\section plugin-services Service plugins
+
+ZYpp will find a subscribed service for each executable located in 
/usr/lib/zypp/plugins/services and will set the alias as the executable name. 
The type will be set to "plugin".
+
+Service plugins are used to provide a client a list of repositories from a 
central location where more complex logic is needed than a simple remote xml 
index accessible via http (in that case you can use \ref services-remote 
"Remote Services").
+
+\subsection plugin-services-example1 Example: Management console
+
+You have a custom mass management application that controls the repositories 
each client muss have. While you can use \ref services-remote "Remote Services" 
and subscribe each client to an url in the server providing a dynamic 
repoindex.xml based on the client, if you need to pass custom information in 
order for the server to calculate the repository list (e.g. number of CPUs) or 
the protocol that the client and the server and client speak is proprietary, 
you may implement the service locally, as an executable that will be installed 
in each client /usr/lib/zypp/plugins/services directory (it may be installed 
from a package).
+
+\subsection plugin-services-how How to write a Services plugin
+
+When listing services, ZYpp will find each plugin service as a subscribed 
service.
+
+Service plugins are Stateless. When services are refreshed, ZYpp will call 
each plugin and the repository list will be taken from the output of the script 
in INI format (same as how they are stored in /etc/zypp/repos.d).
+
+For our example:
+
+\verbatim
+# example plugin output
+# comments are ignored
+[repo1]
+name=Base repository
+summary=Standard repository
+baseurl=http://server.com/repo1
+type=rpm-md
+
+# multiple repositories can be present in the output
+
+[repo2]
+...
+
+\endverbatim
+
+The repositories will be added on service refresh with the alias present in 
the output, prefixed by the service alias (in this case, the executable name).
+
+
+<HR><!-- 
====================================================================== -->
+\section plugin-url-resolver Url Resolver plugins
+
+Url resolver plugins convert urls of scheme "plugin" into the output of the 
plugin named $name using the protocol. Thanks to the protocol, each header 
returned is also added as HTTP headers. The current protocol sequence is:
+
+ZYpp sees a repository whose url has the format:
+
+\verbatim
+plugin:foo?param1=val1&param2=val2
+\endverbatim
+
+ZYpp tries to executa a plugin named foo (in 
/usr/lib/zypp/plugins/urlresolver) and calla it with the following protocol:
+
+\verbatim
+   RESOLVEURL
+   param1:val1
+   param2:val2
+   ...
+   ^@
+\endverbatim
+
+The plugin answers:
+
+\verbatim
+   RESOLVEDURL:
+   header1:val1
+   header2:val2
+   ...
+   http://realurl.com?opts=vals
+   ^@
+\endverbatim
+
+And this url is used instead.
+
+\subsection plugin-urlresolver-example Example
+
+You have a repository with url:
+
+   plugin:lan
+
+The script looks which distribution you have installed, and via SLP finds the 
right repositories in the lan and selects the update one and returns it url. 
But in addition, it adds a header with the update status that can be collected 
on the server side.
+
+This type of plugin can be combined with service plugins, because a local 
service could return a list of repos like this:
+
+\verbatim
+  [distro]
+  name=Distribution repository
+  baseurl=plugin:lan?repo=distro
+  [update]
+  name=Update repository
+  baseurl=plugin:lan?repo=update
+\endverbatim
+
+\note
+In this example, the service plugin could have inmediately resolved the urls 
and returned http://realurl, but the url resolver allows also to add HTTP 
headers to the request.
+
+<HR><!-- 
====================================================================== -->
+\section plugins-impl Developers: Implementation
+
+Plugins are implemented in the following classes:
+
+- \ref zypp::PluginScript (Plugin as an external program)
+- \ref zypp::PluginScriptException
+- \ref zypp::PluginFrame (Message for the stateful protocol)
+- \ref zypp::PluginFrameException
+- \ref zypp::repo::PluginServices (Finds Service plugins)
+
+The plugins default location is obtained from \ref zypp::ZConfig::pluginsPath()
+
+*/
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-8.12.6/libzypp.spec.cmake 
new/libzypp-8.13.1/libzypp.spec.cmake
--- old/libzypp-8.12.6/libzypp.spec.cmake       2011-07-28 14:18:14.000000000 
+0200
+++ new/libzypp-8.13.1/libzypp.spec.cmake       2011-10-13 13:10:00.000000000 
+0200
@@ -21,6 +21,13 @@
 Source1:        %{name}-rpmlintrc
 Provides:       yast2-packagemanager
 Obsoletes:      yast2-packagemanager
+
+# Features we provide (update doc/autoinclude/FeatureTest.doc):
+Provides:       libzypp(plugin) = 0
+Provides:       libzypp(plugin:services) = 0
+Provides:       libzypp(plugin:system) = 0
+Provides:       libzypp(plugin:urlresolver) = 0
+
 %if 0%{?suse_version}
 Recommends:     logrotate
 %endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-8.12.6/package/libzypp.changes 
new/libzypp-8.13.1/package/libzypp.changes
--- old/libzypp-8.12.6/package/libzypp.changes  2011-07-28 14:18:14.000000000 
+0200
+++ new/libzypp-8.13.1/package/libzypp.changes  2011-10-13 13:10:00.000000000 
+0200
@@ -1,4 +1,17 @@
 -------------------------------------------------------------------
+Thu Oct 13 12:21:19 CEST 2011 - [email protected]
+
+- Must not differ between type nfs and nfs4 when checking the mount 
+  table (bnc#710269)
+- version 8.13.1 (10)
+
+-------------------------------------------------------------------
+Thu Aug  4 15:20:48 CEST 2011 - [email protected]
+
+- Allow to turn Resolvers upgrade mode on and off (bnc#709480)
+- version 8.13.0 (10)
+
+-------------------------------------------------------------------
 Thu Jul 28 14:15:44 CEST 2011 - [email protected]
 
 - Evaluate CURLINFO_CONDITION_UNMET on zero sized successful transfers,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-8.12.6/zypp/Digest.cc 
new/libzypp-8.13.1/zypp/Digest.cc
--- old/libzypp-8.12.6/zypp/Digest.cc   2011-07-28 14:18:14.000000000 +0200
+++ new/libzypp-8.13.1/zypp/Digest.cc   2011-10-13 13:10:00.000000000 +0200
@@ -169,12 +169,12 @@
     std::string Digest::digest()
     {
       if(!_dp->maybeInit())
-       return false;
+       return std::string();
 
       if(!_dp->finalized)
       {
        if(!EVP_DigestFinal_ex(&_dp->mdctx, _dp->md_value, &_dp->md_len))
-           return false;
+           return std::string();
 
        _dp->finalized = true;
       }
@@ -197,11 +197,11 @@
         return r;
 
       if(!_dp->finalized)
-      {   
+      {
         if(!EVP_DigestFinal_ex(&_dp->mdctx, _dp->md_value, &_dp->md_len))
             return r;
         _dp->finalized = true;
-      }   
+      }
       r.reserve(_dp->md_len);
       for(unsigned i = 0; i < _dp->md_len; ++i)
        r.push_back(_dp->md_value[i]);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-8.12.6/zypp/Resolver.cc 
new/libzypp-8.13.1/zypp/Resolver.cc
--- old/libzypp-8.12.6/zypp/Resolver.cc 2011-07-28 14:18:14.000000000 +0200
+++ new/libzypp-8.13.1/zypp/Resolver.cc 2011-10-13 13:10:00.000000000 +0200
@@ -83,6 +83,7 @@
   void Resolver::resetOnlyRequires()                   { 
_pimpl->setOnlyRequires( indeterminate ); }
   bool Resolver::onlyRequires() const                  { return 
_pimpl->onlyRequires(); }
 
+  void Resolver::setUpgradeMode( bool yesno_r )                { return 
_pimpl->setUpgradeMode( yesno_r ); }
   bool Resolver::upgradeMode() const                   { return 
_pimpl->isUpgradeMode(); }
 
   void Resolver::setAllowVendorChange( bool yesno_r )  { 
_pimpl->setAllowVendorChange( yesno_r ); }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-8.12.6/zypp/Resolver.h 
new/libzypp-8.13.1/zypp/Resolver.h
--- old/libzypp-8.12.6/zypp/Resolver.h  2011-07-28 14:18:14.000000000 +0200
+++ new/libzypp-8.13.1/zypp/Resolver.h  2011-10-13 13:10:00.000000000 +0200
@@ -115,6 +115,9 @@
      * all packages with a special resolver algorithm which takes
      * care of package splits, pattern  and  product  updates,
      * etc.
+     * This call also turns the solver into \ref upgradeMode, so
+     * consecutive calls to \ref resolvePool performed in this
+     * mode too. Call \ref setUpgradeMode to turn this mode off.
      *
      * \see \ref addUpgradeRepo
      **/
@@ -180,8 +183,11 @@
     bool onlyRequires() const;
 
     /**
-     * Whether the \ref Resolver is in upgrade mode.
+     * Setting whether the solver should perform in 'upgrade' mode or
+     * not.
+     * \see \ref doUpgrade.
      */
+    void setUpgradeMode( bool yesno_r );
     bool upgradeMode() const;
 
     /**
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-8.12.6/zypp/media/CurlConfig.cc 
new/libzypp-8.13.1/zypp/media/CurlConfig.cc
--- old/libzypp-8.12.6/zypp/media/CurlConfig.cc 2011-07-28 14:18:14.000000000 
+0200
+++ new/libzypp-8.13.1/zypp/media/CurlConfig.cc 2011-10-13 13:10:00.000000000 
+0200
@@ -45,7 +45,7 @@
     }
     else
     {
-      char buf[32] = {NULL};
+      char buf[32] = "";
       WAR << "Not allowed to parse '" << curlrcFile
           << "': dir/file owner: " << h_info.owner() << "/" << c_info.owner()
           << ", process uid: " << getuid()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-8.12.6/zypp/media/MediaHandler.cc 
new/libzypp-8.13.1/zypp/media/MediaHandler.cc
--- old/libzypp-8.12.6/zypp/media/MediaHandler.cc       2011-07-28 
14:18:14.000000000 +0200
+++ new/libzypp-8.13.1/zypp/media/MediaHandler.cc       2011-10-13 
13:10:00.000000000 +0200
@@ -552,9 +552,18 @@
         if(!is_device && (!ref.mediaSource->maj_nr ||
                          !ref.mediaSource->bdir.empty()))
         {
-          std::string mtype(matchMountFs ? e->type : ref.mediaSource->type);
          if( ref.mediaSource->bdir.empty())
          {
+           // bnc#710269: Type nfs may appear as nfs4 in in the mount table
+           // and maybe vice versa. Similar cifs/smb. Need to unify these 
types:
+           if ( matchMountFs && e->type != ref.mediaSource->type )
+           {
+             if ( str::hasPrefix( e->type, "nfs" ) && str::hasPrefix( 
ref.mediaSource->type, "nfs" ) )
+               matchMountFs = false;
+             else if ( ( e->type == "cifs" || e->type == "smb" ) && ( 
ref.mediaSource->type == "cifs" || ref.mediaSource->type == "smb" ) )
+               matchMountFs = false;
+           }
+           std::string mtype(matchMountFs ? e->type : ref.mediaSource->type);
            MediaSource media(mtype, e->src);
 
            if( ref.mediaSource->equals( media) &&
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-8.12.6/zypp/solver/detail/Resolver.cc 
new/libzypp-8.13.1/zypp/solver/detail/Resolver.cc
--- old/libzypp-8.12.6/zypp/solver/detail/Resolver.cc   2011-07-28 
14:18:14.000000000 +0200
+++ new/libzypp-8.13.1/zypp/solver/detail/Resolver.cc   2011-10-13 
13:10:00.000000000 +0200
@@ -292,9 +292,9 @@
     _satResolver->setSolveSrcPackages          ( solveSrcPackages() );
     _satResolver->setCleandepsOnRemove         ( cleandepsOnRemove() );
 
+    _satResolver->setDistupgrade               (_upgradeMode);
     if (_upgradeMode) {
       // may overwrite some settings
-      _satResolver->setDistupgrade                     (true);
       _satResolver->setDistupgrade_removeunsupported   (false);
       _satResolver->setUpdatesystem                    (true);
       _satResolver->setAllowdowngrade                  (true);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-8.12.6/zypp/solver/detail/Resolver.h 
new/libzypp-8.13.1/zypp/solver/detail/Resolver.h
--- old/libzypp-8.12.6/zypp/solver/detail/Resolver.h    2011-07-28 
14:18:14.000000000 +0200
+++ new/libzypp-8.13.1/zypp/solver/detail/Resolver.h    2011-10-13 
13:10:00.000000000 +0200
@@ -85,7 +85,13 @@
 ///////////////////////////////////////////////////////////////////
 //
 //     CLASS NAME : Resolver
-
+/** A mid layer class we should remove
+ * \todo Merge this and class SATResolver. Logic and date are horribly
+ * distributed between this and SATResolver. Either SATResolver becomes
+ * a pure wrapper adapting the libsolv C interface to fit our needs, and
+ * all the solver logic and problem handling goes here; or completely merge
+ * both classes.
+ */
 class Resolver : public base::ReferenceCounted, private base::NonCopyable {
 
   private:
@@ -194,6 +200,7 @@
     void setForceResolve( TriBool state_r )    { _forceResolve = 
indeterminate(state_r) ? false : bool(state_r); }
 
     bool isUpgradeMode() const                         { return _upgradeMode; 
}// Resolver has been called with doUpgrade
+    void setUpgradeMode( bool yesno_r )                { _upgradeMode = 
yesno_r; }
 
     bool isUpdateMode() const                  { return _updateMode; } // 
Resolver has been called with doUpdate
 

continue with "q"...



Remember to have fun...

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

Reply via email to