From 0ac7ea21bb1daf5c72140525170809282b37a5d2 Mon Sep 17 00:00:00 2001 From: miqlas <5569059+extrowerk@users.noreply.github.com> Date: Mon, 26 Mar 2018 17:48:21 +0200 Subject: [PATCH] Guile: new recipe (#2367) --- dev-scheme/guile/guile-2.2.3.recipe | 129 ++++++++++++++++++ dev-scheme/guile/patches/guile-2.2.3.patchset | 31 +++++ 2 files changed, 160 insertions(+) create mode 100644 dev-scheme/guile/guile-2.2.3.recipe create mode 100644 dev-scheme/guile/patches/guile-2.2.3.patchset diff --git a/dev-scheme/guile/guile-2.2.3.recipe b/dev-scheme/guile/guile-2.2.3.recipe new file mode 100644 index 000000000..d022c6a97 --- /dev/null +++ b/dev-scheme/guile/guile-2.2.3.recipe @@ -0,0 +1,129 @@ +SUMMARY="GNU Ubiquitous Intelligent Language for Extensions" +DESCRIPTION="Guile is a library designed to help programmers create flexible \ +applications. Using Guile in an application allows programmers to write \ +plug-ins, or modules (there are many names, but the concept is essentially \ +the same) and users to use them to have an application fit their needs." +HOMEPAGE="https://www.gnu.org/software/guile/" +COPYRIGHT="1993-2018 Aubrey Jaffer, George Carrette, et al." +LICENSE="GNU LGPL v3" +REVISION="1" +SOURCE_URI="https://ftpmirror.gnu.org/guile/guile-$portVersion.tar.gz + https://ftp.gnu.org/gnu/guile/guile-$portVersion.tar.gz" +CHECKSUM_SHA256="87ee07caef33c97ddc74bf3c29ce7628cfac12061f573e4a29a3a1176754610a" +PATCHES="guile-$portVersion.patchset" + +ARCHITECTURES="!x86_gcc2 ?x86 x86_64" +SECONDARY_ARCHITECTURES="x86" + +commandSuffix=$secondaryArchSuffix +commandBinDir=$binDir +if [ "$targetArchitecture" = x86_gcc2 ]; then + commandSuffix= + commandBinDir=$prefix/bin +fi + +libguileVersion="1.3.0" +libguileVersionCompat="$libguileVersion compat >= ${libguileVersion%%.*}" +portVersionCompat="$portVersion compat >= ${portVersion%%.*}" +portVers="${portVersion%.*}" + +PROVIDES=" + guile$secondaryArchSuffix = $portVersionCompat + cmd:guild$commandSuffix = $portVersion + cmd:guile$commandSuffix = $portVersion + cmd:guile_snarf$commandSuffix = $portVersion + cmd:guile_tools$commandSuffix = $portVersion + lib:libguile_$portVers$secondaryArchSuffix = $libguileVersionCompat + " +REQUIRES=" + haiku$secondaryArchSuffix + lib:libffi$secondaryArchSuffix + lib:libgc$secondaryArchSuffix + lib:libgmp$secondaryArchSuffix + lib:libiconv$secondaryArchSuffix + lib:libintl$secondaryArchSuffix + lib:libltdl$secondaryArchSuffix + lib:libncurses$secondaryArchSuffix + lib:libreadline$secondaryArchSuffix + lib:libunistring$secondaryArchSuffix + " + +PROVIDES_devel=" + guile${secondaryArchSuffix}_devel = $portVersionCompat + cmd:guile_config$secondaryArchSuffix = $portVersion + devel:libguile_$portVers$secondaryArchSuffix = $libguileVersionCompat + " +REQUIRES_devel=" + guile$secondaryArchSuffix == $portVersion base + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel + devel:libffi$secondaryArchSuffix + devel:libgc$secondaryArchSuffix + devel:libgmp$secondaryArchSuffix + devel:libiconv$secondaryArchSuffix + devel:libintl$secondaryArchSuffix + devel:libltdl$secondaryArchSuffix + devel:libncurses$secondaryArchSuffix + devel:libreadline$secondaryArchSuffix + devel:libunistring$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + cmd:awk + cmd:gcc$secondaryArchSuffix + cmd:gperf + cmd:grep + cmd:make + cmd:ld + cmd:pkg_config$secondaryArchSuffix + cmd:sed + " + +defineDebugInfoPackage guile$secondaryArchSuffix \ + "$libDir"/libguile-$portVers.so.$libguileVersion + +BUILD() +{ + CPPFLAGS="-D_BSD_SOURCE" LIBS="-lbsd -lnetwork" \ + runConfigure --omit-dirs binDir ./configure \ + --with-threads + + # No MADV_DONTNEED, yet + sed --in-place '/HAVE_SYS_MMAN_H/d' config.h + + make $jobArgs +} + +INSTALL() +{ + make install + + rm -f "$libDir"/charset.alias + rm -f "$libDir"/lib*.la + rm -f "$libDir"/guile/$portVers/extensions/*.la + rm -f "$libDir"/guile/$portVers/extensions/*.a + + prepareInstalledDevelLib libguile-$portVers + + fixPkgconfig + + if [ "$commandBinDir" != "$binDir" ]; then + mkdir -p "$binDir" + mv "$commandBinDir"/guile-config "$binDir" + fi + + packageEntries devel \ + "$binDir"/guile-config \ + "$dataDir"/aclocal \ + "$developDir" + + if [ "$commandBinDir" != "$binDir" ]; then + rmdir "$binDir" + fi +} + +TEST() +{ + make check +} diff --git a/dev-scheme/guile/patches/guile-2.2.3.patchset b/dev-scheme/guile/patches/guile-2.2.3.patchset new file mode 100644 index 000000000..a406ebc12 --- /dev/null +++ b/dev-scheme/guile/patches/guile-2.2.3.patchset @@ -0,0 +1,31 @@ +From 4d15874820bbf2369ff0790c6774b3ca12de0c7e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zolt=C3=A1n=20Mizsei?= +Date: Thu, 22 Mar 2018 21:01:34 +0100 +Subject: Build fix + + +diff --git a/libguile/posix.c b/libguile/posix.c +index 041b8b1..b372327 100644 +--- a/libguile/posix.c ++++ b/libguile/posix.c +@@ -424,11 +424,13 @@ SCM_DEFINE (scm_getgrgid, "getgr", 0, 1, 0, + return SCM_BOOL_F; + } + } +- else if (scm_is_integer (name)) +- SCM_SYSCALL (entry = getgrgid (scm_to_int (name))); +- else ++ else if (scm_is_integer (name)) { ++ SCM_SYSCALL (entry = getgrgid (scm_to_int (name))); ++ } ++ else { + STRING_SYSCALL (name, c_name, +- entry = getgrnam (c_name)); ++ entry = getgrnam (c_name)); ++ } + if (!entry) + SCM_SYSERROR; + +-- +2.16.2 +