Merge remote-tracking branch 'origin/master' into staging

This commit is contained in:
Eelco Dolstra 2016-09-05 19:10:12 +02:00
commit 7c239702b5
140 changed files with 2400 additions and 608 deletions

View File

@ -2,5 +2,9 @@
"userBlacklist": [
"civodul",
"jhasse"
]
],
"alwaysNotifyForPaths": [
{ "name": "FRidh", "files": ["pkgs/top-level/python-packages.nix", "pkgs/development/interpreters/python/*", "pkgs/development/python-modules/*" ] }
],
"fileBlacklist": ["pkgs/top-level/all-packages.nix"]
}

View File

@ -383,7 +383,7 @@ You can select a particular GHC version to compile with by setting the
Stack choose what GHC version it wants based on the snapshot specified
in `stack.yaml` (only works with Stack >= 1.1.3):
{nixpkgs ? import <nixpkgs> { }, ghc ? nixpkgs.ghc}
{nixpkgs ? import <nixpkgs> { }, ghc ? nixpkgs.ghc}:
with nixpkgs;

View File

@ -157,16 +157,16 @@ expression on standard output. For example:
<screen>
$ nix-generate-from-cpan XML::Simple
XMLSimple = buildPerlPackage {
name = "XML-Simple-2.20";
XMLSimple = buildPerlPackage rec {
name = "XML-Simple-2.22";
src = fetchurl {
url = mirror://cpan/authors/id/G/GR/GRANTM/XML-Simple-2.20.tar.gz;
sha256 = "5cff13d0802792da1eb45895ce1be461903d98ec97c9c953bc8406af7294434a";
url = "mirror://cpan/authors/id/G/GR/GRANTM/${name}.tar.gz";
sha256 = "b9450ef22ea9644ae5d6ada086dc4300fa105be050a2030ebd4efd28c198eb49";
};
propagatedBuildInputs = [ XMLNamespaceSupport XMLSAX XMLSAXExpat ];
meta = {
description = "Easily read/write XML (esp config files)";
license = "perl";
description = "An API for simple XML files";
license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
};
};
</screen>

View File

@ -40,6 +40,7 @@
arobyn = "Alexei Robyn <shados@shados.net>";
artuuge = "Artur E. Ruuge <artuuge@gmail.com>";
ashalkhakov = "Artyom Shalkhakov <artyom.shalkhakov@gmail.com>";
aske = "Kirill Boltaev <aske@fmap.me>";
asppsa = "Alastair Pharo <asppsa@gmail.com>";
astsmtl = "Alexander Tsamutali <astsmtl@yandex.ru>";
aszlig = "aszlig <aszlig@redmoonstudios.org>";
@ -130,6 +131,7 @@
ericsagnes = "Eric Sagnes <eric.sagnes@gmail.com>";
erikryb = "Erik Rybakken <erik.rybakken@math.ntnu.no>";
ertes = "Ertugrul Söylemez <esz@posteo.de>";
ethercrow = "Dmitry Ivanov <ethercrow@gmail.com>";
exi = "Reno Reckling <nixos@reckling.org>";
exlevan = "Alexey Levan <exlevan@gmail.com>";
expipiplus1 = "Joe Hermaszewski <nix@monoid.al>";

View File

@ -16,12 +16,22 @@ networking.networkmanager.enable = true;
some desktop managers (e.g., GNOME) enable NetworkManager
automatically for you.</para>
<para>All users that should have permission to change network settings
must belong to the <code>networkmanager</code> group.</para>
<para>All users that should have permission to change network settings must
belong to the <code>networkmanager</code> group:
<programlisting>
users.extraUsers.youruser.extraGroups = [ "networkmanager" ];
</programlisting>
</para>
<para>NetworkManager is controlled using either <command>nmcli</command> or
<command>nmtui</command> (curses-based terminal user interface). See their
manual pages for details on their usage. Some desktop environments (GNOME, KDE)
have their own configuration tools for NetworkManager.</para>
<note><para><code>networking.networkmanager</code> and
<code>networking.wireless</code> can not be enabled at the same time:
you can still connect to the wireless networks using
<code>networking.wireless</code> (WPA Supplicant) cannot be enabled at the same
time: you can still connect to the wireless networks using
NetworkManager.</para></note>
</section>

View File

@ -11,17 +11,27 @@ with lib;
# TODO: find another name for it.
fonts = mkOption {
type = types.listOf types.path;
default = [];
example = literalExample "[ pkgs.dejavu_fonts ]";
description = "List of primary font paths.";
};
enableDefaultFonts = mkOption {
type = types.bool;
default = false;
description = ''
Enable a basic set of fonts providing several font styles
and families and reasonable coverage of Unicode.
'';
};
};
};
config = {
fonts.fonts =
fonts.fonts = mkIf config.fonts.enableDefaultFonts
[
pkgs.xorg.fontbhlucidatypewriter100dpi
pkgs.xorg.fontbhlucidatypewriter75dpi

View File

@ -34,10 +34,10 @@ let
config.programs.ssh.package
pkgs.perl
pkgs.procps
pkgs.rsync
pkgs.strace
pkgs.su
pkgs.time
pkgs.texinfoInteractive
pkgs.utillinux
pkgs.which # 88K size
];
@ -104,7 +104,6 @@ in
"/etc/xdg"
"/etc/gtk-2.0"
"/etc/gtk-3.0"
"/info"
"/lib" # FIXME: remove and update debug-info.nix
"/sbin"
"/share/applications"
@ -112,7 +111,6 @@ in
"/share/doc"
"/share/emacs"
"/share/icons"
"/share/info"
"/share/menus"
"/share/mime"
"/share/nano"

View File

@ -92,6 +92,7 @@ fi
mkdir -m 0755 -p $mountPoint/dev $mountPoint/proc $mountPoint/sys $mountPoint/etc $mountPoint/run $mountPoint/home
mkdir -m 01777 -p $mountPoint/tmp
mkdir -m 0755 -p $mountPoint/tmp/root
mkdir -m 0755 -p $mountPoint/var
mkdir -m 0700 -p $mountPoint/root
mount --rbind /dev $mountPoint/dev
mount --rbind /proc $mountPoint/proc
@ -168,7 +169,7 @@ if ! NIX_DB_DIR=$mountPoint/nix/var/nix/db nix-store --check-validity @nix@ 2> /
for i in $(@perl@/bin/perl @pathsFromGraph@ @nixClosure@); do
echo " $i"
chattr -R -i $mountPoint/$i 2> /dev/null || true # clear immutable bit
@rsync@/bin/rsync -a $i $mountPoint/nix/store/
rsync -a $i $mountPoint/nix/store/
done
# Register the paths in the Nix closure as valid. This is necessary

View File

@ -21,7 +21,7 @@ let
name = "nixos-install";
src = ./nixos-install.sh;
inherit (pkgs) perl pathsFromGraph rsync;
inherit (pkgs) perl pathsFromGraph;
nix = config.nix.package.out;
cacert = "${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt";
root_uid = config.ids.uids.root;

View File

@ -66,8 +66,9 @@
./programs/command-not-found/command-not-found.nix
./programs/dconf.nix
./programs/environment.nix
./programs/freetds.nix
./programs/fish.nix
./programs/freetds.nix
./programs/info.nix
./programs/kbdlight.nix
./programs/light.nix
./programs/man.nix
@ -388,6 +389,7 @@
./services/networking/prayer.nix
./services/networking/privoxy.nix
./services/networking/prosody.nix
./services/networking/quagga.nix
./services/networking/quassel.nix
./services/networking/racoon.nix
./services/networking/radicale.nix

View File

@ -11,4 +11,7 @@ with lib;
# This isn't perfect, but let's expect the user specifies an UTF-8 defaultLocale
i18n.supportedLocales = [ (config.i18n.defaultLocale + "/UTF-8") ];
services.nixosManual.enable = mkDefault false;
programs.man.enable = mkDefault false;
programs.info.enable = mkDefault false;
}

View File

@ -0,0 +1,30 @@
{ config, lib, pkgs, ... }:
with lib;
{
options = {
programs.info.enable = mkOption {
type = types.bool;
default = true;
description = ''
Whether to enable info pages and the <command>info</command> command.
'';
};
};
config = mkIf config.programs.info.enable {
environment.systemPackages = [ pkgs.texinfoInteractive ];
environment.pathsToLink = [ "/info" "/share/info" ];
environment.extraOutputsToInstall = [ "info" ];
};
}

View File

@ -56,7 +56,6 @@ in
setXAuthLocation = mkOption {
type = types.bool;
default = config.services.xserver.enable;
description = ''
Whether to set the path to <command>xauth</command> for X11-forwarded connections.
This causes a dependency on X11 packages.
@ -165,6 +164,9 @@ in
config = {
programs.ssh.setXAuthLocation =
mkDefault (config.services.xserver.enable || config.programs.ssh.forwardX11);
assertions =
[ { assertion = cfg.forwardX11 -> cfg.setXAuthLocation;
message = "cannot enable X11 forwarding without setting XAuth location";

View File

@ -25,7 +25,10 @@ in
enable = mkOption {
default = false;
description = ''
Whether to configure zsh as an interactive shell.
Whether to configure zsh as an interactive shell. To enable zsh for
a particular user, use the <option>users.users.&lt;name?&gt;.shell</option>
option for that user. To enable zsh system-wide use the
<option>users.defaultUserShell</option> option.
'';
type = types.bool;
};

View File

@ -72,6 +72,8 @@ in
(isNO "GRKERNSEC_NO_RBAC")
];
nixpkgs.config.grsecurity = true;
# Install PaX related utillities into the system profile.
environment.systemPackages = with pkgs; [ gradm paxctl pax-utils ];

View File

@ -117,6 +117,7 @@ in
mkdir -p /run/setuid-wrapper-dirs
wrapperDir=$(mktemp --directory --tmpdir=/run/setuid-wrapper-dirs setuid-wrappers.XXXXXXXXXX)
chmod a+rx $wrapperDir
${concatMapStrings makeSetuidWrapper setuidPrograms}
@ -131,7 +132,7 @@ in
# Compatibility with old state, just remove the folder and symlink
rm -f ${wrapperDir}/*
# if it happens to be a tmpfs
umount ${wrapperDir} || true
${pkgs.utillinux}/bin/umount ${wrapperDir} || true
rm -d ${wrapperDir}
ln -d --symbolic $wrapperDir ${wrapperDir}
else

View File

@ -28,13 +28,13 @@ in {
listenClientUrls = mkOption {
description = "Etcd list of URLs to listen on for client traffic.";
default = ["http://localhost:4001"];
default = ["http://127.0.0.1:2379"];
type = types.listOf types.str;
};
listenPeerUrls = mkOption {
description = "Etcd list of URLs to listen on for peer traffic.";
default = ["http://localhost:7001"];
default = ["http://127.0.0.1:2380"];
type = types.listOf types.str;
};
@ -46,7 +46,7 @@ in {
initialCluster = mkOption {
description = "Etcd initial cluster configuration for bootstrapping.";
default = ["${cfg.name}=http://localhost:7001"];
default = ["${cfg.name}=http://127.0.0.1:2380"];
type = types.listOf types.str;
};
@ -68,6 +68,54 @@ in {
type = types.str;
};
clientCertAuth = mkOption {
description = "Whether to use certs for client authentication";
default = false;
type = types.bool;
};
trustedCaFile = mkOption {
description = "Certificate authority file to use for clients";
default = null;
type = types.nullOr types.path;
};
certFile = mkOption {
description = "Cert file to use for clients";
default = null;
type = types.nullOr types.path;
};
keyFile = mkOption {
description = "Key file to use for clients";
default = null;
type = types.nullOr types.path;
};
peerCertFile = mkOption {
description = "Cert file to use for peer to peer communication";
default = cfg.certFile;
type = types.nullOr types.path;
};
peerKeyFile = mkOption {
description = "Key file to use for peer to peer communication";
default = cfg.keyFile;
type = types.nullOr types.path;
};
peerTrustedCaFile = mkOption {
description = "Certificate authority file to use for peer to peer communication";
default = cfg.trustedCaFile;
type = types.nullOr types.path;
};
peerClientCertAuth = mkOption {
description = "Whether to check all incoming peer requests from the cluster for valid client certificates signed by the supplied CA";
default = false;
type = types.bool;
};
extraConf = mkOption {
description = ''
Etcd extra configuration. See
@ -99,7 +147,7 @@ in {
wantedBy = [ "multi-user.target" ];
after = [ "network-interfaces.target" ];
environment = {
environment = (filterAttrs (n: v: v != null) {
ETCD_NAME = cfg.name;
ETCD_DISCOVERY = cfg.discovery;
ETCD_DATA_DIR = cfg.dataDir;
@ -107,7 +155,14 @@ in {
ETCD_LISTEN_CLIENT_URLS = concatStringsSep "," cfg.listenClientUrls;
ETCD_LISTEN_PEER_URLS = concatStringsSep "," cfg.listenPeerUrls;
ETCD_INITIAL_ADVERTISE_PEER_URLS = concatStringsSep "," cfg.initialAdvertisePeerUrls;
} // (optionalAttrs (cfg.discovery == ""){
ETCD_PEER_TRUSTED_CA_FILE = cfg.peerTrustedCaFile;
ETCD_PEER_CERT_FILE = cfg.peerCertFile;
ETCD_PEER_KEY_FILE = cfg.peerKeyFile;
ETCD_CLIENT_CERT_AUTH = toString cfg.peerClientCertAuth;
ETCD_TRUSTED_CA_FILE = cfg.trustedCaFile;
ETCD_CERT_FILE = cfg.certFile;
ETCD_KEY_FILE = cfg.keyFile;
}) // (optionalAttrs (cfg.discovery == ""){
ETCD_INITIAL_CLUSTER = concatStringsSep "," cfg.initialCluster;
ETCD_INITIAL_CLUSTER_STATE = cfg.initialClusterState;
ETCD_INITIAL_CLUSTER_TOKEN = cfg.initialClusterToken;

View File

@ -0,0 +1,187 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.quagga;
services = [ "babel" "bgp" "isis" "ospf6" "ospf" "pim" "rip" "ripng" ];
allServices = services ++ [ "zebra" ];
isEnabled = service: cfg.${service}.enable;
daemonName = service: if service == "zebra" then service else "${service}d";
configFile = service:
let
scfg = cfg.${service};
in
if scfg.configFile != null then scfg.configFile
else pkgs.writeText "${daemonName service}.conf"
''
! Quagga ${daemonName service} configuration
!
hostname ${config.networking.hostName}
log syslog
service password-encryption
!
${scfg.config}
!
end
'';
serviceOptions = service:
{
enable = mkEnableOption "the Quagga ${toUpper service} routing protocol";
configFile = mkOption {
type = types.nullOr types.path;
default = null;
example = "/etc/quagga/${daemonName service}.conf";
description = ''
Configuration file to use for Quagga ${daemonName service}.
By default the NixOS generated files are used.
'';
};
config = mkOption {
type = types.lines;
default = "";
example =
let
examples = {
rip = ''
router rip
network 10.0.0.0/8
'';
ospf = ''
router ospf
network 10.0.0.0/8 area 0
'';
bgp = ''
router bgp 65001
neighbor 10.0.0.1 remote-as 65001
'';
};
in
examples.${service} or "";
description = ''
${daemonName service} configuration statements.
'';
};
vtyListenAddress = mkOption {
type = types.str;
default = "127.0.0.1";
description = ''
Address to bind to for the VTY interface.
'';
};
vtyListenPort = mkOption {
type = types.nullOr types.int;
default = null;
description = ''
TCP Port to bind to for the VTY interface.
'';
};
};
in
{
###### interface
options.services.quagga =
{
zebra = (serviceOptions "zebra") // {
enable = mkOption {
type = types.bool;
default = any isEnabled services;
example = true;
description = ''
Whether to enable the Zebra routing manager.
The Zebra routing manager is automatically enabled
if any routing protocols are configured.
'';
};
};
} // (genAttrs services serviceOptions);
###### implementation
config = mkIf (any isEnabled allServices) {
environment.systemPackages = [
pkgs.quagga # for the vtysh tool
];
users.users.quagga = {
description = "Quagga daemon user";
isSystemUser = true;
group = "quagga";
};
users.groups = {
quagga = {};
# Members of the quaggavty group can use vtysh to inspect the Quagga daemons
quaggavty = {};
};
systemd.services =
let
quaggaService = service:
let
scfg = cfg.${service};
daemon = daemonName service;
in
nameValuePair daemon ({
wantedBy = [ "multi-user.target" ];
restartTriggers = [ (configFile service) ];
serviceConfig = {
Type = "forking";
PIDFile = "/run/quagga/${daemon}.pid";
ExecStart = "@${pkgs.quagga}/libexec/quagga/${daemon} ${daemon} -d -f ${configFile service}"
+ optionalString (scfg.vtyListenAddress != "") " -A ${scfg.vtyListenAddress}"
+ optionalString (scfg.vtyListenPort != null) " -P ${toString scfg.vtyListenPort}";
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
Restart = "on-abort";
};
} // (
if service == "zebra" then
{
description = "Quagga Zebra routing manager";
unitConfig.Documentation = "man:zebra(8)";
after = [ "network.target" ];
preStart = ''
install -m 0755 -o quagga -g quagga -d /run/quagga
${pkgs.iproute}/bin/ip route flush proto zebra
'';
}
else
{
description = "Quagga ${toUpper service} routing daemon";
unitConfig.Documentation = "man:${daemon}(8) man:zebra(8)";
bindsTo = [ "zebra.service" ];
after = [ "network.target" "zebra.service" ];
}
));
in
listToAttrs (map quaggaService (filter isEnabled allServices));
};
meta.maintainers = with lib.maintainers; [ tavyc ];
}

View File

@ -85,7 +85,7 @@ in
forwardX11 = mkOption {
type = types.bool;
default = cfgc.setXAuthLocation;
default = false;
description = ''
Whether to allow X11 connections to be forwarded.
'';
@ -227,6 +227,8 @@ in
config = mkIf cfg.enable {
programs.ssh.setXAuthLocation = mkForce cfg.forwardX11;
users.extraUsers.sshd =
{ isSystemUser = true;
description = "SSH privilege separation user";

View File

@ -84,7 +84,7 @@ in
config = mkIf cfg.enable {
environment.systemPackages = [ pkgs.dbus.daemon pkgs.dbus_tools ];
environment.systemPackages = [ pkgs.dbus.daemon pkgs.dbus ];
environment.etc = singleton
{ source = configDir;
@ -104,7 +104,7 @@ in
security.setuidOwners = singleton
{ program = "dbus-daemon-launch-helper";
source = "${pkgs.dbus_daemon.out}/libexec/dbus-daemon-launch-helper";
source = "${pkgs.dbus.daemon}/libexec/dbus-daemon-launch-helper";
owner = "root";
group = "messagebus";
setuid = true;

View File

@ -80,8 +80,7 @@ in
};
systemd.services."container-getty@" =
{ unitConfig.ConditionPathExists = "/dev/pts/%I"; # Work around being respawned when "machinectl login" exits.
serviceConfig.ExecStart = gettyCmd "--noclear --keep-baud pts/%I 115200,38400,9600 $TERM";
{ serviceConfig.ExecStart = gettyCmd "--noclear --keep-baud pts/%I 115200,38400,9600 $TERM";
restartIfChanged = false;
};

View File

@ -654,6 +654,8 @@ in
${xrandrMonitorSections}
'';
fonts.enableDefaultFonts = mkDefault true;
};
}

View File

@ -677,7 +677,7 @@ in
};
systemd.services.systemd-networkd-wait-online = {
before = [ "network-online.target" "ip-up.target" ];
before = [ "ip-up.target" ];
wantedBy = [ "network-online.target" "ip-up.target" ];
};

View File

@ -14,6 +14,7 @@ let
upstreamSystemUnits =
[ # Targets.
"basic.target"
"busnames.target"
"sysinit.target"
"sockets.target"
"graphical.target"
@ -140,6 +141,7 @@ let
"user.slice"
"machine.slice"
"systemd-machined.service"
"systemd-nspawn@.service"
# Temporary file creation / cleanup.
"systemd-tmpfiles-clean.service"
@ -727,16 +729,6 @@ in
systemd.targets.network-online.after = [ "ip-up.target" ];
systemd.targets.network-pre = {
wantedBy = [ "network.target" ];
before = [ "network.target" ];
};
systemd.targets.remote-fs-pre = {
wantedBy = [ "remote-fs.target" ];
before = [ "remote-fs.target" ];
};
systemd.units =
mapAttrs' (n: v: nameValuePair "${n}.target" (targetToUnit n v)) cfg.targets
// mapAttrs' (n: v: nameValuePair "${n}.service" (serviceToUnit n v)) cfg.services

View File

@ -287,7 +287,7 @@ in
boot.specialFileSystems = {
"/proc" = { fsType = "proc"; options = [ "nosuid" "noexec" "nodev" ]; };
"/sys" = { fsType = "sysfs"; options = [ "nosuid" "noexec" "nodev" ]; };
"/run" = { fsType = "tmpfs"; options = [ "nosuid" "nodev" "strictatime" "mode=755" "size=${config.boot.runSize}" ]; };
"/run" = { fsType = "tmpfs"; options = [ "nodev" "strictatime" "mode=755" "size=${config.boot.runSize}" ]; };
"/dev" = { fsType = "devtmpfs"; options = [ "nosuid" "strictatime" "mode=755" "size=${config.boot.devSize}" ]; };
"/dev/shm" = { fsType = "tmpfs"; options = [ "nosuid" "nodev" "strictatime" "mode=1777" "size=${config.boot.devShmSize}" ]; };
"/dev/pts" = { fsType = "devpts"; options = [ "nosuid" "noexec" "mode=620" "gid=${toString config.ids.gids.tty}" ]; };

View File

@ -234,6 +234,7 @@ in rec {
tests.etcd = hydraJob (import tests/etcd.nix { system = "x86_64-linux"; });
tests.ec2-nixops = hydraJob (import tests/ec2.nix { system = "x86_64-linux"; }).boot-ec2-nixops;
tests.ec2-config = hydraJob (import tests/ec2.nix { system = "x86_64-linux"; }).boot-ec2-config;
tests.ferm = callTest tests/ferm.nix {};
tests.firefox = callTest tests/firefox.nix {};
tests.firewall = callTest tests/firewall.nix {};
tests.fleet = hydraJob (import tests/fleet.nix { system = "x86_64-linux"; });
@ -279,6 +280,7 @@ in rec {
tests.printing = callTest tests/printing.nix {};
tests.proxy = callTest tests/proxy.nix {};
tests.pumpio = callTest tests/pump.io.nix {};
tests.quagga = callTest tests/quagga.nix {};
tests.quake3 = callTest tests/quake3.nix {};
tests.runInMachine = callTest tests/run-in-machine.nix {};
tests.sddm = callTest tests/sddm.nix {};

View File

@ -0,0 +1,157 @@
# This test runs simple etcd cluster
import ./make-test.nix ({ pkgs, ... } : let
runWithOpenSSL = file: cmd: pkgs.runCommand file {
buildInputs = [ pkgs.openssl ];
} cmd;
ca_key = runWithOpenSSL "ca-key.pem" "openssl genrsa -out $out 2048";
ca_pem = runWithOpenSSL "ca.pem" ''
openssl req \
-x509 -new -nodes -key ${ca_key} \
-days 10000 -out $out -subj "/CN=etcd-ca"
'';
etcd_key = runWithOpenSSL "etcd-key.pem" "openssl genrsa -out $out 2048";
etcd_csr = runWithOpenSSL "etcd.csr" ''
openssl req \
-new -key ${etcd_key} \
-out $out -subj "/CN=etcd" \
-config ${openssl_cnf}
'';
etcd_cert = runWithOpenSSL "etcd.pem" ''
openssl x509 \
-req -in ${etcd_csr} \
-CA ${ca_pem} -CAkey ${ca_key} \
-CAcreateserial -out $out \
-days 365 -extensions v3_req \
-extfile ${openssl_cnf}
'';
etcd_client_key = runWithOpenSSL "etcd-client-key.pem"
"openssl genrsa -out $out 2048";
etcd_client_csr = runWithOpenSSL "etcd-client-key.pem" ''
openssl req \
-new -key ${etcd_client_key} \
-out $out -subj "/CN=etcd-client" \
-config ${client_openssl_cnf}
'';
etcd_client_cert = runWithOpenSSL "etcd-client.crt" ''
openssl x509 \
-req -in ${etcd_client_csr} \
-CA ${ca_pem} -CAkey ${ca_key} -CAcreateserial \
-out $out -days 365 -extensions v3_req \
-extfile ${client_openssl_cnf}
'';
openssl_cnf = pkgs.writeText "openssl.cnf" ''
ions = v3_req
distinguished_name = req_distinguished_name
[req_distinguished_name]
[ v3_req ]
basicConstraints = CA:FALSE
keyUsage = digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
DNS.1 = node1
DNS.2 = node2
DNS.3 = node3
IP.1 = 127.0.0.1
'';
client_openssl_cnf = pkgs.writeText "client-openssl.cnf" ''
ions = v3_req
distinguished_name = req_distinguished_name
[req_distinguished_name]
[ v3_req ]
basicConstraints = CA:FALSE
keyUsage = digitalSignature, keyEncipherment
extendedKeyUsage = clientAuth
'';
nodeConfig = {
services = {
etcd = {
enable = true;
keyFile = etcd_key;
certFile = etcd_cert;
trustedCaFile = ca_pem;
peerClientCertAuth = true;
listenClientUrls = ["https://127.0.0.1:2379"];
listenPeerUrls = ["https://0.0.0.0:2380"];
};
};
environment.variables = {
ETCDCTL_CERT_FILE = "${etcd_client_cert}";
ETCDCTL_KEY_FILE = "${etcd_client_key}";
ETCDCTL_CA_FILE = "${ca_pem}";
ETCDCTL_PEERS = "https://127.0.0.1:2379";
};
networking.firewall.allowedTCPPorts = [ 2380 ];
};
in {
name = "etcd";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ offline ];
};
nodes = {
node1 = { config, pkgs, nodes, ... }: {
require = [nodeConfig];
services.etcd = {
initialCluster = ["node1=https://node1:2380" "node2=https://node2:2380"];
initialAdvertisePeerUrls = ["https://node1:2380"];
};
};
node2 = { config, pkgs, ... }: {
require = [nodeConfig];
services.etcd = {
initialCluster = ["node1=https://node1:2380" "node2=https://node2:2380"];
initialAdvertisePeerUrls = ["https://node2:2380"];
};
};
node3 = { config, pkgs, ... }: {
require = [nodeConfig];
services.etcd = {
initialCluster = ["node1=https://node1:2380" "node2=https://node2:2380" "node3=https://node3:2380"];
initialAdvertisePeerUrls = ["https://node3:2380"];
initialClusterState = "existing";
};
};
};
testScript = ''
subtest "should start etcd cluster", sub {
$node1->start();
$node2->start();
$node1->waitForUnit("etcd.service");
$node2->waitForUnit("etcd.service");
$node2->waitUntilSucceeds("etcdctl cluster-health");
$node1->succeed("etcdctl set /foo/bar 'Hello world'");
$node2->succeed("etcdctl get /foo/bar | grep 'Hello world'");
};
subtest "should add another member", sub {
$node1->succeed("etcdctl member add node3 https://node3:2380");
$node3->start();
$node3->waitForUnit("etcd.service");
$node3->waitUntilSucceeds("etcdctl member list | grep 'node3'");
$node3->succeed("etcdctl cluster-health");
};
subtest "should survive member crash", sub {
$node3->crash;
$node1->succeed("etcdctl cluster-health");
$node1->succeed("etcdctl set /foo/bar 'Hello degraded world'");
$node1->succeed("etcdctl get /foo/bar | grep 'Hello degraded world'");
};
'';
})

View File

@ -1,111 +1,27 @@
# This test runs etcd as single node, multy node and using discovery
# This test runs simple etcd node
import ./make-test.nix ({ pkgs, ... } : {
name = "etcd";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ offline ];
};
nodes = {
simple =
{ config, pkgs, nodes, ... }:
{
services.etcd.enable = true;
services.etcd.listenClientUrls = ["http://0.0.0.0:4001"];
environment.systemPackages = [ pkgs.curl ];
networking.firewall.allowedTCPPorts = [ 4001 ];
};
node1 =
{ config, pkgs, nodes, ... }:
{
services = {
etcd = {
enable = true;
listenPeerUrls = ["http://0.0.0.0:7001"];
initialAdvertisePeerUrls = ["http://node1:7001"];
initialCluster = ["node1=http://node1:7001" "node2=http://node2:7001"];
};
};
networking.firewall.allowedTCPPorts = [ 7001 ];
};
node2 =
{ config, pkgs, ... }:
{
services = {
etcd = {
enable = true;
listenPeerUrls = ["http://0.0.0.0:7001"];
initialAdvertisePeerUrls = ["http://node2:7001"];
initialCluster = ["node1=http://node1:7001" "node2=http://node2:7001"];
};
};
networking.firewall.allowedTCPPorts = [ 7001 ];
};
discovery1 =
{ config, pkgs, nodes, ... }:
{
services = {
etcd = {
enable = true;
listenPeerUrls = ["http://0.0.0.0:7001"];
initialAdvertisePeerUrls = ["http://discovery1:7001"];
discovery = "http://simple:4001/v2/keys/discovery/6c007a14875d53d9bf0ef5a6fc0257c817f0fb83/";
};
};
networking.firewall.allowedTCPPorts = [ 7001 ];
};
discovery2 =
{ config, pkgs, ... }:
{
services = {
etcd = {
enable = true;
listenPeerUrls = ["http://0.0.0.0:7001"];
initialAdvertisePeerUrls = ["http://discovery2:7001"];
discovery = "http://simple:4001/v2/keys/discovery/6c007a14875d53d9bf0ef5a6fc0257c817f0fb83/";
};
};
networking.firewall.allowedTCPPorts = [ 7001 ];
};
node = { config, pkgs, nodes, ... }: {
services.etcd.enable = true;
};
};
testScript = ''
subtest "single node", sub {
$simple->start();
$simple->waitForUnit("etcd.service");
$simple->waitUntilSucceeds("etcdctl set /foo/bar 'Hello world'");
$simple->waitUntilSucceeds("etcdctl get /foo/bar | grep 'Hello world'");
subtest "should start etcd node", sub {
$node->start();
$node->waitForUnit("etcd.service");
};
subtest "multy node", sub {
$node1->start();
$node2->start();
$node1->waitForUnit("etcd.service");
$node2->waitForUnit("etcd.service");
$node1->waitUntilSucceeds("etcdctl set /foo/bar 'Hello world'");
$node2->waitUntilSucceeds("etcdctl get /foo/bar | grep 'Hello world'");
$node1->shutdown();
$node2->shutdown();
};
subtest "discovery", sub {
$simple->succeed("curl -X PUT http://localhost:4001/v2/keys/discovery/6c007a14875d53d9bf0ef5a6fc0257c817f0fb83/_config/size -d value=2");
$discovery1->start();
$discovery2->start();
$discovery1->waitForUnit("etcd.service");
$discovery2->waitForUnit("etcd.service");
$discovery1->waitUntilSucceeds("etcdctl set /foo/bar 'Hello world'");
$discovery2->waitUntilSucceeds("etcdctl get /foo/bar | grep 'Hello world'");
};
subtest "should write and read some values to etcd", sub {
$node->succeed("etcdctl set /foo/bar 'Hello world'");
$node->succeed("etcdctl get /foo/bar | grep 'Hello world'");
}
'';
})

72
nixos/tests/ferm.nix Normal file
View File

@ -0,0 +1,72 @@
import ./make-test.nix ({ pkgs, ...} : {
name = "ferm";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ mic92 ];
};
nodes =
{ client =
{ config, pkgs, ... }:
with pkgs.lib;
{
networking = {
interfaces.eth1.ip6 = mkOverride 0 [ { address = "fd00::2"; prefixLength = 64; } ];
interfaces.eth1.ip4 = mkOverride 0 [ { address = "192.168.1.2"; prefixLength = 24; } ];
};
};
server =
{ config, pkgs, ... }:
with pkgs.lib;
{
networking = {
interfaces.eth1.ip6 = mkOverride 0 [ { address = "fd00::1"; prefixLength = 64; } ];
interfaces.eth1.ip4 = mkOverride 0 [ { address = "192.168.1.1"; prefixLength = 24; } ];
};
services = {
ferm.enable = true;
ferm.config = ''
domain (ip ip6) table filter chain INPUT {
interface lo ACCEPT;
proto tcp dport 8080 REJECT reject-with tcp-reset;
}
'';
nginx.enable = true;
nginx.httpConfig = ''
server {
listen 80;
listen [::]:80;
listen 8080;
listen [::]:8080;
location /status { stub_status on; }
}
'';
};
};
};
testScript =
''
startAll;
$client->waitForUnit("network.target");
$server->waitForUnit("ferm.service");
$server->waitForUnit("nginx.service");
$server->waitUntilSucceeds("ss -ntl | grep -q 80");
subtest "port 80 is allowed", sub {
$client->succeed("curl --fail -g http://192.168.1.1:80/status");
$client->succeed("curl --fail -g http://[fd00::1]:80/status");
};
subtest "port 8080 is not allowed", sub {
$server->succeed("curl --fail -g http://192.168.1.1:8080/status");
$server->succeed("curl --fail -g http://[fd00::1]:8080/status");
$client->fail("curl --fail -g http://192.168.1.1:8080/status");
$client->fail("curl --fail -g http://[fd00::1]:8080/status");
};
'';
})

97
nixos/tests/quagga.nix Normal file
View File

@ -0,0 +1,97 @@
# This test runs Quagga and checks if OSPF routing works.
#
# Network topology:
# [ client ]--net1--[ router1 ]--net2--[ router2 ]--net3--[ server ]
#
# All interfaces are in OSPF Area 0.
import ./make-test.nix ({ pkgs, ... }:
let
ifAddr = node: iface: (pkgs.lib.head node.config.networking.interfaces.${iface}.ip4).address;
ospfConf = ''
interface eth2
ip ospf hello-interval 1
ip ospf dead-interval 5
!
router ospf
network 192.168.0.0/16 area 0
'';
in
{
name = "quagga";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ tavyc ];
};
nodes = {
client =
{ config, pkgs, nodes, ... }:
{
virtualisation.vlans = [ 1 ];
networking.defaultGateway = ifAddr nodes.router1 "eth1";
};
router1 =
{ config, pkgs, nodes, ... }:
{
virtualisation.vlans = [ 1 2 ];
boot.kernel.sysctl."net.ipv4.ip_forward" = "1";
networking.firewall.extraCommands = "iptables -A nixos-fw -i eth2 -p ospf -j ACCEPT";
services.quagga.ospf = {
enable = true;
config = ospfConf;
};
};
router2 =
{ config, pkgs, nodes, ... }:
{
virtualisation.vlans = [ 3 2 ];
boot.kernel.sysctl."net.ipv4.ip_forward" = "1";
networking.firewall.extraCommands = "iptables -A nixos-fw -i eth2 -p ospf -j ACCEPT";
services.quagga.ospf = {
enable = true;
config = ospfConf;
};
};
server =
{ config, pkgs, nodes, ... }:
{
virtualisation.vlans = [ 3 ];
networking.defaultGateway = ifAddr nodes.router2 "eth1";
networking.firewall.allowedTCPPorts = [ 80 ];
networking.firewall.allowPing = true;
services.httpd.enable = true;
services.httpd.adminAddr = "foo@example.com";
};
};
testScript =
{ nodes, ... }:
''
startAll;
# Wait for the networking to start on all machines
$_->waitForUnit("network.target") foreach values %vms;
# Wait for OSPF to form adjacencies
for my $gw ($router1, $router2) {
$gw->waitForUnit("ospfd");
$gw->waitUntilSucceeds("vtysh -c 'show ip ospf neighbor' | grep Full");
$gw->waitUntilSucceeds("vtysh -c 'show ip route' | grep '^O>'");
}
# Test ICMP.
$client->succeed("ping -c 3 server >&2");
# Test whether HTTP works.
$server->waitForUnit("httpd");
$client->succeed("curl --fail http://server/ >&2");
'';
})

View File

@ -27,6 +27,8 @@ rec {
namecoin = callPackage ./namecoin.nix { inherit namecoind; };
namecoind = callPackage ./namecoind.nix { };
ethabi = callPackage ./ethabi.nix { };
primecoin = callPackage ./primecoin.nix { withGui = true; };
primecoind = callPackage ./primecoin.nix { withGui = false; };

View File

@ -0,0 +1,24 @@
{ stdenv, fetchFromGitHub, rustPlatform }:
with rustPlatform;
buildRustPackage rec {
name = "ethabi-${version}";
version = "0.2.1";
src = fetchFromGitHub {
owner = "ethcore";
repo = "ethabi";
rev = "fbed04984cab0db8767e01054ee16271b8e36281";
sha256 = "1zgyyg1i5wmz8l1405yg5jmq4ddq530sl7018pkkc7l6cjj3bbhd";
};
depsSha256 = "0srxv0wbhvyflc967lkpd2mx5nk7asx2cbxa0qxvas16wy6vxz52";
meta = {
description = "Ethereum function call encoding (ABI) utility";
homepage = https://github.com/ethcore/ethabi/;
maintainers = [stdenv.lib.maintainers.dbrock];
inherit version;
};
}

View File

@ -0,0 +1,89 @@
{ stdenv, cmake, fetchFromGitHub, file, gcc_multi, libX11, makeWrapper
, overrideCC, qt5, requireFile, unzip, wineStable
}:
let
version = "1.3.2";
airwave-src = fetchFromGitHub {
owner = "phantom-code";
repo = "airwave";
rev = version;
sha256 = "053kkx5yq1vas0qisidkgq0h6hzfwy3677jprjkcrwc4hp2i2v12";
};
stdenv_multi = overrideCC stdenv gcc_multi;
vst-sdk = stdenv.mkDerivation rec {
name = "vstsdk366_27_06_2016_build_61";
src = requireFile {
name = "${name}.zip";
url = "http://www.steinberg.net/en/company/developers.html";
sha256 = "05gsr13bpi2hhp34rvhllsvmn44rqvmjdpg9fsgfzgylfkz0kiki";
};
nativeBuildInputs = [ unzip ];
installPhase = "cp -r . $out";
};
wine-wow64 = wineStable.override {
wineBuild = "wineWow";
};
wine-xembed = wine-wow64.overrideDerivation (oldAttrs: {
patchFlags = [ "-p2" ];
patches = [ "${airwave-src}/fix-xembed-wine-windows.patch" ];
});
in
stdenv_multi.mkDerivation {
name = "airwave-${version}";
src = airwave-src;
nativeBuildInputs = [ cmake makeWrapper ];
buildInputs = [ file libX11 qt5.qtbase wine-xembed ];
postPatch = ''
# Binaries not used directly should land in libexec/.
substituteInPlace src/common/storage.cpp --replace '"/bin"' '"/libexec"'
# For airwave-host-32.exe.so, point wineg++ to 32-bit versions of
# these libraries, as $NIX_LDFLAGS contains only 64-bit ones.
substituteInPlace src/host/CMakeLists.txt --replace '-m32' \
'-m32 -L${wine-xembed}/lib -L${wine-xembed}/lib/wine -L${stdenv_multi.cc.libc.out}/lib/32'
'';
# libstdc++.so link gets lost in 64-bit executables during
# shrinking.
dontPatchELF = true;
cmakeFlags = "-DVSTSDK_PATH=${vst-sdk}";
postInstall = ''
mv $out/bin $out/libexec
mkdir $out/bin
mv $out/libexec/airwave-manager $out/bin
wrapProgram $out/libexec/airwave-host-32.exe --set WINELOADER ${wine-xembed}/bin/wine
wrapProgram $out/libexec/airwave-host-64.exe --set WINELOADER ${wine-xembed}/bin/wine64
'';
meta = with stdenv.lib; {
description = "WINE-based VST bridge for Linux VST hosts";
longDescription = ''
Airwave is a wine based VST bridge, that allows for the use of
Windows 32- and 64-bit VST 2.4 audio plugins with Linux VST
hosts. Due to the use of shared memory, only one extra copying
is made for each data transfer. Airwave also uses the XEMBED
protocol to correctly embed the plugin editor into the host
window.
'';
homepage = https://github.com/phantom-code/airwave;
license = licenses.mit;
platforms = [ "x86_64-linux" ];
maintainers = with maintainers; [ michalrus ];
hydraPlatforms = [];
};
}

View File

@ -0,0 +1,35 @@
{ stdenv, lib, fetchFromGitHub, autoconf, automake, which, libtool, pkgconfig
, ronn
, pcaudiolibSupport ? true, pcaudiolib
, sonicSupport ? true, sonic }:
stdenv.mkDerivation rec {
name = "espeak-ng-${version}";
version = "2016-08-28";
src = fetchFromGitHub {
owner = "espeak-ng";
repo = "espeak-ng";
rev = "b784e77c5708b61feed780d8f1113c4c8eb92200";
sha256 = "1whix4mv0qvsvifgpwwbdzhv621as3rxpn9ijqc2683h6k8pvcfk";
};
nativeBuildInputs = [ autoconf automake which libtool pkgconfig ronn ];
buildInputs = lib.optional pcaudiolibSupport pcaudiolib
++ lib.optional sonicSupport sonic;
preConfigure = "./autogen.sh";
postInstall = ''
patchelf --set-rpath "$(patchelf --print-rpath $out/bin/espeak-ng)" $out/bin/speak-ng
'';
meta = with stdenv.lib; {
description = "Open source speech synthesizer that supports over 70 languages, based on eSpeak";
homepage = "https://github.com/espeak-ng/espeak-ng";
license = licenses.gpl3;
maintainers = with maintainers; [ aske ];
platforms = platforms.linux;
};
}

View File

@ -6,11 +6,11 @@
pythonPackages.buildPythonApplication rec {
name = "gpodder-${version}";
version = "3.9.0";
version = "3.9.1";
src = fetchurl {
url = "http://gpodder.org/src/${name}.tar.gz";
sha256 = "1ik954idi0ldnw0wrv7mm71smyb6x66332jxcaf1dxsl12ccm44l";
sha256 = "036p9vnkr3if0k548xhhjmcwdaimy3yd24s3xd8vzlp0wdzkzrhn";
};
postPatch = with stdenv.lib; ''

View File

@ -0,0 +1,69 @@
{ stdenv, fetchzip, lib, makeWrapper, alsaLib, atk, cairo, gdk_pixbuf
, glib, gst_ffmpeg, gst_plugins_bad, gst_plugins_base
, gst_plugins_good, gst_plugins_ugly, gstreamer, gtk2, libSM, libX11
, libpng12, pango, zlib }:
stdenv.mkDerivation rec {
name = "transcribe-${version}";
version = "8.40";
src = if stdenv.system == "i686-linux" then
fetchzip {
url = "https://www.seventhstring.com/xscribe/downlinux32_old/xscsetup.tar.gz";
sha256 = "1ngidmj9zz8bmv754s5xfsjv7v6xr03vck4kigzq4bpc9b1fdhjq";
}
else if stdenv.system == "x86_64-linux" then
fetchzip {
url = "https://www.seventhstring.com/xscribe/downlinux64_old/xsc64setup.tar.gz";
sha256 = "0svzi8svj6zn06gj0hr8mpnhq4416dvb4g5al0gpb1g3paywdaf9";
}
else throw "Platform not supported";
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ gst_plugins_base gst_plugins_good
gst_plugins_bad gst_plugins_ugly gst_ffmpeg ];
dontPatchELF = true;
libPath = lib.makeLibraryPath [
stdenv.cc.cc glib gtk2 atk pango cairo gdk_pixbuf alsaLib
libX11 libSM libpng12 gstreamer gst_plugins_base zlib
];
installPhase = ''
mkdir -p $out/bin $out/libexec $out/share/doc
cp transcribe $out/libexec
cp xschelp.htb readme_gtk.html $out/share/doc
cp -r gtkicons $out/share/icons
ln -s $out/share/doc/xschelp.htb $out/libexec
patchelf \
--set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) \
$out/libexec/transcribe
wrapProgram $out/libexec/transcribe \
--prefix GST_PLUGIN_SYSTEM_PATH : "$GST_PLUGIN_SYSTEM_PATH" \
--prefix LD_LIBRARY_PATH : "${libPath}"
ln -s $out/libexec/transcribe $out/bin/
'';
meta = with stdenv.lib; {
description = "Software to help transcribe recorded music";
longDescription = ''
The Transcribe! application is an assistant for people who want
to work out a piece of music from a recording, in order to write
it out, or play it themselves, or both. It doesn't do the
transcribing for you, but it is essentially a specialised player
program which is optimised for the purpose of transcription. It
has many transcription-specific features not found on
conventional music players.
'';
homepage = https://www.seventhstring.com/xscribe/;
license = licenses.unfree;
platforms = platforms.linux;
maintainers = with maintainers; [ michalrus ];
};
}

View File

@ -5,8 +5,8 @@ stdenv.mkDerivation (rec {
src = fetchgit {
url = "https://github.com/ProofGeneral/PG.git";
rev = "16991280fb09743ae7320aef77f6a166afb907d7";
sha256 = "1yakjxfz6a09m7lrxff04sj1717gpmhq2bsibd5f9lkp6z0w2i0q";
rev = "64ca55b1593fff8cfffab89c51d7e92c1a68dc27";
sha256 = "1gz13fagxf0w2zgp7qd0w328qiv97295jwq7ra8vj61pdfi8xklj";
};
buildInputs = [ emacs texinfo perl which ] ++ stdenv.lib.optional enableDoc texLive;

View File

@ -119,6 +119,18 @@ in
{
clion = buildClion rec {
name = "clion-${version}";
version = "2016.2.1";
description = "C/C++ IDE. New. Intelligent. Cross-platform";
license = stdenv.lib.licenses.unfree;
src = fetchurl {
url = "https://download.jetbrains.com/cpp/CLion-${version}.tar.gz";
sha256 = "01a8qylfw8bsyywlxgysghjd7d2rlp9x3myd6nqhn7c1803pcks4";
};
wmClass = "jetbrains-clion";
};
clion1 = buildClion rec {
name = "clion-${version}";
version = "1.2.5";
description = "C/C++ IDE. New. Intelligent. Cross-platform";
@ -144,12 +156,12 @@ in
idea-community = buildIdea rec {
name = "idea-community-${version}";
version = "2016.2";
version = "2016.2.3";
description = "Integrated Development Environment (IDE) by Jetbrains, community edition";
license = stdenv.lib.licenses.asl20;
src = fetchurl {
url = "https://download.jetbrains.com/idea/ideaIC-${version}.tar.gz";
sha256 = "164x4l0q31zpc1jh3js1xx9y6afrzsshmnkx1mwhmq8qmvzc4w32";
sha256 = "014fddfxzc8nwhp1nz8mb9p7zwk73azvlgmzy2jd9ypfwi3dwgrs";
};
wmClass = "jetbrains-idea-ce";
};
@ -180,17 +192,29 @@ in
idea-ultimate = buildIdea rec {
name = "idea-ultimate-${version}";
version = "2016.2.2";
version = "2016.2.3";
description = "Integrated Development Environment (IDE) by Jetbrains, requires paid license";
license = stdenv.lib.licenses.unfree;
src = fetchurl {
url = "https://download.jetbrains.com/idea/ideaIU-${version}.tar.gz";
sha256 = "1z5kr47n3hhx0ck163193lwlh76sykgchnq9hw1ihi25n6655j1z";
sha256 = "1y8y3kav4icpsb85p5csag6f16jqg4gnvagsl5k1c793ccbl63yk";
};
wmClass = "jetbrains-idea";
};
ruby-mine = buildRubyMine rec {
name = "ruby-mine-${version}";
version = "2016.2.2";
description = "The Most Intelligent Ruby and Rails IDE";
license = stdenv.lib.licenses.unfree;
src = fetchurl {
url = "https://download.jetbrains.com/ruby/RubyMine-${version}.tar.gz";
sha256 = "1ck4axjbrvq2n1j2rvf9a2f7dqvalg2b8sqy9n9qkzdn04szaqsl";
};
wmClass = "jetbrains-rubymine";
};
ruby-mine7 = buildRubyMine rec {
name = "ruby-mine-${version}";
version = "7.1.5";
description = "The Most Intelligent Ruby and Rails IDE";
@ -202,31 +226,55 @@ in
wmClass = "jetbrains-rubymine";
};
ruby-mine8 = buildRubyMine rec {
name = "ruby-mine-${version}";
version = "8.0.4";
description = "The Most Intelligent Ruby and Rails IDE";
license = stdenv.lib.licenses.unfree;
src = fetchurl {
url = "https://download.jetbrains.com/ruby/RubyMine-${version}.tar.gz";
sha256 = "0hipxib7377232w1jbf8h98bmh0djkllsrq3lq0w3fdxqglma43a";
};
wmClass = "jetbrains-rubymine";
};
pycharm-community = buildPycharm rec {
name = "pycharm-community-${version}";
version = "2016.1.3";
version = "2016.2.2";
description = "PyCharm Community Edition";
license = stdenv.lib.licenses.asl20;
src = fetchurl {
url = "https://download.jetbrains.com/python/${name}.tar.gz";
sha256 = "1ks7crrfnhzkdxban2hh2pnr986vqwmac5zybmb1ighcyamhdi4q";
sha256 = "1v6vy4xh0n8wdjc25clxg57z7ria11x1zdba4j1hjs2z6l80kxbb";
};
wmClass = "jetbrains-pycharm-ce";
};
pycharm-professional = buildPycharm rec {
name = "pycharm-professional-${version}";
version = "2016.1.3";
version = "2016.2.2";
description = "PyCharm Professional Edition";
license = stdenv.lib.licenses.unfree;
src = fetchurl {
url = "https://download.jetbrains.com/python/${name}.tar.gz";
sha256 = "1rn0i5qbvfjbl4v571ngmyslispibcq5ab0fb7xjl38vr1y417f2";
sha256 = "08x2x6lhr9100lmw1dq8rkz4mlyj4avcj2hpbd5qqybx9j4g6g44";
};
wmClass = "jetbrains-pycharm";
};
phpstorm = buildPhpStorm rec {
name = "phpstorm-${version}";
version = "2016.2.1";
description = "Professional IDE for Web and PHP developers";
license = stdenv.lib.licenses.unfree;
src = fetchurl {
url = "https://download.jetbrains.com/webide/PhpStorm-${version}.tar.gz";
sha256 = "0vgr0ds6z0y8qw2v55nr3pi5zb5x0n6pxm13hcp44iradns5kmbp";
};
wmClass = "jetbrains-phpstorm";
};
phpstorm10 = buildPhpStorm rec {
name = "phpstorm-${version}";
version = "10.0.4";
description = "Professional IDE for Web and PHP developers";
@ -239,6 +287,18 @@ in
};
webstorm = buildWebStorm rec {
name = "webstorm-${version}";
version = "2016.2.2";
description = "Professional IDE for Web and JavaScript development";
license = stdenv.lib.licenses.unfree;
src = fetchurl {
url = "https://download.jetbrains.com/webstorm/WebStorm-${version}.tar.gz";
sha256 = "0n2fvhjasklshyfcbwwn6wahzld8x65bid08245awdqv33p87bq6";
};
wmClass = "jetbrains-webstorm";
};
webstorm10 = buildWebStorm rec {
name = "webstorm-${version}";
version = "10.0.5";
description = "Professional IDE for Web and JavaScript development";
@ -250,4 +310,15 @@ in
wmClass = "jetbrains-webstorm";
};
webstorm11 = buildWebStorm rec {
name = "webstorm-${version}";
version = "11.0.4";
description = "Professional IDE for Web and JavaScript development";
license = stdenv.lib.licenses.unfree;
src = fetchurl {
url = "https://download.jetbrains.com/webstorm/WebStorm-${version}.tar.gz";
sha256 = "17agyqdyz6naxyx6p0y240ar93gja0ypw01nm2qmfzvh7ch03r24";
};
wmClass = "jetbrains-webstorm";
};
}

View File

@ -1,14 +1,16 @@
{ stdenv, fetchurl, unzip, ftgl, glew, asciidoc
{ stdenv, fetchFromGitHub, unzip, ftgl, glew, asciidoc
, cmake, mesa, zlib, python, expat, libxml2, libsigcxx, libuuid, freetype
, libpng, boost, doxygen, cairomm, pkgconfig, imagemagick, libjpeg, libtiff
, gettext, intltool, perl, gtkmm, glibmm, gtkglext, pangox_compat, libXmu }:
stdenv.mkDerivation rec {
version = "0.8.0.3";
version = "0.8.0.5";
name = "k3d-${version}";
src = fetchurl {
url = "https://github.com/K-3D/k3d/archive/${name}.zip";
sha256 = "09ywwvlk8hh1357pnal96kc40ma4jq7776hqk0609rgz13s6babp";
src = fetchFromGitHub {
owner = "K-3D";
repo = "k3d";
rev = name;
sha256 = "0q05d51vhnmrq887n15frpwkhx8w7n20h2sc1lpr338jzpryihb3";
};
cmakeFlags = "-DK3D_BUILD_DOCS=false -DK3D_BUILD_GUIDE=false";

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
name = "josm-${version}";
version = "9979";
version = "10786";
src = fetchurl {
url = "https://josm.openstreetmap.de/download/josm-snapshot-${version}.jar";
sha256 = "0zy88f4h71qyj7vlhiwnayaaz50gg6bj5pfypy43ghmjrh01d9vh";
sha256 = "1dlb33nw8idipshiqy5p9vssdnkra3z2ixfixkj017b8wxdzvjpn";
};
phases = [ "installPhase" ];

View File

@ -29,8 +29,6 @@ stdenv.mkDerivation rec {
# python is run during runtime to do various tasks
postFixup = ''
sed '1s:/usr/bin/python:${python}/bin/python:'
wrapProgram "$out/bin/lyx" \
--prefix PATH : '${python}/bin'
'';

View File

@ -0,0 +1,30 @@
{ stdenv, fetchurl, zlib } :
stdenv.mkDerivation rec {
name = "osmctools-${version}";
version = "0.8.5";
src = fetchurl {
url = http://m.m.i24.cc/osmconvert.c;
sha256 = "9da0940912d1bc62223b962483fd796f92c959c48749806aee5806164e5875d7";
};
buildInputs = [ zlib ];
phases = [ "buildPhase" "installPhase" ];
buildPhase = ''
cc $src -lz -O3 -o osmconvert
'';
installPhase = ''
mkdir -p $out/bin
mv osmconvert $out/bin
'';
meta = with stdenv.lib; {
description = "Converter between various Open Street Map file formats";
homepage = http://wiki.openstreetmap.org/wiki/Osmconvert;
platforms = platforms.unix;
};
}

View File

@ -16,8 +16,12 @@ stdenv.mkDerivation rec {
'';
installPhase = ''
runHook preInstall
mkdir -p "$out/bin"
cp bin/* "$out/bin"
runHook postInstall
'';
meta = {

View File

@ -1,5 +1,5 @@
{ stdenv, fetchurl, unzip, buildPythonApplication, makeQtWrapper, wrapGAppsHook
, qtbase, pyqt5, jinja2, pygments, pyyaml, pypeg2, glib_networking
, qtbase, pyqt5, jinja2, pygments, pyyaml, pypeg2, cssutils, glib_networking
, asciidoc, docbook_xml_dtd_45, docbook_xsl, libxml2, libxslt
, gst-plugins-base, gst-plugins-good, gst-plugins-bad, gst-plugins-ugly, gst-libav
, qtwebkit-plugins }:
@ -46,7 +46,7 @@ in buildPythonApplication rec {
];
propagatedBuildInputs = [
pyyaml pyqt5 jinja2 pygments pypeg2
pyyaml pyqt5 jinja2 pygments pypeg2 cssutils
];
postPatch = ''

View File

@ -2,7 +2,7 @@
buildGoPackage rec {
name = "terraform-${version}";
version = "0.7.1";
version = "0.7.2";
rev = "v${version}";
goPackagePath = "github.com/hashicorp/terraform";
@ -11,7 +11,7 @@ buildGoPackage rec {
inherit rev;
owner = "hashicorp";
repo = "terraform";
sha256 = "1nvz4nqkn8pl25zyw7x5079dbzmwdxsar9gbcjk1srfpa746j1y4";
sha256 = "002jg4iwg4g4hkg4hm3szlkyagqzipln3l44b8azh1a7vh1m8cp2";
};
postInstall = ''

View File

@ -23,11 +23,11 @@
let
# NOTE: When updating, please also update in current stable,
# as older versions stop working
version = "8.4.21";
version = "9.4.49";
sha256 =
{
"x86_64-linux" = "1nihmr99mzyjhhdlg39j6g0m6hqgdz80lgrjdw1nnh38vq4fgbnq";
"i686-linux" = "09jfdc8isjcpvgnvfykawlvdq65ng0dg6b54m4vdswk58ggndvlq";
"x86_64-linux" = "0gkm4jhcn3pqaizmki98rbqb7mqyf6mjgmpslas1wr94q5msyrpd";
"i686-linux" = "08h5jxan6l9h4zfmvc5q2652dyplih2avayy8f9h8mppirpg68px";
}."${stdenv.system}" or (throw "system ${stdenv.system} not supported");
arch =

View File

@ -26,7 +26,7 @@ in stdenv.mkDerivation rec {
'';
buildPhase = ''
${python.interpreter}setup.py build
${python.interpreter} setup.py build
'';
installPhase = ''

View File

@ -0,0 +1,21 @@
{stdenv, autoreconfHook, fetchFromGitHub, bison}:
let version = "0.9"; in
stdenv.mkDerivation rec {
name = "tcpkali-${version}";
src = fetchFromGitHub {
owner = "machinezone";
repo = "tcpkali";
rev = "v${version}";
sha256 = "03cbmnc60wkd7f4bapn5cbm3c4zas2l0znsbpci2mn8ms8agif82";
};
buildInputs = [autoreconfHook bison];
meta = {
description = "High performance TCP and WebSocket load generator and sink";
license = stdenv.lib.licenses.bsd2;
inherit (src.meta) homepage;
platforms = stdenv.lib.platforms.linux;
maintainers = with stdenv.lib.maintainers; [ ethercrow ];
};
}

View File

@ -0,0 +1,3 @@
source 'https://rubygems.org'
gem 'ledger_web'

View File

@ -0,0 +1,61 @@
GEM
remote: https://rubygems.org/
specs:
backports (3.6.8)
database_cleaner (1.5.3)
diff-lcs (1.2.5)
directory_watcher (1.5.1)
ledger_web (1.5.2)
database_cleaner
directory_watcher (~> 1.5.1)
pg
rack (>= 1.3.6)
rspec
sequel
sinatra
sinatra-contrib
sinatra-session
multi_json (1.12.1)
pg (0.18.4)
rack (1.6.4)
rack-protection (1.5.3)
rack
rack-test (0.6.3)
rack (>= 1.0)
rspec (3.5.0)
rspec-core (~> 3.5.0)
rspec-expectations (~> 3.5.0)
rspec-mocks (~> 3.5.0)
rspec-core (3.5.2)
rspec-support (~> 3.5.0)
rspec-expectations (3.5.0)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.5.0)
rspec-mocks (3.5.0)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.5.0)
rspec-support (3.5.0)
sequel (4.37.0)
sinatra (1.4.7)
rack (~> 1.5)
rack-protection (~> 1.4)
tilt (>= 1.3, < 3)
sinatra-contrib (1.4.7)
backports (>= 2.0)
multi_json
rack-protection
rack-test
sinatra (~> 1.4.0)
tilt (>= 1.3, < 3)
sinatra-session (1.0.0)
sinatra (>= 1.0)
tilt (2.0.5)
PLATFORMS
ruby
DEPENDENCIES
ledger_web (= 1.5.2)
BUNDLED WITH
1.12.5

View File

@ -0,0 +1,52 @@
{ stdenv, lib, fetchFromGitHub, makeWrapper, bundlerEnv, ruby
, withPostgresql ? true, postgresql
, withSqlite ? false, sqlite
}:
let
_name = "ledger-web";
cmd = "ledger_web";
env = bundlerEnv {
name = _name;
inherit ruby;
gemfile = ./Gemfile;
lockfile = ./Gemfile.lock;
gemset = ./gemset.nix;
meta = with lib; {
homepage = https://github.com/peterkeen/ledger-web;
platforms = platforms.linux;
maintainers = [ peterhoeg ];
license = licenses.mit;
};
};
in stdenv.mkDerivation rec {
name = "${_name}-${version}";
version = "1.5.2";
buildInputs = [ env ruby makeWrapper ]
++ lib.optional withPostgresql postgresql
++ lib.optional withSqlite sqlite;
src = fetchFromGitHub {
owner = "peterkeen";
repo = _name;
rev = "v${version}";
sha256 = "0an4d46h3pp7a8s96jl0dnw1imwdgnb2j474b9wrbidwc6cmfrm7";
};
dontStrip = true;
installPhase = ''
mkdir -p $out
cp --no-preserve=mode -r bin lib $out
chmod 0755 $out/bin/${cmd}
wrapProgram $out/bin/${cmd} \
--set BUNDLE_BIN ${env.bundler}/bin/bundle \
--set GEM_PATH ${env}/${env.ruby.gemPath}
'';
}

View File

@ -0,0 +1,164 @@
{
backports = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "1zcgqw7m7jb8n7b2jwla5cq0nw9wsgddxfmn0a9v89ihzd4i1a5k";
type = "gem";
};
version = "3.6.8";
};
database_cleaner = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "0fx6zmqznklmkbjl6f713jyl11d4g9q220rcl86m2jp82r8kfwjj";
type = "gem";
};
version = "1.5.3";
};
diff-lcs = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "1vf9civd41bnqi6brr5d9jifdw73j9khc6fkhfl1f8r9cpkdvlx1";
type = "gem";
};
version = "1.2.5";
};
directory_watcher = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "0fwc2shba7vks262ind74y3g76qp7znjq5q8b2dvza0yidgywhcq";
type = "gem";
};
version = "1.5.1";
};
ledger_web = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "0i4vagaiyayymlr41rsy4lg2cl1r011ib0ql9dgjadfy6imb4kqh";
type = "gem";
};
version = "1.5.2";
};
multi_json = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "1wpc23ls6v2xbk3l1qncsbz16npvmw8p0b38l8czdzri18mp51xk";
type = "gem";
};
version = "1.12.1";
};
pg = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "07dv4ma9xd75xpsnnwwg1yrpwpji7ydy0q1d9dl0yfqbzpidrw32";
type = "gem";
};
version = "0.18.4";
};
rack = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "09bs295yq6csjnkzj7ncj50i6chfxrhmzg1pk6p0vd2lb9ac8pj5";
type = "gem";
};
version = "1.6.4";
};
rack-protection = {
dependencies = ["rack"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0cvb21zz7p9wy23wdav63z5qzfn4nialik22yqp6gihkgfqqrh5r";
type = "gem";
};
version = "1.5.3";
};
rack-test = {
dependencies = ["rack"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0h6x5jq24makgv2fq5qqgjlrk74dxfy62jif9blk43llw8ib2q7z";
type = "gem";
};
version = "0.6.3";
};
rspec = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "16g3mmih999f0b6vcz2c3qsc7ks5zy4lj1rzjh8hf6wk531nvc6s";
type = "gem";
};
version = "3.5.0";
};
rspec-core = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "12yndf7y6g3s1306bv1aycsmd0gjy5m172spdhx54svca2fcpzy1";
type = "gem";
};
version = "3.5.2";
};
rspec-expectations = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "0bbqfrb1x8gmwf8x2xhhwvvlhwbbafq4isbvlibxi6jk602f09gs";
type = "gem";
};
version = "3.5.0";
};
rspec-mocks = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "0nl3ksivh9wwrjjd47z5dggrwx40v6gpb3a0gzbp1gs06a5dmk24";
type = "gem";
};
version = "3.5.0";
};
rspec-support = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "10vf3k3d472y573mag2kzfsfrf6rv355s13kadnpryk8d36yq5r0";
type = "gem";
};
version = "3.5.0";
};
sequel = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "11vdpr3r4dwhcan16gs4gjm2k21y9qz7ri5w2zz54pmnxp499cjw";
type = "gem";
};
version = "4.37.0";
};
sinatra = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "1b81kbr65mmcl9cdq2r6yc16wklyp798rxkgmm5pr9fvsj7jwmxp";
type = "gem";
};
version = "1.4.7";
};
sinatra-contrib = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "0vi3i0icbi2figiayxpvxbqpbn1syma7w4p4zw5mav1ln4c7jnfr";
type = "gem";
};
version = "1.4.7";
};
sinatra-session = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "183xl8i4d2hc03afd1i52gwn2xi3vzrv02g22llhfy5wkmm44gmq";
type = "gem";
};
version = "1.0.0";
};
tilt = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "0lgk8bfx24959yq1cn55php3321wddw947mgj07bxfnwyipy9hqf";
type = "gem";
};
version = "2.0.5";
};
}

View File

@ -268,5 +268,6 @@ in stdenv.mkDerivation rec {
maintainers = with maintainers; [ viric raskin ];
platforms = platforms.linux;
hydraPlatforms = [];
requiredSystemFeatures = [ "big-parallel" ];
};
}

View File

@ -271,5 +271,6 @@ in stdenv.mkDerivation rec {
license = licenses.lgpl3;
maintainers = with maintainers; [ viric raskin ];
platforms = platforms.linux;
requiredSystemFeatures = [ "big-parallel" ];
};
}

View File

@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
cmakeFlags = [ "-DLIBMINC_DIR=${libminc}/lib/" ];
checkPhase = "ctest";
doCheck = true;
doCheck = false;
meta = with stdenv.lib; {
homepage = https://github.com/BIC-MNI/minc-tools;

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
name = "geogebra-${version}";
version = "5.0.265.0";
version = "5.0.271.0";
preferLocalBuild = true;
src = fetchurl {
url = "http://download.geogebra.org/installers/5.0/GeoGebra-Linux-Portable-${version}.tar.bz2";
sha256 = "74e5abfa098ee0fc464cd391cd3ef6db474ff25e8ea4fbcd82c4b4b5d3d5c459";
sha256 = "5dd5be1cde27c9b567f79c38048045864064b69c0d2b469ae93e1fca5f543475";
};
srcIcon = fetchurl {

View File

@ -22,6 +22,8 @@ stdenv.mkDerivation {
hardeningDisable = [ "format" ];
enableParallelBuilding = true;
patchPhase = ''
cp -fv ${fakegit}/bin/checkout-git.sh libraries/checkout-git.sh
cp -fv ${fakegit}/bin/checkout-svn.sh libraries/checkout-svn.sh

View File

@ -10,7 +10,7 @@
}:
let
version = "2.9.3";
version = "2.10.0";
svn = subversionClient.override { perlBindings = true; };
in
@ -19,7 +19,7 @@ stdenv.mkDerivation {
src = fetchurl {
url = "https://www.kernel.org/pub/software/scm/git/git-${version}.tar.xz";
sha256 = "0qzs681a64k3shh5p0rg41l1z16fbk5sj0xga45k34hp1hsp654z";
sha256 = "1rr9zyafb6q3wixyjar6cc7z7vdh1dqa4b5irz3gz1df02n68cy7";
};
hardeningDisable = [ "format" ];

View File

@ -1,11 +1,9 @@
diff --git a/git-sh-i18n.sh b/git-sh-i18n.sh
index e6c3116..4e34a2c 100644
--- a/git-sh-i18n.sh
+++ b/git-sh-i18n.sh
@@ -15,69 +15,11 @@ else
@@ -15,87 +15,11 @@
fi
export TEXTDOMAINDIR
-# First decide what scheme to use...
-GIT_INTERNAL_GETTEXT_SH_SCHEME=fallthrough
-if test -n "@@USE_GETTEXT_SCHEME@@"
@ -44,6 +42,13 @@ index e6c3116..4e34a2c 100644
- git sh-i18n--envsubst "$1"
- )
- }
-
- eval_ngettext () {
- ngettext "$1" "$2" "$3" | (
- export PATH $(git sh-i18n--envsubst --variables "$2");
- git sh-i18n--envsubst "$2"
- )
- }
- ;;
-poison)
- # Emit garbage so that tests that incorrectly rely on translatable
@ -55,24 +60,35 @@ index e6c3116..4e34a2c 100644
- eval_gettext () {
- printf "%s" "# GETTEXT POISON #"
- }
-
- eval_ngettext () {
- printf "%s" "# GETTEXT POISON #"
- }
- ;;
-*)
- gettext () {
- printf "%s" "$1"
- }
+# GNU gettext
+export GIT_INTERNAL_GETTEXT_SH_SCHEME=gnu
+export PATH=@gettext@/bin:$PATH
-
- eval_gettext () {
- printf "%s" "$1" | (
- export PATH $(git sh-i18n--envsubst --variables "$1");
- git sh-i18n--envsubst "$1"
- )
- }
+# GNU gettext
+export GIT_INTERNAL_GETTEXT_SH_SCHEME=gnu
+export PATH=@gettext@/bin:$PATH
- eval_ngettext () {
- (test "$3" = 1 && printf "%s" "$1" || printf "%s" "$2") | (
- export PATH $(git sh-i18n--envsubst --variables "$2");
- git sh-i18n--envsubst "$2"
- )
- }
- ;;
-esac
+. @gettext@/bin/gettext.sh
# Git-specific wrapper functions
gettextln () {

View File

@ -2,12 +2,12 @@
stdenv.mkDerivation rec {
name = "hub-${version}";
version = "2.2.3";
version = "2.2.5";
src = fetchgit {
url = https://github.com/github/hub.git;
rev = "refs/tags/v${version}";
sha256 = "1vswkx4lm6x4s04453qkmv970gjn79ma39fmdg8mnzy7lh2swws6";
sha256 = "13pab3r2ngac2kljy9jb4lz3g3d6smkwydlx23ydjvyjbg2zb75r";
};
@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
installPhase = ''
mkdir -p "$out/bin"
cp hub "$out/bin/"
cp bin/hub "$out/bin/"
mkdir -p "$out/share/man/man1"
cp "man/hub.1" "$out/share/man/man1/"

View File

@ -2,13 +2,13 @@
python3Packages.buildPythonApplication rec {
name = "${pname}-${version}";
version = "3.34";
version = "3.35";
pname = "i3pystatus";
disabled = !python3Packages.isPy3k;
src = fetchurl {
url = "mirror://pypi/i/${pname}/${name}.tar.gz";
sha256 = "1bpkkf9q4zqq7fh65zynbv26nq24rfznmw71jjvda7g8kjrwjdk5";
sha256 = "0g5m05rbqvq1qrspm6fyzky9xfhaz5pvc4hfzgdxrzijn8nfc860";
};
propagatedBuildInputs = with python3Packages; [ keyring colour netifaces praw psutil basiciw ] ++

View File

@ -1,55 +1,29 @@
{ lib, stdenv, fetchurl, makeWrapper, cmake, pkgconfig
, wlc, dbus_libs, wayland, libxkbcommon, pixman, libinput, udev, zlib, libpng, libdrm, libX11
{ lib, stdenv, fetchgit, cmake, pkgconfig
, wlc, dbus_libs, wayland, libxkbcommon, pixman, libinput, udev, zlib, libpng
, libdrm, libX11
}:
stdenv.mkDerivation rec {
name = "orbment-${version}";
version = "git-2016-01-31";
repo = "https://github.com/Cloudef/orbment";
rev = "7f649fb76649f826dd29578a5ec41bb561b116eb";
version = "git-2016-08-13";
chck_repo = "https://github.com/Cloudef/chck";
chck_rev = "fe5e2606b7242aa5d89af2ea9fd048821128d2bc";
inihck_repo = "https://github.com/Cloudef/inihck";
inihck_rev = "462cbd5fd67226714ac2bdfe4ceaec8e251b2d9c";
srcs = [
(fetchurl {
url = "${repo}/archive/${rev}.tar.gz";
sha256 = "5a426da0d5f4487911cfe9226865ed0cd1a7cdf253eec19d5eadc4b0d14a2ea0";
})
(fetchurl {
url = "${chck_repo}/archive/${chck_rev}.tar.gz";
sha256 = "ca316b544c48e837c32f08d613be42da10e0a3251e8e4488d1848b91ef92ab9e";
})
(fetchurl {
url = "${inihck_repo}/archive/${inihck_rev}.tar.gz";
sha256 = "d21f2ac25eafed285614f5f0ef7a1014d629ba382f4e64bc89fe2c3e98c2777f";
})
];
sourceRoot = "orbment-${rev}";
postUnpack = ''
rm -rf orbment-${rev}/lib/chck orbment-${rev}/lib/inihck
ln -s ../../chck-${chck_rev} orbment-${rev}/lib/chck
ln -s ../../inihck-${inihck_rev} orbment-${rev}/lib/inihck
'';
src = fetchgit {
url = "https://github.com/Cloudef/orbment";
rev = "01dcfff9719e20261a6d8c761c0cc2f8fa0d0de5";
sha256 = "04mv9nh847vijr01zrs47fzmnwfhdx09vi3ddv843mx10yx7lqdb";
fetchSubmodules = true;
};
nativeBuildInputs = [ cmake pkgconfig ];
buildInputs = [ makeWrapper wlc dbus_libs wayland libxkbcommon pixman libinput udev zlib libpng libX11 libdrm ];
makeFlags = "PREFIX=$(out)";
installPhase = "PREFIX=$out make install";
LD_LIBRARY_PATH = lib.makeLibraryPath [ libX11 libdrm dbus_libs ];
preFixup = ''
wrapProgram $out/bin/orbment \
--prefix LD_LIBRARY_PATH : "${LD_LIBRARY_PATH}";
'';
buildInputs = [
wlc dbus_libs wayland libxkbcommon pixman libinput udev zlib libpng libX11
libdrm
];
meta = {
description = "Modular Wayland compositor";
homepage = repo;
homepage = src.url;
license = lib.licenses.mit;
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ ];

View File

@ -4,7 +4,7 @@
}:
let
version = "0.8";
version = "0.9";
in
stdenv.mkDerivation rec {
name = "sway-${version}";
@ -13,7 +13,7 @@ in
owner = "Sircmpwn";
repo = "sway";
rev = "${version}";
sha256 = "10i62cn1z7fwg0jwkskmzcaha39lprkl4zvkp59jr5wvpjligdq3";
sha256 = "0qqqg23rknxnjcgvkfrx3pijqc3dvi74qmmavq07vy2qfs1xlwg0";
};
nativeBuildInputs = [ makeWrapper cmake pkgconfig asciidoc libxslt docbook_xsl ];

View File

@ -0,0 +1,20 @@
# Functions to build elisp files to locally configure emcas buffers.
# See https://github.com/shlevy/nix-buffer
{ runCommand }:
{
withPackages = pkgs: runCommand "dir-locals.el" { inherit pkgs; } ''
echo "(make-local-variable 'process-environment)" >> $out
echo "(setenv \"PATH\" (concat" >> $out
for pkg in $pkgs; do
echo " \"$pkg/bin:$pkg/sbin\"" >> $out
done
echo " (getenv \"PATH\")))" >> $out
echo -n "(setq-local exec-path (append '(" >> $out
for pkg in $pkgs; do
echo -en "\n \"$pkg/bin\" \"$pkg/sbin\"" >> $out
done
echo -e ")\\n exec-path))" >> $out
'';
}

View File

@ -123,8 +123,9 @@ rec {
mkdir -p /fs/dev
mount -o bind /dev /fs/dev
mkdir -p /fs/dev /fs/dev/shm
mkdir -p /fs/dev/shm /fs/dev/pts
mount -t tmpfs -o "mode=1777" none /fs/dev/shm
mount -t devpts none /fs/dev/pts
echo "mounting Nix store..."
mkdir -p /fs/nix/store
@ -261,9 +262,12 @@ rec {
exit 1
fi
eval "$postVM"
exitCode="$(cat xchg/in-vm-exit)"
if [ "$exitCode" != "0" ]; then
exit "$exitCode"
fi
exit $(cat xchg/in-vm-exit)
eval "$postVM"
'';

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
name = "fira-code-${version}";
version = "1.200";
version = "1.201";
src = fetchurl {
url = "https://github.com/tonsky/FiraCode/releases/download/${version}/FiraCode_${version}.zip";
sha256 = "1zja7fsfh3xx2qv9wv46997d02l5nm483b5s39jpmxfracj8qam7";
sha256 = "11hwpdqj41wvzc8l8zgfb132cxn8kxpxbgiqc2kinc25x2l1ikji";
};
sourceRoot = "otf";

View File

@ -22,5 +22,5 @@ stdenv.mkDerivation {
configureFlags = [ "--disable-scrollkeeper" "--disable-introspection"/*not useful AFAIK*/ ];
NIX_CFLAGS_COMPILE="-I${GConf}/include/gconf/2";
NIX_CFLAGS_COMPILE="-I${GConf.dev}/include/gconf/2";
}

View File

@ -45,5 +45,6 @@ in stdenv.mkDerivation rec {
maintainers = gnome3.maintainers;
license = licenses.lgpl2Plus;
platforms = platforms.linux;
requiredSystemFeatures = [ "big-parallel" ];
};
}

View File

@ -19,6 +19,7 @@
, haddock-api
, ghcjs-prim
, regex-posix
, callPackage
, bootPkgs, gmp
, jailbreak-cabal
@ -128,7 +129,7 @@ in mkDerivation (rec {
--with-gmp-libraries ${gmp.out}/lib
'';
passthru = let
ghcjsNodePkgs = pkgs.nodePackages.override {
ghcjsNodePkgs = callPackage ../../../top-level/node-packages.nix {
generated = ./node-packages-generated.nix;
self = ghcjsNodePkgs;
};

View File

@ -1,10 +1,14 @@
{stdenv, fetchFromGitHub, which, m4, python, bison, flex, llvmPackages}:
{stdenv, fetchFromGitHub, bash, which, m4, python, bison, flex, llvmPackages, clangWrapSelf,
testedTargets ? ["sse4" "host"]
}:
# TODO: patch LLVM so Knights Landing works better (patch included in ispc github)
# TODO: patch LLVM so Skylake-EX works better (patch included in ispc github) - needed for LLVM 3.9?
stdenv.mkDerivation rec {
version = "20151128";
rev = "d3020580ff18836de2d4cae18901980b551d9d01";
version = "1.9.1";
rev = "v${version}";
inherit testedTargets;
name = "ispc-${version}";
@ -12,10 +16,10 @@ stdenv.mkDerivation rec {
owner = "ispc";
repo = "ispc";
inherit rev;
sha256 = "15qi22qvmlx3jrhrf3rwl0y77v66prpan6qb66a55dw3pw2d4jvn";
sha256 = "1wwsyvn44hd5iyi5779l5378x096307slpyl29wrsmfp66796693";
};
enableParallelBuilding = false;
enableParallelBuilding = true;
doCheck = true;
@ -26,14 +30,17 @@ stdenv.mkDerivation rec {
bison
flex
llvm
clang
llvmPackages.clang-unwrapped # we need to link against libclang, so we need the unwrapped
];
# https://github.com/ispc/ispc/pull/1190
patches = [ ./gcc5.patch ];
postPatch = "sed -i -e 's/\\/bin\\///g' -e 's/-lcurses/-lncurses/g' Makefile";
# TODO: this correctly catches errors early, but also some things that are just weird and don't seem to be real
# errors
#configurePhase = ''
# makeFlagsArray=( SHELL="${bash}/bin/bash -o pipefail" )
#'';
installPhase = ''
mkdir -p $out/bin
cp ispc $out/bin
@ -41,10 +48,19 @@ stdenv.mkDerivation rec {
checkPhase = ''
export ISPC_HOME=$PWD
python run_tests.py
for target in $testedTargets
do
echo "Testing target $target"
echo "================================"
echo
PATH=${llvmPackages.clang}/bin:$PATH python run_tests.py -t $target --non-interactive --verbose --file=test_output.log
fgrep -q "No new fails" test_output.log || exit 1
done
'';
makeFlags = [
"CXX=${llvmPackages.clang}/bin/clang++"
"CLANG=${llvmPackages.clang}/bin/clang"
"CLANG_INCLUDE=${llvmPackages.clang-unwrapped}/include"
];
@ -52,7 +68,7 @@ stdenv.mkDerivation rec {
homepage = https://ispc.github.io/ ;
description = "Intel 'Single Program, Multiple Data' Compiler, a vectorised language";
license = licenses.bsd3;
platforms = platforms.unix;
platforms = ["x86_64-linux"]; # TODO: buildable on more platforms?
maintainers = [ maintainers.aristid ];
};
}

View File

@ -1,22 +0,0 @@
diff --git a/cbackend.cpp b/cbackend.cpp
index 3552205..9c05824 100644
--- a/cbackend.cpp
+++ b/cbackend.cpp
@@ -1641,7 +1641,7 @@ void CWriter::printConstant(llvm::Constant *CPV, bool Static) {
V = Tmp.convertToDouble();
}
- if (isnan(V)) {
+ if (std::isnan(V)) {
// The value is NaN
// FIXME the actual NaN bits should be emitted.
@@ -1665,7 +1665,7 @@ void CWriter::printConstant(llvm::Constant *CPV, bool Static) {
else
Out << "LLVM_NAN" << (Val == QuietNaN ? "" : "S") << "(\""
<< Buffer << "\") /*nan*/ ";
- } else if (isinf(V)) {
+ } else if (std::isinf(V)) {
// The value is Inf
if (V < 0) Out << '-';
Out << "LLVM_INF" <<

View File

@ -48,12 +48,12 @@ in
stdenv.mkDerivation rec {
pname = "julia";
version = "0.4.5";
version = "0.4.6";
name = "${pname}-${version}";
src = fetchurl {
url = "https://github.com/JuliaLang/${pname}/releases/download/v${version}/${name}.tar.gz";
sha256 = "09gc6yf3v4in0qwhrbgjrjgvblp941di0mli4zax22mvf4dzc7s4";
sha256 = "17wsppmsf782icyzri34zha61wfx4brfq4h68qg17w6zimd2plg5";
};
prePatch = ''

View File

@ -60,7 +60,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
inherit (src.meta) homepage;
description = "A low-level counterpart to Lua";
platforms = platforms.unix;
platforms = [ "x86_64-linux" ];
maintainers = with maintainers; [ jb55 ];
license = licenses.mit;
};

View File

@ -85,7 +85,10 @@ let
ghcWithHoogle = selectFrom:
let
packages = selectFrom self;
hoogle = callPackage ./hoogle.nix { inherit packages; };
hoogle = callPackage ./hoogle.nix {
inherit packages;
hoogle = self.hoogle_4_2_43;
};
in withPackages (packages ++ [ hoogle ]);
ghc = ghc // {

View File

@ -6,7 +6,7 @@ assert zlibSupport -> zlib != null;
let
majorVersion = "5.3.1";
majorVersion = "5.4.0";
version = "${majorVersion}";
libPrefix = "pypy${majorVersion}";
@ -18,7 +18,7 @@ let
src = fetchurl {
url = "https://bitbucket.org/pypy/pypy/get/release-pypy${pythonVersion}-v${version}.tar.bz2";
sha256 = "19cq2ngkh5q5jxwhw81rd6p0qna73z85jfik88w0856k5aj86yha";
sha256 = "1jm4ak6rbqhdhm8gjbd5hanabskbyzhzvjcl93fj0i017yirw88i";
};
# http://bugs.python.org/issue27369
@ -32,6 +32,14 @@ let
patch lib-python/2.7/test/test_pyexpat.py < '${expatch}'
'';
# Increase recursion limit. This patch is not needed on pypy > 5.4.0
patches = [
(fetchurl {
url = "https://bitbucket.org/pypy/pypy/commits/a5db0f4359abb3f64b6d7ed83202e1cb0de37fb2/raw/";
sha256 = "07nvqjhj0kl67f3kjwhmybaqg6089ps3q8r0si1lgk3gyb56ygn0";
})
];
buildInputs = [ bzip2 openssl pkgconfig pythonFull libffi ncurses expat sqlite tk tcl xlibsWrapper libX11 makeWrapper gdbm db ]
++ stdenv.lib.optional (stdenv ? cc && stdenv.cc.libc != null) stdenv.cc.libc
++ stdenv.lib.optional zlibSupport zlib;

View File

@ -1,5 +1,5 @@
{ stdenv, fetchurl, fetchpatch, pkgconfig, audiofile, libcap
, openglSupport ? false, mesa_noglu
, openglSupport ? false, mesa_noglu, mesa_glu
, alsaSupport ? true, alsaLib
, x11Support ? true, libXext, libICE, libXrandr
, pulseaudioSupport ? true, libpulseaudio
@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
optionals x11Support [ libXext libICE libXrandr ] ++
optional alsaSupport alsaLib ++
optional stdenv.isLinux libcap ++
optional openglSupport mesa_noglu ++
optionals openglSupport [ mesa_noglu mesa_glu ] ++
optional pulseaudioSupport libpulseaudio ++
optional stdenv.isDarwin Cocoa;

View File

@ -0,0 +1,23 @@
{ stdenv, fetchFromGitHub, cmake, curl }:
stdenv.mkDerivation {
name = "curlcpp-20160901";
src = fetchFromGitHub {
owner = "JosephP91";
repo = "curlcpp";
rev = "98286da1d6c9f6158344a8e272eae5030cbf6c0e";
sha256 = "00nm2b8ik1yvaz5dp1b61jid841jv6zf8k5ma2nxbf1di1apqh0d";
};
buildInputs = [ cmake curl ];
meta = with stdenv.lib; {
homepage = "http://josephp91.github.io/curlcpp/";
description = "Object oriented C++ wrapper for CURL";
platforms = platforms.unix ;
license = licenses.mit;
maintainers = [ maintainers.juliendehos ];
};
}

View File

@ -1,4 +1,4 @@
{ stdenv, lib, fetchurl, pkgconfig, expat, systemd, glib, dbus_glib, python
{ stdenv, lib, fetchurl, pkgconfig, expat, systemd
, libX11 ? null, libICE ? null, libSM ? null, x11Support ? (stdenv.isLinux || stdenv.isDarwin) }:
assert x11Support -> libX11 != null

View File

@ -1,13 +1,13 @@
{ stdenv, fetchFromGitHub, libtool, autoconf, automake }:
stdenv.mkDerivation rec {
version = "v0.99.2";
version = "v0.99.4";
name = "fastjson-${version}";
src = fetchFromGitHub {
repo = "libfastjson";
owner = "rsyslog";
rev = "eabae907c9d991143e17da278a239819f2e8ae1c";
sha256 = "17fhaqdn0spc4p0848ahcy68swm6l5yd3bx6bdzxmmwj1jdrmvzk";
rev = "6e057a094cb225c9d80d8d6e6b1f36ca88a942dd";
sha256 = "1pn207p9zns0aqm6z5l5fdgb94wyyhaw83lyvyfdxmai74nbqs65";
};
buildInputs = [ autoconf automake libtool ];

View File

@ -10,7 +10,6 @@
, libgnomeui ? null
, libgnomeprint ? null
, libgnomeprintui ? null
, gnomepanel ? null
, libxml2
, monoDLLFixer
}:
@ -36,7 +35,6 @@ stdenv.mkDerivation {
buildInputs = [
pkgconfig mono glib pango gtk GConf libglade libgnomecanvas
libgtkhtml libgnomeui libgnomeprint libgnomeprintui gtkhtml libxml2
gnomepanel
];
dontStrip = true;

View File

@ -10,7 +10,6 @@
, libgnomeui ? null
, libgnomeprint ? null
, libgnomeprintui ? null
, gnomepanel ? null
, libxml2
, monoDLLFixer
}:
@ -35,7 +34,6 @@ stdenv.mkDerivation {
buildInputs = [
pkgconfig mono glib pango gtk3 GConf libglade libgnomecanvas
libgtkhtml libgnomeui libgnomeprint libgnomeprintui gtkhtml libxml2
gnomepanel
];
dontStrip = true;

View File

@ -1,11 +1,11 @@
{stdenv, fetchurl, cmake, libX11, libuuid, xz}:
stdenv.mkDerivation rec {
name = "itk-4.0.0";
name = "itk-4.10.0";
src = fetchurl {
url = mirror://sourceforge/itk/InsightToolkit-4.0.0.tar.xz;
sha256 = "05z49sw612cbyiaghcsda0xylrkf06jh81ql79si5632w1hpgbd9";
url = mirror://sourceforge/itk/InsightToolkit-4.10.0.tar.xz;
sha256 = "0pxijhqsnwcp9jv1d8p11hsj90k8ajpwxhrnn8kk8c56k7y1207a";
};
cmakeFlags = [

View File

@ -1,17 +1,19 @@
{ stdenv, fetchurl, ncurses, groff }:
stdenv.mkDerivation rec {
name = "libedit-20150325-3.1";
name = "libedit-20160903-3.1";
src = fetchurl {
url = "http://www.thrysoee.dk/editline/${name}.tar.gz";
sha256 = "1if8zi9h52m80ck796an28rrqfljk2n8cn25m3fl0prwz155x2n8";
url = "http://thrysoee.dk/editline/${name}.tar.gz";
sha256 = "0rvmm8z6hal5bbp5pljp7yvkpqi4pkas1amizhvg35v0skkx5jqc";
};
outputs = [ "out" "dev" ];
# Have `configure' avoid `/usr/bin/nroff' in non-chroot builds.
NROFF = "${groff}/bin/nroff";
patches = [ ./01-cygwin.patch ./freebsd-wchar.patch ];
patches = [ ./01-cygwin.patch ];
propagatedBuildInputs = [ ncurses ];
@ -23,7 +25,7 @@ stdenv.mkDerivation rec {
'';
meta = with stdenv.lib; {
homepage = "http://www.thrysoee.dk/editline/";
homepage = http://www.thrysoee.dk/editline/;
description = "A port of the NetBSD Editline library (libedit)";
license = licenses.bsd3;
platforms = platforms.all;

View File

@ -1,13 +0,0 @@
diff --git a/src/chartype.h b/src/chartype.h
index 0beee17..4ac86f3 100644
--- a/src/chartype.h
+++ b/src/chartype.h
@@ -44,7 +44,7 @@
* supports non-BMP code points without requiring UTF-16, but nothing
* seems to actually advertise this properly, despite Unicode 3.1 having
* been around since 2001... */
-#if !defined(__NetBSD__) && !defined(__sun) && !(defined(__APPLE__) && defined(__MACH__)) && !defined(__OpenBSD__)
+#if !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__sun) && !(defined(__APPLE__) && defined(__MACH__)) && !defined(__OpenBSD__)
#ifndef __STDC_ISO_10646__
/* In many places it is assumed that the first 127 code points are ASCII
* compatible, so ensure wchar_t indeed does ISO 10646 and not some other

View File

@ -1,13 +0,0 @@
diff --git a/src/chartype.h b/src/chartype.h
index c35825c..be5aac0 100644
--- a/src/chartype.h
+++ b/src/chartype.h
@@ -44,7 +44,7 @@
* supports non-BMP code points without requiring UTF-16, but nothing
* seems to actually advertise this properly, despite Unicode 3.1 having
* been around since 2001... */
-#if !defined(__NetBSD__) && !defined(__sun) && !(defined(__APPLE__) && defined(__MACH__))
+#if !defined(__NetBSD__) && !defined(__sun) && !(defined(__APPLE__) && defined(__MACH__)) && !defined(__DragonFly__) && !defined(__FreeBSD__)
#ifndef __STDC_ISO_10646__
/* In many places it is assumed that the first 127 code points are ASCII
* compatible, so ensure wchar_t indeed does ISO 10646 and not some other

View File

@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
sha256 = "1mzbqr6sqisppz88mh73bbh5sw57g8l87qvhcjdx5pmbd183idni";
};
outputs = [ "out" "dev" "devdoc" ];
outputs = [ "out" "dev" "devdoc" "info" ];
buildInputs = [ libgcrypt curl gnutls pkgconfig ];
preCheck = ''

View File

@ -1,11 +1,11 @@
{ stdenv, fetchurl, pkgconfig, gnutls, zlib }:
stdenv.mkDerivation rec {
name = "librelp-1.2.8";
name = "librelp-1.2.12";
src = fetchurl {
url = "http://download.rsyslog.com/librelp/${name}.tar.gz";
sha256 = "1qxj7isa2d10aw6c4a9pd3fx08vv06rrhac312avgcjmdqaa88r6";
sha256 = "1mvvxqfsfg96rb6xv3fw7mcsqmyfnsb74sc53gnhpcpp4h2p6m83";
};
buildInputs = [ pkgconfig gnutls zlib ];

View File

@ -2,20 +2,27 @@
stdenv.mkDerivation rec {
name = "nlohmann_json-${version}";
version = "2.0.2";
version = "2.0.3";
src = fetchFromGitHub {
owner = "nlohmann";
repo = "json";
rev = "v${version}";
sha256 = "10sk8d23vh0c7b3qafjz2n8r5jv8vc275bl069ikhqnx1zxv6hwp";
sha256 = "192mg2y93g9q0jdn3fdffydpxk19nsrcv92kfip6srkdkwja18ri";
};
buildInputs = [ cmake ];
nativeBuildInputs = [ cmake ];
doCheck = true;
checkTarget = "test";
crossAttrs = {
cmakeFlags = "-DBuildTests=OFF";
doCheck = false;
} // stdenv.lib.optionalAttrs (stdenv.cross.libc == "msvcrt") {
cmakeFlags = "-DBuildTests=OFF -DCMAKE_SYSTEM_NAME=Windows";
};
meta = with stdenv.lib; {
description = "Header only C++ library for the JSON file format";
homepage = https://github.com/nlohmann/json;

View File

@ -0,0 +1,29 @@
{ stdenv, lib, fetchFromGitHub, autoconf, automake, which, libtool, pkgconfig,
alsaLib, portaudio,
pulseaudioSupport ? true, libpulseaudio }:
stdenv.mkDerivation rec {
name = "pcaudiolib-${version}";
version = "2016-07-19";
src = fetchFromGitHub {
owner = "rhdunn";
repo = "pcaudiolib";
rev = "4f836ea909bdaa8a6e0e89c587efc745b546b459";
sha256 = "0z99nh4ibb9md2cd21762n1dmv6jk988785s1cxd8lsy4hp4pwfa";
};
nativeBuildInputs = [ autoconf automake which libtool pkgconfig ];
buildInputs = [ portaudio alsaLib ] ++ lib.optional pulseaudioSupport libpulseaudio;
preConfigure = "./autogen.sh";
meta = with stdenv.lib; {
description = "Provides a C API to different audio devices";
homepage = "https://github.com/rhdunn/pcaudiolib";
license = licenses.gpl3;
maintainers = with maintainers; [ aske ];
platforms = platforms.linux;
};
}

View File

@ -0,0 +1,25 @@
{ stdenv, fetchFromGitHub }:
stdenv.mkDerivation rec {
name = "sonic-${version}";
version = "2016-03-01";
src = fetchFromGitHub {
owner = "waywardgeek";
repo = "sonic";
rev = "71bdf26c55716a45af50c667c0335a9519e952dd";
sha256 = "1kcl8fdf92kafmfhvyjal5gvkn99brkjyzbi9gw3rd5b30m3xz2b";
};
postPatch = ''
sed -i "s,^PREFIX=.*,PREFIX=$out," Makefile
'';
meta = with stdenv.lib; {
description = "Simple library to speed up or slow down speech";
homepage = "https://github.com/waywardgeek/sonic";
license = licenses.asl20;
maintainers = with maintainers; [ aske ];
platforms = platforms.linux;
};
}

View File

@ -6,11 +6,11 @@
stdenv.mkDerivation rec {
name = "speech-dispatcher-${version}";
version = "0.8.3";
version = "0.8.5";
src = fetchurl {
url = "http://www.freebsoft.org/pub/projects/speechd/${name}.tar.gz";
sha256 = "0kqy7z4l59n2anc7xn588w4rkacig1hajx8c53qrh90ypar978ln";
sha256 = "18jlxnhlahyi6njc6l6576hfvmzivjjgfjyd2n7vvrvx9inphjrb";
};
buildInputs = [ intltool libtool glib dotconf libsndfile libao python3Packages.python ]

View File

@ -47,6 +47,8 @@ stdenv.mkDerivation rec {
configureFlags = with stdenv.lib; [
"--disable-geolocation"
"--disable-jit"
# needed for parallel building
"--enable-dependency-tracking"
(optionalString enableIntrospection "--enable-introspection")
] ++ optional withGtk2 [
"--with-gtk=2.0"
@ -86,7 +88,6 @@ stdenv.mkDerivation rec {
(if withGtk2 then gtk2 else gtk3)
];
# Still fails with transient errors in version 2.4.9.
enableParallelBuilding = false;
enableParallelBuilding = true;
}

View File

@ -5,51 +5,25 @@
stdenv.mkDerivation rec {
name = "wlc-${version}";
version = "v0.0.3";
version = "0.0.5";
chck_repo = "https://github.com/Cloudef/chck";
chck_rev = "fe5e2606b7242aa5d89af2ea9fd048821128d2bc";
wl_protos_repo = "git://anongit.freedesktop.org/wayland/wayland-protocols";
wl_protos_rev = "0b05b70f9da245582f01581be4ca36db683682b8";
wl_protos_rev_short = "0b05b70";
srcs = [
(fetchFromGitHub {
owner = "Cloudef";
repo = "wlc";
rev = version;
sha256 = "0l29axg4y7qjd5hf3kgf38hkjykb4mcsjkba0zdm583kkjzdzkb2";
})
(fetchurl {
url = "${chck_repo}/archive/${chck_rev}.tar.gz";
sha256 = "ca316b544c48e837c32f08d613be42da10e0a3251e8e4488d1848b91ef92ab9e";
})
(fetchgit {
url = "${wl_protos_repo}";
rev = "${wl_protos_rev}";
sha256 = "9c1cfbb570142b2109ecef4d11b17f25e94ed2e0569f522ea56f244c60465224";
})
];
sourceRoot = "wlc-${version}-src";
postUnpack = ''
rm -rf wlc-*/lib/chck ${sourceRoot}/protos/wayland-protocols
ln -s ../../chck-${chck_rev} ${sourceRoot}/lib/chck
ln -s ../../wayland-protocols-${wl_protos_rev_short} ${sourceRoot}/protos/wayland-protocols
'';
src = fetchgit {
url = "https://github.com/Cloudef/wlc";
rev = "refs/tags/v${version}";
sha256 = "0pg95n488fjlkc8n8x1h2dh4mxb7qln6mrq906lwwqv94aks9b43";
fetchSubmodules = true;
};
nativeBuildInputs = [ cmake pkgconfig ];
buildInputs = [
wayland pixman libxkbcommon libinput libxcb xcbutilwm xcbutilimage mesa libdrm udev
libpthreadstubs libX11 libXau libXdmcp libXext libXdamage libxshmfence libXxf86vm
systemd dbus_libs
libX11 libXdamage systemd dbus_libs
];
makeFlags = "PREFIX=$(out) -lchck";
installPhase = "PREFIX=$out make install";
doCheck = true;
checkTarget = "test";
meta = {
description = "A library for making a simple Wayland compositor";

View File

@ -1,15 +1,18 @@
{ stdenv, composableDerivation, fetchurl, xapian, pkgconfig, zlib
, python ? null, php ? null, ruby ? null }:
, python ? null, sphinx ? null, php ? null, ruby ? null }:
assert (python != null) -> (sphinx != null);
let inherit (composableDerivation) wwf; in
composableDerivation.composableDerivation {} rec {
name = "xapian-bindings-1.2.23";
name = "xapian-bindings-${version}";
version = (builtins.parseDrvName xapian.name).version;
src = fetchurl {
url = "http://oligarchy.co.uk/xapian/1.2.23/${name}.tar.xz";
sha256 = "05929d9bq9df25kh2i6gk2w09w7p5qknf9cc7mrm2g46finbbd0r";
url = "http://oligarchy.co.uk/xapian/${version}/${name}.tar.xz";
sha256 = "0lv2zblayfax4v7z3sj067b0av0phf3gc2s2d1cvkw0bkl07mv1s";
};
buildInputs = [ xapian pkgconfig zlib ];
@ -19,7 +22,18 @@ composableDerivation.composableDerivation {} rec {
wwf {
name = "python";
enable = {
buildInputs = [ python ];
buildInputs = [ python sphinx ];
# Our `sphinx-build` binary is a shell wrapper around
# `sphinx-build` python code. Makefile tries to execute it
# using python2 and fails. Fixing that here.
patchPhase = ''
for a in python/Makefile* ; do
substituteInPlace $a \
--replace '$(PYTHON2) $(SPHINX_BUILD)' '$(SPHINX_BUILD)'
done
'';
# export same env vars as in pythonNew
preConfigure = ''
export PYTHON_LIB=$out/lib/${python.libPrefix}/site-packages

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
name = "xapian-${version}";
version = "1.2.23";
version = "1.4.0";
src = fetchurl {
url = "http://oligarchy.co.uk/xapian/${version}/xapian-core-${version}.tar.xz";
sha256 = "0z9lhvfaazzmd611bnii9a0d19sqnjs0s9vbcgjhcv8s9spax0wp";
sha256 = "0xv4da5rmqqzkkkzx2v3jwh5hz5zxhd2b7m8x30fk99a25blyn0h";
};
outputs = [ "out" "doc" ];

View File

@ -1,15 +1,15 @@
{ stdenv, fetchurl, pkgconfig, xapian, perl, pcre, zlib }:
{ stdenv, fetchurl, pkgconfig, xapian, perl, pcre, zlib, libmagic }:
stdenv.mkDerivation rec {
name = "xapian-omega-${version}";
version = "1.2.21";
version = (builtins.parseDrvName xapian.name).version;
src = fetchurl {
url = "http://oligarchy.co.uk/xapian/${version}/xapian-omega-${version}.tar.xz";
sha256 = "0zjjr4ypanwrjkcpgi37d72v2jjcfwnw8lgddv0i7z2jf1fklbc6";
sha256 = "07s341m1csk4v7mc44mqrzc1nxpnmdkji9k1cirbx6q0nlshdz0h";
};
buildInputs = [ pkgconfig xapian perl pcre zlib ];
buildInputs = [ pkgconfig xapian perl pcre zlib libmagic ];
meta = with stdenv.lib; {
description = "Indexer and CGI search front-end built on Xapian library";

View File

@ -1,11 +1,11 @@
{ stdenv, fetchurl, buildPerlPackage, DBI, sqlite }:
buildPerlPackage rec {
name = "DBD-SQLite-1.48";
name = "DBD-SQLite-1.50";
src = fetchurl {
url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/${name}.tar.gz";
sha256 = "19hf0fc4dlnpmxsxx3jjbh2z6d2jafgdlqhwz4irkp2cbl7j75xk";
sha256 = "1qcw2nzla03ywrl6mx1qklvbc8n5bn4gxqbjnvadfkwlffmi7i9s";
};
propagatedBuildInputs = [ DBI ];
@ -37,7 +37,7 @@ buildPerlPackage rec {
# Disabled because the tests can randomly fail due to timeouts
# (e.g. "database is locked(5) at dbdimp.c line 402 at t/07busy.t").
doCheck = false;
#doCheck = false;
meta.platforms = stdenv.lib.platforms.unix;
}

View File

@ -1,8 +1,9 @@
{ stdenv, fetchurl, python, mkPythonDerivation, pkgconfig, glib }:
mkPythonDerivation rec {
name = "pygobject-2.28.6";
name = "pygobject-${version}";
version = "2.28.6";
src = fetchurl {
url = "mirror://gnome/sources/pygobject/2.28/${name}.tar.xz";
sha256 = "1f5dfxjnil2glfwxnqr14d2cjfbkghsbsn8n04js2c2icr7iv2pv";

View File

@ -44,7 +44,7 @@ buildPythonPackage rec {
postInstall = ''
rm $out/bin/pygtk-codegen-2.0
ln -s ${pygobject}/bin/pygobject-codegen-2.0 $out/bin/pygtk-codegen-2.0
ln -s ${pygobject}/lib/${python.libPrefix}/site-packages/${pygobject.name}.pth \
ln -s ${pygobject}/lib/${python.libPrefix}/site-packages/pygobject-${pygobject.version}.pth \
$out/lib/${python.libPrefix}/site-packages/${name}.pth
'';
}

View File

@ -14,6 +14,7 @@ in mkPythonDerivation {
configurePhase = ''
mkdir -p $out
lndir ${dbus-python} $out
rm -rf "$out/nix-support"
export PYTHONPATH=$PYTHONPATH:$out/lib/${python.libPrefix}/site-packages

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