* Sync with the trunk.

svn path=/nixpkgs/branches/stdenv-updates/; revision=16094
This commit is contained in:
Eelco Dolstra 2009-06-30 11:42:15 +00:00
commit cdf4cf5c23
471 changed files with 16343 additions and 1627 deletions

View File

@ -13,7 +13,7 @@ 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>
<section xml:id="ssec-language-perl"><title>Perl</title>
<para>Nixpkgs provides a function <varname>buildPerlPackage</varname>,
a generic package builder function for any Perl package that has a
@ -156,7 +156,42 @@ ClassC3Componentised = buildPerlPackage rec {
<section><title>Python</title>
<para>TODO</para>
<para>
Python packages that
use <link xlink:href="http://pypi.python.org/pypi/setuptools/"><literal>setuptools</literal></link>,
which many Python packages do nowadays, can be built very simply using
the <varname>buildPythonPackage</varname> function. This function is
implemented
in <link xlink:href="https://svn.nixos.org/repos/nix/nixpkgs/trunk/pkgs/development/python-modules/generic/default.nix"><filename>pkgs/development/python-modules/generic/default.nix</filename></link>
and works similarly to <varname>buildPerlPackage</varname>. (See
<xref linkend="ssec-language-perl"/> for details.)
</para>
<para>
Python packages that use <varname>buildPythonPackage</varname> are
defined
in <link xlink:href="https://svn.nixos.org/repos/nix/nixpkgs/trunk/pkgs/top-level/python-packages.nix"><filename>pkgs/python-packages.nix</filename></link>.
Most of them are simple. For example:
<programlisting>
twisted = buildPythonPackage {
name = "twisted-8.1.0";
src = fetchurl {
url = http://tmrc.mit.edu/mirror/twisted/Twisted/8.1/Twisted-8.1.0.tar.bz2;
sha256 = "0q25zbr4xzknaghha72mq57kh53qw1bf8csgp63pm9sfi72qhirl";
};
propagatedBuildInputs = [ pkgs.ZopeInterface ];
meta = {
homepage = http://twistedmatrix.com/;
description = "Twisted, an event-driven networking engine written in Python";
license = "MIT";
};
};
</programlisting>
</para>
</section>
@ -182,4 +217,4 @@ ClassC3Componentised = buildPerlPackage rec {
</section>
</chapter>
</chapter>

View File

@ -1,4 +1,6 @@
{ stdenv, fetchurl, wxGTK, pkgconfig, gettext, gtk, glib, zlib }:
{ stdenv, fetchurl, wxGTK, pkgconfig, gettext, gtk, glib, zlib, perl, intltool,
libogg, libvorbis, libmad
}:
stdenv.mkDerivation {
name = "audacity-1.3.7";
@ -7,9 +9,10 @@ stdenv.mkDerivation {
src = fetchurl {
url = mirror://sourceforge/audacity/audacity-fullsrc-1.3.7.tar.bz2;
sha256 = "1kashc6cc6d5g6i59nqcrl795x1jqdh0lpg3msa1wckfj3hpljmy";
sha256 = "0b4arafpdyjjk52l6n7aw518hzm65iv9w5g39jqr2bmvn6a9qivi";
};
buildInputs = [ wxGTK pkgconfig gettext gtk glib zlib ];
buildInputs = [ wxGTK pkgconfig gettext gtk glib zlib intltool perl
libogg libvorbis libmad];
meta = {
description = "Sound editor with graphical UI";

View File

@ -10,7 +10,7 @@ args: with args;
};
in with localDefs;
let
postInstall = FullDepEntry ("
postInstall = fullDepEntry ("
ensureDir \$out/share/ladspa/
ln -s \$out/lib/ladspa \$out/share/ladspa/lib
") [minInit defEnsureDir];

View File

@ -12,7 +12,7 @@ in
};
in with localDefs;
let
copyFile = FullDepEntry ("
copyFile = fullDepEntry ("
ensureDir \$out/include
cp ${src} \$out/include/ladspa.h
") [minInit defEnsureDir];

View File

@ -2,9 +2,9 @@ args :
let
lib = args.lib;
fetchurl = args.fetchurl;
FullDepEntry = args.FullDepEntry;
fullDepEntry = args.fullDepEntry;
version = lib.getAttr ["version"] "9.4" args;
version = lib.attrByPath ["version"] "9.4" args;
buildInputs = with args; [gtk glib pkgconfig
libXpm gmp gettext libX11 fftw]
++ (lib.optional (args ? ruby) args.ruby)
@ -38,14 +38,14 @@ rec {
phaseNames = ["doConfigure" "preBuild" "makeDocsWork"
"doMakeInstall" "doForceShare"];
makeDocsWork = FullDepEntry ''
makeDocsWork = fullDepEntry ''
# hackish way to make html docs work
h="$out/share/snd/html"; ensureDir "$h"; cp *.html "$h"
patch -p1 < ${./doc.patch}
sed "s@HTML-DIR@$h@" -i index.scm snd-help.c
'' ["defEnsureDir"];
preBuild = FullDepEntry (''
preBuild = fullDepEntry (''
cp config.log /tmp/snd-config.log
export NIX_LDFLAGS="$NIX_LDFLAGS -L${args.libX11}/lib -lX11"

View File

@ -0,0 +1,69 @@
{ stdenv, fetchurl, patchelf, makeDesktopItem
, freetype, fontconfig, libX11, libXext, libXrender
, glib, gtk, libXtst
, jre
}:
assert stdenv ? glibc;
stdenv.mkDerivation rec {
name = "eclipse-3.4.2";
src = if stdenv.system == "x86_64-linux" then
fetchurl {
url = http://ftp.heanet.ie/pub/eclipse/eclipse/downloads/drops/R-3.4.2-200902111700/eclipse-SDK-3.4.2-linux-gtk-x86_64.tar.gz;
sha256 = "33e4e88347acd7f2f9243a8b887bd012cf5aec06c2d0f64da1349444bbd6876b";
}
else
fetchurl {
url = http://www.mirrorservice.org/sites/download.eclipse.org/eclipseMirror/eclipse/downloads/drops/R-3.4.2-200902111700/eclipse-SDK-3.4.2-linux-gtk.tar.gz;
sha256 = "4518992b0d7bafeaa2338017ebc7048b09a227f056f576b2b077a435110ef9dd";
}
;
desktopItem = makeDesktopItem {
name = "Eclipse";
exec = "eclipse";
icon = "eclipse";
comment = "Integrated Development Environment";
desktopName = "Eclipse IDE";
genericName = "Integrated Development Environment";
categories = "Application;Development;";
};
buildInputs = [ patchelf ];
buildCommand = ''
# Unpack tarball
tar xfvz $src
# Patch binaries
cd eclipse
${if stdenv.system == "x86_64-linux" then
"patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux-x86-64.so.2 ./eclipse"
else
"patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux.so.2 ./eclipse"
}
patchelf --set-rpath ${freetype}/lib:${fontconfig}/lib:${libX11}/lib:${libXext}/lib:${libXrender}/lib ./libcairo-swt.so
# Create wrapper script
cd ..
ensureDir $out/bin
cp -av eclipse $out
cat > $out/bin/eclipse <<EOF
#!/bin/sh
export PATH=${jre}/bin
export LD_LIBRARY_PATH=${glib}/lib:${gtk}/lib:${libXtst}/lib
$out/eclipse/eclipse "\$@"
EOF
chmod 755 $out/bin/eclipse
# Create desktop item
ensureDir $out/share/applications
cp ${desktopItem}/share/applications/* $out/share/applications
'';
}

View File

@ -22,7 +22,7 @@ cat >> $out/bin/eclipse << EOF
#! /bin/sh -e
export PATH=${jdk}/bin\${PATH:+:}\$PATH
export LD_LIBRARY_PATH=$rpath\${LD_LIBRARY_PATH:+:}\$LD_LIBRARY_PATH
exec \$(dirname $0)/../eclipse/eclipse $@
exec \$(dirname \$0)/../eclipse/eclipse $@
EOF
chmod +x $out/bin/eclipse

View File

@ -9,25 +9,29 @@
# Why use a local copy? This way it's easier to use the update manager to get plugins :-)
{fetchurl, stdenv, jdk, gtk, glib, libXtst, plugins ? []}:
{fetchurl, stdenv, jdk, gtk, glib, libXtst, makeOverridable, plugins ? [], unzip}:
let {
body =
let eclipseFun =
makeOverridable ({name, bindist} :
stdenv.mkDerivation {
name = "eclipse-sdk-3.5M6";
inherit name;
builder = ./builder.sh;
src = bindist;
buildInputs = [];
buildInputs = [ unzip /* unzip required by eclipseCDT */ ];
inherit jdk plugins;
libraries = [gtk glib libXtst];
};
}); in
bindist =
if (stdenv.system == "x86_64-linux") then fetchurl {
url = ftp://sunsite.informatik.rwth-aachen.de/pub/mirror/eclipse/S-3.5M6-200903130100/eclipse-SDK-3.5M6-linux-gtk-x86_64.tar.gz;
sha256 = "10p4idp5rcdf7xqwfk3kvmjxhi8x1v835m0y4pn9q4nhfb5643pi";
} else fetchurl {
url = ftp://mirror.micromata.de/eclipse/eclipse/downloads/drops/S-3.5M6-200903130100/eclipse-SDK-3.5M6-linux-gtk.tar.gz;
sha256 = "1z8j26b632ydhqrmwgbcqgiq7f1a542jam06z2h62mcbqazrcyah";
};
}
eclipseFun {
# you can override these settings usnig .override {...}
name = "eclipse-sdk-3.5M6";
bindist =
if (stdenv.system == "x86_64-linux") then fetchurl {
url = ftp://sunsite.informatik.rwth-aachen.de/pub/mirror/eclipse/S-3.5M6-200903130100/eclipse-SDK-3.5M6-linux-gtk-x86_64.tar.gz;
sha256 = "10p4idp5rcdf7xqwfk3kvmjxhi8x1v835m0y4pn9q4nhfb5643pi";
} else fetchurl {
url = ftp://mirror.micromata.de/eclipse/eclipse/downloads/drops/S-3.5M6-200903130100/eclipse-SDK-3.5M6-linux-gtk.tar.gz;
sha256 = "1z8j26b632ydhqrmwgbcqgiq7f1a542jam06z2h62mcbqazrcyah";
};
}

View File

@ -1,6 +0,0 @@
{stdenv, fetchurl}:
fetchurl {
url = http://www.ii.uib.no/~karltk/spoofax/plugins/org.spoofax.editor_0.3.11.jar;
md5 = "c36941afcb0e538e16fafd594eae128e";
}

View File

@ -1,10 +1,11 @@
{ fetchurl, stdenv }:
stdenv.mkDerivation rec {
name = "ed-1.2";
name = "ed-1.3";
src = fetchurl {
url = "mirror://gnu/ed/${name}.tar.gz";
sha256 = "1jhw050fzaffjf5qdj1ccn7alngam7yhd5zpzyxvrjphwmkd46kx";
sha256 = "11xyrzm21l2hhvbc0yanx2acsg1dp3ckmcwq2yl6cbymzvzzfrim";
};
doCheck = true;

View File

@ -17,7 +17,7 @@ assert xaw3dSupport -> Xaw3d != null;
assert gtkGUI -> pkgconfig != null && gtk != null;
assert xftSupport -> libXft != null && libpng != null; # libpng = probably a bug
let date = "2009-02-16"; in
let date = "2009-06-26"; in
stdenv.mkDerivation {
name = "emacs-snapshot-23-${date}";
@ -27,7 +27,7 @@ stdenv.mkDerivation {
inherit date;
cvsRoot = ":pserver:anonymous@cvs.savannah.gnu.org:/sources/emacs";
module = "emacs";
sha256 = "6ec63da94a199c5f95bf4a9aa578cf14b3d85800fd37b3562d9a446b144b0d47";
sha256 = "bf9b21a0634f45474a1ce91e6153ced69194f1e9c0acd6626a931198f4a5972f";
};
preConfigure = "autoreconf -vfi";

View File

@ -0,0 +1,31 @@
{stdenv, fetchurl, emacs, texinfo}:
stdenv.mkDerivation {
name = "magit-0.7";
src = fetchurl {
url = "http://zagadka.vm.bytemark.co.uk/magit/magit-0.7.tar.gz";
sha256 = "0qry1vj41pycwkf71sqrz3zgzh85zdg5acq26asscq4s7jksrjiz";
};
buildInputs = [emacs texinfo];
meta = {
description = "An an interface to Git, implemented as an extension to Emacs.";
longDescription = ''
With Magit, you can inspect and modify your Git repositories with
Emacs. You can review and commit the changes you have made to the
tracked files, for example, and you can browse the history of past
changes. There is support for cherry picking, reverting, merging,
rebasing, and other common Git operations.
Magit is not a complete interface to Git; it just aims to make the
most common Git operations convenient. Thus, Magit will likely not
save you from learning Git itself.
'';
license = "GPLv3+";
homepage = "http://zagadka.vm.bytemark.co.uk/magit/";
};
}

View File

@ -1,12 +1,12 @@
{ fetchurl, stdenv, emacs }:
stdenv.mkDerivation {
name = "quack-0.30";
name = "quack-0.36";
src = fetchurl {
# XXX: Upstream URL is not versioned, which might eventually break this.
url = "http://www.neilvandyke.org/quack/quack.el";
sha256 = "1xmpbdb064s3l3cv4agf03ir1g7xfzyvlqayr3yy5f8z3i6pf7mi";
sha256 = "0y9l35a8v56ldy4dap0816i80q9lnfpp27pl2a12d5hzb84hq8nr";
};
buildInputs = [ emacs ];

View File

@ -1,36 +1,36 @@
{ stdenv, fetchurl, pkgconfig, gtk, freetype, fontconfig, lcms, fltk,
{ stdenv, fetchcvs, cmake, pkgconfig, gtk, freetype, fontconfig, lcms, fltk,
flex, libtiff, libjpeg, libpng, libexif, zlib, perl, libX11,
perlXMLParser, python, pygtk, gettext, intltool, babl, gegl,
glib, makedepend, xf86vidmodeproto, xineramaproto, libXmu, openexr,
mesa, libXext, libXpm, libXxf86vm } :
mesa, libXext, libXpm, libXxf86vm, automake, autoconf, libtool } :
stdenv.mkDerivation {
name = "cinepaint-0.22-1";
name = "cinepaint-0.25.0";
src = fetchurl {
url = mirror://sourceforge/cinepaint/cinepaint-0.22-1.tar.gz;
sha256 = "bb08a9210658959772df12408769d660999ede168b7431514e1f3cead07c0fea";
# The developer told me this cvs fetch is 0.25.0
src = fetchcvs {
cvsRoot = ":pserver:anonymous@cinepaint.cvs.sourceforge.net:/cvsroot/cinepaint";
module = "cinepaint-project";
date = "2004-03-01";
sha256 = "bf6dc04f3ea2094b7ef6f87f40f2c90d75a557e40a773f8eb76e8a71f14362cf";
};
buildInputs = [ pkgconfig gtk freetype fontconfig lcms fltk flex libtiff
buildInputs = [ cmake pkgconfig gtk freetype fontconfig lcms fltk flex libtiff
libjpeg libpng libexif zlib perl libX11 perlXMLParser python pygtk gettext
intltool babl gegl glib makedepend xf86vidmodeproto xineramaproto libXmu
openexr mesa libXext libXpm libXxf86vm ];
openexr mesa libXext libXpm libXxf86vm automake autoconf libtool ];
patches = [ ./fltk.patch ];
dontUseCmakeConfigure = 1;
prePatch = ''
sed -i -e s@/usr/X11R6/bin/makedepend@${makedepend}/bin/makedepend@ \
-e s@/usr/X11R6/include/X11/extensions/xf86vmode@${xf86vidmodeproto}/include/X11/extensions/xf86vmode@ \
-e s@/usr/X11R6/include/X11/Xlib.h@${libX11}/include/X11/Xlib.h@ \
-e s@/usr/X11R6/include/X11/extensions/Xinerama.h@${xineramaproto}/include/X11/extensions/Xinerama.h@ \
-e s@/usr/X11R6/lib/libfreetype.a@${freetype}/lib/libfreetype.a@ \
plug-ins/icc_examin/icc_examin/configure \
plug-ins/icc_examin/icc_examin/configure.sh
NIX_CFLAGS_COMPILE = "-I.";
configurePhase = ''
cd cinepaint
chmod 0777 autogen.sh
./autogen.sh
./configure --prefix=$out
'';
configureFlags = [ "--disable-print" "--enable-gtk2" ];
meta = {
homepage = http://www.cinepaint.org/;
license = "free";

View File

@ -1,13 +0,0 @@
diff --git a/plug-ins/icc_examin/icc_examin/icc_helfer_fltk.cpp b/plug-ins/icc_examin/icc_examin/icc_helfer_fltk.cpp
index b507454..85f4441 100644
--- a/plug-ins/icc_examin/icc_examin/icc_helfer_fltk.cpp
+++ b/plug-ins/icc_examin/icc_examin/icc_helfer_fltk.cpp
@@ -226,7 +226,7 @@ namespace icc_examin_ns {
int awake(void)
{
- Fl::awake(0);
+ Fl::awake((void *)0);
return 0;
}
int leerWait(void) { return 0; }

View File

@ -0,0 +1,182 @@
# install these packages into your profile. Then add
# ~/.nix-profile/gimp-version-plugins to your plugin list you can find at
# preferences -> Folders -> Plug-ins
# same applies for the scripts
{ pkgs, gimp }:
let
inherit (pkgs) stdenv fetchurl pkgconfig gtkLibs;
inherit (gtkLibs) glib;
targetPluginDir = "$out/${gimp.name}-plugins";
targetScriptDir = "$out/${gimp.name}-scripts";
prefix = "plugin-gimp-";
pluginDerivation = a: stdenv.mkDerivation ({
prePhases = "extraLib";
extraLib = ''
installScripts(){
ensureDir ${targetScriptDir};
for p in "$@"; do cp "$p" ${targetScriptDir}; done
}
installPlugins(){
ensureDir ${targetPluginDir};
for p in "$@"; do cp "$p" ${targetPluginDir}; done
}
'';
}
// a
# don't call this gimp-* unless you want nix replace gimp by a plugin :-)
// { name = "${a.name}-${gimp.name}-plugin"; }
);
scriptDerivation = {name, src} : pluginDerivation {
inherit name; phases = "extraLib installPhase";
installPhase = "installScripts ${src}";
};
libLQR = pluginDerivation {
name = "liblqr-1-0.4.1";
# required by lqrPlugin, you don't havet to install this lib explicitely
buildInputs = [ gimp ] ++ gimp.buildInputs;
src = fetchurl {
url = http://registry.gimp.org/files/liblqr-1-0.4.1.tar.bz2;
sha256 = "02g90wag7xi5rjlmwq8h0qs666b1i2sa90s4303hmym40il33nlz";
};
};
in
rec {
fourier = pluginDerivation {
/* menu:
Filters/Generic/FFT Forward
Filters/Generic/FFT Inverse
*/
name = "fourier-0.3.3";
buildInputs = [ gimp pkgs.fftwSinglePrec pkgconfig glib] ++ gimp.buildInputs;
postInstall = "fail";
installPhase = "installPlugins fourier";
src = fetchurl {
url = http://people.via.ecp.fr/~remi/soft/gimp/fourier-0.3.3.tar.gz;
sha256 = "0xxgp0lrjxsj54sgygi31c7q41jkqzn0v18qyznrviv8r099v29p";
};
};
resynthesizer = pluginDerivation {
/* menu:
Filters/Map/Resynthesize
Filters/Enhance/Smart enlarge
Filters/Enhance/Smart sharpen
Filters/Enhance/Smart remove selection
*/
name = "resynthesizer-0.16";
buildInputs = [ gimp pkgs.fftw ] ++ gimp.buildInputs;
src = fetchurl {
url = http://www.logarithmic.net/pfh-files/resynthesizer/resynthesizer-0.16.tar.gz;
sha256 = "1k90a1jzswxmajn56rdxa4r60v9v34fmqsiwfdxqcvx3yf4yq96x";
};
installPhase = "
installPlugins resynth
installScripts smart-{enlarge,remove}.scm
";
};
texturize = pluginDerivation {
name = "texturize-2.1";
buildInputs = [ gimp ] ++ gimp.buildInputs;
src = fetchurl {
url = http://prdownloads.sourceforge.net/gimp-texturize/texturize-2.1_src.tgz;
sha256 = "0cdjq25g3yfxx6bzx6nid21kq659s1vl9id4wxyjs2dhcv229cg3";
};
installPhase = "installPlugins src/texturize";
};
waveletSharpen = pluginDerivation {
/* menu:
Filters/Enhance/Wavelet sharpen
*/
name = "wavelet-sharpen-0.1.2";
buildInputs = [ gimp ] ++ gimp.buildInputs;
src = fetchurl {
url = http://registry.gimp.org/files/wavelet-sharpen-0.1.2.tar.gz;
sha256 = "0vql1k67i21g5ivaa1jh56rg427m0icrkpryrhg75nscpirfxxqw";
};
installPhase = "installPlugins src/wavelet-sharpen"; # TODO translations are not copied .. How to do this on nix?
};
lqrPlugin = pluginDerivation {
/* menu:
Layer/Liquid Rescale
*/
name = "lqr-plugin-0.6.1";
buildInputs = [ pkgconfig libLQR gimp ] ++ gimp.buildInputs;
src = fetchurl {
url = http://registry.gimp.org/files/gimp-lqr-plugin-0.6.1.tar.bz2;
sha256 = "00hklkpcimcbpjly4rjhfipaw096cpy768g9wixglwrsyqhil7l9";
};
#postInstall = ''ensureDir $out/nix-support; echo "${libLQR}" > "$out/nix-support/propagated-user-env-packages"'';
installPhase = "installPlugins src/gimp-lqr-plugin";
};
# this is more than a gimp plugin !
# it can be made to compile the gimp plugin only though..
gmic =
let imagemagick = pkgs.imagemagickBig; # maybe the non big version is enough?
in pluginDerivation {
name = "gmic-1.3.2.0";
buildInputs = [ imagemagick pkgconfig gimp pkgs.fftwSinglePrec ] ++ gimp.buildInputs;
src = fetchurl {
url = http://dfn.dl.sourceforge.net/sourceforge/gmic/gmic_1.3.2.0.tar.gz;
sha256 = "0mxq664vzzc2l6k6sqm9syp34mihhi262i6fixk1g12lmc28797h";
};
preConfigure = ''
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${imagemagick}/include/ImageMagick"
'';
installPhase = "installPlugins src/gmic4gimp";
meta = {
description = "script language for image processing which comes with its open-source interpreter";
homepage = http://gmic.sourceforge.net/repository.shtml;
license = "CeCILL FREE SOFTWARE LICENSE AGREEMENT";
/*
The purpose of this Free Software license agreement is to grant users
the right to modify and redistribute the software governed by this
license within the framework of an open source distribution model.
[ ... ] */
};
};
/* =============== simple script files ==================== */
lightning = scriptDerivation {
name = "Lightning";
src = fetchurl {
url = http://registry.gimp.org/files/Lightning.scm;
sha256 = "c14a8f4f709695ede3f77348728a25b3f3ded420da60f3f8de3944b7eae98a49";
};
};
/* space in name trouble ?
rainbowPlasma = scriptDerivation {
# http://registry.gimp.org/node/164
name = "rainbow-plasma";
src = fetchurl {
url = "http://registry.gimp.org/files/Rainbow Plasma.scm";
sha256 = "34308d4c9441f9e7bafa118af7ec9540f10ea0df75e812e2f3aa3fd7b5344c23";
name = "Rainbow-Plasma.scm"; # nix doesn't like spaces, does it?
};
};
*/
/* doesn't seem to be working :-(
lightningGate = scriptDerivation {
# http://registry.gimp.org/node/153
name = "lightning-gate";
src = fetchurl {
url = http://registry.gimp.org/files/LightningGate.scm;
sha256 = "181w1zi9a99kn2mfxjp43wkwcgw5vbb6iqjas7a9mhm8p04csys2";
};
};
*/
}

View File

@ -1,4 +1,5 @@
{stdenv, fetchurl, panotools, cmake, wxGTK, libtiff, libpng, openexr, boost, pkgconfig, exiv2, gettext, ilmbase }:
{stdenv, fetchurl, panotools, cmake, wxGTK, libtiff, libpng, openexr, boost,
pkgconfig, exiv2, gettext, ilmbase, enblendenfuse, autopanosiftc }:
stdenv.mkDerivation {
name = "hugin-0.7.0";
@ -35,6 +36,10 @@ stdenv.mkDerivation {
eval -- "cmake .. $cmakeFlags"
set +x
'';
postInstall = ''
ensureDir $out/nix-support
echo ${enblendenfuse} ${autopanosiftc} > $out/nix-support/$out/nix-support/propagated-user-env-packages
'';
meta = {
homepage = http://hugin.sourceforge.net/;

View File

@ -0,0 +1,38 @@
{stdenv, fetchurl, qt, bzip2}:
stdenv.mkDerivation {
name = "meshlab-1.2.0";
src = fetchurl {
url = mirror://sourceforge/meshlab/MeshLabSrc_v120.tgz;
sha256 = "0iidp2pzwq96v8zbm8gc67wi1f41anpkncp17ajkv1rrh653nila";
};
setSourceRoot = "sourceRoot=`pwd`/meshlab/src";
buildPhase = ''
pushd external
qmake -recursive external.pro
make
popd
qmake -recursive meshlabv12.pro
make
'';
installPhase = ''
ensureDir $out/opt/meshlab $out/bin
pushd meshlab
cp -R meshlab plugins shaders* textures images $out/opt/meshlab
popd
ln -s $out/opt/meshlab/meshlab $out/bin/meshlab
'';
buildInputs = [ qt bzip2 ];
meta = {
description = "System for the processing and editing of unstructured 3D triangular meshes";
homepage = http://meshlab.sourceforge.net/;
license = "GPLv2+";
};
}

View File

@ -7,6 +7,8 @@ stdenv.mkDerivation {
sha256 = "27544f442e957e9aa60b32c674f2dcd84fffeecc9a40071ef6e305333413187d";
};
patches = [ ./include-qobject.patch ];
# I added these flags to get all the rpaths right, which I guess they are
# taken from the qt4 sources. Not very nice.
cmakeFlags = "-DCMAKE_SHARED_LINKER_FLAGS=\"-Wl,-rpath,$out/lib/paraview-3.4\"" +

View File

@ -0,0 +1,38 @@
diff --git a/VTK/GUISupport/Qt/CMakeLists.txt b/VTK/GUISupport/Qt/CMakeLists.txt
index 2c35be7..866f1aa 100644
--- a/VTK/GUISupport/Qt/CMakeLists.txt
+++ b/VTK/GUISupport/Qt/CMakeLists.txt
@@ -166,6 +166,7 @@ IF(DESIRED_QT_VERSION MATCHES 4)
)
ENDIF(QT_QTGUI_LIBRARY)
INCLUDE_DIRECTORIES(${QT_QTDESIGNER_INCLUDE_DIR})
+ INCLUDE_DIRECTORIES(${QT_QTCORE_INCLUDE_DIR})
QT4_WRAP_CPP ( PluginMocSrcs ${PluginMocHeaders} )
ELSE(DESIRED_QT_VERSION MATCHES 4)
QT_WRAP_CPP ( QVTKWidgetPlugin PluginMocSrcs ${PluginMocHeaders} )
diff --git a/VTK/GUISupport/Qt/vtkEventQtSlotConnect.h b/VTK/GUISupport/Qt/vtkEventQtSlotConnect.h
index 6782b90..ced3a67 100644
--- a/VTK/GUISupport/Qt/vtkEventQtSlotConnect.h
+++ b/VTK/GUISupport/Qt/vtkEventQtSlotConnect.h
@@ -43,7 +43,7 @@
#include "vtkObject.h"
#include "vtkCommand.h" // for event defines
#include "QVTKWin32Header.h" // for export define
-#include "qobject.h" // for version info
+#include <qobject.h> // for version info
class QObject;
class vtkQtConnections;
diff --git a/VTK/GUISupport/Qt/vtkQtConnection.h b/VTK/GUISupport/Qt/vtkQtConnection.h
index 923ec2e..b189ddc 100644
--- a/VTK/GUISupport/Qt/vtkQtConnection.h
+++ b/VTK/GUISupport/Qt/vtkQtConnection.h
@@ -33,7 +33,7 @@
#include "vtkObject.h"
#include "vtkCommand.h" // for event defines
-#include "qobject.h"
+#include <qobject.h>
class QObject;
class vtkCallbackCommand;

View File

@ -2,7 +2,7 @@ a :
let
fetchurl = a.fetchurl;
version = a.lib.getAttr ["version"] "3.4" a;
version = a.lib.attrByPath ["version"] "3.4" a;
buildInputs = with a; [
aalib gsl libpng libX11 xproto libXext xextproto
libXt zlib gettext intltool perl
@ -20,7 +20,7 @@ rec {
/* doConfigure should be removed if not needed */
phaseNames = ["preConfigure" "doConfigure" "doMakeInstall"];
preConfigure = a.FullDepEntry (''
preConfigure = a.fullDepEntry (''
sed -e s@/usr/@"$out/"@g -i configure $(find . -name 'Makefile*')
ensureDir $out/share/locale
'') ["doUnpack" "minInit" "defEnsureDir"];

View File

@ -8,6 +8,8 @@ preBuild() {
cat Imakefile >> Imakefile.tmp
mv Imakefile.tmp Imakefile
xmkmf
sed -e 's@[$][$]m@-- &@g' -i Makefile
}
installPhase() {

View File

@ -1,5 +1,5 @@
args : with args; let localDefs = builderDefs.passthru.function (args // rec {
version = lib.getAttr ["version"] "5.07" args;
version = lib.attrByPath ["version"] "5.07" args;
src = /* put a fetchurl here */
fetchurl {
url = "http://www.jwz.org/xscreensaver/xscreensaver-${version}.tar.gz";
@ -7,7 +7,7 @@ args : with args; let localDefs = builderDefs.passthru.function (args // rec {
};
useConfig = true;
reqsList = [
["true" "libX11" "gtk" "pkgconfig" "bc" "perl" "intltool" "libXmu"]
["true" "libX11" "pkgconfig" "bc" "perl" "intltool" "libXmu"]
["GL" "mesa"]
["GUI" "gtk" "libxml2" "libglade"]
["jpeg" "libjpeg"]
@ -23,15 +23,15 @@ args : with args; let localDefs = builderDefs.passthru.function (args // rec {
});
in with localDefs;
let
preConfigure = FullDepEntry ("
preConfigure = fullDepEntry ("
sed -e 's%@GTK_DATADIR@%@datadir@% ; s%@PO_DATADIR@%@datadir@%' "+
"-i driver/Makefile.in po/Makefile.in.in;
") [minInit doUnpack];
") ["minInit" "doUnpack"];
in
stdenv.mkDerivation rec {
name = "xscreensaver-5.07";
builder = writeScript (name + "-builder")
(textClosure localDefs [preConfigure doConfigure doMakeInstall doForceShare doPropagate]);
buildCommand = textClosure localDefs
[preConfigure doConfigure doMakeInstall doForceShare doPropagate];
meta = {
description = "A set of screensavers";
inherit src;

View File

@ -1,29 +0,0 @@
source $stdenv/setup
echo "unpacking $src..."
tar xvfz $src
mkdir $out
echo "unpacking reader..."
tar xvf AdobeReader/COMMON.TAR -C $out
tar xvf AdobeReader/ILINXR.TAR -C $out
# Disable this plugin for now (it needs LDAP, and I'm too lazy to add it).
rm $out/Reader/intellinux/plug_ins/PPKLite.api
if test -n "$fastStart"; then
echo "removing plugins..."
rm -v $(ls $out/Reader/intellinux/plug_ins/*.api | grep -v SearchFind)
fi
fullPath=
for i in $libPath; do
fullPath=$fullPath${fullPath:+:}$i/lib
done
patchelf --interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" \
--set-rpath $fullPath \
$out/Reader/intellinux/bin/acroread
substituteInPlace $out/bin/acroread --replace /lib:/usr/lib /no-such-path --replace /bin/pwd pwd

View File

@ -1,30 +0,0 @@
{ xineramaSupport ? false
, stdenv, fetchurl, libXt, libXp, libXext, libX11, libXinerama ? null
, glib, pango, atk, gtk, libstdcpp5, zlib
, fastStart ? false
}:
assert stdenv.system == "i686-linux";
stdenv.mkDerivation {
name = "acrobat-reader-7.0.9";
builder = ./builder.sh;
src = fetchurl {
url = http://ardownload.adobe.com/pub/adobe/reader/unix/7x/7.0.9/enu/AdobeReader_enu-7.0.9-1.i386.tar.gz;
sha256 = "0qs8v57gamkk243f44yqxic93izf0bn2d9l4wwbqqy1jv5s125hy";
};
libPath = [
libXt libXp libXext libX11 glib pango atk gtk libstdcpp5 zlib
(if xineramaSupport then libXinerama else null)
];
inherit fastStart;
meta = {
description = "Adobe Reader, a viewer for PDF documents";
homepage = http://www.adobe.com/products/reader;
};
}

View File

@ -0,0 +1,26 @@
source $stdenv/setup
echo "unpacking $src..."
tar xvfa $src
ensureDir $out
echo "unpacking reader..."
tar xvf AdobeReader/COMMON.TAR -C $out
tar xvf AdobeReader/ILINXR.TAR -C $out
# Disable this plugin for now (it needs LDAP, and I'm too lazy to add it).
rm $out/Adobe/Reader*/Reader/intellinux/plug_ins/PPKLite.api
patchelf --interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" \
--set-rpath $libPath \
$out/Adobe/Reader*/Reader/intellinux/bin/acroread
# The "xargs -r" is to shut up a warning when Mozilla can't be found.
substituteInPlace $out/Adobe/Reader*/bin/acroread \
--replace /bin/pwd $(type -P pwd) \
--replace /bin/ls $(type -P ls) \
--replace xargs "xargs -r"
ensureDir $out/bin
ln -s $out/Adobe/Reader*/bin/acroread $out/bin/acroread

View File

@ -0,0 +1,26 @@
{ stdenv, fetchurl, libX11, cups, glib, pango, atk, gtk, zlib, libxml2 }:
assert stdenv.system == "i686-linux";
stdenv.mkDerivation {
name = "adobe-reader-9.1.1-1";
builder = ./builder.sh;
src = fetchurl {
url = http://ardownload.adobe.com/pub/adobe/reader/unix/9.x/9.1.1/enu/AdbeRdr9.1.1-1_i486linux_enu.tar.bz2;
sha256 = "1j3f7d5s7yfm6vg1628f6as462sbm1ika79v0flq0zgljc111vna";
};
# !!! Adobe Reader contains copies of OpenSSL, libcurl, and libicu.
# We should probably remove those and use the regular Nixpkgs
# versions.
libPath = stdenv.lib.makeLibraryPath
[ stdenv.gcc.gcc libX11 glib pango atk gtk zlib libxml2 cups ];
meta = {
description = "Adobe Reader, a viewer for PDF documents";
homepage = http://www.adobe.com/products/reader;
};
}

View File

@ -1,10 +1,10 @@
args: with args;
stdenv.mkDerivation {
name = "blender-2.46";
name = "blender-2.48";
src = fetchurl {
url = http://download.blender.org/source/blender-2.46.tar.gz;
sha256 = "1l95lcrp5snmvzabw46qpnkxmqls3fc24b2qjkghfasvaq7km7rr";
url = http://download.blender.org/source/blender-2.48a.tar.gz;
sha256 = "0ijfpy510ls8xq1i8fb6j6wd0vac1jvnzmpiga4g7x1j4fg4s7bq";
};
phases="unpackPhase buildPhase";
@ -12,7 +12,8 @@ stdenv.mkDerivation {
inherit scons SDL freetype openal python openexr mesa;
buildInputs = [python scons
gettext libjpeg libpng zlib freetype /* fmod smpeg */ freealut openal x11 mesa inputproto libtiff libXi ];
gettext libjpeg libpng zlib freetype /* fmod smpeg */ freealut openal x11 mesa inputproto libtiff libXi
];
# patch SConstruct so that we can pass on additional include. Either blender
# or openEXR is broken. I think OpenEXR should use include "" isntead of <> to

View File

@ -0,0 +1,48 @@
{ fetchurl, stdenv, zlib, expat }:
stdenv.mkDerivation rec {
name = "gpsbabel-1.3.6";
src = fetchurl {
url = "http://www.gpsbabel.org/plan9.php?dl=${name}.tar.gz";
name = "${name}.tar.gz";
sha256 = "1dm9lpcdsj0vz699zz932xc1vphvap627wl0qp61izlkzh25vg88";
};
buildInputs = [ zlib expat ];
/* FIXME: Building the documentation, with "make doc", requires this:
[ libxml2 libxslt perl docbook_xml_dtd_412 docbook_xsl fop ]
But FOP isn't packaged yet. */
configureFlags = "--with-zlib=system";
meta = {
description = "GPSBabel, a tool to convert, upload and download data from GPS and Map programs";
longDescription = ''
GPSBabel converts waypoints, tracks, and routes between popular
GPS receivers and mapping programs. It also has powerful
manipulation tools for such data.
By flattening the Tower of Babel that the authors of various
programs for manipulating GPS data have imposed upon us, it
returns to us the ability to freely move our own waypoint data
between the programs and hardware we choose to use.
It contains extensive data manipulation abilities making it a
convenient for server-side processing or as the backend for
other tools.
It does not convert, transfer, send, or manipulate maps. We
process data that may (or may not be) placed on a map, such as
waypoints, tracks, and routes.
'';
homepage = http://www.gpsbabel.org/;
license = "GPLv2+";
};
}

View File

@ -0,0 +1,45 @@
{ fetchurl, stdenv, pkgconfig, exiv2, libxml2, gtk
, libxslt, docbook_xsl, docbook_xml_dtd_42 }:
stdenv.mkDerivation rec {
name = "gpscorrelate-1.6.0";
src = fetchurl {
url = "http://freefoote.dview.net/linux/${name}.tar.gz";
sha256 = "1j0b244xkvvf0i4iivp4dw9k4xgyasx4sapd91mnwki35fy49sp0";
};
buildInputs = [
pkgconfig exiv2 libxml2 gtk
libxslt docbook_xsl docbook_xml_dtd_42
];
patchPhase = ''
sed -i "Makefile" \
-es",^[[:blank:]]*prefix[[:blank:]]*=.*$,prefix = $out,g"
'';
meta = {
description = "A GPS photo correlation tool, to add EXIF geotags";
longDescription = ''
Digital cameras are cool. So is GPS. And, EXIF tags are really
cool too.
What happens when you merge the three? You end up with a set of
photos taken with a digital camera that are "stamped" with the
location at which they were taken.
The EXIF standard defines a number of tags that are for use with GPS.
A variety of programs exist around the place to match GPS data
with digital camera photos, but most of them are Windows or
MacOS only. Which doesn't really suit me that much. Also, each
one takes the GPS data in a different format.
'';
license = "GPLv2+";
homepage = http://freefoote.dview.net/linux_gpscorr.html;
};
}

View File

@ -7,7 +7,7 @@ args : with args; with builderDefs {src="";} null;
};
buildInputs = [glib zlib];
configureFlags = [" --prefix=$out "];
preConfigure = FullDepEntry (''
preConfigure = fullDepEntry (''
export NIX_CFLAGS_COMPILE=$NIX_CFLAGS_COMPILE' -I${glib}/include/glib-2.0/ -I${glib}/lib/glib-2.0/include/ '
export NIX_LDFLAGS=$NIX_LDFLAGS' -lglib-2.0 '
sed -e 's@/usr/local/lib/libz\.a@${zlib}/lib/libz.a@' -i configure

View File

@ -1,7 +1,8 @@
args: with args;
let edf = composableDerivation.edf;
optionIncLib = name : attr : " -D${name}_INCLUDE_DIR=${__getAttr attr args}/incclude"
+ " -D${name}_LIBRARY=${__getAttr attr args}/lib "; # lib 64?
let inherit (builtins) getAttr;
edf = composableDerivation.edf;
optionIncLib = name : attr : " -D${name}_INCLUDE_DIR=${getAttr attr args}/incclude"
+ " -D${name}_LIBRARY=${getAttr attr args}/lib "; # lib 64?
in
composableDerivation.composableDerivation {} {
@ -17,18 +18,18 @@ composableDerivation.composableDerivation {} {
# md5="ac0560e0a2d4e6258c8639f1e9b56df3"; rev="7704"; };
src = fetchurl {
url = "http://download.osgeo.org/qgis/src/qgis_${version}.tar.gz";
sha256 = "17vqbld4wr9jyn1s5n0bkpaminsgc2dzcgdfk8ic168xydnwa7b3";
sha256 = "07yyic9sn1pz20wjk7k560jwqz6b19rhf2gawybz38xq1f8rjwd4";
};
meta = {
description = "user friendly Open Source Geographic Information System";
homepage = http://www.qgis.org;
homepage = ttp://www.qgis.org;
# you can choose one of the following licenses:
license = [ "GPL" ];
};
phases = "unpackPhase buildPhase installPhase";
buildPhase = ''pwd;echo XXXXXXXXX; VERBOSE=1 cmake -DCMAKE_INSTALL_PREFIX=$out ''${cfgOption} ..'';
buildPhase = ''pwd; mkdir build; cd build; VERBOSE=1 cmake -DCMAKE_INSTALL_PREFIX=$out ''${cfgOption} ..'';
postUnpack = ''
export CMAKE_SYSTEM_LIBRARY_PATH=

View File

@ -0,0 +1,37 @@
{ fetchurl, stdenv, pkgconfig, gettext, gtk, gconf
, curl, libexif, sqlite }:
stdenv.mkDerivation rec {
name = "tangogps-0.9.6";
src = fetchurl {
url = "http://www.tangogps.org/downloads/${name}.tar.gz";
sha256 = "04vfbr7skjcfadv9206q2pxbm74i8yypkjwzldsc5a6ybhr7fsp5";
};
buildInputs = [ pkgconfig gettext gtk gconf curl libexif sqlite ];
meta = {
description = "tangoGPS, a user friendly map and GPS user interface";
longDescription = ''
tangoGPS is an easy to use, fast and lightweight mapping
application for use with or without GPS.
It runs on any Linux platform from the desktop over eeePC down
to phones like the Openmoko Neo.
By default tangoGPS uses map data from the OpenStreetMap
project. Additionally a variety of other repositories can be
easily added.
The maps are automagically downloaded and cached for offline use
while you drag or zoom the map. Furthermore you can
conveniently pre-cache areas with tangoGPS.
'';
homepage = http://www.tangogps.org/;
license = "GPLv2+";
};
}

View File

@ -0,0 +1,35 @@
{ fetchurl, stdenv, pkgconfig, intltool, gettext, gtk, expat, curl
, gpsd, bc, file }:
stdenv.mkDerivation rec {
name = "viking-0.9.8";
src = fetchurl {
url = "mirror://sourceforge/viking/${name}.tar.gz";
sha256 = "1is8g6ld5pd13iiv9qm8526q1cblg01pqyakg52sd6k7fys7dz2d";
};
patches = [
./test-bc.patch ./gpsdclient.patch ./implicit-declaration.patch
];
buildInputs = [ pkgconfig intltool gettext gtk expat curl gpsd bc file ];
doCheck = true;
meta = {
description = "Viking, a GPS data editor and analyzer";
longDescription = ''
Viking is a free/open source program to manage GPS data. You
can import and plot tracks and waypoints, show Openstreetmaps
and/or Terraserver maps under it, download geocaches for an area
on the map, make new tracks and waypoints, see real-time GPS
position, etc.
'';
homepage = http://viking.sourceforge.net/;
license = "GPLv2+";
};
}

View File

@ -0,0 +1,51 @@
Debian patch that allows compilation with libgps (from `gpsd').
Failing to apply this patch, we get the following error:
vikgpslayer.c:237: error: field 'realtime_gpsd_unit' has incomplete type
vikgpslayer.c: In function 'vik_gps_layer_new':
vikgpslayer.c:473: warning: implicit declaration of function 'gpsd_units'
vikgpslayer.c: In function 'rt_gpsd_try_connect':
vikgpslayer.c:1321: warning: passing argument 2 of 'gps_set_raw_hook' from incompatible pointer type
diff -urNad trunk~/src/gpsdclient.h trunk/src/gpsdclient.h
--- trunk~/src/gpsdclient.h 1970-01-01 01:00:00.000000000 +0100
+++ trunk/src/gpsdclient.h 2009-04-15 14:30:22.000000000 +0200
@@ -0,0 +1,25 @@
+/* $Id: gpsdclient.h 5330 2009-03-03 04:05:42Z ckuethe $ */
+/* gpsdclient.h -- common functions for GPSD clients */
+
+#ifndef _GPSD_GPSDCLIENT_H_
+#define _GPSD_GPSDCLIENT_H_
+struct fixsource_t
+/* describe a data source */
+{
+ char *spec; /* pointer to actual storage */
+ char *server;
+ char *port;
+ char *device;
+};
+
+enum unit {unspecified, imperial, nautical, metric};
+enum unit gpsd_units(void);
+enum deg_str_type { deg_dd, deg_ddmm, deg_ddmmss };
+
+extern /*@observer@*/ char *deg_to_str( enum deg_str_type type, double f);
+
+extern void gpsd_source_spec(/*@null@*/const char *fromstring,
+ /*@out@*/struct fixsource_t *source);
+
+#endif /* _GPSDCLIENT_H_ */
+/* gpsdclient.h ends here */
diff -urNad trunk~/src/vikgpslayer.c trunk/src/vikgpslayer.c
--- trunk~/src/vikgpslayer.c 2009-02-08 14:47:01.000000000 +0100
+++ trunk/src/vikgpslayer.c 2009-04-15 14:30:55.000000000 +0200
@@ -39,6 +39,9 @@
#include <glib/gi18n.h>
#ifdef VIK_CONFIG_REALTIME_GPS_TRACKING
#include <gps.h>
+#ifndef gpsd_units
+#include "gpsdclient.h"
+#endif
#endif
#if ! GLIB_CHECK_VERSION(2,14,0)

View File

@ -0,0 +1,13 @@
Debian patch that fixes an implicat declaration.
diff -urNad trunk~/src/util.c trunk/src/util.c
--- trunk~/src/util.c 2009-02-08 14:47:01.000000000 +0100
+++ trunk/src/util.c 2009-04-15 17:23:44.000000000 +0200
@@ -26,6 +26,7 @@
#endif
#include <glib/gi18n.h>
+#include <glib/gprintf.h>
#include "dialog.h"

View File

@ -0,0 +1,22 @@
For some reason, `bc -l' yields no output.
--- viking-0.9.8/test/check_degrees_conversions.sh 2008-03-15 23:01:48.000000000 +0100
+++ viking-0.9.8/test/check_degrees_conversions.sh 2009-05-30 23:23:27.000000000 +0200
@@ -7,7 +7,7 @@ function check_success()
for value in "$@"
do
result=`./degrees_converter "$value" | cut -d' ' -f3`
- diff=`echo "$result - $expected" | bc -l`
+ diff=`echo "$result - $expected" | bc`
if [ $diff != 0 ]
then
echo "$value -> $result != $expected"
@@ -23,7 +23,7 @@ function check_failure()
for value in "$@"
do
result=`./degrees_converter "$value" | cut -d' ' -f3`
- diff=`echo "$result - $expected" | bc -l`
+ diff=`echo "$result - $expected" | bc`
if [ $diff = 0 ]
then
echo "$value -> $result = $expected"

View File

@ -8,6 +8,11 @@ stdenv.mkDerivation {
};
buildInputs = [wxGTK chmlib];
postConfigure = ''
export NIX_LDFLAGS="$NIX_LDFLAGS $(${wxGTK}/lib/wx/config/* --libs | sed -e s@-pthread@@)"
echo $NIX_LDFLAGS
'';
meta = {
description = "A viewer for Microsoft HTML Help files";
homepage = http://xchm.sourceforge.net;

View File

@ -10,15 +10,12 @@
}:
let version = "3.5b4"; in
let version = xulrunner.ffversion; in
stdenv.mkDerivation {
name = "firefox-${version}";
src = fetchurl {
url = "ftp://ftp.mozilla.org/pub/firefox/releases/${version}/source/firefox-${version}-source.tar.bz2";
sha256 = "0pfrcqbsa88p6nfqx7xhlr603ycwf5lnfmwcdd5abl7xipxg4lxn";
};
src = xulrunner.src;
buildInputs = [
pkgconfig gtk perl zip libIDL libjpeg zlib cairo bzip2

View File

@ -13,12 +13,12 @@
stdenv.mkDerivation rec {
name = "firefox-${version}";
version = "3.0.8";
version = "3.0.11";
src = fetchurl {
# Don't forget to update xulrunner.nix as well!
url = "http://releases.mozilla.org/pub/mozilla.org/firefox/releases/${version}/source/firefox-${version}-source.tar.bz2";
sha1 = "93f82c64ae9c805964fb6459223a1061e2d328fd";
sha1 = "ca792dcdb67af40c91a4fcece25d6adfb6fef2c3";
};
buildInputs = [

View File

@ -11,17 +11,19 @@
let
version = "1.9.1b4"; # this attribute is used by other packages
ffversion = "3.5b4";
version = "1.9.1rc1";
shownVersion = "1.9.1"; # this attribute is used by other packages
# _usually_ it is the same as version
ffversion = "3.5rc1";
in
stdenv.mkDerivation {
stdenv.mkDerivation rec {
name = "xulrunner-${version}";
src = fetchurl {
url = "ftp://ftp.mozilla.org/pub/firefox/releases/${ffversion}/source/firefox-${ffversion}-source.tar.bz2";
sha256 = "0pfrcqbsa88p6nfqx7xhlr603ycwf5lnfmwcdd5abl7xipxg4lxn";
sha256 = "14yrkvk0kibfpkcvbb44ww89plhm8iikbqmnc0jbkjr4k70a7gcl";
};
buildInputs = [
@ -91,7 +93,10 @@ stdenv.mkDerivation {
homepage = http://www.mozilla.com/en-US/firefox/;
};
passthru = { inherit gtk version; };
passthru = {
inherit gtk ffversion src;
version = shownVersion;
};
}

View File

@ -11,7 +11,7 @@
let
version = "1.9.0.8"; # this attribute is used by other packages
version = "1.9.0.11"; # this attribute is used by other packages
in
@ -19,8 +19,8 @@ stdenv.mkDerivation {
name = "xulrunner-${version}";
src = fetchurl {
url = http://releases.mozilla.org/pub/mozilla.org/firefox/releases/3.0.8/source/firefox-3.0.8-source.tar.bz2;
sha1 = "93f82c64ae9c805964fb6459223a1061e2d328fd";
url = http://releases.mozilla.org/pub/mozilla.org/firefox/releases/3.0.11/source/firefox-3.0.11-source.tar.bz2;
sha1 = "ca792dcdb67af40c91a4fcece25d6adfb6fef2c3";
};
buildInputs = [

View File

@ -1,8 +1,18 @@
{stdenv, browser, browserName ? "firefox", nameSuffix ? "", makeWrapper, plugins}:
{stdenv, browser, browserName ? "firefox", nameSuffix ? "", makeDesktopItem, makeWrapper, plugins}:
stdenv.mkDerivation {
name = browser.name + "-with-plugins";
desktopItem = makeDesktopItem {
name = browserName;
exec = browserName;
icon = "${browser}/lib/${browser.name}/icons/mozicon128.png";
comment = "";
desktopName = browserName;
genericName = "Web Browser";
categories = "Application;Network;";
};
buildInputs = [makeWrapper];
buildCommand = ''
@ -16,6 +26,9 @@ stdenv.mkDerivation {
"$out/bin/${browserName}${nameSuffix}" \
--suffix-each MOZ_PLUGIN_PATH ':' "$plugins" \
--suffix-contents PATH ':' "$(filterExisting $(addSuffix /extra-bin-path $plugins))"
ensureDir $out/share/applications
cp $desktopItem/share/applications/* $out/share/applications
'';
# Let each plugin tell us (through its `mozillaPlugin') attribute

View File

@ -4,13 +4,13 @@
, freetype, fontconfig
, application ? "browser" }:
let version = "3.0.9-g1"; in
let version = "3.0.11-g1"; in
stdenv.mkDerivation {
name = "icecat-${version}";
src = fetchurl {
url = "mirror://gnu/gnuzilla/${version}/icecat-${version}.tar.bz2";
sha256 = "1xmkyiz9ccmm0n9ving2za3lczxqrlcc7ipbg0jx4w9l1hhj13hq";
sha256 = "1kzsjlyi41lglsfnfsqdbs75b279pwi742cp19h6c2410gvsb9km";
};
buildInputs = [

View File

@ -5,18 +5,18 @@ let
doPatchShebangs = args.doPatchShebangs;
makeManyWrappers = args.makeManyWrappers;
version = lib.getAttr ["version"] "0.0.21" args;
version = lib.attrByPath ["version"] "0.1.7" args;
buildInputs = with args; [
intltool python imagemagick gtk glib webkit libxml2
gtksourceview pkgconfig which gettext makeWrapper
file
file libidn sqlite docutils libnotify libsoup
];
in
rec {
src = fetchurl {
url = "http://goodies.xfce.org/releases/midori/midori-${version}.tar.bz2";
sha256 = if version == "0.0.21" then
"0cbpvjdfzgbqwn8rfkp3l35scfvz9cc8hip8v35vkxpac9igcqg5"
sha256 = if version == "0.1.7" then
"1bxs4nlwvhzwiq73lf1gvx7qqdm1hm4x1hym1b0q0dhwhdvafx4v"
else null;
};

View File

@ -2,7 +2,7 @@ a :
let
fetchurl = a.fetchurl;
version = a.lib.getAttr ["version"] "1.12.0" a;
version = a.lib.attrByPath ["version"] "1.12.0" a;
buildInputs = with a; [
firefox libX11 xproto
];
@ -17,11 +17,11 @@ rec {
configureFlags = [];
makeFlags = ["linux" "prefix=" "root=$out"];
preBuild = a.FullDepEntry(''
preBuild = a.fullDepEntry(''
sed -e s@/usr/@"$out/"@g -i mozplugger.c
'') ["doUnpack" "minInit"];
postInstall = a.FullDepEntry(''
postInstall = a.fullDepEntry(''
ensureDir $out/share/${name}/plugin
ln -s $out/lib/mozilla/plugins/mozplugger.so $out/share/${name}/plugin
'') ["doMakeInstall" "minInit" "defEnsureDir"];

View File

@ -33,6 +33,10 @@ installPhase() {
done
# substitute pwd as late as possible so that the md5 checkusm check of opera passes
sed -i 's=/bin/pwd=pwd=' $out/bin/opera
ensureDir $out/share/applications
cp $desktopItem/share/applications/* $out/share/applications
}
genericBuild

View File

@ -1,5 +1,7 @@
{ stdenv, fetchurl, qt, zlib, libX11, libXext, libSM, libICE, libstdcpp5, glibc
, motif ? null, libXt ? null}:
, motif ? null, libXt ? null
, makeDesktopItem
}:
assert motif != null -> libXt != null;
@ -8,7 +10,7 @@ assert motif != null -> libXt != null;
# Hm, does Opera 9.x still use Motif for anything?
stdenv.mkDerivation rec {
version = "9.62-20081029";
version = "9.64";
name = "opera-${version}";
inherit libstdcpp5;
@ -16,17 +18,12 @@ stdenv.mkDerivation rec {
builder = ./builder.sh;
src = if (stdenv.system == "i686-linux") then
fetchurl {
url = ftp://ftp.task.gda.pl/pub/opera/linux/962/final/en/i386/shared/opera-9.62.gcc3-shared-qt3.i386.tar.gz;
sha256 = "9b204cce912450886cbc49d1cadc3f5907b044626b100c05e07c6bfec74c56f4";
url = ftp://mirror.liteserver.nl/pub/opera/linux/964/final/en/i386/static/opera-9.64.gcc295-static-qt3.i386.tar.gz;
sha256 = "0ryza8wrqhlcs9hs3vs38ig3pjwifymxi8jsx83kvxg963p2k825";
} else if (stdenv.system == "x86_64-linux") then
fetchurl {
url = http://snapshot.opera.com/unix/snapshot-1754/x86_64-linux/opera-9.50-20080110.2-shared-qt.x86_64-1754.tar.bz2;
sha256 = "08y1ajjncdvbhvcq2izmpgc4fi37bwn43zsw7rz41jf8qhvb5ywv";
#url = ftp://ftp.task.gda.pl/pub/opera/linux/950b/final/en/x86_64/opera-9.50-20071024.2-shared-qt.x86_64-1643.tar.bz2;
#sha256 = "1gv1r18ar3vz1l24nf8qixjlba1yb5d3xvg3by41i4dy0vlznqn6";
#name = opera-9.25-20071214.6-shared-qt.i386-en.tar.gz;
#url = http://www.opera.com/download/get.pl?id=30462&location=225&nothanks=yes&sub=marine;
#sha256 = "1wnc1s4r5gz73mxs8pgsi9a1msz7x8a8pb1ykb1xgdfn21h69p2p";
url = http://mirror.liteserver.nl/pub/opera/linux/964/final/en/x86_64/opera-9.64.gcc4-shared-qt3.x86_64.tar.gz ;
sha256 = "1zmj8lr1mx3d98adyd93kw2ldxxb13wzi6xzlgmb3dr4pn9j85n2";
} else throw "unsupported platform ${stdenv.system} (only i686-linux and x86_64 linux supported yet)";
dontStrip = 1;
@ -36,6 +33,17 @@ stdenv.mkDerivation rec {
[glibc qt motif zlib libX11 libXt libXext libSM libICE libstdcpp5]
++ (if motif != null then [motif ] else []);
desktopItem = makeDesktopItem {
name = "Opera";
exec = "opera";
icon = "opera";
comment = "Opera Web Browser";
desktopName = "Opera";
genericName = "Web Browser";
categories = "Application;Network;";
};
meta = {
homepage = http://www.opera.com;
};

View File

@ -0,0 +1,29 @@
a :
let
fetchurl = a.fetchurl;
version = a.lib.attrByPath ["version"] "2009.06.06" a;
buildInputs = with a; [
pkgconfig webkit libsoup gtk
];
in
rec {
src = fetchurl {
url = "http://github.com/Dieterbe/uzbl/tarball/${version}";
sha256 = "1bgajpcsv0a8nmliqkrk99d3k5s60acjgvh0sx7znsnjajbfv3yz";
name = "uzbl-master-${version}.tar.gz";
};
inherit buildInputs;
configureFlags = [];
/* doConfigure should be removed if not needed */
phaseNames = ["doMakeInstall"];
installFlags = "PREFIX=$out";
name = "uzbl-" + version;
meta = {
description = "Tiny externally controllable webkit browser";
};
}

View File

@ -5,7 +5,7 @@ args : with args;
(to use a fresher pidgin build)
*/
let
externalPurple2 = (lib.getAttr ["purple2Source"] null args) != null;
externalPurple2 = lib.attrByPath ["purple2Source"] null args) != null;
in
rec {
src = fetchurl {
@ -30,7 +30,7 @@ rec {
+ " --with-nss-libs=${nss}/lib --with-ncurses-headers=${ncurses}/include"
+ " --enable-screensaver --disable-meanwhile --disable-nm --disable-tcl";
preBuild = FullDepEntry (''
preBuild = fullDepEntry (''
export echo=echo
'') [];
@ -45,7 +45,7 @@ rec {
homepage = http://funpidgin.sf.net;
};
} // (if externalPurple2 then {
postInstall = FullDepEntry (''
postInstall = fullDepEntry (''
ensureDir $out/lib/purple-2
cp ${args.purple2Source}/lib/purple-2/* $out/lib/purple-2/
'') ["minInit" "defEnsureDir"]; }

View File

@ -5,7 +5,7 @@ args : with args;
(to use a fresher pidgin build)
*/
let
externalPurple2 = (lib.getAttr ["purple2Source"] null args) != null;
externalPurple2 = (lib.attrByPath ["purple2Source"] null args) != null;
in
rec {
src = fetchurl {
@ -30,7 +30,7 @@ rec {
+ " --with-nss-libs=${nss}/lib --with-ncurses-headers=${ncurses}/include"
+ " --enable-screensaver --disable-meanwhile --disable-nm --disable-tcl";
preBuild = FullDepEntry (''
preBuild = fullDepEntry (''
export echo=echo
'') [];
@ -45,7 +45,7 @@ rec {
homepage = http://funpidgin.sf.net;
};
} // (if externalPurple2 then {
postInstall = FullDepEntry (''
postInstall = fullDepEntry (''
ensureDir $out/lib/purple-2
cp ${args.purple2Source}/lib/purple-2/* $out/lib/purple-2/
'') ["minInit" "defEnsureDir"]; }

View File

@ -2,7 +2,7 @@ a :
let
fetchurl = a.fetchurl;
version = a.lib.getAttr ["version"] "0.12.1" a;
version = a.lib.attrByPath ["version"] "0.12.1" a;
buildInputs = with a; [
python pyGtkGlade gtk perl intltool dbus gettext
pkgconfig makeWrapper libglade pyopenssl libXScrnSaver
@ -20,7 +20,7 @@ rec {
inherit buildInputs;
configureFlags = [];
preConfigure = a.FullDepEntry (''
preConfigure = a.fullDepEntry (''
export PYTHONPATH="$PYTHONPATH''${PYTHONPATH:+:}$(toPythonPath ${a.pyGtkGlade})/gtk-2.0"
export PYTHONPATH="$PYTHONPATH''${PYTHONPATH:+:}$(toPythonPath ${a.pygobject})/gtk-2.0"
sed -e '/-L[$]x_libraries/d' -i configure

View File

@ -11,7 +11,7 @@ rec {
"PREFIX=$out"
];
preBuild = FullDepEntry (''
preBuild = fullDepEntry (''
ensureDir $out/bin
ln -s $(which convert) $out/bin
ln -s $(which xelatex) $out/bin
@ -25,7 +25,7 @@ rec {
sed -e 's/\(#define HEADER ".*\)12pt\(.*\)"/\116pt\2\\\\usepackage{fontspec}\\\\usepackage{xunicode}"/' -i LaTeX.h
'') ["minInit" "addInputs" "defEnsureDir" "doUnpack"];
postInstall = FullDepEntry (''
postInstall = fullDepEntry (''
ensureDir $out/lib
ensureDir $out/share/pidgin-latex
ln -s ../../lib/pidgin/LaTeX.so $out/share/pidgin-latex

View File

@ -20,10 +20,10 @@
} :
stdenv.mkDerivation {
name = "pidgin-2.5.5";
name = "pidgin-2.5.6";
src = fetchurl {
url = mirror://sourceforge/pidgin/pidgin-2.5.5.tar.bz2;
sha256 = "1s13fzxa62mrxah6khsnpywmw1fknghph1krgwfvcs18kjwi6nnb";
url = mirror://sourceforge/pidgin/pidgin-2.5.6.tar.bz2;
sha256 = "00lsb0pmz1zn37xzwji91izzklr9famm100al612m4hy0i37yh4v";
};
inherit nss ncurses;

View File

@ -1,20 +0,0 @@
args : with args;
rec {
src = fetchurl {
url = ftp://ftp.ru.debian.org/debian/pool/main/p/psi/psi_0.11.orig.tar.gz;
sha256 = "1rgjahngari4pwhi0zz9mricaaqxkk8ry8w6s1vgsq3zwa2l5x57";
};
buildInputs = [aspell qt zlib sox openssl libX11 xproto
libSM libICE];
configureFlags = [" --with-zlib-inc=${zlib}/include "
" --with-openssl-inc=${openssl}/include "
];
phaseNames = ["doConfigure" "doMakeInstall"];
name = "psi-" + version;
meta = {
description = "Psi, an XMPP (Jabber) client";
};
}

View File

@ -0,0 +1,20 @@
args : with args;
stdenv.mkDerivation rec {
src = fetchurl {
url = mirror://sourceforge/psi/psi-0.12.1.tar.bz2;
sha256 = "0zi71fcia9amcasa6zrvfyghdpqa821iv2rkj53bq5dyvfm2y0m8";
};
buildInputs = [aspell qt4 zlib sox libX11 xproto libSM libICE qca2];
NIX_CFLAGS_COMPILE="-I${qca2}/include/QtCrypto";
NIX_LDFLAGS="-lqca";
configureFlags = [ " --with-zlib-inc=${zlib}/include "
" --disable-bundled-qca" ];
name = "psi-" + version;
meta = {
description = "Psi, an XMPP (Jabber) client";
};
}

View File

@ -1,20 +0,0 @@
args : with args;
rec {
src = fetchurl {
url = mirror://sourceforge/psi/psi-0.12.tar.gz;
sha256 = "6afbb3b017009bf4d8d275ec1481e92831b0618ecb58f1372cd9189140a316af";
};
buildInputs = [aspell qt zlib sox openssl libX11 xproto
libSM libICE];
configureFlags = [" --with-zlib-inc=${zlib}/include "
" --with-openssl-inc=${openssl}/include "
];
phaseNames = ["doConfigure" "doMakeInstall"];
name = "psi-" + version;
meta = {
description = "Psi, an XMPP (Jabber) client";
};
}

View File

@ -2,14 +2,14 @@ args : with args; with builderDefs;
let localDefs = builderDefs.passthru.function ((rec {
src = /* put a fetchurl here */
fetchurl {
url = http://download2.berlios.de/linuxdcpp/linuxdcpp-1.0.1.tar.bz2;
sha256 = "0f0vvsa3x3nirqnf2lagpmbbj3pgdcp6wa2gvadj294b3va4hx34";
url = http://launchpad.net/linuxdcpp/1.0/1.0.3/+download/linuxdcpp-1.0.3.tar.bz2;
sha256 = "0w9c8k13cl85y4v4av8ic6w4zkdivcj6p5q86llfh3sz077vckiv";
};
buildInputs = [scons pkgconfig gtk bzip2 pkgconfig libglade
openssl libX11];
configureFlags = [];
doScons = FullDepEntry (''
doScons = fullDepEntry (''
ensureDir $out
export NIX_LDFLAGS="$NIX_LDFLAGS -lX11";
scons PREFIX=$out
@ -18,7 +18,7 @@ args : with args; with builderDefs;
}) // args);
in with localDefs;
stdenv.mkDerivation rec {
name = "ldcpp-"+version;
name = "ldcpp-1.0.3";
builder = writeScript (name + "-builder")
(textClosure localDefs
[doScons doForceShare doPropagate]);

View File

@ -1,11 +1,11 @@
{stdenv, fetchurl, ocaml, zlib, ncurses}:
stdenv.mkDerivation {
name = "mldonkey-2.9.6";
name = "mldonkey-3.0.0";
src = fetchurl {
url = mirror://sourceforge/mldonkey/mldonkey-2.9.6.tar.bz2;
sha256 = "27cc8ae95aa7a2934b6cc9b077d10ca6a776496c051d8f35d60f1e73d38fd505";
url = mirror://sourceforge/mldonkey/mldonkey-3.0.0.tar.bz2;
sha256 = "0zzvcfnbhxk8axfch5fbkd9j2ks67nbb1ndjjarxvrza78g5y8r7";
};
meta = {

View File

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

View File

@ -74,6 +74,14 @@ installPhase() {
# Create some wrappers to start individual OpenOffice components.
for i in writer calc draw impress base math web; do wrapSOffice oo$i -$i; done
# Create symlinks to desktop files, so that openoffice.org apps can be picked from
# the application menu in KDE and GNOME
ensureDir $out/share
ln -s $out/lib/openoffice/openoffice.org3/share/xdg $out/share/applications
# The desktop files expect a openoffice.org3 executable in the PATH, which is a symlink to soffice
ln -s $out/bin/soffice $out/bin/openoffice.org3
}
genericBuild

View File

@ -1,5 +1,5 @@
args : with args;
let version = lib.getAttr ["version"] "1.1.0" args; in
let version = lib.attrByPath ["version"] "1.1.0" args; in
rec {
src = fetchurl {
url = http://downloads.sourceforge.net/ofset/drgeo-1.1.0.tar.gz;
@ -13,7 +13,7 @@ rec {
/* doConfigure should be specified separately */
phaseNames = ["doConfigure" "doPreBuild" "doMakeInstall"];
doPreBuild = FullDepEntry (''
doPreBuild = fullDepEntry (''
cp drgeo.desktop.in drgeo.desktop
'') ["minInit" "doUnpack"];

View File

@ -1,8 +1,12 @@
args : with args;
rec {
src = fetchurl {
url = http://oandrieu.nerim.net/monotone-viz/monotone-viz-1.0.1-nolablgtk.tar.gz;
sha256 = "0aqz65mlqplj5ccr8czcr6hvliclf9y1xi1rrs2z2s3fvahasxnp";
name = "monotone-viz-1.0.1-nolablgtk.tar.gz";
urls = [
http://ftp.debian.org/debian/pool/main/m/monotone-viz/monotone-viz_1.0.1.orig.tar.gz
#http://oandrieu.nerim.net/monotone-viz/monotone-viz-1.0.1-nolablgtk.tar.gz
];
sha256 = "066qwrknjk5hwk9jblnf0bzvbmfbabq0zhsxkd3nzk469zkpvhl2";
};
buildInputs = [ocaml lablgtk libgnomecanvas gtk graphviz glib pkgconfig];

View File

@ -2,12 +2,12 @@
lua, pcre, sqlite}:
let
version = "0.43";
version = "0.44";
in stdenv.mkDerivation {
name = "monotone-${version}";
src = fetchurl {
url = "http://monotone.ca/downloads/${version}/monotone-${version}.tar.gz";
sha256 = "1vfvvk4flv6n7x1nrizjpwpsfhf3dv3b60h7cs4ysgvzb76s41mz";
sha256 = "1d1jck5dw210q99km5akz1bsk447sybypdwwi07v1836jkgk0wll";
};
buildInputs = [boost zlib botan libidn lua pcre sqlite];
preConfigure = ''

View File

@ -12,7 +12,7 @@
}:
assert bdbSupport -> aprutil.bdbSupport;
assert httpServer -> httpd != null && httpd.apr == apr && httpd.aprutil == aprutil;
assert httpServer -> httpd != null;
assert pythonBindings -> swig != null && swig.pythonSupport;
assert javahlBindings -> jdk != null;
assert sslSupport -> neon.sslSupport;

View File

@ -12,7 +12,7 @@
}:
assert bdbSupport -> aprutil.bdbSupport;
assert httpServer -> httpd != null && httpd.apr == apr && httpd.aprutil == aprutil;
assert httpServer -> httpd != null;
assert pythonBindings -> swig != null && swig.pythonSupport;
assert javahlBindings -> jdk != null;
assert sslSupport -> neon.sslSupport;
@ -20,13 +20,13 @@ assert compressionSupport -> neon.compressionSupport;
stdenv.mkDerivation rec {
version = "1.6.1";
version = "1.6.2";
name = "subversion-${version}";
src = fetchurl {
url = "http://subversion.tigris.org/downloads/${name}.tar.bz2";
sha256 = "1jp6i7vmz0vd1zf4y896f7jzabwv81x8brwzp5kpkrn6wajagm6d";
sha256 = "0xa07jrbg5jdk6v5scv900ccdq1fnx02yijgnl8pfaq3knhsb24p";
};
buildInputs = [zlib apr aprutil sqlite]

View File

@ -0,0 +1,27 @@
{stdenv, fetchurl, tcl, tk}:
stdenv.mkDerivation
{
name = "tkcvs-8.2";
src = fetchurl {
url = mirror://sourceforge/tkcvs/tkcvs_8_2.tar.gz;
sha256 = "0cr2f8jd6k2h1n8mvfv6frrfv4kxd7k3mhplk3ghl6hrgklr7ywr";
};
buildInputs = [ tcl tk ];
patchPhase = ''
sed -e 's@exec wish@exec ${tk}/bin/wish@' -i tkcvs/tkcvs.tcl tkdiff/tkdiff
'';
installPhase = ''
./doinstall.tcl $out
'';
meta = {
homepage = http://www.twobarleycorns.net/tkcvs.html;
description = "TCL/TK GUI for cvs and subversion";
license = "GPLv2+";
};
}

View File

@ -18,7 +18,7 @@ rec {
(pythonWrapperArguments + preservePathWrapperArguments))
];
doInstall = FullDepEntry (''
doInstall = fullDepEntry (''
for i in dot mtn highlight; do
sed -e "s@/usr/bin/$i@$(which $i)@" -i config.py.example
done

View File

@ -4,7 +4,7 @@
, alsa ? null, libX11, libXv ? null, libtheora ? null, libcaca ? null
, libXinerama ? null, libXrandr ? null, libdvdnav ? null
, cdparanoia ? null, cddaSupport ? true
, mesa
, mesa, pkgconfig
}:
assert alsaSupport -> alsa != null;
@ -37,7 +37,7 @@ stdenv.mkDerivation {
};
buildInputs =
[x11 libXv freetype zlib mesa]
[x11 libXv freetype zlib mesa pkgconfig]
++ stdenv.lib.optional alsaSupport alsa
++ stdenv.lib.optional xvSupport libXv
++ stdenv.lib.optional theoraSupport libtheora

View File

@ -1,5 +1,5 @@
source "$stdenv/setup" || exit 1
source "$stdenv/setup"
configureFlags="--with-sdl-mixer-incl=$SDL_mixer/include/SDL --with-sdl-incl=$SDL/include/SDL --with-npapi-plugindir=$out/plugins --enable-gui=gtk"
configureFlags="--with-sdl-incl=$SDL/include/SDL --with-npapi-plugindir=$out/plugins --enable-gui=gtk"
genericBuild

View File

@ -0,0 +1,15 @@
diff --git a/src/app_data.c b/src/app_data.c
index 5a44363..482b115 100644
--- a/src/app_data.c
+++ b/src/app_data.c
@@ -52,9 +52,9 @@
#include <pthread.h>
#include <signal.h>
+#include <X11/Xlib.h>
#ifdef HAVE_LIBXFIXES
#include <X11/X.h>
-#include <X11/Xlib.h>
#include <X11/Xlibint.h>
#include <X11/Xproto.h>
#include <X11/Xutil.h>

View File

@ -0,0 +1,18 @@
{stdenv, fetchurl, SDL, zlib, which}:
stdenv.mkDerivation {
name = "qemu-0.10.3";
src = fetchurl {
url = http://download.savannah.gnu.org/releases/qemu/qemu-0.10.3.tar.gz;
sha256 = "0xxhyxa376vi4drjpqq21g0h6gqgb1fxamca7zinl2l8iix0sm49";
};
patchFlags = "-p2";
buildInputs = [SDL zlib which];
meta = {
description = "QEmu processor emulator";
};
}

View File

@ -11,7 +11,7 @@ args : with args;
};
in with localDefs;
let
doCopy = FullDepEntry ("
doCopy = fullDepEntry ("
ensureDir \$out/share/qemu-images
cp linux-${version}.img \$out/share/qemu-images/
") [minInit doUnpack defEnsureDir];

View File

@ -1,17 +1,17 @@
{ stdenv, fetchurl, iasl, dev86, libxslt, libxml2, libX11, xproto, libXext
, libXcursor, qt3, qt4, libIDL, SDL, hal, libcap, zlib, libpng, glib, kernel
, python, which
, python, which, alsaLib
}:
stdenv.mkDerivation {
name = "virtualbox-2.2.0-${kernel.version}";
name = "virtualbox-2.2.4-${kernel.version}";
src = fetchurl {
url = http://download.virtualbox.org/virtualbox/2.2.0/VirtualBox-2.2.0-OSE.tar.bz2;
sha256 = "8bf621cfcb61f2b0a71be53f072e58c3fb4f3183324faa3947346ff973314c71";
url = http://download.virtualbox.org/virtualbox/2.2.4/VirtualBox-2.2.4-OSE.tar.bz2;
sha256 = "b5d52a67b94510275eb3dc8649eb7d3063446da4f3ac038f821d598c62b5d6c5";
};
buildInputs = [iasl dev86 libxslt libxml2 xproto libX11 libXext libXcursor qt3 qt4 libIDL SDL hal libcap glib kernel python];
buildInputs = [iasl dev86 libxslt libxml2 xproto libX11 libXext libXcursor qt3 qt4 libIDL SDL hal libcap glib kernel python alsaLib];
patchPhase = "
set -x
@ -27,7 +27,7 @@ stdenv.mkDerivation {
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
./configure --with-qt-dir=${qt3} --with-qt4-dir=${qt4} --disable-python --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/@@' \
@ -61,7 +61,7 @@ stdenv.mkDerivation {
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|" \
-e "s|awk|${stdenv.gawk}/bin/awk|" \
$out/bin/VBox.sh
chmod 755 $out/bin/VBox.sh
for file in VirtualBox VBoxManage VBoxSDL

View File

@ -2,9 +2,9 @@ args :
let
lib = args.lib;
fetchurl = args.fetchurl;
FullDepEntry = args.FullDepEntry;
fullDepEntry = args.fullDepEntry;
version = lib.getAttr ["version"] "3.3.0" args;
version = lib.attrByPath ["version"] "3.3.0" args;
_buildInputs = with args; [
python e2fsprogs gnutls pkgconfig libjpeg
ncurses SDL libvncserver zlib graphviz ghostscript
@ -23,10 +23,10 @@ rec {
/* doConfigure should be specified separately */
phaseNames = ["makeTools" "makeXen"];
makeTools = FullDepEntry (''make -C tools install PREFIX=$out '')
makeTools = fullDepEntry (''make -C tools install PREFIX=$out '')
["minInit" "addInputs" "doUnpack"];
makeXen = FullDepEntry (''make -C xen install PREFIX=$out '')
makeXen = fullDepEntry (''make -C xen install PREFIX=$out '')
["minInit" "addInputs" "doUnpack"];
name = "xen-" + version;

View File

@ -11,11 +11,11 @@ args : with args;
} null; /* null is a terminator for sumArgs */
in with localDefs;
let
fixPkgconfig = FullDepEntry ("
fixPkgconfig = fullDepEntry ("
ensureDir \$out/lib
ln -fs \$out/share/pkgconfig \$out/lib/pkgconfig
") [minInit doMakeInstall defEnsureDir];
fixInterpreter = FullDepEntry ("
fixInterpreter = fullDepEntry ("
sed -e 's@^#!/bin/bash@#! ${stdenv.bash}/bin/bash@' -i \$out/bin/bcop
") [minInit doMakeInstall];
in

View File

@ -11,11 +11,11 @@ args : with args;
} ;
in with localDefs;
let
fixPkgconfig = FullDepEntry ("
fixPkgconfig = fullDepEntry ("
ensureDir \$out/lib
ln -fs \$out/share/pkgconfig \$out/lib/pkgconfig
") [minInit doMakeInstall defEnsureDir];
fixInterpreter = FullDepEntry ("
fixInterpreter = fullDepEntry ("
sed -e 's@^#!/bin/bash@#! ${stdenv.bash}/bin/bash@' -i \$out/bin/bcop
") [minInit doMakeInstall];
in

View File

@ -11,11 +11,11 @@ args : with args;
} ;
in with localDefs;
let
fixPkgconfig = FullDepEntry ("
fixPkgconfig = fullDepEntry ("
ensureDir \$out/lib
ln -fs \$out/share/pkgconfig \$out/lib/pkgconfig
") [minInit doMakeInstall defEnsureDir];
fixInterpreter = FullDepEntry ("
fixInterpreter = fullDepEntry ("
sed -e 's@^#!/bin/bash@#! ${stdenv.bash}/bin/bash@' -i \$out/bin/bcop
") [minInit doMakeInstall];
in

View File

@ -22,7 +22,7 @@ args : with args;
};
in with localDefs;
let
install = FullDepEntry ("
install = fullDepEntry ("
sed -e '/Checking for texture_from_pixmap:/areturn 0' -i compiz-manager
sed -e '/Checking for non power of two support: /areturn 0' -i compiz-manager
sed -e '/^\s*$/aPATH=\$PATH:${xvinfo}/bin:${xdpyinfo}/bin' -i compiz-manager

View File

@ -11,11 +11,11 @@ args : with args;
} null; /* null is a terminator for sumArgs */
in with localDefs;
let
sharePlugins = FullDepEntry ("
sharePlugins = fullDepEntry ("
ensureDir \$out/share/compiz-plugins
ln -vsf \$out/lib/compiz \$out/share/compiz-plugins
") [minInit doMakeInstall defEnsureDir];
fixIncludes = FullDepEntry ("
fixIncludes = fullDepEntry ("
sed -e 's@#include <text.h>@#include <compiz/text.h>@' -i src/group/group-internal.h;
sed -e 's@#include <text.h>@#include <compiz/text.h>@' -i src/scalefilter/scalefilter.c;
") [minInit doUnpack];

View File

@ -11,11 +11,11 @@ args : with args;
} ;
in with localDefs;
let
sharePlugins = FullDepEntry ("
sharePlugins = fullDepEntry ("
ensureDir \$out/share/compiz-plugins
ln -vsf \$out/lib/compiz \$out/share/compiz-plugins
") [minInit doMakeInstall defEnsureDir];
fixIncludes = FullDepEntry ("
fixIncludes = fullDepEntry ("
sed -e 's@#include <compiz-text.h>@#include <compiz/compiz-text.h>@' -i src/group/group-internal.h;
sed -e 's@#include <compiz-text.h>@#include <compiz/compiz-text.h>@' -i src/scalefilter/scalefilter.c;
sed -e 's@#include <compiz-mousepoll.h>@#include <compiz/compiz-mousepoll.h>@' -i src/showmouse/showmouse.c;

View File

@ -11,11 +11,11 @@ args : with args;
} ;
in with localDefs;
let
sharePlugins = FullDepEntry ("
sharePlugins = fullDepEntry ("
ensureDir \$out/share/compiz-plugins
ln -vsf \$out/lib/compiz \$out/share/compiz-plugins
") [minInit doMakeInstall defEnsureDir];
fixIncludes = FullDepEntry (''
fixIncludes = fullDepEntry (''
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${pluginsMain}/include/compiz"
'') [minInit doUnpack];
in

View File

@ -11,7 +11,7 @@ args : with args;
} null; /* null is a terminator for sumArgs */
in with localDefs;
let
sharePlugins = FullDepEntry ("
sharePlugins = fullDepEntry ("
ensureDir \$out/share/compiz-plugins
ln -vsf \$out/lib/compiz \$out/share/compiz-plugins
") [minInit doMakeInstall defEnsureDir];

View File

@ -11,7 +11,7 @@ args : with args;
} ;
in with localDefs;
let
sharePlugins = FullDepEntry ("
sharePlugins = fullDepEntry ("
ensureDir \$out/share/compiz-plugins
ln -vsf \$out/lib/compiz \$out/share/compiz-plugins
") [minInit doMakeInstall defEnsureDir];

View File

@ -11,7 +11,7 @@ args : with args;
} ;
in with localDefs;
let
sharePlugins = FullDepEntry ("
sharePlugins = fullDepEntry ("
ensureDir \$out/share/compiz-plugins
ln -vsf \$out/lib/compiz \$out/share/compiz-plugins
") [minInit doMakeInstall defEnsureDir];

View File

@ -24,7 +24,7 @@ args : with args;
};
in with localDefs;
let
postAll = FullDepEntry ("
postAll = fullDepEntry ("
for i in $out/bin/*; do
patchelf --set-rpath /var/run/opengl-driver/lib:$(patchelf --print-rpath $i) $i
done

View File

@ -25,7 +25,7 @@ args : with args;
};
in with localDefs;
let
postAll = FullDepEntry ("
postAll = fullDepEntry ("
for i in $out/bin/*; do
patchelf --set-rpath /var/run/opengl-driver/lib:$(patchelf --print-rpath $i) $i
done

View File

@ -24,7 +24,7 @@ args : with args;
};
in with localDefs;
let
postAll = FullDepEntry ("
postAll = fullDepEntry ("
for i in $out/bin/*; do
patchelf --set-rpath /var/run/opengl-driver/lib:$(patchelf --print-rpath $i) $i
done

View File

@ -3,10 +3,10 @@ let
lib = args.lib;
fetchurl = args.fetchurl;
noDepEntry = args.noDepEntry;
FullDepEntry = args.FullDepEntry;
fullDepEntry = args.fullDepEntry;
buildInputs = lib.attrVals ["clisp" "texinfo"] args;
version = lib.getAttr ["version"] "0.9.4.1" args;
version = lib.attrByPath ["version"] "0.9.4.1" args;
pkgName = "stumpwm";
in
@ -22,7 +22,7 @@ rec {
export HOME="$NIX_BUILD_TOP";
'');
installation = FullDepEntry (''
installation = fullDepEntry (''
ensureDir $out/bin
ensureDir $out/share/stumpwm/doc
ensureDir $out/share/info

View File

@ -1,16 +1,17 @@
args: with args; with stringsWithDeps; with lib;
let inherit (builtins) head tail trace; in
(rec
{
inherit writeScript;
src = getAttr ["src"] "" args;
src = attrByPath ["src"] "" args;
addSbinPath = getAttr ["addSbinPath"] false args;
addSbinPath = attrByPath ["addSbinPath"] false args;
forceShare = if args ? forceShare then args.forceShare else ["man" "doc" "info"];
forceCopy = ["COPYING" "LICENSE" "DISTRIBUTION" "LEGAL"
"README" "AUTHORS" "ChangeLog" "CHANGES" "LICENCE" "COPYRIGHT"] ++
(optional (getAttr ["forceCopyDoc"] true args) "doc");
(optional (attrByPath ["forceCopyDoc"] true args) "doc");
hasSuffixHack = a: b: hasSuffix (a+(substring 0 0 b)) ((substring 0 0 a)+b);
@ -19,6 +20,7 @@ args: with args; with stringsWithDeps; with lib;
else if (hasSuffixHack ".tar.gz" s) || (hasSuffixHack ".tgz" s) then "tgz"
else if (hasSuffixHack ".tar.bz2" s) || (hasSuffixHack ".tbz2" s) ||
(hasSuffixHack ".tbz" s) then "tbz2"
else if (hasSuffixHack ".tar.Z" s) then "tZ"
else if (hasSuffixHack ".tar.lzma" s) then "tar.lzma"
else if (hasSuffixHack ".zip" s) || (hasSuffixHack ".ZIP" s) then "zip"
else if (hasSuffixHack "-cvs-export" s) then "cvs-dir"
@ -29,10 +31,11 @@ args: with args; with stringsWithDeps; with lib;
# Last block - for single files!! It should be always after .tar.*
else if (hasSuffixHack ".bz2" s) then "plain-bz2"
else if (hasSuffixHack ".gz" s) then "plain-gz"
else (abort "unknown archive type : ${s}"));
defAddToSearchPath = FullDepEntry ("
defAddToSearchPath = fullDepEntry ("
addToSearchPathWithCustomDelimiter() {
local delimiter=\$1
local varName=\$2
@ -83,13 +86,12 @@ args: with args; with stringsWithDeps; with lib;
trap \"closeNest\" EXIT
");
minInit = FullDepEntry ("
minInit = fullDepEntry ("
set -e
NIX_GCC=${stdenv.gcc}
export SHELL=${stdenv.shell}
PATH_DELIMITER=':'
" + (if ((stdenv ? preHook) && (stdenv.preHook != null) &&
((toString stdenv.preHook) != "")) then
" + (if stdenv ? preHook && stdenv.preHook != null && toString stdenv.preHook != "" then
"
param1=${stdenv.param1}
param2=${stdenv.param2}
@ -112,7 +114,7 @@ args: with args; with stringsWithDeps; with lib;
"
else "")) ["defNest" "defAddToSearchPath"];
addInputs = FullDepEntry ("
addInputs = fullDepEntry ("
# Recursively find all build inputs.
findInputs()
{
@ -178,7 +180,7 @@ args: with args; with stringsWithDeps; with lib;
PATH=\$_PATH\${_PATH:+\"\${PATH_DELIMITER}\"}\$PATH
") ["minInit"];
defEnsureDir = FullDepEntry ("
defEnsureDir = fullDepEntry ("
# Ensure that the given directories exists.
ensureDir() {
local dir
@ -188,7 +190,7 @@ args: with args; with stringsWithDeps; with lib;
}
") ["minInit"];
toSrcDir = s : FullDepEntry ((if (archiveType s) == "tar" then "
toSrcDir = s : fullDepEntry ((if (archiveType s) == "tar" then "
tar xvf '${s}'
cd \"\$(tar tf '${s}' | head -1 | sed -e 's@/.*@@' )\"
" else if (archiveType s) == "tgz" then "
@ -197,6 +199,9 @@ args: with args; with stringsWithDeps; with lib;
" else if (archiveType s) == "tbz2" then "
tar xvjf '${s}'
cd \"\$(tar tjf '${s}' | head -1 | sed -e 's@/.*@@' )\"
" else if (archiveType s) == "tZ" then "
uncompress < '${s}' | tar x
cd \"\$(uncompress < '${s}' | tar t | head -1 | sed -e 's@/.*@@' )\"
" else if (archiveType s) == "tar.lzma" then "
unlzma -d -c <'${s}' | tar xv
cd \"\$(unlzma -d -c <'${s}' | tar t | head -1 | sed -e 's@/.*@@' )\"
@ -220,23 +225,28 @@ args: with args; with stringsWithDeps; with lib;
NAME=\$(basename ${s} .bz2)
bzip2 -d <${s} > \$PWD/\$(basename ${s} .bz2)/\${NAME#*-}
cd \$(basename ${s} .bz2)
" else if (archiveType s) == "plain-gz" then "
mkdir \$PWD/\$(basename ${s} .gz)
NAME=\$(basename ${s} .gz)
gzip -d <${s} > \$PWD/\$(basename ${s} .gz)/\${NAME#*-}
cd \$(basename ${s} .gz)
" else (abort "unknown archive type : ${s}"))+
# goSrcDir is typically something like "cd mysubdir" .. but can be anything else
(if args ? goSrcDir then args.goSrcDir else "")
) ["minInit"];
configureCommand = getAttr ["configureCommand"] "./configure" args;
configureCommand = attrByPath ["configureCommand"] "./configure" args;
doConfigure = FullDepEntry ("
doConfigure = fullDepEntry ("
${configureCommand} --prefix=\"\$prefix\" ${toString configureFlags}
") ["minInit" "addInputs" "doUnpack"];
doIntltool = FullDepEntry ("
doIntltool = fullDepEntry ("
mkdir -p config
intltoolize --copy --force
") ["minInit" "addInputs" "doUnpack"];
doAutotools = FullDepEntry ("
doAutotools = fullDepEntry ("
mkdir -p config
libtoolize --copy --force
aclocal --force
@ -246,17 +256,17 @@ args: with args; with stringsWithDeps; with lib;
autoconf
")["minInit" "addInputs" "doUnpack"];
doMake = FullDepEntry ("
doMake = fullDepEntry ("
make ${toString makeFlags}
") ["minInit" "addInputs" "doUnpack"];
doUnpack = toSrcDir (toString src);
installPythonPackage = FullDepEntry ("
installPythonPackage = fullDepEntry ("
python setup.py install --prefix=\"\$prefix\"
") ["minInit" "addInputs" "doUnpack"];
doPythonConfigure = FullDepEntry (''
doPythonConfigure = fullDepEntry (''
pythonVersion=$(toPythonPath "$prefix")
pythonVersion=''${pythonVersion#*/lib/python}
pythonVersion=''${pythonVersion%%/site-packages}
@ -266,11 +276,11 @@ args: with args; with stringsWithDeps; with lib;
python configure.py -b "$prefix/bin" -d "$(toPythonPath "$prefix")" -v "$prefix/share/sip" ${toString configureFlags}
'') ["minInit" "addInputs" "doUnpack"];
doMakeInstall = FullDepEntry ("
make ${toString (getAttr ["makeFlags"] "" args)} "+
"${toString (getAttr ["installFlags"] "" args)} install") ["doMake"];
doMakeInstall = fullDepEntry ("
make ${toString (attrByPath ["makeFlags"] "" args)} "+
"${toString (attrByPath ["installFlags"] "" args)} install") ["doMake"];
doForceShare = FullDepEntry ("
doForceShare = fullDepEntry ("
ensureDir \"\$prefix/share\"
for d in ${toString forceShare}; do
if [ -d \"\$prefix/\$d\" -a ! -d \"\$prefix/share/\$d\" ]; then
@ -280,7 +290,7 @@ args: with args; with stringsWithDeps; with lib;
done;
") ["minInit" "defEnsureDir"];
doForceCopy = FullDepEntry (''
doForceCopy = fullDepEntry (''
name="$(basename $out)"
name="''${name#*-}"
ensureDir "$prefix/share/$name"
@ -293,11 +303,11 @@ args: with args; with stringsWithDeps; with lib;
patchFlags = if args ? patchFlags then args.patchFlags else "-p1";
patches = getAttr ["patches"] [] args;
patches = attrByPath ["patches"] [] args;
toPatchCommand = s: "cat ${s} | patch ${toString patchFlags}";
doPatch = FullDepEntry (concatStringsSep ";"
doPatch = fullDepEntry (concatStringsSep ";"
(map toPatchCommand patches)
) ["minInit" "doUnpack"];
@ -307,8 +317,8 @@ args: with args; with stringsWithDeps; with lib;
envAdder = envAdderInner "";
envAdderList = l: if l==[] then "" else
"echo export ${__head l}='\"'\"\\\$${__head l}:${__head (__tail l)}\"'\"';\n" +
envAdderList (__tail (__tail l));
"echo export ${head l}='\"'\"\\\$${head l}:${head (tail l)}\"'\"';\n" +
envAdderList (tail (tail l));
wrapEnv = cmd: env: "
mv \"${cmd}\" \"${cmd}-orig\";
@ -317,9 +327,9 @@ args: with args; with stringsWithDeps; with lib;
(${envAdderList env}
echo '\"'\"${cmd}-orig\"'\"' '\"'\\\$@'\"' \n) > \"${cmd}\"";
doWrap = cmd: FullDepEntry (wrapEnv cmd (getAttr ["wrappedEnv"] [] args)) ["minInit"];
doWrap = cmd: fullDepEntry (wrapEnv cmd (attrByPath ["wrappedEnv"] [] args)) ["minInit"];
makeManyWrappers = wildcard : wrapperFlags : FullDepEntry (''
makeManyWrappers = wildcard : wrapperFlags : fullDepEntry (''
for i in ${wildcard}; do
wrapProgram "$i" ${wrapperFlags}
done
@ -336,79 +346,79 @@ args: with args; with stringsWithDeps; with lib;
preservePathWrapperArguments = ''''${PATH:+ --prefix PATH : $PATH }'';
doPropagate = FullDepEntry ("
doPropagate = fullDepEntry ("
ensureDir \$out/nix-support
echo '${toString (getAttr ["propagatedBuildInputs"] [] args)}' >\$out/nix-support/propagated-build-inputs
echo '${toString (attrByPath ["propagatedBuildInputs"] [] args)}' >\$out/nix-support/propagated-build-inputs
") ["minInit" "defEnsureDir"];
/*debug = x:(__trace x x);
debugX = x:(__trace (__toXML x) x);*/
/*debug = x:(trace x x);
debugX = x:(trace (toXML x) x);*/
replaceScriptVar = file: name: value: ("sed -e 's`^${name}=.*`${name}='\\''${value}'\\''`' -i ${file}");
replaceInScript = file: l: (concatStringsSep "\n" ((pairMap (replaceScriptVar file) l)));
replaceScripts = l:(concatStringsSep "\n" (pairMap replaceInScript l));
doReplaceScripts = FullDepEntry (replaceScripts (getAttr ["shellReplacements"] [] args)) [minInit];
makeNest = x:(if x==defNest.text then x else "startNest\n" + x + "\nstopNest\n");
textClosure = a : steps : textClosureMapOveridable makeNest a (["defNest"] ++ steps);
replaceScriptVar = file: name: value: "sed -e 's`^${name}=.*`${name}='\\''${value}'\\''`' -i ${file}";
replaceInScript = file: l: concatStringsSep "\n" ((pairMap (replaceScriptVar file) l));
replaceScripts = l: concatStringsSep "\n" (pairMap replaceInScript l);
doReplaceScripts = fullDepEntry (replaceScripts (attrByPath ["shellReplacements"] [] args)) ["minInit"];
makeNest = x: if x == defNest.text then x else "startNest\n" + x + "\nstopNest\n";
textClosure = a: steps: textClosureMap makeNest a (["defNest"] ++ steps);
inherit noDepEntry FullDepEntry PackEntry;
inherit noDepEntry fullDepEntry packEntry;
defList = (getAttr ["defList"] [] args);
defList = attrByPath ["defList"] [] args;
getVal = getValue args defList;
check = checkFlag args;
reqsList = getAttr ["reqsList"] [] args;
buildInputsNames = filter (x: (null != getVal x))
reqsList = attrByPath ["reqsList"] [] args;
buildInputsNames = filter (x: null != getVal x)
(uniqList {inputList =
(concatLists (map
(x:(if (x==[]) then [] else builtins.tail x))
reqsList));});
configFlags = getAttr ["configFlags"] [] args;
buildFlags = getAttr ["buildFlags"] [] args;
nameSuffixes = getAttr ["nameSuffixes"] [] args;
(concatLists (map
(x: if x==[] then [] else builtins.tail x)
reqsList));});
configFlags = attrByPath ["configFlags"] [] args;
buildFlags = attrByPath ["buildFlags"] [] args;
nameSuffixes = attrByPath ["nameSuffixes"] [] args;
autoBuildInputs = assert (checkReqs args defList reqsList);
filter (x: x!=null) (map getVal buildInputsNames);
autoConfigureFlags = condConcat "" configFlags check;
autoMakeFlags = condConcat "" buildFlags check;
useConfig = getAttr ["useConfig"] false args;
useConfig = attrByPath ["useConfig"] false args;
realBuildInputs =
lib.closePropagation ((if useConfig then
autoBuildInputs else
getAttr ["buildInputs"] [] args)++
(getAttr ["propagatedBuildInputs"] [] args));
attrByPath ["buildInputs"] [] args)++
(attrByPath ["propagatedBuildInputs"] [] args));
configureFlags = if useConfig then autoConfigureFlags else
getAttr ["configureFlags"] "" args;
makeFlags = if useConfig then autoMakeFlags else getAttr ["makeFlags"] "" args;
attrByPath ["configureFlags"] "" args;
makeFlags = if useConfig then autoMakeFlags else attrByPath ["makeFlags"] "" args;
inherit lib;
surroundWithCommands = x : before : after : {deps=x.deps; text = before + "\n" +
x.text + "\n" + after ;};
createDirs = FullDepEntry (concatStringsSep ";"
(map (x: "ensureDir ${x}") (getAttr ["neededDirs"] [] args))
createDirs = fullDepEntry (concatStringsSep ";"
(map (x: "ensureDir ${x}") (attrByPath ["neededDirs"] [] args))
) ["minInit" "defEnsureDir"];
copyExtraDoc = FullDepEntry (''
copyExtraDoc = fullDepEntry (''
name="$(basename $out)"
name="''${name#*-}"
ensureDir "$out/share/doc/$name"
'' + (concatStringsSep ";"
(map
(x: ''cp "${x}" "$out/share/doc/$name" || true;'')
(getAttr ["extraDoc"] [] args)))) ["minInit" "defEnsureDir" "doUnpack"];
(attrByPath ["extraDoc"] [] args)))) ["minInit" "defEnsureDir" "doUnpack"];
realPhaseNames =
(optional ([] != getAttr ["neededDirs"] [] args) "createDirs")
(optional ([] != attrByPath ["neededDirs"] [] args) "createDirs")
++
args.phaseNames
++
["doForceShare" "doPropagate" "doForceCopy"]
++
(optional ([] != getAttr ["extraDoc"] [] args) "copyExtraDoc")
(optional ([] != attrByPath ["extraDoc"] [] args) "copyExtraDoc")
++
(optional (getAttr ["doCheck"] false args) "doMakeCheck")
(optional (attrByPath ["doCheck"] false args) "doMakeCheck")
++
(optional (getAttr ["alwaysFail"] false args) "doFail")
(optional (attrByPath ["alwaysFail"] false args) "doFail")
;
doFail = noDepEntry "
@ -416,11 +426,11 @@ args: with args; with stringsWithDeps; with lib;
a() { return 127; } ; a ;
";
doMakeCheck = FullDepEntry (''
doMakeCheck = fullDepEntry (''
make check
'') ["minInit"];
extraDerivationAttrs = lib.getAttr ["extraDerivationAttrs"] {} args;
extraDerivationAttrs = lib.attrByPath ["extraDerivationAttrs"] {} args;
# for overrides..
builderDefsArgs = args;
@ -430,8 +440,7 @@ args: with args; with stringsWithDeps; with lib;
stdenv.mkDerivation ((rec {
inherit (localDefs) name;
builder = writeScript (name + "-builder")
(textClosure localDefs localDefs.realPhaseNames);
buildCommand = textClosure localDefs localDefs.realPhaseNames;
meta = localDefs.meta;
passthru = localDefs.passthru // {inherit (localDefs) src; };
}) // (if localDefs ? propagatedBuildInputs then {
@ -445,25 +454,25 @@ args: with args; with stringsWithDeps; with lib;
(innerBuilderDefsPackage bd)
{};
generateFontsFromSFD = FullDepEntry (''
generateFontsFromSFD = fullDepEntry (''
for i in *.sfd; do
fontforge -c \
'Open($1);
${optionalString (args ? extraFontForgeCommands) args.extraFontForgeCommands
}Reencode("unicode");
${optionalString (getAttr ["createTTF"] true args) ''Generate($1:r + ".ttf");''}
${optionalString (getAttr ["createOTF"] true args) ''Generate($1:r + ".otf");''}
${optionalString (attrByPath ["createTTF"] true args) ''Generate($1:r + ".ttf");''}
${optionalString (attrByPath ["createOTF"] true args) ''Generate($1:r + ".otf");''}
Reencode("TeX-Base-Encoding");
${optionalString (getAttr ["createAFM"] true args) ''Generate($1:r + ".afm");''}
${optionalString (getAttr ["createPFM"] true args) ''Generate($1:r + ".pfm");''}
${optionalString (getAttr ["createPFB"] true args) ''Generate($1:r + ".pfb");''}
${optionalString (getAttr ["createMAP"] true args) ''Generate($1:r + ".map");''}
${optionalString (getAttr ["createENC"] true args) ''Generate($1:r + ".enc");''}
${optionalString (attrByPath ["createAFM"] true args) ''Generate($1:r + ".afm");''}
${optionalString (attrByPath ["createPFM"] true args) ''Generate($1:r + ".pfm");''}
${optionalString (attrByPath ["createPFB"] true args) ''Generate($1:r + ".pfb");''}
${optionalString (attrByPath ["createMAP"] true args) ''Generate($1:r + ".map");''}
${optionalString (attrByPath ["createENC"] true args) ''Generate($1:r + ".enc");''}
' $i;
done
'') ["minInit" "addInputs" "doUnpack"];
installFonts = FullDepEntry (''
installFonts = fullDepEntry (''
ensureDir $out/share/fonts/truetype/public/${args.name}
ensureDir $out/share/fonts/opentype/public/${args.name}
ensureDir $out/share/fonts/type1/public/${args.name}
@ -477,12 +486,12 @@ args: with args; with stringsWithDeps; with lib;
cp *.map $out/share/texmf/fonts/map/${args.name} || echo No fontmap data
'') ["minInit" "defEnsureDir"];
simplyShare = shareName: FullDepEntry (''
simplyShare = shareName: fullDepEntry (''
ensureDir $out/share
cp -r . $out/share/${shareName}
'') ["doUnpack" "defEnsureDir"];
doPatchShebangs = dir: FullDepEntry (''
doPatchShebangs = dir: fullDepEntry (''
patchShebangFun() {
# Rewrite all script interpreter file names (`#! /path') under the
# specified directory tree to paths found in $PATH. E.g.,
@ -504,7 +513,7 @@ args: with args; with stringsWithDeps; with lib;
patchShebangFun;
'') ["minInit"];
createPythonInstallationTarget = FullDepEntry (''
createPythonInstallationTarget = fullDepEntry (''
ensureDir $(toPythonPath $out)
export PYTHONPATH=$PYTHONPATH''${PYTHONPATH:+:}$(toPythonPath $out)
'') ["minInit" "addInputs" "defEnsureDir"];

View File

@ -2,7 +2,7 @@ a :
let
fetchurl = a.fetchurl;
version = a.lib.getAttr ["version"] "" a;
version = a.lib.attrByPath ["version"] "" a;
buildInputs = with a; [
];

View File

@ -16,14 +16,14 @@ let
checkAttrInclusion = s: a: b:
(
if (! isAttrs b) then s else
if (lib.getAttr ["_type"] "" b) == "option" then "" else
if (lib.attrByPath ["_type"] "" b) == "option" then "" else
findInList (x : x != "")
( map (x: if (x == "servicesProposal") # this attr will be checked at another place ( -> upstart-jobs/default.nix )
then ""
else checkAttrInclusion
(s + "." + x)
(__getAttr x a)
(lib.getAttr [x] null b))
(builtins.getAttr x a)
(lib.attrByPath [x] null b))
(attrNames a)) ""
);
in

View File

@ -2,7 +2,7 @@ args : with args;
let
localDefs = with (builderDefs.passthru.function {src="";});
let
checkFlag = flag : lib.getAttr [flag] false args;
checkFlag = flag : lib.attrByPath [flag] false args;
in
builderDefs.passthru.function ({
inherit src;
@ -15,14 +15,14 @@ args : with args;
patch = null;
meta = {};
doInstall = if args ? Install then
(FullDepEntry
(fullDepEntry
args.Install
(["doMake"]
++ (lib.getAttr ["extraInstallDeps"] [] args))
++ (lib.attrByPath ["extraInstallDeps"] [] args))
)
else FullDepEntry "" ["doMakeInstall"];
else fullDepEntry "" ["doMakeInstall"];
debPatch = FullDepEntry ((if args ? patch then ''
debPatch = fullDepEntry ((if args ? patch then ''
gunzip < ${args.patch} | patch -Np1
'' else "")
+''

View File

@ -5,11 +5,14 @@ tagflags=""
if test -n "$tag"; then
tagtext="(tag $tag) "
tagflags="--tag=$tag"
elif test -n "$context"; then
tagtext="(context) "
tagflags="--context=$context"
fi
header "getting $url $partial ${tagtext} into $out"
darcs get --no-pristine-tree $partial $tagflags "$url" "$out"
darcs get --lazy --ephemeral $tagflags "$url" "$out"
# remove metadata, because it can change
rm -rf "$out/_darcs"

View File

@ -1,17 +1,13 @@
{stdenv, darcs, nix}: {url, tag ? null, md5, partial ? true}:
{stdenv, darcs, nix}: {url, tag ? null, context ? null, md5 ? "", sha256 ? ""}:
stdenv.mkDerivation {
name = "fetchdarcs";
builder = ./builder.sh;
buildInputs = [darcs nix];
partial = if partial then "--partial" else "";
buildInputs = [darcs];
# Nix <= 0.7 compatibility.
id = md5;
outputHashAlgo = "md5";
outputHashAlgo = if sha256 == "" then "md5" else "sha256";
outputHashMode = "recursive";
outputHash = md5;
outputHash = if sha256 == "" then md5 else sha256;
inherit url tag;
inherit url tag context;
}

View File

@ -0,0 +1,13 @@
source $stdenv/setup
header "exporting $url (rev $rev) into $out"
git clone --depth 1 "$url" $out
if test -n "$rev"; then
cd $out
git checkout $rev
fi
find $out -name .git\* | xargs rm -rf
stopNest

View File

@ -0,0 +1,23 @@
{stdenv, git}:
{url, rev ? "HEAD", md5 ? "", sha256 ? ""}:
stdenv.mkDerivation {
name = "git-export";
builder = ./builder.sh;
buildInputs = [git];
outputHashAlgo = if sha256 == "" then "md5" else "sha256";
outputHashMode = "recursive";
outputHash = if sha256 == "" then md5 else sha256;
inherit url rev ;
impureEnvVars = [
# We borrow these environment variables from the caller to allow
# easy proxy configuration. This is impure, but a fixed-output
# derivation like fetchurl is allowed to do so since its result is
# by definition pure.
"http_proxy" "https_proxy" "ftp_proxy" "all_proxy" "no_proxy"
];
}

View File

@ -0,0 +1,66 @@
#! /bin/sh -e
url=$1
rev=$2
expHash=$3
hashType=$NIX_HASH_ALGO
if test -z "$hashType"; then
hashType=md5
fi
if test -z "$url"; then
echo "syntax: nix-prefetch-git URL [REVISION [EXPECTED-HASH]]" >&2
exit 1
fi
# If the hash was given, a file with that hash may already be in the
# store.
if test -n "$expHash"; then
finalPath=$(nix-store --print-fixed-path --recursive "$hashType" "$expHash" git-export)
if ! nix-store --check-validity "$finalPath" 2> /dev/null; then
finalPath=
fi
hash=$expHash
fi
# If we don't know the hash or a path with that hash doesn't exist,
# download the file and add it to the store.
if test -z "$finalPath"; then
tmpPath=/tmp/git-checkout-tmp-$$
tmpFile=$tmpPath/git-export
mkdir $tmpPath
trap "rm -rf $tmpPath" EXIT
# Perform the checkout.
git clone --depth 1 "$url" $tmpFile
if test -n "$rev"; then
cd $tmpFile
echo $tmpFile
git checkout $rev
fi
find $tmpFile -name .git\* | xargs rm -rf
# Compute the hash.
hash=$(nix-hash --type $hashType $hashFormat $tmpFile)
if ! test -n "$QUIET"; then echo "hash is $hash" >&2; fi
# Add the downloaded file to the Nix store.
finalPath=$(nix-store --add-fixed --recursive "$hashType" $tmpFile)
if test -n "$expHash" -a "$expHash" != "$hash"; then
echo "hash mismatch for URL \`$url'"
exit 1
fi
fi
if ! test -n "$QUIET"; then echo "path is $finalPath" >&2; fi
echo $hash
if test -n "$PRINT_PATH"; then
echo $finalPath
fi

View File

@ -6,6 +6,18 @@ if test "$sshSupport"; then
export SVN_SSH="$openssh/bin/ssh"
fi
if test -n "$http_proxy"; then
# Configure proxy
mkdir .subversion
proxy="${http_proxy#*://}"
echo '[global]' > .subversion/servers
echo "http-proxy-host = ${proxy%:*}" >> .subversion/servers
echo "http-proxy-port = ${proxy##*:}" >> .subversion/servers
export HOME="$PWD"
fi;
# Pipe the "p" character into Subversion to force it to accept the
# server's certificate. This is perfectly safe: we don't care
# whether the server is being spoofed --- only the cryptographic

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