about summary refs log tree commit diff
path: root/pkgs/development/interpreters/racket/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/interpreters/racket/default.nix')
-rw-r--r--pkgs/development/interpreters/racket/default.nix230
1 files changed, 140 insertions, 90 deletions
diff --git a/pkgs/development/interpreters/racket/default.nix b/pkgs/development/interpreters/racket/default.nix
index 8d4615f61cead..1edfefddd0cd2 100644
--- a/pkgs/development/interpreters/racket/default.nix
+++ b/pkgs/development/interpreters/racket/default.nix
@@ -1,77 +1,110 @@
-{ lib, stdenv, fetchurl, makeFontsConf
-, cacert
-, cairo, coreutils, fontconfig, freefont_ttf
-, glib, gmp
-, gtk3
-, glibcLocales
-, libedit, libffi
-, libiconv
-, libGL
-, libGLU
-, libjpeg
-, ncurses
-, libpng, libtool, mpfr, openssl, pango, poppler
-, readline, sqlite
-, disableDocs ? false
-, CoreFoundation
-, gsettings-desktop-schemas
-, wrapGAppsHook
+{
+  lib,
+  stdenv,
+  fetchurl,
+  makeFontsConf,
+  cacert,
+  cairo,
+  coreutils,
+  fontconfig,
+  freefont_ttf,
+  glib,
+  gmp,
+  gtk3,
+  glibcLocales,
+  libedit,
+  libffi,
+  libiconv,
+  libGL,
+  libGLU,
+  libjpeg,
+  ncurses,
+  libpng,
+  libtool,
+  mpfr,
+  openssl,
+  pango,
+  poppler,
+  readline,
+  sqlite,
+  disableDocs ? false,
+  CoreFoundation,
+  gsettings-desktop-schemas,
+  wrapGAppsHook3,
 }:
 
 let
 
-  fontsConf = makeFontsConf {
-    fontDirectories = [ freefont_ttf ];
-  };
-
-  libPath = lib.makeLibraryPath ([
-    cairo
-    fontconfig
-    glib
-    gmp
-    gtk3
-    gsettings-desktop-schemas
-    libedit
-    libjpeg
-    libpng
-    mpfr
-    ncurses
-    openssl
-    pango
-    poppler
-    readline
-    sqlite
-  ] ++ lib.optionals (!stdenv.isDarwin) [
-    libGL
-    libGLU
-  ]);
-
+  fontsConf = makeFontsConf { fontDirectories = [ freefont_ttf ]; };
+
+  libPath = lib.makeLibraryPath (
+    [
+      cairo
+      fontconfig
+      glib
+      gmp
+      gtk3
+      gsettings-desktop-schemas
+      libedit
+      libjpeg
+      libpng
+      mpfr
+      ncurses
+      openssl
+      pango
+      poppler
+      readline
+      sqlite
+    ]
+    ++ lib.optionals (!stdenv.isDarwin) [
+      libGL
+      libGLU
+    ]
+  );
 in
 
 stdenv.mkDerivation rec {
   pname = "racket";
-  version = "8.12"; # always change at once with ./minimal.nix
-
-  src = (lib.makeOverridable ({ name, hash }:
-    fetchurl {
-      url = "https://mirror.racket-lang.org/installers/${version}/${name}-src.tgz";
-      inherit hash;
-    }
-  )) {
-    name = "${pname}-${version}";
-    hash = "sha256-or26nirm5dGhg2S8to99BFOOSS2Oksn7Yb0y2L5b69c=";
-  };
+  version = "8.13"; # always change at once with ./minimal.nix
+
+  src =
+    (lib.makeOverridable (
+      { name, hash }:
+      fetchurl {
+        url = "https://mirror.racket-lang.org/installers/${version}/${name}-src.tgz";
+        inherit hash;
+      }
+    ))
+      {
+        name = "${pname}-${version}";
+        hash = "sha256-AB4EkgRAtlic9i1Wd9GMwv9q6Puvd+Y7iozyCJBoX7w=";
+      };
 
   FONTCONFIG_FILE = fontsConf;
   LD_LIBRARY_PATH = libPath;
   NIX_LDFLAGS = lib.concatStringsSep " " [
-    (lib.optionalString (stdenv.cc.isGNU && ! stdenv.isDarwin) "-lgcc_s")
+    (lib.optionalString (stdenv.cc.isGNU && !stdenv.isDarwin) "-lgcc_s")
   ];
 
-  nativeBuildInputs = [ cacert wrapGAppsHook ];
+  nativeBuildInputs = [
+    cacert
+    wrapGAppsHook3
+  ];
 
-  buildInputs = [ fontconfig libffi libtool sqlite gsettings-desktop-schemas gtk3 ncurses ]
-    ++ lib.optionals stdenv.isDarwin [ libiconv CoreFoundation ];
+  buildInputs =
+    [
+      fontconfig
+      libffi
+      libtool
+      sqlite
+      gsettings-desktop-schemas
+      gtk3
+      ncurses
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      libiconv
+      CoreFoundation
+    ];
 
   patches = [
     # Hardcode variant detection because we wrap the Racket binary making it
@@ -87,32 +120,34 @@ stdenv.mkDerivation rec {
     ./force-remove-codesign-then-add.patch
   ];
 
-  preConfigure = ''
-    unset AR
-    for f in src/lt/configure src/cs/c/configure src/bc/src/string.c; do
-      substituteInPlace "$f" \
-        --replace /usr/bin/uname ${coreutils}/bin/uname \
-        --replace /bin/cp ${coreutils}/bin/cp \
-        --replace /bin/ln ${coreutils}/bin/ln \
-        --replace /bin/rm ${coreutils}/bin/rm \
-        --replace /bin/true ${coreutils}/bin/true
-    done
-
-    # The configure script forces using `libtool -o` as AR on Darwin. But, the
-    # `-o` option is only available from Apple libtool. GNU ar works here.
-    substituteInPlace src/ChezScheme/zlib/configure \
-        --replace 'ARFLAGS="-o"' 'AR=ar; ARFLAGS="rc"'
-
-    mkdir src/build
-    cd src/build
-
-  '' + lib.optionalString stdenv.isLinux ''
-    gappsWrapperArgs+=("--prefix"   "LD_LIBRARY_PATH" ":" ${libPath})
-    gappsWrapperArgs+=("--set"      "LOCALE_ARCHIVE" "${glibcLocales}/lib/locale/locale-archive")
-  '' + lib.optionalString stdenv.isDarwin ''
-    gappsWrapperArgs+=("--prefix" "DYLD_LIBRARY_PATH" ":" ${libPath})
-  ''
-  ;
+  preConfigure =
+    ''
+      unset AR
+      for f in src/lt/configure src/cs/c/configure src/bc/src/string.c; do
+        substituteInPlace "$f" \
+          --replace /usr/bin/uname ${coreutils}/bin/uname \
+          --replace /bin/cp ${coreutils}/bin/cp \
+          --replace /bin/ln ${coreutils}/bin/ln \
+          --replace /bin/rm ${coreutils}/bin/rm \
+          --replace /bin/true ${coreutils}/bin/true
+      done
+
+      # The configure script forces using `libtool -o` as AR on Darwin. But, the
+      # `-o` option is only available from Apple libtool. GNU ar works here.
+      substituteInPlace src/ChezScheme/zlib/configure \
+          --replace 'ARFLAGS="-o"' 'AR=ar; ARFLAGS="rc"'
+
+      mkdir src/build
+      cd src/build
+
+    ''
+    + lib.optionalString stdenv.isLinux ''
+      gappsWrapperArgs+=("--prefix"   "LD_LIBRARY_PATH" ":" ${libPath})
+      gappsWrapperArgs+=("--set"      "LOCALE_ARCHIVE" "${glibcLocales}/lib/locale/locale-archive")
+    ''
+    + lib.optionalString stdenv.isDarwin ''
+      gappsWrapperArgs+=("--prefix" "DYLD_LIBRARY_PATH" ":" ${libPath})
+    '';
 
   preBuild = lib.optionalString stdenv.isDarwin ''
     # Cannot set DYLD_LIBRARY_PATH as an attr of this drv, becasue dynamic
@@ -129,9 +164,16 @@ stdenv.mkDerivation rec {
   '';
 
   shared = if stdenv.isDarwin then "dylib" else "shared";
-  configureFlags = [ "--enable-${shared}"  "--enable-lt=${libtool}/bin/libtool" ]
-                   ++ lib.optionals disableDocs [ "--disable-docs" ]
-                   ++ lib.optionals stdenv.isDarwin [ "--disable-strip" "--enable-xonx" ];
+  configureFlags =
+    [
+      "--enable-${shared}"
+      "--enable-lt=${libtool}/bin/libtool"
+    ]
+    ++ lib.optionals disableDocs [ "--disable-docs" ]
+    ++ lib.optionals stdenv.isDarwin [
+      "--disable-strip"
+      "--enable-xonx"
+    ];
 
   configureScript = "../configure";
 
@@ -152,8 +194,16 @@ stdenv.mkDerivation rec {
     '';
     homepage = "https://racket-lang.org/";
     changelog = "https://github.com/racket/racket/releases/tag/v${version}";
-    license = with licenses; [ asl20 /* or */ mit ];
+    license = with licenses; [
+      asl20 # or
+      mit
+    ];
     maintainers = with maintainers; [ vrthra ];
-    platforms = [ "x86_64-darwin" "x86_64-linux" "aarch64-linux" "aarch64-darwin" ];
+    platforms = [
+      "x86_64-darwin"
+      "x86_64-linux"
+      "aarch64-linux"
+      "aarch64-darwin"
+    ];
   };
 }