mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-28 09:53:10 +00:00
Merge remote-tracking branch 'origin/master' into glibc-2.19
This commit is contained in:
commit
db9d204d33
@ -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>
|
||||
|
@ -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>";
|
||||
|
@ -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";
|
||||
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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")
|
95
maintainers/scripts/copy-tarballs.pl
Executable file
95
maintainers/scripts/copy-tarballs.pl
Executable 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");
|
||||
}
|
@ -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
|
45
maintainers/scripts/find-tarballs.nix
Normal file
45
maintainers/scripts/find-tarballs.nix
Normal 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
|
@ -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.org’s <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 it’s 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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
53
nixos/doc/manual/release-notes.xml
Normal file
53
nixos/doc/manual/release-notes.xml
Normal 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>
|
@ -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;
|
||||
|
@ -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.
|
||||
|
@ -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.
|
||||
|
@ -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" ];
|
||||
}
|
||||
|
@ -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.
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
'';
|
||||
|
||||
|
@ -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
|
||||
'') ];
|
||||
};
|
||||
}
|
||||
|
@ -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 =
|
||||
|
@ -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"; };
|
||||
|
||||
|
45
nixos/modules/services/misc/nix-ssh-serve.nix
Normal file
45
nixos/modules/services/misc/nix-ssh-serve.nix
Normal 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
|
||||
'';
|
||||
};
|
||||
}
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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 ''
|
||||
|
||||
|
@ -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 = {
|
||||
|
@ -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 {
|
||||
];
|
||||
};
|
||||
|
||||
|
||||
}
|
||||
|
@ -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";
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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 "!";
|
||||
}
|
||||
|
@ -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;
|
||||
|
||||
};
|
||||
}
|
||||
}
|
||||
|
@ -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 = ''
|
||||
|
@ -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; } ];
|
||||
|
@ -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
|
||||
'';
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
@ -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";
|
||||
|
@ -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.";
|
||||
|
@ -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 ''
|
||||
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
@ -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 =
|
||||
|
@ -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/;
|
||||
|
12
pkgs/applications/graphics/freecad/cmake.patch
Normal file
12
pkgs/applications/graphics/freecad/cmake.patch
Normal 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)
|
@ -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/;
|
||||
|
@ -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 ];
|
||||
|
@ -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 = [
|
||||
|
@ -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 =
|
||||
|
@ -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
|
||||
|
@ -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 ];
|
||||
|
||||
};
|
||||
}
|
||||
|
@ -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";
|
||||
|
||||
|
@ -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 ];
|
||||
|
@ -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";
|
||||
};
|
||||
}
|
@ -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";
|
||||
|
||||
|
@ -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 ];
|
||||
|
||||
|
@ -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 = ''
|
||||
|
17
pkgs/applications/misc/lxappearance/default.nix
Normal file
17
pkgs/applications/misc/lxappearance/default.nix
Normal 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/";
|
||||
};
|
||||
}
|
16
pkgs/applications/misc/nc-indicators/default.nix
Normal file
16
pkgs/applications/misc/nc-indicators/default.nix
Normal 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;
|
||||
};
|
||||
})
|
40
pkgs/applications/misc/terminator/default.nix
Normal file
40
pkgs/applications/misc/terminator/default.nix
Normal 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;
|
||||
};
|
||||
}
|
29
pkgs/applications/misc/twmn/default.nix
Normal file
29
pkgs/applications/misc/twmn/default.nix
Normal 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 ];
|
||||
};
|
||||
}
|
@ -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 = {
|
||||
|
@ -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;
|
||||
|
@ -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 ];
|
||||
|
@ -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";
|
||||
};
|
||||
}
|
||||
|
@ -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 =
|
||||
''
|
||||
|
@ -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 =
|
||||
|
@ -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";
|
||||
|
||||
|
@ -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.";
|
||||
|
||||
|
25
pkgs/applications/networking/davmail/default.nix
Normal file
25
pkgs/applications/networking/davmail/default.nix
Normal 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
|
||||
'';
|
||||
}
|
@ -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
|
||||
|
@ -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~
|
@ -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";
|
||||
|
@ -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 ;
|
||||
|
@ -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 = ''
|
||||
|
@ -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";
|
||||
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
@ -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.
|
||||
|
@ -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
|
||||
|
@ -65,7 +65,7 @@ stdenv.mkDerivation {
|
||||
)
|
||||
'';
|
||||
|
||||
installPhase = ''make DESTDIR="$out" MKDIR_P="mkdir -p" install'';
|
||||
installPhase = ''make MKDIR_P="mkdir -p" install'';
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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 = [
|
||||
|
@ -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
|
||||
|
@ -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 ];
|
||||
|
||||
|
@ -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 ]
|
||||
|
@ -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 ];
|
||||
};
|
||||
}
|
@ -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"
|
||||
'';
|
||||
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
@ -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 =
|
||||
|
@ -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";
|
||||
|
@ -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);
|
@ -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 ";
|
||||
|
||||
|
@ -23,6 +23,8 @@
|
||||
server admins start using the new version?
|
||||
*/
|
||||
|
||||
assert md5 != "" || sha256 != "";
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "git-export";
|
||||
builder = ./builder.sh;
|
||||
|
@ -66,6 +66,7 @@ in
|
||||
showURLs ? false
|
||||
}:
|
||||
|
||||
assert builtins.isList urls;
|
||||
assert urls != [] -> url == "";
|
||||
assert url != "" -> urls == [];
|
||||
|
||||
|
@ -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
|
||||
|
80
pkgs/build-support/vm/windows/bootstrap.nix
Normal file
80
pkgs/build-support/vm/windows/bootstrap.nix
Normal 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;
|
||||
};
|
||||
}
|
229
pkgs/build-support/vm/windows/controller/default.nix
Normal file
229
pkgs/build-support/vm/windows/controller/default.nix
Normal 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}
|
||||
''
|
46
pkgs/build-support/vm/windows/cygwin-iso/default.nix
Normal file
46
pkgs/build-support/vm/windows/cygwin-iso/default.nix
Normal 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;
|
||||
}
|
78
pkgs/build-support/vm/windows/cygwin-iso/mkclosure.py
Normal file
78
pkgs/build-support/vm/windows/cygwin-iso/mkclosure.py
Normal 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
Loading…
Reference in New Issue
Block a user