* Sync with trunk.

svn path=/nixpkgs/branches/stdenv-updates/; revision=13903
This commit is contained in:
Eelco Dolstra 2009-01-29 16:33:02 +00:00
commit c584bb878a
67 changed files with 1254 additions and 288 deletions

View file

@ -1,13 +1,13 @@
args: with args; args: with args;
let version = "6.4.1-1"; in let version = "6.4.8-9"; in
stdenv.mkDerivation (rec { stdenv.mkDerivation (rec {
name = "ImageMagick-${version}"; name = "ImageMagick-${version}";
src = fetchurl { src = fetchurl {
url = "mirror://imagemagick/${name}.tar.bz2"; url = "mirror://imagemagick/${name}.tar.bz2";
sha256 = "0a8defbfa867bb5e969f898d9a3b65a8c4f6952cb71411b40f005dd0a183644e"; sha256 = "1ngfs99wryrc7v5pqrjbcrvhsilc29iaj6zplzxm450f49xmpidq";
}; };
configureFlags = '' configureFlags = ''

View file

@ -1,3 +1,7 @@
Work around Python misdetection and set `PYTHON_LIBS' to
"-L/nix/store/... -lpython2.4" instead of "/nix/store/.../libpython2.4.so".
Changed to 2.5.
--- inkscape-0.45.1/configure 2007-03-20 14:56:43.000000000 +0100 --- inkscape-0.45.1/configure 2007-03-20 14:56:43.000000000 +0100
+++ inkscape-0.45.1/configure 2008-02-22 16:19:10.000000000 +0100 +++ inkscape-0.45.1/configure 2008-02-22 16:19:10.000000000 +0100
@@ -10202,7 +10202,7 @@ if test "x$with_python" = "xyes"; then @@ -10202,7 +10202,7 @@ if test "x$with_python" = "xyes"; then

View file

@ -8,10 +8,7 @@ stdenv.mkDerivation rec {
sha256 = "0flrjqa68vnnn8lrhj86xpa6h2cyzrvjy6873v9id092f86ix1li"; sha256 = "0flrjqa68vnnn8lrhj86xpa6h2cyzrvjy6873v9id092f86ix1li";
}; };
# Work around Python misdetection and set `PYTHON_LIBS' to patches = [ ./configure-python-libs.patch ./libpng-setjmp.patch ];
# "-L/nix/store/... -lpython2.4" instead of "/nix/store/.../libpython2.4.so".
# Changed to 2.5
patches = [ ./configure-python-libs.patch ];
propagatedBuildInputs = [ propagatedBuildInputs = [
# Python is used at run-time to execute scripts, e.g., those from # Python is used at run-time to execute scripts, e.g., those from

View file

@ -0,0 +1,62 @@
Include <png.h> as early as possible to make sure <setjmp.h> is not
included before it.
See http://thread.gmane.org/gmane.linux.distributions.nixos/1501 .
--- inkscape-0.46/src/sp-image.cpp 2008-03-11 05:19:56.000000000 +0100
+++ inkscape-0.46/src/sp-image.cpp 2009-01-26 15:34:33.000000000 +0100
@@ -17,6 +17,8 @@
# include "config.h"
#endif
+#include <png.h>
+
#include <cstring>
#include <string>
#include <libnr/nr-matrix-fns.h>
@@ -41,7 +43,6 @@
#include "libnr/nr-matrix-fns.h"
#include "io/sys.h"
-#include <png.h>
#if ENABLE_LCMS
#include "color-profile-fns.h"
#include "color-profile.h"
--- inkscape-0.46/src/dialogs/export.cpp 2008-03-11 05:19:54.000000000 +0100
+++ inkscape-0.46/src/dialogs/export.cpp 2009-01-26 17:01:13.000000000 +0100
@@ -20,6 +20,7 @@
# include "config.h"
#endif
+#include <png.h>
#include <gtk/gtk.h>
#include <gtkmm/box.h>
#include <gtkmm/buttonbox.h>
@@ -60,7 +61,6 @@
#include "io/sys.h"
#include "helper/png-write.h"
-#include <png.h>
#define SP_EXPORT_MIN_SIZE 1.0
--- inkscape-0.46/src/main.cpp 2008-03-11 05:20:50.000000000 +0100
+++ inkscape-0.46/src/main.cpp 2009-01-26 17:57:12.000000000 +0100
@@ -26,6 +26,7 @@
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
+#include <png.h>
#include "path-prefix.h"
#include <gtk/gtkmessagedialog.h>
@@ -111,7 +112,6 @@ using Inkscape::Extension::Internal::Pri
#include "main-cmdlineact.h"
-#include <png.h>
#include <errno.h>
enum {

View file

@ -13,17 +13,17 @@
{ stdenv, fetchurl, pkgconfig, gtk, gtkspell, aspell, { stdenv, fetchurl, pkgconfig, gtk, gtkspell, aspell,
GStreamer, startupnotification, gettext, GStreamer, startupnotification, gettext,
perl, perlXMLParser, libxml2, nss, perl, perlXMLParser, libxml2, nss,
libXScrnSaver, ncurses, avahi, dbus, dbus_glib libXScrnSaver, ncurses, avahi, dbus, dbus_glib, intltool
, lib , lib
, openssl ? null , openssl ? null
, gnutls ? null , gnutls ? null
} : } :
stdenv.mkDerivation { stdenv.mkDerivation {
name = "pidgin-2.5.2"; name = "pidgin-2.5.4";
src = fetchurl { src = fetchurl {
url = mirror://sourceforge/pidgin/pidgin-2.5.2.tar.bz2; url = mirror://sourceforge/pidgin/pidgin-2.5.4.tar.bz2;
sha256 = "1p39nvwy3c7wc97a6i88f6rrg5d3a6vv0wdard4vkfmva81l24r0"; sha256 = "0qqvv9x5p2yxmw57sj3hvc10vxpd9mqv61w1pk97qcwbggwvxgn6";
}; };
inherit nss ncurses; inherit nss ncurses;
@ -36,7 +36,7 @@ stdenv.mkDerivation {
++ ++
[nss [nss
libXScrnSaver ncurses libXScrnSaver ncurses
avahi dbus dbus_glib avahi dbus dbus_glib intltool
] ]
; ;

View file

@ -1,9 +1,9 @@
{stdenv, fetchurl}: {stdenv, fetchurl}:
stdenv.mkDerivation { stdenv.mkDerivation {
name = "rsync-3.0.4"; name = "rsync-3.0.5";
src = fetchurl { src = fetchurl {
url = http://rsync.samba.org/ftp/rsync/src/rsync-3.0.4.tar.gz; url = http://rsync.samba.org/ftp/rsync/src/rsync-3.0.5.tar.gz;
sha256 = "0lfyrs8vj47p1p19b0f5grxhxcn00hpb1yvvprbwzr6j077ljfkl"; sha256 = "1js36yv5s9dic524s7jczqk5myzp67bp24rqhbnikg6lh6pj1b20";
}; };
} }

View file

@ -0,0 +1,20 @@
{stdenv, fetchurl, readline, openssh}:
stdenv.mkDerivation {
name = "yafc-1.1.1";
src = fetchurl {
url = mirror://sourceforge/yafc/yafc-1.1.1.tar.bz2;
sha256 = "ab72b2ed89fb75dbe8ebd119458cf513392225f367cccfad881e9780aefcd7e6";
};
buildInputs = [readline openssh];
patchPhase = "
sed -e 's@/usr/bin/ssh@${openssh}/bin/ssh@' -i src/main.c
";
meta = {
description = "ftp/sftp client with readline, autocompletion and bookmarks";
homepage = http://yafc.sourceforge.net;
};
}

View file

@ -4,10 +4,10 @@ enchant, wv
}: }:
stdenv.mkDerivation { stdenv.mkDerivation {
name = "abiword-2.6.4"; name = "abiword-2.6.6";
src = fetchurl { src = fetchurl {
url = http://www.abisource.com/downloads/abiword/2.6.4/source/abiword-2.6.4.tar.gz; url = http://www.abisource.org/downloads/abiword/2.6.6/source/abiword-2.6.6.tar.gz;
sha256 = "1zp9p2dfrskn7r827ivvii2477ysxkvrsshk79hgw3xhd5mplbad"; sha256 = "1cgi6l3wd82vgni4wcqasyl2rvxwffliyqgbwvzv0nn99wasg5gx";
}; };
buildInputs = [pkgconfig gtk libglade libgnomeprint libgnomeprintui buildInputs = [pkgconfig gtk libglade libgnomeprint libgnomeprintui

View file

@ -0,0 +1,71 @@
/* moving all git tools into one attribute set because git is unlikely to be
* referenced by other packages and you can get a fast overview.
*/
args: with args; with pkgs;
let
inherit (pkgs) stdenv fetchurl getConfig;
inherit (pkgs.bleedingEdgeRepos) sourceByName;
in
rec {
git = import ./git {
inherit fetchurl stdenv curl openssl zlib expat perl gettext
asciidoc texinfo xmlto docbook2x
docbook_xsl docbook_xml_dtd_42 libxslt
cpio tcl tk makeWrapper subversion;
svnSupport = getConfig ["git" "svnSupport"] false; # for git-svn support
guiSupport = getConfig ["git" "guiSupport"] false;
perlLibs = [perlLWP perlURI perlTermReadKey subversion];
};
gitGit = import ./git/git-git.nix {
inherit fetchurl stdenv curl openssl zlib expat perl gettext
asciidoc texinfo xmlto docbook2x
docbook_xsl docbook_xml_dtd_42 libxslt
cpio tcl tk makeWrapper subversion autoconf;
inherit (bleedingEdgeRepos) sourceByName;
svnSupport = getConfig ["git" "svnSupport"] false; # for git-svn support
guiSupport = getConfig ["git" "guiSupport"] false;
perlLibs = [perlLWP perlURI perlTermReadKey subversion];
};
qgit = import ./qgit {
inherit fetchurl stdenv;
inherit (xlibs) libXext libX11;
qt = qt3;
};
qgitGit = import ./qgit/qgit-git.nix {
inherit fetchurl stdenv;
inherit (xlibs) libXext libX11;
inherit (bleedingEdgeRepos) sourceByName;
qt = qt4;
};
stgit = import ./stgit {
inherit fetchurl stdenv python git;
};
topGit = stdenv.mkDerivation {
name = "TopGit-git-patched";
src = sourceByName "topGit"; # destination directory is patched
installPhase = ''
mkdir -p $out/etc/bash_completion.d
make install
mv contrib/tg-completion.bash $out/etc/bash_completion.d
'';
dontPatchELF = 1;
meta = {
description = "TopGit aims to make handling of large amount of interdependent topic branches easier";
homepage = http://repo.or.cz/w/topgit.git; # maybe there is also another one, I haven't checked
license = "GPLv2";
};
};
hg2git = import ./hg2git {
inherit fetchurl stdenv mercurial coreutils git makeWrapper;
inherit (bleedingEdgeRepos) sourceByName;
};
}

View file

@ -0,0 +1,28 @@
make sure `gitman.info' isn't produced since it's broken (duplicate
node names).
diff --git a/Documentation/Makefile b/Documentation/Makefile
--- a/Documentation/Makefile
+++ b/Documentation/Makefile
@@ -84,7 +84,7 @@ man1: $(DOC_MAN1)
man5: $(DOC_MAN5)
man7: $(DOC_MAN7)
-info: git.info gitman.info
+info: git.info
install: man
$(INSTALL) -d -m 755 $(DESTDIR)$(man1dir)
@@ -96,10 +96,9 @@ install: man
install-info: info
$(INSTALL) -d -m 755 $(DESTDIR)$(infodir)
- $(INSTALL) -m 644 git.info gitman.info $(DESTDIR)$(infodir)
+ $(INSTALL) -m 644 git.info $(DESTDIR)$(infodir)
if test -r $(DESTDIR)$(infodir)/dir; then \
$(INSTALL_INFO) --info-dir=$(DESTDIR)$(infodir) git.info ;\
- $(INSTALL_INFO) --info-dir=$(DESTDIR)$(infodir) gitman.info ;\
else \
echo "No directory found in $(DESTDIR)$(infodir)" >&2 ; \
fi

View file

@ -14,11 +14,16 @@ assert svnSupport -> (subversion != null && perlLibs != [] && subversion.perlBin
assert svnSupport -> subversion.perlBindings; assert svnSupport -> subversion.perlBindings;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
# the glob patch adds the filter [touching paths (glob)] to gitk
# contact marco-oweber@gmx.de if you want to know more details
name = "git-git-with-glob-patch"; name = "git-git-with-glob-patch";
src = sourceByName "git"; src = sourceByName "git";
patches = [ ./glob-path.patch ./docbook2texi.patch ]; patchePhase = ''
patch -p1 < ${./docbook2texi-2.patch}
sed -i 's/docbook2x-texi/docbook2texi/gc' Documentation/Makefile
'';
# maybe this introduces unneccessary dependencies ? # maybe this introduces unneccessary dependencies ?
patchPhase = " patchPhase = "
unset patchPhase; patchPhase; unset patchPhase; patchPhase;

View file

@ -0,0 +1,26 @@
args: with args;
stdenv.mkDerivation {
name = "hg2git";
src = sourceByName "hg2git";
buildInputs =([mercurial.python mercurial makeWrapper]);
installPhase = ''
ensureDir $out/bin;
cp hg2git.sh hg2git.py $out/bin
cat >> $out/bin/hg2git-doc << EOF
#!${coreutils}/bin/cat
$(cat hg2git.txt)
EOF
chmod +x $out/bin/hg2git-doc
wrapProgram $out/bin/hg2git.sh \
--set PYTHONPATH "$(echo ${mercurial}/lib/python*/site-packages)"
'';
meta = {
description = "mercurial to git one way conversion";
homepage = "http://git.grml.org/?p=hg-to-git.git;a=summary";
license = "?"; # the .py file is GPLv2
};
}

View file

@ -0,0 +1,17 @@
{stdenv, fetchurl, qt, libXext, libX11, sourceByName}:
stdenv.mkDerivation rec {
name = "qgit-git";
meta =
{
license = "GPLv2";
homepage = "http://digilander.libero.it/mcostalba/";
description = "Graphical front-end to Git";
};
src = sourceByName "qgit";
buildInputs = [qt libXext libX11];
buildPhase = ''
qmake PREFIX=$out
make
'';
}

View file

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

View file

@ -0,0 +1,47 @@
{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,29 @@
{ stdenv, fetchurl, pkgconfig, x11, xlibs, dbus, imlib2, freetype }:
let version = "0.16.8.15"; in
stdenv.mkDerivation {
name = "enlightenment-${version}";
src = fetchurl {
url = "mirror://sourceforge/enlightenment/e16-${version}.tar.gz";
sha256 = "0f8hg79mrk6b3fsvynvsrnqh1zgmvnnza0lf7qn4pq2mqyigbhgk";
};
buildInputs = [pkgconfig imlib2 freetype
xlibs.libX11 xlibs.libXt xlibs.libXext xlibs.libXrender xlibs.libXft ];
meta = {
description = "Desktop shell built on the Enlightenment Foundation Libraries";
longDescription = ''
Enlightenment is a window manager. Enlightenment is a desktop
shell. Enlightenment is the building blocks to create
beautiful applications. Enlightenment, or simply e, is a
group of people trying to make a new generation of software.
'';
homepage = http://enlightenment.org/;
license = "BSD-style";
};
}

View file

@ -0,0 +1,18 @@
{stdenv, fetchurl}:
stdenv.mkDerivation {
name = "dev86-0.16.17";
src = fetchurl {
url = http://homepage.ntlworld.com/robert.debath/dev86/Dev86src-0.16.17.tar.gz;
md5 = "e7bbfdbe61c2fb964994a087e29b0087";
};
preBuild = "
makeFlags=\"PREFIX=$out\"
";
meta = {
description = "Linux 8086 development environment";
homepage = http://www.debath.co.uk/;
};
}

View file

@ -1,14 +1,15 @@
{stdenv, fetchurl, readline, ghc, perl, m4, gmp, ncurses}: {stdenv, fetchurl, readline, ghc, perl, m4, gmp, ncurses}:
stdenv.mkDerivation (rec { stdenv.mkDerivation (rec {
name = "ghc-6.8.2"; version = "6.8.2";
name = "ghc-${version}";
homepage = "http://www.haskell.org/ghc"; homepage = "http://www.haskell.org/ghc";
src = map fetchurl [ src = map fetchurl [
{ url = "${homepage}/dist/stable/dist/${name}-src.tar.bz2"; { url = "${homepage}/dist/${version}/${name}-src.tar.bz2";
md5 = "745c6b7d4370610244419cbfec4b2f84"; sha256 = "2d10f973c35e8d7d9f62b53e26fef90177a9a15105cda4b917340ba7696a22d9";
} }
{ url = "${homepage}/dist/stable/dist/${name}-src-extralibs.tar.bz2"; { url = "${homepage}/dist/${version}/${name}-src-extralibs.tar.bz2";
md5 = "d199c50814188fb77355d41058b8613c"; md5 = "d199c50814188fb77355d41058b8613c";
} }
]; ];

View file

@ -0,0 +1,27 @@
{stdenv, fetchurl, bison, flex}:
stdenv.mkDerivation {
name = "iasl-20090123.tar.gz";
src = fetchurl {
url = http://www.acpica.org/download/acpica-unix-20090123.tar.gz;
md5 = "4ca6484acbf16cf67fd4ba91d32fd0a0";
};
buildPhase = "
cd compiler
make
cd ..
";
installPhase = "
install -d $out/bin
install compiler/iasl $out/bin
";
buildInputs = [ bison flex ];
meta = {
description = "Intel ACPI Compiler";
homepage = http://www.acpica.org/;
};
}

View file

@ -17,7 +17,10 @@ stdenv.mkDerivation
configureFlags = if static then "--disable-dynamic" else "--enable-dynamic"; configureFlags = if static then "--disable-dynamic" else "--enable-dynamic";
CPPFLAGS = "-DNDEBUG"; CPPFLAGS = "-DNDEBUG";
CFLAGS = "-O3"; CFLAGS = "-O3";
doCheck = 1;
# FIXME: The test suite fails on NixOS in a chroot. See
# http://thread.gmane.org/gmane.linux.distributions.nixos/1328 for details.
doCheck = false;
# adns doesn't understand the automatic --disable-shared from the Cygwin stdenv. # adns doesn't understand the automatic --disable-shared from the Cygwin stdenv.
cygwinConfigureEnableShared = true; cygwinConfigureEnableShared = true;

View file

@ -8,27 +8,50 @@
assert postscriptSupport -> zlib != null; assert postscriptSupport -> zlib != null;
assert pngSupport -> libpng != null; assert pngSupport -> libpng != null;
stdenv.mkDerivation { stdenv.mkDerivation rec {
name = "cairo-1.8.0"; name = "cairo-1.8.6";
src = fetchurl { src = fetchurl {
url = http://cairographics.org/releases/cairo-1.8.0.tar.gz; url = "http://cairographics.org/releases/${name}.tar.gz";
sha1 = "8a689ca47c24216f37bb8cabae21ff08a7f47899"; sha256 = "0d9mfwq7r66j85hqjcjavwbn7c8gdaqnahmmiyz5iwpc1jplg8wk";
}; };
buildInputs = [ buildInputs = [
pkgconfig x11 fontconfig freetype pixman libxcb xcbutil pkgconfig x11 fontconfig pixman libxcb xcbutil
]; ];
propagatedBuildInputs = propagatedBuildInputs =
[ freetype ] ++
stdenv.lib.optional postscriptSupport zlib ++ stdenv.lib.optional postscriptSupport zlib ++
stdenv.lib.optional pngSupport libpng; stdenv.lib.optional pngSupport libpng;
configureFlags = ["--disable-static" "--enable-xcb"] ++ configureFlags = ["--disable-static" "--enable-xcb"] ++
stdenv.lib.optional pdfSupport "--enable-pdf"; stdenv.lib.optional pdfSupport "--enable-pdf";
preConfigure = ''
# Work around broken `Requires.private' that prevents Freetype
# `-I' flags to be propagated.
sed -i "src/cairo.pc.in" \
-es'|^Cflags:\(.*\)$|Cflags: \1 -I${freetype}/include/freetype2 -I${freetype}/include|g'
'';
meta = { meta = {
description = "A 2D graphics library with support for multiple output devices"; description = "A 2D graphics library with support for multiple output devices";
longDescription = ''
Cairo is a 2D graphics library with support for multiple output
devices. Currently supported output targets include the X
Window System, Quartz, Win32, image buffers, PostScript, PDF,
and SVG file output. Experimental backends include OpenGL
(through glitz), XCB, BeOS, OS/2, and DirectFB.
Cairo is designed to produce consistent output on all output
media while taking advantage of display hardware acceleration
when available (e.g., through the X Render Extension).
'';
homepage = http://cairographics.org/; homepage = http://cairographics.org/;
licenses = [ "LGPLv2+" "MPLv1" ];
}; };
} }

View file

@ -1,15 +1,35 @@
args: with args; { fetchurl, stdenv, pkgconfig, cairo, x11, fontconfig, freetype, libsigcxx }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "cairomm-1.4.6"; name = "cairomm-1.7.2";
src = fetchurl { src = fetchurl {
url = "http://cairographics.org/releases/${name}.tar.gz"; url = "http://cairographics.org/releases/${name}.tar.gz";
sha256 = "1zd5pq5jd507w1v994awpsl7m26g4dfl0rwgrxig2823hl3rqmrp"; sha256 = "0rcbkk16yj9k1y491ms5j6f9z5wrvv4qkd7wbx44nziwhw6hc0qx";
}; };
buildInputs = [pkgconfig]; buildInputs = [pkgconfig];
propagatedBuildInputs = [cairo x11 fontconfig freetype]; propagatedBuildInputs = [ cairo x11 fontconfig freetype libsigcxx ];
configureFlags = "--enable-shared --disable-static"; configureFlags = "--enable-shared --disable-static";
meta = {
description = "A 2D graphics library with support for multiple output devices";
longDescription = ''
Cairo is a 2D graphics library with support for multiple output
devices. Currently supported output targets include the X
Window System, Quartz, Win32, image buffers, PostScript, PDF,
and SVG file output. Experimental backends include OpenGL
(through glitz), XCB, BeOS, OS/2, and DirectFB.
Cairo is designed to produce consistent output on all output
media while taking advantage of display hardware acceleration
when available (e.g., through the X Render Extension).
'';
homepage = http://cairographics.org/;
licenses = [ "LGPLv2+" "MPLv1" ];
};
} }

View file

@ -0,0 +1,30 @@
args: with args;
stdenv.mkDerivation rec {
name = "atk-1.24.0";
src = fetchurl {
url = "mirror://gnome/sources/atk/1.24/${name}.tar.bz2";
sha256 = "0mjxliarzcy7iksh6v1npxsqdpc9sjj3q4wcl567asbdzdpbd803";
};
buildInputs = [pkgconfig perl];
propagatedBuildInputs = [glib];
meta = {
description = "ATK, the accessibility toolkit";
longDescription = ''
ATK is the Accessibility Toolkit. It provides a set of generic
interfaces allowing accessibility technologies such as screen
readers to interact with a graphical user interface. Using the
ATK interfaces, accessibility tools have full access to view and
control running applications.
'';
homepage = http://library.gnome.org/devel/atk/;
license = "LGPLv2+";
};
}

View file

@ -0,0 +1,21 @@
args: with args;
rec {
glib = (import ./glib) args;
atk = (import ./atk) (args // { inherit glib; });
pango = (import ./pango) (args // { inherit glib cairo; });
gtk = (import ./gtk+) (args // {
inherit glib atk pango;
});
glibmm = (import ./glibmm) (args // { inherit glib; });
pangomm = (import ./pangomm) (args // { inherit pango glibmm cairomm; });
gtkmm = (import ./gtkmm) (args // { inherit gtk atk glibmm pangomm; });
}

View file

@ -0,0 +1,27 @@
args: with args;
stdenv.mkDerivation rec {
name = "glib-2.18.4";
src = fetchurl {
url = "mirror://gnome/sources/glib/2.18/${name}.tar.bz2";
sha256 = "00711nscyya6j1kdda7sbxy01qspccpvmnmc8f4kip4zbs22rsva";
};
buildInputs = [pkgconfig gettext perl];
meta = {
description = "GLib, a C library of programming buildings blocks";
longDescription = ''
GLib provides the core application building blocks for libraries
and applications written in C. It provides the core object
system used in GNOME, the main loop implementation, and a large
set of utility functions for strings and common data structures.
'';
homepage = http://www.gtk.org/;
license = "LGPLv2+";
};
}

View file

@ -0,0 +1,21 @@
args: with args;
stdenv.mkDerivation rec {
name = "glibmm-2.18.1";
src = fetchurl {
url = "mirror://gnome/GNOME/sources/glibmm/2.18/${name}.tar.bz2";
sha256 = "0jg65hv6pwxqk4fabsjjz2zwn5hb6rgy3szj956avliarbliyr3r";
};
buildInputs = [pkgconfig];
propagatedBuildInputs = [glib libsigcxx];
meta = {
description = "C++ interface to the GLib library";
homepage = http://gtkmm.org/;
license = "LGPLv2+";
};
}

View file

@ -0,0 +1,37 @@
args: with args;
stdenv.mkDerivation rec {
name = "gtk+-2.14.7";
src = fetchurl {
url = "mirror://gnome/sources/gtk+/2.14/${name}.tar.bz2";
sha256 = "053yn2fdxhqd4jhds4j96daw2zd4cfw5wx9vf4szrfidwll4fbz8";
};
buildInputs = [ pkgconfig perl jasper ];
propagatedBuildInputs = [
x11 glib atk pango libtiff libjpeg libpng cairo libXrandr
] ++ stdenv.lib.optional xineramaSupport libXinerama;
passthru = { inherit libtiff libjpeg libpng; };
meta = {
description = "A multi-platform toolkit for creating graphical user interfaces";
longDescription = ''
GTK+ is a highly usable, feature rich toolkit for creating
graphical user interfaces which boasts cross platform
compatibility and an easy to use API. GTK+ it is written in C,
but has bindings to many other popular programming languages
such as C++, Python and C# among others. GTK+ is licensed
under the GNU LGPL 2.1 allowing development of both free and
proprietary software with GTK+ without any license fees or
royalties.
'';
homepage = http://www.gtk.org/;
license = "LGPLv2+";
};
}

View file

@ -0,0 +1,31 @@
args: with args;
stdenv.mkDerivation rec {
name = "gtkmm-2.14.3";
src = fetchurl {
url = "mirror://gnome/sources/gtkmm/2.14/${name}.tar.bz2";
sha256 = "18jral2lv9jv02d3balh0mi0wgbqhrz5y2laclri1skccc2q3c94";
};
buildInputs = [pkgconfig];
propagatedBuildInputs = [ glibmm gtk atk cairomm pangomm ];
meta = {
description = "C++ interface to the GTK+ graphical user interface library";
longDescription = ''
gtkmm is the official C++ interface for the popular GUI library
GTK+. Highlights include typesafe callbacks, and a
comprehensive set of widgets that are easily extensible via
inheritance. You can create user interfaces either in code or
with the Glade User Interface designer, using libglademm.
There's extensive documentation, including API reference and a
tutorial.
'';
homepage = http://gtkmm.org/;
license = "LGPLv2+";
};
}

View file

@ -0,0 +1,29 @@
args: with args;
stdenv.mkDerivation rec {
name = "pango-1.22.4";
src = fetchurl {
url = "mirror://gnome/sources/pango/1.22/${name}.tar.bz2";
sha256 = "0d55x97c78rmcsls5g236xwwhjq1bvscrlxqligyzsv0hgnxfizz";
};
buildInputs = [pkgconfig];
propagatedBuildInputs = [x11 glib cairo libpng];
meta = {
description = "A library for laying out and rendering of text, with an emphasis on internationalization";
longDescription = ''
Pango is a library for laying out and rendering of text, with an
emphasis on internationalization. Pango can be used anywhere
that text layout is needed, though most of the work on Pango so
far has been done in the context of the GTK+ widget toolkit.
Pango forms the core of text and font handling for GTK+-2.x.
'';
homepage = http://www.pango.org/;
license = "LGPLv2+";
};
}

View file

@ -0,0 +1,31 @@
{ stdenv, fetchurl, pkgconfig, libtool, gtk, gthread
, alsaLib, pulseaudio, gstreamer, libvorbis }:
stdenv.mkDerivation rec {
name = "libcanberra-0.10";
src = fetchurl {
url = "http://0pointer.de/lennart/projects/libcanberra/${name}.tar.gz";
sha256 = "0wl2hd8zqwzbbp4icng6siim85jb6hvczy9c6m92lh85wrcwpqxh";
};
buildInputs = [ pkgconfig libtool gtk alsaLib pulseaudio gstreamer libvorbis ];
configureFlags = "--disable-oss";
meta = {
description = "libcanberra, an implementation of the XDG Sound Theme and Name Specifications";
longDescription = ''
libcanberra is an implementation of the XDG Sound Theme and Name
Specifications, for generating event sounds on free desktops
such as GNOME. It comes with several backends (ALSA,
PulseAudio, OSS, GStreamer, null) and is designed to be
portable.
'';
homepage = http://0pointer.de/lennart/projects/libcanberra/;
license = "LGPLv2+";
};
}

View file

@ -1,11 +1,11 @@
{ fetchurl, stdenv, libgpgerror }: { fetchurl, stdenv, libgpgerror }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "libgcrypt-1.4.3"; name = "libgcrypt-1.4.4";
src = fetchurl { src = fetchurl {
url = "mirror://gnupg/libgcrypt/${name}.tar.bz2"; url = "mirror://gnupg/libgcrypt/${name}.tar.bz2";
sha256 = "02r31dycxvlld9mn1ah78g1phkh42ajk7qcqi20x9mq1kyyikj48"; sha256 = "0vrhpw6xp05q98l4yf68j6aw59dgdwbzqf2d2q3a13ygh20bh4ij";
}; };
propagatedBuildInputs = [ libgpgerror ]; propagatedBuildInputs = [ libgpgerror ];

View file

@ -6,5 +6,6 @@ stdenv.mkDerivation {
url = http://downloads.xiph.org/releases/vorbis/libvorbis-1.2.0.tar.bz2; url = http://downloads.xiph.org/releases/vorbis/libvorbis-1.2.0.tar.bz2;
sha256 = "0nq62b8y2rhhgxxyiw6b4wchic61q5v649fdl8dd7090nxxcbx4y"; sha256 = "0nq62b8y2rhhgxxyiw6b4wchic61q5v649fdl8dd7090nxxcbx4y";
}; };
buildInputs = [libogg];
propagatedBuildInputs = [ libogg ];
} }

View file

@ -0,0 +1,18 @@
{stdenv, fetchurl, mesa, qt4, tcl, tk}:
stdenv.mkDerivation {
name = "opencascade-6.3.0";
src = fetchurl {
url = http://files.opencascade.com/OCC_6.3_release/OpenCASCADE_src.tgz;
md5 = "52778127974cb3141c2827f9d40d1f11";
};
buildInputs = [ mesa qt4 tcl tk];
preConfigure = "cd ros";
meta = {
description = "Open CASCADE Technology, libraries for 3D modeling and numerical simulation";
homepage = http://www.opencascade.org/;
};
}

View file

@ -1,5 +1,5 @@
{ stdenv, fetchurl, pkgconfig, gtk, libXinerama, libSM, libXxf86vm, xf86vidmodeproto { stdenv, fetchurl, pkgconfig, gtk, libXinerama, libSM, libXxf86vm, xf86vidmodeproto
, compat24 ? false, compat26 ? true, unicode ? true , mesa, compat24 ? false, compat26 ? true, unicode ? true,
}: }:
assert pkgconfig != null && gtk != null; assert pkgconfig != null && gtk != null;
@ -18,7 +18,7 @@ stdenv.mkDerivation {
buildInputs = [ buildInputs = [
pkgconfig gtk gtk.libtiff gtk.libjpeg gtk.libpng gtk.libpng.zlib pkgconfig gtk gtk.libtiff gtk.libjpeg gtk.libpng gtk.libpng.zlib
libXinerama libSM libXxf86vm xf86vidmodeproto libXinerama libSM libXxf86vm xf86vidmodeproto mesa
]; ];
configureFlags = [ configureFlags = [
@ -27,17 +27,21 @@ stdenv.mkDerivation {
(if compat26 then "--enable-compat26" else "--disable-compat26") (if compat26 then "--enable-compat26" else "--disable-compat26")
"--disable-precomp-headers" "--disable-precomp-headers"
(if unicode then "--enable-unicode" else "") (if unicode then "--enable-unicode" else "")
"--with-opengl"
]; ];
# This variable is used by configure to find some dependencies. # This variable is used by configure to find some dependencies.
SEARCH_INCLUDE = SEARCH_INCLUDE =
"${libXinerama}/include ${libSM}/include ${libXxf86vm}/include"; "${libXinerama}/include ${libSM}/include ${libXxf86vm}/include";
SEARCH_LIB = "${mesa}/lib";
# Work around a bug in configure. # Work around a bug in configure.
NIX_CFLAGS_COMPILE = "-DHAVE_X11_XLIB_H=1"; NIX_CFLAGS_COMPILE = "-DHAVE_X11_XLIB_H=1";
preConfigure = " preConfigure = "
substituteInPlace configure --replace 'SEARCH_INCLUDE=' 'DUMMY_SEARCH_INCLUDE=' substituteInPlace configure --replace 'SEARCH_INCLUDE=' 'DUMMY_SEARCH_INCLUDE='
substituteInPlace configure --replace 'SEARCH_LIB=' 'DUMMY_SEARCH_LIB='
substituteInPlace configure --replace /usr /no-such-path substituteInPlace configure --replace /usr /no-such-path
"; ";

View file

@ -0,0 +1,64 @@
diff --git a/Makefile b/Makefile
index 9e85686..b8e6e02 100644
--- a/Makefile
+++ b/Makefile
@@ -15,13 +15,14 @@
#
# add -DUSE_READLINE To compile in support for the GNU readline library.
-CFLAGS= -s -O2 -DUSE_READLINE
+
CC= gcc
-LIBS= -lreadline -ltermcap
+
ALLFILES= makefile cdgram.y cdlex.l cdecl.c cdecl.1 testset testset++
-BINDIR= /usr/bin
-MANDIR= /usr/man/man1
-CATDIR= /usr/man/cat1
+PREFIX?= /usr
+BINDIR= $(PREFIX)/bin
+MANDIR= $(PREFIX)/man/man1
+CATDIR= $(PREFIX)/man/cat1
INSTALL= install -c
INSTALL_DATA= install -c -m 644
@@ -33,7 +34,7 @@ c++decl: cdgram.c cdlex.c cdecl.c
rm -f cdecl
cdlex.c: cdlex.l
- lex cdlex.l && mv lex.yy.c cdlex.c
+ flex cdlex.l && mv lex.yy.c cdlex.c
cdgram.c: cdgram.y
yacc cdgram.y && mv y.tab.c cdgram.c
@@ -43,8 +44,10 @@ test:
./c++decl < testset++
install: cdecl
+ $(INSTALL) -d $(BINDIR)
$(INSTALL) cdecl $(BINDIR)
ln $(BINDIR)/cdecl $(BINDIR)/c++decl
+ $(INSTALL) -d $(MANDIR)
$(INSTALL_DATA) cdecl.1 $(MANDIR)
$(INSTALL_DATA) c++decl.1 $(MANDIR)
diff --git a/cdecl.c b/cdecl.c
index f03f01e..1fdde9f 100644
--- a/cdecl.c
+++ b/cdecl.c
@@ -67,6 +67,7 @@ char cdeclsccsid[] = "@(#)cdecl.c 2.5 1/15/96";
# include <stddef.h>
# include <string.h>
# include <stdarg.h>
+# include <errno.h>
#else
# ifndef NOVARARGS
# include <varargs.h>
@@ -124,7 +125,6 @@ char real_prompt[MAX_NAME+3];
#if __STDC__
char *ds(char *), *cat(char *, ...), *visible(int);
- int getopt(int,char **,char *);
int main(int, char **);
int yywrap(void);
int dostdin(void);

View file

@ -0,0 +1,19 @@
{stdenv, fetchurl, yacc, flex, readline}:
stdenv.mkDerivation {
name = "cdecl-2.5";
src = fetchurl {
url = ftp://metalab.unc.edu/pub/linux/devel/lang/c/cdecl-2.5.tar.gz;
md5 = "29895dab52e85b2474a59449e07b7996";
};
patches = [ ./cdecl-2.5.patch ];
preBuild = "
makeFlags=\"PREFIX=$out\"
";
buildInputs = [yacc flex readline];
meta = {
description = "Translator English -- C/C++ declarations";
};
}

View file

@ -0,0 +1,44 @@
{composableDerivation, fetchurl, transfig, texLive}:
let
version = "6.3";
name = "ragel-${version}";
in
composableDerivation.composableDerivation {
initial = rec {
inherit name;
src = fetchurl {
url = "http://www.complang.org/ragel/${name}.tar.gz";
sha256 = "018cedc8a68be85cda330fc53d0bb8a1ca6ad39b1cf790eed0311e7baa5a2520";
};
flags = {
doc = {
# require fig2dev & pdflatex (see README)
buildInputs = [transfig texLive];
# use post* because default values of buildPhase is empty.
postBuild = ''
pushd doc
make
popd
'';
postInstall = ''
pushd doc
make install
popd
'';
};
};
cfg = {
docSupport = false;
};
meta = {
homepage = http://www.complang.org/ragel;
description = "State machine compiler";
license = "GPL-2";
};
};
}

View file

@ -2,7 +2,7 @@ a :
let let
fetchurl = a.fetchurl; fetchurl = a.fetchurl;
version = a.lib.getAttr ["version"] "r8373" a; version = a.lib.getAttr ["version"] "r8419" a;
buildInputs = with a; [ buildInputs = with a; [
gtk glib pkgconfig libX11 gtk glib pkgconfig libX11
]; ];
@ -10,7 +10,7 @@ in
rec { rec {
src = fetchurl { src = fetchurl {
url = "http://www.chiark.greenend.org.uk/~sgtatham/puzzles/puzzles-${version}.tar.gz"; url = "http://www.chiark.greenend.org.uk/~sgtatham/puzzles/puzzles-${version}.tar.gz";
sha256 = "1mkf36rah61x0pxpmjbpgy8ccv8m38hf088mf2i5cx9paya830dc"; sha256 = "0lm6d34i9g8krwvchqkq433gmpy4d7c4423h8855rvd3jxga82qa";
}; };
inherit buildInputs; inherit buildInputs;

View file

@ -1,7 +1,10 @@
{lib, pkgs} : {lib, pkgs} :
let inherit (lib) nv nvs; in let inherit (lib) nv nvs; in
{ {
# see new python derivations for example.. # see for example:
# - development/interpreters/php_configurable/default.nix
# - .. search composableDerivation in all-packages.nix ..
#
# You should be able to override anything you like easily # You should be able to override anything you like easily
# grep the mailinglist by title "python proposal" (dec 08) # grep the mailinglist by title "python proposal" (dec 08)
# -> http://mail.cs.uu.nl/pipermail/nix-dev/2008-December/001571.html # -> http://mail.cs.uu.nl/pipermail/nix-dev/2008-December/001571.html

View file

@ -373,22 +373,18 @@ rec {
(rec { result = f result; }).result; (rec { result = f result; }).result;
# flatten a list of elements by following the properties of the elements. # flatten a list of elements by following the properties of the elements.
# key : return the key which correspond to the value.
# value : return the value inserted in the returned list.
# next : return the list of following elements. # next : return the list of following elements.
# keys : lists of keys already seen. # seen : lists of elements already visited.
# default: result if 'x' is empty. # default: result if 'x' is empty.
# x : list of values that have to be processed. # x : list of values that have to be processed.
uniqFlatten = prop@{key, value, next, ...}: keys: default: x: uniqFlatten = next: seen: default: x:
if x == [] if x == []
then default then default
else else
let h = head x; t = tail x; let h = head x; t = tail x; n = next h; in
k = key h; v = value h; n = next h; if elem h seen
in then uniqFlatten next seen default t
if elem k keys else uniqFlatten next (seen ++ [h]) (default ++ [h]) (n ++ t)
then uniqFlatten prop keys default t
else uniqFlatten prop (keys ++ [k]) (default ++ [v]) (n ++ t)
; ;
/* If. ThenElse. Always. */ /* If. ThenElse. Always. */
@ -407,6 +403,10 @@ rec {
}; };
isNotdef = attrs: (typeOf attrs) == "notdef";
mkNotdef = {_type = "notdef";};
isThenElse = attrs: (typeOf attrs) == "then-else"; isThenElse = attrs: (typeOf attrs) == "then-else";
mkThenElse = attrs: mkThenElse = attrs:
assert attrs ? thenPart && attrs ? elsePart; assert attrs ? thenPart && attrs ? elsePart;
@ -438,8 +438,7 @@ rec {
rmIf = pushIf (condition: val: val); rmIf = pushIf (condition: val: val);
evalIf = pushIf (condition: val: evalIf = pushIf (condition: val:
# guess: empty else part. if condition then val else mkNotdef
ifEnable condition val
); );
delayIf = pushIf (condition: val: delayIf = pushIf (condition: val:
@ -478,18 +477,18 @@ rec {
} }
) (builtins.attrNames defs)); ) (builtins.attrNames defs));
mergeDefaultOption = name: list: mergeDefaultOption = list:
if list != [] && tail list == [] then head list if list != [] && tail list == [] then head list
else if all __isFunction list then x: mergeDefaultOption (map (f: f x) list) else if all __isFunction list then x: mergeDefaultOption (map (f: f x) list)
else if all __isList list then concatLists list else if all __isList list then concatLists list
else if all __isAttrs list then mergeAttrs list else if all __isAttrs list then mergeAttrs list
else if all (x: true == x || false == x) list then fold logicalOR false list else if all (x: true == x || false == x) list then fold logicalOR false list
else if all (x: x == toString x) list then concatStrings list else if all (x: x == toString x) list then concatStrings list
else abort "${name}: Cannot merge values."; else throw "Cannot merge values.";
mergeTypedOption = typeName: predicate: merge: name: list: mergeTypedOption = typeName: predicate: merge: list:
if all predicate list then merge list if all predicate list then merge list
else abort "${name}: Expect a ${typeName}."; else throw "Expect a ${typeName}.";
mergeEnableOption = mergeTypedOption "boolean" mergeEnableOption = mergeTypedOption "boolean"
(x: true == x || false == x) (fold logicalOR false); (x: true == x || false == x) (fold logicalOR false);
@ -501,74 +500,129 @@ rec {
(x: if builtins ? isString then builtins.isString x else x + "") (x: if builtins ? isString then builtins.isString x else x + "")
concatStrings; concatStrings;
# Merge sets of options and bindings. mergeOneOption = list:
# noOption: function to call if no option is declared. if list == [] then abort "This case should never happens."
mergeOptionSets = noOption: path: opts: else if tail list != [] then throw "Multiple definitions. Only one is allowed for this option."
if all __isAttrs opts then else head list;
zip (attr: opts:
let
name = if path == "" then attr else path + "." + attr;
test = partition isOption opts;
opt = ({ merge = mergeDefaultOption; apply = id; } // head test.right);
in
if test.right == [] then mergeOptionSets noOption name (map delayIf test.wrong)
else if tail test.right != [] then throw "Multiple options for '${name}'."
else if test.wrong == [] then opt.apply opt.default
else opt.apply (opt.merge name (map evalIf test.wrong))
) opts
else noOption path opts;
# Keep all option declarations and add an attribute "name" inside
# each option which contains the path that has to be followed to # Handle the traversal of option sets. All sets inside 'opts' are zipped
# access it. # and options declaration and definition are separated. If no option are
filterOptionSets = path: opts: # declared at a specific depth, then the function recurse into the values.
# Other cases are handled by the optionHandler which contains two
# functions that are used to defined your goal.
# - export is a function which takes two arguments which are the option
# and the list of values.
# - notHandle is a function which takes the list of values are not handle
# by this function.
handleOptionSets = optionHandler@{export, notHandle, ...}: path: opts:
if all __isAttrs opts then if all __isAttrs opts then
zip (attr: opts: zip (attr: opts:
let let
# Compute the path to reach the attribute.
name = if path == "" then attr else path + "." + attr; name = if path == "" then attr else path + "." + attr;
# Divide the definitions of the attribute "attr" between
# declaration (isOption) and definitions (!isOption).
test = partition isOption opts; test = partition isOption opts;
decls = test.right; defs = test.wrong;
# Return the option declaration and add missing default
# attributes.
opt = {
inherit name;
merge = mergeDefaultOption;
apply = id;
} // (head decls);
# Return the list of option sets.
optAttrs = map delayIf defs;
# return the list of option values.
# Remove undefined values that are coming from evalIf.
optValues = filter (x: !isNotdef x) (map evalIf defs);
in in
if test.right == [] then filterOptionSets name (map delayIf test.wrong) if decls == [] then handleOptionSets optionHandler name optAttrs
else if tail test.right != [] then throw "Multiple options for '${name}'." else addErrorContext "while evaluating the option ${name}:" (
else { inherit name; } // (head test.right) if tail decls != [] then throw "Multiple options."
else export opt optValues
)
) opts ) opts
else {}; else addErrorContext "while evaluating ${path}:" (notHandle opts);
# Merge option sets and produce a set of values which is the merging of
# all options declare and defined. If no values are defined for an
# option, then the default value is used otherwise it use the merge
# function of each option to get the result.
mergeOptionSets = noOption: newMergeOptionSets; # ignore argument
newMergeOptionSets =
handleOptionSets {
export = opt: values:
opt.apply (
if values == [] then
if opt ? default then opt.default
else throw "Not defined."
else opt.merge values
);
notHandle = opts: throw "Used without option declaration.";
};
# Keep all option declarations.
filterOptionSets =
handleOptionSets {
export = opt: values: opt;
notHandle = opts: {};
};
# Evaluate a list of option sets that would be merged with the # Evaluate a list of option sets that would be merged with the
# function "merge" which expects two arguments. The attribute named # function "merge" which expects two arguments. The attribute named
# "require" is used to imports option declarations and bindings. # "require" is used to imports option declarations and bindings.
fixOptionSetsFun = merge: pkgs: opts: #
# * cfg[0-9]: configuration
# * cfgSet[0-9]: configuration set
#
# merge: the function used to merge options sets.
# pkgs: is the set of packages available. (nixpkgs)
# opts: list of option sets or option set functions.
# config: result of this evaluation.
fixOptionSetsFun = merge: pkgs: opts: config:
let let
# ignore all conditions that are on require attributes. # remove possible mkIf to access the require attribute.
rmRequireIf = conf: noImportConditions = cfgSet0:
let conf2 = delayIf conf; in let cfgSet1 = delayIf cfgSet0; in
if conf2 ? require then if cfgSet1 ? require then
conf2 // { require = rmIf conf2.require; } cfgSet1 // { require = rmIf cfgSet1.require; }
else else
conf2; cfgSet1;
# call configuration "files" with one of the existing convention. # call configuration "files" with one of the existing convention.
optionSet = config: configFun: argumentHandler = cfg:
if __isFunction configFun then let
let result = configFun { inherit pkgs config; }; in # {..}
# {pkgs, config, ...}: {..} cfg0 = cfg;
if builtins.isAttrs result then result # {pkgs, config, ...}: {..}
# pkgs: config: {..} cfg1 = cfg { inherit pkgs config merge; };
else configFun pkgs config # pkgs: config: {..}
# {..} cfg2 = cfg {} {};
else configFun; in
if __isFunction cfg0 then
if builtins.isAttrs cfg1 then cfg1
else builtins.trace "Use '{pkgs, config, ...}:'." cfg2
else cfg0;
processConfig = config: configFun: preprocess = cfg0:
rmRequireIf (optionSet config configFun); let cfg1 = argumentHandler cfg0;
cfg2 = noImportConditions cfg1;
in cfg2;
prop = config: rec { getRequire = x: toList (getAttr ["require"] [] (preprocess x));
key = id; rmRequire = x: removeAttrs (preprocess x) ["require"];
prepare = x: processConfig config x; in
value = x: removeAttrs (prepare x) ["require"]; merge "" (
next = x: toList (getAttr ["require"] [] (prepare x)); map rmRequire (
}; uniqFlatten getRequire [] [] (toList opts)
in config: )
merge "" (uniqFlatten (prop config) [] [] (toList opts)); );
fixOptionSets = merge: pkgs: opts: fixOptionSets = merge: pkgs: opts:
fix (fixOptionSetsFun merge pkgs opts); fix (fixOptionSetsFun merge pkgs opts);
@ -592,6 +646,13 @@ rec {
innerModifySumArgs f x (a // b); innerModifySumArgs f x (a // b);
modifySumArgs = f: x: innerModifySumArgs f x {}; modifySumArgs = f: x: innerModifySumArgs f x {};
# Wrapper aroung addErrorContext. The builtin should not be used
# directly.
addErrorContext =
if builtins ? addErrorContext
then builtins.addErrorContext
else msg: val: val;
debugVal = if builtins ? trace then x: (builtins.trace x x) else x: x; debugVal = if builtins ? trace then x: (builtins.trace x x) else x: x;
debugXMLVal = if builtins ? trace then x: (builtins.trace (builtins.toXML x) x) else x: x; debugXMLVal = if builtins ? trace then x: (builtins.trace (builtins.toXML x) x) else x: x;

View file

@ -15,9 +15,9 @@
url = http://mawercer.de/~nix/repos/ghc_lambdavm.tar.gz; url = http://mawercer.de/~nix/repos/ghc_lambdavm.tar.gz;
sha256 = "3d10e839b8226987383e870258ff38b56442ff254688f7c50983850676f992cb"; sha256 = "3d10e839b8226987383e870258ff38b56442ff254688f7c50983850676f992cb";
}; };
git = args: with args; fetchurl { git = args: with args; fetchurl { # Tue Jan 20 22:28:04 UTC 2009
url = http://mawercer.de/~nix/repos/git.tar.gz; url = "http://mawercer.de/~nix/repos/git-a227bce65f3fcdfbf28f109809b7e2e518b906f8.tar.gz";
sha256 = "1f0df3da8d6c9425ab80bd9c623570b7a35e5a622fbf56b903e1bf82a01d4e5f"; sha256 = "7420a385718c7edec956fb0cba1a8a11d4b45edc833d7c06bf7c4764188ce180";
}; };
happs_data = args: with args; fetchurl { happs_data = args: with args; fetchurl {
url = http://mawercer.de/~nix/repos/happs_data.tar.gz; url = http://mawercer.de/~nix/repos/happs_data.tar.gz;
@ -219,9 +219,9 @@
url = "http://mawercer.de/~nix/repos/cinelerra-9f9adf2ad5472886d5bc43a05c6aa8077cabd967.tar.gz"; url = "http://mawercer.de/~nix/repos/cinelerra-9f9adf2ad5472886d5bc43a05c6aa8077cabd967.tar.gz";
sha256 = "1e84ff59dcd7a3c80343eb9be302f822e510c95398fd1a6c8f2e4b163fd51e45"; sha256 = "1e84ff59dcd7a3c80343eb9be302f822e510c95398fd1a6c8f2e4b163fd51e45";
}; };
hg2git = args: with args; fetchurl { # Sat Oct 18 21:02:44 UTC 2008 hg2git = args: with args; fetchurl { # Tue Jan 20 22:49:27 UTC 2009
url = "http://mawercer.de/~nix/repos/hg2git-4c77e121b739d2aac8a23352503763343823f870.tar.gz"; url = "http://mawercer.de/~nix/repos/hg2git-0fabb998a19c850cb8fcfcf72414b18070d94378.tar.gz";
sha256 = "22354d36937bf9e5d3e3dfc1a3ef9e3f2bc183b8e114a23958a2b10f83abc97e"; sha256 = "ce7cd089681e6eee24f5bc9ab3b73f1e49d368b83a32d00695eadca00533ac5d";
}; };
octave = args: with args; fetchurl { # Mon Dec 1 23:23:49 UTC 2008 octave = args: with args; fetchurl { # Mon Dec 1 23:23:49 UTC 2008
url = "http://mawercer.de/~nix/repos/octave-03b414516dd8.tar.gz"; url = "http://mawercer.de/~nix/repos/octave-03b414516dd8.tar.gz";
@ -231,4 +231,12 @@
url = "http://mawercer.de/~nix/repos/zsh-2008-12-21_12-50-23.tar.gz"; url = "http://mawercer.de/~nix/repos/zsh-2008-12-21_12-50-23.tar.gz";
sha256 = "9af16f89205759d7ade51268dbdfa02cec3db10b35dc7a56ffe8e1fde2074ae7"; sha256 = "9af16f89205759d7ade51268dbdfa02cec3db10b35dc7a56ffe8e1fde2074ae7";
}; };
topGit = args: with args; fetchurl { # Tue Jan 20 21:29:50 UTC 2009
url = "http://mawercer.de/~nix/repos/topGit-5b823563a678fe46ddf768977ab9d00525945ec6.tar.gz";
sha256 = "e027311b2b058bab05a7175546854d61325bba591109e68c59209edc6939e5cb";
};
qgit = args: with args; fetchurl { # Tue Jan 20 21:35:00 UTC 2009
url = "http://mawercer.de/~nix/repos/qgit-b5dd5fd691e9423124cf356abe26e641bc33d159.tar.gz";
sha256 = "e04de308feb40716a6b02d1f69dc834f4fa859865b64e8f91beb6018fa953f96";
};
} }

View file

@ -4,6 +4,9 @@ preConfigure=preConfigure
preConfigure() { preConfigure() {
# "ijs" is impure: it contains symlinks to /usr/share/automake etc.! # "ijs" is impure: it contains symlinks to /usr/share/automake etc.!
rm -rf ijs/ltmain.sh rm -rf ijs/ltmain.sh
# Don't install stuff in the Cups store path.
makeFlagsArray=(CUPSSERVERBIN=$out/lib/cups CUPSSERVERROOT=$out/etc/cups CUPSDATA=$out/share/cups)
} }
installTargets="install install-so install-data install-doc install-man" installTargets="install install-so install-data install-doc install-man"

View file

@ -1,14 +1,18 @@
{ stdenv, fetchurl, libjpeg, libpng, zlib { stdenv, fetchurl, libjpeg, libpng, libtiff, zlib, pkgconfig, fontconfig, openssl
, x11Support, x11 ? null , x11Support, x11 ? null
, cupsSupport ? false, cups ? null
}: }:
assert x11Support -> x11 != null; assert x11Support -> x11 != null;
assert cupsSupport -> cups != null;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "ghostscript-8.62.0"; name = "ghostscript-8.62.0";
builder = ./builder.sh; builder = ./builder.sh;
x = true;
src = fetchurl { src = fetchurl {
url = "mirror://gnu/ghostscript/gnu-${name}.tar.bz2"; url = "mirror://gnu/ghostscript/gnu-${name}.tar.bz2";
sha256 = "0zgvmhrxzdxc3lp7im7qcdmv0jlmbnp1fk0zs0hr3fqa943ywyg2"; sha256 = "0zgvmhrxzdxc3lp7im7qcdmv0jlmbnp1fk0zs0hr3fqa943ywyg2";
@ -26,8 +30,9 @@ stdenv.mkDerivation rec {
# ... add other fonts here # ... add other fonts here
]; ];
buildInputs = [libjpeg libpng zlib] buildInputs = [libjpeg libpng libtiff zlib pkgconfig fontconfig openssl]
++ stdenv.lib.optional x11Support x11; ++ stdenv.lib.optional x11Support x11
++ stdenv.lib.optional cupsSupport cups;
configureFlags = " configureFlags = "
--disable-static --disable-static

View file

@ -0,0 +1,14 @@
args: with args;
rec {
alsaLib = (import ./common.nix) {
aName = "lib";
sha256 = "11i898dc6qbachn046gl6dg6g7bl2k8crddl97f3z5i57bcjdvij";
} args;
alsaUtils = (import ./common.nix) {
aName = "utils";
sha256 = "1bcchd5nwgb2hy0z9c6jxbqlzirkh6wvxv6nldjcwmvqmvsj8j8z";
buildInputs = [alsaLib ncurses gettext];
} args;
}

View file

@ -9,5 +9,14 @@ args: with args; stdenv.mkDerivation rec {
inherit buildInputs propagatedBuildInputs; inherit buildInputs propagatedBuildInputs;
meta = { homepage = http://www.alsa-project.org; }; meta = {
description = "ALSA, the Advanced Linux Sound Architecture (${aName})";
longDescription = ''
The Advanced Linux Sound Architecture (ALSA) provides audio and
MIDI functionality to the Linux-based operating system.
'';
homepage = http://www.alsa-project.org/;
};
} }

View file

@ -34,6 +34,8 @@
, # A list of additional statements to be appended to the , # A list of additional statements to be appended to the
# configuration file. # configuration file.
extraConfig ? [] extraConfig ? []
, preConfigure ? ""
}: }:
assert stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux"; assert stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux";
@ -55,6 +57,8 @@ stdenv.mkDerivation {
builder = ./builder.sh; builder = ./builder.sh;
inherit preConfigure;
inherit src config; inherit src config;
patches = map (p: p.patch) kernelPatches; patches = map (p: p.patch) kernelPatches;

View file

@ -5,11 +5,11 @@ assert !userModeLinux;
import ./generic.nix ( import ./generic.nix (
rec { rec {
version = "2.6.27.11"; version = "2.6.27.13";
src = fetchurl { src = fetchurl {
url = "mirror://kernel/linux/kernel/v2.6/linux-${version}.tar.bz2"; url = "mirror://kernel/linux/kernel/v2.6/linux-${version}.tar.bz2";
sha256 = "0mwcycipbs7n9zzzarnlikyl0k7pcs8yk8n5mhz92illxgzzihjn"; sha256 = "1zxyid70nlzxmx08mrg6a2vafqvs6q1szlcix417d1qq52c88l9i";
}; };
features = { features = {

View file

@ -5,11 +5,11 @@ assert !userModeLinux;
import ./generic.nix ( import ./generic.nix (
rec { rec {
version = "2.6.28"; version = "2.6.28.2";
src = fetchurl { src = fetchurl {
url = "mirror://kernel/linux/kernel/v2.6/linux-${version}.tar.bz2"; url = "mirror://kernel/linux/kernel/v2.6/linux-${version}.tar.bz2";
sha256 = "1023nl992s4qmnwzbfz385azzpph58azi5rw4w0wwzzybv2rf3df"; sha256 = "0fw4wv9xnajsw3prp2p79470wsflpnigflyyg21s2lfy0xn66ay8";
}; };
features = { features = {

View file

@ -1,30 +1,34 @@
{stdenv, fetchurl, perl, bison, mktemp, kernel {stdenv, fetchurl, perl, bison, mktemp, kernelHeaders}:
, version ? "1.5"
, sha256 ? "1izhf8kscjymsvsvhcqw9awnmp94vwv70zdj09srg9bkpjj0n017"
, subdir ? ""
, addPreBuild ? ""
}:
assert stdenv.isLinux; assert stdenv.isLinux;
let version = "1.5"; in
stdenv.mkDerivation { stdenv.mkDerivation {
name = "klibc-${version}"; name = "klibc-${version}";
#builder = ./builder.sh;
src = fetchurl {
url = "mirror://kernel/linux/libs/klibc/klibc-${version}.tar.bz2";
sha256 = "1izhf8kscjymsvsvhcqw9awnmp94vwv70zdj09srg9bkpjj0n017";
};
makeFlags = ["V=1" "prefix=$out" "SHLIBDIR=$out/lib"]; makeFlags = ["V=1" "prefix=$out" "SHLIBDIR=$out/lib"];
preBuild = '' preBuild = ''
makeFlags=$(eval "echo $makeFlags") makeFlags=$(eval "echo $makeFlags")
mkdir -p linux/include mkdir linux
cp -prd $kernel/lib/modules/*/build/include/* linux/include/ cp -prsd ${kernelHeaders}/include linux/
chmod -R u+w linux/include/ chmod -R u+w linux/include/
'' + addPreBuild; ''; # */
src = fetchurl {
url = "mirror://kernel/linux/libs/klibc/${subdir}klibc-${version}.tar.bz2"; # Install static binaries as well.
inherit sha256; postInstall = ''
# url = mirror://kernel/linux/libs/klibc/Testing/klibc-1.5.14.tar.bz2; dir=$out/lib/klibc/bin.static
# sha256 = "1cmrqpgamnv2ns7dlxjm61zc88dxm4ff0aya413ij1lmhp2h2sfc"; mkdir $dir
}; cp $(find $(find . -name static) -type f ! -name "*.g" -a ! -name ".*") $dir/
inherit kernel; cp usr/dash/sh $dir/
'';
buildInputs = [perl bison mktemp]; buildInputs = [perl bison mktemp];
#patches = [./install.patch];
} }

View file

@ -1,8 +0,0 @@
source $stdenv/setup
echo $out
export DESTDIR=$out
genericBuild

View file

@ -1,11 +1,19 @@
{stdenv, fetchurl}: {stdenv, fetchurl}:
stdenv.mkDerivation { stdenv.mkDerivation {
name = "mingetty-1.07"; name = "mingetty-1.08";
builder = ./builder.sh;
src = fetchurl { src = fetchurl {
url = ftp://ftp.nluug.nl/pub/os/Linux/distr/debian/pool/main/m/mingetty/mingetty_1.07.orig.tar.gz; url = mirror://sourceforge/mingetty/mingetty-1.08.tar.gz;
md5 = "491dedf1ceff0e0f5f7bb9f55bf5213e"; sha256 = "05yxrp44ky2kg6qknk1ih0kvwkgbn9fbz77r3vci7agslh5wjm8g";
};
preInstall = ''
ensureDir $out/sbin $out/share/man/man8
makeFlagsArray=(SBINDIR=$out/sbin MANDIR=$out/share/man/man8)
'';
meta = {
homepage = http://sourceforge.net/projects/mingetty;
}; };
patches = [./makefile.patch];
} }

View file

@ -1,20 +0,0 @@
diff -ruN mingetty-1.07.orig/Makefile mingetty-1.07.orig.new/Makefile
--- mingetty-1.07.orig/Makefile 2003-05-24 21:21:17.000000000 +0200
+++ mingetty-1.07.orig.new/Makefile 2005-06-23 15:43:28.000000000 +0200
@@ -1,4 +1,4 @@
-DESTDIR=
+DESTDIR=$(out)
CC=gcc
CFLAGS=-O2 -Wall -W -pipe -D_GNU_SOURCE
MANDIR=/usr/share/man/man8
@@ -7,8 +7,8 @@
all: mingetty
install: all
- install -m 0755 mingetty $(DESTDIR)$(SBINDIR)
- install -m 0644 mingetty.8 $(DESTDIR)$(MANDIR)
+ install -D -m 0755 mingetty $(DESTDIR)$(SBINDIR)/mingetty
+ install -D -m 0644 mingetty.8 $(DESTDIR)$(MANDIR)/mingetty.8
mingetty: mingetty.o

View file

@ -2,10 +2,12 @@
stdenv.mkDerivation { stdenv.mkDerivation {
name = "splashutils-1.3"; name = "splashutils-1.3";
src = fetchurl { src = fetchurl {
url = http://dev.gentoo.org/~spock/projects/splashutils/archive/splashutils-1.3.tar.bz2; url = http://dev.gentoo.org/~spock/projects/splashutils/archive/splashutils-1.3.tar.bz2;
md5 = "c7c92b98e34b860511aa57bd29d62f76"; md5 = "c7c92b98e34b860511aa57bd29d62f76";
}; };
patches = [ patches = [
./purity.patch ./purity.patch
./no-fbsplash.patch ./no-fbsplash.patch

View file

@ -4,7 +4,7 @@ stdenv.mkDerivation {
name = "splashutils-1.5.4.3"; name = "splashutils-1.5.4.3";
src = fetchurl { src = fetchurl {
url = http://download.berlios.de/fbsplash/splashutils-1.5.4.3.tar.bz2; url = http://dev.gentoo.org/~spock/projects/splashutils/current/splashutils-1.5.4.3.tar.bz2;
sha256 = "0vn0ifqp9a3bmprzx2yr82hgq8m2y5xv8qcifs2plz6p3lidagpg"; sha256 = "0vn0ifqp9a3bmprzx2yr82hgq8m2y5xv8qcifs2plz6p3lidagpg";
}; };

View file

@ -1,21 +1,67 @@
diff --git a/splash.h b/splash.h diff -rc splashutils-1.3-orig/splash.h splashutils-1.3/splash.h
index 5dccfe0..eae2939 100644 *** splashutils-1.3-orig/splash.h 2006-07-15 00:02:23.000000000 +0200
--- a/splash.h --- splashutils-1.3/splash.h 2009-01-29 16:41:00.000000000 +0100
+++ b/splash.h ***************
@@ -30,10 +30,14 @@ #endif *** 21,40 ****
*/ */
#ifdef TARGET_KERNEL #ifdef TARGET_KERNEL
#include <linux/fb.h> #include <linux/fb.h>
- #include <linux/console_splash.h> - #include <linux/console_splash.h>
+ #ifdef CONFIG_FBSPLASH #else
+ #include <linux/console_splash.h> #include <fb.h>
+ #endif - #include <console_splash.h>
#else #endif
#include <fb.h>
- #include <console_splash.h>
+ #ifdef CONFIG_FBSPLASH
+ #include <console_splash.h>
+ #endif
#endif
/* /*
* Necessary to avoid compilation errors when fbsplash support is
* disabled.
*/
- #if !defined(CONFIG_FBSPLASH)
#define FB_SPLASH_IO_ORIG_USER 0
#define FB_SPLASH_IO_ORIG_KERNEL 1
! #endif
/*
* Adjustable settings
--- 21,60 ----
*/
#ifdef TARGET_KERNEL
#include <linux/fb.h>
#else
#include <fb.h>
#endif
/*
* Necessary to avoid compilation errors when fbsplash support is
* disabled.
*/
#define FB_SPLASH_IO_ORIG_USER 0
#define FB_SPLASH_IO_ORIG_KERNEL 1
!
! #define FBIOSPLASH_SETCFG _IOWR('F', 0x19, struct fb_splash_iowrapper)
! #define FBIOSPLASH_GETCFG _IOR('F', 0x1A, struct fb_splash_iowrapper)
! #define FBIOSPLASH_SETSTATE _IOWR('F', 0x1B, struct fb_splash_iowrapper)
! #define FBIOSPLASH_GETSTATE _IOR('F', 0x1C, struct fb_splash_iowrapper)
! #define FBIOSPLASH_SETPIC _IOWR('F', 0x1D, struct fb_splash_iowrapper)
!
! #define FB_SPLASH_THEME_LEN 128 /* Maximum lenght of a theme name */
!
! struct fb_splash_iowrapper
! {
! unsigned short vc; /* Virtual console */
! unsigned char origin; /* Point of origin of the request */
! void *data;
! };
!
! /* A structure used by the framebuffer splash code (drivers/video/fbsplash.c) */
! struct vc_splash {
! __u8 bg_color; /* The color that is to be treated as transparent */
! __u8 state; /* Current splash state: 0 = off, 1 = on */
! __u16 tx, ty; /* Top left corner coordinates of the text field */
! __u16 twidth, theight; /* Width and height of the text field */
! char* theme;
! };
/*
* Adjustable settings
Only in splashutils-1.3/: splash.h~

View file

@ -2,7 +2,7 @@ args : with args; with builderDefs;
let localDefs = builderDefs.passthru.function ((rec { let localDefs = builderDefs.passthru.function ((rec {
src = /* put a fetchurl here */ src = /* put a fetchurl here */
fetchurl { fetchurl {
url = ftp://ftp.dict.org/pub/dict/dictd-1.9.15.tar.gz; url = mirror://sourceforge/dict/dictd-1.9.15.tar.gz;
sha256 = "0p41yf72l0igmshz6vxy3hm51z25600vrnb9j2jpgws4c03fqnac"; sha256 = "0p41yf72l0igmshz6vxy3hm51z25600vrnb9j2jpgws4c03fqnac";
}; };

View file

@ -1,5 +1,5 @@
{ stdenv, fetchurl, pkgconfig, gnum4, gdbm, libtool, glib, dbus, hal, avahi { stdenv, fetchurl, pkgconfig, gnum4, gdbm, libtool, glib, dbus, hal, avahi
, gconf, liboil, intltool, gettext , gconf, liboil, libX11, libICE, libSM, intltool, gettext, alsaLib
, libsamplerate, libsndfile, speex }: , libsamplerate, libsndfile, speex }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -12,12 +12,20 @@ stdenv.mkDerivation rec {
buildInputs = [ buildInputs = [
pkgconfig gnum4 gdbm libtool glib dbus hal avahi gconf liboil pkgconfig gnum4 gdbm libtool glib dbus hal avahi gconf liboil
libsamplerate libsndfile speex libsamplerate libsndfile speex alsaLib
libX11 libICE libSM
intltool gettext intltool gettext
]; ];
preConfigure = ''
# Disable the ConsoleKit module since we don't currently have that
# on NixOS.
sed -i "src/daemon/default.pa.in" \
-e 's/^\( *load-module \+module-console-kit\)/# \1/g'
'';
configureFlags = '' configureFlags = ''
--disable-solaris --disable-jack --disable-bluez --disable-polkit --disable-solaris --disable-jack --disable-bluez --disable-polkit --with-x --enable-asyncdns --localstatedir=/var
''; '';
meta = { meta = {

View file

@ -3,11 +3,11 @@
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "samba-3.2.4"; name = "samba-3.2.7";
src = fetchurl { src = fetchurl {
url = http://us3.samba.org/samba/ftp/stable/samba-3.2.4.tar.gz; url = http://us3.samba.org/samba/ftp/stable/samba-3.2.7.tar.gz;
sha256 = "1srypwpmfhw30kd7zdv7q2dpdjlzdwb28lc34z1dnls4wbpaapm8"; sha256 = "18q4q1ay9dsk3djl1s2ibj51n8c111y05h5dsc2ssl2wg32vhasg";
}; };
buildInputs = [readline pam openldap kerberos popt iniparser libunwind fam acl]; buildInputs = [readline pam openldap kerberos popt iniparser libunwind fam acl];

View file

@ -1004,15 +1004,15 @@ rec {
buildInputs = [pkgconfig libfontenc freetype xproto zlib ]; buildInputs = [pkgconfig libfontenc freetype xproto zlib ];
}) // {inherit libfontenc freetype xproto zlib ;}; }) // {inherit libfontenc freetype xproto zlib ;};
pixman = (stdenv.mkDerivation { pixman = (stdenv.mkDerivation rec {
name = "pixman-0.12.0"; name = "pixman-0.13.2";
builder = ./builder.sh; builder = ./builder.sh;
src = fetchurl { src = fetchurl {
url = mirror://xorg/individual/lib/pixman-0.12.0.tar.bz2; url = "http://mirror.switch.ch/ftp/mirror/X11/pub/individual/lib/${name}.tar.bz2";
sha256 = "0a5j4lxlsn4sns2zcv9z32jh4mll7qv8yb5dyx1gphl258w58ax8"; sha256 = "1p3wzgzaivl4f0vm6p628jav8v4hz8kdml50a3agxiq447frysvv";
}; };
buildInputs = [pkgconfig perl ]; buildInputs = [ perl pkgconfig ];
}) // {inherit perl ;}; }) // {inherit ;};
printproto = (stdenv.mkDerivation { printproto = (stdenv.mkDerivation {
name = "printproto-1.0.4"; name = "printproto-1.0.4";

View file

@ -14,6 +14,17 @@ rec {
gcc = gcc43; gcc = gcc43;
curl = import ../../tools/networking/curl {
inherit fetchurl;
stdenv = makeStaticBinaries stdenv;
zlibSupport = false;
sslSupport = false;
};
foo = kernelPackages.klibc;
build = build =
stdenv.mkDerivation { stdenv.mkDerivation {

View file

@ -563,6 +563,10 @@ let
inherit fetchurl stdenv; inherit fetchurl stdenv;
}; };
cdecl = import ../development/tools/cdecl {
inherit fetchurl stdenv yacc flex readline;
};
cdrdao = import ../tools/cd-dvd/cdrdao { cdrdao = import ../tools/cd-dvd/cdrdao {
inherit fetchurl stdenv; inherit fetchurl stdenv;
}; };
@ -634,6 +638,10 @@ let
ddrescue = builderDefsPackage (selectVersion ../tools/system/ddrescue "1.8") {}; ddrescue = builderDefsPackage (selectVersion ../tools/system/ddrescue "1.8") {};
dev86 = import ../development/compilers/dev86 {
inherit fetchurl stdenv;
};
dnsmasq = import ../tools/networking/dnsmasq { dnsmasq = import ../tools/networking/dnsmasq {
# TODO i18n can be installed as well, implement it? # TODO i18n can be installed as well, implement it?
inherit fetchurl stdenv; inherit fetchurl stdenv;
@ -855,11 +863,6 @@ let
inherit fetchurl stdenv ocaml; inherit fetchurl stdenv ocaml;
}; };
hg2git = import ../tools/misc/hg2git {
inherit fetchurl stdenv mercurial coreutils git makeWrapper;
inherit (bleedingEdgeRepos) sourceByName;
};
highlight = builderDefsPackage (selectVersion ../tools/text/highlight "2.6.10") { highlight = builderDefsPackage (selectVersion ../tools/text/highlight "2.6.10") {
inherit getopt; inherit getopt;
}; };
@ -877,6 +880,10 @@ let
}; };
*/ */
iasl = import ../development/compilers/iasl {
inherit fetchurl stdenv bison flex;
};
idutils = import ../tools/misc/idutils { idutils = import ../tools/misc/idutils {
inherit fetchurl stdenv emacs; inherit fetchurl stdenv emacs;
}; };
@ -2508,6 +2515,10 @@ let
inherit fetchurl stdenv; inherit fetchurl stdenv;
}); });
ragel = import ../development/tools/parsing/ragel {
inherit composableDerivation fetchurl transfig texLive;
};
# couldn't find the source yet # couldn't find the source yet
selenium_rc_binary = import ../development/tools/selenium/remote-control { selenium_rc_binary = import ../development/tools/selenium/remote-control {
inherit fetchurl stdenv unzip; inherit fetchurl stdenv unzip;
@ -2703,7 +2714,7 @@ let
}; };
cairomm = import ../development/libraries/cairomm { cairomm = import ../development/libraries/cairomm {
inherit fetchurl stdenv pkgconfig cairo x11 fontconfig freetype; inherit fetchurl stdenv pkgconfig cairo x11 fontconfig freetype libsigcxx;
}; };
chipmunk = builderDefsPackage (import ../development/libraries/chipmunk) { chipmunk = builderDefsPackage (import ../development/libraries/chipmunk) {
@ -3046,6 +3057,13 @@ let
xineramaSupport = true; xineramaSupport = true;
}; };
gtkLibs214 = import ../development/libraries/gtk-libs/2.14 {
inherit fetchurl stdenv pkgconfig gettext perl x11 jasper
libtiff libjpeg libpng cairo libsigcxx cairomm;
inherit (xlibs) libXinerama libXrandr;
xineramaSupport = true;
};
gtkmozembedsharp = import ../development/libraries/gtkmozembed-sharp { gtkmozembedsharp = import ../development/libraries/gtkmozembed-sharp {
inherit fetchurl stdenv mono pkgconfig monoDLLFixer; inherit fetchurl stdenv mono pkgconfig monoDLLFixer;
inherit (gnome) gtk; inherit (gnome) gtk;
@ -3177,6 +3195,12 @@ let
inherit fetchurl stdenv ncurses; inherit fetchurl stdenv ncurses;
}; };
libcanberra = import ../development/libraries/libcanberra {
inherit fetchurl stdenv pkgconfig libtool alsaLib pulseaudio libvorbis;
inherit (gtkLibs214) gtk gthread;
gstreamer = gst_all.gstreamer;
};
libcdaudio = import ../development/libraries/libcdaudio { libcdaudio = import ../development/libraries/libcdaudio {
inherit fetchurl stdenv; inherit fetchurl stdenv;
}; };
@ -3574,6 +3598,10 @@ let
inherit fetchurl stdenv zlib libxml2; inherit fetchurl stdenv zlib libxml2;
}; };
opencascade = import ../development/libraries/opencascade {
inherit fetchurl stdenv mesa qt4 tcl tk;
};
# this ctl version is needed by openexr_viewers # this ctl version is needed by openexr_viewers
openexr_ctl = import ../development/libraries/openexr_ctl { openexr_ctl = import ../development/libraries/openexr_ctl {
inherit fetchurl stdenv ilmbase ctl; inherit fetchurl stdenv ilmbase ctl;
@ -3645,6 +3673,15 @@ let
inherit fetchurl stdenv; inherit fetchurl stdenv;
}; };
qt3gcc33 = import ../development/libraries/qt-3 {
stdenv = overrideGCC stdenv gcc33;
inherit fetchurl x11 zlib libjpeg libpng which mysql mesa;
inherit (xlibs) xextproto libXft libXrender libXrandr randrproto
libXmu libXinerama xineramaproto libXcursor;
openglSupport = false;
mysqlSupport = false;
};
qt3 = import ../development/libraries/qt-3 { qt3 = import ../development/libraries/qt-3 {
inherit fetchurl stdenv x11 zlib libjpeg libpng which mysql mesa; inherit fetchurl stdenv x11 zlib libjpeg libpng which mysql mesa;
inherit (xlibs) xextproto libXft libXrender libXrandr randrproto inherit (xlibs) xextproto libXft libXrender libXrandr randrproto
@ -3810,7 +3847,7 @@ let
wxGTK28fun = lib.sumArgs (import ../development/libraries/wxGTK-2.8); wxGTK28fun = lib.sumArgs (import ../development/libraries/wxGTK-2.8);
wxGTK28deps = wxGTK28fun { wxGTK28deps = wxGTK28fun {
inherit fetchurl stdenv pkgconfig; inherit fetchurl stdenv pkgconfig mesa;
inherit (gtkLibs) gtk; inherit (gtkLibs) gtk;
inherit (xlibs) libXinerama libSM libXxf86vm xf86vidmodeproto; inherit (xlibs) libXinerama libSM libXxf86vm xf86vidmodeproto;
}; };
@ -5757,7 +5794,9 @@ let
dbus hal avahi liboil libsamplerate libsndfile speex dbus hal avahi liboil libsamplerate libsndfile speex
intltool gettext; intltool gettext;
inherit (gtkLibs) glib; inherit (gtkLibs) glib;
inherit (xlibs) libX11 libICE libSM;
gconf = gnome.GConf; gconf = gnome.GConf;
alsaLib = alsa_1_0_19.alsaLib; # Needs ALSA >= 1.0.17.
}; };
tomcat_connectors = import ../servers/http/apache-modules/tomcat-connectors { tomcat_connectors = import ../servers/http/apache-modules/tomcat-connectors {
@ -5892,9 +5931,16 @@ let
}; };
alsaLib = alsa.alsaLib; alsaLib = alsa.alsaLib;
alsaUtils = alsa.alsaUtils; alsaUtils = alsa.alsaUtils;
# A newer ALSA. Make it the default during the next `stdenv-updates' merge.
alsa_1_0_19 = import ../os-specific/linux/alsa/1.0.19.nix {
inherit fetchurl stdenv ncurses gettext;
version = "1.0.19";
};
alsaLib_1_0_19 = alsa_1_0_19.alsaLib;
alsaUtils_1_0_19 = alsa_1_0_19.alsaUtils;
blcr = builderDefsPackage (selectVersion ../os-specific/linux/blcr "0.6.5"){ blcr = builderDefsPackage (selectVersion ../os-specific/linux/blcr "0.6.5"){
inherit perl; inherit perl;
}; };
@ -6135,7 +6181,7 @@ let
"# CONFIG_PROC_MM_DUMPABLE is not set\n"; "# CONFIG_PROC_MM_DUMPABLE is not set\n";
} }
{ name = "fbsplash-0.9.2-r5-2.6.21"; { name = "fbsplash-0.9.2-r5-2.6.21";
patch = fetchurl { patch = fetchurl { # !!! missing!
url = http://dev.gentoo.org/~dsd/genpatches/trunk/2.6.21/4200_fbsplash-0.9.2-r5.patch; url = http://dev.gentoo.org/~dsd/genpatches/trunk/2.6.21/4200_fbsplash-0.9.2-r5.patch;
sha256 = "00s8074fzsly2zpir885zqkvq267qyzg6vhsn7n1z2v1z78avxd8"; sha256 = "00s8074fzsly2zpir885zqkvq267qyzg6vhsn7n1z2v1z78avxd8";
}; };
@ -6149,7 +6195,7 @@ let
kernelPatches = [ kernelPatches = [
{ name = "fbsplash-0.9.2-r5-2.6.21"; { name = "fbsplash-0.9.2-r5-2.6.21";
patch = fetchurl { patch = fetchurl {
url = http://dev.gentoo.org/~dsd/genpatches/trunk/2.6.22/4200_fbsplash-0.9.2-r5.patch; url = http://nixos.org/tarballs/4200_fbsplash-0.9.2-r5.patch;
sha256 = "0822wwlf2dqsap5qslnnp0yl1nbvvvb76l73w2dd8zsyn0bqg3px"; sha256 = "0822wwlf2dqsap5qslnnp0yl1nbvvvb76l73w2dd8zsyn0bqg3px";
}; };
extraConfig = "CONFIG_FB_SPLASH=y"; extraConfig = "CONFIG_FB_SPLASH=y";
@ -6183,7 +6229,7 @@ let
*/ */
{ name = "fbsplash-0.9.2-r5-2.6.21"; { name = "fbsplash-0.9.2-r5-2.6.21";
patch = fetchurl { patch = fetchurl {
url = http://dev.gentoo.org/~dsd/genpatches/trunk/2.6.22/4200_fbsplash-0.9.2-r5.patch; url = http://nixos.org/tarballs/4200_fbsplash-0.9.2-r5.patch;
sha256 = "0822wwlf2dqsap5qslnnp0yl1nbvvvb76l73w2dd8zsyn0bqg3px"; sha256 = "0822wwlf2dqsap5qslnnp0yl1nbvvvb76l73w2dd8zsyn0bqg3px";
}; };
extraConfig = "CONFIG_FB_SPLASH=y"; extraConfig = "CONFIG_FB_SPLASH=y";
@ -6337,33 +6383,11 @@ let
inherit kernel; inherit kernel;
}; };
# Actually, klibc builds fine with the static kernelHeaders, but
# splashutils expects a klibc with patched headers...
klibc = composedArgsAndFun (import ../os-specific/linux/klibc) {
inherit fetchurl stdenv perl bison mktemp kernel;
};
klibcShrunk = composedArgsAndFun (import ../os-specific/linux/klibc/shrunk.nix) {
inherit stdenv klibc;
};
splashutils = splashutils =
if kernel.features ? fbSplash then splashutils_13 else if kernel.features ? fbSplash then splashutils_13 else
if kernel.features ? fbConDecor && system != "x86_64-linux" then splashutils_15 else if kernel.features ? fbConDecor && system != "x86_64-linux" then splashutils_15 else
null; null;
splashutils_13 = import ../os-specific/linux/splashutils/1.3.nix {
inherit fetchurl stdenv klibc;
zlib = zlibStatic;
libjpeg = libjpegStatic;
};
splashutils_15 = import ../os-specific/linux/splashutils/1.5.nix {
inherit fetchurl stdenv klibc;
zlib = zlibStatic;
libjpeg = libjpegStatic;
};
ext3cowtools = import ../os-specific/linux/ext3cow-tools { ext3cowtools = import ../os-specific/linux/ext3cow-tools {
inherit stdenv fetchurl; inherit stdenv fetchurl;
kernel_ext3cowpatched = kernel; kernel_ext3cowpatched = kernel;
@ -6400,6 +6424,15 @@ let
inherit fetchurl stdenv binutils pkgconfig kernel; inherit fetchurl stdenv binutils pkgconfig kernel;
inherit (gnome) gtk glib pango libglade; inherit (gnome) gtk glib pango libglade;
}; };
# Broken build, still. The install step fails, and I never tried to run that compiled.
virtualbox = import ../applications/virtualization/virtualbox/2.1.2.nix {
inherit stdenv fetchurl iasl dev86 libxslt libxml2 qt3 qt4 SDL hal
libcap libpng zlib kernel;
inherit (gtkLibs) glib;
inherit (xlibs) xproto libX11 libXext libXcursor;
inherit (gnome) libIDL;
};
}; };
# Build the kernel modules for the some of the kernels. # Build the kernel modules for the some of the kernels.
@ -6413,7 +6446,7 @@ let
kernelPackages = kernelPackages_2_6_25; kernelPackages = kernelPackages_2_6_25;
customKernel = composedArgsAndFun (lib.sumTwoArgs (import ../os-specific/linux/kernel/generic.nix) { customKernel = composedArgsAndFun (lib.sumTwoArgs (import ../os-specific/linux/kernel/generic.nix) {
inherit fetchurl stdenv perl mktemp module_init_tools lib; inherit fetchurl stdenv perl mktemp module_init_tools;
}); });
libselinux = import ../os-specific/linux/libselinux { libselinux = import ../os-specific/linux/libselinux {
@ -6443,6 +6476,15 @@ let
inherit fetchurl stdenv bison flex perl; inherit fetchurl stdenv bison flex perl;
}; };
klibc = composedArgsAndFun (import ../os-specific/linux/klibc) {
inherit fetchurl stdenv perl bison mktemp;
kernelHeaders = glibc.kernelHeaders;
};
klibcShrunk = composedArgsAndFun (import ../os-specific/linux/klibc/shrunk.nix) {
inherit stdenv klibc;
};
kvm = kvm76; kvm = kvm76;
kvm57 = import ../os-specific/linux/kvm/57.nix { kvm57 = import ../os-specific/linux/kvm/57.nix {
@ -6592,6 +6634,18 @@ let
inherit fetchurl stdenv; inherit fetchurl stdenv;
}; };
splashutils_13 = import ../os-specific/linux/splashutils/1.3.nix {
inherit fetchurl stdenv klibc;
zlib = zlibStatic;
libjpeg = libjpegStatic;
};
splashutils_15 = import ../os-specific/linux/splashutils/1.5.nix {
inherit fetchurl stdenv klibc;
zlib = zlibStatic;
libjpeg = libjpegStatic;
};
squashfsTools = import ../os-specific/linux/squashfs { squashfsTools = import ../os-specific/linux/squashfs {
inherit fetchurl stdenv zlib; inherit fetchurl stdenv zlib;
}; };
@ -7393,32 +7447,10 @@ let
inherit (gnome) gtk libgtkhtml libart_lgpl; inherit (gnome) gtk libgtkhtml libart_lgpl;
}; };
git = import ../applications/version-management/git { gitAndTools = recurseIntoAttrs (import ../applications/version-management/git-and-tools {
inherit fetchurl stdenv curl openssl zlib expat perl gettext inherit pkgs;
asciidoc texinfo xmlto docbook2x });
docbook_xsl docbook_xml_dtd_42 libxslt git = gitAndTools.git;
cpio tcl tk makeWrapper subversion;
svnSupport = getConfig ["git" "svnSupport"] false; # for git-svn support
guiSupport = getConfig ["git" "guiSupport"] false;
perlLibs = [perlLWP perlURI perlTermReadKey subversion];
};
gitGit = import ../applications/version-management/git/git-git.nix {
inherit fetchurl stdenv curl openssl zlib expat perl gettext
asciidoc texinfo xmlto docbook2x
docbook_xsl docbook_xml_dtd_42 libxslt
cpio tcl tk makeWrapper subversion autoconf;
inherit (bleedingEdgeRepos) sourceByName;
svnSupport = getConfig ["git" "svnSupport"] false; # for git-svn support
guiSupport = getConfig ["git" "guiSupport"] false;
perlLibs = [perlLWP perlURI perlTermReadKey subversion];
};
qgit = import ../applications/version-management/qgit {
inherit fetchurl stdenv;
inherit (xlibs) libXext libX11;
qt = qt3;
};
qjackctl = import ../applications/audio/qjackctl { qjackctl = import ../applications/audio/qjackctl {
inherit fetchurl stdenv alsaLib jackaudio; inherit fetchurl stdenv alsaLib jackaudio;
@ -7757,9 +7789,9 @@ let
inherit fetchurl zlib glibc stdenv; inherit fetchurl zlib glibc stdenv;
# stdenv = overrideGCC stdenv gcc40; # stdenv = overrideGCC stdenv gcc40;
inherit (xlibs) libX11 libSM libICE libXt libXext; inherit (xlibs) libX11 libSM libICE libXt libXext;
qt = qt3; qt = qt3gcc33;
#33motif = lesstif; #33motif = lesstif;
libstdcpp5 = (if (stdenv.system == "i686-linux") then gcc33 /* stdc++ 3.8 is used */ else gcc42).gcc; libstdcpp5 = gcc33.gcc;
}; };
pan = import ../applications/networking/newsreaders/pan { pan = import ../applications/networking/newsreaders/pan {
@ -7770,7 +7802,7 @@ let
pidgin = import ../applications/networking/instant-messengers/pidgin { pidgin = import ../applications/networking/instant-messengers/pidgin {
inherit fetchurl stdenv pkgconfig perl perlXMLParser libxml2 nss inherit fetchurl stdenv pkgconfig perl perlXMLParser libxml2 nss
gtkspell aspell gettext ncurses avahi dbus dbus_glib lib; gtkspell aspell gettext ncurses avahi dbus dbus_glib lib intltool;
openssl = if (getConfig ["pidgin" "openssl"] true) then openssl else null; openssl = if (getConfig ["pidgin" "openssl"] true) then openssl else null;
gnutls = if (getConfig ["pidgin" "gnutls"] false) then gnutls else null; gnutls = if (getConfig ["pidgin" "gnutls"] false) then gnutls else null;
GStreamer = gst_all.gstreamer; GStreamer = gst_all.gstreamer;
@ -7917,10 +7949,6 @@ let
}; };
stgit = import ../applications/version-management/stgit {
inherit fetchurl stdenv python git;
};
stumpwm = builderDefsPackage (import ../applications/window-managers/stumpwm) { stumpwm = builderDefsPackage (import ../applications/window-managers/stumpwm) {
inherit clisp texinfo; inherit clisp texinfo;
}; };
@ -8458,6 +8486,10 @@ let
### DESKTOP ENVIRONMENTS ### DESKTOP ENVIRONMENTS
enlightenment = import ../desktops/enlightenment {
inherit stdenv fetchurl pkgconfig x11 xlibs dbus imlib2 freetype;
};
gnome = recurseIntoAttrs (import ../desktops/gnome { gnome = recurseIntoAttrs (import ../desktops/gnome {
inherit inherit
fetchurl stdenv pkgconfig fetchurl stdenv pkgconfig
@ -8640,13 +8672,17 @@ let
}; };
ghostscript = import ../misc/ghostscript { ghostscript = import ../misc/ghostscript {
inherit fetchurl stdenv libjpeg libpng zlib x11; inherit fetchurl stdenv libjpeg libpng libtiff zlib x11 pkgconfig
fontconfig cups openssl;
x11Support = false; x11Support = false;
cupsSupport = true;
}; };
ghostscriptX = lowPrio (appendToName "with-X" (import ../misc/ghostscript { ghostscriptX = lowPrio (appendToName "with-X" (import ../misc/ghostscript {
inherit fetchurl stdenv libjpeg libpng zlib x11; inherit fetchurl stdenv libjpeg libpng libtiff zlib x11 pkgconfig
fontconfig cups openssl;
x11Support = true; x11Support = true;
cupsSupport = true;
})); }));
gxemul = (import ../misc/gxemul) { gxemul = (import ../misc/gxemul) {
@ -8889,6 +8925,10 @@ let
inherit (xlibs) libX11; inherit (xlibs) libX11;
}; };
yafc = import ../applications/networking/yafc {
inherit fetchurl stdenv readline openssh;
};
myEnvFun = import ../misc/my-env { myEnvFun = import ../misc/my-env {
inherit substituteAll pkgs; inherit substituteAll pkgs;
inherit (stdenv) mkDerivation; inherit (stdenv) mkDerivation;

View file

@ -98,6 +98,7 @@ let
kbd kbd
kcachegrind kcachegrind
kdebase kdebase
klibc
ktorrent ktorrent
kvm kvm
less less
@ -160,6 +161,8 @@ let
seccure seccure
slim slim
spidermonkey spidermonkey
splashutils_13
splashutils_15
ssmtp ssmtp
strace strace
su su
@ -242,36 +245,26 @@ let
inherit (pkgs.kernelPackages_2_6_23) inherit (pkgs.kernelPackages_2_6_23)
iwlwifi iwlwifi
kernel kernel
klibc
splashutils
; ;
}; };
kernelPackages_2_6_25 = pkgs.recurseIntoAttrs { kernelPackages_2_6_25 = pkgs.recurseIntoAttrs {
inherit (pkgs.kernelPackages_2_6_25) inherit (pkgs.kernelPackages_2_6_25)
kernel kernel
klibc
# splashutils
; ;
}; };
kernelPackages_2_6_26 = pkgs.recurseIntoAttrs { kernelPackages_2_6_26 = pkgs.recurseIntoAttrs {
inherit (pkgs.kernelPackages_2_6_26) inherit (pkgs.kernelPackages_2_6_26)
kernel kernel
klibc
# splashutils
; ;
}; };
kernelPackages_2_6_27 = pkgs.recurseIntoAttrs { kernelPackages_2_6_27 = pkgs.recurseIntoAttrs {
inherit (pkgs.kernelPackages_2_6_27) inherit (pkgs.kernelPackages_2_6_27)
kernel kernel
klibc
# splashutils
; ;
}; };
kernelPackages_2_6_28 = pkgs.recurseIntoAttrs { kernelPackages_2_6_28 = pkgs.recurseIntoAttrs {
inherit (pkgs.kernelPackages_2_6_28) inherit (pkgs.kernelPackages_2_6_28)
kernel kernel
klibc
# splashutils
; ;
}; };
}; };