From 3023b2d0bafcb115e3794543fdf321af7a3f184a Mon Sep 17 00:00:00 2001 From: Philip Taron Date: Tue, 12 Dec 2023 10:10:39 -0800 Subject: clasp-common-lisp: use callPackage style instead of `with pkgs;` --- pkgs/development/compilers/clasp/default.nix | 79 ++++++++++++++++++---------- 1 file changed, 51 insertions(+), 28 deletions(-) (limited to 'pkgs/development/compilers/clasp') diff --git a/pkgs/development/compilers/clasp/default.nix b/pkgs/development/compilers/clasp/default.nix index c9fecafbd4600..a80f7c58aed60 100644 --- a/pkgs/development/compilers/clasp/default.nix +++ b/pkgs/development/compilers/clasp/default.nix @@ -1,7 +1,20 @@ -{ pkgs, lib, fetchFromGitHub, llvmPackages_15 }: - +{ lib +, llvmPackages_15 +, fetchFromGitHub +, sbcl +, git +, pkg-config +, fmt_9 +, gmpxx +, libelf +, boost +, libunwind +, ninja +, cacert +}: let + inherit (llvmPackages_15) stdenv llvm libclang; src = fetchFromGitHub { owner = "clasp-developers"; @@ -19,16 +32,20 @@ let "src/libatomic_ops" ]; - reposTarball = llvmPackages_15.stdenv.mkDerivation { + reposTarball = stdenv.mkDerivation { pname = "clasp-repos"; version = "tarball"; + inherit src; + patches = [ ./clasp-pin-repos-commits.patch ]; - nativeBuildInputs = with pkgs; [ + + nativeBuildInputs = [ sbcl git cacert ]; + buildPhase = '' export SOURCE_DATE_EPOCH=1 export ASDF_OUTPUT_TRANSLATIONS=$(pwd):$(pwd)/__fasls @@ -37,21 +54,27 @@ let 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="; }; -in llvmPackages_15.stdenv.mkDerivation { +in + +stdenv.mkDerivation { pname = "clasp"; version = "2.2.0"; + inherit src; - nativeBuildInputs = (with pkgs; [ + + nativeBuildInputs = [ sbcl git pkg-config @@ -61,30 +84,32 @@ in llvmPackages_15.stdenv.mkDerivation { 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 -''; + 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 -''; + ninja -C build + ''; + installPhase = '' - ninja -C build install -''; + ninja -C build install + ''; meta = { description = "A Common Lisp implementation based on LLVM with C++ integration"; @@ -93,9 +118,7 @@ in llvmPackages_15.stdenv.mkDerivation { 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; + broken = stdenv.isDarwin; homepage = "https://github.com/clasp-developers/clasp"; }; - } - -- cgit 1.4.1