summary refs log tree commit diff
path: root/pkgs/development/interpreters/guile/1.8.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/interpreters/guile/1.8.nix')
-rw-r--r--pkgs/development/interpreters/guile/1.8.nix82
1 files changed, 52 insertions, 30 deletions
diff --git a/pkgs/development/interpreters/guile/1.8.nix b/pkgs/development/interpreters/guile/1.8.nix
index 6277312acc8..c8e15be2c01 100644
--- a/pkgs/development/interpreters/guile/1.8.nix
+++ b/pkgs/development/interpreters/guile/1.8.nix
@@ -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;
   };
 }