diff options
Diffstat (limited to 'pkgs/development/interpreters/racket/default.nix')
-rw-r--r-- | pkgs/development/interpreters/racket/default.nix | 230 |
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" + ]; }; } |