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

Conflicts:
	pkgs/development/libraries/atk/default.nix
	pkgs/development/libraries/cairo/default.nix
	pkgs/development/libraries/freetype/default.nix
	pkgs/development/libraries/glib/default.nix
	pkgs/development/libraries/gmime/default.nix
	pkgs/development/libraries/pango/default.nix
	pkgs/servers/x11/xorg/default.nix
	pkgs/top-level/all-packages.nix
This commit is contained in:
Eelco Dolstra 2013-06-25 18:42:56 +02:00
commit 552fd3d599
438 changed files with 11405 additions and 3550 deletions

6
.gitignore vendored
View File

@ -2,6 +2,8 @@
,*
.*.swp
.*.swo
cpan-info
cpan_tmp/
result
doc/NEWS.html
doc/NEWS.txt
doc/manual.html
doc/manual.pdf

View File

@ -21,7 +21,7 @@ standard <varname>Makefile.PL</varname>. Its implemented in <link
xlink:href="https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/perl-modules/generic"><filename>pkgs/development/perl-modules/generic</filename></link>.</para>
<para>Perl packages from CPAN are defined in <link
xlink:href="https://github.com/NixOS/nixpkgs/blob/master/pkgs/top-level/perl-packages.nix"><filename>pkgs/perl-packages.nix</filename></link>,
xlink:href="https://github.com/NixOS/nixpkgs/blob/master/pkgs/top-level/perl-packages.nix"><filename>pkgs/top-level/perl-packages.nix</filename></link>,
rather than <filename>pkgs/all-packages.nix</filename>. Most Perl
packages are so straight-forward to build that they are defined here
directly, rather than having a separate function for each package
@ -151,6 +151,43 @@ ClassC3Componentised = buildPerlPackage rec {
</para>
<section><title>Generation from CPAN</title>
<para>Nix expressions for Perl packages can be generated (almost)
automatically from CPAN. This is done by the program
<command>nix-generate-from-cpan</command>, which can be installed
as follows:</para>
<screen>
$ nix-env -i nix-generate-from-cpan
</screen>
<para>This program takes a Perl module name, looks it up on CPAN,
fetches and unpacks the corresponding package, and prints a Nix
expression on standard output. For example:
<screen>
$ nix-generate-from-cpan XML::Simple
XMLSimple = buildPerlPackage {
name = "XML-Simple-2.20";
src = fetchurl {
url = mirror://cpan/authors/id/G/GR/GRANTM/XML-Simple-2.20.tar.gz;
sha256 = "5cff13d0802792da1eb45895ce1be461903d98ec97c9c953bc8406af7294434a";
};
propagatedBuildInputs = [ XMLNamespaceSupport XMLSAX XMLSAXExpat ];
meta = {
description = "Easily read/write XML (esp config files)";
license = "perl";
};
};
</screen>
The output can be pasted into
<filename>pkgs/top-level/perl-packages.nix</filename> or wherever else
you need it.</para>
</section>
</section>

View File

@ -237,12 +237,12 @@ fetchurl {
<function>fetchurl</function> will first try to download this file
from <link
xlink:href="http://nixos.org/tarballs/sha1/eb72f55e4a8bf08e8c6ef227c0ade3d068ba1082"/>.
xlink:href="http://tarballs.nixos.org/sha1/eb72f55e4a8bf08e8c6ef227c0ade3d068ba1082"/>.
If that file doesnt exist, it will try the original URL. In
general, the “content-addressed” location is
<replaceable>mirror</replaceable><literal>/</literal><replaceable>hash-type</replaceable><literal>/</literal><replaceable>hash</replaceable>.
There is currently only one content-addressable mirror (<link
xlink:href="http://nixos.org/tarballs"/>), but more can be
xlink:href="http://tarballs.nixos.org"/>), but more can be
specified in the <varname>hashedMirrors</varname> attribute in
<filename>pkgs/build-support/fetchurl/mirrors.nix</filename>, or by
setting the <envar>NIX_HASHED_MIRRORS</envar> environment variable

View File

@ -1,120 +0,0 @@
#! /bin/sh -e
name="$1"
[ -n "$name" ] || { echo "no name"; exit 1; }
cpan -D "$name" > cpan-info
url="$(echo $(cat cpan-info | sed '6!d'))"
[ -n "$url" ] || { echo "no URL"; exit 1; }
url="mirror://cpan/authors/id/$url"
echo "URL = $url" >&2
version=$(cat cpan-info | grep 'CPAN: ' | awk '{ print $2 }')
echo "VERSION = $version"
declare -a xs=($(PRINT_PATH=1 nix-prefetch-url "$url"))
hash=${xs[0]}
path=${xs[1]}
echo "HASH = $hash" >&2
namedash="$(echo $name | sed s/::/-/g)-$version"
attr=$(echo $name | sed s/:://g)
rm -rf cpan_tmp
mkdir cpan_tmp
tar xf "$path" -C cpan_tmp
shopt -s nullglob
meta=$(echo cpan_tmp/*/META.json)
if [ -z "$meta" ]; then
yaml=$(echo cpan_tmp/*/META.yml)
[ -n "$yaml" ] || { echo "no meta file"; exit 1; }
meta=$(echo $yaml | sed s/\.yml$/.json/)
perl -e '
use YAML;
use JSON;
local $/;
$x = YAML::Load(<>);
print encode_json $x;
' < $yaml > $meta
fi
description="$(json abstract < $meta | perl -e '$x = <>; print uc(substr($x, 0, 1)), substr($x, 1);')"
homepage="$(json resources.homepage < $meta)"
if [ -z "$homepage" ]; then
#homepage="$(json meta-spec.url < $meta)"
true
fi
license="$(json license < $meta | json -a 2> /dev/null || true)"
if [ -z "$license" ]; then
license="$(json -a license < $meta)"
fi
license="$(echo $license | sed s/perl_5/perl5/)"
f() {
local type="$1"
perl -e '
use JSON;
local $/;
$x = decode_json <>;
if (defined $x->{prereqs}) {
$x2 = $x->{prereqs}->{'$type'}->{requires};
} elsif ("'$type'" eq "runtime") {
$x2 = $x->{requires};
} elsif ("'$type'" eq "configure") {
$x2 = $x->{configure_requires};
} elsif ("'$type'" eq "build") {
$x2 = $x->{build_requires};
}
foreach my $y (keys %{$x2}) {
next if $y eq "perl";
eval "use $y;";
if (!$@) {
print STDERR "skipping Perl-builtin module $y\n";
next;
}
print $y, "\n";
};
' < $meta | sed s/:://g
}
confdeps=$(f configure)
builddeps=$(f build)
testdeps=$(f test)
runtimedeps=$(f runtime)
buildInputs=$(echo $(for i in $confdeps $builddeps $testdeps; do echo $i; done | sort | uniq))
propagatedBuildInputs=$(echo $(for i in $runtimedeps; do echo $i; done | sort | uniq))
echo "===" >&2
cat <<EOF
$attr = buildPerlPackage {
name = "$namedash";
src = fetchurl {
url = $url;
sha256 = "$hash";
};
EOF
if [ -n "$buildInputs" ]; then
cat <<EOF
buildInputs = [ $buildInputs ];
EOF
fi
if [ -n "$propagatedBuildInputs" ]; then
cat <<EOF
propagatedBuildInputs = [ $propagatedBuildInputs ];
EOF
fi
cat <<EOF
meta = {
homepage = $homepage;
description = "$description";
license = "$license";
};
};
EOF

View File

@ -0,0 +1,22 @@
{ stdenv, makeWrapper, perl, perlPackages }:
stdenv.mkDerivation {
name = "nix-generate-from-cpan-1";
buildInputs = [ makeWrapper perl perlPackages.YAMLLibYAML perlPackages.JSON ];
unpackPhase = "true";
buildPhase = "true";
installPhase =
''
mkdir -p $out/bin
cp ${./nix-generate-from-cpan.pl} $out/bin/nix-generate-from-cpan
wrapProgram $out/bin/nix-generate-from-cpan --set PERL5LIB $PERL5LIB
'';
meta = {
maintainers = [ stdenv.lib.maintainers.eelco ];
description = "Utility to generate a Nix expression for a Perl package from CPAN";
};
}

View File

@ -0,0 +1,168 @@
#! /run/current-system/sw/bin/perl -w
use strict;
use CPANPLUS::Backend;
use YAML::XS;
use JSON;
my $module_name = $ARGV[0];
die "syntax: $0 <MODULE-NAME>\n" unless defined $module_name;
my $cb = CPANPLUS::Backend->new;
my @modules = $cb->search(type => "name", allow => [$module_name]);
die "module $module_name not found\n" if scalar @modules == 0;
die "multiple packages that match module $module_name\n" if scalar @modules > 1;
my $module = $modules[0];
sub pkg_to_attr {
my ($pkg_name) = @_;
my $attr_name = $pkg_name;
$attr_name =~ s/-\d.*//; # strip version
return "LWP" if $attr_name eq "libwww-perl";
$attr_name =~ s/-//g;
return $attr_name;
}
sub get_pkg_name {
my ($module) = @_;
my $pkg_name = $module->package;
$pkg_name =~ s/\.tar.*//;
$pkg_name =~ s/\.zip//;
return $pkg_name;
}
my $pkg_name = get_pkg_name $module;
my $attr_name = pkg_to_attr $pkg_name;
print STDERR "attribute name: ", $attr_name, "\n";
print STDERR "module: ", $module->module, "\n";
print STDERR "version: ", $module->version, "\n";
print STDERR "package: ", $module->package, , " (", $pkg_name, ", ", $attr_name, ")\n";
print STDERR "path: ", $module->path, "\n";
my $tar_path = $module->fetch();
print STDERR "downloaded to: $tar_path\n";
print STDERR "sha-256: ", $module->status->checksum_value, "\n";
my $pkg_path = $module->extract();
print STDERR "unpacked to: $pkg_path\n";
my $meta;
if (-e "$pkg_path/META.yml") {
eval {
$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");
}
}
print STDERR "metadata: ", encode_json($meta), "\n";
# Map a module to the attribute corresponding to its package
# (e.g. HTML::HeadParser will be mapped to HTMLParser, because that
# module is in the HTML-Parser package).
sub module_to_pkg {
my ($module_name) = @_;
my @modules = $cb->search(type => "name", allow => [$module_name]);
if (scalar @modules == 0) {
# Fallback.
$module_name =~ s/:://g;
return $module_name;
}
my $module = $modules[0];
my $attr_name = pkg_to_attr(get_pkg_name $module);
print STDERR "mapped dep $module_name to $attr_name\n";
return $attr_name;
}
sub get_deps {
my ($type) = @_;
my $deps;
if (defined $meta->{prereqs}) {
die "unimplemented";
} elsif ($type eq "runtime") {
$deps = $meta->{requires};
} elsif ($type eq "configure") {
$deps = $meta->{configure_requires};
} elsif ($type eq "build") {
$deps = $meta->{build_requires};
}
my @res;
foreach my $n (keys %{$deps}) {
next if $n eq "perl";
# Hacky way to figure out if this module is part of Perl.
if ($n !~ /^JSON/ && $n !~ /^YAML/) {
eval "use $n;";
if (!$@) {
print STDERR "skipping Perl-builtin module $n\n";
next;
}
}
push @res, module_to_pkg($n);
}
return @res;
}
sub uniq {
return keys %{{ map { $_ => 1 } @_ }};
}
my @build_deps = sort(uniq(get_deps("configure"), get_deps("build"), get_deps("test")));
print STDERR "build deps: @build_deps\n";
my @runtime_deps = sort(uniq(get_deps("runtime")));
print STDERR "runtime deps: @runtime_deps\n";
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";
my $license = $meta->{license};
if (defined $license) {
$license = "perl5" if $license eq "perl_5";
print STDERR "license: $license\n";
}
my $build_fun = -e "$pkg_path/Build.PL" && ! -e "$pkg_path/Makefile.PL" ? "buildPerlModule" : "buildPerlPackage";
print STDERR "===\n";
print <<EOF;
$attr_name = $build_fun {
name = "$pkg_name";
src = fetchurl {
url = mirror://cpan/${\$module->path}/${\$module->package};
sha256 = "${\$module->status->checksum_value}";
};
EOF
print <<EOF if scalar @build_deps > 0;
buildInputs = [ @build_deps ];
EOF
print <<EOF if scalar @runtime_deps > 0;
propagatedBuildInputs = [ @runtime_deps ];
EOF
print <<EOF;
meta = {
EOF
print <<EOF if defined $homepage;
homepage = $homepage;
EOF
print <<EOF;
description = "$description";
EOF
print <<EOF if defined $license;
license = "$license";
EOF
print <<EOF;
};
};
EOF

View File

@ -1,29 +1,26 @@
{ stdenv, fetchurl, pkgconfig, glib, gtk, libmowgli, libmcs
{ stdenv, fetchurl, pkgconfig, glib, gtk3, libmowgli, libmcs
, gettext, dbus_glib, libxml2, libmad, xlibs, alsaLib, libogg
, libvorbis, libcdio, libcddb, flac, ffmpeg
}:
let
version = "3.2.2";
version = "3.3.4";
in
stdenv.mkDerivation {
name = "audacious-${version}";
src = fetchurl {
url = "http://distfiles.audacious-media-player.org/audacious-${version}.tar.bz2";
sha256 = "1vj2f3jq67r9wc3s8p51w8338cjhidj3lpxmzyh31lrfikj21766";
sha256 = "19zw4yj8g4fvxkv0ql8v8vgxzldxl1fzig239zzv88mpnvwxn737";
};
pluginsSrc = fetchurl {
url = "http://distfiles.audacious-media-player.org/audacious-plugins-${version}.tar.bz2";
sha256 = "1z5p4ny0kzszaki4f1fgrvcr0q1j6i19847jhplc07nl1rvycdy6";
sha256 = "1l5g0zq73qp1hlrf4xsaj0n3hg0asrp7169531jgpncjn15dhvdn";
};
# `--enable-amidiplug' is to prevent configure from looking in /proc/asound.
configureFlags = "--enable-amidiplug --disable-oss";
buildInputs =
[ gettext pkgconfig glib gtk libmowgli libmcs libxml2 dbus_glib
[ gettext pkgconfig glib gtk3 libmowgli libmcs libxml2 dbus_glib
libmad xlibs.libXcomposite libogg libvorbis flac alsaLib libcdio
libcddb ffmpeg
];
@ -54,6 +51,7 @@ stdenv.mkDerivation {
meta = {
description = "Audacious, a media player forked from the Beep Media Player, which was itself an XMMS fork";
homepage = http://audacious-media-player.org/;
maintainers = [ stdenv.lib.maintainers.eelco stdenv.lib.maintainers.simons ];
maintainers = with stdenv.lib.maintainers; [ eelco simons ];
platforms = stdenv.lib.platforms.linux;
};
}

View File

@ -1,29 +1,24 @@
{ stdenv, fetchurl, libogg }:
stdenv.mkDerivation rec {
name = "flac-1.2.1";
name = "flac-1.3.0";
src = fetchurl {
url = mirror://sourceforge/flac/flac-1.2.1.tar.gz;
sha256 = "1pry5lgzfg57pga1zbazzdd55fkgk3v5qy4axvrbny5lrr5s8dcn";
url = "http://downloads.xiph.org/releases/flac/${name}.tar.xz";
sha256 = "1p0hh190kqvpkbk1bbajd81jfbmkyl4fn2i7pggk2zppq6m68bgs";
};
buildInputs = [ libogg ];
patches =
[ # Fix for building on GCC 4.3.
(fetchurl {
url = "http://sourceforge.net/p/flac/patches/_discuss/thread/9d4c7504/d8ea/attachment/flac-1.2.1-gcc-4.3-includes.patch";
sha256 = "1m6ql5vyjb2jlp5qiqp6w0drq1m6x6y3i1dnl5ywywl3zd36k0mr";
})
];
doCheck = true; # takes lots of time but will be run rarely (small build-time closure)
enableParallelBuilding = true;
outputs = [ "dev" "out" "bin" "doc" ];
meta = {
homepage = http://flac.sourceforge.net;
homepage = http://xiph.org/flac/;
description = "Library and tools for encoding and decoding the FLAC lossless audio file format";
platforms = stdenv.lib.platforms.all;
};
}

View File

@ -0,0 +1,26 @@
{ fetchurl, stdenv, pkgconfig, libao, faad2, libmad, readline, json_c, libgcrypt, gnutls }:
stdenv.mkDerivation rec {
name = "pianobar-2013.05.19";
src = fetchurl {
url = "http://6xq.net/projects/pianobar/${name}.tar.bz2";
sha256 = "cf88e82663d2b0aa4d73e761506eac4f3e7bc789b57d92377acd994d785e1046";
};
buildInputs = [
pkgconfig libao faad2 libmad json_c libgcrypt gnutls
];
makeFlags="PREFIX=$(out)";
CC = "gcc";
CFLAGS = "-std=c99";
meta = {
description = "A console front-end for Pandora.com";
homepage = "http://6xq.net/projects/pianobar/";
platforms = stdenv.lib.platforms.linux;
license = stdenv.lib.licenses.unfree;
};
}

View File

@ -3,7 +3,7 @@
assert stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux";
let
version = "0.9.0.133";
version = "0.9.1.55";
qt4webkit =
if stdenv.system == "i686-linux" then
fetchurl {
@ -25,13 +25,13 @@ stdenv.mkDerivation {
src =
if stdenv.system == "i686-linux" then
fetchurl {
url = "http://repository.spotify.com/pool/non-free/s/spotify/spotify-client_${version}.gd18ed58.259-1_i386.deb";
sha256 = "15kbwll63pm99262f7xq1z0c5bwmk5cz46pkh8xd5xsqxlsvvv1n";
url = "http://repository.spotify.com/pool/non-free/s/spotify/spotify-client_${version}.gbdd3b79.203-1_i386.deb";
sha256 = "1sls4gb85700126bbk4sz73ipa2rjcinmpnsi78q0bsdj365y2wc";
}
else if stdenv.system == "x86_64-linux" then
fetchurl {
url = "http://repository.spotify.com/pool/non-free/s/spotify/spotify-client_${version}.gd18ed58.259-1_amd64.deb";
sha256 = "0l3nikhf4hyj6z7639s668kd806730va005rwqcxvymxddcbcp03";
url = "http://repository.spotify.com/pool/non-free/s/spotify/spotify-client_${version}.gbdd3b79.203-1_amd64.deb";
sha256 = "10pzj3p8bjbxh9nnm4qc5s1hn9nh7hgh3vbwm0xblj9rn71wl03y";
}
else throw "Spotify not supported on this platform.";

View File

@ -8,7 +8,7 @@ assert stdenv ? glibc;
let
buildEclipse =
{ name, src, description }:
{ name, src ? builtins.getAttr stdenv.system sources, sources ? null, description }:
stdenv.mkDerivation rec {
inherit name src;
@ -131,16 +131,15 @@ in {
eclipse_sdk_37 = buildEclipse {
name = "eclipse-sdk-3.7";
description = "Eclipse Classic";
src =
if stdenv.system == "x86_64-linux" then
fetchurl {
url = http://archive.eclipse.org/eclipse/downloads/drops/R-3.7-201106131736/eclipse-SDK-3.7-linux-gtk-x86_64.tar.gz;
sha256 = "00ig3ww98r8imf32sx5npm6csn5nx288gvdk6w653nijni0di16j";
}
else
fetchurl {
url = http://archive.eclipse.org/eclipse/downloads/drops/R-3.7-201106131736/eclipse-SDK-3.7-linux-gtk.tar.gz;
sha256 = "08rgw85cam51l98mzb39fdc3ykb369v8pap93qhknbs6a3f5dnff";
sources = {
"x86_64-linux" = fetchurl {
url = http://archive.eclipse.org/eclipse/downloads/drops/R-3.7.2-201202080800/eclipse-SDK-3.7.2-linux-gtk-x86_64.tar.gz;
sha256 = "0nf4nv7awhp1k8b1hjb7chpjyjrqnyszsjbc4dlk9phpjv3j4wg5";
};
"i686-linux" = fetchurl {
url = http://archive.eclipse.org/eclipse/downloads/drops/R-3.7.2-201202080800/eclipse-SDK-3.7.2-linux-gtk.tar.gz;
sha256 = "1isn7i45l9kyn2yx6vm88jl1gnxph8ynank0aaa218cg8kdygk7j";
};
};
};
@ -176,8 +175,8 @@ in {
};
};
eclipse_sdk_42 = buildEclipse {
name = "eclipse-sdk-4.2";
eclipse_sdk_421 = buildEclipse {
name = "eclipse-sdk-4.2.1";
description = "Eclipse Classic";
src =
if stdenv.system == "x86_64-linux" then
@ -191,4 +190,19 @@ in {
sha256 = "1av6qm9wkbyk123qqf38f0jq4jv2bj9wp6fmpnl55zg6qr463c1w";
};
};
eclipse_sdk_422 = buildEclipse {
name = "eclipse-sdk-4.2.2";
description = "Eclipse Classic";
sources = {
"x86_64-linux" = fetchurl {
url = http://ftp-stud.fht-esslingen.de/pub/Mirrors/eclipse/eclipse/downloads/drops4/R-4.2.2-201302041200/eclipse-SDK-4.2.2-linux-gtk-x86_64.tar.gz;
sha256 = "0ysa6ymk4h3k1vn59dc909iy197kmx132671kbzfwbim87jmgnqb";
};
"i686-linux" = fetchurl {
url = http://ftp-stud.fht-esslingen.de/pub/Mirrors/eclipse/eclipse/downloads/drops4/R-4.2.2-201302041200/eclipse-SDK-4.2.2-linux-gtk.tar.gz;
sha256 = "038yibbrcia38wi72qrdl03g7l35mpvl5nxdfdnvpqxrkfffb826";
};
};
};
}

View File

@ -2,7 +2,7 @@
name = "cua-mode-2.10";
builder = ./builder.sh;
src = fetchurl {
url = http://nixos.org/tarballs/cua-mode-2.10.el;
url = http://tarballs.nixos.org/cua-mode-2.10.el;
md5 = "5bf5e43f5f38c8383868c7c6c5baca09";
};
}

View File

@ -0,0 +1,20 @@
{ stdenv, fetchurl, emacs, texinfo }:
stdenv.mkDerivation {
name = "ess-13.05";
src = fetchurl {
url = "http://ess.r-project.org/downloads/ess/ess-13.05.tgz";
sha256 = "007rd8hg1aclr2i8178ym5c4bi7vgmwkp802v1mkgr85h50zlfdk";
};
buildInputs = [ emacs texinfo ];
configurePhase = "makeFlags=PREFIX=$out";
meta = {
description = "Emacs Speaks Statistics";
homepage = "http://ess.r-project.org/";
license = stdenv.lib.licenses.gpl2Plus;
};
}

View File

@ -11,7 +11,7 @@ in
src = fetchsvn {
url = "https://jdee.svn.sourceforge.net/svnroot/jdee/trunk/jdee";
rev = revision;
sha256 = "1qj5cv74dp6nf6060jyvnlcbmc4sz8a09806gwa1zfiwz6mm9zrs";
sha256 = "1z1y957glbqm7z3dhah9h4jysw3173pq1gpx5agfwcw614n516xz";
};
patchFlags = "-p1 --ignore-whitespace";

View File

@ -6,7 +6,7 @@ stdenv.mkDerivation {
src = fetchurl {
# XXX: Upstream URL is not versioned, which might eventually break this.
url = "http://www.neilvandyke.org/quack/quack.el";
sha256 = "1w3p03f1f3l2nldxc7dig1kkgbbvy5j7zid0cfmkcrpp1qrcsqic";
sha256 = "1q5bsllxkibiddwp32306flqm8s3caffnpbqz5ka260avllp4jj5";
};
buildInputs = [ emacs ];

View File

@ -4,8 +4,9 @@ stdenv.mkDerivation rec {
name = "session-management-for-emacs-2.2a";
src = fetchurl {
url = "mirror://sourceforge.net/sourceforge/emacs-session/session-2.2a.tar.gz";
sha256 = "0i01dnkizs349ahyybzy0mjzgj52z65rxynsj2mlw5mm41sbmprp";
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";
sha256 = "37dfba7420b5164eab90dafa9e8bf9a2c8f76505fe2fefa14a64e81fa76d0144";
};
buildInputs = [emacs];

View File

@ -0,0 +1,27 @@
{ stdenv, fetchurl, emacs }:
# this package installs the emacs-mode which
# resides in the ocaml compiler sources.
let version = "2.0.6";
in stdenv.mkDerivation {
name = "tuareg-mode-${version}";
src = fetchurl {
url = https://forge.ocamlcore.org/frs/download.php/882/tuareg-2.0.6.tar.gz;
sha256 = "ea79ac24623b82ab8047345f8504abca557a537e639d16ce1ac3e5b27f5b1189";
};
buildInputs = [ emacs ];
installPhase = ''
ensureDir "$out/share/emacs/site-lisp"
cp *.el *.elc "$out/share/emacs/site-lisp"
'';
meta = {
homepage = http://caml.inria.fr;
description = "OCaml mode package for Emacs";
platforms = stdenv.lib.platforms.unix;
};
}

View File

@ -1,15 +1,15 @@
{ stdenv, fetchurl, gtk2, which, pkgconfig, intltool }:
let
version = "1.22";
version = "1.23";
in
stdenv.mkDerivation rec {
name = "geany-${version}";
src = fetchurl {
url = "http://download.geany.org/${name}.tar.gz";
md5 = "1cb7f6cea8e301c416211786cec474fa";
url = "http://download.geany.org/${name}.tar.bz2";
sha256 = "1c78rggjaz9fa8gj25wka1sa3argvixnzrarmqvwh0s8d5ragm6d";
};
buildInputs = [ gtk2 which pkgconfig intltool ];

View File

@ -10,7 +10,7 @@ stdenv.mkDerivation {
builder = ./builder.sh;
src = fetchurl {
url = http://nixos.org/tarballs/monodevelop-0.6-pre2315.tar.bz2;
url = http://tarballs.nixos.org/monodevelop-0.6-pre2315.tar.bz2;
md5 = "8c33df5629b0676b7ab552854c1de6fd";
};

View File

@ -5,7 +5,7 @@ stdenv.mkDerivation {
builder = ./builder.sh;
src = fetchurl {
url = http://nixos.org/tarballs/monodoc-1.0.6.tar.gz;
url = http://tarballs.nixos.org/monodoc-1.0.6.tar.gz;
md5 = "f2fc27e8e4717d90dc7efa2450625693";
};

View File

@ -1,21 +1,60 @@
# 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: with args;
args@{source ? "latest", ...}: with args;
let inherit (args.composableDerivation) composableDerivation edf; in
composableDerivation {} {
composableDerivation {
# use gccApple to compile on darwin
mkDerivation = ( if stdenv.isDarwin
then stdenvAdapters.overrideGCC stdenv gccApple
else stdenv ).mkDerivation;
} (fix: {
name = "vim_configurable-7.3";
src = args.fetchurl {
enableParallelBuilding = true; # test this
src =
builtins.getAttr source {
"default" =
# latest release
args.fetchurl {
url = ftp://ftp.vim.org/pub/vim/unix/vim-7.3.tar.bz2;
sha256 = "079201qk8g9yisrrb0dn52ch96z3lzw6z473dydw9fzi0xp5spaw";
};
"vim-nox" =
{
# vim nox branch: client-server without X by uing sockets
# REGION AUTO UPDATE: { name="vim-nox"; type="hg"; url="https://code.google.com/r/yukihironakadaira-vim-cmdsrv-nox/"; branch="cmdsrv-nox"; }
src = (fetchurl { url = "http://mawercer.de/~nix/repos/vim-nox-hg-2082fc3.tar.bz2"; sha256 = "293164ca1df752b7f975fd3b44766f5a1db752de6c7385753f083499651bd13a"; });
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;
};
configureFlags = ["--enable-gui=auto" "--with-features=${args.features}"];
# if darwin support is enabled, we want to make sure we're not building with
# OS-installed python framework
preConfigure
= stdenv.lib.optionalString
(stdenv.isDarwin && (config.vim.darwin or true)) ''
sed -i "5387,5390d" src/auto/configure
sed -i "5394d" src/auto/configure
'';
nativeBuildInputs = [ncurses pkgconfig]
++ [ gtk libX11 libXext libSM libXpm libXt libXaw libXau libXmu glib
libICE ];
configureFlags
= [ "--enable-gui=${args.gui}" "--with-features=${args.features}" ];
nativeBuildInputs
= [ ncurses pkgconfig gtk libX11 libXext libSM libXpm libXt libXaw libXau
libXmu glib libICE ];
# most interpreters aren't tested yet.. (see python for example how to do it)
flags = {
@ -28,7 +67,19 @@ composableDerivation {} {
// edf { name = "xsmp_interact"; } #Disable XSMP interaction
// edf { name = "mzscheme"; } #Include MzScheme interpreter.
// edf { name = "perl"; feat = "perlinterp"; enable = { nativeBuildInputs = [perl]; };} #Include Perl interpreter.
// edf { name = "python"; feat = "pythoninterp"; enable = { nativeBuildInputs = [python]; }; } #Include Python interpreter.
// edf {
name = "python";
feat = "pythoninterp";
enable = {
nativeBuildInputs = [ python ];
} // lib.optionalAttrs stdenv.isDarwin {
configureFlags
= [ "--enable-pythoninterp=yes"
"--with-python-config-dir=${python}/lib" ];
};
}
// edf { name = "tcl"; enable = { nativeBuildInputs = [tcl]; }; } #Include Tcl interpreter.
// edf { name = "ruby"; feat = "rubyinterp"; enable = { nativeBuildInputs = [ruby]; };} #Include Ruby interpreter.
// edf { name = "lua" ; feat = "luainterp"; enable = { nativeBuildInputs = [lua]; configureFlags = ["--with-lua-prefix=${args.lua}"];};}
@ -47,11 +98,17 @@ composableDerivation {} {
cfg = {
pythonSupport = config.vim.python or true;
darwinSupport = config.vim.darwin or false;
rubySupport = config.vim.ruby or true;
nlsSupport = config.vim.nls or false;
tclSupport = config.vim.tcl or false;
multibyteSupport = config.vim.multibyte or false;
cscopeSupport = config.vim.cscope or false;
netbeansSupport = config.netbeans or true; # eg envim is using it
# by default, compile with darwin support if we're compiling on darwin, but
# allow this to be disabled by setting config.vim.darwin to false
darwinSupport = stdenv.isDarwin && (config.vim.darwin or true);
# add .nix filetype detection and minimal syntax highlighting support
ftNixSupport = config.vim.ftNix or true;
};
@ -68,21 +125,23 @@ composableDerivation {} {
// edf "gtktest" "gtktest" { } #Do not try to compile and run a test GTK program
*/
postInstall = "
rpath=`patchelf --print-rpath \$out/bin/vim`;
for i in \$nativeBuildInputs; do
echo adding \$i/lib
rpath=\$rpath:\$i/lib
postInstall = stdenv.lib.optionalString stdenv.isLinux ''
rpath=`patchelf --print-rpath $out/bin/vim`;
for i in $nativeBuildInputs; do
echo adding $i/lib
rpath=$rpath:$i/lib
done
echo \$nativeBuildInputs
echo \$rpath
patchelf --set-rpath \$rpath \$out/bin/{vim,gvim}
";
dontStrip =1;
echo $nativeBuildInputs
echo $rpath
patchelf --set-rpath $rpath $out/bin/{vim,gvim}
'';
dontStrip = 1;
meta = {
description = "The most popular clone of the VI editor";
homepage = "www.vim.org";
platforms = lib.platforms.unix;
};
})
}

View File

@ -4,7 +4,7 @@ stdenv.mkDerivation {
name = "batik-1.6";
builder = ./builder.sh;
src = fetchurl {
url = http://nixos.org/tarballs/batik-1.6.zip;
url = http://tarballs.nixos.org/batik-1.6.zip;
md5 = "edff288fc64f968ff96ca49763d50f3c";
};

View File

@ -12,7 +12,7 @@ stdenv.mkDerivation {
inherit makeWrapper;
src = fetchurl {
url = http://nixos.org/tarballs/f-spot-0.0.10.tar.bz2;
url = http://tarballs.nixos.org/f-spot-0.0.10.tar.bz2;
md5 = "19cc6e067ccc261b0502ff6189b79832";
};

View File

@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
preConfigure = ''
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}$PWD/build/lib"
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I$(echo ${gtkglext}/include/gtkglext-*) -I$(echo ${gtkglext}/lib/gtkglext-*/include)"
'';
buildInputs = [

View File

@ -4,11 +4,11 @@
stdenv.mkDerivation rec {
name = "oiio-${version}";
version = "1.1.8";
version = "1.1.12";
src = fetchurl {
url = "https://github.com/OpenImageIO/oiio/archive/Release-${version}.zip";
sha256 = "08a6qhplzs8kianqb1gjgrndg81h3il5531jn9g6i4940b1xispg";
sha256 = "196iq15waa2yyryiwhf6ynlpqnpknm4cc4azakg01xs70yiphsfl";
};
buildInputs = [

View File

@ -1,5 +1,5 @@
{ stdenv, fetchurl, pkgconfig, gtk, cmake, pixman, libpthreadstubs, gtkmm, libXau
, libXdmcp, lcms2, libiptcdata, libcanberra, fftw
, libXdmcp, lcms2, libiptcdata, libcanberra, fftw, expat
, mercurial # Not really needed for anything, but it fails if it does not find 'hg'
}:
@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
};
buildInputs = [ pkgconfig gtk cmake pixman libpthreadstubs gtkmm libXau libXdmcp
lcms2 libiptcdata mercurial libcanberra fftw ];
lcms2 libiptcdata mercurial libcanberra fftw expat ];
# Disable the use of the RAWZOR propietary libraries
cmakeFlags = [ "-DWITH_RAWZOR=OFF" ];

View File

@ -1,28 +1,33 @@
{ stdenv, fetchurl, autoconf, automake, libtool, leptonica, libpng, libtiff }:
let
majVersion = "3.02";
version = "${majVersion}.02";
f = lang : sha256 : let
src = fetchurl {
url = "http://tesseract-ocr.googlecode.com/files/${lang}.traineddata.gz";
url = "http://tesseract-ocr.googlecode.com/files/tesseract-ocr-${majVersion}.${lang}.tar.gz";
inherit sha256;
};
in
"gunzip -c ${src} > $out/share/tessdata/${lang}.traineddata";
"tar xfvz ${src} -C $out/share/ --strip=1";
extraLanguages = ''
${f "cat" "1qndk8qygw9bq7nzn7kzgxkm3jhlq7jgvdqpj5id4rrcaavjvifw"}
${f "rus" "0yjzks189bgcmi2vr4v0l0fla11qdrw3cb1nvpxl9mdis8qr9vcc"}
${f "spa" "1q1hw3qi95q5ww3l02fbhjqacxm34cp65fkbx10wjdcg0s5p9q2x"}
${f "nld" "0cbqfhl2rwb1mg4y1140nw2vhhcilc0nk7bfbnxw6bzj1y5n49i8"}
${f "cat" "0d1smiv1b3k9ay2s05sl7q08mb3ln4w5iiiymv2cs8g8333z8jl9"}
${f "rus" "059336mkhsj9m3hwfb818xjlxkcdpy7wfgr62qwz65cx914xl709"}
${f "spa" "1c9iza5mbahd9pa7znnq8yv09v5kz3gbd2sarcgcgc1ps1jc437l"}
${f "nld" "162acxp1yb6gyki2is3ay2msalmfcsnrlsd9wml2ja05k94m6bjy"}
${f "eng" "1y5xf794n832s3lymzlsdm2s9nlrd2v27jjjp0fd9xp7c2ah4461"}
${f "slv" "0rqng43435cly32idxm1lvxkcippvc3xpxbfizwq5j0155ym00dr"}
'';
in
stdenv.mkDerivation {
name = "tesseract-3.0.1";
stdenv.mkDerivation rec {
name = "tesseract-${version}";
src = fetchurl {
url = http://tesseract-ocr.googlecode.com/files/tesseract-3.01.tar.gz;
sha256 = "c24b0bd278291bc93ab242f93841c1d8743689c943bd804afbc5b898dc0a1c9b";
url = "http://tesseract-ocr.googlecode.com/files/tesseract-ocr-${version}.tar.gz";
sha256 = "0g81m9y4iydp7kgr56mlkvjdwpp3mb01q385yhdnyvra7z5kkk96";
};
buildInputs = [ autoconf automake libtool leptonica libpng libtiff ];

View File

@ -0,0 +1,12 @@
diff --git a/intern/smoke/intern/WAVELET_NOISE.h b/intern/smoke/intern/WAVELET_NOISE.h
index fce901b..1f73c5e 100644
--- a/intern/smoke/intern/WAVELET_NOISE.h
+++ b/intern/smoke/intern/WAVELET_NOISE.h
@@ -43,6 +43,7 @@
#ifndef WAVELET_NOISE_H
#define WAVELET_NOISE_H
+#include <string.h>
#include <MERSENNETWISTER.h>
#ifdef WIN32

View File

@ -1,17 +1,15 @@
{ stdenv, fetchurl, python, pyqt4, sip, popplerQt4, pkgconfig, libpng
, imagemagick, libjpeg, fontconfig, podofo, qt4, icu, sqlite
, pil, makeWrapper, unrar, chmlib, pythonPackages, xz
, pil, makeWrapper, unrar, chmlib, pythonPackages, xz, udisks, libusb1, libmtp
}:
stdenv.mkDerivation rec {
name = "calibre-0.8.51";
name = "calibre-0.8.70";
# 0.9.* versions won't build: https://bugs.launchpad.net/calibre/+bug/1094719
src = fetchurl {
urls = [
"http://calibre-ebook.googlecode.com/files/${name}.tar.xz"
"mirror://sourceforge/calibre/${name}.tar.xz"
];
sha256 = "1grcc0k9qpfpwp863x52rl9wj4wz61hcz67l8h2jmli0wxiq44z1";
url = "mirror://sourceforge/calibre/${name}.tar.xz";
sha256 = "12avwp8r6cnrw6c32gmd2hksa9rszdb76zs6fcmr3n8r1wkwa71g";
};
inherit python;
@ -23,7 +21,7 @@ stdenv.mkDerivation rec {
fontconfig podofo qt4 pil chmlib icu
pythonPackages.mechanize pythonPackages.lxml pythonPackages.dateutil
pythonPackages.cssutils pythonPackages.beautifulsoup
pythonPackages.sqlite3 sqlite
pythonPackages.sqlite3 sqlite udisks libusb1 libmtp
];
installPhase = ''

View File

@ -0,0 +1,44 @@
{ fetchgit, stdenv, pkgconfig, libtool, autoconf, automake,
curl, ncurses, amdappsdk, amdadlsdk, xorg }:
stdenv.mkDerivation rec {
version = "2.11.4";
name = "cgminer-${version}";
src = fetchgit {
url = "https://github.com/ckolivas/cgminer.git";
rev = "96c8ff5f10f2d8f0cf4d1bd889e8eeac2e4aa715";
sha256 = "1vf9agy4vw50cap03qig2y65hdrsdy7cknkzyagv89w5xb230r9a";
};
buildInputs = [ autoconf automake pkgconfig libtool curl ncurses amdappsdk amdadlsdk xorg.libX11 xorg.libXext xorg.libXinerama ];
configureScript = "./autogen.sh";
configureFlags = "--enable-scrypt";
NIX_LDFLAGS = "-lgcc_s -lX11 -lXext -lXinerama";
preConfigure = ''
ln -s ${amdadlsdk}/include/* ADL_SDK/
'';
postBuild = ''
gcc api-example.c -I compat/jansson -o cgminer-api
'';
postInstall = ''
cp cgminer-api $out/bin/
chmod 444 $out/bin/*.cl
'';
meta = with stdenv.lib; {
description = "CPU/GPU miner in c for bitcoin";
longDescription= ''
This is a multi-threaded multi-pool GPU, FPGA and ASIC miner with ATI GPU
monitoring, (over)clocking and fanspeed support for bitcoin and derivative
coins. Do not use on multiple block chains at the same time!
'';
homepage = "https://github.com/ckolivas/cgminer";
license = licenses.gpl3;
maintainers = [ maintainers.offline ];
platforms = [ "i686-linux" "x86_64-linux" ];
};
}

View File

@ -1,16 +1,14 @@
{ stdenv, fetchurl, libjpeg, libtiff, libpng, ghostscript, libungif, zlib }:
{ stdenv, fetchurl, libjpeg, libtiff, librsvg }:
stdenv.mkDerivation rec {
name = "djvulibre-3.5.24";
name = "djvulibre-3.5.25.3";
src = fetchurl {
url = "mirror://sourceforge/djvu/${name}.tar.gz";
sha256 = "0d1592cmc7scg2jzah47mnvbqldhxb1x9vxm7y64a3iasa0lqwy0";
sha256 = "1q5i5ha4zmj2ahjfhi8cv1rah80vm43m9ads46ji38rgvpb7x3c9";
};
buildInputs = [ libjpeg libtiff libpng ghostscript zlib libungif ];
patches = [ ./gcc-4.6.patch ];
buildInputs = [ libjpeg libtiff librsvg ];
meta = {
description = "A library and viewer for the DJVU file format for scanned images";

View File

@ -1,658 +0,0 @@
commit 3341545edba359b292a8ef6db1b7d342caf3dcf1
Author: Leon Bottou <leon@bottou.org>
Date: Wed May 4 21:25:35 2011 -0700
Added include <stddef.h> for gcc-4.6
diff --git a/libdjvu/BSByteStream.cpp b/libdjvu/BSByteStream.cpp
index b762ccf..d662ab0 100644
--- a/libdjvu/BSByteStream.cpp
+++ b/libdjvu/BSByteStream.cpp
@@ -62,6 +62,7 @@
// - Author: Leon Bottou, 07/1998
+#include <stddef.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
diff --git a/libdjvu/BSEncodeByteStream.cpp b/libdjvu/BSEncodeByteStream.cpp
index 5d80e51..68bc3e3 100644
--- a/libdjvu/BSEncodeByteStream.cpp
+++ b/libdjvu/BSEncodeByteStream.cpp
@@ -71,6 +71,7 @@
#include "GOS.h"
#endif
+#include <stddef.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
diff --git a/libdjvu/ByteStream.cpp b/libdjvu/ByteStream.cpp
index 158c33c..be01847 100644
--- a/libdjvu/ByteStream.cpp
+++ b/libdjvu/ByteStream.cpp
@@ -73,6 +73,7 @@
#include "GOS.h"
#include "GURL.h"
#include "DjVuMessage.h"
+#include <stddef.h>
#include <fcntl.h>
#if defined(WIN32) || defined(__CYGWIN32__)
# include <io.h>
diff --git a/libdjvu/DjVuFileCache.cpp b/libdjvu/DjVuFileCache.cpp
index 6b1e85d..7d7a192 100644
--- a/libdjvu/DjVuFileCache.cpp
+++ b/libdjvu/DjVuFileCache.cpp
@@ -63,6 +63,7 @@
#include "DjVuFileCache.h"
#include "debug.h"
+#include <stddef.h>
#include <stdlib.h>
diff --git a/libdjvu/DjVuGlobal.cpp b/libdjvu/DjVuGlobal.cpp
index e6d3cec..df9278e 100644
--- a/libdjvu/DjVuGlobal.cpp
+++ b/libdjvu/DjVuGlobal.cpp
@@ -76,6 +76,8 @@
#include "GThreads.h"
#include "GException.h"
#include "GContainer.h"
+
+#include <stddef.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
diff --git a/libdjvu/DjVuGlobalMemory.cpp b/libdjvu/DjVuGlobalMemory.cpp
index 3c6012c..c8ba309 100644
--- a/libdjvu/DjVuGlobalMemory.cpp
+++ b/libdjvu/DjVuGlobalMemory.cpp
@@ -67,6 +67,8 @@
#include "DjVuGlobal.h"
#include "GException.h"
+
+#include <stddef.h>
#include <stdlib.h>
#include <string.h>
#include "debug.h"
diff --git a/libdjvu/DjVuMessage.cpp b/libdjvu/DjVuMessage.cpp
index 6f5a735..1726025 100644
--- a/libdjvu/DjVuMessage.cpp
+++ b/libdjvu/DjVuMessage.cpp
@@ -71,6 +71,7 @@
#include "debug.h"
#include <ctype.h>
#include <string.h>
+#include <stddef.h>
#include <stdlib.h>
#ifdef WIN32
# include <tchar.h>
diff --git a/libdjvu/DjVuMessageLite.cpp b/libdjvu/DjVuMessageLite.cpp
index b8c1010..5daa9d9 100644
--- a/libdjvu/DjVuMessageLite.cpp
+++ b/libdjvu/DjVuMessageLite.cpp
@@ -73,8 +73,8 @@
#include "debug.h"
#include <ctype.h>
#include <string.h>
+#include <stddef.h>
#include <stdlib.h>
-// #include <stdio.h>
#ifdef WIN32
#include <tchar.h>
#include <windows.h>
diff --git a/libdjvu/DjVuPalette.cpp b/libdjvu/DjVuPalette.cpp
index c489f7b..76b0bf4 100644
--- a/libdjvu/DjVuPalette.cpp
+++ b/libdjvu/DjVuPalette.cpp
@@ -64,6 +64,8 @@
#include "ByteStream.h"
#include "BSByteStream.h"
#include "DjVuPalette.h"
+
+#include <stddef.h>
#include <stdlib.h>
#include <math.h>
diff --git a/libdjvu/DjVuPort.h b/libdjvu/DjVuPort.h
index f6a92f6..e2b3125 100644
--- a/libdjvu/DjVuPort.h
+++ b/libdjvu/DjVuPort.h
@@ -65,6 +65,7 @@
#include "GThreads.h"
#include "GURL.h"
+#include "stddef.h"
#ifdef HAVE_NAMESPACES
namespace DJVU {
diff --git a/libdjvu/DjVuToPS.cpp b/libdjvu/DjVuToPS.cpp
index 5517bf3..6914ff9 100644
--- a/libdjvu/DjVuToPS.cpp
+++ b/libdjvu/DjVuToPS.cpp
@@ -72,6 +72,7 @@
#include "GPixmap.h"
#include "debug.h"
#include <stdarg.h>
+#include <stddef.h>
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
diff --git a/libdjvu/GBitmap.cpp b/libdjvu/GBitmap.cpp
index ab5c0de..797edcc 100644
--- a/libdjvu/GBitmap.cpp
+++ b/libdjvu/GBitmap.cpp
@@ -66,6 +66,8 @@
#include "GString.h"
#include "GThreads.h"
#include "GException.h"
+#include <stddef.h>
+#include <stdlib.h>
#include <string.h>
// - Author: Leon Bottou, 05/1997
diff --git a/libdjvu/GException.cpp b/libdjvu/GException.cpp
index 2ea179a..89da70f 100644
--- a/libdjvu/GException.cpp
+++ b/libdjvu/GException.cpp
@@ -60,6 +60,7 @@
# pragma implementation
#endif
+#include <stddef.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
diff --git a/libdjvu/GOS.cpp b/libdjvu/GOS.cpp
index e784932..d2088e2 100644
--- a/libdjvu/GOS.cpp
+++ b/libdjvu/GOS.cpp
@@ -65,6 +65,7 @@
#include "GOS.h"
#include "GURL.h"
+#include <stddef.h>
#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>
diff --git a/libdjvu/GPixmap.cpp b/libdjvu/GPixmap.cpp
index 392df54..4bf6f57 100644
--- a/libdjvu/GPixmap.cpp
+++ b/libdjvu/GPixmap.cpp
@@ -75,6 +75,8 @@
#include "GThreads.h"
#include "Arrays.h"
#include "JPEGDecoder.h"
+
+#include <stddef.h>
#include <stdlib.h>
#include <math.h>
#include <assert.h>
diff --git a/libdjvu/GSmartPointer.cpp b/libdjvu/GSmartPointer.cpp
index 6e523e7..58aef5b 100644
--- a/libdjvu/GSmartPointer.cpp
+++ b/libdjvu/GSmartPointer.cpp
@@ -67,6 +67,7 @@
// Our original implementation consisted of multiple classes.
// <http://prdownloads.sourceforge.net/djvu/DjVu2_2b-src.tgz>.
+#include <stddef.h>
#include <string.h>
#if PARANOID_DEBUG
# include <assert.h>
diff --git a/libdjvu/GSmartPointer.h b/libdjvu/GSmartPointer.h
index 82781bd..8a8bb8a 100644
--- a/libdjvu/GSmartPointer.h
+++ b/libdjvu/GSmartPointer.h
@@ -97,6 +97,8 @@
#include "DjVuGlobal.h"
#include "atomic.h"
+#include <stddef.h>
+
#ifdef HAVE_NAMESPACES
namespace DJVU {
# ifdef NOT_DEFINED // Just to fool emacs c++ mode
diff --git a/libdjvu/GString.cpp b/libdjvu/GString.cpp
index 03f6226..350b11b 100644
--- a/libdjvu/GString.cpp
+++ b/libdjvu/GString.cpp
@@ -73,6 +73,7 @@
#include "GThreads.h"
#include "debug.h"
+#include <stddef.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
diff --git a/libdjvu/GString.h b/libdjvu/GString.h
index b63b753..3aa1f76 100644
--- a/libdjvu/GString.h
+++ b/libdjvu/GString.h
@@ -108,6 +108,7 @@
#include "DjVuGlobal.h"
#include "GContainer.h"
+#include <stddef.h>
#include <stdlib.h>
#include <stdarg.h>
#ifdef WIN32
diff --git a/libdjvu/GThreads.cpp b/libdjvu/GThreads.cpp
index d81f3c3..253fed8 100644
--- a/libdjvu/GThreads.cpp
+++ b/libdjvu/GThreads.cpp
@@ -71,6 +71,8 @@
#include "GThreads.h"
#include "GException.h"
#include "DjVuMessageLite.h"
+
+#include <stddef.h>
#include <stdlib.h>
#include <stdio.h>
diff --git a/libdjvu/GURL.cpp b/libdjvu/GURL.cpp
index c37bf52..a80078c 100644
--- a/libdjvu/GURL.cpp
+++ b/libdjvu/GURL.cpp
@@ -72,6 +72,7 @@
#include "GURL.h"
#include "debug.h"
+#include <stddef.h>
#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>
diff --git a/libdjvu/GUnicode.cpp b/libdjvu/GUnicode.cpp
index 415c081..a8b25b8 100644
--- a/libdjvu/GUnicode.cpp
+++ b/libdjvu/GUnicode.cpp
@@ -62,6 +62,8 @@
#include "GString.h"
+#include <stddef.h>
+
#if HAS_ICONV
#include <iconv.h>
#endif
diff --git a/libdjvu/IFFByteStream.h b/libdjvu/IFFByteStream.h
index a653f8c..e31b216 100644
--- a/libdjvu/IFFByteStream.h
+++ b/libdjvu/IFFByteStream.h
@@ -124,6 +124,7 @@
#include "DjVuGlobal.h"
+#include <stddef.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
diff --git a/libdjvu/IW44EncodeCodec.cpp b/libdjvu/IW44EncodeCodec.cpp
index 8d7b12c..49081b7 100644
--- a/libdjvu/IW44EncodeCodec.cpp
+++ b/libdjvu/IW44EncodeCodec.cpp
@@ -76,6 +76,7 @@
#include "IFFByteStream.h"
#include "GRect.h"
+#include <stddef.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
diff --git a/libdjvu/IW44Image.cpp b/libdjvu/IW44Image.cpp
index 9476726..4a19fb5 100644
--- a/libdjvu/IW44Image.cpp
+++ b/libdjvu/IW44Image.cpp
@@ -76,6 +76,7 @@
#include "IFFByteStream.h"
#include "GRect.h"
+#include <stddef.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
diff --git a/libdjvu/JPEGDecoder.h b/libdjvu/JPEGDecoder.h
index bd430a0..fad1d4c 100644
--- a/libdjvu/JPEGDecoder.h
+++ b/libdjvu/JPEGDecoder.h
@@ -64,6 +64,7 @@
#ifdef NEED_JPEG_DECODER
+#include <stddef.h>
#include <string.h>
#include <setjmp.h>
diff --git a/libdjvu/MMX.cpp b/libdjvu/MMX.cpp
index 5ab60bb..528dab6 100644
--- a/libdjvu/MMX.cpp
+++ b/libdjvu/MMX.cpp
@@ -62,6 +62,7 @@
#include "MMX.h"
#include <stdio.h>
+#include <stddef.h>
#include <stdlib.h>
diff --git a/libdjvu/UnicodeByteStream.h b/libdjvu/UnicodeByteStream.h
index 0ae112b..9b49a17 100644
--- a/libdjvu/UnicodeByteStream.h
+++ b/libdjvu/UnicodeByteStream.h
@@ -88,6 +88,7 @@
#include "GString.h"
#include "ByteStream.h"
+#include <stddef.h>
#ifdef HAVE_NAMESPACES
namespace DJVU {
diff --git a/libdjvu/XMLParser.cpp b/libdjvu/XMLParser.cpp
index 84386c5..7da923a 100644
--- a/libdjvu/XMLParser.cpp
+++ b/libdjvu/XMLParser.cpp
@@ -75,6 +75,7 @@
#include "debug.h"
#include <stdio.h>
#include <ctype.h>
+#include <stddef.h>
#include <stdlib.h>
diff --git a/libdjvu/ZPCodec.cpp b/libdjvu/ZPCodec.cpp
index f6e971d..ff5b9bf 100644
--- a/libdjvu/ZPCodec.cpp
+++ b/libdjvu/ZPCodec.cpp
@@ -66,6 +66,8 @@
#include "ZPCodec.h"
#include "ByteStream.h"
#include "GException.h"
+
+#include <stddef.h>
#include <stdlib.h>
#include <assert.h>
#include <math.h>
diff --git a/libdjvu/atomic.cpp b/libdjvu/atomic.cpp
index bdc193e..63fd483 100644
--- a/libdjvu/atomic.cpp
+++ b/libdjvu/atomic.cpp
@@ -28,6 +28,7 @@
# include "config.h"
#endif
+#include <stddef.h>
#include <stdlib.h>
#include <assert.h>
#include "atomic.h"
diff --git a/libdjvu/ddjvuapi.cpp b/libdjvu/ddjvuapi.cpp
index b18b84b..f40f5aa 100644
--- a/libdjvu/ddjvuapi.cpp
+++ b/libdjvu/ddjvuapi.cpp
@@ -60,6 +60,7 @@
# pragma implementation "ddjvuapi.h"
#endif
+#include <stddef.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
diff --git a/libdjvu/ddjvuapi.h b/libdjvu/ddjvuapi.h
index d0ed48f..841f223 100644
--- a/libdjvu/ddjvuapi.h
+++ b/libdjvu/ddjvuapi.h
@@ -64,6 +64,7 @@ extern "C" {
}
#endif
+#include <stddef.h>
#include <stdlib.h>
#include <stdio.h>
diff --git a/libdjvu/miniexp.cpp b/libdjvu/miniexp.cpp
index e0fb087..fc51297 100644
--- a/libdjvu/miniexp.cpp
+++ b/libdjvu/miniexp.cpp
@@ -23,6 +23,7 @@
# pragma implementation "miniexp.h"
#endif
+#include <stddef.h>
#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>
diff --git a/libdjvu/miniexp.h b/libdjvu/miniexp.h
index 91e345d..993005b 100644
--- a/libdjvu/miniexp.h
+++ b/libdjvu/miniexp.h
@@ -38,7 +38,8 @@ extern "C" {
#ifndef MINILISPAPI
# define MINILISPAPI /**/
#endif
-
+
+#include <stddef.h>
/* -------------------------------------------------- */
/* LISP EXPRESSIONS */
diff --git a/tools/bzz.cpp b/tools/bzz.cpp
index ca092e1..2ebc7b9 100644
--- a/tools/bzz.cpp
+++ b/tools/bzz.cpp
@@ -94,6 +94,7 @@
#include "GURL.h"
#include "DjVuMessage.h"
#include <locale.h>
+#include <stddef.h>
#include <stdlib.h>
static const char *program = "(unknown)";
diff --git a/tools/c44.cpp b/tools/c44.cpp
index 6f23b53..855504b 100644
--- a/tools/c44.cpp
+++ b/tools/c44.cpp
@@ -226,6 +226,7 @@
#include <locale.h>
#include <stdio.h>
#include <string.h>
+#include <stddef.h>
#include <stdlib.h>
// command line data
diff --git a/tools/cjb2.cpp b/tools/cjb2.cpp
index 8cf89b9..11eb662 100644
--- a/tools/cjb2.cpp
+++ b/tools/cjb2.cpp
@@ -120,6 +120,7 @@
#include "jb2tune.h"
#include <locale.h>
+#include <stddef.h>
#include <stdlib.h>
#if HAVE_TIFF
#include <tiffio.h>
diff --git a/tools/cpaldjvu.cpp b/tools/cpaldjvu.cpp
index 111cbd3..b640a7a 100644
--- a/tools/cpaldjvu.cpp
+++ b/tools/cpaldjvu.cpp
@@ -118,6 +118,7 @@
#include "jb2tune.h"
#include <locale.h>
+#include <stddef.h>
#include <stdlib.h>
#include <math.h>
diff --git a/tools/csepdjvu.cpp b/tools/csepdjvu.cpp
index cd721f8..d5203d5 100644
--- a/tools/csepdjvu.cpp
+++ b/tools/csepdjvu.cpp
@@ -162,6 +162,7 @@
#include "jb2tune.h"
#include <locale.h>
+#include <stddef.h>
#include <stdlib.h>
#undef MIN
diff --git a/tools/ddjvu.cpp b/tools/ddjvu.cpp
index 817e045..981a270 100644
--- a/tools/ddjvu.cpp
+++ b/tools/ddjvu.cpp
@@ -62,6 +62,7 @@
# include "config.h"
#endif
+#include <stddef.h>
#include <stdlib.h>
#include <stdio.h>
#include <stdarg.h>
diff --git a/tools/djvm.cpp b/tools/djvm.cpp
index 951bd66..6ea88c2 100644
--- a/tools/djvm.cpp
+++ b/tools/djvm.cpp
@@ -135,9 +135,9 @@
#include "DjVuMessage.h"
#include <locale.h>
+#include <stddef.h>
#include <stdlib.h>
#include <stdio.h>
-#include <stdlib.h>
static const char * progname;
diff --git a/tools/djvmcvt.cpp b/tools/djvmcvt.cpp
index 9ca1c54..20b468a 100644
--- a/tools/djvmcvt.cpp
+++ b/tools/djvmcvt.cpp
@@ -144,6 +144,7 @@
#include <locale.h>
#include <stdio.h>
+#include <stddef.h>
#include <stdlib.h>
static const char * progname;
diff --git a/tools/djvudump.cpp b/tools/djvudump.cpp
index 6a0215a..2dddbdf 100644
--- a/tools/djvudump.cpp
+++ b/tools/djvudump.cpp
@@ -119,6 +119,7 @@ xxx
#include <locale.h>
#include <stdio.h>
#include <ctype.h>
+#include <stddef.h>
#include <stdlib.h>
void
diff --git a/tools/djvuextract.cpp b/tools/djvuextract.cpp
index 4a9f381..907b99c 100644
--- a/tools/djvuextract.cpp
+++ b/tools/djvuextract.cpp
@@ -105,6 +105,7 @@
#include "GOS.h"
#include "DjVuMessage.h"
#include <locale.h>
+#include <stddef.h>
#include <stdlib.h>
diff --git a/tools/djvumake.cpp b/tools/djvumake.cpp
index 7020484..4c5fc0f 100644
--- a/tools/djvumake.cpp
+++ b/tools/djvumake.cpp
@@ -153,6 +153,7 @@
#include <locale.h>
#include <stdio.h>
+#include <stddef.h>
#include <stdlib.h>
#include <ctype.h>
diff --git a/tools/djvups.cpp b/tools/djvups.cpp
index 51aa999..632b832 100644
--- a/tools/djvups.cpp
+++ b/tools/djvups.cpp
@@ -57,6 +57,7 @@
# include "config.h"
#endif
+#include <stddef.h>
#include <stdlib.h>
#include <stdio.h>
#include <stdarg.h>
diff --git a/tools/djvused.cpp b/tools/djvused.cpp
index de84dcd..687fdca 100644
--- a/tools/djvused.cpp
+++ b/tools/djvused.cpp
@@ -61,6 +61,7 @@
#endif
#include <stdio.h>
+#include <stddef.h>
#include <stdlib.h>
#include <stdarg.h>
#include <errno.h>
diff --git a/tools/djvuserve.cpp b/tools/djvuserve.cpp
index 19a17da..818fe78 100644
--- a/tools/djvuserve.cpp
+++ b/tools/djvuserve.cpp
@@ -73,6 +73,7 @@
#include <locale.h>
#include <stdio.h>
+#include <stddef.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <time.h>
diff --git a/tools/djvutxt.cpp b/tools/djvutxt.cpp
index ba2c745..9e9124c 100644
--- a/tools/djvutxt.cpp
+++ b/tools/djvutxt.cpp
@@ -61,6 +61,7 @@
# include "config.h"
#endif
+#include <stddef.h>
#include <stdlib.h>
#include <stdio.h>
#include <stdarg.h>
diff --git a/tools/tiff2pdf.h b/tools/tiff2pdf.h
index 082f5fb..656dc43 100644
--- a/tools/tiff2pdf.h
+++ b/tools/tiff2pdf.h
@@ -22,6 +22,7 @@
# endif
# if HAVE_TIFF
# include <stdio.h>
+# include <stddef.h>
# include <stdlib.h>
# include <tiff.h>
# include <tiffio.h>
diff --git a/xmltools/djvutoxml.cpp b/xmltools/djvutoxml.cpp
index 17c769b..b40535e 100644
--- a/xmltools/djvutoxml.cpp
+++ b/xmltools/djvutoxml.cpp
@@ -71,6 +71,7 @@
#include <locale.h>
#include <stdio.h>
+#include <stddef.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <assert.h>
diff --git a/xmltools/djvuxmlparser.cpp b/xmltools/djvuxmlparser.cpp
index bdc5768..6679a9d 100644
--- a/xmltools/djvuxmlparser.cpp
+++ b/xmltools/djvuxmlparser.cpp
@@ -70,6 +70,7 @@
#include <stdio.h>
#include <ctype.h>
#include <locale.h>
+#include <stddef.h>
#include <stdlib.h>
static void

View File

@ -1,59 +0,0 @@
{ fetchurl, stdenv, perl, perlXMLParser, gettext, intltool
, pkgconfig, glib, gtk, gnomedocutils, gnomeicontheme
, libgnome, libgnomeui, scrollkeeper, libxslt
, libglade, libgnome_keyring, dbus, dbus_glib
, poppler, libspectre, djvulibre, shared_mime_info
, makeWrapper, which, ghostscript
, recentListSize ? null # 5 is not enough, allow passing a different number
}:
stdenv.mkDerivation rec {
name = "evince-2.32.0";
src = fetchurl {
url = "http://ftp.gnome.org/pub/GNOME/sources/evince/2.32/${name}.tar.bz2";
sha256 = "2a4c91ae38f8b5028cebb91b9da9ddc50ea8ae3f3d429df89ba351da2d787ff7";
};
buildInputs = [
perl perlXMLParser gettext intltool pkgconfig glib gtk
gnomedocutils gnomeicontheme libgnome libgnomeui libglade
scrollkeeper libgnome_keyring
libxslt # for `xsltproc'
dbus dbus_glib poppler libspectre djvulibre makeWrapper which
ghostscript
];
configureFlags = "--with-libgnome --enable-dbus --enable-pixbuf "
# Do not use nautilus
+ " --disable-nautilus "
# Do not update Scrollkeeper's database (GNOME's help system).
+ "--disable-scrollkeeper";
postUnpack = if recentListSize != null then ''
sed -i 's/\(gtk_recent_chooser_set_limit .*\)5)/\1${builtins.toString recentListSize})/' */shell/ev-open-recent-action.c
sed -i 's/\(if (++n_items == \)5\(.*\)/\1${builtins.toString recentListSize}\2/' */shell/ev-window.c
'' else "";
postInstall = ''
# Tell Glib/GIO about the MIME info directory, which is used
# by `g_file_info_get_content_type ()'.
wrapProgram "$out/bin/evince" \
--prefix XDG_DATA_DIRS : "${shared_mime_info}/share:$out/share"
'';
meta = {
homepage = http://www.gnome.org/projects/evince/;
description = "Evince, GNOME's document viewer";
longDescription = ''
Evince is a document viewer for multiple document formats. It
currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal
of Evince is to replace the multiple document viewers that exist
on the GNOME Desktop with a single simple application.
'';
license = "GPLv2+";
};
}

View File

@ -0,0 +1,45 @@
{ stdenv, fetchurl, unzip, makeDesktopItem, mono }:
stdenv.mkDerivation rec {
name = "keepass-${version}";
version = "2.22";
src = fetchurl {
url = "mirror://sourceforge/keepass/KeePass-${version}.zip";
sha256 = "0mman7r1jmirfwzix5qww0yn4rrgzcg7546basxjvvfc8flp43j0";
};
sourceRoot = ".";
phases = [ "unpackPhase" "installPhase" ];
desktopItem = makeDesktopItem {
name = "keepass";
exec = "keepass";
comment = "Password manager";
desktopName = "Keepass";
genericName = "Password manager";
categories = "Application;Other;";
};
installPhase = ''
ensureDir "$out/bin"
echo "${mono}/bin/mono $out/KeePass.exe" > $out/bin/keepass
chmod +x $out/bin/keepass
echo $out
cp -r ./* $out/
ensureDir "$out/share/applications"
cp ${desktopItem}/share/applications/* $out/share/applications
'';
buildInputs = [ unzip ];
meta = {
description = "GUI password manager with strong cryptography";
homepage = http://www.keepass.info/;
maintainers = with stdenv.lib.maintainers; [amorsillo];
platforms = with stdenv.lib.platforms; all;
license = stdenv.lib.licenses.gpl2;
};
}

View File

@ -0,0 +1,31 @@
{ stdenv, fetchurl, pkgconfig, glib, gettext }:
stdenv.mkDerivation rec {
name= "sdcv-0.4.2";
meta = {
homepage = http://sdcv.sourceforge.net/;
description = "Console version of StarDict program";
maintainers = with stdenv.lib.maintainers; [ lovek323 ];
license = stdenv.lib.licenses.gpl2;
platforms = stdenv.lib.platforms.unix;
};
src = fetchurl {
url = "mirror://sourceforge/sdcv/${name}.tar.bz2";
sha256 = "1cnyv7gd1qvz8ma8545d3aq726wxrx4km7ykl97831irx5wz0r51";
};
patches = ( if stdenv.isDarwin
then [ ./sdcv.cpp.patch-darwin ./utils.hpp.patch ]
else [ ./sdcv.cpp.patch ] );
buildInputs = [ pkgconfig glib gettext ];
preBuild = ''
sed -i 's/guint32 page_size/size_t page_size/' src/lib/lib.cpp
'';
NIX_CFLAGS_COMPILE = "-D__GNU_LIBRARY__";
}

View File

@ -0,0 +1,12 @@
--- a/src/utils.hpp
+++ b/src/utils.hpp
@@ -2,6 +2,9 @@
#define _UTILS_HPP_
#include <string>
+#include <stdio.h>
+#include <cstdlib>
+
using std::string;
extern bool stdio_getline(FILE *in, string &str);

View File

@ -0,0 +1,19 @@
--- a/src/sdcv.cpp
+++ b/src/sdcv.cpp
@@ -27,13 +27,13 @@
#include <cstdlib>
#include <cstdio>
#include <clocale>
+#include <string>
+#include <vector>
+#include <memory>
#include <glib.h>
#include <glib/gi18n.h>
#include <glib/gstdio.h>
#include <getopt.h>
-#include <string>
-#include <vector>
-#include <memory>
#include "libwrapper.hpp"
#include "readline.hpp"

View File

@ -0,0 +1,10 @@
--- a/src/utils.hpp
+++ b/src/utils.hpp
@@ -2,6 +2,7 @@
#define _UTILS_HPP_
#include <string>
+#include <cstdlib>
using std::string;
extern bool stdio_getline(FILE *in, string &str);

View File

@ -0,0 +1,54 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3b61fc0..2206646 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -133,6 +133,9 @@ if (UNIX)
check_type_size(long SIZEOF_LONG)
check_type_size(short SIZEOF_SHORT)
+ # let's just assume cryptopp exists (provided by the Nix expression)
+ list(APPEND libs cryptopp)
+
# pthread is used on both Linux and Mac
check_library_exists("pthread" pthread_create "" HAVE_PTHREAD)
if (HAVE_PTHREAD)
@@ -303,7 +306,6 @@ if (VNC_SUPPORT)
endif()
add_subdirectory(src)
-add_subdirectory(tools)
if (WIN32)
# add /analyze in order to unconver potential bugs in the source code
diff --git a/src/lib/synergy/CCryptoMode.h b/src/lib/synergy/CCryptoMode.h
index 9b7e8ad..0d659ac 100644
--- a/src/lib/synergy/CCryptoMode.h
+++ b/src/lib/synergy/CCryptoMode.h
@@ -17,9 +17,9 @@
#pragma once
-#include <cryptopp562/gcm.h>
-#include <cryptopp562/modes.h>
-#include <cryptopp562/aes.h>
+#include <cryptopp/gcm.h>
+#include <cryptopp/modes.h>
+#include <cryptopp/aes.h>
#include "ECryptoMode.h"
#include "CString.h"
diff --git a/src/lib/synergy/CCryptoStream.h b/src/lib/synergy/CCryptoStream.h
index 104b1f6..09c4dc4 100644
--- a/src/lib/synergy/CCryptoStream.h
+++ b/src/lib/synergy/CCryptoStream.h
@@ -20,8 +20,8 @@
#include "BasicTypes.h"
#include "CStreamFilter.h"
#include "CCryptoMode.h"
-#include <cryptopp562/osrng.h>
-#include <cryptopp562/sha.h>
+#include <cryptopp/osrng.h>
+#include <cryptopp/sha.h>
class CCryptoOptions;

View File

@ -1,19 +1,34 @@
{ stdenv, fetchurl, cmake, x11, libX11, libXi, libXtst }:
{ stdenv, fetchurl, cmake, x11, libX11, libXi, libXtst, libXrandr, xinput
, cryptopp ? null, unzip ? null }:
assert stdenv.isLinux -> cryptopp != null;
assert !stdenv.isLinux -> unzip != null;
with stdenv.lib;
stdenv.mkDerivation rec {
name = "synergy-1.4.10";
name = "synergy-1.4.12";
src = fetchurl {
url = "http://synergy.googlecode.com/files/${name}-Source.tar.gz";
sha256 = "1ghgf96gbk4sdw8sqlc3pjschkmmqybihi12mg6hi26gnk7a5m86";
sha256 = "0j884skwqy8r8ckj9a4rlwsbjwb1yrj9wqma1nwhr2inff6hrdim";
};
buildInputs = [ cmake x11 libX11 libXi libXtst ];
patches = optional stdenv.isLinux ./cryptopp.patch;
postPatch = if stdenv.isLinux then ''
sed -i -e '/HAVE_X11_EXTENSIONS_XRANDR_H/c \
set(HAVE_X11_EXTENSIONS_XRANDR_H true)' CMakeLists.txt
'' else ''
${unzip}/bin/unzip -d tools/cryptopp562 tools/cryptopp562.zip
'';
buildInputs = [ cmake x11 libX11 libXi libXtst libXrandr xinput ]
++ optional stdenv.isLinux cryptopp;
# At this moment make install doesn't work for synergy
# http://synergy-foss.org/spit/issues/details/3317/
installPhase = ''
ensureDir $out/bin
cp ../bin/synergyc $out/bin
@ -21,10 +36,14 @@ stdenv.mkDerivation rec {
cp ../bin/synergyd $out/bin
'';
doCheck = true;
checkPhase = "../bin/unittests";
meta = {
description = "Tool to share the mouse keyboard and the clipboard between computers";
homepage = http://synergy-foss.org;
license = stdenv.lib.licenses.gpl2;
platforms = stdenv.lib.platforms.all;
license = licenses.gpl2;
maintainers = [ maintainers.aszlig ];
platforms = platforms.all;
};
}

View File

@ -84,6 +84,11 @@ let
buildPath = "out/${buildType}";
libExecPath = "$out/libexec/${packageName}";
# user namespace sandbox patch
userns_patch = if versionOlder sourceInfo.version "29.0.0.0"
then ./sandbox_userns.patch
else ./sandbox_userns_29.patch;
in stdenv.mkDerivation rec {
name = "${packageName}-${version}";
inherit packageName;
@ -116,18 +121,14 @@ in stdenv.mkDerivation rec {
prePatch = "patchShebangs .";
patches = [ ./sandbox_userns.patch ]
patches = [ userns_patch ]
++ optional cupsSupport ./cups_allow_deprecated.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
'' + ''
sed -i -e 's|/usr/bin/gcc|gcc|' \
third_party/WebKit/Source/${if !versionOlder sourceInfo.version "28.0.0.0"
then "core/core.gypi"
else "WebCore/WebCore.gyp/WebCore.gyp"}
'';
gypFlags = mkGypFlags (gypFlagsUseSystemLibs // {

View File

@ -0,0 +1,287 @@
commit 557daf9cc9c02b8f17e6ee84f9b1ae6e6132d478
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_util.h b/base/process_util.h
index 0bec8e0..6b6f566 100644
--- a/base/process_util.h
+++ b/base/process_util.h
@@ -175,6 +175,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)
@@ -249,6 +250,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_util_posix.cc b/base/process_util_posix.cc
index 83afe44..e529b2b 100644
--- a/base/process_util_posix.cc
+++ b/base/process_util_posix.cc
@@ -34,6 +34,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
@@ -621,8 +628,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
{
@@ -635,6 +653,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
@@ -749,6 +782,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 130f44a..c1232d4 100644
--- a/content/browser/zygote_host/zygote_host_impl_linux.cc
+++ b/content/browser/zygote_host/zygote_host_impl_linux.cc
@@ -118,25 +118,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 "
@@ -160,7 +166,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 7d01722..2f445ef 100644
--- a/content/zygote/zygote_main_linux.cc
+++ b/content/zygote/zygote_main_linux.cc
@@ -395,6 +395,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";

View File

@ -1,18 +1,18 @@
# This file is autogenerated from update.sh in the same directory.
{
dev = {
version = "29.0.1516.3";
url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-29.0.1516.3.tar.xz";
sha256 = "0pdn9c6v0v55d7g4amivxrv132bpj9sfqywk5b8l6kqfjq28mw5k";
version = "29.0.1541.2";
url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-29.0.1541.2.tar.xz";
sha256 = "0i3vp2zrk1sjdhkwdhig08jh0qmzahn96pm0i22r63cp8i9vny1p";
};
beta = {
version = "28.0.1500.36";
url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-28.0.1500.36.tar.xz";
sha256 = "1bz9w46ps8gj056hfwbcj4myyxyr7y759nagz9idraia8116m3pp";
version = "28.0.1500.52";
url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-28.0.1500.52.tar.xz";
sha256 = "1d0q8lsvwqkaninmnyc8jjj0pnqxc5rr3lr3mgzj37avksxvyg3v";
};
stable = {
version = "27.0.1453.110";
url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-27.0.1453.110.tar.xz";
sha256 = "1y61shbzrkcv70x9zyj559g2yyp40hi9y59f7wwx5g076lsaxsw5";
version = "28.0.1500.52";
url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-28.0.1500.52.tar.xz";
sha256 = "1d0q8lsvwqkaninmnyc8jjj0pnqxc5rr3lr3mgzj37avksxvyg3v";
};
}

View File

@ -1,6 +1,7 @@
#!/bin/sh
channels_url="http://omahaproxy.appspot.com/all?csv=1";
history_url="http://omahaproxy.appspot.com/history";
bucket_url="http://commondatastorage.googleapis.com/chromium-browser-official/";
output_file="$(cd "$(dirname "$0")" && pwd)/sources.nix";
@ -41,6 +42,17 @@ sha_insert()
ver_sha_table="$ver_sha_table $version:$sha256";
}
get_newest_ver()
{
versions="$(for v in $@; do echo "$v"; done)";
if oldest="$(echo "$versions" | sort -V 2> /dev/null | tail -n1)";
then
echo "$oldest";
else
echo "$versions" | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n | tail -n1;
fi;
}
if [ -e "$output_file" ];
then
get_sha256()
@ -53,38 +65,55 @@ then
echo -n "Checking if $oldver ($channel) is up to date..." >&2;
if [ "x$version" != "x$oldver" ];
if [ "x$(get_newest_ver "$version" "$oldver")" != "x$oldver" ];
then
echo " no, getting sha256 for new version $version:" >&2;
sha256="$(nix-prefetch-url "$url")";
sha256="$(nix-prefetch-url "$url")" || return 1;
else
echo " yes, keeping old sha256." >&2;
sha256="$(nix_getattr "$output_file" "$channel.sha256")";
sha256="$(nix_getattr "$output_file" "$channel.sha256")" \
|| return 1;
fi;
sha_insert "$version" "$sha256";
echo "$sha256";
return 0;
}
else
get_sha256()
{
nix-prefetch-url "$url";
nix-prefetch-url "$3";
}
fi;
fetch_filtered_history()
{
curl -s "$history_url" | sed -nr 's/^'"linux,$1"',([^,]+).*$/\1/p';
}
get_prev_sha256()
{
channel="$1";
current_version="$2";
for version in $(fetch_filtered_history "$channel");
do
[ "x$version" = "x$current_version" ] && continue;
url="${bucket_url%/}/chromium-$version.tar.xz";
sha256="$(get_sha256 "$channel" "$version" "$url")" || continue;
echo "$sha256:$version:$url";
return 0;
done;
}
get_channel_exprs()
{
for chline in $(echo "$1" | cut -d, -f-2);
for chline in $1;
do
channel="${chline%%,*}";
version="${chline##*,}";
# XXX: Remove case after version 26 is stable:
if [ "${version%%.*}" -ge 26 ]; then
url="${bucket_url%/}/chromium-$version.tar.xz";
else
url="${bucket_url%/}/chromium-$version.tar.bz2";
fi;
echo -n "Checking if sha256 of version $version is cached..." >&2;
if sha256="$(sha_lookup "$version")";
@ -93,6 +122,17 @@ get_channel_exprs()
else
echo " no." >&2;
sha256="$(get_sha256 "$channel" "$version" "$url")";
if [ $? -ne 0 ];
then
echo "Whoops, failed to fetch $version, trying previous" \
"versions:" >&2;
sha_ver_url="$(get_prev_sha256 "$channel" "$version")";
sha256="${sha_ver_url%%:*}";
ver_url="${sha_ver_url#*:}";
version="${ver_url%%:*}";
url="${ver_url#*:}";
fi;
fi;
sha_insert "$version" "$sha256";
@ -108,7 +148,7 @@ get_channel_exprs()
cd "$(dirname "$0")";
omaha="$(curl -s "$channels_url")";
versions="$(echo "$omaha" | sed -n -e 's/^linux,\(\([^,]\+,\)\{2\}\).*$/\1/p')";
versions="$(echo "$omaha" | sed -nr -e 's/^linux,([^,]+,[^,]+).*$/\1/p')";
channel_exprs="$(get_channel_exprs "$versions")";
cat > "$output_file" <<-EOF

View File

@ -35,7 +35,7 @@ rec {
#"--enable-profiling"
"--disable-debug"
"--enable-strip"
# "--with-system-jpeg" # Too old in nixpkgs
"--with-system-jpeg" # now we use recent libjpeg-turbo
"--with-system-zlib"
"--with-system-bz2"
"--with-system-nspr"
@ -135,7 +135,6 @@ rec {
[ "--enable-application=browser"
"--with-libxul-sdk=${xulrunner}/lib/xulrunner-devel-${xulrunner.version}"
"--enable-chrome-format=jar"
"--disable-elf-hack"
]
++ commonConfigureFlags
++ stdenv.lib.optional enableOfficialBranding "--enable-official-branding";

View File

@ -1,8 +1,10 @@
{ stdenv, fetchurl, pkgconfig, gtk, pango, perl, python, zip, libIDL
, libjpeg, libpng, zlib, cairo, dbus, dbus_glib, bzip2, xlibs
, libjpeg, libpng, zlib, dbus, dbus_glib, bzip2, xlibs
, freetype, fontconfig, file, alsaLib, nspr, nss, libnotify
, yasm, mesa, sqlite, unzip, makeWrapper, pysqlite
, hunspell, libevent, libstartup_notification, libvpx
, cairo ? null
, useSystemCairo ? false
, # 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
@ -12,8 +14,10 @@
}:
assert stdenv.gcc ? libc && stdenv.gcc.libc != null;
assert useSystemCairo -> cairo != null;
rec {
let optional = stdenv.lib.optional;
in rec {
firefoxVersion = "21.0";
@ -35,20 +39,25 @@ rec {
#"--enable-profiling"
"--disable-debug"
"--enable-strip"
# "--with-system-jpeg" # Too old in nixpkgs
"--with-system-jpeg"
"--with-system-zlib"
"--with-system-bz2"
"--with-system-nspr"
"--with-system-nss"
"--with-system-libevent"
"--with-system-libvpx"
# "--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-startup-notification"
"--enable-system-ffi"
"--enable-system-hunspell"
"--enable-system-pixman"
"--enable-system-sqlite"
"--disable-crashreporter"
"--disable-tests"
"--disable-necko-wifi" # maybe we want to enable this at some point
"--disable-installer"
"--disable-updater"
];
] ++ optional useSystemCairo "--enable-system-cairo";
xulrunner = stdenv.mkDerivation rec {
@ -57,13 +66,14 @@ rec {
inherit src;
buildInputs =
[ pkgconfig gtk perl zip libIDL libjpeg libpng zlib cairo bzip2
[ pkgconfig gtk perl zip libIDL libjpeg libpng zlib 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
];
hunspell libevent libstartup_notification libvpx
] ++ optional useSystemCairo cairo;
configureFlags =
[ "--enable-application=xulrunner"
@ -72,6 +82,8 @@ rec {
enableParallelBuilding = true;
patches = optional useSystemCairo ./system-cairo.patch; # probably in 22
preConfigure =
''
export NIX_LDFLAGS="$NIX_LDFLAGS -L$out/lib/xulrunner-${xulVersion}"
@ -124,9 +136,14 @@ rec {
enableParallelBuilding = true;
buildInputs =
[ pkgconfig gtk perl zip libIDL libjpeg zlib cairo bzip2 python
[ pkgconfig gtk perl zip libIDL libjpeg zlib bzip2 python
dbus dbus_glib pango freetype fontconfig alsaLib nspr nss libnotify
xlibs.pixman yasm mesa sqlite file unzip pysqlite
hunspell libevent libstartup_notification libvpx
] ++ optional useSystemCairo cairo;
patches = [
./disable-reporter.patch # fixes "search box not working when built on xulrunner"
];
propagatedBuildInputs = [xulrunner];
@ -135,7 +152,6 @@ rec {
[ "--enable-application=browser"
"--with-libxul-sdk=${xulrunner}/lib/xulrunner-devel-${xulrunner.version}"
"--enable-chrome-format=jar"
"--disable-elf-hack"
]
++ commonConfigureFlags
++ stdenv.lib.optional enableOfficialBranding "--enable-official-branding";

View File

@ -0,0 +1,20 @@
# from:
# - https://www.linuxquestions.org/questions/linux-from-scratch-13/blfs-xulrunner-firefox-21-0-and-search-4175462532/
# - http://www.mail-archive.com/blfs-support@linuxfromscratch.org/msg17359.html
--- mozilla-release/browser/base/content/browser.js.orig 2013-05-11 16:19:21.000000000 -0300
+++ mozilla-release/browser/base/content/browser.js 2013-06-07 00:39:16.114862388 -0300
@@ -3559,10 +3559,12 @@
*/
recordSearchInHealthReport: function (engine, source) {
#ifdef MOZ_SERVICES_HEALTHREPORT
- let reporter = Cc["@mozilla.org/datareporting/service;1"]
+ /*let reporter = Cc["@mozilla.org/datareporting/service;1"]
.getService()
.wrappedJSObject
.healthReporter;
+ */
+ return;
// This can happen if the FHR component of the data reporting service is
// disabled. This is controlled by a pref that most will never use.

View File

@ -0,0 +1,73 @@
# HG changeset patch
# From: https://hg.mozilla.org/mozilla-central/rev/52b02042b27f
# User Connor Behan <connor.behan@gmail.com>
# Date 1370038985 -7200
# Node ID 52b02042b27f75acbcb2bd4822bedb00ab680e67
# Parent 08ed531fed70978385cf9253bbc8389b0abe76ca
Bug 722975: Unbreak builds using --with-system-cairo. r=bas
diff --git a/gfx/thebes/gfxPlatform.cpp b/gfx/thebes/gfxPlatform.cpp
--- a/gfx/thebes/gfxPlatform.cpp
+++ b/gfx/thebes/gfxPlatform.cpp
@@ -548,23 +548,31 @@ struct SourceSurfaceUserData
BackendType mBackendType;
};
void SourceBufferDestroy(void *srcSurfUD)
{
delete static_cast<SourceSurfaceUserData*>(srcSurfUD);
}
+#if MOZ_TREE_CAIRO
void SourceSnapshotDetached(cairo_surface_t *nullSurf)
{
gfxImageSurface* origSurf =
static_cast<gfxImageSurface*>(cairo_surface_get_user_data(nullSurf, &kSourceSurface));
origSurf->SetData(&kSourceSurface, NULL, NULL);
}
+#else
+void SourceSnapshotDetached(void *nullSurf)
+{
+ gfxImageSurface* origSurf = static_cast<gfxImageSurface*>(nullSurf);
+ origSurf->SetData(&kSourceSurface, NULL, NULL);
+}
+#endif
RefPtr<SourceSurface>
gfxPlatform::GetSourceSurfaceForSurface(DrawTarget *aTarget, gfxASurface *aSurface)
{
void *userData = aSurface->GetData(&kSourceSurface);
if (userData) {
SourceSurfaceUserData *surf = static_cast<SourceSurfaceUserData*>(userData);
@@ -667,24 +675,28 @@ gfxPlatform::GetSourceSurfaceForSurface(
}
srcBuffer = Factory::CreateWrappingDataSourceSurface(imgSurface->Data(),
imgSurface->Stride(),
size, format);
}
+#if MOZ_TREE_CAIRO
cairo_surface_t *nullSurf =
cairo_null_surface_create(CAIRO_CONTENT_COLOR_ALPHA);
cairo_surface_set_user_data(nullSurf,
&kSourceSurface,
imgSurface,
NULL);
cairo_surface_attach_snapshot(imgSurface->CairoSurface(), nullSurf, SourceSnapshotDetached);
cairo_surface_destroy(nullSurf);
+#else
+ cairo_surface_set_mime_data(imgSurface->CairoSurface(), "mozilla/magic", (const unsigned char*) "data", 4, SourceSnapshotDetached, imgSurface.get());
+#endif
}
SourceSurfaceUserData *srcSurfUD = new SourceSurfaceUserData;
srcSurfUD->mBackendType = aTarget->GetType();
srcSurfUD->mSrcSurface = srcBuffer;
aSurface->SetData(&kSourceSurface, srcSurfUD, SourceBufferDestroy);
return srcBuffer;

View File

@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
preConfigure = ''
sed -e 's@/usr/bin/@@g' -i configure
sed -e '/gthread[.]h/d' -i src/npw-player.c
export NIX_LDFLAGS="$NIX_LDFLAGS -lgthread-2.0"
export configureFlags="$configureFlags --target-cpu=$(uname -m)"
'';

View File

@ -1,11 +1,12 @@
{ stdenv, coreutils, fetchurl, python }:
{ stdenv, coreutils, fetchurl, python, dropbox }:
stdenv.mkDerivation {
name = "dropbox-cli";
src = fetchurl {
# Note: dropbox doesn't version this file. Annoying.
url = "https://linux.dropbox.com/packages/dropbox.py";
sha256 = "1x46i0aplah4a2nqglb8byl3c60w7h1cjja62myxj2dpxyv7fydy";
sha256 = "0p1pg8bw6mlhqi5k8y3pgs7byg0kfvq57s53sh188lb5sxvlg7yz";
};
buildInputs = [ coreutils python ];
@ -20,7 +21,8 @@ stdenv.mkDerivation {
fixupPhase = ''
substituteInPlace $out/bin/dropbox-cli \
--replace "/usr/bin/python" ${python}/bin/python \
--replace "use dropbox help" "use dropbox-cli help"
--replace "use dropbox help" "use dropbox-cli help" \
--replace "~/.dropbox-dist/dropboxd" ${dropbox}/bin/dropbox
chmod +x $out/bin/dropbox-cli
'';
@ -29,8 +31,8 @@ stdenv.mkDerivation {
homepage = http://dropbox.com;
description = "Command line client for the dropbox daemon.";
license = stdenv.lib.licenses.gpl3;
maintainers = with stdenv.lib.maintainers; [ the-kenny ];
# NOTE: Dropbox itself only works on linux, so this is ok.
platforms = stdenv.lib.platforms.linux;
};
}

View File

@ -19,6 +19,8 @@ stdenv.mkDerivation rec {
configureFlags = "--enable-external-ortp --enable-external-mediastreamer";
NIX_CFLAGS_COMPILE = "-Wno-error=deprecated-declarations"; # I'm lazy to fix these for them
meta = {
homepage = http://www.linphone.org/;
description = "Open Source video SIP softphone";

View File

@ -5,11 +5,11 @@
assert stdenv.system == "i686-linux";
stdenv.mkDerivation rec {
name = "skype-4.1.0.20";
name = "skype-4.2.0.11";
src = fetchurl {
url = "http://download.skype.com/linux/${name}.tar.bz2";
sha256 = "1qhcxkfmlpblpy9rqimzdl79rm781swbldkzi6nyw56bbp6lf7n3";
sha256 = "0kh66p50m3x4ql6j8ciz73c30npcizd00ya9qrhid711rar0mlw7";
};
buildInputs =

View File

@ -1,4 +1,4 @@
{stdenv, fetchurl, pkgconfig, ncurses, glib, openssl, perl}:
{ stdenv, fetchurl, pkgconfig, ncurses, glib, openssl, perl, libintlOrEmpty }:
stdenv.mkDerivation rec {
name = "irssi-0.8.15";
@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
sha256 = "19m0aah9bhc70dnhh7kpydbsz5n35l0l9knxav1df0sic3xicbf1";
};
buildInputs = [pkgconfig ncurses glib openssl perl];
buildInputs = [ pkgconfig ncurses glib openssl perl libintlOrEmpty ];
NIX_LDFLAGS = "-lncurses";
@ -16,5 +16,7 @@ stdenv.mkDerivation rec {
meta = {
homepage = http://irssi.org;
platforms = stdenv.lib.platforms.unix;
maintainers = with stdenv.lib.maintainers; [ lovek323 ];
};
}

View File

@ -1,16 +1,16 @@
{ stdenv, fetchurl, libotr, automake, autoconf, libtool, glib, pkgconfig, irssi }:
let
rev = "59ddcbe66a";
rev = "cab3fc915c";
in
with stdenv.lib;
stdenv.mkDerivation rec {
name = "irssi-otr-20130315-${rev}";
name = "irssi-otr-20130601-${rev}";
src = fetchurl {
url = "https://github.com/cryptodotis/irssi-otr/tarball/${rev}";
name = "${name}.tar.gz";
sha256 = "095dak0d10j6cpkwlqmk967p1wypwzvqr4wdqvb30w14dbn8dy0d";
sha256 = "0kn9c562zfh36gpcrbpslwjjr78baagdwphczz2d608ndczm1vrk";
};
patchPhase = ''

View File

@ -3,12 +3,12 @@
, pythonPackages, cacert, cmake, makeWrapper }:
stdenv.mkDerivation rec {
version = "0.4.0";
version = "0.4.1";
name = "weechat-${version}";
src = fetchurl {
url = "http://weechat.org/files/src/${name}.tar.gz";
sha256 = "17jxknam1bbakmdfqy1b2cfc8l9ag90l3z1gcxdvwg358wasv9dc";
sha256 = "0gsn0mp921j7jpvrxc74h0gs0bn0w808j2zqghm1w7xbjw9hl49w";
};
buildInputs =

View File

@ -0,0 +1,64 @@
{ stdenv, fetchurl, ruby, rake, rubygems, makeWrapper, ncursesw_sup
, xapian_ruby, gpgme, libiconvOrEmpty, rmail, mime_types, chronic, trollop
, lockfile, gettext, iconv, locale, text, highline }:
stdenv.mkDerivation {
name = "sup-896ab66c0263e5ce0fa45857fb08e0fb78fcb6bd";
meta = {
homepage = http://supmua.org;
description = "A curses threads-with-tags style email client";
maintainers = with stdenv.lib.maintainers; [ lovek323 ];
license = stdenv.lib.licenses.gpl2;
platforms = stdenv.lib.platforms.unix;
};
dontStrip = true;
src = fetchurl {
url = "https://github.com/sup-heliotrope/sup/archive/896ab66c0263e5ce0fa45857fb08e0fb78fcb6bd.tar.gz";
sha256 = "0sknf4ha13m2478fa27qnm43bcn59g6qbd8f2nmv64k2zs7xnwmk";
};
buildInputs =
[ ruby rake rubygems makeWrapper gpgme ncursesw_sup xapian_ruby
libiconvOrEmpty ];
buildPhase = "rake gem";
# TODO: Move gem dependencies out
installPhase = ''
export HOME=$TMP/home; mkdir -pv "$HOME"
GEM_PATH="$GEM_PATH:$out/${ruby.gemPath}"
GEM_PATH="$GEM_PATH:${chronic}/${ruby.gemPath}"
GEM_PATH="$GEM_PATH:${gettext}/${ruby.gemPath}"
GEM_PATH="$GEM_PATH:${gpgme}/${ruby.gemPath}"
GEM_PATH="$GEM_PATH:${iconv}/${ruby.gemPath}"
GEM_PATH="$GEM_PATH:${locale}/${ruby.gemPath}"
GEM_PATH="$GEM_PATH:${lockfile}/${ruby.gemPath}"
GEM_PATH="$GEM_PATH:${mime_types}/${ruby.gemPath}"
GEM_PATH="$GEM_PATH:${ncursesw_sup}/${ruby.gemPath}"
GEM_PATH="$GEM_PATH:${rmail}/${ruby.gemPath}"
GEM_PATH="$GEM_PATH:${text}/${ruby.gemPath}"
GEM_PATH="$GEM_PATH:${trollop}/${ruby.gemPath}"
GEM_PATH="$GEM_PATH:${xapian_ruby}/${ruby.gemPath}"
GEM_PATH="$GEM_PATH:${highline}/${ruby.gemPath}"
# Don't install some dependencies -- we have already installed
# the dependencies but gem doesn't acknowledge this
gem install --no-verbose --install-dir "$out/${ruby.gemPath}" \
--bindir "$out/bin" --no-rdoc --no-ri pkg/sup-999.gem \
--ignore-dependencies
for prog in $out/bin/*; do
wrapProgram "$prog" --prefix GEM_PATH : "$GEM_PATH"
done
for prog in $out/gems/*/bin/*; do
[[ -e "$out/bin/$(basename $prog)" ]]
done
'';
}

View File

@ -6,16 +6,14 @@ jackaudio ? null }:
stdenv.mkDerivation rec {
name = "mumble-" + version;
version = "1.2.3";
version = "1.2.4";
src = fetchurl {
url = "mirror://sourceforge/mumble/${name}.tar.gz";
sha256 = "0p4as6bcmbzkiff1gvc0f277dzbz2sfys97gcbxw7gjamqi53285";
sha256 = "16wwj6gwcnyjlnzh7wk0l255ldxmbwx0wi652sdp20lsv61q7kx1";
};
patchPhase = ''
sed -e s/qt_ja_JP.qm// -i src/mumble/mumble.pro src/mumble11x/mumble11x.pro
sed -e /qt_ja_JP.qm/d -i src/mumble/mumble_qt.qrc src/mumble11x/mumble_qt.qrc
patch -p1 < ${ ./mumble-jack-support.patch }
'';

View File

@ -4,15 +4,15 @@
, makeWrapper, autoconf, automake }:
let
rev = "27317";
rev = "27399";
in
stdenv.mkDerivation rec {
name = "gnunet-svn-${rev}";
src = fetchsvn {
url = https://gnunet.org/svn/gnunet;
rev = "27317";
sha256 = "1l7jypm57wjhzlwdj8xzhfppjdpy6wbph4nqgwxxb9q056wwf9zy";
inherit rev;
sha256 = "0fn7ppfnc4v6lkxwww11s0h8mdvwyv7f40f6wrbfilqpn2ncrf8c";
};
buildInputs = [

View File

@ -1,11 +1,11 @@
{ stdenv, fetchurl, openssl, protobufc, libconfig }:
stdenv.mkDerivation rec {
name = "umurmur-0.2.12";
name = "umurmur-0.2.13";
src = fetchurl {
url = "http://umurmur.googlecode.com/files/${name}.tar.gz";
sha1 = "5be3c765af3c5f518d1e1bbd828b3582ad4097cd";
sha1 = "c9345b67213f52688fef2113132c62d2edbf4bea";
};
buildInputs = [ openssl protobufc libconfig ];

View File

@ -1,6 +1,7 @@
{ fetchurl, stdenv, pkgconfig, libxml2, gconf, glib, gtk, libgnomeui, libofx
, libgtkhtml, gtkhtml, libgnomeprint, goffice, enchant, gettext, libbonoboui
, intltool, perl, guile, slibGuile, swig, isocodes, bzip2, makeWrapper
, intltool, perl, guile, slibGuile, swig, isocodes, bzip2, makeWrapper, libglade
, libgsf, libart_lgpl
}:
/* If you experience GConf errors when running GnuCash on NixOS, see
@ -9,17 +10,17 @@
*/
stdenv.mkDerivation rec {
name = "gnucash-2.4.11";
name = "gnucash-2.4.13";
src = fetchurl {
url = "mirror://sourceforge/gnucash/${name}.tar.bz2";
sha256 = "0qbpgd6spclkmwryi66cih0igi5a6pmsnk41mmnscpfpz1mddhwk";
sha256 = "0j4m00a3r1hcrhkfjkx3sgi2r4id4wrc639i4s00j35rx80540pn";
};
buildInputs = [
pkgconfig libxml2 gconf glib gtk libgnomeui libgtkhtml gtkhtml
libgnomeprint goffice enchant gettext intltool perl guile slibGuile
swig isocodes bzip2 makeWrapper libofx
swig isocodes bzip2 makeWrapper libofx libglade libgsf libart_lgpl
];
configureFlags = "CFLAGS=-O3 CXXFLAGS=-O3 --disable-dbi --enable-ofx";
@ -65,7 +66,7 @@ stdenv.mkDerivation rec {
homepage = http://www.gnucash.org/;
maintainers = [ stdenv.lib.maintainers.ludo stdenv.lib.maintainers.simons ];
maintainers = [ stdenv.lib.maintainers.ludo stdenv.lib.maintainers.simons stdenv.lib.maintainers.iElectric ];
platforms = stdenv.lib.platforms.gnu;
};
}

View File

@ -0,0 +1,16 @@
{ cabal, Cabal, hledgerLib, statistics, time }:
cabal.mkDerivation (self: {
pname = "hledger-irr";
version = "0.1.1.2";
sha256 = "1mh1lzhnxc8ps8n5j37wrmbqafwdyap60j8rqr6xdfa2syfyq8i2";
isLibrary = false;
isExecutable = true;
buildDepends = [ Cabal hledgerLib statistics time ];
meta = {
description = "computes the internal rate of return of an investment";
license = self.stdenv.lib.licenses.bsd3;
platforms = self.ghc.meta.platforms;
maintainers = [ self.stdenv.lib.maintainers.simons ];
};
})

View File

@ -1,5 +1,6 @@
{ stdenv, fetchurl, freeglut, gtk2, gtkglext, libjpeg_turbo, libtheora, libXmu
, lua, mesa, pkgconfig, perl, automake, autoconf, libtool, gettext
, lua, mesa, pkgconfig, perl, automake, autoconf, libtool, gettext, glib, cairo
, pango, gdk_pixbuf, atk
}:
let
@ -7,25 +8,31 @@ let
gcc46Patch = fetchurl {
url = "https://projects.archlinux.org/svntogit/packages.git/plain/trunk/celestia-1.6.1-gcc46.patch?h=packages/celestia";
sha256 = "1q840ip5h2q93r0d68jwrvf40ns5qzqss9vzd6xnwvs3wa77m5wp";
sha256 = "0my7dpyh5wpz5df7bjhwb4db3ci2rn8ib1nkjv15fbp1g76bxfaz";
name = "celestia-1.6.1-gcc46.patch";
};
libpng15Patch = fetchurl {
url = "https://projects.archlinux.org/svntogit/packages.git/plain/trunk/celestia-1.6.1-libpng15.patch?h=packages/celestia";
sha256 = "19yqbi5k944d3jm0q2mvcfg52kicy4j347gj62dyaijzj505x4pm";
sha256 = "1jrmbwmvs9b6k2b2g4104q22v4vqi0wfpz6hmfhniaq34626jcms";
name = "celestia-1.6.1-libpng15.patch";
};
libpng16Patch = fetchurl {
url = "https://projects.archlinux.org/svntogit/packages.git/plain/trunk/celestia-1.6.1-libpng16.patch?h=packages/celestia";
sha256 = "1q85prw4ci6d50lri8w1jm19pghxw96qizf5dl4g0j86rlhlkc8f";
name = "celestia-1.6.1-libpng16.patch";
};
linkingPatch = fetchurl {
url = "https://projects.archlinux.org/svntogit/packages.git/plain/trunk/celestia-1.6.1-linking.patch?h=packages/celestia";
sha256 = "1qzv18b2prqbhy21js5bnf7vwkmrq1dmrq8r0wab7v10axjqdv35";
sha256 = "1m8xyq26nm352828bp12c3b8f6m9bys9fwfxbfzqppllk7il2f24";
name = "celestia-1.6.1-linking.patch";
};
gcc47Patch = fetchurl {
url = "https://projects.archlinux.org/svntogit/packages.git/plain/trunk/gcc-4.7-fixes.diff?h=packages/celestia";
sha256 = "1jqkafwrg1829cwqvlxxkqbf42zqfsgpqd8a5b2qlzma5napdmg5";
sha256 = "1na26c7pv9qfv8a981m1zvglhv05r3h8513xqjra91qhhzx8wr8n";
name = "gcc-4.7-fixes.diff";
};
in
@ -43,10 +50,19 @@ stdenv.mkDerivation {
patchPhase = ''
patch -Np0 -i "${gcc46Patch}"
patch -Np0 -i "${libpng15Patch}"
patch -Np2 -i "${libpng16Patch}"
patch -Np1 -i "${linkingPatch}"
patch -Np1 -i "${gcc47Patch}"
autoreconf
configureFlagsArray=( --with-gtk --with-lua=${lua} CFLAGS="-O2 -fsigned-char" CXXFLAGS="-O2 -fsigned-char" )
configureFlagsArray=(
--with-gtk
--with-lua=${lua}
CPPFLAGS="-DNDEBUG"
CFLAGS="-O2 -fsigned-char"
CXXFLAGS="-O2 -fsigned-char"
GTK_CFLAGS="-I${gtk2}/include/gtk-2.0 -I${gtk2}/lib/gtk-2.0/include -I${glib}/include/glib-2.0 -I${glib}/lib/glib-2.0/include -I${cairo}/include/cairo -I${pango}/include/pango-1.0 -I${gdk_pixbuf}/include/gdk-pixbuf-2.0 -I${atk}/include/atk-1.0 -I${gtkglext}/include/gtkglext-1.0 -I${gtkglext}/lib/gtkglext-1.0/include"
GTK_LIBS="-lgtk-x11-2.0 -lgtkglext-x11-1.0 -lcairo -lgdk_pixbuf-2.0 -lpango-1.0 -lgobject-2.0"
)
'';
enableParallelBuilding = true;

View File

@ -3,7 +3,7 @@
{stdenv, fetchurl, pkgconfig, ocaml, findlib, camlp5, ncurses, lablgtk ? null}:
let
version = "8.4";
version = "8.4pl2";
buildIde = lablgtk != null;
ideFlags = if buildIde then "-lablgtkdir ${lablgtk}/lib/ocaml/*/site-lib/lablgtk2 -coqide opt" else "";
idePath = if buildIde then ''
@ -15,8 +15,8 @@ stdenv.mkDerivation {
name = "coq-${version}";
src = fetchurl {
url = "http://pauillac.inria.fr/~herbelin/coq/distrib/V${version}/files/coq-${version}.tar.gz";
sha256 = "0ka2lak9il4hlblk461awf0hbi3mxqhc1wz6kllxradyy2vfaspl";
url = "http://coq.inria.fr/distrib/V${version}/files/coq-${version}.tar.gz";
sha256 = "1n52pky7bb45irk2jw6f4rd3kvy8lm2yfldjwdhiic0kyqw9lwgv";
};
buildInputs = [ pkgconfig ocaml findlib camlp5 ncurses lablgtk ];

View File

@ -0,0 +1,32 @@
{ stdenv, fetchdarcs, ocaml, findlib, lablgl, camlimages, mesa, freeglut, ocaml_mysql, mlgmp, mpfr, gmp, libtiff, libjpeg, libpng12, giflib }:
let
ocaml_version = (builtins.parseDrvName ocaml.name).version;
in
stdenv.mkDerivation {
name = "glsurf-3.3";
src = fetchdarcs {
url = "http://lama.univ-savoie.fr/~raffalli/GlSurf";
tag = "3.3";
sha256 = ""; md5="";
};
buildInputs = [ ocaml findlib freeglut mesa
lablgl camlimages ocaml_mysql mlgmp mpfr gmp
libtiff libjpeg libpng12 giflib ];
installPhase = ''
mkdir -p $out/bin $out/share/doc/glsurf
cp ./src/glsurf.opt $out/bin/glsurf
cp ./doc/doc.pdf $out/share/doc/glsurf
cp -r ./examples $out/share/doc/glsurf
'';
meta = {
homepage = http://www.lama.univ-savoie.fr/~raffalli/glsurf;
description = "GlSurf: a program to draw implicit surfaces and curves";
};
}

View File

@ -0,0 +1,32 @@
{ stdenv, fetchurl, jre, unzip }:
stdenv.mkDerivation {
name = "weka-3.6.9";
src = fetchurl {
url = "mirror://sourceforge/weka/weka-3-6-9.zip";
sha256 = "0rnis4vvihhdcdvpp79hkmklcnn897paa0qrs95cbjnpgvxzbczs";
};
buildInputs = [ unzip ];
# The -Xmx1000M comes suggested from their download page:
# http://www.cs.waikato.ac.nz/ml/weka/downloading.html
installPhase = ''
mkdir -pv $out/share/weka $out/bin
cp -Rv * $out/share/weka
cat > $out/bin/weka << EOF
#!${stdenv.shell}
${jre}/bin/java -Xmx1000M -jar $out/share/weka/weka.jar
EOF
chmod +x $out/bin/weka
'';
meta = {
homepage = "http://www.cs.waikato.ac.nz/ml/weka/";
description = "Collection of machine learning algorithms for data mining tasks";
license = "GPLv2+";
};
}

View File

@ -1,13 +1,13 @@
{ fetchurl, stdenv, libxml2, freetype, mesa, glew, qt4
, cmake, makeWrapper, libjpeg }:
let version = "3.7.0"; in
let version = "4.1.0"; in
stdenv.mkDerivation rec {
name = "tulip-${version}";
src = fetchurl {
url = "mirror://sourceforge/auber/tulip/tulip-3.7.0/${name}-src.tar.gz";
sha256 = "150fj9pdxblvl5sby61cb2kq98r6h8yljk3vq5xizn198d3fz4jq";
url = "mirror://sourceforge/auber/${name}_src.tar.gz";
sha256 = "1js1f8xdm9g2m66xbhfxa8ixzw6h4gjynxsm83p54l3i0hs3biig";
};
buildInputs = [ libxml2 freetype glew mesa qt4 libjpeg ];
@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
doCheck = false;
meta = {
description = "Tulip, a visualization framework for the analysis and visualization of relational data";
description = "A visualization framework for the analysis and visualization of relational data";
longDescription =
'' Tulip is an information visualization framework dedicated to the

View File

@ -7,8 +7,8 @@
, monadControl, mtl, network, networkInfo, networkMulticast
, networkProtocolXmpp, openssh, QuickCheck, random, regexTdfa
, rsync, SafeSemaphore, SHA, stm, text, time, transformers
, unixCompat, utf8String, uuid, wai, waiLogger, warp, xmlConduit
, xmlTypes, yesod, yesodDefault, yesodForm, yesodStatic
, unixCompat, utf8String, uuid, wai, waiLogger, warp, which
, xmlConduit, xmlTypes, yesod, yesodDefault, yesodForm, yesodStatic
}:
cabal.mkDerivation (self: {
@ -28,7 +28,7 @@ cabal.mkDerivation (self: {
uuid wai waiLogger warp xmlConduit xmlTypes yesod yesodDefault
yesodForm yesodStatic
];
buildTools = [ bup curl git gnupg1 lsof openssh rsync ];
buildTools = [ bup curl git gnupg1 lsof openssh rsync which ];
configureFlags = "-fS3
-fWebDAV
-fInotify
@ -41,6 +41,7 @@ cabal.mkDerivation (self: {
-fProduction
-fTDFA";
preConfigure = "patchShebangs .";
installPhase = "make PREFIX=$out CABAL=./Setup docs install";
checkPhase = ''
export HOME="$NIX_BUILD_TOP/tmp"
mkdir "$HOME"

View File

@ -16,7 +16,8 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
homepage = "http://jonas.nitro.dk/tig/";
description = "Tig is a git repository browser that additionally can act as a pager for output from various git commands";
maintainers = [ maintainers.garbas maintainers.bjornfor ];
maintainers = [ maintainers.garbas maintainers.bjornfor maintainers.iElectric ];
license = licenses.gpl2;
platforms = platforms.linux;
};
}

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, gettext, apr, aprutil, subversion, db4, kdelibs }:
{ stdenv, fetchurl, gettext, apr, aprutil, subversion, db4, kdelibs, expat }:
stdenv.mkDerivation rec {
name = "kdesvn-1.5.5";
@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
patches = [ ./docbook.patch ./virtual_inheritance.patch ];
buildInputs = [ apr aprutil subversion db4 kdelibs ];
buildInputs = [ apr aprutil subversion db4 kdelibs expat ];
nativeBuildInputs = [ gettext ];

View File

@ -21,13 +21,13 @@ assert compressionSupport -> neon.compressionSupport;
stdenv.mkDerivation rec {
version = "1.7.9";
version = "1.7.10";
name = "subversion-${version}";
src = fetchurl {
url = "mirror://apache/subversion//${name}.tar.bz2";
sha1 = "453757bae78a800997559f2232483ab99238ec1e";
sha1 = "a4f3de0a13b034b0eab4d35512c6c91a4abcf4f5";
};
buildInputs = [ zlib apr aprutil sqlite ]

View File

@ -3,7 +3,7 @@
, gst_ffmpeg, speex
, libogg, libxml2, libjpeg, mesa, libpng, libungif, libtool
, boost, freetype, agg, dbus, curl, pkgconfig, gettext
, glib, gtk, gtkglext, x11, ming, dejagnu, python, perl
, glib, gtk, gtkglext, pangox_compat, x11, ming, dejagnu, python, perl
, freefont_ttf, haxe, swftools
, lib, makeWrapper
, xulrunner }:
@ -47,7 +47,7 @@ stdenv.mkDerivation rec {
gettext x11 SDL SDL_mixer gstreamer gst_plugins_base gst_plugins_good
gst_ffmpeg speex libtool
libogg libxml2 libjpeg mesa libpng libungif boost freetype agg
dbus curl pkgconfig glib gtk gtkglext
dbus curl pkgconfig glib gtk gtkglext pangox_compat
xulrunner
makeWrapper
]

View File

@ -79,7 +79,7 @@ stdenv.mkDerivation rec {
src = fetchurl {
# Old kind of URL:
# url = http://nixos.org/tarballs/mplayer-snapshot-20101227.tar.bz2;
# url = http://tarballs.nixos.org/mplayer-snapshot-20101227.tar.bz2;
# Snapshot I took on 20110423
#Transient

View File

@ -0,0 +1,23 @@
{ stdenv, fetchurl, qt4 }:
stdenv.mkDerivation rec {
name = "smplayer-0.8.5";
src = fetchurl {
url = "mirror://sourceforge/smplayer/${name}.tar.bz2";
sha256 = "0vbfvaqg5c25vabq1mf9xg6kzgvxnpd0i172y1gjznnlpcw2fxrw";
};
buildInputs = [ qt4 ];
preConfigure = ''
makeFlags="PREFIX=$out"
'';
meta = {
description = "A complete front-end for MPlayer";
homepage = "http://smplayer.sourceforge.net/";
license = stdenv.lib.licenses.gpl3Plus;
platforms = stdenv.lib.platforms.linux;
};
}

View File

@ -10,13 +10,18 @@
stdenv.mkDerivation rec {
name = "vlc-${version}";
version = "2.0.6";
version = "2.0.7";
src = fetchurl {
url = "http://download.videolan.org/pub/videolan/vlc/${version}/${name}.tar.xz";
sha256 = "0qqrpry41vawihhggcx00vibbn73hxdal1gim1qnrqrcbq1rik1i";
sha256 = "052kfkpd0r2fwkyz97qhz2a368xqxa905qacrd1bkl2bkvahfc94";
};
postPatch = /* flac 1.3.0 fix */ ''
sed -i -e 's:stream_decoder.h:FLAC/stream_decoder.h:' modules/codec/flac.c
sed -i -e 's:stream_encoder.h:FLAC/stream_encoder.h:' modules/codec/flac.c
'';
buildInputs =
[ xz bzip2 perl zlib a52dec libmad faad2 ffmpeg alsaLib libdvdnav libdvdnav.libdvdread
libbluray dbus fribidi qt4 libvorbis libtheora speex lua5 libgcrypt

View File

@ -68,6 +68,11 @@ stdenv.mkDerivation rec {
dontUseCmakeConfigure = true;
preConfigure = ''
substituteInPlace xbmc/linux/LinuxTimezone.cpp \
--replace 'usr/share/zoneinfo' 'etc/zoneinfo'
'';
configureFlags = [
"--enable-external-libraries"
"--disable-webserver"

View File

@ -1,4 +1,5 @@
{ stdenv, fetchurl, python, zlib, pkgconfig, glib, SDL, ncurses, perl, pixman }:
{ stdenv, fetchurl, python, zlib, pkgconfig, glib, SDL, ncurses, perl, pixman
, attr, libcap }:
stdenv.mkDerivation rec {
name = "qemu-1.4.0";
@ -8,10 +9,16 @@ stdenv.mkDerivation rec {
sha256 = "1a7d11vjs1p6i1ck2ff9annmkhpkbjl73hl9i1cbg3s0fznrfqh6";
};
buildInputs = [ python zlib pkgconfig glib SDL ncurses perl pixman ];
buildInputs = [
python zlib pkgconfig glib SDL ncurses perl pixman attr libcap
];
enableParallelBuilding = true;
configureFlags = [
"--enable-virtfs"
];
meta = {
description = "QEmu processor emulator";
license = "GPLv2+";

View File

@ -11,8 +11,7 @@ with stdenv.lib;
let
version = "4.2.12";
extpackRevision = "84980";
version = "4.2.14"; # changes ./guest-additions as well
forEachModule = action: ''
for mod in \
@ -31,12 +30,10 @@ let
done
'';
extensionPack = requireFile {
name = "Oracle_VM_VirtualBox_Extension_Pack-${version}-${extpackRevision}"
+ ".vbox-extpack";
extensionPack = fetchurl {
url = "http://download.virtualbox.org/virtualbox/${version}/Oracle_VM_VirtualBox_Extension_Pack-${version}.vbox-extpack";
# Has to be base16 because it's used as an input to VBoxExtPackHelperApp!
sha256 = "ad15a92e49095c2115bd1793b3b957d3eaf44af0f5d24bb53d6b4fc81c3e2fc4";
url = "https://www.virtualbox.org/wiki/Downloads";
sha256 = "5813cae72790de4893cadb839ffbd148290a44ec6913d901d84c9b3740ab1b1e";
};
in stdenv.mkDerivation {
@ -44,7 +41,7 @@ in stdenv.mkDerivation {
src = fetchurl {
url = "http://download.virtualbox.org/virtualbox/${version}/VirtualBox-${version}.tar.bz2";
sha256 = "eb65ecac94f63d6292a967d39cb5e28326404c10d0e8c2c50399eedb59c17ee6";
sha256 = "038k65cdvr80da5nfan5r3rjrnxqab2fbf2pr2jq8g1gc4cxrxpq";
};
buildInputs =
@ -137,6 +134,8 @@ in stdenv.mkDerivation {
done
'';
passthru = { inherit version; /* for guest additions */ };
meta = {
description = "PC emulator";
homepage = http://www.virtualbox.org/;

View File

@ -1,15 +1,18 @@
{ stdenv, fetchurl, lib, patchelf, cdrkit, kernelDev, which, makeWrapper
, libX11, libXt, libXext, libXmu, libXcomposite, libXfixes, libXrandr, libXcursor
, dbus }:
, xorg, dbus, virtualbox }:
let version = "4.2.12"; in
let
version = virtualbox.version;
xserverVListFunc = builtins.elemAt (stdenv.lib.splitString "." xorg.xorgserver.version);
xserverABI = xserverVListFunc 0 + xserverVListFunc 1;
in
stdenv.mkDerivation {
name = "VirtualBox-GuestAdditions-${version}-${kernelDev.version}";
src = fetchurl {
url = "http://download.virtualbox.org/virtualbox/${version}/VBoxGuestAdditions_${version}.iso";
sha256 = "aed4730b643aca8daa0829e1122b7c8d592b9f6cea902a98e390c4d22373dfb8";
sha256 = "9f08f13bbd818fb3ef9916658542ad0999c35e11afc1f6e8ff0b944405486e8a";
};
KERN_DIR = "${kernelDev}/lib/modules/*/build";
@ -22,7 +25,7 @@ stdenv.mkDerivation {
'';
buildCommand = ''
buildCommand = with xorg; ''
${if stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux" then ''
isoinfo -J -i $src -x /VBoxLinuxAdditions.run > ./VBoxLinuxAdditions.run
chmod 755 ./VBoxLinuxAdditions.run
@ -104,7 +107,7 @@ stdenv.mkDerivation {
# Install Xorg drivers
mkdir -p $out/lib/xorg/modules/{drivers,input}
install -m 644 lib/VBoxGuestAdditions/vboxvideo_drv_112.so $out/lib/xorg/modules/drivers/vboxvideo_drv.so
install -m 644 lib/VBoxGuestAdditions/vboxvideo_drv_${xserverABI}.so $out/lib/xorg/modules/drivers/vboxvideo_drv.so
# Install kernel modules
cd src

View File

@ -0,0 +1,31 @@
{ stdenv, fetchurl, pkgconfig, wayland, mesa, libxkbcommon
, cairo, libxcb, libXcursor, x11, udev, libdrm, mtdev
, libjpeg, pam, autoconf, automake, libtool }:
let version = "1.0.5"; in
stdenv.mkDerivation rec {
name = "weston-${version}";
src = fetchurl {
url = "http://wayland.freedesktop.org/releases/${name}.tar.xz";
sha256 = "0g2k82pnlxl8b70ykazj7kn8xffjfsmgcgx427qdrm4083z2hgm0";
};
buildInputs = [ pkgconfig wayland mesa libxkbcommon
cairo libxcb libXcursor x11 udev libdrm mtdev
libjpeg pam autoconf automake libtool ];
preConfigure = "autoreconf -vfi";
# prevent install target to chown root weston-launch, which fails
configureFlags = ''
--disable-setuid-install
'';
meta = {
description = "Reference implementation of a Wayland compositor";
homepage = http://wayland.freedesktop.org/;
license = stdenv.lib.licenses.mit;
};
}

View File

@ -91,7 +91,7 @@ stdenv.mkDerivation {
urls = urls_;
# If set, prefer the content-addressable mirrors
# (http://nixos.org/tarballs) over the original URLs.
# (http://tarballs.nixos.org) over the original URLs.
preferHashedMirrors = true;
# New-style output content requirements.

View File

@ -2,7 +2,7 @@ rec {
# Content-addressable Nix mirrors.
hashedMirrors = [
http://nixos.org/tarballs
http://tarballs.nixos.org
];
# Mirrors for mirror://site/filename URIs, where "site" is

View File

@ -4,7 +4,7 @@ stdenv.mkDerivation {
name = "bakoma-ttf";
src = fetchurl {
url = http://nixos.org/tarballs/bakoma-ttf.tar.bz2;
url = http://tarballs.nixos.org/bakoma-ttf.tar.bz2;
sha256 = "1j1y3cq6ys30m734axc0brdm2q9n2as4h32jws15r7w5fwr991km";
};

View File

@ -4,7 +4,7 @@ stdenv.mkDerivation rec {
name = "cacert-20121229";
src = fetchurl {
url = "http://nixos.org/tarballs/${name}.pem.bz2";
url = "http://tarballs.nixos.org/${name}.pem.bz2";
sha256 = "031s86pqvn620zkj6w97hqgjvkp6vsvlymzz7rwvkv25zvrjsgif";
};

View File

@ -1,17 +0,0 @@
{ stdenv, fetchurl, glib, pkgconfig, intltool }:
stdenv.mkDerivation {
name = "gsettings-desktop-schemas-3.2.0";
src = fetchurl {
url = mirror://gnome/sources/gsettings-desktop-schemas/3.2/gsettings-desktop-schemas-3.2.0.tar.xz;
sha256 = "0772axkd1nlf3j1lcg0zi5x5jh4zmr25k98dhn7pzppahljaj3hi";
};
buildInputs = [ glib ];
nativeBuildInputs = [ pkgconfig intltool ];
meta = {
inherit (glib.meta) maintainers platforms;
};
}

View File

@ -1,11 +1,11 @@
{ fetchurl, stdenv, cmake }:
stdenv.mkDerivation rec {
name = "poppler-data-0.4.5";
name = "poppler-data-0.4.6";
src = fetchurl {
url = "http://poppler.freedesktop.org/${name}.tar.gz";
sha256 = "1zbh1zd083wfwrcw7vxc2bn32h42y6iyh24syxcb3r5ggd2vr41i";
sha256 = "1yhaz74b50hjkz3ii077kmq3qg3p3kdyxm33cv6r1njvz8fr01pk";
};
buildInputs = [ cmake ];
@ -23,6 +23,7 @@ stdenv.mkDerivation rec {
homepage = http://poppler.freedesktop.org/;
description = "Encoding files for Poppler, a PDF rendering library";
platforms = stdenv.lib.platforms.all;
license = "free"; # more free licenses combined
maintainers = [ stdenv.lib.maintainers.urkud ];
};
}

View File

@ -1,12 +1,14 @@
{ stdenv, fetchurl, gnome, librsvg, pkgconfig, pygtk, python }:
{ stdenv, fetchurl, gnome, librsvg, pkgconfig, pygtk, python, gtk }:
stdenv.mkDerivation rec {
version = "2.32";
ver_maj = "2.32";
ver_min = "0";
version = "${ver_maj}.${ver_min}";
name = "python-rsvg-${version}";
src = fetchurl {
url = "mirror://gnome/sources/gnome-python-desktop/${version}/gnome-python-desktop-${version}.0.tar.gz";
sha256 = "1xhh3h1qdnimydvv55pmqwyzjchhjwfvp951sjlq0180kskqrlj5";
url = "mirror://gnome/sources/gnome-python-desktop/${ver_maj}/gnome-python-desktop-${version}.tar.bz2";
sha256 = "1s8f9rns9v7qlwjv9qh9lr8crp88dpzfm45hj47zc3ivpy0dbnq9";
};
configurePhase = ''
@ -18,7 +20,7 @@ stdenv.mkDerivation rec {
installPhase = "python waf install";
buildInputs = [ gnome.gnome_python librsvg pkgconfig pygtk python ];
buildInputs = [ gtk gnome.gnome_python librsvg pkgconfig pygtk python ];
meta = with stdenv.lib; {
homepage = "http://www.pygtk.org";

View File

@ -29,8 +29,6 @@
libgtkhtml = callPackage ./platform/libgtkhtml { };
intltool = callPackage ./platform/intltool { };
GConf = callPackage ./platform/GConf { };
gconfmm = callPackage ./platform/gconfmm { };

View File

@ -9,6 +9,10 @@ stdenv.mkDerivation rec {
sha256 = "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam";
};
preBuild = ''
sed 's/-DG_DISABLE_DEPRECATED//' -i linc2/src/Makefile
'';
nativeBuildInputs = [ pkgconfig ];
propagatedBuildInputs = [ glib libIDL ];
}

View File

@ -16,4 +16,6 @@ stdenv.mkDerivation rec {
];
propagatedBuildInputs = [ GConf glib ];
postPatch = "find . -name Makefile.in | xargs sed 's/-DG_DISABLE_DEPRECATED//g' -i ";
}

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, pkgconfig, gtk, mesa, pango }:
{ stdenv, fetchurl, pkgconfig, glib, gtk, mesa, pango, pangox_compat, xlibs }:
stdenv.mkDerivation rec {
name = "gtkglext-1.2.0";
@ -8,7 +8,8 @@ stdenv.mkDerivation rec {
sha256 = "0lbz96jwz57hnn52b8rfj54inwpwcc9fkdq6ya043cgnfih77g8n";
};
buildInputs = [ pkgconfig gtk mesa pango ];
buildInputs = with xlibs;
[ pkgconfig glib gtk mesa pango pangox_compat libX11 libXmu ];
# The library uses `GTK_WIDGET_REALIZED', `GTK_WIDGET_TOPLEVEL', and
# `GTK_WIDGET_NO_WINDOW', all of which appear to be deprecated nowadays.

View File

@ -1,13 +0,0 @@
{stdenv, fetchurl, pkgconfig, perl, perlXMLParser, gettext}:
stdenv.mkDerivation rec {
name = "intltool-0.40.6";
src = fetchurl {
url = mirror://gnome/sources/intltool/0.40/intltool-0.40.6.tar.bz2;
sha256 = "0r1vkvy5xzqk01yl6a0xlrry39bra24alkrx6279b77hc62my7jd";
};
buildInputs = [ pkgconfig ];
propagatedBuildInputs = [ perl perlXMLParser gettext ];
}

View File

@ -10,7 +10,9 @@ stdenv.mkDerivation rec {
sha256 = "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i";
};
preConfigure = "export USER=`whoami`";
preConfigure = # still using stuff deprecated in new glib versions
"sed 's/-DG_DISABLE_DEPRECATED//g' -i configure activation-server/Makefile.in";
nativeBuildInputs = [ flex bison pkgconfig intltool procps ];
buildInputs = [ libxml2 ];
propagatedBuildInputs = [ popt glib ORBit2 ];

View File

@ -10,6 +10,8 @@ stdenv.mkDerivation rec {
sha256 = "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj";
};
patches = [ ./new-glib.patch ];
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ popt zlib intltool GConf gnome_vfs libcanberra libtool ];
propagatedBuildInputs = [ glib libbonobo ];

View File

@ -0,0 +1,65 @@
Porting libgnome to newer glib:
* remove g_thread_init and g_thread_supported, which are longer needed
https://developer.gnome.org/glib/2.36/glib-Deprecated-Thread-APIs.html#g-thread-init
* replace GStaticRecMutex by GRecMutex
https://developer.gnome.org/glib/2.36/glib-Deprecated-Thread-APIs.html#GStaticRecMutex
diff --git a/libgnome/gnome-i18n.c b/libgnome/gnome-i18n.c
index 531c56c..f13d61e 100644
--- a/libgnome/gnome-i18n.c
+++ b/libgnome/gnome-i18n.c
@@ -55,12 +55,14 @@
const GList *
gnome_i18n_get_language_list (const gchar *ignored)
{
- static GStaticRecMutex lang_list_lock = G_STATIC_REC_MUTEX_INIT;
+ static GRecMutex lang_list_lock;
+ g_rec_mutex_init (&lang_list_lock);
+
static GList *list = NULL;
const char * const* langs;
int i;
- g_static_rec_mutex_lock (&lang_list_lock);
+ g_rec_mutex_lock (&lang_list_lock);
if (list == NULL) {
langs = g_get_language_names ();
@@ -71,7 +73,7 @@ gnome_i18n_get_language_list (const gchar *ignored)
list = g_list_reverse (list);
}
- g_static_rec_mutex_unlock (&lang_list_lock);
+ g_rec_mutex_unlock (&lang_list_lock);
return list;
}
diff --git a/libgnome/gnome-init.c b/libgnome/gnome-init.c
index fe3efd4..c6619af 100644
--- a/libgnome/gnome-init.c
+++ b/libgnome/gnome-init.c
@@ -115,9 +115,6 @@ gnome_bonobo_module_info_get (void)
static void
bonobo_activation_pre_args_parse (GnomeProgram *program, GnomeModuleInfo *mod_info)
{
- if (!g_thread_supported ())
- g_thread_init (NULL);
-
if (!bonobo_activation_is_initialized ())
bonobo_activation_preinit (program, mod_info);
}
diff --git a/libgnome/gnome-program.c b/libgnome/gnome-program.c
index 739765e..cd14999 100644
--- a/libgnome/gnome-program.c
+++ b/libgnome/gnome-program.c
@@ -1878,10 +1878,6 @@ gnome_program_init (const char *app_id, const char *app_version,
GnomeProgram *program;
va_list args;
- /* g_thread_init() has to be the first GLib function called ever */
- if (!g_threads_got_initialized)
- g_thread_init (NULL);
-
g_type_init ();
va_start(args, first_property_name);

View File

@ -14,4 +14,8 @@ stdenv.mkDerivation rec {
buildInputs = [ pkgconfig gtk gettext intltool libart_lgpl libgnomecups bison flex ];
propagatedBuildInputs = [ libxml2 ];
meta = with stdenv.lib; {
platforms = platforms.linux;
};
}

View File

@ -0,0 +1,17 @@
{ stdenv, fetchurl, python, pkgconfig, popt, atk, libX11, libICE, xlibs, libXi
, intltool, dbus_glib, at_spi2_core, libSM }:
stdenv.mkDerivation rec {
versionMajor = "2.8";
versionMinor = "0";
moduleName = "at-spi2-atk";
name = "${moduleName}-${versionMajor}.${versionMinor}";
src = fetchurl {
url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz";
sha256 = "085sqww174vl3i9ccb477v706rkjs2d107rl96ma1kbl2jyar226";
};
buildInputs = [ python pkgconfig popt atk libX11 libICE xlibs.libXtst libXi
intltool dbus_glib at_spi2_core libSM ];
}

View File

@ -0,0 +1,23 @@
{ stdenv, fetchurl, python, pkgconfig, popt, intltool, dbus_glib
, libX11, xextproto, libSM, libICE, libXtst, libXi }:
stdenv.mkDerivation rec {
versionMajor = "2.8";
versionMinor = "0";
moduleName = "at-spi2-core";
name = "${moduleName}-${versionMajor}.${versionMinor}";
src = fetchurl {
url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz";
sha256 = "0n64h6j10sn90ds9y70d9wlvvsbwnrym9fm0cyjxb0zmqw7s6q8q";
};
buildInputs = [
python pkgconfig popt intltool dbus_glib
libX11 xextproto libSM libICE libXtst libXi
];
# ToDo: on non-NixOS we create a symlink from there?
configureFlags = "--with-dbus-daemondir=/run/current-system/sw/bin/";
}

View File

@ -0,0 +1,62 @@
{ fetchurl, stdenv, pkgconfig, intltool, perl, perlXMLParser, libxml2
, glib, gtk3, pango, atk, gdk_pixbuf, shared_mime_info
, itstool, gnome_icon_theme, libgnome_keyring, gsettings_desktop_schemas
, poppler, ghostscriptX, djvulibre, libspectre
, makeWrapper #, python /*just for tests*/
, recentListSize ? null # 5 is not enough, allow passing a different number
}:
stdenv.mkDerivation rec {
name = "evince-3.6.1";
src = fetchurl {
url = "http://ftp.gnome.org/pub/GNOME/sources/evince/3.6/${name}.tar.xz";
sha256 = "1da1pij030dh8mb0pr0jnyszgsbjnh8lc17rj5ii52j3kmbv51qv";
};
buildInputs = [
pkgconfig intltool perl perlXMLParser libxml2
glib gtk3 pango atk gdk_pixbuf
itstool gnome_icon_theme libgnome_keyring gsettings_desktop_schemas
poppler ghostscriptX djvulibre libspectre
makeWrapper
];
configureFlags = [
"--disable-nautilus" # Do not use nautilus
"--disable-dbus" # strange compilation error
];
preConfigure = with stdenv.lib;
optionalString doCheck ''
for file in test/*.py; do
echo "patching $file"
sed '1s,/usr,${python},' -i "$file"
done
'' + optionalString (recentListSize != null) ''
sed -i 's/\(gtk_recent_chooser_set_limit .*\)5)/\1${builtins.toString recentListSize})/' shell/ev-open-recent-action.c
sed -i 's/\(if (++n_items == \)5\(.*\)/\1${builtins.toString recentListSize}\2/' shell/ev-window.c
'';
postInstall = ''
# Tell Glib/GIO about the MIME info directory, which is used
# by `g_file_info_get_content_type ()'.
wrapProgram "$out/bin/evince" \
--prefix XDG_DATA_DIRS : "${shared_mime_info}/share:$out/share"
'' + gsettings_desktop_schemas.doCompileSchemas;
doCheck = false; # would need pythonPackages.dogTail, which is missing
meta = {
homepage = http://www.gnome.org/projects/evince/;
description = "GNOME's document viewer";
longDescription = ''
Evince is a document viewer for multiple document formats. It
currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal
of Evince is to replace the multiple document viewers that exist
on the GNOME Desktop with a single simple application.
'';
license = "GPLv2+";
};
}

View File

@ -0,0 +1,29 @@
{ stdenv, fetchurl, pkgconfig, dbus_glib, gtk, glib, libxml2
, intltool, polkit, orbit }:
stdenv.mkDerivation rec {
versionMajor = "3.2";
versionMinor = "5";
moduleName = "GConf";
origName = "${moduleName}-${versionMajor}.${versionMinor}";
name = "gconf-${versionMajor}.${versionMinor}";
src = fetchurl {
url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${origName}.tar.xz";
sha256 = "1ijqks0jxc4dyfxg4vnbqds4aj6miyahlsmlqlkf2bi1798akpjd";
};
buildInputs = [ libxml2 polkit gtk orbit ];
propagatedBuildInputs = [ glib dbus_glib ];
nativeBuildInputs = [ pkgconfig intltool ];
# ToDo: ldap reported as not found but afterwards reported as supported
meta = {
homepage = http://projects.gnome.org/gconf/;
description = "A system for storing application preferences";
};
}

View File

@ -0,0 +1,18 @@
{ stdenv, fetchurl, pkgconfig, intltool, gnupg, p11_kit, glib
, libgcrypt, libtasn1, dbus_glib, gtk, pango, gdk_pixbuf, atk }:
stdenv.mkDerivation rec {
name = "gcr-3.6.2";
src = fetchurl {
url = "mirror://gnome/sources/gcr/3.6/${name}.tar.xz";
sha256 = "16xyqxv2hxl3a4m8ahilqcf1ps58w1ijh8dav1l5nqz36ljdn2gp";
};
buildInputs = [
pkgconfig intltool gnupg p11_kit glib
libgcrypt libtasn1 dbus_glib gtk pango gdk_pixbuf atk
];
#doCheck = true;
}

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