From 36c5ec58c48ca751fb80aec4d737b6f39a6f6956 Mon Sep 17 00:00:00 2001 From: Moritz Ulrich Date: Tue, 14 Oct 2014 00:41:03 +0200 Subject: [PATCH] New package: egg2nix. Generates nix-expressions from Chicken Scheme Eggs. --- .../tools/egg2nix/chicken-eggs.nix | 361 ++++++++++++++++++ .../tools/egg2nix/chicken-eggs.scm | 6 + pkgs/development/tools/egg2nix/default.nix | 32 ++ pkgs/top-level/all-packages.nix | 3 + 4 files changed, 402 insertions(+) create mode 100644 pkgs/development/tools/egg2nix/chicken-eggs.nix create mode 100644 pkgs/development/tools/egg2nix/chicken-eggs.scm create mode 100644 pkgs/development/tools/egg2nix/default.nix diff --git a/pkgs/development/tools/egg2nix/chicken-eggs.nix b/pkgs/development/tools/egg2nix/chicken-eggs.nix new file mode 100644 index 000000000000..3e7127ac3cbd --- /dev/null +++ b/pkgs/development/tools/egg2nix/chicken-eggs.nix @@ -0,0 +1,361 @@ +{ pkgs, stdenv }: +rec { +inherit (pkgs) eggDerivation fetchegg; + +versions = eggDerivation { + name = "versions-1.15"; + + src = fetchegg { + name = "versions"; + version = "1.15"; + sha256 = "0qs9yq0jvz9cfd2vwvf1ya8wxxxqghhai57x0w3ywi0h4afbqivm"; + }; + + buildInputs = [ + eggdoc + ]; +}; + + +matchable = eggDerivation { + name = "matchable-3.3"; + + src = fetchegg { + name = "matchable"; + version = "3.3"; + sha256 = "07y3lpzgm4djiwi9y2adc796f9kwkmdr28fkfkw65syahdax8990"; + }; + + 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 + ]; +}; + + +sxml-transforms = eggDerivation { + name = "sxml-transforms-1.4.1"; + + src = fetchegg { + name = "sxml-transforms"; + version = "1.4.1"; + sha256 = "1igm3h1nm1i5mwm2akk105v5k96azjm1vnl637l3l5w2yycc76a2"; + }; + + buildInputs = [ + + ]; +}; + + +eggdoc = eggDerivation { + name = "eggdoc-1.3.1"; + + src = fetchegg { + name = "eggdoc"; + version = "1.3.1"; + sha256 = "17ypr5sl2vnnzqxipybmjkm7d5wlsbp7fyq25qr6phgil8axafww"; + }; + + buildInputs = [ + sxml-transforms + ]; +}; + + +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 = [ + + ]; +}; + + +check-errors = eggDerivation { + name = "check-errors-1.13.0"; + + src = fetchegg { + name = "check-errors"; + version = "1.13.0"; + sha256 = "12a0sn82n98jybh72zb39fdddmr5k4785xglxb16750fhy8rmjwi"; + }; + + buildInputs = [ + setup-helper + ]; +}; + + +synch = eggDerivation { + name = "synch-2.1.2"; + + src = fetchegg { + name = "synch"; + version = "2.1.2"; + sha256 = "1m9mnbq0m5jsxmd1a3rqpwpxj0l1b7vn1fknvxycc047pmlcyl00"; + }; + + buildInputs = [ + setup-helper + check-errors + ]; +}; + + +record-variants = eggDerivation { + name = "record-variants-0.5.1"; + + src = fetchegg { + name = "record-variants"; + version = "0.5.1"; + sha256 = "15wgysxkm8m4hx9nhhw9akchzipdnqc7yj3qd3zn0z7sxg4sld1h"; + }; + + buildInputs = [ + + ]; +}; + + +miscmacros = eggDerivation { + name = "miscmacros-2.96"; + + src = fetchegg { + name = "miscmacros"; + version = "2.96"; + sha256 = "1ajdgjrni10i2hmhcp4rawnxajjxry3kmq1krdmah4sf0kjrgajc"; + }; + + buildInputs = [ + + ]; +}; + + +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 + ]; +}; + + +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 + ]; +}; + + +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 + ]; +}; + + +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 + ]; +}; + + +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 + ]; +}; + + +md5 = eggDerivation { + name = "md5-3.1.0"; + + src = fetchegg { + name = "md5"; + version = "3.1.0"; + sha256 = "0bka43nx8x9b0b079qpvml2fl20km19ny0qjmhwzlh6rwmzazj2a"; + }; + + buildInputs = [ + message-digest + ]; +}; + + +defstruct = eggDerivation { + name = "defstruct-1.6"; + + src = fetchegg { + name = "defstruct"; + version = "1.6"; + sha256 = "0lsgl32nmb5hxqiii4r3292cx5vqh50kp6v062nfiyid9lhrj0li"; + }; + + buildInputs = [ + + ]; +}; + + +uri-generic = eggDerivation { + name = "uri-generic-2.41"; + + src = fetchegg { + name = "uri-generic"; + version = "2.41"; + sha256 = "1r5jbzjllbnmhm5n0m3fcx0g6dc2c2jzp1dcndkfmxz0cl99zxac"; + }; + + buildInputs = [ + matchable + defstruct + ]; +}; + + +uri-common = eggDerivation { + name = "uri-common-1.4"; + + src = fetchegg { + name = "uri-common"; + version = "1.4"; + sha256 = "01ds1gixcn4rz657x3hr4rhw2496hsjff42ninw0k39l8i1cbh7c"; + }; + + buildInputs = [ + uri-generic + defstruct + matchable + ]; +}; + + +base64 = eggDerivation { + name = "base64-3.3.1"; + + src = fetchegg { + name = "base64"; + version = "3.3.1"; + sha256 = "0wmldiwwg1jpcn07wb906nc53si5j7sa83wgyq643xzqcx4v4x1d"; + }; + + buildInputs = [ + + ]; +}; + + +intarweb = eggDerivation { + name = "intarweb-1.3"; + + src = fetchegg { + name = "intarweb"; + version = "1.3"; + sha256 = "0izlby78c25py29bdcbc0vapb6h7xgchqrzi6i51d0rb3mnwy88h"; + }; + + buildInputs = [ + defstruct + uri-common + base64 + ]; +}; + +} + + diff --git a/pkgs/development/tools/egg2nix/chicken-eggs.scm b/pkgs/development/tools/egg2nix/chicken-eggs.scm new file mode 100644 index 000000000000..119b06703259 --- /dev/null +++ b/pkgs/development/tools/egg2nix/chicken-eggs.scm @@ -0,0 +1,6 @@ +( + ;; Eggs used by egg2nix + versions + matchable + http-client + ) diff --git a/pkgs/development/tools/egg2nix/default.nix b/pkgs/development/tools/egg2nix/default.nix new file mode 100644 index 000000000000..f3312cf3e0f7 --- /dev/null +++ b/pkgs/development/tools/egg2nix/default.nix @@ -0,0 +1,32 @@ +{ stdenv, eggDerivation, fetchurl, chickenEggs }: + +# Note: This mostly reimplements the default.nix already contained in +# the tarball. Is there a nicer way than duplicating code? + +eggDerivation { + src = fetchurl { + url = "https://github.com/the-kenny/egg2nix/archive/0.1.tar.gz"; + sha256 = "0x1vg70rwvd4dbgp8wynlff36cnq1h9ncpag0xgn5jq0miqfr57j"; + }; + + name = "egg2nix-0.1"; + buildInputs = with chickenEggs; [ + versions matchable http-client + ]; + + installPhase = '' + mkdir -p $out/bin/ + mv egg2nix.scm $out/bin/egg2nix + chmod +x $out/bin/egg2nix + + runHook postInstall #important - wraps the stuff in $out/bin/ + ''; + + 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 ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 8fc0dbe17316..77d489b9b0d2 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2799,6 +2799,9 @@ let bootstrap-chicken = chicken.override { bootstrap-chicken = null; }; }; + chickenEggs = callPackage ../development/tools/egg2nix/chicken-eggs.nix { }; + egg2nix = callPackage ../development/tools/egg2nix {}; + ccl = builderDefsPackage ../development/compilers/ccl {}; clang = wrapClang llvmPackages.clang;