Mailinglist Archive: opensuse-commit (2092 mails)

< Previous Next >
commit libzypp
  • From: root@xxxxxxxxxxxxxxx (h_root)
  • Date: Mon, 20 Aug 2007 17:34:21 +0200
  • Message-id: <20070820153421.609A8678182@xxxxxxxxxxxxxxx>

Hello community,

here is the log from the commit of package libzypp
checked in at Mon Aug 20 17:34:21 CEST 2007.

--------
--- libzypp/libzypp.changes     2007-08-17 12:34:25.000000000 +0200
+++ /mounts/work_src_done/STABLE/libzypp/libzypp.changes        2007-08-20 14:30:03.083317000 +0200
@@ -1,0 +2,7 @@
+Mon Aug 20 13:21:34 CEST 2007 - kkaempf@xxxxxxx
+
+- unify query API for kind and name, summary, description
+  (incomplete)
+- rev 6761, version 3.18.13
+
+-------------------------------------------------------------------

Old:
----
  libzypp-3.17.0.tar.bz2

New:
----
  libzypp-3.18.0.tar.bz2

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

Other differences:
------------------
++++++ libzypp.spec ++++++
--- /var/tmp/diff_new_pack.r11865/_old  2007-08-20 17:34:08.000000000 +0200
+++ /var/tmp/diff_new_pack.r11865/_new  2007-08-20 17:34:08.000000000 +0200
@@ -1,5 +1,5 @@
 #
-# spec file for package libzypp (Version 3.17.0)
+# spec file for package libzypp (Version 3.18.0)
 #
 # Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany.
 # This file and all modifications and additions to the pristine
@@ -16,9 +16,9 @@
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 Autoreqprov:    on
 Summary:        Package, Patch, Pattern, and Product Management
-Version:        3.17.0
+Version:        3.18.0
 Release:        1
-Source:         libzypp-3.17.0.tar.bz2
+Source:         libzypp-3.18.0.tar.bz2
 Source1:        libzypp-rpmlintrc
 Prefix:         /usr
 Provides:       yast2-packagemanager
@@ -44,7 +44,7 @@
     Ladislav Slezak <lslezak@xxxxxxx>
 
 %package devel
-Requires:       libzypp == 3.17.0
+Requires:       libzypp == 3.18.0
 Requires:       libxml2-devel curl-devel openssl-devel rpm-devel glibc-devel zlib-devel
 Requires:       bzip2 popt-devel dbus-1-devel glib2-devel hal-devel boost-devel libstdc++-devel
 Requires:       cmake
@@ -125,6 +125,10 @@
 %{_libdir}/pkgconfig/libzypp.pc
 
 %changelog
+* Mon Aug 20 2007 - kkaempf@xxxxxxx
+- unify query API for kind and name, summary, description
+  (incomplete)
+- rev 6761, version 3.18.13
 * Fri Aug 17 2007 - kkaempf@xxxxxxx
 - add iterateResolvablesByKindsAndName
 - rev 6735, version 3.17.13

++++++ libzypp-3.17.0.tar.bz2 -> libzypp-3.18.0.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libzypp-3.17.0/package/libzypp.changes new/libzypp-3.18.0/package/libzypp.changes
--- old/libzypp-3.17.0/package/libzypp.changes  2007-08-17 12:32:28.000000000 +0200
+++ new/libzypp-3.18.0/package/libzypp.changes  2007-08-20 14:28:38.000000000 +0200
@@ -1,4 +1,11 @@
 -------------------------------------------------------------------
+Mon Aug 20 13:21:34 CEST 2007 - kkaempf@xxxxxxx
+
+- unify query API for kind and name, summary, description
+  (incomplete)
+- rev 6761, version 3.18.13
+
+-------------------------------------------------------------------
 Fri Aug 17 12:30:55 CEST 2007 - kkaempf@xxxxxxx
 
 - add iterateResolvablesByKindsAndName
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libzypp-3.17.0/svn-commit.tmp new/libzypp-3.18.0/svn-commit.tmp
--- old/libzypp-3.17.0/svn-commit.tmp   2007-08-17 12:32:29.000000000 +0200
+++ new/libzypp-3.18.0/svn-commit.tmp   1970-01-01 01:00:00.000000000 +0100
@@ -1,4 +0,0 @@
-bump
---This line, and those below, will be ignored--
-
-M    package/libzypp.changes
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libzypp-3.17.0/tests/cache/CacheStore_test.cc new/libzypp-3.18.0/tests/cache/CacheStore_test.cc
--- old/libzypp-3.17.0/tests/cache/CacheStore_test.cc   2007-08-17 12:32:29.000000000 +0200
+++ new/libzypp-3.18.0/tests/cache/CacheStore_test.cc   2007-08-20 14:28:39.000000000 +0200
@@ -66,11 +66,11 @@
   BOOST_CHECK_EQUAL( p->license(), "BSD License and BSD-like, GNU General Public License (GPL)");
   BOOST_CHECK_EQUAL( p->location().checksum(), CheckSum("sha1", "05f0647241433d01636785fd282cc824a6527269"));
   BOOST_CHECK_EQUAL( p->location().filename(), Pathname("./suse/i586/kdelibs3-3.5.7-24.i586.rpm"));
-  BOOST_CHECK_EQUAL( p->location().medianr(), 1);
+  BOOST_CHECK_EQUAL( p->location().medianr(), (unsigned)1);
   BOOST_CHECK_EQUAL( p->size(), 38850584);
   BOOST_CHECK_EQUAL( p->location().downloadSize(), 16356019);
   
-  BOOST_CHECK_EQUAL( p->diskusage().size(), 3);
+  BOOST_CHECK_EQUAL( p->diskusage().size(), (unsigned)3);
 }
 
 /**
@@ -122,15 +122,15 @@
   list<Url>::const_iterator it;
   list<Url> urls;
   
-  BOOST_CHECK_EQUAL( urls.size(), 0 );
+  BOOST_CHECK_EQUAL( urls.size(), (unsigned)0 );
   
   urls = p->extraUrls();
   it = find( urls.begin(), urls.end(), Url("http://download.opensuse.org/distribution/10.2/repo/oss/";));
-  BOOST_CHECK_EQUAL( p->extraUrls().size(), 1 );
+  BOOST_CHECK_EQUAL( p->extraUrls().size(), (unsigned)1 );
   BOOST_CHECK( it != urls.end() );
   
   urls = p->optionalUrls();
-  BOOST_CHECK_EQUAL( urls.size(), 2 );
+  BOOST_CHECK_EQUAL( urls.size(), (unsigned)2 );
   
   it = find( urls.begin(), urls.end(), Url("http://download.opensuse.org/distribution/10.2/repo/non-oss/";));
   BOOST_CHECK( it != urls.end() );
@@ -171,7 +171,7 @@
   BOOST_CHECK_EQUAL( p->license(), "GNU General Public License (GPL)");
   BOOST_CHECK_EQUAL( p->location().checksum(), CheckSum("sha1", "34adf06a0c4873b9d53b4634beb8bee458b45767"));
   BOOST_CHECK_EQUAL( p->location().filename(), Pathname("rpm/i586/glabels-2.0.4-30.2.i586.rpm"));
-  BOOST_CHECK_EQUAL( p->location().medianr(), 1 );
+  BOOST_CHECK_EQUAL( p->location().medianr(), (unsigned)1 );
   BOOST_CHECK_EQUAL( p->size(), 2257356);
   BOOST_CHECK_EQUAL( p->location().downloadSize(), 983124);
 }
@@ -297,7 +297,7 @@
   ResStore dbres = get_resolvables( alias, tmpdir);;;
   //read_resolvables( alias, tmpdir, std::inserter(dbres, dbres.end()));
   MIL << dbres.size() << " resolvables" << endl;
-  BOOST_CHECK_EQUAL( dbres.size(), 48);
+  BOOST_CHECK_EQUAL( dbres.size(), (unsigned)48);
 
   bool found_glabels_i586 = false;
   for ( ResStore::const_iterator it = dbres.begin();
@@ -334,7 +334,7 @@
   MIL << dbres.size() << " resolvables" << endl;
 
   // packages and a patterns
-  BOOST_CHECK_EQUAL( dbres.size(), 7);
+  BOOST_CHECK_EQUAL( dbres.size(), (unsigned)7);
   bool found_kdelibs3_i586 = false;
   bool found_kde_pat = false;
   bool found_factory_product = false;
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libzypp-3.17.0/VERSION.cmake new/libzypp-3.18.0/VERSION.cmake
--- old/libzypp-3.17.0/VERSION.cmake    2007-08-17 12:32:31.000000000 +0200
+++ new/libzypp-3.18.0/VERSION.cmake    2007-08-20 14:28:40.000000000 +0200
@@ -45,6 +45,6 @@
 #
 
 SET(LIBZYPP_MAJOR "3")
-SET(LIBZYPP_MINOR "17")
+SET(LIBZYPP_MINOR "18")
 SET(LIBZYPP_COMPATMINOR "13")
 SET(LIBZYPP_PATCH "0")
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libzypp-3.17.0/zypp/cache/ResolvableQuery.cc new/libzypp-3.18.0/zypp/cache/ResolvableQuery.cc
--- old/libzypp-3.17.0/zypp/cache/ResolvableQuery.cc    2007-08-17 12:32:31.000000000 +0200
+++ new/libzypp-3.18.0/zypp/cache/ResolvableQuery.cc    2007-08-20 14:28:40.000000000 +0200
@@ -55,6 +55,7 @@
   //
   // convert regex ? and * operators to sql _ and % respectively
   //  example: regex2sql( "*foo?bar*" ) => "%foo_bar%"
+  // FIXME: take care of ".*" and "."
   std::string regex2sql( const std::string & s)
   {
     std::string sql( s );
@@ -111,32 +112,6 @@
     }
   }
 
-  void iterateResolvablesByName( const std::string &name, int wild, ProcessResolvable fnc  )
-  {
-    std::string sqlcmd = "select " + _fields + " from resolvables where name ";
-    std::string s( name );
-    if (wild == 0)
-    {
-      sqlcmd += "=";
-    }
-    else
-    {
-      sqlcmd += "like";
-      s = regex2sql( s );
-    }
-    sqlite3_command cmd( _con, sqlcmd + " :name;");
-    if (wild & 1)
-      s += "%";
-    if (wild & 2)
-      s = string("%") + s;
-    cmd.bind( ":name", s );
-    sqlite3_reader reader = cmd.executereader();
-    while(reader.read())
-    {
-      fnc( reader.getint64(0), fromRow(reader) );
-    }
-  }
-
 
   std::string queryStringAttribute( const data::RecordId &record_id,
                                     const std::string &klass,
@@ -223,38 +198,51 @@
     }
   }
   
-  void iterateResolvablesByKindsAndName( std::vector<zypp::Resolvable::Kind> kinds,
-                  const std::string &name, int wild, ProcessResolvable fnc )
+  void iterateResolvablesByKindsAndStrings( const std::vector<zypp::Resolvable::Kind> & kinds,
+                  const std::vector<std::string> &strings, int flags, ProcessResolvable fnc )
   {
-    std::string sqlcmd( "select " + _fields + " from resolvables where name " );
-    std::string s( name );
-    if (wild == 0)
-    {
-      sqlcmd += "=";
-    }
-    else
-    {
-      sqlcmd += "like";
-      s = regex2sql( s );
+    std::string sqlcmd( "SELECT " + _fields + " FROM resolvables WHERE (" );
+    std::vector<std::string>::const_iterator it_s;
+    for (it_s = strings.begin(); it_s != strings.end(); ++it_s)
+    {
+      std::string s( *it_s );
+
+      if (it_s != strings.begin())
+        sqlcmd += "AND";
+
+//FIXME: Implement MATCH_RESSUMM and MATCH_RESDESC
+
+      sqlcmd += " name ";
+      if (flags & MATCH_WILDCARDS == 0)
+      {
+        sqlcmd += "=";
+      }
+      else
+      {
+        sqlcmd += "like";
+        s = regex2sql( s );
+      }
+      if (flags & MATCH_LEADING)
+        s += "%";
+      if (flags & MATCH_TRAILING)
+        s = string("%") + s;
+
+      sqlcmd += " '";
+      sqlcmd += s;
+      sqlcmd += "'";
     }
-    if (wild & 1)
-      s += "%";
-    if (wild & 2)
-      s = string("%") + s;
-
-    sqlcmd = sqlcmd + " :name AND kind IN (";
+    sqlcmd += ") AND kind IN (";
 
-    std::vector<zypp::Resolvable::Kind>::iterator it;
-    for (it = kinds.begin(); it != kinds.end(); it++)
+    std::vector<zypp::Resolvable::Kind>::const_iterator it_k;
+    for (it_k = kinds.begin(); it_k != kinds.end(); ++it_k)
     {
-      if (it != kinds.begin())
+      if (it_k != kinds.begin())
         sqlcmd += ", ";
       char idbuf[16];
-      snprintf( idbuf, 15, "%d", (int)(_type_cache.idForKind( *it )) );
+      snprintf( idbuf, 15, "%d", (int)(_type_cache.idForKind( *it_k )) );
       sqlcmd += idbuf;
     }
     sqlite3_command cmd( _con, sqlcmd + ")");
-    cmd.bind( ":name", s );
 
     sqlite3_reader reader = cmd.executereader();
     while(reader.read())
@@ -443,15 +431,10 @@
   return _pimpl->iterateResolvablesByKind( kind, fnc );
 }
 
-void ResolvableQuery::iterateResolvablesByName( const std::string &name, int wild, ProcessResolvable fnc  )
-{
-  _pimpl->iterateResolvablesByName( name, wild, fnc );
-}
-
-void ResolvableQuery::iterateResolvablesByKindsAndName( std::vector<zypp::Resolvable::Kind> kinds,
-                  const std::string &name, int wild, ProcessResolvable fnc )
+void ResolvableQuery::iterateResolvablesByKindsAndStrings( const std::vector<zypp::Resolvable::Kind> & kinds,
+                  const std::vector<std::string> &strings, int flags, ProcessResolvable fnc )
 {
-  _pimpl->iterateResolvablesByKindsAndName( kinds, name, wild, fnc );
+  _pimpl->iterateResolvablesByKindsAndStrings( kinds, strings, flags, fnc );
 }
 //////////////////////////////////////////////////////////////////////////////
 
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libzypp-3.17.0/zypp/cache/ResolvableQuery.h new/libzypp-3.18.0/zypp/cache/ResolvableQuery.h
--- old/libzypp-3.17.0/zypp/cache/ResolvableQuery.h     2007-08-17 12:32:31.000000000 +0200
+++ new/libzypp-3.18.0/zypp/cache/ResolvableQuery.h     2007-08-20 14:28:40.000000000 +0200
@@ -39,6 +39,21 @@
   namespace cache
   { /////////////////////////////////////////////////////////////////
 
+   // match flag definitions for iterate*() functions
+
+   const int MATCH_EXACT =     0x00;           // match 'string' exactly
+   const int MATCH_LEADING =   0x01;           // match 'string*'
+   const int MATCH_TRAILING =  0x02;           // match '*string'
+   const int MATCH_SUBSTRING =  (MATCH_LEADING|MATCH_TRAILING);
+   const int MATCH_REGEXP =    0x04;           // match e.g. 's?t*r??ing*' (only ? and * are allowed)
+   const int MATCH_NAME =      0x08;           // match string in resolvable name, this is the default
+   const int MATCH_SUMMARY =   0x10;           // match string in resolvable summary
+   const int MATCH_DESCRIPTION= 0x20;          // match string in resolvable description
+
+
+   const int MATCH_WILDCARDS = (MATCH_SUBSTRING|MATCH_REGEXP);
+   const int MATCH_FIELDS = (MATCH_NAME|MATCH_SUMMARY|MATCH_DESCRIPTION);
+
      /**
       * Callback definition
       * first parameter is the resolvable id.
@@ -228,31 +243,21 @@
       std::string queryRepositoryAlias( const data::RecordId &repo_id );
 
       /**
-      * Query by matching name
-      * \param name name to match, wildcard operators like * and ? are allowed if 'wild' param != 0
-      * \param wild append wildcard operators ?: 0 = no, 1 = trailing wild, 2 = leading wild, 3 = trailing & leading wild, 4 = name contains wildcards
-      * \param fnc callback to send the data to. (Will be called once per result)
-      *
-      * Examples:
-      *   iterateByName( "kernel", 0, cb ) => look for resovables matching "kernel" exactly
-      *   iterateByName( "kernel", 1, cb ) => look for resovables starting with "kernel" (wildcard operator will be appendend)
-      *   iterateByName( "devel", 2, cb ) => look for resovables ending in "devel" (wildcard operator will be prependend)
-      *   iterateByName( "foo??", 1, cb ) => look for resovables starting with "foo" and at least 5 characters
-      *   iterateByName( "fo*o", 4, cb ) => look for resovables matching "fo*o"
-      */
-      void iterateResolvablesByName( const std::string &name, int wild,
-                  ProcessResolvable fnc  );
-
-      /**
        * \short Iterate resolvables by Kind
        */
       void iterateResolvablesByKind( zypp::Resolvable::Kind kind, ProcessResolvable fnc );
 
       /**
-       * \short Iterate resolvables by Kinds and Name
+       * \short Iterate resolvables by Kinds and Strings
+       * \param kinds kinds to match, will be ORed
+       * \param names names to match, will be ANDed
+       * \param flags  MATCH_xxx, see above
+       * \param fnc callback to send the data to. (Will be called once per result)
+       *
+       * Beware: Searching for multiple strings with MATCH_EXACT will _not_ find anything, except if all strings are identical ...
        */
-      void iterateResolvablesByKindsAndName( std::vector<zypp::Resolvable::Kind> kinds,
-                  const std::string &name, int wild, ProcessResolvable fnc );
+      void iterateResolvablesByKindsAndStrings( const std::vector<zypp::Resolvable::Kind> & kinds,
+                  const std::vector<std::string> &strings, int flags, ProcessResolvable fnc );
 
     private:
       /** Implementation. */



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



Remember to have fun...

---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-commit+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: opensuse-commit+help@xxxxxxxxxxxx

< Previous Next >