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>:
<programlisting>
{buildPerlPackage, fetchurl, db4}:
{buildPerlPackage, fetchurl, db}:
buildPerlPackage rec {
name = "BerkeleyDB-0.36";
@ -119,8 +119,8 @@ buildPerlPackage rec {
};
preConfigure = ''
echo "LIB = ${db4}/lib" > config.in
echo "INCLUDE = ${db4}/include" >> config.in
echo "LIB = ${db}/lib" > config.in
echo "INCLUDE = ${db}/include" >> config.in
'';
}
</programlisting>

View File

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

View File

@ -41,4 +41,13 @@ rec {
pathExists readFile isBool isFunction
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;
value = listToAttrs (
imap (elemIdx: elem:
{ name = "${elem.name or "unnamed"}-${toString defIdx}.${toString elemIdx}";
{ name = elem.name or "unnamed-${toString defIdx}.${toString elemIdx}";
value = elem;
}) 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
manually, e.g.
<programlisting>
services.xserver.videoDrivers = [ "r128" ];
hardware.opengl.videoDrivers = [ "r128" ];
</programlisting>
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
by default because its not free software. You can enable it as follows:
<programlisting>
services.xserver.videoDrivers = [ "nvidia" ];
hardware.opengl.videoDrivers = [ "nvidia" ];
</programlisting>
You may need to reboot after enabling this driver to prevent a clash
with other kernel modules.</para>

View File

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

View File

@ -55,9 +55,12 @@
<!-- <xi:include href="userconfiguration.xml" /> -->
<xi:include href="troubleshooting.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>
<xi:include href="options-db.xml" />
</chapter>
</appendix>
</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";
shell = cfg.defaultUserShell;
group = "root";
hashedPassword = config.security.initialRootPassword;
hashedPassword = mkDefault config.security.initialRootPassword;
};
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.
services.xserver.videoDriver = "vesa";
services.xserver.videoDrivers = [];
hardware.opengl.videoDrivers = [ "vesa" ];
services.nixosManual.enable = false;
# Include the firmware for various wireless cards.

View File

@ -163,7 +163,7 @@ foreach my $path (glob "/sys/bus/pci/devices/*") {
pciCheck $path;
}
push @attrs, "services.xserver.videoDrivers = [ \"$videoDriver\" ];" if $videoDriver;
push @attrs, "hardware.opengl.videoDrivers = [ \"$videoDriver\" ];" if $videoDriver;
# 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
# 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;
munin = 102;
logcheck = 103;
nix-ssh = 104;
dictd = 105;
# When adding a uid, make sure it doesn't match an existing gid.
@ -203,6 +205,7 @@
connman = 94;
munin = 95;
keys = 96;
dictd = 105;
# 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/nix-daemon.nix
./services/misc/nix-gc.nix
./services/misc/nix-ssh-serve.nix
./services/misc/nixos-manual.nix
./services/misc/rogue.nix
./services/misc/svnserve.nix

View File

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

View File

@ -79,5 +79,10 @@ in {
preStart = "mkdir -p /var/spool";
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";
description = "DICT.org dictd server";
home = "${dictdb}/share/dictd";
uid = config.ids.uids.dictd;
};
users.extraGroups = singleton
{ name = "dictd";
gid = config.ids.gids.dictd;
};
jobs.dictd =

View File

@ -286,8 +286,8 @@ in
systemd.services."nix-daemon" =
{ description = "Nix Daemon";
path = [ nix pkgs.openssl pkgs.utillinux ]
++ optionals cfg.distributedBuilds [ pkgs.openssh pkgs.gzip ];
path = [ nix pkgs.openssl pkgs.utillinux pkgs.openssh ]
++ optionals cfg.distributedBuilds [ pkgs.gzip ];
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 {
default = [];
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 {
default = false;
type = types.bool;
@ -322,6 +343,15 @@ in
) 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.
${concatMapStrings (port:
''
@ -330,6 +360,15 @@ in
) 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
# probably nobody is listening anyway.
#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
'';
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]
Description=Serial Getty on %I
Documentation=man:agetty(8) man:systemd-getty-generator(8)
@ -95,7 +107,7 @@ with pkgs.lib;
[Service]
Environment=TERM=linux
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
Restart=always
RestartSec=0

View File

@ -63,6 +63,7 @@ let
enablePHP = false;
phpOptions = "";
options = {};
documentRoot = null;
};
res = defaults // svcFunction { inherit config pkgs serverInfo php; };
in res;
@ -188,7 +189,11 @@ let
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";
documentRootConf = ''
@ -240,7 +245,7 @@ let
${robotsConf}
${if isMainServer || cfg.documentRoot != null then documentRootConf else ""}
${if isMainServer || maybeDocumentRoot != null then documentRootConf else ""}
${if cfg.enableUserDir then ''

View File

@ -126,7 +126,7 @@ in
</Directory>
''}
Alias ${config.urlPrefix} ${mediawikiRoot}
${optionalString (config.urlPrefix != "") "Alias ${config.urlPrefix} ${mediawikiRoot}"}
<Directory ${mediawikiRoot}>
Order allow,deny
@ -137,8 +137,17 @@ in
${optionalString (config.articleUrlPrefix != "") ''
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;
options = {

View File

@ -34,7 +34,7 @@ in {
export GTK_DATA_PREFIX=${config.system.path}
# 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
@ -43,9 +43,17 @@ in {
'';
};
environment.variables.GIO_EXTRA_MODULES = "${gnome3.dconf}/lib/gio/modules";
environment.systemPackages =
[ gnome3.evince
gnome3.eog
gnome3.dconf
gnome3.vino
gnome3.epiphany
gnome3.baobab
gnome3.gucharmap
gnome3.nautilus
gnome3.yelp
pkgs.ibus
gnome3.gnome_shell
gnome3.gnome_settings_daemon
@ -56,4 +64,5 @@ in {
];
};
}

View File

@ -14,24 +14,37 @@ in {
services.redshift.latitude = mkOption {
description = "Your current latitude";
type = types.string;
type = types.uniq types.string;
};
services.redshift.longitude = mkOption {
description = "Your current longitude";
type = types.string;
type = types.uniq types.string;
};
services.redshift.temperature = {
day = mkOption {
description = "Colour temperature to use during day time";
default = 5500;
type = types.int;
type = types.uniq types.int;
};
night = mkOption {
description = "Colour temperature to use during night time";
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";
requires = [ "display-manager.service" ];
after = [ "display-manager.service" ];
script = ''
wantedBy = [ "graphical.target" ];
serviceConfig.ExecStart = ''
${pkgs.redshift}/bin/redshift \
-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"; };
serviceConfig.Restart = "always";

View File

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

View File

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

View File

@ -320,6 +320,10 @@ while read -u 3 mountPoint; do
echo -n "waiting for device $device to appear..."
for try in $(seq 1 20); do
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
echo -n "."
done

View File

@ -164,5 +164,5 @@ with pkgs.lib;
# 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
# 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 =
let extraConfig =
{ boot.isContainer = true;
security.initialRootPassword = "!";
security.initialRootPassword = mkDefault "!";
networking.hostName = mkDefault name;
};
in [ extraConfig config.config ];
@ -134,4 +134,4 @@ with pkgs.lib;
}) 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,
# since the only PAM services that allow logging in with a null
# password are local ones that are inaccessible on Google Compute machines.
security.initialRootPassword = "!";
security.initialRootPassword = mkDefault "!";
# Configure default metadata hostnames
networking.extraHosts = ''

View File

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

View File

@ -6,17 +6,16 @@
, perl, pkgconfig, python, serd, sord, sratom, suil }:
let
# Ardour 3.0 tag
rev = "79db9422";
tag = "3.5.357";
in
stdenv.mkDerivation {
name = "ardour-3.0";
stdenv.mkDerivation rec {
name = "ardour-${tag}";
src = fetchgit {
url = git://git.ardour.org/ardour/ardour.git;
inherit rev;
sha256 = "cdbe4ca6d4b639fcd66a3d1cf9c2816b4755655c9d81bdd2417263f413aa7096";
rev = "refs/tags/${tag}";
sha256 = "1e026fb9a6ad4179d52c4b578cc3861bdfd3629b9e7b7a7341d431c7d3692c42";
};
buildInputs =
@ -28,13 +27,16 @@ stdenv.mkDerivation {
];
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/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";
@ -43,7 +45,7 @@ stdenv.mkDerivation {
installPhase = ''
python waf install
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
'';

View File

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

View File

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

View File

@ -19,8 +19,6 @@ pythonPackages.buildPythonPackage rec {
propagatedBuildInputs = pythonPath;
installCommand = "python setup.py install --prefix=$out";
meta = {
homepage = "https://github.com/aszlig/LastWatch";
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 {
name = "moc-${version}";
@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
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 = {
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
, 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}";
postUnpack = ''
# the patch searches for plugins in directory ../plugins
@ -42,7 +47,7 @@ buildPythonPackage {
];
propagatedBuildInputs = [
mutagen pygtk pygobject pythonDBus gst_python
mutagen pygtk pygobject pythonDBus gst_python intltool
];
postInstall = stdenv.lib.optionalString withGstPlugins ''

View File

@ -2,27 +2,25 @@
{ stdenv, fetchurl, alsaLib, bzip2, fftw, jackaudio, libX11, liblo
, libmad, libogg, librdf, librdf_raptor, librdf_rasqal, libsamplerate
, libsndfile, makeWrapper, pkgconfig, pulseaudio, qt4, redland
, rubberband, vampSDK
, libsndfile, pkgconfig, pulseaudio, qt5, redland
, rubberband, serd, sord, vampSDK
}:
stdenv.mkDerivation rec {
name = "sonic-visualiser-${version}";
version = "1.9";
version = "2.3";
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 =
[ 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
serd
sord
pkgconfig
# optional
jackaudio
@ -33,11 +31,10 @@ stdenv.mkDerivation rec {
# fishsound
liblo
libX11
makeWrapper
];
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 ..;
done
make
@ -45,19 +42,15 @@ stdenv.mkDerivation rec {
installPhase = ''
mkdir -p $out/{bin,share/sonic-visualiser}
cp sonic-visualiser/sonic-visualiser $out/bin
cp -r sonic-visualiser/samples $out/share/sonic-visualiser/samples
wrapProgram $out/bin/sonic-visualiser --prefix LD_LIBRARY_PATH : ${libX11}/lib
cp sonic-visualiser $out/bin/
cp -r samples $out/share/sonic-visualiser/
'';
meta = {
meta = with stdenv.lib; {
description = "View and analyse contents of music audio files";
homepage = http://www.sonicvisualiser.org/;
license = "GPLv2";
maintainers =
[ stdenv.lib.maintainers.marcweber
stdenv.lib.maintainers.goibhniu
];
platforms = stdenv.lib.platforms.linux;
license = licenses.gpl2Plus;
maintainers = [ maintainers.goibhniu maintainers.marcweber ];
platforms = platforms.linux;
};
}

View File

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

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, x11, imlib2, libjpeg, libpng, giblib
{ stdenv, makeWrapper, fetchurl, x11, imlib2, libjpeg, libpng, giblib
, libXinerama, curl }:
stdenv.mkDerivation rec {
@ -9,12 +9,16 @@ stdenv.mkDerivation rec {
sha256 = "1wlhfbglzc1jzsh80s4s1fawclgzyjy2105ffzx2mw9s0c1xds5l";
};
buildInputs = [x11 imlib2 giblib libjpeg libpng libXinerama curl ];
buildInputs = [makeWrapper x11 imlib2 giblib libjpeg libpng libXinerama curl ];
preBuild = ''
makeFlags="PREFIX=$out"
'';
postInstall = ''
wrapProgram "$out/bin/feh" --prefix PATH : "${libjpeg}/bin"
'';
meta = {
description = "A light-weight image viewer";
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
'';
patches = [ ./pythonpath.patch ];
patches = [ ./pythonpath.patch ./cmake.patch ];
meta = {
homepage = http://free-cad.sourceforge.net/;

View File

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

View File

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

View File

@ -2,11 +2,11 @@
, intltool, gettext, shared_mime_info, glib, gdk_pixbuf, perl}:
stdenv.mkDerivation rec {
name = "viewnior-1.3";
name = "viewnior-1.4";
src = fetchurl {
url = "http://cloud.github.com/downloads/xsisqox/Viewnior/${name}.tar.gz";
sha256 = "46c97c1a85361519b42fe008cfb8911e66f709f3a3a988c11047ab3726889f10";
url = "https://www.dropbox.com/s/zytq0suabesv933/${name}.tar.gz";
sha256 = "0vv1133phgfzm92md6bbccmcvfiqb4kz28z1572c0qj971yz457a";
};
buildInputs =
@ -14,6 +14,10 @@ stdenv.mkDerivation rec {
shared_mime_info glib gdk_pixbuf perl
];
preFixup = ''
rm $out/share/icons/*/icon-theme.cache
'';
meta = {
description = "Viewnior is a fast and simple image viewer for GNU/Linux";
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 {
version = "0.8.6";
@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
sha256 = "036xx06gyrfh65rpdapff3viz1f38vzkj7lnhil6fc0s7pjmsjbk";
};
buildInputs = [ openssl db4 boost zlib miniupnpc qt4 ];
buildInputs = [ openssl db boost zlib miniupnpc qt4 ];
configurePhase = ''
cd src

View File

@ -5,11 +5,11 @@
}:
stdenv.mkDerivation rec {
name = "blender-2.67";
name = "blender-2.69";
src = fetchurl {
url = "http://download.blender.org/source/${name}.tar.gz";
sha256 = "066lwrm85455gs187bxr3jhqidc2f6f0791b4216jkagbszd9a8l";
sha256 = "02ffakkbax1kl4ycakxq20yp9hmw1qj1qndjjqxnhhhdxifpyjn9";
};
buildInputs = [
@ -35,11 +35,14 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
meta = {
meta = with stdenv.lib; {
description = "3D Creation/Animation/Publishing System";
homepage = http://www.blender.org;
# They comment two licenses: GPLv2 and Blender License, but they
# 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 {
version = "0.8.3-1";
@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
# I think that openssl and zlib are required, but come through other
# packages
buildInputs = [ db4 boost gmp mpfr miniupnpc qt4 unzip ];
buildInputs = [ db boost gmp mpfr miniupnpc qt4 unzip ];
configurePhase = "qmake";

View File

@ -1,11 +1,11 @@
{ stdenv, fetchurl, pkgconfig, gtk, gettext }:
stdenv.mkDerivation rec {
name = "girara-0.1.9";
name = "girara-0.2.0";
src = fetchurl {
url = "http://pwmt.org/projects/girara/download/${name}.tar.gz";
sha256 = "1kd20dalnpy07hajv0rkmkbsym4bpfxh0gby7j2mvkvl5qr3vx70";
sha256 = "0k8p5sgazqw7r78ssqh8bm2hn98xjml5w76l9awa66yq0k5m8jyi";
};
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 {
name = "jigdo-0.7.3";
@ -14,7 +14,7 @@ stdenv.mkDerivation {
sha256 = "0jnlzm9m2hjlnw0zs2fv456ml5r2jj2q1lncqbrgg52lq18f6fa3";
};
buildInputs = [ db4 gtk bzip2 ];
buildInputs = [ db gtk bzip2 ];
configureFlags = "--without-libdb";

View File

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

View File

@ -1,12 +1,12 @@
{ stdenv, fetchurl, qt4, muparser, which}:
stdenv.mkDerivation {
name = "librecad-1.0.2";
name = "librecad-1.0.4";
src = fetchurl {
url = https://github.com/LibreCAD/LibreCAD/tarball/v1.0.2;
name = "librecad-1.0.2.tar.gz";
sha256 = "13ee7e401e4f5fbc68c2e017b7189bec788038f4f6e77f559861ceb8cfb1907d";
url = https://github.com/LibreCAD/LibreCAD/tarball/v1.0.4;
name = "librecad-1.0.4.tar.gz";
sha256 = "00nzbijw7pn1zkj4256da501xcm6rkcvycpa79y6dr2p6c43yc6m";
};
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 {
version = "0.2.6";
version = "0.2.7";
name = "zathura-core-${version}";
src = fetchurl {
url = "http://pwmt.org/projects/zathura/download/zathura-${version}.tar.gz";
sha1 = "d84878388969d523027a1661f49fd29638bd460b";
sha256 = "ef43be7705612937d095bfbe719a03503bf7e45493ea9409cb43a45cf96f0daf";
};
buildInputs = [ pkgconfig file gtk girara gettext makeWrapper ];
@ -21,7 +21,12 @@ stdenv.mkDerivation rec {
makeFlags = [ "PREFIX=$(out)" "RSTTOMAN=${docutils}/bin/rst2man.py" "VERBOSE=1" ];
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 = {

View File

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

View File

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

View File

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

View File

@ -17,9 +17,9 @@ assert stdenv.gcc ? libc && stdenv.gcc.libc != null;
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 {
@ -29,7 +29,7 @@ rec {
# 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"
];
sha1 = "ec2031385237e30be829817ac79caa8e80cc2a14";
sha256 = "13qd53yf8dn9m03p4x5ml9h3mys60nba5nz82lcvaq7ycp1pl1bn";
};
commonConfigureFlags =
@ -82,7 +82,7 @@ rec {
"--disable-javaxpcom"
] ++ commonConfigureFlags;
enableParallelBuilding = true;
#enableParallelBuilding = true; # cf. https://github.com/NixOS/nixpkgs/pull/1699#issuecomment-35196282
preConfigure =
''

View File

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

View File

@ -36,7 +36,7 @@
let
# -> http://get.adobe.com/flashplayer/
version = "11.2.202.336";
version = "11.2.202.341";
src =
if stdenv.system == "x86_64-linux" then
@ -47,7 +47,7 @@ let
else rec {
inherit version;
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
if debug then {
@ -58,7 +58,7 @@ let
} else rec {
inherit version;
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";

View File

@ -47,18 +47,18 @@ stdenv.mkDerivation rec {
name = "google-talk-plugin-${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'
version = "4.2.1.0";
version = "5.1.4.0";
src =
if stdenv.system == "x86_64-linux" then
fetchurl {
url = "${baseURL}/google-talkplugin_${version}-1_amd64.deb";
sha256 = "1g7kpz2lzzz1gri5rd3isp7cfyls6gzwcw2kc8jgrgrixq9iixfd";
sha256 = "19x1ss6kx7w8833f40pg1mwqr6sygz4ij4a7r7h3flmk67zywj4c";
}
else if stdenv.system == "i686-linux" then
fetchurl {
url = "${baseURL}/google-talkplugin_${version}-1_i386.deb";
sha256 = "1z0zbblzlky9nyifxmnl49v4zafpqp3l08b9v1486sinm35rf58r";
sha256 = "1jxcridpqx46sdy4bw381rvffn1z93s280vhihwbgmiwjq5h4g41";
}
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
, perl, perlXMLParser, evolution_data_server, gnome_doc_utils, avahi
, 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
, ...}:
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' \
-e '/encryption_ng/d' \
-e '/encryption_ng_simlite/d' Plugins.cmake
patch -p1 < ${./cmake.patch}
'';
NIX_LDFLAGS="-lX11";

View File

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

View File

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

View File

@ -2,17 +2,21 @@
stdenv.mkDerivation (rec {
pname = "rdesktop";
version = "1.7.1";
version = "1.8.1";
name = "${pname}-${version}";
src = fetchurl {
url = "mirror://sourceforge/${pname}/${name}.tar.gz";
sha256 = "0yc4xz95w40m8ailpjgqp9h7bkc758vp0dlq4nj1pvr3xfnl7sni";
sha256 = "0il248cdsxvwjsl4bswf27ld9r1a7d48jf6bycr86kf3i55q7k3n";
};
buildInputs = [openssl libX11];
configureFlags = [ "--with-openssl=${openssl}" ];
configureFlags = [
"--with-openssl=${openssl}"
"--disable-credssp"
"--disable-smartcard"
];
meta = {
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
, withPython ? false, python3
, withTcl ? false, tcl
@ -7,10 +7,11 @@
with stdenv.lib;
stdenv.mkDerivation rec {
name = "znc-1.0";
name = "znc-1.2";
src = fetchurl {
url = "http://znc.in/releases/${name}.tar.gz";
sha256 = "0ah6890ngvj97kah3x7fd8yzi6dpdgrxw1b2skj2cyv98bd3jmd8";
sha256 = "07bh306wl5494sqsgz4a526wvyrylkc8vpnbr5pkxwjg90mcv8nr";
};
buildInputs = [ openssl pkgconfig ]
@ -24,11 +25,11 @@ stdenv.mkDerivation rec {
+ optionalString withTcl "--enable-tcl --with-tcl=${tcl}/lib "
+ optionalString withCyrus "--enable-cyrus ";
meta = {
meta = with stdenv.lib; {
description = "Advanced IRC bouncer";
homepage = http://wiki.znc.in/ZNC;
maintainers = [ stdenv.lib.maintainers.viric ];
license = "ASL2.0";
platforms = stdenv.lib.platforms.unix;
maintainers = with maintainers; [ viric ];
license = licenses.asl20;
platforms = platforms.unix;
};
}

View File

@ -1,7 +1,7 @@
{ fetchurl, stdenv, pkgconfig, libxml2, gconf, glib, gtk, libgnomeui, libofx
, libgtkhtml, gtkhtml, libgnomeprint, goffice, enchant, gettext, libbonoboui
, intltool, perl, guile, slibGuile, swig, isocodes, bzip2, makeWrapper, libglade
, libgsf, libart_lgpl, perlPackages
, libgsf, libart_lgpl, perlPackages, aqbanking, gwenhywfar
}:
/* 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
libgnomeprint goffice enchant gettext intltool perl guile slibGuile
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 = ''
# Auto-updaters don't make sense in Nix.

View File

@ -6,7 +6,7 @@
{ stdenv, fetchurl, pam, python3, tcsh, libxslt, perl, ArchiveZip
, 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
, icu, boost, jdk, ant, libXext, libX11, libXtst, libXi, cups
, libXinerama, openssl, gperf, cppunit, GConf, ORBit2, poppler
@ -248,7 +248,7 @@ stdenv.mkDerivation rec {
buildInputs =
[ 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
hunspell icu jdk kde4.kdelibs lcms libcdr libexttextcat unixODBC libjpeg
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;

View File

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

View File

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

View File

@ -10,7 +10,7 @@
let
version = "1.8.5.4";
version = "1.9.0";
svn = subversionClient.override { perlBindings = true; };
@ -21,7 +21,7 @@ stdenv.mkDerivation {
src = fetchurl {
url = "http://git-core.googlecode.com/files/git-${version}.tar.gz";
sha256 = "062z4j4hfhfdlvkxs2mzarsyvbqvfy4kv8j5h4c75ymb5yp8iklk";
sha256 = "10lq71vrg1zbqm923wb0p36ily6y5x057f2bryk4wqkdqgyrfc6y";
};
patches = [ ./docbook2texi.patch ./symlinks-in-bin.patch ];
@ -66,7 +66,7 @@ stdenv.mkDerivation {
mkdir -p $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 \
--replace ' grep' ' ${gnugrep}/bin/grep' \
--replace ' egrep' ' ${gnugrep}/bin/egrep'
@ -77,7 +77,7 @@ stdenv.mkDerivation {
-e 's| perl -e| ${perl}/bin/perl -e|g' \
$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
sed -i -e "s|'compressor' => \['gzip'|'compressor' => ['${gzip}/bin/gzip'|" \
$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.
# 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
'';
buildInputs = [ apr aprutil subversion db4 kdelibs expat ];
buildInputs = [ apr aprutil subversion db kdelibs expat ];
nativeBuildInputs = [ gettext ];

View File

@ -17,13 +17,13 @@ assert javahlBindings -> jdk != null && perl != null;
stdenv.mkDerivation rec {
version = "1.8.5";
version = "1.8.8";
name = "subversion-${version}";
src = fetchurl {
url = "mirror://apache/subversion/${name}.tar.bz2";
sha256 = "0r3mxrrlr1l9s2nh829bf0qmrfaafkq3di6ndr10j76sxkqjnlpx";
sha256 = "1cqxwydjidyf59y4lgkxl7bra1sy28abqm2mi5971qjsv0f96s8m";
};
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
'';
installCommand = ''
python setup.py install --prefix= --root="$out"
'';
# Disabled for now, because it requires networking and even if we skip those
# tests, the whole test run takes around 10-20 minutes.
doCheck = false;
@ -51,6 +47,12 @@ buildPythonPackage rec {
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 = ''
mv "$out/bin/miro.real" "$out/bin/miro"
'';

View File

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

View File

@ -11,7 +11,7 @@ with stdenv.lib;
let
version = "4.2.18"; # changes ./guest-additions as well
version = "4.2.22"; # changes ./guest-additions as well
forEachModule = action: ''
for mod in \
@ -31,13 +31,13 @@ let
'';
# See https://github.com/NixOS/nixpkgs/issues/672 for details
extpackRevision = "88780";
extpackRevision = "91556";
extensionPack = requireFile rec {
name = "Oracle_VM_VirtualBox_Extension_Pack-${version}-${extpackRevision}.vbox-extpack";
# IMPORTANT: Hash must be base16 encoded because it's used as an input to
# VBoxExtPackHelperApp!
# Tip: see http://dlc.sun.com.edgesuite.net/virtualbox/4.2.18/SHA256SUMS
sha256 = "1d1737b59d0f30f5d42beeabaff168bdc0a75b8b28df685979be6173e5adbbba";
# Tip: see http://dlc.sun.com.edgesuite.net/virtualbox/4.2.22/SHA256SUMS
sha256 = "79c0da87451cab3868f64d48bf9a7fdd710786c05ed4b3070b008c3aa1ce4f7a";
message = ''
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:
@ -56,7 +56,7 @@ in stdenv.mkDerivation {
src = fetchurl {
url = "http://download.virtualbox.org/virtualbox/${version}/VirtualBox-${version}.tar.bz2";
sha256 = "9dbddf393b029c549249f627d12040c1d257972bc09292969b8819a31ab78d74";
sha256 = "4a017ec5fa0e0cfa830ae6c2b9d680c9b108e5fb96348e1397a7d0ea051f8bc1";
};
buildInputs =

View File

@ -12,7 +12,7 @@ stdenv.mkDerivation {
src = fetchurl {
url = "http://download.virtualbox.org/virtualbox/${version}/VBoxGuestAdditions_${version}.iso";
sha256 = "f11a7f13dfe7bf9f246fb877144bb467fe6deadcd876568ec79b6ccd3b59d767";
sha256 = "222e003d038b757cd761361bb5da33123e0f9574af246fb95eb558593c8c7c76";
};
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'';
# Allow users set their own list of patches
patches = [ ./confnotify-6.0.patch ] ++ patches;
inherit patches;
buildPhase = " make ";

View File

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

View File

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

View File

@ -924,6 +924,32 @@ rec {
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 = {
name = "fedora-18-i386";
fullName = "Fedora 18 (i386)";
@ -1505,22 +1531,22 @@ rec {
debian70x86_64 = debian7x86_64;
debian7i386 = {
name = "debian-7.3-wheezy-i386";
fullName = "Debian 7.3 Wheezy (i386)";
name = "debian-7.4-wheezy-i386";
fullName = "Debian 7.4 Wheezy (i386)";
packagesList = fetchurl {
url = mirror://debian/dists/wheezy/main/binary-i386/Packages.bz2;
sha256 = "037637520ce371a50beb5446fd27a731f30b51bc362c2f4a5dcfce9c7e30ffb6";
sha256 = "9f19822c82e25cd149f82b0d16fdbc00d1080db7f34e41de456498dc7c54f2b4";
};
urlPrefix = mirror://debian;
packages = commonDebianPackages;
};
debian7x86_64 = {
name = "debian-7.3-wheezy-amd64";
fullName = "Debian 7.3 Wheezy (amd64)";
name = "debian-7.4-wheezy-amd64";
fullName = "Debian 7.4 Wheezy (amd64)";
packagesList = fetchurl {
url = mirror://debian/dists/wheezy/main/binary-amd64/Packages.bz2;
sha256 = "c2ed55a2a263d482826c934b97ad910984fa5695ab1c480841741b828d0590a5";
sha256 = "160ee0917693bc2e8f69b233c220857f35a70d906540d99d2779def576daf5f7";
};
urlPrefix = mirror://debian;
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