diff options
author | Alyssa Ross <hi@alyssa.is> | 2023-06-16 06:56:35 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2023-06-16 06:56:35 +0000 |
commit | 99fcaeccb89621dd492203ce1f2d551c06f228ed (patch) | |
tree | 41cb730ae07383004789779b0f6e11cb3f4642a3 /nixpkgs/pkgs/development/compilers/clasp | |
parent | 59c5f5ac8682acc13bb22bc29c7cf02f7d75f01f (diff) | |
parent | 75a5ebf473cd60148ba9aec0d219f72e5cf52519 (diff) | |
download | nixlib-99fcaeccb89621dd492203ce1f2d551c06f228ed.tar nixlib-99fcaeccb89621dd492203ce1f2d551c06f228ed.tar.gz nixlib-99fcaeccb89621dd492203ce1f2d551c06f228ed.tar.bz2 nixlib-99fcaeccb89621dd492203ce1f2d551c06f228ed.tar.lz nixlib-99fcaeccb89621dd492203ce1f2d551c06f228ed.tar.xz nixlib-99fcaeccb89621dd492203ce1f2d551c06f228ed.tar.zst nixlib-99fcaeccb89621dd492203ce1f2d551c06f228ed.zip |
Merge branch 'nixos-unstable' of https://github.com/NixOS/nixpkgs
Conflicts: nixpkgs/nixos/modules/config/console.nix nixpkgs/nixos/modules/services/mail/mailman.nix nixpkgs/nixos/modules/services/mail/public-inbox.nix nixpkgs/nixos/modules/services/mail/rss2email.nix nixpkgs/nixos/modules/services/networking/ssh/sshd.nix nixpkgs/pkgs/applications/networking/instant-messengers/dino/default.nix nixpkgs/pkgs/applications/networking/irc/weechat/default.nix nixpkgs/pkgs/applications/window-managers/sway/default.nix nixpkgs/pkgs/build-support/go/module.nix nixpkgs/pkgs/build-support/rust/build-rust-package/default.nix nixpkgs/pkgs/development/interpreters/python/default.nix nixpkgs/pkgs/development/node-packages/overrides.nix nixpkgs/pkgs/development/tools/b4/default.nix nixpkgs/pkgs/servers/dict/dictd-db.nix nixpkgs/pkgs/servers/mail/public-inbox/default.nix nixpkgs/pkgs/tools/security/pinentry/default.nix nixpkgs/pkgs/tools/text/unoconv/default.nix nixpkgs/pkgs/top-level/all-packages.nix
Diffstat (limited to 'nixpkgs/pkgs/development/compilers/clasp')
-rw-r--r-- | nixpkgs/pkgs/development/compilers/clasp/clasp-pin-repos-commits.patch | 60 | ||||
-rw-r--r-- | nixpkgs/pkgs/development/compilers/clasp/default.nix | 200 |
2 files changed, 146 insertions, 114 deletions
diff --git a/nixpkgs/pkgs/development/compilers/clasp/clasp-pin-repos-commits.patch b/nixpkgs/pkgs/development/compilers/clasp/clasp-pin-repos-commits.patch new file mode 100644 index 000000000000..433c44b7da30 --- /dev/null +++ b/nixpkgs/pkgs/development/compilers/clasp/clasp-pin-repos-commits.patch @@ -0,0 +1,60 @@ +diff --git a/repos.sexp b/repos.sexp +index 2b2459655..ad346d8e5 100644 +--- a/repos.sexp ++++ b/repos.sexp +@@ -7,15 +7,15 @@ + ((:name :ansi-test + :repository "https://gitlab.common-lisp.net/yitzchak/ansi-test" + :directory "dependencies/ansi-test/" +- :branch "add-expected-failures") ++ :commit "346cf2eb1133942054df8ce2125ed7e999b6d82b") + (:name :cl-bench + :repository "https://gitlab.common-lisp.net/ansi-test/cl-bench.git" + :directory "dependencies/cl-bench/" +- :branch "master") ++ :commit "7d184b4ef2a6272f0e3de88f6c243edb20f7071a") + (:name :cl-who + :repository "https://github.com/edicl/cl-who.git" + :directory "dependencies/cl-who/" +- :branch "master") ++ :commit "07dafe9b351c32326ce20b5804e798f10d4f273d") + (:name :quicklisp-client + :repository "https://github.com/quicklisp/quicklisp-client.git" + :directory "dependencies/quicklisp-client/" +@@ -23,15 +23,15 @@ + (:name :shasht + :repository "https://github.com/yitzchak/shasht.git" + :directory "dependencies/shasht/" +- :branch "master") ++ :commit "f38e866990c6b5381a854d63f7ea0227c87c2f6d") + (:name :trivial-do + :repository "https://github.com/yitzchak/trivial-do.git" + :directory "dependencies/trivial-do/" +- :branch "master") ++ :commit "a19f93227cb80a6bec8846655ebcc7998020bd7e") + (:name :trivial-gray-streams + :repository "https://github.com/trivial-gray-streams/trivial-gray-streams.git" + :directory "dependencies/trivial-gray-streams/" +- :branch "master") ++ :commit "2b3823edbc78a450db4891fd2b566ca0316a7876") + (:name :acclimation + :repository "https://github.com/robert-strandh/Acclimation.git" + :directory "src/lisp/kernel/contrib/Acclimation/" +@@ -128,7 +128,7 @@ + (:name :lparallel + :repository "https://github.com/yitzchak/lparallel.git" + :directory "src/lisp/kernel/contrib/lparallel/" +- :branch "fix-asdf-feature" ++ :commit "9c98bf629328b27a5a3fbb7a637afd1db439c00f" + :extension :cando) + (:name :parser.common-rules + :repository "https://github.com/scymtym/parser.common-rules.git" +@@ -152,7 +152,7 @@ + (:name :trivial-features ; Needed both by the host and eclasp + :repository "https://github.com/yitzchak/trivial-features.git" + :directory "src/lisp/kernel/contrib/trivial-features/" +- :branch "asdf-feature") ++ :commit "0008ef4f3376fb76f63c35ecee6573d0d0f98d57") + (:name :trivial-garbage + :repository "https://github.com/trivial-garbage/trivial-garbage.git" + :directory "src/lisp/kernel/contrib/trivial-garbage/" diff --git a/nixpkgs/pkgs/development/compilers/clasp/default.nix b/nixpkgs/pkgs/development/compilers/clasp/default.nix index 0113a9aebc08..bd43970e55b8 100644 --- a/nixpkgs/pkgs/development/compilers/clasp/default.nix +++ b/nixpkgs/pkgs/development/compilers/clasp/default.nix @@ -1,129 +1,101 @@ -{ lib, stdenv, fetchFromGitHub, fetchFromGitLab -, llvmPackages -, cmake, boehmgc, gmp, zlib, ncurses, boost, libelf -, python3, git, sbcl -, wafHook -}: +{ pkgs, lib, fetchFromGitHub, llvmPackages_15 }: + + let - sicl = fetchFromGitHub { - owner = "Bike"; - repo = "SICL"; - rev = "78052fb5f02a3814eb7295f3dcac09f21f98702b"; - sha256 = "0wnmp40310ls6q9gkr5ysfkj2qirq26ljjicnkqifc53mm0ghz4i"; - }; - cst = fetchFromGitHub { - owner = "robert-strandh"; - repo = "Concrete-Syntax-Tree"; - rev = "8d8c5abf8f1690cb2b765241d81c2eb86d60d77e"; - sha256 = "1rs8a5nbfffdyli126sccd0z1a8h5axp222b4pgwvgfxsb9w7g3s"; - }; - c2mop = fetchFromGitHub { - owner = "pcostanza"; - repo = "closer-mop"; - rev = "d4d1c7aa6aba9b4ac8b7bb78ff4902a52126633f"; - sha256 = "1amcv0f3vbsq0aqhai7ki5bi367giway1pbfxyc47r7q3hq5hw3c"; - }; - acclimation = fetchFromGitHub { - owner = "robert-strandh"; - repo = "Acclimation"; - rev = "dd15c86b0866fc5d8b474be0da15c58a3c04c45c"; - sha256 = "0ql224qs3zgflvdhfbca621v3byhhqfb71kzy70bslyczxv1bsh2"; - }; - eclector = fetchFromGitHub { - owner = "robert-strandh"; - repo = "Eclector"; - rev = "287ce817c0478668bd389051d2cc6b26ddc62ec9"; - sha256 = "0v7mgkq49ddyx5vvsradcp772y5l7cv9xrll3280hyginpm8w6q3"; - }; - alexandria = fetchFromGitHub { - owner = "clasp-developers"; - repo = "alexandria"; - rev = "e5c54bc30b0887c237bde2827036d17315f88737"; - sha256 = "14h7a9fwimiw9gqxjm2h47d95bfhrm7b81f6si7x8vy18d78fn4g"; - }; - mps = fetchFromGitHub { - owner = "Ravenbrook"; - repo = "mps"; - rev = "b8a05a3846430bc36c8200f24d248c8293801503"; - sha256 = "1q2xqdw832jrp0w9yhgr8xihria01j4z132ac16lr9ssqznkprv6"; - }; - asdf = fetchFromGitLab { - domain = "gitlab.common-lisp.net"; - owner = "asdf"; - repo = "asdf"; - rev = "3.3.1.2"; - sha256 = "0ljr2vc0cb2wrijcyjmp9hcaj2bdhh05ci3zf4f43hdq6i2fgg6g"; - }; -in -stdenv.mkDerivation rec { - pname = "clasp"; - version = "0.8.99.20181128"; src = fetchFromGitHub { - owner = "drmeister"; + owner = "clasp-developers"; repo = "clasp"; - rev = "2f2b52ccb750048460562b5987a7eaf7a1aa4445"; - sha256 = "0ra55vdnk59lygwzlxr5cg16vb9c45fmg59wahaxclwm461w7fwz"; - fetchSubmodules = true; + rev = "2.2.0"; + hash = "sha256-gvUqUb0dftW1miiBcAPJur0wOunox4y2SUYeeJpR9R4="; }; - nativeBuildInputs = [ cmake python3 git sbcl wafHook ] ++ - (with llvmPackages; [ llvm clang ]); - - buildInputs = with llvmPackages; - ( - builtins.map (x: lib.overrideDerivation x - (x: {NIX_CFLAGS_COMPILE= (x.NIX_CFLAGS_COMPILE or "") + " -frtti"; })) - [ llvm clang clang-unwrapped clang ]) ++ - [ - gmp zlib ncurses - boost boehmgc libelf - (boost.override {enableStatic = true; enableShared = false;}) - (lib.overrideDerivation boehmgc - (x: {configureFlags = (x.configureFlags or []) ++ ["--enable-static"];})) + reposDirs = [ + "dependencies" + "src/lisp/kernel/contrib" + "src/lisp/modules/asdf" + "src/mps" + "src/bdwgc" + "src/libatomic_ops" ]; - NIX_CXXSTDLIB_COMPILE = " -frtti "; - - postPatch = '' - echo " - PREFIX = '$out' - " | sed -e 's/^ *//' > wscript.config - - mkdir -p src/lisp/kernel/contrib/sicl - mkdir -p src/lisp/kernel/contrib/Concrete-Syntax-Tree - mkdir -p src/lisp/kernel/contrib/closer-mop - mkdir -p src/lisp/kernel/contrib/Acclimation - mkdir -p src/lisp/kernel/contrib/Eclector - mkdir -p src/lisp/kernel/contrib/alexandria - mkdir -p src/mps - mkdir -p src/lisp/modules/asdf - - cp -rfT "${sicl}" src/lisp/kernel/contrib/sicl - cp -rfT "${cst}" src/lisp/kernel/contrib/Concrete-Syntax-Tree - cp -rfT "${c2mop}" src/lisp/kernel/contrib/closer-mop - cp -rfT "${acclimation}" src/lisp/kernel/contrib/Acclimation - cp -rfT "${eclector}" src/lisp/kernel/contrib/Eclector - cp -rfT "${alexandria}" src/lisp/kernel/contrib/alexandria - cp -rfT "${mps}" src/mps - cp -rfT "${asdf}" src/lisp/modules/asdf - - chmod -R u+rwX src - ( cd src/lisp/modules/asdf; make ) - ''; - - buildTargets = "build_cboehm"; - installTargets = "install_cboehm"; + reposTarball = llvmPackages_15.stdenv.mkDerivation { + pname = "clasp-repos"; + version = "tarball"; + inherit src; + patches = [ ./clasp-pin-repos-commits.patch ]; + nativeBuildInputs = with pkgs; [ + sbcl + git + cacert + ]; + buildPhase = '' + export SOURCE_DATE_EPOCH=1 + export ASDF_OUTPUT_TRANSLATIONS=$(pwd):$(pwd)/__fasls + sbcl --script koga --help + for x in {${lib.concatStringsSep "," reposDirs}}; do + find $x -type d -name .git -exec rm -rvf {} \; || true + done + ''; + installPhase = '' + tar --owner=0 --group=0 --numeric-owner --format=gnu \ + --sort=name --mtime="@$SOURCE_DATE_EPOCH" \ + -czf $out ${lib.concatStringsSep " " reposDirs} + ''; + outputHashMode = "flat"; + outputHashAlgo = "sha256"; + outputHash = "sha256-vgwThjn2h3nKnShtKoHgaPdH/FDHv28fLMQvKFEwG6o="; + }; - CLASP_SRC_DONTTOUCH = "true"; +in llvmPackages_15.stdenv.mkDerivation { + pname = "clasp"; + version = "2.2.0"; + inherit src; + nativeBuildInputs = (with pkgs; [ + sbcl + git + pkg-config + fmt + gmpxx + libelf + boost + libunwind + ninja + ]) ++ (with llvmPackages_15; [ + llvm + libclang + ]); + configurePhase = '' + export SOURCE_DATE_EPOCH=1 + export ASDF_OUTPUT_TRANSLATIONS=$(pwd):$(pwd)/__fasls + tar xf ${reposTarball} + sbcl --script koga \ + --skip-sync \ + --cc=$NIX_CC/bin/cc \ + --cxx=$NIX_CC/bin/c++ \ + --reproducible-build \ + --package-path=/ \ + --bin-path=$out/bin \ + --lib-path=$out/lib \ + --share-path=$out/share +''; + buildPhase = '' + ninja -C build +''; + installPhase = '' + ninja -C build install +''; meta = { description = "A Common Lisp implementation based on LLVM with C++ integration"; license = lib.licenses.lgpl21Plus ; - maintainers = [lib.maintainers.raskin]; - platforms = lib.platforms.linux; - # Large, long to build, a private build of clang is needed, a prerelease. - hydraPlatforms = []; - homepage = "https://github.com/drmeister/clasp"; + maintainers = lib.teams.lisp.members; + platforms = ["x86_64-linux" "x86_64-darwin"]; + # Upstream claims support, but breaks with: + # error: use of undeclared identifier 'aligned_alloc' + broken = llvmPackages_15.stdenv.isDarwin; + homepage = "https://github.com/clasp-developers/clasp"; }; + } + |