From 3859aab0c6a6139b167af030f0c604ea8e5ad76c Mon Sep 17 00:00:00 2001 From: AndersonTorres Date: Fri, 6 Aug 2021 01:41:14 -0300 Subject: [PATCH] guile 2.2: rename and reformat --- .../guile/{default.nix => 2.2.nix} | 123 +++++++++++------- .../interpreters/guile/setup-hook-2.2.sh | 12 +- pkgs/top-level/all-packages.nix | 2 +- 3 files changed, 79 insertions(+), 58 deletions(-) rename pkgs/development/interpreters/guile/{default.nix => 2.2.nix} (54%) diff --git a/pkgs/development/interpreters/guile/default.nix b/pkgs/development/interpreters/guile/2.2.nix similarity index 54% rename from pkgs/development/interpreters/guile/default.nix rename to pkgs/development/interpreters/guile/2.2.nix index ed685682db66..19ef0e608485 100644 --- a/pkgs/development/interpreters/guile/default.nix +++ b/pkgs/development/interpreters/guile/2.2.nix @@ -1,41 +1,65 @@ -{ lib, stdenv, pkgsBuildBuild, buildPackages -, fetchurl, makeWrapper, gawk, pkg-config -, libffi, libtool, readline, gmp, boehmgc, libunistring -, coverageAnalysis ? null +{ lib +, stdenv +, fetchurl , fetchpatch +, boehmgc +, buildPackages +, coverageAnalysis ? null +, gawk +, gmp +, libffi +, libtool +, libunistring +, makeWrapper +, pkg-config +, pkgsBuildBuild +, readline }: -# Do either a coverage analysis build or a standard build. -(if coverageAnalysis != null - then coverageAnalysis - else stdenv.mkDerivation) - -(rec { - name = "guile-${version}"; +let + # Do either a coverage analysis build or a standard build. + builder = if coverageAnalysis != null + then coverageAnalysis + else stdenv.mkDerivation; +in +builder rec { + pname = "guile"; version = "2.2.7"; src = fetchurl { - url = "mirror://gnu/guile/${name}.tar.xz"; + url = "mirror://gnu/${pname}/${pname}-${version}.tar.xz"; sha256 = "013mydzhfswqci6xmyc1ajzd59pfbdak15i0b090nhr9bzm7dxyd"; }; outputs = [ "out" "dev" "info" ]; setOutputFlags = false; # $dev gets into the library otherwise - depsBuildBuild = [ buildPackages.stdenv.cc ] - ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) - pkgsBuildBuild.guile; - nativeBuildInputs = [ makeWrapper gawk pkg-config ]; - buildInputs = [ readline libtool libunistring libffi ]; - + depsBuildBuild = [ + buildPackages.stdenv.cc + ] + ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) + pkgsBuildBuild.guile; + nativeBuildInputs = [ + gawk + makeWrapper + pkg-config + ]; + buildInputs = [ + libffi + libtool + libunistring + readline + ]; propagatedBuildInputs = [ - gmp boehmgc + boehmgc + gmp # XXX: These ones aren't normally needed here, but `libguile*.la' has '-l' # flags for them without corresponding '-L' flags. Adding them here will add # the needed `-L' flags. As for why the `.la' file lacks the `-L' flags, # see below. - libtool libunistring + libtool + libunistring ]; # According to Bernhard M. Wiedemann on @@ -47,9 +71,11 @@ enableParallelBuilding = false; patches = [ + # Read the header of the patch to more info ./eai_system.patch ] ++ lib.optional (coverageAnalysis != null) ./gcov-file-name.patch - ++ lib.optional stdenv.isDarwin (fetchpatch { + ++ lib.optional stdenv.isDarwin + (fetchpatch { url = "https://gitlab.gnome.org/GNOME/gtk-osx/raw/52898977f165777ad9ef169f7d4818f2d4c9b731/patches/guile-clocktime.patch"; sha256 = "12wvwdna9j8795x59ldryv9d84c1j3qdk2iskw09306idfsis207"; }); @@ -61,27 +87,28 @@ LDFLAGS = lib.optionalString (!stdenv.isDarwin && !stdenv.hostPlatform.isStatic) "-lgcc_s"; - configureFlags = [ "--with-libreadline-prefix=${readline.dev}" ] - ++ lib.optionals stdenv.isSunOS [ - # Make sure the right is found, and not the incompatible - # /usr/include/mp.h from OpenSolaris. See - # - # for details. - "--with-libgmp-prefix=${gmp.dev}" + configureFlags = [ + "--with-libreadline-prefix=${lib.getDev readline}" + ] ++ lib.optionals stdenv.isSunOS [ + # Make sure the right is found, and not the incompatible + # /usr/include/mp.h from OpenSolaris. See + # + # for details. + "--with-libgmp-prefix=${lib.getDev gmp}" - # Same for these (?). - "--with-libunistring-prefix=${libunistring}" + # Same for these (?). + "--with-libunistring-prefix=${libunistring}" - # See below. - "--without-threads" - ]; + # See below. + "--without-threads" + ]; 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|-lunistring|-L${libunistring}/lib -lunistring|g ; @@ -89,7 +116,7 @@ s|-lltdl|-L${libtool.lib}/lib -lltdl|g ; s|includedir=$out|includedir=$dev|g " - ''; + ''; # make check doesn't work on darwin # On Linuxes+Hydra the tests are flaky; feel free to investigate deeper. @@ -98,21 +125,19 @@ setupHook = ./setup-hook-2.2.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.lgpl3Plus; - maintainers = with lib.maintainers; [ ludo lovek323 vrthra ]; - platforms = lib.platforms.all; - longDescription = '' 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. + 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 lovek323 vrthra ]; + platforms = platforms.all; }; -}) +} diff --git a/pkgs/development/interpreters/guile/setup-hook-2.2.sh b/pkgs/development/interpreters/guile/setup-hook-2.2.sh index 1430dbe07205..d6bb23e7949a 100644 --- a/pkgs/development/interpreters/guile/setup-hook-2.2.sh +++ b/pkgs/development/interpreters/guile/setup-hook-2.2.sh @@ -1,21 +1,17 @@ addGuileLibPath () { - if test -d "$1/share/guile/site/2.2" - then + if test -d "$1/share/guile/site/2.2"; then export GUILE_LOAD_PATH="${GUILE_LOAD_PATH-}${GUILE_LOAD_PATH:+:}$1/share/guile/site/2.2" export GUILE_LOAD_COMPILED_PATH="${GUILE_LOAD_COMPILED_PATH-}${GUILE_LOAD_COMPILED_PATH:+:}$1/share/guile/site/2.2" - elif test -d "$1/share/guile/site" - then + elif test -d "$1/share/guile/site"; then export GUILE_LOAD_PATH="${GUILE_LOAD_PATH-}${GUILE_LOAD_PATH:+:}$1/share/guile/site" export GUILE_LOAD_COMPILED_PATH="${GUILE_LOAD_COMPILED_PATH-}${GUILE_LOAD_COMPILED_PATH:+:}$1/share/guile/site" fi - if test -d "$1/lib/guile/2.2/ccache" - then + if test -d "$1/lib/guile/2.2/ccache"; then export GUILE_LOAD_COMPILED_PATH="${GUILE_LOAD_COMPILED_PATH-}${GUILE_LOAD_COMPILED_PATH:+:}$1/lib/guile/2.2/ccache" fi - if test -d "$1/lib/guile/2.2/site-ccache" - then + if test -d "$1/lib/guile/2.2/site-ccache"; then export GUILE_LOAD_COMPILED_PATH="${GUILE_LOAD_COMPILED_PATH-}${GUILE_LOAD_COMPILED_PATH:+:}$1/lib/guile/2.2/site-ccache" fi } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 85f9cd7b0a0c..ccb76faddde3 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -13296,7 +13296,7 @@ with pkgs; # Needed for autogen guile_2_0 = callPackage ../development/interpreters/guile/2.0.nix { }; - guile_2_2 = callPackage ../development/interpreters/guile { }; + guile_2_2 = callPackage ../development/interpreters/guile/2.2.nix { }; guile = guile_2_2;