From fce058c80e63d5f5be712717ee245426a5fa7d84 Mon Sep 17 00:00:00 2001 From: Sergei Trofimovich Date: Mon, 14 Feb 2022 21:24:23 +0000 Subject: [PATCH 1/2] guile_3_0: 3.0.7 -> 3.0.8 While at it added trivial updater script. Changes: https://git.savannah.gnu.org/cgit/guile.git/tree/NEWS?h=v3.0.8#n8 Had to disable LTO on darwin as toolchain can't link executables there. --- pkgs/development/interpreters/guile/3.0.nix | 24 ++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/pkgs/development/interpreters/guile/3.0.nix b/pkgs/development/interpreters/guile/3.0.nix index 76aa0c4404fc..67c0e2b20649 100644 --- a/pkgs/development/interpreters/guile/3.0.nix +++ b/pkgs/development/interpreters/guile/3.0.nix @@ -14,6 +14,7 @@ , pkg-config , pkgsBuildBuild , readline +, writeScript }: let @@ -24,11 +25,11 @@ let in builder rec { pname = "guile"; - version = "3.0.7"; + version = "3.0.8"; src = fetchurl { url = "mirror://gnu/${pname}/${pname}-${version}.tar.xz"; - sha256 = "sha256-9X2GxwYgJxv863qb4MgXRKAz8IrcfOuoMsmRerPmkbc="; + sha256 = "sha256-2qcGClbygE6bdMjX5/6L7tErQ6qyeJo4WFGD/MF7ihM="; }; outputs = [ "out" "dev" "info" ]; @@ -102,7 +103,10 @@ builder rec { ] # Disable JIT on Apple Silicon, as it is not yet supported # https://debbugs.gnu.org/cgi/bugreport.cgi?bug=44505"; - ++ lib.optional (stdenv.isDarwin && stdenv.isAarch64) "--enable-jit=no"; + ++ lib.optional (stdenv.isDarwin && stdenv.isAarch64) "--enable-jit=no" + # At least on x86_64-darwin '-flto' autodetection is not correct: + # https://github.com/NixOS/nixpkgs/pull/160051#issuecomment-1046193028 + ++ lib.optional (stdenv.isDarwin) "--disable-lto"; postInstall = '' wrapProgram $out/bin/guile-snarf --prefix PATH : "${gawk}/bin" @@ -126,6 +130,20 @@ builder rec { setupHook = ./setup-hook-3.0.sh; + passthru = { + updateScript = writeScript "update-guile-3" '' + #!/usr/bin/env nix-shell + #!nix-shell -i bash -p curl pcre common-updater-scripts + + set -eu -o pipefail + + # Expect the text in format of '"https://ftp.gnu.org/gnu/guile/guile-3.0.8.tar.gz"' + new_version="$(curl -s https://www.gnu.org/software/guile/download/ | + pcregrep -o1 '"https://ftp.gnu.org/gnu/guile/guile-(3[.0-9]+).tar.gz"')" + update-source-version ${pname} "$new_version" + ''; + }; + meta = with lib; { homepage = "https://www.gnu.org/software/guile/"; description = "Embeddable Scheme implementation"; From 4e9cfefb8a495b1dc8ab7793731aef2b5048efa0 Mon Sep 17 00:00:00 2001 From: Sergei Trofimovich Date: Tue, 15 Feb 2022 08:00:16 +0000 Subject: [PATCH 2/2] pkgsLLVM.guile, pkgsLLVM.guile_3_0: avoid -lgcc_s on clang, not just darwin Otherwise pkgsLLVM.guile / pkgsLLVM.guile_3_0 fails early on linux. --- pkgs/development/interpreters/guile/2.2.nix | 4 ++-- pkgs/development/interpreters/guile/3.0.nix | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/development/interpreters/guile/2.2.nix b/pkgs/development/interpreters/guile/2.2.nix index 19ef0e608485..04c60e80e8fc 100644 --- a/pkgs/development/interpreters/guile/2.2.nix +++ b/pkgs/development/interpreters/guile/2.2.nix @@ -83,9 +83,9 @@ builder rec { # Explicitly link against libgcc_s, to work around the infamous # "libgcc_s.so.1 must be installed for pthread_cancel to work". - # don't have "libgcc_s.so.1" on darwin + # don't have "libgcc_s.so.1" on clang LDFLAGS = lib.optionalString - (!stdenv.isDarwin && !stdenv.hostPlatform.isStatic) "-lgcc_s"; + (stdenv.cc.isGNU && !stdenv.hostPlatform.isStatic) "-lgcc_s"; configureFlags = [ "--with-libreadline-prefix=${lib.getDev readline}" diff --git a/pkgs/development/interpreters/guile/3.0.nix b/pkgs/development/interpreters/guile/3.0.nix index 67c0e2b20649..99f3f84829c7 100644 --- a/pkgs/development/interpreters/guile/3.0.nix +++ b/pkgs/development/interpreters/guile/3.0.nix @@ -82,9 +82,9 @@ builder rec { # Explicitly link against libgcc_s, to work around the infamous # "libgcc_s.so.1 must be installed for pthread_cancel to work". - # don't have "libgcc_s.so.1" on darwin + # don't have "libgcc_s.so.1" on clang LDFLAGS = lib.optionalString - (!stdenv.isDarwin && !stdenv.hostPlatform.isStatic) "-lgcc_s"; + (stdenv.cc.isGNU && !stdenv.hostPlatform.isStatic) "-lgcc_s"; configureFlags = [ "--with-libreadline-prefix=${lib.getDev readline}"