about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/compilers/clasp
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2023-06-16 06:56:35 +0000
committerAlyssa Ross <hi@alyssa.is>2023-06-16 06:56:35 +0000
commit99fcaeccb89621dd492203ce1f2d551c06f228ed (patch)
tree41cb730ae07383004789779b0f6e11cb3f4642a3 /nixpkgs/pkgs/development/compilers/clasp
parent59c5f5ac8682acc13bb22bc29c7cf02f7d75f01f (diff)
parent75a5ebf473cd60148ba9aec0d219f72e5cf52519 (diff)
downloadnixlib-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.patch60
-rw-r--r--nixpkgs/pkgs/development/compilers/clasp/default.nix200
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";
   };
+
 }
+