* Re: [RFC][WIP] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack
2020-07-06 23:50 [PR PATCH] [RFC] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack ericonr
@ 2020-07-06 23:54 ` ericonr
2020-07-07 4:59 ` [PR PATCH] [Updated] " ericonr
` (21 subsequent siblings)
22 siblings, 0 replies; 24+ messages in thread
From: ericonr @ 2020-07-06 23:54 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 251 bytes --]
New comment by ericonr on void-packages repository
https://github.com/void-linux/void-packages/pull/23432#issuecomment-654520011
Comment:
@q66 your patch seems to be included in this release already
@pullmoll what do you think about this change?
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PR PATCH] [Updated] [RFC][WIP] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack
2020-07-06 23:50 [PR PATCH] [RFC] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack ericonr
2020-07-06 23:54 ` [RFC][WIP] " ericonr
@ 2020-07-07 4:59 ` ericonr
2020-07-07 20:48 ` kqo
` (20 subsequent siblings)
22 siblings, 0 replies; 24+ messages in thread
From: ericonr @ 2020-07-07 4:59 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 1150 bytes --]
There is an updated pull request by ericonr against master on the void-packages repository
https://github.com/ericonr/void-packages gcompat
https://github.com/void-linux/void-packages/pull/23432
[RFC][WIP] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack
Okay, so this is a biggie PR, and I do need help for making some decisions.
- So, basically, `gcompat` can do Spotify now, on Adélie. I am working on debugging it on Void, because it isn't working completely yet. If I can't get it working soon, I will leave the spotify commit out of this one.
- I enabled `obstack` in `gcompat`, by enabling the dynamic lib in `musl-obstack`. This completely fixes #22616, which needed obstack and `__strftime_l` symbols (the latter was fixed by gcompat itself).
- I split `musl-obstack-devel`.
- I switched package dependencies to `musl-obstack-devel`, but they ended up depending on the dynamic version of obstack. Is this bad? Is there some way to solve this? Perhaps two devel sub packages, one for dynamic and one for static linking?
A patch file from https://github.com/void-linux/void-packages/pull/23432.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-gcompat-23432.patch --]
[-- Type: text/x-diff, Size: 13649 bytes --]
From 231e7071843909aa9ccf4565c973e4414c18d62f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:26:32 -0300
Subject: [PATCH 1/9] musl-obstack: ship dynamic lib, split devel.
---
common/shlibs | 1 +
srcpkgs/musl-obstack/template | 16 +++++++++++++---
2 files changed, 14 insertions(+), 3 deletions(-)
diff --git a/common/shlibs b/common/shlibs
index 878ca5a5ac6..77242f9c58c 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -3980,3 +3980,4 @@ libselinux.so.1 libselinux-3.0_1
libsepol.so.1 libsepol-3.0_1
libfrrcares.so.0 libfrr-7.3.1_1
libhugetlbfs.so.0 libhugetlbfs-2.22_1
+libobstack.so.0 musl-obstack-1.1_4
diff --git a/srcpkgs/musl-obstack/template b/srcpkgs/musl-obstack/template
index 2cd2ddf2efc..4e8bee6afec 100644
--- a/srcpkgs/musl-obstack/template
+++ b/srcpkgs/musl-obstack/template
@@ -1,16 +1,15 @@
# Template file for 'musl-obstack'
pkgname=musl-obstack
version=1.1
-revision=3
+revision=4
archs="*-musl"
build_style=gnu-configure
-configure_args="--disable-shared"
hostmakedepends="automake libtool"
short_desc="Implementation of obstack for musl libc"
maintainer="Jürgen Buchmüller <pullmoll@t-online.de>"
license="GPL-2.0-or-later"
homepage="https://github.com/void-linux/musl-obstack"
-distfiles="https://github.com/void-linux/${pkgname}/archive/v${version}.tar.gz>${pkgname}-${version}.tar.gz"
+distfiles="${homepage}/archive/v${version}.tar.gz>${pkgname}-${version}.tar.gz"
checksum=52a216613e7d55e8725e43d017bb2d49a4b1ffa1e06da472f03c7f9875df7d0d
CFLAGS="-fPIC"
@@ -22,3 +21,14 @@ pre_configure() {
post_install() {
vinstall ${pkgname}.pc 644 usr/lib/pkgconfig
}
+
+musl-obstack-devel_package() {
+ depends="${sourcepkg}-${version}_${revision}"
+ short_desc+=" - development files"
+ pkg_install() {
+ vmove usr/include
+ vmove usr/lib/libobstack.a
+ vmove usr/lib/libobstack.so
+ vmove usr/lib/pkgconfig
+ }
+}
From d307fc01bdf517368476bcdd3feeda3378bd1bc5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 17:45:20 -0300
Subject: [PATCH 2/9] gcompat: update to 0.9.0.
Add musl-obstack dependency.
---
.../gcompat/patches/ppc-libc_start_main.patch | 67 -------------------
srcpkgs/gcompat/template | 10 +--
2 files changed, 6 insertions(+), 71 deletions(-)
delete mode 100644 srcpkgs/gcompat/patches/ppc-libc_start_main.patch
diff --git a/srcpkgs/gcompat/patches/ppc-libc_start_main.patch b/srcpkgs/gcompat/patches/ppc-libc_start_main.patch
deleted file mode 100644
index 518292745f7..00000000000
--- a/srcpkgs/gcompat/patches/ppc-libc_start_main.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From d30e49d10cefeb2748373127e1d1aba1184f653d Mon Sep 17 00:00:00 2001
-From: q66 <daniel@octaforge.org>
-Date: Sun, 10 Nov 2019 15:32:28 +0100
-Subject: [PATCH 1/1] internal: add a wrapper for __libc_start_main for
- PowerPC(64(le))
-
-This is necessary because the musl and glibc function signatures
-differ significantly.
----
- libgcompat/internal.c | 41 +++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 41 insertions(+)
-
-diff --git a/libgcompat/internal.c b/libgcompat/internal.c
-index 450c5e4..53ac429 100644
---- libgcompat/internal.c
-+++ libgcompat/internal.c
-@@ -2,6 +2,47 @@
- #include <stdio.h>
- #include <stdlib.h>
-
-+#if defined(__powerpc__)
-+
-+/* On PowerPC as well as ppc64, we need to fix up __libc_start_main as the
-+ * glibc and musl versions have wildly different signatures, which would
-+ * result in the arguments to __libc_start_main being completely wrong.
-+ *
-+ * Using dlsym in this context is mildly questionable as this is before
-+ * the full initialization has been done, but there is no better way.
-+ */
-+
-+#include <dlfcn.h>
-+
-+struct startup_info {
-+ void *sda_base;
-+ void *f_main;
-+ void *f_init;
-+ void *f_fini;
-+};
-+
-+typedef int (*start_main_t)(void *mf, int argc, char **argv);
-+
-+/*
-+ * ref: https://git.musl-libc.org/cgit/musl/tree/crt/crt1.c?id=90251cf
-+ * ref: https://git.musl-libc.org/cgit/musl/tree/src/env/__libc_start_main.c?id=90251cf#n71
-+ * ref: https://github.com/bminor/glibc/blob/5cb226d/sysdeps/unix/sysv/linux/powerpc/libc-start.c#L36
-+ */
-+int __libc_start_main(void *argc, void *argv, void *ev, void *auxv, void *fini,
-+ struct startup_info *si, long *p)
-+{
-+ (void)argc;
-+ (void)argv;
-+ (void)ev;
-+ (void)auxv;
-+ (void)fini;
-+ /* argc/argv from the stack, main from startup_info */
-+ start_main_t mainf = (start_main_t)dlsym(RTLD_NEXT, "__libc_start_main");
-+ return mainf(si->f_main, *p, (void *)(p + 1));
-+}
-+
-+#endif /* defined(__powerpc__) */
-+
- void GCOMPAT__panic(const char *fmt, ...)
- {
- va_list va;
---
-2.23.0
-
diff --git a/srcpkgs/gcompat/template b/srcpkgs/gcompat/template
index 237f97bd5e9..b2c1e9f8230 100644
--- a/srcpkgs/gcompat/template
+++ b/srcpkgs/gcompat/template
@@ -1,14 +1,16 @@
# Template file for 'gcompat'
pkgname=gcompat
-version=0.4.0
+version=0.9.0
revision=1
build_style=gnu-makefile
+hostmakedepends="pkg-config"
+makedepends="musl-obstack-devel"
short_desc="Compatibility layer to allow running glibc binaries on musl systems"
maintainer="Daniel James <djames@orcadian.net>"
license="ISC"
homepage="https://code.foxkit.us/adelie/gcompat"
distfiles="https://distfiles.AdelieLinux.org/source/${pkgname}/${pkgname}-${version}.tar.xz"
-checksum=9903fac7b70de3ba7736ae2987fa00bbafff7bfcf6a9c88731c292dff19e44e2
+checksum=4555d045d7d2831d11b907719005c5dfbc77642c32f8c0172d40883026ffaf53
build_options="libucontext"
desc_option_libucontext="Build with ucontext support via libucontext"
@@ -43,10 +45,10 @@ esac
make_build_args="LINKER_PATH=/usr/lib/${_musl} LOADER_NAME=${_glibc}
LIBGCOMPAT_PATH=/usr/lib/libgcompat.so.0 LOADER_PATH=/usr/lib/${LOADER_NAME}
- WITH_OBSTACK=no"
+ WITH_OBSTACK=musl-obstack"
make_install_args="LINKER_PATH=/usr/lib/${_musl} LOADER_NAME=${_glibc}
LIBGCOMPAT_PATH=/usr/lib/libgcompat.so.0 LOADER_PATH=/usr/lib/${LOADER_NAME}
- WITH_OBSTACK=no"
+ WITH_OBSTACK=musl-obstack"
if [ "$build_option_libucontext" ]; then
makedepends+=" libucontext-devel"
From 82ddcda6bd6562f6370fab4edbfcb9b1b3036f78 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:34:12 -0300
Subject: [PATCH 3/9] reiserfsprogs: use musl-obstack-devel.
---
srcpkgs/reiserfsprogs/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/reiserfsprogs/template b/srcpkgs/reiserfsprogs/template
index 121b03a95a4..0df0b6261a6 100644
--- a/srcpkgs/reiserfsprogs/template
+++ b/srcpkgs/reiserfsprogs/template
@@ -14,7 +14,7 @@ checksum=0e95b67fa7746a3c2d59145e9b9c2feb4a6be52853e83b497b182eae508e62e3
case "$XBPS_TARGET_MACHINE" in
*-musl)
- makedepends+=" musl-obstack"
+ makedepends+=" musl-obstack-devel"
LDFLAGS="-lobstack"
;;
esac
From 780ff01b6806f0335b63710a38092d29d4a9c49b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:34:40 -0300
Subject: [PATCH 4/9] perl-Proc-ProcessTable: use musl-obstack-devel.
---
srcpkgs/perl-Proc-ProcessTable/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/perl-Proc-ProcessTable/template b/srcpkgs/perl-Proc-ProcessTable/template
index 58c07f2cb22..aad0248969d 100644
--- a/srcpkgs/perl-Proc-ProcessTable/template
+++ b/srcpkgs/perl-Proc-ProcessTable/template
@@ -15,5 +15,5 @@ distfiles="${CPAN_SITE}/Proc/Proc-ProcessTable-${version}.tar.gz"
checksum=f8cc5054d78c35a0ce39fb75430b4ef402e2a99013d2ec37e7997f316594606c
case "$XBPS_TARGET_MACHINE" in
- *-musl) makedepends+=" musl-obstack" ;;
+ *-musl) makedepends+=" musl-obstack-devel" ;;
esac
From 8677b937af474e47a1143696a8f8f1400a40bd42 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:00 -0300
Subject: [PATCH 5/9] pahole: use musl-obstack-devel.
---
srcpkgs/pahole/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/pahole/template b/srcpkgs/pahole/template
index e504d3479f7..085eee87032 100644
--- a/srcpkgs/pahole/template
+++ b/srcpkgs/pahole/template
@@ -16,7 +16,7 @@ checksum="51e35041ce43ed08922037a1ee9e415aff1590e0d8d7cbe3e2b003f388db0a8a
a616ba2ea72d00b4022689b17f4a78365379e3040d0f1a66d28eba52c528e480"
case $XBPS_TARGET_MACHINE in
- *-musl) makedepends+=" musl-obstack argp-standalone"
+ *-musl) makedepends+=" musl-obstack-devel argp-standalone"
esac
pre_patch() {
From 5cf25358f0a3d7f532899ea63a360ce19e92f53a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:12 -0300
Subject: [PATCH 6/9] hidrd: use musl-obstack-devel.
---
srcpkgs/hidrd/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/hidrd/template b/srcpkgs/hidrd/template
index 1bb75b98a0c..c9aac4e7f0c 100644
--- a/srcpkgs/hidrd/template
+++ b/srcpkgs/hidrd/template
@@ -14,7 +14,7 @@ checksum=0147993dedb3066873d22fab1dc3aafec78d8c5783d168cccc43126f0fc3b307
case $XBPS_TARGET_MACHINE in
*-musl)
configure_args+=' LIBS=-lobstack'
- makedepends+=" musl-obstack"
+ makedepends+=" musl-obstack-devel"
;;
esac
From fa7af81d9721f05d057a71c6651e65b8792d363f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:23 -0300
Subject: [PATCH 7/9] elfutils: use musl-obstack-devel.
---
srcpkgs/elfutils/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/elfutils/template b/srcpkgs/elfutils/template
index ed40864be48..4a0f4c757ce 100644
--- a/srcpkgs/elfutils/template
+++ b/srcpkgs/elfutils/template
@@ -16,7 +16,7 @@ checksum=b827b6e35c59d188ba97d7cf148fa8dc6f5c68eb6c5981888dfdbb758c0b569d
CFLAGS="-Wno-error -Wno-error=null-dereference"
case "$XBPS_TARGET_MACHINE" in
- *-musl) makedepends+=" argp-standalone musl-fts-devel musl-obstack" ;;
+ *-musl) makedepends+=" argp-standalone musl-fts-devel musl-obstack-devel" ;;
esac
if [ "$CROSS_BUILD" ]; then
From 94d17b041b9995406cfc3ce8899d0dccf9fac835 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:46 -0300
Subject: [PATCH 8/9] cronie: use musl-obstack-devel.
---
srcpkgs/cronie/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/cronie/template b/srcpkgs/cronie/template
index cd00937e7f5..e3486b38f9b 100644
--- a/srcpkgs/cronie/template
+++ b/srcpkgs/cronie/template
@@ -34,7 +34,7 @@ alternatives="
"
if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
- makedepends+=" musl-obstack"
+ makedepends+=" musl-obstack-devel"
fi
pre_configure() {
From 903120e238e859ee8693456ae8a3bee2319ec8c2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 17:45:34 -0300
Subject: [PATCH 9/9] spotify: enable musl support.
Requires gcompat and patchelf, follows instructions from
https://catfox.life/2020/07/06/live-from-adelie-streaming-spotify-on-musl/
---
srcpkgs/spotify/INSTALL | 18 ++++++++++++++++--
srcpkgs/spotify/template | 8 +++++++-
2 files changed, 23 insertions(+), 3 deletions(-)
diff --git a/srcpkgs/spotify/INSTALL b/srcpkgs/spotify/INSTALL
index 1cf70985dcb..6d557133403 100644
--- a/srcpkgs/spotify/INSTALL
+++ b/srcpkgs/spotify/INSTALL
@@ -1,7 +1,7 @@
# INSTALL for 'spotify'
# Fetching proprietary binaries at install-time
-_BUILDDIR="/tmp/spotify.build"
+_BUILDDIR="$(mktemp -d /tmp/spotify.build.XXXXX)"
_LIBS=$(ldconfig -vNX -n usr/lib 2>/dev/null)
linklib() {
@@ -10,8 +10,8 @@ linklib() {
}
if test "$ACTION" = "post"; then
+ # get checksum and version information
. usr/share/spotify/pkgdata
- mkdir -p "$_BUILDDIR"
(
set -e
cd "$_BUILDDIR"
@@ -27,15 +27,29 @@ if test "$ACTION" = "post"; then
exit 1;
fi
+ # delete old package version
[ -d "/usr/share/spotify/spotify-client" ] && rm -rf usr/share/spotify/spotify-client
+
+ # copy data
mv -f "${_BUILDDIR}/usr/share/spotify" usr/share/spotify/spotify-client
for _s in 16 22 24 32 48 64 128 256 512; do
mkdir -p "/usr/share/icons/hicolor/${_s}x${_s}/apps"
ln -sf "/usr/share/spotify/spotify-client/icons/spotify-linux-${_s}.png" "/usr/share/icons/hicolor/${_s}x${_s}/apps/spotify-client.png"
done
+
mkdir -p usr/share/applications
ln -sf /usr/share/spotify/spotify-client/spotify.desktop usr/share/applications/spotify.desktop
+
+ # https://catfox.life/2020/07/06/live-from-adelie-streaming-spotify-on-musl/
+ if [ "$(xbps-uhelper arch)" = "x86_64-musl" ]; then
+ for _l in libm.so.6 libdl.so.2; do
+ patchelf --remove-needed "${_l}" usr/share/spotify/spotify-client/spotify
+ done
+ fi
+
linklib "libssl" "1.0.0"
linklib "libcrypto" "1.0.0"
+
+ # cleanup
rm -r "$_BUILDDIR"
fi
diff --git a/srcpkgs/spotify/template b/srcpkgs/spotify/template
index d9ec603bf6a..9942f8b9f47 100644
--- a/srcpkgs/spotify/template
+++ b/srcpkgs/spotify/template
@@ -2,7 +2,7 @@
pkgname=spotify
version=1.1.26
revision=1
-archs="x86_64"
+archs="x86_64*"
create_wrksrc=yes
build_style=fetch
depends="binutils gtk+ nss GConf libXScrnSaver libatomic"
@@ -13,6 +13,12 @@ homepage="https://www.spotify.com"
repository=nonfree
_sversion=".501.gbe11e53b-15_amd64"
_schecksum="54ba1bd91020913273c469591cedeebfa34aedc250033dde7c8b3fded94a9c71"
+
+if [ "$XBPS_TARGET_LIBC" = musl ]; then
+ # musl requires compat library and modifying the binary
+ depends+=" gcompat>=0.9.0 patchelf"
+fi
+
do_install() {
vbin ${FILESDIR}/spotify
vmkdir usr/share/spotify
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [RFC][WIP] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack
2020-07-06 23:50 [PR PATCH] [RFC] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack ericonr
2020-07-06 23:54 ` [RFC][WIP] " ericonr
2020-07-07 4:59 ` [PR PATCH] [Updated] " ericonr
@ 2020-07-07 20:48 ` kqo
2020-07-07 20:52 ` ericonr
` (19 subsequent siblings)
22 siblings, 0 replies; 24+ messages in thread
From: kqo @ 2020-07-07 20:48 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 360 bytes --]
New comment by kqo on void-packages repository
https://github.com/void-linux/void-packages/pull/23432#issuecomment-655125084
Comment:
This fixes my issue (#22616) perfectly, thank you so much! :tada:
I had to create a musl-obstack-devel symlink for it to build. Looks like the CI is having the same issue with finding the musl-obstack-devel package too.
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [RFC][WIP] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack
2020-07-06 23:50 [PR PATCH] [RFC] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack ericonr
` (2 preceding siblings ...)
2020-07-07 20:48 ` kqo
@ 2020-07-07 20:52 ` ericonr
2020-07-07 20:52 ` [PR PATCH] [Updated] " ericonr
` (18 subsequent siblings)
22 siblings, 0 replies; 24+ messages in thread
From: ericonr @ 2020-07-07 20:52 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 186 bytes --]
New comment by ericonr on void-packages repository
https://github.com/void-linux/void-packages/pull/23432#issuecomment-655127398
Comment:
Oof, I think I forgot to commit that. Thanks!
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PR PATCH] [Updated] [RFC][WIP] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack
2020-07-06 23:50 [PR PATCH] [RFC] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack ericonr
` (3 preceding siblings ...)
2020-07-07 20:52 ` ericonr
@ 2020-07-07 20:52 ` ericonr
2020-07-07 20:53 ` ericonr
` (17 subsequent siblings)
22 siblings, 0 replies; 24+ messages in thread
From: ericonr @ 2020-07-07 20:52 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 1150 bytes --]
There is an updated pull request by ericonr against master on the void-packages repository
https://github.com/ericonr/void-packages gcompat
https://github.com/void-linux/void-packages/pull/23432
[RFC][WIP] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack
Okay, so this is a biggie PR, and I do need help for making some decisions.
- So, basically, `gcompat` can do Spotify now, on Adélie. I am working on debugging it on Void, because it isn't working completely yet. If I can't get it working soon, I will leave the spotify commit out of this one.
- I enabled `obstack` in `gcompat`, by enabling the dynamic lib in `musl-obstack`. This completely fixes #22616, which needed obstack and `__strftime_l` symbols (the latter was fixed by gcompat itself).
- I split `musl-obstack-devel`.
- I switched package dependencies to `musl-obstack-devel`, but they ended up depending on the dynamic version of obstack. Is this bad? Is there some way to solve this? Perhaps two devel sub packages, one for dynamic and one for static linking?
A patch file from https://github.com/void-linux/void-packages/pull/23432.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-gcompat-23432.patch --]
[-- Type: text/x-diff, Size: 13958 bytes --]
From d0bf8ffa0a478770774afd0e9eda02b756b7f56e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:26:32 -0300
Subject: [PATCH 1/9] musl-obstack: ship dynamic lib, split devel.
---
common/shlibs | 1 +
srcpkgs/musl-obstack-devel | 1 +
srcpkgs/musl-obstack/template | 16 +++++++++++++---
3 files changed, 15 insertions(+), 3 deletions(-)
create mode 120000 srcpkgs/musl-obstack-devel
diff --git a/common/shlibs b/common/shlibs
index 878ca5a5ac6..77242f9c58c 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -3980,3 +3980,4 @@ libselinux.so.1 libselinux-3.0_1
libsepol.so.1 libsepol-3.0_1
libfrrcares.so.0 libfrr-7.3.1_1
libhugetlbfs.so.0 libhugetlbfs-2.22_1
+libobstack.so.0 musl-obstack-1.1_4
diff --git a/srcpkgs/musl-obstack-devel b/srcpkgs/musl-obstack-devel
new file mode 120000
index 00000000000..e21ca66cded
--- /dev/null
+++ b/srcpkgs/musl-obstack-devel
@@ -0,0 +1 @@
+musl-obstack
\ No newline at end of file
diff --git a/srcpkgs/musl-obstack/template b/srcpkgs/musl-obstack/template
index 2cd2ddf2efc..4e8bee6afec 100644
--- a/srcpkgs/musl-obstack/template
+++ b/srcpkgs/musl-obstack/template
@@ -1,16 +1,15 @@
# Template file for 'musl-obstack'
pkgname=musl-obstack
version=1.1
-revision=3
+revision=4
archs="*-musl"
build_style=gnu-configure
-configure_args="--disable-shared"
hostmakedepends="automake libtool"
short_desc="Implementation of obstack for musl libc"
maintainer="Jürgen Buchmüller <pullmoll@t-online.de>"
license="GPL-2.0-or-later"
homepage="https://github.com/void-linux/musl-obstack"
-distfiles="https://github.com/void-linux/${pkgname}/archive/v${version}.tar.gz>${pkgname}-${version}.tar.gz"
+distfiles="${homepage}/archive/v${version}.tar.gz>${pkgname}-${version}.tar.gz"
checksum=52a216613e7d55e8725e43d017bb2d49a4b1ffa1e06da472f03c7f9875df7d0d
CFLAGS="-fPIC"
@@ -22,3 +21,14 @@ pre_configure() {
post_install() {
vinstall ${pkgname}.pc 644 usr/lib/pkgconfig
}
+
+musl-obstack-devel_package() {
+ depends="${sourcepkg}-${version}_${revision}"
+ short_desc+=" - development files"
+ pkg_install() {
+ vmove usr/include
+ vmove usr/lib/libobstack.a
+ vmove usr/lib/libobstack.so
+ vmove usr/lib/pkgconfig
+ }
+}
From 88d9bb6014cbbd2204162199286191f08faf1134 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 17:45:20 -0300
Subject: [PATCH 2/9] gcompat: update to 0.9.0.
Add musl-obstack dependency.
---
.../gcompat/patches/ppc-libc_start_main.patch | 67 -------------------
srcpkgs/gcompat/template | 10 +--
2 files changed, 6 insertions(+), 71 deletions(-)
delete mode 100644 srcpkgs/gcompat/patches/ppc-libc_start_main.patch
diff --git a/srcpkgs/gcompat/patches/ppc-libc_start_main.patch b/srcpkgs/gcompat/patches/ppc-libc_start_main.patch
deleted file mode 100644
index 518292745f7..00000000000
--- a/srcpkgs/gcompat/patches/ppc-libc_start_main.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From d30e49d10cefeb2748373127e1d1aba1184f653d Mon Sep 17 00:00:00 2001
-From: q66 <daniel@octaforge.org>
-Date: Sun, 10 Nov 2019 15:32:28 +0100
-Subject: [PATCH 1/1] internal: add a wrapper for __libc_start_main for
- PowerPC(64(le))
-
-This is necessary because the musl and glibc function signatures
-differ significantly.
----
- libgcompat/internal.c | 41 +++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 41 insertions(+)
-
-diff --git a/libgcompat/internal.c b/libgcompat/internal.c
-index 450c5e4..53ac429 100644
---- libgcompat/internal.c
-+++ libgcompat/internal.c
-@@ -2,6 +2,47 @@
- #include <stdio.h>
- #include <stdlib.h>
-
-+#if defined(__powerpc__)
-+
-+/* On PowerPC as well as ppc64, we need to fix up __libc_start_main as the
-+ * glibc and musl versions have wildly different signatures, which would
-+ * result in the arguments to __libc_start_main being completely wrong.
-+ *
-+ * Using dlsym in this context is mildly questionable as this is before
-+ * the full initialization has been done, but there is no better way.
-+ */
-+
-+#include <dlfcn.h>
-+
-+struct startup_info {
-+ void *sda_base;
-+ void *f_main;
-+ void *f_init;
-+ void *f_fini;
-+};
-+
-+typedef int (*start_main_t)(void *mf, int argc, char **argv);
-+
-+/*
-+ * ref: https://git.musl-libc.org/cgit/musl/tree/crt/crt1.c?id=90251cf
-+ * ref: https://git.musl-libc.org/cgit/musl/tree/src/env/__libc_start_main.c?id=90251cf#n71
-+ * ref: https://github.com/bminor/glibc/blob/5cb226d/sysdeps/unix/sysv/linux/powerpc/libc-start.c#L36
-+ */
-+int __libc_start_main(void *argc, void *argv, void *ev, void *auxv, void *fini,
-+ struct startup_info *si, long *p)
-+{
-+ (void)argc;
-+ (void)argv;
-+ (void)ev;
-+ (void)auxv;
-+ (void)fini;
-+ /* argc/argv from the stack, main from startup_info */
-+ start_main_t mainf = (start_main_t)dlsym(RTLD_NEXT, "__libc_start_main");
-+ return mainf(si->f_main, *p, (void *)(p + 1));
-+}
-+
-+#endif /* defined(__powerpc__) */
-+
- void GCOMPAT__panic(const char *fmt, ...)
- {
- va_list va;
---
-2.23.0
-
diff --git a/srcpkgs/gcompat/template b/srcpkgs/gcompat/template
index 237f97bd5e9..b2c1e9f8230 100644
--- a/srcpkgs/gcompat/template
+++ b/srcpkgs/gcompat/template
@@ -1,14 +1,16 @@
# Template file for 'gcompat'
pkgname=gcompat
-version=0.4.0
+version=0.9.0
revision=1
build_style=gnu-makefile
+hostmakedepends="pkg-config"
+makedepends="musl-obstack-devel"
short_desc="Compatibility layer to allow running glibc binaries on musl systems"
maintainer="Daniel James <djames@orcadian.net>"
license="ISC"
homepage="https://code.foxkit.us/adelie/gcompat"
distfiles="https://distfiles.AdelieLinux.org/source/${pkgname}/${pkgname}-${version}.tar.xz"
-checksum=9903fac7b70de3ba7736ae2987fa00bbafff7bfcf6a9c88731c292dff19e44e2
+checksum=4555d045d7d2831d11b907719005c5dfbc77642c32f8c0172d40883026ffaf53
build_options="libucontext"
desc_option_libucontext="Build with ucontext support via libucontext"
@@ -43,10 +45,10 @@ esac
make_build_args="LINKER_PATH=/usr/lib/${_musl} LOADER_NAME=${_glibc}
LIBGCOMPAT_PATH=/usr/lib/libgcompat.so.0 LOADER_PATH=/usr/lib/${LOADER_NAME}
- WITH_OBSTACK=no"
+ WITH_OBSTACK=musl-obstack"
make_install_args="LINKER_PATH=/usr/lib/${_musl} LOADER_NAME=${_glibc}
LIBGCOMPAT_PATH=/usr/lib/libgcompat.so.0 LOADER_PATH=/usr/lib/${LOADER_NAME}
- WITH_OBSTACK=no"
+ WITH_OBSTACK=musl-obstack"
if [ "$build_option_libucontext" ]; then
makedepends+=" libucontext-devel"
From 4711ced7b5e49980fd843234050d2c7dc02f1913 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:34:12 -0300
Subject: [PATCH 3/9] reiserfsprogs: use musl-obstack-devel.
---
srcpkgs/reiserfsprogs/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/reiserfsprogs/template b/srcpkgs/reiserfsprogs/template
index 121b03a95a4..0df0b6261a6 100644
--- a/srcpkgs/reiserfsprogs/template
+++ b/srcpkgs/reiserfsprogs/template
@@ -14,7 +14,7 @@ checksum=0e95b67fa7746a3c2d59145e9b9c2feb4a6be52853e83b497b182eae508e62e3
case "$XBPS_TARGET_MACHINE" in
*-musl)
- makedepends+=" musl-obstack"
+ makedepends+=" musl-obstack-devel"
LDFLAGS="-lobstack"
;;
esac
From 45994c6e5510f1bc0cef559cdc8c4f2465f91c8b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:34:40 -0300
Subject: [PATCH 4/9] perl-Proc-ProcessTable: use musl-obstack-devel.
---
srcpkgs/perl-Proc-ProcessTable/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/perl-Proc-ProcessTable/template b/srcpkgs/perl-Proc-ProcessTable/template
index 58c07f2cb22..aad0248969d 100644
--- a/srcpkgs/perl-Proc-ProcessTable/template
+++ b/srcpkgs/perl-Proc-ProcessTable/template
@@ -15,5 +15,5 @@ distfiles="${CPAN_SITE}/Proc/Proc-ProcessTable-${version}.tar.gz"
checksum=f8cc5054d78c35a0ce39fb75430b4ef402e2a99013d2ec37e7997f316594606c
case "$XBPS_TARGET_MACHINE" in
- *-musl) makedepends+=" musl-obstack" ;;
+ *-musl) makedepends+=" musl-obstack-devel" ;;
esac
From 360eff7484eee9bee9df1ee564b8371b4feb0d45 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:00 -0300
Subject: [PATCH 5/9] pahole: use musl-obstack-devel.
---
srcpkgs/pahole/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/pahole/template b/srcpkgs/pahole/template
index e504d3479f7..085eee87032 100644
--- a/srcpkgs/pahole/template
+++ b/srcpkgs/pahole/template
@@ -16,7 +16,7 @@ checksum="51e35041ce43ed08922037a1ee9e415aff1590e0d8d7cbe3e2b003f388db0a8a
a616ba2ea72d00b4022689b17f4a78365379e3040d0f1a66d28eba52c528e480"
case $XBPS_TARGET_MACHINE in
- *-musl) makedepends+=" musl-obstack argp-standalone"
+ *-musl) makedepends+=" musl-obstack-devel argp-standalone"
esac
pre_patch() {
From 876e29bd12fa49c6a4982e4d5c8f0ca808a831f4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:12 -0300
Subject: [PATCH 6/9] hidrd: use musl-obstack-devel.
---
srcpkgs/hidrd/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/hidrd/template b/srcpkgs/hidrd/template
index 1bb75b98a0c..c9aac4e7f0c 100644
--- a/srcpkgs/hidrd/template
+++ b/srcpkgs/hidrd/template
@@ -14,7 +14,7 @@ checksum=0147993dedb3066873d22fab1dc3aafec78d8c5783d168cccc43126f0fc3b307
case $XBPS_TARGET_MACHINE in
*-musl)
configure_args+=' LIBS=-lobstack'
- makedepends+=" musl-obstack"
+ makedepends+=" musl-obstack-devel"
;;
esac
From a30b99abfb11b94359886ea794ef55a4c5ecedb0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:23 -0300
Subject: [PATCH 7/9] elfutils: use musl-obstack-devel.
---
srcpkgs/elfutils/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/elfutils/template b/srcpkgs/elfutils/template
index ed40864be48..4a0f4c757ce 100644
--- a/srcpkgs/elfutils/template
+++ b/srcpkgs/elfutils/template
@@ -16,7 +16,7 @@ checksum=b827b6e35c59d188ba97d7cf148fa8dc6f5c68eb6c5981888dfdbb758c0b569d
CFLAGS="-Wno-error -Wno-error=null-dereference"
case "$XBPS_TARGET_MACHINE" in
- *-musl) makedepends+=" argp-standalone musl-fts-devel musl-obstack" ;;
+ *-musl) makedepends+=" argp-standalone musl-fts-devel musl-obstack-devel" ;;
esac
if [ "$CROSS_BUILD" ]; then
From e395feb30eea20f48899523bbe30f6514a94ca23 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:46 -0300
Subject: [PATCH 8/9] cronie: use musl-obstack-devel.
---
srcpkgs/cronie/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/cronie/template b/srcpkgs/cronie/template
index cd00937e7f5..e3486b38f9b 100644
--- a/srcpkgs/cronie/template
+++ b/srcpkgs/cronie/template
@@ -34,7 +34,7 @@ alternatives="
"
if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
- makedepends+=" musl-obstack"
+ makedepends+=" musl-obstack-devel"
fi
pre_configure() {
From 3a942cf1e97aced52f38f59a8b64750baa2b5932 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 17:45:34 -0300
Subject: [PATCH 9/9] spotify: enable musl support.
Requires gcompat and patchelf, follows instructions from
https://catfox.life/2020/07/06/live-from-adelie-streaming-spotify-on-musl/
---
srcpkgs/spotify/INSTALL | 18 ++++++++++++++++--
srcpkgs/spotify/template | 8 +++++++-
2 files changed, 23 insertions(+), 3 deletions(-)
diff --git a/srcpkgs/spotify/INSTALL b/srcpkgs/spotify/INSTALL
index 1cf70985dcb..6d557133403 100644
--- a/srcpkgs/spotify/INSTALL
+++ b/srcpkgs/spotify/INSTALL
@@ -1,7 +1,7 @@
# INSTALL for 'spotify'
# Fetching proprietary binaries at install-time
-_BUILDDIR="/tmp/spotify.build"
+_BUILDDIR="$(mktemp -d /tmp/spotify.build.XXXXX)"
_LIBS=$(ldconfig -vNX -n usr/lib 2>/dev/null)
linklib() {
@@ -10,8 +10,8 @@ linklib() {
}
if test "$ACTION" = "post"; then
+ # get checksum and version information
. usr/share/spotify/pkgdata
- mkdir -p "$_BUILDDIR"
(
set -e
cd "$_BUILDDIR"
@@ -27,15 +27,29 @@ if test "$ACTION" = "post"; then
exit 1;
fi
+ # delete old package version
[ -d "/usr/share/spotify/spotify-client" ] && rm -rf usr/share/spotify/spotify-client
+
+ # copy data
mv -f "${_BUILDDIR}/usr/share/spotify" usr/share/spotify/spotify-client
for _s in 16 22 24 32 48 64 128 256 512; do
mkdir -p "/usr/share/icons/hicolor/${_s}x${_s}/apps"
ln -sf "/usr/share/spotify/spotify-client/icons/spotify-linux-${_s}.png" "/usr/share/icons/hicolor/${_s}x${_s}/apps/spotify-client.png"
done
+
mkdir -p usr/share/applications
ln -sf /usr/share/spotify/spotify-client/spotify.desktop usr/share/applications/spotify.desktop
+
+ # https://catfox.life/2020/07/06/live-from-adelie-streaming-spotify-on-musl/
+ if [ "$(xbps-uhelper arch)" = "x86_64-musl" ]; then
+ for _l in libm.so.6 libdl.so.2; do
+ patchelf --remove-needed "${_l}" usr/share/spotify/spotify-client/spotify
+ done
+ fi
+
linklib "libssl" "1.0.0"
linklib "libcrypto" "1.0.0"
+
+ # cleanup
rm -r "$_BUILDDIR"
fi
diff --git a/srcpkgs/spotify/template b/srcpkgs/spotify/template
index d9ec603bf6a..9942f8b9f47 100644
--- a/srcpkgs/spotify/template
+++ b/srcpkgs/spotify/template
@@ -2,7 +2,7 @@
pkgname=spotify
version=1.1.26
revision=1
-archs="x86_64"
+archs="x86_64*"
create_wrksrc=yes
build_style=fetch
depends="binutils gtk+ nss GConf libXScrnSaver libatomic"
@@ -13,6 +13,12 @@ homepage="https://www.spotify.com"
repository=nonfree
_sversion=".501.gbe11e53b-15_amd64"
_schecksum="54ba1bd91020913273c469591cedeebfa34aedc250033dde7c8b3fded94a9c71"
+
+if [ "$XBPS_TARGET_LIBC" = musl ]; then
+ # musl requires compat library and modifying the binary
+ depends+=" gcompat>=0.9.0 patchelf"
+fi
+
do_install() {
vbin ${FILESDIR}/spotify
vmkdir usr/share/spotify
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PR PATCH] [Updated] [RFC][WIP] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack
2020-07-06 23:50 [PR PATCH] [RFC] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack ericonr
` (4 preceding siblings ...)
2020-07-07 20:52 ` [PR PATCH] [Updated] " ericonr
@ 2020-07-07 20:53 ` ericonr
2020-07-09 2:50 ` ericonr
` (16 subsequent siblings)
22 siblings, 0 replies; 24+ messages in thread
From: ericonr @ 2020-07-07 20:53 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 1150 bytes --]
There is an updated pull request by ericonr against master on the void-packages repository
https://github.com/ericonr/void-packages gcompat
https://github.com/void-linux/void-packages/pull/23432
[RFC][WIP] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack
Okay, so this is a biggie PR, and I do need help for making some decisions.
- So, basically, `gcompat` can do Spotify now, on Adélie. I am working on debugging it on Void, because it isn't working completely yet. If I can't get it working soon, I will leave the spotify commit out of this one.
- I enabled `obstack` in `gcompat`, by enabling the dynamic lib in `musl-obstack`. This completely fixes #22616, which needed obstack and `__strftime_l` symbols (the latter was fixed by gcompat itself).
- I split `musl-obstack-devel`.
- I switched package dependencies to `musl-obstack-devel`, but they ended up depending on the dynamic version of obstack. Is this bad? Is there some way to solve this? Perhaps two devel sub packages, one for dynamic and one for static linking?
A patch file from https://github.com/void-linux/void-packages/pull/23432.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-gcompat-23432.patch --]
[-- Type: text/x-diff, Size: 13970 bytes --]
From 7d87d050261f5a07268ea772e02b3e0c87c1b02a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:26:32 -0300
Subject: [PATCH 1/9] musl-obstack: ship dynamic lib, split devel.
---
common/shlibs | 1 +
srcpkgs/musl-obstack-devel | 1 +
srcpkgs/musl-obstack/template | 16 +++++++++++++---
3 files changed, 15 insertions(+), 3 deletions(-)
create mode 120000 srcpkgs/musl-obstack-devel
diff --git a/common/shlibs b/common/shlibs
index 86ee9fcb734..31272a3530a 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -3978,3 +3978,4 @@ libsepol.so.1 libsepol-3.0_1
libfrrcares.so.0 libfrr-7.3.1_1
libhugetlbfs.so.0 libhugetlbfs-2.22_1
libdolphinvcs.so.5 dolphin-plugins-20.04.2_1
+libobstack.so.0 musl-obstack-1.1_4
diff --git a/srcpkgs/musl-obstack-devel b/srcpkgs/musl-obstack-devel
new file mode 120000
index 00000000000..e21ca66cded
--- /dev/null
+++ b/srcpkgs/musl-obstack-devel
@@ -0,0 +1 @@
+musl-obstack
\ No newline at end of file
diff --git a/srcpkgs/musl-obstack/template b/srcpkgs/musl-obstack/template
index 2cd2ddf2efc..4e8bee6afec 100644
--- a/srcpkgs/musl-obstack/template
+++ b/srcpkgs/musl-obstack/template
@@ -1,16 +1,15 @@
# Template file for 'musl-obstack'
pkgname=musl-obstack
version=1.1
-revision=3
+revision=4
archs="*-musl"
build_style=gnu-configure
-configure_args="--disable-shared"
hostmakedepends="automake libtool"
short_desc="Implementation of obstack for musl libc"
maintainer="Jürgen Buchmüller <pullmoll@t-online.de>"
license="GPL-2.0-or-later"
homepage="https://github.com/void-linux/musl-obstack"
-distfiles="https://github.com/void-linux/${pkgname}/archive/v${version}.tar.gz>${pkgname}-${version}.tar.gz"
+distfiles="${homepage}/archive/v${version}.tar.gz>${pkgname}-${version}.tar.gz"
checksum=52a216613e7d55e8725e43d017bb2d49a4b1ffa1e06da472f03c7f9875df7d0d
CFLAGS="-fPIC"
@@ -22,3 +21,14 @@ pre_configure() {
post_install() {
vinstall ${pkgname}.pc 644 usr/lib/pkgconfig
}
+
+musl-obstack-devel_package() {
+ depends="${sourcepkg}-${version}_${revision}"
+ short_desc+=" - development files"
+ pkg_install() {
+ vmove usr/include
+ vmove usr/lib/libobstack.a
+ vmove usr/lib/libobstack.so
+ vmove usr/lib/pkgconfig
+ }
+}
From ec078c020cc9d9ae8b3ede04d2a0a389e4b0a2a8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 17:45:20 -0300
Subject: [PATCH 2/9] gcompat: update to 0.9.0.
Add musl-obstack dependency.
---
.../gcompat/patches/ppc-libc_start_main.patch | 67 -------------------
srcpkgs/gcompat/template | 10 +--
2 files changed, 6 insertions(+), 71 deletions(-)
delete mode 100644 srcpkgs/gcompat/patches/ppc-libc_start_main.patch
diff --git a/srcpkgs/gcompat/patches/ppc-libc_start_main.patch b/srcpkgs/gcompat/patches/ppc-libc_start_main.patch
deleted file mode 100644
index 518292745f7..00000000000
--- a/srcpkgs/gcompat/patches/ppc-libc_start_main.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From d30e49d10cefeb2748373127e1d1aba1184f653d Mon Sep 17 00:00:00 2001
-From: q66 <daniel@octaforge.org>
-Date: Sun, 10 Nov 2019 15:32:28 +0100
-Subject: [PATCH 1/1] internal: add a wrapper for __libc_start_main for
- PowerPC(64(le))
-
-This is necessary because the musl and glibc function signatures
-differ significantly.
----
- libgcompat/internal.c | 41 +++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 41 insertions(+)
-
-diff --git a/libgcompat/internal.c b/libgcompat/internal.c
-index 450c5e4..53ac429 100644
---- libgcompat/internal.c
-+++ libgcompat/internal.c
-@@ -2,6 +2,47 @@
- #include <stdio.h>
- #include <stdlib.h>
-
-+#if defined(__powerpc__)
-+
-+/* On PowerPC as well as ppc64, we need to fix up __libc_start_main as the
-+ * glibc and musl versions have wildly different signatures, which would
-+ * result in the arguments to __libc_start_main being completely wrong.
-+ *
-+ * Using dlsym in this context is mildly questionable as this is before
-+ * the full initialization has been done, but there is no better way.
-+ */
-+
-+#include <dlfcn.h>
-+
-+struct startup_info {
-+ void *sda_base;
-+ void *f_main;
-+ void *f_init;
-+ void *f_fini;
-+};
-+
-+typedef int (*start_main_t)(void *mf, int argc, char **argv);
-+
-+/*
-+ * ref: https://git.musl-libc.org/cgit/musl/tree/crt/crt1.c?id=90251cf
-+ * ref: https://git.musl-libc.org/cgit/musl/tree/src/env/__libc_start_main.c?id=90251cf#n71
-+ * ref: https://github.com/bminor/glibc/blob/5cb226d/sysdeps/unix/sysv/linux/powerpc/libc-start.c#L36
-+ */
-+int __libc_start_main(void *argc, void *argv, void *ev, void *auxv, void *fini,
-+ struct startup_info *si, long *p)
-+{
-+ (void)argc;
-+ (void)argv;
-+ (void)ev;
-+ (void)auxv;
-+ (void)fini;
-+ /* argc/argv from the stack, main from startup_info */
-+ start_main_t mainf = (start_main_t)dlsym(RTLD_NEXT, "__libc_start_main");
-+ return mainf(si->f_main, *p, (void *)(p + 1));
-+}
-+
-+#endif /* defined(__powerpc__) */
-+
- void GCOMPAT__panic(const char *fmt, ...)
- {
- va_list va;
---
-2.23.0
-
diff --git a/srcpkgs/gcompat/template b/srcpkgs/gcompat/template
index 237f97bd5e9..b2c1e9f8230 100644
--- a/srcpkgs/gcompat/template
+++ b/srcpkgs/gcompat/template
@@ -1,14 +1,16 @@
# Template file for 'gcompat'
pkgname=gcompat
-version=0.4.0
+version=0.9.0
revision=1
build_style=gnu-makefile
+hostmakedepends="pkg-config"
+makedepends="musl-obstack-devel"
short_desc="Compatibility layer to allow running glibc binaries on musl systems"
maintainer="Daniel James <djames@orcadian.net>"
license="ISC"
homepage="https://code.foxkit.us/adelie/gcompat"
distfiles="https://distfiles.AdelieLinux.org/source/${pkgname}/${pkgname}-${version}.tar.xz"
-checksum=9903fac7b70de3ba7736ae2987fa00bbafff7bfcf6a9c88731c292dff19e44e2
+checksum=4555d045d7d2831d11b907719005c5dfbc77642c32f8c0172d40883026ffaf53
build_options="libucontext"
desc_option_libucontext="Build with ucontext support via libucontext"
@@ -43,10 +45,10 @@ esac
make_build_args="LINKER_PATH=/usr/lib/${_musl} LOADER_NAME=${_glibc}
LIBGCOMPAT_PATH=/usr/lib/libgcompat.so.0 LOADER_PATH=/usr/lib/${LOADER_NAME}
- WITH_OBSTACK=no"
+ WITH_OBSTACK=musl-obstack"
make_install_args="LINKER_PATH=/usr/lib/${_musl} LOADER_NAME=${_glibc}
LIBGCOMPAT_PATH=/usr/lib/libgcompat.so.0 LOADER_PATH=/usr/lib/${LOADER_NAME}
- WITH_OBSTACK=no"
+ WITH_OBSTACK=musl-obstack"
if [ "$build_option_libucontext" ]; then
makedepends+=" libucontext-devel"
From b53212b3249a08b7c3035b7b0ddd03858247357c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:34:12 -0300
Subject: [PATCH 3/9] reiserfsprogs: use musl-obstack-devel.
---
srcpkgs/reiserfsprogs/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/reiserfsprogs/template b/srcpkgs/reiserfsprogs/template
index 121b03a95a4..0df0b6261a6 100644
--- a/srcpkgs/reiserfsprogs/template
+++ b/srcpkgs/reiserfsprogs/template
@@ -14,7 +14,7 @@ checksum=0e95b67fa7746a3c2d59145e9b9c2feb4a6be52853e83b497b182eae508e62e3
case "$XBPS_TARGET_MACHINE" in
*-musl)
- makedepends+=" musl-obstack"
+ makedepends+=" musl-obstack-devel"
LDFLAGS="-lobstack"
;;
esac
From 36517edbfcb932beddf97fa6e6e408cfbae77b15 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:34:40 -0300
Subject: [PATCH 4/9] perl-Proc-ProcessTable: use musl-obstack-devel.
---
srcpkgs/perl-Proc-ProcessTable/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/perl-Proc-ProcessTable/template b/srcpkgs/perl-Proc-ProcessTable/template
index 58c07f2cb22..aad0248969d 100644
--- a/srcpkgs/perl-Proc-ProcessTable/template
+++ b/srcpkgs/perl-Proc-ProcessTable/template
@@ -15,5 +15,5 @@ distfiles="${CPAN_SITE}/Proc/Proc-ProcessTable-${version}.tar.gz"
checksum=f8cc5054d78c35a0ce39fb75430b4ef402e2a99013d2ec37e7997f316594606c
case "$XBPS_TARGET_MACHINE" in
- *-musl) makedepends+=" musl-obstack" ;;
+ *-musl) makedepends+=" musl-obstack-devel" ;;
esac
From 6fb9945d2800228506285d7f0f5ab841c4d3ebea Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:00 -0300
Subject: [PATCH 5/9] pahole: use musl-obstack-devel.
---
srcpkgs/pahole/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/pahole/template b/srcpkgs/pahole/template
index e504d3479f7..085eee87032 100644
--- a/srcpkgs/pahole/template
+++ b/srcpkgs/pahole/template
@@ -16,7 +16,7 @@ checksum="51e35041ce43ed08922037a1ee9e415aff1590e0d8d7cbe3e2b003f388db0a8a
a616ba2ea72d00b4022689b17f4a78365379e3040d0f1a66d28eba52c528e480"
case $XBPS_TARGET_MACHINE in
- *-musl) makedepends+=" musl-obstack argp-standalone"
+ *-musl) makedepends+=" musl-obstack-devel argp-standalone"
esac
pre_patch() {
From 2defe97c6b1681f96083dde87d849e04cca951b2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:12 -0300
Subject: [PATCH 6/9] hidrd: use musl-obstack-devel.
---
srcpkgs/hidrd/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/hidrd/template b/srcpkgs/hidrd/template
index 1bb75b98a0c..c9aac4e7f0c 100644
--- a/srcpkgs/hidrd/template
+++ b/srcpkgs/hidrd/template
@@ -14,7 +14,7 @@ checksum=0147993dedb3066873d22fab1dc3aafec78d8c5783d168cccc43126f0fc3b307
case $XBPS_TARGET_MACHINE in
*-musl)
configure_args+=' LIBS=-lobstack'
- makedepends+=" musl-obstack"
+ makedepends+=" musl-obstack-devel"
;;
esac
From 1c95ea7ec47b0a0dc8feef0995cb7039bac48128 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:23 -0300
Subject: [PATCH 7/9] elfutils: use musl-obstack-devel.
---
srcpkgs/elfutils/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/elfutils/template b/srcpkgs/elfutils/template
index ed40864be48..4a0f4c757ce 100644
--- a/srcpkgs/elfutils/template
+++ b/srcpkgs/elfutils/template
@@ -16,7 +16,7 @@ checksum=b827b6e35c59d188ba97d7cf148fa8dc6f5c68eb6c5981888dfdbb758c0b569d
CFLAGS="-Wno-error -Wno-error=null-dereference"
case "$XBPS_TARGET_MACHINE" in
- *-musl) makedepends+=" argp-standalone musl-fts-devel musl-obstack" ;;
+ *-musl) makedepends+=" argp-standalone musl-fts-devel musl-obstack-devel" ;;
esac
if [ "$CROSS_BUILD" ]; then
From 19f9960d5f4e2415d2b90daf046a88b0d401b69f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:46 -0300
Subject: [PATCH 8/9] cronie: use musl-obstack-devel.
---
srcpkgs/cronie/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/cronie/template b/srcpkgs/cronie/template
index cd00937e7f5..e3486b38f9b 100644
--- a/srcpkgs/cronie/template
+++ b/srcpkgs/cronie/template
@@ -34,7 +34,7 @@ alternatives="
"
if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
- makedepends+=" musl-obstack"
+ makedepends+=" musl-obstack-devel"
fi
pre_configure() {
From 9653f5af82219afa320c890419a839a7d35e0414 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 17:45:34 -0300
Subject: [PATCH 9/9] spotify: enable musl support.
Requires gcompat and patchelf, follows instructions from
https://catfox.life/2020/07/06/live-from-adelie-streaming-spotify-on-musl/
---
srcpkgs/spotify/INSTALL | 18 ++++++++++++++++--
srcpkgs/spotify/template | 8 +++++++-
2 files changed, 23 insertions(+), 3 deletions(-)
diff --git a/srcpkgs/spotify/INSTALL b/srcpkgs/spotify/INSTALL
index 1cf70985dcb..6d557133403 100644
--- a/srcpkgs/spotify/INSTALL
+++ b/srcpkgs/spotify/INSTALL
@@ -1,7 +1,7 @@
# INSTALL for 'spotify'
# Fetching proprietary binaries at install-time
-_BUILDDIR="/tmp/spotify.build"
+_BUILDDIR="$(mktemp -d /tmp/spotify.build.XXXXX)"
_LIBS=$(ldconfig -vNX -n usr/lib 2>/dev/null)
linklib() {
@@ -10,8 +10,8 @@ linklib() {
}
if test "$ACTION" = "post"; then
+ # get checksum and version information
. usr/share/spotify/pkgdata
- mkdir -p "$_BUILDDIR"
(
set -e
cd "$_BUILDDIR"
@@ -27,15 +27,29 @@ if test "$ACTION" = "post"; then
exit 1;
fi
+ # delete old package version
[ -d "/usr/share/spotify/spotify-client" ] && rm -rf usr/share/spotify/spotify-client
+
+ # copy data
mv -f "${_BUILDDIR}/usr/share/spotify" usr/share/spotify/spotify-client
for _s in 16 22 24 32 48 64 128 256 512; do
mkdir -p "/usr/share/icons/hicolor/${_s}x${_s}/apps"
ln -sf "/usr/share/spotify/spotify-client/icons/spotify-linux-${_s}.png" "/usr/share/icons/hicolor/${_s}x${_s}/apps/spotify-client.png"
done
+
mkdir -p usr/share/applications
ln -sf /usr/share/spotify/spotify-client/spotify.desktop usr/share/applications/spotify.desktop
+
+ # https://catfox.life/2020/07/06/live-from-adelie-streaming-spotify-on-musl/
+ if [ "$(xbps-uhelper arch)" = "x86_64-musl" ]; then
+ for _l in libm.so.6 libdl.so.2; do
+ patchelf --remove-needed "${_l}" usr/share/spotify/spotify-client/spotify
+ done
+ fi
+
linklib "libssl" "1.0.0"
linklib "libcrypto" "1.0.0"
+
+ # cleanup
rm -r "$_BUILDDIR"
fi
diff --git a/srcpkgs/spotify/template b/srcpkgs/spotify/template
index d9ec603bf6a..9942f8b9f47 100644
--- a/srcpkgs/spotify/template
+++ b/srcpkgs/spotify/template
@@ -2,7 +2,7 @@
pkgname=spotify
version=1.1.26
revision=1
-archs="x86_64"
+archs="x86_64*"
create_wrksrc=yes
build_style=fetch
depends="binutils gtk+ nss GConf libXScrnSaver libatomic"
@@ -13,6 +13,12 @@ homepage="https://www.spotify.com"
repository=nonfree
_sversion=".501.gbe11e53b-15_amd64"
_schecksum="54ba1bd91020913273c469591cedeebfa34aedc250033dde7c8b3fded94a9c71"
+
+if [ "$XBPS_TARGET_LIBC" = musl ]; then
+ # musl requires compat library and modifying the binary
+ depends+=" gcompat>=0.9.0 patchelf"
+fi
+
do_install() {
vbin ${FILESDIR}/spotify
vmkdir usr/share/spotify
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PR PATCH] [Updated] [RFC][WIP] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack
2020-07-06 23:50 [PR PATCH] [RFC] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack ericonr
` (5 preceding siblings ...)
2020-07-07 20:53 ` ericonr
@ 2020-07-09 2:50 ` ericonr
2020-07-09 8:59 ` ericonr
` (15 subsequent siblings)
22 siblings, 0 replies; 24+ messages in thread
From: ericonr @ 2020-07-09 2:50 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 1150 bytes --]
There is an updated pull request by ericonr against master on the void-packages repository
https://github.com/ericonr/void-packages gcompat
https://github.com/void-linux/void-packages/pull/23432
[RFC][WIP] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack
Okay, so this is a biggie PR, and I do need help for making some decisions.
- So, basically, `gcompat` can do Spotify now, on Adélie. I am working on debugging it on Void, because it isn't working completely yet. If I can't get it working soon, I will leave the spotify commit out of this one.
- I enabled `obstack` in `gcompat`, by enabling the dynamic lib in `musl-obstack`. This completely fixes #22616, which needed obstack and `__strftime_l` symbols (the latter was fixed by gcompat itself).
- I split `musl-obstack-devel`.
- I switched package dependencies to `musl-obstack-devel`, but they ended up depending on the dynamic version of obstack. Is this bad? Is there some way to solve this? Perhaps two devel sub packages, one for dynamic and one for static linking?
A patch file from https://github.com/void-linux/void-packages/pull/23432.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-gcompat-23432.patch --]
[-- Type: text/x-diff, Size: 14117 bytes --]
From 7d87d050261f5a07268ea772e02b3e0c87c1b02a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:26:32 -0300
Subject: [PATCH 1/9] musl-obstack: ship dynamic lib, split devel.
---
common/shlibs | 1 +
srcpkgs/musl-obstack-devel | 1 +
srcpkgs/musl-obstack/template | 16 +++++++++++++---
3 files changed, 15 insertions(+), 3 deletions(-)
create mode 120000 srcpkgs/musl-obstack-devel
diff --git a/common/shlibs b/common/shlibs
index 86ee9fcb734..31272a3530a 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -3978,3 +3978,4 @@ libsepol.so.1 libsepol-3.0_1
libfrrcares.so.0 libfrr-7.3.1_1
libhugetlbfs.so.0 libhugetlbfs-2.22_1
libdolphinvcs.so.5 dolphin-plugins-20.04.2_1
+libobstack.so.0 musl-obstack-1.1_4
diff --git a/srcpkgs/musl-obstack-devel b/srcpkgs/musl-obstack-devel
new file mode 120000
index 00000000000..e21ca66cded
--- /dev/null
+++ b/srcpkgs/musl-obstack-devel
@@ -0,0 +1 @@
+musl-obstack
\ No newline at end of file
diff --git a/srcpkgs/musl-obstack/template b/srcpkgs/musl-obstack/template
index 2cd2ddf2efc..4e8bee6afec 100644
--- a/srcpkgs/musl-obstack/template
+++ b/srcpkgs/musl-obstack/template
@@ -1,16 +1,15 @@
# Template file for 'musl-obstack'
pkgname=musl-obstack
version=1.1
-revision=3
+revision=4
archs="*-musl"
build_style=gnu-configure
-configure_args="--disable-shared"
hostmakedepends="automake libtool"
short_desc="Implementation of obstack for musl libc"
maintainer="Jürgen Buchmüller <pullmoll@t-online.de>"
license="GPL-2.0-or-later"
homepage="https://github.com/void-linux/musl-obstack"
-distfiles="https://github.com/void-linux/${pkgname}/archive/v${version}.tar.gz>${pkgname}-${version}.tar.gz"
+distfiles="${homepage}/archive/v${version}.tar.gz>${pkgname}-${version}.tar.gz"
checksum=52a216613e7d55e8725e43d017bb2d49a4b1ffa1e06da472f03c7f9875df7d0d
CFLAGS="-fPIC"
@@ -22,3 +21,14 @@ pre_configure() {
post_install() {
vinstall ${pkgname}.pc 644 usr/lib/pkgconfig
}
+
+musl-obstack-devel_package() {
+ depends="${sourcepkg}-${version}_${revision}"
+ short_desc+=" - development files"
+ pkg_install() {
+ vmove usr/include
+ vmove usr/lib/libobstack.a
+ vmove usr/lib/libobstack.so
+ vmove usr/lib/pkgconfig
+ }
+}
From ec078c020cc9d9ae8b3ede04d2a0a389e4b0a2a8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 17:45:20 -0300
Subject: [PATCH 2/9] gcompat: update to 0.9.0.
Add musl-obstack dependency.
---
.../gcompat/patches/ppc-libc_start_main.patch | 67 -------------------
srcpkgs/gcompat/template | 10 +--
2 files changed, 6 insertions(+), 71 deletions(-)
delete mode 100644 srcpkgs/gcompat/patches/ppc-libc_start_main.patch
diff --git a/srcpkgs/gcompat/patches/ppc-libc_start_main.patch b/srcpkgs/gcompat/patches/ppc-libc_start_main.patch
deleted file mode 100644
index 518292745f7..00000000000
--- a/srcpkgs/gcompat/patches/ppc-libc_start_main.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From d30e49d10cefeb2748373127e1d1aba1184f653d Mon Sep 17 00:00:00 2001
-From: q66 <daniel@octaforge.org>
-Date: Sun, 10 Nov 2019 15:32:28 +0100
-Subject: [PATCH 1/1] internal: add a wrapper for __libc_start_main for
- PowerPC(64(le))
-
-This is necessary because the musl and glibc function signatures
-differ significantly.
----
- libgcompat/internal.c | 41 +++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 41 insertions(+)
-
-diff --git a/libgcompat/internal.c b/libgcompat/internal.c
-index 450c5e4..53ac429 100644
---- libgcompat/internal.c
-+++ libgcompat/internal.c
-@@ -2,6 +2,47 @@
- #include <stdio.h>
- #include <stdlib.h>
-
-+#if defined(__powerpc__)
-+
-+/* On PowerPC as well as ppc64, we need to fix up __libc_start_main as the
-+ * glibc and musl versions have wildly different signatures, which would
-+ * result in the arguments to __libc_start_main being completely wrong.
-+ *
-+ * Using dlsym in this context is mildly questionable as this is before
-+ * the full initialization has been done, but there is no better way.
-+ */
-+
-+#include <dlfcn.h>
-+
-+struct startup_info {
-+ void *sda_base;
-+ void *f_main;
-+ void *f_init;
-+ void *f_fini;
-+};
-+
-+typedef int (*start_main_t)(void *mf, int argc, char **argv);
-+
-+/*
-+ * ref: https://git.musl-libc.org/cgit/musl/tree/crt/crt1.c?id=90251cf
-+ * ref: https://git.musl-libc.org/cgit/musl/tree/src/env/__libc_start_main.c?id=90251cf#n71
-+ * ref: https://github.com/bminor/glibc/blob/5cb226d/sysdeps/unix/sysv/linux/powerpc/libc-start.c#L36
-+ */
-+int __libc_start_main(void *argc, void *argv, void *ev, void *auxv, void *fini,
-+ struct startup_info *si, long *p)
-+{
-+ (void)argc;
-+ (void)argv;
-+ (void)ev;
-+ (void)auxv;
-+ (void)fini;
-+ /* argc/argv from the stack, main from startup_info */
-+ start_main_t mainf = (start_main_t)dlsym(RTLD_NEXT, "__libc_start_main");
-+ return mainf(si->f_main, *p, (void *)(p + 1));
-+}
-+
-+#endif /* defined(__powerpc__) */
-+
- void GCOMPAT__panic(const char *fmt, ...)
- {
- va_list va;
---
-2.23.0
-
diff --git a/srcpkgs/gcompat/template b/srcpkgs/gcompat/template
index 237f97bd5e9..b2c1e9f8230 100644
--- a/srcpkgs/gcompat/template
+++ b/srcpkgs/gcompat/template
@@ -1,14 +1,16 @@
# Template file for 'gcompat'
pkgname=gcompat
-version=0.4.0
+version=0.9.0
revision=1
build_style=gnu-makefile
+hostmakedepends="pkg-config"
+makedepends="musl-obstack-devel"
short_desc="Compatibility layer to allow running glibc binaries on musl systems"
maintainer="Daniel James <djames@orcadian.net>"
license="ISC"
homepage="https://code.foxkit.us/adelie/gcompat"
distfiles="https://distfiles.AdelieLinux.org/source/${pkgname}/${pkgname}-${version}.tar.xz"
-checksum=9903fac7b70de3ba7736ae2987fa00bbafff7bfcf6a9c88731c292dff19e44e2
+checksum=4555d045d7d2831d11b907719005c5dfbc77642c32f8c0172d40883026ffaf53
build_options="libucontext"
desc_option_libucontext="Build with ucontext support via libucontext"
@@ -43,10 +45,10 @@ esac
make_build_args="LINKER_PATH=/usr/lib/${_musl} LOADER_NAME=${_glibc}
LIBGCOMPAT_PATH=/usr/lib/libgcompat.so.0 LOADER_PATH=/usr/lib/${LOADER_NAME}
- WITH_OBSTACK=no"
+ WITH_OBSTACK=musl-obstack"
make_install_args="LINKER_PATH=/usr/lib/${_musl} LOADER_NAME=${_glibc}
LIBGCOMPAT_PATH=/usr/lib/libgcompat.so.0 LOADER_PATH=/usr/lib/${LOADER_NAME}
- WITH_OBSTACK=no"
+ WITH_OBSTACK=musl-obstack"
if [ "$build_option_libucontext" ]; then
makedepends+=" libucontext-devel"
From b53212b3249a08b7c3035b7b0ddd03858247357c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:34:12 -0300
Subject: [PATCH 3/9] reiserfsprogs: use musl-obstack-devel.
---
srcpkgs/reiserfsprogs/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/reiserfsprogs/template b/srcpkgs/reiserfsprogs/template
index 121b03a95a4..0df0b6261a6 100644
--- a/srcpkgs/reiserfsprogs/template
+++ b/srcpkgs/reiserfsprogs/template
@@ -14,7 +14,7 @@ checksum=0e95b67fa7746a3c2d59145e9b9c2feb4a6be52853e83b497b182eae508e62e3
case "$XBPS_TARGET_MACHINE" in
*-musl)
- makedepends+=" musl-obstack"
+ makedepends+=" musl-obstack-devel"
LDFLAGS="-lobstack"
;;
esac
From 36517edbfcb932beddf97fa6e6e408cfbae77b15 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:34:40 -0300
Subject: [PATCH 4/9] perl-Proc-ProcessTable: use musl-obstack-devel.
---
srcpkgs/perl-Proc-ProcessTable/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/perl-Proc-ProcessTable/template b/srcpkgs/perl-Proc-ProcessTable/template
index 58c07f2cb22..aad0248969d 100644
--- a/srcpkgs/perl-Proc-ProcessTable/template
+++ b/srcpkgs/perl-Proc-ProcessTable/template
@@ -15,5 +15,5 @@ distfiles="${CPAN_SITE}/Proc/Proc-ProcessTable-${version}.tar.gz"
checksum=f8cc5054d78c35a0ce39fb75430b4ef402e2a99013d2ec37e7997f316594606c
case "$XBPS_TARGET_MACHINE" in
- *-musl) makedepends+=" musl-obstack" ;;
+ *-musl) makedepends+=" musl-obstack-devel" ;;
esac
From 6fb9945d2800228506285d7f0f5ab841c4d3ebea Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:00 -0300
Subject: [PATCH 5/9] pahole: use musl-obstack-devel.
---
srcpkgs/pahole/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/pahole/template b/srcpkgs/pahole/template
index e504d3479f7..085eee87032 100644
--- a/srcpkgs/pahole/template
+++ b/srcpkgs/pahole/template
@@ -16,7 +16,7 @@ checksum="51e35041ce43ed08922037a1ee9e415aff1590e0d8d7cbe3e2b003f388db0a8a
a616ba2ea72d00b4022689b17f4a78365379e3040d0f1a66d28eba52c528e480"
case $XBPS_TARGET_MACHINE in
- *-musl) makedepends+=" musl-obstack argp-standalone"
+ *-musl) makedepends+=" musl-obstack-devel argp-standalone"
esac
pre_patch() {
From 2defe97c6b1681f96083dde87d849e04cca951b2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:12 -0300
Subject: [PATCH 6/9] hidrd: use musl-obstack-devel.
---
srcpkgs/hidrd/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/hidrd/template b/srcpkgs/hidrd/template
index 1bb75b98a0c..c9aac4e7f0c 100644
--- a/srcpkgs/hidrd/template
+++ b/srcpkgs/hidrd/template
@@ -14,7 +14,7 @@ checksum=0147993dedb3066873d22fab1dc3aafec78d8c5783d168cccc43126f0fc3b307
case $XBPS_TARGET_MACHINE in
*-musl)
configure_args+=' LIBS=-lobstack'
- makedepends+=" musl-obstack"
+ makedepends+=" musl-obstack-devel"
;;
esac
From 1c95ea7ec47b0a0dc8feef0995cb7039bac48128 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:23 -0300
Subject: [PATCH 7/9] elfutils: use musl-obstack-devel.
---
srcpkgs/elfutils/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/elfutils/template b/srcpkgs/elfutils/template
index ed40864be48..4a0f4c757ce 100644
--- a/srcpkgs/elfutils/template
+++ b/srcpkgs/elfutils/template
@@ -16,7 +16,7 @@ checksum=b827b6e35c59d188ba97d7cf148fa8dc6f5c68eb6c5981888dfdbb758c0b569d
CFLAGS="-Wno-error -Wno-error=null-dereference"
case "$XBPS_TARGET_MACHINE" in
- *-musl) makedepends+=" argp-standalone musl-fts-devel musl-obstack" ;;
+ *-musl) makedepends+=" argp-standalone musl-fts-devel musl-obstack-devel" ;;
esac
if [ "$CROSS_BUILD" ]; then
From 19f9960d5f4e2415d2b90daf046a88b0d401b69f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:46 -0300
Subject: [PATCH 8/9] cronie: use musl-obstack-devel.
---
srcpkgs/cronie/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/cronie/template b/srcpkgs/cronie/template
index cd00937e7f5..e3486b38f9b 100644
--- a/srcpkgs/cronie/template
+++ b/srcpkgs/cronie/template
@@ -34,7 +34,7 @@ alternatives="
"
if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
- makedepends+=" musl-obstack"
+ makedepends+=" musl-obstack-devel"
fi
pre_configure() {
From 6ebb9f24f905eb29d2a65676b4a964a40085a1d2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 17:45:34 -0300
Subject: [PATCH 9/9] spotify: enable musl support.
Requires gcompat and patchelf, follows instructions from
https://catfox.life/2020/07/06/live-from-adelie-streaming-spotify-on-musl/
---
srcpkgs/spotify/INSTALL | 18 ++++++++++++++++--
srcpkgs/spotify/template | 10 ++++++++--
2 files changed, 24 insertions(+), 4 deletions(-)
diff --git a/srcpkgs/spotify/INSTALL b/srcpkgs/spotify/INSTALL
index 1cf70985dcb..6d557133403 100644
--- a/srcpkgs/spotify/INSTALL
+++ b/srcpkgs/spotify/INSTALL
@@ -1,7 +1,7 @@
# INSTALL for 'spotify'
# Fetching proprietary binaries at install-time
-_BUILDDIR="/tmp/spotify.build"
+_BUILDDIR="$(mktemp -d /tmp/spotify.build.XXXXX)"
_LIBS=$(ldconfig -vNX -n usr/lib 2>/dev/null)
linklib() {
@@ -10,8 +10,8 @@ linklib() {
}
if test "$ACTION" = "post"; then
+ # get checksum and version information
. usr/share/spotify/pkgdata
- mkdir -p "$_BUILDDIR"
(
set -e
cd "$_BUILDDIR"
@@ -27,15 +27,29 @@ if test "$ACTION" = "post"; then
exit 1;
fi
+ # delete old package version
[ -d "/usr/share/spotify/spotify-client" ] && rm -rf usr/share/spotify/spotify-client
+
+ # copy data
mv -f "${_BUILDDIR}/usr/share/spotify" usr/share/spotify/spotify-client
for _s in 16 22 24 32 48 64 128 256 512; do
mkdir -p "/usr/share/icons/hicolor/${_s}x${_s}/apps"
ln -sf "/usr/share/spotify/spotify-client/icons/spotify-linux-${_s}.png" "/usr/share/icons/hicolor/${_s}x${_s}/apps/spotify-client.png"
done
+
mkdir -p usr/share/applications
ln -sf /usr/share/spotify/spotify-client/spotify.desktop usr/share/applications/spotify.desktop
+
+ # https://catfox.life/2020/07/06/live-from-adelie-streaming-spotify-on-musl/
+ if [ "$(xbps-uhelper arch)" = "x86_64-musl" ]; then
+ for _l in libm.so.6 libdl.so.2; do
+ patchelf --remove-needed "${_l}" usr/share/spotify/spotify-client/spotify
+ done
+ fi
+
linklib "libssl" "1.0.0"
linklib "libcrypto" "1.0.0"
+
+ # cleanup
rm -r "$_BUILDDIR"
fi
diff --git a/srcpkgs/spotify/template b/srcpkgs/spotify/template
index d9ec603bf6a..5053a7224b2 100644
--- a/srcpkgs/spotify/template
+++ b/srcpkgs/spotify/template
@@ -2,17 +2,23 @@
pkgname=spotify
version=1.1.26
revision=1
-archs="x86_64"
+archs="x86_64*"
create_wrksrc=yes
build_style=fetch
depends="binutils gtk+ nss GConf libXScrnSaver libatomic"
short_desc="Proprietary music streaming client"
maintainer="Stefan Mühlinghaus <jazzman@alphabreed.com>"
-license="Proprietary"
+license="custom:Proprietary"
homepage="https://www.spotify.com"
repository=nonfree
_sversion=".501.gbe11e53b-15_amd64"
_schecksum="54ba1bd91020913273c469591cedeebfa34aedc250033dde7c8b3fded94a9c71"
+
+if [ "$XBPS_TARGET_LIBC" = musl ]; then
+ # musl requires compat library and modifying the binary
+ depends+=" gcompat>=0.9.0 patchelf"
+fi
+
do_install() {
vbin ${FILESDIR}/spotify
vmkdir usr/share/spotify
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [RFC][WIP] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack
2020-07-06 23:50 [PR PATCH] [RFC] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack ericonr
` (6 preceding siblings ...)
2020-07-09 2:50 ` ericonr
@ 2020-07-09 8:59 ` ericonr
2020-07-09 23:39 ` [PR PATCH] [Updated] " ericonr
` (14 subsequent siblings)
22 siblings, 0 replies; 24+ messages in thread
From: ericonr @ 2020-07-09 8:59 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 355 bytes --]
New comment by ericonr on void-packages repository
https://github.com/void-linux/void-packages/pull/23432#issuecomment-656004599
Comment:
One other option is pulling musl-obstack as another distfile for gcompat, which can then be included as part of the gcompat package. That way, we avoid messing with all the other packages using static musl-obstack.
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PR PATCH] [Updated] [RFC][WIP] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack
2020-07-06 23:50 [PR PATCH] [RFC] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack ericonr
` (7 preceding siblings ...)
2020-07-09 8:59 ` ericonr
@ 2020-07-09 23:39 ` ericonr
2020-07-14 18:25 ` ericonr
` (13 subsequent siblings)
22 siblings, 0 replies; 24+ messages in thread
From: ericonr @ 2020-07-09 23:39 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 1150 bytes --]
There is an updated pull request by ericonr against master on the void-packages repository
https://github.com/ericonr/void-packages gcompat
https://github.com/void-linux/void-packages/pull/23432
[RFC][WIP] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack
Okay, so this is a biggie PR, and I do need help for making some decisions.
- So, basically, `gcompat` can do Spotify now, on Adélie. I am working on debugging it on Void, because it isn't working completely yet. If I can't get it working soon, I will leave the spotify commit out of this one.
- I enabled `obstack` in `gcompat`, by enabling the dynamic lib in `musl-obstack`. This completely fixes #22616, which needed obstack and `__strftime_l` symbols (the latter was fixed by gcompat itself).
- I split `musl-obstack-devel`.
- I switched package dependencies to `musl-obstack-devel`, but they ended up depending on the dynamic version of obstack. Is this bad? Is there some way to solve this? Perhaps two devel sub packages, one for dynamic and one for static linking?
A patch file from https://github.com/void-linux/void-packages/pull/23432.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-gcompat-23432.patch --]
[-- Type: text/x-diff, Size: 15487 bytes --]
From 9b46c2cafefb43884a4f5f72eb278948411ed4d5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:26:32 -0300
Subject: [PATCH 1/9] musl-obstack: ship dynamic lib, split devel.
---
common/shlibs | 1 +
srcpkgs/musl-obstack-devel | 1 +
srcpkgs/musl-obstack/template | 16 +++++++++++++---
3 files changed, 15 insertions(+), 3 deletions(-)
create mode 120000 srcpkgs/musl-obstack-devel
diff --git a/common/shlibs b/common/shlibs
index 86ee9fcb734..31272a3530a 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -3978,3 +3978,4 @@ libsepol.so.1 libsepol-3.0_1
libfrrcares.so.0 libfrr-7.3.1_1
libhugetlbfs.so.0 libhugetlbfs-2.22_1
libdolphinvcs.so.5 dolphin-plugins-20.04.2_1
+libobstack.so.0 musl-obstack-1.1_4
diff --git a/srcpkgs/musl-obstack-devel b/srcpkgs/musl-obstack-devel
new file mode 120000
index 00000000000..e21ca66cded
--- /dev/null
+++ b/srcpkgs/musl-obstack-devel
@@ -0,0 +1 @@
+musl-obstack
\ No newline at end of file
diff --git a/srcpkgs/musl-obstack/template b/srcpkgs/musl-obstack/template
index 2cd2ddf2efc..4e8bee6afec 100644
--- a/srcpkgs/musl-obstack/template
+++ b/srcpkgs/musl-obstack/template
@@ -1,16 +1,15 @@
# Template file for 'musl-obstack'
pkgname=musl-obstack
version=1.1
-revision=3
+revision=4
archs="*-musl"
build_style=gnu-configure
-configure_args="--disable-shared"
hostmakedepends="automake libtool"
short_desc="Implementation of obstack for musl libc"
maintainer="Jürgen Buchmüller <pullmoll@t-online.de>"
license="GPL-2.0-or-later"
homepage="https://github.com/void-linux/musl-obstack"
-distfiles="https://github.com/void-linux/${pkgname}/archive/v${version}.tar.gz>${pkgname}-${version}.tar.gz"
+distfiles="${homepage}/archive/v${version}.tar.gz>${pkgname}-${version}.tar.gz"
checksum=52a216613e7d55e8725e43d017bb2d49a4b1ffa1e06da472f03c7f9875df7d0d
CFLAGS="-fPIC"
@@ -22,3 +21,14 @@ pre_configure() {
post_install() {
vinstall ${pkgname}.pc 644 usr/lib/pkgconfig
}
+
+musl-obstack-devel_package() {
+ depends="${sourcepkg}-${version}_${revision}"
+ short_desc+=" - development files"
+ pkg_install() {
+ vmove usr/include
+ vmove usr/lib/libobstack.a
+ vmove usr/lib/libobstack.so
+ vmove usr/lib/pkgconfig
+ }
+}
From 61cbfc0a97977cd907f0d26c0ce03ec4a359199a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 17:45:20 -0300
Subject: [PATCH 2/9] gcompat: update to 0.9.0.
Add musl-obstack dependency.
---
.../gcompat/patches/ppc-libc_start_main.patch | 67 -------------------
srcpkgs/gcompat/template | 10 +--
2 files changed, 6 insertions(+), 71 deletions(-)
delete mode 100644 srcpkgs/gcompat/patches/ppc-libc_start_main.patch
diff --git a/srcpkgs/gcompat/patches/ppc-libc_start_main.patch b/srcpkgs/gcompat/patches/ppc-libc_start_main.patch
deleted file mode 100644
index 518292745f7..00000000000
--- a/srcpkgs/gcompat/patches/ppc-libc_start_main.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From d30e49d10cefeb2748373127e1d1aba1184f653d Mon Sep 17 00:00:00 2001
-From: q66 <daniel@octaforge.org>
-Date: Sun, 10 Nov 2019 15:32:28 +0100
-Subject: [PATCH 1/1] internal: add a wrapper for __libc_start_main for
- PowerPC(64(le))
-
-This is necessary because the musl and glibc function signatures
-differ significantly.
----
- libgcompat/internal.c | 41 +++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 41 insertions(+)
-
-diff --git a/libgcompat/internal.c b/libgcompat/internal.c
-index 450c5e4..53ac429 100644
---- libgcompat/internal.c
-+++ libgcompat/internal.c
-@@ -2,6 +2,47 @@
- #include <stdio.h>
- #include <stdlib.h>
-
-+#if defined(__powerpc__)
-+
-+/* On PowerPC as well as ppc64, we need to fix up __libc_start_main as the
-+ * glibc and musl versions have wildly different signatures, which would
-+ * result in the arguments to __libc_start_main being completely wrong.
-+ *
-+ * Using dlsym in this context is mildly questionable as this is before
-+ * the full initialization has been done, but there is no better way.
-+ */
-+
-+#include <dlfcn.h>
-+
-+struct startup_info {
-+ void *sda_base;
-+ void *f_main;
-+ void *f_init;
-+ void *f_fini;
-+};
-+
-+typedef int (*start_main_t)(void *mf, int argc, char **argv);
-+
-+/*
-+ * ref: https://git.musl-libc.org/cgit/musl/tree/crt/crt1.c?id=90251cf
-+ * ref: https://git.musl-libc.org/cgit/musl/tree/src/env/__libc_start_main.c?id=90251cf#n71
-+ * ref: https://github.com/bminor/glibc/blob/5cb226d/sysdeps/unix/sysv/linux/powerpc/libc-start.c#L36
-+ */
-+int __libc_start_main(void *argc, void *argv, void *ev, void *auxv, void *fini,
-+ struct startup_info *si, long *p)
-+{
-+ (void)argc;
-+ (void)argv;
-+ (void)ev;
-+ (void)auxv;
-+ (void)fini;
-+ /* argc/argv from the stack, main from startup_info */
-+ start_main_t mainf = (start_main_t)dlsym(RTLD_NEXT, "__libc_start_main");
-+ return mainf(si->f_main, *p, (void *)(p + 1));
-+}
-+
-+#endif /* defined(__powerpc__) */
-+
- void GCOMPAT__panic(const char *fmt, ...)
- {
- va_list va;
---
-2.23.0
-
diff --git a/srcpkgs/gcompat/template b/srcpkgs/gcompat/template
index 237f97bd5e9..b2c1e9f8230 100644
--- a/srcpkgs/gcompat/template
+++ b/srcpkgs/gcompat/template
@@ -1,14 +1,16 @@
# Template file for 'gcompat'
pkgname=gcompat
-version=0.4.0
+version=0.9.0
revision=1
build_style=gnu-makefile
+hostmakedepends="pkg-config"
+makedepends="musl-obstack-devel"
short_desc="Compatibility layer to allow running glibc binaries on musl systems"
maintainer="Daniel James <djames@orcadian.net>"
license="ISC"
homepage="https://code.foxkit.us/adelie/gcompat"
distfiles="https://distfiles.AdelieLinux.org/source/${pkgname}/${pkgname}-${version}.tar.xz"
-checksum=9903fac7b70de3ba7736ae2987fa00bbafff7bfcf6a9c88731c292dff19e44e2
+checksum=4555d045d7d2831d11b907719005c5dfbc77642c32f8c0172d40883026ffaf53
build_options="libucontext"
desc_option_libucontext="Build with ucontext support via libucontext"
@@ -43,10 +45,10 @@ esac
make_build_args="LINKER_PATH=/usr/lib/${_musl} LOADER_NAME=${_glibc}
LIBGCOMPAT_PATH=/usr/lib/libgcompat.so.0 LOADER_PATH=/usr/lib/${LOADER_NAME}
- WITH_OBSTACK=no"
+ WITH_OBSTACK=musl-obstack"
make_install_args="LINKER_PATH=/usr/lib/${_musl} LOADER_NAME=${_glibc}
LIBGCOMPAT_PATH=/usr/lib/libgcompat.so.0 LOADER_PATH=/usr/lib/${LOADER_NAME}
- WITH_OBSTACK=no"
+ WITH_OBSTACK=musl-obstack"
if [ "$build_option_libucontext" ]; then
makedepends+=" libucontext-devel"
From af0b4464009b958580a2dedc3552e0c741f5c164 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:34:12 -0300
Subject: [PATCH 3/9] reiserfsprogs: use musl-obstack-devel.
---
srcpkgs/reiserfsprogs/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/reiserfsprogs/template b/srcpkgs/reiserfsprogs/template
index 121b03a95a4..8b45947935c 100644
--- a/srcpkgs/reiserfsprogs/template
+++ b/srcpkgs/reiserfsprogs/template
@@ -1,7 +1,7 @@
# Template file for 'reiserfsprogs'
pkgname=reiserfsprogs
version=3.6.27
-revision=1
+revision=2
build_style=gnu-configure
hostmakedepends="automake libtool pkg-config"
makedepends="libuuid-devel e2fsprogs-devel acl-devel"
@@ -14,7 +14,7 @@ checksum=0e95b67fa7746a3c2d59145e9b9c2feb4a6be52853e83b497b182eae508e62e3
case "$XBPS_TARGET_MACHINE" in
*-musl)
- makedepends+=" musl-obstack"
+ makedepends+=" musl-obstack-devel"
LDFLAGS="-lobstack"
;;
esac
From df6d47d39f6a6466154b99c260422da813867431 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:34:40 -0300
Subject: [PATCH 4/9] perl-Proc-ProcessTable: use musl-obstack-devel.
---
srcpkgs/perl-Proc-ProcessTable/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/perl-Proc-ProcessTable/template b/srcpkgs/perl-Proc-ProcessTable/template
index 58c07f2cb22..3fb6d53f684 100644
--- a/srcpkgs/perl-Proc-ProcessTable/template
+++ b/srcpkgs/perl-Proc-ProcessTable/template
@@ -1,7 +1,7 @@
# Template file for 'perl-Proc-ProcessTable'
pkgname=perl-Proc-ProcessTable
version=0.59
-revision=2
+revision=3
wrksrc="Proc-ProcessTable-${version}"
build_style=perl-module
hostmakedepends="perl"
@@ -15,5 +15,5 @@ distfiles="${CPAN_SITE}/Proc/Proc-ProcessTable-${version}.tar.gz"
checksum=f8cc5054d78c35a0ce39fb75430b4ef402e2a99013d2ec37e7997f316594606c
case "$XBPS_TARGET_MACHINE" in
- *-musl) makedepends+=" musl-obstack" ;;
+ *-musl) makedepends+=" musl-obstack-devel" ;;
esac
From 1172ca589e6464b202e782343c8fcd72ffa64072 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:00 -0300
Subject: [PATCH 5/9] pahole: use musl-obstack-devel.
---
srcpkgs/pahole/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/pahole/template b/srcpkgs/pahole/template
index e504d3479f7..4d16a3ba7b5 100644
--- a/srcpkgs/pahole/template
+++ b/srcpkgs/pahole/template
@@ -1,7 +1,7 @@
# Template file for 'pahole'
pkgname=pahole
version=1.17
-revision=1
+revision=2
_bpfver=0.0.7
build_style=cmake
configure_args="-D__LIB=lib"
@@ -16,7 +16,7 @@ checksum="51e35041ce43ed08922037a1ee9e415aff1590e0d8d7cbe3e2b003f388db0a8a
a616ba2ea72d00b4022689b17f4a78365379e3040d0f1a66d28eba52c528e480"
case $XBPS_TARGET_MACHINE in
- *-musl) makedepends+=" musl-obstack argp-standalone"
+ *-musl) makedepends+=" musl-obstack-devel argp-standalone"
esac
pre_patch() {
From 95e444876e3fbe3d5279c7e16b198d32fb973437 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:12 -0300
Subject: [PATCH 6/9] hidrd: use musl-obstack-devel.
---
srcpkgs/hidrd/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/hidrd/template b/srcpkgs/hidrd/template
index 1bb75b98a0c..3470511708c 100644
--- a/srcpkgs/hidrd/template
+++ b/srcpkgs/hidrd/template
@@ -1,7 +1,7 @@
# Template file for 'hidrd'
pkgname=hidrd
version=0.2.0
-revision=1
+revision=2
build_style=gnu-configure
hostmakedepends="automake libtool pkg-config"
short_desc="HID report descriptor I/O library and conversion tool"
@@ -14,7 +14,7 @@ checksum=0147993dedb3066873d22fab1dc3aafec78d8c5783d168cccc43126f0fc3b307
case $XBPS_TARGET_MACHINE in
*-musl)
configure_args+=' LIBS=-lobstack'
- makedepends+=" musl-obstack"
+ makedepends+=" musl-obstack-devel"
;;
esac
From dd6e78046f017adb3618d1bd2d793f6c8926d5ca Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:23 -0300
Subject: [PATCH 7/9] elfutils: use musl-obstack-devel.
---
srcpkgs/elfutils/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/elfutils/template b/srcpkgs/elfutils/template
index ed40864be48..4523c6db0e2 100644
--- a/srcpkgs/elfutils/template
+++ b/srcpkgs/elfutils/template
@@ -1,7 +1,7 @@
# Template file for 'elfutils'
pkgname=elfutils
version=0.180
-revision=1
+revision=2
build_style=gnu-configure
configure_args="--program-prefix=eu- --disable-debuginfod"
hostmakedepends="automake libtool pkg-config"
@@ -16,7 +16,7 @@ checksum=b827b6e35c59d188ba97d7cf148fa8dc6f5c68eb6c5981888dfdbb758c0b569d
CFLAGS="-Wno-error -Wno-error=null-dereference"
case "$XBPS_TARGET_MACHINE" in
- *-musl) makedepends+=" argp-standalone musl-fts-devel musl-obstack" ;;
+ *-musl) makedepends+=" argp-standalone musl-fts-devel musl-obstack-devel" ;;
esac
if [ "$CROSS_BUILD" ]; then
From 3675c1bd29b2a61ad3fa33e84a34c716d579d430 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:46 -0300
Subject: [PATCH 8/9] cronie: use musl-obstack-devel.
---
srcpkgs/cronie/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/cronie/template b/srcpkgs/cronie/template
index cd00937e7f5..e2c40f9e645 100644
--- a/srcpkgs/cronie/template
+++ b/srcpkgs/cronie/template
@@ -1,7 +1,7 @@
# Template file for 'cronie'
pkgname=cronie
version=1.5.5
-revision=2
+revision=3
build_style=gnu-configure
configure_args="--with-inotify --without-selinux --with-pam
--enable-anacron --enable-pie --enable-relro"
@@ -34,7 +34,7 @@ alternatives="
"
if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
- makedepends+=" musl-obstack"
+ makedepends+=" musl-obstack-devel"
fi
pre_configure() {
From a0519c19dd3af345bab9e9c1d0d3fec64a83aae3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 17:45:34 -0300
Subject: [PATCH 9/9] spotify: enable musl support.
Requires gcompat and patchelf, follows instructions from
https://catfox.life/2020/07/06/live-from-adelie-streaming-spotify-on-musl/
---
srcpkgs/spotify/INSTALL | 18 ++++++++++++++++--
srcpkgs/spotify/template | 10 ++++++++--
2 files changed, 24 insertions(+), 4 deletions(-)
diff --git a/srcpkgs/spotify/INSTALL b/srcpkgs/spotify/INSTALL
index 1cf70985dcb..6d557133403 100644
--- a/srcpkgs/spotify/INSTALL
+++ b/srcpkgs/spotify/INSTALL
@@ -1,7 +1,7 @@
# INSTALL for 'spotify'
# Fetching proprietary binaries at install-time
-_BUILDDIR="/tmp/spotify.build"
+_BUILDDIR="$(mktemp -d /tmp/spotify.build.XXXXX)"
_LIBS=$(ldconfig -vNX -n usr/lib 2>/dev/null)
linklib() {
@@ -10,8 +10,8 @@ linklib() {
}
if test "$ACTION" = "post"; then
+ # get checksum and version information
. usr/share/spotify/pkgdata
- mkdir -p "$_BUILDDIR"
(
set -e
cd "$_BUILDDIR"
@@ -27,15 +27,29 @@ if test "$ACTION" = "post"; then
exit 1;
fi
+ # delete old package version
[ -d "/usr/share/spotify/spotify-client" ] && rm -rf usr/share/spotify/spotify-client
+
+ # copy data
mv -f "${_BUILDDIR}/usr/share/spotify" usr/share/spotify/spotify-client
for _s in 16 22 24 32 48 64 128 256 512; do
mkdir -p "/usr/share/icons/hicolor/${_s}x${_s}/apps"
ln -sf "/usr/share/spotify/spotify-client/icons/spotify-linux-${_s}.png" "/usr/share/icons/hicolor/${_s}x${_s}/apps/spotify-client.png"
done
+
mkdir -p usr/share/applications
ln -sf /usr/share/spotify/spotify-client/spotify.desktop usr/share/applications/spotify.desktop
+
+ # https://catfox.life/2020/07/06/live-from-adelie-streaming-spotify-on-musl/
+ if [ "$(xbps-uhelper arch)" = "x86_64-musl" ]; then
+ for _l in libm.so.6 libdl.so.2; do
+ patchelf --remove-needed "${_l}" usr/share/spotify/spotify-client/spotify
+ done
+ fi
+
linklib "libssl" "1.0.0"
linklib "libcrypto" "1.0.0"
+
+ # cleanup
rm -r "$_BUILDDIR"
fi
diff --git a/srcpkgs/spotify/template b/srcpkgs/spotify/template
index d9ec603bf6a..5053a7224b2 100644
--- a/srcpkgs/spotify/template
+++ b/srcpkgs/spotify/template
@@ -2,17 +2,23 @@
pkgname=spotify
version=1.1.26
revision=1
-archs="x86_64"
+archs="x86_64*"
create_wrksrc=yes
build_style=fetch
depends="binutils gtk+ nss GConf libXScrnSaver libatomic"
short_desc="Proprietary music streaming client"
maintainer="Stefan Mühlinghaus <jazzman@alphabreed.com>"
-license="Proprietary"
+license="custom:Proprietary"
homepage="https://www.spotify.com"
repository=nonfree
_sversion=".501.gbe11e53b-15_amd64"
_schecksum="54ba1bd91020913273c469591cedeebfa34aedc250033dde7c8b3fded94a9c71"
+
+if [ "$XBPS_TARGET_LIBC" = musl ]; then
+ # musl requires compat library and modifying the binary
+ depends+=" gcompat>=0.9.0 patchelf"
+fi
+
do_install() {
vbin ${FILESDIR}/spotify
vmkdir usr/share/spotify
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PR PATCH] [Updated] [RFC][WIP] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack
2020-07-06 23:50 [PR PATCH] [RFC] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack ericonr
` (8 preceding siblings ...)
2020-07-09 23:39 ` [PR PATCH] [Updated] " ericonr
@ 2020-07-14 18:25 ` ericonr
2020-07-14 18:26 ` Update gcompat to 0.9.0, " ericonr
` (12 subsequent siblings)
22 siblings, 0 replies; 24+ messages in thread
From: ericonr @ 2020-07-14 18:25 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 1150 bytes --]
There is an updated pull request by ericonr against master on the void-packages repository
https://github.com/ericonr/void-packages gcompat
https://github.com/void-linux/void-packages/pull/23432
[RFC][WIP] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack
Okay, so this is a biggie PR, and I do need help for making some decisions.
- So, basically, `gcompat` can do Spotify now, on Adélie. I am working on debugging it on Void, because it isn't working completely yet. If I can't get it working soon, I will leave the spotify commit out of this one.
- I enabled `obstack` in `gcompat`, by enabling the dynamic lib in `musl-obstack`. This completely fixes #22616, which needed obstack and `__strftime_l` symbols (the latter was fixed by gcompat itself).
- I split `musl-obstack-devel`.
- I switched package dependencies to `musl-obstack-devel`, but they ended up depending on the dynamic version of obstack. Is this bad? Is there some way to solve this? Perhaps two devel sub packages, one for dynamic and one for static linking?
A patch file from https://github.com/void-linux/void-packages/pull/23432.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-gcompat-23432.patch --]
[-- Type: text/x-diff, Size: 12462 bytes --]
From 9b46c2cafefb43884a4f5f72eb278948411ed4d5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:26:32 -0300
Subject: [PATCH 1/8] musl-obstack: ship dynamic lib, split devel.
---
common/shlibs | 1 +
srcpkgs/musl-obstack-devel | 1 +
srcpkgs/musl-obstack/template | 16 +++++++++++++---
3 files changed, 15 insertions(+), 3 deletions(-)
create mode 120000 srcpkgs/musl-obstack-devel
diff --git a/common/shlibs b/common/shlibs
index 86ee9fcb734..31272a3530a 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -3978,3 +3978,4 @@ libsepol.so.1 libsepol-3.0_1
libfrrcares.so.0 libfrr-7.3.1_1
libhugetlbfs.so.0 libhugetlbfs-2.22_1
libdolphinvcs.so.5 dolphin-plugins-20.04.2_1
+libobstack.so.0 musl-obstack-1.1_4
diff --git a/srcpkgs/musl-obstack-devel b/srcpkgs/musl-obstack-devel
new file mode 120000
index 00000000000..e21ca66cded
--- /dev/null
+++ b/srcpkgs/musl-obstack-devel
@@ -0,0 +1 @@
+musl-obstack
\ No newline at end of file
diff --git a/srcpkgs/musl-obstack/template b/srcpkgs/musl-obstack/template
index 2cd2ddf2efc..4e8bee6afec 100644
--- a/srcpkgs/musl-obstack/template
+++ b/srcpkgs/musl-obstack/template
@@ -1,16 +1,15 @@
# Template file for 'musl-obstack'
pkgname=musl-obstack
version=1.1
-revision=3
+revision=4
archs="*-musl"
build_style=gnu-configure
-configure_args="--disable-shared"
hostmakedepends="automake libtool"
short_desc="Implementation of obstack for musl libc"
maintainer="Jürgen Buchmüller <pullmoll@t-online.de>"
license="GPL-2.0-or-later"
homepage="https://github.com/void-linux/musl-obstack"
-distfiles="https://github.com/void-linux/${pkgname}/archive/v${version}.tar.gz>${pkgname}-${version}.tar.gz"
+distfiles="${homepage}/archive/v${version}.tar.gz>${pkgname}-${version}.tar.gz"
checksum=52a216613e7d55e8725e43d017bb2d49a4b1ffa1e06da472f03c7f9875df7d0d
CFLAGS="-fPIC"
@@ -22,3 +21,14 @@ pre_configure() {
post_install() {
vinstall ${pkgname}.pc 644 usr/lib/pkgconfig
}
+
+musl-obstack-devel_package() {
+ depends="${sourcepkg}-${version}_${revision}"
+ short_desc+=" - development files"
+ pkg_install() {
+ vmove usr/include
+ vmove usr/lib/libobstack.a
+ vmove usr/lib/libobstack.so
+ vmove usr/lib/pkgconfig
+ }
+}
From 61cbfc0a97977cd907f0d26c0ce03ec4a359199a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 17:45:20 -0300
Subject: [PATCH 2/8] gcompat: update to 0.9.0.
Add musl-obstack dependency.
---
.../gcompat/patches/ppc-libc_start_main.patch | 67 -------------------
srcpkgs/gcompat/template | 10 +--
2 files changed, 6 insertions(+), 71 deletions(-)
delete mode 100644 srcpkgs/gcompat/patches/ppc-libc_start_main.patch
diff --git a/srcpkgs/gcompat/patches/ppc-libc_start_main.patch b/srcpkgs/gcompat/patches/ppc-libc_start_main.patch
deleted file mode 100644
index 518292745f7..00000000000
--- a/srcpkgs/gcompat/patches/ppc-libc_start_main.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From d30e49d10cefeb2748373127e1d1aba1184f653d Mon Sep 17 00:00:00 2001
-From: q66 <daniel@octaforge.org>
-Date: Sun, 10 Nov 2019 15:32:28 +0100
-Subject: [PATCH 1/1] internal: add a wrapper for __libc_start_main for
- PowerPC(64(le))
-
-This is necessary because the musl and glibc function signatures
-differ significantly.
----
- libgcompat/internal.c | 41 +++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 41 insertions(+)
-
-diff --git a/libgcompat/internal.c b/libgcompat/internal.c
-index 450c5e4..53ac429 100644
---- libgcompat/internal.c
-+++ libgcompat/internal.c
-@@ -2,6 +2,47 @@
- #include <stdio.h>
- #include <stdlib.h>
-
-+#if defined(__powerpc__)
-+
-+/* On PowerPC as well as ppc64, we need to fix up __libc_start_main as the
-+ * glibc and musl versions have wildly different signatures, which would
-+ * result in the arguments to __libc_start_main being completely wrong.
-+ *
-+ * Using dlsym in this context is mildly questionable as this is before
-+ * the full initialization has been done, but there is no better way.
-+ */
-+
-+#include <dlfcn.h>
-+
-+struct startup_info {
-+ void *sda_base;
-+ void *f_main;
-+ void *f_init;
-+ void *f_fini;
-+};
-+
-+typedef int (*start_main_t)(void *mf, int argc, char **argv);
-+
-+/*
-+ * ref: https://git.musl-libc.org/cgit/musl/tree/crt/crt1.c?id=90251cf
-+ * ref: https://git.musl-libc.org/cgit/musl/tree/src/env/__libc_start_main.c?id=90251cf#n71
-+ * ref: https://github.com/bminor/glibc/blob/5cb226d/sysdeps/unix/sysv/linux/powerpc/libc-start.c#L36
-+ */
-+int __libc_start_main(void *argc, void *argv, void *ev, void *auxv, void *fini,
-+ struct startup_info *si, long *p)
-+{
-+ (void)argc;
-+ (void)argv;
-+ (void)ev;
-+ (void)auxv;
-+ (void)fini;
-+ /* argc/argv from the stack, main from startup_info */
-+ start_main_t mainf = (start_main_t)dlsym(RTLD_NEXT, "__libc_start_main");
-+ return mainf(si->f_main, *p, (void *)(p + 1));
-+}
-+
-+#endif /* defined(__powerpc__) */
-+
- void GCOMPAT__panic(const char *fmt, ...)
- {
- va_list va;
---
-2.23.0
-
diff --git a/srcpkgs/gcompat/template b/srcpkgs/gcompat/template
index 237f97bd5e9..b2c1e9f8230 100644
--- a/srcpkgs/gcompat/template
+++ b/srcpkgs/gcompat/template
@@ -1,14 +1,16 @@
# Template file for 'gcompat'
pkgname=gcompat
-version=0.4.0
+version=0.9.0
revision=1
build_style=gnu-makefile
+hostmakedepends="pkg-config"
+makedepends="musl-obstack-devel"
short_desc="Compatibility layer to allow running glibc binaries on musl systems"
maintainer="Daniel James <djames@orcadian.net>"
license="ISC"
homepage="https://code.foxkit.us/adelie/gcompat"
distfiles="https://distfiles.AdelieLinux.org/source/${pkgname}/${pkgname}-${version}.tar.xz"
-checksum=9903fac7b70de3ba7736ae2987fa00bbafff7bfcf6a9c88731c292dff19e44e2
+checksum=4555d045d7d2831d11b907719005c5dfbc77642c32f8c0172d40883026ffaf53
build_options="libucontext"
desc_option_libucontext="Build with ucontext support via libucontext"
@@ -43,10 +45,10 @@ esac
make_build_args="LINKER_PATH=/usr/lib/${_musl} LOADER_NAME=${_glibc}
LIBGCOMPAT_PATH=/usr/lib/libgcompat.so.0 LOADER_PATH=/usr/lib/${LOADER_NAME}
- WITH_OBSTACK=no"
+ WITH_OBSTACK=musl-obstack"
make_install_args="LINKER_PATH=/usr/lib/${_musl} LOADER_NAME=${_glibc}
LIBGCOMPAT_PATH=/usr/lib/libgcompat.so.0 LOADER_PATH=/usr/lib/${LOADER_NAME}
- WITH_OBSTACK=no"
+ WITH_OBSTACK=musl-obstack"
if [ "$build_option_libucontext" ]; then
makedepends+=" libucontext-devel"
From af0b4464009b958580a2dedc3552e0c741f5c164 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:34:12 -0300
Subject: [PATCH 3/8] reiserfsprogs: use musl-obstack-devel.
---
srcpkgs/reiserfsprogs/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/reiserfsprogs/template b/srcpkgs/reiserfsprogs/template
index 121b03a95a4..8b45947935c 100644
--- a/srcpkgs/reiserfsprogs/template
+++ b/srcpkgs/reiserfsprogs/template
@@ -1,7 +1,7 @@
# Template file for 'reiserfsprogs'
pkgname=reiserfsprogs
version=3.6.27
-revision=1
+revision=2
build_style=gnu-configure
hostmakedepends="automake libtool pkg-config"
makedepends="libuuid-devel e2fsprogs-devel acl-devel"
@@ -14,7 +14,7 @@ checksum=0e95b67fa7746a3c2d59145e9b9c2feb4a6be52853e83b497b182eae508e62e3
case "$XBPS_TARGET_MACHINE" in
*-musl)
- makedepends+=" musl-obstack"
+ makedepends+=" musl-obstack-devel"
LDFLAGS="-lobstack"
;;
esac
From df6d47d39f6a6466154b99c260422da813867431 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:34:40 -0300
Subject: [PATCH 4/8] perl-Proc-ProcessTable: use musl-obstack-devel.
---
srcpkgs/perl-Proc-ProcessTable/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/perl-Proc-ProcessTable/template b/srcpkgs/perl-Proc-ProcessTable/template
index 58c07f2cb22..3fb6d53f684 100644
--- a/srcpkgs/perl-Proc-ProcessTable/template
+++ b/srcpkgs/perl-Proc-ProcessTable/template
@@ -1,7 +1,7 @@
# Template file for 'perl-Proc-ProcessTable'
pkgname=perl-Proc-ProcessTable
version=0.59
-revision=2
+revision=3
wrksrc="Proc-ProcessTable-${version}"
build_style=perl-module
hostmakedepends="perl"
@@ -15,5 +15,5 @@ distfiles="${CPAN_SITE}/Proc/Proc-ProcessTable-${version}.tar.gz"
checksum=f8cc5054d78c35a0ce39fb75430b4ef402e2a99013d2ec37e7997f316594606c
case "$XBPS_TARGET_MACHINE" in
- *-musl) makedepends+=" musl-obstack" ;;
+ *-musl) makedepends+=" musl-obstack-devel" ;;
esac
From 1172ca589e6464b202e782343c8fcd72ffa64072 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:00 -0300
Subject: [PATCH 5/8] pahole: use musl-obstack-devel.
---
srcpkgs/pahole/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/pahole/template b/srcpkgs/pahole/template
index e504d3479f7..4d16a3ba7b5 100644
--- a/srcpkgs/pahole/template
+++ b/srcpkgs/pahole/template
@@ -1,7 +1,7 @@
# Template file for 'pahole'
pkgname=pahole
version=1.17
-revision=1
+revision=2
_bpfver=0.0.7
build_style=cmake
configure_args="-D__LIB=lib"
@@ -16,7 +16,7 @@ checksum="51e35041ce43ed08922037a1ee9e415aff1590e0d8d7cbe3e2b003f388db0a8a
a616ba2ea72d00b4022689b17f4a78365379e3040d0f1a66d28eba52c528e480"
case $XBPS_TARGET_MACHINE in
- *-musl) makedepends+=" musl-obstack argp-standalone"
+ *-musl) makedepends+=" musl-obstack-devel argp-standalone"
esac
pre_patch() {
From 95e444876e3fbe3d5279c7e16b198d32fb973437 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:12 -0300
Subject: [PATCH 6/8] hidrd: use musl-obstack-devel.
---
srcpkgs/hidrd/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/hidrd/template b/srcpkgs/hidrd/template
index 1bb75b98a0c..3470511708c 100644
--- a/srcpkgs/hidrd/template
+++ b/srcpkgs/hidrd/template
@@ -1,7 +1,7 @@
# Template file for 'hidrd'
pkgname=hidrd
version=0.2.0
-revision=1
+revision=2
build_style=gnu-configure
hostmakedepends="automake libtool pkg-config"
short_desc="HID report descriptor I/O library and conversion tool"
@@ -14,7 +14,7 @@ checksum=0147993dedb3066873d22fab1dc3aafec78d8c5783d168cccc43126f0fc3b307
case $XBPS_TARGET_MACHINE in
*-musl)
configure_args+=' LIBS=-lobstack'
- makedepends+=" musl-obstack"
+ makedepends+=" musl-obstack-devel"
;;
esac
From dd6e78046f017adb3618d1bd2d793f6c8926d5ca Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:23 -0300
Subject: [PATCH 7/8] elfutils: use musl-obstack-devel.
---
srcpkgs/elfutils/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/elfutils/template b/srcpkgs/elfutils/template
index ed40864be48..4523c6db0e2 100644
--- a/srcpkgs/elfutils/template
+++ b/srcpkgs/elfutils/template
@@ -1,7 +1,7 @@
# Template file for 'elfutils'
pkgname=elfutils
version=0.180
-revision=1
+revision=2
build_style=gnu-configure
configure_args="--program-prefix=eu- --disable-debuginfod"
hostmakedepends="automake libtool pkg-config"
@@ -16,7 +16,7 @@ checksum=b827b6e35c59d188ba97d7cf148fa8dc6f5c68eb6c5981888dfdbb758c0b569d
CFLAGS="-Wno-error -Wno-error=null-dereference"
case "$XBPS_TARGET_MACHINE" in
- *-musl) makedepends+=" argp-standalone musl-fts-devel musl-obstack" ;;
+ *-musl) makedepends+=" argp-standalone musl-fts-devel musl-obstack-devel" ;;
esac
if [ "$CROSS_BUILD" ]; then
From 3675c1bd29b2a61ad3fa33e84a34c716d579d430 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:46 -0300
Subject: [PATCH 8/8] cronie: use musl-obstack-devel.
---
srcpkgs/cronie/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/cronie/template b/srcpkgs/cronie/template
index cd00937e7f5..e2c40f9e645 100644
--- a/srcpkgs/cronie/template
+++ b/srcpkgs/cronie/template
@@ -1,7 +1,7 @@
# Template file for 'cronie'
pkgname=cronie
version=1.5.5
-revision=2
+revision=3
build_style=gnu-configure
configure_args="--with-inotify --without-selinux --with-pam
--enable-anacron --enable-pie --enable-relro"
@@ -34,7 +34,7 @@ alternatives="
"
if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
- makedepends+=" musl-obstack"
+ makedepends+=" musl-obstack-devel"
fi
pre_configure() {
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: Update gcompat to 0.9.0, use dynamic musl-obstack
2020-07-06 23:50 [PR PATCH] [RFC] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack ericonr
` (9 preceding siblings ...)
2020-07-14 18:25 ` ericonr
@ 2020-07-14 18:26 ` ericonr
2020-07-15 17:03 ` ericonr
` (11 subsequent siblings)
22 siblings, 0 replies; 24+ messages in thread
From: ericonr @ 2020-07-14 18:26 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 208 bytes --]
New comment by ericonr on void-packages repository
https://github.com/void-linux/void-packages/pull/23432#issuecomment-658339169
Comment:
Removed Spotify from the PR, that's going to be a separate project.
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: Update gcompat to 0.9.0, use dynamic musl-obstack
2020-07-06 23:50 [PR PATCH] [RFC] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack ericonr
` (10 preceding siblings ...)
2020-07-14 18:26 ` Update gcompat to 0.9.0, " ericonr
@ 2020-07-15 17:03 ` ericonr
2020-07-20 4:48 ` [PR PATCH] [Updated] " ericonr
` (10 subsequent siblings)
22 siblings, 0 replies; 24+ messages in thread
From: ericonr @ 2020-07-15 17:03 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 192 bytes --]
New comment by ericonr on void-packages repository
https://github.com/void-linux/void-packages/pull/23432#issuecomment-658885483
Comment:
Pinging @pullmoll about the change to musl-obstack.
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PR PATCH] [Updated] Update gcompat to 0.9.0, use dynamic musl-obstack
2020-07-06 23:50 [PR PATCH] [RFC] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack ericonr
` (11 preceding siblings ...)
2020-07-15 17:03 ` ericonr
@ 2020-07-20 4:48 ` ericonr
2020-07-20 4:51 ` ericonr
` (9 subsequent siblings)
22 siblings, 0 replies; 24+ messages in thread
From: ericonr @ 2020-07-20 4:48 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 1118 bytes --]
There is an updated pull request by ericonr against master on the void-packages repository
https://github.com/ericonr/void-packages gcompat
https://github.com/void-linux/void-packages/pull/23432
Update gcompat to 0.9.0, use dynamic musl-obstack
Okay, so this is a biggie PR, and I do need help for making some decisions.
- So, basically, `gcompat` can do Spotify now, on Adélie. I am working on debugging it on Void, because it isn't working completely yet. If I can't get it working soon, I will leave the spotify commit out of this one.
- I enabled `obstack` in `gcompat`, by enabling the dynamic lib in `musl-obstack`. This completely fixes #22616, which needed obstack and `__strftime_l` symbols (the latter was fixed by gcompat itself).
- I split `musl-obstack-devel`.
- I switched package dependencies to `musl-obstack-devel`, but they ended up depending on the dynamic version of obstack. Is this bad? Is there some way to solve this? Perhaps two devel sub packages, one for dynamic and one for static linking?
A patch file from https://github.com/void-linux/void-packages/pull/23432.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-gcompat-23432.patch --]
[-- Type: text/x-diff, Size: 12567 bytes --]
From eec5f0d590e8f2960d094b544616b9c7a59cd91a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:26:32 -0300
Subject: [PATCH 1/8] musl-obstack: ship dynamic lib, split devel.
---
common/shlibs | 1 +
srcpkgs/musl-obstack-devel | 1 +
srcpkgs/musl-obstack/template | 16 +++++++++++++---
3 files changed, 15 insertions(+), 3 deletions(-)
create mode 120000 srcpkgs/musl-obstack-devel
diff --git a/common/shlibs b/common/shlibs
index 42bb0996d24..6ac4a5c4cb1 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -3973,6 +3973,7 @@ libvips-cpp.so.42 libvips-8.9.2_1
libselinux.so.1 libselinux-3.0_1
libsepol.so.1 libsepol-3.0_1
libfrrcares.so.0 libfrr-7.3.1_1
+libobstack.so.0 musl-obstack-1.1_4
libhugetlbfs.so.0 libhugetlbfs-2.22_1
libkpathsea.so.6 texlive-20200406_1
libtexluajit.so.2 texlive-LuaTeX-20200406_1
diff --git a/srcpkgs/musl-obstack-devel b/srcpkgs/musl-obstack-devel
new file mode 120000
index 00000000000..e21ca66cded
--- /dev/null
+++ b/srcpkgs/musl-obstack-devel
@@ -0,0 +1 @@
+musl-obstack
\ No newline at end of file
diff --git a/srcpkgs/musl-obstack/template b/srcpkgs/musl-obstack/template
index 2cd2ddf2efc..4e8bee6afec 100644
--- a/srcpkgs/musl-obstack/template
+++ b/srcpkgs/musl-obstack/template
@@ -1,16 +1,15 @@
# Template file for 'musl-obstack'
pkgname=musl-obstack
version=1.1
-revision=3
+revision=4
archs="*-musl"
build_style=gnu-configure
-configure_args="--disable-shared"
hostmakedepends="automake libtool"
short_desc="Implementation of obstack for musl libc"
maintainer="Jürgen Buchmüller <pullmoll@t-online.de>"
license="GPL-2.0-or-later"
homepage="https://github.com/void-linux/musl-obstack"
-distfiles="https://github.com/void-linux/${pkgname}/archive/v${version}.tar.gz>${pkgname}-${version}.tar.gz"
+distfiles="${homepage}/archive/v${version}.tar.gz>${pkgname}-${version}.tar.gz"
checksum=52a216613e7d55e8725e43d017bb2d49a4b1ffa1e06da472f03c7f9875df7d0d
CFLAGS="-fPIC"
@@ -22,3 +21,14 @@ pre_configure() {
post_install() {
vinstall ${pkgname}.pc 644 usr/lib/pkgconfig
}
+
+musl-obstack-devel_package() {
+ depends="${sourcepkg}-${version}_${revision}"
+ short_desc+=" - development files"
+ pkg_install() {
+ vmove usr/include
+ vmove usr/lib/libobstack.a
+ vmove usr/lib/libobstack.so
+ vmove usr/lib/pkgconfig
+ }
+}
From e5f6db15b4d98355674f5d7444c3d8f78f820790 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 17:45:20 -0300
Subject: [PATCH 2/8] gcompat: update to 0.9.0.
Add musl-obstack dependency.
---
.../gcompat/patches/ppc-libc_start_main.patch | 67 -------------------
srcpkgs/gcompat/template | 10 +--
2 files changed, 6 insertions(+), 71 deletions(-)
delete mode 100644 srcpkgs/gcompat/patches/ppc-libc_start_main.patch
diff --git a/srcpkgs/gcompat/patches/ppc-libc_start_main.patch b/srcpkgs/gcompat/patches/ppc-libc_start_main.patch
deleted file mode 100644
index 518292745f7..00000000000
--- a/srcpkgs/gcompat/patches/ppc-libc_start_main.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From d30e49d10cefeb2748373127e1d1aba1184f653d Mon Sep 17 00:00:00 2001
-From: q66 <daniel@octaforge.org>
-Date: Sun, 10 Nov 2019 15:32:28 +0100
-Subject: [PATCH 1/1] internal: add a wrapper for __libc_start_main for
- PowerPC(64(le))
-
-This is necessary because the musl and glibc function signatures
-differ significantly.
----
- libgcompat/internal.c | 41 +++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 41 insertions(+)
-
-diff --git a/libgcompat/internal.c b/libgcompat/internal.c
-index 450c5e4..53ac429 100644
---- libgcompat/internal.c
-+++ libgcompat/internal.c
-@@ -2,6 +2,47 @@
- #include <stdio.h>
- #include <stdlib.h>
-
-+#if defined(__powerpc__)
-+
-+/* On PowerPC as well as ppc64, we need to fix up __libc_start_main as the
-+ * glibc and musl versions have wildly different signatures, which would
-+ * result in the arguments to __libc_start_main being completely wrong.
-+ *
-+ * Using dlsym in this context is mildly questionable as this is before
-+ * the full initialization has been done, but there is no better way.
-+ */
-+
-+#include <dlfcn.h>
-+
-+struct startup_info {
-+ void *sda_base;
-+ void *f_main;
-+ void *f_init;
-+ void *f_fini;
-+};
-+
-+typedef int (*start_main_t)(void *mf, int argc, char **argv);
-+
-+/*
-+ * ref: https://git.musl-libc.org/cgit/musl/tree/crt/crt1.c?id=90251cf
-+ * ref: https://git.musl-libc.org/cgit/musl/tree/src/env/__libc_start_main.c?id=90251cf#n71
-+ * ref: https://github.com/bminor/glibc/blob/5cb226d/sysdeps/unix/sysv/linux/powerpc/libc-start.c#L36
-+ */
-+int __libc_start_main(void *argc, void *argv, void *ev, void *auxv, void *fini,
-+ struct startup_info *si, long *p)
-+{
-+ (void)argc;
-+ (void)argv;
-+ (void)ev;
-+ (void)auxv;
-+ (void)fini;
-+ /* argc/argv from the stack, main from startup_info */
-+ start_main_t mainf = (start_main_t)dlsym(RTLD_NEXT, "__libc_start_main");
-+ return mainf(si->f_main, *p, (void *)(p + 1));
-+}
-+
-+#endif /* defined(__powerpc__) */
-+
- void GCOMPAT__panic(const char *fmt, ...)
- {
- va_list va;
---
-2.23.0
-
diff --git a/srcpkgs/gcompat/template b/srcpkgs/gcompat/template
index 237f97bd5e9..b2c1e9f8230 100644
--- a/srcpkgs/gcompat/template
+++ b/srcpkgs/gcompat/template
@@ -1,14 +1,16 @@
# Template file for 'gcompat'
pkgname=gcompat
-version=0.4.0
+version=0.9.0
revision=1
build_style=gnu-makefile
+hostmakedepends="pkg-config"
+makedepends="musl-obstack-devel"
short_desc="Compatibility layer to allow running glibc binaries on musl systems"
maintainer="Daniel James <djames@orcadian.net>"
license="ISC"
homepage="https://code.foxkit.us/adelie/gcompat"
distfiles="https://distfiles.AdelieLinux.org/source/${pkgname}/${pkgname}-${version}.tar.xz"
-checksum=9903fac7b70de3ba7736ae2987fa00bbafff7bfcf6a9c88731c292dff19e44e2
+checksum=4555d045d7d2831d11b907719005c5dfbc77642c32f8c0172d40883026ffaf53
build_options="libucontext"
desc_option_libucontext="Build with ucontext support via libucontext"
@@ -43,10 +45,10 @@ esac
make_build_args="LINKER_PATH=/usr/lib/${_musl} LOADER_NAME=${_glibc}
LIBGCOMPAT_PATH=/usr/lib/libgcompat.so.0 LOADER_PATH=/usr/lib/${LOADER_NAME}
- WITH_OBSTACK=no"
+ WITH_OBSTACK=musl-obstack"
make_install_args="LINKER_PATH=/usr/lib/${_musl} LOADER_NAME=${_glibc}
LIBGCOMPAT_PATH=/usr/lib/libgcompat.so.0 LOADER_PATH=/usr/lib/${LOADER_NAME}
- WITH_OBSTACK=no"
+ WITH_OBSTACK=musl-obstack"
if [ "$build_option_libucontext" ]; then
makedepends+=" libucontext-devel"
From 01b17c2f9870fa3a63d3510ebc02b47886988269 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:34:12 -0300
Subject: [PATCH 3/8] reiserfsprogs: use musl-obstack-devel.
---
srcpkgs/reiserfsprogs/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/reiserfsprogs/template b/srcpkgs/reiserfsprogs/template
index 121b03a95a4..8b45947935c 100644
--- a/srcpkgs/reiserfsprogs/template
+++ b/srcpkgs/reiserfsprogs/template
@@ -1,7 +1,7 @@
# Template file for 'reiserfsprogs'
pkgname=reiserfsprogs
version=3.6.27
-revision=1
+revision=2
build_style=gnu-configure
hostmakedepends="automake libtool pkg-config"
makedepends="libuuid-devel e2fsprogs-devel acl-devel"
@@ -14,7 +14,7 @@ checksum=0e95b67fa7746a3c2d59145e9b9c2feb4a6be52853e83b497b182eae508e62e3
case "$XBPS_TARGET_MACHINE" in
*-musl)
- makedepends+=" musl-obstack"
+ makedepends+=" musl-obstack-devel"
LDFLAGS="-lobstack"
;;
esac
From 99e02bbc155e38c5c6b022b30ed715a066334d9b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:34:40 -0300
Subject: [PATCH 4/8] perl-Proc-ProcessTable: use musl-obstack-devel.
---
srcpkgs/perl-Proc-ProcessTable/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/perl-Proc-ProcessTable/template b/srcpkgs/perl-Proc-ProcessTable/template
index 58c07f2cb22..3fb6d53f684 100644
--- a/srcpkgs/perl-Proc-ProcessTable/template
+++ b/srcpkgs/perl-Proc-ProcessTable/template
@@ -1,7 +1,7 @@
# Template file for 'perl-Proc-ProcessTable'
pkgname=perl-Proc-ProcessTable
version=0.59
-revision=2
+revision=3
wrksrc="Proc-ProcessTable-${version}"
build_style=perl-module
hostmakedepends="perl"
@@ -15,5 +15,5 @@ distfiles="${CPAN_SITE}/Proc/Proc-ProcessTable-${version}.tar.gz"
checksum=f8cc5054d78c35a0ce39fb75430b4ef402e2a99013d2ec37e7997f316594606c
case "$XBPS_TARGET_MACHINE" in
- *-musl) makedepends+=" musl-obstack" ;;
+ *-musl) makedepends+=" musl-obstack-devel" ;;
esac
From 60274843ff8c33d6369c70d117dd04b0dea18229 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:00 -0300
Subject: [PATCH 5/8] pahole: use musl-obstack-devel.
---
srcpkgs/pahole/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/pahole/template b/srcpkgs/pahole/template
index e504d3479f7..4d16a3ba7b5 100644
--- a/srcpkgs/pahole/template
+++ b/srcpkgs/pahole/template
@@ -1,7 +1,7 @@
# Template file for 'pahole'
pkgname=pahole
version=1.17
-revision=1
+revision=2
_bpfver=0.0.7
build_style=cmake
configure_args="-D__LIB=lib"
@@ -16,7 +16,7 @@ checksum="51e35041ce43ed08922037a1ee9e415aff1590e0d8d7cbe3e2b003f388db0a8a
a616ba2ea72d00b4022689b17f4a78365379e3040d0f1a66d28eba52c528e480"
case $XBPS_TARGET_MACHINE in
- *-musl) makedepends+=" musl-obstack argp-standalone"
+ *-musl) makedepends+=" musl-obstack-devel argp-standalone"
esac
pre_patch() {
From df9d6636537031d410efea41a4e0feb5476a5cbd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:12 -0300
Subject: [PATCH 6/8] hidrd: use musl-obstack-devel.
---
srcpkgs/hidrd/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/hidrd/template b/srcpkgs/hidrd/template
index 1bb75b98a0c..3470511708c 100644
--- a/srcpkgs/hidrd/template
+++ b/srcpkgs/hidrd/template
@@ -1,7 +1,7 @@
# Template file for 'hidrd'
pkgname=hidrd
version=0.2.0
-revision=1
+revision=2
build_style=gnu-configure
hostmakedepends="automake libtool pkg-config"
short_desc="HID report descriptor I/O library and conversion tool"
@@ -14,7 +14,7 @@ checksum=0147993dedb3066873d22fab1dc3aafec78d8c5783d168cccc43126f0fc3b307
case $XBPS_TARGET_MACHINE in
*-musl)
configure_args+=' LIBS=-lobstack'
- makedepends+=" musl-obstack"
+ makedepends+=" musl-obstack-devel"
;;
esac
From 5061f170d59d1f37ba04298bffa927105b274388 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:23 -0300
Subject: [PATCH 7/8] elfutils: use musl-obstack-devel.
---
srcpkgs/elfutils/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/elfutils/template b/srcpkgs/elfutils/template
index ed40864be48..4523c6db0e2 100644
--- a/srcpkgs/elfutils/template
+++ b/srcpkgs/elfutils/template
@@ -1,7 +1,7 @@
# Template file for 'elfutils'
pkgname=elfutils
version=0.180
-revision=1
+revision=2
build_style=gnu-configure
configure_args="--program-prefix=eu- --disable-debuginfod"
hostmakedepends="automake libtool pkg-config"
@@ -16,7 +16,7 @@ checksum=b827b6e35c59d188ba97d7cf148fa8dc6f5c68eb6c5981888dfdbb758c0b569d
CFLAGS="-Wno-error -Wno-error=null-dereference"
case "$XBPS_TARGET_MACHINE" in
- *-musl) makedepends+=" argp-standalone musl-fts-devel musl-obstack" ;;
+ *-musl) makedepends+=" argp-standalone musl-fts-devel musl-obstack-devel" ;;
esac
if [ "$CROSS_BUILD" ]; then
From 3ba41fce928befad5534e652c23cebdb0e3322f9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:46 -0300
Subject: [PATCH 8/8] cronie: use musl-obstack-devel.
---
srcpkgs/cronie/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/cronie/template b/srcpkgs/cronie/template
index cd00937e7f5..e2c40f9e645 100644
--- a/srcpkgs/cronie/template
+++ b/srcpkgs/cronie/template
@@ -1,7 +1,7 @@
# Template file for 'cronie'
pkgname=cronie
version=1.5.5
-revision=2
+revision=3
build_style=gnu-configure
configure_args="--with-inotify --without-selinux --with-pam
--enable-anacron --enable-pie --enable-relro"
@@ -34,7 +34,7 @@ alternatives="
"
if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
- makedepends+=" musl-obstack"
+ makedepends+=" musl-obstack-devel"
fi
pre_configure() {
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PR PATCH] [Updated] Update gcompat to 0.9.0, use dynamic musl-obstack
2020-07-06 23:50 [PR PATCH] [RFC] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack ericonr
` (12 preceding siblings ...)
2020-07-20 4:48 ` [PR PATCH] [Updated] " ericonr
@ 2020-07-20 4:51 ` ericonr
2020-07-28 2:58 ` ericonr
` (8 subsequent siblings)
22 siblings, 0 replies; 24+ messages in thread
From: ericonr @ 2020-07-20 4:51 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 1118 bytes --]
There is an updated pull request by ericonr against master on the void-packages repository
https://github.com/ericonr/void-packages gcompat
https://github.com/void-linux/void-packages/pull/23432
Update gcompat to 0.9.0, use dynamic musl-obstack
Okay, so this is a biggie PR, and I do need help for making some decisions.
- So, basically, `gcompat` can do Spotify now, on Adélie. I am working on debugging it on Void, because it isn't working completely yet. If I can't get it working soon, I will leave the spotify commit out of this one.
- I enabled `obstack` in `gcompat`, by enabling the dynamic lib in `musl-obstack`. This completely fixes #22616, which needed obstack and `__strftime_l` symbols (the latter was fixed by gcompat itself).
- I split `musl-obstack-devel`.
- I switched package dependencies to `musl-obstack-devel`, but they ended up depending on the dynamic version of obstack. Is this bad? Is there some way to solve this? Perhaps two devel sub packages, one for dynamic and one for static linking?
A patch file from https://github.com/void-linux/void-packages/pull/23432.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-gcompat-23432.patch --]
[-- Type: text/x-diff, Size: 12562 bytes --]
From fca1f33d5d5693abf342e76d637c9ec9d44167f3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:26:32 -0300
Subject: [PATCH 1/8] musl-obstack: ship dynamic lib, split devel.
---
common/shlibs | 1 +
srcpkgs/musl-obstack-devel | 1 +
srcpkgs/musl-obstack/template | 16 +++++++++++++---
3 files changed, 15 insertions(+), 3 deletions(-)
create mode 120000 srcpkgs/musl-obstack-devel
diff --git a/common/shlibs b/common/shlibs
index 42bb0996d24..780df6f25b6 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -2459,6 +2459,7 @@ libkookularGenerator_odp.so.17 calligra-extras-3.2.0_1
libgemini.so.17 calligra-gemini-3.2.0_1
libarpack.so.2 arpack-ng-3.3.0_2
libfts.so.0 musl-fts-1.2_2
+libobstack.so.0 musl-obstack-1.1_4
libucontext.so.0 libucontext-0.1.1_1
libgavl.so.1 gavl-1.40_1
libmxml.so.1 mxml-2.9_1
diff --git a/srcpkgs/musl-obstack-devel b/srcpkgs/musl-obstack-devel
new file mode 120000
index 00000000000..e21ca66cded
--- /dev/null
+++ b/srcpkgs/musl-obstack-devel
@@ -0,0 +1 @@
+musl-obstack
\ No newline at end of file
diff --git a/srcpkgs/musl-obstack/template b/srcpkgs/musl-obstack/template
index 2cd2ddf2efc..4e8bee6afec 100644
--- a/srcpkgs/musl-obstack/template
+++ b/srcpkgs/musl-obstack/template
@@ -1,16 +1,15 @@
# Template file for 'musl-obstack'
pkgname=musl-obstack
version=1.1
-revision=3
+revision=4
archs="*-musl"
build_style=gnu-configure
-configure_args="--disable-shared"
hostmakedepends="automake libtool"
short_desc="Implementation of obstack for musl libc"
maintainer="Jürgen Buchmüller <pullmoll@t-online.de>"
license="GPL-2.0-or-later"
homepage="https://github.com/void-linux/musl-obstack"
-distfiles="https://github.com/void-linux/${pkgname}/archive/v${version}.tar.gz>${pkgname}-${version}.tar.gz"
+distfiles="${homepage}/archive/v${version}.tar.gz>${pkgname}-${version}.tar.gz"
checksum=52a216613e7d55e8725e43d017bb2d49a4b1ffa1e06da472f03c7f9875df7d0d
CFLAGS="-fPIC"
@@ -22,3 +21,14 @@ pre_configure() {
post_install() {
vinstall ${pkgname}.pc 644 usr/lib/pkgconfig
}
+
+musl-obstack-devel_package() {
+ depends="${sourcepkg}-${version}_${revision}"
+ short_desc+=" - development files"
+ pkg_install() {
+ vmove usr/include
+ vmove usr/lib/libobstack.a
+ vmove usr/lib/libobstack.so
+ vmove usr/lib/pkgconfig
+ }
+}
From 043ae1c9df2d232a9d6de934400e3c67eb48ed93 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 17:45:20 -0300
Subject: [PATCH 2/8] gcompat: update to 0.9.0.
Add musl-obstack dependency.
---
.../gcompat/patches/ppc-libc_start_main.patch | 67 -------------------
srcpkgs/gcompat/template | 10 +--
2 files changed, 6 insertions(+), 71 deletions(-)
delete mode 100644 srcpkgs/gcompat/patches/ppc-libc_start_main.patch
diff --git a/srcpkgs/gcompat/patches/ppc-libc_start_main.patch b/srcpkgs/gcompat/patches/ppc-libc_start_main.patch
deleted file mode 100644
index 518292745f7..00000000000
--- a/srcpkgs/gcompat/patches/ppc-libc_start_main.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From d30e49d10cefeb2748373127e1d1aba1184f653d Mon Sep 17 00:00:00 2001
-From: q66 <daniel@octaforge.org>
-Date: Sun, 10 Nov 2019 15:32:28 +0100
-Subject: [PATCH 1/1] internal: add a wrapper for __libc_start_main for
- PowerPC(64(le))
-
-This is necessary because the musl and glibc function signatures
-differ significantly.
----
- libgcompat/internal.c | 41 +++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 41 insertions(+)
-
-diff --git a/libgcompat/internal.c b/libgcompat/internal.c
-index 450c5e4..53ac429 100644
---- libgcompat/internal.c
-+++ libgcompat/internal.c
-@@ -2,6 +2,47 @@
- #include <stdio.h>
- #include <stdlib.h>
-
-+#if defined(__powerpc__)
-+
-+/* On PowerPC as well as ppc64, we need to fix up __libc_start_main as the
-+ * glibc and musl versions have wildly different signatures, which would
-+ * result in the arguments to __libc_start_main being completely wrong.
-+ *
-+ * Using dlsym in this context is mildly questionable as this is before
-+ * the full initialization has been done, but there is no better way.
-+ */
-+
-+#include <dlfcn.h>
-+
-+struct startup_info {
-+ void *sda_base;
-+ void *f_main;
-+ void *f_init;
-+ void *f_fini;
-+};
-+
-+typedef int (*start_main_t)(void *mf, int argc, char **argv);
-+
-+/*
-+ * ref: https://git.musl-libc.org/cgit/musl/tree/crt/crt1.c?id=90251cf
-+ * ref: https://git.musl-libc.org/cgit/musl/tree/src/env/__libc_start_main.c?id=90251cf#n71
-+ * ref: https://github.com/bminor/glibc/blob/5cb226d/sysdeps/unix/sysv/linux/powerpc/libc-start.c#L36
-+ */
-+int __libc_start_main(void *argc, void *argv, void *ev, void *auxv, void *fini,
-+ struct startup_info *si, long *p)
-+{
-+ (void)argc;
-+ (void)argv;
-+ (void)ev;
-+ (void)auxv;
-+ (void)fini;
-+ /* argc/argv from the stack, main from startup_info */
-+ start_main_t mainf = (start_main_t)dlsym(RTLD_NEXT, "__libc_start_main");
-+ return mainf(si->f_main, *p, (void *)(p + 1));
-+}
-+
-+#endif /* defined(__powerpc__) */
-+
- void GCOMPAT__panic(const char *fmt, ...)
- {
- va_list va;
---
-2.23.0
-
diff --git a/srcpkgs/gcompat/template b/srcpkgs/gcompat/template
index 237f97bd5e9..b2c1e9f8230 100644
--- a/srcpkgs/gcompat/template
+++ b/srcpkgs/gcompat/template
@@ -1,14 +1,16 @@
# Template file for 'gcompat'
pkgname=gcompat
-version=0.4.0
+version=0.9.0
revision=1
build_style=gnu-makefile
+hostmakedepends="pkg-config"
+makedepends="musl-obstack-devel"
short_desc="Compatibility layer to allow running glibc binaries on musl systems"
maintainer="Daniel James <djames@orcadian.net>"
license="ISC"
homepage="https://code.foxkit.us/adelie/gcompat"
distfiles="https://distfiles.AdelieLinux.org/source/${pkgname}/${pkgname}-${version}.tar.xz"
-checksum=9903fac7b70de3ba7736ae2987fa00bbafff7bfcf6a9c88731c292dff19e44e2
+checksum=4555d045d7d2831d11b907719005c5dfbc77642c32f8c0172d40883026ffaf53
build_options="libucontext"
desc_option_libucontext="Build with ucontext support via libucontext"
@@ -43,10 +45,10 @@ esac
make_build_args="LINKER_PATH=/usr/lib/${_musl} LOADER_NAME=${_glibc}
LIBGCOMPAT_PATH=/usr/lib/libgcompat.so.0 LOADER_PATH=/usr/lib/${LOADER_NAME}
- WITH_OBSTACK=no"
+ WITH_OBSTACK=musl-obstack"
make_install_args="LINKER_PATH=/usr/lib/${_musl} LOADER_NAME=${_glibc}
LIBGCOMPAT_PATH=/usr/lib/libgcompat.so.0 LOADER_PATH=/usr/lib/${LOADER_NAME}
- WITH_OBSTACK=no"
+ WITH_OBSTACK=musl-obstack"
if [ "$build_option_libucontext" ]; then
makedepends+=" libucontext-devel"
From 3a38187427f8816938b7a1e08bf3df5956c3effd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:34:12 -0300
Subject: [PATCH 3/8] reiserfsprogs: use musl-obstack-devel.
---
srcpkgs/reiserfsprogs/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/reiserfsprogs/template b/srcpkgs/reiserfsprogs/template
index 121b03a95a4..8b45947935c 100644
--- a/srcpkgs/reiserfsprogs/template
+++ b/srcpkgs/reiserfsprogs/template
@@ -1,7 +1,7 @@
# Template file for 'reiserfsprogs'
pkgname=reiserfsprogs
version=3.6.27
-revision=1
+revision=2
build_style=gnu-configure
hostmakedepends="automake libtool pkg-config"
makedepends="libuuid-devel e2fsprogs-devel acl-devel"
@@ -14,7 +14,7 @@ checksum=0e95b67fa7746a3c2d59145e9b9c2feb4a6be52853e83b497b182eae508e62e3
case "$XBPS_TARGET_MACHINE" in
*-musl)
- makedepends+=" musl-obstack"
+ makedepends+=" musl-obstack-devel"
LDFLAGS="-lobstack"
;;
esac
From b88a6ec4691fd22de7116a100ae3dd7e303262cd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:34:40 -0300
Subject: [PATCH 4/8] perl-Proc-ProcessTable: use musl-obstack-devel.
---
srcpkgs/perl-Proc-ProcessTable/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/perl-Proc-ProcessTable/template b/srcpkgs/perl-Proc-ProcessTable/template
index 58c07f2cb22..3fb6d53f684 100644
--- a/srcpkgs/perl-Proc-ProcessTable/template
+++ b/srcpkgs/perl-Proc-ProcessTable/template
@@ -1,7 +1,7 @@
# Template file for 'perl-Proc-ProcessTable'
pkgname=perl-Proc-ProcessTable
version=0.59
-revision=2
+revision=3
wrksrc="Proc-ProcessTable-${version}"
build_style=perl-module
hostmakedepends="perl"
@@ -15,5 +15,5 @@ distfiles="${CPAN_SITE}/Proc/Proc-ProcessTable-${version}.tar.gz"
checksum=f8cc5054d78c35a0ce39fb75430b4ef402e2a99013d2ec37e7997f316594606c
case "$XBPS_TARGET_MACHINE" in
- *-musl) makedepends+=" musl-obstack" ;;
+ *-musl) makedepends+=" musl-obstack-devel" ;;
esac
From bc3edc56bb73793c67663700e68265c5086c2e19 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:00 -0300
Subject: [PATCH 5/8] pahole: use musl-obstack-devel.
---
srcpkgs/pahole/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/pahole/template b/srcpkgs/pahole/template
index e504d3479f7..4d16a3ba7b5 100644
--- a/srcpkgs/pahole/template
+++ b/srcpkgs/pahole/template
@@ -1,7 +1,7 @@
# Template file for 'pahole'
pkgname=pahole
version=1.17
-revision=1
+revision=2
_bpfver=0.0.7
build_style=cmake
configure_args="-D__LIB=lib"
@@ -16,7 +16,7 @@ checksum="51e35041ce43ed08922037a1ee9e415aff1590e0d8d7cbe3e2b003f388db0a8a
a616ba2ea72d00b4022689b17f4a78365379e3040d0f1a66d28eba52c528e480"
case $XBPS_TARGET_MACHINE in
- *-musl) makedepends+=" musl-obstack argp-standalone"
+ *-musl) makedepends+=" musl-obstack-devel argp-standalone"
esac
pre_patch() {
From 8d80a21f0aed9495d46aac3c83117460f0de5c3e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:12 -0300
Subject: [PATCH 6/8] hidrd: use musl-obstack-devel.
---
srcpkgs/hidrd/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/hidrd/template b/srcpkgs/hidrd/template
index 1bb75b98a0c..3470511708c 100644
--- a/srcpkgs/hidrd/template
+++ b/srcpkgs/hidrd/template
@@ -1,7 +1,7 @@
# Template file for 'hidrd'
pkgname=hidrd
version=0.2.0
-revision=1
+revision=2
build_style=gnu-configure
hostmakedepends="automake libtool pkg-config"
short_desc="HID report descriptor I/O library and conversion tool"
@@ -14,7 +14,7 @@ checksum=0147993dedb3066873d22fab1dc3aafec78d8c5783d168cccc43126f0fc3b307
case $XBPS_TARGET_MACHINE in
*-musl)
configure_args+=' LIBS=-lobstack'
- makedepends+=" musl-obstack"
+ makedepends+=" musl-obstack-devel"
;;
esac
From 97277b2bd4b45557653e0ee209c9b6e0b8306a57 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:23 -0300
Subject: [PATCH 7/8] elfutils: use musl-obstack-devel.
---
srcpkgs/elfutils/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/elfutils/template b/srcpkgs/elfutils/template
index ed40864be48..4523c6db0e2 100644
--- a/srcpkgs/elfutils/template
+++ b/srcpkgs/elfutils/template
@@ -1,7 +1,7 @@
# Template file for 'elfutils'
pkgname=elfutils
version=0.180
-revision=1
+revision=2
build_style=gnu-configure
configure_args="--program-prefix=eu- --disable-debuginfod"
hostmakedepends="automake libtool pkg-config"
@@ -16,7 +16,7 @@ checksum=b827b6e35c59d188ba97d7cf148fa8dc6f5c68eb6c5981888dfdbb758c0b569d
CFLAGS="-Wno-error -Wno-error=null-dereference"
case "$XBPS_TARGET_MACHINE" in
- *-musl) makedepends+=" argp-standalone musl-fts-devel musl-obstack" ;;
+ *-musl) makedepends+=" argp-standalone musl-fts-devel musl-obstack-devel" ;;
esac
if [ "$CROSS_BUILD" ]; then
From 2edb889a56fbd2bc46be3a60d810d4e189293c11 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:46 -0300
Subject: [PATCH 8/8] cronie: use musl-obstack-devel.
---
srcpkgs/cronie/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/cronie/template b/srcpkgs/cronie/template
index cd00937e7f5..e2c40f9e645 100644
--- a/srcpkgs/cronie/template
+++ b/srcpkgs/cronie/template
@@ -1,7 +1,7 @@
# Template file for 'cronie'
pkgname=cronie
version=1.5.5
-revision=2
+revision=3
build_style=gnu-configure
configure_args="--with-inotify --without-selinux --with-pam
--enable-anacron --enable-pie --enable-relro"
@@ -34,7 +34,7 @@ alternatives="
"
if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
- makedepends+=" musl-obstack"
+ makedepends+=" musl-obstack-devel"
fi
pre_configure() {
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PR PATCH] [Updated] Update gcompat to 0.9.0, use dynamic musl-obstack
2020-07-06 23:50 [PR PATCH] [RFC] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack ericonr
` (13 preceding siblings ...)
2020-07-20 4:51 ` ericonr
@ 2020-07-28 2:58 ` ericonr
2020-07-28 3:02 ` ericonr
` (7 subsequent siblings)
22 siblings, 0 replies; 24+ messages in thread
From: ericonr @ 2020-07-28 2:58 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 1118 bytes --]
There is an updated pull request by ericonr against master on the void-packages repository
https://github.com/ericonr/void-packages gcompat
https://github.com/void-linux/void-packages/pull/23432
Update gcompat to 0.9.0, use dynamic musl-obstack
Okay, so this is a biggie PR, and I do need help for making some decisions.
- So, basically, `gcompat` can do Spotify now, on Adélie. I am working on debugging it on Void, because it isn't working completely yet. If I can't get it working soon, I will leave the spotify commit out of this one.
- I enabled `obstack` in `gcompat`, by enabling the dynamic lib in `musl-obstack`. This completely fixes #22616, which needed obstack and `__strftime_l` symbols (the latter was fixed by gcompat itself).
- I split `musl-obstack-devel`.
- I switched package dependencies to `musl-obstack-devel`, but they ended up depending on the dynamic version of obstack. Is this bad? Is there some way to solve this? Perhaps two devel sub packages, one for dynamic and one for static linking?
A patch file from https://github.com/void-linux/void-packages/pull/23432.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-gcompat-23432.patch --]
[-- Type: text/x-diff, Size: 12622 bytes --]
From 9420a7f76bd7628726c2c4e07102ad315d6f6930 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:26:32 -0300
Subject: [PATCH 1/8] musl-obstack: ship dynamic lib, split devel.
---
common/shlibs | 1 +
srcpkgs/musl-obstack-devel | 1 +
srcpkgs/musl-obstack/template | 16 +++++++++++++---
3 files changed, 15 insertions(+), 3 deletions(-)
create mode 120000 srcpkgs/musl-obstack-devel
diff --git a/common/shlibs b/common/shlibs
index b81b17ce2e4..d5df183d7be 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -2454,6 +2454,7 @@ libkookularGenerator_odp.so.17 calligra-extras-3.2.0_1
libgemini.so.17 calligra-gemini-3.2.0_1
libarpack.so.2 arpack-ng-3.3.0_2
libfts.so.0 musl-fts-1.2_2
+libobstack.so.0 musl-obstack-1.1_4
libucontext.so.0 libucontext-0.1.1_1
libgavl.so.1 gavl-1.40_1
libmxml.so.1 mxml-2.9_1
diff --git a/srcpkgs/musl-obstack-devel b/srcpkgs/musl-obstack-devel
new file mode 120000
index 00000000000..e21ca66cded
--- /dev/null
+++ b/srcpkgs/musl-obstack-devel
@@ -0,0 +1 @@
+musl-obstack
\ No newline at end of file
diff --git a/srcpkgs/musl-obstack/template b/srcpkgs/musl-obstack/template
index 2cd2ddf2efc..4e8bee6afec 100644
--- a/srcpkgs/musl-obstack/template
+++ b/srcpkgs/musl-obstack/template
@@ -1,16 +1,15 @@
# Template file for 'musl-obstack'
pkgname=musl-obstack
version=1.1
-revision=3
+revision=4
archs="*-musl"
build_style=gnu-configure
-configure_args="--disable-shared"
hostmakedepends="automake libtool"
short_desc="Implementation of obstack for musl libc"
maintainer="Jürgen Buchmüller <pullmoll@t-online.de>"
license="GPL-2.0-or-later"
homepage="https://github.com/void-linux/musl-obstack"
-distfiles="https://github.com/void-linux/${pkgname}/archive/v${version}.tar.gz>${pkgname}-${version}.tar.gz"
+distfiles="${homepage}/archive/v${version}.tar.gz>${pkgname}-${version}.tar.gz"
checksum=52a216613e7d55e8725e43d017bb2d49a4b1ffa1e06da472f03c7f9875df7d0d
CFLAGS="-fPIC"
@@ -22,3 +21,14 @@ pre_configure() {
post_install() {
vinstall ${pkgname}.pc 644 usr/lib/pkgconfig
}
+
+musl-obstack-devel_package() {
+ depends="${sourcepkg}-${version}_${revision}"
+ short_desc+=" - development files"
+ pkg_install() {
+ vmove usr/include
+ vmove usr/lib/libobstack.a
+ vmove usr/lib/libobstack.so
+ vmove usr/lib/pkgconfig
+ }
+}
From 2322ac96c21829dbe5335cd42933468a5c651c9e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 17:45:20 -0300
Subject: [PATCH 2/8] gcompat: update to 0.9.0, adopt.
Add musl-obstack dependency.
---
.../gcompat/patches/ppc-libc_start_main.patch | 67 -------------------
srcpkgs/gcompat/template | 12 ++--
2 files changed, 7 insertions(+), 72 deletions(-)
delete mode 100644 srcpkgs/gcompat/patches/ppc-libc_start_main.patch
diff --git a/srcpkgs/gcompat/patches/ppc-libc_start_main.patch b/srcpkgs/gcompat/patches/ppc-libc_start_main.patch
deleted file mode 100644
index 518292745f7..00000000000
--- a/srcpkgs/gcompat/patches/ppc-libc_start_main.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From d30e49d10cefeb2748373127e1d1aba1184f653d Mon Sep 17 00:00:00 2001
-From: q66 <daniel@octaforge.org>
-Date: Sun, 10 Nov 2019 15:32:28 +0100
-Subject: [PATCH 1/1] internal: add a wrapper for __libc_start_main for
- PowerPC(64(le))
-
-This is necessary because the musl and glibc function signatures
-differ significantly.
----
- libgcompat/internal.c | 41 +++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 41 insertions(+)
-
-diff --git a/libgcompat/internal.c b/libgcompat/internal.c
-index 450c5e4..53ac429 100644
---- libgcompat/internal.c
-+++ libgcompat/internal.c
-@@ -2,6 +2,47 @@
- #include <stdio.h>
- #include <stdlib.h>
-
-+#if defined(__powerpc__)
-+
-+/* On PowerPC as well as ppc64, we need to fix up __libc_start_main as the
-+ * glibc and musl versions have wildly different signatures, which would
-+ * result in the arguments to __libc_start_main being completely wrong.
-+ *
-+ * Using dlsym in this context is mildly questionable as this is before
-+ * the full initialization has been done, but there is no better way.
-+ */
-+
-+#include <dlfcn.h>
-+
-+struct startup_info {
-+ void *sda_base;
-+ void *f_main;
-+ void *f_init;
-+ void *f_fini;
-+};
-+
-+typedef int (*start_main_t)(void *mf, int argc, char **argv);
-+
-+/*
-+ * ref: https://git.musl-libc.org/cgit/musl/tree/crt/crt1.c?id=90251cf
-+ * ref: https://git.musl-libc.org/cgit/musl/tree/src/env/__libc_start_main.c?id=90251cf#n71
-+ * ref: https://github.com/bminor/glibc/blob/5cb226d/sysdeps/unix/sysv/linux/powerpc/libc-start.c#L36
-+ */
-+int __libc_start_main(void *argc, void *argv, void *ev, void *auxv, void *fini,
-+ struct startup_info *si, long *p)
-+{
-+ (void)argc;
-+ (void)argv;
-+ (void)ev;
-+ (void)auxv;
-+ (void)fini;
-+ /* argc/argv from the stack, main from startup_info */
-+ start_main_t mainf = (start_main_t)dlsym(RTLD_NEXT, "__libc_start_main");
-+ return mainf(si->f_main, *p, (void *)(p + 1));
-+}
-+
-+#endif /* defined(__powerpc__) */
-+
- void GCOMPAT__panic(const char *fmt, ...)
- {
- va_list va;
---
-2.23.0
-
diff --git a/srcpkgs/gcompat/template b/srcpkgs/gcompat/template
index 237f97bd5e9..3d3d4e72d72 100644
--- a/srcpkgs/gcompat/template
+++ b/srcpkgs/gcompat/template
@@ -1,14 +1,16 @@
# Template file for 'gcompat'
pkgname=gcompat
-version=0.4.0
+version=0.9.0
revision=1
build_style=gnu-makefile
+hostmakedepends="pkg-config"
+makedepends="musl-obstack-devel"
short_desc="Compatibility layer to allow running glibc binaries on musl systems"
-maintainer="Daniel James <djames@orcadian.net>"
+maintainer="Érico Nogueira <ericonr@disroot.org>"
license="ISC"
homepage="https://code.foxkit.us/adelie/gcompat"
distfiles="https://distfiles.AdelieLinux.org/source/${pkgname}/${pkgname}-${version}.tar.xz"
-checksum=9903fac7b70de3ba7736ae2987fa00bbafff7bfcf6a9c88731c292dff19e44e2
+checksum=4555d045d7d2831d11b907719005c5dfbc77642c32f8c0172d40883026ffaf53
build_options="libucontext"
desc_option_libucontext="Build with ucontext support via libucontext"
@@ -43,10 +45,10 @@ esac
make_build_args="LINKER_PATH=/usr/lib/${_musl} LOADER_NAME=${_glibc}
LIBGCOMPAT_PATH=/usr/lib/libgcompat.so.0 LOADER_PATH=/usr/lib/${LOADER_NAME}
- WITH_OBSTACK=no"
+ WITH_OBSTACK=musl-obstack"
make_install_args="LINKER_PATH=/usr/lib/${_musl} LOADER_NAME=${_glibc}
LIBGCOMPAT_PATH=/usr/lib/libgcompat.so.0 LOADER_PATH=/usr/lib/${LOADER_NAME}
- WITH_OBSTACK=no"
+ WITH_OBSTACK=musl-obstack"
if [ "$build_option_libucontext" ]; then
makedepends+=" libucontext-devel"
From 0dc4267bbb8230d4bb9de50d63d05da31cb3149c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:34:12 -0300
Subject: [PATCH 3/8] reiserfsprogs: use musl-obstack-devel.
---
srcpkgs/reiserfsprogs/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/reiserfsprogs/template b/srcpkgs/reiserfsprogs/template
index 121b03a95a4..8b45947935c 100644
--- a/srcpkgs/reiserfsprogs/template
+++ b/srcpkgs/reiserfsprogs/template
@@ -1,7 +1,7 @@
# Template file for 'reiserfsprogs'
pkgname=reiserfsprogs
version=3.6.27
-revision=1
+revision=2
build_style=gnu-configure
hostmakedepends="automake libtool pkg-config"
makedepends="libuuid-devel e2fsprogs-devel acl-devel"
@@ -14,7 +14,7 @@ checksum=0e95b67fa7746a3c2d59145e9b9c2feb4a6be52853e83b497b182eae508e62e3
case "$XBPS_TARGET_MACHINE" in
*-musl)
- makedepends+=" musl-obstack"
+ makedepends+=" musl-obstack-devel"
LDFLAGS="-lobstack"
;;
esac
From f0d0f87219364c6b15d714fbd4bb7d9736d82648 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:34:40 -0300
Subject: [PATCH 4/8] perl-Proc-ProcessTable: use musl-obstack-devel.
---
srcpkgs/perl-Proc-ProcessTable/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/perl-Proc-ProcessTable/template b/srcpkgs/perl-Proc-ProcessTable/template
index 58c07f2cb22..3fb6d53f684 100644
--- a/srcpkgs/perl-Proc-ProcessTable/template
+++ b/srcpkgs/perl-Proc-ProcessTable/template
@@ -1,7 +1,7 @@
# Template file for 'perl-Proc-ProcessTable'
pkgname=perl-Proc-ProcessTable
version=0.59
-revision=2
+revision=3
wrksrc="Proc-ProcessTable-${version}"
build_style=perl-module
hostmakedepends="perl"
@@ -15,5 +15,5 @@ distfiles="${CPAN_SITE}/Proc/Proc-ProcessTable-${version}.tar.gz"
checksum=f8cc5054d78c35a0ce39fb75430b4ef402e2a99013d2ec37e7997f316594606c
case "$XBPS_TARGET_MACHINE" in
- *-musl) makedepends+=" musl-obstack" ;;
+ *-musl) makedepends+=" musl-obstack-devel" ;;
esac
From 406f14c6bec650980c58bdb08e6ae556c5726f10 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:00 -0300
Subject: [PATCH 5/8] pahole: use musl-obstack-devel.
---
srcpkgs/pahole/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/pahole/template b/srcpkgs/pahole/template
index e504d3479f7..4d16a3ba7b5 100644
--- a/srcpkgs/pahole/template
+++ b/srcpkgs/pahole/template
@@ -1,7 +1,7 @@
# Template file for 'pahole'
pkgname=pahole
version=1.17
-revision=1
+revision=2
_bpfver=0.0.7
build_style=cmake
configure_args="-D__LIB=lib"
@@ -16,7 +16,7 @@ checksum="51e35041ce43ed08922037a1ee9e415aff1590e0d8d7cbe3e2b003f388db0a8a
a616ba2ea72d00b4022689b17f4a78365379e3040d0f1a66d28eba52c528e480"
case $XBPS_TARGET_MACHINE in
- *-musl) makedepends+=" musl-obstack argp-standalone"
+ *-musl) makedepends+=" musl-obstack-devel argp-standalone"
esac
pre_patch() {
From 36c1724aeabee3ddb3fbc3f62dd1853756085a28 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:12 -0300
Subject: [PATCH 6/8] hidrd: use musl-obstack-devel.
---
srcpkgs/hidrd/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/hidrd/template b/srcpkgs/hidrd/template
index 1bb75b98a0c..3470511708c 100644
--- a/srcpkgs/hidrd/template
+++ b/srcpkgs/hidrd/template
@@ -1,7 +1,7 @@
# Template file for 'hidrd'
pkgname=hidrd
version=0.2.0
-revision=1
+revision=2
build_style=gnu-configure
hostmakedepends="automake libtool pkg-config"
short_desc="HID report descriptor I/O library and conversion tool"
@@ -14,7 +14,7 @@ checksum=0147993dedb3066873d22fab1dc3aafec78d8c5783d168cccc43126f0fc3b307
case $XBPS_TARGET_MACHINE in
*-musl)
configure_args+=' LIBS=-lobstack'
- makedepends+=" musl-obstack"
+ makedepends+=" musl-obstack-devel"
;;
esac
From cc95a7f0bad994073efbbe8cd7afeea20f5591ad Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:23 -0300
Subject: [PATCH 7/8] elfutils: use musl-obstack-devel.
---
srcpkgs/elfutils/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/elfutils/template b/srcpkgs/elfutils/template
index ed40864be48..4523c6db0e2 100644
--- a/srcpkgs/elfutils/template
+++ b/srcpkgs/elfutils/template
@@ -1,7 +1,7 @@
# Template file for 'elfutils'
pkgname=elfutils
version=0.180
-revision=1
+revision=2
build_style=gnu-configure
configure_args="--program-prefix=eu- --disable-debuginfod"
hostmakedepends="automake libtool pkg-config"
@@ -16,7 +16,7 @@ checksum=b827b6e35c59d188ba97d7cf148fa8dc6f5c68eb6c5981888dfdbb758c0b569d
CFLAGS="-Wno-error -Wno-error=null-dereference"
case "$XBPS_TARGET_MACHINE" in
- *-musl) makedepends+=" argp-standalone musl-fts-devel musl-obstack" ;;
+ *-musl) makedepends+=" argp-standalone musl-fts-devel musl-obstack-devel" ;;
esac
if [ "$CROSS_BUILD" ]; then
From 3d89145c3cdcd697bab61fff3310bcb6091d25e9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Mon, 6 Jul 2020 20:35:46 -0300
Subject: [PATCH 8/8] cronie: use musl-obstack-devel.
---
srcpkgs/cronie/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/cronie/template b/srcpkgs/cronie/template
index cd00937e7f5..e2c40f9e645 100644
--- a/srcpkgs/cronie/template
+++ b/srcpkgs/cronie/template
@@ -1,7 +1,7 @@
# Template file for 'cronie'
pkgname=cronie
version=1.5.5
-revision=2
+revision=3
build_style=gnu-configure
configure_args="--with-inotify --without-selinux --with-pam
--enable-anacron --enable-pie --enable-relro"
@@ -34,7 +34,7 @@ alternatives="
"
if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
- makedepends+=" musl-obstack"
+ makedepends+=" musl-obstack-devel"
fi
pre_configure() {
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: Update gcompat to 0.9.0, use dynamic musl-obstack
2020-07-06 23:50 [PR PATCH] [RFC] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack ericonr
` (14 preceding siblings ...)
2020-07-28 2:58 ` ericonr
@ 2020-07-28 3:02 ` ericonr
2020-07-28 5:11 ` pullmoll
` (6 subsequent siblings)
22 siblings, 0 replies; 24+ messages in thread
From: ericonr @ 2020-07-28 3:02 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 311 bytes --]
New comment by ericonr on void-packages repository
https://github.com/void-linux/void-packages/pull/23432#issuecomment-664748127
Comment:
@djames1 is it ok with you that I adopted gcompat? If you'd like to keep maintainership of it, let me know.
@pullmoll are you ok with dynamically linking musl-obstack?
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: Update gcompat to 0.9.0, use dynamic musl-obstack
2020-07-06 23:50 [PR PATCH] [RFC] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack ericonr
` (15 preceding siblings ...)
2020-07-28 3:02 ` ericonr
@ 2020-07-28 5:11 ` pullmoll
2020-07-28 5:12 ` [PR REVIEW] " pullmoll
` (5 subsequent siblings)
22 siblings, 0 replies; 24+ messages in thread
From: pullmoll @ 2020-07-28 5:11 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 166 bytes --]
New comment by pullmoll on void-packages repository
https://github.com/void-linux/void-packages/pull/23432#issuecomment-664780649
Comment:
@ericonr sure, go ahead.
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PR REVIEW] Update gcompat to 0.9.0, use dynamic musl-obstack
2020-07-06 23:50 [PR PATCH] [RFC] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack ericonr
` (16 preceding siblings ...)
2020-07-28 5:11 ` pullmoll
@ 2020-07-28 5:12 ` pullmoll
2020-07-28 5:16 ` pullmoll
` (4 subsequent siblings)
22 siblings, 0 replies; 24+ messages in thread
From: pullmoll @ 2020-07-28 5:12 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 297 bytes --]
New review comment by pullmoll on void-packages repository
https://github.com/void-linux/void-packages/pull/23432#discussion_r461322302
Comment:
Personally I don't like using $homepage in distfiles because it prevents you from copy+pasting the link to see whether a distfile is still available.
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PR REVIEW] Update gcompat to 0.9.0, use dynamic musl-obstack
2020-07-06 23:50 [PR PATCH] [RFC] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack ericonr
` (17 preceding siblings ...)
2020-07-28 5:12 ` [PR REVIEW] " pullmoll
@ 2020-07-28 5:16 ` pullmoll
2020-07-28 5:21 ` ericonr
` (3 subsequent siblings)
22 siblings, 0 replies; 24+ messages in thread
From: pullmoll @ 2020-07-28 5:16 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 215 bytes --]
New review comment by pullmoll on void-packages repository
https://github.com/void-linux/void-packages/pull/23432#discussion_r461323270
Comment:
Actually I already had $pkgname which prevents this so it's okay :)
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PR REVIEW] Update gcompat to 0.9.0, use dynamic musl-obstack
2020-07-06 23:50 [PR PATCH] [RFC] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack ericonr
` (18 preceding siblings ...)
2020-07-28 5:16 ` pullmoll
@ 2020-07-28 5:21 ` ericonr
2020-07-28 5:22 ` ericonr
` (2 subsequent siblings)
22 siblings, 0 replies; 24+ messages in thread
From: ericonr @ 2020-07-28 5:21 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 160 bytes --]
New review comment by ericonr on void-packages repository
https://github.com/void-linux/void-packages/pull/23432#discussion_r461324835
Comment:
Ok, thanks c:
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: Update gcompat to 0.9.0, use dynamic musl-obstack
2020-07-06 23:50 [PR PATCH] [RFC] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack ericonr
` (19 preceding siblings ...)
2020-07-28 5:21 ` ericonr
@ 2020-07-28 5:22 ` ericonr
2020-07-29 17:27 ` djames1
2020-08-08 14:23 ` [PR PATCH] [Merged]: " Johnnynator
22 siblings, 0 replies; 24+ messages in thread
From: ericonr @ 2020-07-28 5:22 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 148 bytes --]
New comment by ericonr on void-packages repository
https://github.com/void-linux/void-packages/pull/23432#issuecomment-664783866
Comment:
Thanks!
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: Update gcompat to 0.9.0, use dynamic musl-obstack
2020-07-06 23:50 [PR PATCH] [RFC] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack ericonr
` (20 preceding siblings ...)
2020-07-28 5:22 ` ericonr
@ 2020-07-29 17:27 ` djames1
2020-08-08 14:23 ` [PR PATCH] [Merged]: " Johnnynator
22 siblings, 0 replies; 24+ messages in thread
From: djames1 @ 2020-07-29 17:27 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 187 bytes --]
New comment by djames1 on void-packages repository
https://github.com/void-linux/void-packages/pull/23432#issuecomment-665797770
Comment:
@ericonr Feel free, I do not use void anymore.
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PR PATCH] [Merged]: Update gcompat to 0.9.0, use dynamic musl-obstack
2020-07-06 23:50 [PR PATCH] [RFC] Update gcompat to 0.9.0, add spotify to musl, use dynamic musl-obstack ericonr
` (21 preceding siblings ...)
2020-07-29 17:27 ` djames1
@ 2020-08-08 14:23 ` Johnnynator
22 siblings, 0 replies; 24+ messages in thread
From: Johnnynator @ 2020-08-08 14:23 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 962 bytes --]
There's a merged pull request on the void-packages repository
Update gcompat to 0.9.0, use dynamic musl-obstack
https://github.com/void-linux/void-packages/pull/23432
Description:
Okay, so this is a biggie PR, and I do need help for making some decisions.
- So, basically, `gcompat` can do Spotify now, on Adélie. I am working on debugging it on Void, because it isn't working completely yet. If I can't get it working soon, I will leave the spotify commit out of this one.
- I enabled `obstack` in `gcompat`, by enabling the dynamic lib in `musl-obstack`. This completely fixes #22616, which needed obstack and `__strftime_l` symbols (the latter was fixed by gcompat itself).
- I split `musl-obstack-devel`.
- I switched package dependencies to `musl-obstack-devel`, but they ended up depending on the dynamic version of obstack. Is this bad? Is there some way to solve this? Perhaps two devel sub packages, one for dynamic and one for static linking?
^ permalink raw reply [flat|nested] 24+ messages in thread