guile 1.8: rename and reformat

This commit is contained in:
AndersonTorres 2021-08-06 01:42:51 -03:00
parent 4e84d10c6a
commit af62264e5c
2 changed files with 53 additions and 32 deletions

View file

@ -1,13 +1,22 @@
{ lib, stdenv, pkgsBuildBuild, buildPackages
, fetchurl, makeWrapper, gawk, pkg-config
, libtool, readline, gmp
{ lib
, stdenv
, fetchurl
, buildPackages
, gawk
, gmp
, libtool
, makeWrapper
, pkg-config
, pkgsBuildBuild
, readline
}:
stdenv.mkDerivation rec {
name = "guile-1.8.8";
pname = "guile";
version = "1.8.8";
src = fetchurl {
url = "mirror://gnu/guile/${name}.tar.gz";
url = "mirror://gnu/${pname}/${pname}-${version}.tar.gz";
sha256 = "0l200a0v7h8bh0cwz6v7hc13ds39cgqsmfrks55b1rbj5vniyiy3";
};
@ -15,18 +24,28 @@ stdenv.mkDerivation rec {
setOutputFlags = false; # $dev gets into the library otherwise
# GCC 4.6 raises a number of set-but-unused warnings.
configureFlags = [ "--disable-error-on-warning" ]
# Guile needs patching to preset results for the configure tests about
# pthreads, which work only in native builds.
++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform)
"--with-threads=no";
depsBuildBuild = [ buildPackages.stdenv.cc ]
++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform)
pkgsBuildBuild.guile_1_8;
nativeBuildInputs = [ makeWrapper gawk pkg-config ];
buildInputs = [ readline libtool ];
configureFlags = [
"--disable-error-on-warning"
]
# Guile needs patching to preset results for the configure tests about
# pthreads, which work only in native builds.
++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform)
"--with-threads=no";
depsBuildBuild = [
buildPackages.stdenv.cc
]
++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform)
pkgsBuildBuild.guile_1_8;
nativeBuildInputs = [
gawk
makeWrapper
pkg-config
];
buildInputs = [
libtool
readline
];
propagatedBuildInputs = [
gmp
@ -38,7 +57,9 @@ stdenv.mkDerivation rec {
];
patches = [
# Fix doc snarfing with GCC 4.5.
./cpp-4.5.patch
# Self explanatory
./CVE-2016-8605.patch
];
@ -46,13 +67,12 @@ stdenv.mkDerivation rec {
sed -e '/lt_dlinit/a lt_dladdsearchdir("'$out/lib'");' -i libguile/dynl.c
'';
postInstall = ''
wrapProgram $out/bin/guile-snarf --prefix PATH : "${gawk}/bin"
''
# XXX: See http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/18903 for
# why `--with-libunistring-prefix' and similar options coming from
# `AC_LIB_LINKFLAGS_BODY' don't work on NixOS/x86_64.
# XXX: See http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/18903 for
# why `--with-libunistring-prefix' and similar options coming from
# `AC_LIB_LINKFLAGS_BODY' don't work on NixOS/x86_64.
+ ''
sed -i "$out/lib/pkgconfig/guile"-*.pc \
-e "s|-lltdl|-L${libtool.lib}/lib -lltdl|g"
@ -65,19 +85,21 @@ stdenv.mkDerivation rec {
doCheck = false;
doInstallCheck = doCheck;
setupHook = ./setup-hook.sh;
setupHook = ./setup-hook-1.8.sh;
meta = {
meta = with lib; {
homepage = "https://www.gnu.org/software/guile/";
description = "Embeddable Scheme implementation";
homepage = "https://www.gnu.org/software/guile/";
license = lib.licenses.lgpl2Plus;
maintainers = [ lib.maintainers.ludo ];
platforms = lib.platforms.unix;
longDescription = ''
GNU Guile is an interpreter for the Scheme programming language,
packaged as a library that can be embedded into programs to make
them extensible. It supports many SRFIs.
GNU Guile is an implementation of the Scheme programming language, with
support for many SRFIs, packaged for use in a wide variety of
environments. In addition to implementing the R5RS Scheme standard and a
large subset of R6RS, Guile includes a module system, full access to POSIX
system calls, networking support, multiple threads, dynamic linking, a
foreign function call interface, and powerful string processing.
'';
license = licenses.lgpl3Plus;
maintainers = with maintainers; [ ludo ];
platforms = platforms.all;
};
}

View file

@ -1,6 +1,5 @@
addGuileLibPath () {
if test -d "$1/share/guile/site"
then
if test -d "$1/share/guile/site"; then
export GUILE_LOAD_PATH="${GUILE_LOAD_PATH-}${GUILE_LOAD_PATH:+:}$1/share/guile/site"
fi
}