move lot of stuff to ZYppCommon
authorDuncan Mac-Vicar P <dmacvicar@suse.de>
Tue, 5 Feb 2008 15:15:11 +0000 (15:15 +0000)
committerDuncan Mac-Vicar P <dmacvicar@suse.de>
Tue, 5 Feb 2008 15:15:11 +0000 (15:15 +0000)
CMakeLists.txt
cmake/modules/ZyppCommon.cmake [new file with mode: 0644]
zypp/RepoManager.cc
zypp/RepoManager.h

index 8de9080..7234d59 100644 (file)
@@ -1,36 +1,10 @@
 PROJECT(libzypp)
-
-# Library
-IF ( DEFINED LIB )
-  SET ( LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/${LIB}" )
-ELSE ( DEFINED  LIB )
-  IF (CMAKE_SIZEOF_VOID_P MATCHES "8")
-    SET( LIB_SUFFIX "64" )
-  ENDIF(CMAKE_SIZEOF_VOID_P MATCHES "8")
-  SET ( LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}" )
-ENDIF ( DEFINED  LIB )
-MESSAGE(STATUS "Libraries will be installed in ${LIB_INSTALL_DIR}" )
-
-# system configuration dir (etc)
-
-IF( NOT DEFINED SYSCONFDIR )
-  IF ( ${CMAKE_INSTALL_PREFIX} STREQUAL "/usr" )
-    # if installing in usr, set sysconfg to etc
-    SET( SYSCONFDIR /etc )
-  ELSE ( ${CMAKE_INSTALL_PREFIX} STREQUAL "/usr" )
-    SET ( SYSCONFDIR "${CMAKE_INSTALL_PREFIX}/etc" )
-  ENDIF ( ${CMAKE_INSTALL_PREFIX} STREQUAL "/usr" )
-ENDIF( NOT DEFINED SYSCONFDIR )
-MESSAGE(STATUS "Config files will be installed in ${SYSCONFDIR}" )
-
-####################################################################
-# CONFIGURATION                                                    #
-####################################################################
-
 # where to look first for cmake modules, before ${CMAKE_ROOT}/Modules/ is checked
 SET( CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules )
 
+INCLUDE(ZyppCommon)
 INCLUDE( ${CMAKE_SOURCE_DIR}/VERSION.cmake )
+
 MATH( EXPR LIBZYPP_CURRENT "${LIBZYPP_MAJOR} * 100 + ${LIBZYPP_MINOR}" )
 MATH( EXPR LIBZYPP_AGE     "${LIBZYPP_MINOR} - ${LIBZYPP_COMPATMINOR}" )
 # Libtool wanted current:patch:age
@@ -58,58 +32,10 @@ SET( CPACK_GENERATOR "TBZ2")
 SET( CPACK_SOURCE_GENERATOR "TBZ2")
 SET( CPACK_SOURCE_PACKAGE_FILE_NAME "${PACKAGE}-${VERSION}" )
 
-# The following components are regex's to match anywhere (unless anchored)
-# in absolute path + filename to find files or directories to be excluded
-# from source tarball.
-SET (CPACK_SOURCE_IGNORE_FILES
-#svn files
-"\\\\.svn/"
-"\\\\.cvsignore$"
-# temporary files
-"\\\\.swp$"
-# backup files
-"~$"
-# eclipse files
-"\\\\.cdtproject$"
-"\\\\.cproject$"
-"\\\\.project$"
-"\\\\.settings/"
-# others
-"\\\\.#"
-"/#"
-"/build/"
-"/_build/"
-"/\\\\.git/"
-# used before
-"/CVS/"
-"/\\\\.libs/"
-"/\\\\.deps/"
-"\\\\.o$"
-"\\\\.lo$"
-"\\\\.la$"
-"Makefile\\\\.in$"
-)
-
 INCLUDE(CPack)
 
 ####################################################################
 
-SET( DOC_INSTALL_DIR
-   "${CMAKE_INSTALL_PREFIX}/share/doc/packages/${PACKAGE}"
-   CACHE PATH "The install dir for documentation (default prefix/share/doc/packages/${PACKAGE})"
-   FORCE
-)
-
-####################################################################
-# INCLUDES                                                         #
-####################################################################
-
-#SET (CMAKE_INCLUDE_DIRECTORIES_BEFORE ON)
-INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} SYSTEM )
-
-####################################################################
-
-
 FIND_PACKAGE(Rpm REQUIRED)
 IF ( NOT RPM_FOUND)
   MESSAGE( FATAL_ERROR " rpm not found" )
@@ -158,14 +84,6 @@ ELSE(GLIB_FOUND)
   MESSAGE( FATAL_ERROR "glib not found" )
 ENDIF(GLIB_FOUND)
 
-#IF (DBUS_GLIB_FOUND)
-#  MESSAGE( STATUS "dbus-glib found" )
-#  INCLUDE_DIRECTORIES(${DBUS_GLIB_INCLUDE_DIR})
-#  LINK_DIRECTORIES(${DBUS_GLIB_LINK_DIR})
-#ELSE(DBUS_GLIB_FOUND)
-#  MESSAGE( ERROR "dbus-glib not found" )
-#ENDIF(DBUS_GLIB_FOUND)
-
 FIND_PACKAGE(Curl REQUIRED)
 IF ( NOT CURL_FOUND)
   MESSAGE( FATAL_ERROR " curl not found" )
@@ -219,12 +137,11 @@ ENDMACRO(SPECFILE)
 
 SPECFILE()
 
-MESSAGE(STATUS "Writing pkg-config file...")
-CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/libzypp.pc.cmake ${CMAKE_BINARY_DIR}/libzypp.pc @ONLY)
-INSTALL( FILES ${CMAKE_BINARY_DIR}/libzypp.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig )
+#PKGCONFIGFILE()
 
 MESSAGE(STATUS "FindZypp.cmake will be installed in ${CMAKE_INSTALL_PREFIX}/share/cmake/Modules")
 INSTALL( FILES ${CMAKE_SOURCE_DIR}/cmake/modules/FindZypp.cmake DESTINATION ${CMAKE_INSTALL_PREFIX}/share/cmake/Modules )
+INSTALL( FILES ${CMAKE_SOURCE_DIR}/cmake/modules/ZyppCommon.cmake DESTINATION ${CMAKE_INSTALL_PREFIX}/share/cmake/Modules )
 
 MESSAGE(STATUS "zypp.conf will be installed in ${SYSCONFDIR}/zypp")
 INSTALL( FILES ${CMAKE_SOURCE_DIR}/zypp.conf DESTINATION ${SYSCONFDIR}/zypp )
@@ -243,37 +160,3 @@ ADD_SUBDIRECTORY( po EXCLUDE_FROM_ALL )
 ADD_SUBDIRECTORY( doc EXCLUDE_FROM_ALL )
 ADD_SUBDIRECTORY( tests EXCLUDE_FROM_ALL )
 
-####################################################################
-# OTHERS                                                           #
-####################################################################
-
-#configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h )
-#yumschemadir=${zyppdir}/schema/yum
-#xmlstoreschemadir=${zyppdir}/schema/xmlstore
-
-####################################################################
-# INSTALL                                                          #
-####################################################################
-
-#INSTALL_FILES(  FILES  libzypp.pc )
-
-ADD_CUSTOM_TARGET( svncheck
-  COMMAND cd $(CMAKE_SOURCE_DIR) && ! LC_ALL=C svn status --show-updates --quiet | grep -v '^Status against revision'
-)
-
-SET( AUTOBUILD_COMMAND
-  COMMAND ${CMAKE_COMMAND} -E remove ${CMAKE_BINARY_DIR}/package/*.tar.bz2
-  COMMAND ${CMAKE_MAKE_PROGRAM} package_source
-  COMMAND ${CMAKE_COMMAND} -E copy ${CPACK_SOURCE_PACKAGE_FILE_NAME}.tar.bz2 ${CMAKE_BINARY_DIR}/package
-  COMMAND ${CMAKE_COMMAND} -E remove ${CPACK_SOURCE_PACKAGE_FILE_NAME}.tar.bz2
-  COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_SOURCE_DIR}/package/${PACKAGE}.changes" "${CMAKE_BINARY_DIR}/package/${PACKAGE}.changes"
-)
-
-ADD_CUSTOM_TARGET( srcpackage_local
-  ${AUTOBUILD_COMMAND}
-)
-
-ADD_CUSTOM_TARGET( srcpackage
-  COMMAND ${CMAKE_MAKE_PROGRAM} svncheck
-  ${AUTOBUILD_COMMAND}
-)
diff --git a/cmake/modules/ZyppCommon.cmake b/cmake/modules/ZyppCommon.cmake
new file mode 100644 (file)
index 0000000..652ee1c
--- /dev/null
@@ -0,0 +1,129 @@
+# Library
+IF ( DEFINED LIB )
+  SET ( LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/${LIB}" )
+ELSE ( DEFINED  LIB )
+  IF (CMAKE_SIZEOF_VOID_P MATCHES "8")
+    SET( LIB_SUFFIX "64" )
+  ENDIF(CMAKE_SIZEOF_VOID_P MATCHES "8")
+  SET ( LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}" )
+ENDIF ( DEFINED  LIB )
+MESSAGE(STATUS "Libraries will be installed in ${LIB_INSTALL_DIR}" )
+
+# system configuration dir (etc)
+IF( NOT DEFINED SYSCONFDIR )
+  IF ( ${CMAKE_INSTALL_PREFIX} STREQUAL "/usr" )
+    # if installing in usr, set sysconfg to etc
+    SET( SYSCONFDIR /etc )
+  ELSE ( ${CMAKE_INSTALL_PREFIX} STREQUAL "/usr" )
+    SET ( SYSCONFDIR "${CMAKE_INSTALL_PREFIX}/etc" )
+  ENDIF ( ${CMAKE_INSTALL_PREFIX} STREQUAL "/usr" )
+ENDIF( NOT DEFINED SYSCONFDIR )
+MESSAGE(STATUS "Config files will be installed in ${SYSCONFDIR}" )
+
+# usr INSTALL_PREFIX
+
+IF( DEFINED CMAKE_INSTALL_PREFIX )
+  SET( INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX} )
+ELSE( DEFINED CMAKE_INSTALL_PREFIX )
+  SET( INSTALL_PREFIX /usr )
+ENDIF( DEFINED CMAKE_INSTALL_PREFIX )
+
+# system configuration dir (etc)
+IF( NOT DEFINED MANDIR )
+  SET( MANDIR ${INSTALL_PREFIX}/share/man )
+ENDIF( NOT DEFINED MANDIR )
+MESSAGE( "** Manual files will be installed in ${MANDIR}" )
+
+####################################################################
+# CONFIGURATION                                                    #
+####################################################################
+
+# The following components are regex's to match anywhere (unless anchored)
+# in absolute path + filename to find files or directories to be excluded
+# from source tarball.
+SET (CPACK_SOURCE_IGNORE_FILES
+#svn files
+"\\\\.svn/"
+"\\\\.cvsignore$"
+# temporary files
+"\\\\.swp$"
+# backup files
+"~$"
+# eclipse files
+"\\\\.cdtproject$"
+"\\\\.cproject$"
+"\\\\.project$"
+"\\\\.settings/"
+# others
+"\\\\.#"
+"/#"
+"/build/"
+"/_build/"
+"/\\\\.git/"
+# used before
+"/CVS/"
+"/\\\\.libs/"
+"/\\\\.deps/"
+"\\\\.o$"
+"\\\\.lo$"
+"\\\\.la$"
+"Makefile\\\\.in$"
+)
+
+SET( DOC_INSTALL_DIR
+   "${CMAKE_INSTALL_PREFIX}/share/doc/packages/${PACKAGE}"
+   CACHE PATH "The install dir for documentation (default prefix/share/doc/packages/${PACKAGE})"
+   FORCE
+)
+
+####################################################################
+# INCLUDES                                                         #
+####################################################################
+
+#SET (CMAKE_INCLUDE_DIRECTORIES_BEFORE ON)
+INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} SYSTEM )
+
+
+####################################################################
+# RPM SPEC                                                         #
+####################################################################
+
+MACRO(SPECFILE)
+  MESSAGE(STATUS "Writing spec file...")
+  CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/${PACKAGE}.spec.cmake ${CMAKE_BINARY_DIR}/package/libzypp.spec @ONLY)
+  MESSAGE(STATUS "I hate you rpm-lint...!!!")
+  IF (EXISTS ${CMAKE_SOURCE_DIR}/package/${PACKAGE}-rpmlint.cmake)
+    CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/package/${PACKAGE}-rpmlint.cmake ${CMAKE_BINARY_DIR}/package/${PACKAGE}-rpmlintrc @ONLY)
+  ENDIF (EXISTS ${CMAKE_SOURCE_DIR}/package/${PACKAGE}-rpmlint.cmake)
+ENDMACRO(SPECFILE)
+
+MACRO(PKGCONFGFILE)
+  MESSAGE(STATUS "Writing pkg-config file...")
+  CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/libzypp.pc.cmake ${CMAKE_BINARY_DIR}/libzypp.pc @ONLY)
+  INSTALL( FILES ${CMAKE_BINARY_DIR}/libzypp.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig )
+ENDMACRO(PKGCONFGFILE)
+
+####################################################################
+# INSTALL                                                          #
+####################################################################
+
+ADD_CUSTOM_TARGET( svncheck
+  COMMAND cd $(CMAKE_SOURCE_DIR) && ! LC_ALL=C svn status --show-updates --quiet | grep -v '^Status against revision'
+)
+
+SET( AUTOBUILD_COMMAND
+  COMMAND ${CMAKE_COMMAND} -E remove ${CMAKE_BINARY_DIR}/package/*.tar.bz2
+  COMMAND ${CMAKE_MAKE_PROGRAM} package_source
+  COMMAND ${CMAKE_COMMAND} -E copy ${CPACK_SOURCE_PACKAGE_FILE_NAME}.tar.bz2 ${CMAKE_BINARY_DIR}/package
+  COMMAND ${CMAKE_COMMAND} -E remove ${CPACK_SOURCE_PACKAGE_FILE_NAME}.tar.bz2
+  COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_SOURCE_DIR}/package/${PACKAGE}.changes" "${CMAKE_BINARY_DIR}/package/${PACKAGE}.changes"
+)
+
+ADD_CUSTOM_TARGET( srcpackage_local
+  ${AUTOBUILD_COMMAND}
+)
+
+ADD_CUSTOM_TARGET( srcpackage
+  COMMAND ${CMAKE_MAKE_PROGRAM} svncheck
+  ${AUTOBUILD_COMMAND}
+)
index f584c75..a9f4dc1 100644 (file)
@@ -894,36 +894,20 @@ namespace zypp
 
   map<data::RecordId, Repo *> repo2solv;
 
-  Repository RepoManager::createFromCache( const RepoInfo &info,
-                                           const ProgressData::ReceiverFnc & progressrcv )
+  void RepoManager::loadFromCache( const std::string &alias,
+                                   const ProgressData::ReceiverFnc & progressrcv )
   {
-    callback::SendReport<ProgressReport> report;
-    ProgressData progress;
-    progress.sendTo(ProgressReportAdaptor( progressrcv, report ));
-    //progress.sendTo( progressrcv );
-    progress.name(str::form(_("Reading repository '%s' cache"), info.name().c_str()));
+    sat::Pool satpool( sat::Pool::instance() );
 
-    //_pimpl->options.repoCachePath
-    if ( ! isCached( info ) )
+    Pathname solvfile = (_pimpl->options.repoCachePath + alias).extend(".solv");
+    
+    if ( ! PathInfo(solvfile).isExist() )
       ZYPP_THROW(RepoNotCachedException());
-
-    MIL << "Repository " << info.alias() << " is cached" << endl;
-
-    CombinedProgressData subprogrcv(progress);
-
-    repo::cached::RepoOptions opts( info, _pimpl->options.repoCachePath );
-    opts.readingResolvablesProgress = subprogrcv;
-    //opts.repo = repo;
-    repo::cached::RepoImpl::Ptr repoimpl =
-         new repo::cached::RepoImpl( opts );
-
-    //repoimpl->createResolvables();
-    repoimpl->resolvables();
-    // read the resolvables from cache
-    //return Repository::noRepository;
-    return Repository(repoimpl);
+    
+    sat::Repo repo = satpool.addRepoSolv(solvfile, alias );
   }
-
+      
+  
   ////////////////////////////////////////////////////////////////////////////
 
   /**
index 2d492cf..61535a6 100644 (file)
@@ -252,8 +252,9 @@ namespace zypp
     */
     bool isCached( const RepoInfo &info ) const;
    
-   /**
-    * \short Create a repository object from the cache data
+    
+    /**
+    * \short Load resolvables into the pool
     *
     * Creating from cache requires that the repository is
     * refreshed (metadata downloaded) and cached
@@ -261,20 +262,8 @@ namespace zypp
     * \throws repo::RepoNoAliasException if can't figure an alias to look in cache
     * \throw RepoNotCachedException When the source is not cached.
     */
-   Repository createFromCache( const RepoInfo &info,
-                               const ProgressData::ReceiverFnc & progressrcv = ProgressData::ReceiverFnc() );
-
-   /**
-    * \short Create a repository object from raw metadata
-    *
-    * Creating from cache requires that the repository is
-    * refreshed (metadata downloaded)
-    *
-    * \throw Exception If there are errors parsing the
-    * raw metadata
-    */
-   Repository createFromMetadata( const RepoInfo &info,
-                                  const ProgressData::ReceiverFnc & progressrcv = ProgressData::ReceiverFnc() );
+   void loadFromCache( const std::string &alias,
+                       const ProgressData::ReceiverFnc & progressrcv = ProgressData::ReceiverFnc() );
 
    /**
     * \short Probe repo metadata type.