[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    playground/sysadmin/shaman
From:       Jonathan Michael Thomas <echidnaman () kubuntu ! org>
Date:       2010-04-06 0:45:20
Message-ID: 20100406004520.D7F38AC857 () svn ! kde ! org
[Download RAW message or body]

SVN commit 1111548 by jmthomas:

Add new Shaman backend based on the QApt library, a Qt wrapper/Apt implementation \
around the libapt-pkg library. (Available from trunk/playground/libs/) As discussed \
with David on IRC, this is most probably the future of an Apt-based Shaman backend, \
since libqapt does all of the interaction with the ugly libapt-pkg API, meaning the \
shaman backend will have a much cleaner codebase. The backend can already grab a lot \
of information about packages, as well as do database updates. It still cannot \
install/remove packages, however, so it is not yet a suitable replacement for the \
existing apt backend.

Once QApt/this Shaman backend can appropriately replace the current Apt backend, I \
will discuss what to do with the old Apt backend further with David. (But I'd never \
overwrite it without his say-so) :)

CCMAIL:drf@kde.org
CCMAIL:dpalacio@uninorte.edu.co


 A             cmake/modules/FindQApt.cmake  
 M  +36 -5     libshaman/BackendSelector.cmake  
 A             libshaman/backends/qapt (directory)  
 A             libshaman/backends/qapt/AptBackend.cpp   [License: GPL (v2+)]
 A             libshaman/backends/qapt/AptBackend.h   [License: GPL (v2+)]
 A             libshaman/backends/qapt/DebPackage.cpp   [License: GPL (v2+)]
 A             libshaman/backends/qapt/DebPackage.h   [License: GPL (v2+)]


--- trunk/playground/sysadmin/shaman/libshaman/BackendSelector.cmake #1111547:1111548
@@ -6,11 +6,14 @@
 ## 4.4: We leave polkit-0.9 having more priority over polkit-1. This will change \
from 4.5 on  if(NOT SHAMAN_BACKEND)
     macro_optional_find_package(Aqpm)
+    macro_optional_find_package(QApt)
     macro_optional_find_package(AptPkg)
     macro_optional_find_package(QPackageKit)
 
     if (AQPM_FOUND)
         set (SHAMAN_BACKEND "Aqpm")
+    elseif (QAPT_FOUND)
+        set (SHAMAN_BACKEND "QApt")
     elseif (APTPKG_FOUND)
         set (SHAMAN_BACKEND "Apt")
     elseif (QPACKAGEKIT_FOUND)
@@ -18,6 +21,8 @@
     else ()
         macro_log_feature(AQPM_FOUND "Aqpm" "QT wrapper library around alpm, Arch \
                Linux Package Management Library."
                           "http://chakra-project.org" FALSE "" "Provides a backend \
for Shaman.") +        macro_log_feature(QAPT_FOUND "QApt" "High-level Qt wrapper/Apt \
implementation around the Apt-pkg library" +                          \
                "http://kubuntu.org" FALSE "" "Provides a backend for Shaman.")
         macro_log_feature(APTPKG_FOUND "Apt-pkg" "Libraries for developing with \
                APT's libapt-pkg Debian package manipulation library"
                           "http://wiki.debian.org/Apt" FALSE "" "Provides a backend \
                for Shaman.")
         macro_log_feature(QPACKAGEKIT_FOUND "PackageKit" "An universal package \
management system." "http://www.packagekit.org" @@ -33,10 +38,10 @@
     string(TOUPPER ${SHAMAN_BACKEND} SHAMAN_BACKEND)
 
     # Check if the specified backend is valid. If it is not, we fall back to the \
                Fake one
-    if (NOT SHAMAN_BACKEND STREQUAL "AQPM" AND NOT SHAMAN_BACKEND STREQUAL "APT" AND \
NOT SHAMAN_BACKEND STREQUAL "QPACKAGEKIT" AND NOT SHAMAN_BACKEND STREQUAL \
"TESTSCRIPT" AND NOT SHAMAN_BACKEND STREQUAL "FAKE") +    if (NOT SHAMAN_BACKEND \
STREQUAL "AQPM" AND NOT SHAMAN_BACKEND STREQUAL "APT" AND NOT SHAMAN_BACKEND STREQUAL \
"QAPT" AND NOT SHAMAN_BACKEND STREQUAL "QPACKAGEKIT" AND NOT SHAMAN_BACKEND STREQUAL \
                "TESTSCRIPT" AND NOT SHAMAN_BACKEND STREQUAL "FAKE")
         message ("WARNING: The Shaman Backend ${SHAMAN_BACKEND} you specified does \
not exist. Falling back to Fake backend")  set (SHAMAN_BACKEND "Fake")
-    endif (NOT SHAMAN_BACKEND STREQUAL "AQPM" AND NOT SHAMAN_BACKEND STREQUAL "APT" \
AND NOT SHAMAN_BACKEND STREQUAL "QPACKAGEKIT" AND NOT SHAMAN_BACKEND STREQUAL \
"TESTSCRIPT" AND NOT SHAMAN_BACKEND STREQUAL "FAKE") +    endif (NOT SHAMAN_BACKEND \
STREQUAL "AQPM" AND NOT SHAMAN_BACKEND STREQUAL "APT" AND NOT SHAMAN_BACKEND STREQUAL \
"QAPT" AND NOT SHAMAN_BACKEND STREQUAL "QPACKAGEKIT" AND NOT SHAMAN_BACKEND STREQUAL \
"TESTSCRIPT" AND NOT SHAMAN_BACKEND STREQUAL "FAKE")  
     # Check requirements for each backend. If not, fall back to the fake one
     if (SHAMAN_BACKEND STREQUAL "AQPM")
@@ -47,6 +52,20 @@
                       Falling back to Fake backend")
             set (SHAMAN_BACKEND "FAKE")
         endif (NOT AQPM_FOUND)
+    elseif (SHAMAN_BACKEND STREQUAL "QAPT")
+        macro_optional_find_package(AptPkg)
+        macro_optional_find_package(QApt)
+
+        if (NOT APTPKG_FOUND)
+            message ("WARNING: You chose the QApt Shaman backend but you don't have \
Aptpkg installed. +                      Falling back to Fake backend")
+                    set (SHAMAN_BACKEND "FAKE")
+        endif (NOT APTPKG_FOUND)
+        if (NOT QAPT_FOUND)
+            message ("WARNING: You chose the QApt Shaman backend but you don't have \
QApt installed. +                      Falling back to Fake backend")
+                    set (SHAMAN_BACKEND "FAKE")
+        endif (NOT QAPT_FOUND)
     elseif (SHAMAN_BACKEND STREQUAL "APT")
         macro_optional_find_package(AptPkg)
 
@@ -96,22 +115,34 @@
         include_directories(${POLKITQT_INCLUDE_DIR})
         add_subdirectory(backends/aqpm)
     endif (POLKITQT_FOUND)
+elseif(SHAMAN_BACKEND STREQUAL "QAPT")
+    message(STATUS "Building Shaman QApt Backend")
+    macro_log_feature(APTPKG_FOUND "Apt-pkg" "Libraries for developing with APT's \
libapt-pkg Debian package manipulation library" "http://wiki.debian.org/Apt" FALSE "" \
"Provides a backend for Shaman.") +    macro_log_feature(QAPT_FOUND "QApt" \
"High-level Qt wrapper/Apt implementation around the Apt-pkg library" \
"http://kubuntu.org" FALSE "" "Provides a backend for Shaman.") +    \
set_source_files_properties( backends/qapt/AptBackend.cpp +                           \
PROPERTIES COMPILE_FLAGS -DQT_STATICPLUGIN ) +    \
include_directories(${APTPKG_INCLUDE_DIR}) +    set(BACKEND_SRCS
+        backends/qapt/AptBackend.cpp
+        backends/qapt/DebPackage.cpp
+    )
+    set(BACKEND_LIBS
+        ${APTPKG_LIBRARIES}
+        libqapt
+    )
 elseif(SHAMAN_BACKEND STREQUAL "APT")
     message(STATUS "Building Shaman Apt Backend")
     macro_log_feature(APTPKG_FOUND "Apt-pkg" "Libraries for developing with APT's \
libapt-pkg Debian package manipulation library" "http://wiki.debian.org/Apt" FALSE "" \
"Provides a backend for Shaman.")  set_source_files_properties( \
backends/apt/AptBackend.cpp  PROPERTIES COMPILE_FLAGS -DQT_STATICPLUGIN )
-    #find_package(KDE4Workspace REQUIRED)
     include_directories(${APTPKG_INCLUDE_DIR})
     set(BACKEND_SRCS
         backends/apt/AptBackend.cpp
         backends/apt/DebPackage.cpp
-        backends/apt/OperationProgress.cpp
     )
     set(BACKEND_LIBS
         ${APTPKG_LIBRARIES}
     )
-    add_subdirectory(backends/apt) #Helper
 elseif(SHAMAN_BACKEND STREQUAL "QPACKAGEKIT")
     message(STATUS "Building Shaman QPackageKit Backend")
     macro_log_feature(QPACKAGEKIT_FOUND "PackageKit" "A common package management \
system." "http://www.packagekit.org" FALSE "" "Provides a backend for Shaman.")


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic