mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-21 05:00:16 +00:00
Merge pull request #4682 from the-kenny/chicken-eggs
Full support for CHICKEN eggs in Nix
This commit is contained in:
commit
83e59960b6
9
pkgs/build-support/fetchegg/builder.sh
Normal file
9
pkgs/build-support/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
|
28
pkgs/build-support/fetchegg/default.nix
Normal file
28
pkgs/build-support/fetchegg/default.nix
Normal file
|
@ -0,0 +1,28 @@
|
|||
# Fetches a chicken egg from henrietta using `chicken-install -r'
|
||||
# See: http://wiki.call-cc.org/chicken-projects/egg-index-4.html
|
||||
|
||||
{ stdenv, chicken }:
|
||||
{ name, version, md5 ? "", sha256 ? "" }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "chicken-${name}-export";
|
||||
builder = ./builder.sh;
|
||||
buildInputs = [ chicken ];
|
||||
|
||||
outputHashAlgo = if sha256 == "" then "md5" else "sha256";
|
||||
outputHashMode = "recursive";
|
||||
outputHash = if sha256 == "" then md5 else sha256;
|
||||
|
||||
inherit version;
|
||||
|
||||
eggName = name;
|
||||
|
||||
impureEnvVars = [
|
||||
# We borrow these environment variables from the caller to allow
|
||||
# easy proxy configuration. This is impure, but a fixed-output
|
||||
# derivation like fetchurl is allowed to do so since its result is
|
||||
# by definition pure.
|
||||
"http_proxy" "https_proxy" "ftp_proxy" "all_proxy" "no_proxy"
|
||||
];
|
||||
}
|
||||
|
|
@ -0,0 +1,130 @@
|
|||
From 752dff853186dc334c519a86fa92f087795fea02 Mon Sep 17 00:00:00 2001
|
||||
From: Moritz Heidkamp <moritz.heidkamp@bevuta.com>
|
||||
Date: Wed, 1 Oct 2014 22:41:30 +0200
|
||||
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'.
|
||||
---
|
||||
chicken-install.scm | 11 +++++++----
|
||||
chicken.import.scm | 1 +
|
||||
eval.scm | 37 +++++++++++++++++++++++++++++++------
|
||||
3 files changed, 39 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/chicken-install.scm b/chicken-install.scm
|
||||
index 2ef6ef4..b5c6bf8 100644
|
||||
--- a/chicken-install.scm
|
||||
+++ b/chicken-install.scm
|
||||
@@ -109,10 +109,10 @@
|
||||
(define *show-foreign-depends* #f)
|
||||
(define *hacks* '())
|
||||
|
||||
- (define (repo-path)
|
||||
+ (define (repo-paths)
|
||||
(if (and *cross-chicken* (not *host-extension*))
|
||||
- (make-pathname C_TARGET_LIB_HOME (sprintf "chicken/~a" C_BINARY_VERSION))
|
||||
- (repository-path)))
|
||||
+ (list (make-pathname C_TARGET_LIB_HOME (sprintf "chicken/~a" C_BINARY_VERSION)))
|
||||
+ (cons (repository-path) (repository-extra-paths))))
|
||||
|
||||
(define (get-prefix #!optional runtime)
|
||||
(cond ((and *cross-chicken*
|
||||
@@ -757,7 +757,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 baa7316..2839b16 100644
|
||||
--- a/chicken.import.scm
|
||||
+++ b/chicken.import.scm
|
||||
@@ -201,6 +201,7 @@
|
||||
repl
|
||||
repl-prompt
|
||||
repository-path
|
||||
+ repository-extra-paths
|
||||
require
|
||||
reset
|
||||
reset-handler
|
||||
diff --git a/eval.scm b/eval.scm
|
||||
index bbcd86c..838588d 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
|
||||
@@ -1180,6 +1181,25 @@
|
||||
|
||||
(define repository-path ##sys#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
|
||||
@@ -1197,6 +1217,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)
|
||||
@@ -1256,12 +1277,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.0
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
{ stdenv, fetchurl }:
|
||||
{ stdenv, fetchurl, makeWrapper, bootstrap-chicken ? null }:
|
||||
|
||||
let
|
||||
version = "4.9.0.1";
|
||||
|
@ -8,18 +8,57 @@ let
|
|||
else if isBSD then "bsd"
|
||||
else if isSunOS then "solaris"
|
||||
else "linux"; # Should be a sane default
|
||||
lib = stdenv.lib;
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
name = "chicken-${version}";
|
||||
|
||||
binaryVersion = 7;
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://code.call-cc.org/releases/4.9.0/chicken-${version}.tar.gz";
|
||||
sha256 = "0598mar1qswfd8hva9nqs88zjn02lzkqd8fzdd21dz1nki1prpq4";
|
||||
};
|
||||
|
||||
setupHook = lib.ifEnable (bootstrap-chicken != null) ./setup-hook.sh;
|
||||
|
||||
buildFlags = "PLATFORM=${platform} PREFIX=$(out) VARDIR=$(out)/var/lib";
|
||||
installFlags = "PLATFORM=${platform} PREFIX=$(out) VARDIR=$(out)/var/lib";
|
||||
|
||||
# We need a bootstrap-chicken to regenerate the c-files after
|
||||
# applying a patch to add support for CHICKEN_REPOSITORY_EXTRA
|
||||
patches = lib.ifEnable (bootstrap-chicken != null) [
|
||||
./0001-Introduce-CHICKEN_REPOSITORY_EXTRA.patch
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
makeWrapper
|
||||
] ++ (lib.ifEnable (bootstrap-chicken != null) [
|
||||
bootstrap-chicken
|
||||
]);
|
||||
|
||||
preBuild = lib.ifEnable (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 $buildFlags
|
||||
|
||||
mv build-backup/* .
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
for f in $out/bin/*
|
||||
do
|
||||
wrapProgram $f \
|
||||
--prefix PATH : ${stdenv.gcc}/bin
|
||||
done
|
||||
'';
|
||||
|
||||
# TODO: Assert csi -R files -p '(pathname-file (repository-path))' == binaryVersion
|
||||
|
||||
meta = {
|
||||
homepage = http://www.call-cc.org/;
|
||||
license = "BSD";
|
||||
|
|
46
pkgs/development/compilers/chicken/eggDerivation.nix
Normal file
46
pkgs/development/compilers/chicken/eggDerivation.nix
Normal file
|
@ -0,0 +1,46 @@
|
|||
{ stdenv, fetchegg, chicken, makeWrapper }:
|
||||
{ name, src
|
||||
, buildInputs ? []
|
||||
, chickenInstallFlags ? []
|
||||
, cscOptions ? []
|
||||
, ...} @ args:
|
||||
|
||||
let
|
||||
libPath = "${chicken}/var/lib/chicken/${toString chicken.binaryVersion}/";
|
||||
overrides = import ./overrides.nix;
|
||||
lib = stdenv.lib;
|
||||
baseName = (builtins.parseDrvName name).name;
|
||||
override = if builtins.hasAttr baseName overrides
|
||||
then
|
||||
builtins.getAttr baseName overrides
|
||||
else
|
||||
{};
|
||||
in
|
||||
stdenv.mkDerivation ({
|
||||
name = "chicken-${name}";
|
||||
propagatedBuildInputs = buildInputs ++ [ chicken ];
|
||||
propagatedUserEnvPkgs = buildInputs ++ [ chicken ];
|
||||
buildInputs = [ makeWrapper ];
|
||||
|
||||
CSC_OPTIONS = stdenv.lib.concatStringsSep " " cscOptions;
|
||||
|
||||
CHICKEN_REPOSITORY = libPath;
|
||||
CHICKEN_INSTALL_PREFIX = "$out";
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
chicken-install -p $out ${stdenv.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)
|
10
pkgs/development/compilers/chicken/overrides.nix
Normal file
10
pkgs/development/compilers/chicken/overrides.nix
Normal file
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
setup-helper = {
|
||||
preBuild = ''
|
||||
substituteInPlace setup-helper.setup \
|
||||
--replace "(chicken-home)" \"$out/share/\"
|
||||
|
||||
cat setup-helper.setup
|
||||
'';
|
||||
};
|
||||
}
|
7
pkgs/development/compilers/chicken/setup-hook.sh
Normal file
7
pkgs/development/compilers/chicken/setup-hook.sh
Normal file
|
@ -0,0 +1,7 @@
|
|||
addChickenRepositoryPath() {
|
||||
addToSearchPathWithCustomDelimiter : CHICKEN_REPOSITORY_EXTRA "$1/lib/chicken/7/"
|
||||
# addToSearchPathWithCustomDelimiter \; CHICKEN_INCLUDE_PATH "$1/share/"
|
||||
export CHICKEN_INCLUDE_PATH="$1/share;$CHICKEN_INCLUDE_PATH"
|
||||
}
|
||||
|
||||
envHooks=(${envHooks[@]} addChickenRepositoryPath)
|
296
pkgs/development/tools/egg2nix/chicken-eggs.nix
Normal file
296
pkgs/development/tools/egg2nix/chicken-eggs.nix
Normal file
|
@ -0,0 +1,296 @@
|
|||
{ pkgs, stdenv }:
|
||||
rec {
|
||||
inherit (pkgs) eggDerivation fetchegg;
|
||||
|
||||
base64 = eggDerivation {
|
||||
name = "base64-3.3.1";
|
||||
|
||||
src = fetchegg {
|
||||
name = "base64";
|
||||
version = "3.3.1";
|
||||
sha256 = "0wmldiwwg1jpcn07wb906nc53si5j7sa83wgyq643xzqcx4v4x1d";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
||||
];
|
||||
};
|
||||
|
||||
blob-utils = eggDerivation {
|
||||
name = "blob-utils-1.0.3";
|
||||
|
||||
src = fetchegg {
|
||||
name = "blob-utils";
|
||||
version = "1.0.3";
|
||||
sha256 = "17vdn02fnxnjx5ixgqimln93lqvzyq4y9w02fw7xnbdcjzqm0xml";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
setup-helper
|
||||
string-utils
|
||||
];
|
||||
};
|
||||
|
||||
check-errors = eggDerivation {
|
||||
name = "check-errors-1.13.0";
|
||||
|
||||
src = fetchegg {
|
||||
name = "check-errors";
|
||||
version = "1.13.0";
|
||||
sha256 = "12a0sn82n98jybh72zb39fdddmr5k4785xglxb16750fhy8rmjwi";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
setup-helper
|
||||
];
|
||||
};
|
||||
|
||||
defstruct = eggDerivation {
|
||||
name = "defstruct-1.6";
|
||||
|
||||
src = fetchegg {
|
||||
name = "defstruct";
|
||||
version = "1.6";
|
||||
sha256 = "0lsgl32nmb5hxqiii4r3292cx5vqh50kp6v062nfiyid9lhrj0li";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
||||
];
|
||||
};
|
||||
|
||||
http-client = eggDerivation {
|
||||
name = "http-client-0.7.1";
|
||||
|
||||
src = fetchegg {
|
||||
name = "http-client";
|
||||
version = "0.7.1";
|
||||
sha256 = "1s03zgmb7kb99ld0f2ylqgicrab9qgza53fkgsqvg7bh5njmzhxr";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
intarweb
|
||||
uri-common
|
||||
message-digest
|
||||
md5
|
||||
string-utils
|
||||
sendfile
|
||||
];
|
||||
};
|
||||
|
||||
intarweb = eggDerivation {
|
||||
name = "intarweb-1.3";
|
||||
|
||||
src = fetchegg {
|
||||
name = "intarweb";
|
||||
version = "1.3";
|
||||
sha256 = "0izlby78c25py29bdcbc0vapb6h7xgchqrzi6i51d0rb3mnwy88h";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
defstruct
|
||||
uri-common
|
||||
base64
|
||||
];
|
||||
};
|
||||
|
||||
lookup-table = eggDerivation {
|
||||
name = "lookup-table-1.13.5";
|
||||
|
||||
src = fetchegg {
|
||||
name = "lookup-table";
|
||||
version = "1.13.5";
|
||||
sha256 = "1nzly6rhynawlvzlyilk8z8cxz57cf9n5iv20glkhh28pz2izmrb";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
setup-helper
|
||||
check-errors
|
||||
miscmacros
|
||||
record-variants
|
||||
synch
|
||||
];
|
||||
};
|
||||
|
||||
matchable = eggDerivation {
|
||||
name = "matchable-3.3";
|
||||
|
||||
src = fetchegg {
|
||||
name = "matchable";
|
||||
version = "3.3";
|
||||
sha256 = "07y3lpzgm4djiwi9y2adc796f9kwkmdr28fkfkw65syahdax8990";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
||||
];
|
||||
};
|
||||
|
||||
md5 = eggDerivation {
|
||||
name = "md5-3.1.0";
|
||||
|
||||
src = fetchegg {
|
||||
name = "md5";
|
||||
version = "3.1.0";
|
||||
sha256 = "0bka43nx8x9b0b079qpvml2fl20km19ny0qjmhwzlh6rwmzazj2a";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
message-digest
|
||||
];
|
||||
};
|
||||
|
||||
message-digest = eggDerivation {
|
||||
name = "message-digest-3.1.0";
|
||||
|
||||
src = fetchegg {
|
||||
name = "message-digest";
|
||||
version = "3.1.0";
|
||||
sha256 = "1w6bax19dwgih78vcimiws0rja7qsd8hmbm6qqg2hf9cw3vab21s";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
setup-helper
|
||||
miscmacros
|
||||
check-errors
|
||||
variable-item
|
||||
blob-utils
|
||||
string-utils
|
||||
];
|
||||
};
|
||||
|
||||
miscmacros = eggDerivation {
|
||||
name = "miscmacros-2.96";
|
||||
|
||||
src = fetchegg {
|
||||
name = "miscmacros";
|
||||
version = "2.96";
|
||||
sha256 = "1ajdgjrni10i2hmhcp4rawnxajjxry3kmq1krdmah4sf0kjrgajc";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
||||
];
|
||||
};
|
||||
|
||||
record-variants = eggDerivation {
|
||||
name = "record-variants-0.5.1";
|
||||
|
||||
src = fetchegg {
|
||||
name = "record-variants";
|
||||
version = "0.5.1";
|
||||
sha256 = "15wgysxkm8m4hx9nhhw9akchzipdnqc7yj3qd3zn0z7sxg4sld1h";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
||||
];
|
||||
};
|
||||
|
||||
sendfile = eggDerivation {
|
||||
name = "sendfile-1.7.29";
|
||||
|
||||
src = fetchegg {
|
||||
name = "sendfile";
|
||||
version = "1.7.29";
|
||||
sha256 = "1dc02cbkx5kixhbqjy26g6gs680vy7krc9qis1p1v4aa0b2lgj7k";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
||||
];
|
||||
};
|
||||
|
||||
setup-helper = eggDerivation {
|
||||
name = "setup-helper-1.5.4";
|
||||
|
||||
src = fetchegg {
|
||||
name = "setup-helper";
|
||||
version = "1.5.4";
|
||||
sha256 = "1k644y0md2isdcvazqfm4nyc8rh3dby6b0j3r4na4w8ryspqp6gj";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
||||
];
|
||||
};
|
||||
|
||||
string-utils = eggDerivation {
|
||||
name = "string-utils-1.2.4";
|
||||
|
||||
src = fetchegg {
|
||||
name = "string-utils";
|
||||
version = "1.2.4";
|
||||
sha256 = "07alvghg0dahilrm4jg44bndl0x69sv1zbna9l20cbdvi35i0jp1";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
setup-helper
|
||||
miscmacros
|
||||
lookup-table
|
||||
check-errors
|
||||
];
|
||||
};
|
||||
|
||||
synch = eggDerivation {
|
||||
name = "synch-2.1.2";
|
||||
|
||||
src = fetchegg {
|
||||
name = "synch";
|
||||
version = "2.1.2";
|
||||
sha256 = "1m9mnbq0m5jsxmd1a3rqpwpxj0l1b7vn1fknvxycc047pmlcyl00";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
setup-helper
|
||||
check-errors
|
||||
];
|
||||
};
|
||||
|
||||
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.41";
|
||||
|
||||
src = fetchegg {
|
||||
name = "uri-generic";
|
||||
version = "2.41";
|
||||
sha256 = "1r5jbzjllbnmhm5n0m3fcx0g6dc2c2jzp1dcndkfmxz0cl99zxac";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
matchable
|
||||
defstruct
|
||||
];
|
||||
};
|
||||
|
||||
variable-item = eggDerivation {
|
||||
name = "variable-item-1.3.1";
|
||||
|
||||
src = fetchegg {
|
||||
name = "variable-item";
|
||||
version = "1.3.1";
|
||||
sha256 = "19b3mhb8kr892sz9yyzq79l0vv28dgilw9cf415kj6aq16yp4d5n";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
setup-helper
|
||||
check-errors
|
||||
];
|
||||
};
|
||||
}
|
||||
|
5
pkgs/development/tools/egg2nix/chicken-eggs.scm
Normal file
5
pkgs/development/tools/egg2nix/chicken-eggs.scm
Normal file
|
@ -0,0 +1,5 @@
|
|||
;; Eggs used by egg2nix
|
||||
http-client
|
||||
intarweb
|
||||
matchable
|
||||
uri-common
|
27
pkgs/development/tools/egg2nix/default.nix
Normal file
27
pkgs/development/tools/egg2nix/default.nix
Normal file
|
@ -0,0 +1,27 @@
|
|||
{ stdenv, eggDerivation, fetchurl, chickenEggs }:
|
||||
|
||||
# Note: This mostly reimplements the default.nix already contained in
|
||||
# the tarball. Is there a nicer way than duplicating code?
|
||||
|
||||
let
|
||||
version = "0.4";
|
||||
in
|
||||
eggDerivation {
|
||||
src = fetchurl {
|
||||
url = "https://github.com/the-kenny/egg2nix/archive/${version}.tar.gz";
|
||||
sha256 = "1xn79fgqxg0i47asjah31zi56v60is1n8d0cy8w4gbj0i41z7pvm";
|
||||
};
|
||||
|
||||
name = "egg2nix-${version}";
|
||||
buildInputs = with chickenEggs; [
|
||||
matchable http-client
|
||||
];
|
||||
|
||||
meta = {
|
||||
description = "Generate nix-expression from CHICKEN scheme eggs";
|
||||
homepage = https://github.com/the-kenny/egg2nix;
|
||||
license = stdenv.lib.licenses.bsd3;
|
||||
platforms = stdenv.lib.platforms.unix;
|
||||
maintainers = [ stdenv.lib.maintainers.the-kenny ];
|
||||
};
|
||||
}
|
|
@ -2831,7 +2831,17 @@ let
|
|||
|
||||
bigloo = callPackage ../development/compilers/bigloo { };
|
||||
|
||||
chicken = callPackage ../development/compilers/chicken { };
|
||||
fetchegg = callPackage ../build-support/fetchegg { };
|
||||
|
||||
eggDerivation = callPackage ../development/compilers/chicken/eggDerivation.nix { };
|
||||
|
||||
chicken = callPackage ../development/compilers/chicken {
|
||||
bootstrap-chicken = chicken.override { bootstrap-chicken = null; };
|
||||
};
|
||||
|
||||
egg2nix = callPackage ../development/tools/egg2nix {
|
||||
chickenEggs = callPackage ../development/tools/egg2nix/chicken-eggs.nix { };
|
||||
};
|
||||
|
||||
ccl = builderDefsPackage ../development/compilers/ccl {};
|
||||
|
||||
|
|
Loading…
Reference in a new issue