about summary refs log tree commit diff
path: root/pkgs/development/compilers/chicken/4
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/compilers/chicken/4')
-rw-r--r--pkgs/development/compilers/chicken/4/0001-Introduce-CHICKEN_REPOSITORY_EXTRA.patch157
-rw-r--r--pkgs/development/compilers/chicken/4/chicken.nix96
-rw-r--r--pkgs/development/compilers/chicken/4/default.nix21
-rw-r--r--pkgs/development/compilers/chicken/4/egg2nix.nix29
-rw-r--r--pkgs/development/compilers/chicken/4/eggDerivation.nix49
-rw-r--r--pkgs/development/compilers/chicken/4/eggs.nix138
-rw-r--r--pkgs/development/compilers/chicken/4/eggs.scm5
-rw-r--r--pkgs/development/compilers/chicken/4/fetchegg/builder.sh8
-rw-r--r--pkgs/development/compilers/chicken/4/fetchegg/default.nix25
-rw-r--r--pkgs/development/compilers/chicken/4/overrides.nix10
-rw-r--r--pkgs/development/compilers/chicken/4/setup-hook.sh6
11 files changed, 0 insertions, 544 deletions
diff --git a/pkgs/development/compilers/chicken/4/0001-Introduce-CHICKEN_REPOSITORY_EXTRA.patch b/pkgs/development/compilers/chicken/4/0001-Introduce-CHICKEN_REPOSITORY_EXTRA.patch
deleted file mode 100644
index ca72ba0119f0..000000000000
--- a/pkgs/development/compilers/chicken/4/0001-Introduce-CHICKEN_REPOSITORY_EXTRA.patch
+++ /dev/null
@@ -1,157 +0,0 @@
-From 2877f33747e3871c3a682b3a0c812b8ba2e4da5a Mon Sep 17 00:00:00 2001
-From: Caolan McMahon <caolan@caolanmcmahon.com>
-Date: Sat, 25 Jun 2016 11:52:28 +0100
-Subject: [PATCH] Introduce CHICKEN_REPOSITORY_EXTRA
-
-This environment variable works like CHICKEN_REPOSITORY but supports
-multiple paths separated by `:'. Those paths are searched after
-CHICKEN_REPOSITORY when loading extensions via `require-library' and
-friends. It can be accessed and changed at runtime via the new procedure
-`repository-extra-paths' which is analog to `repository-path'.
-
-Original patch by Moritz Heidkamp.
-Updated by Caolan McMahon for CHICKEN 4.11.0
----
- chicken-install.scm | 29 ++++++++++++++++++++++++-----
- chicken.import.scm  |  1 +
- eval.scm            | 37 +++++++++++++++++++++++++++++++------
- 3 files changed, 56 insertions(+), 11 deletions(-)
-
-diff --git a/chicken-install.scm b/chicken-install.scm
-index 7bc6041..f557793 100644
---- a/chicken-install.scm
-+++ b/chicken-install.scm
-@@ -120,6 +120,19 @@
- 		 (sprintf "lib/chicken/~a" (##sys#fudge 42)))
- 		(repository-path)))))
- 
-+  (define (repo-paths)
-+    (if *deploy*
-+	*prefix*
-+	(if (and *cross-chicken* (not *host-extension*))
-+	    (list (make-pathname C_TARGET_LIB_HOME (sprintf "chicken/~a" C_BINARY_VERSION)))
-+	    (cons
-+	     (if *prefix*
-+		 (make-pathname
-+			*prefix*
-+			(sprintf "lib/chicken/~a" (##sys#fudge 42)))
-+		 (repository-path))
-+	     (repository-extra-paths)))))
-+
-   (define (get-prefix #!optional runtime)
-     (cond ((and *cross-chicken*
- 		(not *host-extension*))
-@@ -226,10 +239,13 @@
-            (chicken-version) )
- 	  ;; Duplication of (extension-information) to get custom
- 	  ;; prefix.  This should be fixed.
--          ((let* ((ep (##sys#canonicalize-extension-path x 'ext-version))
--		  (sf (make-pathname (repo-path) ep "setup-info")))
--	     (and (file-exists? sf)
--		  (with-input-from-file sf read))) =>
-+      ((let ((ep (##sys#canonicalize-extension-path x 'ext-version)))
-+         (let loop ((paths (repo-paths)))
-+           (cond ((null? paths) #f)
-+                 ((let ((sf (make-pathname (car paths) ep "setup-info")))
-+                    (and (file-exists? sf)
-+                         (with-input-from-file sf read))))
-+                 (else (loop (cdr paths)))))) =>
-            (lambda (info)
-              (let ((a (assq 'version info)))
-                (if a
-@@ -776,7 +792,10 @@
- 		  "installed extension has no information about which egg it belongs to"
- 		  (pathname-file sf))
- 		 #f))))
--      (glob (make-pathname (repo-path) "*" "setup-info")))
-+      (append-map
-+       (lambda (path)
-+       (glob (make-pathname path "*" "setup-info")))
-+       (repo-paths)))
-      equal?))
- 
-   (define (list-available-extensions trans locn)
-diff --git a/chicken.import.scm b/chicken.import.scm
-index f6e3a19..be1637c 100644
---- a/chicken.import.scm
-+++ b/chicken.import.scm
-@@ -200,6 +200,7 @@
-    repl
-    repl-prompt
-    repository-path
-+   repository-extra-paths
-    require
-    reset
-    reset-handler
-diff --git a/eval.scm b/eval.scm
-index 6242f62..f7d76d4 100644
---- a/eval.scm
-+++ b/eval.scm
-@@ -81,6 +81,7 @@
- (define-constant source-file-extension ".scm")
- (define-constant setup-file-extension "setup-info")
- (define-constant repository-environment-variable "CHICKEN_REPOSITORY")
-+(define-constant repository-extra-environment-variable "CHICKEN_REPOSITORY_EXTRA")
- (define-constant prefix-environment-variable "CHICKEN_PREFIX")
- 
- ; these are actually in unit extras, but that is used by default
-@@ -1176,6 +1177,25 @@
- 
- (define ##sys#repository-path repository-path)
- 
-+(define ##sys#repository-extra-paths
-+  (let* ((repaths (get-environment-variable repository-extra-environment-variable))
-+	 (repaths (if repaths
-+		      (let ((len (string-length repaths)))
-+			(let loop ((i 0) (offset 0) (res '()))
-+			  (cond ((> i len)
-+				 (reverse res))
-+				((or (= i len) (eq? #\: (string-ref repaths i)))
-+				 (loop (+ i 1) (+ i 1) (cons (substring repaths offset i) res)))
-+				(else
-+				 (loop (+ i 1) offset res)))))
-+		      '())))
-+    (lambda (#!optional val)
-+      (if val
-+	  (set! repaths val)
-+	  repaths))))
-+
-+(define repository-extra-paths ##sys#repository-extra-paths)
-+
- (define ##sys#setup-mode #f)
- 
- (define ##sys#find-extension
-@@ -1193,6 +1213,7 @@
- 	(let loop ((paths (##sys#append
- 			   (if ##sys#setup-mode '(".") '())
- 			   (if rp (list rp) '())
-+			   (##sys#repository-extra-paths)
- 			   (if inc? ##sys#include-pathnames '())
- 			   (if ##sys#setup-mode '() '("."))) ))
- 	  (and (pair? paths)
-@@ -1252,12 +1273,16 @@
- 	[string-append string-append]
- 	[read read] )
-     (lambda (id loc)
--      (and-let* ((rp (##sys#repository-path)))
--	(let* ((p (##sys#canonicalize-extension-path id loc))
--	       (rpath (string-append rp "/" p ".")) )
--	  (cond ((file-exists? (string-append rpath setup-file-extension))
--		 => (cut with-input-from-file <> read) )
--		(else #f) ) ) ) ) ))
-+      (let loop ((rpaths (cons (##sys#repository-path) (##sys#repository-extra-paths))))
-+	(and (pair? rpaths)
-+	     (let ((rp (car rpaths)))
-+	       (if (not rp)
-+		   (loop (cdr rpaths))
-+		   (let* ((p (##sys#canonicalize-extension-path id loc))
-+			  (rpath (string-append rp "/" p ".")) )
-+		     (cond ((file-exists? (string-append rpath setup-file-extension))
-+			    => (cut with-input-from-file <> read) )
-+			   (else (loop (cdr rpaths))) ) )) ))) ) ))
- 
- (define (extension-information ext)
-   (##sys#extension-information ext 'extension-information) )
--- 
-2.1.4
-
diff --git a/pkgs/development/compilers/chicken/4/chicken.nix b/pkgs/development/compilers/chicken/4/chicken.nix
deleted file mode 100644
index b96a1d459d71..000000000000
--- a/pkgs/development/compilers/chicken/4/chicken.nix
+++ /dev/null
@@ -1,96 +0,0 @@
-{ lib, stdenv, fetchurl, makeWrapper, darwin, bootstrap-chicken ? null }:
-
-let
-  version = "4.13.0";
-  platform = with stdenv;
-    if isDarwin then "macosx"
-    else if isCygwin then "cygwin"
-    else if (isFreeBSD || isOpenBSD) then "bsd"
-    else if isSunOS then "solaris"
-    else "linux"; # Should be a sane default
-in
-stdenv.mkDerivation {
-  pname = "chicken";
-  inherit version;
-
-  binaryVersion = 8;
-
-  src = fetchurl {
-    url = "https://code.call-cc.org/releases/${version}/chicken-${version}.tar.gz";
-    sha256 = "0hvckhi5gfny3mlva6d7y9pmx7cbwvq0r7mk11k3sdiik9hlkmdd";
-  };
-
-  postPatch = lib.optionalString stdenv.isDarwin ''
-    # There is not enough space in the load command to accomodate a full path to the store,
-    # so use `@executable_path` to specify a relative path to chicken’s lib folder.
-    sed -e '/POSTINSTALL_PROGRAM_FLAGS = /{s|$(LIBDIR)|@executable_path/../lib|}' \
-      -i Makefile.macosx
-  '';
-
-  setupHook = lib.optional (bootstrap-chicken != null) ./setup-hook.sh;
-
-  # -fno-strict-overflow is not a supported argument in clang on darwin
-  hardeningDisable = lib.optionals stdenv.isDarwin ["strictoverflow"];
-
-  makeFlags = [
-    "PLATFORM=${platform}" "PREFIX=$(out)"
-    "VARDIR=$(out)/var/lib"
-  ] ++ (lib.optionals stdenv.isDarwin [
-    "XCODE_TOOL_PATH=${darwin.binutils.bintools}/bin"
-    "C_COMPILER=$(CC)"
-    "POSTINSTALL_PROGRAM=${stdenv.cc.targetPrefix}install_name_tool"
-  ]);
-
-  # We need a bootstrap-chicken to regenerate the c-files after
-  # applying a patch to add support for CHICKEN_REPOSITORY_EXTRA
-  patches = lib.optionals (bootstrap-chicken != null) [
-    ./0001-Introduce-CHICKEN_REPOSITORY_EXTRA.patch
-  ];
-
-  nativeBuildInputs = [
-    makeWrapper
-  ] ++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [
-    darwin.autoSignDarwinBinariesHook
-  ];
-
-  buildInputs = lib.optionals (bootstrap-chicken != null) [
-    bootstrap-chicken
-  ];
-
-  preBuild = lib.optionalString (bootstrap-chicken != null) ''
-    # Backup the build* files - those are generated from hostname,
-    # git-tag, etc. and we don't need/want that
-    mkdir -p build-backup
-    mv buildid buildbranch buildtag.h build-backup
-
-    # Regenerate eval.c after the patch
-    make spotless $makeFlags
-
-    mv build-backup/* .
-  '';
-
-  postInstall = ''
-    for f in $out/bin/*
-    do
-      wrapProgram $f \
-        --prefix PATH : ${stdenv.cc}/bin
-    done
-  '';
-
-  # TODO: Assert csi -R files -p '(pathname-file (repository-path))' == binaryVersion
-
-  meta = {
-    homepage = "http://www.call-cc.org/";
-    license = lib.licenses.bsd3;
-    maintainers = with lib.maintainers; [ corngood ];
-    platforms = lib.platforms.linux ++ lib.platforms.darwin; # Maybe other Unix
-    description = "Portable compiler for the Scheme programming language";
-    longDescription = ''
-      CHICKEN is a compiler for the Scheme programming language.
-      CHICKEN produces portable and efficient C, supports almost all
-      of the R5RS Scheme language standard, and includes many
-      enhancements and extensions. CHICKEN runs on Linux, macOS,
-      Windows, and many Unix flavours.
-    '';
-  };
-}
diff --git a/pkgs/development/compilers/chicken/4/default.nix b/pkgs/development/compilers/chicken/4/default.nix
deleted file mode 100644
index 7502a7a9f1e7..000000000000
--- a/pkgs/development/compilers/chicken/4/default.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{ lib, newScope } :
-let
-  callPackage = newScope self;
-
-  self = {
-    pkgs = self // { recurseForDerivations = false; };
-
-    fetchegg = callPackage ./fetchegg { };
-
-    eggDerivation = callPackage ./eggDerivation.nix { };
-
-    chicken = callPackage ./chicken.nix {
-      bootstrap-chicken = self.chicken.override { bootstrap-chicken = null; };
-    };
-
-    chickenEggs = lib.recurseIntoAttrs (callPackage ./eggs.nix { });
-
-    egg2nix = callPackage ./egg2nix.nix { };
-  };
-
-in self
diff --git a/pkgs/development/compilers/chicken/4/egg2nix.nix b/pkgs/development/compilers/chicken/4/egg2nix.nix
deleted file mode 100644
index e175f17e1ab7..000000000000
--- a/pkgs/development/compilers/chicken/4/egg2nix.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{ lib, eggDerivation, fetchFromGitHub, chickenEggs }:
-
-# Note: This mostly reimplements the default.nix already contained in
-# the tarball. Is there a nicer way than duplicating code?
-
-eggDerivation rec {
-  name = "egg2nix-${version}";
-  version = "0.5";
-
-  src = fetchFromGitHub {
-    owner = "the-kenny";
-    repo = "egg2nix";
-    rev = version;
-    sha256 = "sha256-5ov2SWVyTUQ6NHnZNPRywd9e7oIxHlVWv4uWbsNaj/s=";
-  };
-
-  buildInputs = with chickenEggs; [
-    matchable http-client
-  ];
-
-  meta = {
-    description = "Generate nix-expression from CHICKEN scheme eggs";
-    mainProgram = "egg2nix";
-    homepage = "https://github.com/the-kenny/egg2nix";
-    license = lib.licenses.bsd3;
-    platforms = lib.platforms.unix;
-    maintainers = with lib.maintainers; [ corngood ];
-  };
-}
diff --git a/pkgs/development/compilers/chicken/4/eggDerivation.nix b/pkgs/development/compilers/chicken/4/eggDerivation.nix
deleted file mode 100644
index 96b3612b34ba..000000000000
--- a/pkgs/development/compilers/chicken/4/eggDerivation.nix
+++ /dev/null
@@ -1,49 +0,0 @@
-{ lib, stdenv, chicken, makeWrapper }:
-{ name, src
-, buildInputs ? []
-, chickenInstallFlags ? []
-, cscOptions          ? []
-, ...} @ args:
-
-let
-  libPath = "${chicken}/var/lib/chicken/${toString chicken.binaryVersion}/";
-  overrides = import ./overrides.nix;
-  baseName = lib.getName name;
-  override = if builtins.hasAttr baseName overrides
-   then
-     builtins.getAttr baseName overrides
-   else
-     {};
-in
-stdenv.mkDerivation ({
-  name = "chicken-${name}";
-  propagatedBuildInputs = buildInputs;
-  nativeBuildInputs = [ makeWrapper ];
-  buildInputs = [ chicken ];
-
-  CSC_OPTIONS = lib.concatStringsSep " " cscOptions;
-
-  CHICKEN_REPOSITORY = libPath;
-  CHICKEN_INSTALL_PREFIX = "$out";
-
-  installPhase = ''
-    runHook preInstall
-
-    chicken-install -p $out ${lib.concatStringsSep " " chickenInstallFlags}
-
-    for f in $out/bin/*
-    do
-      wrapProgram $f \
-        --set CHICKEN_REPOSITORY $CHICKEN_REPOSITORY \
-        --prefix CHICKEN_REPOSITORY_EXTRA : "$out/lib/chicken/${toString chicken.binaryVersion}/:$CHICKEN_REPOSITORY_EXTRA" \
-        --prefix CHICKEN_INCLUDE_PATH \; "$CHICKEN_INCLUDE_PATH;$out/share/" \
-        --prefix PATH : "$out/bin:${chicken}/bin:$CHICKEN_REPOSITORY_EXTRA:$CHICKEN_REPOSITORY"
-    done
-
-    runHook postInstall
-  '';
-
-  meta = {
-    inherit (chicken.meta) platforms;
-  } // args.meta or {};
-} // (builtins.removeAttrs args ["name" "buildInputs" "meta"]) // override)
diff --git a/pkgs/development/compilers/chicken/4/eggs.nix b/pkgs/development/compilers/chicken/4/eggs.nix
deleted file mode 100644
index 8c96caca2623..000000000000
--- a/pkgs/development/compilers/chicken/4/eggs.nix
+++ /dev/null
@@ -1,138 +0,0 @@
-{ pkgs }:
-rec {
-  inherit (pkgs) eggDerivation fetchegg;
-
-  base64 = eggDerivation {
-    name = "base64-3.3.1";
-
-    src = fetchegg {
-      name = "base64";
-      version = "3.3.1";
-      sha256 = "0wmldiwwg1jpcn07wb906nc53si5j7sa83wgyq643xzqcx4v4x1d";
-    };
-
-    buildInputs = [
-      
-    ];
-  };
-
-  defstruct = eggDerivation {
-    name = "defstruct-1.6";
-
-    src = fetchegg {
-      name = "defstruct";
-      version = "1.6";
-      sha256 = "0lsgl32nmb5hxqiii4r3292cx5vqh50kp6v062nfiyid9lhrj0li";
-    };
-
-    buildInputs = [
-      
-    ];
-  };
-
-  http-client = eggDerivation {
-    name = "http-client-0.18";
-
-    src = fetchegg {
-      name = "http-client";
-      version = "0.18";
-      sha256 = "1b9x66kfcglld4xhm06vba00gw37vr07c859kj7lmwnk9nwhcplg";
-    };
-
-    buildInputs = [
-      intarweb
-      uri-common
-      simple-md5
-      sendfile
-    ];
-  };
-
-  intarweb = eggDerivation {
-    name = "intarweb-1.7";
-
-    src = fetchegg {
-      name = "intarweb";
-      version = "1.7";
-      sha256 = "1arjgn5g4jfdzj3nlrhxk235qwf6k6jxr14yhnncnfbgdb820xp8";
-    };
-
-    buildInputs = [
-      defstruct
-      uri-common
-      base64
-    ];
-  };
-
-  matchable = eggDerivation {
-    name = "matchable-3.7";
-
-    src = fetchegg {
-      name = "matchable";
-      version = "3.7";
-      sha256 = "1vc9rpb44fhn0n91hzglin986dw9zj87fikvfrd7j308z22a41yh";
-    };
-
-    buildInputs = [
-      
-    ];
-  };
-
-  sendfile = eggDerivation {
-    name = "sendfile-1.8.3";
-
-    src = fetchegg {
-      name = "sendfile";
-      version = "1.8.3";
-      sha256 = "036x4xdndx7qly94afnag5b9idd1yymdm8d832w2cy054y7lxqsi";
-    };
-
-    buildInputs = [
-      
-    ];
-  };
-
-  simple-md5 = eggDerivation {
-    name = "simple-md5-0.0.1";
-
-    src = fetchegg {
-      name = "simple-md5";
-      version = "0.0.1";
-      sha256 = "1h0b51p9wl1dl3pzs39hdq3hk2qnjgn8n750bgmh0651g4lzmq3i";
-    };
-
-    buildInputs = [
-      
-    ];
-  };
-
-  uri-common = eggDerivation {
-    name = "uri-common-1.4";
-
-    src = fetchegg {
-      name = "uri-common";
-      version = "1.4";
-      sha256 = "01ds1gixcn4rz657x3hr4rhw2496hsjff42ninw0k39l8i1cbh7c";
-    };
-
-    buildInputs = [
-      uri-generic
-      defstruct
-      matchable
-    ];
-  };
-
-  uri-generic = eggDerivation {
-    name = "uri-generic-2.46";
-
-    src = fetchegg {
-      name = "uri-generic";
-      version = "2.46";
-      sha256 = "10ivf4xlmr6jcm00l2phq1y73hjv6g3qgr38ycc8rw56wv6sbm4g";
-    };
-
-    buildInputs = [
-      matchable
-    ];
-  };
-}
-
diff --git a/pkgs/development/compilers/chicken/4/eggs.scm b/pkgs/development/compilers/chicken/4/eggs.scm
deleted file mode 100644
index d847ae9e29b9..000000000000
--- a/pkgs/development/compilers/chicken/4/eggs.scm
+++ /dev/null
@@ -1,5 +0,0 @@
-;; Eggs used by egg2nix
-http-client
-intarweb
-matchable
-uri-common
diff --git a/pkgs/development/compilers/chicken/4/fetchegg/builder.sh b/pkgs/development/compilers/chicken/4/fetchegg/builder.sh
deleted file mode 100644
index 78535382a7ca..000000000000
--- a/pkgs/development/compilers/chicken/4/fetchegg/builder.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-if [ -e "$NIX_ATTRS_SH_FILE" ]; then . "$NIX_ATTRS_SH_FILE"; elif [ -f .attrs.sh ]; then . .attrs.sh; fi
-source $stdenv/setup
-
-echo "exporting egg ${eggName} (version $version) into $out"
-
-mkdir -p $out
-chicken-install -r "${eggName}:${version}"
-cp -r ${eggName}/* $out/
diff --git a/pkgs/development/compilers/chicken/4/fetchegg/default.nix b/pkgs/development/compilers/chicken/4/fetchegg/default.nix
deleted file mode 100644
index 23c5760b4bce..000000000000
--- a/pkgs/development/compilers/chicken/4/fetchegg/default.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-# Fetches a chicken egg from henrietta using `chicken-install -r'
-# See: http://wiki.call-cc.org/chicken-projects/egg-index-4.html
-
-{ lib, stdenvNoCC, chicken }:
-{ name, version, md5 ? "", sha256 ? "" }:
-
-if md5 != "" then
-  throw "fetchegg does not support md5 anymore, please use sha256"
-else
-stdenvNoCC.mkDerivation {
-  name = "chicken-${name}-export-${version}";
-  builder = ./builder.sh;
-  nativeBuildInputs = [ chicken ];
-
-  outputHashAlgo = "sha256";
-  outputHashMode = "recursive";
-  outputHash = sha256;
-
-  inherit version;
-
-  eggName = name;
-
-  impureEnvVars = lib.fetchers.proxyImpureEnvVars;
-}
-
diff --git a/pkgs/development/compilers/chicken/4/overrides.nix b/pkgs/development/compilers/chicken/4/overrides.nix
deleted file mode 100644
index 9fdda9b6d9fe..000000000000
--- a/pkgs/development/compilers/chicken/4/overrides.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{
-  setup-helper = {
-    preBuild = ''
-      substituteInPlace setup-helper.setup \
-        --replace "(chicken-home)" \"$out/share/\"
-
-        cat setup-helper.setup
-    '';
-  };
-}
diff --git a/pkgs/development/compilers/chicken/4/setup-hook.sh b/pkgs/development/compilers/chicken/4/setup-hook.sh
deleted file mode 100644
index 661dc08c090c..000000000000
--- a/pkgs/development/compilers/chicken/4/setup-hook.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-addChickenRepositoryPath() {
-    addToSearchPathWithCustomDelimiter : CHICKEN_REPOSITORY_EXTRA "$1/lib/chicken/8/"
-    export CHICKEN_INCLUDE_PATH="$1/share${CHICKEN_INCLUDE_PATH:+;$CHICKEN_INCLUDE_PATH}"
-}
-
-addEnvHooks "$targetOffset" addChickenRepositoryPath