From a63eb22b1e88726512f5f72a4fd4a0ac9f1ff617 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Mon, 23 May 2022 22:03:51 -0400 Subject: [PATCH 1/4] Implement libc6-compat, rather than depending on it --- APKBUILD | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/APKBUILD b/APKBUILD index b0a0745..1e23ce7 100644 --- a/APKBUILD +++ b/APKBUILD @@ -5,6 +5,7 @@ pkgver="2.35" _pkgrel="0" pkgrel="1" pkgdesc="GNU C Library compatibility layer" +options="lib64" arch="x86_64" url="https://github.com/sgerrand/alpine-pkg-glibc" license="LGPL" @@ -14,7 +15,9 @@ subpackages="$pkgname-bin $pkgname-dev $pkgname-i18n" triggers="$pkgname-bin.trigger=/lib:/usr/lib:/usr/glibc-compat/lib" package() { - mkdir -p "$pkgdir/lib" "$pkgdir/usr/glibc-compat/lib/locale" "$pkgdir"/usr/glibc-compat/lib64 "$pkgdir"/etc + provides="libc6-compat" + conflicts="libc6-compat" + mkdir -p "$pkgdir/lib" "$pkgdir/lib64" "$pkgdir/usr/glibc-compat/lib/locale" "$pkgdir"/usr/glibc-compat/lib64 "$pkgdir"/etc cp -a "$srcdir"/usr "$pkgdir" cp "$srcdir"/ld.so.conf "$pkgdir"/usr/glibc-compat/etc/ld.so.conf rm "$pkgdir"/usr/glibc-compat/etc/rpc @@ -26,12 +29,13 @@ package() { rm -rf "$pkgdir"/usr/glibc-compat/share rm -rf "$pkgdir"/usr/glibc-compat/var ln -s /usr/glibc-compat/lib/ld-linux-x86-64.so.2 ${pkgdir}/lib/ld-linux-x86-64.so.2 + ln -s /usr/glibc-compat/lib/ld-linux-x86-64.so.2 ${pkgdir}/lib64/ld-linux-x86-64.so.2 ln -s /usr/glibc-compat/lib/ld-linux-x86-64.so.2 ${pkgdir}/usr/glibc-compat/lib64/ld-linux-x86-64.so.2 ln -s /usr/glibc-compat/etc/ld.so.cache ${pkgdir}/etc/ld.so.cache } bin() { - depends="$pkgname bash libc6-compat libgcc" + depends="$pkgname bash libgcc" mkdir -p "$subpkgdir"/usr/glibc-compat cp -a "$srcdir"/usr/glibc-compat/bin "$subpkgdir"/usr/glibc-compat cp -a "$srcdir"/usr/glibc-compat/sbin "$subpkgdir"/usr/glibc-compat From e1bad3a62f2d1ca85da63f4523c7bf5c6bda1f54 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Mon, 23 May 2022 22:08:31 -0400 Subject: [PATCH 2/4] Also depend on perl for mtrace's shebang --- APKBUILD | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/APKBUILD b/APKBUILD index 1e23ce7..70404ca 100644 --- a/APKBUILD +++ b/APKBUILD @@ -35,7 +35,9 @@ package() { } bin() { - depends="$pkgname bash libgcc" + depends="$pkgname libgcc" + depends="$depends bash" # shebang for ldd, sotrus, tzselect, xtrace + depends="$depends perl" # shebang for mtrace mkdir -p "$subpkgdir"/usr/glibc-compat cp -a "$srcdir"/usr/glibc-compat/bin "$subpkgdir"/usr/glibc-compat cp -a "$srcdir"/usr/glibc-compat/sbin "$subpkgdir"/usr/glibc-compat From 00157b0073e2528ae3c9deeb6b4d87b524246247 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Mon, 23 May 2022 19:32:28 -0400 Subject: [PATCH 3/4] Add a glibc-utils that can replace musl-utils --- APKBUILD | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/APKBUILD b/APKBUILD index 70404ca..58d2fed 100644 --- a/APKBUILD +++ b/APKBUILD @@ -11,7 +11,7 @@ url="https://github.com/sgerrand/alpine-pkg-glibc" license="LGPL" source="https://github.com/sgerrand/docker-glibc-builder/releases/download/$pkgver-$_pkgrel/glibc-bin-$pkgver-$_pkgrel-x86_64.tar.gz ld.so.conf" -subpackages="$pkgname-bin $pkgname-dev $pkgname-i18n" +subpackages="$pkgname-bin $pkgname-utils $pkgname-dev $pkgname-i18n" triggers="$pkgname-bin.trigger=/lib:/usr/lib:/usr/glibc-compat/lib" package() { @@ -35,6 +35,7 @@ package() { } bin() { + pkgdesc="executable programs that come with glibc, installed to /usr/glibc-compat/" depends="$pkgname libgcc" depends="$depends bash" # shebang for ldd, sotrus, tzselect, xtrace depends="$depends perl" # shebang for mtrace @@ -43,6 +44,19 @@ bin() { cp -a "$srcdir"/usr/glibc-compat/sbin "$subpkgdir"/usr/glibc-compat } +utils() { + pkgdesc="a replacement for musl-utils that uses the glibc versions of those utilities" + depends="$pkgname-bin" + provides="musl-utils" + conflicts="musl-utils" + mkdir -p "$subpkgdir"/usr/bin "$subpkgdir"/usr/sbin + ln -s /usr/glibc-compat/bin/getconf "$subpkgdir"/usr/bin + ln -s /usr/glibc-compat/bin/getent "$subpkgdir"/usr/bin + ln -s /usr/glibc-compat/bin/iconv "$subpkgdir"/usr/bin + ln -s /usr/glibc-compat/bin/ldd "$subpkgdir"/usr/bin + ln -s /usr/glibc-compat/sbin/ldconfig "$subpkgdir"/usr/sbin +} + i18n() { depends="$pkgname-bin" arch="noarch" From bd2e2426011620f83dfb034e2e56feec7c602811 Mon Sep 17 00:00:00 2001 From: "Khalifah K. Shabazz" <619281+b01@users.noreply.github.com> Date: Tue, 4 Jun 2024 07:05:52 -0400 Subject: [PATCH 4/4] chg: Conflicting Packages Updated the APK build to list libc6-compat as a conflicting package. resolves #179. --- APKBUILD | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/APKBUILD b/APKBUILD index 58d2fed..6e6fd54 100644 --- a/APKBUILD +++ b/APKBUILD @@ -15,7 +15,7 @@ subpackages="$pkgname-bin $pkgname-utils $pkgname-dev $pkgname-i18n" triggers="$pkgname-bin.trigger=/lib:/usr/lib:/usr/glibc-compat/lib" package() { - provides="libc6-compat" + provides="gnu-c-lib" conflicts="libc6-compat" mkdir -p "$pkgdir/lib" "$pkgdir/lib64" "$pkgdir/usr/glibc-compat/lib/locale" "$pkgdir"/usr/glibc-compat/lib64 "$pkgdir"/etc cp -a "$srcdir"/usr "$pkgdir" @@ -39,6 +39,7 @@ bin() { depends="$pkgname libgcc" depends="$depends bash" # shebang for ldd, sotrus, tzselect, xtrace depends="$depends perl" # shebang for mtrace + depends="$depends !libc6-compat" # conflicts with this package mkdir -p "$subpkgdir"/usr/glibc-compat cp -a "$srcdir"/usr/glibc-compat/bin "$subpkgdir"/usr/glibc-compat cp -a "$srcdir"/usr/glibc-compat/sbin "$subpkgdir"/usr/glibc-compat