Merge remote-tracking branch 'origin/master' into multiple-outputs

Conflicts:
	pkgs/development/libraries/gtk+/2.x.nix
	pkgs/development/libraries/libsamplerate/default.nix
	pkgs/development/libraries/libsndfile/default.nix
	pkgs/misc/cups/default.nix
	pkgs/top-level/all-packages.nix
This commit is contained in:
Eelco Dolstra 2013-08-21 17:05:30 +02:00
commit 10cb4a8cf2
1087 changed files with 30296 additions and 32019 deletions

@ -6,7 +6,7 @@
<para>The standard build environment in the Nix Packages collection
provides a environment for building Unix packages that does a lot of
provides an environment for building Unix packages that does a lot of
common build tasks automatically. In fact, for Unix packages that use
the standard <literal>./configure; make; make install</literal> build
interface, you dont need to write a build script at all; the standard

@ -41,7 +41,7 @@ NB:
Keep in mind that many programs are not very well suited for cross
compilation. Either they are not intended to run on other platforms,
because the code is highly platform specific, or the configuration proces
because the code is highly platform specific, or the configuration process
is not written with cross compilation in mind.
Nix will not solve these problems for you!
@ -290,7 +290,7 @@ this compiler and verified to be working on a HP Jornada 820 running Linux
are "patch", "make" and "wget".
If we want to build C++ programs it gets a lot more difficult. GCC has a
three step compilation proces. In the first step a simple compiler, called
three step compilation process. In the first step a simple compiler, called
xgcc, that can compile only C programs is built. With that compiler it
compiles itself two more times: one time to build a full compiler, and another
time to build a full compiler once again with the freshly built compiler from
@ -318,7 +318,7 @@ with compilation flags. This is still work in progress for Nix.
---
After succesfully completing the whole toolchain you can start building
After successfully completing the whole toolchain you can start building
packages with the newly built tools. To make everything build correctly
you will need a stdenv for your target platform. Setting up this platform
will take some effort. Right now there is a very experimental setup for

@ -51,15 +51,21 @@ print STDERR "unpacked to: $pkg_path\n";
my $meta;
if (-e "$pkg_path/META.yml") {
eval {
$meta = YAML::XS::LoadFile("$pkg_path/META.yml");
$meta = YAML::XS::LoadFile("$pkg_path/META.yml");
};
if ($@) {
system("iconv -f windows-1252 -t utf-8 '$pkg_path/META.yml' > '$pkg_path/META.yml.tmp'");
$meta = YAML::XS::LoadFile("$pkg_path/META.yml.tmp");
system("iconv -f windows-1252 -t utf-8 '$pkg_path/META.yml' > '$pkg_path/META.yml.tmp'");
$meta = YAML::XS::LoadFile("$pkg_path/META.yml.tmp");
}
} elsif (-e "$pkg_path/META.json") {
local $/;
open(my $fh, '<', "$pkg_path/META.json") or die;
$meta = decode_json(<$fh>);
} else {
warn "package has no META.yml or META.json\n";
}
print STDERR "metadata: ", encode_json($meta), "\n";
print STDERR "metadata: ", encode_json($meta), "\n" if defined $meta;
# Map a module to the attribute corresponding to its package
# (e.g. HTML::HeadParser will be mapped to HTMLParser, because that
@ -120,11 +126,13 @@ my $homepage = $meta->{resources}->{homepage};
print STDERR "homepage: $homepage\n" if defined $homepage;
my $description = $meta->{abstract};
$description = uc(substr($description, 0, 1)) . substr($description, 1); # capitalise first letter
$description =~ s/\.$//; # remove period at the end
$description =~ s/\s*$//;
$description =~ s/^\s*//;
print STDERR "description: $description\n";
if (defined $description) {
$description = uc(substr($description, 0, 1)) . substr($description, 1); # capitalise first letter
$description =~ s/\.$//; # remove period at the end
$description =~ s/\s*$//;
$description =~ s/^\s*//;
print STDERR "description: $description\n";
}
my $license = $meta->{license};
if (defined $license) {
@ -156,7 +164,7 @@ EOF
print <<EOF if defined $homepage;
homepage = $homepage;
EOF
print <<EOF;
print <<EOF if defined $description;
description = "$description";
EOF
print <<EOF if defined $license;

@ -0,0 +1,22 @@
{ stdenv, makeWrapper, perl, perlPackages }:
stdenv.mkDerivation {
name = "nixpkgs-lint-1";
buildInputs = [ makeWrapper perl perlPackages.XMLSimple ];
unpackPhase = "true";
buildPhase = "true";
installPhase =
''
mkdir -p $out/bin
cp ${./nixpkgs-lint.pl} $out/bin/nixpkgs-lint
wrapProgram $out/bin/nixpkgs-lint --set PERL5LIB $PERL5LIB
'';
meta = {
maintainers = [ stdenv.lib.maintainers.eelco ];
description = "A utility for Nixpkgs contributors to check Nixpkgs for common errors";
};
}

@ -0,0 +1,165 @@
#! /run/current-system/sw/bin/perl -w
use strict;
use List::Util qw(min);
use XML::Simple qw(:strict);
use Getopt::Long qw(:config gnu_getopt);
# Parse the command line.
my $path = "<nixpkgs>";
my $filter = "*";
my $maintainer;
sub showHelp {
print <<EOF;
Usage: $0 [--package=NAME] [--maintainer=REGEXP] [--file=PATH]
Check Nixpkgs for common errors/problems.
-p, --package filter packages by name (default is *)
-m, --maintainer filter packages by maintainer (case-insensitive regexp)
-f, --file path to Nixpkgs (default is <nixpkgs>)
Examples:
\$ nixpkgs-lint -f /my/nixpkgs -p firefox
\$ nixpkgs-lint -f /my/nixpkgs -m eelco
EOF
exit 0;
}
GetOptions("package|p=s" => \$filter,
"maintainer|m=s" => \$maintainer,
"file|f=s" => \$path,
"help" => sub { showHelp() }
)
or die("syntax: $0 ...\n");
# Evaluate Nixpkgs into an XML representation.
my $xml = `nix-env -f '$path' -qa '$filter' --xml --meta --drv-path`;
die "$0: evaluation of $path failed\n" if $? != 0;
my $info = XMLin($xml, KeyAttr => { 'item' => '+attrPath', 'meta' => 'name' }, ForceArray => 1, SuppressEmpty => '' ) or die "cannot parse XML output";
# Check meta information.
print "=== Package meta information ===\n\n";
my $nrBadNames = 0;
my $nrMissingMaintainers = 0;
my $nrMissingDescriptions = 0;
my $nrBadDescriptions = 0;
my $nrMissingLicenses = 0;
foreach my $attr (sort keys %{$info->{item}}) {
my $pkg = $info->{item}->{$attr};
my $pkgName = $pkg->{name};
my $pkgVersion = "";
if ($pkgName =~ /(.*)(-[0-9].*)$/) {
$pkgName = $1;
$pkgVersion = $2;
}
# Check the maintainers.
my @maintainers;
my $x = $pkg->{meta}->{maintainers};
if (defined $x && $x->{type} eq "strings") {
@maintainers = map { $_->{value} } @{$x->{string}};
} elsif (defined $x->{value}) {
@maintainers = ($x->{value});
}
if (defined $maintainer && scalar(grep { $_ =~ /$maintainer/i } @maintainers) == 0) {
delete $info->{item}->{$attr};
next;
}
if (scalar @maintainers == 0) {
print "$attr: Lacks a maintainer\n";
$nrMissingMaintainers++;
}
# Package names should not be capitalised.
if ($pkgName =~ /^[A-Z]/) {
print "$attr: package name $pkgName should not be capitalised\n";
$nrBadNames++;
}
if ($pkgVersion eq "") {
print "$attr: package has no version\n";
$nrBadNames++;
}
# Check the license.
if (!defined $pkg->{meta}->{license}) {
print "$attr: Lacks a license\n";
$nrMissingLicenses++;
}
# Check the description.
my $description = $pkg->{meta}->{description}->{value};
if (!$description) {
print "$attr: Lacks a description\n";
$nrMissingDescriptions++;
} else {
my $bad = 0;
if ($description =~ /^\s/) {
print "$attr: Description starts with whitespace\n";
$bad = 1;
}
if ($description =~ /\s$/) {
print "$attr: Description ends with whitespace\n";
$bad = 1;
}
if ($description =~ /\.$/) {
print "$attr: Description ends with a period\n";
$bad = 1;
}
if (index(lc($description), lc($attr)) != -1) {
print "$attr: Description contains package name\n";
$bad = 1;
}
$nrBadDescriptions++ if $bad;
}
}
print "\n";
# Find packages that have the same name.
print "=== Package name collisions ===\n\n";
my %pkgsByName;
foreach my $attr (sort keys %{$info->{item}}) {
my $pkg = $info->{item}->{$attr};
#print STDERR "attr = $attr, name = $pkg->{name}\n";
$pkgsByName{$pkg->{name}} //= [];
push @{$pkgsByName{$pkg->{name}}}, $pkg;
}
my $nrCollisions = 0;
foreach my $name (sort keys %pkgsByName) {
my @pkgs = @{$pkgsByName{$name}};
# Filter attributes that are aliases of each other (e.g. yield the
# same derivation path).
my %drvsSeen;
@pkgs = grep { my $x = $drvsSeen{$_->{drvPath}}; $drvsSeen{$_->{drvPath}} = 1; !defined $x } @pkgs;
# Filter packages that have a lower priority.
my $highest = min (map { $_->{meta}->{priority}->{value} // 0 } @pkgs);
@pkgs = grep { ($_->{meta}->{priority}->{value} // 0) == $highest } @pkgs;
next if scalar @pkgs == 1;
$nrCollisions++;
print "The following attributes evaluate to a package named $name:\n";
print " ", join(", ", map { $_->{attrPath} } @pkgs), "\n\n";
}
print "=== Bottom line ===\n";
print "Number of packages: ", scalar(keys %{$info->{item}}), "\n";
print "Number of bad names: $nrBadNames\n";
print "Number of missing maintainers: $nrMissingMaintainers\n";
print "Number of missing licenses: $nrMissingLicenses\n";
print "Number of missing descriptions: $nrMissingDescriptions\n";
print "Number of bad descriptions: $nrBadDescriptions\n";
print "Number of name collisions: $nrCollisions\n";

@ -61,7 +61,7 @@ in
meta = {
homepage = "http://lly.org/~rcw/abcde/page/";
licence = "GPLv2+";
license = "GPLv2+";
description = "A Better CD Encoder (ABCDE)";
longDescription = ''

@ -7,11 +7,11 @@ stdenv.mkDerivation rec {
name = "${pname}-${version}";
pname = "amarok";
version = "2.6.0";
version = "2.7.1";
src = fetchurl {
url = "mirror://kde/stable/${pname}/${version}/src/${name}.tar.bz2";
sha256 = "1h6jzl0jnn8g05pz4mw01kz20wjjxwwz6iki7lvgj70qi3jq04m9";
sha256 = "12dvqnx6jniykbi6sz94xxlnxzafjsaxlf0mppk9w5wn61jwc3cy";
};
QT_PLUGIN_PATH="${qtscriptgenerator}/lib/qt4/plugins";

@ -19,7 +19,7 @@ in
meta = {
homepage = http://lly.org/~rcw/cd-discid/;
licence = "GPLv2+";
license = "GPLv2+";
description = "cd-discid, a command-line utility to retrieve a disc's CDDB ID";
longDescription = ''
@ -28,4 +28,4 @@ in
abcde), but can be used for any purpose requiring CDDB data.
'';
};
}
}

@ -17,7 +17,7 @@ stdenv.mkDerivation {
enableParallelBuilding = true;
src = fetchurl {
url = http://netcologne.dl.sourceforge.net/project/csound/csound5/csound5.18/Csound5.18.02.tar.gz;
url = mirror://sourceforge/csound/Csound5.18.02.tar.gz;
sha256 = "4c461cf3bf60b83671224949dd33805379b7121bf2c0ad6af5e191e7f6f8adc8";
};

@ -1,22 +1,32 @@
{ stdenv, fetchurl, pkgconfig, gtk, libid3tag, id3lib, libvorbis, libogg, flac }:
{ stdenv, fetchurl, pkgconfig, intltool, gtk, glib, libid3tag, id3lib, taglib
, libvorbis, libogg, flac
}:
let
version = "2.1.7";
sha256 = "bfed34cbdce96aca299a0db2b531dbc66feb489b911a34f0a9c67f2eb6ee9301";
in stdenv.mkDerivation {
stdenv.mkDerivation rec {
name = "easytag-${version}";
version = "2.1.8";
src = fetchurl {
url = "mirror://sourceforge/easytag/easytag-${version}.tar.bz2";
inherit sha256;
url = "mirror://gnome/sources/easytag/2.1/${name}.tar.xz";
sha256 = "1ab5iv0a83cdf07qzi81ydfk5apay06nxags9m07msqalz4pabqs";
};
buildInputs = [ pkgconfig gtk libid3tag id3lib libvorbis libogg flac ];
preConfigure = ''
# pkg-config v0.23 should be enough.
sed -i -e '/_pkg_min_version=0.24/s/24/23/' \
-e 's/have_mp3=no/have_mp3=yes/' \
-e 's/ID3TAG_DEPS="id3tag"/ID3TAG_DEPS=""/' configure
'';
NIX_LDFLAGS = "-lid3tag -lz";
buildInputs = [
pkgconfig intltool gtk glib libid3tag id3lib taglib libvorbis libogg flac
];
meta = {
description = "an utility for viewing and editing tags for various audio files";
homepage = http://http://easytag.sourceforge.net/;
license = stdenv.lib.licenses.gpl2;
description = "View and edit tags for various audio files";
homepage = "http://projects.gnome.org/easytag/";
license = stdenv.lib.licenses.gpl2Plus;
};
}
}

@ -10,12 +10,24 @@ stdenv.mkDerivation rec {
sha256 = "1x73a5rsyvfmh1j0484kzgnk251q61g1g2jdja673l8fizi0xd24";
};
buildInputs = [ alsaLib glib jackaudio libsndfile pkgconfig pulseaudio ];
preBuild = stdenv.lib.optionalString stdenv.isDarwin ''
sed -i '40 i\
#include <CoreAudio/AudioHardware.h>\
#include <CoreAudio/AudioHardwareDeprecated.h>' \
src/drivers/fluid_coreaudio.c
'';
NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isDarwin
"-framework CoreAudio";
buildInputs = [ glib libsndfile pkgconfig ]
++ stdenv.lib.optionals (!stdenv.isDarwin) [ alsaLib pulseaudio jackaudio ];
meta = with stdenv.lib; {
description = "real-time software synthesizer based on the SoundFont 2 specifications";
homepage = http://www.fluidsynth.org;
license = licenses.lgpl2;
maintainers = [ maintainers.goibhniu ];
description = "Real-time software synthesizer based on the SoundFont 2 specifications";
homepage = http://www.fluidsynth.org;
license = licenses.lgpl2;
maintainers = with maintainers; [ goibhniu lovek323 ];
platforms = platforms.unix;
};
}

@ -4,7 +4,7 @@ stdenv.mkDerivation {
name = "lingot-0.9.0";
src = fetchurl {
url = http://download.savannah.gnu.org/releases/lingot/lingot-0.9.0.tar.gz;
url = mirror://savannah/lingot/lingot-0.9.0.tar.gz;
sha256 = "07z129lp8m4sz608q409wb11c639w7cbn497r7bscgg08p6c07xb";
};

@ -0,0 +1,38 @@
{stdenv, fetchurl}:
let
s = # Generated upstream information
rec {
baseName="mi2ly";
version="0.12";
name="${baseName}-${version}";
hash="1b14zcwlvnxhjxr3ymyzg0mg4sbijkinzpxm641s859jxcgylmll";
url="http://download.savannah.gnu.org/releases/mi2ly/mi2ly.0.12.tar.bz2";
sha256="1b14zcwlvnxhjxr3ymyzg0mg4sbijkinzpxm641s859jxcgylmll";
};
buildInputs = [
];
in
stdenv.mkDerivation {
inherit (s) name version;
inherit buildInputs;
src = fetchurl {
inherit (s) url sha256;
};
sourceRoot=".";
buildPhase = "./cc";
installPhase = ''
mkdir -p "$out"/{bin,share/doc/mi2ly}
cp mi2ly "$out/bin"
cp README Doc.txt COPYING Manual.txt "$out/share/doc/mi2ly"
'';
meta = {
inherit (s) version;
description = ''MIDI to Lilypond converter'';
license = stdenv.lib.licenses.gpl2Plus ;
maintainers = [stdenv.lib.maintainers.raskin];
platforms = stdenv.lib.platforms.linux;
};
}

@ -0,0 +1,3 @@
url http://download.savannah.gnu.org/releases/mi2ly/
ensure_choice
version '.*/mi2ly[.]([0-9.]+)[.]tar.*' '\1'

@ -1,16 +1,15 @@
{ stdenv, fetchgit, pythonPackages, pygobject, gst_python
{ stdenv, fetchurl, pythonPackages, pygobject, gst_python
, gst_plugins_good, gst_plugins_base
}:
pythonPackages.buildPythonPackage rec {
name = "mopidy-${version}";
version = "0.14.1";
version = "0.14.2";
src = fetchgit {
url = "https://github.com/mopidy/mopidy.git";
rev = "refs/tags/v${version}";
sha256 = "0lgd8dpiri9m6sigpf1g1qzvz25lkb38lskgwvb8j7x64y104z0v";
src = fetchurl {
url = "https://github.com/mopidy/mopidy/archive/v${version}.tar.gz";
sha256 = "0fqx7lk9g61d744b951cwx0szqbyji58dhw2ravnq9785nkhi7i4";
};
propagatedBuildInputs = with pythonPackages; [

@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
license = "GPLv2+";
maintainers = [ stdenv.lib.maintainers.ludo ];
maintainers = [ ];
platforms = stdenv.lib.platforms.gnu; # arbitrary choice
};
}

@ -1,14 +1,14 @@
{stdenv, fetchurl, alsaLib }:
stdenv.mkDerivation {
name = "mpg123-1.12.3";
name = "mpg123-1.15.4";
src = fetchurl {
url = mirror://sourceforge/mpg123/mpg123-1.12.3.tar.bz2;
sha256 = "1ij689s7jch3d4g0ja3jylaphallc8vgrsrm9b12254phnyy23xf";
url = mirror://sourceforge/mpg123/mpg123-1.15.4.tar.bz2;
sha256 = "05aizspky9mp1bq2lfrkjzrsnjykl7gkbrhn93xcarj5b2izv1b8";
};
buildInputs = [ alsaLib ];
buildInputs = stdenv.lib.optional (!stdenv.isDarwin) alsaLib;
crossAttrs = {
configureFlags = if stdenv.cross ? mpg123 then

@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
description = "mpg321, a command-line MP3 player";
homepage = http://mpg321.sourceforge.net/;
license = "GPLv2";
maintainers = [ stdenv.lib.maintainers.ludo ];
maintainers = [ ];
platforms = stdenv.lib.platforms.gnu;
};
}

@ -1,4 +1,5 @@
{stdenv, fetchurl, ncurses, curl, taglib, fftw, mpd_clientlib, pkgconfig}:
{ stdenv, fetchurl, ncurses, curl, taglib, fftw, mpd_clientlib, pkgconfig
, libiconvOrEmpty }:
stdenv.mkDerivation rec {
version = "0.5.10";
@ -9,14 +10,15 @@ stdenv.mkDerivation rec {
sha256 = "ff6d5376a2d9caba6f5bb78e68af77cefbdb2f04cd256f738e39f8ac9a79a4a8";
};
buildInputs = [ ncurses curl taglib fftw mpd_clientlib pkgconfig ];
buildInputs = [ ncurses curl taglib fftw mpd_clientlib pkgconfig ]
++ libiconvOrEmpty;
meta = {
meta = with stdenv.lib; {
description = "Curses-based interface for MPD (music player daemon)";
homepage = http://unkart.ovh.org/ncmpcpp/;
license = "GPLv2+";
maintainers = [ stdenv.lib.maintainers.mornfall ];
platforms = stdenv.lib.platforms.all;
homepage = http://unkart.ovh.org/ncmpcpp/;
license = licenses.gpl2Plus;
maintainers = with maintainers; [ lovek323 mornfall ];
platforms = platforms.all;
};
}

@ -5,7 +5,7 @@ stdenv.mkDerivation rec {
version = "0.7.7";
src = fetchurl {
url = "http://savannah.nongnu.org/download/normalize/normalize-0.7.7.tar.gz";
url = "mirror://savannah/normalize/normalize-0.7.7.tar.gz";
sha256 = "1n5khss10vjjp6w69q9qcl4kqfkd0pr555lgqghrchn6rjms4mb0";
};

@ -1,18 +1,18 @@
{ fetchurl, stdenv, pkgconfig, pulseaudio, gtkmm, libsigcxx
, libglademm, libcanberra, intltool, gettext }:
{ fetchurl, stdenv, pkgconfig, pulseaudio, gtkmm3
, libcanberra_gtk3, intltool, gettext }:
stdenv.mkDerivation rec {
name = "pavucontrol-1.0";
name = "pavucontrol-2.0";
src = fetchurl {
url = "http://freedesktop.org/software/pulseaudio/pavucontrol/${name}.tar.xz";
sha256 = "1plcyrc7p6gqxjhxx2xh6162bkb29wixjrqrjnl9b8g3nrjjigix";
sha256 = "02s775m1531sshwlbvfddk3pz8zjmwkv1sgzggn386ja3gc9vwi2";
};
buildInputs = [ pkgconfig pulseaudio gtkmm libsigcxx libglademm libcanberra
buildInputs = [ pkgconfig pulseaudio gtkmm3 libcanberra_gtk3
intltool gettext ];
configureFlags = "--disable-lynx --disable-gtk3";
configureFlags = "--disable-lynx";
meta = {
description = "PulseAudio Volume Control";
@ -23,11 +23,11 @@ stdenv.mkDerivation rec {
easily control the volume of all clients, sinks, etc.
'';
homepage = http://0pointer.de/lennart/projects/pavucontrol/;
homepage = http://freedesktop.org/software/pulseaudio/pavucontrol/ ;
license = "GPLv2+";
maintainers = [ stdenv.lib.maintainers.ludo ];
maintainers = [ ];
platforms = stdenv.lib.platforms.gnu; # arbitrary choice
};
}

@ -1,16 +1,24 @@
{ stdenv, fetchurl, pythonPackages, gettext, pyqt4
, pkgconfig, libdiscid, libofa, ffmpeg }:
, pkgconfig, libdiscid, libofa, ffmpeg, acoustidFingerprinter
}:
pythonPackages.buildPythonPackage rec {
name = "picard-${version}";
namePrefix = "";
version = "1.1";
version = "1.2";
src = fetchurl {
url = "http://ftp.musicbrainz.org/pub/musicbrainz/picard/${name}.tar.gz";
md5 = "57abb76632a423760f336ac11da5c149";
md5 = "d1086687b7f7b0d359a731b1a25e7b66";
};
postPatch = let
fpr = "${acoustidFingerprinter}/bin/acoustid_fpcalc";
in ''
sed -ri -e 's|(TextOption.*"acoustid_fpcalc"[^"]*")[^"]*|\1${fpr}|' \
picard/ui/options/fingerprinting.py
'';
buildInputs = [
pkgconfig
ffmpeg

@ -0,0 +1,67 @@
{ stdenv, fetchurl, python, buildPythonPackage, mutagen, pygtk, pygobject
, pythonDBus, gst_python, gst_plugins_base, gst_plugins_good, gst_plugins_ugly }:
let version = "2.5"; in
buildPythonPackage {
# call the package quodlibet and just quodlibet
name = "quodlibet-${version}";
namePrefix = "";
# XXX, tests fail
doCheck = false;
src = [
(fetchurl {
url = "https://quodlibet.googlecode.com/files/quodlibet-${version}.tar.gz";
sha256 = "0qrmlz7m1jpmriy8bgycjiwzbf3annznkn4x5k32yy9bylxa7lwb";
})
(fetchurl {
url = "https://quodlibet.googlecode.com/files/quodlibet-plugins-${version}.tar.gz";
sha256 = "0kf2mkq2zk38626bn48gscvy6ir04f5b2z57ahlxlqy8imv2cjff";
})
];
sourceRoot = "quodlibet-${version}";
postUnpack = ''
# the patch searches for plugins in directory ../plugins
# so link the appropriate directory there
ln -sf quodlibet-plugins-${version} plugins
'';
patches = [ ./quodlibet-package-plugins.patch ];
buildInputs = [
gst_plugins_base gst_plugins_good gst_plugins_ugly
];
propagatedBuildInputs = [
mutagen pygtk pygobject pythonDBus gst_python
];
postInstall = ''
# Wrap quodlibet so it finds the GStreamer plug-ins
wrapProgram "$out/bin/quodlibet" --prefix \
GST_PLUGIN_PATH ":" \
"${gst_plugins_base}/lib/gstreamer-0.10:${gst_plugins_good}/lib/gstreamer-0.10:${gst_plugins_ugly}/lib/gstreamer-0.10"
'';
meta = {
description = "Quod Libet is a GTK+-based audio player written in Python, using the Mutagen tagging library.";
longDescription = ''
Quod Libet is a GTK+-based audio player written in Python, using
the Mutagen tagging library. It's designed around the idea that
you know how to organize your music better than we do. It lets
you make playlists based on regular expressions (don't worry,
regular searches work too). It lets you display and edit any
tags you want in the file. And it lets you do this for all the
file formats it supports. Quod Libet easily scales to libraries
of thousands (or even tens of thousands) of songs. It also
supports most of the features you expect from a modern media
player, like Unicode support, tag editing, Replay Gain, podcasts
& internet radio, and all major audio formats.
'';
homepage = http://code.google.com/p/quodlibet/;
};
}

@ -0,0 +1,18 @@
diff -Naur quodlibet-2.5.orig/setup.py quodlibet-2.5.new/setup.py
--- quodlibet-2.5.orig/setup.py 2012-12-19 08:47:41.000000000 +0000
+++ quodlibet-2.5.new/setup.py 2013-04-22 19:27:07.152631051 +0000
@@ -337,5 +338,14 @@
}
}
})
+ else:
+ from os.path import join
+
+ data_files = []
+ for type in ["playorder", "songsmenu", "editing", "events", "gstreamer"]:
+ data_files.append((join('quodlibet', 'plugins', type),
+ glob.glob(join('..', 'plugins', type, '*.py'))))
+ setup_kwargs.update({ 'data_files': data_files });
+
setup(**setup_kwargs)

@ -27,7 +27,7 @@ let
in
rec {
src = fetchurl {
url = "http://downloads.sourceforge.net/snd/snd-${version}.tar.gz";
url = "mirror://sourceforge/snd/snd-${version}.tar.gz";
sha256 = "0zqgfnkvkqxby1k74mwba1r4pb520glcsz5jjmpzm9m41nqnghmm";
};

@ -1,4 +1,4 @@
{ fetchurl, stdenv, dpkg, xlibs, qt4, alsaLib, makeWrapper, openssl, freetype, glib, pango, cairo, atk, gdk_pixbuf, gtk, cups, nspr, nss, libpng12, GConf, libgcrypt, chromium, sqlite, gst_plugins_base, gstreamer }:
{ fetchurl, stdenv, dpkg, xlibs, qt4, alsaLib, makeWrapper, openssl, freetype, glib, pango, cairo, atk, gdk_pixbuf, gtk, cups, nspr, nss, libpng, GConf, libgcrypt, chromium, sqlite, gst_plugins_base, gstreamer }:
assert stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux";
@ -73,7 +73,7 @@ stdenv.mkDerivation {
mkdir -p $out/libexec/spotify
gcc -shared ${./preload.c} -o $preload -ldl -DOUT=\"$out\" -fPIC
wrapProgram $out/bin/spotify --set LD_PRELOAD $preload --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ GConf libpng12 cups libgcrypt sqlite gst_plugins_base gstreamer]}:$out/lib"
wrapProgram $out/bin/spotify --set LD_PRELOAD $preload --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ GConf libpng cups libgcrypt sqlite gst_plugins_base gstreamer]}:$out/lib"
''; # */
dontStrip = true;

@ -1,23 +1,43 @@
{ stdenv, fetchurl, lightdm, pkgconfig, gtk3, intltool }:
{ stdenv, fetchurl, lightdm, pkgconfig, intltool
, hicolor_icon_theme, makeWrapper
, useGTK2 ? false, gtk2, gtk3 # gtk3 seems better supported
}:
stdenv.mkDerivation {
name = "lightdm-gtk-greeter";
#ToDo: bad icons with gtk2;
# avatar icon is missing in standard hicolor theme, I don't know where gtk3 takes it from
#ToDo: Failed to open sessions directory: Error opening directory '${lightdm}/share/lightdm/remote-sessions': No such file or directory
let
ver_branch = "1.6";
version = "1.5.1"; # 1.5.2 and 1.6.0 result into infinite cycling of X in restarts
in
stdenv.mkDerivation rec {
name = "lightdm-gtk-greeter-${version}";
src = fetchurl {
url = "https://launchpad.net/lightdm-gtk-greeter/1.6/1.5.1/+download/lightdm-gtk-greeter-1.5.1.tar.gz";
sha256 = "ecce7e917a79fa8f2126c3fafb6337f81f2198892159a4ef695016afecd2d621";
url = "${meta.homepage}/${ver_branch}/${version}/+download/${name}.tar.gz";
sha256 = "08fnsbnay5jhd7ps8n91i6c227zq6xizpyn34qhqzykrga8pxkpc";
};
buildInputs = [ pkgconfig gtk3 lightdm intltool ];
patches =
[ ./lightdm-gtk-greeter.patch
];
patches = [ ./lightdm-gtk-greeter.patch ];
patchFlags = "-p0";
buildInputs = [ pkgconfig lightdm intltool ]
++ (if useGTK2 then [ gtk2 makeWrapper ] else [ gtk3 ]);
configureFlags = stdenv.lib.optional useGTK2 "--with-gtk2";
postInstall = ''
substituteInPlace "$out/share/xgreeters/lightdm-gtk-greeter.desktop" \
--replace "Exec=lightdm-gtk-greeter" "Exec=$out/sbin/lightdm-gtk-greeter"
'' + stdenv.lib.optionalString useGTK2 ''
wrapProgram "$out/sbin/lightdm-gtk-greeter" \
--prefix XDG_DATA_DIRS ":" "${hicolor_icon_theme}/share"
'';
meta = {
homepage = http://launchpad.net/lightdm-gtk-greeter;
platforms = stdenv.lib.platforms.linux;
};
}

@ -1,25 +1,31 @@
{ stdenv, fetchurl, pam, pkgconfig, libxcb, glib, libXdmcp, itstool, libxml2, intltool, x11, libxklavier, libgcrypt, makeWrapper }:
{ stdenv, fetchurl, pam, pkgconfig, libxcb, glib, libXdmcp, itstool, libxml2
, intltool, x11, libxklavier, libgcrypt, dbus/*for tests*/ }:
stdenv.mkDerivation {
name = "lightdm-1.5.1";
let
ver_branch = "1.8";
version = "1.7.0";
in
stdenv.mkDerivation rec {
name = "lightdm-${version}";
src = fetchurl {
url = https://launchpad.net/lightdm/1.6/1.5.1/+download/lightdm-1.5.1.tar.xz;
sha256 = "645db2d763cc514d6aecb1838f4a9c33c3dcf0c94567a7ef36c6b23d8aa56c86";
url = "${meta.homepage}/${ver_branch}/${version}/+download/${name}.tar.xz";
sha256 = "0nwwjgc9xvwili6714ag88wsrf0lr5hv1i6z9f0xvin4ym18cbs5";
};
buildInputs = [ pkgconfig pam libxcb glib libXdmcp itstool libxml2 intltool libxklavier libgcrypt makeWrapper ];
configureFlags = [ "--enable-liblightdm-gobject" ];
patches =
[ ./lightdm.patch
];
patches = [ ./lightdm.patch ];
patchFlags = "-p0";
buildInputs = [
pkgconfig pam libxcb glib libXdmcp itstool libxml2 intltool libxklavier libgcrypt
] ++ stdenv.lib.optional doCheck dbus.daemon;
configureFlags = [ "--enable-liblightdm-gobject" "--localstatedir=/var" ];
doCheck = false; # some tests fail, don't know why
meta = {
homepage = http://launchpad.net/lightdm;
platforms = stdenv.lib.platforms.linux;
};
}
}

@ -1,4 +1,4 @@
{ stdenv, fetchurl, cmake, pkgconfig, x11, libjpeg, libpng12, libXmu
{ stdenv, fetchurl, cmake, pkgconfig, x11, libjpeg, libpng, libXmu
, fontconfig, freetype, pam, dbus_libs }:
stdenv.mkDerivation rec {
@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
];
buildInputs =
[ cmake pkgconfig x11 libjpeg libpng12 libXmu fontconfig freetype
[ cmake pkgconfig x11 libjpeg libpng libXmu fontconfig freetype
pam dbus_libs
];

@ -4,7 +4,7 @@ stdenv.mkDerivation {
name = "bvi-1.3.2";
src = fetchurl {
url = http://prdownloads.sourceforge.net/bvi/bvi-1.3.2.src.tar.gz;
url = mirror://sourceforge/bvi/bvi-1.3.2.src.tar.gz;
sha256 = "110wxqnyianqamxq4y53drqqxb9vp4k2fcvic45qggvlqkqhlfgz";
};

@ -0,0 +1,32 @@
{ stdenv, fetchurl, ncurses }:
stdenv.mkDerivation rec {
name = "dhex-${version}";
version = "0.68";
src = fetchurl {
url = "http://www.dettus.net/dhex/dhex_${version}.tar.gz";
sha256 = "126c34745b48a07448cfe36fe5913d37ec562ad72d3f732b99bd40f761f4da08";
};
buildInputs = [ ncurses ];
installPhase = ''
ensureDir $out/bin
ensureDir $out/share/man/man1
ensureDir $out/share/man/man5
cp dhex $out/bin
cp dhex.1 $out/share/man/man1
cp dhexrc.5 $out/share/man/man5
cp dhex_markers.5 $out/share/man/man5
cp dhex_searchlog.5 $out/share/man/man5
'';
meta = {
description = "A themeable hex editor with diff mode";
homepage = http://www.dettus.net/dhex/;
license = stdenv.lib.licenses.gpl2;
maintainers = with stdenv.lib.maintainers; [qknight];
};
}

@ -41,6 +41,6 @@ stdenv.mkDerivation rec {
homepage = http://www.gnu.org/software/ed/;
maintainers = [ stdenv.lib.maintainers.ludo ];
maintainers = [ ];
};
}

@ -66,7 +66,7 @@ EOF
homepage = http://www.gnu.org/software/emacs/;
license = "GPLv3+";
maintainers = with stdenv.lib.maintainers; [ ludo simons chaoflow ];
maintainers = with stdenv.lib.maintainers; [ simons chaoflow ];
platforms = stdenv.lib.platforms.all;
};
}

@ -26,8 +26,10 @@ stdenv.mkDerivation rec {
++ stdenv.lib.optional stdenv.isLinux dbus;
configureFlags =
stdenv.lib.optionals (gtk != null) [ "--with-x-toolkit=gtk" "--with-xft"]
(if gtk != null then
[ "--with-x-toolkit=gtk" "--with-xft"]
else
[ "--with-x-toolkit=no" ])
# On NixOS, help Emacs find `crt*.o'.
++ stdenv.lib.optional (stdenv ? glibc)
[ "--with-crt-dir=${stdenv.glibc}/lib" ];
@ -44,7 +46,7 @@ EOF
doCheck = true;
meta = {
meta = with stdenv.lib; {
description = "GNU Emacs 24, the extensible, customizable text editor";
longDescription = ''
@ -67,7 +69,7 @@ EOF
homepage = "http://www.gnu.org/software/emacs/";
license = "GPLv3+";
maintainers = with stdenv.lib.maintainers; [ ludo simons chaoflow ];
platforms = stdenv.lib.platforms.all;
maintainers = with maintainers; [ chaoflow lovek323 simons ];
platforms = platforms.all;
};
}

@ -4,6 +4,7 @@ stdenv.mkDerivation {
name = "bbdb-2.35";
src = fetchurl {
# not using mirror:// because it produces a different file
url = http://bbdb.sourceforge.net/bbdb-2.35.tar.gz;
sha256 = "3fb1316e2ed74d47ca61187fada550e58797467bd9e8ad67343ed16da769f916";
};

@ -4,7 +4,7 @@ stdenv.mkDerivation rec {
name = "color-theme-6.6.0";
src = fetchurl {
url = "http://download.savannah.gnu.org/releases/color-theme/${name}.tar.gz";
url = "mirror://savannah/color-theme/${name}.tar.gz";
sha256 = "0yx1ghcjc66s1rl0v3d4r1k88ifw591hf814ly3d73acvh15zlsn";
};

@ -43,6 +43,6 @@ stdenv.mkDerivation rec {
homepage = http://ecb.sourceforge.net/;
maintainers = [ stdenv.lib.maintainers.ludo ];
maintainers = [ ];
};
}

@ -56,6 +56,6 @@ stdenv.mkDerivation rec {
homepage = http://emacs-w3m.namazu.org/;
maintainers = [ stdenv.lib.maintainers.ludo ];
maintainers = [ ];
};
}

@ -1,15 +1,14 @@
{ stdenv, fetchurl, emacs }:
{ stdenv, fetchurl, emacs, texinfo }:
stdenv.mkDerivation rec {
name = "haskell-mode-2.9.1-102-g8d4b965";
name = "haskell-mode-13.07";
src = fetchurl {
url = "https://github.com/haskell/haskell-mode/tarball/8d4b9651a69b62fcbedbac63de29a1e87ff0e97f";
sha256 = "02sil43885xjbfqakrxkm7bjnjd930lx6845fc2rxmkq5plkq85a";
name = "${name}.tar.gz";
url = "https://github.com/haskell/haskell-mode/archive/v13.07.tar.gz";
sha256 = "15c8ncj9mykkrizy1a8l94gq37s8hj13v3p5rgyaj9z0cwgl85kx";
};
buildInputs = [emacs];
buildInputs = [ emacs texinfo ];
installPhase = ''
mkdir -p "$out/share/emacs/site-lisp"

@ -91,7 +91,7 @@ in
license = "GPLv2+";
maintainers = [ stdenv.lib.maintainers.ludo ];
maintainers = [ ];
platforms = stdenv.lib.platforms.gnu; # arbitrary choice
};
}

@ -40,6 +40,6 @@ stdenv.mkDerivation rec {
'';
platforms = stdenv.lib.platforms.all;
maintainers = with stdenv.lib.maintainers; [ simons ludo ];
maintainers = with stdenv.lib.maintainers; [ simons ];
};
}

@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
license = "GPLv3+";
maintainers = with stdenv.lib.maintainers; [ ludo chaoflow ];
maintainers = with stdenv.lib.maintainers; [ chaoflow ];
platforms = stdenv.lib.platforms.gnu;
};
}

@ -4,7 +4,7 @@ stdenv.mkDerivation rec {
name = "php-mode-1.5.0";
src = fetchurl {
url = "http://downloads.sourceforge.net/php-mode/${name}.tar.gz";
url = "mirror://sourceforge/php-mode/${name}.tar.gz";
sha256 = "1bffgg4rpiggxqc1hvjcby24sfyzj5728zg7r6f4v6a126a7kcfq";
};

@ -27,6 +27,6 @@ stdenv.mkDerivation {
description = "Enhanced Emacs support for editing and running Scheme code";
homepage = http://www.neilvandyke.org/quack/;
license = "GPLv2+";
maintainers = [ stdenv.lib.maintainers.ludo ];
maintainers = [ ];
};
}

@ -25,6 +25,6 @@ stdenv.mkDerivation rec {
# non-copyleft, BSD-style
license = "permissive";
maintainers = [ stdenv.lib.maintainers.ludo ];
maintainers = [ ];
};
}

@ -4,8 +4,7 @@ stdenv.mkDerivation rec {
name = "session-management-for-emacs-2.2a";
src = fetchurl {
url = "http://downloads.sourceforge.net/project/emacs-session/session/2.2a/session-2.2a.tar.gz";
# url = "mirror://sourceforge.net/sourceforge/emacs-session/session-2.2a.tar.gz";
url = "mirror://sourceforge/emacs-session/session-2.2a.tar.gz";
sha256 = "37dfba7420b5164eab90dafa9e8bf9a2c8f76505fe2fefa14a64e81fa76d0144";
};

@ -0,0 +1,20 @@
{stdenv, fetchurl, fltk13, ghostscript}:
stdenv.mkDerivation {
name = "flpsed-0.7.0";
src = fetchurl {
url = "http://www.ecademix.com/JohannesHofmann/flpsed-0.7.0.tar.gz";
sha1 = "7966fd3b6fb3aa2a376386533ed4421ebb66ad62";
};
buildInputs = [ fltk13 ghostscript ];
meta = {
description = "A WYSIWYG PostScript annotator.";
homepage = "http://http://flpsed.org/flpsed.html";
license = "GPLv3";
platforms = stdenv.lib.platforms.all;
};
}

@ -1,11 +1,11 @@
{stdenv, fetchurl, kdelibs, cmake, gettext }:
stdenv.mkDerivation rec {
name = "kile-2.1.2";
name = "kile-2.1.3";
src = fetchurl {
url = "mirror://sourceforge/kile/${name}.tar.bz2";
sha256 = "0nx5fmjrxrndnzvknxnybd8qh15jzfxzbny2rljq3amjw02y9lc2";
sha256 = "18nfi37s46v9xav7vyki3phasddgcy4m7nywzxis198vr97yqqx0";
};
nativeBuildInputs = [ cmake gettext ];

@ -0,0 +1,35 @@
--- configure.old 2013-07-30 19:42:51.000000000 +0200
+++ configure 2013-07-30 19:47:26.000000000 +0200
@@ -163,31 +163,7 @@
echo 'Fails.'
fi
-
-if [ ! -r /usr/include/term.h ]; then
- note 'term.h'
- if [ -r /usr/include/ncurses/term.h ]; then
- echo "Found in /usr/include/ncurses"
- extraflags="$extraflags -I/usr/include/ncurses"
- else
- for i in pkg local; do
- if [ -r /usr/$i/include/term.h ]; then
- echo "Found in /usr/$i/include"
- extralibs="$extralibs -L/usr/$i/lib"
- extraflags="$extraflags -I/usr/$i/include"
- break
- else
- false
- fi
- done ||
- {
- echo 'Not found!' >&2
- echo 'Do you have the ncurses devel package installed?' >&2
- echo 'If you know where term.h is, please email the author!' >&2
- exit 1
- }
- fi
-fi
+extraflags="$extraflags $NIX_CFLAGS_COMPILE"
note 'base and dirname'
if gcc_defines "__GLIBC__" || gcc_defines "__CYGWIN__" ; then

@ -0,0 +1,30 @@
{ fetchurl, stdenv, ncurses }:
stdenv.mkDerivation rec {
name = "mg-20110905";
src = fetchurl {
url = http://homepage.boetes.org/software/mg/mg-20110905.tar.gz;
sha256 = "0ac2c7wy5kkcflm7cmiqm5xhb5c4yfw3i33iln8civ1yd9z7vlqw";
};
dontAddPrefix = true;
patches = [ ./configure.patch ];
patchFlags = "-p0";
installPhase = ''
mkdir -p $out/bin
cp mg $out/bin
mkdir -p $out/share/man/man1
cp mg.1 $out/share/man/man1
'';
buildInputs = [ ncurses ];
meta = {
homepage = http://homepage.boetes.org/software/mg/;
description = "mg is Micro GNU/emacs, this is a portable version of the mg maintained by the OpenBSD team.";
license = "public domain";
platforms = stdenv.lib.platforms.all;
};
}

@ -0,0 +1,35 @@
{ pkgs, fetchurl, tk, buildPythonPackage, pythonPackages }:
buildPythonPackage rec {
version = "0.9.2";
name = "nvpy-${version}";
src = fetchurl {
url = "https://github.com/cpbotha/nvpy/archive/v${version}.tar.gz";
sha256 = "78e41b80fc5549cba8cfd92b52d6530e8dfc8e8f37e96e4b219f30c266af811d";
};
buildInputs = [tk];
propagatedBuildInputs = [
pythonPackages.markdown
pythonPackages.tkinter
];
postInstall = ''
install -dm755 "$out/share/licenses/nvpy/"
install -m644 LICENSE.txt "$out/share/licenses/nvpy/LICENSE"
install -dm755 "$out/share/doc/nvpy/"
install -m644 README.rst "$out/share/doc/nvpy/README"
wrapProgram $out/bin/nvpy --set TK_LIBRARY "${tk}/lib/${tk.libPrefix}"
'';
meta = with pkgs.lib; {
description = "A simplenote-syncing note-taking tool inspired by Notational Velocity";
homepage = "https://github.com/cpbotha/nvpy";
platforms = platforms.linux;
license = licenses.bsd3;
};
}

@ -89,7 +89,7 @@ stdenv.mkDerivation rec {
'';
homepage = http://texmacs.org/;
license = "GPLv2+";
maintainers = [ stdenv.lib.maintainers.ludo stdenv.lib.maintainers.roconnor ];
maintainers = [ stdenv.lib.maintainers.roconnor ];
platforms = stdenv.lib.platforms.gnu; # arbitrary choice
};
}

@ -0,0 +1,24 @@
{ stdenv, fetchurl, qt }:
stdenv.mkDerivation rec {
name = "tiled-qt-0.9.1";
src = fetchurl {
url = "mirror://sourceforge/tiled/${name}.tar.gz";
sha256 = "09xm6ry56zsqbfl9fvlvc5kq9ikzdskm283r059q6rlc7crzhs38";
};
buildInputs = [ qt ];
preConfigure = "qmake -r PREFIX=$out";
meta = {
description = "A free, easy to use and flexible tile map editor";
homepage = "http://www.mapeditor.org/";
# libtiled and tmxviewer is licensed under 2-calause BSD license.
# The rest is GPL2 or later.
license = stdenv.lib.licenses.gpl2Plus;
platforms = stdenv.lib.platforms.linux;
maintainers = with stdenv.lib.maintainers; [ iyzsong ];
};
}

@ -1,6 +1,6 @@
# TODO tidy up eg The patchelf code is patching gvim even if you don't build it..
# but I have gvim with python support now :) - Marc
args@{source ? "latest", ...}: with args;
args@{source ? "default", ...}: with args;
let inherit (args.composableDerivation) composableDerivation edf; in
@ -11,7 +11,7 @@ composableDerivation {
else stdenv ).mkDerivation;
} (fix: {
name = "vim_configurable-7.3";
name = "vim_configurable-7.4";
enableParallelBuilding = true; # test this
@ -20,8 +20,8 @@ composableDerivation {
"default" =
# latest release
args.fetchurl {
url = ftp://ftp.vim.org/pub/vim/unix/vim-7.3.tar.bz2;
sha256 = "079201qk8g9yisrrb0dn52ch96z3lzw6z473dydw9fzi0xp5spaw";
url = ftp://ftp.vim.org/pub/vim/unix/vim-7.4.tar.bz2;
sha256 = "1pjaffap91l2rb9pjnlbrpvb3ay5yhhr3g91zabjvw1rqk9adxfh";
};
"vim-nox" =
{
@ -31,14 +31,7 @@ composableDerivation {
name = "vim-nox-hg-2082fc3";
# END
}.src;
"latest" = {
# vim latest usually is vim + bug fixes. So it should be very stable
# REGION AUTO UPDATE: { name="vim"; type="hg"; url="https://vim.googlecode.com/hg"; }
src = (fetchurl { url = "http://mawercer.de/~nix/repos/vim-hg-7f98896.tar.bz2"; sha256 = "efcb8cc5924b530631a8e5fc2a0622045c2892210d32d300add24aded51866f1"; });
name = "vim-hg-7f98896";
# END
}.src;
};
};
# if darwin support is enabled, we want to make sure we're not building with
# OS-installed python framework

@ -1,12 +1,14 @@
{ stdenv, fetchurl, ncurses, gettext, pkgconfig }:
stdenv.mkDerivation rec {
name = "vim-7.3";
name = "vim-7.4";
src = fetchurl {
url = "ftp://ftp.vim.org/pub/vim/unix/${name}.tar.bz2";
sha256 = "079201qk8g9yisrrb0dn52ch96z3lzw6z473dydw9fzi0xp5spaw";
sha256 = "1pjaffap91l2rb9pjnlbrpvb3ay5yhhr3g91zabjvw1rqk9adxfh";
};
enableParallelBuilding = true;
buildInputs = [ ncurses pkgconfig ];
nativeBuildInputs = [ gettext ];
@ -41,8 +43,10 @@ stdenv.mkDerivation rec {
sed -i -e 's/as_fn_error.*int32.*/:/' src/auto/configure
'';
meta = {
meta = with stdenv.lib; {
description = "The most popular clone of the VI editor";
homepage = http://www.vim.org;
homepage = http://www.vim.org;
maintainers = with maintainers; [ lovek323 ];
platforms = platforms.unix;
};
}

@ -47,6 +47,6 @@ stdenv.mkDerivation rec {
license = "GPLv3+";
maintainers = [ stdenv.lib.maintainers.ludo ];
maintainers = [ ];
};
}

@ -1,7 +1,7 @@
{stdenv, fetchurl, jre}:
stdenv.mkDerivation {
name = "alchemy-007-alpha";
name = "alchemy-007";
enableParallelBuilding = true;
src = fetchurl {

@ -8,12 +8,12 @@
assert stdenv ? glibc;
stdenv.mkDerivation rec {
version = "1.2";
version = "1.2.2";
name = "darktable-${version}";
src = fetchurl {
url = "mirror://sourceforge/darktable/darktable/1.2/darktable-${version}.tar.xz";
sha256 = "0l2lrly46nda7b2y4gskqqxaajia34g487bgjcpd5ysxbhmmhlnw";
sha256 = "0nf85wjhlisbgwkfkc1wb8y7dpnx3v8zk9g3ghbd51gi7s62x40j";
};
buildInputs =

@ -6,7 +6,7 @@ stdenv.mkDerivation {
name ="openexr_viewers-1.0.1";
src = fetchurl {
url = "http://download.savannah.nongnu.org/releases/openexr/openexr_viewers-1.0.1.tar.gz";
url = "mirror://savannah/openexr/openexr_viewers-1.0.1.tar.gz";
sha256 = "1w5qbcdp7sw48z1wk2v07f7p14vqqb1m2ncxyxnbkm9f4ab0ymg6";
};

@ -48,7 +48,7 @@ stdenv.mkDerivation rec {
homepage = http://geeqie.sourceforge.net;
maintainers = [ stdenv.lib.maintainers.ludo ];
maintainers = [ ];
platforms = stdenv.lib.platforms.gnu;
};
}

@ -1,21 +1,21 @@
{ stdenv, fetchurl, pkgconfig, intltool, babl, gegl, gtk, glib, gdk_pixbuf
, pango, cairo, freetype, fontconfig, lcms2, libpng, libjpeg, poppler, libtiff
, pango, cairo, freetype, fontconfig, lcms, libpng, libjpeg, poppler, libtiff
, webkit, libmng, librsvg, libwmf, zlib, libzip, ghostscript, aalib, jasper
, python, pygtk, libart_lgpl, libexif, gettext, xlibs }:
stdenv.mkDerivation rec {
name = "gimp-2.8.4";
name = "gimp-2.8.6";
src = fetchurl {
url = "ftp://ftp.gimp.org/pub/gimp/v2.8/${name}.tar.bz2";
md5 = "392592e8755d046317878d226145900f";
md5 = "12b3fdf33d1f07ae79b412a9e38b9693";
};
buildInputs =
buildInputs =
[ pkgconfig intltool babl gegl gtk glib gdk_pixbuf pango cairo
freetype fontconfig lcms2 libpng libjpeg poppler libtiff webkit
freetype fontconfig lcms libpng libjpeg poppler libtiff webkit
libmng librsvg libwmf zlib libzip ghostscript aalib jasper
python pygtk libart_lgpl libexif gettext
python pygtk libart_lgpl libexif gettext xlibs.libXpm
];
passthru = { inherit gtk; }; # probably its a good idea to use the same gtk in plugins ?

@ -1,19 +1,19 @@
{ stdenv, fetchurl, pkgconfig, gtk, freetype
, fontconfig, libart_lgpl, libtiff, libjpeg, libpng12, libexif, zlib, perl
, fontconfig, libart_lgpl, libtiff, libjpeg, libpng, libexif, zlib, perl
, perlXMLParser, python, pygtk, gettext, xlibs, intltool, babl_0_0_22, gegl_0_0_22
}:
stdenv.mkDerivation rec {
name = "gimp-2.6.12";
src = fetchurl {
url = "ftp://ftp.gtk.org/pub/gimp/v2.6/${name}.tar.bz2";
sha256 = "0qpcgaa4pdqqhyyy8vjvzfflxgsrrs25zk79gixzlnbzq3qwjlym";
};
buildInputs = [
pkgconfig gtk freetype fontconfig
libart_lgpl libtiff libjpeg libpng12 libexif zlib perl
libart_lgpl libtiff libjpeg libpng libexif zlib perl
perlXMLParser python pygtk gettext intltool babl_0_0_22 gegl_0_0_22
];

@ -107,7 +107,7 @@ rec {
name = "texturize-2.1";
buildInputs = [ gimp ] ++ gimp.nativeBuildInputs;
src = fetchurl {
url = http://prdownloads.sourceforge.net/gimp-texturize/texturize-2.1_src.tgz;
url = mirror://sourceforge/gimp-texturize/texturize-2.1_src.tgz;
sha256 = "0cdjq25g3yfxx6bzx6nid21kq659s1vl9id4wxyjs2dhcv229cg3";
};
installPhase = "installPlugins src/texturize";
@ -148,7 +148,7 @@ rec {
name = "gmic-1.3.2.0";
buildInputs = [ imagemagick pkgconfig gimp pkgs.fftwSinglePrec ] ++ gimp.nativeBuildInputs;
src = fetchurl {
url = http://dfn.dl.sourceforge.net/sourceforge/gmic/gmic_1.3.2.0.tar.gz;
url = mirror://sourceforge/gmic/gmic_1.3.2.0.tar.gz;
sha256 = "0mxq664vzzc2l6k6sqm9syp34mihhi262i6fixk1g12lmc28797h";
};
preConfigure = ''

@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
license = "GPLv3+";
maintainers = [ stdenv.lib.maintainers.ludo ];
maintainers = [ ];
platforms = stdenv.lib.platforms.gnu; # arbitrary choice
};
}

@ -4,7 +4,7 @@ stdenv.mkDerivation {
name = "pinta-1.4";
src = fetchurl {
url = "https://github.com/PintaProject/pinta/tarball/3f7ccfa93d";
url = "https://github.com/PintaProject/Pinta/tarball/3f7ccfa93d";
name = "pinta-1.4.tar.gz";
sha256 = "1kgb4gy5l6bd0akniwhiqqkvqayr5jgdsvn2pgg1038q9raafnpn";
};

@ -5,7 +5,7 @@ stdenv.mkDerivation rec {
name = "rapcad-${version}";
src = fetchgit {
url = "git://git.rapcad.org/rapcad";
url = "https://github.com/GilesBathgate/RapCAD.git";
rev = "refs/tags/v${version}";
sha256 = "37c7107dc4fcf8942a4ad35377c4e42e6aedfa35296e5fcf8d84882ae35087c7";
};

@ -5,12 +5,12 @@ in
assert hotplugSupport -> (stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux");
stdenv.mkDerivation {
name = "sane-backends-1.0.22.482-g071f226";
name = "sane-backends-1.0.23.296-gf139120";
src = fetchgit {
url = "http://git.debian.org/git/sane/sane-backends.git";
rev = "071f2269cd68d3411cbfa05a3d028b74496db970";
sha256 = "178xkv30m6irk4k0gqnfcl5kramm1qyj24dar8gp32428z1444xf";
rev = "f139120c72db6de98be95b52c206c2a4d8071e92";
sha256 = "1b2fv19c8ijh9l0jjilli3j70n17wvcgpqq1nxmiby3ai6nrzk8d";
};
udevSupport = hotplugSupport;
@ -34,7 +34,7 @@ stdenv.mkDerivation {
meta = {
homepage = "http://www.sane-project.org/";
description = "Scanner Access Now Easy";
license = "GPLv2+";
license = stdenv.lib.licenses.gpl2Plus;
maintainers = [ stdenv.lib.maintainers.simons ];
platforms = stdenv.lib.platforms.linux;

@ -4,7 +4,7 @@ libuuid }:
assert (stdenv ? glibc);
stdenv.mkDerivation {
name = "seg3d-1.12";
name = "seg3d-1.12_20090930";
src = fetchurl {
url = http://www.sci.utah.edu/releases/seg3d_v1.12/Seg3D_1.12_20090930_source.tgz;
sha256 = "1wr6rc6v5qjjkmws8yrc03z35h3iydxk1z28p06v1wdnca0y71z8";

@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
license = "GPLv2+";
maintainers = [ stdenv.lib.maintainers.ludo ];
maintainers = [ ];
platforms = stdenv.lib.platforms.gnu; # needs GTK+
};
}

@ -1,15 +1,15 @@
{ stdenv, fetchurl, python, pyqt4, sip, popplerQt4, pkgconfig, libpng
, imagemagick, libjpeg, fontconfig, podofo, qt4, icu, sqlite
, pil, makeWrapper, unrar, chmlib, pythonPackages, xz, udisks, libusb1, libmtp
, imagemagick, libjpeg, fontconfig, podofo, qt48, icu, sqlite
, pil, makeWrapper, unrar, chmlib, pythonPackages, xz, libusb1, libmtp
}:
stdenv.mkDerivation rec {
name = "calibre-0.8.70";
# 0.9.* versions won't build: https://bugs.launchpad.net/calibre/+bug/1094719
name = "calibre-0.9.11";
# 0.9.12+ versions won't build due to missing qt4 private headers: https://bugs.launchpad.net/calibre/+bug/1094719
src = fetchurl {
url = "mirror://sourceforge/calibre/${name}.tar.xz";
sha256 = "12avwp8r6cnrw6c32gmd2hksa9rszdb76zs6fcmr3n8r1wkwa71g";
sha256 = "0jjs2cx222pbv4nrivlxag5fxa0v9m63x7arcll6xi173zdn4gg8";
};
inherit python;
@ -18,10 +18,10 @@ stdenv.mkDerivation rec {
buildInputs =
[ python pyqt4 sip popplerQt4 libpng imagemagick libjpeg
fontconfig podofo qt4 pil chmlib icu
fontconfig podofo qt48 pil chmlib icu
pythonPackages.mechanize pythonPackages.lxml pythonPackages.dateutil
pythonPackages.cssutils pythonPackages.beautifulsoup
pythonPackages.sqlite3 sqlite udisks libusb1 libmtp
pythonPackages.cssutils pythonPackages.beautifulsoup pythonPackages.pillow
pythonPackages.sqlite3 pythonPackages.netifaces sqlite libusb1 libmtp
];
installPhase = ''
@ -46,11 +46,11 @@ stdenv.mkDerivation rec {
done
'';
meta = {
meta = with stdenv.lib; {
description = "Comprehensive e-book software";
homepage = http://calibre-ebook.com;
license = "GPLv3";
maintainers = with stdenv.lib.maintainers; [viric];
platforms = with stdenv.lib.platforms; linux;
license = licenses.gpl3;
maintainers = with maintainers; [ viric iElectric ];
platforms = platforms.linux;
};
}

@ -1,15 +1,18 @@
{ stdenv, fetchurl, coreutils , unzip, which, pkgconfig , dbus
{ stdenv, fetchgit, coreutils , unzip, which, pkgconfig , dbus
, freetype, xdg_utils , libXext, glib, pango , cairo, libX11, libnotify
, libxdg_basedir , libXScrnSaver, xproto, libXinerama , perl, gdk_pixbuf
}:
stdenv.mkDerivation rec {
version = "1.0.0";
name = "dunst-${version}";
rev = "6a3a855b48a3db64821d1cf8a91c5ee2815a2b2d";
name = "dunst-${rev}";
src = fetchurl {
url = "https://github.com/knopwob/dunst/archive/v${version}.zip";
sha256 = "1x6k6jrf219v8hmhqhnnfjycldvsnp7ag8a2y8adp5rhfmgyn671";
# 1.0.0 release doesn't include 100% CPU fix
# https://github.com/knopwob/dunst/issues/98
src = fetchgit {
inherit rev;
url = "https://github.com/knopwob/dunst.git";
sha256 = "0m7yki16d72xm9n2m2fjszd8phqpn5b95q894cz75pmd0sv1j6bj";
};
patchPhase = ''
@ -23,7 +26,7 @@ stdenv.mkDerivation rec {
libXScrnSaver xproto libXinerama perl];
buildPhase = ''
export VERSION=${version};
export VERSION=${rev};
export PREFIX=$out;
make dunst;
'';

@ -1,7 +1,7 @@
{ stdenv, fetchgit, autoconf, automake, pkgconfig, libxml2 }:
stdenv.mkDerivation rec {
name = "evtest-1.30";
name = "evtest-1.31";
preConfigure = "autoreconf -iv";
@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
src = fetchgit {
url = "git://anongit.freedesktop.org/evtest";
rev = "1a50f2479c4775e047f234a24d95dda82441bfbd";
rev = "871371806017301373b8b0e5b7e8f168ce1ea13f";
sha256 = "1hxldlldlrb9lnnybn839a97fpqd1cixbmci2wzgr0rzhjbwhcgp";
};
meta = with stdenv.lib; {

@ -1,19 +1,23 @@
{stdenv, fetchurl, flvstreamer, ffmpeg, makeWrapper, perl}:
stdenv.mkDerivation {
name = "get_iplayer-2.80";
{stdenv, fetchurl, flvstreamer, ffmpeg, makeWrapper, perl, buildPerlPackage, perlPackages, vlc, rtmpdump}:
buildPerlPackage {
name = "get_iplayer-2.83";
buildInputs = [makeWrapper perl];
propagatedBuildInputs = with perlPackages; [HTMLParser HTTPCookies LWP];
preConfigure = "touch Makefile.PL";
doCheck = false;
installPhase = ''
mkdir -p $out/bin
cp get_iplayer $out/bin
wrapProgram $out/bin/get_iplayer --suffix PATH ${ffmpeg}/bin:${flvstreamer}/bin
sed -i 's|^update_script|#update_script|' $out/bin/get_iplayer
wrapProgram $out/bin/get_iplayer --suffix PATH : ${ffmpeg}/bin:${flvstreamer}/bin:${vlc}/bin:${rtmpdump}/bin
'';
src = fetchurl {
url = ftp://ftp.infradead.org/pub/get_iplayer/get_iplayer-2.80.tar.gz;
sha256 = "1hnadryyzca3bv1hfk2q3np9ihwvyxa3prwcrply6ywy4vnayjf8";
url = ftp://ftp.infradead.org/pub/get_iplayer/get_iplayer-2.83.tar.gz;
sha256 = "169zji0rr3z5ng6r4cyzvs89779m4iklln9gsqpryvm81ipalfga";
};
}

@ -8,8 +8,8 @@ stdenv.mkDerivation rec {
name = "gmrun-${version}";
src = fetchurl {
url = "http://downloads.sourceforge.net/project/gmrun/gmrun/${version}/${name}.tar.gz";
md5 = "6cef37a968006d9496fc56a7099c603c";
url = "mirror://sourceforge/gmrun/${name}.tar.gz";
sha256 = "180z6hbax1qypy5cyy2z6nn7fzxla4ib47ck8mqwr714ag77na8p";
};
buildInputs = [ glib gtk2 pkgconfig popt ];

@ -31,7 +31,7 @@ stdenv.mkDerivation {
'';
license = "GPLv3+";
maintainers = [ stdenv.lib.maintainers.ludo ];
maintainers = [ ];
platforms = stdenv.lib.platforms.gnu; # arbitrary choice
};
}

@ -23,7 +23,7 @@ assert mercurialSupport -> (mercurial != null);
let
name = "ikiwiki";
version = "3.20130212";
version = "3.20130518";
lib = stdenv.lib;
in
@ -32,7 +32,7 @@ stdenv.mkDerivation {
src = fetchurl {
url = "http://ftp.de.debian.org/debian/pool/main/i/ikiwiki/${name}_${version}.tar.gz";
sha256 = "1svajjhrwaq7wwgmhaxc2ld12cla3pdi9i7m8ll2rfa11cdhhf6m";
sha256 = "00mmxxlbzv6bz3cz3746r5lqwby6liwsg7m3jfba8258y52w13qp";
};
buildInputs = [ perl TextMarkdown URI HTMLParser HTMLScrubber HTMLTemplate

@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
description = "WYSIWYM frontend for LaTeX, DocBook, etc.";
homepage = "http://www.lyx.org";
license = "GPL2";
maintainers = [ stdenv.lib.maintainers.neznalek ];
maintainers = [ stdenv.lib.maintainers.vcunat ];
platforms = stdenv.lib.platforms.linux;
};
}

@ -1,4 +1,5 @@
{ stdenv, fetchurl, pkgconfig, neon, libusb, openssl, udev, avahi, freeipmi }:
{ stdenv, fetchurl, pkgconfig, neon, libusb, openssl, udev, avahi, freeipmi
, libtool }:
stdenv.mkDerivation rec {
name = "nut-2.6.5";
@ -8,7 +9,7 @@ stdenv.mkDerivation rec {
sha256 = "0gxrzsblx0jc4g9w0903ybwqbv1d79vq5hnks403fvnay4fgg3b1";
};
buildInputs = [ neon libusb openssl udev avahi freeipmi ];
buildInputs = [ neon libusb openssl udev avahi freeipmi libtool ];
nativeBuildInputs = [ pkgconfig ];

@ -1,18 +1,25 @@
{ stdenv, fetchurl, postgresql, wxGTK, libxml2, libxslt, openssl }:
stdenv.mkDerivation rec {
name = "pgadmin3-1.10.0";
name = "pgadmin3-${version}";
version = "1.16.1";
src = fetchurl {
url = "http://ftp3.de.postgresql.org/pub/Mirrors/ftp.postgresql.org/pgadmin3/release/v1.10.0/src/pgadmin3-1.10.0.tar.gz";
sha256 = "1ndi951da3jw5800fjdgkbvl8n6k71x7x16ghihi1l88bilf2a16";
url = "http://ftp.postgresql.org/pub/pgadmin3/release/v${version}/src/pgadmin3-${version}.tar.gz";
sha256 = "13n2nyjnbmjbz9n0xp6627n3pavkqfp4n45l1mnqxhjdq8yj9fnl";
};
buildInputs = [ postgresql wxGTK libxml2 libxslt openssl ];
meta = {
preConfigure = ''
substituteInPlace pgadmin/ver_svn.sh --replace "bin/bash" "$shell"
'';
meta = with stdenv.lib; {
description = "PostgreSQL administration GUI tool";
homepage = http://www.pgadmin.org;
license = "GPL2";
license = licenses.gpl2;
maintainers = [ maintainers.iElectric ];
platforms = platforms.unix;
};
}

@ -1,25 +1,32 @@
{ stdenv, fetchurl, gdal, cmake, qt4, flex, bison, proj, geos, x11, sqlite, gsl,
pyqt4, qwt, fcgi, python }:
pyqt4, qwt, fcgi, python, libspatialindex, libspatialite }:
stdenv.mkDerivation rec {
name = "qgis-1.6.0";
name = "qgis-1.8.0";
buildInputs = [ gdal qt4 flex bison proj geos x11 sqlite gsl pyqt4 qwt
fcgi ];
fcgi libspatialindex libspatialite ];
nativeBuildInputs = [ cmake python];
nativeBuildInputs = [ cmake python ];
patches = [ ./r14988.diff ];
enableParallelBuilding = true;
# To handle the lack of 'local' RPATH; required, as they call one of
# their built binaries requiring their libs, in the build process.
preBuild = ''
export LD_LIBRARY_PATH=`pwd`/output/lib:$LD_LIBRARY_PATH
'';
src = fetchurl {
url = "http://qgis.org/downloads/${name}.tar.bz2";
sha256 = "0vlz1z3scj3k6nxf3hzfiq7k2773i6xvk6dvj4axs2f4njpnx7pr";
sha256 = "1aq32ch61bqsvh39lmrxah1fmh18cd3nqyi1l0sn6ssa3kwf82vh";
};
meta = {
description = "user friendly Open Source Geographic Information System";
homepage = ttp://www.qgis.org;
# you can choose one of the following licenses:
license = [ "GPL" ];
description = "User friendly Open Source Geographic Information System";
homepage = http://www.qgis.org;
license = "GPLv2+";
platforms = with stdenv.lib.platforms; linux;
maintainers = with stdenv.lib.maintainers; [viric];
};
}

@ -1,38 +0,0 @@
Index: qgis/python/core/conversions.sip
===================================================================
--- qgis/python/core/conversions.sip (revision 14323)
+++ qgis/python/core/conversions.sip (revision 14988)
@@ -16,4 +16,5 @@
%Feature QSETINT_CONVERSION
+%Feature QSETTYPE_CONVERSION
%ModuleHeaderCode
@@ -321,5 +322,5 @@
%End
-
+%If (QSETTYPE_CONVERSION)
template <TYPE>
%MappedType QSet<TYPE>
@@ -395,6 +396,5 @@
};
-
-
+%End
template<TYPE>
Index: qgis/python/CMakeLists.txt
===================================================================
--- qgis/python/CMakeLists.txt (revision 14330)
+++ qgis/python/CMakeLists.txt (revision 14988)
@@ -44,4 +44,8 @@
ENDIF(NOT PYQT4_VERSION_NUM LESS 263941)
+IF(NOT PYQT4_VERSION_NUM LESS 264194) # 0x040802
+ SET(SIP_DISABLE_FEATURES ${SIP_DISABLE_FEATURES} QSETTYPE_CONVERSION)
+ENDIF(NOT PYQT4_VERSION_NUM LESS 264194)
+
# core module
FILE(GLOB sip_files_core core/*.sip)

@ -4,11 +4,11 @@
stdenv.mkDerivation rec {
pname = "redshift";
version = "1.6";
version = "1.7";
name = "${pname}-${version}";
src = fetchurl {
url = "http://launchpad.net/${pname}/trunk/${version}/+download/${pname}-${version}.tar.bz2";
sha256 = "0g46zhqnx3y2fssmyjgaardzhjw1j29l1dbc2kmccw9wxqfla1wi";
sha256 = "1j0hs0vnlic90cf4bryn11n4ani1x2s5l8z6ll3fmrlw98ykrylv";
};
buildInputs = [ libX11 libXrandr libXxf86vm libxcb pkgconfig python

@ -1,11 +1,13 @@
{ stdenv, fetchurl, kdelibs, kdebase_workspace, gettext }:
let version = "0.11";
in
stdenv.mkDerivation rec {
name = "rsibreak-0.11";
name = "rsibreak-${version}";
src = fetchurl {
url = "${meta.homepage}/files/${name}.tar.bz2";
sha256 = "1yrf73r8mixskh8b531wb8dfs9z7rrw010xsrflhjhjmqh94h8mw";
url = "mirror://debian/pool/main/r/rsibreak/rsibreak_${version}.orig.tar.gz";
sha256 = "0g27aswh8iz5v67v1wkjny4p100vs2gm0lw0qzfkg6sw1pb4i519";
};
nativeBuildInputs = [ gettext ];
@ -13,8 +15,8 @@ stdenv.mkDerivation rec {
buildInputs = [ kdelibs kdebase_workspace ];
meta = {
homepage = http://www.rsibreak.org/;
description = "Repetitive Strain Injury prevention";
homepage = http://userbase.kde.org/RSIBreak; # http://www.rsibreak.org/ is down since 2011
description = "Utility to help prevent repetitive strain injury for KDE 4";
inherit (kdelibs.meta) platforms maintainers;
};
}

@ -4,7 +4,7 @@ stdenv.mkDerivation {
name = "rxvt-2.6.4";
src = fetchurl {
url = http://downloads.sourceforge.net/rxvt/rxvt-2.6.4.tar.gz;
url = mirror://sourceforge/rxvt/rxvt-2.6.4.tar.gz;
sha256 = "0hi29whjv8v11nkjbq1i6ms411v6csykghmlpkmayfjn9nxr02xg";
};

@ -1,5 +1,5 @@
{ stdenv, fetchurl, perlSupport, libX11, libXt, libXft, ncurses, perl,
fontconfig, freetype, pkgconfig, libXrender }:
fontconfig, freetype, pkgconfig, libXrender, gdkPixbufSupport, gdk_pixbuf }:
let
name = "rxvt-unicode";
@ -19,7 +19,8 @@ stdenv.mkDerivation (rec {
buildInputs =
[ libX11 libXt libXft ncurses /* required to build the terminfo file */
fontconfig freetype pkgconfig libXrender ]
++ stdenv.lib.optional perlSupport perl;
++ stdenv.lib.optional perlSupport perl
++ stdenv.lib.optional gdkPixbufSupport gdk_pixbuf;
preConfigure =
''

@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
sed -i 's/guint32 page_size/size_t page_size/' src/lib/lib.cpp
'';
NIX_CFLAGS_COMPILE = "-D__GNU_LIBRARY__";
NIX_CFLAGS_COMPILE = "-D__GNU_LIBRARY__"
+ stdenv.lib.optionalString stdenv.isDarwin " -lintl";
}

@ -0,0 +1,61 @@
{ stdenv, fetchgit, perl, makeWrapper, makeDesktopItem
# Perl modules:
, EncodeLocale, MathClipper, ExtUtilsXSpp, BoostGeometryUtils
, MathConvexHullMonotoneChain, MathGeometryVoronoi, MathPlanePath, Moo
, IOStringy, ClassXSAccessor, Wx, GrowlGNTP, NetDBus }:
stdenv.mkDerivation rec {
version = "0.9.10b";
name = "slic3r-${version}";
# Slic3r doesn't put out tarballs, only a git repository is available
src = fetchgit {
url = "git://github.com/alexrj/Slic3r";
rev = "refs/tags/${version}";
sha256 = "0j06h0z65qn4kyb2b7pnq6bcn4al60q227iz9jlrin0ffx3l0ra7";
};
buildInputs = [ perl makeWrapper
EncodeLocale MathClipper ExtUtilsXSpp BoostGeometryUtils
MathConvexHullMonotoneChain MathGeometryVoronoi MathPlanePath Moo
IOStringy ClassXSAccessor Wx GrowlGNTP NetDBus
];
desktopItem = makeDesktopItem {
name = "slic3r";
exec = "slic3r";
icon = "slic3r";
comment = "G-code generator for 3D printers";
desktopName = "Slic3r";
genericName = "3D printer tool";
categories = "Application;Development;";
};
# Nothing to do here
buildPhase = "true";
installPhase = ''
mkdir -p "$out/share/slic3r/"
cp -r * "$out/share/slic3r/"
wrapProgram "$out/share/slic3r/slic3r.pl" --prefix PERL5LIB : $PERL5LIB
mkdir -p "$out/bin"
ln -s "$out/share/slic3r/slic3r.pl" "$out/bin/slic3r"
mkdir -p "$out/share/pixmaps/"
ln -s "$out/share/slic3r/var/Slic3r.png" "$out/share/pixmaps/slic3r.png"
mkdir -p "$out/share/applications"
cp "$desktopItem"/share/applications/* "$out/share/applications/"
'';
meta = with stdenv.lib; {
description = "G-code generator for 3D printers";
longDescription = ''
Slic3r is the tool you need to convert a digital 3D model into printing
instructions for your 3D printer. It cuts the model into horizontal
slices (layers), generates toolpaths to fill them and calculates the
amount of material to be extruded.'';
homepage = http://slic3r.org/;
license = licenses.agpl3;
platforms = platforms.linux;
maintainers = [ maintainers.bjornfor ];
};
}

@ -1,13 +1,13 @@
{ fetchurl, stdenv, openssl, pcre }:
{ fetchgit, stdenv, openssl, pcre }:
stdenv.mkDerivation rec {
version = "0.21";
name = "vanitygen-${version}";
src = fetchurl {
name = "vanitygen-${version}.tar.gz";
url = "https://github.com/samr7/vanitygen/tarball/0.21";
sha256 = "1lj0gi08lg0pcby5pbpi08ysynzy24qa1n1065112shkpasi0kxv";
src = fetchgit {
url = "https://github.com/samr7/vanitygen";
rev = "refs/tags/${version}";
sha256 = "1vzfv74hhiyrrpvjca8paydx1ashgbgn5plzrx4swyzxy1xkamah";
};
buildInputs = [ openssl pcre ];

@ -1,48 +1,31 @@
x@{builderDefsPackage
, ncurses
, ...}:
builderDefsPackage
(a :
let
helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++
[];
{ pkgs, fetchurl, stdenv, ncurses, utillinux, file, libX11 }:
buildInputs = map (n: builtins.getAttr n x)
(builtins.attrNames (builtins.removeAttrs x helperArgNames));
sourceInfo = rec {
baseName="vifm";
version="0.6.3";
name="${baseName}-${version}";
url="mirror://sourceforge/project/${baseName}/${baseName}/${name}.tar.bz2";
hash="1v5kiifjk7iyqrzjd94wn6a5dz4j3krl06pbp1ps9g3zdq2w2skv";
};
in
rec {
src = a.fetchurl {
url = sourceInfo.url;
sha256 = sourceInfo.hash;
let
name = "vifm-${version}";
version = "0.7.5";
in stdenv.mkDerivation {
inherit name;
src = fetchurl {
url="mirror://sourceforge/project/vifm/vifm/${name}.tar.bz2";
sha256 ="1r1d92zrff94rfx011dw2qsgdwd2ksqlz15la74d6h7sfcsnyd01";
};
inherit (sourceInfo) name version;
inherit buildInputs;
#phaseNames = ["doConfigure" "doMakeInstall"];
buildInputs = [ utillinux ncurses file libX11 ];
/* doConfigure should be removed if not needed */
phaseNames = ["doConfigure" "doMakeInstall"];
meta = {
description = "A vi-like file manager";
maintainers = with a.lib.maintainers;
[
raskin
];
platforms = with a.lib.platforms;
linux;
license = a.lib.licenses.gpl2;
maintainers = with pkgs.lib.maintainers; [ raskin garbas ];
platforms = pkgs.lib.platforms.linux;
license = pkgs.lib.licenses.gpl2;
};
passthru = {
updateInfo = {
downloadPage = "http://vifm.sf.net";
};
};
}) x
}

@ -35,7 +35,7 @@ stdenv.mkDerivation {
homepage = http://wordnet.princeton.edu/;
maintainers = [ stdenv.lib.maintainers.ludo ];
maintainers = [ ];
platforms = stdenv.lib.platforms.gnu; # arbitrary choice
};
}

@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
name = "xfontsel-1.0.2";
src = fetchurl {
url = "http://www.x.org/releases/individual/app/${name}.tar.bz2";
url = "mirror://xorg/individual/app/${name}.tar.bz2";
sha256 = "1a86a08sf0wjrki9ydh7hr5qf6hrixc4ljlxizakjzmx20wvlrks";
};

@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
name = "xlsfonts-1.0.2";
src = fetchurl {
url = "http://www.x.org/releases/individual/app/${name}.tar.bz2";
url = "mirror://xorg/individual/app/${name}.tar.bz2";
sha256 = "070iym754g3mf9x6xczl4gdnpvlk6rdyl1ndwhpjl21vg2dm2vnc";
};

@ -1,5 +1,5 @@
{ cabal, filepath, libXrandr, mtl, parsec, regexCompat, stm, time
, utf8String, wirelesstools, X11, X11Xft
, utf8String, X11, X11Xft
}:
cabal.mkDerivation (self: {
@ -11,8 +11,8 @@ cabal.mkDerivation (self: {
buildDepends = [
filepath mtl parsec regexCompat stm time utf8String X11 X11Xft
];
extraLibraries = [ libXrandr wirelesstools ];
configureFlags = "-fwith_xft -fwith_iwlib";
extraLibraries = [ libXrandr ];
configureFlags = "-fwith_xft";
meta = {
homepage = "http://projects.haskell.org/xmobar/";
description = "A Minimalistic Text Based Status Bar";

@ -14,9 +14,9 @@ let
else if stdenv.system == "i686-linux" then "ld-linux.so.2"
else throw "Bittorrent Sync for: ${stdenv.system} not supported!";
version = "1.0.134";
sha256 = if stdenv.system == "x86_64-linux" then "1kyxiqjabqgsg7n0a8snh03axxzpniazp93shb2l1b6x0f7d24n7"
else if stdenv.system == "i686-linux" then "02wb8pqcb1rk108r49cqyg7s14grmjnkr6p3068pkiwdwwgi8jak"
version = "1.1.42";
sha256 = if stdenv.system == "x86_64-linux" then "07gcjzhhr8simkjjxhyzkvh3748ll81d742fz7j31nwdi34my8ri"
else if stdenv.system == "i686-linux" then "0awf5bfhb4dp4aydzrgdp3wqv1mz6ys1z45i0r1hbqszvf44xj7c"
else throw "Bittorrent Sync for: ${stdenv.system} not supported!";
in stdenv.mkDerivation {

@ -1,14 +0,0 @@
diff --git a/printing/printing.gyp b/printing/printing.gyp
index 19fa1b2..f11d76e 100644
--- a/printing/printing.gyp
+++ b/printing/printing.gyp
@@ -26,6 +26,9 @@
'include_dirs': [
'..',
],
+ 'cflags': [
+ '-Wno-deprecated-declarations',
+ ],
'sources': [
'backend/print_backend.cc',
'backend/print_backend.h',

@ -18,6 +18,9 @@
# optional dependencies
, libgcrypt ? null # gnomeSupport || cupsSupport
# dependency for version 30
, file
# package customization
, channel ? "stable"
, enableSELinux ? false, libselinux ? null
@ -87,7 +90,9 @@ let
# user namespace sandbox patch
userns_patch = if versionOlder sourceInfo.version "29.0.0.0"
then ./sandbox_userns.patch
else ./sandbox_userns_29.patch;
else if versionOlder sourceInfo.version "30.0.0.0"
then ./sandbox_userns_29.patch
else ./sandbox_userns_30.patch;
in stdenv.mkDerivation rec {
name = "${packageName}-${version}";
@ -115,20 +120,23 @@ in stdenv.mkDerivation rec {
++ optionals gnomeSupport [ gconf libgcrypt ]
++ optional enableSELinux libselinux
++ optional cupsSupport libgcrypt
++ optional pulseSupport pulseaudio;
++ optional pulseSupport pulseaudio
++ optional (!versionOlder sourceInfo.version "30.0.0.0") file;
opensslPatches = optional useOpenSSL openssl.patches;
prePatch = "patchShebangs .";
patches = [ userns_patch ]
++ optional cupsSupport ./cups_allow_deprecated.patch;
patches = [ userns_patch ];
postPatch = ''
sed -i -r -e 's/-f(stack-protector)(-all)?/-fno-\1/' build/common.gypi
sed -i -e 's|/usr/bin/gcc|gcc|' third_party/WebKit/Source/core/core.gypi
'' + optionalString useOpenSSL ''
cat $opensslPatches | patch -p1 -d third_party/openssl/openssl
'' + optionalString (versionOlder sourceInfo.version "29.0.0.0") ''
sed -i -e '/struct SECItemArray/,/^};/d' \
net/third_party/nss/ssl/bodge/secitem_array.c
'';
gypFlags = mkGypFlags (gypFlagsUseSystemLibs // {
@ -145,6 +153,15 @@ in stdenv.mkDerivation rec {
use_cups = cupsSupport;
linux_sandbox_path="${libExecPath}/${packageName}_sandbox";
linux_sandbox_chrome_path="${libExecPath}/${packageName}";
werror = "";
# Google API keys, see http://www.chromium.org/developers/how-tos/api-keys.
# Note: These are for NixOS/nixpkgs use ONLY. For your own distribution,
# please get your own set of keys.
google_api_key = "AIzaSyDGi15Zwl11UNe6Y-5XW_upsfyw31qwZPI";
google_default_client_id = "404761575300.apps.googleusercontent.com";
google_default_client_secret = "9rIFQjfnkykEmqb6FfjJQD1D";
} // optionalAttrs proprietaryCodecs {
# enable support for the H.264 codec
proprietary_codecs = true;
@ -198,7 +215,7 @@ in stdenv.mkDerivation rec {
'';
meta = {
description = "Chromium, an open source web browser";
description = "An open source web browser from Google";
homepage = http://www.chromium.org/;
maintainers = with maintainers; [ goibhniu chaoflow aszlig ];
license = licenses.bsd3;

@ -0,0 +1,287 @@
commit b9a1fa30eb3296b169f51ffa8ee05513c5c1dbae
Author: aszlig <aszlig@redmoonstudios.org>
Date: Thu May 16 14:17:56 2013 +0200
zygote: Add support for user namespaces on Linux.
The implementation is done by patching the Zygote host to execute the sandbox
binary with CLONE_NEWUSER and setting the uid and gid mapping so that the child
process is using uid 0 and gid 0 which map to the current user of the parent.
Afterwards, the sandbox will continue as if it was called as a setuid binary.
In addition, this adds new_user_namespace as an option in process_util in order
to set the UID and GID mapping correctly. The reason for this is that just
passing CLONE_NEWUSER to clone_flags doesn't help in LaunchProcess(), because
without setting the mappings exec*() will clear the process's capability sets.
If the kernel doesn't support unprivileged user namespaces and the sandbox
binary doesn't have the setuid flag, the Zygote main process will run without a
sandbox. This is to mimic the behaviour if no SUID sandbox binary path is set.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
diff --git a/base/process/launch.h b/base/process/launch.h
index 45b1053..ce71418 100644
--- a/base/process/launch.h
+++ b/base/process/launch.h
@@ -51,6 +51,7 @@ struct LaunchOptions {
new_process_group(false)
#if defined(OS_LINUX)
, clone_flags(0)
+ , new_user_namespace(false)
#endif // OS_LINUX
#if defined(OS_CHROMEOS)
, ctrl_terminal_fd(-1)
@@ -125,6 +126,9 @@ struct LaunchOptions {
#if defined(OS_LINUX)
// If non-zero, start the process using clone(), using flags as provided.
int clone_flags;
+
+ // If true, start the process in a new user namespace.
+ bool new_user_namespace;
#endif // defined(OS_LINUX)
#if defined(OS_CHROMEOS)
diff --git a/base/process/launch_posix.cc b/base/process/launch_posix.cc
index 336633c..4b50a5d 100644
--- a/base/process/launch_posix.cc
+++ b/base/process/launch_posix.cc
@@ -36,6 +36,13 @@
#include "base/threading/platform_thread.h"
#include "base/threading/thread_restrictions.h"
+#if defined(OS_LINUX)
+#include <sched.h>
+#if !defined(CLONE_NEWUSER)
+#define CLONE_NEWUSER 0x10000000
+#endif
+#endif
+
#if defined(OS_CHROMEOS)
#include <sys/ioctl.h>
#endif
@@ -395,8 +402,19 @@ bool LaunchProcess(const std::vector<std::string>& argv,
pid_t pid;
#if defined(OS_LINUX)
- if (options.clone_flags) {
- pid = syscall(__NR_clone, options.clone_flags, 0, 0, 0);
+ int map_pipe_fd[2];
+ int flags = options.clone_flags;
+
+ if (options.new_user_namespace) {
+ flags |= CLONE_NEWUSER;
+ if (pipe(map_pipe_fd) < 0) {
+ DPLOG(ERROR) << "user namespace pipe";
+ return false;
+ }
+ }
+
+ if (options.clone_flags || options.new_user_namespace) {
+ pid = syscall(__NR_clone, flags, 0, 0, 0);
} else
#endif
{
@@ -409,6 +427,21 @@ bool LaunchProcess(const std::vector<std::string>& argv,
} else if (pid == 0) {
// Child process
+#if defined(OS_LINUX)
+ if (options.new_user_namespace) {
+ // Close the write end of the pipe so we get an EOF when the parent closes
+ // the FD. This is to avoid race conditions when the UID/GID mappings are
+ // written _after_ execvp().
+ close(map_pipe_fd[1]);
+
+ char dummy;
+ if (HANDLE_EINTR(read(map_pipe_fd[0], &dummy, 1)) != 0) {
+ RAW_LOG(ERROR, "Unexpected input in uid/gid mapping pipe.");
+ _exit(127);
+ }
+ }
+#endif
+
// DANGER: fork() rule: in the child, if you don't end up doing exec*(),
// you call _exit() instead of exit(). This is because _exit() does not
// call any previously-registered (in the parent) exit handlers, which
@@ -523,6 +556,40 @@ bool LaunchProcess(const std::vector<std::string>& argv,
_exit(127);
} else {
// Parent process
+#if defined(OS_LINUX)
+ if (options.new_user_namespace) {
+ // We need to write UID/GID mapping here to map the current user outside
+ // the namespace to the root user inside the namespace in order to
+ // correctly "fool" the child process.
+ char buf[256];
+ int map_fd, map_len;
+
+ snprintf(buf, sizeof(buf), "/proc/%d/uid_map", pid);
+ map_fd = open(buf, O_RDWR);
+ DPCHECK(map_fd >= 0);
+ snprintf(buf, sizeof(buf), "0 %d 1", geteuid());
+ map_len = strlen(buf);
+ if (write(map_fd, buf, map_len) != map_len) {
+ RAW_LOG(WARNING, "Can't write to uid_map.");
+ }
+ close(map_fd);
+
+ snprintf(buf, sizeof(buf), "/proc/%d/gid_map", pid);
+ map_fd = open(buf, O_RDWR);
+ DPCHECK(map_fd >= 0);
+ snprintf(buf, sizeof(buf), "0 %d 1", getegid());
+ map_len = strlen(buf);
+ if (write(map_fd, buf, map_len) != map_len) {
+ RAW_LOG(WARNING, "Can't write to gid_map.");
+ }
+ close(map_fd);
+
+ // Close the pipe on the parent, so the child can continue doing the
+ // execvp() call.
+ close(map_pipe_fd[1]);
+ }
+#endif
+
if (options.wait) {
// While this isn't strictly disk IO, waiting for another process to
// finish is the sort of thing ThreadRestrictions is trying to prevent.
diff --git a/content/browser/zygote_host/zygote_host_impl_linux.cc b/content/browser/zygote_host/zygote_host_impl_linux.cc
index bb84e62..bce0d18 100644
--- a/content/browser/zygote_host/zygote_host_impl_linux.cc
+++ b/content/browser/zygote_host/zygote_host_impl_linux.cc
@@ -119,25 +119,31 @@ void ZygoteHostImpl::Init(const std::string& sandbox_cmd) {
sandbox_binary_ = sandbox_cmd.c_str();
- // A non empty sandbox_cmd means we want a SUID sandbox.
- using_suid_sandbox_ = !sandbox_cmd.empty();
+ bool userns_sandbox = false;
+ const std::vector<std::string> cmd_line_unwrapped(cmd_line.argv());
- if (using_suid_sandbox_) {
+ if (!sandbox_cmd.empty()) {
struct stat st;
if (stat(sandbox_binary_.c_str(), &st) != 0) {
LOG(FATAL) << "The SUID sandbox helper binary is missing: "
<< sandbox_binary_ << " Aborting now.";
}
- if (access(sandbox_binary_.c_str(), X_OK) == 0 &&
- (st.st_uid == 0) &&
- (st.st_mode & S_ISUID) &&
- (st.st_mode & S_IXOTH)) {
+ if (access(sandbox_binary_.c_str(), X_OK) == 0) {
+ using_suid_sandbox_ = true;
+
cmd_line.PrependWrapper(sandbox_binary_);
scoped_ptr<sandbox::SetuidSandboxClient>
sandbox_client(sandbox::SetuidSandboxClient::Create());
sandbox_client->SetupLaunchEnvironment();
+
+ if (!((st.st_uid == 0) &&
+ (st.st_mode & S_ISUID) &&
+ (st.st_mode & S_IXOTH))) {
+ userns_sandbox = true;
+ sandbox_client->SetNoSuid();
+ }
} else {
LOG(FATAL) << "The SUID sandbox helper binary was found, but is not "
"configured correctly. Rather than run without sandboxing "
@@ -161,7 +167,19 @@ void ZygoteHostImpl::Init(const std::string& sandbox_cmd) {
base::ProcessHandle process = -1;
base::LaunchOptions options;
options.fds_to_remap = &fds_to_map;
+ if (userns_sandbox)
+ options.new_user_namespace = true;
base::LaunchProcess(cmd_line.argv(), options, &process);
+
+ if (process == -1 && userns_sandbox) {
+ LOG(ERROR) << "User namespace sandbox failed to start, running without "
+ << "sandbox! You need at least kernel 3.8.0 with CONFIG_USER_NS "
+ << "enabled in order to use the sandbox without setuid bit.";
+ using_suid_sandbox_ = false;
+ options.new_user_namespace = false;
+ base::LaunchProcess(cmd_line_unwrapped, options, &process);
+ }
+
CHECK(process != -1) << "Failed to launch zygote process";
if (using_suid_sandbox_) {
diff --git a/content/zygote/zygote_main_linux.cc b/content/zygote/zygote_main_linux.cc
index dcea4c0..c06b4ae 100644
--- a/content/zygote/zygote_main_linux.cc
+++ b/content/zygote/zygote_main_linux.cc
@@ -398,6 +398,13 @@ static bool EnterSandbox(sandbox::SetuidSandboxClient* setuid_sandbox,
*has_started_new_init = true;
}
+ // Don't set non-dumpable, as it causes trouble when the host tries to find
+ // the zygote process (XXX: Not quite sure why this happens with user
+ // namespaces). Fortunately, we also have the seccomp filter sandbox which
+ // should disallow the use of ptrace.
+ if (setuid_sandbox->IsNoSuid())
+ return true;
+
#if !defined(OS_OPENBSD)
// Previously, we required that the binary be non-readable. This causes the
// kernel to mark the process as non-dumpable at startup. The thinking was
diff --git a/sandbox/linux/suid/client/setuid_sandbox_client.cc b/sandbox/linux/suid/client/setuid_sandbox_client.cc
index 34231d4..36e3201 100644
--- a/sandbox/linux/suid/client/setuid_sandbox_client.cc
+++ b/sandbox/linux/suid/client/setuid_sandbox_client.cc
@@ -166,6 +166,10 @@ bool SetuidSandboxClient::IsInNewNETNamespace() const {
return env_->HasVar(kSandboxNETNSEnvironmentVarName);
}
+bool SetuidSandboxClient::IsNoSuid() const {
+ return env_->HasVar(kSandboxNoSuidVarName);
+}
+
bool SetuidSandboxClient::IsSandboxed() const {
return sandboxed_;
}
@@ -175,5 +179,9 @@ void SetuidSandboxClient::SetupLaunchEnvironment() {
SetSandboxAPIEnvironmentVariable(env_);
}
+void SetuidSandboxClient::SetNoSuid() {
+ env_->SetVar(kSandboxNoSuidVarName, "1");
+}
+
} // namespace sandbox
diff --git a/sandbox/linux/suid/client/setuid_sandbox_client.h b/sandbox/linux/suid/client/setuid_sandbox_client.h
index a9f6536..2e8113a 100644
--- a/sandbox/linux/suid/client/setuid_sandbox_client.h
+++ b/sandbox/linux/suid/client/setuid_sandbox_client.h
@@ -39,6 +39,8 @@ class SetuidSandboxClient {
bool IsInNewPIDNamespace() const;
// Did the setuid helper create a new network namespace ?
bool IsInNewNETNamespace() const;
+ // Is sandboxed without SUID binary ?
+ bool IsNoSuid() const;
// Are we done and fully sandboxed ?
bool IsSandboxed() const;
@@ -46,6 +48,8 @@ class SetuidSandboxClient {
// helper.
void SetupLaunchEnvironment();
+ void SetNoSuid();
+
private:
// Holds the environment. Will never be NULL.
base::Environment* env_;
diff --git a/sandbox/linux/suid/common/sandbox.h b/sandbox/linux/suid/common/sandbox.h
index aad4ff8..bd710d5 100644
--- a/sandbox/linux/suid/common/sandbox.h
+++ b/sandbox/linux/suid/common/sandbox.h
@@ -18,6 +18,7 @@ static const char kAdjustLowMemMarginSwitch[] = "--adjust-low-mem";
static const char kSandboxDescriptorEnvironmentVarName[] = "SBX_D";
static const char kSandboxHelperPidEnvironmentVarName[] = "SBX_HELPER_PID";
+static const char kSandboxNoSuidVarName[] = "SBX_NO_SUID";
static const long kSUIDSandboxApiNumber = 1;
static const char kSandboxEnvironmentApiRequest[] = "SBX_CHROME_API_RQ";

@ -1,18 +1,18 @@
# This file is autogenerated from update.sh in the same directory.
{
dev = {
version = "29.0.1541.2";
url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-29.0.1541.2.tar.xz";
sha256 = "0i3vp2zrk1sjdhkwdhig08jh0qmzahn96pm0i22r63cp8i9vny1p";
version = "30.0.1588.0";
url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-30.0.1588.0.tar.xz";
sha256 = "1jwc2pkd75gax8vj8wzahhpzl6ilgrlj3bcbah975yy67m7c8p13";
};
beta = {
version = "28.0.1500.52";
url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-28.0.1500.52.tar.xz";
sha256 = "1d0q8lsvwqkaninmnyc8jjj0pnqxc5rr3lr3mgzj37avksxvyg3v";
version = "29.0.1547.49";
url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-29.0.1547.49.tar.xz";
sha256 = "03r64rydi2kbxgi2dcpslmpb716ppadqy1jzrbw39icz5xpgmg3k";
};
stable = {
version = "28.0.1500.52";
url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-28.0.1500.52.tar.xz";
sha256 = "1d0q8lsvwqkaninmnyc8jjj0pnqxc5rr3lr3mgzj37avksxvyg3v";
version = "28.0.1500.95";
url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-28.0.1500.95.tar.xz";
sha256 = "0d6pj57nyx7wfgxws98f6ly749flcyv7zg5sc3w16ggdxf5qhf1w";
};
}

@ -1,15 +1,16 @@
{ stdenv, fetchurl, unzip, xulrunner, makeWrapper }:
{ stdenv, fetchgit, unzip, xulrunner, makeWrapper }:
stdenv.mkDerivation {
name = "conkeror-1.0pre-20130401";
src = fetchurl {
url = http://repo.or.cz/w/conkeror.git/snapshot/0341e791c78653a2f5bbbff9a1dac04bf898dd65.zip;
sha256 = "11v7p40lcz6r5z0w54f8pk6hyn9mqjcw44fqszjyz25rkhx951ry";
name = "conkeror-1.0pre-20130817-1";
src = fetchgit {
url = git://repo.or.cz/conkeror.git;
rev = "refs/tags/debian-1.0--pre+git130817-1";
sha256 = "aef3c782ac98c031e7b99852f42538e225e151cd226cde3094823a5cae015fcf";
};
buildInputs = [ unzip makeWrapper ];
installPhase = ''
mkdir -p $out/libexec/conkeror
cp -r * $out/libexec/conkeror

@ -1,175 +0,0 @@
{ stdenv, fetchurl, pkgconfig, gtk, pango, perl, python, zip, libIDL
, libjpeg, libpng, zlib, cairo, dbus, dbus_glib, bzip2, xlibs
, freetype, fontconfig, file, alsaLib, nspr, nss, libnotify
, yasm, mesa, sqlite, unzip, makeWrapper, pysqlite
, # If you want the resulting program to call itself "Firefox" instead
# of "Shiretoko" or whatever, enable this option. However, those
# binaries may not be distributed without permission from the
# Mozilla Foundation, see
# http://www.mozilla.org/foundation/trademarks/.
enableOfficialBranding ? false
}:
assert stdenv.gcc ? libc && stdenv.gcc.libc != null;
rec {
firefoxVersion = "20.0";
xulVersion = "20.0"; # this attribute is used by other packages
src = fetchurl {
urls = [
# It is better to use this url for official releases, to take load off Mozilla's ftp server.
"http://releases.mozilla.org/pub/mozilla.org/firefox/releases/${firefoxVersion}/source/firefox-${firefoxVersion}.source.tar.bz2"
# Fall back to this url for versions not available at releases.mozilla.org.
"ftp://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${firefoxVersion}/source/firefox-${firefoxVersion}.source.tar.bz2"
];
sha1 = "6d776c29da0be0d2a50abeb504d63b06b7861218";
};
commonConfigureFlags =
[ "--enable-optimize"
#"--enable-profiling"
"--disable-debug"
"--enable-strip"
"--with-system-jpeg" # now we use recent libjpeg-turbo
"--with-system-zlib"
"--with-system-bz2"
"--with-system-nspr"
"--with-system-nss"
# "--with-system-png" # <-- "--with-system-png won't work because the system's libpng doesn't have APNG support"
# "--enable-system-cairo" # <-- doesn't build
"--enable-system-sqlite"
"--disable-crashreporter"
"--disable-tests"
"--disable-necko-wifi" # maybe we want to enable this at some point
"--disable-installer"
"--disable-updater"
];
xulrunner = stdenv.mkDerivation rec {
name = "xulrunner-${xulVersion}";
inherit src;
buildInputs =
[ pkgconfig gtk perl zip libIDL libjpeg libpng zlib cairo bzip2
python dbus dbus_glib pango freetype fontconfig xlibs.libXi
xlibs.libX11 xlibs.libXrender xlibs.libXft xlibs.libXt file
alsaLib nspr nss libnotify xlibs.pixman yasm mesa
xlibs.libXScrnSaver xlibs.scrnsaverproto pysqlite
xlibs.libXext xlibs.xextproto sqlite unzip makeWrapper
];
configureFlags =
[ "--enable-application=xulrunner"
"--disable-javaxpcom"
] ++ commonConfigureFlags;
enableParallelBuilding = true;
preConfigure =
''
export NIX_LDFLAGS="$NIX_LDFLAGS -L$out/lib/xulrunner-${xulVersion}"
mkdir ../objdir
cd ../objdir
configureScript=../mozilla-release/configure
''; # */
#installFlags = "SKIP_GRE_REGISTRATION=1";
postInstall = ''
# Fix run-mozilla.sh search
libDir=$(cd $out/lib && ls -d xulrunner-[0-9]*)
echo libDir: $libDir
test -n "$libDir"
cd $out/bin
rm xulrunner
for i in $out/lib/$libDir/*; do
file $i;
if file $i | grep executable &>/dev/null; then
echo -e '#! /bin/sh\nexec "'"$i"'" "$@"' > "$out/bin/$(basename "$i")";
chmod a+x "$out/bin/$(basename "$i")";
fi;
done
for i in $out/lib/$libDir/*.so; do
patchelf --set-rpath "$(patchelf --print-rpath "$i"):$out/lib/$libDir" $i || true
done
for i in $out/lib/$libDir/{plugin-container,xulrunner,xulrunner-stub}; do
wrapProgram $i --prefix LD_LIBRARY_PATH ':' "$out/lib/$libDir"
done
rm -f $out/bin/run-mozilla.sh
''; # */
meta = {
description = "Mozilla Firefox XUL runner";
homepage = http://www.mozilla.com/en-US/firefox/;
};
passthru = { inherit gtk; version = xulVersion; };
};
firefox = stdenv.mkDerivation rec {
name = "firefox-${firefoxVersion}";
inherit src;
enableParallelBuilding = true;
buildInputs =
[ pkgconfig gtk perl zip libIDL libjpeg zlib cairo bzip2 python
dbus dbus_glib pango freetype fontconfig alsaLib nspr nss libnotify
xlibs.pixman yasm mesa sqlite file unzip pysqlite
];
propagatedBuildInputs = [xulrunner];
configureFlags =
[ "--enable-application=browser"
"--with-libxul-sdk=${xulrunner}/lib/xulrunner-devel-${xulrunner.version}"
"--enable-chrome-format=jar"
]
++ commonConfigureFlags
++ stdenv.lib.optional enableOfficialBranding "--enable-official-branding";
makeFlags = [
"SYSTEM_LIBXUL=1"
];
# Hack to work around make's idea of -lbz2 dependency
preConfigure =
''
find . -name Makefile.in -execdir sed -i '{}' -e '1ivpath %.so ${
stdenv.lib.concatStringsSep ":"
(map (s : s + "/lib") (buildInputs ++ [stdenv.gcc.libc]))
}' ';'
'';
postInstall =
''
ln -s ${xulrunner}/lib/xulrunner-${xulrunner.version} $(echo $out/lib/firefox-*)/xulrunner
cd "$out/lib/"firefox-*
rm firefox
echo -e '#!${stdenv.shell}\nexec ${xulrunner}/bin/xulrunner "'"$PWD"'/application.ini" "$@"' > firefox
chmod a+x firefox
''; # */
meta = {
description = "Mozilla Firefox - the browser, reloaded";
homepage = http://www.mozilla.com/en-US/firefox/;
maintainers = [ stdenv.lib.maintainers.eelco ];
};
passthru = {
inherit gtk xulrunner nspr;
isFirefox3Like = true;
};
};
}

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