mirror of
https://github.com/ilyakooo0/nixpkgs.git
synced 2024-09-27 15:49:39 +03:00
Merge remote-tracking branch 'origin/master' into staging
This commit is contained in:
commit
7c239702b5
@ -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"]
|
||||
}
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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>
|
||||
|
@ -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>";
|
||||
|
@ -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>
|
||||
|
@ -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
|
||||
|
@ -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"
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
}
|
||||
|
30
nixos/modules/programs/info.nix
Normal file
30
nixos/modules/programs/info.nix
Normal 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" ];
|
||||
|
||||
};
|
||||
|
||||
}
|
@ -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";
|
||||
|
@ -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.<name?>.shell</option>
|
||||
option for that user. To enable zsh system-wide use the
|
||||
<option>users.defaultUserShell</option> option.
|
||||
'';
|
||||
type = types.bool;
|
||||
};
|
||||
|
@ -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 ];
|
||||
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
187
nixos/modules/services/networking/quagga.nix
Normal file
187
nixos/modules/services/networking/quagga.nix
Normal 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 ];
|
||||
|
||||
}
|
@ -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";
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
};
|
||||
|
||||
|
@ -654,6 +654,8 @@ in
|
||||
${xrandrMonitorSections}
|
||||
'';
|
||||
|
||||
fonts.enableDefaultFonts = mkDefault true;
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -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" ];
|
||||
};
|
||||
|
||||
|
@ -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
|
||||
|
@ -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}" ]; };
|
||||
|
@ -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 {};
|
||||
|
157
nixos/tests/etcd-cluster.nix
Normal file
157
nixos/tests/etcd-cluster.nix
Normal 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'");
|
||||
};
|
||||
'';
|
||||
})
|
@ -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
72
nixos/tests/ferm.nix
Normal 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
97
nixos/tests/quagga.nix
Normal 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");
|
||||
'';
|
||||
})
|
@ -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; };
|
||||
|
||||
|
24
pkgs/applications/altcoins/ethabi.nix
Normal file
24
pkgs/applications/altcoins/ethabi.nix
Normal 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;
|
||||
};
|
||||
}
|
89
pkgs/applications/audio/airwave/default.nix
Normal file
89
pkgs/applications/audio/airwave/default.nix
Normal 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 = [];
|
||||
};
|
||||
}
|
35
pkgs/applications/audio/espeak-ng/default.nix
Normal file
35
pkgs/applications/audio/espeak-ng/default.nix
Normal 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;
|
||||
};
|
||||
}
|
@ -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; ''
|
||||
|
69
pkgs/applications/audio/transcribe/default.nix
Normal file
69
pkgs/applications/audio/transcribe/default.nix
Normal 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 ];
|
||||
};
|
||||
}
|
@ -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;
|
||||
|
@ -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";
|
||||
};
|
||||
}
|
||||
|
@ -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";
|
||||
|
@ -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" ];
|
||||
|
@ -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'
|
||||
'';
|
||||
|
30
pkgs/applications/misc/osmctools/default.nix
Normal file
30
pkgs/applications/misc/osmctools/default.nix
Normal 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;
|
||||
};
|
||||
}
|
@ -16,8 +16,12 @@ stdenv.mkDerivation rec {
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p "$out/bin"
|
||||
cp bin/* "$out/bin"
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = {
|
||||
|
@ -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 = ''
|
||||
|
@ -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 = ''
|
||||
|
@ -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 =
|
||||
|
@ -26,7 +26,7 @@ in stdenv.mkDerivation rec {
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
${python.interpreter}setup.py build
|
||||
${python.interpreter} setup.py build
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
|
21
pkgs/applications/networking/tcpkali/default.nix
Normal file
21
pkgs/applications/networking/tcpkali/default.nix
Normal 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 ];
|
||||
};
|
||||
}
|
3
pkgs/applications/office/ledger-web/Gemfile
Normal file
3
pkgs/applications/office/ledger-web/Gemfile
Normal file
@ -0,0 +1,3 @@
|
||||
source 'https://rubygems.org'
|
||||
|
||||
gem 'ledger_web'
|
61
pkgs/applications/office/ledger-web/Gemfile.lock
Normal file
61
pkgs/applications/office/ledger-web/Gemfile.lock
Normal 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
|
52
pkgs/applications/office/ledger-web/default.nix
Normal file
52
pkgs/applications/office/ledger-web/default.nix
Normal 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}
|
||||
'';
|
||||
}
|
164
pkgs/applications/office/ledger-web/gemset.nix
Normal file
164
pkgs/applications/office/ledger-web/gemset.nix
Normal 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";
|
||||
};
|
||||
}
|
@ -268,5 +268,6 @@ in stdenv.mkDerivation rec {
|
||||
maintainers = with maintainers; [ viric raskin ];
|
||||
platforms = platforms.linux;
|
||||
hydraPlatforms = [];
|
||||
requiredSystemFeatures = [ "big-parallel" ];
|
||||
};
|
||||
}
|
||||
|
@ -271,5 +271,6 @@ in stdenv.mkDerivation rec {
|
||||
license = licenses.lgpl3;
|
||||
maintainers = with maintainers; [ viric raskin ];
|
||||
platforms = platforms.linux;
|
||||
requiredSystemFeatures = [ "big-parallel" ];
|
||||
};
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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 {
|
||||
|
@ -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
|
||||
|
@ -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" ];
|
||||
|
@ -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 () {
|
||||
|
@ -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/"
|
||||
|
@ -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 ] ++
|
||||
|
@ -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; [ ];
|
||||
|
@ -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 ];
|
||||
|
20
pkgs/build-support/emacs/buffer.nix
Normal file
20
pkgs/build-support/emacs/buffer.nix
Normal 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
|
||||
'';
|
||||
}
|
@ -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"
|
||||
'';
|
||||
|
||||
|
||||
|
@ -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";
|
||||
|
@ -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";
|
||||
}
|
||||
|
@ -45,5 +45,6 @@ in stdenv.mkDerivation rec {
|
||||
maintainers = gnome3.maintainers;
|
||||
license = licenses.lgpl2Plus;
|
||||
platforms = platforms.linux;
|
||||
requiredSystemFeatures = [ "big-parallel" ];
|
||||
};
|
||||
}
|
||||
|
@ -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;
|
||||
};
|
||||
|
@ -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 ];
|
||||
};
|
||||
}
|
||||
|
@ -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" <<
|
@ -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 = ''
|
||||
|
@ -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;
|
||||
};
|
||||
|
@ -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 // {
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
||||
|
23
pkgs/development/libraries/curlcpp/default.nix
Normal file
23
pkgs/development/libraries/curlcpp/default.nix
Normal 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 ];
|
||||
};
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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 ];
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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 = [
|
||||
|
@ -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;
|
||||
|
@ -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
|
@ -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
|
@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
|
||||
sha256 = "1mzbqr6sqisppz88mh73bbh5sw57g8l87qvhcjdx5pmbd183idni";
|
||||
};
|
||||
|
||||
outputs = [ "out" "dev" "devdoc" ];
|
||||
outputs = [ "out" "dev" "devdoc" "info" ];
|
||||
buildInputs = [ libgcrypt curl gnutls pkgconfig ];
|
||||
|
||||
preCheck = ''
|
||||
|
@ -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 ];
|
||||
|
@ -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;
|
||||
|
29
pkgs/development/libraries/pcaudiolib/default.nix
Normal file
29
pkgs/development/libraries/pcaudiolib/default.nix
Normal 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;
|
||||
};
|
||||
}
|
25
pkgs/development/libraries/sonic/default.nix
Normal file
25
pkgs/development/libraries/sonic/default.nix
Normal 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;
|
||||
};
|
||||
}
|
@ -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 ]
|
||||
|
@ -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;
|
||||
|
||||
}
|
||||
|
@ -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";
|
||||
|
@ -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
|
||||
|
@ -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" ];
|
||||
|
@ -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";
|
@ -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;
|
||||
}
|
||||
|
@ -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";
|
||||
|
@ -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
|
||||
'';
|
||||
}
|
||||
|
@ -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
Loading…
Reference in New Issue
Block a user