summaryrefslogtreecommitdiff
path: root/eclass
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2022-09-14 11:10:11 +0100
committerV3n3RiX <venerix@koprulu.sector>2022-09-14 11:10:11 +0100
commit81b8f20732954c4508baf2f77472b5435e3f851f (patch)
tree4180177cb7ba85eab50159ce96218c2419fb24a6 /eclass
parent946859e0e36904cffb3e0ccbccb6b7b1347c1cc8 (diff)
gentoo auto-resync : 14:09:2022 - 11:10:10
Diffstat (limited to 'eclass')
-rw-r--r--eclass/Manifest.gzbin36983 -> 37144 bytes
-rw-r--r--eclass/bazel.eclass2
-rw-r--r--eclass/gnustep-base.eclass2
-rw-r--r--eclass/gstreamer-meson.eclass2
-rw-r--r--eclass/haskell-cabal.eclass6
-rw-r--r--eclass/kodi-addon.eclass26
-rw-r--r--eclass/myspell-r2.eclass23
-rw-r--r--eclass/rebar.eclass22
-rw-r--r--eclass/rocm.eclass223
-rw-r--r--eclass/ruby-ng-gnome2.eclass2
-rw-r--r--eclass/ruby-ng.eclass2
-rw-r--r--eclass/selinux-policy-2.eclass8
-rw-r--r--eclass/toolchain.eclass8
-rw-r--r--eclass/udev.eclass2
-rw-r--r--eclass/vdr-plugin-2.eclass7
-rw-r--r--eclass/webapp.eclass2
16 files changed, 278 insertions, 59 deletions
diff --git a/eclass/Manifest.gz b/eclass/Manifest.gz
index d17f60f6018a..ce8e5a1d6f98 100644
--- a/eclass/Manifest.gz
+++ b/eclass/Manifest.gz
Binary files differ
diff --git a/eclass/bazel.eclass b/eclass/bazel.eclass
index 641da6194ca7..3a8992972d40 100644
--- a/eclass/bazel.eclass
+++ b/eclass/bazel.eclass
@@ -113,7 +113,7 @@ bazel_setup_bazelrc() {
fetch --repository_cache="${T}/bazel-cache/" --distdir="${T}/bazel-distdir/"
build --repository_cache="${T}/bazel-cache/" --distdir="${T}/bazel-distdir/"
- build --define=PREFIX=${EPREFIX%/}/usr
+ build --define=PREFIX=${EPREFIX}/usr
build --define=LIBDIR=\$(PREFIX)/$(get_libdir)
build --define=INCLUDEDIR=\$(PREFIX)/include
EOF
diff --git a/eclass/gnustep-base.eclass b/eclass/gnustep-base.eclass
index 9d72e6315fff..5e839bd0702d 100644
--- a/eclass/gnustep-base.eclass
+++ b/eclass/gnustep-base.eclass
@@ -256,7 +256,7 @@ EOF
if [[ -d ${EPREFIX}/usr/share/GNUstep/Makefiles ]]; then
exeinto /usr/bin
else
- exeinto ${GNUSTEP_SYSTEM_TOOLS#${EPREFIX}}/Gentoo
+ exeinto "${GNUSTEP_SYSTEM_TOOLS#${EPREFIX}}"/Gentoo
fi
doexe "${T}"/${cfile}
}
diff --git a/eclass/gstreamer-meson.eclass b/eclass/gstreamer-meson.eclass
index f8ca343b0ca6..28afaa1e6a62 100644
--- a/eclass/gstreamer-meson.eclass
+++ b/eclass/gstreamer-meson.eclass
@@ -393,7 +393,7 @@ gstreamer_multilib_src_compile() {
# https://github.com/ninja-build/ninja/issues/1251
# https://github.com/ninja-build/ninja/issues/1330
- build_dir=$(readlink -f ${BUILD_DIR})
+ build_dir=$(readlink -f "${BUILD_DIR}")
plugin_path="${plugin%%:*}"
eninja "${plugin_path/"${build_dir}/"/}"
diff --git a/eclass/haskell-cabal.eclass b/eclass/haskell-cabal.eclass
index 732ea83e653c..0f7f67a244d7 100644
--- a/eclass/haskell-cabal.eclass
+++ b/eclass/haskell-cabal.eclass
@@ -390,9 +390,9 @@ cabal-configure() {
# it generates for ghc's base and other packages.
local p=${EPREFIX}/usr/bin/haddock-ghc-$(ghc-version)
if [[ -f $p ]]; then
- cabalconf+=(--with-haddock="${p}")
+ cabalconf+=( --with-haddock="${p}" )
else
- cabalconf+=(--with-haddock=${EPREFIX}/usr/bin/haddock)
+ cabalconf+=( --with-haddock="${EPREFIX}"/usr/bin/haddock )
fi
fi
if [[ -n "${CABAL_USE_PROFILE}" ]] && use profile; then
@@ -702,7 +702,7 @@ cabal_src_install() {
# if it does not exist (dummy libraries and binaries w/o libraries)
local ghc_confdir_with_prefix="$(ghc-confdir)"
# remove EPREFIX
- dodir ${ghc_confdir_with_prefix#${EPREFIX}}
+ dodir "${ghc_confdir_with_prefix#${EPREFIX}}"
local hint_db="${D}/$(ghc-confdir)"
local hint_file="${hint_db}/gentoo-empty-${CATEGORY}-${PF}.conf"
mkdir -p "${hint_db}" || die
diff --git a/eclass/kodi-addon.eclass b/eclass/kodi-addon.eclass
index 8cbbad9224fc..6e7fa26f3c8a 100644
--- a/eclass/kodi-addon.eclass
+++ b/eclass/kodi-addon.eclass
@@ -1,25 +1,22 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# @ECLASS: kodi-addon.eclass
# @MAINTAINER:
# candrews@gentoo.org
-# @SUPPORTED_EAPIS: 4 5 6 7
-# @PROVIDES: cmake cmake-utils
+# @SUPPORTED_EAPIS: 7
+# @PROVIDES: cmake
# @BLURB: Helper for correct building and (importantly) installing Kodi addon packages.
# @DESCRIPTION:
# Provides a src_configure function for correct CMake configuration
-case "${EAPI:-0}" in
- 4|5|6)
- inherit cmake-utils multilib
- ;;
- 7)
- inherit cmake
- ;;
- *) die "EAPI=${EAPI} is not supported" ;;
+case ${EAPI} in
+ 7) ;;
+ *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
esac
+inherit cmake
+
EXPORT_FUNCTIONS src_configure
# @FUNCTION: kodi-addon_src_configure
@@ -28,11 +25,8 @@ EXPORT_FUNCTIONS src_configure
kodi-addon_src_configure() {
mycmakeargs+=(
- -DCMAKE_INSTALL_LIBDIR=${EPREFIX%/}/usr/$(get_libdir)/kodi
+ -DCMAKE_INSTALL_LIBDIR="${EPREFIX}/usr/$(get_libdir)/kodi"
)
- case ${EAPI} in
- 4|5|6) cmake-utils_src_configure ;;
- 7) cmake_src_configure ;;
- esac
+ cmake_src_configure
}
diff --git a/eclass/myspell-r2.eclass b/eclass/myspell-r2.eclass
index 6dbd1e19e133..965327ac1b58 100644
--- a/eclass/myspell-r2.eclass
+++ b/eclass/myspell-r2.eclass
@@ -1,4 +1,4 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# @ECLASS: myspell-r2.eclass
@@ -6,7 +6,7 @@
# Conrad Kostecki <conikost@gentoo.org>
# @AUTHOR:
# Tomáš Chvátal <scarabeus@gentoo.org>
-# @SUPPORTED_EAPIS: 5 6 7 8
+# @SUPPORTED_EAPIS: 7 8
# @BLURB: An eclass to streamline the construction of ebuilds for new Myspell dictionaries.
# @DESCRIPTION:
# The myspell-r2 eclass is designed to streamline the construction of ebuilds for
@@ -16,22 +16,28 @@
# @DEFAULT_UNSET
# @DESCRIPTION:
# Array variable containing list of all dictionary files.
+# @CODE
# MYSPELL_DICT=( "file.dic" "dir/file2.aff" )
+# @CODE
# @ECLASS_VARIABLE: MYSPELL_HYPH
# @DEFAULT_UNSET
# @DESCRIPTION:
# Array variable containing list of all hyphenation files.
+# @CODE
# MYSPELL_HYPH=( "file.dic" "dir/file2.dic" )
+# @CODE
# @ECLASS_VARIABLE: MYSPELL_THES
# @DEFAULT_UNSET
# @DESCRIPTION:
# Array variable containing list of all thesarus files.
+# @CODE
# MYSPELL_THES=( "file.dat" "dir/file2.idx" )
+# @CODE
-case ${EAPI:-0} in
- [5-8])
+case ${EAPI} in
+ 7|8)
;;
*)
die "${ECLASS}: EAPI ${EAPI:-0} not supported"
@@ -43,12 +49,7 @@ EXPORT_FUNCTIONS src_unpack src_install
# Basically no extra deps needed.
# Unzip is required for .oxt libreoffice extensions
# which are just fancy zip files.
-if [[ ${EAPI:-0} != [56] ]]; then
- BDEPEND="app-arch/unzip"
-else
- DEPEND="app-arch/unzip"
- RDEPEND=""
-fi
+BDEPEND="app-arch/unzip"
# by default this stuff does not have any folder in the pack
S="${WORKDIR}"
@@ -65,7 +66,7 @@ myspell-r2_src_unpack() {
case ${f} in
*.oxt)
echo ">>> Unpacking "${DISTDIR}/${f}" to ${PWD}"
- unzip -qoj ${DISTDIR}/${f}
+ unzip -qoj "${DISTDIR}"/${f}
assert "failed unpacking ${DISTDIR}/${f}"
;;
*) unpack ${f} ;;
diff --git a/eclass/rebar.eclass b/eclass/rebar.eclass
index 5ee99aed445c..1c7bc20def14 100644
--- a/eclass/rebar.eclass
+++ b/eclass/rebar.eclass
@@ -6,7 +6,7 @@
# maintainer-needed@gentoo.org
# @AUTHOR:
# Amadeusz Żołnowski <aidecoe@gentoo.org>
-# @SUPPORTED_EAPIS: 6 7
+# @SUPPORTED_EAPIS: 6 7 8
# @BLURB: Build Erlang/OTP projects using dev-util/rebar.
# @DESCRIPTION:
# An eclass providing functions to build Erlang/OTP projects using
@@ -19,15 +19,9 @@
# targets. The eclass workarounds some of these problems. It handles
# installation in a generic way for Erlang/OTP structured projects.
-case "${EAPI:-0}" in
- 0|1|2|3|4|5)
- die "Unsupported EAPI=${EAPI:-0} (too old) for ${ECLASS}"
- ;;
- 6|7)
- ;;
- *)
- die "Unsupported EAPI=${EAPI} (unknown) for ${ECLASS}"
- ;;
+case ${EAPI} in
+ 6|7|8) ;;
+ *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
esac
EXPORT_FUNCTIONS src_prepare src_compile src_test src_install
@@ -68,7 +62,7 @@ _rebar_find_dep() {
local p
local result
- pushd "${EPREFIX%/}/$(get_erl_libs)" >/dev/null || return 1
+ pushd "${EPREFIX}/$(get_erl_libs)" >/dev/null || return 1
for p in ${pn} ${pn}-*; do
if [[ -d ${p} ]]; then
# Ensure there's at most one matching.
@@ -107,7 +101,7 @@ erebar() {
(( $# > 0 )) || die "erebar: at least one target is required"
- local -x ERL_LIBS="${EPREFIX%/}/$(get_erl_libs)"
+ local -x ERL_LIBS="${EPREFIX}/$(get_erl_libs)"
[[ ${1} == eunit ]] && local -x ERL_LIBS="."
rebar -v skip_deps=true "$@" || die -n "rebar $@ failed"
@@ -128,7 +122,7 @@ rebar_fix_include_path() {
local pn="${1}"
local rebar_config="${2:-rebar.config}"
- local erl_libs="${EPREFIX%/}/$(get_erl_libs)"
+ local erl_libs="${EPREFIX}/$(get_erl_libs)"
local p
p="$(_rebar_find_dep "${pn}")" \
@@ -217,7 +211,7 @@ rebar_src_prepare() {
rebar_src_configure() {
debug-print-function ${FUNCNAME} "${@}"
- local -x ERL_LIBS="${EPREFIX%/}/$(get_erl_libs)"
+ local -x ERL_LIBS="${EPREFIX}/$(get_erl_libs)"
default
}
diff --git a/eclass/rocm.eclass b/eclass/rocm.eclass
new file mode 100644
index 000000000000..4c8fd39f2491
--- /dev/null
+++ b/eclass/rocm.eclass
@@ -0,0 +1,223 @@
+# Copyright 2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# @ECLASS: rocm.eclass
+# @MAINTAINER:
+# Gentoo Science Project <sci@gentoo.org>
+# @AUTHOR:
+# Yiyang Wu <xgreenlandforwyy@gmail.com>
+# @SUPPORTED_EAPIS: 7 8
+# @BLURB: Common functions and variables for ROCm packages written in HIP
+# @DESCRIPTION:
+# ROCm packages such as sci-libs/<roc|hip>*, and packages built on top of ROCm
+# libraries, can utilize variables and functions provided by this eclass.
+# It handles the AMDGPU_TARGETS variable via USE_EXPAND, so user can
+# edit USE flag to control which GPU architecture to compile. Using
+# ${ROCM_USEDEP} can ensure coherence among dependencies. Ebuilds can call the
+# function get_amdgpu_flag to translate activated target to GPU compile flags,
+# passing it to configuration. Function check_amdgpu can help ebuild ensure
+# read and write permissions to GPU device in src_test phase, throwing friendly
+# error message if unavailable.
+#
+# @EXAMPLE:
+# Example ebuild for ROCm library in https://github.com/ROCmSoftwarePlatform
+# which uses cmake to build and test, and depends on rocBLAS:
+# @CODE
+# ROCM_VERSION=${PV}
+# inherit cmake rocm
+# # ROCm libraries SRC_URI is usually in form of:
+# SRC_URI="https://github.com/ROCmSoftwarePlatform/${PN}/archive/rocm-${PV}.tar.gz -> ${P}.tar.gz"
+# S=${WORKDIR}/${PN}-rocm-${PV}
+# SLOT="0/$(ver_cut 1-2)"
+# IUSE="test"
+# REQUIRED_USE="${ROCM_REQUIRED_USE}"
+# RESTRICT="!test? ( test )"
+#
+# RDEPEND="
+# dev-util/hip
+# sci-libs/rocBLAS:${SLOT}[${ROCM_USEDEP}]
+# "
+#
+# src_configure() {
+# # avoid sandbox violation
+# addpredict /dev/kfd
+# addpredict /dev/dri/
+# local mycmakeargs=(
+# -DAMDGPU_TARGETS="$(get_amdgpu_flags)"
+# -DBUILD_CLIENTS_TESTS=$(usex test ON OFF)
+# )
+# CXX=hipcc cmake_src_configure
+# }
+#
+# src_test() {
+# check_amdgpu
+# # export LD_LIBRARY_PATH=<path to built lib dir> if necessary
+# cmake_src_test # for packages using the cmake test
+# # For packages using a standalone test binary rather than cmake test,
+# # just execute it (or using edob)
+# }
+# @CODE
+#
+# Examples for packages depend on ROCm libraries -- a package which depends on
+# rocBLAS, uses comma separated ${HCC_AMDGPU_TARGET} to determine GPU
+# architectures, and requires ROCm version >=5.1
+# @CODE
+# ROCM_VERSION=5.1
+# inherit rocm
+# IUSE="rocm"
+# REQUIRED_USE="rocm? ( ${ROCM_REQUIRED_USE} )"
+# DEPEND="rocm? ( >=dev-util/hip-${ROCM_VERSION}
+# >=sci-libs/rocBLAS-${ROCM_VERSION}[${ROCM_USEDEP}] )"
+#
+# src_configure() {
+# if use rocm; then
+# local amdgpu_flags=$(get_amdgpu_flags)
+# export HCC_AMDGPU_TARGET=${amdgpu_flags//;/,}
+# fi
+# default
+# }
+# src_test() {
+# use rocm && check_amdgpu
+# default
+# }
+# @CODE
+
+if [[ ! ${_ROCM_ECLASS} ]]; then
+
+case ${EAPI} in
+ 7|8) ;;
+ *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
+esac
+
+# @ECLASS_VARIABLE: ROCM_VERSION
+# @REQUIRED
+# @PRE_INHERIT
+# @DESCRIPTION:
+# The ROCm version of current package. For ROCm libraries, it should be ${PV};
+# for other packages that depend on ROCm libraries, this can be set to match
+# the version required for ROCm libraries.
+
+# @ECLASS_VARIABLE: ROCM_REQUIRED_USE
+# @OUTPUT_VARIABLE
+# @DESCRIPTION:
+# Requires at least one AMDGPU target to be compiled.
+# Example use for ROCm libraries:
+# @CODE
+# REQUIRED_USE="${ROCM_REQUIRED_USE}"
+# @CODE
+# Example use for packages that depend on ROCm libraries:
+# @CODE
+# IUSE="rocm"
+# REQUIRED_USE="rocm? ( ${ROCM_REQUIRED_USE} )"
+# @CODE
+
+# @ECLASS_VARIABLE: ROCM_USEDEP
+# @OUTPUT_VARIABLE
+# @DESCRIPTION:
+# This is an eclass-generated USE-dependency string which can be used to
+# depend on another ROCm package being built for the same AMDGPU architecture.
+#
+# The generated USE-flag list is compatible with packages using rocm.eclass.
+#
+# Example use:
+# @CODE
+# DEPEND="sci-libs/rocBLAS[${ROCM_USEDEP}]"
+# @CODE
+
+# @FUNCTION: _rocm_set_globals
+# @DESCRIPTION:
+# Set global variables useful to ebuilds: IUSE, ROCM_REQUIRED_USE, and
+# ROCM_USEDEP
+_rocm_set_globals() {
+ # Two lists of AMDGPU_TARGETS of certain ROCm version. Official support
+ # matrix:
+ # https://docs.amd.com/bundle/ROCm-Installation-Guide-v${ROCM_VERSION}/page/Prerequisite_Actions.html.
+ # There is no well-known unofficial support matrix.
+ # https://github.com/Bengt/ROCm/blob/patch-2/README.md#library-target-matrix
+ # may help. Gentoo have patches to enable gfx1031 as well.
+ local unofficial_amdgpu_targets official_amdgpu_targets
+ case ${ROCM_VERSION} in
+ 4.*)
+ unofficial_amdgpu_targets=(
+ gfx803 gfx900 gfx1010 gfx1011 gfx1012 gfx1030
+ )
+ official_amdgpu_targets=(
+ gfx906 gfx908
+ )
+ ;;
+ 5.*)
+ unofficial_amdgpu_targets=(
+ gfx803 gfx900 gfx1010 gfx1011 gfx1012 gfx1031
+ )
+ official_amdgpu_targets=(
+ gfx906 gfx908 gfx90a gfx1030
+ )
+ ;;
+ *)
+ die "Unknown ROCm major version! Please update rocm.eclass before bumping to new ebuilds"
+ ;;
+ esac
+
+ local iuse_flags=(
+ "${official_amdgpu_targets[@]/#/+amdgpu_targets_}"
+ "${unofficial_amdgpu_targets[@]/#/amdgpu_targets_}"
+ )
+ IUSE="${iuse_flags[*]}"
+
+ local all_amdgpu_targets=(
+ "${official_amdgpu_targets[@]}"
+ "${unofficial_amdgpu_targets[@]}"
+ )
+ local allflags=( "${all_amdgpu_targets[@]/#/amdgpu_targets_}" )
+ ROCM_REQUIRED_USE=" || ( ${allflags[*]} )"
+
+ local optflags=${allflags[@]/%/(-)?}
+ ROCM_USEDEP=${optflags// /,}
+}
+_rocm_set_globals
+unset -f _rocm_set_globals
+
+
+# @FUNCTION: get_amdgpu_flags
+# @USAGE: get_amdgpu_flags
+# @DESCRIPTION:
+# Convert specified use flag of amdgpu_targets to compilation flags.
+# Append default target feature to GPU arch. See
+# https://llvm.org/docs/AMDGPUUsage.html#target-features
+get_amdgpu_flags() {
+ local amdgpu_target_flags
+ for gpu_target in ${AMDGPU_TARGETS}; do
+ local target_feature=
+ case ${gpu_target} in
+ gfx906|gfx908)
+ target_feature=:xnack-
+ ;;
+ gfx90a)
+ target_feature=:xnack+
+ ;;
+ *)
+ ;;
+ esac
+ amdgpu_target_flags+="${gpu_target}${target_feature};"
+ done
+ echo "${amdgpu_target_flags}"
+}
+
+# @FUNCTION: check_amdgpu
+# @USAGE: check_amdgpu
+# @DESCRIPTION:
+# grant and check read-write permissions on AMDGPU devices, die if not available.
+check_amdgpu() {
+ for device in /dev/kfd /dev/dri/render*; do
+ addwrite ${device}
+ if [[ ! -r ${device} || ! -w ${device} ]]; then
+ eerror "Cannot read or write ${device}!"
+ eerror "Make sure it is present and check the permission."
+ ewarn "By default render group have access to it. Check if portage user is in render group."
+ die "${device} inaccessible"
+ fi
+ done
+}
+
+_ROCM_ECLASS=1
+fi
diff --git a/eclass/ruby-ng-gnome2.eclass b/eclass/ruby-ng-gnome2.eclass
index 93ab89263593..487e3268e360 100644
--- a/eclass/ruby-ng-gnome2.eclass
+++ b/eclass/ruby-ng-gnome2.eclass
@@ -118,7 +118,7 @@ each_ruby_install() {
if [[ -e Makefile ]]; then
# Create the directories, or the package will create them as files.
local archdir=$(ruby_rbconfig_value "sitearchdir")
- dodir ${archdir#${EPREFIX}} /usr/$(get_libdir)/pkgconfig
+ dodir "${archdir#${EPREFIX}}" /usr/$(get_libdir)/pkgconfig
emake DESTDIR="${D}" install
fi
diff --git a/eclass/ruby-ng.eclass b/eclass/ruby-ng.eclass
index 6eceb4d5ba9f..d6b3d2a0669a 100644
--- a/eclass/ruby-ng.eclass
+++ b/eclass/ruby-ng.eclass
@@ -630,7 +630,7 @@ doruby() {
[[ -z ${RUBY} ]] && die "\$RUBY is not set"
( # don't want to pollute calling env
sitelibdir=$(ruby_rbconfig_value 'sitelibdir')
- insinto ${sitelibdir#${EPREFIX}}
+ insinto "${sitelibdir#${EPREFIX}}"
insopts -m 0644
doins "$@"
) || die "failed to install $@"
diff --git a/eclass/selinux-policy-2.eclass b/eclass/selinux-policy-2.eclass
index 7b6f9aac6ebc..f00e3555b6be 100644
--- a/eclass/selinux-policy-2.eclass
+++ b/eclass/selinux-policy-2.eclass
@@ -187,11 +187,11 @@ selinux-policy-2_src_prepare() {
# Collect only those files needed for this particular module
for i in ${MODS}; do
- modfiles="$(find ${S}/refpolicy/policy/modules -iname $i.te) $modfiles"
- modfiles="$(find ${S}/refpolicy/policy/modules -iname $i.fc) $modfiles"
- modfiles="$(find ${S}/refpolicy/policy/modules -iname $i.cil) $modfiles"
+ modfiles="$(find "${S}/refpolicy/policy/modules" -iname $i.te) $modfiles"
+ modfiles="$(find "${S}/refpolicy/policy/modules" -iname $i.fc) $modfiles"
+ modfiles="$(find "${S}/refpolicy/policy/modules" -iname $i.cil) $modfiles"
if [[ ${add_interfaces} -eq 1 ]]; then
- modfiles="$(find ${S}/refpolicy/policy/modules -iname $i.if) $modfiles"
+ modfiles="$(find "${S}/refpolicy/policy/modules" -iname $i.if) $modfiles"
fi
done
diff --git a/eclass/toolchain.eclass b/eclass/toolchain.eclass
index 4e023ffb65d0..71342765c78e 100644
--- a/eclass/toolchain.eclass
+++ b/eclass/toolchain.eclass
@@ -335,6 +335,14 @@ if tc_has_feature valgrind ; then
BDEPEND+=" valgrind? ( dev-util/valgrind )"
fi
+# TODO: Add a pkg_setup & pkg_pretend check for whether the active compiler
+# supports Ada.
+if tc_has_feature ada ; then
+ BDEPEND+=" ada? ( || ( sys-devel/gcc[ada] dev-lang/gnat-gpl[ada] ) )"
+fi
+
+# TODO: Add a pkg_setup & pkg_pretend check for whether the active compiler
+# supports D.
if tc_has_feature d && tc_version_is_at_least 12.0 ; then
# D in 12+ is self-hosting and needs D to bootstrap.
# TODO: package some binary we can use, like for Ada
diff --git a/eclass/udev.eclass b/eclass/udev.eclass
index 830e3eeb125e..ac94f98221aa 100644
--- a/eclass/udev.eclass
+++ b/eclass/udev.eclass
@@ -61,7 +61,7 @@ _udev_get_udevdir() {
local -x PKG_CONFIG_FDO_SYSROOT_RULES=1
if $($(tc-getPKG_CONFIG) --exists udev); then
local udevdir="$($(tc-getPKG_CONFIG) --variable=udevdir udev)"
- echo "${udevdir#${EPREFIX%/}}"
+ echo "${udevdir#${EPREFIX}}"
else
echo /lib/udev
fi
diff --git a/eclass/vdr-plugin-2.eclass b/eclass/vdr-plugin-2.eclass
index f8d5a18854ed..546dbb803bf1 100644
--- a/eclass/vdr-plugin-2.eclass
+++ b/eclass/vdr-plugin-2.eclass
@@ -276,10 +276,9 @@ vdr_gettext_missing() {
# DIR ${S}/po or DIR ${S]/_subdir_/po
vdr_detect_po_dir() {
[[ -f po ]] && local po_dir="${S}"
- local po_subdir=( ${S}/${PO_SUBDIR} )
- local f
+ local po_subdir=( "${S}"/${PO_SUBDIR} )
- pofile_dir=( ${po_dir} ${po_subdir[*]} )
+ pofile_dir=( ${po_dir} "${po_subdir[@]}" )
}
# @FUNCTION: vdr_linguas_support
@@ -605,7 +604,7 @@ vdr-plugin-2_src_install() {
local linguas
for linguas in ${LINGUAS[*]}; do
insinto "${LOCDIR}"
- cp -r --parents ${linguas}* ${D%/}/${LOCDIR} \
+ cp -r --parents ${linguas}* "${D%/}"/${LOCDIR} \
|| die "could not copy linguas files"
done
fi
diff --git a/eclass/webapp.eclass b/eclass/webapp.eclass
index 1efe4e66b6a9..3bc177dc3e78 100644
--- a/eclass/webapp.eclass
+++ b/eclass/webapp.eclass
@@ -201,7 +201,7 @@ webapp_configfile() {
my_file="$(webapp_strip_cwd "${my_file}")"
elog "(config) ${my_file}"
- echo "${my_file}" >> ${D}/${WA_CONFIGLIST}
+ echo "${my_file}" >> "${D}/${WA_CONFIGLIST}"
done
}