uboot: (firmwareOdroidC2/C4) don't invoke patch tool, use patches = [] instead
https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/generic/setup.sh#L948 this can do it nicely. Signed-off-by: Anton Arapov <anton@deadbeef.mx>
This commit is contained in:
commit
56de2bcd43
30691 changed files with 3076956 additions and 0 deletions
|
|
@ -0,0 +1,157 @@
|
|||
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
|
||||
|
||||
84
pkgs/development/compilers/chicken/4/chicken.nix
Normal file
84
pkgs/development/compilers/chicken/4/chicken.nix
Normal file
|
|
@ -0,0 +1,84 @@
|
|||
{ 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";
|
||||
};
|
||||
|
||||
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)"
|
||||
]);
|
||||
|
||||
# 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
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
makeWrapper
|
||||
] ++ (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 = "A 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.
|
||||
'';
|
||||
};
|
||||
}
|
||||
21
pkgs/development/compilers/chicken/4/default.nix
Normal file
21
pkgs/development/compilers/chicken/4/default.nix
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
{ lib, newScope } :
|
||||
let
|
||||
callPackage = newScope self;
|
||||
|
||||
self = {
|
||||
pkgs = self;
|
||||
|
||||
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 lib.recurseIntoAttrs self
|
||||
28
pkgs/development/compilers/chicken/4/egg2nix.nix
Normal file
28
pkgs/development/compilers/chicken/4/egg2nix.nix
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
{ 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";
|
||||
homepage = "https://github.com/the-kenny/egg2nix";
|
||||
license = lib.licenses.bsd3;
|
||||
platforms = lib.platforms.unix;
|
||||
maintainers = with lib.maintainers; [ corngood ];
|
||||
};
|
||||
}
|
||||
45
pkgs/development/compilers/chicken/4/eggDerivation.nix
Normal file
45
pkgs/development/compilers/chicken/4/eggDerivation.nix
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
{ 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
|
||||
'';
|
||||
} // (builtins.removeAttrs args ["name" "buildInputs"]) // override)
|
||||
138
pkgs/development/compilers/chicken/4/eggs.nix
Normal file
138
pkgs/development/compilers/chicken/4/eggs.nix
Normal file
|
|
@ -0,0 +1,138 @@
|
|||
{ 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
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
5
pkgs/development/compilers/chicken/4/eggs.scm
Normal file
5
pkgs/development/compilers/chicken/4/eggs.scm
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
;; Eggs used by egg2nix
|
||||
http-client
|
||||
intarweb
|
||||
matchable
|
||||
uri-common
|
||||
9
pkgs/development/compilers/chicken/4/fetchegg/builder.sh
Normal file
9
pkgs/development/compilers/chicken/4/fetchegg/builder.sh
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
source $stdenv/setup
|
||||
|
||||
header "exporting egg ${eggName} (version $version) into $out"
|
||||
|
||||
mkdir -p $out
|
||||
chicken-install -r "${eggName}:${version}"
|
||||
cp -r ${eggName}/* $out/
|
||||
|
||||
stopNest
|
||||
25
pkgs/development/compilers/chicken/4/fetchegg/default.nix
Normal file
25
pkgs/development/compilers/chicken/4/fetchegg/default.nix
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
# 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;
|
||||
}
|
||||
|
||||
10
pkgs/development/compilers/chicken/4/overrides.nix
Normal file
10
pkgs/development/compilers/chicken/4/overrides.nix
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
setup-helper = {
|
||||
preBuild = ''
|
||||
substituteInPlace setup-helper.setup \
|
||||
--replace "(chicken-home)" \"$out/share/\"
|
||||
|
||||
cat setup-helper.setup
|
||||
'';
|
||||
};
|
||||
}
|
||||
6
pkgs/development/compilers/chicken/4/setup-hook.sh
Normal file
6
pkgs/development/compilers/chicken/4/setup-hook.sh
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
addChickenRepositoryPath() {
|
||||
addToSearchPathWithCustomDelimiter : CHICKEN_REPOSITORY_EXTRA "$1/lib/chicken/8/"
|
||||
export CHICKEN_INCLUDE_PATH="$1/share${CHICKEN_INCLUDE_PATH:+;$CHICKEN_INCLUDE_PATH}"
|
||||
}
|
||||
|
||||
addEnvHooks "$targetOffset" addChickenRepositoryPath
|
||||
73
pkgs/development/compilers/chicken/5/chicken.nix
Normal file
73
pkgs/development/compilers/chicken/5/chicken.nix
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
{ lib, stdenv, fetchurl, makeWrapper, darwin, bootstrap-chicken ? null }:
|
||||
|
||||
let
|
||||
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 rec {
|
||||
pname = "chicken";
|
||||
version = "5.3.0";
|
||||
|
||||
binaryVersion = 11;
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://code.call-cc.org/releases/${version}/chicken-${version}.tar.gz";
|
||||
sha256 = "sha256-w62Z2PnhftgQkS75gaw7DC4vRvsOzAM7XDttyhvbDXY=";
|
||||
};
|
||||
|
||||
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)"
|
||||
] ++ (lib.optionals stdenv.isDarwin [
|
||||
"XCODE_TOOL_PATH=${darwin.binutils.bintools}/bin"
|
||||
"C_COMPILER=$(CC)"
|
||||
]);
|
||||
|
||||
buildInputs = [
|
||||
makeWrapper
|
||||
] ++ (lib.optionals (bootstrap-chicken != null) [
|
||||
bootstrap-chicken
|
||||
]);
|
||||
|
||||
postInstall = ''
|
||||
for f in $out/bin/*
|
||||
do
|
||||
wrapProgram $f \
|
||||
--prefix PATH : ${lib.makeBinPath [ stdenv.cc ]}
|
||||
done
|
||||
'';
|
||||
|
||||
doCheck = !stdenv.isDarwin;
|
||||
postCheck = ''
|
||||
./csi -R chicken.pathname -R chicken.platform \
|
||||
-p "(assert (equal? \"${toString binaryVersion}\" (pathname-file (car (repository-path)))))"
|
||||
'';
|
||||
|
||||
doInstallCheck = true;
|
||||
installCheckPhase = ''
|
||||
$out/bin/chicken -version
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = "https://call-cc.org/";
|
||||
license = lib.licenses.bsd3;
|
||||
maintainers = with lib.maintainers; [ corngood ];
|
||||
platforms = lib.platforms.unix;
|
||||
description = "A 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.
|
||||
'';
|
||||
};
|
||||
}
|
||||
21
pkgs/development/compilers/chicken/5/default.nix
Normal file
21
pkgs/development/compilers/chicken/5/default.nix
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
{ lib, newScope } :
|
||||
let
|
||||
callPackage = newScope self;
|
||||
|
||||
self = {
|
||||
pkgs = self;
|
||||
|
||||
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 lib.recurseIntoAttrs self
|
||||
29
pkgs/development/compilers/chicken/5/egg2nix.nix
Normal file
29
pkgs/development/compilers/chicken/5/egg2nix.nix
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
{ lib, eggDerivation, fetchFromGitHub, chickenEggs }:
|
||||
|
||||
# Note: This mostly reimplements the default.nix already contained in
|
||||
# the tarball. Is there a nicer way than duplicating code?
|
||||
|
||||
let
|
||||
version = "c5-git";
|
||||
in
|
||||
eggDerivation {
|
||||
src = fetchFromGitHub {
|
||||
owner = "corngood";
|
||||
repo = "egg2nix";
|
||||
rev = "chicken-5";
|
||||
sha256 = "1vfnhbcnyakywgjafhs0k5kpsdnrinzvdjxpz3fkwas1jsvxq3d1";
|
||||
};
|
||||
|
||||
name = "egg2nix-${version}";
|
||||
buildInputs = with chickenEggs; [
|
||||
args matchable
|
||||
];
|
||||
|
||||
meta = {
|
||||
description = "Generate nix-expression from CHICKEN scheme eggs";
|
||||
homepage = "https://github.com/the-kenny/egg2nix";
|
||||
license = lib.licenses.bsd3;
|
||||
platforms = lib.platforms.unix;
|
||||
maintainers = with lib.maintainers; [ corngood ];
|
||||
};
|
||||
}
|
||||
42
pkgs/development/compilers/chicken/5/eggDerivation.nix
Normal file
42
pkgs/development/compilers/chicken/5/eggDerivation.nix
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
{ lib, stdenv, chicken, makeWrapper }:
|
||||
{ name, src
|
||||
, buildInputs ? []
|
||||
, chickenInstallFlags ? []
|
||||
, cscOptions ? []
|
||||
, ...} @ args:
|
||||
|
||||
let
|
||||
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;
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
export CHICKEN_INSTALL_PREFIX=$out
|
||||
export CHICKEN_INSTALL_REPOSITORY=$out/lib/chicken/${toString chicken.binaryVersion}
|
||||
chicken-install ${lib.concatStringsSep " " chickenInstallFlags}
|
||||
|
||||
for f in $out/bin/*
|
||||
do
|
||||
wrapProgram $f \
|
||||
--prefix CHICKEN_REPOSITORY_PATH : "$out/lib/chicken/${toString chicken.binaryVersion}:$CHICKEN_REPOSITORY_PATH" \
|
||||
--prefix CHICKEN_INCLUDE_PATH : "$CHICKEN_INCLUDE_PATH:$out/share" \
|
||||
--prefix PATH : "$out/bin:${chicken}/bin:$CHICKEN_REPOSITORY_PATH"
|
||||
done
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
} // (builtins.removeAttrs args ["name" "buildInputs"]) // override)
|
||||
551
pkgs/development/compilers/chicken/5/eggs.nix
Normal file
551
pkgs/development/compilers/chicken/5/eggs.nix
Normal file
|
|
@ -0,0 +1,551 @@
|
|||
{ pkgs, stdenv }:
|
||||
rec {
|
||||
inherit (pkgs) eggDerivation fetchegg;
|
||||
|
||||
address-info = eggDerivation {
|
||||
name = "address-info-1.0.5";
|
||||
|
||||
src = fetchegg {
|
||||
name = "address-info";
|
||||
version = "1.0.5";
|
||||
sha256 = "1nv87ghfv8szmi2l0rybrgrds6fs5w6jxafqslnzw0mw5sfj6jyk";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
srfi-1
|
||||
];
|
||||
};
|
||||
|
||||
apropos = eggDerivation {
|
||||
name = "apropos-3.6.0";
|
||||
|
||||
src = fetchegg {
|
||||
name = "apropos";
|
||||
version = "3.6.0";
|
||||
sha256 = "0jq5d4zijbf5dw2vsfn89smp7zjpgp82y5hs10xkysf831x7l551";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
srfi-1
|
||||
srfi-13
|
||||
check-errors
|
||||
string-utils
|
||||
symbol-utils
|
||||
];
|
||||
};
|
||||
|
||||
args = eggDerivation {
|
||||
name = "args-1.6.0";
|
||||
|
||||
src = fetchegg {
|
||||
name = "args";
|
||||
version = "1.6.0";
|
||||
sha256 = "1y9sznh4kxqxvhd8k44bjx0s7xspp52sx4bn8i8i0f8lwch6r2g4";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
srfi-1
|
||||
srfi-13
|
||||
srfi-37
|
||||
];
|
||||
};
|
||||
|
||||
base64 = eggDerivation {
|
||||
name = "base64-1.0";
|
||||
|
||||
src = fetchegg {
|
||||
name = "base64";
|
||||
version = "1.0";
|
||||
sha256 = "01lid9wxf94nr7gmskamxlfngack1hyxig8rl9swwgnbmz9qgysi";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
srfi-13
|
||||
];
|
||||
};
|
||||
|
||||
check-errors = eggDerivation {
|
||||
name = "check-errors-3.2.0";
|
||||
|
||||
src = fetchegg {
|
||||
name = "check-errors";
|
||||
version = "3.2.0";
|
||||
sha256 = "0d0hpq1nmwyvbg162bqzgk62f70rin0pxsr5a3pgx6xin5i3ngah";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
||||
];
|
||||
};
|
||||
|
||||
defstruct = eggDerivation {
|
||||
name = "defstruct-2.0";
|
||||
|
||||
src = fetchegg {
|
||||
name = "defstruct";
|
||||
version = "2.0";
|
||||
sha256 = "0q1v1gdwqlpmwcsa4jnqldfqky9k7kvb83qgkhdyqym52bm5aln8";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
srfi-1
|
||||
];
|
||||
};
|
||||
|
||||
feature-test = eggDerivation {
|
||||
name = "feature-test-0.2.0";
|
||||
|
||||
src = fetchegg {
|
||||
name = "feature-test";
|
||||
version = "0.2.0";
|
||||
sha256 = "1dxdisv64d8alg6r45cwxf5gmdpcvql1hvlq808lgwphd7kvfpgr";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
||||
];
|
||||
};
|
||||
|
||||
foreigners = eggDerivation {
|
||||
name = "foreigners-1.5";
|
||||
|
||||
src = fetchegg {
|
||||
name = "foreigners";
|
||||
version = "1.5";
|
||||
sha256 = "1mm91y61nlawgb7iqdrkz2fi9sc3fic07f5m1ig541b2hbscfiqy";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
matchable
|
||||
];
|
||||
};
|
||||
|
||||
intarweb = eggDerivation {
|
||||
name = "intarweb-2.0.1";
|
||||
|
||||
src = fetchegg {
|
||||
name = "intarweb";
|
||||
version = "2.0.1";
|
||||
sha256 = "0md226jikqhj993cw17588ipmnz0v7l34zrvylamyrs6zbvj3scm";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
srfi-1
|
||||
srfi-13
|
||||
srfi-14
|
||||
defstruct
|
||||
uri-common
|
||||
base64
|
||||
];
|
||||
};
|
||||
|
||||
iset = eggDerivation {
|
||||
name = "iset-2.2";
|
||||
|
||||
src = fetchegg {
|
||||
name = "iset";
|
||||
version = "2.2";
|
||||
sha256 = "0yfkcd07cw6xnnqfbbvjy81x0vc54k40vdjp2m7gwxx64is6m3rz";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
||||
];
|
||||
};
|
||||
|
||||
json = eggDerivation {
|
||||
name = "json-1.6";
|
||||
|
||||
src = fetchegg {
|
||||
name = "json";
|
||||
version = "1.6";
|
||||
sha256 = "0sb8285dqrm27c8zaqfzc0gixvfmvf0cq2nbza8c4z7j5snxzs2w";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
packrat
|
||||
srfi-1
|
||||
srfi-69
|
||||
];
|
||||
};
|
||||
|
||||
matchable = eggDerivation {
|
||||
name = "matchable-1.1";
|
||||
|
||||
src = fetchegg {
|
||||
name = "matchable";
|
||||
version = "1.1";
|
||||
sha256 = "084hm5dvbvgnpb32ispkp3hjili8z02hamln860r99jx68jx6j2v";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
||||
];
|
||||
};
|
||||
|
||||
r7rs = eggDerivation {
|
||||
name = "r7rs-1.0.5";
|
||||
|
||||
src = fetchegg {
|
||||
name = "r7rs";
|
||||
version = "1.0.5";
|
||||
sha256 = "0zyi1z4m1995hm2wfc5wpi8jjgxcwk03qknq5v2ygff3akxazsf6";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
matchable
|
||||
srfi-1
|
||||
srfi-13
|
||||
];
|
||||
};
|
||||
|
||||
memory-mapped-files = eggDerivation {
|
||||
name = "memory-mapped-files-0.4";
|
||||
|
||||
src = fetchegg {
|
||||
name = "memory-mapped-files";
|
||||
version = "0.4";
|
||||
sha256 = "0by3r18bj9fs0bs9w5czx84vssmr58br3x7pz1m3myb4mns3mpsc";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
||||
];
|
||||
};
|
||||
|
||||
message-digest-primitive = eggDerivation {
|
||||
name = "message-digest-primitive-4.3.2";
|
||||
|
||||
src = fetchegg {
|
||||
name = "message-digest-primitive";
|
||||
version = "4.3.2";
|
||||
sha256 = "1wfmyyp1fv0sz70m0rgzbhkiqgzjc15ppz7fwmpnxg12rvfzdvq0";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
check-errors
|
||||
];
|
||||
};
|
||||
|
||||
miscmacros = eggDerivation {
|
||||
name = "miscmacros-1.0";
|
||||
|
||||
src = fetchegg {
|
||||
name = "miscmacros";
|
||||
version = "1.0";
|
||||
sha256 = "0n2ia4ib4f18hcbkm5byph07ncyx61pcpfp2qr5zijf8ykp8nbvr";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
||||
];
|
||||
};
|
||||
|
||||
packrat = eggDerivation {
|
||||
name = "packrat-1.5";
|
||||
|
||||
src = fetchegg {
|
||||
name = "packrat";
|
||||
version = "1.5";
|
||||
sha256 = "0hfnh57a8yga3byrk8522al5wdj7dyz48lixvvcgnsn3vdy333hq";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
srfi-1
|
||||
];
|
||||
};
|
||||
|
||||
regex = eggDerivation {
|
||||
name = "regex-2.0";
|
||||
|
||||
src = fetchegg {
|
||||
name = "regex";
|
||||
version = "2.0";
|
||||
sha256 = "0qgqrrdr95yqggw8xyvb693nhizwqvf1fp9cjx9p3z80c4ih8j4j";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
||||
];
|
||||
};
|
||||
|
||||
sendfile = eggDerivation {
|
||||
name = "sendfile-1.8.3";
|
||||
|
||||
src = fetchegg {
|
||||
name = "sendfile";
|
||||
version = "1.8.3";
|
||||
sha256 = "0acmydjxlrbq7bdspmrzv9q9l3gh4xxnbpi5g1d5mz1g2mjwgm63";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
memory-mapped-files
|
||||
];
|
||||
};
|
||||
|
||||
sha2 = eggDerivation {
|
||||
name = "sha2-4.0.5";
|
||||
|
||||
src = fetchegg {
|
||||
name = "sha2";
|
||||
version = "4.0.5";
|
||||
sha256 = "020yc41gkpg2s48v5n1nnq02dii340yly2y1zsi71bbfbkai2vcs";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
message-digest-primitive
|
||||
];
|
||||
};
|
||||
|
||||
socket = eggDerivation {
|
||||
name = "socket-0.3.3";
|
||||
|
||||
src = fetchegg {
|
||||
name = "socket";
|
||||
version = "0.3.3";
|
||||
sha256 = "04wfxrwjizvf1jdpfqp3r7381rp9lscrm3z21ihq2dc2lfzjgrxw";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
srfi-13
|
||||
srfi-18
|
||||
foreigners
|
||||
feature-test
|
||||
];
|
||||
};
|
||||
|
||||
spiffy = eggDerivation {
|
||||
name = "spiffy-6.3";
|
||||
|
||||
src = fetchegg {
|
||||
name = "spiffy";
|
||||
version = "6.3";
|
||||
sha256 = "0f22gfdyysgbm3q6cjibn1z1yavks3imxi1mxcyfmms3x91k5k3c";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
intarweb
|
||||
uri-common
|
||||
uri-generic
|
||||
sendfile
|
||||
srfi-1
|
||||
srfi-13
|
||||
srfi-14
|
||||
srfi-18
|
||||
];
|
||||
};
|
||||
|
||||
srfi-1 = eggDerivation {
|
||||
name = "srfi-1-0.5.1";
|
||||
|
||||
src = fetchegg {
|
||||
name = "srfi-1";
|
||||
version = "0.5.1";
|
||||
sha256 = "15x0ajdkw5gb3vgs8flzh5g0pzl3wmcpf11iimlm67mw6fxc8p7j";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
||||
];
|
||||
};
|
||||
|
||||
srfi-13 = eggDerivation {
|
||||
name = "srfi-13-0.3.1";
|
||||
|
||||
src = fetchegg {
|
||||
name = "srfi-13";
|
||||
version = "0.3.1";
|
||||
sha256 = "12ryxs3w3las0wjdh0yp52g1xmyq1fb48xi3i26l5a9sfx7gbilp";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
srfi-14
|
||||
];
|
||||
};
|
||||
|
||||
srfi-14 = eggDerivation {
|
||||
name = "srfi-14-0.2.1";
|
||||
|
||||
src = fetchegg {
|
||||
name = "srfi-14";
|
||||
version = "0.2.1";
|
||||
sha256 = "0gc33cx4xll9vsf7fm8jvn3gc0604kn3bbi6jfn6xscqp86kqb9p";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
||||
];
|
||||
};
|
||||
|
||||
srfi-145 = eggDerivation {
|
||||
name = "srfi-145-0.1";
|
||||
|
||||
src = fetchegg {
|
||||
name = "srfi-145";
|
||||
version = "0.1";
|
||||
sha256 = "1r4278xhpmm8gww64j6akpyv3qjnn14b6nsisyb9qm7yx3pkpim9";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
||||
];
|
||||
};
|
||||
|
||||
srfi-189 = eggDerivation {
|
||||
name = "srfi-189-0.1";
|
||||
|
||||
src = fetchegg {
|
||||
name = "srfi-189";
|
||||
version = "0.1";
|
||||
sha256 = "1nmrywpi9adi5mm1vcbxxsgw0j3v6m7s4j1mii7icj83xn81cgvx";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
r7rs
|
||||
srfi-1
|
||||
srfi-145
|
||||
];
|
||||
};
|
||||
|
||||
srfi-18 = eggDerivation {
|
||||
name = "srfi-18-0.1.6";
|
||||
|
||||
src = fetchegg {
|
||||
name = "srfi-18";
|
||||
version = "0.1.6";
|
||||
sha256 = "00lykm5lqbrcxl3dab9dqwimpgm36v4ys2957k3vdlg4xdb1abfa";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
||||
];
|
||||
};
|
||||
|
||||
srfi-37 = eggDerivation {
|
||||
name = "srfi-37-1.4";
|
||||
|
||||
src = fetchegg {
|
||||
name = "srfi-37";
|
||||
version = "1.4";
|
||||
sha256 = "17f593497n70gldkj6iab6ilgryiqar051v6azn1szhnm1lk7dwd";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
||||
];
|
||||
};
|
||||
|
||||
srfi-69 = eggDerivation {
|
||||
name = "srfi-69-0.4.1";
|
||||
|
||||
src = fetchegg {
|
||||
name = "srfi-69";
|
||||
version = "0.4.1";
|
||||
sha256 = "1l102kppncz27acsr4jyi46q0r7g2lb6gdbkd6p3h1xmvwcnk2hl";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
||||
];
|
||||
};
|
||||
|
||||
string-utils = eggDerivation {
|
||||
name = "string-utils-2.4.0";
|
||||
|
||||
src = fetchegg {
|
||||
name = "string-utils";
|
||||
version = "2.4.0";
|
||||
sha256 = "09m3s0p199r2nmvc8qnqvbxjbq967gvwqrzp236wsw3hdcil6p8v";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
srfi-1
|
||||
srfi-13
|
||||
srfi-69
|
||||
miscmacros
|
||||
check-errors
|
||||
utf8
|
||||
];
|
||||
};
|
||||
|
||||
symbol-utils = eggDerivation {
|
||||
name = "symbol-utils-2.1.0";
|
||||
|
||||
src = fetchegg {
|
||||
name = "symbol-utils";
|
||||
version = "2.1.0";
|
||||
sha256 = "17nq8bj18f3bbf3mdfx1m8agy97izn1xcl8ymvgvvd5g384b2xil";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
check-errors
|
||||
];
|
||||
};
|
||||
|
||||
tcp6 = eggDerivation {
|
||||
name = "tcp6-0.2.1";
|
||||
|
||||
src = fetchegg {
|
||||
name = "tcp6";
|
||||
version = "0.2.1";
|
||||
sha256 = "14dynnjgac28f46v781hi6kam326q6rh57pf0pvl0chdva4hlf3q";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
socket
|
||||
srfi-1
|
||||
];
|
||||
};
|
||||
|
||||
uri-common = eggDerivation {
|
||||
name = "uri-common-2.0";
|
||||
|
||||
src = fetchegg {
|
||||
name = "uri-common";
|
||||
version = "2.0";
|
||||
sha256 = "07rq7ppkyk3i85vqspc048pnj6gmjhj236z00chslli9xybqkgrd";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
uri-generic
|
||||
defstruct
|
||||
matchable
|
||||
srfi-1
|
||||
srfi-13
|
||||
srfi-14
|
||||
];
|
||||
};
|
||||
|
||||
uri-generic = eggDerivation {
|
||||
name = "uri-generic-3.2";
|
||||
|
||||
src = fetchegg {
|
||||
name = "uri-generic";
|
||||
version = "3.2";
|
||||
sha256 = "1lpvnk1mnhmrga149km7ygpy7fkq7z2pvw0mvpx2aql03l8gpdsj";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
matchable
|
||||
srfi-1
|
||||
srfi-14
|
||||
];
|
||||
};
|
||||
|
||||
utf8 = eggDerivation {
|
||||
name = "utf8-3.6.2";
|
||||
|
||||
src = fetchegg {
|
||||
name = "utf8";
|
||||
version = "3.6.2";
|
||||
sha256 = "10wzp3qmwik4gx3hhaqm2n83wza0rllgy57363h5ccv8fga5nnm6";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
srfi-69
|
||||
iset
|
||||
regex
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
11
pkgs/development/compilers/chicken/5/eggs.scm
Normal file
11
pkgs/development/compilers/chicken/5/eggs.scm
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
;; Eggs used by egg2nix
|
||||
args
|
||||
matchable
|
||||
apropos
|
||||
spiffy
|
||||
json
|
||||
tcp6
|
||||
sha2
|
||||
|
||||
;; other eggs to include in nixpkgs
|
||||
srfi-189
|
||||
10
pkgs/development/compilers/chicken/5/fetchegg/builder.sh
Normal file
10
pkgs/development/compilers/chicken/5/fetchegg/builder.sh
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
source $stdenv/setup
|
||||
|
||||
header "exporting egg ${eggName} (version $version) into $out"
|
||||
|
||||
mkdir -p $out
|
||||
CHICKEN_EGG_CACHE=. chicken-install -r "${eggName}:${version}"
|
||||
rm ${eggName}/{STATUS,TIMESTAMP}
|
||||
cp -r ${eggName}/* $out/
|
||||
|
||||
stopNest
|
||||
25
pkgs/development/compilers/chicken/5/fetchegg/default.nix
Normal file
25
pkgs/development/compilers/chicken/5/fetchegg/default.nix
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
# Fetches a chicken egg from henrietta using `chicken-install -r'
|
||||
# See: http://wiki.call-cc.org/chicken-projects/egg-index-5.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";
|
||||
builder = ./builder.sh;
|
||||
nativeBuildInputs = [ chicken ];
|
||||
|
||||
outputHashAlgo = "sha256";
|
||||
outputHashMode = "recursive";
|
||||
outputHash = sha256;
|
||||
|
||||
inherit version;
|
||||
|
||||
eggName = name;
|
||||
|
||||
impureEnvVars = lib.fetchers.proxyImpureEnvVars;
|
||||
}
|
||||
|
||||
2
pkgs/development/compilers/chicken/5/overrides.nix
Normal file
2
pkgs/development/compilers/chicken/5/overrides.nix
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
{
|
||||
}
|
||||
6
pkgs/development/compilers/chicken/5/setup-hook.sh
Normal file
6
pkgs/development/compilers/chicken/5/setup-hook.sh
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
addChickenRepositoryPath() {
|
||||
addToSearchPathWithCustomDelimiter : CHICKEN_REPOSITORY_PATH "$1/lib/chicken/11"
|
||||
addToSearchPathWithCustomDelimiter : CHICKEN_INCLUDE_PATH "$1/share"
|
||||
}
|
||||
|
||||
addEnvHooks "$targetOffset" addChickenRepositoryPath
|
||||
Loading…
Add table
Add a link
Reference in a new issue