[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