diff options
Diffstat (limited to 'pkgs/development/compilers/chicken/4')
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 |