Compiler improvement (#17786)

This commit is contained in:
Ivan Max 2023-09-09 14:22:47 +00:00 committed by GitHub
parent 93295a5071
commit f85abe7d00
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 80 additions and 50 deletions

View File

@ -18,7 +18,7 @@ termux_create_debian_subpackages() {
local SUB_PKG_NAME local SUB_PKG_NAME
SUB_PKG_NAME=$(basename "$subpackage" .subpackage.sh) SUB_PKG_NAME=$(basename "$subpackage" .subpackage.sh)
if [ "$TERMUX_PACKAGE_LIBRARY" = "glibc" ] && ! package__is_package_name_have_glibc_prefix "$SUB_PKG_NAME"; then if [ "$TERMUX_PACKAGE_LIBRARY" = "glibc" ] && ! package__is_package_name_have_glibc_prefix "$SUB_PKG_NAME"; then
SUB_PKG_NAME="${SUB_PKG_NAME}-glibc" SUB_PKG_NAME="$(package__add_prefix_glibc_to_package_name ${SUB_PKG_NAME})"
fi fi
# Default value is same as main package, but sub package may override: # Default value is same as main package, but sub package may override:
local TERMUX_SUBPKG_PLATFORM_INDEPENDENT=$TERMUX_PKG_PLATFORM_INDEPENDENT local TERMUX_SUBPKG_PLATFORM_INDEPENDENT=$TERMUX_PKG_PLATFORM_INDEPENDENT
@ -109,13 +109,13 @@ termux_create_debian_subpackages() {
fi fi
if [ "$TERMUX_GLOBAL_LIBRARY" = "true" ] && [ "$TERMUX_PACKAGE_LIBRARY" = "glibc" ]; then if [ "$TERMUX_GLOBAL_LIBRARY" = "true" ] && [ "$TERMUX_PACKAGE_LIBRARY" = "glibc" ]; then
test ! -z "$TERMUX_SUBPKG_DEPENDS" && TERMUX_SUBPKG_DEPENDS=$(package__add_prefix_glibc_to_package_names "$TERMUX_SUBPKG_DEPENDS") test ! -z "$TERMUX_SUBPKG_DEPENDS" && TERMUX_SUBPKG_DEPENDS=$(package__add_prefix_glibc_to_package_list "$TERMUX_SUBPKG_DEPENDS")
test ! -z "$TERMUX_SUBPKG_BREAKS" && TERMUX_SUBPKG_BREAKS=$(package__add_prefix_glibc_to_package_names "$TERMUX_SUBPKG_BREAKS") test ! -z "$TERMUX_SUBPKG_BREAKS" && TERMUX_SUBPKG_BREAKS=$(package__add_prefix_glibc_to_package_list "$TERMUX_SUBPKG_BREAKS")
test ! -z "$TERMUX_SUBPKG_CONFLICTS" && TERMUX_SUBPKG_CONFLICTS=$(package__add_prefix_glibc_to_package_names "$TERMUX_SUBPKG_CONFLICTS") test ! -z "$TERMUX_SUBPKG_CONFLICTS" && TERMUX_SUBPKG_CONFLICTS=$(package__add_prefix_glibc_to_package_list "$TERMUX_SUBPKG_CONFLICTS")
test ! -z "$TERMUX_SUBPKG_RECOMMENDS" && TERMUX_SUBPKG_RECOMMENDS=$(package__add_prefix_glibc_to_package_names "$TERMUX_SUBPKG_RECOMMENDS") test ! -z "$TERMUX_SUBPKG_RECOMMENDS" && TERMUX_SUBPKG_RECOMMENDS=$(package__add_prefix_glibc_to_package_list "$TERMUX_SUBPKG_RECOMMENDS")
test ! -z "$TERMUX_SUBPKG_REPLACES" && TERMUX_SUBPKG_REPLACES=$(package__add_prefix_glibc_to_package_names "$TERMUX_SUBPKG_REPLACES") test ! -z "$TERMUX_SUBPKG_REPLACES" && TERMUX_SUBPKG_REPLACES=$(package__add_prefix_glibc_to_package_list "$TERMUX_SUBPKG_REPLACES")
test ! -z "$TERMUX_SUBPKG_PROVIDES" && TERMUX_SUBPKG_PROVIDES=$(package__add_prefix_glibc_to_package_names "$TERMUX_SUBPKG_PROVIDES") test ! -z "$TERMUX_SUBPKG_PROVIDES" && TERMUX_SUBPKG_PROVIDES=$(package__add_prefix_glibc_to_package_list "$TERMUX_SUBPKG_PROVIDES")
test ! -z "$TERMUX_SUBPKG_SUGGESTS" && TERMUX_SUBPKG_SUGGESTS=$(package__add_prefix_glibc_to_package_names "$TERMUX_SUBPKG_SUGGESTS") test ! -z "$TERMUX_SUBPKG_SUGGESTS" && TERMUX_SUBPKG_SUGGESTS=$(package__add_prefix_glibc_to_package_list "$TERMUX_SUBPKG_SUGGESTS")
fi fi
[ "$TERMUX_SUBPKG_ESSENTIAL" = "true" ] && echo "Essential: yes" >> control [ "$TERMUX_SUBPKG_ESSENTIAL" = "true" ] && echo "Essential: yes" >> control

View File

@ -18,7 +18,7 @@ termux_create_pacman_subpackages() {
local SUB_PKG_NAME local SUB_PKG_NAME
SUB_PKG_NAME=$(basename "$subpackage" .subpackage.sh) SUB_PKG_NAME=$(basename "$subpackage" .subpackage.sh)
if [ "$TERMUX_PACKAGE_LIBRARY" = "glibc" ] && ! package__is_package_name_have_glibc_prefix "$SUB_PKG_NAME"; then if [ "$TERMUX_PACKAGE_LIBRARY" = "glibc" ] && ! package__is_package_name_have_glibc_prefix "$SUB_PKG_NAME"; then
SUB_PKG_NAME="${SUB_PKG_NAME}-glibc" SUB_PKG_NAME="$(package__add_prefix_glibc_to_package_name ${SUB_PKG_NAME})"
fi fi
# Default value is same as main package, but sub package may override: # Default value is same as main package, but sub package may override:
local TERMUX_SUBPKG_PLATFORM_INDEPENDENT=$TERMUX_PKG_PLATFORM_INDEPENDENT local TERMUX_SUBPKG_PLATFORM_INDEPENDENT=$TERMUX_PKG_PLATFORM_INDEPENDENT
@ -97,13 +97,13 @@ termux_create_pacman_subpackages() {
fi fi
if [ "$TERMUX_GLOBAL_LIBRARY" = "true" ] && [ "$TERMUX_PACKAGE_LIBRARY" = "glibc" ]; then if [ "$TERMUX_GLOBAL_LIBRARY" = "true" ] && [ "$TERMUX_PACKAGE_LIBRARY" = "glibc" ]; then
test ! -z "$TERMUX_SUBPKG_DEPENDS" && TERMUX_SUBPKG_DEPENDS=$(package__add_prefix_glibc_to_package_names "$TERMUX_SUBPKG_DEPENDS") test ! -z "$TERMUX_SUBPKG_DEPENDS" && TERMUX_SUBPKG_DEPENDS=$(package__add_prefix_glibc_to_package_list "$TERMUX_SUBPKG_DEPENDS")
test ! -z "$TERMUX_SUBPKG_BREAKS" && TERMUX_SUBPKG_BREAKS=$(package__add_prefix_glibc_to_package_names "$TERMUX_SUBPKG_BREAKS") test ! -z "$TERMUX_SUBPKG_BREAKS" && TERMUX_SUBPKG_BREAKS=$(package__add_prefix_glibc_to_package_list "$TERMUX_SUBPKG_BREAKS")
test ! -z "$TERMUX_SUBPKG_CONFLICTS" && TERMUX_SUBPKG_CONFLICTS=$(package__add_prefix_glibc_to_package_names "$TERMUX_SUBPKG_CONFLICTS") test ! -z "$TERMUX_SUBPKG_CONFLICTS" && TERMUX_SUBPKG_CONFLICTS=$(package__add_prefix_glibc_to_package_list "$TERMUX_SUBPKG_CONFLICTS")
test ! -z "$TERMUX_SUBPKG_RECOMMENDS" && TERMUX_SUBPKG_RECOMMENDS=$(package__add_prefix_glibc_to_package_names "$TERMUX_SUBPKG_RECOMMENDS") test ! -z "$TERMUX_SUBPKG_RECOMMENDS" && TERMUX_SUBPKG_RECOMMENDS=$(package__add_prefix_glibc_to_package_list "$TERMUX_SUBPKG_RECOMMENDS")
test ! -z "$TERMUX_SUBPKG_REPLACES" && TERMUX_SUBPKG_REPLACES=$(package__add_prefix_glibc_to_package_names "$TERMUX_SUBPKG_REPLACES") test ! -z "$TERMUX_SUBPKG_REPLACES" && TERMUX_SUBPKG_REPLACES=$(package__add_prefix_glibc_to_package_list "$TERMUX_SUBPKG_REPLACES")
test ! -z "$TERMUX_SUBPKG_PROVIDES" && TERMUX_SUBPKG_PROVIDES=$(package__add_prefix_glibc_to_package_names "$TERMUX_SUBPKG_PROVIDES") test ! -z "$TERMUX_SUBPKG_PROVIDES" && TERMUX_SUBPKG_PROVIDES=$(package__add_prefix_glibc_to_package_list "$TERMUX_SUBPKG_PROVIDES")
test ! -z "$TERMUX_SUBPKG_SUGGESTS" && TERMUX_SUBPKG_SUGGESTS=$(package__add_prefix_glibc_to_package_names "$TERMUX_SUBPKG_SUGGESTS") test ! -z "$TERMUX_SUBPKG_SUGGESTS" && TERMUX_SUBPKG_SUGGESTS=$(package__add_prefix_glibc_to_package_list "$TERMUX_SUBPKG_SUGGESTS")
fi fi
# Package metadata. # Package metadata.

View File

@ -15,7 +15,11 @@ termux_extract_dep_info() {
if [ "$TERMUX_INSTALL_DEPS" = "false" ] || \ if [ "$TERMUX_INSTALL_DEPS" = "false" ] || \
[ "$TERMUX_PKG_NO_STATICSPLIT" = "true" ] || \ [ "$TERMUX_PKG_NO_STATICSPLIT" = "true" ] || \
[ "${PKG/-static/}-static" != "${PKG}" ]; then [ "${PKG/-static/}-static" != "${PKG}" ]; then
source ${PKG_DIR}/${PKG}.subpackage.sh if [ -f "${PKG_DIR}/${PKG}.subpackage.sh" ]; then
source ${PKG_DIR}/${PKG}.subpackage.sh
else
source ${PKG_DIR}/${PKG/-glibc/}.subpackage.sh
fi
fi fi
if [ "$TERMUX_SUBPKG_PLATFORM_INDEPENDENT" = "true" ]; then if [ "$TERMUX_SUBPKG_PLATFORM_INDEPENDENT" = "true" ]; then
echo all echo all

View File

@ -22,13 +22,13 @@ termux_step_create_debian_package() {
Homepage: $TERMUX_PKG_HOMEPAGE Homepage: $TERMUX_PKG_HOMEPAGE
HERE HERE
if [ "$TERMUX_GLOBAL_LIBRARY" = "true" ] && [ "$TERMUX_PACKAGE_LIBRARY" = "glibc" ]; then if [ "$TERMUX_GLOBAL_LIBRARY" = "true" ] && [ "$TERMUX_PACKAGE_LIBRARY" = "glibc" ]; then
test ! -z "$TERMUX_PKG_DEPENDS" && TERMUX_PKG_DEPENDS=$(package__add_prefix_glibc_to_package_names "$TERMUX_PKG_DEPENDS") test ! -z "$TERMUX_PKG_DEPENDS" && TERMUX_PKG_DEPENDS=$(package__add_prefix_glibc_to_package_list "$TERMUX_PKG_DEPENDS")
test ! -z "$TERMUX_PKG_BREAKS" && TERMUX_PKG_BREAKS=$(package__add_prefix_glibc_to_package_names "$TERMUX_PKG_BREAKS") test ! -z "$TERMUX_PKG_BREAKS" && TERMUX_PKG_BREAKS=$(package__add_prefix_glibc_to_package_list "$TERMUX_PKG_BREAKS")
test ! -z "$TERMUX_PKG_CONFLICTS" && TERMUX_PKG_CONFLICTS=$(package__add_prefix_glibc_to_package_names "$TERMUX_PKG_CONFLICTS") test ! -z "$TERMUX_PKG_CONFLICTS" && TERMUX_PKG_CONFLICTS=$(package__add_prefix_glibc_to_package_list "$TERMUX_PKG_CONFLICTS")
test ! -z "$TERMUX_PKG_RECOMMENDS" && TERMUX_PKG_RECOMMENDS=$(package__add_prefix_glibc_to_package_names "$TERMUX_PKG_RECOMMENDS") test ! -z "$TERMUX_PKG_RECOMMENDS" && TERMUX_PKG_RECOMMENDS=$(package__add_prefix_glibc_to_package_list "$TERMUX_PKG_RECOMMENDS")
test ! -z "$TERMUX_PKG_REPLACES" && TERMUX_PKG_REPLACES=$(package__add_prefix_glibc_to_package_names "$TERMUX_PKG_REPLACES") test ! -z "$TERMUX_PKG_REPLACES" && TERMUX_PKG_REPLACES=$(package__add_prefix_glibc_to_package_list "$TERMUX_PKG_REPLACES")
test ! -z "$TERMUX_PKG_PROVIDES" && TERMUX_PKG_PROVIDES=$(package__add_prefix_glibc_to_package_names "$TERMUX_PKG_PROVIDES") test ! -z "$TERMUX_PKG_PROVIDES" && TERMUX_PKG_PROVIDES=$(package__add_prefix_glibc_to_package_list "$TERMUX_PKG_PROVIDES")
test ! -z "$TERMUX_PKG_SUGGESTS" && TERMUX_PKG_SUGGESTS=$(package__add_prefix_glibc_to_package_names "$TERMUX_PKG_SUGGESTS") test ! -z "$TERMUX_PKG_SUGGESTS" && TERMUX_PKG_SUGGESTS=$(package__add_prefix_glibc_to_package_list "$TERMUX_PKG_SUGGESTS")
fi fi
test ! -z "$TERMUX_PKG_BREAKS" && echo "Breaks: $TERMUX_PKG_BREAKS" >> DEBIAN/control test ! -z "$TERMUX_PKG_BREAKS" && echo "Breaks: $TERMUX_PKG_BREAKS" >> DEBIAN/control
test ! -z "$TERMUX_PKG_PRE_DEPENDS" && echo "Pre-Depends: $TERMUX_PKG_PRE_DEPENDS" >> DEBIAN/control test ! -z "$TERMUX_PKG_PRE_DEPENDS" && echo "Pre-Depends: $TERMUX_PKG_PRE_DEPENDS" >> DEBIAN/control

View File

@ -41,13 +41,13 @@ termux_step_create_pacman_package() {
BUILD_DATE=$(date +%s) BUILD_DATE=$(date +%s)
if [ "$TERMUX_GLOBAL_LIBRARY" = "true" ] && [ "$TERMUX_PACKAGE_LIBRARY" = "glibc" ]; then if [ "$TERMUX_GLOBAL_LIBRARY" = "true" ] && [ "$TERMUX_PACKAGE_LIBRARY" = "glibc" ]; then
test ! -z "$TERMUX_PKG_DEPENDS" && TERMUX_PKG_DEPENDS=$(package__add_prefix_glibc_to_package_names "$TERMUX_PKG_DEPENDS") test ! -z "$TERMUX_PKG_DEPENDS" && TERMUX_PKG_DEPENDS=$(package__add_prefix_glibc_to_package_list "$TERMUX_PKG_DEPENDS")
test ! -z "$TERMUX_PKG_BREAKS" && TERMUX_PKG_BREAKS=$(package__add_prefix_glibc_to_package_names "$TERMUX_PKG_BREAKS") test ! -z "$TERMUX_PKG_BREAKS" && TERMUX_PKG_BREAKS=$(package__add_prefix_glibc_to_package_list "$TERMUX_PKG_BREAKS")
test ! -z "$TERMUX_PKG_CONFLICTS" && TERMUX_PKG_CONFLICTS=$(package__add_prefix_glibc_to_package_names "$TERMUX_PKG_CONFLICTS") test ! -z "$TERMUX_PKG_CONFLICTS" && TERMUX_PKG_CONFLICTS=$(package__add_prefix_glibc_to_package_list "$TERMUX_PKG_CONFLICTS")
test ! -z "$TERMUX_PKG_RECOMMENDS" && TERMUX_PKG_RECOMMENDS=$(package__add_prefix_glibc_to_package_names "$TERMUX_PKG_RECOMMENDS") test ! -z "$TERMUX_PKG_RECOMMENDS" && TERMUX_PKG_RECOMMENDS=$(package__add_prefix_glibc_to_package_list "$TERMUX_PKG_RECOMMENDS")
test ! -z "$TERMUX_PKG_REPLACES" && TERMUX_PKG_REPLACES=$(package__add_prefix_glibc_to_package_names "$TERMUX_PKG_REPLACES") test ! -z "$TERMUX_PKG_REPLACES" && TERMUX_PKG_REPLACES=$(package__add_prefix_glibc_to_package_list "$TERMUX_PKG_REPLACES")
test ! -z "$TERMUX_PKG_PROVIDES" && TERMUX_PKG_PROVIDES=$(package__add_prefix_glibc_to_package_names "$TERMUX_PKG_PROVIDES") test ! -z "$TERMUX_PKG_PROVIDES" && TERMUX_PKG_PROVIDES=$(package__add_prefix_glibc_to_package_list "$TERMUX_PKG_PROVIDES")
test ! -z "$TERMUX_PKG_SUGGESTS" && TERMUX_PKG_SUGGESTS=$(package__add_prefix_glibc_to_package_names "$TERMUX_PKG_SUGGESTS") test ! -z "$TERMUX_PKG_SUGGESTS" && TERMUX_PKG_SUGGESTS=$(package__add_prefix_glibc_to_package_list "$TERMUX_PKG_SUGGESTS")
fi fi
# Package metadata. # Package metadata.

View File

@ -38,7 +38,7 @@ termux_step_setup_variables() {
if [ "$TERMUX_PACKAGE_LIBRARY" = "glibc" ]; then if [ "$TERMUX_PACKAGE_LIBRARY" = "glibc" ]; then
export TERMUX_PREFIX="$TERMUX_PREFIX/glibc" export TERMUX_PREFIX="$TERMUX_PREFIX/glibc"
if ! package__is_package_name_have_glibc_prefix "$TERMUX_PKG_NAME"; then if ! package__is_package_name_have_glibc_prefix "$TERMUX_PKG_NAME"; then
TERMUX_PKG_NAME="${TERMUX_PKG_NAME}-glibc" TERMUX_PKG_NAME="$(package__add_prefix_glibc_to_package_name ${TERMUX_PKG_NAME})"
fi fi
fi fi

View File

@ -6,6 +6,8 @@ import json, os, re, sys
from itertools import filterfalse from itertools import filterfalse
termux_arch = os.getenv('TERMUX_ARCH') or 'aarch64' termux_arch = os.getenv('TERMUX_ARCH') or 'aarch64'
termux_global_library = os.getenv('TERMUX_GLOBAL_LIBRARY') or 'false'
termux_pkg_library = os.getenv('TERMUX_PACKAGE_LIBRARY') or 'bionic'
def unique_everseen(iterable, key=None): def unique_everseen(iterable, key=None):
"""List unique elements, preserving order. Remember all elements ever seen. """List unique elements, preserving order. Remember all elements ever seen.
@ -84,8 +86,9 @@ class TermuxPackage(object):
def __init__(self, dir_path, fast_build_mode): def __init__(self, dir_path, fast_build_mode):
self.dir = dir_path self.dir = dir_path
self.name = os.path.basename(self.dir) self.name = os.path.basename(self.dir)
self.pkgs_cache = []
if "gpkg" in self.dir.split("/")[-2].split("-") and "glibc" not in self.name.split("-"): if "gpkg" in self.dir.split("/")[-2].split("-") and "glibc" not in self.name.split("-"):
self.name += "-glibc" self.name = self.name.replace("-static", "-glibc-static") if "static" == self.name.split("-")[-1] else f"{self.name}-glibc"
# search package build.sh # search package build.sh
build_sh_path = os.path.join(self.dir, 'build.sh') build_sh_path = os.path.join(self.dir, 'build.sh')
@ -96,7 +99,7 @@ class TermuxPackage(object):
self.antideps = parse_build_file_antidependencies(build_sh_path) self.antideps = parse_build_file_antidependencies(build_sh_path)
self.excluded_arches = parse_build_file_excluded_arches(build_sh_path) self.excluded_arches = parse_build_file_excluded_arches(build_sh_path)
if os.getenv('TERMUX_ON_DEVICE_BUILD') == "true" and os.getenv('TERMUX_PACKAGE_LIBRARY') == "bionic": if os.getenv('TERMUX_ON_DEVICE_BUILD') == "true" and termux_pkg_library == "bionic":
always_deps = ['libc++'] always_deps = ['libc++']
for dependency_name in always_deps: for dependency_name in always_deps:
if dependency_name not in self.deps and self.name not in always_deps: if dependency_name not in self.deps and self.name not in always_deps:
@ -136,13 +139,17 @@ class TermuxPackage(object):
"All the dependencies of the package, both direct and indirect." "All the dependencies of the package, both direct and indirect."
result = [] result = []
for dependency_name in sorted(self.deps): for dependency_name in sorted(self.deps):
if os.getenv('TERMUX_GLOBAL_LIBRARY') == "true" and os.getenv('TERMUX_PACKAGE_LIBRARY') == "glibc" and "glibc" not in dependency_name.split("-"): if termux_global_library == "true" and termux_pkg_library == "glibc" and "glibc" not in dependency_name.split("-"):
dependency_name+="-glibc" if "static" == dependency_name.split("-")[-1]:
dependency_package = pkgs_map[dependency_name if dependency_name in pkgs_map else dependency_name.replace("-glibc", "")] mod_dependency_name = dependency_name.replace("-static", "-glibc-static")
else: else:
mod_dependency_name = f"{dependency_name}-glibc"
dependency_name = mod_dependency_name if mod_dependency_name in pkgs_map else dependency_name
if dependency_name not in self.pkgs_cache:
self.pkgs_cache.append(dependency_name)
dependency_package = pkgs_map[dependency_name] dependency_package = pkgs_map[dependency_name]
result += dependency_package.recursive_dependencies(pkgs_map) result += dependency_package.recursive_dependencies(pkgs_map)
result += [dependency_package] result += [dependency_package]
return unique_everseen(result) return unique_everseen(result)
class TermuxSubPackage: class TermuxSubPackage:
@ -153,7 +160,7 @@ class TermuxSubPackage:
self.name = os.path.basename(subpackage_file_path).split('.subpackage.sh')[0] self.name = os.path.basename(subpackage_file_path).split('.subpackage.sh')[0]
if "gpkg" in subpackage_file_path.split("/")[-3].split("-") and "glibc" not in self.name.split("-"): if "gpkg" in subpackage_file_path.split("/")[-3].split("-") and "glibc" not in self.name.split("-"):
self.name += "-glibc" self.name = self.name.replace("-static", "-glibc-static") if "static" == self.name.split("-")[-1] else f"{self.name}-glibc"
self.parent = parent self.parent = parent
self.deps = set([parent.name]) self.deps = set([parent.name])
self.excluded_arches = set() self.excluded_arches = set()
@ -342,8 +349,8 @@ def main():
for pkg in build_order: for pkg in build_order:
pkg_name = pkg.name pkg_name = pkg.name
if os.getenv('TERMUX_GLOBAL_LIBRARY') == "true" and os.getenv('TERMUX_PACKAGE_LIBRARY') == "glibc" and "glibc" not in pkg_name.split("-"): if termux_global_library == "true" and termux_pkg_library == "glibc" and "glibc" not in pkg_name.split("-"):
pkg_name += "-glibc" pkg_name = pkg_name.replace("-static", "-glibc-static") if "static" == pkg_name.split("-")[-1] else f"{pkg_name}-glibc"
print("%-30s %s" % (pkg_name, pkg.dir)) print("%-30s %s" % (pkg_name, pkg.dir))
if __name__ == '__main__': if __name__ == '__main__':

View File

@ -74,6 +74,29 @@ package__is_package_name_have_glibc_prefix() {
##
# Adds the prefix `-glibc` to the package name
# .
# .
# **Parameters:**
# `package_name` - Package name.
# .
# **Returns:**
# Returns a modified package name.
# .
# .
# package__add_prefix_glibc_to_package_name `package_name`
##
package__add_prefix_glibc_to_package_name() {
if [[ "${1}" = *"-static" ]]; then
echo "${1/-static/-glibc-static}"
else
echo "${1}-glibc"
fi
}
## ##
# Adds the prefix `-glibc` to the list of package names if necessary. # Adds the prefix `-glibc` to the list of package names if necessary.
# . # .
@ -85,9 +108,9 @@ package__is_package_name_have_glibc_prefix() {
# Returns a modified list of package names. # Returns a modified list of package names.
# . # .
# . # .
# package__add_prefix_glibc_to_package_names `package_list` # package__add_prefix_glibc_to_package_list `package_list`
## ##
package__add_prefix_glibc_to_package_names() { package__add_prefix_glibc_to_package_list() {
local packages="" local packages=""
for __pkg in ${1//,/}; do for __pkg in ${1//,/}; do
if ! $(echo "${__pkg}" | grep -q -e '(' -e ')' -e '|'); then if ! $(echo "${__pkg}" | grep -q -e '(' -e ')' -e '|'); then
@ -96,11 +119,7 @@ package__add_prefix_glibc_to_package_names() {
fi fi
packages+=" " packages+=" "
if ! package__is_package_name_have_glibc_prefix "${__pkg}"; then if ! package__is_package_name_have_glibc_prefix "${__pkg}"; then
if $(echo "${__pkg}" | grep -q -e "-static"); then packages+="$(package__add_prefix_glibc_to_package_name ${__pkg})"
packages+="${__pkg/-static/}-glibc-static"
else
packages+="${__pkg}-glibc"
fi
else else
packages+="${__pkg}" packages+="${__pkg}"
fi fi