3
0
Fork 0
forked from mirrors/nixpkgs

Merge remote-tracking branch 'origin/master' into glibc-2.19

This commit is contained in:
Eelco Dolstra 2014-02-26 12:42:03 +01:00
commit db9d204d33
365 changed files with 5155 additions and 2693 deletions

View file

@ -108,7 +108,7 @@ a <varname>preConfigure</varname> hook to generate a configuration
file used by <filename>Makefile.PL</filename>: file used by <filename>Makefile.PL</filename>:
<programlisting> <programlisting>
{buildPerlPackage, fetchurl, db4}: {buildPerlPackage, fetchurl, db}:
buildPerlPackage rec { buildPerlPackage rec {
name = "BerkeleyDB-0.36"; name = "BerkeleyDB-0.36";
@ -119,8 +119,8 @@ buildPerlPackage rec {
}; };
preConfigure = '' preConfigure = ''
echo "LIB = ${db4}/lib" > config.in echo "LIB = ${db}/lib" > config.in
echo "INCLUDE = ${db4}/include" >> config.in echo "INCLUDE = ${db}/include" >> config.in
''; '';
} }
</programlisting> </programlisting>

View file

@ -28,12 +28,14 @@
garbas = "Rok Garbas <rok@garbas.si>"; garbas = "Rok Garbas <rok@garbas.si>";
goibhniu = "Cillian de Róiste <cillian.deroiste@gmail.com>"; goibhniu = "Cillian de Róiste <cillian.deroiste@gmail.com>";
guibert = "David Guibert <david.guibert@gmail.com>"; guibert = "David Guibert <david.guibert@gmail.com>";
hinton = "Tom Hinton <t@larkery.com>";
ianwookim = "Ian-Woo Kim <ianwookim@gmail.com>"; ianwookim = "Ian-Woo Kim <ianwookim@gmail.com>";
iElectric = "Domen Kozar <domen@dev.si>"; iElectric = "Domen Kozar <domen@dev.si>";
iyzsong = "Song Wenwu <iyzsong@gmail.com>"; iyzsong = "Song Wenwu <iyzsong@gmail.com>";
jcumming = "Jack Cummings <jack@mudshark.org>"; jcumming = "Jack Cummings <jack@mudshark.org>";
kkallio = "Karn Kallio <tierpluspluslists@gmail.com>"; kkallio = "Karn Kallio <tierpluspluslists@gmail.com>";
ktosiek = "Tomasz Kontusz <tomasz.kontusz@gmail.com>"; ktosiek = "Tomasz Kontusz <tomasz.kontusz@gmail.com>";
lethalman = "Luca Bruno <lucabru@src.gnome.org>";
linquize = "Linquize <linquize@yahoo.com.hk>"; linquize = "Linquize <linquize@yahoo.com.hk>";
lovek323 = "Jason O'Conal <jason@oconal.id.au>"; lovek323 = "Jason O'Conal <jason@oconal.id.au>";
ludo = "Ludovic Courtès <ludo@gnu.org>"; ludo = "Ludovic Courtès <ludo@gnu.org>";
@ -64,6 +66,7 @@
sprock = "Roger Mason <rmason@mun.ca>"; sprock = "Roger Mason <rmason@mun.ca>";
thammers = "Tobias Hammerschmidt <jawr@gmx.de>"; thammers = "Tobias Hammerschmidt <jawr@gmx.de>";
the-kenny = "Moritz Ulrich <moritz@tarn-vedra.de>"; the-kenny = "Moritz Ulrich <moritz@tarn-vedra.de>";
thoughtpolice = "Austin Seipp <aseipp@pobox.com>";
tomberek = "Thomas Bereknyei <tomberek@gmail.com>"; tomberek = "Thomas Bereknyei <tomberek@gmail.com>";
urkud = "Yury G. Kudryashov <urkud+nix@ya.ru>"; urkud = "Yury G. Kudryashov <urkud+nix@ya.ru>";
vcunat = "Vladimír Čunát <vcunat@gmail.com>"; vcunat = "Vladimír Čunát <vcunat@gmail.com>";
@ -71,6 +74,7 @@
vizanto = "Danny Wilson <danny@prime.vc>"; vizanto = "Danny Wilson <danny@prime.vc>";
vlstill = "Vladimír Štill <xstill@fi.muni.cz>"; vlstill = "Vladimír Štill <xstill@fi.muni.cz>";
winden = "Antonio Vargas Gonzalez <windenntw@gmail.com>"; winden = "Antonio Vargas Gonzalez <windenntw@gmail.com>";
wizeman = "Ricardo M. Correia <rcorreia@wizy.org>";
z77z = "Marco Maggesi <maggesi@math.unifi.it>"; z77z = "Marco Maggesi <maggesi@math.unifi.it>";
zef = "Zef Hemel <zef@zef.me>"; zef = "Zef Hemel <zef@zef.me>";
zimbatm = "zimbatm <zimbatm@zimbatm.com>"; zimbatm = "zimbatm <zimbatm@zimbatm.com>";

View file

@ -41,4 +41,13 @@ rec {
pathExists readFile isBool isFunction pathExists readFile isBool isFunction
isInt add sub lessThan; isInt add sub lessThan;
# Return the Nixpkgs version number.
nixpkgsVersion =
let suffixFile = ../.version-suffix; in
readFile ../.version
+ (if pathExists suffixFile then readFile suffixFile else "pre-git");
# Whether we're being called by nix-shell. This is useful to
inNixShell = builtins.getEnv "IN_NIX_SHELL" == "1";
} }

View file

@ -132,7 +132,7 @@ rec {
{ inherit (def) file; { inherit (def) file;
value = listToAttrs ( value = listToAttrs (
imap (elemIdx: elem: imap (elemIdx: elem:
{ name = "${elem.name or "unnamed"}-${toString defIdx}.${toString elemIdx}"; { name = elem.name or "unnamed-${toString defIdx}.${toString elemIdx}";
value = elem; value = elem;
}) def.value); }) def.value);
} }

View file

@ -1,45 +0,0 @@
#! /bin/sh -e
distDir=${NIX_TARBALLS_CACHE:-/tarballs}
url="$1"
file="$2"
if [ -z "$url" ]; then echo "syntax: $0 URL"; exit 0; fi
base="$(basename "$url")"
if [ -z "$base" ]; then echo "bad URL"; exit 1; fi
dstPath="$distDir/$base"
if [ -e "$dstPath" ]; then if [ -n "$VERBOSE" ]; then echo "$dstPath already exists"; fi; exit 0; fi
if [ -z "$file" ]; then
echo "downloading $url to $dstPath"
if [ -n "$DRY_RUN" ]; then exit 0; fi
declare -a res
if ! res=($(PRINT_PATH=1 nix-prefetch-url "$url")); then
exit
fi
storePath=${res[1]}
else
storePath="$file"
fi
cp $storePath "$dstPath.tmp.$$"
mv -f "$dstPath.tmp.$$" "$dstPath"
echo "hashing $dstPath"
md5=$(nix-hash --flat --type md5 "$dstPath")
ln -sfn "../$base" $distDir/md5/$md5
sha1=$(nix-hash --flat --type sha1 "$dstPath")
ln -sfn "../$base" $distDir/sha1/$sha1
sha256=$(nix-hash --flat --type sha256 "$dstPath")
ln -sfn "../$base" $distDir/sha256/$sha256
ln -sfn "../$base" $distDir/sha256/$(nix-hash --type sha256 --to-base32 "$sha256")

View file

@ -0,0 +1,95 @@
#! /run/current-system/sw/bin/perl -w
use strict;
use XML::Simple;
use File::Basename;
use File::Path;
use File::Copy 'cp';
use IPC::Open2;
use Nix::Store;
my $myDir = dirname($0);
my $tarballsCache = $ENV{'NIX_TARBALLS_CACHE'} // "/tarballs";
my $xml = `nix-instantiate --eval-only --xml --strict '<nixpkgs/maintainers/scripts/find-tarballs.nix>'`;
die "$0: evaluation failed\n" if $? != 0;
my $data = XMLin($xml) or die;
mkpath($tarballsCache);
mkpath("$tarballsCache/md5");
mkpath("$tarballsCache/sha1");
mkpath("$tarballsCache/sha256");
foreach my $file (@{$data->{list}->{attrs}}) {
my $url = $file->{attr}->{url}->{string}->{value};
my $algo = $file->{attr}->{type}->{string}->{value};
my $hash = $file->{attr}->{hash}->{string}->{value};
if ($url !~ /^http:/ && $url !~ /^https:/ && $url !~ /^ftp:/ && $url !~ /^mirror:/) {
print STDERR "skipping $url (unsupported scheme)\n";
next;
}
$url =~ /([^\/]+)$/;
my $fn = $1;
if (!defined $fn) {
print STDERR "skipping $url (no file name)\n";
next;
}
if ($fn =~ /[&?=%]/ || $fn =~ /^\./) {
print STDERR "skipping $url (bad character in file name)\n";
next;
}
if ($fn !~ /[a-zA-Z]/) {
print STDERR "skipping $url (no letter in file name)\n";
next;
}
if ($fn !~ /[0-9]/) {
print STDERR "skipping $url (no digit in file name)\n";
next;
}
if ($fn !~ /[-_\.]/) {
print STDERR "skipping $url (no dash/dot/underscore in file name)\n";
next;
}
my $dstPath = "$tarballsCache/$fn";
next if -e $dstPath;
print "downloading $url to $dstPath...\n";
next if $ENV{DRY_RUN};
$ENV{QUIET} = 1;
$ENV{PRINT_PATH} = 1;
my $fh;
my $pid = open($fh, "-|", "nix-prefetch-url", "--type", $algo, $url, $hash) or die;
waitpid($pid, 0) or die;
if ($? != 0) {
print STDERR "failed to fetch $url: $?\n";
last if $? >> 8 == 255;
next;
}
<$fh>; my $storePath = <$fh>; chomp $storePath;
die unless -e $storePath;
cp($storePath, $dstPath) or die;
my $md5 = hashFile("md5", 0, $storePath) or die;
symlink("../$fn", "$tarballsCache/md5/$md5");
my $sha1 = hashFile("sha1", 0, $storePath) or die;
symlink("../$fn", "$tarballsCache/sha1/$sha1");
my $sha256 = hashFile("sha256", 0, $storePath) or die;
symlink("../$fn", "$tarballsCache/sha256/$sha256");
}

View file

@ -1,27 +0,0 @@
#! /bin/sh -e
urls=$(nix-instantiate --eval-only --xml --strict '<nixpkgs/maintainers/scripts/eval-release.nix>' \
| grep -A2 'name="urls"' \
| grep '<string value=' \
| sed 's/.*"\(.*\)".*/\1/' \
| sort | uniq)
for url in $urls; do
if echo "$url" | grep -q -E "www.cs.uu.nl|nixos.org|.stratego-language.org|java.sun.com|ut2004|linuxq3a|RealPlayer|Adbe|belastingdienst|microsoft|armijn/.nix|sun.com|archive.eclipse.org"; then continue; fi
# Check the URL scheme.
if ! echo "$url" | grep -q -E "^[a-z]+://"; then echo "skipping $url (no URL scheme)"; continue; fi
# Check the basename. It should include something resembling a version.
base="$(basename "$url")"
#if ! echo "$base" | grep -q -E "[-_].*[0-9].*"; then echo "skipping $url (no version)"; continue; fi
if ! echo "$base" | grep -q -E "[a-zA-Z]"; then echo "skipping $url (no letter in name)"; continue; fi
if ! echo "$base" | grep -q -E "[0-9]"; then echo "skipping $url (no digit in name)"; continue; fi
if ! echo "$base" | grep -q -E "[-_\.]"; then echo "skipping $url (no dot/underscore in name)"; continue; fi
if echo "$base" | grep -q -E "[&?=%]"; then echo "skipping $url (bad character in name)"; continue; fi
if [ "${base:0:1}" = "." ]; then echo "skipping $url (starts with a dot)"; continue; fi
$(dirname $0)/copy-tarball.sh "$url"
done
echo DONE

View file

@ -0,0 +1,45 @@
# This expression returns a list of all fetchurl calls used by all
# packages reachable from release.nix.
with import ../.. { };
with lib;
let
root = removeAttrs (import ../../pkgs/top-level/release.nix { }) [ "tarball" "unstable" ];
uniqueUrls = map (x: x.file) (genericClosure {
startSet = map (file: { key = file.url; inherit file; }) urls;
operator = const [ ];
});
urls = map (drv: { url = head drv.urls; hash = drv.outputHash; type = drv.outputHashAlgo; }) fetchurlDependencies;
fetchurlDependencies = filter (drv: drv.outputHash or "" != "" && drv ? urls) dependencies;
dependencies = map (x: x.value) (genericClosure {
startSet = map keyDrv (derivationsIn' root);
operator = { key, value }: map keyDrv (immediateDependenciesOf value);
});
derivationsIn' = x:
if !canEval x then []
else if isDerivation x then optional (canEval x.drvPath) x
else if isList x then concatLists (map derivationsIn' x)
else if isAttrs x then concatLists (mapAttrsToList (n: v: derivationsIn' v) x)
else [ ];
keyDrv = drv: if canEval drv.drvPath then { key = drv.drvPath; value = drv; } else { };
immediateDependenciesOf = drv:
concatLists (mapAttrsToList (n: v: derivationsIn v) (removeAttrs drv ["meta" "passthru"]));
derivationsIn = x:
if !canEval x then []
else if isDerivation x then optional (canEval x.drvPath) x
else if isList x then concatLists (map derivationsIn x)
else [ ];
canEval = val: (builtins.tryEval val).success;
in uniqueUrls

View file

@ -1183,7 +1183,7 @@ driver from a set of X.org drivers (such as <literal>vesa</literal>
and <literal>intel</literal>). You can also specify a driver and <literal>intel</literal>). You can also specify a driver
manually, e.g. manually, e.g.
<programlisting> <programlisting>
services.xserver.videoDrivers = [ "r128" ]; hardware.opengl.videoDrivers = [ "r128" ];
</programlisting> </programlisting>
to enable X.orgs <literal>xf86-video-r128</literal> driver.</para> to enable X.orgs <literal>xf86-video-r128</literal> driver.</para>
@ -1226,7 +1226,7 @@ $ systemctl start display-manager.service
has better 3D performance than the X.org drivers. It is not enabled has better 3D performance than the X.org drivers. It is not enabled
by default because its not free software. You can enable it as follows: by default because its not free software. You can enable it as follows:
<programlisting> <programlisting>
services.xserver.videoDrivers = [ "nvidia" ]; hardware.opengl.videoDrivers = [ "nvidia" ];
</programlisting> </programlisting>
You may need to reboot after enabling this driver to prevent a clash You may need to reboot after enabling this driver to prevent a clash
with other kernel modules.</para> with other kernel modules.</para>

View file

@ -295,7 +295,7 @@ $ reboot</screen>
}</screen> }</screen>
</example> </example>
<section> <section xml:id="sec-uefi-installation">
<title>UEFI Installation</title> <title>UEFI Installation</title>
@ -305,14 +305,15 @@ changes:
<itemizedlist> <itemizedlist>
<listitem> <listitem>
<para>You should boot the livecd in UEFI mode (consult your specific <para>You should boot the live CD in UEFI mode (consult your
hardware's documentation for instructions how).</para> specific hardware's documentation for instructions).</para>
</listitem> </listitem>
<listitem> <listitem>
<para>Instead of <command>fdisk</command>, you should use <command> <para>Instead of <command>fdisk</command>, you should use
gdisk</command> to partition your disks. You will need to have a <command>gdisk</command> to partition your disks. You will need to
separate partition for <filename>/boot</filename> with partition code have a separate partition for <filename>/boot</filename> with
EF00, and it should be formatted with a vfat filesystem.</para> partition code EF00, and it should be formatted as a
<literal>vfat</literal> filesystem.</para>
</listitem> </listitem>
<listitem> <listitem>
<para>You must set <option>boot.loader.gummiboot.enable</option> to <para>You must set <option>boot.loader.gummiboot.enable</option> to
@ -327,8 +328,8 @@ changes:
as well.</para> as well.</para>
</listitem> </listitem>
<listitem> <listitem>
<para>To see console messages during early boot, put <literal>"fbcon"</literal> <para>To see console messages during early boot, add <literal>"fbcon"</literal>
in your <option>boot.initrd.kernelModules</option></para> to your <option>boot.initrd.kernelModules</option>.</para>
</listitem> </listitem>
</itemizedlist> </itemizedlist>
</para> </para>

View file

@ -55,9 +55,12 @@
<!-- <xi:include href="userconfiguration.xml" /> --> <!-- <xi:include href="userconfiguration.xml" /> -->
<xi:include href="troubleshooting.xml" /> <xi:include href="troubleshooting.xml" />
<xi:include href="development.xml" /> <xi:include href="development.xml" />
<chapter xml:id="ch-options">
<xi:include href="release-notes.xml" />
<appendix xml:id="ch-options">
<title>List of options</title> <title>List of options</title>
<xi:include href="options-db.xml" /> <xi:include href="options-db.xml" />
</chapter> </appendix>
</book> </book>

View file

@ -0,0 +1,53 @@
<appendix xmlns="http://docbook.org/ns/docbook"
xml:id="ch-release-notes">
<title>Release notes</title>
<!--==================================================================-->
<section xml:id="sec-release-14.02">
<title>Release 14.02 (“Baboon”, 2014/02/??)</title>
<para>This is the second stable release branch of NixOS. The main
enhancements are the following:
<itemizedlist>
<listitem><para>Installation on UEFI systems is now supported. See
<xref linkend="sec-uefi-installation"/> for
details.</para></listitem>
<listitem><para>NixOS is now based on Glibc 2.18 and GCC
4.8.</para></listitem>
</itemizedlist>
</para>
<para>When upgrading from a previous release, please be aware of the
following incompatible changes:
<itemizedlist>
<listitem><para>The option
<option>boot.loader.grub.memtest86</option> has been renamed to
<option>boot.loader.grub.memtest86.enable</option>.</para></listitem>
</itemizedlist>
</para>
</section>
<!--==================================================================-->
<section xml:id="sec-release-13.10">
<title>Release 13.10 (“Aardvark”, 2013/10/31)</title>
<para>This is the first stable release branch of NixOS.</para>
</section>
</appendix>

View file

@ -369,7 +369,7 @@ in
home = "/root"; home = "/root";
shell = cfg.defaultUserShell; shell = cfg.defaultUserShell;
group = "root"; group = "root";
hashedPassword = config.security.initialRootPassword; hashedPassword = mkDefault config.security.initialRootPassword;
}; };
nobody = { nobody = {
uid = ids.uids.nobody; uid = ids.uids.nobody;

View file

@ -138,8 +138,7 @@ in
}; };
# Setting vesa, we don't get the nvidia driver, which can't work in arm. # Setting vesa, we don't get the nvidia driver, which can't work in arm.
services.xserver.videoDriver = "vesa"; hardware.opengl.videoDrivers = [ "vesa" ];
services.xserver.videoDrivers = [];
services.nixosManual.enable = false; services.nixosManual.enable = false;
# Include the firmware for various wireless cards. # Include the firmware for various wireless cards.

View file

@ -163,7 +163,7 @@ foreach my $path (glob "/sys/bus/pci/devices/*") {
pciCheck $path; pciCheck $path;
} }
push @attrs, "services.xserver.videoDrivers = [ \"$videoDriver\" ];" if $videoDriver; push @attrs, "hardware.opengl.videoDrivers = [ \"$videoDriver\" ];" if $videoDriver;
# Idem for USB devices. # Idem for USB devices.

View file

@ -15,5 +15,5 @@ with pkgs.lib;
# Add some more video drivers to give X11 a shot at working in # Add some more video drivers to give X11 a shot at working in
# VMware and QEMU. # VMware and QEMU.
services.xserver.videoDrivers = mkOverride 40 [ "virtualbox" "vmware" "cirrus" "vesa" ]; hardware.opengl.videoDrivers = mkOverride 40 [ "virtualbox" "vmware" "cirrus" "vesa" ];
} }

View file

@ -112,6 +112,8 @@
cgminer = 101; cgminer = 101;
munin = 102; munin = 102;
logcheck = 103; logcheck = 103;
nix-ssh = 104;
dictd = 105;
# When adding a uid, make sure it doesn't match an existing gid. # When adding a uid, make sure it doesn't match an existing gid.
@ -203,6 +205,7 @@
connman = 94; connman = 94;
munin = 95; munin = 95;
keys = 96; keys = 96;
dictd = 105;
# When adding a gid, make sure it doesn't match an existing uid. # When adding a gid, make sure it doesn't match an existing uid.

View file

@ -125,6 +125,7 @@
./services/misc/gpsd.nix ./services/misc/gpsd.nix
./services/misc/nix-daemon.nix ./services/misc/nix-daemon.nix
./services/misc/nix-gc.nix ./services/misc/nix-gc.nix
./services/misc/nix-ssh-serve.nix
./services/misc/nixos-manual.nix ./services/misc/nixos-manual.nix
./services/misc/rogue.nix ./services/misc/rogue.nix
./services/misc/svnserve.nix ./services/misc/svnserve.nix

View file

@ -28,34 +28,36 @@ in
echo "WARNING: bad ownership on $NIX_USER_PROFILE_DIR" >&2 echo "WARNING: bad ownership on $NIX_USER_PROFILE_DIR" >&2
fi fi
if ! test -L $HOME/.nix-profile; then if test -w $HOME; then
if test "$USER" != root; then if ! test -L $HOME/.nix-profile; then
ln -s $NIX_USER_PROFILE_DIR/profile $HOME/.nix-profile if test "$USER" != root; then
else ln -s $NIX_USER_PROFILE_DIR/profile $HOME/.nix-profile
# Root installs in the system-wide profile by default. else
ln -s /nix/var/nix/profiles/default $HOME/.nix-profile # Root installs in the system-wide profile by default.
fi ln -s /nix/var/nix/profiles/default $HOME/.nix-profile
fi fi
fi
# Subscribe the root user to the NixOS channel by default. # Subscribe the root user to the NixOS channel by default.
if [ "$USER" = root -a ! -e $HOME/.nix-channels ]; then if [ "$USER" = root -a ! -e $HOME/.nix-channels ]; then
echo "${config.system.defaultChannel} nixos" > $HOME/.nix-channels echo "${config.system.defaultChannel} nixos" > $HOME/.nix-channels
fi fi
# Create the per-user garbage collector roots directory. # Create the per-user garbage collector roots directory.
NIX_USER_GCROOTS_DIR=/nix/var/nix/gcroots/per-user/$USER NIX_USER_GCROOTS_DIR=/nix/var/nix/gcroots/per-user/$USER
mkdir -m 0755 -p $NIX_USER_GCROOTS_DIR mkdir -m 0755 -p $NIX_USER_GCROOTS_DIR
if test "$(stat --printf '%u' $NIX_USER_GCROOTS_DIR)" != "$(id -u)"; then if test "$(stat --printf '%u' $NIX_USER_GCROOTS_DIR)" != "$(id -u)"; then
echo "WARNING: bad ownership on $NIX_USER_GCROOTS_DIR" >&2 echo "WARNING: bad ownership on $NIX_USER_GCROOTS_DIR" >&2
fi fi
# Set up a default Nix expression from which to install stuff. # Set up a default Nix expression from which to install stuff.
if [ ! -e $HOME/.nix-defexpr -o -L $HOME/.nix-defexpr ]; then if [ ! -e $HOME/.nix-defexpr -o -L $HOME/.nix-defexpr ]; then
rm -f $HOME/.nix-defexpr rm -f $HOME/.nix-defexpr
mkdir $HOME/.nix-defexpr mkdir $HOME/.nix-defexpr
if [ "$USER" != root ]; then if [ "$USER" != root ]; then
ln -s /nix/var/nix/profiles/per-user/root/channels $HOME/.nix-defexpr/channels_root ln -s /nix/var/nix/profiles/per-user/root/channels $HOME/.nix-defexpr/channels_root
fi fi
fi
fi fi
''; '';

View file

@ -79,5 +79,10 @@ in {
preStart = "mkdir -p /var/spool"; preStart = "mkdir -p /var/spool";
serviceConfig.ExecStart = "${opensmtpd}/sbin/smtpd -d -f ${conf} ${args}"; serviceConfig.ExecStart = "${opensmtpd}/sbin/smtpd -d -f ${conf} ${args}";
}; };
environment.systemPackages = [ (pkgs.runCommand "opensmtpd-sendmail" {} ''
mkdir -p $out/bin
ln -s ${opensmtpd}/sbin/smtpctl $out/bin/sendmail
'') ];
}; };
} }

View file

@ -43,10 +43,12 @@ with pkgs.lib;
group = "dictd"; group = "dictd";
description = "DICT.org dictd server"; description = "DICT.org dictd server";
home = "${dictdb}/share/dictd"; home = "${dictdb}/share/dictd";
uid = config.ids.uids.dictd;
}; };
users.extraGroups = singleton users.extraGroups = singleton
{ name = "dictd"; { name = "dictd";
gid = config.ids.gids.dictd;
}; };
jobs.dictd = jobs.dictd =

View file

@ -286,8 +286,8 @@ in
systemd.services."nix-daemon" = systemd.services."nix-daemon" =
{ description = "Nix Daemon"; { description = "Nix Daemon";
path = [ nix pkgs.openssl pkgs.utillinux ] path = [ nix pkgs.openssl pkgs.utillinux pkgs.openssh ]
++ optionals cfg.distributedBuilds [ pkgs.openssh pkgs.gzip ]; ++ optionals cfg.distributedBuilds [ pkgs.gzip ];
environment = cfg.envVars // { CURL_CA_BUNDLE = "/etc/ssl/certs/ca-bundle.crt"; }; environment = cfg.envVars // { CURL_CA_BUNDLE = "/etc/ssl/certs/ca-bundle.crt"; };

View file

@ -0,0 +1,45 @@
{ config, lib, pkgs, ... }:
let
serveOnly = pkgs.writeScript "nix-store-serve" ''
#!${pkgs.stdenv.shell}
if [ "$SSH_ORIGINAL_COMMAND" != "nix-store --serve" ]; then
echo 'Error: You are only allowed to run `nix-store --serve'\'''!' >&2
exit 1
fi
exec /run/current-system/sw/bin/nix-store --serve
'';
inherit (lib) mkIf mkOption types;
in {
options = {
nix.sshServe = {
enable = mkOption {
description = "Whether to enable serving the nix store over ssh.";
default = false;
type = types.bool;
};
};
};
config = mkIf config.nix.sshServe.enable {
users.extraUsers.nix-ssh = {
description = "User for running nix-store --serve.";
uid = config.ids.uids.nix-ssh;
shell = pkgs.stdenv.shell;
};
services.openssh.enable = true;
services.openssh.extraConfig = ''
Match User nix-ssh
AllowAgentForwarding no
AllowTcpForwarding no
PermitTTY no
PermitTunnel no
X11Forwarding no
ForceCommand ${serveOnly}
Match All
'';
};
}

View file

@ -128,6 +128,17 @@ in
''; '';
}; };
networking.firewall.allowedTCPPortRanges = mkOption {
default = [];
example = [ { from = 8999; to = 9003; } ];
type = types.listOf (types.attrsOf types.int);
description =
''
A range of TCP ports on which incoming connections are
accepted.
'';
};
networking.firewall.allowedUDPPorts = mkOption { networking.firewall.allowedUDPPorts = mkOption {
default = []; default = [];
example = [ 53 ]; example = [ 53 ];
@ -138,6 +149,16 @@ in
''; '';
}; };
networking.firewall.allowedUDPPortRanges = mkOption {
default = [];
example = [ { from = 60000; to = 61000; } ];
type = types.listOf (types.attrsOf types.int);
description =
''
Range of open UDP ports.
'';
};
networking.firewall.allowPing = mkOption { networking.firewall.allowPing = mkOption {
default = false; default = false;
type = types.bool; type = types.bool;
@ -322,6 +343,15 @@ in
) cfg.allowedTCPPorts ) cfg.allowedTCPPorts
} }
# Accept connections to the allowed TCP port ranges.
${concatMapStrings (rangeAttr:
let range = toString rangeAttr.from + ":" + toString rangeAttr.to; in
''
ip46tables -A nixos-fw -p tcp --dport ${range} -j nixos-fw-accept
''
) cfg.allowedTCPPortRanges
}
# Accept packets on the allowed UDP ports. # Accept packets on the allowed UDP ports.
${concatMapStrings (port: ${concatMapStrings (port:
'' ''
@ -330,6 +360,15 @@ in
) cfg.allowedUDPPorts ) cfg.allowedUDPPorts
} }
# Accept packets on the allowed UDP port ranges.
${concatMapStrings (rangeAttr:
let range = toString rangeAttr.from + ":" + toString rangeAttr.to; in
''
ip46tables -A nixos-fw -p udp --dport ${range} -j nixos-fw-accept
''
) cfg.allowedUDPPortRanges
}
# Accept IPv4 multicast. Not a big security risk since # Accept IPv4 multicast. Not a big security risk since
# probably nobody is listening anyway. # probably nobody is listening anyway.
#iptables -A nixos-fw -d 224.0.0.0/4 -j nixos-fw-accept #iptables -A nixos-fw -d 224.0.0.0/4 -j nixos-fw-accept

View file

@ -28,6 +28,17 @@ with pkgs.lib;
''; '';
}; };
serialSpeed = mkOption {
type = types.listOf types.int;
default = [ 115200 57600 38400 9600 ];
example = [ 38400 9600 ];
description = ''
Bitrates to allow for agetty's listening on serial ports. Listing more
bitrates gives more interoperability but at the cost of long delays
for getting a sync on the line.
'';
};
}; };
}; };
@ -78,8 +89,9 @@ with pkgs.lib;
X-RestartIfChanged=false X-RestartIfChanged=false
''; '';
systemd.units."serial-getty@.service".text = systemd.units."serial-getty@.service".text = let
'' speeds = with pkgs.lib; concatStringsSep "," (map toString config.services.mingetty.serialSpeed);
in ''
[Unit] [Unit]
Description=Serial Getty on %I Description=Serial Getty on %I
Documentation=man:agetty(8) man:systemd-getty-generator(8) Documentation=man:agetty(8) man:systemd-getty-generator(8)
@ -95,7 +107,7 @@ with pkgs.lib;
[Service] [Service]
Environment=TERM=linux Environment=TERM=linux
Environment=LOCALE_ARCHIVE=/run/current-system/sw/lib/locale/locale-archive Environment=LOCALE_ARCHIVE=/run/current-system/sw/lib/locale/locale-archive
ExecStart=@${pkgs.utillinux}/sbin/agetty agetty --login-program ${pkgs.shadow}/bin/login %I 115200,57600,38400,9600 ExecStart=@${pkgs.utillinux}/sbin/agetty agetty --login-program ${pkgs.shadow}/bin/login %I ${speeds}
Type=idle Type=idle
Restart=always Restart=always
RestartSec=0 RestartSec=0

View file

@ -63,6 +63,7 @@ let
enablePHP = false; enablePHP = false;
phpOptions = ""; phpOptions = "";
options = {}; options = {};
documentRoot = null;
}; };
res = defaults // svcFunction { inherit config pkgs serverInfo php; }; res = defaults // svcFunction { inherit config pkgs serverInfo php; };
in res; in res;
@ -188,7 +189,11 @@ let
subservices = callSubservices serverInfo cfg.extraSubservices; subservices = callSubservices serverInfo cfg.extraSubservices;
documentRoot = if cfg.documentRoot != null then cfg.documentRoot else maybeDocumentRoot = fold (svc: acc:
if acc == null then svc.documentRoot else assert svc.documentRoot == null; acc
) null ([ cfg ] ++ subservices);
documentRoot = if maybeDocumentRoot != null then maybeDocumentRoot else
pkgs.runCommand "empty" {} "ensureDir $out"; pkgs.runCommand "empty" {} "ensureDir $out";
documentRootConf = '' documentRootConf = ''
@ -240,7 +245,7 @@ let
${robotsConf} ${robotsConf}
${if isMainServer || cfg.documentRoot != null then documentRootConf else ""} ${if isMainServer || maybeDocumentRoot != null then documentRootConf else ""}
${if cfg.enableUserDir then '' ${if cfg.enableUserDir then ''

View file

@ -126,7 +126,7 @@ in
</Directory> </Directory>
''} ''}
Alias ${config.urlPrefix} ${mediawikiRoot} ${optionalString (config.urlPrefix != "") "Alias ${config.urlPrefix} ${mediawikiRoot}"}
<Directory ${mediawikiRoot}> <Directory ${mediawikiRoot}>
Order allow,deny Order allow,deny
@ -137,8 +137,17 @@ in
${optionalString (config.articleUrlPrefix != "") '' ${optionalString (config.articleUrlPrefix != "") ''
Alias ${config.articleUrlPrefix} ${mediawikiRoot}/index.php Alias ${config.articleUrlPrefix} ${mediawikiRoot}/index.php
''} ''}
RewriteEngine On
RewriteCond ${mediawikiRoot}/$0 !-f
RewriteCond ${mediawikiRoot}/$0 !-d
RewriteRule ^(.*)$ ${mediawikiRoot}/index.php [L]
RewriteRule ^/*$ ${mediawikiRoot}/index.php [L] # For syntax hilighter: */
''; '';
documentRoot = if config.urlPrefix == "" then mediawikiRoot else null;
enablePHP = true; enablePHP = true;
options = { options = {

View file

@ -34,7 +34,7 @@ in {
export GTK_DATA_PREFIX=${config.system.path} export GTK_DATA_PREFIX=${config.system.path}
# find theme engines # find theme engines
export GTK_PATH=${config.system.path}/lib/gtk-3.0:{config.system.path}/lib/gtk-2.0 export GTK_PATH=${config.system.path}/lib/gtk-3.0:${config.system.path}/lib/gtk-2.0
export XDG_MENU_PREFIX=gnome export XDG_MENU_PREFIX=gnome
@ -43,9 +43,17 @@ in {
''; '';
}; };
environment.variables.GIO_EXTRA_MODULES = "${gnome3.dconf}/lib/gio/modules";
environment.systemPackages = environment.systemPackages =
[ gnome3.evince [ gnome3.evince
gnome3.eog gnome3.eog
gnome3.dconf
gnome3.vino
gnome3.epiphany
gnome3.baobab
gnome3.gucharmap
gnome3.nautilus
gnome3.yelp
pkgs.ibus pkgs.ibus
gnome3.gnome_shell gnome3.gnome_shell
gnome3.gnome_settings_daemon gnome3.gnome_settings_daemon
@ -56,4 +64,5 @@ in {
]; ];
}; };
} }

View file

@ -14,24 +14,37 @@ in {
services.redshift.latitude = mkOption { services.redshift.latitude = mkOption {
description = "Your current latitude"; description = "Your current latitude";
type = types.string; type = types.uniq types.string;
}; };
services.redshift.longitude = mkOption { services.redshift.longitude = mkOption {
description = "Your current longitude"; description = "Your current longitude";
type = types.string; type = types.uniq types.string;
}; };
services.redshift.temperature = { services.redshift.temperature = {
day = mkOption { day = mkOption {
description = "Colour temperature to use during day time"; description = "Colour temperature to use during day time";
default = 5500; default = 5500;
type = types.int; type = types.uniq types.int;
}; };
night = mkOption { night = mkOption {
description = "Colour temperature to use during night time"; description = "Colour temperature to use during night time";
default = 3700; default = 3700;
type = types.int; type = types.uniq types.int;
};
};
services.redshift.brightness = {
day = mkOption {
description = "Screen brightness to apply during the day (between 0.1 and 1.0)";
default = "1";
type = types.uniq types.string;
};
night = mkOption {
description = "Screen brightness to apply during the night (between 0.1 and 1.0)";
default = "1";
type = types.uniq types.string;
}; };
}; };
}; };
@ -41,10 +54,12 @@ in {
description = "Redshift colour temperature adjuster"; description = "Redshift colour temperature adjuster";
requires = [ "display-manager.service" ]; requires = [ "display-manager.service" ];
after = [ "display-manager.service" ]; after = [ "display-manager.service" ];
script = '' wantedBy = [ "graphical.target" ];
serviceConfig.ExecStart = ''
${pkgs.redshift}/bin/redshift \ ${pkgs.redshift}/bin/redshift \
-l ${cfg.latitude}:${cfg.longitude} \ -l ${cfg.latitude}:${cfg.longitude} \
-t ${toString cfg.temperature.day}:${toString cfg.temperature.night} -t ${toString cfg.temperature.day}:${toString cfg.temperature.night} \
-b ${toString cfg.brightness.day}:${toString cfg.brightness.night}
''; '';
environment = { DISPLAY = ":0"; }; environment = { DISPLAY = ":0"; };
serviceConfig.Restart = "always"; serviceConfig.Restart = "always";

View file

@ -27,7 +27,7 @@ in
config = { config = {
services.xserver.enable = true; services.xserver.enable = true;
services.xserver.videoDrivers = []; hardware.opengl.videoDrivers = [];
# Enable KDM. Any display manager will do as long as it supports XDMCP. # Enable KDM. Any display manager will do as long as it supports XDMCP.
services.xserver.displayManager.kdm.enable = true; services.xserver.displayManager.kdm.enable = true;

View file

@ -7,7 +7,6 @@ with pkgs.lib;
let let
memtest86 = pkgs.memtest86plus; memtest86 = pkgs.memtest86plus;
cfg = config.boot.loader.grub.memtest86; cfg = config.boot.loader.grub.memtest86;
params = concatStringsSep " " cfg.params;
in in
{ {
@ -82,7 +81,7 @@ in
if config.boot.loader.grub.version == 2 then if config.boot.loader.grub.version == 2 then
'' ''
menuentry "Memtest86+" { menuentry "Memtest86+" {
linux16 @bootRoot@/memtest.bin ${params} linux16 @bootRoot@/memtest.bin ${toString cfg.params}
} }
'' ''
else else

View file

@ -320,6 +320,10 @@ while read -u 3 mountPoint; do
echo -n "waiting for device $device to appear..." echo -n "waiting for device $device to appear..."
for try in $(seq 1 20); do for try in $(seq 1 20); do
sleep 1 sleep 1
# also re-try lvm activation now that new block devices might have appeared
lvm vgchange -ay
# and tell udev to create nodes for the new LVs
udevadm trigger --action=add
if test -e $device; then break; fi if test -e $device; then break; fi
echo -n "." echo -n "."
done done

View file

@ -164,5 +164,5 @@ with pkgs.lib;
# Prevent logging in as root without a password. This doesn't really matter, # Prevent logging in as root without a password. This doesn't really matter,
# since the only PAM services that allow logging in with a null # since the only PAM services that allow logging in with a null
# password are local ones that are inaccessible on EC2 machines. # password are local ones that are inaccessible on EC2 machines.
security.initialRootPassword = "!"; security.initialRootPassword = mkDefault "!";
} }

View file

@ -55,7 +55,7 @@ with pkgs.lib;
modules = modules =
let extraConfig = let extraConfig =
{ boot.isContainer = true; { boot.isContainer = true;
security.initialRootPassword = "!"; security.initialRootPassword = mkDefault "!";
networking.hostName = mkDefault name; networking.hostName = mkDefault name;
}; };
in [ extraConfig config.config ]; in [ extraConfig config.config ];
@ -134,4 +134,4 @@ with pkgs.lib;
}) config.systemd.containers; }) config.systemd.containers;
}; };
} }

View file

@ -114,7 +114,7 @@ with pkgs.lib;
# Prevent logging in as root without a password. This doesn't really matter, # Prevent logging in as root without a password. This doesn't really matter,
# since the only PAM services that allow logging in with a null # since the only PAM services that allow logging in with a null
# password are local ones that are inaccessible on Google Compute machines. # password are local ones that are inaccessible on Google Compute machines.
security.initialRootPassword = "!"; security.initialRootPassword = mkDefault "!";
# Configure default metadata hostnames # Configure default metadata hostnames
networking.extraHosts = '' networking.extraHosts = ''

View file

@ -386,7 +386,6 @@ in
# When building a regular system configuration, override whatever # When building a regular system configuration, override whatever
# video driver the host uses. # video driver the host uses.
services.xserver.videoDriver = mkVMOverride null;
hardware.opengl.videoDrivers = mkVMOverride [ "vesa" ]; hardware.opengl.videoDrivers = mkVMOverride [ "vesa" ];
services.xserver.defaultDepth = mkVMOverride 0; services.xserver.defaultDepth = mkVMOverride 0;
services.xserver.resolutions = mkVMOverride [ { x = 1024; y = 768; } ]; services.xserver.resolutions = mkVMOverride [ { x = 1024; y = 768; } ];

View file

@ -6,17 +6,16 @@
, perl, pkgconfig, python, serd, sord, sratom, suil }: , perl, pkgconfig, python, serd, sord, sratom, suil }:
let let
# Ardour 3.0 tag tag = "3.5.357";
rev = "79db9422";
in in
stdenv.mkDerivation { stdenv.mkDerivation rec {
name = "ardour-3.0"; name = "ardour-${tag}";
src = fetchgit { src = fetchgit {
url = git://git.ardour.org/ardour/ardour.git; url = git://git.ardour.org/ardour/ardour.git;
inherit rev; rev = "refs/tags/${tag}";
sha256 = "cdbe4ca6d4b639fcd66a3d1cf9c2816b4755655c9d81bdd2417263f413aa7096"; sha256 = "1e026fb9a6ad4179d52c4b578cc3861bdfd3629b9e7b7a7341d431c7d3692c42";
}; };
buildInputs = buildInputs =
@ -28,13 +27,16 @@ stdenv.mkDerivation {
]; ];
patchPhase = '' patchPhase = ''
printf '#include "ardour/svn_revision.h"\nnamespace ARDOUR { const char* svn_revision = \"${rev}\"; }\n' > libs/ardour/svn_revision.cc # The funny revision number is from `git describe rev`
printf '#include "libs/ardour/ardour/revision.h"\nnamespace ARDOUR { const char* revision = \"${tag}-gce4d125\"; }\n' > libs/ardour/revision.cc
# Note the different version number
sed -i '33i rev = \"3.5-357-gce4d125\"' wscript
sed 's|/usr/include/libintl.h|${glibc}/include/libintl.h|' -i wscript
sed -e 's|^#!/usr/bin/perl.*$|#!${perl}/bin/perl|g' -i tools/fmt-bindings sed -e 's|^#!/usr/bin/perl.*$|#!${perl}/bin/perl|g' -i tools/fmt-bindings
sed -e 's|^#!/usr/bin/env.*$|#!${perl}/bin/perl|g' -i tools/*.pl sed -e 's|^#!/usr/bin/env.*$|#!${perl}/bin/perl|g' -i tools/*.pl
sed 's|/usr/include/libintl.h|${glibc}/include/libintl.h|' -i wscript
''; '';
configurePhase = "python waf configure --prefix=$out"; configurePhase = "python waf configure --optimize --prefix=$out";
buildPhase = "python waf"; buildPhase = "python waf";
@ -43,7 +45,7 @@ stdenv.mkDerivation {
installPhase = '' installPhase = ''
python waf install python waf install
mkdir -pv $out/gtk2/engines mkdir -pv $out/gtk2/engines
mv $out/lib/ardour3/libclearlooks.so $out/gtk2/engines/ cp build/libs/clearlooks-newer/libclearlooks.so $out/gtk2/engines/
wrapProgram $out/bin/ardour3 --prefix GTK_PATH : $out/gtk2 wrapProgram $out/bin/ardour3 --prefix GTK_PATH : $out/gtk2
''; '';

View file

@ -43,6 +43,7 @@ stdenv.mkDerivation rec {
Also read "The importance of Paying Something" on their homepage, please! Also read "The importance of Paying Something" on their homepage, please!
''; '';
homepage = http://ardour.org/; homepage = http://ardour.org/;
branch = "2";
license = "GPLv2"; license = "GPLv2";
maintainers = [ stdenv.lib.maintainers.marcweber ]; maintainers = [ stdenv.lib.maintainers.marcweber ];
platforms = stdenv.lib.platforms.linux; platforms = stdenv.lib.platforms.linux;

View file

@ -1,19 +1,20 @@
{ stdenv, fetchurl, python, gettext, intltool, pkgconfig, jackaudio, libsndfile { stdenv, fetchurl, avahi, boost, fftw, gettext, glib, glibmm, gtk
, glib, gtk, glibmm, gtkmm, fftw, librdf, ladspaH, boost }: , gtkmm, intltool, jackaudio, ladspaH, librdf, libsndfile, lv2
, pkgconfig, python }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "guitarix-${version}"; name = "guitarix-${version}";
version = "0.25.2"; version = "0.28.3";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/guitarix/guitarix2-${version}.tar.bz2"; url = "mirror://sourceforge/guitarix/guitarix2-${version}.tar.bz2";
sha256 = "1wcg3yc2iy72hj6z9l88393f00by0iwhhn8xrc3q55p4rj0mnrga"; sha256 = "0ks5avylyicqfj9l1wf4gj62i8m6is2jmp0h11h5l2wbg3xiwxjd";
}; };
buildInputs = buildInputs = [
[ python gettext intltool pkgconfig jackaudio libsndfile glib gtk glibmm avahi boost fftw gettext glib glibmm gtk gtkmm intltool jackaudio
gtkmm fftw librdf ladspaH boost ladspaH librdf libsndfile lv2 pkgconfig python
]; ];
configurePhase = "python waf configure --prefix=$out"; configurePhase = "python waf configure --prefix=$out";
@ -21,7 +22,7 @@ stdenv.mkDerivation rec {
installPhase = "python waf install"; installPhase = "python waf install";
meta = { meta = with stdenv.lib; {
description = "A virtual guitar amplifier for Linux running with JACK"; description = "A virtual guitar amplifier for Linux running with JACK";
longDescription = '' longDescription = ''
guitarix is a virtual guitar amplifier for Linux running with guitarix is a virtual guitar amplifier for Linux running with
@ -46,8 +47,8 @@ stdenv.mkDerivation rec {
crazy sounds never heard before. crazy sounds never heard before.
''; '';
homepage = http://guitarix.sourceforge.net/; homepage = http://guitarix.sourceforge.net/;
license = stdenv.lib.licenses.gpl3Plus; license = licenses.gpl3Plus;
maintainers = [ stdenv.lib.maintainers.astsmtl ]; maintainers = with maintainers; [ astsmtl goibhniu ];
platforms = stdenv.lib.platforms.linux; platforms = platforms.linux;
}; };
} }

View file

@ -19,8 +19,6 @@ pythonPackages.buildPythonPackage rec {
propagatedBuildInputs = pythonPath; propagatedBuildInputs = pythonPath;
installCommand = "python setup.py install --prefix=$out";
meta = { meta = {
homepage = "https://github.com/aszlig/LastWatch"; homepage = "https://github.com/aszlig/LastWatch";
description = "An inotify-based last.fm audio scrobbler"; description = "An inotify-based last.fm audio scrobbler";

View file

@ -1,4 +1,4 @@
{ stdenv, fetchurl, ncurses, pkgconfig, alsaLib, flac, libmad, speex, ffmpeg_0_10, libvorbis, mpc, libsndfile, jackaudio, db4, libmodplug, timidity, libid3tag, libtool }: { stdenv, fetchurl, ncurses, pkgconfig, alsaLib, flac, libmad, speex, ffmpeg_0_10, libvorbis, mpc, libsndfile, jackaudio, db, libmodplug, timidity, libid3tag, libtool }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "moc-${version}"; name = "moc-${version}";
@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
configurePhase = "./configure prefix=$out"; configurePhase = "./configure prefix=$out";
buildInputs = [ ncurses pkgconfig alsaLib flac libmad speex ffmpeg_0_10 libvorbis mpc libsndfile jackaudio db4 libmodplug timidity libid3tag libtool ]; buildInputs = [ ncurses pkgconfig alsaLib flac libmad speex ffmpeg_0_10 libvorbis mpc libsndfile jackaudio db libmodplug timidity libid3tag libtool ];
meta = { meta = {
description = "MOC (music on console) is a console audio player for LINUX/UNIX designed to be powerful and easy to use."; description = "MOC (music on console) is a console audio player for LINUX/UNIX designed to be powerful and easy to use.";

View file

@ -1,4 +1,4 @@
{ stdenv, fetchurl, python, buildPythonPackage, mutagen, pygtk, pygobject { stdenv, fetchurl, python, buildPythonPackage, mutagen, pygtk, pygobject, intltool
, pythonDBus, gst_python, withGstPlugins ? false, gst_plugins_base ? null , pythonDBus, gst_python, withGstPlugins ? false, gst_plugins_base ? null
, gst_plugins_good ? null, gst_plugins_ugly ? null, gst_plugins_bad ? null }: , gst_plugins_good ? null, gst_plugins_ugly ? null, gst_plugins_bad ? null }:
@ -29,6 +29,11 @@ buildPythonPackage {
}) })
]; ];
preConfigure = ''
# TODO: for now don't a apply gdist overrides, will be needed for shipping icons, gtk, etc
sed -i /distclass/d setup.py
'';
sourceRoot = "quodlibet-${version}"; sourceRoot = "quodlibet-${version}";
postUnpack = '' postUnpack = ''
# the patch searches for plugins in directory ../plugins # the patch searches for plugins in directory ../plugins
@ -42,7 +47,7 @@ buildPythonPackage {
]; ];
propagatedBuildInputs = [ propagatedBuildInputs = [
mutagen pygtk pygobject pythonDBus gst_python mutagen pygtk pygobject pythonDBus gst_python intltool
]; ];
postInstall = stdenv.lib.optionalString withGstPlugins '' postInstall = stdenv.lib.optionalString withGstPlugins ''

View file

@ -2,27 +2,25 @@
{ stdenv, fetchurl, alsaLib, bzip2, fftw, jackaudio, libX11, liblo { stdenv, fetchurl, alsaLib, bzip2, fftw, jackaudio, libX11, liblo
, libmad, libogg, librdf, librdf_raptor, librdf_rasqal, libsamplerate , libmad, libogg, librdf, librdf_raptor, librdf_rasqal, libsamplerate
, libsndfile, makeWrapper, pkgconfig, pulseaudio, qt4, redland , libsndfile, pkgconfig, pulseaudio, qt5, redland
, rubberband, vampSDK , rubberband, serd, sord, vampSDK
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "sonic-visualiser-${version}"; name = "sonic-visualiser-${version}";
version = "1.9"; version = "2.3";
src = fetchurl { src = fetchurl {
url = "http://code.soundsoftware.ac.uk/attachments/download/194/${name}.tar.gz";
sha256 = "00igf7j6s8xfyxnlkbqma0yby9pknxqzy8cmh0aw95ix80cw56fq"; url = "http://code.soundsoftware.ac.uk/attachments/download/918/${name}.tar.gz";
sha256 = "1f06w2rin4r2mbi00bg3nmqdi2xdy9vq4jcmfanxzj3ld66ik40c";
}; };
patches = [(fetchurl {
url = http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/media-sound/sonic-visualiser/files/sonic-visualiser-1.9-gcc47.patch;
sha256 = "0dhh111crvjvhcjqp7j9jqnvs8zmd6xrcirmzqrrnca1h0vbpkay";
name = "gcc47.patch";
})];
buildInputs = buildInputs =
[ libsndfile qt4 fftw /* should be fftw3f ??*/ bzip2 librdf rubberband [ libsndfile qt5 fftw /* should be fftw3f ??*/ bzip2 librdf rubberband
libsamplerate vampSDK alsaLib librdf_raptor librdf_rasqal redland libsamplerate vampSDK alsaLib librdf_raptor librdf_rasqal redland
serd
sord
pkgconfig pkgconfig
# optional # optional
jackaudio jackaudio
@ -33,11 +31,10 @@ stdenv.mkDerivation rec {
# fishsound # fishsound
liblo liblo
libX11 libX11
makeWrapper
]; ];
buildPhase = '' buildPhase = ''
for i in sonic-visualiser svapp svcore svgui; for i in sonic-visualiser svapp svcore svgui;
do cd $i && qmake -makefile PREFIX=$out && cd ..; do cd $i && qmake -makefile PREFIX=$out && cd ..;
done done
make make
@ -45,19 +42,15 @@ stdenv.mkDerivation rec {
installPhase = '' installPhase = ''
mkdir -p $out/{bin,share/sonic-visualiser} mkdir -p $out/{bin,share/sonic-visualiser}
cp sonic-visualiser/sonic-visualiser $out/bin cp sonic-visualiser $out/bin/
cp -r sonic-visualiser/samples $out/share/sonic-visualiser/samples cp -r samples $out/share/sonic-visualiser/
wrapProgram $out/bin/sonic-visualiser --prefix LD_LIBRARY_PATH : ${libX11}/lib
''; '';
meta = { meta = with stdenv.lib; {
description = "View and analyse contents of music audio files"; description = "View and analyse contents of music audio files";
homepage = http://www.sonicvisualiser.org/; homepage = http://www.sonicvisualiser.org/;
license = "GPLv2"; license = licenses.gpl2Plus;
maintainers = maintainers = [ maintainers.goibhniu maintainers.marcweber ];
[ stdenv.lib.maintainers.marcweber platforms = platforms.linux;
stdenv.lib.maintainers.goibhniu
];
platforms = stdenv.lib.platforms.linux;
}; };
} }

View file

@ -9,12 +9,12 @@
assert stdenv ? glibc; assert stdenv ? glibc;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "1.2.3"; version = "1.4.1";
name = "darktable-${version}"; name = "darktable-${version}";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/darktable/darktable/1.2/darktable-${version}.tar.xz"; url = "mirror://sourceforge/darktable/darktable/1.2/darktable-${version}.tar.xz";
sha256 = "05kkkz13a5rhb246rq1nxv7h91pcvm15filvik8n8gn143h64sv8"; sha256 = "1pkixhiyyjx5wx4dlkvabga9glcx374f1ic2kxmzzdprfm6kkqfd";
}; };
buildInputs = buildInputs =

View file

@ -1,4 +1,4 @@
{ stdenv, fetchurl, x11, imlib2, libjpeg, libpng, giblib { stdenv, makeWrapper, fetchurl, x11, imlib2, libjpeg, libpng, giblib
, libXinerama, curl }: , libXinerama, curl }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -9,12 +9,16 @@ stdenv.mkDerivation rec {
sha256 = "1wlhfbglzc1jzsh80s4s1fawclgzyjy2105ffzx2mw9s0c1xds5l"; sha256 = "1wlhfbglzc1jzsh80s4s1fawclgzyjy2105ffzx2mw9s0c1xds5l";
}; };
buildInputs = [x11 imlib2 giblib libjpeg libpng libXinerama curl ]; buildInputs = [makeWrapper x11 imlib2 giblib libjpeg libpng libXinerama curl ];
preBuild = '' preBuild = ''
makeFlags="PREFIX=$out" makeFlags="PREFIX=$out"
''; '';
postInstall = ''
wrapProgram "$out/bin/feh" --prefix PATH : "${libjpeg}/bin"
'';
meta = { meta = {
description = "A light-weight image viewer"; description = "A light-weight image viewer";
homepage = https://derf.homelinux.org/projects/feh/; homepage = https://derf.homelinux.org/projects/feh/;

View file

@ -0,0 +1,12 @@
diff -ru freecad-0.13.1830.orig/CMakeLists.txt freecad-0.13.1830/CMakeLists.txt
--- freecad-0.13.1830.orig/CMakeLists.txt 2013-02-02 18:09:17.000000000 +0100
+++ freecad-0.13.1830/CMakeLists.txt 2014-02-15 10:16:00.939725500 +0100
@@ -321,7 +321,7 @@
foreach(it ${moc_files})
get_filename_component(it ${it} ABSOLUTE)
QT4_MAKE_OUTPUT_FILE(${it} moc_ cpp outfile)
- QT4_CREATE_MOC_COMMAND(${it} ${outfile} "${moc_flags}" "${moc_options}")
+ QT4_CREATE_MOC_COMMAND(${it} ${outfile} "${moc_flags}" "${moc_options}" "")
set(${outfiles} ${${outfiles}} ${outfile})
add_file_dependencies(${it} ${outfile})
endforeach(it)

View file

@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
--set COIN_GL_NO_CURRENT_CONTEXT_CHECK 1 --set COIN_GL_NO_CURRENT_CONTEXT_CHECK 1
''; '';
patches = [ ./pythonpath.patch ]; patches = [ ./pythonpath.patch ./cmake.patch ];
meta = { meta = {
homepage = http://free-cad.sourceforge.net/; homepage = http://free-cad.sourceforge.net/;

View file

@ -9,10 +9,6 @@ buildPythonPackage rec {
sha256 = "d214a1b6d99d1d1e83da5848a2cef181f6781e0990e93f7ebff5880b0c43f43c"; sha256 = "d214a1b6d99d1d1e83da5848a2cef181f6781e0990e93f7ebff5880b0c43f43c";
}; };
postInstall = ''
mv $out/lib/${python.libPrefix}/site-packages/*.egg/share $out
'';
doCheck = false; doCheck = false;
buildInputs = [ stdenv libX11 gettext ]; buildInputs = [ stdenv libX11 gettext ];

View file

@ -4,11 +4,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "oiio-${version}"; name = "oiio-${version}";
version = "1.1.12"; version = "1.3.12";
src = fetchurl { src = fetchurl {
url = "https://github.com/OpenImageIO/oiio/archive/Release-${version}.zip"; url = "https://github.com/OpenImageIO/oiio/archive/Release-${version}.zip";
sha256 = "0v84xna2vp83njxbizlxnindcp2i67xd89kgl9nic1hz6ywlylz6"; sha256 = "114jx4pcqhzdchzpxbwrfzqmnxr2bm8cw13g4akz1hg8pvr1dhsb";
}; };
buildInputs = [ buildInputs = [

View file

@ -2,11 +2,11 @@
, intltool, gettext, shared_mime_info, glib, gdk_pixbuf, perl}: , intltool, gettext, shared_mime_info, glib, gdk_pixbuf, perl}:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "viewnior-1.3"; name = "viewnior-1.4";
src = fetchurl { src = fetchurl {
url = "http://cloud.github.com/downloads/xsisqox/Viewnior/${name}.tar.gz"; url = "https://www.dropbox.com/s/zytq0suabesv933/${name}.tar.gz";
sha256 = "46c97c1a85361519b42fe008cfb8911e66f709f3a3a988c11047ab3726889f10"; sha256 = "0vv1133phgfzm92md6bbccmcvfiqb4kz28z1572c0qj971yz457a";
}; };
buildInputs = buildInputs =
@ -14,6 +14,10 @@ stdenv.mkDerivation rec {
shared_mime_info glib gdk_pixbuf perl shared_mime_info glib gdk_pixbuf perl
]; ];
preFixup = ''
rm $out/share/icons/*/icon-theme.cache
'';
meta = { meta = {
description = "Viewnior is a fast and simple image viewer for GNU/Linux"; description = "Viewnior is a fast and simple image viewer for GNU/Linux";
longDescription = longDescription =

View file

@ -1,4 +1,4 @@
{ fetchurl, stdenv, openssl, db4, boost, zlib, miniupnpc, qt4 }: { fetchurl, stdenv, openssl, db, boost, zlib, miniupnpc, qt4 }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "0.8.6"; version = "0.8.6";
@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
sha256 = "036xx06gyrfh65rpdapff3viz1f38vzkj7lnhil6fc0s7pjmsjbk"; sha256 = "036xx06gyrfh65rpdapff3viz1f38vzkj7lnhil6fc0s7pjmsjbk";
}; };
buildInputs = [ openssl db4 boost zlib miniupnpc qt4 ]; buildInputs = [ openssl db boost zlib miniupnpc qt4 ];
configurePhase = '' configurePhase = ''
cd src cd src

View file

@ -5,11 +5,11 @@
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "blender-2.67"; name = "blender-2.69";
src = fetchurl { src = fetchurl {
url = "http://download.blender.org/source/${name}.tar.gz"; url = "http://download.blender.org/source/${name}.tar.gz";
sha256 = "066lwrm85455gs187bxr3jhqidc2f6f0791b4216jkagbszd9a8l"; sha256 = "02ffakkbax1kl4ycakxq20yp9hmw1qj1qndjjqxnhhhdxifpyjn9";
}; };
buildInputs = [ buildInputs = [
@ -35,11 +35,14 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true; enableParallelBuilding = true;
meta = { meta = with stdenv.lib; {
description = "3D Creation/Animation/Publishing System"; description = "3D Creation/Animation/Publishing System";
homepage = http://www.blender.org; homepage = http://www.blender.org;
# They comment two licenses: GPLv2 and Blender License, but they # They comment two licenses: GPLv2 and Blender License, but they
# say: "We've decided to cancel the BL offering for an indefinite period." # say: "We've decided to cancel the BL offering for an indefinite period."
license = "GPLv2+"; license = licenses.gpl2Plus;
platforms = platforms.linux;
maintainers = [ maintainers.goibhniu ];
}; };
} }

View file

@ -1,4 +1,4 @@
{ fetchurl, stdenv, db4, boost, gmp, mpfr, miniupnpc, qt4, unzip }: { fetchurl, stdenv, db, boost, gmp, mpfr, miniupnpc, qt4, unzip }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "0.8.3-1"; version = "0.8.3-1";
@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
# I think that openssl and zlib are required, but come through other # I think that openssl and zlib are required, but come through other
# packages # packages
buildInputs = [ db4 boost gmp mpfr miniupnpc qt4 unzip ]; buildInputs = [ db boost gmp mpfr miniupnpc qt4 unzip ];
configurePhase = "qmake"; configurePhase = "qmake";

View file

@ -1,11 +1,11 @@
{ stdenv, fetchurl, pkgconfig, gtk, gettext }: { stdenv, fetchurl, pkgconfig, gtk, gettext }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "girara-0.1.9"; name = "girara-0.2.0";
src = fetchurl { src = fetchurl {
url = "http://pwmt.org/projects/girara/download/${name}.tar.gz"; url = "http://pwmt.org/projects/girara/download/${name}.tar.gz";
sha256 = "1kd20dalnpy07hajv0rkmkbsym4bpfxh0gby7j2mvkvl5qr3vx70"; sha256 = "0k8p5sgazqw7r78ssqh8bm2hn98xjml5w76l9awa66yq0k5m8jyi";
}; };
buildInputs = [ pkgconfig gtk gettext ]; buildInputs = [ pkgconfig gtk gettext ];

View file

@ -1,30 +0,0 @@
{ stdenv, fetchurl, python, pygtk, vte, gettext, intltool, makeWrapper }:
stdenv.mkDerivation rec {
name = "gnome-terminator-0.96";
src = fetchurl {
url = "https://launchpad.net/terminator/trunk/0.96/+download/terminator_0.96.tar.gz";
sha256 = "d708c783c36233fcafbd0139a91462478ae40f5cf696ef4acfcaf5891a843201";
};
buildInputs =
[ python pygtk vte gettext intltool makeWrapper
];
phases = "unpackPhase installPhase";
installPhase = ''
python setup.py --without-icon-cache install --prefix=$out
for i in $(cd $out/bin && ls); do
wrapProgram $out/bin/$i \
--prefix PYTHONPATH : "$(toPythonPath $out):$PYTHONPATH"
done
'';
meta = {
description = "Gnome terminal emulator with support for tiling and tabs";
homepage = http://www.tenshu.net/p/terminator.html;
license = "GPLv2";
};
}

View file

@ -1,4 +1,4 @@
{ stdenv, fetchurl, db4, gtk, bzip2 }: { stdenv, fetchurl, db, gtk, bzip2 }:
stdenv.mkDerivation { stdenv.mkDerivation {
name = "jigdo-0.7.3"; name = "jigdo-0.7.3";
@ -14,7 +14,7 @@ stdenv.mkDerivation {
sha256 = "0jnlzm9m2hjlnw0zs2fv456ml5r2jj2q1lncqbrgg52lq18f6fa3"; sha256 = "0jnlzm9m2hjlnw0zs2fv456ml5r2jj2q1lncqbrgg52lq18f6fa3";
}; };
buildInputs = [ db4 gtk bzip2 ]; buildInputs = [ db gtk bzip2 ];
configureFlags = "--without-libdb"; configureFlags = "--without-libdb";

View file

@ -1,14 +1,14 @@
{ stdenv, fetchurl, kdelibs, gettext }: { stdenv, fetchurl, kdelibs, gettext, xf86_input_wacom }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "wacomtablet-1.3.5"; name = "wacomtablet-2.0";
src = fetchurl { src = fetchurl {
url = "http://kde-apps.org/CONTENT/content-files/114856-wacomtablet-v1.3.5.tar.bz2"; url = "http://kde-apps.org/CONTENT/content-files/114856-wacomtablet-2.0.tar.bz2";
sha256 = "0dgsp3izx2v44f6j8mhxc6zybjn5sj9038w6b4v2fgix47fri0ja"; sha256 = "1vqdmkfl0awsjxl6p8bihz198hlc75d3zn7xwwryc674l76s25ax";
}; };
buildInputs = [ kdelibs ]; buildInputs = [ kdelibs xf86_input_wacom ];
nativeBuildInputs = [ gettext ]; nativeBuildInputs = [ gettext ];

View file

@ -1,12 +1,12 @@
{ stdenv, fetchurl, qt4, muparser, which}: { stdenv, fetchurl, qt4, muparser, which}:
stdenv.mkDerivation { stdenv.mkDerivation {
name = "librecad-1.0.2"; name = "librecad-1.0.4";
src = fetchurl { src = fetchurl {
url = https://github.com/LibreCAD/LibreCAD/tarball/v1.0.2; url = https://github.com/LibreCAD/LibreCAD/tarball/v1.0.4;
name = "librecad-1.0.2.tar.gz"; name = "librecad-1.0.4.tar.gz";
sha256 = "13ee7e401e4f5fbc68c2e017b7189bec788038f4f6e77f559861ceb8cfb1907d"; sha256 = "00nzbijw7pn1zkj4256da501xcm6rkcvycpa79y6dr2p6c43yc6m";
}; };
patchPhase = '' patchPhase = ''

View file

@ -0,0 +1,17 @@
{ stdenv, fetchurl, intltool, pkgconfig, libX11, gtk }:
stdenv.mkDerivation rec {
name = "lxappearance-0.5.5";
src = fetchurl{
url = "http://downloads.sourceforge.net/project/lxde/LXAppearance/${name}.tar.xz";
sha256 = "8cae82e6425ba8a0267774e4d10096df2d91b0597520058331684a5ece068b4c";
};
buildInputs = [ intltool libX11 pkgconfig gtk ];
meta = {
description = "A lightweight program for configuring the theme and fonts of gtk applications";
maintainers = [ stdenv.lib.maintainers.hinton ];
platforms = stdenv.lib.platforms.all;
license = stdenv.lib.licenses.gpl2;
homepage = "http://lxappearance.sourceforce.net/";
};
}

View file

@ -0,0 +1,16 @@
{ cabal, attoparsec, gtk, hflags, lens, pipes, stm }:
cabal.mkDerivation (self: {
pname = "nc-indicators";
version = "0.1";
sha256 = "19amwfcbwfxcj0gr7w0vgxl427l43q3l2s3n3zsxhqwkfblxmfy5";
isLibrary = false;
isExecutable = true;
buildDepends = [ attoparsec gtk hflags lens pipes stm ];
meta = {
homepage = "https://github.com/nilcons/nc-indicators/issues";
description = "CPU load and memory usage indicators for i3bar";
license = self.stdenv.lib.licenses.asl20;
platforms = self.ghc.meta.platforms;
};
})

View file

@ -0,0 +1,40 @@
{ stdenv, fetchurl, python, pygtk, notify, keybinder, vte, gettext, intltool
, makeWrapper
}:
stdenv.mkDerivation rec {
name = "terminator-${version}";
version = "0.97";
src = fetchurl {
url = "https://launchpad.net/terminator/trunk/${version}/+download/${name}.tar.gz";
sha256 = "1xykpx10g2zssx0ss6351ca6vmmma7zwxxhjz0fg28ps4dq88cci";
};
buildInputs = [
python pygtk notify keybinder vte gettext intltool makeWrapper
];
installPhase = ''
python setup.py --without-icon-cache install --prefix="$out"
for file in "$out"/bin/*; do
wrapProgram "$file" \
--prefix PYTHONPATH : "$(toPythonPath $out):$PYTHONPATH"
done
'';
meta = with stdenv.lib; {
description = "Terminal emulator with support for tiling and tabs";
longDescription = ''
The goal of this project is to produce a useful tool for arranging
terminals. It is inspired by programs such as gnome-multi-term,
quadkonsole, etc. in that the main focus is arranging terminals in grids
(tabs is the most common default method, which Terminator also supports).
'';
homepage = http://gnometerminator.blogspot.no/p/introduction.html;
license = licenses.gpl2;
maintainers = [ maintainers.bjornfor ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,29 @@
{ fetchurl, stdenv, fetchgit, qt4, pkgconfig, boost, dbus }:
stdenv.mkDerivation rec {
rev = "9f52882688ba03d7aaab2e3fd83cb05cfbf1a374";
name = "twmn-${rev}";
src = fetchgit {
inherit rev;
url = "https://github.com/sboli/twmn.git";
sha256 = "1jd2y0ydcpjdmjbx77lw35710sqfwbgyrnpv66mi3gwvrbyiwpf3";
};
buildInputs = [ qt4 pkgconfig boost ];
propagatedBuildInputs = [ dbus ];
configurePhase = "qmake";
installPhase = ''
mkdir -p "$out/bin"
cp bin/* "$out/bin"
'';
meta = {
description = "A notification system for tiling window managers";
homepage = "https://github.com/sboli/twmn";
platforms = with stdenv.lib.platforms; linux;
maintainers = [ stdenv.lib.maintainers.matejc ];
};
}

View file

@ -1,12 +1,12 @@
{ stdenv, fetchurl, pkgconfig, gtk, girara, gettext, docutils, file, makeWrapper }: { stdenv, fetchurl, pkgconfig, gtk, girara, gettext, docutils, file, makeWrapper, zathura_icon }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "0.2.6"; version = "0.2.7";
name = "zathura-core-${version}"; name = "zathura-core-${version}";
src = fetchurl { src = fetchurl {
url = "http://pwmt.org/projects/zathura/download/zathura-${version}.tar.gz"; url = "http://pwmt.org/projects/zathura/download/zathura-${version}.tar.gz";
sha1 = "d84878388969d523027a1661f49fd29638bd460b"; sha256 = "ef43be7705612937d095bfbe719a03503bf7e45493ea9409cb43a45cf96f0daf";
}; };
buildInputs = [ pkgconfig file gtk girara gettext makeWrapper ]; buildInputs = [ pkgconfig file gtk girara gettext makeWrapper ];
@ -21,7 +21,12 @@ stdenv.mkDerivation rec {
makeFlags = [ "PREFIX=$(out)" "RSTTOMAN=${docutils}/bin/rst2man.py" "VERBOSE=1" ]; makeFlags = [ "PREFIX=$(out)" "RSTTOMAN=${docutils}/bin/rst2man.py" "VERBOSE=1" ];
postInstall = '' postInstall = ''
wrapProgram "$out/bin/zathura" --prefix PATH ":" "${file}/bin" wrapProgram "$out/bin/zathura" \
--prefix PATH ":" "${file}/bin" \
--prefix XDG_CONFIG_DIRS ":" "$out/etc"
mkdir -pv $out/etc
echo "set window-icon ${zathura_icon}" > $out/etc/zathurarc
''; '';
meta = { meta = {

View file

@ -3,8 +3,11 @@
rec { rec {
inherit (pkgs) stdenv; inherit (pkgs) stdenv;
icon = ./icon.xpm;
zathura_core = callPackage ./core { zathura_core = callPackage ./core {
gtk = pkgs.gtk3; gtk = pkgs.gtk3;
zathura_icon = icon;
}; };
zathura_pdf_poppler = callPackage ./pdf-poppler { }; zathura_pdf_poppler = callPackage ./pdf-poppler { };
@ -19,7 +22,7 @@ rec {
zathuraWrapper = stdenv.mkDerivation { zathuraWrapper = stdenv.mkDerivation {
inherit zathura_core; inherit zathura_core icon;
name = "zathura-${zathura_core.version}"; name = "zathura-${zathura_core.version}";
@ -29,8 +32,6 @@ rec {
zathura_ps zathura_ps
]; ];
icon = ./icon.xpm;
builder = ./builder.sh; builder = ./builder.sh;
preferLocalBuild = true; preferLocalBuild = true;

View file

@ -1,12 +1,12 @@
{ stdenv, fetchurl, pkgconfig, zathura_core, girara, poppler, gettext }: { stdenv, fetchurl, pkgconfig, zathura_core, girara, poppler, gettext }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "0.2.4"; version = "0.2.5";
name = "zathura-pdf-poppler-${version}"; name = "zathura-pdf-poppler-${version}";
src = fetchurl { src = fetchurl {
url = "http://pwmt.org/projects/zathura/plugins/download/${name}.tar.gz"; url = "http://pwmt.org/projects/zathura/plugins/download/${name}.tar.gz";
sha256 = "1x1n21naixb87g1knznjfjfibazzwbn1cv7d42kxgwlnf1p1wbzm"; sha256 = "1b0chsds8iwjm4g629p6a67nb6wgra65pw2vvngd7g35dmcjgcv0";
}; };
buildInputs = [ pkgconfig poppler gettext zathura_core girara ]; buildInputs = [ pkgconfig poppler gettext zathura_core girara ];

View file

@ -1,18 +1,18 @@
# This file is autogenerated from update.sh in the same directory. # This file is autogenerated from update.sh in the same directory.
{ {
dev = { dev = {
version = "34.0.1809.0"; version = "34.0.1847.3";
url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-34.0.1809.0.tar.xz"; url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-34.0.1847.3.tar.xz";
sha256 = "0hyqqqq2hzbzk325pk9bc70lsh0al2nqf1mlahybp5vigy5jzy88"; sha256 = "1jm9cr1qqfqd82fy3f1q4d0qg94vsrzyq8dbn4hrxyzqbjc4sclg";
}; };
beta = { beta = {
version = "33.0.1750.46"; version = "33.0.1750.117";
url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-33.0.1750.46.tar.xz"; url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-33.0.1750.117.tar.xz";
sha256 = "04n43c4vn8i7qhlybqb19c2c8kri8nc1wpa2l83vin4sqxkq519h"; sha256 = "0nyaqrxz8kcnppcya68qpr47fw4d959p4l63kqzvd9ifdqfgk18f";
}; };
stable = { stable = {
version = "32.0.1700.107"; version = "33.0.1750.117";
url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-32.0.1700.107.tar.xz"; url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-33.0.1750.117.tar.xz";
sha256 = "1bf1gbjf4r9nf3xdn7zgq0ny1ihak21ka4rkkiadxsg8aq9vdsqz"; sha256 = "0nyaqrxz8kcnppcya68qpr47fw4d959p4l63kqzvd9ifdqfgk18f";
}; };
} }

View file

@ -17,9 +17,9 @@ assert stdenv.gcc ? libc && stdenv.gcc.libc != null;
rec { rec {
firefoxVersion = "27.0"; firefoxVersion = "27.0.1";
xulVersion = "27.0"; # this attribute is used by other packages xulVersion = "27.0.1"; # this attribute is used by other packages
src = fetchurl { src = fetchurl {
@ -29,7 +29,7 @@ rec {
# Fall back to this url for versions not available at releases.mozilla.org. # Fall back to this url for versions not available at releases.mozilla.org.
"http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${firefoxVersion}/source/firefox-${firefoxVersion}.source.tar.bz2" "http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${firefoxVersion}/source/firefox-${firefoxVersion}.source.tar.bz2"
]; ];
sha1 = "ec2031385237e30be829817ac79caa8e80cc2a14"; sha256 = "13qd53yf8dn9m03p4x5ml9h3mys60nba5nz82lcvaq7ycp1pl1bn";
}; };
commonConfigureFlags = commonConfigureFlags =
@ -82,7 +82,7 @@ rec {
"--disable-javaxpcom" "--disable-javaxpcom"
] ++ commonConfigureFlags; ] ++ commonConfigureFlags;
enableParallelBuilding = true; #enableParallelBuilding = true; # cf. https://github.com/NixOS/nixpkgs/pull/1699#issuecomment-35196282
preConfigure = preConfigure =
'' ''

View file

@ -8,12 +8,12 @@
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "2.5"; version = "2.8";
name = "links2-${version}"; name = "links2-${version}";
src = fetchurl { src = fetchurl {
url = "${meta.homepage}/download/links-${version}.tar.bz2"; url = "${meta.homepage}/download/links-${version}.tar.bz2";
sha256 = "1wlmj8s6bxgznh0pnawihyvhffzryciz3lkagcxhf7fp64zz5izm"; sha256 = "15h07498z52jfdahzgvkphg1f7qvxnpbyfn2xmsls0d2dwwdll3r";
}; };
buildInputs = buildInputs =

View file

@ -36,7 +36,7 @@
let let
# -> http://get.adobe.com/flashplayer/ # -> http://get.adobe.com/flashplayer/
version = "11.2.202.336"; version = "11.2.202.341";
src = src =
if stdenv.system == "x86_64-linux" then if stdenv.system == "x86_64-linux" then
@ -47,7 +47,7 @@ let
else rec { else rec {
inherit version; inherit version;
url = "http://fpdownload.macromedia.com/get/flashplayer/pdc/${version}/install_flash_player_11_linux.x86_64.tar.gz"; url = "http://fpdownload.macromedia.com/get/flashplayer/pdc/${version}/install_flash_player_11_linux.x86_64.tar.gz";
sha256 = "1wri6y5vllgs452dfklv23k7bp5daajnaqblkn5cb2gl28l5xcni"; sha256 = "0d1ic70awdig0v699svmq8mmnil8xmmwsap30sgi0r94saxmq49j";
} }
else if stdenv.system == "i686-linux" then else if stdenv.system == "i686-linux" then
if debug then { if debug then {
@ -58,7 +58,7 @@ let
} else rec { } else rec {
inherit version; inherit version;
url = "http://fpdownload.macromedia.com/get/flashplayer/pdc/${version}/install_flash_player_11_linux.i386.tar.gz"; url = "http://fpdownload.macromedia.com/get/flashplayer/pdc/${version}/install_flash_player_11_linux.i386.tar.gz";
sha256 = "0mjxjbj75r74gqpmqzqa6vlrk2wv7r358wcqbmg132bhv8kaph85"; sha256 = "0bfz1id4035jnkwy4xm0dj8l9lygrrzqdbf8dgc9pcy8c63d1hac";
} }
else throw "Flash Player is not supported on this platform"; else throw "Flash Player is not supported on this platform";

View file

@ -47,18 +47,18 @@ stdenv.mkDerivation rec {
name = "google-talk-plugin-${version}"; name = "google-talk-plugin-${version}";
# Use the following to determine the current upstream version: # Use the following to determine the current upstream version:
# curl -s http://dl.google.com/linux/talkplugin/deb/dists/stable/main/binary-amd64/Packages | sed -nr 's/^Version: *([^ ]+)-1$/\1/p' # curl -s http://dl.google.com/linux/talkplugin/deb/dists/stable/main/binary-amd64/Packages | sed -nr 's/^Version: *([^ ]+)-1$/\1/p'
version = "4.2.1.0"; version = "5.1.4.0";
src = src =
if stdenv.system == "x86_64-linux" then if stdenv.system == "x86_64-linux" then
fetchurl { fetchurl {
url = "${baseURL}/google-talkplugin_${version}-1_amd64.deb"; url = "${baseURL}/google-talkplugin_${version}-1_amd64.deb";
sha256 = "1g7kpz2lzzz1gri5rd3isp7cfyls6gzwcw2kc8jgrgrixq9iixfd"; sha256 = "19x1ss6kx7w8833f40pg1mwqr6sygz4ij4a7r7h3flmk67zywj4c";
} }
else if stdenv.system == "i686-linux" then else if stdenv.system == "i686-linux" then
fetchurl { fetchurl {
url = "${baseURL}/google-talkplugin_${version}-1_i386.deb"; url = "${baseURL}/google-talkplugin_${version}-1_i386.deb";
sha256 = "1z0zbblzlky9nyifxmnl49v4zafpqp3l08b9v1486sinm35rf58r"; sha256 = "1jxcridpqx46sdy4bw381rvffn1z93s280vhihwbgmiwjq5h4g41";
} }
else throw "Google Talk does not support your platform."; else throw "Google Talk does not support your platform.";

View file

@ -0,0 +1,25 @@
{ fetchurl, stdenv, jre, glib, libXtst, gtk, makeWrapper }:
stdenv.mkDerivation rec {
name = "davmail-4.4.1";
src = fetchurl {
url = "http://downloads.sourceforge.net/project/davmail/davmail/4.4.1/davmail-linux-x86_64-4.4.1-2225.tgz";
sha256 = "66c7ae23c0242860cca1576e5fc29343431789a821f7623e420b91ba91e480a9";
};
buildInputs = [ makeWrapper ];
meta = {
description = "A Java application which presents a Microsoft Exchange server as local CALDAV, IMAP and SMTP servers";
maintainers = [ stdenv.lib.maintainers.hinton ];
platforms = stdenv.lib.platforms.all;
homepage = "http://davmail.sourceforce.net/";
license = stdenv.lib.licenses.gpl2;
};
installPhase = ''
mkdir -p $out/bin
cp ./* $out/bin/ -R
wrapProgram $out/bin/davmail.sh --prefix PATH : ${jre}/bin --prefix LD_LIBRARY_PATH : ${glib}/lib:${gtk}/lib:${libXtst}/lib
'';
}

View file

@ -2,7 +2,7 @@ x@{builderDefsPackage
, cyrus_sasl, gettext, openldap, ptlib, opal, GConf, libXv, rarian, intltool , cyrus_sasl, gettext, openldap, ptlib, opal, GConf, libXv, rarian, intltool
, perl, perlXMLParser, evolution_data_server, gnome_doc_utils, avahi , perl, perlXMLParser, evolution_data_server, gnome_doc_utils, avahi
, libsigcxx, gtk, dbus_glib, libnotify, libXext, xextproto, automake , libsigcxx, gtk, dbus_glib, libnotify, libXext, xextproto, automake
, autoconf, pkgconfig, libxml2, videoproto, unixODBC, db4, nspr, nss, zlib , autoconf, pkgconfig, libxml2, videoproto, unixODBC, db, nspr, nss, zlib
, libXrandr, randrproto, which, libxslt, libtasn1, gmp, nettle , libXrandr, randrproto, which, libxslt, libtasn1, gmp, nettle
, ...}: , ...}:
builderDefsPackage builderDefsPackage

View file

@ -0,0 +1,13 @@
diff -ru kadu-0.12.2.orig/plugins/jabber_protocol/3rdparty/CMakeLists.txt kadu-0.12.2/plugins/jabber_protocol/3rdparty/CMakeLists.txt
--- kadu-0.12.2.orig/plugins/jabber_protocol/3rdparty/CMakeLists.txt 2012-08-30 16:13:17.000000000 +0200
+++ kadu-0.12.2/plugins/jabber_protocol/3rdparty/CMakeLists.txt 2014-02-15 10:20:33.368716013 +0100
@@ -26,7 +26,7 @@
get_filename_component (_basename ${_current_MOC} NAME_WE)
set (_header ${_abs_FILE})
set (_moc ${_abs_PATH}/${_current_MOC})
- QT4_CREATE_MOC_COMMAND (${_header} ${_moc} "${_moc_INCS}" "")
+ QT4_CREATE_MOC_COMMAND (${_header} ${_moc} "${_moc_INCS}" "" "")
MACRO_ADD_FILE_DEPENDENCIES (${_abs_FILE} ${_moc})
endforeach (_current_MOC_INC)
endif (_match)
Only in kadu-0.12.2/plugins/jabber_protocol/3rdparty: CMakeLists.txt~

View file

@ -26,6 +26,7 @@ stdenv.mkDerivation {
sed -i -e '/mpd_mediaplayer/d' \ sed -i -e '/mpd_mediaplayer/d' \
-e '/encryption_ng/d' \ -e '/encryption_ng/d' \
-e '/encryption_ng_simlite/d' Plugins.cmake -e '/encryption_ng_simlite/d' Plugins.cmake
patch -p1 < ${./cmake.patch}
''; '';
NIX_LDFLAGS="-lX11"; NIX_LDFLAGS="-lX11";

View file

@ -19,6 +19,8 @@ stdenv.mkDerivation rec {
configureFlags = "--enable-call"; configureFlags = "--enable-call";
installFlags = "gsettingsschemadir=\${out}/share/telepathy/logger/glib-2.0/schemas/";
meta = { meta = {
description = "Logger service for Telepathy framework"; description = "Logger service for Telepathy framework";
homepage = http://telepathy.freedesktop.org/wiki/Logger ; homepage = http://telepathy.freedesktop.org/wiki/Logger ;

View file

@ -2,8 +2,8 @@
, libtoxcore, pkgconfig }: , libtoxcore, pkgconfig }:
let let
version = "da99d776df"; version = "b308e19e6b";
date = "20140203"; date = "20140224";
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "toxic-${date}-${version}"; name = "toxic-${date}-${version}";
@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
src = fetchurl { src = fetchurl {
url = "https://github.com/Tox/toxic/tarball/${version}"; url = "https://github.com/Tox/toxic/tarball/${version}";
name = "${name}.tar.gz"; name = "${name}.tar.gz";
sha256 = "0d97crkslyk7sgcsawnnwyzp31azp80yprpd6xqjcraxd442dfyj"; sha256 = "0fgkvnpy3dl2h378h796z9md0zg05b3174fgx17b919av6j9x4ma";
}; };
preConfigure = '' preConfigure = ''

View file

@ -2,17 +2,21 @@
stdenv.mkDerivation (rec { stdenv.mkDerivation (rec {
pname = "rdesktop"; pname = "rdesktop";
version = "1.7.1"; version = "1.8.1";
name = "${pname}-${version}"; name = "${pname}-${version}";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/${pname}/${name}.tar.gz"; url = "mirror://sourceforge/${pname}/${name}.tar.gz";
sha256 = "0yc4xz95w40m8ailpjgqp9h7bkc758vp0dlq4nj1pvr3xfnl7sni"; sha256 = "0il248cdsxvwjsl4bswf27ld9r1a7d48jf6bycr86kf3i55q7k3n";
}; };
buildInputs = [openssl libX11]; buildInputs = [openssl libX11];
configureFlags = [ "--with-openssl=${openssl}" ]; configureFlags = [
"--with-openssl=${openssl}"
"--disable-credssp"
"--disable-smartcard"
];
meta = { meta = {
description = "rdesktop is an open source client for Windows Terminal Services"; description = "rdesktop is an open source client for Windows Terminal Services";

View file

@ -1,4 +1,4 @@
{stdenv, fetchurl, openssl, pkgconfig { stdenv, fetchurl, openssl, pkgconfig
, withPerl ? false, perl , withPerl ? false, perl
, withPython ? false, python3 , withPython ? false, python3
, withTcl ? false, tcl , withTcl ? false, tcl
@ -7,10 +7,11 @@
with stdenv.lib; with stdenv.lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "znc-1.0"; name = "znc-1.2";
src = fetchurl { src = fetchurl {
url = "http://znc.in/releases/${name}.tar.gz"; url = "http://znc.in/releases/${name}.tar.gz";
sha256 = "0ah6890ngvj97kah3x7fd8yzi6dpdgrxw1b2skj2cyv98bd3jmd8"; sha256 = "07bh306wl5494sqsgz4a526wvyrylkc8vpnbr5pkxwjg90mcv8nr";
}; };
buildInputs = [ openssl pkgconfig ] buildInputs = [ openssl pkgconfig ]
@ -24,11 +25,11 @@ stdenv.mkDerivation rec {
+ optionalString withTcl "--enable-tcl --with-tcl=${tcl}/lib " + optionalString withTcl "--enable-tcl --with-tcl=${tcl}/lib "
+ optionalString withCyrus "--enable-cyrus "; + optionalString withCyrus "--enable-cyrus ";
meta = { meta = with stdenv.lib; {
description = "Advanced IRC bouncer"; description = "Advanced IRC bouncer";
homepage = http://wiki.znc.in/ZNC; homepage = http://wiki.znc.in/ZNC;
maintainers = [ stdenv.lib.maintainers.viric ]; maintainers = with maintainers; [ viric ];
license = "ASL2.0"; license = licenses.asl20;
platforms = stdenv.lib.platforms.unix; platforms = platforms.unix;
}; };
} }

View file

@ -1,7 +1,7 @@
{ fetchurl, stdenv, pkgconfig, libxml2, gconf, glib, gtk, libgnomeui, libofx { fetchurl, stdenv, pkgconfig, libxml2, gconf, glib, gtk, libgnomeui, libofx
, libgtkhtml, gtkhtml, libgnomeprint, goffice, enchant, gettext, libbonoboui , libgtkhtml, gtkhtml, libgnomeprint, goffice, enchant, gettext, libbonoboui
, intltool, perl, guile, slibGuile, swig, isocodes, bzip2, makeWrapper, libglade , intltool, perl, guile, slibGuile, swig, isocodes, bzip2, makeWrapper, libglade
, libgsf, libart_lgpl, perlPackages , libgsf, libart_lgpl, perlPackages, aqbanking, gwenhywfar
}: }:
/* If you experience GConf errors when running GnuCash on NixOS, see /* If you experience GConf errors when running GnuCash on NixOS, see
@ -21,10 +21,10 @@ stdenv.mkDerivation rec {
pkgconfig libxml2 gconf glib gtk libgnomeui libgtkhtml gtkhtml pkgconfig libxml2 gconf glib gtk libgnomeui libgtkhtml gtkhtml
libgnomeprint goffice enchant gettext intltool perl guile slibGuile libgnomeprint goffice enchant gettext intltool perl guile slibGuile
swig isocodes bzip2 makeWrapper libofx libglade libgsf libart_lgpl swig isocodes bzip2 makeWrapper libofx libglade libgsf libart_lgpl
perlPackages.DateManip perlPackages.FinanceQuote perlPackages.DateManip perlPackages.FinanceQuote aqbanking gwenhywfar
]; ];
configureFlags = "CFLAGS=-O3 CXXFLAGS=-O3 --disable-dbi --enable-ofx"; configureFlags = "CFLAGS=-O3 CXXFLAGS=-O3 --disable-dbi --enable-ofx --enable-aqbanking";
postInstall = '' postInstall = ''
# Auto-updaters don't make sense in Nix. # Auto-updaters don't make sense in Nix.

View file

@ -6,7 +6,7 @@
{ stdenv, fetchurl, pam, python3, tcsh, libxslt, perl, ArchiveZip { stdenv, fetchurl, pam, python3, tcsh, libxslt, perl, ArchiveZip
, CompressZlib, zlib, libjpeg, expat, pkgconfigUpstream, freetype, libwpd , CompressZlib, zlib, libjpeg, expat, pkgconfigUpstream, freetype, libwpd
, libxml2, db4, sablotron, curl, libXaw, fontconfig, libsndfile, neon , libxml2, db, sablotron, curl, libXaw, fontconfig, libsndfile, neon
, bison, flex, zip, unzip, gtk, libmspack, getopt, file, cairo, which , bison, flex, zip, unzip, gtk, libmspack, getopt, file, cairo, which
, icu, boost, jdk, ant, libXext, libX11, libXtst, libXi, cups , icu, boost, jdk, ant, libXext, libX11, libXtst, libXi, cups
, libXinerama, openssl, gperf, cppunit, GConf, ORBit2, poppler , libXinerama, openssl, gperf, cppunit, GConf, ORBit2, poppler
@ -248,7 +248,7 @@ stdenv.mkDerivation rec {
buildInputs = buildInputs =
[ ant ArchiveZip autoconf automake bison boost cairo clucene_core [ ant ArchiveZip autoconf automake bison boost cairo clucene_core
CompressZlib cppunit cups curl db4 dbus_glib expat file flex fontconfig CompressZlib cppunit cups curl db dbus_glib expat file flex fontconfig
freetype GConf getopt gnome_vfs gperf gst_plugins_base gstreamer gtk freetype GConf getopt gnome_vfs gperf gst_plugins_base gstreamer gtk
hunspell icu jdk kde4.kdelibs lcms libcdr libexttextcat unixODBC libjpeg hunspell icu jdk kde4.kdelibs lcms libcdr libexttextcat unixODBC libjpeg
libmspack librdf_redland librsvg libsndfile libvisio libwpd libwpg libX11 libmspack librdf_redland librsvg libsndfile libvisio libwpd libwpg libX11

View file

@ -65,7 +65,7 @@ stdenv.mkDerivation {
) )
''; '';
installPhase = ''make DESTDIR="$out" MKDIR_P="mkdir -p" install''; installPhase = ''make MKDIR_P="mkdir -p" install'';
enableParallelBuilding = true; enableParallelBuilding = true;

View file

@ -1,6 +1,6 @@
args : with args; args : with args;
if (! python ? db4Support) || (! python.db4Support) then if (! python ? dbSupport) || (! python.dbSupport) then
throw ''Python DB4 support is required for codeville.'' throw ''Python DB4 support is required for codeville.''
else else

View file

@ -15,8 +15,8 @@
cabal.mkDerivation (self: { cabal.mkDerivation (self: {
pname = "git-annex"; pname = "git-annex";
version = "5.20140210"; version = "5.20140221";
sha256 = "0l5fny743v27yv7spppms64qca0mizh776b6wv8wca0wmcbc6j88"; sha256 = "0z6awqbk6kagssx26ddixbrl381c1kmsmlgaqmx087g4rwp43wqb";
isLibrary = false; isLibrary = false;
isExecutable = true; isExecutable = true;
buildDepends = [ buildDepends = [

View file

@ -10,7 +10,7 @@
let let
version = "1.8.5.4"; version = "1.9.0";
svn = subversionClient.override { perlBindings = true; }; svn = subversionClient.override { perlBindings = true; };
@ -21,7 +21,7 @@ stdenv.mkDerivation {
src = fetchurl { src = fetchurl {
url = "http://git-core.googlecode.com/files/git-${version}.tar.gz"; url = "http://git-core.googlecode.com/files/git-${version}.tar.gz";
sha256 = "062z4j4hfhfdlvkxs2mzarsyvbqvfy4kv8j5h4c75ymb5yp8iklk"; sha256 = "10lq71vrg1zbqm923wb0p36ily6y5x057f2bryk4wqkdqgyrfc6y";
}; };
patches = [ ./docbook2texi.patch ./symlinks-in-bin.patch ]; patches = [ ./docbook2texi.patch ./symlinks-in-bin.patch ];
@ -66,7 +66,7 @@ stdenv.mkDerivation {
mkdir -p $out/etc/bash_completion.d mkdir -p $out/etc/bash_completion.d
ln -s $out/share/git/contrib/completion/git-completion.bash $out/etc/bash_completion.d/ ln -s $out/share/git/contrib/completion/git-completion.bash $out/etc/bash_completion.d/
# grep is a runtime dependence, need to patch so that it's found # grep is a runtime dependency, need to patch so that it's found
substituteInPlace $out/libexec/git-core/git-sh-setup \ substituteInPlace $out/libexec/git-core/git-sh-setup \
--replace ' grep' ' ${gnugrep}/bin/grep' \ --replace ' grep' ' ${gnugrep}/bin/grep' \
--replace ' egrep' ' ${gnugrep}/bin/egrep' --replace ' egrep' ' ${gnugrep}/bin/egrep'
@ -77,7 +77,7 @@ stdenv.mkDerivation {
-e 's| perl -e| ${perl}/bin/perl -e|g' \ -e 's| perl -e| ${perl}/bin/perl -e|g' \
$out/libexec/git-core/{git-am,git-submodule} $out/libexec/git-core/{git-am,git-submodule}
# gzip (and optionally bzip2, xz, zip) are a runtime dependencies for # gzip (and optionally bzip2, xz, zip) are runtime dependencies for
# gitweb.cgi, need to patch so that it's found # gitweb.cgi, need to patch so that it's found
sed -i -e "s|'compressor' => \['gzip'|'compressor' => ['${gzip}/bin/gzip'|" \ sed -i -e "s|'compressor' => \['gzip'|'compressor' => ['${gzip}/bin/gzip'|" \
$out/share/gitweb/gitweb.cgi $out/share/gitweb/gitweb.cgi

View file

@ -1,4 +1,4 @@
{ stdenv, fetchurl, gettext, apr, aprutil, subversion, db4, kdelibs, expat }: { stdenv, fetchurl, gettext, apr, aprutil, subversion, db, kdelibs, expat }:
# the homepage mentions this is the final release. # the homepage mentions this is the final release.
# from now on, kdesvn will be part of the official kde software distribution # from now on, kdesvn will be part of the official kde software distribution
@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
sed -i -e "s|/usr|${subversion}|g" src/svnqt/cmakemodules/FindSubversion.cmake sed -i -e "s|/usr|${subversion}|g" src/svnqt/cmakemodules/FindSubversion.cmake
''; '';
buildInputs = [ apr aprutil subversion db4 kdelibs expat ]; buildInputs = [ apr aprutil subversion db kdelibs expat ];
nativeBuildInputs = [ gettext ]; nativeBuildInputs = [ gettext ];

View file

@ -17,13 +17,13 @@ assert javahlBindings -> jdk != null && perl != null;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "1.8.5"; version = "1.8.8";
name = "subversion-${version}"; name = "subversion-${version}";
src = fetchurl { src = fetchurl {
url = "mirror://apache/subversion/${name}.tar.bz2"; url = "mirror://apache/subversion/${name}.tar.bz2";
sha256 = "0r3mxrrlr1l9s2nh829bf0qmrfaafkq3di6ndr10j76sxkqjnlpx"; sha256 = "1cqxwydjidyf59y4lgkxl7bra1sy28abqm2mi5971qjsv0f96s8m";
}; };
buildInputs = [ zlib apr aprutil sqlite ] buildInputs = [ zlib apr aprutil sqlite ]

View file

@ -1,29 +0,0 @@
{ stdenv, fetchurl, alsaLib, boost, cmake, gtkmm, libXau, libXdmcp
, libXv, libav, pixman, libpthreadstubs, pkgconfig
}:
stdenv.mkDerivation rec {
name = "dvswitch-${version}";
version = "0.8.3.6";
src = fetchurl {
url = "https://alioth.debian.org/frs/download.php/3615/${name}.tar.gz";
sha256 = "7bd196389f9913ae08e12a29e168d79324c508bb545eab114df77b0375cd87f0";
};
buildInputs = [
alsaLib boost cmake gtkmm libXau libXdmcp libXv libav
libpthreadstubs pixman pkgconfig
];
patchPhase = ''
sed -e "s@prefix /usr/local@prefix $out@" -i CMakeLists.txt
'';
meta = with stdenv.lib; {
description = "interactive live video mixer for DV streams";
homepage = "http://dvswitch.alioth.debian.org";
license = licenses.gpl2Plus;
maintainers = [ maintainers.goibhniu ];
};
}

View file

@ -40,10 +40,6 @@ buildPythonPackage rec {
plat/resources.py plat/resources.py
''; '';
installCommand = ''
python setup.py install --prefix= --root="$out"
'';
# Disabled for now, because it requires networking and even if we skip those # Disabled for now, because it requires networking and even if we skip those
# tests, the whole test run takes around 10-20 minutes. # tests, the whole test run takes around 10-20 minutes.
doCheck = false; doCheck = false;
@ -51,6 +47,12 @@ buildPythonPackage rec {
HOME="$TEMPDIR" LANG=en_US.UTF-8 python miro.real --unittest HOME="$TEMPDIR" LANG=en_US.UTF-8 python miro.real --unittest
''; '';
preInstall = ''
# see https://bitbucket.org/pypa/setuptools/issue/130/install_data-doesnt-respect-prefix
${python}/bin/${python.executable} setup.py install_data --root=$out
sed -i '/data_files=data_files/d' setup.py
'';
postInstall = '' postInstall = ''
mv "$out/bin/miro.real" "$out/bin/miro" mv "$out/bin/miro.real" "$out/bin/miro"
''; '';

View file

@ -10,11 +10,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "vlc-${version}"; name = "vlc-${version}";
version = "2.1.2"; version = "2.1.3";
src = fetchurl { src = fetchurl {
url = "http://download.videolan.org/pub/videolan/vlc/${version}/${name}.tar.xz"; url = "http://download.videolan.org/pub/videolan/vlc/${version}/${name}.tar.xz";
sha256 = "1i4fzjv2x8mzx0bg52mgh1rrlircmb81jr58z90blbmww4mq36r1"; sha256 = "04d1lr7lxrq2767rjy4j0wr3sirx5sf1s9wdl3p4x500r7z64dp0";
}; };
buildInputs = buildInputs =
@ -49,5 +49,6 @@ stdenv.mkDerivation rec {
description = "Cross-platform media player and streaming server"; description = "Cross-platform media player and streaming server";
homepage = http://www.videolan.org/vlc/; homepage = http://www.videolan.org/vlc/;
platforms = platforms.linux; platforms = platforms.linux;
license = licenses.lgpl21Plus;
}; };
} }

View file

@ -11,7 +11,7 @@ with stdenv.lib;
let let
version = "4.2.18"; # changes ./guest-additions as well version = "4.2.22"; # changes ./guest-additions as well
forEachModule = action: '' forEachModule = action: ''
for mod in \ for mod in \
@ -31,13 +31,13 @@ let
''; '';
# See https://github.com/NixOS/nixpkgs/issues/672 for details # See https://github.com/NixOS/nixpkgs/issues/672 for details
extpackRevision = "88780"; extpackRevision = "91556";
extensionPack = requireFile rec { extensionPack = requireFile rec {
name = "Oracle_VM_VirtualBox_Extension_Pack-${version}-${extpackRevision}.vbox-extpack"; name = "Oracle_VM_VirtualBox_Extension_Pack-${version}-${extpackRevision}.vbox-extpack";
# IMPORTANT: Hash must be base16 encoded because it's used as an input to # IMPORTANT: Hash must be base16 encoded because it's used as an input to
# VBoxExtPackHelperApp! # VBoxExtPackHelperApp!
# Tip: see http://dlc.sun.com.edgesuite.net/virtualbox/4.2.18/SHA256SUMS # Tip: see http://dlc.sun.com.edgesuite.net/virtualbox/4.2.22/SHA256SUMS
sha256 = "1d1737b59d0f30f5d42beeabaff168bdc0a75b8b28df685979be6173e5adbbba"; sha256 = "79c0da87451cab3868f64d48bf9a7fdd710786c05ed4b3070b008c3aa1ce4f7a";
message = '' message = ''
In order to use the extension pack, you need to comply with the VirtualBox Personal Use In order to use the extension pack, you need to comply with the VirtualBox Personal Use
and Evaluation License (PUEL) by downloading the related binaries from: and Evaluation License (PUEL) by downloading the related binaries from:
@ -56,7 +56,7 @@ in stdenv.mkDerivation {
src = fetchurl { src = fetchurl {
url = "http://download.virtualbox.org/virtualbox/${version}/VirtualBox-${version}.tar.bz2"; url = "http://download.virtualbox.org/virtualbox/${version}/VirtualBox-${version}.tar.bz2";
sha256 = "9dbddf393b029c549249f627d12040c1d257972bc09292969b8819a31ab78d74"; sha256 = "4a017ec5fa0e0cfa830ae6c2b9d680c9b108e5fb96348e1397a7d0ea051f8bc1";
}; };
buildInputs = buildInputs =

View file

@ -12,7 +12,7 @@ stdenv.mkDerivation {
src = fetchurl { src = fetchurl {
url = "http://download.virtualbox.org/virtualbox/${version}/VBoxGuestAdditions_${version}.iso"; url = "http://download.virtualbox.org/virtualbox/${version}/VBoxGuestAdditions_${version}.iso";
sha256 = "f11a7f13dfe7bf9f246fb877144bb467fe6deadcd876568ec79b6ccd3b59d767"; sha256 = "222e003d038b757cd761361bb5da33123e0f9574af246fb95eb558593c8c7c76";
}; };
KERN_DIR = "${kernel.dev}/lib/modules/*/build"; KERN_DIR = "${kernel.dev}/lib/modules/*/build";

View file

@ -1,36 +0,0 @@
Fix SDL fullscreen problems when the resolution changes:
https://groups.google.com/d/msg/wmii/nJBrSjrnnq8/ZEYWOWE5pj4J
diff -r ec4baab78314 dwm.c
--- a/dwm.c Mon Dec 19 15:38:30 2011 +0100
+++ b/dwm.c Sat Jan 14 12:35:50 2012 +0100
@@ -397,9 +397,10 @@
showhide(m->stack);
else for(m = mons; m; m = m->next)
showhide(m->stack);
- if(m)
+ if(m) {
arrangemon(m);
- else for(m = mons; m; m = m->next)
+ restack(m);
+ } else for(m = mons; m; m = m->next)
arrangemon(m);
}
@@ -408,7 +409,6 @@
strncpy(m->ltsymbol, m->lt[m->sellt]->symbol, sizeof m->ltsymbol);
if(m->lt[m->sellt]->arrange)
m->lt[m->sellt]->arrange(m);
- restack(m);
}
void
@@ -1827,6 +1827,8 @@
.event_mask = ButtonPressMask|ExposureMask
};
for(m = mons; m; m = m->next) {
+ if (m->barwin)
+ continue;
m->barwin = XCreateWindow(dpy, root, m->wx, m->by, m->ww, bh, 0, DefaultDepth(dpy, screen),
CopyFromParent, DefaultVisual(dpy, screen),
CWOverrideRedirect|CWBackPixmap|CWEventMask, &wa);

View file

@ -16,7 +16,7 @@ stdenv.mkDerivation {
prePatch = ''sed -i "s@/usr/local@$out@" config.mk''; prePatch = ''sed -i "s@/usr/local@$out@" config.mk'';
# Allow users set their own list of patches # Allow users set their own list of patches
patches = [ ./confnotify-6.0.patch ] ++ patches; inherit patches;
buildPhase = " make "; buildPhase = " make ";

View file

@ -23,6 +23,8 @@
server admins start using the new version? server admins start using the new version?
*/ */
assert md5 != "" || sha256 != "";
stdenv.mkDerivation { stdenv.mkDerivation {
name = "git-export"; name = "git-export";
builder = ./builder.sh; builder = ./builder.sh;

View file

@ -66,6 +66,7 @@ in
showURLs ? false showURLs ? false
}: }:
assert builtins.isList urls;
assert urls != [] -> url == ""; assert urls != [] -> url == "";
assert url != "" -> urls == []; assert url != "" -> urls == [];

View file

@ -924,6 +924,32 @@ rec {
packages = commonFedoraPackages ++ [ "cronie" "util-linux" ]; packages = commonFedoraPackages ++ [ "cronie" "util-linux" ];
}; };
fedora17i386 = {
name = "fedora-17-i386";
fullName = "Fedora 17 (i386)";
packagesList = fetchurl {
url = mirror://fedora/linux/releases/17/Everything/i386/os/repodata/82dc1ea6d26e53a367dc6e7472113c4454c9a8ac7c98d4bfb11fd0b6f311450f-primary.xml.gz;
sha256 = "03s527rvdl0zn6zx963wmjlcjm247h8p4x3fviks6lvfsak1xp42";
};
urlPrefix = mirror://fedora/linux/releases/17/Everything/i386/os;
archs = ["noarch" "i386" "i586" "i686"];
packages = commonFedoraPackages ++ [ "cronie" "util-linux" ];
unifiedSystemDir = true;
};
fedora17x86_64 = {
name = "fedora-17-x86_64";
fullName = "Fedora 17 (x86_64)";
packagesList = fetchurl {
url = mirror://fedora/linux/releases/17/Everything/x86_64/os/repodata/7009de56f1a1c399930fa72094a310a40d38153c96d0b5af443914d3d6a7d811-primary.xml.gz;
sha256 = "04fqlzbd651r8jpvbl4n7hakh3d422ir88571y9rkhx1y5bdw2bh";
};
urlPrefix = mirror://fedora/linux/releases/17/Everything/x86_64/os;
archs = ["noarch" "x86_64"];
packages = commonFedoraPackages ++ [ "cronie" "util-linux" ];
unifiedSystemDir = true;
};
fedora18i386 = { fedora18i386 = {
name = "fedora-18-i386"; name = "fedora-18-i386";
fullName = "Fedora 18 (i386)"; fullName = "Fedora 18 (i386)";
@ -1505,22 +1531,22 @@ rec {
debian70x86_64 = debian7x86_64; debian70x86_64 = debian7x86_64;
debian7i386 = { debian7i386 = {
name = "debian-7.3-wheezy-i386"; name = "debian-7.4-wheezy-i386";
fullName = "Debian 7.3 Wheezy (i386)"; fullName = "Debian 7.4 Wheezy (i386)";
packagesList = fetchurl { packagesList = fetchurl {
url = mirror://debian/dists/wheezy/main/binary-i386/Packages.bz2; url = mirror://debian/dists/wheezy/main/binary-i386/Packages.bz2;
sha256 = "037637520ce371a50beb5446fd27a731f30b51bc362c2f4a5dcfce9c7e30ffb6"; sha256 = "9f19822c82e25cd149f82b0d16fdbc00d1080db7f34e41de456498dc7c54f2b4";
}; };
urlPrefix = mirror://debian; urlPrefix = mirror://debian;
packages = commonDebianPackages; packages = commonDebianPackages;
}; };
debian7x86_64 = { debian7x86_64 = {
name = "debian-7.3-wheezy-amd64"; name = "debian-7.4-wheezy-amd64";
fullName = "Debian 7.3 Wheezy (amd64)"; fullName = "Debian 7.4 Wheezy (amd64)";
packagesList = fetchurl { packagesList = fetchurl {
url = mirror://debian/dists/wheezy/main/binary-amd64/Packages.bz2; url = mirror://debian/dists/wheezy/main/binary-amd64/Packages.bz2;
sha256 = "c2ed55a2a263d482826c934b97ad910984fa5695ab1c480841741b828d0590a5"; sha256 = "160ee0917693bc2e8f69b233c220857f35a70d906540d99d2779def576daf5f7";
}; };
urlPrefix = mirror://debian; urlPrefix = mirror://debian;
packages = commonDebianPackages; packages = commonDebianPackages;
@ -1688,5 +1714,4 @@ rec {
}; };
}; };
} // import ./windows pkgs
}

View file

@ -0,0 +1,80 @@
{ stdenv, fetchurl, vmTools, writeScript, writeText, runCommand, makeInitrd
, python, perl, coreutils, dosfstools, gzip, mtools, netcat, openssh, qemu
, samba, socat, vde2, cdrkit, pathsFromGraph
}:
{ isoFile, productKey }:
with stdenv.lib;
let
controller = import ./controller {
inherit stdenv writeScript vmTools makeInitrd;
inherit samba vde2 openssh socat netcat coreutils gzip;
};
mkCygwinImage = import ./cygwin-iso {
inherit stdenv fetchurl runCommand python perl cdrkit pathsFromGraph;
};
installer = import ./install {
inherit controller mkCygwinImage;
inherit stdenv runCommand openssh qemu writeText dosfstools mtools;
};
in rec {
installedVM = installer {
inherit isoFile productKey;
};
runInVM = img: attrs: controller (attrs // {
inherit (installedVM) sshKey;
qemuArgs = attrs.qemuArgs or [] ++ [
"-boot order=c"
"-drive file=${img},index=0,media=disk"
];
});
runAndSuspend = let
drives = {
s = {
source = "nixstore";
target = "/nix/store";
};
x = {
source = "xchg";
target = "/tmp/xchg";
};
};
genDriveCmds = letter: { source, target }: [
"net use ${letter}: '\\\\192.168.0.2\\${source}' /persistent:yes"
"mkdir -p '${target}'"
"mount -o bind '/cygdrive/${letter}' '${target}'"
"echo '/cygdrive/${letter} ${target} none bind 0 0' >> /etc/fstab"
];
in runInVM "winvm.img" {
command = concatStringsSep " && " ([
"net config server /autodisconnect:-1"
] ++ concatLists (mapAttrsToList genDriveCmds drives));
suspendTo = "state.gz";
};
suspendedVM = stdenv.mkDerivation {
name = "cygwin-suspended-vm";
buildCommand = ''
${qemu}/bin/qemu-img create \
-b "${installedVM}/disk.img" \
-f qcow2 winvm.img
${runAndSuspend}
ensureDir "$out"
cp winvm.img "$out/disk.img"
cp state.gz "$out/state.gz"
'';
};
resumeAndRun = command: runInVM "${suspendedVM}/disk.img" {
resumeFrom = "${suspendedVM}/state.gz";
qemuArgs = singleton "-snapshot";
inherit command;
};
}

View file

@ -0,0 +1,229 @@
{ stdenv, writeScript, vmTools, makeInitrd
, samba, vde2, openssh, socat, netcat, coreutils, gzip
}:
{ sshKey
, qemuArgs ? []
, command ? "sync"
, suspendTo ? null
, resumeFrom ? null
, installMode ? false
}:
with stdenv.lib;
let
preInitScript = writeScript "preinit.sh" ''
#!${vmTools.initrdUtils}/bin/ash -e
export PATH=${vmTools.initrdUtils}/bin
mount -t proc none /proc
mount -t sysfs none /sys
for arg in $(cat /proc/cmdline); do
if [ "x''${arg#command=}" != "x$arg" ]; then
command="''${arg#command=}"
fi
done
for i in $(cat ${modulesClosure}/insmod-list); do
insmod $i
done
mkdir -p /dev /fs
mount -t tmpfs none /dev
mknod /dev/null c 1 3
mknod /dev/zero c 1 5
mknod /dev/random c 1 8
mknod /dev/urandom c 1 9
mknod /dev/tty c 5 0
ifconfig lo up
ifconfig eth0 up 192.168.0.2
mount -t tmpfs none /fs
mkdir -p /fs/nix/store /fs/xchg /fs/dev /fs/sys /fs/proc /fs/etc /fs/tmp
mount -o bind /dev /fs/dev
mount -t sysfs none /fs/sys
mount -t proc none /fs/proc
mount -t 9p \
-o trans=virtio,version=9p2000.L,msize=262144,cache=loose \
store /fs/nix/store
mount -t 9p \
-o trans=virtio,version=9p2000.L,msize=262144,cache=loose \
xchg /fs/xchg
echo root:x:0:0::/root:/bin/false > /fs/etc/passwd
set +e
chroot /fs $command $out
echo $? > /fs/xchg/in-vm-exit
poweroff -f
'';
initrd = makeInitrd {
contents = singleton {
object = preInitScript;
symlink = "/init";
};
};
shellEscape = x: "'${replaceChars ["'"] [("'\\'" + "'")] x}'";
loopForever = "while :; do ${coreutils}/bin/sleep 1; done";
initScript = writeScript "init.sh" (''
#!${stdenv.shell}
${coreutils}/bin/cp -L "${sshKey}" /ssh.key
${coreutils}/bin/chmod 600 /ssh.key
'' + (if installMode then ''
echo -n "Waiting for Windows installation to finish..."
while ! ${netcat}/bin/netcat -z 192.168.0.1 22; do
echo -n .
# Print a dot every 10 seconds only to shorten line length.
${coreutils}/bin/sleep 10
done
echo " success."
# Loop forever, because this VM is going to be killed.
${loopForever}
'' else ''
${coreutils}/bin/mkdir -p /etc/samba /etc/samba/private \
/var/lib/samba /var/log /var/run
${coreutils}/bin/cat > /etc/samba/smb.conf <<CONFIG
[global]
security = user
map to guest = Bad User
guest account = root
workgroup = cygwin
netbios name = controller
server string = %h
log level = 1
max log size = 1000
log file = /var/log/samba.log
[nixstore]
path = /nix/store
writable = yes
guest ok = yes
[xchg]
path = /xchg
writable = yes
guest ok = yes
CONFIG
${samba}/sbin/nmbd -D
${samba}/sbin/smbd -D
echo -n "Waiting for Windows VM to become available..."
while ! ${netcat}/bin/netcat -z 192.168.0.1 22; do
echo -n .
${coreutils}/bin/sleep 1
done
echo " success."
${openssh}/bin/ssh \
-o UserKnownHostsFile=/dev/null \
-o StrictHostKeyChecking=no \
-i /ssh.key \
-l Administrator \
192.168.0.1 -- ${shellEscape command}
'') + optionalString (suspendTo != null) ''
${coreutils}/bin/touch /xchg/suspend_now
${loopForever}
'');
kernelAppend = concatStringsSep " " [
"panic=1"
"loglevel=4"
"console=tty1"
"console=ttyS0"
"command=${initScript}"
];
controllerQemuArgs = concatStringsSep " " (maybeKvm64 ++ [
"-nographic"
"-no-reboot"
"-virtfs local,path=/nix/store,security_model=none,mount_tag=store"
"-virtfs local,path=$XCHG_DIR,security_model=none,mount_tag=xchg"
"-kernel ${modulesClosure.kernel}/bzImage"
"-initrd ${initrd}/initrd"
"-append \"${kernelAppend}\""
"-net nic,vlan=0,macaddr=52:54:00:12:01:02,model=virtio"
"-net vde,vlan=0,sock=$QEMU_VDE_SOCKET"
]);
maybeKvm64 = optional (stdenv.system == "x86_64-linux") "-cpu kvm64";
cygwinQemuArgs = concatStringsSep " " (maybeKvm64 ++ [
"-monitor unix:$MONITOR_SOCKET,server,nowait"
"-nographic"
"-net nic,vlan=0,macaddr=52:54:00:12:01:01"
"-net vde,vlan=0,sock=$QEMU_VDE_SOCKET"
"-rtc base=2010-01-01,clock=vm"
] ++ qemuArgs ++ optionals (resumeFrom != null) [
"-incoming 'exec: ${gzip}/bin/gzip -c -d \"${resumeFrom}\"'"
]);
modulesClosure = overrideDerivation vmTools.modulesClosure (o: {
rootModules = o.rootModules ++ singleton "virtio_net";
});
preVM = ''
(set; declare -p) > saved-env
XCHG_DIR="$(${coreutils}/bin/mktemp -d nix-vm.XXXXXXXXXX --tmpdir)"
${coreutils}/bin/mv saved-env "$XCHG_DIR/"
eval "$preVM"
QEMU_VDE_SOCKET="$(pwd)/vde.ctl"
MONITOR_SOCKET="$(pwd)/monitor"
${vde2}/bin/vde_switch -s "$QEMU_VDE_SOCKET" &
echo 'alive?' | ${socat}/bin/socat - \
UNIX-CONNECT:$QEMU_VDE_SOCKET/ctl,retry=20
'';
bgBoth = optionalString (suspendTo != null) " &";
vmExec = if installMode then ''
${vmTools.qemuProg} ${controllerQemuArgs} &
${vmTools.qemuProg} ${cygwinQemuArgs}${bgBoth}
'' else ''
${vmTools.qemuProg} ${cygwinQemuArgs} &
${vmTools.qemuProg} ${controllerQemuArgs}${bgBoth}
'';
postVM = if suspendTo != null then ''
while ! test -e "$XCHG_DIR/suspend_now"; do sleep 1; done
${socat}/bin/socat - UNIX-CONNECT:$MONITOR_SOCKET <<CMD
stop
migrate_set_speed 4095m
migrate "exec:${gzip}/bin/gzip -c > '${suspendTo}'"
quit
CMD
wait %-
eval "$postVM"
exit 0
'' else if installMode then ''
eval "$postVM"
exit 0
'' else ''
if ! test -e "$XCHG_DIR/in-vm-exit"; then
echo "Virtual machine didn't produce an exit code."
exit 1
fi
eval "$postVM"
exit $(< "$XCHG_DIR/in-vm-exit")
'';
in writeScript "run-cygwin-vm.sh" ''
#!${stdenv.shell} -e
${preVM}
${vmExec}
${postVM}
''

View file

@ -0,0 +1,46 @@
{ stdenv, fetchurl, runCommand, python, perl, cdrkit, pathsFromGraph }:
{ packages ? []
, mirror ? "http://ftp.gwdg.de/pub/linux/sources.redhat.com/cygwin"
, extraContents ? []
}:
let
cygPkgList = if stdenv.is64bit then fetchurl {
url = "${mirror}/x86_64/setup.ini";
sha256 = "142f8zyfwgi6s2djxv3z5wn0ysl94pxwa79z8rjfqz4kvnpgz120";
} else fetchurl {
url = "${mirror}/x86/setup.ini";
sha256 = "1v596lln2iip5h7wxjnig5rflzvqa21zzd2iyhx07zs28q5h76i9";
};
makeCygwinClosure = { packages, packageList }: let
expr = import (runCommand "cygwin.nix" { buildInputs = [ python ]; } ''
python ${./mkclosure.py} "${packages}" ${toString packageList} > "$out"
'');
gen = { url, md5 }: {
source = fetchurl {
url = "${mirror}/${url}";
inherit md5;
};
target = url;
};
in map gen expr;
in import <nixpkgs/nixos/lib/make-iso9660-image.nix> {
inherit (import <nixpkgs> {}) stdenv perl cdrkit pathsFromGraph;
contents = [
{ source = fetchurl {
url = "http://cygwin.com/setup-x86_64.exe";
sha256 = "1bjmq9h1p6mmiqp6f1kvmg94jbsdi1pxfa07a5l497zzv9dsfivm";
};
target = "setup.exe";
}
{ source = cygPkgList;
target = "setup.ini";
}
] ++ makeCygwinClosure {
packages = cygPkgList;
packageList = packages;
} ++ extraContents;
}

View file

@ -0,0 +1,78 @@
# Ugliest Python code I've ever written. -- aszlig
import sys
def get_plist(path):
in_pack = False
in_str = False
current_key = None
buf = ""
packages = {}
package_name = None
package_attrs = {}
with open(path, 'r') as setup:
for line in setup:
if in_str and line.rstrip().endswith('"'):
package_attrs[current_key] = buf + line.rstrip()[:-1]
in_str = False
continue
elif in_str:
buf += line
continue
if line.startswith('@'):
in_pack = True
package_name = line[1:].strip()
package_attrs = {}
elif in_pack and ':' in line:
key, value = line.split(':', 1)
if value.lstrip().startswith('"'):
if value.lstrip()[1:].rstrip().endswith('"'):
value = value.strip().strip('"')
else:
in_str = True
current_key = key.strip().lower()
buf = value.lstrip()[1:]
continue
package_attrs[key.strip().lower()] = value.strip()
elif in_pack:
in_pack = False
packages[package_name] = package_attrs
return packages
def main():
packages = get_plist(sys.argv[1])
to_include = set()
def traverse(package):
to_include.add(package)
attrs = packages.get(package, {})
deps = attrs.get('requires', '').split()
for new_dep in set(deps) - to_include:
traverse(new_dep)
map(traverse, sys.argv[2:])
sys.stdout.write('[\n')
for package, attrs in packages.iteritems():
if package not in to_include:
cats = [c.lower() for c in attrs.get('category', '').split()]
if 'base' not in cats:
continue
install_line = attrs.get('install')
if install_line is None:
continue
url, size, md5 = install_line.split(' ', 2)
pack = [
' {',
' url = "{0}";'.format(url),
' md5 = "{0}";'.format(md5),
' }',
];
sys.stdout.write('\n'.join(pack) + '\n')
sys.stdout.write(']\n')
if __name__ == '__main__':
main()

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