* Another sync with the trunk.

svn path=/nixpkgs/branches/stdenv-updates/; revision=15269
This commit is contained in:
Eelco Dolstra 2009-04-23 11:59:43 +00:00
commit f762b50991
151 changed files with 4866 additions and 3182 deletions

185
doc/language-support.xml Normal file
View File

@ -0,0 +1,185 @@
<chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xml:id="chap-meta">
<title>Support for specific programming languages</title>
<para>The <link linkend="chap-stdenv">standard build
environment</link> makes it easy to build typical Autotools-based
packages with very little code. Any other kind of package can be
accomodated by overriding the appropriate phases of
<literal>stdenv</literal>. However, there are specialised functions
in Nixpkgs to easily build packages for other programming languages,
such as Perl or Haskell. These are described in this chapter.</para>
<section><title>Perl</title>
<para>Nixpkgs provides a function <varname>buildPerlPackage</varname>,
a generic package builder function for any Perl package that has a
standard <varname>Makefile.PL</varname>. Its implemented in <link
xlink:href="https://svn.nixos.org/repos/nix/nixpkgs/trunk/pkgs/development/perl-modules/generic"><filename>pkgs/development/perl-modules/generic</filename></link>.</para>
<para>Perl packages from CPAN are defined in <link
xlink:href="https://svn.nixos.org/repos/nix/nixpkgs/trunk/pkgs/top-level/perl-packages.nix"><filename>pkgs/perl-packages.nix</filename></link>,
rather than <filename>pkgs/all-packages.nix</filename>. Most Perl
packages are so straight-forward to build that they are defined here
directly, rather than having a separate function for each package
called from <filename>perl-packages.nix</filename>. However, more
complicated packages should be put in a separate file, typically in
<filename>pkgs/development/perl-modules</filename>. Here is an
example of the former:
<programlisting>
ClassC3 = buildPerlPackage rec {
name = "Class-C3-0.21";
src = fetchurl {
url = "mirror://cpan/authors/id/F/FL/FLORA/${name}.tar.gz";
sha256 = "1bl8z095y4js66pwxnm7s853pi9czala4sqc743fdlnk27kq94gz";
};
};
</programlisting>
Note the use of <literal>mirror://cpan/</literal>, and the
<literal>${name}</literal> in the URL definition to ensure that the
name attribute is consistent with the source that were actually
downloading. Perl packages are made available in
<filename>all-packages.nix</filename> through the variable
<varname>perlPackages</varname>. For instance, if you have a package
that needs <varname>ClassC3</varname>, you would typically write
<programlisting>
foo = import ../path/to/foo.nix {
inherit stdenv fetchurl ...;
inherit (perlPackages) ClassC3;
};
</programlisting>
in <filename>all-packages.nix</filename>. You can test building a
Perl package as follows:
<screen>
$ nix-build -A perlPackages.ClassC3
</screen>
<varname>buildPerlPackage</varname> adds <literal>perl-</literal> to
the start of the name attribute, so the package above is actually
called <literal>perl-Class-C3-0.21</literal>. So to install it, you
can say:
<screen>
$ nix-env -i perl-Class-C3
</screen>
(Of course you can also install using the attribute name:
<literal>nix-env -i -A perlPackages.ClassC3</literal>.)</para>
<para>So what does <varname>buildPerlPackage</varname> do? It does
the following:
<orderedlist>
<listitem><para>In the configure phase, it calls <literal>perl
Makefile.PL</literal> to generate a Makefile. You can set the
variable <varname>makeMakerFlags</varname> to pass flags to
<filename>Makefile.PL</filename></para></listitem>
<listitem><para>It adds the contents of the <envar>PERL5LIB</envar>
environment variable to <literal>#! .../bin/perl</literal> line of
Perl scripts as <literal>-I<replaceable>dir</replaceable></literal>
flags. This ensures that a script can find its
dependencies.</para></listitem>
<listitem><para>In the fixup phase, it writes the propagated build
inputs (<varname>propagatedBuildInputs</varname>) to the file
<filename>$out/nix-support/propagated-user-env-packages</filename>.
<command>nix-env</command> recursively installs all packages listed
in this file when you install a package that has it. This ensures
that a Perl package can find its dependencies.</para></listitem>
</orderedlist>
</para>
<para><varname>buildPerlPackage</varname> is built on top of
<varname>stdenv</varname>, so everything can be customised in the
usual way. For instance, the <literal>BerkeleyDB</literal> module has
a <varname>preConfigure</varname> hook to generate a configuration
file used by <filename>Makefile.PL</filename>:
<programlisting>
{buildPerlPackage, fetchurl, db4}:
buildPerlPackage rec {
name = "BerkeleyDB-0.36";
src = fetchurl {
url = "mirror://cpan/authors/id/P/PM/PMQS/${name}.tar.gz";
sha256 = "07xf50riarb60l1h6m2dqmql8q5dij619712fsgw7ach04d8g3z1";
};
preConfigure = ''
echo "LIB = ${db4}/lib" > config.in
echo "INCLUDE = ${db4}/include" >> config.in
'';
}
</programlisting>
</para>
<para>Dependencies on other Perl packages can be specified in the
<varname>buildInputs</varname> and
<varname>propagatedBuildInputs</varname> attributes. If something is
exclusively a build-time dependency, use
<varname>buildInputs</varname>; if its (also) a runtime dependency,
use <varname>propagatedBuildInputs</varname>. For instance, this
builds a Perl module that has runtime dependencies on a bunch of other
modules:
<programlisting>
ClassC3Componentised = buildPerlPackage rec {
name = "Class-C3-Componentised-1.0004";
src = fetchurl {
url = "mirror://cpan/authors/id/A/AS/ASH/${name}.tar.gz";
sha256 = "0xql73jkcdbq4q9m0b0rnca6nrlvf5hyzy8is0crdk65bynvs8q1";
};
propagatedBuildInputs = [
ClassC3 ClassInspector TestException MROCompat
];
};
</programlisting>
</para>
</section>
<section><title>Python</title>
<para>TODO</para>
</section>
<section><title>Haskell</title>
<para>TODO</para>
</section>
<section><title>Java</title>
<para>TODO; Java support needs lots of improvement</para>
</section>
<section><title>TeX / LaTeX</title>
<para>* Special support for building TeX documents</para>
</section>
</chapter>

View File

@ -32,41 +32,7 @@
<xi:include href="quick-start.xml" />
<xi:include href="stdenv.xml" />
<xi:include href="meta.xml" />
<!-- outline -->
<chapter>
<title>Language Support</title>
<section>
<title>Perl</title>
<para>* Generic Perl builder</para>
</section>
<section>
<title>Python</title>
<para>* Wrapper generation</para>
</section>
<section>
<title>Haskell</title>
<para>TODO</para>
</section>
<section>
<title>Java</title>
<para>TODO; Java support needs lots of improvement</para>
</section>
<section>
<title>TeX / LaTeX</title>
<para>* Special support for building TeX documents</para>
</section>
</chapter>
<xi:include href="language-support.xml" />
<xi:include href="package-notes.xml" />

View File

@ -165,12 +165,60 @@ splashutils_15 = ...;</programlisting>
<!--============================================================-->
<section>
<title>X.org</title>
<para>* Expression is auto-generated</para>
<para>* How to update</para>
<title>X.org</title>
<para>The Nix expressions for the X.org packages reside in
<filename>pkgs/servers/x11/xorg/default.nix</filename>. This file is
automatically generated from lists of tarballs in an X.org
release. As such it should not be modified directly; rather, you
should modify the lists or the generator script.</para>
<para>The generator is invoked as follows:
<screen>
$ cd pkgs/servers/x11/xorg
$ cat tarballs-7.4.list extra.list old.list \
| perl ./generate-expr-from-tarballs.pl
</screen>
For each of the tarballs in the <filename>.list</filename> files, the
script downloads it, unpacks it, and searches its
<filename>configure.ac</filename> and <filename>*.pc.in</filename>
files for dependencies. This information is used to generate
<filename>default.nix</filename>. The generator caches downloaded
tarballs between runs. Pay close attention to the <literal>NOT FOUND:
<replaceable>name</replaceable></literal> messages at the end of the
run, since they may indicate missing dependencies. (Some might be
optional dependencies, however.)</para>
<para>A file like <filename>tarballs-7.4.list</filename> contains all
tarballs in a X.org release. It can be generated like this:
<screen>
$ export i="mirror://xorg/X11R7.4/src/everything/"
$ cat $(PRINT_PATH=1 nix-prefetch-url $i | tail -n 1) \
| perl -e 'while (&lt;>) { if (/(href|HREF)="([^"]*.bz2)"/) { print "$ENV{'i'}$2\n"; }; }' \
| sort > tarballs-7.4.list
</screen>
<filename>extra.list</filename> contains libraries that arent part of
X.org proper, but are closely related to it, such as
<literal>libxcb</literal>. <filename>old.list</filename> contains
some packages that were removed from X.org, but are still needed by
some people or by other packages (such as
<varname>imake</varname>).</para>
<para>If the expression for a package requires derivation attributes
that the generator cannot figure out automatically (say,
<varname>patches</varname> or a <varname>postInstall</varname> hook),
you should modify the generator script
(<varname>generate-expr-from-tarballs.pl</varname>).</para>
</section>
<!--============================================================-->
<section>

View File

@ -0,0 +1,40 @@
{ fetchurl, stdenv, ncurses }:
stdenv.mkDerivation rec {
name = "elvis-2.2_0";
src = fetchurl {
url = ftp://ftp.cs.pdx.edu/pub/elvis/elvis-2.2_0.tar.gz;
sha256 = "182fj9qzyq6cjq1r849gpam6nq9smwv9f9xwaq84961p56r6d14s";
};
buildInputs = [ ncurses ];
patchPhase = ''
sed -i s/-lcurses/-lncurses/ configure
'';
preConfigure = ''
ensureDir $out/share/man/man1
'';
installPhase = ''
ensureDir $out/bin $out/share/elvis $out/share/elvis/doc
cp elvis ref elvtags elvfmt $out/bin
cp -R data/* $out/share/elvis
cp doc/* $out/share/elvis/doc
ensureDir $out/share/man/man1
for a in doc/*.man; do
cp $a $out/share/man/man1/`basename $a .man`.1
done
'';
configureFlags = "--ioctl=termios";
meta = {
homepage = http://elvis.vi-editor.org/;
description = "A vi clone for Unix and other operating systems";
license = "free";
};
}

View File

@ -0,0 +1,26 @@
{cabal, gtk2hs, binary, parsec, regexPosix, utf8String, libedit, makeWrapper}:
cabal.mkDerivation (self : {
pname = "leksah";
version = "0.4.4.1";
sha256 = "092a8gi73jhalgs4ppg8ki761vwk3gdnjwlyd4chnahbv5i1wrjw";
# !!! The explicit libedit dependency shouldn't be necessary.
extraBuildInputs = [gtk2hs binary parsec regexPosix utf8String libedit makeWrapper];
preConfigure =
''
substituteInPlace leksah.cabal --replace 'Cabal ==1.6.0.1' 'Cabal >=1.6.0.1'
'';
postInstall =
''
wrapProgram $out/bin/leksah --prefix XDG_DATA_DIRS : ${gtk2hs.gtksourceview}/share
'';
meta = {
homepage = http://leksah.org/;
description = "An Integrated Development Environment for Haskell written in Haskell";
};
})

View File

@ -0,0 +1,49 @@
{ fetchurl, stdenv, ncurses }:
stdenv.mkDerivation rec {
name = "nvi-1.79";
src = fetchurl {
url = ftp://ftp.bostic.com/pub/nvi-1.79.tar.gz;
sha256 = "0cvf56rbylz7ksny6g2256sjg8yrsxrmbpk82r64rhi53sm8fnvm";
};
buildInputs = [ ncurses ];
# nvi tries to write to a usual tmp directory (/var/tmp),
# so we will force it to use /tmp.
patchPhase = ''
sed -i -e s/-lcurses/-lncurses/ \
-e s@vi_cv_path_preserve=no@vi_cv_path_preserve=/tmp/vi.recover@ \
-e s@/var/tmp@@ build/configure
'';
configurePhase = ''
mkdir mybuild
cd mybuild
../build/configure --prefix=$out --disable-curses
'';
installPhase = ''
ensureDir $out/bin $out/share/vi/catalog
for a in dutch english french german ru_SU.KOI8-R spanish swedish; do
cp ../catalog/$a $out/share/vi/catalog
done
cp nvi $out/bin/nvi
ln -s $out/bin/nvi $out/bin/vi
ln -s $out/bin/nvi $out/bin/ex
ln -s $out/bin/nvi $out/bin/view
ensureDir $out/share/man/man1
cp ../docs/USD.doc/vi.man/vi.1 $out/share/man/man1/nvi.1
ln -s $out/share/man/man1/nvi.1 $out/share/man/man1/vi
ln -s $out/share/man/man1/nvi.1 $out/share/man/man1/ex
ln -s $out/share/man/man1/nvi.1 $out/share/man/man1/view
'';
meta = {
homepage = http://www.bostic.com/vi/;
description = "The Berkeley Vi Editor";
license = "free";
};
}

View File

@ -1,11 +1,11 @@
{cabal, X11}:
{cabal, X11, mtl, parsec, stm}:
cabal.mkDerivation (self : {
pname = "xmobar";
name = "${self.fname}";
version = "0.8";
sha256 = "88aa5bc0715e2592282e5897bc7938f16580804f56757bc71ed3762bf86c9415";
extraBuildInputs = [X11];
version = "0.9.2";
sha256 = "361295f5dc912512a2eb644ecd331562a271243192be6215cb071e44f50c7c66";
extraBuildInputs = [X11 mtl parsec stm];
meta = {
description = "xmobar is a minimalistic text based status bar";
};

View File

@ -5,6 +5,11 @@ export NO_HIDS=TRUE
export PATH=$icu/sbin:$PATH
postUnpack=postUnpack
postUnpack() {
tar xvjf $src_system
}
preConfigure=preConfigure
preConfigure() {
for i in sysui/desktop/share/makefile.mk; do
@ -51,7 +56,7 @@ wrapSOffice() {
# looks for it at runtime.
export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH\${LD_LIBRARY_PATH:+:}$fontconfig/lib:$libjpeg/lib:$cups/lib
export JAVA_HOME=$jdk
exec $ooFiles/program/soffice $arg "\$@"
exec $ooFiles/openoffice.org3/program/soffice $arg "\$@"
EOF
chmod +x $out/bin/$fn
}

View File

@ -1,21 +1,28 @@
{ stdenv, fetchurl, pam, python, tcsh, libxslt, perl, perlArchiveZip
, perlCompressZlib, zlib, libjpeg, expat, pkgconfig, freetype, libwpd
{ stdenv, fetchurl, pam, python, tcsh, libxslt, perl, ArchiveZip
, CompressZlib, zlib, libjpeg, expat, pkgconfig, freetype, libwpd
, libxml2, db4, sablotron, curl, libXaw, fontconfig, libsndfile, neon
, bison, flex, zip, unzip, gtk, libmspack, getopt, file, cairo, which
, icu, boost, jdk, ant, hsqldb, libXext, libX11, libXtst, libXi, cups
, libXinerama, openssl
, icu, boost, jdk, ant, libXext, libX11, libXtst, libXi, cups
, libXinerama, openssl, gperf, cppunit
}:
let version = "2.4.1"; in
let version = "3.0.1"; in
stdenv.mkDerivation rec {
name = "openoffice.org-${version}";
builder = ./builder.sh;
src =
fetchurl {
src = fetchurl {
url = "http://openoffice.bouncer.osuosl.org/?product=OpenOffice.org&os=src_bzip&lang=core&version=${version}";
name = "OOo_${version}_src_core.tar.bz2";
sha256 = "1405l6xb1qy6l43n9nli8hhay917nyr8a69agj483aaiskrpdxdb";
sha256 = "0fgk7n766lzsxn09p8g5ddabw568jw56k9bcdc02nlmk6k3a9qq0";
};
patches = [ ./oo.patch ];
src_system = fetchurl {
url = "http://openoffice.bouncer.osuosl.org/?product=OpenOffice.org&os=src_bzip&lang=system&version=${version}";
name = "OOo_${version}_src_system.tar.bz2";
sha256 = "1zp8lbn5x9wwbv82inqkanaip4l2jyiybjqv1dpx7wbh6nrasgdv";
};
configureFlags = "
@ -28,7 +35,6 @@ stdenv.mkDerivation rec {
--disable-mozilla
--disable-odk
--disable-pasf
--disable-qadevooo
--with-cairo
--with-system-libs
--with-system-python
@ -49,24 +55,24 @@ stdenv.mkDerivation rec {
--without-system-xml-apis
--without-system-xt
--without-system-db
--with-system-hsqldb
--with-hsqldb-jar=${hsqldb}/lib/hsqldb.jar
--without-system-jars
--without-system-hunspell
--without-system-altlinuxhyph
--without-system-lpsolve
";
LD_LIBRARY_PATH = "${libXext}/lib:${libX11}/lib:${libXtst}/lib:${libXi}/lib:${libjpeg}/lib";
buildInputs = [
pam python tcsh libxslt perl perlArchiveZip perlCompressZlib zlib
pam python tcsh libxslt perl ArchiveZip CompressZlib zlib
libjpeg expat pkgconfig freetype libwpd libxml2 db4 sablotron curl
libXaw fontconfig libsndfile neon bison flex zip unzip gtk libmspack
getopt file jdk cairo which icu boost libXext libX11 libXtst libXi
cups libXinerama openssl
cups libXinerama openssl gperf
];
inherit icu fontconfig libjpeg jdk cups;
patches = [./ooo-libtextcat.patch ];
meta = {
description = "OpenOffice.org is a multiplatform and multilingual office suite";
homepage = http://www.openoffice.org/;

View File

@ -0,0 +1,72 @@
diff --git a/libtextcat/makefile.mk b/libtextcat/makefile.mk
index 602b9b1..6be8427 100644
--- a/libtextcat/makefile.mk
+++ b/libtextcat/makefile.mk
@@ -57,7 +57,7 @@ ADDITIONAL_FILES= \
#CONFIGURE_DIR=$(BUILD_DIR)
#relative to CONFIGURE_DIR
-CONFIGURE_ACTION=configure CFLAGS="$(ARCH_FLAGS) $(EXTRA_CFLAGS)"
+CONFIGURE_ACTION=configure CFLAGS="$(ARCH_FLAGS) $(EXTRA_CFLAGS)" --prefix=$(TMPDIR)
CONFIGURE_FLAGS=
BUILD_ACTION=make
diff --git a/redland/raptor/makefile.mk b/redland/raptor/makefile.mk
index 0e64d50..547d66b 100644
--- a/redland/raptor/makefile.mk
+++ b/redland/raptor/makefile.mk
@@ -104,7 +104,7 @@ XSLTLIB:=$(XSLTLIB)
CONFIGURE_DIR=
CONFIGURE_ACTION=.$/configure
-CONFIGURE_FLAGS=--disable-static --disable-gtk-doc --with-threads --with-openssl-digests --with-xml-parser=libxml --without-bdb --without-sqlite --without-mysql --without-postgresql --without-threestore --with-regex-library=posix --with-decimal=none --with-www=xml
+CONFIGURE_FLAGS=--disable-static --disable-gtk-doc --with-threads --with-openssl-digests --with-xml-parser=libxml --without-bdb --without-sqlite --without-mysql --without-postgresql --without-threestore --with-regex-library=posix --with-decimal=none --with-www=xml --prefix=$(TMPDIR)
BUILD_ACTION=$(GNUMAKE)
BUILD_FLAGS+= -j$(EXTMAXPROCESS)
BUILD_DIR=$(CONFIGURE_DIR)
diff --git a/redland/rasqal/makefile.mk b/redland/rasqal/makefile.mk
index 850ee9c..3293a79 100644
--- a/redland/rasqal/makefile.mk
+++ b/redland/rasqal/makefile.mk
@@ -104,7 +104,7 @@ XSLTLIB:=$(XSLTLIB)
CONFIGURE_DIR=
CONFIGURE_ACTION=.$/configure PATH="..$/..$/..$/bin:$$PATH"
-CONFIGURE_FLAGS=--disable-static --disable-gtk-doc --with-threads --with-openssl-digests --with-xml-parser=libxml --without-bdb --without-sqlite --without-mysql --without-postgresql --without-threestore --with-regex-library=posix --with-decimal=none --with-www=xml
+CONFIGURE_FLAGS=--disable-static --disable-gtk-doc --with-threads --with-openssl-digests --with-xml-parser=libxml --without-bdb --without-sqlite --without-mysql --without-postgresql --without-threestore --with-regex-library=posix --with-decimal=none --with-www=xml --prefix=$(TMPDIR)
BUILD_ACTION=$(GNUMAKE)
BUILD_FLAGS+= -j$(EXTMAXPROCESS)
BUILD_DIR=$(CONFIGURE_DIR)
diff --git a/redland/redland/makefile.mk b/redland/redland/makefile.mk
index 5719272..75c31b7 100644
--- a/redland/redland/makefile.mk
+++ b/redland/redland/makefile.mk
@@ -108,7 +108,7 @@ XSLTLIB:=$(XSLTLIB)
CONFIGURE_DIR=
CONFIGURE_ACTION=.$/configure PATH="..$/..$/..$/bin:$$PATH"
-CONFIGURE_FLAGS=--disable-static --disable-gtk-doc --with-threads --with-openssl-digests --with-xml-parser=libxml --with-raptor=system --with-rasqual=system --without-bdb --without-sqlite --without-mysql --without-postgresql --without-threestore --with-regex-library=posix --with-decimal=none --with-www=xml
+CONFIGURE_FLAGS=--disable-static --disable-gtk-doc --with-threads --with-openssl-digests --with-xml-parser=libxml --with-raptor=system --with-rasqual=system --without-bdb --without-sqlite --without-mysql --without-postgresql --without-threestore --with-regex-library=posix --with-decimal=none --with-www=xml --prefix=$(TMPDIR)
BUILD_ACTION=$(GNUMAKE)
BUILD_FLAGS+= -j$(EXTMAXPROCESS)
BUILD_DIR=$(CONFIGURE_DIR)
diff --git a/hunspell/hunspell-1.1.12.patch b/hunspell/hunspell-1.1.12.patch
index 37b7964..e6fd962 100644
--- a/hunspell/hunspell-1.1.12.patch
+++ b/hunspell/hunspell-1.1.12.patch
@@ -487,3 +487,15 @@
i68568utf.test \
1706659.test \
digits_in_words.test \
+diff --git a/hunspell/unxlngi6.pro/misc/build/hunspell-1.1.12/tests/test.sh b/hunspell/unxlngi6.pro/misc/build/hunspell-1.1.12/tests/test.sh
+index 90080f6..f069517 100755
+--- a/hunspell/unxlngi6.pro/misc/build/hunspell-1.1.12/tests/test.sh
++++ b/hunspell/unxlngi6.pro/misc/build/hunspell-1.1.12/tests/test.sh
+--- misc/hunspell-1.1.12/tests/test.sh Sep 4 01:25:35 2007
++++ misc/build/hunspell-1.1.12/tests/test.sh Jun 18 11:53:11 2008
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!/bin/sh
+ export LC_ALL="C"
+
+ function check_valgrind_log () {

View File

@ -1,10 +0,0 @@
--- OOH680_m17/libtextcat/makefile.mk 2008-01-02 18:33:39.000000000 +0100
+++ OOH680_m17/libtextcat/makefile.mk 2008-08-14 15:52:19.000000000 +0200
@@ -62,6 +62,6 @@ ADDITIONAL_FILES= \
#relative to CONFIGURE_DIR
CONFIGURE_ACTION=configure CFLAGS="$(EXTRA_CFLAGS)"
-CONFIGURE_FLAGS=
+CONFIGURE_FLAGS=--prefix="${out}"
BUILD_ACTION=make

View File

@ -1,19 +1,17 @@
{stdenv, fetchurl, ghc, zlib, ncurses, curl, perl}:
{cabal, html, mtl, parsec, regexCompat, zlib, curl} :
stdenv.mkDerivation {
name = "darcs-2.1.0";
src = fetchurl {
url = http://www.darcs.net/darcs-2.1.0.tar.gz;
sha256 = "d5a63e62bceb45905163d508c6b25158dab6aca367015566d8c539ec37107ab4";
};
cabal.mkDerivation (self : {
pname = "darcs";
name = self.fname;
version = "2.2.1";
sha256 = "0iy4d4qls6yhwmgv87pz4kmr5jh4bwigz1wfwzns71b68csynnsp";
buildInputs = [ghc zlib ncurses curl perl];
NIX_LDFLAGS = "-lz";
extraBuildInputs = [html mtl parsec regexCompat zlib curl];
meta = {
homepage = http://darcs.net/;
description = "Patch-based version management system";
};
patches = ./bash-completion.patch; # I didn't have "have"
}
})

View File

@ -1,22 +0,0 @@
{stdenv, fetchurl, ghc, zlib, ncurses, curl, getConfig}:
# you really should consider using darcs2 and updating your darcs-1 repos ..
# many performance improvements have been made if you use the darcs-2 or hashed format
# (darcs-2 is default now when runnig darcs 2.1.0)
# lookup darcs convert and make sure you understand the one way conversion..
assert getConfig ["darcs" "IreallyWantDarcsOne"] false;
stdenv.mkDerivation {
name = "darcs-1.0.9";
src = fetchurl {
url = http://www.darcs.net/darcs-1.0.9.tar.gz;
sha256 = "a5fe4d5a743d8052d6cbfcea480a44593f821afd8a42e6d6d4ae37d40ed23cd8";
};
buildInputs = [ghc zlib ncurses curl];
NIX_LDFLAGS = "-lz";
meta = {
description = "Patch-based version management system";
};
}

View File

@ -15,7 +15,7 @@ rec {
cpio tcl tk makeWrapper subversion;
svnSupport = getConfig ["git" "svnSupport"] false; # for git-svn support
guiSupport = getConfig ["git" "guiSupport"] false;
perlLibs = [perlLWP perlURI perlTermReadKey subversion];
perlLibs = [perlPackages.LWP perlPackages.URI perlPackages.TermReadKey subversion];
};
gitGit = import ./git/git-git.nix {
@ -26,7 +26,7 @@ rec {
inherit (bleedingEdgeRepos) sourceByName;
svnSupport = getConfig ["git" "svnSupport"] false; # for git-svn support
guiSupport = getConfig ["git" "guiSupport"] false;
perlLibs = [perlLWP perlURI perlTermReadKey subversion];
perlLibs = [perlPackages.LWP perlPackages.URI perlPackages.TermReadKey subversion];
};
qgit = import ./qgit {

View File

@ -20,13 +20,13 @@ assert compressionSupport -> neon.compressionSupport;
stdenv.mkDerivation rec {
version = "1.6.0";
version = "1.6.1";
name = "subversion-${version}";
src = fetchurl {
url = "http://subversion.tigris.org/downloads/${name}.tar.bz2";
sha256 = "d6fb8bf61638580a0ad661edb642c38fbffad2a4c273e3f8631c6cc0da14d0a2";
sha256 = "1jp6i7vmz0vd1zf4y896f7jzabwv81x8brwzp5kpkrn6wajagm6d";
};
buildInputs = [zlib apr aprutil sqlite]

View File

@ -14,7 +14,7 @@ args.stdenv.mkDerivation {
buildInputs =(with args; [
automake autoconf libtool pkgconfig
X11 faad2 faac
faad2 faac
a52dec alsaLib fftw lame libavc1394 libiec61883
libraw1394 libsndfile libvorbis libogg libjpeg libtiff freetype
mjpegtools x264 gettext openexr esound

View File

@ -1,23 +0,0 @@
args : with args;
let localDefs = builderDefs {
src = /* put a fetchurl here */
fetchurl {
url = http://www.virtualbox.org/download/1.5.2/VirtualBox-1.5.2_OSE.tar.bz2;
sha256 = "1g9rvkqjcsfx36gwk6i9c0bml6053xx2mdn1sn7vyyy0sgwkwk53";
};
buildInputs = [libXcursor bridge_utils umlutilities kernelHeaders
wine jre libxslt libIDL SDL qt3 openssl zlib];
configureFlags = [];
} null; /* null is a terminator for sumArgs */
in with localDefs;
stdenv.mkDerivation rec {
name = "VirtualBox-"+version;
builder = writeScript (name + "-builder")
(textClosure localDefs [doConfigure doMakeInstall doForceShare doPropagate]);
meta = {
description = "
Virtual Box is just software for running virtual machines.
";
inherit src;
};
}

View File

@ -1,47 +0,0 @@
{stdenv, fetchurl, iasl, dev86, libxslt, libxml2, libX11, xproto, libXext, libXcursor, qt3, qt4, libIDL, SDL, hal, libcap, zlib, libpng, glib, kernel}:
stdenv.mkDerivation {
name = "virtualbox-2.1.2";
src = fetchurl {
url = http://download.virtualbox.org/virtualbox/2.1.2/VirtualBox-2.1.2-OSE.tar.bz2;
sha256 = "d3c1ae8ed7594094aaf8496204c5415479e1943e5b5179c5baae8a66885362de";
};
buildInputs = [iasl dev86 libxslt libxml2 xproto libX11 libXext libXcursor qt3 qt4 libIDL SDL hal libcap glib kernel];
patchPhase = "
set -x
MODULES_BUILD_DIR=`echo ${kernel}/lib/modules/*/build`
sed -e 's@/lib/modules/`uname -r`/build@'$MODULES_BUILD_DIR@ \\
-i configure
ls kBuild/bin/linux.x86/k* tools/linux.x86/bin/* | xargs -n 1 patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux.so.2
export USER=nix
set +x
";
configurePhase = ''
# It wants the qt utils from qt3, and it takes them from QTDIR
export QTDIR=${qt3}
./configure --with-qt-dir=${qt3} --with-qt4-dir=${qt4} --disable-python --disable-alsa --disable-pulse --disable-hardening
sed -e 's@PKG_CONFIG_PATH=.*@PKG_CONFIG_PATH=${libIDL}/lib/pkgconfig:${glib}/lib/pkgconfig ${libIDL}/bin/libIDL-config-2@' \
-i AutoConfig.kmk
sed -e 's@arch/x86/@@' \
-i Config.kmk
cat >> AutoConfig.kmk << END_PATHS
VBOX_PATH_APP_PRIVATE := $out
VBOX_PATH_APP_DOCS := $out/doc
END_PATHS
'';
buildPhase = "
source env.sh
kmk
";
meta = {
description = "PC emulator";
homepage = http://www.virtualbox.org/;
};
}

View File

@ -0,0 +1,79 @@
{ stdenv, fetchurl, iasl, dev86, libxslt, libxml2, libX11, xproto, libXext
, libXcursor, qt3, qt4, libIDL, SDL, hal, libcap, zlib, libpng, glib, kernel
, python, which
}:
stdenv.mkDerivation {
name = "virtualbox-2.2.0-${kernel.version}";
src = fetchurl {
url = http://download.virtualbox.org/virtualbox/2.2.0/VirtualBox-2.2.0-OSE.tar.bz2;
sha256 = "8bf621cfcb61f2b0a71be53f072e58c3fb4f3183324faa3947346ff973314c71";
};
buildInputs = [iasl dev86 libxslt libxml2 xproto libX11 libXext libXcursor qt3 qt4 libIDL SDL hal libcap glib kernel python];
patchPhase = "
set -x
MODULES_BUILD_DIR=`echo ${kernel}/lib/modules/*/build`
sed -e 's@/lib/modules/`uname -r`/build@'$MODULES_BUILD_DIR@ \\
-i configure
ls kBuild/bin/linux.x86/k* tools/linux.x86/bin/* | xargs -n 1 patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux.so.2
ls kBuild/bin/linux.amd64/k* tools/linux.amd64/bin/* | xargs -n 1 patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux-x86-64.so.2
export USER=nix
set +x
";
configurePhase = ''
# It wants the qt utils from qt3, and it takes them from QTDIR
export QTDIR=${qt3}
./configure --with-qt-dir=${qt3} --with-qt4-dir=${qt4} --disable-python --disable-alsa --disable-pulse --disable-hardening
sed -e 's@PKG_CONFIG_PATH=.*@PKG_CONFIG_PATH=${libIDL}/lib/pkgconfig:${glib}/lib/pkgconfig ${libIDL}/bin/libIDL-config-2@' \
-i AutoConfig.kmk
sed -e 's@arch/x86/@@' \
-i Config.kmk
cat >> AutoConfig.kmk << END_PATHS
VBOX_PATH_APP_PRIVATE := $out
VBOX_PATH_APP_DOCS := $out/doc
END_PATHS
'';
buildPhase = ''
source env.sh
kmk
cd out/linux.*/release/bin/src
export KERN_DIR=${kernel}/lib/modules/*/build
make
cd ../../../../..
'';
installPhase = ''
cd out/linux.*/release/bin
ensureDir $out/virtualbox
cp -av * $out/virtualbox
cd src
kernelVersion=$(cd ${kernel}/lib/modules; ls)
export MODULE_DIR=$out/lib/modules/$kernelVersion/misc
ensureDir $MODULE_DIR
make install
ensureDir $out/bin
cp -v ${./VBox.sh} $out/bin/VBox.sh
sed -i -e "s|@INSTALL_PATH@|$out/virtualbox|" \
-e "s|@QT4_PATH@|${qt4}/lib|" \
-e "s|which|${which}/bin/which|" \
-e "s|gawk|${stdenv.gawk}/bin/gawk|" \
$out/bin/VBox.sh
chmod 755 $out/bin/VBox.sh
for file in VirtualBox VBoxManage VBoxSDL
do
[ -f "$out/virtualbox/$file" ] && ln -sfv $out/bin/VBox.sh $out/bin/$file
done
ensureDir $out/share/applications
ln -sfv $out/virtualbox/VirtualBox.desktop $out/share/applications
'';
meta = {
description = "PC emulator";
homepage = http://www.virtualbox.org/;
};
}

View File

@ -0,0 +1,31 @@
{stdenv, fetchurl, ncurses, pkgconfig, glib, libviper, libpseudo, gpm}:
stdenv.mkDerivation {
name = "vwm-2.0.1";
src = fetchurl {
url = mirror://sourceforge/vwm/vwm-2.0.1.tar.gz;
sha256 = "1kn1ga35kvl10s3xvgr5ys18gd4pp0gwah4pnvmfkvg0xazjrc0h";
};
prePatch = ''
sed -i -e s@/usr/local@$out@ \
-e s@/usr/lib@$out/lib@ \
-e 's@tic vwmterm@tic -o '$out/lib/terminfo' vwmterm@' \
-e /ldconfig/d Makefile modules/*/Makefile vwm.h
'';
patches = [ ./signal.patch ];
preInstall = ''
ensureDir $out/bin $out/include
'';
buildInputs = [ ncurses pkgconfig glib libviper libpseudo gpm];
meta = {
homepage = http://vwm.sourceforge.net/;
description = "Dynamic window manager for the console";
license="GPLv2+";
};
}

View File

@ -0,0 +1,22 @@
diff --git a/modules/vwmterm2/signals.c b/modules/vwmterm2/signals.c
index 239e7f2..07d78fd 100644
--- a/modules/vwmterm2/signals.c
+++ b/modules/vwmterm2/signals.c
@@ -1,4 +1,5 @@
#include <vwm.h>
+#include <signal.h>
struct sigaction* vwmterm_sigset(int signum,sighandler_t handler)
{
diff --git a/vwm_private.h b/vwm_private.h
index 2d48ebf..46457bd 100644
--- a/vwm_private.h
+++ b/vwm_private.h
@@ -2,6 +2,7 @@
#define _H_VWM_PRIVATE_
#include <glib.h>
+#include <signal.h>
#ifdef _VIPER_WIDE
#include <ncursesw/curses.h>

View File

@ -1,11 +1,11 @@
{cabal, X11, xmessage}:
{cabal, X11, mtl, xmessage}:
cabal.mkDerivation (self : {
pname = "xmonad";
name = "${self.fname}";
version = "0.7";
sha256 = "d5ee338eb6d0680082e20eaafa0b23b32358fffe69e2ec4ad7bdf6e03c751d67";
extraBuildInputs = [X11];
version = "0.8.1";
sha256 = "9d58789a0bc08d40b9d14097b079822c7b8290d60efc6aa79144abf47d5db32c";
propagatedBuildInputs = [X11 mtl];
meta = {
description = "xmonad is a tiling window manager for X";
};

View File

@ -3,8 +3,8 @@
cabal.mkDerivation (self : {
pname = "xmonad-contrib";
name = "${self.fname}";
version = "0.7";
sha256 = "4034d0c8ce092fc9b4e9d9ecf89bc9c16c4ac28aad190f074edc9e4201db0697";
version = "0.8.1";
sha256 = "dedbd2e7718f7383e403f5f0b40d411f27099625e7e1dcddd42f7c12bf6488a9";
extraBuildInputs = [X11 xmonad];
meta = {
description = "a huge extension library for xmonad";

View File

@ -582,7 +582,7 @@ rec {
rpmClosureGenerator =
{name, packagesList, urlPrefix, packages, archs ? []}:
runCommand "${name}.nix" {buildInputs = [perl perlXMLSimple]; inherit archs;} ''
runCommand "${name}.nix" {buildInputs = [perl perlPackages.XMLSimple]; inherit archs;} ''
gunzip < ${packagesList} > ./packages.xml
perl -w ${rpm/rpm-closure.pl} \
./packages.xml ${urlPrefix} ${toString packages} > $out

View File

@ -1,9 +1,9 @@
args: with args;
{fetchurl, stdenv, fontforge, perl, fontconfig, FontTTF}:
stdenv.mkDerivation {
name = "dejavu-fonts-2.23";
#fontconfig is needed only for fc-lang (?)
buildInputs = [fontforge perl perlFontTTF];
buildInputs = [fontforge perl FontTTF];
src = fetchurl {
url = mirror://sourceforge/dejavu/dejavu-fonts-2.23.tar.bz2;
sha256 = "0gifaxiianls54i05yw5gxhi2a0j9jmy5p0q58ym4l9fxv5drnhn";

View File

@ -62,8 +62,8 @@ xkb_symbols "altgr-intl" {
key <AD08> { [ i, I, iacute, Iacute ] };
key <AD09> { [ o, O, oacute, Oacute ] };
key <AD10> { [ p, P, odiaeresis, Odiaeresis ] };
key <AD11> { [ bracketleft, braceleft, guillemotleft ] };
key <AD12> { [ bracketright,braceright, guillemotright ] };
key <AD11> { [ bracketleft, braceleft, guillemotleft, lessthanequal ] };
key <AD12> { [ bracketright,braceright, guillemotright, greaterthanequal] };
key <AC01> { [ a, A, aacute, Aacute ] };
key <AC02> { [ s, S, ssharp, section ] };

View File

@ -192,6 +192,21 @@ rec {
input = desktop.gtksourceview;
};
gtksourceview_24 = stdenv.mkDerivation {
name = "gtksourceview-2.4.2";
src = fetchurl {
url = http://ftp.gnome.org/pub/gnome/sources/gtksourceview/2.4/gtksourceview-2.4.2.tar.bz2;
sha256 = "1grc2y817c0xd225l0m92ja35x2bgld5npa4w3g21amkqhdnpka9";
};
buildInputs = [
perl perlXMLParser pkgconfig gnomevfs libbonobo GConf
libgnomeprintui libgnomecanvas gettext intltool
];
propagatedBuildInputs = [gtk libxml2 libgnomeprint];
};
scrollkeeper = import ./scrollkeeper.nix {
inherit fetchurl stdenv pkgconfig perl perlXMLParser
libxml2 libxslt docbook_xml_dtd_42;

View File

@ -1,41 +0,0 @@
# Support dir for isolating GHC
ghc_support=$TMPDIR/ghc-6.6-nix-support
mkdir -p $ghc_support
# Create isolated package config
packages_db=$ghc_support/package.conf
cp @out@/lib/ghc-*/package.conf $packages_db
chmod +w $packages_db
# Generate wrappers for GHC that use the isolated package config
makeWrapper() {
wrapperName="$1"
wrapper="$ghc_support/$wrapperName"
shift #the other arguments are passed to the source app
echo '#!'"$SHELL" > "$wrapper"
echo "exec \"@out@/bin/$wrapperName\" $@" '"$@"' >> "$wrapper"
chmod +x "$wrapper"
}
makeWrapper "ghc" "-no-user-package-conf -package-conf $packages_db"
makeWrapper "ghci" "-no-user-package-conf -package-conf $packages_db"
makeWrapper "runghc" "-no-user-package-conf -package-conf $packages_db"
makeWrapper "runhaskell" "-no-user-package-conf -package-conf $packages_db"
makeWrapper "ghc-pkg" "--global-conf $packages_db"
# Add wrappers to search path
export _PATH=$ghc_support:$_PATH
# Env hook to add packages to the package config
addLibToPackageConf ()
{
local regscript=$1/nix-support/register-ghclib.sh
if test -f $regscript; then
local oldpath=$PATH
export PATH=$ghc_support:$PATH
sh $regscript $package_db
export PATH=$oldpath
fi
}
envHooks=(${envHooks[@]} addLibToPackageConf)

View File

@ -1,26 +0,0 @@
source $stdenv/setup
# Setup isolated package management
postInstall()
{
ensureDir "$out/nix-support"
echo "# Path to the GHC compiler directory in the store" > $out/nix-support/setup-hook
echo "ghc=$out" >> $out/nix-support/setup-hook
echo "" >> $out/nix-support/setup-hook
cat $setupHook >> $out/nix-support/setup-hook
}
postInstall=postInstall
configureFlags="--with-readline-libraries=\"$readline/lib\""
preConfigure()
{
chmod u+x rts/gmp/configure
# add library paths for gmp, ncurses
sed -i "s|^\(library-dirs.*$\)|\1 \"$gmp/lib\"|" rts/package.conf.in
sed -i "s|^\(library-dirs.*$\)|\1 \"$ncurses/lib\"|" libraries/readline/package.conf.in
}
preConfigure=preConfigure
# Standard configure/make/make install
genericBuild

View File

@ -1,26 +0,0 @@
{stdenv, fetchurl, readline, ghc, perl, m4, gmp, ncurses}:
stdenv.mkDerivation {
name = "ghc-6.6";
src = map fetchurl [
{ url = http://www.haskell.org/ghc/dist/6.6/ghc-6.6-src.tar.bz2;
md5 = "2427a8d7d14f86e0878df6b54938acf7";
}
{ url = http://www.haskell.org/ghc/dist/6.6/ghc-6.6-src-extralibs.tar.bz2;
md5 = "14b22fce36caffa509046361724bc119";
}
];
builder = ./builder.sh;
buildInputs = [ghc readline perl m4];
setupHook = ./setup-hook.sh;
meta = {
description = "The Glasgow Haskell Compiler v6.6";
};
inherit readline gmp ncurses;
}

View File

@ -1,41 +0,0 @@
# Support dir for isolating GHC
ghc_support=$TMPDIR/ghc-6.6-nix-support
mkdir -p $ghc_support
# Create isolated package config
packages_db=$ghc_support/package.conf
cp $ghc/lib/ghc-*/package.conf $packages_db
chmod +w $packages_db
# Generate wrappers for GHC that use the isolated package config
makeWrapper() {
wrapperName="$1"
wrapper="$ghc_support/$wrapperName"
shift #the other arguments are passed to the source app
echo '#!'"$SHELL" > "$wrapper"
echo "exec \"$ghc/bin/$wrapperName\" $@" '"$@"' >> "$wrapper"
chmod +x "$wrapper"
}
makeWrapper "ghc" "-no-user-package-conf -package-conf $packages_db"
makeWrapper "ghci" "-no-user-package-conf -package-conf $packages_db"
makeWrapper "runghc" "-no-user-package-conf -package-conf $packages_db"
makeWrapper "runhaskell" "-no-user-package-conf -package-conf $packages_db"
makeWrapper "ghc-pkg" "--global-conf $packages_db"
# Add wrappers to search path
export _PATH=$ghc_support:$_PATH
# Env hook to add packages to the package config
addLibToPackageConf ()
{
local regscript=$1/nix-support/register-ghclib.sh
if test -f $regscript; then
local oldpath=$PATH
export PATH=$ghc_support:$PATH
sh $regscript $package_db
export PATH=$oldpath
fi
}
envHooks=(${envHooks[@]} addLibToPackageConf)

View File

@ -1,47 +0,0 @@
{stdenv, fetchurl, readline, ghc, happy, alex, perl, m4, gmp, ncurses, haskellEditline}:
stdenv.mkDerivation (rec {
name = "ghc-6.9.20080719";
homepage = "http://www.haskell.org/ghc";
src = map fetchurl [
{ url = "${homepage}/dist/current/dist/${name}-src.tar.bz2";
sha256 = "ed2371c3632962fccab6ec60c04e9fc6a38f3ade3a30a464cea5d53784bc3a34";
}
{ url = "${homepage}/dist/current/dist/${name}-src-extralibs.tar.bz2";
sha256 = "d3c7aa7d53befe268f92148cc8f3b0861dfdc84e9b21b039af0f5b230bfbf72b";
}
];
buildInputs = [ghc readline perl m4 gmp happy alex haskellEditline];
# The setup hook is executed by other packages building with ghc.
# It then looks for package configurations that are available and
# build a package database on the fly.
setupHook = ./setup-hook.sh;
meta = {
description = "The Glasgow Haskell Compiler";
};
configureFlags=[
"--with-gmp-libraries=${gmp}/lib"
"--with-gmp-includes=${gmp}/include"
"--with-readline-libraries=${readline}/lib"
"--with-gcc=${gcc}/bin/gcc"
];
preConfigure = ''
# should not be present in a clean distribution
rm utils/pwd/pwd
# fix bug in makefile
sed -i -e 's/:\\"//' -e 's/\\"//' mk/config.mk.in
'';
postInstall = ''
ln -s $out/lib/${name}/ghc $out/lib/${name}/${name}
'';
inherit (stdenv) gcc;
inherit readline gmp ncurses;
})

View File

@ -1,41 +0,0 @@
# Support dir for isolating GHC
ghc_support=$TMPDIR/ghc-6.8-nix-support
ensureDir $ghc_support
# Create isolated package config
packages_db=$ghc_support/package.conf
cp @out@/lib/ghc-*/package.conf $packages_db
chmod +w $packages_db
# Generate wrappers for GHC that use the isolated package config
makeWrapper() {
wrapperName="$1"
wrapper="$ghc_support/$wrapperName"
shift #the other arguments are passed to the source app
echo '#!'"$SHELL" > "$wrapper"
echo "exec \"@out@/bin/$wrapperName\" $@" '"$@"' >> "$wrapper"
chmod +x "$wrapper"
}
makeWrapper "ghc" "-no-user-package-conf -package-conf $packages_db"
makeWrapper "ghci" "-no-user-package-conf -package-conf $packages_db"
makeWrapper "runghc" "-no-user-package-conf -package-conf $packages_db"
makeWrapper "runhaskell" "-no-user-package-conf -package-conf $packages_db"
makeWrapper "ghc-pkg" "--global-conf $packages_db"
# Add wrappers to search path
export _PATH=$ghc_support:$_PATH
# Env hook to add packages to the package config
addLibToPackageConf ()
{
local regscript=$1/nix-support/register-ghclib.sh
if test -f $regscript; then
local oldpath=$PATH
export PATH=$ghc_support:$PATH
sh $regscript $package_db
export PATH=$oldpath
fi
}
envHooks=(${envHooks[@]} addLibToPackageConf)

View File

@ -1,34 +0,0 @@
source $stdenv/setup
export HOME=$(pwd)/fake-home
makeWrapper() {
wrapperBase="$1"
wrapperName="$2"
wrapper="$out/$wrapperName"
shift; shift #the other arguments are passed to the source app
echo '#!'"$SHELL" > "$wrapper"
echo "exec \"$wrapperBase/$wrapperName\" $@" '"$@"' > "$wrapper"
chmod +x "$wrapper"
}
mkdir -p $out/nix-support $out/bin
packages_db=$out/nix-support/package.conf
#create packages database (start with compiler base packages)
cp $ghc/lib/ghc-*/package.conf $packages_db
chmod +w $packages_db
for lib in $libraries; do
sh $lib/nix-support/register.sh $packages_db || exit 1
done
rm -f $packages_db.old
#create the wrappers
#NB: The double dash for ghc-pkg is not a typo!
makeWrapper $ghc "bin/ghc" "-package-conf" $packages_db
makeWrapper $ghc "bin/ghci" "-package-conf" $packages_db
makeWrapper $ghc "bin/runghc" "-package-conf" $packages_db
makeWrapper $ghc "bin/runhaskell" "-package-conf" $packages_db
makeWrapper $ghc "bin/ghc-pkg" "--global-conf" $packages_db
# todo: link all other binaries of ghc

View File

@ -1,7 +0,0 @@
{stdenv, ghc, libraries}:
stdenv.mkDerivation {
inherit (ghc) name meta;
inherit ghc libraries;
builder = ./builder.sh;
}

View File

@ -1,31 +1,32 @@
{stdenv, fetchurl, perl, editline, ncurses, gmp, makeWrapper}:
{stdenv, fetchurl, perl, libedit, ncurses, gmp}:
stdenv.mkDerivation rec {
version = "6.10.1";
name = "ghc-${version}";
name = "ghc-${version}-binary";
src =
if stdenv.system == "i686-linux" then
fetchurl {
# libedit .so.0
# This binary requires libedit.so.0 (rather than libedit.so.2).
url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-i386-unknown-linux.tar.bz2";
sha256 = "18l0vwlf7y86s65klpdvz4ccp8kydvcmyh03c86hld8jvx16q7zz";
}
else if stdenv.system == "x86_64-linux" then
fetchurl {
# libedit .so.0
# Idem.
url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-x86_64-unknown-linux.tar.bz2";
sha256 = "14jvvn333i36wm7mmvi47jr93f5hxrw1h2dpjvqql0rp00svhzzg";
}
else if stdenv.system == "i686-darwin" then
fetchurl {
# update
# untested
# Idem.
url = "http://haskell.org/ghc/dist/${version}/maeder/ghc-${version}-i386-apple-darwin.tar.bz2";
sha256 = "0lax61cfzxkrjb7an3magdax6c8fygsirpw9qfmc651k2sfby1mq";
}
else throw "cannot bootstrap GHC on this platform";
else throw "cannot bootstrap GHC on this platform";
buildInputs = [perl makeWrapper];
buildInputs = [perl];
postUnpack =
# Strip is harmful, see also below. It's important that this happens
@ -45,7 +46,7 @@ stdenv.mkDerivation rec {
(if stdenv.isLinux then ''
find . -type f -perm +100 \
-exec patchelf --interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" \
--set-rpath "${editline}/lib:${ncurses}/lib:${gmp}/lib" {} \;
--set-rpath "${libedit}/lib:${ncurses}/lib:${gmp}/lib" {} \;
for prog in ld ar gcc strip ranlib; do
find . -name "setup-config" -exec sed -i "s@/usr/bin/$prog@$(type -p $prog)@g" {} \;
done
@ -61,46 +62,45 @@ stdenv.mkDerivation rec {
# No building is necessary, but calling make without flags ironically
# calls install-strip ...
buildPhase = ":";
buildPhase = "true";
# The binaries for Darwin use frameworks, so fake those frameworks,
# and create some wrapper scripts that set DYLD_FRAMEWORK_PATH so
# that the executables work with no special setup.
postInstall = (if stdenv.isDarwin then "
postInstall =
(if stdenv.isDarwin then
''
ensureDir $out/frameworks/GMP.framework/Versions/A
ln -s ${gmp}/lib/libgmp.dylib $out/frameworks/GMP.framework/GMP
ln -s ${gmp}/lib/libgmp.dylib $out/frameworks/GMP.framework/Versions/A/GMP
# !!! fix this
ensureDir $out/frameworks/GNUeditline.framework/Versions/A
ln -s ${libedit}/lib/libeditline.dylib $out/frameworks/GNUeditline.framework/GNUeditline
ln -s ${libedit}/lib/libeditline.dylib $out/frameworks/GNUeditline.framework/Versions/A/GNUeditline
ensureDir $out/frameworks/GMP.framework/Versions/A
ln -s ${gmp}/lib/libgmp.dylib $out/frameworks/GMP.framework/GMP
ln -s ${gmp}/lib/libgmp.dylib $out/frameworks/GMP.framework/Versions/A/GMP
ensureDir $out/frameworks/GNUeditline.framework/Versions/A
ln -s ${editline}/lib/libeditline.dylib $out/frameworks/GNUeditline.framework/GNUeditline
ln -s ${editline}/lib/libeditline.dylib $out/frameworks/GNUeditline.framework/Versions/A/GNUeditline
mv $out/bin $out/bin-orig
mkdir $out/bin
for i in $(cd $out/bin-orig && ls); do
echo "#! $SHELL -e" >> $out/bin/$i
echo "DYLD_FRAMEWORK_PATH=$out/frameworks exec $out/bin-orig/$i -framework-path $out/frameworks \"\$@\"" >> $out/bin/$i
chmod +x $out/bin/$i
done
'' else "")
+
''
# bah, the passing gmp doesn't work, so let's add it to the final package.conf in a quick but dirty way
sed -i "s@^\(.*pkgName = PackageName \"rts\".*\libraryDirs = \\[\)\(.*\)@\\1\"${gmp}/lib\",\2@" $out/lib/ghc-${version}/package.conf
mv $out/bin $out/bin-orig
mkdir $out/bin
for i in $(cd $out/bin-orig && ls); do
echo \"#! $SHELL -e\" >> $out/bin/$i
echo \"DYLD_FRAMEWORK_PATH=$out/frameworks exec $out/bin-orig/$i -framework-path $out/frameworks \\\"\\$@\\\"\" >> $out/bin/$i
chmod +x $out/bin/$i
done
" else "")
+
''
# bah, the passing gmp doesn't work, so let's add it to the final package.conf in a quick but dirty way
sed -i "s@^\(.*pkgName = PackageName \"rts\".*\libraryDirs = \\[\)\(.*\)@\\1\"${gmp}/lib\",\2@" $out/lib/ghc-${version}/package.conf
wrapProgram $out/bin/ghc --set LDPATH "${gmp}/lib"
# sanity check, can ghc create executables?
cd $TMP
mkdir test-ghc; cd test-ghc
cat > main.hs << EOF
module Main where
main = putStrLn "yes"
EOF
$out/bin/ghc --make main.hs
echo compilation ok
[ $(./main) == "yes" ]
''
;
# Sanity check, can ghc create executables?
cd $TMP
mkdir test-ghc; cd test-ghc
cat > main.hs << EOF
module Main where
main = putStrLn "yes"
EOF
$out/bin/ghc --make main.hs
echo compilation ok
[ $(./main) == "yes" ]
'';
}

View File

@ -0,0 +1,27 @@
{stdenv, fetchurl, libedit, ghc, perl, gmp, ncurses}:
stdenv.mkDerivation rec {
version = "6.10.1";
name = "ghc-${version}";
homepage = "http://haskell.org/ghc";
src = fetchurl {
url = "${homepage}/dist/${version}/${name}-src.tar.bz2";
sha256 = "16q08cxxsmh4hgjhvkl739pc1hh81gljycfq1d2z6m1ld3jpbi22";
};
buildInputs = [ghc libedit perl gmp];
configureFlags=[
"--with-gmp-libraries=${gmp}/lib"
"--with-gmp-includes=${gmp}/include"
"--with-gcc=${stdenv.gcc}/bin/gcc"
];
meta = {
inherit homepage;
description = "The Glasgow Haskell Compiler";
};
}

View File

@ -0,0 +1,100 @@
{stdenv, fetchurl, perl, libedit, ncurses, gmp}:
stdenv.mkDerivation rec {
version = "6.10.2";
name = "ghc-${version}-binary";
src =
if stdenv.system == "i686-linux" then
fetchurl {
# This binary requires libedit.so.0 (rather than libedit.so.2).
url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-i386-unknown-linux.tar.bz2";
sha256 = "1fw0zr2qshlpk8s0d16k27zcv5263nqdg2xds5ymw8ff6qz9rz9b";
}
else if stdenv.system == "x86_64-linux" then
fetchurl {
# Idem.
url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-x86_64-unknown-linux.tar.bz2";
sha256 = "1rd2j7lmcfsm2rdfb5g6q0l8dz3sxadk5m3d2f69d4a6g4p4h7jj";
}
else throw "cannot bootstrap GHC on this platform";
buildInputs = [perl];
postUnpack =
# Strip is harmful, see also below. It's important that this happens
# first. The GHC Cabal build system makes use of strip by default and
# has hardcoded paths to /usr/bin/strip in many places. We replace
# those below, making them point to our dummy script.
''
mkdir "$TMP/bin"
for i in strip; do
echo '#!/bin/sh' >> "$TMP/bin/$i"
chmod +x "$TMP/bin/$i"
PATH="$TMP/bin:$PATH"
done
'' +
# On Linux, use patchelf to modify the executables so that they can
# find editline/gmp.
(if stdenv.isLinux then ''
find . -type f -perm +100 \
-exec patchelf --interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" \
--set-rpath "${libedit}/lib:${ncurses}/lib:${gmp}/lib" {} \;
for prog in ld ar gcc strip ranlib; do
find . -name "setup-config" -exec sed -i "s@/usr/bin/$prog@$(type -p $prog)@g" {} \;
done
'' else "");
configurePhase = ''
./configure --prefix=$out --with-gmp-libraries=${gmp}/lib --with-gmp-includes=${gmp}/include
'';
# Stripping combined with patchelf breaks the executables (they die
# with a segfault or the kernel even refuses the execve). (NIXPKGS-85)
dontStrip = true;
# No building is necessary, but calling make without flags ironically
# calls install-strip ...
buildPhase = "true";
# The binaries for Darwin use frameworks, so fake those frameworks,
# and create some wrapper scripts that set DYLD_FRAMEWORK_PATH so
# that the executables work with no special setup.
postInstall =
(if stdenv.isDarwin then
''
ensureDir $out/frameworks/GMP.framework/Versions/A
ln -s ${gmp}/lib/libgmp.dylib $out/frameworks/GMP.framework/GMP
ln -s ${gmp}/lib/libgmp.dylib $out/frameworks/GMP.framework/Versions/A/GMP
# !!! fix this
ensureDir $out/frameworks/GNUeditline.framework/Versions/A
ln -s ${libedit}/lib/libeditline.dylib $out/frameworks/GNUeditline.framework/GNUeditline
ln -s ${libedit}/lib/libeditline.dylib $out/frameworks/GNUeditline.framework/Versions/A/GNUeditline
mv $out/bin $out/bin-orig
mkdir $out/bin
for i in $(cd $out/bin-orig && ls); do
echo \"#! $SHELL -e\" >> $out/bin/$i
echo \"DYLD_FRAMEWORK_PATH=$out/frameworks exec $out/bin-orig/$i -framework-path $out/frameworks \\\"\\$@\\\"\" >> $out/bin/$i
chmod +x $out/bin/$i
done
'' else "")
+
''
# bah, the passing gmp doesn't work, so let's add it to the final package.conf in a quick but dirty way
sed -i "s@^\(.*pkgName = PackageName \"rts\".*\libraryDirs = \\[\)\(.*\)@\\1\"${gmp}/lib\",\2@" $out/lib/ghc-${version}/package.conf
# Sanity check, can ghc create executables?
cd $TMP
mkdir test-ghc; cd test-ghc
cat > main.hs << EOF
module Main where
main = putStrLn "yes"
EOF
$out/bin/ghc --make main.hs
echo compilation ok
[ $(./main) == "yes" ]
'';
}

View File

@ -0,0 +1,27 @@
{stdenv, fetchurl, libedit, ghc, perl, gmp, ncurses}:
stdenv.mkDerivation rec {
version = "6.10.2";
name = "ghc-${version}";
homepage = "http://haskell.org/ghc";
src = fetchurl {
url = "${homepage}/dist/${version}/${name}-src.tar.bz2";
sha256 = "0q3wgp8svfl54kpyp55a1kh63cni5vzz811hqjsps84jdg0lg56m";
};
buildInputs = [ghc libedit perl gmp];
configureFlags=[
"--with-gmp-libraries=${gmp}/lib"
"--with-gmp-includes=${gmp}/include"
"--with-gcc=${stdenv.gcc}/bin/gcc"
];
meta = {
inherit homepage;
description = "The Glasgow Haskell Compiler";
};
}

View File

@ -1,7 +1,7 @@
{stdenv, fetchurl, perl, readline, ncurses, gmp}:
stdenv.mkDerivation {
name = if stdenv.system == "i686-darwin" then "ghc-6.6.1" else "ghc-6.4.2";
name = if stdenv.system == "i686-darwin" then "ghc-6.6.1-binary" else "ghc-6.4.2-binary";
src =
if stdenv.system == "i686-linux" then
@ -15,6 +15,9 @@ stdenv.mkDerivation {
md5 = "8f5fe48798f715cd05214a10987bf6d5";
}
else if stdenv.system == "i686-darwin" then
/* Yes, this isn't GHC 6.4.2. But IIRC either there was no
6.4.2 binary for Darwin, or it didn't work. In any case, in
Nixpkgs we just need this bootstrapping a "real" GHC. */
fetchurl {
url = http://www.haskell.org/ghc/dist/6.6.1/ghc-6.6.1-i386-apple-darwin.tar.bz2;
sha256 = "1drbsicanr6jlykvs4vs6gbi2q9ac1bcaxz2vzwh3pfv3lfibwia";
@ -38,7 +41,7 @@ stdenv.mkDerivation {
# The binaries for Darwin use frameworks, so fake those frameworks,
# and create some wrapper scripts that set DYLD_FRAMEWORK_PATH so
# that the executables work with no special setup.
postInstall = if stdenv.isDarwin then "
postInstall = if stdenv.isDarwin then ''
ensureDir $out/frameworks/GMP.framework/Versions/A
ln -s ${gmp}/lib/libgmp.dylib $out/frameworks/GMP.framework/GMP
@ -50,13 +53,13 @@ stdenv.mkDerivation {
mkdir $out/bin-orig
for i in $(cd $out/bin && ls *); do
mv $out/bin/$i $out/bin-orig/$i
echo \"#! $SHELL -e\" >> $out/bin/$i
echo "#! $SHELL -e" >> $out/bin/$i
extraFlag=
if test $i != ghc-pkg; then extraFlag=\"-framework-path $out/frameworks\"; fi
echo \"DYLD_FRAMEWORK_PATH=$out/frameworks exec $out/bin-orig/$i $extraFlag \\\"\\$@\\\"\" >> $out/bin/$i
if test $i != ghc-pkg; then extraFlag="-framework-path $out/frameworks"; fi
echo "DYLD_FRAMEWORK_PATH=$out/frameworks exec $out/bin-orig/$i $extraFlag \"\$@\"" >> $out/bin/$i
chmod +x $out/bin/$i
done
" else "";
'' else "";
}

View File

@ -1,15 +1,25 @@
{stdenv, gcc, fetchurl, perl, ghc, m4, readline, ncurses, gmp}:
{stdenv, fetchurl, perl, ghc, m4, readline, ncurses, gmp}:
stdenv.mkDerivation {
name = "ghc-6.4.2";
src = fetchurl {
url = http://www.haskell.org/ghc/dist/6.4.2/ghc-6.4.2-src.tar.bz2;
md5 = "a394bf14e94c3bca5507d568fcc03375";
};
buildInputs = [perl ghc m4];
propagatedBuildInputs = [readline ncurses gmp];
builder = ./builder.sh;
inherit gcc;
configureFlags = "--with-gcc=${stdenv.gcc}/bin/gcc";
preConfigure =
''
# Don't you hate build processes that write in $HOME? :-(
export HOME=$(pwd)/fake-home
mkdir -p $HOME
'';
meta = {
description = "The Glasgow Haskell Compiler";

View File

@ -14,8 +14,6 @@ stdenv.mkDerivation (rec {
buildInputs = [ghc readline perl58 m4 gmp];
setupHook = ./setup-hook.sh;
meta = {
description = "The Glasgow Haskell Compiler";
};

View File

@ -16,11 +16,6 @@ stdenv.mkDerivation (rec {
buildInputs = [ghc readline perl m4 gmp];
# The setup hook is executed by other packages building with ghc.
# It then looks for package configurations that are available and
# build a package database on the fly.
setupHook = ./setup-hook.sh;
meta = {
description = "The Glasgow Haskell Compiler";
};
@ -29,14 +24,11 @@ stdenv.mkDerivation (rec {
"--with-gmp-libraries=${gmp}/lib"
"--with-gmp-includes=${gmp}/include"
"--with-readline-libraries=${readline}/lib"
"--with-gcc=${gcc}/bin/gcc"
"--with-gcc=${stdenv.gcc}/bin/gcc"
];
preConfigure = "
# still requires a hack for ncurses
sed -i \"s|^\\\(ld-options.*$\\\)|\\\1 -L${ncurses}/lib|\" libraries/readline/readline.buildinfo.in
";
inherit (stdenv) gcc;
inherit readline gmp ncurses;
})

View File

@ -1,25 +1,21 @@
{stdenv, fetchurl, readline, ghc, perl, m4, gmp, ncurses, haddock}:
stdenv.mkDerivation (rec {
name = "ghc-6.8.3";
stdenv.mkDerivation rec {
version = "6.8.3";
name = "ghc-${version}";
homepage = "http://www.haskell.org/ghc";
src = map fetchurl [
{ url = "${homepage}/dist/6.8.3/${name}-src.tar.bz2";
{ url = "${homepage}/dist/${version}/${name}-src.tar.bz2";
sha256 = "1fc1ff82a555532f1c9d2dc628fd9de5e6ebab2ce6ee9490a34174ceb6f76e6b";
}
{ url = "${homepage}/dist/6.8.3/${name}-src-extralibs.tar.bz2";
{ url = "${homepage}/dist/${version}/${name}-src-extralibs.tar.bz2";
sha256 = "ee2f5ba6a46157fc53eae515cb6fa1ed3c5023e7eac15981d92af0af00ee2ba2";
}
];
buildInputs = [ghc readline perl m4 gmp haddock];
# The setup hook is executed by other packages building with ghc.
# It then looks for package configurations that are available and
# build a package database on the fly.
setupHook = ./setup-hook.sh;
meta = {
description = "The Glasgow Haskell Compiler";
};
@ -28,7 +24,7 @@ stdenv.mkDerivation (rec {
"--with-gmp-libraries=${gmp}/lib"
"--with-gmp-includes=${gmp}/include"
"--with-readline-libraries=${readline}/lib"
"--with-gcc=${gcc}/bin/gcc"
"--with-gcc=${stdenv.gcc}/bin/gcc"
];
preConfigure = ''
@ -37,9 +33,4 @@ stdenv.mkDerivation (rec {
# build haddock docs
echo "HADDOCK_DOCS = YES" >> mk/build.mk
'';
installTargets = ["install" "install-docs"];
inherit (stdenv) gcc;
inherit readline gmp ncurses;
})
}

View File

@ -1,9 +0,0 @@
source $stdenv/setup
configureFlags="--with-gcc=$gcc/bin/gcc"
# Don't you hate build processes that write in $HOME? :-(
export HOME=$(pwd)/fake-home
mkdir -p $HOME
genericBuild

View File

@ -0,0 +1,17 @@
# Create isolated package config
packages_db=$TMPDIR/.package.conf
cp @ghc@/lib/ghc-*/package.conf $packages_db
chmod u+w $packages_db
export GHC_PACKAGE_PATH=$packages_db
# Env hook to add packages to the package config
addLibToPackageConf () {
local fn
shopt -s nullglob
for fn in $1/lib/ghc-pkgs/ghc-@ghcVersion@/*.conf; do
@ghc@/bin/ghc-pkg register --force $fn
done
}
envHooks=(${envHooks[@]} addLibToPackageConf)

View File

@ -0,0 +1,15 @@
{stdenv, ghc}:
stdenv.mkDerivation {
name = "ghc-wrapper-${ghc.version}";
propagatedBuildInputs = [ghc];
unpackPhase = "true";
installPhase = "true";
setupHook = ./setup-hook.sh;
inherit ghc;
ghcVersion = ghc.version;
}

View File

@ -1,7 +1,7 @@
{stdenv, fetchurl, bison, flex}:
stdenv.mkDerivation {
name = "iasl-20090123.tar.gz";
name = "iasl-20090123";
src = fetchurl {
url = http://www.acpica.org/download/acpica-unix-20090123.tar.gz;
md5 = "4ca6484acbf16cf67fd4ba91d32fd0a0";

View File

@ -28,11 +28,11 @@ rec {
strategoxt = stdenv.mkDerivation rec {
name = "strategoxt-0.17pre18269";
name = "strategoxt-0.17pre18583";
src = fetchurl {
url = "http://releases.strategoxt.org/strategoxt/${name}-a0f0wy0j/${name}.tar.gz";
sha256 = "7c51c2452bd45f34cd480b6b3cbaac50e0fc53fbb1a884d97cf4e2c2b5330577";
url = "http://releases.strategoxt.org/strategoxt/strategoxt-0.17pre18583-i573smdl/strategoxt-0.17pre18583.tar.gz";
sha256 = "4769d82a62d1c53fc3f4631ddef489e638ff2361a2eceb1226f2b56ab45b7784";
};
buildInputs = [pkgconfig aterm sdf getopt];

View File

@ -9,7 +9,7 @@ let
buildInputs = with args; [
zlib sqlite gmp libffi cairo ncurses freetype mesa
libpng libtiff libjpeg readline libsndfile libxml2
freeglut e2fsprogs libsamplerate pcre libevent editline
freeglut e2fsprogs libsamplerate pcre libevent libedit
];
in
rec {

View File

@ -1,10 +1,10 @@
{stdenv, fetchurl, ncurses, readline}:
stdenv.mkDerivation {
name = "lua-5.1.2";
name = "lua-5.1.4";
src = fetchurl {
url = http://www.lua.org/ftp/lua-5.1.2.tar.gz;
sha256 = "17ixifwgjva5592s2rn1ki56wa7hgw0z210r4bcx5lv8zv39iw2w";
url = http://www.lua.org/ftp/lua-5.1.4.tar.gz;
sha256 = "0fmgk100ficm1jbm4ga9xy484v4cm89wsdfckdybb9gjx8jy4f5h";
};
buildFlags = "linux"; # TODO: support for non-linux systems
installFlags = "install INSTALL_TOP=\${out}";

View File

@ -36,6 +36,8 @@ stdenv.mkDerivation {
url = "mirror://sourceforge/boost/boost_1_38_0.tar.bz2";
sha256 = "0rk044s4m7l4sma6anml34vxcd9w0fzcy1cy7csbzynjyida9qry";
};
patches = [ ./classr.patch ];
buildInputs = [icu expat zlib bzip2 python];

View File

@ -0,0 +1,15 @@
Taken from http://wiki.freebsd.org/BoostPortingProject
--- boost1.38/boost/function/function_template.hpp.orig 2008-10-16 17:21:50.000000000 +0400
+++ boost1.38_2/boost/function/function_template.hpp 2009-03-25 04:12:15.000000000 +0300
@@ -950,10 +950,10 @@
f.vtable->manager(f.functor, this->functor,
boost::detail::function::move_functor_tag);
f.vtable = 0;
-#if !defined(BOOST_NO_EXCEPTIONS)
} else {
clear();
}
+#if !defined(BOOST_NO_EXCEPTIONS)
} catch (...) {
vtable = 0;
throw;

View File

@ -1,10 +0,0 @@
{ stdenv, fetchurl, ncurses }:
stdenv.mkDerivation {
name = "editline-2.11";
src = fetchurl {
url = http://www.thrysoee.dk/editline/libedit-20080712-2.11.tar.gz;
sha256 = "6ff51a15d1ada16c44be0f32a539b492cd3b0286c3dfa413915525f55851d1e6";
};
propagatedBuildInputs = [ ncurses ];
}

View File

@ -0,0 +1,15 @@
{cabal, QuickCheck, binary, haskeline, haskellSrc, mtl, utf8String, xhtml, zlib,
happy, alex}:
cabal.mkDerivation (self : {
pname = "Agda";
version = "2.2.2";
sha256 = "265dbb5bc6d67bfeefa4a2a4ac9e5018d6d8b5c1a75816e05da2661c43a39bba";
extraBuildInputs = [happy alex];
propagatedBuildInputs =
[QuickCheck binary haskeline haskellSrc mtl utf8String xhtml zlib];
meta = {
description = "A dependently typed functional language and proof assistant";
};
})

View File

@ -0,0 +1,12 @@
{cabal, OpenGL, glut, libSM, libICE, libXmu, libXi, mesa}:
cabal.mkDerivation (self : {
pname = "GLUT";
version = "2.1.1.2"; # Haskell Platform 2009.0.0
sha256 = "d5ecf4b6bacc5e68ade00710df04fa158c6ed322c74362954716a0baba6bd3fb";
propagatedBuildInputs = [OpenGL glut libSM libICE libXmu libXi mesa];
meta = {
description = "A binding for the OpenGL Utility Toolkit";
};
})

View File

@ -1,9 +1,10 @@
{cabal}:
{cabal, mtl, network, parsec}:
cabal.mkDerivation (self : {
pname = "HTTP";
version = "3001.0.0";
sha256 = "0d1ixrylb7vl5q963r31jc8gsqm24bkjas4dyi6ks8kbhzrgrw17";
version = "4000.0.5"; # Haskell Platform 2009.0.0
sha256 = "54cbb211e73f183aa91780afd6cc7c830edef1b2eb5ce8dc05e5fa539bb685d8";
propagatedBuildInputs = [mtl network parsec];
meta = {
description = "a Haskell library for client-side HTTP";
};

View File

@ -0,0 +1,11 @@
{cabal}:
cabal.mkDerivation (self : {
pname = "HUnit";
version = "1.2.0.3"; # Haskell Platform 2009.0.0
sha256 = "954f584f7c096c3ddef677e70b3811195bb4fd18dfdb4727a260ca7d7465de12";
meta = {
description = "A unit testing framework for Haskell";
};
})

View File

@ -0,0 +1,12 @@
{cabal, OpenGL, openal}:
cabal.mkDerivation (self : {
pname = "OpenAL";
version = "1.3.1.1"; # Haskell Platform 2009.0.0
sha256 = "4875e015770feb93d5127d4b6f2338eb3957a0c36f64ccb8b3846010619f89b0";
propagatedBuildInputs = [OpenGL openal];
meta = {
description = "A binding to the OpenAL cross-platform 3D audio API";
};
})

View File

@ -0,0 +1,12 @@
{cabal, mesa, libX11}:
cabal.mkDerivation (self : {
pname = "OpenGL";
version = "2.2.1.1"; # Haskell Platform 2009.0.0
sha256 = "926ca25cf9502cdaaeb8ade484015468cb60594e1bfbf0e04bd01235d8d9a792";
propagatedBuildInputs = [mesa libX11];
meta = {
description = "A binding for the OpenGL graphics system";
};
})

View File

@ -0,0 +1,13 @@
{cabal, mtl}:
cabal.mkDerivation (self : {
pname = "QuickCheck";
version = "2.1.0.1";
sha256 = "f99edf1a45315e90c9ec672d5d959d5878dcc1de65678c6aed85829a896b75f1";
propagatedBuildInputs = [mtl];
configureFlags = ''--constraint=base<4'';
meta = {
description = "Automatic testing of Haskell programs";
};
})

View File

@ -0,0 +1,11 @@
{cabal}:
cabal.mkDerivation (self : {
pname = "QuickCheck";
version = "1.2.0.0"; # Haskell Platform 2009.0.0
sha256 = "21672d817913ac7ab6d3fd7f102dd5d0f115a0826c95b9604c8c0b0171e8d4ed";
meta = {
description = "Automatic testing of Haskell programs";
};
})

View File

@ -4,8 +4,8 @@ assert xineramaSupport -> (libXinerama != null && libXext != null);
cabal.mkDerivation (self : {
pname = "X11";
version = "1.4.2";
sha256 = "7a37ba1adee9c30a27013ea7058e907c2348ef08eaa79c9895e62e4f0d73d2aa";
version = "1.4.5";
sha256 = "6665056b9fe5801ca27bf960a90215c940ae70b549753efed0303d5ed8d89ddb";
propagatedBuildInputs = [libX11] ++ (if xineramaSupport then [libXinerama libXext] else []);
meta = {
description = "A Haskell binding to the X11 graphics library";

View File

@ -2,10 +2,9 @@
cabal.mkDerivation (self : {
pname = "binary";
version = "0.4.1";
sha256 = "bb74824306843da25f6d97c271e2a06ee3a7e05fc529156fb81d7c576688e549";
version = "0.5.0.1";
sha256 = "1j5injgrwkjwl7lv6sqx4m033s3rrkspq690cb0ckfh267vsyig1";
meta = {
description = "Efficient, pure binary serialisation using lazy ByteStrings";
};
})

View File

@ -17,7 +17,7 @@ attrs :
# all packages with haskell- to avoid name clashes for libraries;
# if that is not desired (for applications), name can be set to
# fname.
name = "haskell-${self.fname}";
name = "haskell-${self.pname}-ghc${attrs.ghc.ghc.version}-${self.version}";
# the default download location for Cabal packages is Hackage,
# you still have to specify the checksum
@ -39,22 +39,14 @@ attrs :
# library directories that have to be added to the Cabal files
extraLibDirs = map (x : x + "/lib") self.propagatedBuildInputs;
# file(s) that have to be patched with information about extra libraries;
# can be redefined to the empty list by the client if this is not desired
patchLibFiles = [ "${self.pname}.cabal" ];
# patches files, compiles Setup, and configures
# compiles Setup and configures
configurePhase = ''
eval "$preConfigure"
for i in ${toString self.patchLibFiles}; do
echo "patching $i"
test -f $i && sed -i '/[eE]xtra-[lL]ibraries/ { s|\( *\)[eE]xtra-[lL]ibraries.*|&\n\1extra-lib-dirs: ${toString self.extraLibDirs}| }' $i
done
for i in Setup.hs Setup.lhs; do
test -f $i && ghc --make $i
done
./Setup configure --verbose --prefix="$out"
./Setup configure --verbose --prefix="$out" ${toString (map (x : "--extra-lib-dir=" + x) self.extraLibDirs)} $configureFlags
eval "$postConfigure"
'';
@ -70,24 +62,19 @@ attrs :
# installs via Cabal; creates a registration file for nix-support
# so that the package can be used in other Haskell-builds; also
# creates a register-${name}.sh in userspace that can be used to
# register the library in a user environment (but this scheme
# should sooner or later be deprecated in favour of using a
# ghc-wrapper).
# adds all propagated build inputs to the user environment packages
installPhase = ''
eval "$preInstall"
./Setup copy
./Setup register --gen-script
mkdir -p $out/nix-support
if test -f register.sh; then
sed -i 's/|.*\(ghc-pkg update\)/| \1/' register.sh
cp register.sh $out/nix-support/register-ghclib.sh
sed -i 's/\(ghc-pkg update\)/\1 --user/' register.sh
mkdir -p $out/bin
cp register.sh $out/bin/register-${self.name}.sh
fi
local confDir=$out/lib/ghc-pkgs/ghc-${attrs.ghc.ghc.version}
ensureDir $confDir
./Setup register --gen-pkg-config=$confDir/${self.fname}.conf
ensureDir $out/nix-support
ln -s $out/nix-support/propagated-build-inputs $out/nix-support/propagated-user-env-packages
eval "$postInstall"
'';
};

View File

@ -0,0 +1,12 @@
{cabal, mtl, network, parsec, xhtml}:
cabal.mkDerivation (self : {
pname = "cgi";
version = "3001.1.7.1"; # Haskell Platform 2009.0.0
sha256 = "7d1d710871fffbbec2a33d7288b2959ddbcfd794d47f0122127576c02550b339";
propagatedBuildInputs = [mtl network parsec xhtml];
meta = {
description = "A library for writing CGI programs";
};
})

View File

@ -1,21 +1,12 @@
{ cabal, editline } :
{ cabal, libedit } :
cabal.mkDerivation (self : {
pname = "editline";
version = "0.2";
sha256 = "6ee0b553cc8d7542c096730ceebabdcb9b2951d7b00a5a0ddbf47b5436a77ce4";
propagatedBuildInputs = [ editline ];
patchLibFiles = [ "editline.buildinfo.in" ];
preConfigure = ''
sed -i -e '/el_get/d' include/HsEditline.h
'';
# I don't quite understand why ncurses as an extra-library is harmful, but
# it works only if we remove it ...
postConfigure = ''
sed -i -e 's/ncurses//' editline.buildinfo
'';
version = "0.2.1.0";
sha256 = "83618e5f86074fdc11d7f5033aa2886284462941be38fa02966acc92712c46e1";
propagatedBuildInputs = [ libedit ];
meta = {
description = "Binding to the BSD editline library";
description = "Binding to the BSD editline library (libedit)";
};
})

View File

@ -0,0 +1,11 @@
{cabal}:
cabal.mkDerivation (self : {
pname = "extensible-exceptions";
version = "0.1.1.0";
sha256 = "c252dc5a505332700f041d4e1fd3d309cde6158892f9c35339bf5e67bad7f781";
meta = {
description = "Extensible exceptions";
};
})

View File

@ -0,0 +1,12 @@
{cabal, mtl}:
cabal.mkDerivation (self : {
pname = "fgl";
version = "5.4.2.2";
sha256 = "8232c337f0792854bf2a12a5fd1bc46726fff05d2f599053286ff873364cd7d2";
propagatedBuildInputs = [mtl];
meta = {
description = "Martin Erwig's Functional Graph Library";
};
})

View File

@ -0,0 +1,11 @@
{ cabal } :
cabal.mkDerivation (self : {
pname = "ghc-paths";
version = "0.1.0.5";
sha256 = "ea9e97425894e3dbd7915e00e107e2e7fc07b6e8293fd2dd66a813f0673cba10";
meta = {
description = "Knowledge of GHC's installations directories";
};
})

View File

@ -1,20 +1,31 @@
{stdenv, fetchurl, pkgconfig, ghc, gtk, cairo, GConf, libglade
, glib, libgtkhtml, gtkhtml}:
{ stdenv, fetchurl, pkgconfig, gnome, cairo, ghc, mtl }:
stdenv.mkDerivation (rec {
let gtksourceview = gnome.gtksourceview_24; in
stdenv.mkDerivation rec {
pname = "gtk2hs";
version = "0.9.12.1";
version = "0.10.0";
fname = "${pname}-${version}";
name = "haskell-${fname}";
name = "haskell-${pname}-ghc${ghc.ghc.version}-${version}";
src = fetchurl {
url = "mirror://sourceforge/${pname}/${fname}.tar.gz";
sha256 = "110z6v9gzhg6nzlz5gs8aafmipbva6rc50b8z1jgq0k2g25hfy22";
url = http://nixos.org/tarballs/gtk2hs-0.10.0-20090419.tar.gz;
sha256 = "18a7cfph83yvv91ks37nrgqrn21fvww8bhb8nd8xy1mgb8lnfds1";
};
propagatedBuildInputs = [mtl];
buildInputs = [pkgconfig ghc gtk glib cairo GConf libglade libgtkhtml gtkhtml];
configureFlags = [
"--enable-cairo"
buildInputs = [
pkgconfig cairo ghc gnome.glib gnome.gtk gnome.libglade
gnome.GConf gtksourceview gnome.librsvg
];
})
postInstall =
''
local confDir=$out/lib/ghc-pkgs/ghc-${ghc.ghc.version}
ensureDir $confDir
cp $out/lib/gtk2hs/*.conf $confDir/
''; # */
passthru = { inherit gtksourceview; };
}

View File

@ -0,0 +1,12 @@
{cabal, extensibleExceptions, mtl, utf8String}:
cabal.mkDerivation (self : {
pname = "haskeline";
version = "0.6.1.3";
sha256 = "af27d17bf6df7647e843bca91548b542748a5305f072ba7cfef97105a52578d4";
propagatedBuildInputs = [extensibleExceptions mtl utf8String];
meta = {
description = "A command-line interface for user input, written in Haskell";
};
})

View File

@ -0,0 +1,29 @@
{cabal, fetchurl, GLUT, HTTP, HUnit, OpenAL, OpenGL, QuickCheck, cgi, fgl,
haskellSrc, html, parallel, regexBase, regexCompat, regexPosix,
stm, time, xhtml, zlib, cabalInstall, alex, happy, haddock, ghc}:
cabal.mkDerivation (self : {
pname = "haskell-platform";
version = "2009.0.0";
src = fetchurl {
url = http://code.haskell.org/haskell-platform/haskell-platform.cabal;
sha256 = "cefe19076bed6450d3d8611ff1b29fd0966106787003abedec90544968f30d9c";
};
unpackPhase = ''
cp $src haskell-platform.cabal
'';
preConfigure = ''
sed -i 's/^.*cabal-install ==.*$//' haskell-platform.cabal
echo 'import Distribution.Simple; main = defaultMain' > Setup.hs
touch LICENSE
'';
propagatedBuildInputs = [
GLUT HTTP HUnit OpenAL OpenGL QuickCheck cgi fgl
haskellSrc html parallel regexBase regexCompat regexPosix
stm time xhtml zlib cabalInstall alex happy ghc
];
meta = {
description = "Haskell Platform meta package";
};
})

View File

@ -0,0 +1,13 @@
{cabal, cpphs, happy}:
cabal.mkDerivation (self : {
pname = "haskell-src-exts";
version = "0.4.8";
sha256 = "f059f698681b262b2a4725735b99ecbafec721ccadab65fcf075c2fc5d346dec";
extraBuildInputs = [happy];
propagatedBuildInputs = [cpphs];
meta = {
description = "Manipulating Haskell source: abstract syntax, lexer, parser, and pretty-printer";
};
})

View File

@ -0,0 +1,12 @@
{cabal, haskellSrcExts}:
cabal.mkDerivation (self : {
pname = "haskell-src-meta";
version = "0.0.3.1";
sha256 = "74d450fd9d50edfd3cdad5c2860da2af3454b280bd37b401e16e2f492bfb5e15";
propagatedBuildInputs = [haskellSrcExts];
meta = {
description = "Parse source to template-haskell abstract syntax";
};
})

View File

@ -0,0 +1,12 @@
{cabal, happy}:
cabal.mkDerivation (self : {
pname = "haskell-src";
version = "1.0.1.3"; # Haskell Platform 2009.0.0
sha256 = "a7872900acd2293775a6bdc6dc8f70438ccd80e62d2d1e2394ddff15b1883e89";
extraBuildInputs = [happy];
meta = {
description = "Manipulating Haskell source code";
};
})

View File

@ -0,0 +1,11 @@
{cabal}:
cabal.mkDerivation (self : {
pname = "hscolour";
version = "1.10.1";
sha256 = "293f24b8373be1d70d9e5a4b8d3c527166ad645b4ac983c1a6fc5999c44a2d36";
meta = {
description = "Colourise Haskell code";
};
})

View File

@ -0,0 +1,11 @@
{cabal}:
cabal.mkDerivation (self : {
pname = "html";
version = "1.0.1.2"; # Haskell Platform 2009.0.0
sha256 = "0c35495ea33d65e69c69bc7441ec8e1af69fbb43433c2aa3406c0a13a3ab3061";
meta = {
description = "HTML combinator library";
};
})

View File

@ -0,0 +1,11 @@
{cabal}:
cabal.mkDerivation (self : {
pname = "mtl";
version = "1.1.0.2"; # Haskell Platform 2009.0.0
sha256 = "a225aaf2b1e337f40c31e5c42f95eec9a4608322b0e4c135d2b31b8421a58d36";
meta = {
description = "Monad transformer library";
};
})

View File

@ -0,0 +1,11 @@
{cabal}:
cabal.mkDerivation (self : {
pname = "multirec";
version = "0.2";
sha256 = "66f748245020437ad30dbc25e2decae7d49c6d968c014b316c0961539892083c";
meta = {
description = "Generic programming with systems of recursive datatypes";
};
})

View File

@ -0,0 +1,12 @@
{cabal, parsec}:
cabal.mkDerivation (self : {
pname = "network";
version = "2.2.1"; # Haskell Platform 2009.0.0
sha256 = "111e4963a0a979570993e79511a778b267ef58df35320d1ddda61a869259b63c";
propagatedBuildInputs = [parsec];
meta = {
description = "Networking-related facilities";
};
})

View File

@ -0,0 +1,11 @@
{cabal}:
cabal.mkDerivation (self : {
pname = "parallel";
version = "1.1.0.1"; # Haskell Platform 2009.0.0
sha256 = "0885086660268f3626effacb29a02b5c81f3e5a8dfa99dabe0981ddbc407999f";
meta = {
description = "parallel programming library";
};
})

View File

@ -0,0 +1,11 @@
{cabal}:
cabal.mkDerivation (self : {
pname = "parsec";
version = "2.1.0.1"; # Haskell Platform 2009.0.0
sha256 = "2d85e5b5c8b2b1f341037ce67e1db7fa47b31c083136796cfef9e5b945c656df";
meta = {
description = "Monadic parser combinators";
};
})

View File

@ -0,0 +1,12 @@
{ cabal, readline } :
cabal.mkDerivation (self : {
pname = "readline";
version = "1.0.1.0";
sha256 = "07f2f039f32bf18838a4875d0f3caa3ed9436dd52b962b2061f0bb8a3316fa1d";
propagatedBuildInputs = [ readline ];
meta = {
description = "An interface to the GNU readline library";
};
})

View File

@ -0,0 +1,12 @@
{cabal, mtl}:
cabal.mkDerivation (self : {
pname = "regex-base";
version = "0.72.0.2"; # Haskell Platform 2009.0.0
sha256 = "38a4901b942fea646a422d52c52ef14eec4d6561c258b3c54cd96a8a354141ee";
propagatedBuildInputs = [mtl];
meta = {
description = "Replaces/Ehances Text.Regex";
};
})

View File

@ -0,0 +1,12 @@
{cabal, regexBase, regexPosix}:
cabal.mkDerivation (self : {
pname = "regex-compat";
version = "0.71.0.1"; # Haskell Platform 2009.0.0
sha256 = "904552f7d690686b2602f37494827d09b09fc0a8a2565522b61847bec8d1de8d";
propagatedBuildInputs = [regexBase regexPosix];
meta = {
description = "Replaces/Enhances Text.Regex";
};
})

View File

@ -0,0 +1,12 @@
{cabal, regexBase}:
cabal.mkDerivation (self : {
pname = "regex-posix";
version = "0.72.0.3"; # Haskell Platform 2009.0.0
sha256 = "327ab87f3d4f5315a9414331eb382b8b997de8836d577c3f7d232c574606feb1";
propagatedBuildInputs = [regexBase];
meta = {
description = "Replaces/Enhances Text.Regex";
};
})

View File

@ -0,0 +1,11 @@
{cabal}:
cabal.mkDerivation (self : {
pname = "stm";
version = "2.1.1.2"; # Haskell Platform 2009.0.0
sha256 = "68d550067ae180373142c51f3fa14bdf0a1516310aee9a37e28f9ac7cf3b8c6d";
meta = {
description = "Software Transactional Memory";
};
})

View File

@ -0,0 +1,12 @@
{cabal, parallel}:
cabal.mkDerivation (self : {
pname = "strict-concurrency";
version = "0.2.1";
sha256 = "8838600033bde2ce7ca6bd95a3815412da67244b57dfc0e2246a8f2469f5fd9c";
propagatedBuildInputs = [parallel];
meta = {
description = "Strict concurrency abstractions";
};
})

View File

@ -0,0 +1,11 @@
{cabal}:
cabal.mkDerivation (self : {
pname = "time";
version = "1.1.2.4"; # Haskell Platform 2009.0.0
sha256 = "11dfcb9b5ca76428a7a31019928c3c1898320f774e5d3df8e4407580d074fad3";
meta = {
description = "A time library";
};
})

View File

@ -0,0 +1,12 @@
{cabal, mtl}:
cabal.mkDerivation (self : {
pname = "uniplate";
version = "1.2.0.3";
sha256 = "77cf07c96ae62799d790284c0c84beca9ee17c9c2416d4de6641f3fddd644b58";
propagatedBuildInputs = [mtl];
meta = {
description = "Uniform type generic traversals";
};
})

View File

@ -0,0 +1,10 @@
{cabal}:
cabal.mkDerivation (self : {
pname = "utf8-string";
version = "0.3.4";
sha256 = "1gd5b5q5jw70mg0z8jjgqigc0wmvnc7fx2k3yfdsz20b9wsjfw7r";
meta = {
description = "A UTF8 layer for IO and Strings";
};
})

View File

@ -2,9 +2,9 @@
cabal.mkDerivation (self : {
pname = "uulib";
version = "0.9.5";
sha256 = "38415725133af464de582dadc7d7e60b1aeb96344b18b239d176bf2181f98563";
version = "0.9.10";
sha256 = "1df7336ed76c278323c2e25ab53ec1afc9eba6a7c918c826e9f783e84479e08f";
meta = {
description = "Fast Parser Combinators and Pretty Printing Combinators";
description = "Haskell Utecht Tools Library";
};
})

View File

@ -0,0 +1,12 @@
{cabal, ghcPaths, haskellSrcMeta}:
cabal.mkDerivation (self : {
pname = "vacuum";
version = "0.0.91";
sha256 = "9240ec35b39d60928a73469893adf1d2aa742b9a781dbc6dcdaa54e96d9bf1af";
propagatedBuildInputs = [ghcPaths haskellSrcMeta];
meta = {
description = "Extract graph representations of ghc heap values";
};
})

View File

@ -0,0 +1,12 @@
{cabal, vacuum, gtk2hs, parallel, strictConcurrency}:
cabal.mkDerivation (self : {
pname = "vacuum-cairo";
version = "0.4.1";
sha256 = "4d506fec246d40e5c983eea1dbd72735e276f882539aa3682cda9d9a33f8ddb2";
propagatedBuildInputs = [vacuum gtk2hs parallel strictConcurrency];
meta = {
description = "Visualize live Haskell data structures using vacuum, graphviz and cairo";
};
})

View File

@ -0,0 +1,11 @@
{cabal}:
cabal.mkDerivation (self : {
pname = "xhtml";
version = "3000.2.0.1"; # Haskell Platform 2009.0.0
sha256 = "60d7a44ae6d607475e2d60c5bf9909b8a3bd88850d52b08ff1532aa6d58bec96";
meta = {
description = "An XHTML combinator library";
};
})

View File

@ -2,8 +2,10 @@
cabal.mkDerivation (self : {
pname = "zlib";
version = "0.4.0.2";
sha256 = "e6e9e51ca5b7f1685eb031f826f7865acc10cc2c8d0dfad975e0e81fd17f17ed";
version = "0.5.0.0"; # Haskell Platform 2009.0.0
sha256 = "20e067cfbec87ec062ac144875a60e158ea6cf7836aac031ec367fcdd5446891";
# TODO: find out exactly why propagated is needed here (to build other
# packages depending on zlib):
propagatedBuildInputs = [zlib];
meta = {
description = "Compression and decompression in the gzip and zlib formats";

Some files were not shown because too many files have changed in this diff Show More