mirror of
https://github.com/ilyakooo0/nixpkgs.git
synced 2024-12-25 20:34:52 +03:00
Merge remote-tracking branch 'origin/master' into multiple-outputs
Conflicts: pkgs/development/libraries/gtk+/2.x.nix pkgs/development/libraries/libsamplerate/default.nix pkgs/development/libraries/libsndfile/default.nix pkgs/misc/cups/default.nix pkgs/top-level/all-packages.nix
This commit is contained in:
commit
10cb4a8cf2
@ -6,7 +6,7 @@
|
||||
|
||||
|
||||
<para>The standard build environment in the Nix Packages collection
|
||||
provides a environment for building Unix packages that does a lot of
|
||||
provides an environment for building Unix packages that does a lot of
|
||||
common build tasks automatically. In fact, for Unix packages that use
|
||||
the standard <literal>./configure; make; make install</literal> build
|
||||
interface, you don’t need to write a build script at all; the standard
|
||||
|
@ -41,7 +41,7 @@ NB:
|
||||
|
||||
Keep in mind that many programs are not very well suited for cross
|
||||
compilation. Either they are not intended to run on other platforms,
|
||||
because the code is highly platform specific, or the configuration proces
|
||||
because the code is highly platform specific, or the configuration process
|
||||
is not written with cross compilation in mind.
|
||||
|
||||
Nix will not solve these problems for you!
|
||||
@ -290,7 +290,7 @@ this compiler and verified to be working on a HP Jornada 820 running Linux
|
||||
are "patch", "make" and "wget".
|
||||
|
||||
If we want to build C++ programs it gets a lot more difficult. GCC has a
|
||||
three step compilation proces. In the first step a simple compiler, called
|
||||
three step compilation process. In the first step a simple compiler, called
|
||||
xgcc, that can compile only C programs is built. With that compiler it
|
||||
compiles itself two more times: one time to build a full compiler, and another
|
||||
time to build a full compiler once again with the freshly built compiler from
|
||||
@ -318,7 +318,7 @@ with compilation flags. This is still work in progress for Nix.
|
||||
|
||||
---
|
||||
|
||||
After succesfully completing the whole toolchain you can start building
|
||||
After successfully completing the whole toolchain you can start building
|
||||
packages with the newly built tools. To make everything build correctly
|
||||
you will need a stdenv for your target platform. Setting up this platform
|
||||
will take some effort. Right now there is a very experimental setup for
|
||||
|
@ -51,15 +51,21 @@ print STDERR "unpacked to: $pkg_path\n";
|
||||
my $meta;
|
||||
if (-e "$pkg_path/META.yml") {
|
||||
eval {
|
||||
$meta = YAML::XS::LoadFile("$pkg_path/META.yml");
|
||||
$meta = YAML::XS::LoadFile("$pkg_path/META.yml");
|
||||
};
|
||||
if ($@) {
|
||||
system("iconv -f windows-1252 -t utf-8 '$pkg_path/META.yml' > '$pkg_path/META.yml.tmp'");
|
||||
$meta = YAML::XS::LoadFile("$pkg_path/META.yml.tmp");
|
||||
system("iconv -f windows-1252 -t utf-8 '$pkg_path/META.yml' > '$pkg_path/META.yml.tmp'");
|
||||
$meta = YAML::XS::LoadFile("$pkg_path/META.yml.tmp");
|
||||
}
|
||||
} elsif (-e "$pkg_path/META.json") {
|
||||
local $/;
|
||||
open(my $fh, '<', "$pkg_path/META.json") or die;
|
||||
$meta = decode_json(<$fh>);
|
||||
} else {
|
||||
warn "package has no META.yml or META.json\n";
|
||||
}
|
||||
|
||||
print STDERR "metadata: ", encode_json($meta), "\n";
|
||||
print STDERR "metadata: ", encode_json($meta), "\n" if defined $meta;
|
||||
|
||||
# Map a module to the attribute corresponding to its package
|
||||
# (e.g. HTML::HeadParser will be mapped to HTMLParser, because that
|
||||
@ -120,11 +126,13 @@ my $homepage = $meta->{resources}->{homepage};
|
||||
print STDERR "homepage: $homepage\n" if defined $homepage;
|
||||
|
||||
my $description = $meta->{abstract};
|
||||
$description = uc(substr($description, 0, 1)) . substr($description, 1); # capitalise first letter
|
||||
$description =~ s/\.$//; # remove period at the end
|
||||
$description =~ s/\s*$//;
|
||||
$description =~ s/^\s*//;
|
||||
print STDERR "description: $description\n";
|
||||
if (defined $description) {
|
||||
$description = uc(substr($description, 0, 1)) . substr($description, 1); # capitalise first letter
|
||||
$description =~ s/\.$//; # remove period at the end
|
||||
$description =~ s/\s*$//;
|
||||
$description =~ s/^\s*//;
|
||||
print STDERR "description: $description\n";
|
||||
}
|
||||
|
||||
my $license = $meta->{license};
|
||||
if (defined $license) {
|
||||
@ -156,7 +164,7 @@ EOF
|
||||
print <<EOF if defined $homepage;
|
||||
homepage = $homepage;
|
||||
EOF
|
||||
print <<EOF;
|
||||
print <<EOF if defined $description;
|
||||
description = "$description";
|
||||
EOF
|
||||
print <<EOF if defined $license;
|
||||
|
22
maintainers/scripts/nixpkgs-lint.nix
Normal file
22
maintainers/scripts/nixpkgs-lint.nix
Normal file
@ -0,0 +1,22 @@
|
||||
{ stdenv, makeWrapper, perl, perlPackages }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "nixpkgs-lint-1";
|
||||
|
||||
buildInputs = [ makeWrapper perl perlPackages.XMLSimple ];
|
||||
|
||||
unpackPhase = "true";
|
||||
buildPhase = "true";
|
||||
|
||||
installPhase =
|
||||
''
|
||||
mkdir -p $out/bin
|
||||
cp ${./nixpkgs-lint.pl} $out/bin/nixpkgs-lint
|
||||
wrapProgram $out/bin/nixpkgs-lint --set PERL5LIB $PERL5LIB
|
||||
'';
|
||||
|
||||
meta = {
|
||||
maintainers = [ stdenv.lib.maintainers.eelco ];
|
||||
description = "A utility for Nixpkgs contributors to check Nixpkgs for common errors";
|
||||
};
|
||||
}
|
165
maintainers/scripts/nixpkgs-lint.pl
Executable file
165
maintainers/scripts/nixpkgs-lint.pl
Executable file
@ -0,0 +1,165 @@
|
||||
#! /run/current-system/sw/bin/perl -w
|
||||
|
||||
use strict;
|
||||
use List::Util qw(min);
|
||||
use XML::Simple qw(:strict);
|
||||
use Getopt::Long qw(:config gnu_getopt);
|
||||
|
||||
# Parse the command line.
|
||||
my $path = "<nixpkgs>";
|
||||
my $filter = "*";
|
||||
my $maintainer;
|
||||
|
||||
sub showHelp {
|
||||
print <<EOF;
|
||||
Usage: $0 [--package=NAME] [--maintainer=REGEXP] [--file=PATH]
|
||||
|
||||
Check Nixpkgs for common errors/problems.
|
||||
|
||||
-p, --package filter packages by name (default is ‘*’)
|
||||
-m, --maintainer filter packages by maintainer (case-insensitive regexp)
|
||||
-f, --file path to Nixpkgs (default is ‘<nixpkgs>’)
|
||||
|
||||
Examples:
|
||||
\$ nixpkgs-lint -f /my/nixpkgs -p firefox
|
||||
\$ nixpkgs-lint -f /my/nixpkgs -m eelco
|
||||
EOF
|
||||
exit 0;
|
||||
}
|
||||
|
||||
GetOptions("package|p=s" => \$filter,
|
||||
"maintainer|m=s" => \$maintainer,
|
||||
"file|f=s" => \$path,
|
||||
"help" => sub { showHelp() }
|
||||
)
|
||||
or die("syntax: $0 ...\n");
|
||||
|
||||
# Evaluate Nixpkgs into an XML representation.
|
||||
my $xml = `nix-env -f '$path' -qa '$filter' --xml --meta --drv-path`;
|
||||
die "$0: evaluation of ‘$path’ failed\n" if $? != 0;
|
||||
|
||||
my $info = XMLin($xml, KeyAttr => { 'item' => '+attrPath', 'meta' => 'name' }, ForceArray => 1, SuppressEmpty => '' ) or die "cannot parse XML output";
|
||||
|
||||
# Check meta information.
|
||||
print "=== Package meta information ===\n\n";
|
||||
my $nrBadNames = 0;
|
||||
my $nrMissingMaintainers = 0;
|
||||
my $nrMissingDescriptions = 0;
|
||||
my $nrBadDescriptions = 0;
|
||||
my $nrMissingLicenses = 0;
|
||||
|
||||
foreach my $attr (sort keys %{$info->{item}}) {
|
||||
my $pkg = $info->{item}->{$attr};
|
||||
|
||||
my $pkgName = $pkg->{name};
|
||||
my $pkgVersion = "";
|
||||
if ($pkgName =~ /(.*)(-[0-9].*)$/) {
|
||||
$pkgName = $1;
|
||||
$pkgVersion = $2;
|
||||
}
|
||||
|
||||
# Check the maintainers.
|
||||
my @maintainers;
|
||||
my $x = $pkg->{meta}->{maintainers};
|
||||
if (defined $x && $x->{type} eq "strings") {
|
||||
@maintainers = map { $_->{value} } @{$x->{string}};
|
||||
} elsif (defined $x->{value}) {
|
||||
@maintainers = ($x->{value});
|
||||
}
|
||||
|
||||
if (defined $maintainer && scalar(grep { $_ =~ /$maintainer/i } @maintainers) == 0) {
|
||||
delete $info->{item}->{$attr};
|
||||
next;
|
||||
}
|
||||
|
||||
if (scalar @maintainers == 0) {
|
||||
print "$attr: Lacks a maintainer\n";
|
||||
$nrMissingMaintainers++;
|
||||
}
|
||||
|
||||
# Package names should not be capitalised.
|
||||
if ($pkgName =~ /^[A-Z]/) {
|
||||
print "$attr: package name ‘$pkgName’ should not be capitalised\n";
|
||||
$nrBadNames++;
|
||||
}
|
||||
|
||||
if ($pkgVersion eq "") {
|
||||
print "$attr: package has no version\n";
|
||||
$nrBadNames++;
|
||||
}
|
||||
|
||||
# Check the license.
|
||||
if (!defined $pkg->{meta}->{license}) {
|
||||
print "$attr: Lacks a license\n";
|
||||
$nrMissingLicenses++;
|
||||
}
|
||||
|
||||
# Check the description.
|
||||
my $description = $pkg->{meta}->{description}->{value};
|
||||
if (!$description) {
|
||||
print "$attr: Lacks a description\n";
|
||||
$nrMissingDescriptions++;
|
||||
} else {
|
||||
my $bad = 0;
|
||||
if ($description =~ /^\s/) {
|
||||
print "$attr: Description starts with whitespace\n";
|
||||
$bad = 1;
|
||||
}
|
||||
if ($description =~ /\s$/) {
|
||||
print "$attr: Description ends with whitespace\n";
|
||||
$bad = 1;
|
||||
}
|
||||
if ($description =~ /\.$/) {
|
||||
print "$attr: Description ends with a period\n";
|
||||
$bad = 1;
|
||||
}
|
||||
if (index(lc($description), lc($attr)) != -1) {
|
||||
print "$attr: Description contains package name\n";
|
||||
$bad = 1;
|
||||
}
|
||||
$nrBadDescriptions++ if $bad;
|
||||
}
|
||||
}
|
||||
|
||||
print "\n";
|
||||
|
||||
# Find packages that have the same name.
|
||||
print "=== Package name collisions ===\n\n";
|
||||
|
||||
my %pkgsByName;
|
||||
|
||||
foreach my $attr (sort keys %{$info->{item}}) {
|
||||
my $pkg = $info->{item}->{$attr};
|
||||
#print STDERR "attr = $attr, name = $pkg->{name}\n";
|
||||
$pkgsByName{$pkg->{name}} //= [];
|
||||
push @{$pkgsByName{$pkg->{name}}}, $pkg;
|
||||
}
|
||||
|
||||
my $nrCollisions = 0;
|
||||
foreach my $name (sort keys %pkgsByName) {
|
||||
my @pkgs = @{$pkgsByName{$name}};
|
||||
|
||||
# Filter attributes that are aliases of each other (e.g. yield the
|
||||
# same derivation path).
|
||||
my %drvsSeen;
|
||||
@pkgs = grep { my $x = $drvsSeen{$_->{drvPath}}; $drvsSeen{$_->{drvPath}} = 1; !defined $x } @pkgs;
|
||||
|
||||
# Filter packages that have a lower priority.
|
||||
my $highest = min (map { $_->{meta}->{priority}->{value} // 0 } @pkgs);
|
||||
@pkgs = grep { ($_->{meta}->{priority}->{value} // 0) == $highest } @pkgs;
|
||||
|
||||
next if scalar @pkgs == 1;
|
||||
|
||||
$nrCollisions++;
|
||||
print "The following attributes evaluate to a package named ‘$name’:\n";
|
||||
print " ", join(", ", map { $_->{attrPath} } @pkgs), "\n\n";
|
||||
}
|
||||
|
||||
print "=== Bottom line ===\n";
|
||||
print "Number of packages: ", scalar(keys %{$info->{item}}), "\n";
|
||||
print "Number of bad names: $nrBadNames\n";
|
||||
print "Number of missing maintainers: $nrMissingMaintainers\n";
|
||||
print "Number of missing licenses: $nrMissingLicenses\n";
|
||||
print "Number of missing descriptions: $nrMissingDescriptions\n";
|
||||
print "Number of bad descriptions: $nrBadDescriptions\n";
|
||||
print "Number of name collisions: $nrCollisions\n";
|
@ -61,7 +61,7 @@ in
|
||||
|
||||
meta = {
|
||||
homepage = "http://lly.org/~rcw/abcde/page/";
|
||||
licence = "GPLv2+";
|
||||
license = "GPLv2+";
|
||||
description = "A Better CD Encoder (ABCDE)";
|
||||
|
||||
longDescription = ''
|
||||
|
@ -7,11 +7,11 @@ stdenv.mkDerivation rec {
|
||||
name = "${pname}-${version}";
|
||||
|
||||
pname = "amarok";
|
||||
version = "2.6.0";
|
||||
version = "2.7.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://kde/stable/${pname}/${version}/src/${name}.tar.bz2";
|
||||
sha256 = "1h6jzl0jnn8g05pz4mw01kz20wjjxwwz6iki7lvgj70qi3jq04m9";
|
||||
sha256 = "12dvqnx6jniykbi6sz94xxlnxzafjsaxlf0mppk9w5wn61jwc3cy";
|
||||
};
|
||||
|
||||
QT_PLUGIN_PATH="${qtscriptgenerator}/lib/qt4/plugins";
|
||||
|
@ -19,7 +19,7 @@ in
|
||||
|
||||
meta = {
|
||||
homepage = http://lly.org/~rcw/cd-discid/;
|
||||
licence = "GPLv2+";
|
||||
license = "GPLv2+";
|
||||
description = "cd-discid, a command-line utility to retrieve a disc's CDDB ID";
|
||||
|
||||
longDescription = ''
|
||||
@ -28,4 +28,4 @@ in
|
||||
abcde), but can be used for any purpose requiring CDDB data.
|
||||
'';
|
||||
};
|
||||
}
|
||||
}
|
||||
|
@ -17,7 +17,7 @@ stdenv.mkDerivation {
|
||||
enableParallelBuilding = true;
|
||||
|
||||
src = fetchurl {
|
||||
url = http://netcologne.dl.sourceforge.net/project/csound/csound5/csound5.18/Csound5.18.02.tar.gz;
|
||||
url = mirror://sourceforge/csound/Csound5.18.02.tar.gz;
|
||||
sha256 = "4c461cf3bf60b83671224949dd33805379b7121bf2c0ad6af5e191e7f6f8adc8";
|
||||
};
|
||||
|
||||
|
@ -1,22 +1,32 @@
|
||||
{ stdenv, fetchurl, pkgconfig, gtk, libid3tag, id3lib, libvorbis, libogg, flac }:
|
||||
{ stdenv, fetchurl, pkgconfig, intltool, gtk, glib, libid3tag, id3lib, taglib
|
||||
, libvorbis, libogg, flac
|
||||
}:
|
||||
|
||||
let
|
||||
|
||||
version = "2.1.7";
|
||||
sha256 = "bfed34cbdce96aca299a0db2b531dbc66feb489b911a34f0a9c67f2eb6ee9301";
|
||||
|
||||
in stdenv.mkDerivation {
|
||||
stdenv.mkDerivation rec {
|
||||
name = "easytag-${version}";
|
||||
version = "2.1.8";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/easytag/easytag-${version}.tar.bz2";
|
||||
inherit sha256;
|
||||
url = "mirror://gnome/sources/easytag/2.1/${name}.tar.xz";
|
||||
sha256 = "1ab5iv0a83cdf07qzi81ydfk5apay06nxags9m07msqalz4pabqs";
|
||||
};
|
||||
|
||||
buildInputs = [ pkgconfig gtk libid3tag id3lib libvorbis libogg flac ];
|
||||
preConfigure = ''
|
||||
# pkg-config v0.23 should be enough.
|
||||
sed -i -e '/_pkg_min_version=0.24/s/24/23/' \
|
||||
-e 's/have_mp3=no/have_mp3=yes/' \
|
||||
-e 's/ID3TAG_DEPS="id3tag"/ID3TAG_DEPS=""/' configure
|
||||
'';
|
||||
|
||||
NIX_LDFLAGS = "-lid3tag -lz";
|
||||
|
||||
buildInputs = [
|
||||
pkgconfig intltool gtk glib libid3tag id3lib taglib libvorbis libogg flac
|
||||
];
|
||||
|
||||
meta = {
|
||||
description = "an utility for viewing and editing tags for various audio files";
|
||||
homepage = http://http://easytag.sourceforge.net/;
|
||||
license = stdenv.lib.licenses.gpl2;
|
||||
description = "View and edit tags for various audio files";
|
||||
homepage = "http://projects.gnome.org/easytag/";
|
||||
license = stdenv.lib.licenses.gpl2Plus;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
@ -10,12 +10,24 @@ stdenv.mkDerivation rec {
|
||||
sha256 = "1x73a5rsyvfmh1j0484kzgnk251q61g1g2jdja673l8fizi0xd24";
|
||||
};
|
||||
|
||||
buildInputs = [ alsaLib glib jackaudio libsndfile pkgconfig pulseaudio ];
|
||||
preBuild = stdenv.lib.optionalString stdenv.isDarwin ''
|
||||
sed -i '40 i\
|
||||
#include <CoreAudio/AudioHardware.h>\
|
||||
#include <CoreAudio/AudioHardwareDeprecated.h>' \
|
||||
src/drivers/fluid_coreaudio.c
|
||||
'';
|
||||
|
||||
NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isDarwin
|
||||
"-framework CoreAudio";
|
||||
|
||||
buildInputs = [ glib libsndfile pkgconfig ]
|
||||
++ stdenv.lib.optionals (!stdenv.isDarwin) [ alsaLib pulseaudio jackaudio ];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "real-time software synthesizer based on the SoundFont 2 specifications";
|
||||
homepage = http://www.fluidsynth.org;
|
||||
license = licenses.lgpl2;
|
||||
maintainers = [ maintainers.goibhniu ];
|
||||
description = "Real-time software synthesizer based on the SoundFont 2 specifications";
|
||||
homepage = http://www.fluidsynth.org;
|
||||
license = licenses.lgpl2;
|
||||
maintainers = with maintainers; [ goibhniu lovek323 ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
|
@ -4,7 +4,7 @@ stdenv.mkDerivation {
|
||||
name = "lingot-0.9.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = http://download.savannah.gnu.org/releases/lingot/lingot-0.9.0.tar.gz;
|
||||
url = mirror://savannah/lingot/lingot-0.9.0.tar.gz;
|
||||
sha256 = "07z129lp8m4sz608q409wb11c639w7cbn497r7bscgg08p6c07xb";
|
||||
};
|
||||
|
||||
|
38
pkgs/applications/audio/mi2ly/default.nix
Normal file
38
pkgs/applications/audio/mi2ly/default.nix
Normal file
@ -0,0 +1,38 @@
|
||||
{stdenv, fetchurl}:
|
||||
let
|
||||
s = # Generated upstream information
|
||||
rec {
|
||||
baseName="mi2ly";
|
||||
version="0.12";
|
||||
name="${baseName}-${version}";
|
||||
hash="1b14zcwlvnxhjxr3ymyzg0mg4sbijkinzpxm641s859jxcgylmll";
|
||||
url="http://download.savannah.gnu.org/releases/mi2ly/mi2ly.0.12.tar.bz2";
|
||||
sha256="1b14zcwlvnxhjxr3ymyzg0mg4sbijkinzpxm641s859jxcgylmll";
|
||||
};
|
||||
buildInputs = [
|
||||
];
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
inherit (s) name version;
|
||||
inherit buildInputs;
|
||||
src = fetchurl {
|
||||
inherit (s) url sha256;
|
||||
};
|
||||
|
||||
sourceRoot=".";
|
||||
|
||||
buildPhase = "./cc";
|
||||
installPhase = ''
|
||||
mkdir -p "$out"/{bin,share/doc/mi2ly}
|
||||
cp mi2ly "$out/bin"
|
||||
cp README Doc.txt COPYING Manual.txt "$out/share/doc/mi2ly"
|
||||
'';
|
||||
|
||||
meta = {
|
||||
inherit (s) version;
|
||||
description = ''MIDI to Lilypond converter'';
|
||||
license = stdenv.lib.licenses.gpl2Plus ;
|
||||
maintainers = [stdenv.lib.maintainers.raskin];
|
||||
platforms = stdenv.lib.platforms.linux;
|
||||
};
|
||||
}
|
3
pkgs/applications/audio/mi2ly/default.upstream
Normal file
3
pkgs/applications/audio/mi2ly/default.upstream
Normal file
@ -0,0 +1,3 @@
|
||||
url http://download.savannah.gnu.org/releases/mi2ly/
|
||||
ensure_choice
|
||||
version '.*/mi2ly[.]([0-9.]+)[.]tar.*' '\1'
|
@ -1,16 +1,15 @@
|
||||
{ stdenv, fetchgit, pythonPackages, pygobject, gst_python
|
||||
{ stdenv, fetchurl, pythonPackages, pygobject, gst_python
|
||||
, gst_plugins_good, gst_plugins_base
|
||||
}:
|
||||
|
||||
pythonPackages.buildPythonPackage rec {
|
||||
name = "mopidy-${version}";
|
||||
|
||||
version = "0.14.1";
|
||||
version = "0.14.2";
|
||||
|
||||
src = fetchgit {
|
||||
url = "https://github.com/mopidy/mopidy.git";
|
||||
rev = "refs/tags/v${version}";
|
||||
sha256 = "0lgd8dpiri9m6sigpf1g1qzvz25lkb38lskgwvb8j7x64y104z0v";
|
||||
src = fetchurl {
|
||||
url = "https://github.com/mopidy/mopidy/archive/v${version}.tar.gz";
|
||||
sha256 = "0fqx7lk9g61d744b951cwx0szqbyji58dhw2ravnq9785nkhi7i4";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = with pythonPackages; [
|
||||
|
@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
license = "GPLv2+";
|
||||
|
||||
maintainers = [ stdenv.lib.maintainers.ludo ];
|
||||
maintainers = [ ];
|
||||
platforms = stdenv.lib.platforms.gnu; # arbitrary choice
|
||||
};
|
||||
}
|
||||
|
@ -1,14 +1,14 @@
|
||||
{stdenv, fetchurl, alsaLib }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "mpg123-1.12.3";
|
||||
name = "mpg123-1.15.4";
|
||||
|
||||
src = fetchurl {
|
||||
url = mirror://sourceforge/mpg123/mpg123-1.12.3.tar.bz2;
|
||||
sha256 = "1ij689s7jch3d4g0ja3jylaphallc8vgrsrm9b12254phnyy23xf";
|
||||
url = mirror://sourceforge/mpg123/mpg123-1.15.4.tar.bz2;
|
||||
sha256 = "05aizspky9mp1bq2lfrkjzrsnjykl7gkbrhn93xcarj5b2izv1b8";
|
||||
};
|
||||
|
||||
buildInputs = [ alsaLib ];
|
||||
buildInputs = stdenv.lib.optional (!stdenv.isDarwin) alsaLib;
|
||||
|
||||
crossAttrs = {
|
||||
configureFlags = if stdenv.cross ? mpg123 then
|
||||
|
@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
|
||||
description = "mpg321, a command-line MP3 player";
|
||||
homepage = http://mpg321.sourceforge.net/;
|
||||
license = "GPLv2";
|
||||
maintainers = [ stdenv.lib.maintainers.ludo ];
|
||||
maintainers = [ ];
|
||||
platforms = stdenv.lib.platforms.gnu;
|
||||
};
|
||||
}
|
||||
|
@ -1,4 +1,5 @@
|
||||
{stdenv, fetchurl, ncurses, curl, taglib, fftw, mpd_clientlib, pkgconfig}:
|
||||
{ stdenv, fetchurl, ncurses, curl, taglib, fftw, mpd_clientlib, pkgconfig
|
||||
, libiconvOrEmpty }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "0.5.10";
|
||||
@ -9,14 +10,15 @@ stdenv.mkDerivation rec {
|
||||
sha256 = "ff6d5376a2d9caba6f5bb78e68af77cefbdb2f04cd256f738e39f8ac9a79a4a8";
|
||||
};
|
||||
|
||||
buildInputs = [ ncurses curl taglib fftw mpd_clientlib pkgconfig ];
|
||||
buildInputs = [ ncurses curl taglib fftw mpd_clientlib pkgconfig ]
|
||||
++ libiconvOrEmpty;
|
||||
|
||||
meta = {
|
||||
meta = with stdenv.lib; {
|
||||
description = "Curses-based interface for MPD (music player daemon)";
|
||||
homepage = http://unkart.ovh.org/ncmpcpp/;
|
||||
license = "GPLv2+";
|
||||
maintainers = [ stdenv.lib.maintainers.mornfall ];
|
||||
platforms = stdenv.lib.platforms.all;
|
||||
homepage = http://unkart.ovh.org/ncmpcpp/;
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = with maintainers; [ lovek323 mornfall ];
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -5,7 +5,7 @@ stdenv.mkDerivation rec {
|
||||
version = "0.7.7";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://savannah.nongnu.org/download/normalize/normalize-0.7.7.tar.gz";
|
||||
url = "mirror://savannah/normalize/normalize-0.7.7.tar.gz";
|
||||
sha256 = "1n5khss10vjjp6w69q9qcl4kqfkd0pr555lgqghrchn6rjms4mb0";
|
||||
};
|
||||
|
||||
|
@ -1,18 +1,18 @@
|
||||
{ fetchurl, stdenv, pkgconfig, pulseaudio, gtkmm, libsigcxx
|
||||
, libglademm, libcanberra, intltool, gettext }:
|
||||
{ fetchurl, stdenv, pkgconfig, pulseaudio, gtkmm3
|
||||
, libcanberra_gtk3, intltool, gettext }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "pavucontrol-1.0";
|
||||
name = "pavucontrol-2.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://freedesktop.org/software/pulseaudio/pavucontrol/${name}.tar.xz";
|
||||
sha256 = "1plcyrc7p6gqxjhxx2xh6162bkb29wixjrqrjnl9b8g3nrjjigix";
|
||||
sha256 = "02s775m1531sshwlbvfddk3pz8zjmwkv1sgzggn386ja3gc9vwi2";
|
||||
};
|
||||
|
||||
buildInputs = [ pkgconfig pulseaudio gtkmm libsigcxx libglademm libcanberra
|
||||
buildInputs = [ pkgconfig pulseaudio gtkmm3 libcanberra_gtk3
|
||||
intltool gettext ];
|
||||
|
||||
configureFlags = "--disable-lynx --disable-gtk3";
|
||||
configureFlags = "--disable-lynx";
|
||||
|
||||
meta = {
|
||||
description = "PulseAudio Volume Control";
|
||||
@ -23,11 +23,11 @@ stdenv.mkDerivation rec {
|
||||
easily control the volume of all clients, sinks, etc.
|
||||
'';
|
||||
|
||||
homepage = http://0pointer.de/lennart/projects/pavucontrol/;
|
||||
homepage = http://freedesktop.org/software/pulseaudio/pavucontrol/ ;
|
||||
|
||||
license = "GPLv2+";
|
||||
|
||||
maintainers = [ stdenv.lib.maintainers.ludo ];
|
||||
maintainers = [ ];
|
||||
platforms = stdenv.lib.platforms.gnu; # arbitrary choice
|
||||
};
|
||||
}
|
||||
|
@ -1,16 +1,24 @@
|
||||
{ stdenv, fetchurl, pythonPackages, gettext, pyqt4
|
||||
, pkgconfig, libdiscid, libofa, ffmpeg }:
|
||||
, pkgconfig, libdiscid, libofa, ffmpeg, acoustidFingerprinter
|
||||
}:
|
||||
|
||||
pythonPackages.buildPythonPackage rec {
|
||||
name = "picard-${version}";
|
||||
namePrefix = "";
|
||||
version = "1.1";
|
||||
version = "1.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://ftp.musicbrainz.org/pub/musicbrainz/picard/${name}.tar.gz";
|
||||
md5 = "57abb76632a423760f336ac11da5c149";
|
||||
md5 = "d1086687b7f7b0d359a731b1a25e7b66";
|
||||
};
|
||||
|
||||
postPatch = let
|
||||
fpr = "${acoustidFingerprinter}/bin/acoustid_fpcalc";
|
||||
in ''
|
||||
sed -ri -e 's|(TextOption.*"acoustid_fpcalc"[^"]*")[^"]*|\1${fpr}|' \
|
||||
picard/ui/options/fingerprinting.py
|
||||
'';
|
||||
|
||||
buildInputs = [
|
||||
pkgconfig
|
||||
ffmpeg
|
||||
|
67
pkgs/applications/audio/quodlibet/default.nix
Normal file
67
pkgs/applications/audio/quodlibet/default.nix
Normal file
@ -0,0 +1,67 @@
|
||||
{ stdenv, fetchurl, python, buildPythonPackage, mutagen, pygtk, pygobject
|
||||
, pythonDBus, gst_python, gst_plugins_base, gst_plugins_good, gst_plugins_ugly }:
|
||||
|
||||
let version = "2.5"; in
|
||||
|
||||
buildPythonPackage {
|
||||
# call the package quodlibet and just quodlibet
|
||||
name = "quodlibet-${version}";
|
||||
namePrefix = "";
|
||||
|
||||
# XXX, tests fail
|
||||
doCheck = false;
|
||||
|
||||
src = [
|
||||
(fetchurl {
|
||||
url = "https://quodlibet.googlecode.com/files/quodlibet-${version}.tar.gz";
|
||||
sha256 = "0qrmlz7m1jpmriy8bgycjiwzbf3annznkn4x5k32yy9bylxa7lwb";
|
||||
})
|
||||
(fetchurl {
|
||||
url = "https://quodlibet.googlecode.com/files/quodlibet-plugins-${version}.tar.gz";
|
||||
sha256 = "0kf2mkq2zk38626bn48gscvy6ir04f5b2z57ahlxlqy8imv2cjff";
|
||||
})
|
||||
];
|
||||
|
||||
sourceRoot = "quodlibet-${version}";
|
||||
postUnpack = ''
|
||||
# the patch searches for plugins in directory ../plugins
|
||||
# so link the appropriate directory there
|
||||
ln -sf quodlibet-plugins-${version} plugins
|
||||
'';
|
||||
patches = [ ./quodlibet-package-plugins.patch ];
|
||||
|
||||
buildInputs = [
|
||||
gst_plugins_base gst_plugins_good gst_plugins_ugly
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
mutagen pygtk pygobject pythonDBus gst_python
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
# Wrap quodlibet so it finds the GStreamer plug-ins
|
||||
wrapProgram "$out/bin/quodlibet" --prefix \
|
||||
GST_PLUGIN_PATH ":" \
|
||||
"${gst_plugins_base}/lib/gstreamer-0.10:${gst_plugins_good}/lib/gstreamer-0.10:${gst_plugins_ugly}/lib/gstreamer-0.10"
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Quod Libet is a GTK+-based audio player written in Python, using the Mutagen tagging library.";
|
||||
|
||||
longDescription = ''
|
||||
Quod Libet is a GTK+-based audio player written in Python, using
|
||||
the Mutagen tagging library. It's designed around the idea that
|
||||
you know how to organize your music better than we do. It lets
|
||||
you make playlists based on regular expressions (don't worry,
|
||||
regular searches work too). It lets you display and edit any
|
||||
tags you want in the file. And it lets you do this for all the
|
||||
file formats it supports. Quod Libet easily scales to libraries
|
||||
of thousands (or even tens of thousands) of songs. It also
|
||||
supports most of the features you expect from a modern media
|
||||
player, like Unicode support, tag editing, Replay Gain, podcasts
|
||||
& internet radio, and all major audio formats.
|
||||
'';
|
||||
|
||||
homepage = http://code.google.com/p/quodlibet/;
|
||||
};
|
||||
}
|
@ -0,0 +1,18 @@
|
||||
diff -Naur quodlibet-2.5.orig/setup.py quodlibet-2.5.new/setup.py
|
||||
--- quodlibet-2.5.orig/setup.py 2012-12-19 08:47:41.000000000 +0000
|
||||
+++ quodlibet-2.5.new/setup.py 2013-04-22 19:27:07.152631051 +0000
|
||||
@@ -337,5 +338,14 @@
|
||||
}
|
||||
}
|
||||
})
|
||||
+ else:
|
||||
+ from os.path import join
|
||||
+
|
||||
+ data_files = []
|
||||
+ for type in ["playorder", "songsmenu", "editing", "events", "gstreamer"]:
|
||||
+ data_files.append((join('quodlibet', 'plugins', type),
|
||||
+ glob.glob(join('..', 'plugins', type, '*.py'))))
|
||||
+ setup_kwargs.update({ 'data_files': data_files });
|
||||
+
|
||||
setup(**setup_kwargs)
|
||||
|
@ -27,7 +27,7 @@ let
|
||||
in
|
||||
rec {
|
||||
src = fetchurl {
|
||||
url = "http://downloads.sourceforge.net/snd/snd-${version}.tar.gz";
|
||||
url = "mirror://sourceforge/snd/snd-${version}.tar.gz";
|
||||
sha256 = "0zqgfnkvkqxby1k74mwba1r4pb520glcsz5jjmpzm9m41nqnghmm";
|
||||
};
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
{ fetchurl, stdenv, dpkg, xlibs, qt4, alsaLib, makeWrapper, openssl, freetype, glib, pango, cairo, atk, gdk_pixbuf, gtk, cups, nspr, nss, libpng12, GConf, libgcrypt, chromium, sqlite, gst_plugins_base, gstreamer }:
|
||||
{ fetchurl, stdenv, dpkg, xlibs, qt4, alsaLib, makeWrapper, openssl, freetype, glib, pango, cairo, atk, gdk_pixbuf, gtk, cups, nspr, nss, libpng, GConf, libgcrypt, chromium, sqlite, gst_plugins_base, gstreamer }:
|
||||
|
||||
assert stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux";
|
||||
|
||||
@ -73,7 +73,7 @@ stdenv.mkDerivation {
|
||||
mkdir -p $out/libexec/spotify
|
||||
gcc -shared ${./preload.c} -o $preload -ldl -DOUT=\"$out\" -fPIC
|
||||
|
||||
wrapProgram $out/bin/spotify --set LD_PRELOAD $preload --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ GConf libpng12 cups libgcrypt sqlite gst_plugins_base gstreamer]}:$out/lib"
|
||||
wrapProgram $out/bin/spotify --set LD_PRELOAD $preload --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ GConf libpng cups libgcrypt sqlite gst_plugins_base gstreamer]}:$out/lib"
|
||||
''; # */
|
||||
|
||||
dontStrip = true;
|
||||
|
@ -1,23 +1,43 @@
|
||||
{ stdenv, fetchurl, lightdm, pkgconfig, gtk3, intltool }:
|
||||
{ stdenv, fetchurl, lightdm, pkgconfig, intltool
|
||||
, hicolor_icon_theme, makeWrapper
|
||||
, useGTK2 ? false, gtk2, gtk3 # gtk3 seems better supported
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "lightdm-gtk-greeter";
|
||||
#ToDo: bad icons with gtk2;
|
||||
# avatar icon is missing in standard hicolor theme, I don't know where gtk3 takes it from
|
||||
|
||||
#ToDo: Failed to open sessions directory: Error opening directory '${lightdm}/share/lightdm/remote-sessions': No such file or directory
|
||||
|
||||
let
|
||||
ver_branch = "1.6";
|
||||
version = "1.5.1"; # 1.5.2 and 1.6.0 result into infinite cycling of X in restarts
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
name = "lightdm-gtk-greeter-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://launchpad.net/lightdm-gtk-greeter/1.6/1.5.1/+download/lightdm-gtk-greeter-1.5.1.tar.gz";
|
||||
sha256 = "ecce7e917a79fa8f2126c3fafb6337f81f2198892159a4ef695016afecd2d621";
|
||||
url = "${meta.homepage}/${ver_branch}/${version}/+download/${name}.tar.gz";
|
||||
sha256 = "08fnsbnay5jhd7ps8n91i6c227zq6xizpyn34qhqzykrga8pxkpc";
|
||||
};
|
||||
|
||||
buildInputs = [ pkgconfig gtk3 lightdm intltool ];
|
||||
|
||||
patches =
|
||||
[ ./lightdm-gtk-greeter.patch
|
||||
];
|
||||
|
||||
patches = [ ./lightdm-gtk-greeter.patch ];
|
||||
patchFlags = "-p0";
|
||||
|
||||
buildInputs = [ pkgconfig lightdm intltool ]
|
||||
++ (if useGTK2 then [ gtk2 makeWrapper ] else [ gtk3 ]);
|
||||
|
||||
configureFlags = stdenv.lib.optional useGTK2 "--with-gtk2";
|
||||
|
||||
postInstall = ''
|
||||
substituteInPlace "$out/share/xgreeters/lightdm-gtk-greeter.desktop" \
|
||||
--replace "Exec=lightdm-gtk-greeter" "Exec=$out/sbin/lightdm-gtk-greeter"
|
||||
'' + stdenv.lib.optionalString useGTK2 ''
|
||||
wrapProgram "$out/sbin/lightdm-gtk-greeter" \
|
||||
--prefix XDG_DATA_DIRS ":" "${hicolor_icon_theme}/share"
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = http://launchpad.net/lightdm-gtk-greeter;
|
||||
platforms = stdenv.lib.platforms.linux;
|
||||
};
|
||||
}
|
||||
|
@ -1,25 +1,31 @@
|
||||
{ stdenv, fetchurl, pam, pkgconfig, libxcb, glib, libXdmcp, itstool, libxml2, intltool, x11, libxklavier, libgcrypt, makeWrapper }:
|
||||
{ stdenv, fetchurl, pam, pkgconfig, libxcb, glib, libXdmcp, itstool, libxml2
|
||||
, intltool, x11, libxklavier, libgcrypt, dbus/*for tests*/ }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "lightdm-1.5.1";
|
||||
let
|
||||
ver_branch = "1.8";
|
||||
version = "1.7.0";
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
name = "lightdm-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = https://launchpad.net/lightdm/1.6/1.5.1/+download/lightdm-1.5.1.tar.xz;
|
||||
sha256 = "645db2d763cc514d6aecb1838f4a9c33c3dcf0c94567a7ef36c6b23d8aa56c86";
|
||||
url = "${meta.homepage}/${ver_branch}/${version}/+download/${name}.tar.xz";
|
||||
sha256 = "0nwwjgc9xvwili6714ag88wsrf0lr5hv1i6z9f0xvin4ym18cbs5";
|
||||
};
|
||||
|
||||
buildInputs = [ pkgconfig pam libxcb glib libXdmcp itstool libxml2 intltool libxklavier libgcrypt makeWrapper ];
|
||||
|
||||
configureFlags = [ "--enable-liblightdm-gobject" ];
|
||||
|
||||
patches =
|
||||
[ ./lightdm.patch
|
||||
];
|
||||
|
||||
patches = [ ./lightdm.patch ];
|
||||
patchFlags = "-p0";
|
||||
|
||||
buildInputs = [
|
||||
pkgconfig pam libxcb glib libXdmcp itstool libxml2 intltool libxklavier libgcrypt
|
||||
] ++ stdenv.lib.optional doCheck dbus.daemon;
|
||||
|
||||
configureFlags = [ "--enable-liblightdm-gobject" "--localstatedir=/var" ];
|
||||
|
||||
doCheck = false; # some tests fail, don't know why
|
||||
|
||||
meta = {
|
||||
homepage = http://launchpad.net/lightdm;
|
||||
platforms = stdenv.lib.platforms.linux;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
{ stdenv, fetchurl, cmake, pkgconfig, x11, libjpeg, libpng12, libXmu
|
||||
{ stdenv, fetchurl, cmake, pkgconfig, x11, libjpeg, libpng, libXmu
|
||||
, fontconfig, freetype, pam, dbus_libs }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
|
||||
];
|
||||
|
||||
buildInputs =
|
||||
[ cmake pkgconfig x11 libjpeg libpng12 libXmu fontconfig freetype
|
||||
[ cmake pkgconfig x11 libjpeg libpng libXmu fontconfig freetype
|
||||
pam dbus_libs
|
||||
];
|
||||
|
||||
|
@ -4,7 +4,7 @@ stdenv.mkDerivation {
|
||||
name = "bvi-1.3.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = http://prdownloads.sourceforge.net/bvi/bvi-1.3.2.src.tar.gz;
|
||||
url = mirror://sourceforge/bvi/bvi-1.3.2.src.tar.gz;
|
||||
sha256 = "110wxqnyianqamxq4y53drqqxb9vp4k2fcvic45qggvlqkqhlfgz";
|
||||
};
|
||||
|
||||
|
32
pkgs/applications/editors/dhex/default.nix
Normal file
32
pkgs/applications/editors/dhex/default.nix
Normal file
@ -0,0 +1,32 @@
|
||||
{ stdenv, fetchurl, ncurses }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "dhex-${version}";
|
||||
version = "0.68";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://www.dettus.net/dhex/dhex_${version}.tar.gz";
|
||||
sha256 = "126c34745b48a07448cfe36fe5913d37ec562ad72d3f732b99bd40f761f4da08";
|
||||
};
|
||||
|
||||
buildInputs = [ ncurses ];
|
||||
|
||||
installPhase = ''
|
||||
ensureDir $out/bin
|
||||
ensureDir $out/share/man/man1
|
||||
ensureDir $out/share/man/man5
|
||||
|
||||
cp dhex $out/bin
|
||||
cp dhex.1 $out/share/man/man1
|
||||
cp dhexrc.5 $out/share/man/man5
|
||||
cp dhex_markers.5 $out/share/man/man5
|
||||
cp dhex_searchlog.5 $out/share/man/man5
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "A themeable hex editor with diff mode";
|
||||
homepage = http://www.dettus.net/dhex/;
|
||||
license = stdenv.lib.licenses.gpl2;
|
||||
maintainers = with stdenv.lib.maintainers; [qknight];
|
||||
};
|
||||
}
|
@ -41,6 +41,6 @@ stdenv.mkDerivation rec {
|
||||
|
||||
homepage = http://www.gnu.org/software/ed/;
|
||||
|
||||
maintainers = [ stdenv.lib.maintainers.ludo ];
|
||||
maintainers = [ ];
|
||||
};
|
||||
}
|
||||
|
@ -66,7 +66,7 @@ EOF
|
||||
homepage = http://www.gnu.org/software/emacs/;
|
||||
license = "GPLv3+";
|
||||
|
||||
maintainers = with stdenv.lib.maintainers; [ ludo simons chaoflow ];
|
||||
maintainers = with stdenv.lib.maintainers; [ simons chaoflow ];
|
||||
platforms = stdenv.lib.platforms.all;
|
||||
};
|
||||
}
|
||||
|
@ -26,8 +26,10 @@ stdenv.mkDerivation rec {
|
||||
++ stdenv.lib.optional stdenv.isLinux dbus;
|
||||
|
||||
configureFlags =
|
||||
stdenv.lib.optionals (gtk != null) [ "--with-x-toolkit=gtk" "--with-xft"]
|
||||
|
||||
(if gtk != null then
|
||||
[ "--with-x-toolkit=gtk" "--with-xft"]
|
||||
else
|
||||
[ "--with-x-toolkit=no" ])
|
||||
# On NixOS, help Emacs find `crt*.o'.
|
||||
++ stdenv.lib.optional (stdenv ? glibc)
|
||||
[ "--with-crt-dir=${stdenv.glibc}/lib" ];
|
||||
@ -44,7 +46,7 @@ EOF
|
||||
|
||||
doCheck = true;
|
||||
|
||||
meta = {
|
||||
meta = with stdenv.lib; {
|
||||
description = "GNU Emacs 24, the extensible, customizable text editor";
|
||||
|
||||
longDescription = ''
|
||||
@ -67,7 +69,7 @@ EOF
|
||||
homepage = "http://www.gnu.org/software/emacs/";
|
||||
license = "GPLv3+";
|
||||
|
||||
maintainers = with stdenv.lib.maintainers; [ ludo simons chaoflow ];
|
||||
platforms = stdenv.lib.platforms.all;
|
||||
maintainers = with maintainers; [ chaoflow lovek323 simons ];
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
||||
|
@ -4,6 +4,7 @@ stdenv.mkDerivation {
|
||||
name = "bbdb-2.35";
|
||||
|
||||
src = fetchurl {
|
||||
# not using mirror:// because it produces a different file
|
||||
url = http://bbdb.sourceforge.net/bbdb-2.35.tar.gz;
|
||||
sha256 = "3fb1316e2ed74d47ca61187fada550e58797467bd9e8ad67343ed16da769f916";
|
||||
};
|
||||
|
@ -4,7 +4,7 @@ stdenv.mkDerivation rec {
|
||||
name = "color-theme-6.6.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://download.savannah.gnu.org/releases/color-theme/${name}.tar.gz";
|
||||
url = "mirror://savannah/color-theme/${name}.tar.gz";
|
||||
sha256 = "0yx1ghcjc66s1rl0v3d4r1k88ifw591hf814ly3d73acvh15zlsn";
|
||||
};
|
||||
|
||||
|
@ -43,6 +43,6 @@ stdenv.mkDerivation rec {
|
||||
|
||||
homepage = http://ecb.sourceforge.net/;
|
||||
|
||||
maintainers = [ stdenv.lib.maintainers.ludo ];
|
||||
maintainers = [ ];
|
||||
};
|
||||
}
|
||||
|
@ -56,6 +56,6 @@ stdenv.mkDerivation rec {
|
||||
|
||||
homepage = http://emacs-w3m.namazu.org/;
|
||||
|
||||
maintainers = [ stdenv.lib.maintainers.ludo ];
|
||||
maintainers = [ ];
|
||||
};
|
||||
}
|
||||
|
@ -1,15 +1,14 @@
|
||||
{ stdenv, fetchurl, emacs }:
|
||||
{ stdenv, fetchurl, emacs, texinfo }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "haskell-mode-2.9.1-102-g8d4b965";
|
||||
name = "haskell-mode-13.07";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/haskell/haskell-mode/tarball/8d4b9651a69b62fcbedbac63de29a1e87ff0e97f";
|
||||
sha256 = "02sil43885xjbfqakrxkm7bjnjd930lx6845fc2rxmkq5plkq85a";
|
||||
name = "${name}.tar.gz";
|
||||
url = "https://github.com/haskell/haskell-mode/archive/v13.07.tar.gz";
|
||||
sha256 = "15c8ncj9mykkrizy1a8l94gq37s8hj13v3p5rgyaj9z0cwgl85kx";
|
||||
};
|
||||
|
||||
buildInputs = [emacs];
|
||||
buildInputs = [ emacs texinfo ];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p "$out/share/emacs/site-lisp"
|
||||
|
@ -91,7 +91,7 @@ in
|
||||
|
||||
license = "GPLv2+";
|
||||
|
||||
maintainers = [ stdenv.lib.maintainers.ludo ];
|
||||
maintainers = [ ];
|
||||
platforms = stdenv.lib.platforms.gnu; # arbitrary choice
|
||||
};
|
||||
}
|
||||
|
@ -40,6 +40,6 @@ stdenv.mkDerivation rec {
|
||||
'';
|
||||
|
||||
platforms = stdenv.lib.platforms.all;
|
||||
maintainers = with stdenv.lib.maintainers; [ simons ludo ];
|
||||
maintainers = with stdenv.lib.maintainers; [ simons ];
|
||||
};
|
||||
}
|
||||
|
@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
license = "GPLv3+";
|
||||
|
||||
maintainers = with stdenv.lib.maintainers; [ ludo chaoflow ];
|
||||
maintainers = with stdenv.lib.maintainers; [ chaoflow ];
|
||||
platforms = stdenv.lib.platforms.gnu;
|
||||
};
|
||||
}
|
||||
|
@ -4,7 +4,7 @@ stdenv.mkDerivation rec {
|
||||
name = "php-mode-1.5.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://downloads.sourceforge.net/php-mode/${name}.tar.gz";
|
||||
url = "mirror://sourceforge/php-mode/${name}.tar.gz";
|
||||
sha256 = "1bffgg4rpiggxqc1hvjcby24sfyzj5728zg7r6f4v6a126a7kcfq";
|
||||
};
|
||||
|
||||
|
@ -27,6 +27,6 @@ stdenv.mkDerivation {
|
||||
description = "Enhanced Emacs support for editing and running Scheme code";
|
||||
homepage = http://www.neilvandyke.org/quack/;
|
||||
license = "GPLv2+";
|
||||
maintainers = [ stdenv.lib.maintainers.ludo ];
|
||||
maintainers = [ ];
|
||||
};
|
||||
}
|
||||
|
@ -25,6 +25,6 @@ stdenv.mkDerivation rec {
|
||||
# non-copyleft, BSD-style
|
||||
license = "permissive";
|
||||
|
||||
maintainers = [ stdenv.lib.maintainers.ludo ];
|
||||
maintainers = [ ];
|
||||
};
|
||||
}
|
||||
|
@ -4,8 +4,7 @@ stdenv.mkDerivation rec {
|
||||
name = "session-management-for-emacs-2.2a";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://downloads.sourceforge.net/project/emacs-session/session/2.2a/session-2.2a.tar.gz";
|
||||
# url = "mirror://sourceforge.net/sourceforge/emacs-session/session-2.2a.tar.gz";
|
||||
url = "mirror://sourceforge/emacs-session/session-2.2a.tar.gz";
|
||||
sha256 = "37dfba7420b5164eab90dafa9e8bf9a2c8f76505fe2fefa14a64e81fa76d0144";
|
||||
};
|
||||
|
||||
|
20
pkgs/applications/editors/flpsed/default.nix
Normal file
20
pkgs/applications/editors/flpsed/default.nix
Normal file
@ -0,0 +1,20 @@
|
||||
{stdenv, fetchurl, fltk13, ghostscript}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "flpsed-0.7.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://www.ecademix.com/JohannesHofmann/flpsed-0.7.0.tar.gz";
|
||||
sha1 = "7966fd3b6fb3aa2a376386533ed4421ebb66ad62";
|
||||
};
|
||||
|
||||
buildInputs = [ fltk13 ghostscript ];
|
||||
|
||||
meta = {
|
||||
description = "A WYSIWYG PostScript annotator.";
|
||||
homepage = "http://http://flpsed.org/flpsed.html";
|
||||
license = "GPLv3";
|
||||
platforms = stdenv.lib.platforms.all;
|
||||
};
|
||||
|
||||
}
|
@ -1,11 +1,11 @@
|
||||
{stdenv, fetchurl, kdelibs, cmake, gettext }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "kile-2.1.2";
|
||||
name = "kile-2.1.3";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/kile/${name}.tar.bz2";
|
||||
sha256 = "0nx5fmjrxrndnzvknxnybd8qh15jzfxzbny2rljq3amjw02y9lc2";
|
||||
sha256 = "18nfi37s46v9xav7vyki3phasddgcy4m7nywzxis198vr97yqqx0";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake gettext ];
|
||||
|
35
pkgs/applications/editors/mg/configure.patch
Normal file
35
pkgs/applications/editors/mg/configure.patch
Normal file
@ -0,0 +1,35 @@
|
||||
--- configure.old 2013-07-30 19:42:51.000000000 +0200
|
||||
+++ configure 2013-07-30 19:47:26.000000000 +0200
|
||||
@@ -163,31 +163,7 @@
|
||||
echo 'Fails.'
|
||||
fi
|
||||
|
||||
-
|
||||
-if [ ! -r /usr/include/term.h ]; then
|
||||
- note 'term.h'
|
||||
- if [ -r /usr/include/ncurses/term.h ]; then
|
||||
- echo "Found in /usr/include/ncurses"
|
||||
- extraflags="$extraflags -I/usr/include/ncurses"
|
||||
- else
|
||||
- for i in pkg local; do
|
||||
- if [ -r /usr/$i/include/term.h ]; then
|
||||
- echo "Found in /usr/$i/include"
|
||||
- extralibs="$extralibs -L/usr/$i/lib"
|
||||
- extraflags="$extraflags -I/usr/$i/include"
|
||||
- break
|
||||
- else
|
||||
- false
|
||||
- fi
|
||||
- done ||
|
||||
- {
|
||||
- echo 'Not found!' >&2
|
||||
- echo 'Do you have the ncurses devel package installed?' >&2
|
||||
- echo 'If you know where term.h is, please email the author!' >&2
|
||||
- exit 1
|
||||
- }
|
||||
- fi
|
||||
-fi
|
||||
+extraflags="$extraflags $NIX_CFLAGS_COMPILE"
|
||||
|
||||
note 'base and dirname'
|
||||
if gcc_defines "__GLIBC__" || gcc_defines "__CYGWIN__" ; then
|
30
pkgs/applications/editors/mg/default.nix
Normal file
30
pkgs/applications/editors/mg/default.nix
Normal file
@ -0,0 +1,30 @@
|
||||
{ fetchurl, stdenv, ncurses }:
|
||||
stdenv.mkDerivation rec {
|
||||
name = "mg-20110905";
|
||||
|
||||
src = fetchurl {
|
||||
url = http://homepage.boetes.org/software/mg/mg-20110905.tar.gz;
|
||||
sha256 = "0ac2c7wy5kkcflm7cmiqm5xhb5c4yfw3i33iln8civ1yd9z7vlqw";
|
||||
};
|
||||
|
||||
dontAddPrefix = true;
|
||||
|
||||
patches = [ ./configure.patch ];
|
||||
patchFlags = "-p0";
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
cp mg $out/bin
|
||||
mkdir -p $out/share/man/man1
|
||||
cp mg.1 $out/share/man/man1
|
||||
'';
|
||||
|
||||
buildInputs = [ ncurses ];
|
||||
|
||||
meta = {
|
||||
homepage = http://homepage.boetes.org/software/mg/;
|
||||
description = "mg is Micro GNU/emacs, this is a portable version of the mg maintained by the OpenBSD team.";
|
||||
license = "public domain";
|
||||
platforms = stdenv.lib.platforms.all;
|
||||
};
|
||||
}
|
35
pkgs/applications/editors/nvpy/default.nix
Normal file
35
pkgs/applications/editors/nvpy/default.nix
Normal file
@ -0,0 +1,35 @@
|
||||
{ pkgs, fetchurl, tk, buildPythonPackage, pythonPackages }:
|
||||
|
||||
buildPythonPackage rec {
|
||||
version = "0.9.2";
|
||||
name = "nvpy-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/cpbotha/nvpy/archive/v${version}.tar.gz";
|
||||
sha256 = "78e41b80fc5549cba8cfd92b52d6530e8dfc8e8f37e96e4b219f30c266af811d";
|
||||
};
|
||||
|
||||
buildInputs = [tk];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
pythonPackages.markdown
|
||||
pythonPackages.tkinter
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
install -dm755 "$out/share/licenses/nvpy/"
|
||||
install -m644 LICENSE.txt "$out/share/licenses/nvpy/LICENSE"
|
||||
|
||||
install -dm755 "$out/share/doc/nvpy/"
|
||||
install -m644 README.rst "$out/share/doc/nvpy/README"
|
||||
|
||||
wrapProgram $out/bin/nvpy --set TK_LIBRARY "${tk}/lib/${tk.libPrefix}"
|
||||
'';
|
||||
|
||||
meta = with pkgs.lib; {
|
||||
description = "A simplenote-syncing note-taking tool inspired by Notational Velocity";
|
||||
homepage = "https://github.com/cpbotha/nvpy";
|
||||
platforms = platforms.linux;
|
||||
license = licenses.bsd3;
|
||||
};
|
||||
}
|
@ -89,7 +89,7 @@ stdenv.mkDerivation rec {
|
||||
'';
|
||||
homepage = http://texmacs.org/;
|
||||
license = "GPLv2+";
|
||||
maintainers = [ stdenv.lib.maintainers.ludo stdenv.lib.maintainers.roconnor ];
|
||||
maintainers = [ stdenv.lib.maintainers.roconnor ];
|
||||
platforms = stdenv.lib.platforms.gnu; # arbitrary choice
|
||||
};
|
||||
}
|
||||
|
24
pkgs/applications/editors/tiled-qt/default.nix
Normal file
24
pkgs/applications/editors/tiled-qt/default.nix
Normal file
@ -0,0 +1,24 @@
|
||||
{ stdenv, fetchurl, qt }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "tiled-qt-0.9.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/tiled/${name}.tar.gz";
|
||||
sha256 = "09xm6ry56zsqbfl9fvlvc5kq9ikzdskm283r059q6rlc7crzhs38";
|
||||
};
|
||||
|
||||
buildInputs = [ qt ];
|
||||
|
||||
preConfigure = "qmake -r PREFIX=$out";
|
||||
|
||||
meta = {
|
||||
description = "A free, easy to use and flexible tile map editor";
|
||||
homepage = "http://www.mapeditor.org/";
|
||||
# libtiled and tmxviewer is licensed under 2-calause BSD license.
|
||||
# The rest is GPL2 or later.
|
||||
license = stdenv.lib.licenses.gpl2Plus;
|
||||
platforms = stdenv.lib.platforms.linux;
|
||||
maintainers = with stdenv.lib.maintainers; [ iyzsong ];
|
||||
};
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
# TODO tidy up eg The patchelf code is patching gvim even if you don't build it..
|
||||
# but I have gvim with python support now :) - Marc
|
||||
args@{source ? "latest", ...}: with args;
|
||||
args@{source ? "default", ...}: with args;
|
||||
|
||||
|
||||
let inherit (args.composableDerivation) composableDerivation edf; in
|
||||
@ -11,7 +11,7 @@ composableDerivation {
|
||||
else stdenv ).mkDerivation;
|
||||
} (fix: {
|
||||
|
||||
name = "vim_configurable-7.3";
|
||||
name = "vim_configurable-7.4";
|
||||
|
||||
enableParallelBuilding = true; # test this
|
||||
|
||||
@ -20,8 +20,8 @@ composableDerivation {
|
||||
"default" =
|
||||
# latest release
|
||||
args.fetchurl {
|
||||
url = ftp://ftp.vim.org/pub/vim/unix/vim-7.3.tar.bz2;
|
||||
sha256 = "079201qk8g9yisrrb0dn52ch96z3lzw6z473dydw9fzi0xp5spaw";
|
||||
url = ftp://ftp.vim.org/pub/vim/unix/vim-7.4.tar.bz2;
|
||||
sha256 = "1pjaffap91l2rb9pjnlbrpvb3ay5yhhr3g91zabjvw1rqk9adxfh";
|
||||
};
|
||||
"vim-nox" =
|
||||
{
|
||||
@ -31,14 +31,7 @@ composableDerivation {
|
||||
name = "vim-nox-hg-2082fc3";
|
||||
# END
|
||||
}.src;
|
||||
"latest" = {
|
||||
# vim latest usually is vim + bug fixes. So it should be very stable
|
||||
# REGION AUTO UPDATE: { name="vim"; type="hg"; url="https://vim.googlecode.com/hg"; }
|
||||
src = (fetchurl { url = "http://mawercer.de/~nix/repos/vim-hg-7f98896.tar.bz2"; sha256 = "efcb8cc5924b530631a8e5fc2a0622045c2892210d32d300add24aded51866f1"; });
|
||||
name = "vim-hg-7f98896";
|
||||
# END
|
||||
}.src;
|
||||
};
|
||||
};
|
||||
|
||||
# if darwin support is enabled, we want to make sure we're not building with
|
||||
# OS-installed python framework
|
||||
|
@ -1,12 +1,14 @@
|
||||
{ stdenv, fetchurl, ncurses, gettext, pkgconfig }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "vim-7.3";
|
||||
name = "vim-7.4";
|
||||
|
||||
src = fetchurl {
|
||||
url = "ftp://ftp.vim.org/pub/vim/unix/${name}.tar.bz2";
|
||||
sha256 = "079201qk8g9yisrrb0dn52ch96z3lzw6z473dydw9fzi0xp5spaw";
|
||||
sha256 = "1pjaffap91l2rb9pjnlbrpvb3ay5yhhr3g91zabjvw1rqk9adxfh";
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
buildInputs = [ ncurses pkgconfig ];
|
||||
nativeBuildInputs = [ gettext ];
|
||||
@ -41,8 +43,10 @@ stdenv.mkDerivation rec {
|
||||
sed -i -e 's/as_fn_error.*int32.*/:/' src/auto/configure
|
||||
'';
|
||||
|
||||
meta = {
|
||||
meta = with stdenv.lib; {
|
||||
description = "The most popular clone of the VI editor";
|
||||
homepage = http://www.vim.org;
|
||||
homepage = http://www.vim.org;
|
||||
maintainers = with maintainers; [ lovek323 ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
|
@ -47,6 +47,6 @@ stdenv.mkDerivation rec {
|
||||
|
||||
license = "GPLv3+";
|
||||
|
||||
maintainers = [ stdenv.lib.maintainers.ludo ];
|
||||
maintainers = [ ];
|
||||
};
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
{stdenv, fetchurl, jre}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "alchemy-007-alpha";
|
||||
name = "alchemy-007";
|
||||
enableParallelBuilding = true;
|
||||
|
||||
src = fetchurl {
|
||||
|
@ -8,12 +8,12 @@
|
||||
assert stdenv ? glibc;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "1.2";
|
||||
version = "1.2.2";
|
||||
name = "darktable-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/darktable/darktable/1.2/darktable-${version}.tar.xz";
|
||||
sha256 = "0l2lrly46nda7b2y4gskqqxaajia34g487bgjcpd5ysxbhmmhlnw";
|
||||
sha256 = "0nf85wjhlisbgwkfkc1wb8y7dpnx3v8zk9g3ghbd51gi7s62x40j";
|
||||
};
|
||||
|
||||
buildInputs =
|
||||
|
@ -6,7 +6,7 @@ stdenv.mkDerivation {
|
||||
name ="openexr_viewers-1.0.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://download.savannah.nongnu.org/releases/openexr/openexr_viewers-1.0.1.tar.gz";
|
||||
url = "mirror://savannah/openexr/openexr_viewers-1.0.1.tar.gz";
|
||||
sha256 = "1w5qbcdp7sw48z1wk2v07f7p14vqqb1m2ncxyxnbkm9f4ab0ymg6";
|
||||
};
|
||||
|
||||
|
@ -48,7 +48,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
homepage = http://geeqie.sourceforge.net;
|
||||
|
||||
maintainers = [ stdenv.lib.maintainers.ludo ];
|
||||
maintainers = [ ];
|
||||
platforms = stdenv.lib.platforms.gnu;
|
||||
};
|
||||
}
|
||||
|
@ -1,21 +1,21 @@
|
||||
{ stdenv, fetchurl, pkgconfig, intltool, babl, gegl, gtk, glib, gdk_pixbuf
|
||||
, pango, cairo, freetype, fontconfig, lcms2, libpng, libjpeg, poppler, libtiff
|
||||
, pango, cairo, freetype, fontconfig, lcms, libpng, libjpeg, poppler, libtiff
|
||||
, webkit, libmng, librsvg, libwmf, zlib, libzip, ghostscript, aalib, jasper
|
||||
, python, pygtk, libart_lgpl, libexif, gettext, xlibs }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "gimp-2.8.4";
|
||||
|
||||
name = "gimp-2.8.6";
|
||||
|
||||
src = fetchurl {
|
||||
url = "ftp://ftp.gimp.org/pub/gimp/v2.8/${name}.tar.bz2";
|
||||
md5 = "392592e8755d046317878d226145900f";
|
||||
md5 = "12b3fdf33d1f07ae79b412a9e38b9693";
|
||||
};
|
||||
|
||||
buildInputs =
|
||||
|
||||
buildInputs =
|
||||
[ pkgconfig intltool babl gegl gtk glib gdk_pixbuf pango cairo
|
||||
freetype fontconfig lcms2 libpng libjpeg poppler libtiff webkit
|
||||
freetype fontconfig lcms libpng libjpeg poppler libtiff webkit
|
||||
libmng librsvg libwmf zlib libzip ghostscript aalib jasper
|
||||
python pygtk libart_lgpl libexif gettext
|
||||
python pygtk libart_lgpl libexif gettext xlibs.libXpm
|
||||
];
|
||||
|
||||
passthru = { inherit gtk; }; # probably its a good idea to use the same gtk in plugins ?
|
||||
|
@ -1,19 +1,19 @@
|
||||
{ stdenv, fetchurl, pkgconfig, gtk, freetype
|
||||
, fontconfig, libart_lgpl, libtiff, libjpeg, libpng12, libexif, zlib, perl
|
||||
, fontconfig, libart_lgpl, libtiff, libjpeg, libpng, libexif, zlib, perl
|
||||
, perlXMLParser, python, pygtk, gettext, xlibs, intltool, babl_0_0_22, gegl_0_0_22
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "gimp-2.6.12";
|
||||
|
||||
|
||||
src = fetchurl {
|
||||
url = "ftp://ftp.gtk.org/pub/gimp/v2.6/${name}.tar.bz2";
|
||||
sha256 = "0qpcgaa4pdqqhyyy8vjvzfflxgsrrs25zk79gixzlnbzq3qwjlym";
|
||||
};
|
||||
|
||||
|
||||
buildInputs = [
|
||||
pkgconfig gtk freetype fontconfig
|
||||
libart_lgpl libtiff libjpeg libpng12 libexif zlib perl
|
||||
libart_lgpl libtiff libjpeg libpng libexif zlib perl
|
||||
perlXMLParser python pygtk gettext intltool babl_0_0_22 gegl_0_0_22
|
||||
];
|
||||
|
||||
|
@ -107,7 +107,7 @@ rec {
|
||||
name = "texturize-2.1";
|
||||
buildInputs = [ gimp ] ++ gimp.nativeBuildInputs;
|
||||
src = fetchurl {
|
||||
url = http://prdownloads.sourceforge.net/gimp-texturize/texturize-2.1_src.tgz;
|
||||
url = mirror://sourceforge/gimp-texturize/texturize-2.1_src.tgz;
|
||||
sha256 = "0cdjq25g3yfxx6bzx6nid21kq659s1vl9id4wxyjs2dhcv229cg3";
|
||||
};
|
||||
installPhase = "installPlugins src/texturize";
|
||||
@ -148,7 +148,7 @@ rec {
|
||||
name = "gmic-1.3.2.0";
|
||||
buildInputs = [ imagemagick pkgconfig gimp pkgs.fftwSinglePrec ] ++ gimp.nativeBuildInputs;
|
||||
src = fetchurl {
|
||||
url = http://dfn.dl.sourceforge.net/sourceforge/gmic/gmic_1.3.2.0.tar.gz;
|
||||
url = mirror://sourceforge/gmic/gmic_1.3.2.0.tar.gz;
|
||||
sha256 = "0mxq664vzzc2l6k6sqm9syp34mihhi262i6fixk1g12lmc28797h";
|
||||
};
|
||||
preConfigure = ''
|
||||
|
@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
license = "GPLv3+";
|
||||
|
||||
maintainers = [ stdenv.lib.maintainers.ludo ];
|
||||
maintainers = [ ];
|
||||
platforms = stdenv.lib.platforms.gnu; # arbitrary choice
|
||||
};
|
||||
}
|
||||
|
@ -4,7 +4,7 @@ stdenv.mkDerivation {
|
||||
name = "pinta-1.4";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/PintaProject/pinta/tarball/3f7ccfa93d";
|
||||
url = "https://github.com/PintaProject/Pinta/tarball/3f7ccfa93d";
|
||||
name = "pinta-1.4.tar.gz";
|
||||
sha256 = "1kgb4gy5l6bd0akniwhiqqkvqayr5jgdsvn2pgg1038q9raafnpn";
|
||||
};
|
||||
|
@ -5,7 +5,7 @@ stdenv.mkDerivation rec {
|
||||
name = "rapcad-${version}";
|
||||
|
||||
src = fetchgit {
|
||||
url = "git://git.rapcad.org/rapcad";
|
||||
url = "https://github.com/GilesBathgate/RapCAD.git";
|
||||
rev = "refs/tags/v${version}";
|
||||
sha256 = "37c7107dc4fcf8942a4ad35377c4e42e6aedfa35296e5fcf8d84882ae35087c7";
|
||||
};
|
||||
|
@ -5,12 +5,12 @@ in
|
||||
assert hotplugSupport -> (stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux");
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "sane-backends-1.0.22.482-g071f226";
|
||||
name = "sane-backends-1.0.23.296-gf139120";
|
||||
|
||||
src = fetchgit {
|
||||
url = "http://git.debian.org/git/sane/sane-backends.git";
|
||||
rev = "071f2269cd68d3411cbfa05a3d028b74496db970";
|
||||
sha256 = "178xkv30m6irk4k0gqnfcl5kramm1qyj24dar8gp32428z1444xf";
|
||||
rev = "f139120c72db6de98be95b52c206c2a4d8071e92";
|
||||
sha256 = "1b2fv19c8ijh9l0jjilli3j70n17wvcgpqq1nxmiby3ai6nrzk8d";
|
||||
};
|
||||
|
||||
udevSupport = hotplugSupport;
|
||||
@ -34,7 +34,7 @@ stdenv.mkDerivation {
|
||||
meta = {
|
||||
homepage = "http://www.sane-project.org/";
|
||||
description = "Scanner Access Now Easy";
|
||||
license = "GPLv2+";
|
||||
license = stdenv.lib.licenses.gpl2Plus;
|
||||
|
||||
maintainers = [ stdenv.lib.maintainers.simons ];
|
||||
platforms = stdenv.lib.platforms.linux;
|
||||
|
@ -4,7 +4,7 @@ libuuid }:
|
||||
assert (stdenv ? glibc);
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "seg3d-1.12";
|
||||
name = "seg3d-1.12_20090930";
|
||||
src = fetchurl {
|
||||
url = http://www.sci.utah.edu/releases/seg3d_v1.12/Seg3D_1.12_20090930_source.tgz;
|
||||
sha256 = "1wr6rc6v5qjjkmws8yrc03z35h3iydxk1z28p06v1wdnca0y71z8";
|
||||
|
@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
license = "GPLv2+";
|
||||
|
||||
maintainers = [ stdenv.lib.maintainers.ludo ];
|
||||
maintainers = [ ];
|
||||
platforms = stdenv.lib.platforms.gnu; # needs GTK+
|
||||
};
|
||||
}
|
||||
|
@ -1,15 +1,15 @@
|
||||
{ stdenv, fetchurl, python, pyqt4, sip, popplerQt4, pkgconfig, libpng
|
||||
, imagemagick, libjpeg, fontconfig, podofo, qt4, icu, sqlite
|
||||
, pil, makeWrapper, unrar, chmlib, pythonPackages, xz, udisks, libusb1, libmtp
|
||||
, imagemagick, libjpeg, fontconfig, podofo, qt48, icu, sqlite
|
||||
, pil, makeWrapper, unrar, chmlib, pythonPackages, xz, libusb1, libmtp
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "calibre-0.8.70";
|
||||
# 0.9.* versions won't build: https://bugs.launchpad.net/calibre/+bug/1094719
|
||||
name = "calibre-0.9.11";
|
||||
# 0.9.12+ versions won't build due to missing qt4 private headers: https://bugs.launchpad.net/calibre/+bug/1094719
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/calibre/${name}.tar.xz";
|
||||
sha256 = "12avwp8r6cnrw6c32gmd2hksa9rszdb76zs6fcmr3n8r1wkwa71g";
|
||||
sha256 = "0jjs2cx222pbv4nrivlxag5fxa0v9m63x7arcll6xi173zdn4gg8";
|
||||
};
|
||||
|
||||
inherit python;
|
||||
@ -18,10 +18,10 @@ stdenv.mkDerivation rec {
|
||||
|
||||
buildInputs =
|
||||
[ python pyqt4 sip popplerQt4 libpng imagemagick libjpeg
|
||||
fontconfig podofo qt4 pil chmlib icu
|
||||
fontconfig podofo qt48 pil chmlib icu
|
||||
pythonPackages.mechanize pythonPackages.lxml pythonPackages.dateutil
|
||||
pythonPackages.cssutils pythonPackages.beautifulsoup
|
||||
pythonPackages.sqlite3 sqlite udisks libusb1 libmtp
|
||||
pythonPackages.cssutils pythonPackages.beautifulsoup pythonPackages.pillow
|
||||
pythonPackages.sqlite3 pythonPackages.netifaces sqlite libusb1 libmtp
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
@ -46,11 +46,11 @@ stdenv.mkDerivation rec {
|
||||
done
|
||||
'';
|
||||
|
||||
meta = {
|
||||
meta = with stdenv.lib; {
|
||||
description = "Comprehensive e-book software";
|
||||
homepage = http://calibre-ebook.com;
|
||||
license = "GPLv3";
|
||||
maintainers = with stdenv.lib.maintainers; [viric];
|
||||
platforms = with stdenv.lib.platforms; linux;
|
||||
license = licenses.gpl3;
|
||||
maintainers = with maintainers; [ viric iElectric ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
|
@ -1,15 +1,18 @@
|
||||
{ stdenv, fetchurl, coreutils , unzip, which, pkgconfig , dbus
|
||||
{ stdenv, fetchgit, coreutils , unzip, which, pkgconfig , dbus
|
||||
, freetype, xdg_utils , libXext, glib, pango , cairo, libX11, libnotify
|
||||
, libxdg_basedir , libXScrnSaver, xproto, libXinerama , perl, gdk_pixbuf
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "1.0.0";
|
||||
name = "dunst-${version}";
|
||||
rev = "6a3a855b48a3db64821d1cf8a91c5ee2815a2b2d";
|
||||
name = "dunst-${rev}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/knopwob/dunst/archive/v${version}.zip";
|
||||
sha256 = "1x6k6jrf219v8hmhqhnnfjycldvsnp7ag8a2y8adp5rhfmgyn671";
|
||||
# 1.0.0 release doesn't include 100% CPU fix
|
||||
# https://github.com/knopwob/dunst/issues/98
|
||||
src = fetchgit {
|
||||
inherit rev;
|
||||
url = "https://github.com/knopwob/dunst.git";
|
||||
sha256 = "0m7yki16d72xm9n2m2fjszd8phqpn5b95q894cz75pmd0sv1j6bj";
|
||||
};
|
||||
|
||||
patchPhase = ''
|
||||
@ -23,7 +26,7 @@ stdenv.mkDerivation rec {
|
||||
libXScrnSaver xproto libXinerama perl];
|
||||
|
||||
buildPhase = ''
|
||||
export VERSION=${version};
|
||||
export VERSION=${rev};
|
||||
export PREFIX=$out;
|
||||
make dunst;
|
||||
'';
|
||||
|
@ -1,7 +1,7 @@
|
||||
{ stdenv, fetchgit, autoconf, automake, pkgconfig, libxml2 }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "evtest-1.30";
|
||||
name = "evtest-1.31";
|
||||
|
||||
preConfigure = "autoreconf -iv";
|
||||
|
||||
@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
|
||||
|
||||
src = fetchgit {
|
||||
url = "git://anongit.freedesktop.org/evtest";
|
||||
rev = "1a50f2479c4775e047f234a24d95dda82441bfbd";
|
||||
rev = "871371806017301373b8b0e5b7e8f168ce1ea13f";
|
||||
sha256 = "1hxldlldlrb9lnnybn839a97fpqd1cixbmci2wzgr0rzhjbwhcgp";
|
||||
};
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
|
@ -1,19 +1,23 @@
|
||||
{stdenv, fetchurl, flvstreamer, ffmpeg, makeWrapper, perl}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "get_iplayer-2.80";
|
||||
{stdenv, fetchurl, flvstreamer, ffmpeg, makeWrapper, perl, buildPerlPackage, perlPackages, vlc, rtmpdump}:
|
||||
buildPerlPackage {
|
||||
name = "get_iplayer-2.83";
|
||||
|
||||
buildInputs = [makeWrapper perl];
|
||||
propagatedBuildInputs = with perlPackages; [HTMLParser HTTPCookies LWP];
|
||||
|
||||
preConfigure = "touch Makefile.PL";
|
||||
doCheck = false;
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
cp get_iplayer $out/bin
|
||||
wrapProgram $out/bin/get_iplayer --suffix PATH ${ffmpeg}/bin:${flvstreamer}/bin
|
||||
sed -i 's|^update_script|#update_script|' $out/bin/get_iplayer
|
||||
wrapProgram $out/bin/get_iplayer --suffix PATH : ${ffmpeg}/bin:${flvstreamer}/bin:${vlc}/bin:${rtmpdump}/bin
|
||||
'';
|
||||
|
||||
src = fetchurl {
|
||||
url = ftp://ftp.infradead.org/pub/get_iplayer/get_iplayer-2.80.tar.gz;
|
||||
sha256 = "1hnadryyzca3bv1hfk2q3np9ihwvyxa3prwcrply6ywy4vnayjf8";
|
||||
url = ftp://ftp.infradead.org/pub/get_iplayer/get_iplayer-2.83.tar.gz;
|
||||
sha256 = "169zji0rr3z5ng6r4cyzvs89779m4iklln9gsqpryvm81ipalfga";
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -8,8 +8,8 @@ stdenv.mkDerivation rec {
|
||||
name = "gmrun-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://downloads.sourceforge.net/project/gmrun/gmrun/${version}/${name}.tar.gz";
|
||||
md5 = "6cef37a968006d9496fc56a7099c603c";
|
||||
url = "mirror://sourceforge/gmrun/${name}.tar.gz";
|
||||
sha256 = "180z6hbax1qypy5cyy2z6nn7fzxla4ib47ck8mqwr714ag77na8p";
|
||||
};
|
||||
|
||||
buildInputs = [ glib gtk2 pkgconfig popt ];
|
||||
|
@ -31,7 +31,7 @@ stdenv.mkDerivation {
|
||||
'';
|
||||
|
||||
license = "GPLv3+";
|
||||
maintainers = [ stdenv.lib.maintainers.ludo ];
|
||||
maintainers = [ ];
|
||||
platforms = stdenv.lib.platforms.gnu; # arbitrary choice
|
||||
};
|
||||
}
|
||||
|
@ -23,7 +23,7 @@ assert mercurialSupport -> (mercurial != null);
|
||||
|
||||
let
|
||||
name = "ikiwiki";
|
||||
version = "3.20130212";
|
||||
version = "3.20130518";
|
||||
|
||||
lib = stdenv.lib;
|
||||
in
|
||||
@ -32,7 +32,7 @@ stdenv.mkDerivation {
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://ftp.de.debian.org/debian/pool/main/i/ikiwiki/${name}_${version}.tar.gz";
|
||||
sha256 = "1svajjhrwaq7wwgmhaxc2ld12cla3pdi9i7m8ll2rfa11cdhhf6m";
|
||||
sha256 = "00mmxxlbzv6bz3cz3746r5lqwby6liwsg7m3jfba8258y52w13qp";
|
||||
};
|
||||
|
||||
buildInputs = [ perl TextMarkdown URI HTMLParser HTMLScrubber HTMLTemplate
|
||||
|
@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
|
||||
description = "WYSIWYM frontend for LaTeX, DocBook, etc.";
|
||||
homepage = "http://www.lyx.org";
|
||||
license = "GPL2";
|
||||
maintainers = [ stdenv.lib.maintainers.neznalek ];
|
||||
maintainers = [ stdenv.lib.maintainers.vcunat ];
|
||||
platforms = stdenv.lib.platforms.linux;
|
||||
};
|
||||
}
|
||||
|
@ -1,4 +1,5 @@
|
||||
{ stdenv, fetchurl, pkgconfig, neon, libusb, openssl, udev, avahi, freeipmi }:
|
||||
{ stdenv, fetchurl, pkgconfig, neon, libusb, openssl, udev, avahi, freeipmi
|
||||
, libtool }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "nut-2.6.5";
|
||||
@ -8,7 +9,7 @@ stdenv.mkDerivation rec {
|
||||
sha256 = "0gxrzsblx0jc4g9w0903ybwqbv1d79vq5hnks403fvnay4fgg3b1";
|
||||
};
|
||||
|
||||
buildInputs = [ neon libusb openssl udev avahi freeipmi ];
|
||||
buildInputs = [ neon libusb openssl udev avahi freeipmi libtool ];
|
||||
|
||||
nativeBuildInputs = [ pkgconfig ];
|
||||
|
||||
|
@ -1,18 +1,25 @@
|
||||
{ stdenv, fetchurl, postgresql, wxGTK, libxml2, libxslt, openssl }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "pgadmin3-1.10.0";
|
||||
name = "pgadmin3-${version}";
|
||||
version = "1.16.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://ftp3.de.postgresql.org/pub/Mirrors/ftp.postgresql.org/pgadmin3/release/v1.10.0/src/pgadmin3-1.10.0.tar.gz";
|
||||
sha256 = "1ndi951da3jw5800fjdgkbvl8n6k71x7x16ghihi1l88bilf2a16";
|
||||
url = "http://ftp.postgresql.org/pub/pgadmin3/release/v${version}/src/pgadmin3-${version}.tar.gz";
|
||||
sha256 = "13n2nyjnbmjbz9n0xp6627n3pavkqfp4n45l1mnqxhjdq8yj9fnl";
|
||||
};
|
||||
|
||||
buildInputs = [ postgresql wxGTK libxml2 libxslt openssl ];
|
||||
|
||||
meta = {
|
||||
preConfigure = ''
|
||||
substituteInPlace pgadmin/ver_svn.sh --replace "bin/bash" "$shell"
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "PostgreSQL administration GUI tool";
|
||||
homepage = http://www.pgadmin.org;
|
||||
license = "GPL2";
|
||||
license = licenses.gpl2;
|
||||
maintainers = [ maintainers.iElectric ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
|
@ -1,25 +1,32 @@
|
||||
{ stdenv, fetchurl, gdal, cmake, qt4, flex, bison, proj, geos, x11, sqlite, gsl,
|
||||
pyqt4, qwt, fcgi, python }:
|
||||
pyqt4, qwt, fcgi, python, libspatialindex, libspatialite }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "qgis-1.6.0";
|
||||
name = "qgis-1.8.0";
|
||||
|
||||
buildInputs = [ gdal qt4 flex bison proj geos x11 sqlite gsl pyqt4 qwt
|
||||
fcgi ];
|
||||
fcgi libspatialindex libspatialite ];
|
||||
|
||||
nativeBuildInputs = [ cmake python];
|
||||
nativeBuildInputs = [ cmake python ];
|
||||
|
||||
patches = [ ./r14988.diff ];
|
||||
enableParallelBuilding = true;
|
||||
|
||||
# To handle the lack of 'local' RPATH; required, as they call one of
|
||||
# their built binaries requiring their libs, in the build process.
|
||||
preBuild = ''
|
||||
export LD_LIBRARY_PATH=`pwd`/output/lib:$LD_LIBRARY_PATH
|
||||
'';
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://qgis.org/downloads/${name}.tar.bz2";
|
||||
sha256 = "0vlz1z3scj3k6nxf3hzfiq7k2773i6xvk6dvj4axs2f4njpnx7pr";
|
||||
sha256 = "1aq32ch61bqsvh39lmrxah1fmh18cd3nqyi1l0sn6ssa3kwf82vh";
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "user friendly Open Source Geographic Information System";
|
||||
homepage = ttp://www.qgis.org;
|
||||
# you can choose one of the following licenses:
|
||||
license = [ "GPL" ];
|
||||
description = "User friendly Open Source Geographic Information System";
|
||||
homepage = http://www.qgis.org;
|
||||
license = "GPLv2+";
|
||||
platforms = with stdenv.lib.platforms; linux;
|
||||
maintainers = with stdenv.lib.maintainers; [viric];
|
||||
};
|
||||
}
|
||||
|
@ -1,38 +0,0 @@
|
||||
Index: qgis/python/core/conversions.sip
|
||||
===================================================================
|
||||
--- qgis/python/core/conversions.sip (revision 14323)
|
||||
+++ qgis/python/core/conversions.sip (revision 14988)
|
||||
@@ -16,4 +16,5 @@
|
||||
|
||||
%Feature QSETINT_CONVERSION
|
||||
+%Feature QSETTYPE_CONVERSION
|
||||
|
||||
%ModuleHeaderCode
|
||||
@@ -321,5 +322,5 @@
|
||||
%End
|
||||
|
||||
-
|
||||
+%If (QSETTYPE_CONVERSION)
|
||||
template <TYPE>
|
||||
%MappedType QSet<TYPE>
|
||||
@@ -395,6 +396,5 @@
|
||||
|
||||
};
|
||||
-
|
||||
-
|
||||
+%End
|
||||
|
||||
template<TYPE>
|
||||
Index: qgis/python/CMakeLists.txt
|
||||
===================================================================
|
||||
--- qgis/python/CMakeLists.txt (revision 14330)
|
||||
+++ qgis/python/CMakeLists.txt (revision 14988)
|
||||
@@ -44,4 +44,8 @@
|
||||
ENDIF(NOT PYQT4_VERSION_NUM LESS 263941)
|
||||
|
||||
+IF(NOT PYQT4_VERSION_NUM LESS 264194) # 0x040802
|
||||
+ SET(SIP_DISABLE_FEATURES ${SIP_DISABLE_FEATURES} QSETTYPE_CONVERSION)
|
||||
+ENDIF(NOT PYQT4_VERSION_NUM LESS 264194)
|
||||
+
|
||||
# core module
|
||||
FILE(GLOB sip_files_core core/*.sip)
|
@ -4,11 +4,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "redshift";
|
||||
version = "1.6";
|
||||
version = "1.7";
|
||||
name = "${pname}-${version}";
|
||||
src = fetchurl {
|
||||
url = "http://launchpad.net/${pname}/trunk/${version}/+download/${pname}-${version}.tar.bz2";
|
||||
sha256 = "0g46zhqnx3y2fssmyjgaardzhjw1j29l1dbc2kmccw9wxqfla1wi";
|
||||
sha256 = "1j0hs0vnlic90cf4bryn11n4ani1x2s5l8z6ll3fmrlw98ykrylv";
|
||||
};
|
||||
|
||||
buildInputs = [ libX11 libXrandr libXxf86vm libxcb pkgconfig python
|
||||
|
@ -1,11 +1,13 @@
|
||||
{ stdenv, fetchurl, kdelibs, kdebase_workspace, gettext }:
|
||||
|
||||
let version = "0.11";
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
name = "rsibreak-0.11";
|
||||
name = "rsibreak-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "${meta.homepage}/files/${name}.tar.bz2";
|
||||
sha256 = "1yrf73r8mixskh8b531wb8dfs9z7rrw010xsrflhjhjmqh94h8mw";
|
||||
url = "mirror://debian/pool/main/r/rsibreak/rsibreak_${version}.orig.tar.gz";
|
||||
sha256 = "0g27aswh8iz5v67v1wkjny4p100vs2gm0lw0qzfkg6sw1pb4i519";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ gettext ];
|
||||
@ -13,8 +15,8 @@ stdenv.mkDerivation rec {
|
||||
buildInputs = [ kdelibs kdebase_workspace ];
|
||||
|
||||
meta = {
|
||||
homepage = http://www.rsibreak.org/;
|
||||
description = "Repetitive Strain Injury prevention";
|
||||
homepage = http://userbase.kde.org/RSIBreak; # http://www.rsibreak.org/ is down since 2011
|
||||
description = "Utility to help prevent repetitive strain injury for KDE 4";
|
||||
inherit (kdelibs.meta) platforms maintainers;
|
||||
};
|
||||
}
|
||||
|
@ -4,7 +4,7 @@ stdenv.mkDerivation {
|
||||
name = "rxvt-2.6.4";
|
||||
|
||||
src = fetchurl {
|
||||
url = http://downloads.sourceforge.net/rxvt/rxvt-2.6.4.tar.gz;
|
||||
url = mirror://sourceforge/rxvt/rxvt-2.6.4.tar.gz;
|
||||
sha256 = "0hi29whjv8v11nkjbq1i6ms411v6csykghmlpkmayfjn9nxr02xg";
|
||||
};
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
{ stdenv, fetchurl, perlSupport, libX11, libXt, libXft, ncurses, perl,
|
||||
fontconfig, freetype, pkgconfig, libXrender }:
|
||||
fontconfig, freetype, pkgconfig, libXrender, gdkPixbufSupport, gdk_pixbuf }:
|
||||
|
||||
let
|
||||
name = "rxvt-unicode";
|
||||
@ -19,7 +19,8 @@ stdenv.mkDerivation (rec {
|
||||
buildInputs =
|
||||
[ libX11 libXt libXft ncurses /* required to build the terminfo file */
|
||||
fontconfig freetype pkgconfig libXrender ]
|
||||
++ stdenv.lib.optional perlSupport perl;
|
||||
++ stdenv.lib.optional perlSupport perl
|
||||
++ stdenv.lib.optional gdkPixbufSupport gdk_pixbuf;
|
||||
|
||||
preConfigure =
|
||||
''
|
||||
|
@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
|
||||
sed -i 's/guint32 page_size/size_t page_size/' src/lib/lib.cpp
|
||||
'';
|
||||
|
||||
NIX_CFLAGS_COMPILE = "-D__GNU_LIBRARY__";
|
||||
NIX_CFLAGS_COMPILE = "-D__GNU_LIBRARY__"
|
||||
+ stdenv.lib.optionalString stdenv.isDarwin " -lintl";
|
||||
}
|
||||
|
||||
|
61
pkgs/applications/misc/slic3r/default.nix
Normal file
61
pkgs/applications/misc/slic3r/default.nix
Normal file
@ -0,0 +1,61 @@
|
||||
{ stdenv, fetchgit, perl, makeWrapper, makeDesktopItem
|
||||
# Perl modules:
|
||||
, EncodeLocale, MathClipper, ExtUtilsXSpp, BoostGeometryUtils
|
||||
, MathConvexHullMonotoneChain, MathGeometryVoronoi, MathPlanePath, Moo
|
||||
, IOStringy, ClassXSAccessor, Wx, GrowlGNTP, NetDBus }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "0.9.10b";
|
||||
name = "slic3r-${version}";
|
||||
|
||||
# Slic3r doesn't put out tarballs, only a git repository is available
|
||||
src = fetchgit {
|
||||
url = "git://github.com/alexrj/Slic3r";
|
||||
rev = "refs/tags/${version}";
|
||||
sha256 = "0j06h0z65qn4kyb2b7pnq6bcn4al60q227iz9jlrin0ffx3l0ra7";
|
||||
};
|
||||
|
||||
buildInputs = [ perl makeWrapper
|
||||
EncodeLocale MathClipper ExtUtilsXSpp BoostGeometryUtils
|
||||
MathConvexHullMonotoneChain MathGeometryVoronoi MathPlanePath Moo
|
||||
IOStringy ClassXSAccessor Wx GrowlGNTP NetDBus
|
||||
];
|
||||
|
||||
desktopItem = makeDesktopItem {
|
||||
name = "slic3r";
|
||||
exec = "slic3r";
|
||||
icon = "slic3r";
|
||||
comment = "G-code generator for 3D printers";
|
||||
desktopName = "Slic3r";
|
||||
genericName = "3D printer tool";
|
||||
categories = "Application;Development;";
|
||||
};
|
||||
|
||||
# Nothing to do here
|
||||
buildPhase = "true";
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p "$out/share/slic3r/"
|
||||
cp -r * "$out/share/slic3r/"
|
||||
wrapProgram "$out/share/slic3r/slic3r.pl" --prefix PERL5LIB : $PERL5LIB
|
||||
mkdir -p "$out/bin"
|
||||
ln -s "$out/share/slic3r/slic3r.pl" "$out/bin/slic3r"
|
||||
mkdir -p "$out/share/pixmaps/"
|
||||
ln -s "$out/share/slic3r/var/Slic3r.png" "$out/share/pixmaps/slic3r.png"
|
||||
mkdir -p "$out/share/applications"
|
||||
cp "$desktopItem"/share/applications/* "$out/share/applications/"
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "G-code generator for 3D printers";
|
||||
longDescription = ''
|
||||
Slic3r is the tool you need to convert a digital 3D model into printing
|
||||
instructions for your 3D printer. It cuts the model into horizontal
|
||||
slices (layers), generates toolpaths to fill them and calculates the
|
||||
amount of material to be extruded.'';
|
||||
homepage = http://slic3r.org/;
|
||||
license = licenses.agpl3;
|
||||
platforms = platforms.linux;
|
||||
maintainers = [ maintainers.bjornfor ];
|
||||
};
|
||||
}
|
@ -1,13 +1,13 @@
|
||||
{ fetchurl, stdenv, openssl, pcre }:
|
||||
{ fetchgit, stdenv, openssl, pcre }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "0.21";
|
||||
name = "vanitygen-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
name = "vanitygen-${version}.tar.gz";
|
||||
url = "https://github.com/samr7/vanitygen/tarball/0.21";
|
||||
sha256 = "1lj0gi08lg0pcby5pbpi08ysynzy24qa1n1065112shkpasi0kxv";
|
||||
src = fetchgit {
|
||||
url = "https://github.com/samr7/vanitygen";
|
||||
rev = "refs/tags/${version}";
|
||||
sha256 = "1vzfv74hhiyrrpvjca8paydx1ashgbgn5plzrx4swyzxy1xkamah";
|
||||
};
|
||||
|
||||
buildInputs = [ openssl pcre ];
|
||||
|
@ -1,48 +1,31 @@
|
||||
x@{builderDefsPackage
|
||||
, ncurses
|
||||
, ...}:
|
||||
builderDefsPackage
|
||||
(a :
|
||||
let
|
||||
helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++
|
||||
[];
|
||||
{ pkgs, fetchurl, stdenv, ncurses, utillinux, file, libX11 }:
|
||||
|
||||
buildInputs = map (n: builtins.getAttr n x)
|
||||
(builtins.attrNames (builtins.removeAttrs x helperArgNames));
|
||||
sourceInfo = rec {
|
||||
baseName="vifm";
|
||||
version="0.6.3";
|
||||
name="${baseName}-${version}";
|
||||
url="mirror://sourceforge/project/${baseName}/${baseName}/${name}.tar.bz2";
|
||||
hash="1v5kiifjk7iyqrzjd94wn6a5dz4j3krl06pbp1ps9g3zdq2w2skv";
|
||||
};
|
||||
in
|
||||
rec {
|
||||
src = a.fetchurl {
|
||||
url = sourceInfo.url;
|
||||
sha256 = sourceInfo.hash;
|
||||
let
|
||||
name = "vifm-${version}";
|
||||
version = "0.7.5";
|
||||
|
||||
in stdenv.mkDerivation {
|
||||
inherit name;
|
||||
|
||||
src = fetchurl {
|
||||
url="mirror://sourceforge/project/vifm/vifm/${name}.tar.bz2";
|
||||
sha256 ="1r1d92zrff94rfx011dw2qsgdwd2ksqlz15la74d6h7sfcsnyd01";
|
||||
};
|
||||
|
||||
inherit (sourceInfo) name version;
|
||||
inherit buildInputs;
|
||||
#phaseNames = ["doConfigure" "doMakeInstall"];
|
||||
buildInputs = [ utillinux ncurses file libX11 ];
|
||||
|
||||
/* doConfigure should be removed if not needed */
|
||||
phaseNames = ["doConfigure" "doMakeInstall"];
|
||||
|
||||
meta = {
|
||||
description = "A vi-like file manager";
|
||||
maintainers = with a.lib.maintainers;
|
||||
[
|
||||
raskin
|
||||
];
|
||||
platforms = with a.lib.platforms;
|
||||
linux;
|
||||
license = a.lib.licenses.gpl2;
|
||||
maintainers = with pkgs.lib.maintainers; [ raskin garbas ];
|
||||
platforms = pkgs.lib.platforms.linux;
|
||||
license = pkgs.lib.licenses.gpl2;
|
||||
};
|
||||
|
||||
passthru = {
|
||||
updateInfo = {
|
||||
downloadPage = "http://vifm.sf.net";
|
||||
};
|
||||
};
|
||||
}) x
|
||||
}
|
||||
|
||||
|
@ -35,7 +35,7 @@ stdenv.mkDerivation {
|
||||
|
||||
homepage = http://wordnet.princeton.edu/;
|
||||
|
||||
maintainers = [ stdenv.lib.maintainers.ludo ];
|
||||
maintainers = [ ];
|
||||
platforms = stdenv.lib.platforms.gnu; # arbitrary choice
|
||||
};
|
||||
}
|
||||
|
@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
|
||||
name = "xfontsel-1.0.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://www.x.org/releases/individual/app/${name}.tar.bz2";
|
||||
url = "mirror://xorg/individual/app/${name}.tar.bz2";
|
||||
sha256 = "1a86a08sf0wjrki9ydh7hr5qf6hrixc4ljlxizakjzmx20wvlrks";
|
||||
};
|
||||
|
||||
|
@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
|
||||
name = "xlsfonts-1.0.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://www.x.org/releases/individual/app/${name}.tar.bz2";
|
||||
url = "mirror://xorg/individual/app/${name}.tar.bz2";
|
||||
sha256 = "070iym754g3mf9x6xczl4gdnpvlk6rdyl1ndwhpjl21vg2dm2vnc";
|
||||
};
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
{ cabal, filepath, libXrandr, mtl, parsec, regexCompat, stm, time
|
||||
, utf8String, wirelesstools, X11, X11Xft
|
||||
, utf8String, X11, X11Xft
|
||||
}:
|
||||
|
||||
cabal.mkDerivation (self: {
|
||||
@ -11,8 +11,8 @@ cabal.mkDerivation (self: {
|
||||
buildDepends = [
|
||||
filepath mtl parsec regexCompat stm time utf8String X11 X11Xft
|
||||
];
|
||||
extraLibraries = [ libXrandr wirelesstools ];
|
||||
configureFlags = "-fwith_xft -fwith_iwlib";
|
||||
extraLibraries = [ libXrandr ];
|
||||
configureFlags = "-fwith_xft";
|
||||
meta = {
|
||||
homepage = "http://projects.haskell.org/xmobar/";
|
||||
description = "A Minimalistic Text Based Status Bar";
|
||||
|
@ -14,9 +14,9 @@ let
|
||||
else if stdenv.system == "i686-linux" then "ld-linux.so.2"
|
||||
else throw "Bittorrent Sync for: ${stdenv.system} not supported!";
|
||||
|
||||
version = "1.0.134";
|
||||
sha256 = if stdenv.system == "x86_64-linux" then "1kyxiqjabqgsg7n0a8snh03axxzpniazp93shb2l1b6x0f7d24n7"
|
||||
else if stdenv.system == "i686-linux" then "02wb8pqcb1rk108r49cqyg7s14grmjnkr6p3068pkiwdwwgi8jak"
|
||||
version = "1.1.42";
|
||||
sha256 = if stdenv.system == "x86_64-linux" then "07gcjzhhr8simkjjxhyzkvh3748ll81d742fz7j31nwdi34my8ri"
|
||||
else if stdenv.system == "i686-linux" then "0awf5bfhb4dp4aydzrgdp3wqv1mz6ys1z45i0r1hbqszvf44xj7c"
|
||||
else throw "Bittorrent Sync for: ${stdenv.system} not supported!";
|
||||
|
||||
in stdenv.mkDerivation {
|
||||
|
@ -1,14 +0,0 @@
|
||||
diff --git a/printing/printing.gyp b/printing/printing.gyp
|
||||
index 19fa1b2..f11d76e 100644
|
||||
--- a/printing/printing.gyp
|
||||
+++ b/printing/printing.gyp
|
||||
@@ -26,6 +26,9 @@
|
||||
'include_dirs': [
|
||||
'..',
|
||||
],
|
||||
+ 'cflags': [
|
||||
+ '-Wno-deprecated-declarations',
|
||||
+ ],
|
||||
'sources': [
|
||||
'backend/print_backend.cc',
|
||||
'backend/print_backend.h',
|
@ -18,6 +18,9 @@
|
||||
# optional dependencies
|
||||
, libgcrypt ? null # gnomeSupport || cupsSupport
|
||||
|
||||
# dependency for version 30
|
||||
, file
|
||||
|
||||
# package customization
|
||||
, channel ? "stable"
|
||||
, enableSELinux ? false, libselinux ? null
|
||||
@ -87,7 +90,9 @@ let
|
||||
# user namespace sandbox patch
|
||||
userns_patch = if versionOlder sourceInfo.version "29.0.0.0"
|
||||
then ./sandbox_userns.patch
|
||||
else ./sandbox_userns_29.patch;
|
||||
else if versionOlder sourceInfo.version "30.0.0.0"
|
||||
then ./sandbox_userns_29.patch
|
||||
else ./sandbox_userns_30.patch;
|
||||
|
||||
in stdenv.mkDerivation rec {
|
||||
name = "${packageName}-${version}";
|
||||
@ -115,20 +120,23 @@ in stdenv.mkDerivation rec {
|
||||
++ optionals gnomeSupport [ gconf libgcrypt ]
|
||||
++ optional enableSELinux libselinux
|
||||
++ optional cupsSupport libgcrypt
|
||||
++ optional pulseSupport pulseaudio;
|
||||
++ optional pulseSupport pulseaudio
|
||||
++ optional (!versionOlder sourceInfo.version "30.0.0.0") file;
|
||||
|
||||
opensslPatches = optional useOpenSSL openssl.patches;
|
||||
|
||||
prePatch = "patchShebangs .";
|
||||
|
||||
patches = [ userns_patch ]
|
||||
++ optional cupsSupport ./cups_allow_deprecated.patch;
|
||||
patches = [ userns_patch ];
|
||||
|
||||
postPatch = ''
|
||||
sed -i -r -e 's/-f(stack-protector)(-all)?/-fno-\1/' build/common.gypi
|
||||
sed -i -e 's|/usr/bin/gcc|gcc|' third_party/WebKit/Source/core/core.gypi
|
||||
'' + optionalString useOpenSSL ''
|
||||
cat $opensslPatches | patch -p1 -d third_party/openssl/openssl
|
||||
'' + optionalString (versionOlder sourceInfo.version "29.0.0.0") ''
|
||||
sed -i -e '/struct SECItemArray/,/^};/d' \
|
||||
net/third_party/nss/ssl/bodge/secitem_array.c
|
||||
'';
|
||||
|
||||
gypFlags = mkGypFlags (gypFlagsUseSystemLibs // {
|
||||
@ -145,6 +153,15 @@ in stdenv.mkDerivation rec {
|
||||
use_cups = cupsSupport;
|
||||
linux_sandbox_path="${libExecPath}/${packageName}_sandbox";
|
||||
linux_sandbox_chrome_path="${libExecPath}/${packageName}";
|
||||
werror = "";
|
||||
|
||||
# Google API keys, see http://www.chromium.org/developers/how-tos/api-keys.
|
||||
# Note: These are for NixOS/nixpkgs use ONLY. For your own distribution,
|
||||
# please get your own set of keys.
|
||||
google_api_key = "AIzaSyDGi15Zwl11UNe6Y-5XW_upsfyw31qwZPI";
|
||||
google_default_client_id = "404761575300.apps.googleusercontent.com";
|
||||
google_default_client_secret = "9rIFQjfnkykEmqb6FfjJQD1D";
|
||||
|
||||
} // optionalAttrs proprietaryCodecs {
|
||||
# enable support for the H.264 codec
|
||||
proprietary_codecs = true;
|
||||
@ -198,7 +215,7 @@ in stdenv.mkDerivation rec {
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Chromium, an open source web browser";
|
||||
description = "An open source web browser from Google";
|
||||
homepage = http://www.chromium.org/;
|
||||
maintainers = with maintainers; [ goibhniu chaoflow aszlig ];
|
||||
license = licenses.bsd3;
|
||||
|
@ -0,0 +1,287 @@
|
||||
commit b9a1fa30eb3296b169f51ffa8ee05513c5c1dbae
|
||||
Author: aszlig <aszlig@redmoonstudios.org>
|
||||
Date: Thu May 16 14:17:56 2013 +0200
|
||||
|
||||
zygote: Add support for user namespaces on Linux.
|
||||
|
||||
The implementation is done by patching the Zygote host to execute the sandbox
|
||||
binary with CLONE_NEWUSER and setting the uid and gid mapping so that the child
|
||||
process is using uid 0 and gid 0 which map to the current user of the parent.
|
||||
Afterwards, the sandbox will continue as if it was called as a setuid binary.
|
||||
|
||||
In addition, this adds new_user_namespace as an option in process_util in order
|
||||
to set the UID and GID mapping correctly. The reason for this is that just
|
||||
passing CLONE_NEWUSER to clone_flags doesn't help in LaunchProcess(), because
|
||||
without setting the mappings exec*() will clear the process's capability sets.
|
||||
|
||||
If the kernel doesn't support unprivileged user namespaces and the sandbox
|
||||
binary doesn't have the setuid flag, the Zygote main process will run without a
|
||||
sandbox. This is to mimic the behaviour if no SUID sandbox binary path is set.
|
||||
|
||||
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
||||
|
||||
diff --git a/base/process/launch.h b/base/process/launch.h
|
||||
index 45b1053..ce71418 100644
|
||||
--- a/base/process/launch.h
|
||||
+++ b/base/process/launch.h
|
||||
@@ -51,6 +51,7 @@ struct LaunchOptions {
|
||||
new_process_group(false)
|
||||
#if defined(OS_LINUX)
|
||||
, clone_flags(0)
|
||||
+ , new_user_namespace(false)
|
||||
#endif // OS_LINUX
|
||||
#if defined(OS_CHROMEOS)
|
||||
, ctrl_terminal_fd(-1)
|
||||
@@ -125,6 +126,9 @@ struct LaunchOptions {
|
||||
#if defined(OS_LINUX)
|
||||
// If non-zero, start the process using clone(), using flags as provided.
|
||||
int clone_flags;
|
||||
+
|
||||
+ // If true, start the process in a new user namespace.
|
||||
+ bool new_user_namespace;
|
||||
#endif // defined(OS_LINUX)
|
||||
|
||||
#if defined(OS_CHROMEOS)
|
||||
diff --git a/base/process/launch_posix.cc b/base/process/launch_posix.cc
|
||||
index 336633c..4b50a5d 100644
|
||||
--- a/base/process/launch_posix.cc
|
||||
+++ b/base/process/launch_posix.cc
|
||||
@@ -36,6 +36,13 @@
|
||||
#include "base/threading/platform_thread.h"
|
||||
#include "base/threading/thread_restrictions.h"
|
||||
|
||||
+#if defined(OS_LINUX)
|
||||
+#include <sched.h>
|
||||
+#if !defined(CLONE_NEWUSER)
|
||||
+#define CLONE_NEWUSER 0x10000000
|
||||
+#endif
|
||||
+#endif
|
||||
+
|
||||
#if defined(OS_CHROMEOS)
|
||||
#include <sys/ioctl.h>
|
||||
#endif
|
||||
@@ -395,8 +402,19 @@ bool LaunchProcess(const std::vector<std::string>& argv,
|
||||
|
||||
pid_t pid;
|
||||
#if defined(OS_LINUX)
|
||||
- if (options.clone_flags) {
|
||||
- pid = syscall(__NR_clone, options.clone_flags, 0, 0, 0);
|
||||
+ int map_pipe_fd[2];
|
||||
+ int flags = options.clone_flags;
|
||||
+
|
||||
+ if (options.new_user_namespace) {
|
||||
+ flags |= CLONE_NEWUSER;
|
||||
+ if (pipe(map_pipe_fd) < 0) {
|
||||
+ DPLOG(ERROR) << "user namespace pipe";
|
||||
+ return false;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if (options.clone_flags || options.new_user_namespace) {
|
||||
+ pid = syscall(__NR_clone, flags, 0, 0, 0);
|
||||
} else
|
||||
#endif
|
||||
{
|
||||
@@ -409,6 +427,21 @@ bool LaunchProcess(const std::vector<std::string>& argv,
|
||||
} else if (pid == 0) {
|
||||
// Child process
|
||||
|
||||
+#if defined(OS_LINUX)
|
||||
+ if (options.new_user_namespace) {
|
||||
+ // Close the write end of the pipe so we get an EOF when the parent closes
|
||||
+ // the FD. This is to avoid race conditions when the UID/GID mappings are
|
||||
+ // written _after_ execvp().
|
||||
+ close(map_pipe_fd[1]);
|
||||
+
|
||||
+ char dummy;
|
||||
+ if (HANDLE_EINTR(read(map_pipe_fd[0], &dummy, 1)) != 0) {
|
||||
+ RAW_LOG(ERROR, "Unexpected input in uid/gid mapping pipe.");
|
||||
+ _exit(127);
|
||||
+ }
|
||||
+ }
|
||||
+#endif
|
||||
+
|
||||
// DANGER: fork() rule: in the child, if you don't end up doing exec*(),
|
||||
// you call _exit() instead of exit(). This is because _exit() does not
|
||||
// call any previously-registered (in the parent) exit handlers, which
|
||||
@@ -523,6 +556,40 @@ bool LaunchProcess(const std::vector<std::string>& argv,
|
||||
_exit(127);
|
||||
} else {
|
||||
// Parent process
|
||||
+#if defined(OS_LINUX)
|
||||
+ if (options.new_user_namespace) {
|
||||
+ // We need to write UID/GID mapping here to map the current user outside
|
||||
+ // the namespace to the root user inside the namespace in order to
|
||||
+ // correctly "fool" the child process.
|
||||
+ char buf[256];
|
||||
+ int map_fd, map_len;
|
||||
+
|
||||
+ snprintf(buf, sizeof(buf), "/proc/%d/uid_map", pid);
|
||||
+ map_fd = open(buf, O_RDWR);
|
||||
+ DPCHECK(map_fd >= 0);
|
||||
+ snprintf(buf, sizeof(buf), "0 %d 1", geteuid());
|
||||
+ map_len = strlen(buf);
|
||||
+ if (write(map_fd, buf, map_len) != map_len) {
|
||||
+ RAW_LOG(WARNING, "Can't write to uid_map.");
|
||||
+ }
|
||||
+ close(map_fd);
|
||||
+
|
||||
+ snprintf(buf, sizeof(buf), "/proc/%d/gid_map", pid);
|
||||
+ map_fd = open(buf, O_RDWR);
|
||||
+ DPCHECK(map_fd >= 0);
|
||||
+ snprintf(buf, sizeof(buf), "0 %d 1", getegid());
|
||||
+ map_len = strlen(buf);
|
||||
+ if (write(map_fd, buf, map_len) != map_len) {
|
||||
+ RAW_LOG(WARNING, "Can't write to gid_map.");
|
||||
+ }
|
||||
+ close(map_fd);
|
||||
+
|
||||
+ // Close the pipe on the parent, so the child can continue doing the
|
||||
+ // execvp() call.
|
||||
+ close(map_pipe_fd[1]);
|
||||
+ }
|
||||
+#endif
|
||||
+
|
||||
if (options.wait) {
|
||||
// While this isn't strictly disk IO, waiting for another process to
|
||||
// finish is the sort of thing ThreadRestrictions is trying to prevent.
|
||||
diff --git a/content/browser/zygote_host/zygote_host_impl_linux.cc b/content/browser/zygote_host/zygote_host_impl_linux.cc
|
||||
index bb84e62..bce0d18 100644
|
||||
--- a/content/browser/zygote_host/zygote_host_impl_linux.cc
|
||||
+++ b/content/browser/zygote_host/zygote_host_impl_linux.cc
|
||||
@@ -119,25 +119,31 @@ void ZygoteHostImpl::Init(const std::string& sandbox_cmd) {
|
||||
|
||||
sandbox_binary_ = sandbox_cmd.c_str();
|
||||
|
||||
- // A non empty sandbox_cmd means we want a SUID sandbox.
|
||||
- using_suid_sandbox_ = !sandbox_cmd.empty();
|
||||
+ bool userns_sandbox = false;
|
||||
+ const std::vector<std::string> cmd_line_unwrapped(cmd_line.argv());
|
||||
|
||||
- if (using_suid_sandbox_) {
|
||||
+ if (!sandbox_cmd.empty()) {
|
||||
struct stat st;
|
||||
if (stat(sandbox_binary_.c_str(), &st) != 0) {
|
||||
LOG(FATAL) << "The SUID sandbox helper binary is missing: "
|
||||
<< sandbox_binary_ << " Aborting now.";
|
||||
}
|
||||
|
||||
- if (access(sandbox_binary_.c_str(), X_OK) == 0 &&
|
||||
- (st.st_uid == 0) &&
|
||||
- (st.st_mode & S_ISUID) &&
|
||||
- (st.st_mode & S_IXOTH)) {
|
||||
+ if (access(sandbox_binary_.c_str(), X_OK) == 0) {
|
||||
+ using_suid_sandbox_ = true;
|
||||
+
|
||||
cmd_line.PrependWrapper(sandbox_binary_);
|
||||
|
||||
scoped_ptr<sandbox::SetuidSandboxClient>
|
||||
sandbox_client(sandbox::SetuidSandboxClient::Create());
|
||||
sandbox_client->SetupLaunchEnvironment();
|
||||
+
|
||||
+ if (!((st.st_uid == 0) &&
|
||||
+ (st.st_mode & S_ISUID) &&
|
||||
+ (st.st_mode & S_IXOTH))) {
|
||||
+ userns_sandbox = true;
|
||||
+ sandbox_client->SetNoSuid();
|
||||
+ }
|
||||
} else {
|
||||
LOG(FATAL) << "The SUID sandbox helper binary was found, but is not "
|
||||
"configured correctly. Rather than run without sandboxing "
|
||||
@@ -161,7 +167,19 @@ void ZygoteHostImpl::Init(const std::string& sandbox_cmd) {
|
||||
base::ProcessHandle process = -1;
|
||||
base::LaunchOptions options;
|
||||
options.fds_to_remap = &fds_to_map;
|
||||
+ if (userns_sandbox)
|
||||
+ options.new_user_namespace = true;
|
||||
base::LaunchProcess(cmd_line.argv(), options, &process);
|
||||
+
|
||||
+ if (process == -1 && userns_sandbox) {
|
||||
+ LOG(ERROR) << "User namespace sandbox failed to start, running without "
|
||||
+ << "sandbox! You need at least kernel 3.8.0 with CONFIG_USER_NS "
|
||||
+ << "enabled in order to use the sandbox without setuid bit.";
|
||||
+ using_suid_sandbox_ = false;
|
||||
+ options.new_user_namespace = false;
|
||||
+ base::LaunchProcess(cmd_line_unwrapped, options, &process);
|
||||
+ }
|
||||
+
|
||||
CHECK(process != -1) << "Failed to launch zygote process";
|
||||
|
||||
if (using_suid_sandbox_) {
|
||||
diff --git a/content/zygote/zygote_main_linux.cc b/content/zygote/zygote_main_linux.cc
|
||||
index dcea4c0..c06b4ae 100644
|
||||
--- a/content/zygote/zygote_main_linux.cc
|
||||
+++ b/content/zygote/zygote_main_linux.cc
|
||||
@@ -398,6 +398,13 @@ static bool EnterSandbox(sandbox::SetuidSandboxClient* setuid_sandbox,
|
||||
*has_started_new_init = true;
|
||||
}
|
||||
|
||||
+ // Don't set non-dumpable, as it causes trouble when the host tries to find
|
||||
+ // the zygote process (XXX: Not quite sure why this happens with user
|
||||
+ // namespaces). Fortunately, we also have the seccomp filter sandbox which
|
||||
+ // should disallow the use of ptrace.
|
||||
+ if (setuid_sandbox->IsNoSuid())
|
||||
+ return true;
|
||||
+
|
||||
#if !defined(OS_OPENBSD)
|
||||
// Previously, we required that the binary be non-readable. This causes the
|
||||
// kernel to mark the process as non-dumpable at startup. The thinking was
|
||||
diff --git a/sandbox/linux/suid/client/setuid_sandbox_client.cc b/sandbox/linux/suid/client/setuid_sandbox_client.cc
|
||||
index 34231d4..36e3201 100644
|
||||
--- a/sandbox/linux/suid/client/setuid_sandbox_client.cc
|
||||
+++ b/sandbox/linux/suid/client/setuid_sandbox_client.cc
|
||||
@@ -166,6 +166,10 @@ bool SetuidSandboxClient::IsInNewNETNamespace() const {
|
||||
return env_->HasVar(kSandboxNETNSEnvironmentVarName);
|
||||
}
|
||||
|
||||
+bool SetuidSandboxClient::IsNoSuid() const {
|
||||
+ return env_->HasVar(kSandboxNoSuidVarName);
|
||||
+}
|
||||
+
|
||||
bool SetuidSandboxClient::IsSandboxed() const {
|
||||
return sandboxed_;
|
||||
}
|
||||
@@ -175,5 +179,9 @@ void SetuidSandboxClient::SetupLaunchEnvironment() {
|
||||
SetSandboxAPIEnvironmentVariable(env_);
|
||||
}
|
||||
|
||||
+void SetuidSandboxClient::SetNoSuid() {
|
||||
+ env_->SetVar(kSandboxNoSuidVarName, "1");
|
||||
+}
|
||||
+
|
||||
} // namespace sandbox
|
||||
|
||||
diff --git a/sandbox/linux/suid/client/setuid_sandbox_client.h b/sandbox/linux/suid/client/setuid_sandbox_client.h
|
||||
index a9f6536..2e8113a 100644
|
||||
--- a/sandbox/linux/suid/client/setuid_sandbox_client.h
|
||||
+++ b/sandbox/linux/suid/client/setuid_sandbox_client.h
|
||||
@@ -39,6 +39,8 @@ class SetuidSandboxClient {
|
||||
bool IsInNewPIDNamespace() const;
|
||||
// Did the setuid helper create a new network namespace ?
|
||||
bool IsInNewNETNamespace() const;
|
||||
+ // Is sandboxed without SUID binary ?
|
||||
+ bool IsNoSuid() const;
|
||||
// Are we done and fully sandboxed ?
|
||||
bool IsSandboxed() const;
|
||||
|
||||
@@ -46,6 +48,8 @@ class SetuidSandboxClient {
|
||||
// helper.
|
||||
void SetupLaunchEnvironment();
|
||||
|
||||
+ void SetNoSuid();
|
||||
+
|
||||
private:
|
||||
// Holds the environment. Will never be NULL.
|
||||
base::Environment* env_;
|
||||
diff --git a/sandbox/linux/suid/common/sandbox.h b/sandbox/linux/suid/common/sandbox.h
|
||||
index aad4ff8..bd710d5 100644
|
||||
--- a/sandbox/linux/suid/common/sandbox.h
|
||||
+++ b/sandbox/linux/suid/common/sandbox.h
|
||||
@@ -18,6 +18,7 @@ static const char kAdjustLowMemMarginSwitch[] = "--adjust-low-mem";
|
||||
|
||||
static const char kSandboxDescriptorEnvironmentVarName[] = "SBX_D";
|
||||
static const char kSandboxHelperPidEnvironmentVarName[] = "SBX_HELPER_PID";
|
||||
+static const char kSandboxNoSuidVarName[] = "SBX_NO_SUID";
|
||||
|
||||
static const long kSUIDSandboxApiNumber = 1;
|
||||
static const char kSandboxEnvironmentApiRequest[] = "SBX_CHROME_API_RQ";
|
@ -1,18 +1,18 @@
|
||||
# This file is autogenerated from update.sh in the same directory.
|
||||
{
|
||||
dev = {
|
||||
version = "29.0.1541.2";
|
||||
url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-29.0.1541.2.tar.xz";
|
||||
sha256 = "0i3vp2zrk1sjdhkwdhig08jh0qmzahn96pm0i22r63cp8i9vny1p";
|
||||
version = "30.0.1588.0";
|
||||
url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-30.0.1588.0.tar.xz";
|
||||
sha256 = "1jwc2pkd75gax8vj8wzahhpzl6ilgrlj3bcbah975yy67m7c8p13";
|
||||
};
|
||||
beta = {
|
||||
version = "28.0.1500.52";
|
||||
url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-28.0.1500.52.tar.xz";
|
||||
sha256 = "1d0q8lsvwqkaninmnyc8jjj0pnqxc5rr3lr3mgzj37avksxvyg3v";
|
||||
version = "29.0.1547.49";
|
||||
url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-29.0.1547.49.tar.xz";
|
||||
sha256 = "03r64rydi2kbxgi2dcpslmpb716ppadqy1jzrbw39icz5xpgmg3k";
|
||||
};
|
||||
stable = {
|
||||
version = "28.0.1500.52";
|
||||
url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-28.0.1500.52.tar.xz";
|
||||
sha256 = "1d0q8lsvwqkaninmnyc8jjj0pnqxc5rr3lr3mgzj37avksxvyg3v";
|
||||
version = "28.0.1500.95";
|
||||
url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-28.0.1500.95.tar.xz";
|
||||
sha256 = "0d6pj57nyx7wfgxws98f6ly749flcyv7zg5sc3w16ggdxf5qhf1w";
|
||||
};
|
||||
}
|
||||
|
@ -1,15 +1,16 @@
|
||||
{ stdenv, fetchurl, unzip, xulrunner, makeWrapper }:
|
||||
{ stdenv, fetchgit, unzip, xulrunner, makeWrapper }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "conkeror-1.0pre-20130401";
|
||||
|
||||
src = fetchurl {
|
||||
url = http://repo.or.cz/w/conkeror.git/snapshot/0341e791c78653a2f5bbbff9a1dac04bf898dd65.zip;
|
||||
sha256 = "11v7p40lcz6r5z0w54f8pk6hyn9mqjcw44fqszjyz25rkhx951ry";
|
||||
name = "conkeror-1.0pre-20130817-1";
|
||||
|
||||
src = fetchgit {
|
||||
url = git://repo.or.cz/conkeror.git;
|
||||
rev = "refs/tags/debian-1.0--pre+git130817-1";
|
||||
sha256 = "aef3c782ac98c031e7b99852f42538e225e151cd226cde3094823a5cae015fcf";
|
||||
};
|
||||
|
||||
|
||||
buildInputs = [ unzip makeWrapper ];
|
||||
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/libexec/conkeror
|
||||
cp -r * $out/libexec/conkeror
|
||||
|
@ -1,175 +0,0 @@
|
||||
{ stdenv, fetchurl, pkgconfig, gtk, pango, perl, python, zip, libIDL
|
||||
, libjpeg, libpng, zlib, cairo, dbus, dbus_glib, bzip2, xlibs
|
||||
, freetype, fontconfig, file, alsaLib, nspr, nss, libnotify
|
||||
, yasm, mesa, sqlite, unzip, makeWrapper, pysqlite
|
||||
|
||||
, # If you want the resulting program to call itself "Firefox" instead
|
||||
# of "Shiretoko" or whatever, enable this option. However, those
|
||||
# binaries may not be distributed without permission from the
|
||||
# Mozilla Foundation, see
|
||||
# http://www.mozilla.org/foundation/trademarks/.
|
||||
enableOfficialBranding ? false
|
||||
}:
|
||||
|
||||
assert stdenv.gcc ? libc && stdenv.gcc.libc != null;
|
||||
|
||||
rec {
|
||||
|
||||
firefoxVersion = "20.0";
|
||||
|
||||
xulVersion = "20.0"; # this attribute is used by other packages
|
||||
|
||||
|
||||
src = fetchurl {
|
||||
urls = [
|
||||
# It is better to use this url for official releases, to take load off Mozilla's ftp server.
|
||||
"http://releases.mozilla.org/pub/mozilla.org/firefox/releases/${firefoxVersion}/source/firefox-${firefoxVersion}.source.tar.bz2"
|
||||
# Fall back to this url for versions not available at releases.mozilla.org.
|
||||
"ftp://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${firefoxVersion}/source/firefox-${firefoxVersion}.source.tar.bz2"
|
||||
];
|
||||
sha1 = "6d776c29da0be0d2a50abeb504d63b06b7861218";
|
||||
};
|
||||
|
||||
commonConfigureFlags =
|
||||
[ "--enable-optimize"
|
||||
#"--enable-profiling"
|
||||
"--disable-debug"
|
||||
"--enable-strip"
|
||||
"--with-system-jpeg" # now we use recent libjpeg-turbo
|
||||
"--with-system-zlib"
|
||||
"--with-system-bz2"
|
||||
"--with-system-nspr"
|
||||
"--with-system-nss"
|
||||
# "--with-system-png" # <-- "--with-system-png won't work because the system's libpng doesn't have APNG support"
|
||||
# "--enable-system-cairo" # <-- doesn't build
|
||||
"--enable-system-sqlite"
|
||||
"--disable-crashreporter"
|
||||
"--disable-tests"
|
||||
"--disable-necko-wifi" # maybe we want to enable this at some point
|
||||
"--disable-installer"
|
||||
"--disable-updater"
|
||||
];
|
||||
|
||||
|
||||
xulrunner = stdenv.mkDerivation rec {
|
||||
name = "xulrunner-${xulVersion}";
|
||||
|
||||
inherit src;
|
||||
|
||||
buildInputs =
|
||||
[ pkgconfig gtk perl zip libIDL libjpeg libpng zlib cairo bzip2
|
||||
python dbus dbus_glib pango freetype fontconfig xlibs.libXi
|
||||
xlibs.libX11 xlibs.libXrender xlibs.libXft xlibs.libXt file
|
||||
alsaLib nspr nss libnotify xlibs.pixman yasm mesa
|
||||
xlibs.libXScrnSaver xlibs.scrnsaverproto pysqlite
|
||||
xlibs.libXext xlibs.xextproto sqlite unzip makeWrapper
|
||||
];
|
||||
|
||||
configureFlags =
|
||||
[ "--enable-application=xulrunner"
|
||||
"--disable-javaxpcom"
|
||||
] ++ commonConfigureFlags;
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
preConfigure =
|
||||
''
|
||||
export NIX_LDFLAGS="$NIX_LDFLAGS -L$out/lib/xulrunner-${xulVersion}"
|
||||
|
||||
mkdir ../objdir
|
||||
cd ../objdir
|
||||
configureScript=../mozilla-release/configure
|
||||
''; # */
|
||||
|
||||
#installFlags = "SKIP_GRE_REGISTRATION=1";
|
||||
|
||||
postInstall = ''
|
||||
# Fix run-mozilla.sh search
|
||||
libDir=$(cd $out/lib && ls -d xulrunner-[0-9]*)
|
||||
echo libDir: $libDir
|
||||
test -n "$libDir"
|
||||
cd $out/bin
|
||||
rm xulrunner
|
||||
|
||||
for i in $out/lib/$libDir/*; do
|
||||
file $i;
|
||||
if file $i | grep executable &>/dev/null; then
|
||||
echo -e '#! /bin/sh\nexec "'"$i"'" "$@"' > "$out/bin/$(basename "$i")";
|
||||
chmod a+x "$out/bin/$(basename "$i")";
|
||||
fi;
|
||||
done
|
||||
for i in $out/lib/$libDir/*.so; do
|
||||
patchelf --set-rpath "$(patchelf --print-rpath "$i"):$out/lib/$libDir" $i || true
|
||||
done
|
||||
for i in $out/lib/$libDir/{plugin-container,xulrunner,xulrunner-stub}; do
|
||||
wrapProgram $i --prefix LD_LIBRARY_PATH ':' "$out/lib/$libDir"
|
||||
done
|
||||
rm -f $out/bin/run-mozilla.sh
|
||||
''; # */
|
||||
|
||||
meta = {
|
||||
description = "Mozilla Firefox XUL runner";
|
||||
homepage = http://www.mozilla.com/en-US/firefox/;
|
||||
};
|
||||
|
||||
passthru = { inherit gtk; version = xulVersion; };
|
||||
};
|
||||
|
||||
|
||||
firefox = stdenv.mkDerivation rec {
|
||||
name = "firefox-${firefoxVersion}";
|
||||
|
||||
inherit src;
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
buildInputs =
|
||||
[ pkgconfig gtk perl zip libIDL libjpeg zlib cairo bzip2 python
|
||||
dbus dbus_glib pango freetype fontconfig alsaLib nspr nss libnotify
|
||||
xlibs.pixman yasm mesa sqlite file unzip pysqlite
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [xulrunner];
|
||||
|
||||
configureFlags =
|
||||
[ "--enable-application=browser"
|
||||
"--with-libxul-sdk=${xulrunner}/lib/xulrunner-devel-${xulrunner.version}"
|
||||
"--enable-chrome-format=jar"
|
||||
]
|
||||
++ commonConfigureFlags
|
||||
++ stdenv.lib.optional enableOfficialBranding "--enable-official-branding";
|
||||
|
||||
makeFlags = [
|
||||
"SYSTEM_LIBXUL=1"
|
||||
];
|
||||
|
||||
# Hack to work around make's idea of -lbz2 dependency
|
||||
preConfigure =
|
||||
''
|
||||
find . -name Makefile.in -execdir sed -i '{}' -e '1ivpath %.so ${
|
||||
stdenv.lib.concatStringsSep ":"
|
||||
(map (s : s + "/lib") (buildInputs ++ [stdenv.gcc.libc]))
|
||||
}' ';'
|
||||
'';
|
||||
|
||||
postInstall =
|
||||
''
|
||||
ln -s ${xulrunner}/lib/xulrunner-${xulrunner.version} $(echo $out/lib/firefox-*)/xulrunner
|
||||
cd "$out/lib/"firefox-*
|
||||
rm firefox
|
||||
echo -e '#!${stdenv.shell}\nexec ${xulrunner}/bin/xulrunner "'"$PWD"'/application.ini" "$@"' > firefox
|
||||
chmod a+x firefox
|
||||
''; # */
|
||||
|
||||
meta = {
|
||||
description = "Mozilla Firefox - the browser, reloaded";
|
||||
homepage = http://www.mozilla.com/en-US/firefox/;
|
||||
maintainers = [ stdenv.lib.maintainers.eelco ];
|
||||
};
|
||||
|
||||
passthru = {
|
||||
inherit gtk xulrunner nspr;
|
||||
isFirefox3Like = true;
|
||||
};
|
||||
};
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user