Merge pull request #220 from dgikiller/master

Improving support for Gentoo based distros
This commit is contained in:
Teo Mrnjavac 2015-06-08 19:34:01 +02:00
commit b07fd97103
3 changed files with 34 additions and 5 deletions

View File

@ -8,10 +8,18 @@
# what FindBoost.cmake is looking for. It looks for a library named
# "libboost_${component}.so".
#
# find_boost_python3() tries to find the package with different component names.
# By default it tries "python3" and "python-py$suffix", where suffix is based on
# the `python_version` argument. One can supply a custom component name by
# setting the `CALAMARES_BOOST_PYTHON3_COMPONENT` variable at CMake time.
# On Gentoo instead, the >=dev-libs/boost-1.54 package provides boost library
# with a name like:
# libboost_python-2.7.so
# libboost_python-3.3.so
# libboost_python-3.4.so
# depending on what python's targets you selected during install
#
# find_boost_python3() tries to find the package with different component
# names. By default it tries "python3", "python-py$suffix" and
# "python-$dotsuffix", where suffix is based on the `python_version` argument.
# One can supply a custom component name by setting the
# `CALAMARES_BOOST_PYTHON3_COMPONENT` variable at CMake time.
set( CALAMARES_BOOST_PYTHON3_COMPONENT python3 CACHE STRING
"Name of the Boost.Python component. If Boost.Python is installed as
@ -32,4 +40,15 @@ macro( find_boost_python3 boost_version python_version found_var )
break()
endif()
endforeach()
# The following loop changes the searched name for Gentoo based distributions
# turns "3.4.123abc" into "3.4"
string( REGEX REPLACE "([0-9]+)\\.([0-9]+)\\..*" "\\1.\\2" _fbp_python_short_version ${python_version} )
foreach( _fbp_name ${CALAMARES_BOOST_PYTHON3_COMPONENT} python-${_fbp_python_short_version} )
find_package( Boost ${boost_version} QUIET COMPONENTS ${_fbp_name} )
string( TOUPPER ${_fbp_name} _fbp_uc_name )
if( Boost_${_fbp_uc_name}_FOUND )
set( ${found_var} ON )
break()
endif()
endforeach()
endmacro()

View File

@ -55,6 +55,10 @@ class PackageManager:
elif self.backend == "pacman":
pacman_flags = "-U" if from_local else "-Sy"
check_chroot_call(["pacman", pacman_flags, "--noconfirm"] + pkgs)
elif self.backend == "portage":
check_chroot_call(["emerge", "-v"] + pkgs)
elif self.backend == "entropy":
check_chroot_call(["equo", "i"] + pkgs)
def remove(self, pkgs):
""" Removes packages.
@ -78,6 +82,10 @@ class PackageManager:
check_chroot_call(["apt-get", "--purge", "-q", "-y", "autoremove"])
elif self.backend == "pacman":
check_chroot_call(["pacman", "-Rs", "--noconfirm"] + pkgs)
elif self.backend == "portage":
check_chroot_call(["emerge", "-C"] + pkgs)
elif self.backend == "entropy":
check_chroot_call(["equo", "rm"] + pkgs)
def run_operations(pkgman, entry):
@ -102,7 +110,7 @@ def run():
:return:
"""
backend = libcalamares.job.configuration.get("backend")
if backend not in ("packagekit", "zypp", "yum", "dnf", "urpmi", "apt", "pacman"):
if backend not in ("packagekit", "zypp", "yum", "dnf", "urpmi", "apt", "pacman", "portage", "entropy"):
return ("Bad backend", "backend=\"{}\"".format(backend))
pkgman = PackageManager(backend)

View File

@ -8,6 +8,8 @@
# - urpmi - Mandriva package manager
# - apt - APT frontend for DEB and RPM
# - pacman - Pacman
# - portage - Gentoo package manager
# - entropy - Sabayon package manager
#
backend: packagekit
#