Bump to libzypp-bindings 0.7.4 58/226658/6 accepted/tizen_6.0_unified accepted/tizen_6.0_unified_hotfix accepted/tizen_6.5_unified sandbox/wangbiao/libzypper_bindings_upgrade tizen_6.0 tizen_6.0_hotfix tizen_6.5 accepted/tizen/6.0/unified/20201030.110352 accepted/tizen/6.0/unified/hotfix/20201102.233931 accepted/tizen/6.0/unified/hotfix/20201103.051037 accepted/tizen/6.5/unified/20211029.014520 accepted/tizen/unified/20200311.130907 submit/tizen/20200310.064233 submit/tizen_6.0/20201029.205502 submit/tizen_6.0_hotfix/20201102.192902 submit/tizen_6.0_hotfix/20201103.115102 submit/tizen_6.5/20211028.163501 tizen_6.0.m2_release tizen_6.5.m2_release upstream/0.7.4
authorbiao716.wang <biao716.wang@samsung.com>
Thu, 5 Mar 2020 17:26:13 +0000 (02:26 +0900)
committerbiao716.wang <biao716.wang@samsung.com>
Fri, 6 Mar 2020 13:06:03 +0000 (22:06 +0900)
Change-Id: I9f33b96eeef6ba2a2fb0d1a4784cb88f90c8de67
Signed-off-by: biao716.wang <biao716.wang@samsung.com>
24 files changed:
CMakeLists.txt
COPYING [new file with mode: 0644]
README
VERSION.cmake
examples/perl/list_target_resolvables.pl
examples/python/SimpleWalkthrough.py [new file with mode: 0644]
libzypp-bindings.spec.cmake
package/libzypp-bindings.changes
packaging/libzypp-bindings.spec
swig/Arch.i
swig/CMakeLists.txt
swig/Capabilities.i
swig/PoolItem.i
swig/RepoInfo.i
swig/RepoManager.i
swig/ResPool.i
swig/ResTraits.i
swig/Resolvable.i
swig/Resolver.i
swig/ZYppFactory.i
swig/ruby/tests/arch.rb
swig/ruby/tests/bytecount.rb
swig/ruby/tests/target.rb
swig/zypp.i

index e02ba6b..30b0841 100644 (file)
@@ -66,7 +66,7 @@ FIND_PATH( BOOST_SMARTPTR_INCLUDE_DIR boost/smart_ptr/shared_ptr.hpp
        /usr/local/include
 )
 IF( BOOST_SMARTPTR_INCLUDE_DIR )
-       SET( SWIG_DEFINITIONS ${SWIG_DEFINITIONS} -DBOOST_SMARTPTR_INCLUDE_DIR )
+       SET( SWIG_DEFINITIONS ${SWIG_DEFINITIONS} -I${BOOST_SMARTPTR_INCLUDE_DIR} -DBOOST_SMARTPTR_INCLUDE_DIR )
 ENDIF( BOOST_SMARTPTR_INCLUDE_DIR )
 
 # Now into SWIG
diff --git a/COPYING b/COPYING
new file mode 100644 (file)
index 0000000..d1d10bc
--- /dev/null
+++ b/COPYING
@@ -0,0 +1,20 @@
+/*---------------------------------------------------------------------\
+|                          ____ _   __ __ ___                          |
+|                         |__  / \ / / . \ . \                         |
+|                           / / \ V /|  _/  _/                         |
+|                          / /__ | | | | | |                           |
+|                         /_____||_| |_| |_|                           |
+|                                                                      |
+\---------------------------------------------------------------------*/
+
+Copyright (C) 2007-2015 SUSE Linux Products GmbH
+
+ZYpp-bindings is licensed under the GNU General Public License version 2
+or later. The text of the GNU General Public License can be viewed at
+http://www.gnu.org/licenses/gpl.html
+
+As a special exception, you have permission to link this program
+with the following libraries and distribute executables, as long as you
+follow the requirements of the GNU GPL in regard to all of the
+software in the executable aside from the following libraries:
+- OpenSSL (http://www.openssl.org)
diff --git a/README b/README
index bfe1fde..ad103a6 100644 (file)
--- a/README
+++ b/README
@@ -1,4 +1,7 @@
 
+The project is discontinued!
+
+--------------------------------------------------------------------------------
 Attempt to create generated bindings for
 libzypp. Not restricted to one language.
 
index b0f8cf7..0920943 100644 (file)
@@ -1,4 +1,4 @@
 # on maintenance branch add a 2nd level to patch (p.1, p.2, ...)
 SET(VERSION_MAJOR "0")
-SET(VERSION_MINOR "6")
-SET(VERSION_PATCH "2")
+SET(VERSION_MINOR "7")
+SET(VERSION_PATCH "4")
index 61cd765..522eaed 100644 (file)
@@ -5,18 +5,32 @@ $zypp = $z->getZYpp;
 
 $t = $zypp->initializeTarget(zypp::Pathname->new("/"));
 
-$repo = $zypp->target;
-$store = $repo->resolvables;
+my $repoManager = zypp::RepoManager::new();
+my $repos = zypp::RepoManager::knownRepositories($repoManager);
+
+foreach $repo ( @{$repos} ) {
+       if ( $repo->enabled() ) {
+               print("Caching repo: ".$repo->name."\n");
+               if ( ! zypp::RepoManager::isCached($repoManager,$repo) ) {
+                       print("Rebuilding cache for: ".$repo->name."\n");
+                       zypp::RepoManager::buildCache($repoManager,$repo);
+               }
+               zypp::RepoManager::loadFromCache($repoManager,$repo);
+       }
+}
+
+$store = $zypp->pool;
 
 $it_b = $store->cBegin;
+$it_e = $store->cEnd;
 
-while ($store->iterator_equal($it_b, $store->cEnd) ne 1){
+while ($store->iterator_equal($it_b, $it_e) ne 1){
    $pkg = $store->iterator_value($it_b);
-   print $pkg->kindToS, " ", $pkg->name, " ", $pkg->edition->asString;
-   print $pkg->arch->asString, "\n";
+   print $pkg->kind->asString, " ", $pkg->name, " ", $pkg->edition->asString;
+   print $pkg->arch->string, "\n";
    print "  Summary: ", $pkg->summary, "\n";
-   print "  Size: ", $pkg->size, "\n";
-   print "  Vendor: ", $pkg->vendor, "\n";
+   print "  Size: ", $pkg->installSize->asString, "\n";
+   print "  Vendor: ", $pkg->vendor->asString, "\n";
    print "  BuildTime: ", $pkg->buildtime->asString, "\n";
    $it_b = $store->iterator_incr($it_b);
 
diff --git a/examples/python/SimpleWalkthrough.py b/examples/python/SimpleWalkthrough.py
new file mode 100644 (file)
index 0000000..a1b6d94
--- /dev/null
@@ -0,0 +1,147 @@
+#! /usr/bin/python
+import zypp
+# ========================================================================================
+
+def poolInstall( Z, capstr ):
+  print "Request: install %s" % capstr
+  Z.resolver().addRequire( zypp.Capability( capstr ) )
+
+def poolRemove( Z, capstr ):
+  print "Request: delete  %s" % capstr
+  Z.resolver().addConflict( zypp.Capability( capstr ) )
+
+def poolPrintTransaction( Z ):
+  todo = Z.pool().getTransaction()
+  for item in todo._toDelete:
+    print '-- %s | %s-%s | %s' % (item.repoInfo().alias(), item.name(), item.edition(), item.status() )
+  for item in todo._toInstall:
+    print '++ %s | %s-%s | %s' % (item.repoInfo().alias(), item.name(), item.edition(), item.status() )
+
+def poolResolve( Z ):
+  print "Resolve pool:"
+  while not Z.resolver().resolvePool():
+    # Print _all_ problems and possible solutions:
+    problems = Z.resolver().problems()
+    pn = 0
+    for problem in problems:
+      pn += 1
+      print "Problem %d:" % pn
+      print "=============================="
+      print problem.description()
+      if problem.details():
+       print problem.details()
+      print "------------------------------"
+      sn = 0
+      for solution in problem.solutions():
+       sn += 1
+       print "Solution %d.%d:" % ( pn, sn )
+       print solution.description()
+       if solution.details():
+         print solution.details()
+      print "=============================="
+      print
+
+    # Faked user interaction: stupidly pick all 1st solutions (don't do this in real life!)
+    #
+    # In real life you probably pick just a single solution
+    # and re-solve immedaitely, because one solution may solve
+    # multiple ploblems - or create new ones.
+    #
+    pickedSolutions =  zypp.ProblemSolutionList()
+    pn = 0
+    for problem in problems:
+      pn += 1
+      sn = 0
+      for solution in problem.solutions():
+       sn += 1
+       print "Stupidly pick solution %d.%d" % ( pn, sn )
+       pickedSolutions.push_back( solution )
+       break
+    # Apply picked solutions:
+    Z.resolver().applySolutions( pickedSolutions )
+
+    #
+    print "Example stops here instead of starting a new iteration..."
+    print
+    raise BaseException("Solver Error")
+
+  poolPrintTransaction( Z )
+  print "[done]"
+
+def poolUpdate( Z ):
+  # In contrary to
+  print "Update pool:"
+  Z.resolver().doUpdate()
+  poolPrintTransaction( Z )
+  print "[done]"
+
+# ========================================================================================
+Z = zypp.ZYppFactory_instance().getZYpp()
+
+# Load system rooted at "/"...
+#
+Z.initializeTarget( zypp.Pathname("/") )
+Z.target().load();
+
+# Load all enabled repositories...
+#
+repoManager = zypp.RepoManager()
+for repo in repoManager.knownRepositories():
+  if not repo.enabled():
+    continue
+  if not repoManager.isCached( repo ):
+    repoManager.buildCache( repo )
+  repoManager.loadFromCache( repo );
+
+# Now all installed and available items are in the pool:
+#
+print "Known items: %d" % ( Z.pool().size() )
+if True:
+    # Iterate the pool to query items. PoolItems are not just packages
+    # but also patterns, patches, products, ...
+    # PoolItem provides the common attributes and status. For specific
+    # attibutes cast the item inot the specific kind.
+    print "Printing just the Products..."
+    for item in Z.pool():
+       if not zypp.isKindProduct( item ):
+         continue
+
+       if item.status().isInstalled():
+         t = "i"
+       else:
+         t = "*"
+       print "%s %s:%s-%s.%s\t(%s)" % ( t,
+                                       item.kind(),
+                                       item.name(),
+                                       item.edition(),
+                                       item.arch(),
+                                       item.repoInfo().alias() )
+
+       # How to access e.g. product specific attributes:
+       if zypp.isKindProduct( item ):
+         prod = zypp.asKindProduct( item )
+         print "  %s (%s)" % ( prod.shortName(), prod.flavor() )
+    print
+
+# Building and resolving a transaction:
+#
+doUpdate = False
+if doUpdate:
+  # Simply try to update all installed packages:
+  poolUpdate( Z )
+else:
+  # Add jobs to the pools resolver
+  # and finally resolve the jobs.
+  poolInstall( Z, "libzypp = 13.9.0-13.1" )
+  poolInstall( Z, "pattern:unknown" )
+  poolRemove( Z, "xteddy < 1.0" )
+  poolResolve( Z )
+
+# finally install (here dryRun)
+#
+policy = zypp.ZYppCommitPolicy()
+policy.syncPoolAfterCommit( False )
+policy.dryRun( True )
+
+result = Z.commit( policy )
+print result
index 668dc6e..8ece7ec 100644 (file)
@@ -26,10 +26,10 @@ Group:          Development/Sources
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 BuildRequires:  cmake
 BuildRequires:  gcc-c++ >= 4.5
-BuildRequires:  libzypp-devel >= 14.5.0
-BuildRequires:  python-devel
+BuildRequires:  libzypp-devel >= 15.11.0
+BuildRequires:  python-devel < 3
 BuildRequires:  ruby-devel
-BuildRequires:  swig >= 1.3.40
+BuildRequires:  swig >= 2
 Source:         %{name}-%{version}.tar.bz2
 
 %description
@@ -69,7 +69,7 @@ Summary:        Ruby bindings for libzypp
 Group:          Development/Languages/Ruby
 
 %description -n ruby-zypp
--
+Ruby bindings for libzypp.
 
 %files -n ruby-zypp
 %defattr(-,root,root,-)
@@ -84,7 +84,7 @@ Group:          Development/Languages/Ruby
 Summary:        Python bindings for libzypp
 Group:          Development/Languages/Python
 %description -n python-zypp
--
+Python bindings for libzypp.
 
 %files -n python-zypp
 %defattr(-,root,root,-)
@@ -97,7 +97,7 @@ Summary:        Perl bindings for libzypp
 Group:          Development/Languages/Perl
 
 %description -n perl-zypp
--
+Perl bindings for libzypp.
 
 %files -n perl-zypp
 %defattr(-,root,root,-)
index 7f19f52..f123b13 100644 (file)
@@ -1,4 +1,47 @@
 -------------------------------------------------------------------
+Thu Oct 12 12:40:09 CEST 2017 - ma@suse.com
+
+- by V. Zhestkov: Adapt bindings to work with boost-1.62,
+  Fix perl examples
+- 0.7.4
+
+-------------------------------------------------------------------
+Mon Aug 10 17:07:09 CEST 2015 - ma@suse.com
+
+- Adapt to libzypp changes due to FATE#318778
+- 0.7.3
+
+-------------------------------------------------------------------
+Mon Jul 20 13:44:19 CEST 2015 - ma@suse.de
+
+- Don't expose resolver internals (due to FATE#318099)
+- 0.7.2
+
+-------------------------------------------------------------------
+Thu May 21 13:09:43 CEST 2015 - ma@suse.de
+
+- Fix test to run with ruby-2.2
+- 0.7.1
+
+-------------------------------------------------------------------
+Mon May  4 10:17:32 CEST 2015 - ma@suse.de
+
+- Adapt to libzypp-15.x (bnc#899755)
+- 0.7.0
+
+-------------------------------------------------------------------
+Thu Dec 18 11:28:55 CET 2014 - ma@suse.de
+
+- Enforce Python 2.7 libzypp-bindings is not yet ready for Python 3. 
+- 0.6.4
+
+-------------------------------------------------------------------
+Fri Oct 17 11:22:13 CEST 2014 - ma@suse.de
+
+- Adapt to libzypp changes.
+- 0.6.3
+
+-------------------------------------------------------------------
 Thu Aug 14 14:45:12 CEST 2014 - mls@suse.de
 
 - work around syntax errors because of __attribute__ 
index 305b869..8c1ca95 100644 (file)
@@ -8,7 +8,7 @@
 # Please submit bugfixes or comments via http://bugs.opensuse.org/
 # 
 Name:           libzypp-bindings
-Version:        0.6.1
+Version:        0.7.4
 Release:        0
 License:        GPL-2.0+
 Summary:        Bindings for libzypp
index 1129197..09ada80 100644 (file)
@@ -100,6 +100,22 @@ class Arch {
    * builtin: armv7hl
    */
   static Arch armv7hl() { return zypp::Arch_armv7hl; }
+  /*
+   * builtin: armv7tnhl
+   */
+  static Arch armv7tnhl() { return zypp::Arch_armv7tnhl; }
+  /*
+   * builtin: armv7thl
+   */
+  static Arch armv7thl() { return zypp::Arch_armv7thl; }
+  /*
+   * builtin: armv7nhl
+   */
+  static Arch armv7nhl() { return zypp::Arch_armv7nhl; }
+  /*
+   * builtin: armv7hl
+   */
+  static Arch armv7hl() { return zypp::Arch_armv7hl; }
 
   /*
    * builtin: armv7l
index ea807f6..acf23f6 100644 (file)
@@ -8,22 +8,37 @@ ENABLE_TESTING()
 SET( SWIG_INPUT "${CMAKE_CURRENT_SOURCE_DIR}/zypp.i" )
 
 #
+# Allow to build only a subset of language bindings via options
+#
+
+OPTION(BUILD_RUBY_BINDINGS "Build Ruby bindings" ON)
+OPTION(BUILD_PYTHON2_BINDINGS "Build Python 2 bindings" ON)
+OPTION(BUILD_PERL5_BINDINGS "Build Perl 5 bindings" ON)
+
+#
 # Let's see which target languages are available
 #
 
-FIND_PACKAGE(Ruby)
-FIND_PACKAGE(PythonLibs)
-FIND_PACKAGE(Perl)
-
-
-IF (RUBY_LIBRARY AND RUBY_INCLUDE_PATH)
-  ADD_SUBDIRECTORY(ruby)
-ENDIF(RUBY_LIBRARY AND RUBY_INCLUDE_PATH)
-    
-IF (PYTHON_LIBRARY)
-  ADD_SUBDIRECTORY(python)
-ENDIF(PYTHON_LIBRARY)
-      
-#IF (PERL_EXECUTABLE)
-#  ADD_SUBDIRECTORY(perl5)
-#ENDIF (PERL_EXECUTABLE)
+IF(BUILD_RUBY_BINDINGS)
+  FIND_PACKAGE(Ruby)
+  IF(RUBY_LIBRARY AND RUBY_INCLUDE_PATH)
+    ADD_SUBDIRECTORY(ruby)
+  ENDIF()
+ENDIF()
+
+IF(BUILD_PYTHON2_BINDINGS)
+  # Enforce Python 2.7, libzypp-bindings does not yet work with Python3
+  set(PythonLibs_FIND_VERSION 2.7)
+  set(PythonLibs_FIND_VERSION_MAJOR 2)
+  FIND_PACKAGE(PythonLibs)
+  IF(PYTHON_LIBRARY)
+    ADD_SUBDIRECTORY(python)
+  ENDIF()
+ENDIF()
+
+#IF(BUILD_PERL5_BINDINGS)
+#  FIND_PACKAGE(Perl)
+#  IF(PERL_EXECUTABLE)
+#    ADD_SUBDIRECTORY(perl5)
+#  ENDIF()
+#ENDIF()
index 88e5c30..624b921 100644 (file)
@@ -8,3 +8,21 @@ by_value_iterator(zypp::Capabilities);
 #ifdef SWIGPERL5
 forwarditer(zypp::Capabilities, zypp::Capability);
 #endif
+
+#ifdef SWIGPYTHON
+%include "std_vector.i"
+%include "std_string.i"
+
+%template(StringVector) std::vector<std::string>;
+
+%extend  zypp::Capabilities {
+    std::vector<std::string> CapNames()
+    {
+        std::vector<std::string> caps;
+        for (zypp::Capabilities::const_iterator it = self->begin(); it != self->end(); ++it) {
+            caps.push_back((*it).asString());
+        }
+        return caps;
+    }
+}
+#endif
index 34a2eeb..ca4147c 100644 (file)
@@ -1,3 +1,4 @@
+%template(SolvableType_PoolItem) zypp::sat::SolvableType<zypp::PoolItem>;
 %include <zypp/PoolItem.h>
 
 #ifdef SWIGPERL5
index 4f6c06c..80b2dd6 100644 (file)
@@ -1,6 +1,6 @@
 #ifdef SWIGPERL5
 #else
-%template(UrlSet) std::set<zypp::Url>;
+%template(UrlSet) std::list<zypp::Url>;
 #endif
 
 namespace zypp
@@ -31,7 +31,7 @@ namespace zypp
 typedef std::list<zypp::RepoInfo> RepoInfoList;
 %template(RepoInfoList) std::list<zypp::RepoInfo>;
 
-%extend zypp::RepoInfo 
+%extend zypp::RepoInfo
 {
        std::string dump(void) const
        {
index a150d32..4101be3 100644 (file)
@@ -1,10 +1,9 @@
 %include <zypp/RepoManager.h>
-
 #ifdef SWIGPYTHON
 %extend  zypp::RepoManager{
     std::string loadSolvFile(std::string _solv, std::string _alias)
     {
-        RepoInfo tmpRepo; 
+        RepoInfo tmpRepo;
         tmpRepo.setAlias(_alias);
         try {
             sat::Pool::instance().addRepoSolv(_solv, tmpRepo);
index b9f24e9..48634fa 100644 (file)
@@ -3,11 +3,9 @@
 %ignore zypp::ResPool::byKindEnd;
 %ignore zypp::ResPool::byNameBegin;
 %ignore zypp::ResPool::byNameEnd;
-#if (BOOST_VERSION >= 106501)
-%ignore zypp::ResPool::byStatus;  
-%ignore zypp::ResPool::byStatusBegin;  
-%ignore zypp::ResPool::byStatusEnd; 
-#endif
+%ignore zypp::ResPool::byStatus;
+%ignore zypp::ResPool::byStatusBegin;
+%ignore zypp::ResPool::byStatusEnd;
 %apply unsigned { zypp::ResPool::size_type };
 %include <zypp/ResPool.h>
 
@@ -22,6 +20,35 @@ namespace zypp
 namespace zypp
 {
 
+#ifdef SWIGPYTHON
+namespace sat
+{
+%extend  Pool {
+  std::string loadSolvFile(std::string _solv, std::string _alias)
+  {
+    RepoInfo tmpRepo;
+    tmpRepo.setAlias(_alias);
+
+    try {
+      addRepoSolv(_solv, tmpRepo);
+    } catch ( const Exception & e ) {
+      return e.msg();
+    }
+
+    return std::string();
+  }
+}
+}
+#endif
+
+%extend ResPool {
+  pool::GetResolvablesToInsDel getTransaction()
+  {
+    return pool::GetResolvablesToInsDel( *self );
+  }
+}
+
+
 #ifdef SWIGPERL5
 
 iter2(ResPool, PoolItem);
index 60613ec..cbcefad 100644 (file)
@@ -90,3 +90,4 @@ namespace zypp
 %STUFF(SrcPackage)
 %STUFF(Pattern)
 %STUFF(Product)
+%STUFF(Application)
index 7055b9f..ea4e33a 100644 (file)
@@ -1,4 +1,6 @@
 %ignore zypp::make;
 %import <zypp/sat/Solvable.h>
+%import <zypp/sat/SolvableType.h>
+%template(SolvableType_Resolvable) zypp::sat::SolvableType<zypp::Resolvable>;
 %include <zypp/Resolvable.h>
 
index d4245c7..d6842dd 100644 (file)
@@ -2,13 +2,30 @@
    %template(StringList) std::list<std::string>;
 #endif
 
+/* don't wrap legacy ItemCapKind stuff */
+%ignore zypp::Resolver::isInstalledBy( const PoolItem & item );
+%ignore zypp::Resolver::installs( const PoolItem & item );
+%ignore zypp::Resolver::satifiedByInstalled (const PoolItem & item );
+%ignore zypp::Resolver::installedSatisfied( const PoolItem & item );
+
 %include <zypp/ProblemTypes.h>
 %include <zypp/ResolverProblem.h>
 %include <zypp/ProblemSolution.h>
 %include <zypp/Resolver.h>
 
+/* ResPoool provides leagacy GetResolvablesToInsDel */
+%ignore zypp::Resolver::getTransaction();
+
+
+typedef std::list<zypp::ProblemSolution_Ptr> ProblemSolutionList;
+%template(ProblemSolutionList) std::list<zypp::ProblemSolution_Ptr>;
+
+typedef boost::intrusive_ptr< zypp::ProblemSolution > ProblemSolution_Ptr;
+%template(ProblemSolution_Ptr) boost::intrusive_ptr< zypp::ProblemSolution >;
+
 namespace zypp
 {
+
   typedef ::zypp::intrusive_ptr< Resolver > Resolver_Ptr;
   %template(Resolver_Ptr) ::zypp::intrusive_ptr<Resolver>;
 
@@ -25,3 +42,4 @@ namespace zypp
 #endif
 }
 
+
index 3ac0b5a..5617f7e 100644 (file)
@@ -1,9 +1,11 @@
-
+%include <zypp/ZYpp.h>
 %include <zypp/ZYppFactory.h>
 
-namespace zypp
-{
-typedef ::zypp::intrusive_ptr<ZYpp> ZYpp_Ptr;
-%template(ZYpp_Ptr) ::zypp::intrusive_ptr<ZYpp>;
-}
+typedef ::boost::detail::sp_member_access<::zypp::ZYpp> b_d_sp_member_access;
+%template(b_d_sp_member_access) boost::detail::sp_member_access<::zypp::ZYpp>;
+
+typedef ::boost::detail::sp_dereference<::zypp::ZYpp> b_d_sp_dereference;
+%template(b_d_sp_dereference) boost::detail::sp_dereference<::zypp::ZYpp>;
 
+typedef ::boost::shared_ptr<::zypp::ZYpp> ZYpp_Ptr;
+%template(ZYpp_Ptr) ::boost::shared_ptr<::zypp::ZYpp>;
index 3e2f508..eafca1b 100644 (file)
@@ -12,44 +12,43 @@ class Zypp::Arch
 end
 
 class ArchTest < Test::Unit::TestCase
-  include Zypp
   def test_arch
     # define i386, a builtin
     
-    a = Arch.new("i386")
+    a = Zypp::Arch.new("i386")
     assert a
     assert_equal "i386", a.to_s
     assert_equal true, a.is_builtin
     
     # i486 is 'bigger' than i386
     
-    b = Arch.new("i486")
+    b = Zypp::Arch.new("i486")
     assert b
     assert_equal "i486", b.to_s
     assert b.is_builtin
-    if VERSION > 800
+    if Zypp::VERSION > 800
       assert_equal a, b.base_arch
     end
     assert a < b
     assert a.compatible_with?(b)
 
     # A new, adventurous architecture
-    z = Arch.new("xyzzy")
+    z = Zypp::Arch.new("xyzzy")
     assert z
     assert_equal "xyzzy", z.to_s
     assert_equal false, z.is_builtin
     
     # predefined archs
-    assert_equal Arch.new("noarch"), Arch.noarch 
-    assert_equal a, Arch.i386
-    assert_equal b, Arch.i486
-    assert_equal Arch.new("i586"), Arch.i586
-    assert_equal Arch.new("i686"), Arch.i686
-    assert_equal Arch.new("x86_64"), Arch.x86_64
-    assert_equal Arch.new("ia64"), Arch.ia64
-    assert_equal Arch.new("ppc"), Arch.ppc
-    assert_equal Arch.new("ppc64"), Arch.ppc64
-    assert_equal Arch.new("s390"), Arch.s390
-    assert_equal Arch.new("s390x"), Arch.s390x
+    assert_equal Zypp::Arch.new("noarch"), Zypp::Arch.noarch 
+    assert_equal a, Zypp::Arch.i386
+    assert_equal b, Zypp::Arch.i486
+    assert_equal Zypp::Arch.new("i586"), Zypp::Arch.i586
+    assert_equal Zypp::Arch.new("i686"), Zypp::Arch.i686
+    assert_equal Zypp::Arch.new("x86_64"), Zypp::Arch.x86_64
+    assert_equal Zypp::Arch.new("ia64"), Zypp::Arch.ia64
+    assert_equal Zypp::Arch.new("ppc"), Zypp::Arch.ppc
+    assert_equal Zypp::Arch.new("ppc64"), Zypp::Arch.ppc64
+    assert_equal Zypp::Arch.new("s390"), Zypp::Arch.s390
+    assert_equal Zypp::Arch.new("s390x"), Zypp::Arch.s390x
   end
 end
index 5b46e14..bda6f0a 100644 (file)
@@ -10,16 +10,15 @@ require 'test/unit'
 
 class LoadTest < Test::Unit::TestCase
   require 'zypp'
-  include Zypp
 
   def test_bytecount
-    g = ByteCount.new(ByteCount.G)
+    g = Zypp::ByteCount.new(Zypp::ByteCount.G)
     assert g
-    gb = ByteCount.new(ByteCount.GB)
+    gb = Zypp::ByteCount.new(Zypp::ByteCount.GB)
     assert gb
-    k = ByteCount.new(ByteCount.K)
+    k = Zypp::ByteCount.new(Zypp::ByteCount.K)
     assert k.to_i == 1024
-    mb = ByteCount.new(ByteCount.MB)
+    mb = Zypp::ByteCount.new(Zypp::ByteCount.MB)
     assert mb.to_i == 1000*1000
   end
 end
index 7594c79..1b8e45b 100644 (file)
@@ -7,12 +7,11 @@ $:.unshift "../../../build/swig/ruby"
 
 # test loading of extension
 require 'test/unit'
+require 'zypp'
 
 class LoadTest < Test::Unit::TestCase
-  require 'zypp'
-  include Zypp
   def test_target
-    z = ZYppFactory::instance.getZYpp
+    z = Zypp::ZYppFactory::instance.getZYpp
 
     assert z.homePath
     assert z.tmpPath
@@ -35,17 +34,17 @@ class LoadTest < Test::Unit::TestCase
       break if i > 10
       # PoolItems have status and a resolvable
       r = pi.resolvable
-      assert pi.is_a? PoolItem
+      assert pi.is_a? Zypp::PoolItem
     end
     #try iterate with kind
     i = 0
-    p.each_by_kind(ResKind.package) do |pi|
+    p.each_by_kind(Zypp::ResKind.package) do |pi|
       
       i = i + 1
       break if i > 10
-      assert pi.is_a? PoolItem
+      assert pi.is_a? Zypp::PoolItem
       r = pi.resolvable
-      assert isKindPackage(pi)
+      assert Zypp::isKindPackage(pi)
     end
 
     i = 0
@@ -53,7 +52,7 @@ class LoadTest < Test::Unit::TestCase
     p.each_by_name("libzypp") do |pi|
       i = i + 1
       break if i > 10
-      assert pi.is_a? PoolItem
+      assert pi.is_a? Zypp::PoolItem
       r = pi.resolvable
       # broken in current SWIG assert_equal "libzypp",r.name
       #try to download it
index 1cf9a4d..cd9327e 100644 (file)
 
 // stuff swig seems to be unable to parse
 #define BOOST_NOEXCEPT
-#define BOOST_SP_NOEXCEPT  
-#define BOOST_SP_NOEXCEPT_WITH_ASSERT  
+#define BOOST_SP_NOEXCEPT
+#define BOOST_SP_NOEXCEPT_WITH_ASSERT
 #define BOOST_NO_CXX11_NOEXCEPT
 #define BOOST_NO_CXX11_RVALUE_REFERENCES
 #define BOOST_NO_CXX11_SMART_PTR
-#if (BOOST_VERSION >= 106501)
-#define BOOST_CONSTEXPR_OR_CONST const
 #define constexpr
 #define BOOST_CONSTEXPR constexpr
-#else
-#define BOOST_CONSTEXPR
-#define BOOST_CONSTEXPR_OR_CONST const
-#define constexpr
-#endif
+
 %{
 /* Includes the header in the wrapper code */
 #ifdef SWIGRUBY
@@ -216,10 +210,8 @@ namespace zypp {
 %include "std_string.i"
 %include "stl.i"
 
-#if (BOOST_VERSION >= 106501)
-%import <boost/config.hpp>  
-%import <boost/pointer_cast.hpp>  
-#endif
+%import <boost/config.hpp>
+%import <boost/pointer_cast.hpp>
 
 #ifdef BOOST_SMARTPTR_INCLUDE_DIR
 %import <boost/smart_ptr/scoped_ptr.hpp>
@@ -250,11 +242,11 @@ namespace zypp {
 %include "Capabilities.i"
 %include "CapMatch.i"
 %include "OnMediaLocation.i"
-%include "Resolvable.i"
+%include "SolvAttr.i"
 %include "RepoType.i"
-%include "TmpPath.i"
 %include "RepoInfo.i"
 %include "Repository.i"
+%include "Resolvable.i"
 %include "ServiceInfo.i"
 %include "ResTraits.i"
 %include "ResStatus.i"
@@ -276,10 +268,10 @@ namespace zypp {
 %include "ResPool.i"
 %include "ZYppCommitPolicy.i"
 %include "ZYppCommitResult.i"
+%include "TmpPath.i"
 %include "Resolver.i"
 %include "ZConfig.i"
 %include "PoolQuery.i"
-%include "SolvAttr.i"
 
 //just simple files, where we need default ctor
 %include <zypp/repo/RepoProvideFile.h>
@@ -294,8 +286,6 @@ namespace zypp {
 %ignore zypp::ZYpp::setArchitecture;
 %ignore zypp::ZYpp::applyLocks;
 
-%include <zypp/ZYpp.h>
-
 %include "ZYppFactory.i"
 #endif