main/ldpath: drop

This package seems to have never actually been used by anything,
neither in pmaports no in pmbootstrap. Due to its last edit being
75feba5476 from 2018, its sufficient
to say that this package isn't useful anymore.

Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/9079>
This commit is contained in:
Aster Boese 2026-07-19 17:30:07 +02:00 committed by The Friendly Meow (merge) Bot
parent b704910cac
commit 3f76592e30
No known key found for this signature in database
3 changed files with 0 additions and 265 deletions

View file

@ -1,24 +0,0 @@
maintainer=""
pkgname=ldpath
pkgver=0.1
pkgrel=0
pkgdesc="Utility to add or remove paths from musl dynamic linker config file"
url="https://postmarketos.org/"
arch="noarch"
license="MIT"
source="
ldpath.sh
ldpath_test.sh
"
check() {
sh ldpath_test.sh
}
package() {
install -Dm755 "$srcdir/ldpath.sh" \
"$pkgdir/usr/bin/ldpath"
}
sha512sums="0bf8a3bcbb314f54653921d1757b35dc582997a4c058033a390c8b8a520f44541ba1791775ef5a63706da1b8cb86018bb9c7c7effce1c4ea65a2d33896e583ff ldpath.sh
e9ac37e88bc8fb6def9d550a58da0cc8c62dc14c49d6119e95560ff7d4c36eeb6dbbbce8006de6a170f6833b3ca54c80a2f173f67fefad4bf0927dc0a3d692b7 ldpath_test.sh"

View file

@ -1,168 +0,0 @@
#!/bin/sh
#
# Add or remove paths from musl dynamic linker
# path file (/etc/ld-musl-$ARCH.path)
#
# usage example:
# $ ldpath.sh add /usr/lib/libdrm-grate
default_ld_paths() {
echo "/lib:/usr/local/lib:/usr/lib"
}
###############################################
# Processor arch in the convention used by the
# musl dynamic linker.
# See musl source code: ldso/dynlink.c
# Arguments:
# kernel machine hardware name (uname -m)
# Returns:
# musl ldso processor arch
###############################################
kernel_arch_to_ldso_arch() {
local karch=$1
local ld_arch=""
case "$karch" in
armv7l)
ld_arch=armhf
;;
*)
ld_arch="$karch"
;;
esac
echo "$ld_arch"
}
default_ld_musl_file() {
local ld_arch
ld_arch=$(kernel_arch_to_ldso_arch "$(uname -m)")
echo "/etc/ld-musl-${ld_arch}.path"
}
###############################################
# Prepend a path to dynamic linker path file
# Arguments:
# Shared library directory
# ld musl path file
###############################################
add_path() {
local ld_library_path=$1
local ld_musl_file=$2
# Don't allow duplicates
if [ -f "$ld_musl_file" ]; then
if grep -q "$ld_library_path" "$ld_musl_file"; then
return 0
fi
fi
if [ -f "$ld_musl_file" ]; then
echo "${ld_library_path}:$(cat "$ld_musl_file")" > \
"$ld_musl_file"
else
echo "${ld_library_path}:$(default_ld_paths)" > "$ld_musl_file"
fi
}
###############################################
# Remove a path from dynamic linker path file
# Arguments:
# Shared library directory
# ld musl path file
###############################################
remove_path() {
local ld_library_path=$1
local ld_musl_file=$2
local conf
if [ ! -f "$ld_musl_file" ]; then
return 0
fi
# Don't remove default paths
if default_ld_paths | grep -q "$ld_library_path"; then
return 0
fi
conf=$(awk -v ld_path="$ld_library_path" '{n=split($0, array, ":")} END {
for (i in array) {
if (array[i]!=ld_path) {
printf array[i]
if (i<n)
printf ":"
}
}
}' < "$ld_musl_file")
echo "$conf" > "$ld_musl_file"
}
print_usage() {
local ld_arch
ld_arch=$(kernel_arch_to_ldso_arch "$(uname -m)")
echo "usage: $(basename "$1") [-h] [-f FILE] {add,remove} LD_LIBRARY_PATH"
echo ""
echo "Add or remove LD_LIBRARY_PATH in $(default_ld_musl_file)"
echo ""
echo "optional arguments:"
echo " -h, --help show this help message and exit"
echo " -f, --file override ld musl path file"
}
parse_args() {
local have_file_arg=""
while [ "${1:-}" != "" ]; do
case $1 in
add|remove)
ldpath_func="$1"
ldpath_arg="$2"
shift
shift
;;
-f|--file)
have_file_arg="1"
ld_musl_file="$2"
shift
shift
;;
-h|--help)
shift
return 0
;;
*)
echo "Invalid argument: $1"
shift
return 0
;;
esac
done
if [ -z "$ldpath_func" ] || [ -z "$ldpath_arg" ]; then
return 0
fi
if [ "$have_file_arg" = "1" ] &&
[ -z "$ld_musl_file" ]; then
return 0
fi
return 1
}
main() {
if [ -z "$ld_musl_file" ]; then
ld_musl_file=$(default_ld_musl_file)
fi
if [ "$ldpath_func" = "add" ]; then
add_path "$ldpath_arg" "$ld_musl_file"
elif [ "$ldpath_func" = "remove" ]; then
remove_path "$ldpath_arg" "$ld_musl_file"
fi
}
if parse_args "$@"; then
print_usage "$0"
return 1
fi
main "$0"

View file

@ -1,73 +0,0 @@
#!/bin/sh
testdir=$(mktemp -d)
ld_musl_file="${testdir}/ld-musl-test.path"
lib_path="/usr/lib/foo"
lib_path2="/usr/lib/bar"
# Create ldso config file and add a path to it.
sh ldpath.sh -f "$ld_musl_file" add "$lib_path"
if ! grep -q "$lib_path" "$ld_musl_file"; then
echo "ERROR: Did not find $lib_path in newly created config file."
exit 1
fi
# Add another path to config file.
sh ldpath.sh -f "$ld_musl_file" add "$lib_path2"
if ! grep -q "$lib_path2" "$ld_musl_file"; then
echo "ERROR: Did not find $lib_path2 in config file."
exit 1
fi
# Check that first path is still present
if ! grep -q "$lib_path" "$ld_musl_file"; then
echo "ERROR: Did not find $lib_path in config file."
exit 1
fi
# Remove the first path
sh ldpath.sh -f "$ld_musl_file" remove "$lib_path"
if grep -q "$lib_path" "$ld_musl_file"; then
echo "ERROR: $lib_path was not removed from config file."
exit 1
fi
# Check that second path is still present
if ! grep -q "$lib_path2" "$ld_musl_file"; then
echo "ERROR: $lib_path2 should not have been removed."
exit 1
fi
# Remove the second path
sh ldpath.sh -f "$ld_musl_file" remove "$lib_path2"
if grep -q "$lib_path2" "$ld_musl_file"; then
echo "ERROR: $lib_path2 was not removed from config file."
exit 1
fi
# Don't allow removal of default paths
_default_paths="/lib /usr/local/lib /usr/lib"
for _path in $_default_paths
do
sh ldpath.sh -f "$ld_musl_file" remove "$_path"
if ! grep -q "$_path" "$ld_musl_file"; then
echo "ERROR: Default path $_path should not have been removed."
exit 1
fi
done
# Don't allow duplicates
sh ldpath.sh -f "$ld_musl_file" add "$lib_path"
sh ldpath.sh -f "$ld_musl_file" add "$lib_path"
_count=$(grep -o "$lib_path" "$ld_musl_file" | wc -l)
if [ "$_count" -ne 1 ]; then
echo "ERROR: Multiple entries of $lib_path."
exit 1
fi
# Cleanup
rm -r "$testdir"
exit 0