45
45
set -- " ${POSITIONAL[@]} " # restore positional parameters
46
46
47
47
PKG_BIN_PATH=$1
48
- architecture=$( arch)
49
48
50
49
if [ ! -f " $PKG_BIN_PATH " ]; then
51
50
echo " $PKG_BIN_PATH " - No such file.;
@@ -56,26 +55,41 @@ if ! type zip > /dev/null 2>&1; then
56
55
echo " zip utility is not found. Please install it and re-run this script"
57
56
exit 1
58
57
fi
59
- function package_libc_via_pacman {
58
+
59
+ function pluck_so_files() {
60
+ sed -E ' /\.so$|\.so\.[0-9]+$/!d'
61
+ }
62
+
63
+ function package_libc_alpine() {
64
+ if grep --fixed-strings " Alpine Linux" < /etc/os-release > /dev/null; then
65
+ if type apk > /dev/null 2>&1 ; then
66
+ apk info --contents musl 2> /dev/null | pluck_so_files | sed ' s/^/\//'
67
+ fi
68
+ fi
69
+ }
70
+
71
+ function package_libc_pacman() {
60
72
if grep --extended-regexp " Arch Linux|Manjaro Linux" < /etc/os-release > /dev/null 2>&1 ; then
61
73
if type pacman > /dev/null 2>&1 ; then
62
- pacman --query --list --quiet glibc | sed -E ' /\.so$|\.so\.[0-9]+$/!d '
74
+ pacman --query --list --quiet glibc | pluck_so_files
63
75
fi
64
76
fi
65
77
}
66
78
67
- function package_libc_via_dpkg () {
79
+ function package_libc_dpkg () {
68
80
if type dpkg-query > /dev/null 2>&1 ; then
69
81
if [[ $( dpkg-query --listfiles libc6 | wc -l) -gt 0 ]]; then
70
- dpkg-query --listfiles libc6 | sed -E ' /\.so$|\.so\.[0-9]+$/!d '
82
+ dpkg-query --listfiles libc6 | pluck_so_files
71
83
fi
72
84
fi
73
85
}
74
86
75
- function package_libc_via_rpm() {
87
+ function package_libc_rpm() {
88
+ arch=$( uname -m)
89
+
76
90
if type rpm > /dev/null 2>&1 ; then
77
- if [[ $( rpm --query --list glibc.$architecture | wc -l) -gt 1 ]]; then
78
- rpm --query --list glibc.$architecture | sed -E ' /\.so$|\.so\.[0-9]+$/!d '
91
+ if [[ $( rpm --query --list glibc.$arch | wc -l) -gt 1 ]]; then
92
+ rpm --query --list glibc.$arch | pluck_so_files
79
93
fi
80
94
fi
81
95
}
@@ -99,9 +113,10 @@ PKG_LD=""
99
113
100
114
list=$( ldd " $PKG_BIN_PATH " | awk ' {print $(NF-1)}' )
101
115
libc_libs=()
102
- libc_libs+=($( package_libc_via_dpkg) )
103
- libc_libs+=($( package_libc_via_rpm) )
104
- libc_libs+=($( package_libc_via_pacman) )
116
+ libc_libs+=($( package_libc_dpkg) )
117
+ libc_libs+=($( package_libc_rpm) )
118
+ libc_libs+=($( package_libc_pacman) )
119
+ libc_libs+=($( package_libc_alpine) )
105
120
106
121
mkdir -p " $PKG_DIR /bin" " $PKG_DIR /lib"
107
122
0 commit comments