diff --git a/common/shlibs b/common/shlibs index 9f3421f4b2a..f36626452bd 100644 --- a/common/shlibs +++ b/common/shlibs @@ -2853,6 +2853,12 @@ libprotobuf-lite.so.14 protobuf-lite-3.4.0_1 libprotoc.so.14 protobuf-3.4.0_1 libprotobuf.so.14 protobuf-3.4.0_1 libsombok.so.3 sombok-2.4.0_1 +libguile-srfi-srfi-1-v-3.so.3 guile1.8-1.8.8_1 +libguile-srfi-srfi-4-v-3.so.3 guile1.8-1.8.8_1 +libguile-srfi-srfi-60-v-2.so.2 guile1.8-1.8.8_1 +libguile.so.17 guile1.8-1.8.8_1 +libguilereadline-v-17.so.17 guile1.8-1.8.8_1 +libguile-srfi-srfi-13-14-v-3.so.3 guile1.8-1.8.8_1 libite.so.3 libite-1.8.2_1 libykclient.so.3 ykclient-2.15_1 libbooster.so.0 cppcms-1.0.5_1 diff --git a/srcpkgs/guile1.8-devel b/srcpkgs/guile1.8-devel new file mode 120000 index 00000000000..8cfa70ed3ec --- /dev/null +++ b/srcpkgs/guile1.8-devel @@ -0,0 +1 @@ +guile1.8 \ No newline at end of file diff --git a/srcpkgs/guile1.8/patches/cross.patch b/srcpkgs/guile1.8/patches/cross.patch new file mode 100644 index 00000000000..0b51020c911 --- /dev/null +++ b/srcpkgs/guile1.8/patches/cross.patch @@ -0,0 +1,25 @@ +Configure cannot execute built binary when cross compiling. +The patch skips the test and assumes "no". +This is how it is done in version 2.0.14's configure script. + +--- configure.orig 2017-09-15 11:14:54.427295947 +0200 ++++ configure 2017-09-15 14:11:07.253528181 +0200 +@@ -19802,6 +19802,7 @@ + $as_echo_n "checking whether pthread_attr_getstack works for the main thread... " >&6; } + old_CFLAGS="$CFLAGS" + CFLAGS="$PTHREAD_CFLAGS $CFLAGS" ++if test "$cross_compiling" = no; then + if test "$cross_compiling" = yes; then : + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 + $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +@@ -19849,6 +19850,10 @@ + conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + ++else ++ works="assuming it doesn't" ++fi ++ + CFLAGS="$old_CFLAGS" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $works" >&5 + $as_echo "$works" >&6; } diff --git a/srcpkgs/guile1.8/patches/musl-sigcontext.patch b/srcpkgs/guile1.8/patches/musl-sigcontext.patch new file mode 100644 index 00000000000..74cfdebe258 --- /dev/null +++ b/srcpkgs/guile1.8/patches/musl-sigcontext.patch @@ -0,0 +1,49 @@ +When checking for the location of the sigcontext struct it is not taken into +account that a different libc than glibc could be used. It falls back to libc5 +which leads to a sigcontext redefinition error when using the musl libc. The +patch simply removes the misleading checks since we're way beyond those +versions anyway. + +--- libguile/gc_os_dep.c.orig 2010-12-13 18:25:01.000000000 +0100 ++++ libguile/gc_os_dep.c 2017-09-17 23:01:55.494204333 +0200 +@@ -1445,40 +1445,6 @@ + /* include assembly code to do it well. */ + # endif + +-# if defined(LINUX) && !defined(POWERPC) +- +-# if 0 +-# include +-# if (LINUX_VERSION_CODE <= 0x10400) +- /* Ugly hack to get struct sigcontext_struct definition. Required */ +- /* for some early 1.3.X releases. Will hopefully go away soon. */ +- /* in some later Linux releases, asm/sigcontext.h may have to */ +- /* be included instead. */ +-# define __KERNEL__ +-# include +-# undef __KERNEL__ +-# endif +- +-# else +- +- /* Kernels prior to 2.1.1 defined struct sigcontext_struct instead of */ +- /* struct sigcontext. libc6 (glibc2) uses "struct sigcontext" in */ +- /* prototypes, so we have to include the top-level sigcontext.h to */ +- /* make sure the former gets defined to be the latter if appropriate. */ +-# include +-# if 2 <= __GLIBC__ +-# if 2 == __GLIBC__ && 0 == __GLIBC_MINOR__ +- /* glibc 2.1 no longer has sigcontext.h. But signal.h */ +- /* has the right declaration for glibc 2.1. */ +-# include +-# endif /* 0 == __GLIBC_MINOR__ */ +-# else /* not 2 <= __GLIBC__ */ +- /* libc5 doesn't have : go directly with the kernel */ +- /* one. Check LINUX_VERSION_CODE to see which we should reference. */ +-# include +-# endif /* 2 <= __GLIBC__ */ +-# endif +-# endif + # if !defined(OS2) && !defined(PCR) && !defined(AMIGA) && !defined(MACOS) + # include + # if !defined(MSWIN32) && !defined(SUNOS4) diff --git a/srcpkgs/guile1.8/template b/srcpkgs/guile1.8/template new file mode 100644 index 00000000000..d94be770958 --- /dev/null +++ b/srcpkgs/guile1.8/template @@ -0,0 +1,39 @@ +# Template file for 'guile1.8' +pkgname="guile1.8" +version="1.8.8" +revision=1 +wrksrc=${pkgname/1.8/}-${version} +build_style="gnu-configure" +hostmakedepends="pkg-config" +makedepends="gmp-devel libltdl-devel ncurses-devel readline-devel" +configure_args="--disable-static --disable-error-on-warning --program-suffix='-1.8'" +short_desc="A portable, embeddable Scheme implementation written in C" +maintainer="newbluemoon " +homepage="https://www.gnu.org/software/guile/guile.html" +license="LGPL-2.1" +distfiles="${GNU_SITE}/${pkgname/1.8/}/${pkgname/1.8/}-${version}.tar.gz" +checksum=c3471fed2e72e5b04ad133bbaaf16369e8360283679bcf19800bc1b381024050 + +if [ -n "$CROSS_BUILD" ]; then + hostmakedepends+=" guile1.8" + make_build_args="GUILE_FOR_BUILD=guile-1.8" +fi + +post_install() { + # conflicts with guile-2.0 + rm -rf ${DESTDIR}/usr/share/info +} + +guile1.8-devel_package() { + short_desc+=" - development files" + depends="gmp-devel ${sourcepkg}>=${version}_${revision}" + pkg_install() { + vmove usr/bin/guile-config-1.8 + sed -i '1s|/usr/bin/guile|/usr/bin/guile-1.8|' ${PKGDESTDIR}/usr/bin/guile-config-1.8 + vmove usr/include + vmove usr/lib/pkgconfig + vmove usr/share/aclocal + mv ${PKGDESTDIR}/usr/share/aclocal/{guile.m4,guile-1.8.m4} + } +} +