Browse Source

Copy hal from main tree archives

pull/2/head
Golubev Alexander 8 years ago
parent
commit
b3656f949a

+ 3
- 0
app-misc/hal-info/Manifest View File

@@ -0,0 +1,3 @@
DIST hal-info-20091130.tar.gz 144859 RMD160 3ff2caedf57e09f0c5c3203ff50570b35085b94d SHA1 d548a0d837d39a609c42a789c92578150c18b9f5 SHA256 3b5a90eaea4359977d36c808a19b3f08835345a258c68b9c6c080ad5ef875224
EBUILD hal-info-20091130.ebuild 667 RMD160 c0ae142e3f738cd0358e23786a9d6887161a226c SHA1 c28d1e7cc81c72c478e8dd0b646fdeaf53ff62b6 SHA256 c5099f13c4c6a201a9eed296e6fb14b99c81968c3a44e0c288460dd44943d706
MISC metadata.xml 258 RMD160 494bce98cc779b9a7d7e07db86bebb5f27478db8 SHA1 0bd7d94fb8ceea398218ca95a5765c98473f8e45 SHA256 a6a56922ae7d1e13c51774721cb3b98a8d45a15a102f879ff3e706bcfb73fe5d

+ 22
- 0
app-misc/hal-info/hal-info-20091130.ebuild View File

@@ -0,0 +1,22 @@
# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/app-misc/hal-info/Attic/hal-info-20091130.ebuild,v 1.4 2011/09/18 09:08:54 ssuominen dead $

DESCRIPTION="The fdi scripts that HAL uses"
HOMEPAGE="http://hal.freedesktop.org/"
SRC_URI="http://hal.freedesktop.org/releases/${P}.tar.gz"

LICENSE="GPL-2"
SLOT="0"
KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 sh sparc x86 ~x86-fbsd"
IUSE=""

RDEPEND=">=sys-apps/hal-0.5.10"
DEPEND="${RDEPEND}"

# This ebuild does not install any binaries
RESTRICT="binchecks strip"

src_install() {
emake DESTDIR="${D}" install || die
}

+ 9
- 0
app-misc/hal-info/metadata.xml View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<herd>no-herd</herd>
<maintainer>
<email>fatzer2@gmail.com</email>
<name>Golubev Alexander</name>
</maintainer>
</pkgmetadata>

+ 722
- 0
eclass/multilib-native.eclass View File

@@ -0,0 +1,722 @@
# Copyright 1999-2008 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
#
# @ECLASS: multilib-native.eclass
# @MAINTAINER:
# Steven Newbury <steve@snewbury.org.uk>
# @BLURB: Provide infrastructure for native multilib ebuilds

IUSE="${IUSE} lib32"

DEPEND="${DEPEND} sys-apps/abi-wrapper"
RDEPEND="${RDEPEND} sys-apps/abi-wrapper"

if use lib32; then
EMULTILIB_PKG="true"
fi

inherit base multilib

case "${EAPI:-0}" in
2|3)
EXPORT_FUNCTIONS pkg_setup src_unpack src_prepare src_configure src_compile src_install pkg_preinst pkg_postinst pkg_postrm
;;
*)
EXPORT_FUNCTIONS pkg_setup src_unpack src_compile src_install pkg_preinst pkg_postinst pkg_postrm
;;
esac

# -----------------------------------------------------------------------------

# @VARIABLE: EMULTILIB_SAVE_VARS
# @DESCRIPTION: Environment variables to save
# EMULTILIB_SAVE_VARS="${EMULTILIB_SAVE_VARS}
# AS CC CXX FC LD ASFLAGS CFLAGS CXXFLAGS FCFLAGS FFLAGS LDFLAGS
# CHOST CBUILD CDEFINE LIBDIR S CCACHE_DIR myconf PYTHON PERLBIN
# QMAKE QMAKESPEC QTBINDIR QTBASEDIR QTLIBDIR QTPCDIR
# QTPLUGINDIR CMAKE_BUILD_DIR mycmakeargs KDE_S POPPLER_MODULE_S
# ECONF_SOURCE MY_LIBDIR MOZLIBDIR SDKDIR G2CONF PKG_CONFIG_PATH
# DESTTREE SRC_PREP USE_64"
EMULTILIB_SAVE_VARS="${EMULTILIB_SAVE_VARS}
AS CC CXX FC LD ASFLAGS CFLAGS CXXFLAGS FCFLAGS FFLAGS LDFLAGS
CHOST CBUILD CDEFINE LIBDIR S CCACHE_DIR myconf PYTHON PERLBIN
QMAKE QMAKESPEC QTBINDIR QTBASEDIR QTLIBDIR QTPCDIR
QTPLUGINDIR CMAKE_BUILD_DIR mycmakeargs KDE_S POPPLER_MODULE_S
ECONF_SOURCE MY_LIBDIR MOZLIBDIR SDKDIR G2CONF PKG_CONFIG_PATH
DESTTREE SRC_PREP USE_64 osname mythreading myarch PRIV_LIB
SITE_LIB SITE_ARCH VENDOR_LIB VENDOR_ARCH ARCH_LIB MY_OPTS
ECONF_PARAMS MODULE_NAMES"

# @VARIABLE: EMULTILIB_SOURCE_DIRNAME
# @DESCRIPTION: Holds the name of the source directory
# EMULTILIB_SOURCE_DIRNAME=""
EMULTILIB_SOURCE_DIRNAME=""

# @VARIABLE: EMULTILIB_SOURCE
# @DESCRIPTION:
# PATH to the top-level source directory. This may be used in multilib-ised
# ebuilds choosing to make use of external build directories for installing
# files from the top of the source tree although for builds with external
# build directories it's sometimes more appropriate to use ${ECONF_SOURCE}.
# EMULTILIB_SOURCE=""
EMULTILIB_SOURCE=""

# @VARIABLE: EMULTILIB_RELATIVE_BUILD_DIR
# @DESCRIPTION:
# EMULTILIB_RELATIVE_BUILD_DIR=""
EMULTILIB_RELATIVE_BUILD_DIR=""

# @VARIABLE: CMAKE_BUILD_DIR
# @DESCRIPTION:
# Despite the name, this is used for all build systems within this eclass.
# Usually this is the same as ${S}, except when using an external build
# directory. (This is per ABI and so is saved/restored for each phase.)
# CMAKE_BUILD_DIR=""
CMAKE_BUILD_DIR=""

# @VARIABLE: EMULTILIB_INHERITED
# @DESCRIPTION:
# Holds a list of inherited eclasses
# is this var is onlky used in multilib-native_check_inherited_funcs
EMULTILIB_INHERITED=""

# -----------------------------------------------------------------------------

# @FUNCTION: multilib-native_pkg_setup
# @USAGE:
# @DESCRIPTION: This is a multilib wrapper for the pkg_setup phase
multilib-native_pkg_setup() {
multilib-native_src_generic pkg_setup
}

# @FUNCTION: multilib-native_src_unpack
# @USAGE:
# @DESCRIPTION: This is a multilib wrapper for the src_unpack phase
multilib-native_src_unpack() {
multilib-native_src_generic src_unpack
}

# @FUNCTION: multilib-native_src_prepare
# @USAGE:
# @DESCRIPTION: This is a multilib wrapper for the src_prepare phase
multilib-native_src_prepare() {
multilib-native_src_generic src_prepare
}

# @FUNCTION: multilib-native_src_configure
# @USAGE:
# @DESCRIPTION: This is a multilib wrapper for the src_configure phase
multilib-native_src_configure() {
multilib-native_src_generic src_configure
}

# @FUNCTION: multilib-native_src_compile
# @USAGE:
# @DESCRIPTION: This is a multilib wrapper for the src_compile phase
multilib-native_src_compile() {
multilib-native_src_generic src_compile
}

# @FUNCTION: multilib-native_src_install
# @USAGE:
# @DESCRIPTION: This is a multilib wrapper for the src_install phase
multilib-native_src_install() {
multilib-native_src_generic src_install
}

# @FUNCTION: multilib-native_pkg_preinst
# @USAGE:
# @DESCRIPTION: This is a multilib wrapper for the pkg_preinst phase
multilib-native_pkg_preinst() {
multilib-native_src_generic pkg_preinst
}

# @FUNCTION: multilib-native_pkg_postinst
# @USAGE:
# @DESCRIPTION: This is a multilib wrapper for the pkg_postinst phase
multilib-native_pkg_postinst() {
multilib-native_src_generic pkg_postinst
}

# @FUNCTION: multilib-native_pkg_postrm
# @USAGE:
# @DESCRIPTION: This is a multilib wrapper for the pkg_postrm phase
multilib-native_pkg_postrm() {
multilib-native_src_generic pkg_postrm
}

# @FUNCTION: multilib_debug
# @USAGE: <name_of_variable> <content_of_variable>
# @DESCRIPTION: print debug output if MULTILIB_DEBUG is set
multilib_debug() {
[[ -n ${MULTILIB_DEBUG} ]] && einfo "MULTILIB_DEBUG: ${1}=\"${2}\""
}

# -----------------------------------------------------------------------------

# Internal function
# @FUNCTION: multilib-native_src_generic
# @USAGE: <phase>
# @DESCRIPTION: Run each phase for each "install ABI"
multilib-native_src_generic() {
# Recurse this function for each ABI from get_install_abis()
if [[ -n ${EMULTILIB_PKG} ]] && [[ -z ${OABI} ]] ; then
local abilist=""
if has_multilib_profile ; then
abilist=$(get_install_abis)
einfo "${1/src_/} multilib ${PN} for ABIs: ${abilist}"
elif is_crosscompile || tc-is-cross-compiler ; then
abilist=${DEFAULT_ABI}
fi
if [[ -n ${abilist} ]] ; then
OABI=${ABI}
for ABI in ${abilist} ; do
export ABI
multilib-native_src_generic ${1}
done
ABI=${OABI}
unset OABI
return 0
fi
fi

# If this is the first time through, initialise the source path variables early
# and unconditionally, whether building for multilib or not. (This allows
# multilib-native ebuilds to always make use of them.) Then save the initial
# environment.
#
# Sometimes, packages assume a directory structure ABOVE "S". ("S" is set to a
# subdirectory of the tree they unpack into ${WORKDIR}.) We need to deal with
# this by finding the top-level of the source tree and keeping track of ${S}
# relative to it.

if [[ -z ${EMULTILIB_INITIALISED[$(multilib-native_abi_to_index_key "INIT")]} ]]; then
[[ -n ${MULTILIB_DEBUG} ]] && \
einfo "MULTILIB_DEBUG: Determining EMULTILIB_SOURCE from S and WORKDIR"
EMULTILIB_RELATIVE_BUILD_DIR="${S#*${WORKDIR}\/}"
[[ -n ${MULTILIB_DEBUG} ]] && \
einfo "MULTILIB_DEBUG: EMULTILIB_RELATIVE_BUILD_DIR=\"${EMULTILIB_RELATIVE_BUILD_DIR}\""
EMULTILIB_SOURCE_DIRNAME="${EMULTILIB_RELATIVE_BUILD_DIR%%/*}"
[[ -n ${MULTILIB_DEBUG} ]] && \
einfo "MULTILIB_DEBUG: EMULTILIB_SOURCE_DIRNAME=\"${EMULTILIB_SOURCE_DIRNAME}\""
EMULTILIB_SOURCE="${WORKDIR}/${EMULTILIB_SOURCE_DIRNAME}"
CMAKE_BUILD_DIR="${S}"
[[ -n ${MULTILIB_DEBUG} ]] && \
einfo "MULTILIB_DEBUG: EMULTILIB_SOURCE=\"${EMULTILIB_SOURCE}\""
multilib-native_save_abi_env "INIT"
EMULTILIB_INITIALISED[$(multilib-native_abi_to_index_key "INIT")]=1
fi

if [[ -n ${EMULTILIB_PKG} ]] && has_multilib_profile; then
multilib-native_src_generic_sub ${1}

# Save the environment for this ABI
multilib-native_save_abi_env "${ABI}"

# If this is the default ABI and we have a build tree, update the INIT
# environment
[[ "${ABI}" == "${DEFAULT_ABI}" ]] && \
[[ -d "${WORKDIR}/${PN}_build_${ABI}" ]] && \
multilib-native_save_abi_env "INIT"

# This assures the environment is correctly configured for non-multilib phases
# such as a src_unpack override in ebuilds.
multilib-native_restore_abi_env "INIT"
else
multilib-native_${1}_internal
fi
}

# Internal function
# @FUNCTION: multilib-native_src_generic_sub
# @USAGE: <phase>
# @DESCRIPTION: This function gets used for each ABI pass of each phase
multilib-native_src_generic_sub() {
# We support two kinds of build: By default we copy/move the source dir for
# each ABI. Where supported with the underlying package, we can just create an
# external build dir. This requires a modified ebuild which makes use of the
# EMULTILIB_SOURCE variable (which points the the top of the original
# source dir) to install doc files etc. This latter behaviour is enabled with
# MULTILIB_EXT_SOURCE_BUILD. For CMake based packages default is reversed and
# the CMAKE_IN_SOURCE_BUILD environment variable is used to specify the former
# behaviour.
#

if [[ -z ${EMULTILIB_INITIALISED[$(multilib-native_abi_to_index_key ${ABI})]} ]]; then
multilib-native_restore_abi_env "INIT"
multilib-native_setup_abi_env "${ABI}"
else
multilib-native_restore_abi_env "${ABI}"
fi

# If this is the unpack or prepare phase we only need to run for the
# DEFAULT_ABI when we are building out of the source tree since it is shared
# between each ABI.
#
# After the unpack phase, some eclasses change into the unpacked source tree
# (gnome2.eclass for example), we need to change back to the WORKDIR otherwise
# the next ABI tree will get unpacked into a subdir of previous tree.


case ${1/*_} in
setup)
;;
unpack)
[[ -d "${WORKDIR}" ]] && cd "${WORKDIR}"
if multilib-native_is_EBD && \
[[ ! "${ABI}" == "${DEFAULT_ABI}" ]]; then
einfo "Skipping ${1} for ${ABI}"
return
fi
;;
prepare)
if multilib-native_is_EBD; then
if [[ ! "${ABI}" == "${DEFAULT_ABI}" ]]; then
einfo "Skipping ${1} for ${ABI}"
return
fi
else
[[ ! -d "${WORKDIR}/${PN}_build_${ABI}" ]] && multilib-native_setup_build_directory
fi
if [[ -d "${S}" ]]; then
einfo "Working in ${S}"
cd "${S}"
else
ewarn "Not changing to non-existant source directory"
fi
;;
configure|compile|install)
[[ ! -d "${WORKDIR}/${PN}_build_${ABI}" ]] && multilib-native_setup_build_directory
[[ -d "${S}" ]] && cd "${S}"
;;
*)
[[ -d "${S}" ]] && cd "${S}"
;;
esac


# FIXME: There is a failure case when there is no source directory
# at ${EMULTILIB_SOURCE}, creating a directory there is the *wrong*
# thing to do, certianly not unconditionally!
# mkdir -p "${EMULTILIB_SOURCE}"

# Call the "real" phase function
multilib-native_${1}_internal

# If we've just unpacked the source, move it into place.
if [[ ! "${1/unpack}" == "${1}" ]] && \
( [[ -d "${EMULTILIB_SOURCE}" ]] && \
[[ ! -d "${WORKDIR}/${PN}_build_${ABI}" ]] ) && ! (multilib-native_is_EBD); then
einfo "Moving source tree from ${EMULTILIB_SOURCE} to ${WORKDIR}/${PN}_build_${ABI}"
mv "${EMULTILIB_SOURCE}" "${WORKDIR}/${PN}_build_${ABI}"
S="${CMAKE_BUILD_DIR}"
[[ -n ${KDE_S} ]] && KDE_S="${S}"
[[ -n ${POPPLER_MODULE_S} ]] && \
POPPLER_MODULE_S=${S}/${POPPLER_MODULE}
fi
}

multilib-native_setup_build_directory() {
if multilib-native_is_EBD; then
einfo "Preparing external build directory for ABI: ${ABI} ..."
einfo "Creating build directory: ${WORKDIR}/${PN}_build_${ABI}"
mkdir -p "${CMAKE_BUILD_DIR}"
ECONF_SOURCE="${S}"
else
if [[ -d ${EMULTILIB_SOURCE} ]]; then
if ! is_final_abi; then
einfo "Copying source tree from ${EMULTILIB_SOURCE} to ${WORKDIR}/${PN}_build_${ABI}"
cp -al "${EMULTILIB_SOURCE}" "${WORKDIR}/${PN}_build_${ABI}"
else
einfo "Moving source tree from ${EMULTILIB_SOURCE} to ${WORKDIR}/${PN}_build_${ABI}"
mv "${EMULTILIB_SOURCE}" "${WORKDIR}/${PN}_build_${ABI}"
fi
fi
fi
if ([[ -n "${CMAKE_BUILD_TYPE}" ]] && \
[[ -n "${CMAKE_IN_SOURCE_BUILD}" ]]) || \
[[ -z "${CMAKE_BUILD_TYPE}" ]]; then
S="${CMAKE_BUILD_DIR}"
fi

}

# Internal function
# @FUNCTION: multilib-native_is_EBD
# @USAGE:
# @DESCRIPTION: Returns true if we're building with an "External Build Directory"
multilib-native_is_EBD() {
! ( [[ -n "${CMAKE_IN_SOURCE_BUILD}" ]] || \
( [[ -z "${CMAKE_BUILD_TYPE}" ]] && \
[[ -z "${MULTILIB_EXT_SOURCE_BUILD}" ]] ) )
}

# Internal function
# @FUNCTION: multilib-native_setup_abi_env
# @USAGE: <ABI>
# @DESCRIPTION: Setup initial environment for ABI, flags, workarounds etc.
multilib-native_setup_abi_env() {
local pyver="" libsuffix=""
[[ -z $(multilib-native_abi_to_index_key ${1}) ]] && \
die "Unknown ABI (${1})"

# Set the CHOST native first so that we pick up the native #202811.
export CHOST=$(get_abi_CHOST ${DEFAULT_ABI})
export AS="$(tc-getAS)"
export CC="$(tc-getCC)"
export CXX="$(tc-getCXX)"
export FC="$(tc-getFC)"
export LD="$(tc-getLD) $(get_abi_LDFLAGS)"
export ASFLAGS="${ASFLAGS} $(get_abi_ASFLAGS)"
export CFLAGS="${CFLAGS} $(get_abi_CFLAGS)"
export CXXFLAGS="${CXXFLAGS} $(get_abi_CFLAGS)"
export FCFLAGS="${FCFLAGS} ${CFLAGS}"
export FFLAGS="${FFLAGS} ${CFLAGS}"
export CHOST=$(get_abi_CHOST $1)
export CBUILD=$(get_abi_CHOST $1)
export CDEFINE="${CDEFINE} $(get_abi_CDEFINE $1)"
export LDFLAGS="${LDFLAGS}"

if [[ -z PKG_CONFIG_PATH ]]; then
export PKG_CONFIG_PATH="/usr/$(get_libdir)/pkgconfig"
else
PKG_CONFIG_PATH="${PKG_CONFIG_PATH/lib*\//$(get_libdir)/}:/usr/$(get_libdir)/pkgconfig"
fi

# if ! [[ "${ABI}" == "${DEFAULT_ABI}" ]]; then
# built_with_use dev-lang/perl lib32 && [[ "$(readlink /usr/bin/perl)" == "/usr/bin/abi-wrapper" ]] || eerror multilib-native.eclass: please rebuild dev-lang/perl to avoid problems
# pyver=$(python --version 2>&1)
# pyver=${pyver/Python /python}
# pyver=${pyver%.*}
# built_with_use dev-lang/python lib32 && [[ "$(readlink /usr/bin/${pyver})" == "/usr/bin/abi-wrapper" ]] || eerror multilib-native.eclass: please rebuild dev-lang/python to avoid problems
# fi

# ccache is ABI dependent
if [[ -z ${CCACHE_DIR} ]] ; then
CCACHE_DIR="/var/tmp/ccache-${1}"
else
CCACHE_DIR="${CCACHE_DIR}-${1}"
fi

CMAKE_BUILD_DIR="${WORKDIR}/${PN}_build_${ABI}/${EMULTILIB_RELATIVE_BUILD_DIR/${EMULTILIB_SOURCE_DIRNAME}}"

# Strip any trailing slash (fixes build failure with python.eclass)
CMAKE_BUILD_DIR="${CMAKE_BUILD_DIR%/}"

EMULTILIB_INITIALISED[$(multilib-native_abi_to_index_key ${1})]=1
}

# Internal function
# @FUNCTION: multilib-native_abi_to_index_key
# @USAGE: <ABI>
# @RETURN: <index key>
# @DESCRIPTION: Return an array index key for a given ABI
multilib-native_abi_to_index_key() {
# Until we can count on bash version > 4, we can't use associative arrays.
local index=0 element=""
if [[ -z "${EMULTILIB_ARRAY_INDEX}" ]]; then
local abilist=""
abilist=$(get_install_abis)
EMULTILIB_ARRAY_INDEX=(INIT ${abilist})
fi
for element in ${EMULTILIB_ARRAY_INDEX[@]}; do
[[ "${element}" == "${1}" ]] && echo "${index}"
let index++
done
}

# Internal function
# @FUNCTION: multilib-native_save_abi_env
# @USAGE: <ABI>
# @DESCRIPTION: Save environment for ABI
multilib-native_save_abi_env() {
[[ -n ${MULTILIB_DEBUG} ]] && \
einfo "MULTILIB_DEBUG: Saving Environment:" "${1}"
local _var _array
for _var in ${EMULTILIB_SAVE_VARS}; do
_array="EMULTILIB_${_var}"
declare -p ${_var} &>/dev/null || continue
multilib_debug ${_array}[$(multilib-native_abi_to_index_key ${1})] "${!_var}"
eval "${_array}[$(multilib-native_abi_to_index_key ${1})]"=\"${!_var}\"
done
}

# Internal function
# @FUNCTION: multilib-native_restore_abi_env
# @USAGE: <ABI>
# @DESCRIPTION: Restore environment for ABI
multilib-native_restore_abi_env() {
[[ -n ${MULTILIB_DEBUG} ]] && \
einfo "MULTILIB_DEBUG: Restoring Environment:" "${1}"
local _var _array
for _var in ${EMULTILIB_SAVE_VARS}; do
_array="EMULTILIB_${_var}[$(multilib-native_abi_to_index_key ${1})]"
if ! (declare -p EMULTILIB_${_var} &>/dev/null) || \
[[ -z ${!_array} ]]; then
if (declare -p ${_var} &>/dev/null); then
[[ -n ${MULTILIB_DEBUG} ]] && \
einfo "MULTILIB_DEBUG: unsetting ${_var}"
unset ${_var}
fi
continue
fi
multilib_debug "${_var}" "${!_array}"
export ${_var}="${!_array}"
done
}

# Internal function
# @FUNCTION multilib-native_check_inherited_funcs
# @USAGE: <phase>
# @DESCRIPTION: Checks all inherited eclasses for requested phase function
multilib-native_check_inherited_funcs() {
# Check all eclasses for given function, in order of inheritance.
# If none provides it, the var stays empty. If more have it, the last one wins.
# Ignore the ones we inherit ourselves, base doesn't matter, as we default on
# it.
local declared_func=""
if [[ -f "${T}"/eclass-debug.log ]]; then
EMULTILIB_INHERITED="$(grep EXPORT_FUNCTIONS "${T}"/eclass-debug.log | grep ${1} | cut -d ' ' -f 4 | cut -d '_' -f 1)"
else
if [[ "$1" != pkg_postrm ]]; then
ewarn "You are using a package manager that does not provide "${T}"/eclass-debug.log."
ewarn "Join #gentoo-multilib-overlay on freenode to help finding another way for you."
ewarn "Falling back to old behaviour ..."
fi
EMULTILIB_INHERITED="${INHERITED}"
fi

EMULTILIB_INHERITED="${EMULTILIB_INHERITED//base/}"
EMULTILIB_INHERITED="${EMULTILIB_INHERITED//multilib-native/}"
if [[ "${EMULTILIB_PYTHON_NOT_EXPORTED}" != "${EMULTILIB_PYTHON_NOT_EXPORTED//${1}}/" ]]; then
multilib_debug EMULTILIB_PYTHON_NOT_EXPORTED "${EMULTILIB_PYTHON_NOT_EXPORTED}"
EMULTILIB_INHERITED="${EMULTILIB_INHERITED//python/}"
fi

multilib_debug EMULTILIB_INHERITED "${EMULTILIB_INHERITED}"

for func in ${EMULTILIB_INHERITED}; do
if [[ -n $(declare -f ${func}_${1}) ]]; then
multilib_debug declared_func "${declared_func}"
declared_func="${func}_${1}"
fi
done

if [[ "$declared_func" == "distutils_src_unpack" ]]; then
if ! has "${EAPI:-0}" 0 1; then
unset declared_func
fi
fi
# Now if $declared_func is still empty, none of the inherited eclasses provides
# it, so default on base.eclass. Do nothing for "phase != src_*".
if [[ -z "${declared_func}" ]]; then
if [[ "${1/_*}" != "src" ]]; then
declared_func="return"
else
declared_func="base_${1}"
fi
fi

if [[ -z ${SRC_URI} && ( "${declared_func}" == "base_src_prepare" || "${declared_func}" == "base_src_install" ) ]]; then
# those functions do not work if we do not have sources
declared_func="return"
fi

einfo "Using ${declared_func} for ABI ${ABI} ..."
${declared_func}
}

# @FUNCTION: multilib-native_src_prepare_internal
# @USAGE:
# @DESCRIPTION: Override this function if you want a custom src_configure.
multilib-native_src_prepare_internal() {
multilib-native_check_inherited_funcs src_prepare
}

# @FUNCTION: multilib-native_src_configure_internal
# @USAGE:
# @DESCRIPTION: Override this function if you want a custom src_configure.
multilib-native_src_configure_internal() {
multilib-native_check_inherited_funcs src_configure
}

# @FUNCTION: multilib-native_src_compile_internal
# @USAGE:
# @DESCRIPTION: Override this function if you want a custom src_compile.
multilib-native_src_compile_internal() {
multilib-native_check_inherited_funcs src_compile
}

# @FUNCTION: multilib-native_src_install_internal
# @USAGE:
# @DESCRIPTION: Override this function if you want a custom src_install
multilib-native_src_install_internal() {
multilib-native_check_inherited_funcs src_install
}

# @FUNCTION: multilib-native_pkg_setup_internal
# @USAGE:
# @DESCRIPTION: Override this function if you want a custom pkg_setup
multilib-native_pkg_setup_internal() {
multilib-native_check_inherited_funcs pkg_setup
}

# @FUNCTION: multilib-native_src_unpack_internal
# @USAGE:
# @DESCRIPTION: Override this function if you want a custom src_unpack
multilib-native_src_unpack_internal() {
multilib-native_check_inherited_funcs src_unpack
}


# @FUNCTION: multilib-native_pkg_preinst_internal
# @USAGE:
# @DESCRIPTION: Override this function if you want a custom pkg_preinst
multilib-native_pkg_preinst_internal() {
multilib-native_check_inherited_funcs pkg_preinst
}


# @FUNCTION: multilib-native_pkg_postinst_internal
# @USAGE:
# @DESCRIPTION: Override this function if you want a custom pkg_postinst
multilib-native_pkg_postinst_internal() {
multilib-native_check_inherited_funcs pkg_postinst
}


# @FUNCTION: multilib-native_pkg_postrm_internal
# @USAGE:
# @DESCRIPTION: Override this function if you want a custom pkg_postrm
multilib-native_pkg_postrm_internal() {
multilib-native_check_inherited_funcs pkg_postrm
}

# @FUNCTION: is_crosscompile
# @USAGE:
# @DESCRIPTION:
# True if we are cross-compiling.
# This is identical to the version in
# toolchain.eclass, but inheriting that eclass from here breaks many packages
# so just define locally.
is_crosscompile() {
[[ ${CHOST} != ${CTARGET} ]]
}

# @FUNCTION: _check_build_dir
# @USAGE:
# @DESCRIPTION:
# This function overrides the function of the same name
# in cmake-utils.eclass. We handle the build dir ourselves.
# Determine using IN or OUT source build
_check_build_dir() {
# @ECLASS-VARIABLE: CMAKE_USE_DIR
# @DESCRIPTION:
# Sets the directory where we are working with cmake.
# For example when application uses autotools and only one
# plugin needs to be done by cmake. By default it uses ${S}.
: ${CMAKE_USE_DIR:=${S}}

# in/out source build
echo ">>> Working in BUILD_DIR: \"$CMAKE_BUILD_DIR\""
}

# @FUNCTION prep_ml_binaries
# @USAGE:
# @DESCRIPTION: Use wrapper to support non-default binaries
prep_ml_binaries() {
if [[ -n $EMULTILIB_PKG ]] ; then
for binary in "$@"; do
if [[ -a ${D}/${binary} ]]; then
mv ${D}/${binary} ${D}/${binary}-${ABI} || \
die "${D}/${binary} not found!"
einfo "mv ${D}/${binary} ${D}/${binary}-${ABI}"
if is_final_abi; then
ln -s /usr/bin/abi-wrapper ${D}/${binary} || \
die "could link abi-wrapper to ${D}/${binary}!"
einfo "ln -s /usr/bin/abi-wrapper ${D}/${binary}"
fi
else
ewarn "${D}/${binary} does not exist, please inform the people in #gentoo-multilib-overlay on freenode"
fi
done
fi
}

# @FUNCTION: prep_ml_includes
# @DESCRIPTION:
# Some includes (include/asm, glibc, etc) are ABI dependent. In this case,
# We can install them in different locations for each ABI and create a common
# header which includes the right one based on CDEFINE_${ABI}. If your
# package installs ABI-specific headers, just add 'prep_ml_includes' to the
# end of your src_install(). It takes a list of directories that include
# files are installed in (default is /usr/include if none are passed).
#
# Example:
# src_install() {
# ...
# prep_ml_includes /usr/qt/3/include
# }
prep_ml_includes() {
if [[ $(number_abis) -gt 1 ]] ; then
local dir
local dirs
local base

if [[ $# -eq 0 ]] ; then
dirs=/usr/include
else
dirs="$@"
fi

for dir in ${dirs} ; do
base=${T}/gentoo-multilib/${dir}/gentoo-multilib
mkdir -p "${base}"
[[ -d ${base}/${ABI} ]] && rm -rf "${base}/${ABI}"
mv "${D}/${dir}" "${base}/${ABI}"
done

if is_final_abi; then
base=${T}/gentoo-multilib

local files_differ=
local install_abis=$(get_install_abis)
local alternate_abis=${install_abis% *}
for dir in ${dirs}; do
pushd "${base}${dir}/gentoo-multilib/${ABI}"
for i in $(find . -type f); do
for diffabi in ${alternate_abis}; do
diff -q "${i}" ../${diffabi}/"${i}" >/dev/null || files_differ=1
done
if [ -z "${files_differ}" ]; then
[ -d "${D}${dir}/${i%/*}" ] || mkdir -p "${D}${dir}/${i%/*}"
mv ${base}${dir}/gentoo-multilib/${ABI}/"${i}" "${D}${dir}/${i}"
einfo rm -rf ${base}${dir}/gentoo-multilib/*/"${i}"
rm -rf ${base}${dir}/gentoo-multilib/*/"${i}"
fi
files_differ=
done
popd
done


pushd "${base}"
find . | tar -c -T - -f - | tar -x --no-same-owner -f - -C "${D}"
popd

# This 'set' stuff is required by mips profiles to properly pass
# CDEFINE's (which have spaces) to sub-functions
set --
for dir in ${dirs} ; do
set -- "$@" "${dir}"
local abi
for abi in $(get_install_abis); do
set -- "$@" "$(get_abi_CDEFINE ${abi}):${dir}/gentoo-multilib/${abi}"
done
create_ml_includes "$@"
done
fi
fi
}

+ 46
- 0
licenses/AFL-2.0 View File

@@ -0,0 +1,46 @@
The Academic Free License
v. 2.0

This Academic Free License (the "License") applies to any original work of authorship (the "Original Work") whose owner (the "Licensor") has placed the following notice immediately following the copyright notice for the Original Work:
Licensed under the Academic Free License version 2.0

1) Grant of Copyright License. Licensor hereby grants You a world-wide, royalty-free, non-exclusive, perpetual, sublicenseable license to do the following:
a) to reproduce the Original Work in copies;

b) to prepare derivative works ("Derivative Works") based upon the Original Work;

c) to distribute copies of the Original Work and Derivative Works to the public;

d) to perform the Original Work publicly; and

e) to display the Original Work publicly.

2) Grant of Patent License. Licensor hereby grants You a world-wide, royalty-free, non-exclusive, perpetual, sublicenseable license, under patent claims owned or controlled by the Licensor that are embodied in the Original Work as furnished by the Licensor, to make, use, sell and offer for sale the Original Work and Derivative Works.

3) Grant of Source Code License. The term "Source Code" means the preferred form of the Original Work for making modifications to it and all available documentation describing how to modify the Original Work. Licensor hereby agrees to provide a machine-readable copy of the Source Code of the Original Work along with each copy of the Original Work that Licensor distributes. Licensor reserves the right to satisfy this obligation by placing a machine-readable copy of the Source Code in an information repository reasonably calculated to permit inexpensive and convenient access by You for as long as Licensor continues to distribute the Original Work, and by publishing the address of that information repository in a notice immediately following the copyright notice that applies to the Original Work.

4) Exclusions From License Grant. Neither the names of Licensor, nor the names of any contributors to the Original Work, nor any of their trademarks or service marks, may be used to endorse or promote products derived from this Original Work without express prior written permission of the Licensor. Nothing in this License shall be deemed to grant any rights to trademarks, copyrights, patents, trade secrets or any other intellectual property of Licensor except as expressly stated herein. No patent license is granted to make, use, sell or offer to sell embodiments of any patent claims other than the licensed claims defined in Section 2. No right is granted to the trademarks of Licensor even if such marks are included in the Original Work. Nothing in this License shall be interpreted to prohibit Licensor from licensing under different terms from this License any Original Work that Licensor otherwise would have a right to license.

5) This section intentionally omitted.

6) Attribution Rights. You must retain, in the Source Code of any Derivative Works that You create, all copyright, patent or trademark notices from the Source Code of the Original Work, as well as any notices of licensing and any descriptive text identified therein as an "Attribution Notice." You must cause the Source Code for any Derivative Works that You create to carry a prominent Attribution Notice reasonably calculated to inform recipients that You have modified the Original Work.

7) Warranty of Provenance and Disclaimer of Warranty. Licensor warrants that the copyright in and to the Original Work and the patent rights granted herein by Licensor are owned by the Licensor or are sublicensed to You under the terms of this License with the permission of the contributor(s) of those copyrights and patent rights. Except as expressly stated in the immediately proceeding sentence, the Original Work is provided under this License on an "AS IS" BASIS and WITHOUT WARRANTY, either express or implied, including, without limitation, the warranties of NON-INFRINGEMENT, MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY OF THE ORIGINAL WORK IS WITH YOU. This DISCLAIMER OF WARRANTY constitutes an essential part of this License. No license to Original Work is granted hereunder except under this disclaimer.

8) Limitation of Liability. Under no circumstances and under no legal theory, whether in tort (including negligence), contract, or otherwise, shall the Licensor be liable to any person for any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or the use of the Original Work including, without limitation, damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses. This limitation of liability shall not apply to liability for death or personal injury resulting from Licensor's negligence to the extent applicable law prohibits such limitation. Some jurisdictions do not allow the exclusion or limitation of incidental or consequential damages, so this exclusion and limitation may not apply to You.

9) Acceptance and Termination. If You distribute copies of the Original Work or a Derivative Work, You must make a reasonable effort under the circumstances to obtain the express assent of recipients to the terms of this License. Nothing else but this License (or another written agreement between Licensor and You) grants You permission to create Derivative Works based upon the Original Work or to exercise any of the rights granted in Section 1 herein, and any attempt to do so except under the terms of this License (or another written agreement between Licensor and You) is expressly prohibited by U.S. copyright law, the equivalent laws of other countries, and by international treaty. Therefore, by exercising any of the rights granted to You in Section 1 herein, You indicate Your acceptance of this License and all of its terms and conditions.

10) Termination for Patent Action. This License shall terminate automatically and You may no longer exercise any of the rights granted to You by this License as of the date You commence an action, including a cross-claim or counterclaim, for patent infringement (i) against Licensor with respect to a patent applicable to software or (ii) against any entity with respect to a patent applicable to the Original Work (but excluding combinations of the Original Work with other software or hardware).

11) Jurisdiction, Venue and Governing Law. Any action or suit relating to this License may be brought only in the courts of a jurisdiction wherein the Licensor resides or in which Licensor conducts its primary business, and under the laws of that jurisdiction excluding its conflict-of-law provisions. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any use of the Original Work outside the scope of this License or after its termination shall be subject to the requirements and penalties of the U.S. Copyright Act, 17 U.S.C. ¤ 101 et seq., the equivalent laws of other countries, and international treaty. This section shall survive the termination of this License.

12) Attorneys Fees. In any action to enforce the terms of this License or seeking damages relating thereto, the prevailing party shall be entitled to recover its costs and expenses, including, without limitation, reasonable attorneys' fees and costs incurred in connection with such action, including any appeal of such action. This section shall survive the termination of this License.

13) Miscellaneous. This License represents the complete agreement concerning the subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable.

14) Definition of "You" in This License. "You" throughout this License, whether in upper or lower case, means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License. For legal entities, "You" includes any entity that controls, is controlled by, or is under common control with you. For purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.

15) Right to Use. You may use the Original Work in all ways not otherwise restricted or conditioned by this License or by law, and Licensor promises not to interfere with or be responsible for such uses by You.

This license is Copyright (C) 2003 Lawrence E. Rosen. All rights reserved. Permission is hereby granted to copy and distribute this license without modification. This license may not be modified without the express written permission of its copyright owner.

+ 2
- 0
profiles/package.unmask View File

@@ -0,0 +1,2 @@
sys-apps/hal
sys-apps/policycoreutils

+ 3
- 0
profiles/use.local.desc View File

@@ -0,0 +1,3 @@
sys-apps/hal:dell - FIXME <unknown>
sys-apps/hal:disk-partition - FIXME <unknown>
sys-apps/hal:laptop - FIXME <unknown>

+ 15
- 0
sys-apps/hal/Manifest View File

@@ -0,0 +1,15 @@
AUX 0.5.14-hald.conf 119 RMD160 06e205ba7fa8acfb6f68e84a247845a3ad028351 SHA1 c8a62a808c7f632154dda1686fe344a4a136e28f SHA256 b19e6df9c78b6f813405a7cbff20e049714db1a000e6b71ab2eca02d372d58af
AUX 0.5.14-hald.rc 1174 RMD160 e9371f69f6594cf53de234e443a204c2b2127d31 SHA1 35ff148aec2d457cdeaed7e2032a414315a7236b SHA256 0ba01941ed8b7946524fb7ba4253c3ae57c6bdf9ddb4eaa01bd9bd89d1d4ef21
AUX 0.5.14-hald.rc.1 1114 RMD160 24c508a1a8df09252a21b178addba8a18a17ba1e SHA1 6bcca0ce11b50529b71cb2ff3af4ad877c3f144c SHA256 ab68ed700d2c3044da6ec2cc88f315c33518d4df503c52eda1ded3354b751cca
AUX 96_plugdev_allow_send.patch 1781 RMD160 08f0cbb8960d4753d15d02c8694fae09a6ef2a02 SHA1 ad04ac23936ac8f1915b2d25cbc366d6db24cdc9 SHA256 090d666c8df223fc0ea30f473fa3d52412ef22aff85c1eebf609a3f00dbd652a
AUX hal-0.5.10-sabayonlinux-ntfs-3g.default.patch 829 RMD160 9ffc2ce8b8b9cfbf2e74c83a1e867ed0b725fcea SHA1 7074e6eb57a8578a5a87a1e4dcb43c15224f76f1 SHA256 5815f4e661e12c4bc1e5fa70e89dedca3627fb01a97f3ae85e1eb2713c92607b
AUX hal-0.5.12-fix-ntfs-mount.patch 832 RMD160 9b08749e3e8ad1ec0c2567023a9e141c96d12086 SHA1 1350edf3bc5b8a596b5bbd8609661dcb3552149f SHA256 6711e2f7ef0fdfc972c3ade5f0368710abd3effc93e3476a005bdd9110c7a78f
AUX hal-0.5.12-ntfs3g-support.patch 522 RMD160 fc9efb40266564dd94672deec9c369ba4fa68b13 SHA1 dd5b55cd2f1abae5e20ec51b81ae92107c486be7 SHA256 3130824022c21db8f99b3857bbba55f6cf3c83d02796c8283495d9339ce39270
AUX hal-0.5.14-r2-fbsd.patch 4380 RMD160 9a3483cf3a7eee5f43b582b9ca531da7487221f9 SHA1 67d41b9b74d89ab7645ac3750780895a70856e50 SHA256 8299068a7d0276e2e08785a56e3285d4232435a427c3059cc9f88ebe87e97ee2
AUX hal-alignment.patch 763 RMD160 768b316422b996e72625bd3796d10c805af195ad SHA1 21b4b3fe19605451c9b4bcf09b9ca416fdfb7468 SHA256 b8e4100e33d4b6fcf973be683c9710a514c7d6461a8ac34b8aad8c1ecccc3398
AUX hal-unmount.dev 397 RMD160 78286dd9527bbb421082e73b0d08e06cd514d275 SHA1 31169a28448fb1eb1dfee5d1699de9a02449a6b7 SHA256 747a4c483f8a558f2c75666e9547e539475f112363f1dbfc6ea19ca393c8e89b
DIST hal-0.5.14-gentoo-patches-5.tar.bz2 6494 RMD160 810e68c430b9207ddc6d7531a728cc3f49eea7b4 SHA1 0b5159d6cbd91c9357f1c5b59074fd48870d6156 SHA256 5919bf1e3e5ff8b3682b8163e8b9cd86269263f9d023783d0c13dc759b36849c
DIST hal-0.5.14.tar.bz2 942954 RMD160 0314dace9512bf49a62bd1556963fc60a6c9caf9 SHA1 a6ec098d78112e18e2773afa5f9ed642b00c4c59 SHA256 c4c5ecc5d50d5d9c061dc06c405461b1f71c12f2c60ed062350b2e6db2f1c51e
EBUILD hal-0.5.14-r4.ebuild 9193 RMD160 101915a3c6d19b7585611dbdaf59dc37e3f24b76 SHA1 40c7a2810ff5ee0dc4f2fe27141d526930ab03d6 SHA256 5df49923173fb794efaa95b09b459073f10ade3a01bad04da78d8992fbb3aba0
MISC Reasons 500 RMD160 6ea57edaf5dbe5900cf6675ae861b28bb781d015 SHA1 150fe52386cdf5af4bda7dc7ed2959aab5ef8219 SHA256 795ed9671e7df093b8fd74a53590151947b0d15bf6f6505774dfcf8498f9ac9f
MISC metadata.xml 1878 RMD160 98e726fd64a322810863b345c6d22ecb91469f5b SHA1 c9eb711263006e04dedf814ecd6b55aa1d0a379b SHA256 e5e149e2957c585f91247bdbb1341549a561c4d519c070a07648a39bb45d99ee

+ 16
- 0
sys-apps/hal/Reasons View File

@@ -0,0 +1,16 @@
sys-apps/hal

Ebuild originally added Dec 7, 2006
Added by Fabio Erculiani <lxnay@sabayonlinux.org>

Ebuild added to fix/add the following issues:
Enable plugdev support
NTFS-3G support
Fix HAL mount when extra options specified
Fix Gentoo bug #299483

======
02.08.08 - Wael Nasreddine <wael.nasreddine@sabayonlinux.org>
- depend on >=app-misc/hal-info-20080310 instead of
=app-misc/hal-info-20080310 because gentoo has marked
app-misc/hal-info-20080508 stable.

+ 6
- 0
sys-apps/hal/files/0.5.14-hald.conf View File

@@ -0,0 +1,6 @@
# /etc/conf.d/hald

# Should HAL be verbose to syslog? Useful for debugging
HALD_VERBOSE="no"

# vim: ft=gentoo-conf-d

+ 41
- 0
sys-apps/hal/files/0.5.14-hald.rc View File

@@ -0,0 +1,41 @@
#!/sbin/runscript
# Copyright 1999-2010 Gentoo Foundation
# Distributed under the terms of the GNU General Public License, v2 or later
# $Header: /var/cvsroot/gentoo-x86/sys-apps/hal/files/0.5.14-hald.rc,v 1.1 2010/01/20 13:42:14 dang Exp $

depend() {
use logger acpid
need dbus
after coldplug dns nscd
}

start() {
[ -z "${HALD_VERBOSE}" ] && HALD_VERBOSE="no"
ebegin "Starting Hardware Abstraction Layer daemon"

# REAL_ROOT=`mount -fv / | cut -d' ' -f1`
# TEST_ROOT=`cat /proc/mounts | cut -d' ' -f1 | head -n 2 | tail -n 1`

# if [ ! -e ${TEST_ROOT} ]; then
# echo "You need a ${TEST_ROOT} that points to your ${REAL_ROOT}"
# echo "See http://bugs.gentoo.org/show_bug.cgi?id=175243"
# echo "Quick fix is: ln -s ${REAL_ROOT} ${TEST_ROOT}"
# eend 2
# fi

if [ -f /proc/acpi/event ]; then
chgrp haldaemon /proc/acpi/event
chmod 440 /proc/acpi/event
fi

[ ${#PATH} -gt 512 ] && export PATH=/usr/libexec:${PATH} #267928

start-stop-daemon --start -q --exec /usr/sbin/hald -- --use-syslog --verbose=${HALD_VERBOSE}
eend $?
}

stop() {
ebegin "Stopping Hardware Abstraction Layer daemon"
start-stop-daemon --stop -q --pidfile /var/run/hald.pid
eend $?
}

+ 39
- 0
sys-apps/hal/files/0.5.14-hald.rc.1 View File

@@ -0,0 +1,39 @@
#!/sbin/runscript
# Copyright 1999-2010 Gentoo Foundation
# Distributed under the terms of the GNU General Public License, v2 or later
# $Header: /var/cvsroot/gentoo-x86/sys-apps/hal/files/0.5.14-hald.rc.1,v 1.1 2010/09/28 06:20:47 ssuominen Exp $

depend() {
use logger acpid
need dbus
after coldplug dns nscd
}

start() {
[ -z "${HALD_VERBOSE}" ] && HALD_VERBOSE="no"
ebegin "Starting Hardware Abstraction Layer daemon"

# REAL_ROOT=`mount -fv / | cut -d' ' -f1`
# TEST_ROOT=`cat /proc/mounts | cut -d' ' -f1 | head -n 2 | tail -n 1`

# if [ ! -e ${TEST_ROOT} ]; then
# echo "You need a ${TEST_ROOT} that points to your ${REAL_ROOT}"
# echo "See http://bugs.gentoo.org/show_bug.cgi?id=175243"
# echo "Quick fix is: ln -s ${REAL_ROOT} ${TEST_ROOT}"
# eend 2
# fi

if [ -f /proc/acpi/event ]; then
chgrp haldaemon /proc/acpi/event
chmod 440 /proc/acpi/event
fi

start-stop-daemon --start -q --exec /usr/sbin/hald -- --use-syslog --verbose=${HALD_VERBOSE}
eend $?
}

stop() {
ebegin "Stopping Hardware Abstraction Layer daemon"
start-stop-daemon --stop -q --pidfile /var/run/hald.pid
eend $?
}

+ 42
- 0
sys-apps/hal/files/96_plugdev_allow_send.patch View File

@@ -0,0 +1,42 @@
Index: b/hal.conf
===================================================================
--- a/hal.conf 2007-04-03 00:41:24.000000000 -0400
+++ b/hal.conf 2007-04-06 20:36:53.000000000 -0400
@@ -63,5 +63,16 @@
<allow send_interface="org.freedesktop.Hal.Device.Volume.Crypto"/>
</policy>
+ <!-- Gentoo specific rules to allow 'plugdev' group to access Volumes and Power Management -->
+ <!-- We possibly will use 'powerdev' for Power Management or work on encapsulating everything in ConsoleKit -->
+ <policy group="plugdev">
+ <allow send_interface="org.freedesktop.Hal.Device.SystemPowerManagement"/>
+ <allow send_interface="org.freedesktop.Hal.Device.LaptopPanel"/>
+ </policy>
+ <policy group="plugdev">
+ <allow send_interface="org.freedesktop.Hal.Device.Volume"/>
+ <allow send_interface="org.freedesktop.Hal.Device.Volume.Crypto"/>
+ </policy>
+
</busconfig>
Index: b/hal.conf.in
===================================================================
--- a/hal.conf.in 2007-03-07 16:52:19.000000000 -0500
+++ b/hal.conf.in 2007-04-06 20:37:59.000000000 -0400
@@ -63,5 +63,16 @@
<allow send_interface="org.freedesktop.Hal.Device.Volume.Crypto"/>
</policy>
+ <!-- Gentoo specific rules to allow 'plugdev' group to access Volumes and Power Management -->
+ <!-- We possibly will use 'powerdev' for Power Management or work on encapsulating everything in ConsoleKit -->
+ <policy group="plugdev">
+ <allow send_interface="org.freedesktop.Hal.Device.SystemPowerManagement"/>
+ <allow send_interface="org.freedesktop.Hal.Device.LaptopPanel"/>
+ </policy>
+ <policy group="plugdev">
+ <allow send_interface="org.freedesktop.Hal.Device.Volume"/>
+ <allow send_interface="org.freedesktop.Hal.Device.Volume.Crypto"/>
+ </policy>
+
</busconfig>

+ 21
- 0
sys-apps/hal/files/hal-0.5.10-sabayonlinux-ntfs-3g.default.patch View File

@@ -0,0 +1,21 @@
diff -Nurp hal-0.5.8.1.orig/tools/hal-storage-mount.c hal-0.5.8.1/tools/hal-storage-mount.c
--- hal-0.5.8.1.orig/tools/hal-storage-mount.c
+++ hal-0.5.8.1/tools/hal-storage-mount.c
@@ -813,6 +813,17 @@ handle_mount (LibHalContext *hal_ctx,
} else if (libhal_volume_get_fstype (volume) != NULL && strlen (libhal_volume_get_fstype (volume)) > 0) {
mount_do_fstype = (char *) map_fstype (libhal_volume_get_fstype (volume));
}
+
+ /* Dirty hack while we're waiting for a better KDE support for filesystems' selection */
+ /* we are going to force NTFS-FUSE instead of NTFS */
+ if (strcmp (mount_do_fstype, "ntfs") == 0) {
+ int rc = system("which ntfs-3g");
+ if ( rc == 1 )
+ mount_do_fstype = "ntfs-fuse";
+ else
+ mount_do_fstype = "ntfs-3g";
+ }
+
args[na++] = MOUNT_TYPE_OPT;
args[na++] = mount_do_fstype;

+ 11
- 0
sys-apps/hal/files/hal-0.5.12-fix-ntfs-mount.patch View File

@@ -0,0 +1,11 @@
diff -Nurp hal-0.5.12rc1.orig/fdi/policy/10osvendor/20-storage-methods.fdi hal-0.5.12rc1/fdi/policy/10osvendor/20-storage-methods.fdi
--- hal-0.5.12rc1.orig/fdi/policy/10osvendor/20-storage-methods.fdi 2009-04-03 18:18:18.000000000 +0200
+++ hal-0.5.12rc1/fdi/policy/10osvendor/20-storage-methods.fdi 2009-04-03 18:19:49.000000000 +0200
@@ -224,6 +224,7 @@
<append key="volume.mount.valid_options" type="strlist">gid=</append>
<append key="volume.mount.valid_options" type="strlist">umask=</append>
<append key="volume.mount.valid_options" type="strlist">utf8</append>
+ <append key="volume.mount.valid_options" type="strlist">locale=</append>
</match>
<match key="/org/freedesktop/Hal/devices/computer:system.kernel.name" string="FreeBSD">
<append key="volume.mount.valid_options" type="strlist">-u=</append>

+ 18
- 0
sys-apps/hal/files/hal-0.5.12-ntfs3g-support.patch View File

@@ -0,0 +1,18 @@
--- hal-0.5.12rc1.orig/tools/hal-storage-mount.c 2009-03-16 20:23:53.744118591 +0100
+++ hal-0.5.12rc1/tools/hal-storage-mount.c 2009-03-16 20:31:37.546232405 +0100
@@ -695,6 +695,15 @@ handle_mount (LibHalContext *hal_ctx,
mount_do_fstype = "auto";
}
+ /* Try to use NTFS-3G when possible */
+ if (strcmp (mount_do_fstype, "ntfs") == 0) {
+ int rc = system("which ntfs-3g &> /dev/null");
+ if ( rc == 0 )
+ mount_do_fstype = "ntfs-3g";
+ }
+
+
+
/* check the mount options */
dbus_error_init (&error);

+ 121
- 0
sys-apps/hal/files/hal-0.5.14-r2-fbsd.patch View File

@@ -0,0 +1,121 @@
commit a3ea9ecc75a414e35ae763a92a2c3fa05a7ca0b3
Author: Joe Marcus Clarke <marcus@FreeBSD.org>
Date: Fri Dec 25 11:21:23 2009 -0500

Fix (or workaround) quite a few bugs with newusb interaction
* Allow the newusb module to compile with the recent input changes from
kFreeBSD.
* Make sure usb2 devices attach properly to the device tree with the correct
parent.
* Properly detect when newusb devices are added and removed.

diff --git a/hald/freebsd/hf-usb2.c b/hald/freebsd/hf-usb2.c
index fff49e0..f1a02e2 100644
--- a/hald/freebsd/hf-usb2.c
+++ b/hald/freebsd/hf-usb2.c
@@ -98,10 +98,10 @@ hf_usb2_probe_interfaces(HalDevice *parent)
if (driver)
{
if (! strcmp(driver, "ukbd"))
- hf_device_set_input(device, "keyboard", NULL);
- else if (! strcmp(driver, "ums"))
+ hf_device_set_input(device, "keyboard", "keys", devname);
+ else if (! strcmp(driver, "ums") || ! strcmp(driver, "atp"))
{
- hf_device_set_input(device, "mouse", devname);
+ hf_device_set_input(device, "mouse", NULL, devname);
hf_runner_run_sync(device, 0, "hald-probe-mouse", NULL);
}
else if (! strcmp(driver, "uhid"))
@@ -192,11 +192,12 @@ hf_usb2_probe (void)
addr = libusb20_dev_get_address(pdev);
if (addr == 1)
- parent = hf_devtree_find_parent_from_info(hald_get_gdl(), "usbus", bus);
+ parent = hf_devtree_find_from_info(hald_get_gdl(), "usbus", bus);
else
parent = hf_device_store_match(hald_get_gdl(), "usb_device.bus_number",
HAL_PROPERTY_TYPE_INT32, bus, "usb_device.port_number",
- HAL_PROPERTY_TYPE_INT32, addr - 1, NULL);
+ HAL_PROPERTY_TYPE_INT32, addr - 1, "info.bus",
+ HAL_PROPERTY_TYPE_STRING, "usb_device", NULL);
if (! parent || hal_device_property_get_bool(parent, "info.ignore"))
continue;
@@ -216,7 +217,13 @@ hf_usb2_devd_add (const char *name,
HalDevice *parent_device;
int bus, addr, pbus, paddr;
- if (strncmp(name, "ugen", strlen("ugen")))
+ if (! parent)
+ return FALSE;
+
+ if (strncmp(name, "ugen", strlen("ugen")) &&
+ ! strncmp(parent, "uhub", strlen("uhub")))
+ return TRUE;
+ else if (strncmp(name, "ugen", strlen("ugen")))
return FALSE;
else if (strncmp(parent, "ugen", strlen("ugen")))
return TRUE;
@@ -232,7 +239,8 @@ hf_usb2_devd_add (const char *name,
parent_device = hf_device_store_match(hald_get_gdl(),
"usb_device.bus_number", HAL_PROPERTY_TYPE_INT32, pbus,
- "usb_device.port_number", HAL_PROPERTY_TYPE_INT32, paddr, NULL);
+ "usb_device.port_number", HAL_PROPERTY_TYPE_INT32, paddr, "info.bus",
+ HAL_PROPERTY_TYPE_STRING, "usb_device", NULL);
if (parent_device && ! hal_device_property_get_bool(parent_device,
"info.ignore"))
@@ -255,8 +263,6 @@ hf_usb2_devd_remove (const char *name,
if (strncmp(name, "ugen", strlen("ugen")))
return FALSE;
- else if (strncmp(parent, "ugen", strlen("ugen")))
- return TRUE;
if (sscanf(name, "ugen%i.%i", &bus, &addr) != 2)
return FALSE;
@@ -265,7 +271,8 @@ hf_usb2_devd_remove (const char *name,
device = hf_device_store_match(hald_get_gdl(), "usb_device.bus_number",
HAL_PROPERTY_TYPE_INT32, bus, "usb_device.port_number",
- HAL_PROPERTY_TYPE_INT32, addr, NULL);
+ HAL_PROPERTY_TYPE_INT32, addr, "info.bus",
+ HAL_PROPERTY_TYPE_STRING, "usb_device", NULL);
if (device)
{
@@ -276,6 +283,23 @@ hf_usb2_devd_remove (const char *name,
return FALSE;
}
+static gboolean
+hf_usb2_devd_notify (const char *system,
+ const char *subsystem,
+ const char *type,
+ const char *data)
+{
+ if (! data || strcmp(system, "DEVFS") || strcmp(subsystem, "CDEV") ||
+ (strcmp(type, "CREATE") && strcmp(type, "DESTROY")))
+ return FALSE;
+
+ if (! strncmp(data, "cdev=ugen", strlen("cdev=ugen")) ||
+ ! strncmp(data, "cdev=usb", strlen("cdev=usb")))
+ return TRUE;
+
+ return FALSE;
+}
+
HFHandler hf_usb2_handler = {
.privileged_init = hf_usb2_privileged_init,
.probe = hf_usb2_probe
@@ -283,5 +307,6 @@ HFHandler hf_usb2_handler = {
HFDevdHandler hf_usb2_devd_handler = {
.add = hf_usb2_devd_add,
- .remove = hf_usb2_devd_remove
+ .remove = hf_usb2_devd_remove,
+ .notify = hf_usb2_devd_notify
};

+ 22
- 0
sys-apps/hal/files/hal-alignment.patch View File

@@ -0,0 +1,22 @@
--- hal-0.5.8.1/hald-runner/main.c.orig 2006-10-09 16:28:45.000000000 -0400
+++ hal-0.5.8.1/hald-runner/main.c 2006-10-09 16:28:39.000000000 -0400
@@ -111,7 +111,7 @@
DBusMessage *reply;
DBusMessageIter iter;
run_request *r;
- GPid pid;
+ GPid pid __attribute__ ((aligned));
r = new_run_request();
g_assert(dbus_message_iter_init(msg, &iter));
--- hal-0.5.8.1/partutil/partutil.c.orig 2006-10-09 17:04:31.000000000 -0400
+++ hal-0.5.8.1/partutil/partutil.c 2006-10-09 17:05:01.000000000 -0400
@@ -491,7 +491,7 @@
part_table_parse_msdos (int fd, guint64 offset, guint64 size, gboolean *found_gpt)
{
int n;
- const guint8 mbr[512];
+ const guint8 mbr[512] __attribute__ ((aligned));
PartitionTable *p;
//HAL_INFO (("Entering MS-DOS parser"));

+ 17
- 0
sys-apps/hal/files/hal-unmount.dev View File

@@ -0,0 +1,17 @@
#!/bin/sh

# sanity check. DEVNAME should start with a /
[ "$DEVNAME" != "${DEVNAME#/}" ] || exit 0

# Lazily unmount drives which are removed, but still mounted
if [ "$ACTION" = remove ] \
&& (grep -q "^$DEVNAME" /proc/mounts || grep -q "^$DEVNAME" /etc/mtab); then
if [ -x /usr/bin/pumount ] ; then
/usr/bin/pumount -l "$DEVNAME";
else
/bin/umount -l "$DEVNAME";
fi
fi

exit 0


+ 296
- 0
sys-apps/hal/hal-0.5.14-r4.ebuild View File

@@ -0,0 +1,296 @@
# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sys-apps/hal/Attic/hal-0.5.14-r4.ebuild,v 1.9 2011/09/18 09:08:28 ssuominen dead $

EAPI="2"

inherit eutils linux-info autotools flag-o-matic multilib

PATCH_VERSION="5"

MY_P=${P/_/}
S=${WORKDIR}/${MY_P}
PATCHNAME="${MY_P}-gentoo-patches-${PATCH_VERSION}"
DESCRIPTION="Hardware Abstraction Layer"
HOMEPAGE="http://www.freedesktop.org/wiki/Software/hal"
SRC_URI="http://hal.freedesktop.org/releases/${MY_P}.tar.bz2
http://dev.gentoo.org/~ssuominen/${PATCHNAME}.tar.bz2"

LICENSE="|| ( GPL-2 AFL-2.0 )"
SLOT="0"
KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 sh sparc x86 ~x86-fbsd"

KERNEL_IUSE="kernel_linux kernel_FreeBSD"
IUSE="X acpi apm crypt debug dell disk-partition doc laptop selinux ${KERNEL_IUSE}"

RDEPEND=">=dev-libs/dbus-glib-0.61
>=dev-libs/glib-2.14
>=dev-libs/expat-1.95.8
=virtual/libusb-0*
>=sys-apps/pciutils-2.2.7-r1
sys-apps/usbutils
virtual/eject
amd64? ( >=sys-apps/dmidecode-2.7 )
dell? ( >=sys-libs/libsmbios-0.13.4 )
disk-partition? ( >=sys-block/parted-1.8.0 )
ia64? ( >=sys-apps/dmidecode-2.7 )
kernel_linux? (
>=sys-fs/udev-125
>=sys-apps/util-linux-2.16
>=sys-kernel/linux-headers-2.6.22
crypt? ( >=sys-fs/cryptsetup-1.0.5 )
)
kernel_FreeBSD? ( >=dev-libs/libvolume_id-0.77 )
x86? ( >=sys-apps/dmidecode-2.7 )
selinux? ( sys-libs/libselinux )"
DEPEND="${RDEPEND}
dev-util/pkgconfig
>=dev-util/gperf-3.0.3
>=dev-util/intltool-0.35
doc? (
app-text/xmlto
dev-libs/libxml2
dev-util/gtk-doc
app-text/docbook-sgml-utils
app-text/docbook-xml-dtd:4.1.2
)"
PDEPEND=">=app-misc/hal-info-20081219
!gnome-extra/hal-device-manager
laptop? ( >=sys-power/pm-utils-0.99.3 )"

## HAL Daemon drops privledges so we need group access to read disks
HALDAEMON_GROUPS_LINUX="haldaemon,plugdev,disk,cdrom,cdrw,floppy,usb"
HALDAEMON_GROUPS_FREEBSD="haldaemon,plugdev,operator"

function check_hotplug_net() {
local CONFIG_CHECK="~HOTPLUG ~NET"
local WARNING_HOTPLUG="CONFIG_HOTPLUG:\tis not set (required for HAL)\n"
local WARNING_NET="CONFIG_NET:\tis not set (required for HAL)\n"
check_extra_config
}

function check_inotify() {
local CONFIG_CHECK="~INOTIFY_USER"
local WARNING_INOTIFY_USER="CONFIG_INOTIFY_USER:\tis not set (required for HAL)\n"
check_extra_config
}

function check_acpi_proc() {
local CONFIG_CHECK="~ACPI_PROCFS ~ACPI_PROC_EVENT"
local WARNING_ACPI_PROCFS="CONFIG_ACPI_PROCFS:\tis not set (required for HAL)\n"
local WARNING_ACPI_PROC_EVENT="CONFIG_ACPI_PROC_EVENT:\tis not set (required for HAL)\n"
check_extra_config
}

pkg_setup() {
if use kernel_linux ; then
if [[ -e "${ROOT}/usr/src/linux/.config" ]] ; then
kernel_is ge 2 6 19 || ewarn "HAL requires a kernel version 2.6.19 or newer"

if kernel_is lt 2 6 23 && use acpi ; then
check_acpi_proc
fi
fi

check_hotplug_net
check_inotify
fi

# http://devmanual.gentoo.org/ebuild-writing/functions/
# http://bugs.gentoo.org/show_bug.cgi?id=191605

# Create groups for hotplugging and HAL
enewgroup haldaemon
enewgroup plugdev

# HAL drops priviledges by default now ...
# ... so we must make sure it can read disk/cdrom info (ie. be in ${HALDAEMON_GROUPS} groups)
if use kernel_linux; then
enewuser haldaemon -1 "-1" /dev/null ${HALDAEMON_GROUPS_LINUX}
elif use kernel_FreeBSD; then
enewuser haldaemon -1 "-1" /dev/null ${HALDAEMON_GROUPS_FREEBSD}
fi

# Make sure that the haldaemon user is in the ${HALDAEMON_GROUPS}
# If users have a problem with this, let them file a bug
if [[ ${ROOT} == / ]] ; then
if use kernel_linux; then
usermod -G ${HALDAEMON_GROUPS_LINUX} haldaemon
elif use kernel_FreeBSD; then
pw usermod haldaemon -G ${HALDAEMON_GROUPS_FREEBSD}
fi
fi
}

src_prepare() {
EPATCH_MULTI_MSG="Applying Gentoo Patchset ..." \
EPATCH_SUFFIX="patch" \
EPATCH_SOURCE="${WORKDIR}/${PATCHNAME}/patches/" \
EPATCH_FORCE="yes" \
epatch

eautoreconf
}

src_configure() {
local acpi="$(use_enable acpi)"
local backend=
local hardware=

append-flags -rdynamic

if use kernel_linux ; then
backend="linux"
elif use kernel_FreeBSD ; then
backend="freebsd"
else
eerror "Invalid backend"
fi

if use kernel_linux ; then
if use acpi ; then
# Using IBM ACPI and Toshiba ACPI results in double notification as this
# was merged into the Linux Kernel 2.6.22
if kernel_is lt 2 6 22 ; then
acpi="$acpi --enable-acpi-ibm --enable-acpi-toshiba"
else
acpi="$acpi --disable-acpi-ibm --disable-acpi-toshiba"
fi

acpi="$acpi --enable-acpi-proc --enable-acpi-acpid"
else
acpi="$acpi --disable-acpi-ibm --disable-acpi-toshiba"
acpi="$acpi --disable-acpi-proc --disable-acpi-acpid"
fi

hardware="--with-cpufreq --with-usb-csr --with-keymaps"
use arm && hardware="$hardware --with-omap --enable-pmu"
use ppc && hardware="$hardware --enable-pmu"
if use x86 || use amd64; then
hardware="$hardware --with-macbook --with-macbookpro"
fi

if use dell ; then
hardware="$hardware --with-dell-backlight"
else
hardware="$hardware --without-dell-backlight"
fi

hardware="$hardware --enable-sonypic"
else
hardware="--without-cpufreq --without-usb-csr --without-keymaps"
hardware="$hardware --without-omap"
hardware="$hardware --without-dell-backlight"
hardware="$hardware --enable-acpi-ibm --enable-acpi-toshiba"
hardware="$hardware --disable-sonypic"
fi

econf --with-backend=${backend} \
--with-os-type=gentoo \
--with-pid-file=/var/run/hald.pid \
--with-hwdata=/usr/share/misc \
--with-socket-dir=/var/run/hald \
--with-udev-prefix=/etc \
--enable-umount-helper \
--enable-man-pages \
--disable-acl-management \
--enable-pci \
--disable-policy-kit \
--disable-console-kit \
$(use_enable apm) \
$(use_enable debug verbose-mode) \
$(use_enable disk-partition parted) \
$(use_enable doc docbook-docs) \
$(use_enable doc gtk-doc) \
--docdir=/usr/share/doc/${PF} \
--localstatedir=/var \
${acpi} ${hardware} \
|| die "configure failed"
}

src_install() {
emake DESTDIR="${D}" install || die
dodoc AUTHORS ChangeLog NEWS README || die "docs failed"

# hal umount for unclean unmounts
exeinto /$(get_libdir)/udev/
newexe "${FILESDIR}/hal-unmount.dev" hal_unmount || die "udev helper failed"

# initscript
cp "${FILESDIR}/0.5.14-hald.rc.1" "${WORKDIR}/" || \
die "failed to copy hald.rc.1"
newinitd "${WORKDIR}/0.5.14-hald.rc.1" hald || die "init script failed"

# configuration
cp "${FILESDIR}/0.5.14-hald.conf" "${WORKDIR}/" || \
die "failed to copy hald.conf"

if use debug; then
sed -e 's:HALD_VERBOSE="no":HALD_VERBOSE="yes":' \
-i "${WORKDIR}/0.5.14-hald.conf" || die "failed to change verbose"
fi
newconfd "${WORKDIR}/0.5.14-hald.conf" hald || \
die "failed to install hald.conf"

if use X ; then
# New Configuration Snippets
dodoc "${WORKDIR}/${PATCHNAME}/config-examples/"*.fdi || \
die "dodoc X examples failed"
fi

# We now create and keep /media here as both gnome-mount and pmount
# use these directories, to avoid collision.
keepdir /media

# We also need to create and keep /etc/fdi/{information,policy,preprobe}
# or else hal bombs.
keepdir /etc/hal/fdi/{information,policy,preprobe}

# HAL stores it's fdi cache in /var/cache/hald
keepdir /var/cache/hald

# HAL keeps its unix socket here
keepdir /var/run/hald
keepdir /var/lib/hal
}

pkg_postinst() {
# Despite what people keep changing this location. Either one works.. it doesn't matter
# http://dev.gentoo.org/~plasmaroo/devmanual/ebuild-writing/functions/

elog "The HAL daemon needs to be running for certain applications to"
elog "work. Suggested is to add the init script to your start-up"
elog "scripts, this should be done like this :"
elog "\`rc-update add hald default\`"
echo
elog "Access to hal is now protected by either at_console or the plugdev group."
elog "If you have problems discovering/configuring hardware, try adding"
elog "yourself to plugdev, or ensuring consolekit is started"
echo
elog "IF you have additional applications which consume ACPI events, you"
elog "should consider installing acpid to allow applications to share ACPI"
elog "events."
if use X ; then
echo
elog "If you wish to use a non US layout, you may do so by executing:"
elog "setxkbmap <layout> or by utilizing your Desktop Environment's"
elog "Keyboard Layout Settings mechanism."
elog "Under GNOME, this is gnome-keyboard-properties, and under KDE"
elog "it is kxkb."
fi
echo
elog "In order have suspend/hibernate function with HAL or apps that use HAL"
elog "(such as gnome-power-manager), you should build HAL with the laptop"
elog "useflag which will install pm-utils."
if use X ; then
echo
elog "X Input Hotplugging (if you build xorg-server with the HAL useflag)"
elog "reads user specific configuration from /etc/hal/fdi/policy/."
echo
elog "You should remove the Input sections from your xorg.conf once you have"
elog "migrated the rules to a HAL fdi file."
fi

ebeep 5
epause 5
}

+ 37
- 0
sys-apps/hal/metadata.xml View File

@@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<herd>no-herd</herd>
<maintainer>
<email>fatzer2@gmail.com</email>
<name>Golubev Alexander</name>
</maintainer>
<use>
<flag name='acpi'>Enables HAL to attempt to read from /proc/acpi/event, if
unavailable, HAL will read events from <pkg>sys-power/acpid</pkg>. If
you need multiple acpi readers, ensure acpid is in your default
runlevel (rc-update add acpid default) along with HAL. This will also
enable HAL to read Toshiba and IBM acpi events which do not get sent
via /proc/acpi/event</flag>
<flag name='crypt'>Allows HAL to mount volumes that are encrypted using
LUKS. <pkg>sys-fs/cryptsetup-luks</pkg> which has recently been renamed
to <pkg>sys-fs/cryptsetup</pkg> allows you to create such encrypted
volumes. HAL will be able to handle volumes that are removable or
fixed.</flag>
<flag name='dell'>Builds and installs the Dell addon, which reads data from
the Dell SM BIOS via <pkg>sys-libs/libsmbios</pkg>. It will read your
service tag information and your hardware backlight data as well as
allow you to modify the backlight settings on a Dell laptop.</flag>
<flag name='disk-partition'>Allows HAL to use libparted from
<pkg>sys-block/parted</pkg> to read raw partition data from your disks
and process that data. Future versions of HAL (possibly 0.5.11 and
higher) will allow you to create, modify, delete and format partitions
from a GUI interface agnostic of your desktop environment.</flag>
<flag name='doc'>Generates documentation that describes HAL's fdi
format.</flag>
<flag name='laptop'>Adds support for power management scripts
(<pkg>sys-power/pm-utils</pkg>)</flag>
<flag name='selinux'>Installs SELinux policies and links HAL to the SELinux
libraries.</flag>
</use>
</pkgmetadata>

Loading…
Cancel
Save