Merge branch 'master' into nitrogen. Added maintainer and license.
Conflicts: pkgs/tools/X11/nitrogen/default.nix
This commit is contained in:
commit
2784866ffd
@ -446,7 +446,7 @@ xlink:href='http://nixos.org/releases/nix/nix-0.10/'>Nix
|
||||
<literal>stdenv</literal>; the formed changes the C compiler, and
|
||||
the latter adds additional packages to the front of
|
||||
<literal>stdenv</literal>’s initial <envar>PATH</envar>, allowing
|
||||
tools to be overriden.</para>
|
||||
tools to be overridden.</para>
|
||||
|
||||
<para>For instance, the package <varname>strategoxt</varname>
|
||||
doesn’t build with the GNU Make in <literal>stdenv</literal>
|
||||
|
@ -56,7 +56,7 @@ details.)</para>
|
||||
<para>Often it is necessary to override or modify some aspect of the
|
||||
build. To make this easier, the standard environment breaks the
|
||||
package build into a number of <emphasis>phases</emphasis>, all of
|
||||
which can be overriden or modified individually: unpacking the
|
||||
which can be overridden or modified individually: unpacking the
|
||||
sources, applying patches, configuring, building, and installing.
|
||||
(There are some others; see <xref linkend="ssec-stdenv-phases"/>.)
|
||||
For instance, a package that doesn’t supply a makefile but instead has
|
||||
@ -233,7 +233,7 @@ specific parts of the build (e.g., unpacking the sources or installing
|
||||
the binaries). Furthermore, it allows a nicer presentation of build
|
||||
logs in the Nix build farm.</para>
|
||||
|
||||
<para>Each phase can be overriden in its entirety either by setting
|
||||
<para>Each phase can be overridden in its entirety either by setting
|
||||
the environment variable
|
||||
<varname><replaceable>name</replaceable>Phase</varname> to a string
|
||||
containing some shell commands to be executed, or by redefining the
|
||||
|
@ -17,6 +17,7 @@
|
||||
arobyn = "Alexei Robyn <shados@shados.net>";
|
||||
astsmtl = "Alexander Tsamutali <astsmtl@yandex.ru>";
|
||||
aszlig = "aszlig <aszlig@redmoonstudios.org>";
|
||||
auntie = "Jonathan Glines <auntieNeo@gmail.com>";
|
||||
bbenoist = "Baptist BENOIST <return_0@live.com>";
|
||||
bennofs = "Benno Fünfstück <benno.fuenfstueck@gmail.com>";
|
||||
berdario = "Dario Bertini <berdario@gmail.com>";
|
||||
@ -45,6 +46,7 @@
|
||||
iElectric = "Domen Kozar <domen@dev.si>";
|
||||
iyzsong = "Song Wenwu <iyzsong@gmail.com>";
|
||||
jcumming = "Jack Cummings <jack@mudshark.org>";
|
||||
joamaki = "Jussi Maki <joamaki@gmail.com>";
|
||||
joelteon = "Joel Taylor <me@joelt.io>";
|
||||
jwiegley = "John Wiegley <johnw@newartisans.com>";
|
||||
kkallio = "Karn Kallio <tierpluspluslists@gmail.com>";
|
||||
|
@ -58,12 +58,13 @@ rec {
|
||||
|
||||
# Determine whether a string has given prefix/suffix.
|
||||
hasPrefix = pref: str:
|
||||
substring 0 (stringLength pref) str == pref;
|
||||
eqStrings (substring 0 (stringLength pref) str) pref;
|
||||
hasSuffix = suff: str:
|
||||
let lenStr = stringLength str;
|
||||
lenSuff = stringLength suff;
|
||||
let
|
||||
lenStr = stringLength str;
|
||||
lenSuff = stringLength suff;
|
||||
in lenStr >= lenSuff &&
|
||||
substring (lenStr - lenSuff) lenStr str == suff;
|
||||
eqStrings (substring (lenStr - lenSuff) lenStr str) suff;
|
||||
|
||||
|
||||
# Convert a string to a list of characters (i.e. singleton strings).
|
||||
@ -118,17 +119,21 @@ rec {
|
||||
toLower = replaceChars upperChars lowerChars;
|
||||
toUpper = replaceChars lowerChars upperChars;
|
||||
|
||||
# Appends string context from another string
|
||||
addContextFrom = a: b: (substring 0 0 a)+b;
|
||||
|
||||
# Compares strings not requiring context equality
|
||||
# Obviously, a workaround but works on all Nix versions
|
||||
eqStrings = a: b: (a+(substring 0 0 b)) == ((substring 0 0 a)+b);
|
||||
eqStrings = a: b: addContextFrom b a == addContextFrom a b;
|
||||
|
||||
|
||||
# Cut a string with a separator and produces a list of strings which were
|
||||
# separated by this separator. e.g.,
|
||||
# `splitString "." "foo.bar.baz"' returns ["foo" "bar" "baz"].
|
||||
splitString = sep: s:
|
||||
splitString = _sep: _s:
|
||||
let
|
||||
sep = addContextFrom _s _sep;
|
||||
s = addContextFrom _sep _s;
|
||||
sepLen = stringLength sep;
|
||||
sLen = stringLength s;
|
||||
lastSearch = sub sLen sepLen;
|
||||
@ -167,7 +172,7 @@ rec {
|
||||
sufLen = stringLength suf;
|
||||
sLen = stringLength s;
|
||||
in
|
||||
if sufLen <= sLen && suf == substring (sLen - sufLen) sufLen s then
|
||||
if sufLen <= sLen && eqStrings suf (substring (sLen - sufLen) sufLen s) then
|
||||
substring 0 (sLen - sufLen) s
|
||||
else
|
||||
s;
|
||||
|
@ -873,7 +873,7 @@ Any package in Nixpkgs that depends on <literal>emacs</literal> will
|
||||
be passed your customised instance. (However, the value
|
||||
<literal>pkgs.emacs</literal> in
|
||||
<varname>nixpkgs.config.packageOverrides</varname> refers to the
|
||||
original rather than overriden instance, to prevent an infinite
|
||||
original rather than overridden instance, to prevent an infinite
|
||||
recursion.)</para>
|
||||
|
||||
</section>
|
||||
|
@ -12,11 +12,11 @@ let
|
||||
declarations = map (fn: stripPrefix fn) opt.declarations;
|
||||
});
|
||||
|
||||
prefix = toString pkgs.path;
|
||||
prefix = toString ../../..;
|
||||
|
||||
stripPrefix = fn:
|
||||
if substring 0 (stringLength prefix) fn == prefix then
|
||||
substring (add (stringLength prefix) 1) 1000 fn
|
||||
substring (stringLength prefix + 1) 1000 fn
|
||||
else
|
||||
fn;
|
||||
|
||||
|
@ -76,7 +76,7 @@ in
|
||||
|
||||
environment.systemPackages = [ glibcLocales ];
|
||||
|
||||
environment.variables =
|
||||
environment.sessionVariables =
|
||||
{ LANG = config.i18n.defaultLocale;
|
||||
LOCALE_ARCHIVE = "/run/current-system/sw/lib/locale/locale-archive";
|
||||
};
|
||||
|
@ -19,6 +19,7 @@ in
|
||||
default = {};
|
||||
description = ''
|
||||
A set of environment variables used in the global environment.
|
||||
These variables will be set on shell initialisation.
|
||||
The value of each variable can be either a string or a list of
|
||||
strings. The latter is concatenated, interspersed with colon
|
||||
characters.
|
||||
@ -148,6 +149,12 @@ in
|
||||
|
||||
system.build.binsh = pkgs.bashInteractive;
|
||||
|
||||
# Set session variables in the shell as well. This is usually
|
||||
# unnecessary, but it allows changes to session variables to take
|
||||
# effect without restarting the session (e.g. by opening a new
|
||||
# terminal instead of logging out of X11).
|
||||
environment.variables = config.environment.sessionVariables;
|
||||
|
||||
environment.etc."shells".text =
|
||||
''
|
||||
${concatStringsSep "\n" cfg.shells}
|
||||
|
56
nixos/modules/config/system-environment.nix
Normal file
56
nixos/modules/config/system-environment.nix
Normal file
@ -0,0 +1,56 @@
|
||||
# This module defines a system-wide environment that will be
|
||||
# initialised by pam_env (that is, not only in shells).
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
|
||||
cfg = config.environment;
|
||||
|
||||
in
|
||||
|
||||
{
|
||||
|
||||
options = {
|
||||
|
||||
environment.sessionVariables = mkOption {
|
||||
default = {};
|
||||
description = ''
|
||||
A set of environment variables used in the global environment.
|
||||
These variables will be set by PAM.
|
||||
The value of each variable can be either a string or a list of
|
||||
strings. The latter is concatenated, interspersed with colon
|
||||
characters.
|
||||
'';
|
||||
type = types.attrsOf (mkOptionType {
|
||||
name = "a string or a list of strings";
|
||||
merge = loc: defs:
|
||||
let
|
||||
defs' = filterOverrides defs;
|
||||
res = (head defs').value;
|
||||
in
|
||||
if isList res then concatLists (getValues defs')
|
||||
else if lessThan 1 (length defs') then
|
||||
throw "The option `${showOption loc}' is defined multiple times, in ${showFiles (getFiles defs)}."
|
||||
else if !isString res then
|
||||
throw "The option `${showOption loc}' does not have a string value, in ${showFiles (getFiles defs)}."
|
||||
else res;
|
||||
});
|
||||
apply = mapAttrs (n: v: if isList v then concatStringsSep ":" v else v);
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
config = {
|
||||
|
||||
system.build.pamEnvironment = pkgs.writeText "pam-environment"
|
||||
''
|
||||
${concatStringsSep "\n" (
|
||||
(mapAttrsToList (n: v: ''${n}="${concatStringsSep ":" v}"'')
|
||||
(zipAttrsWith (const concatLists) ([ (mapAttrs (n: v: [ v ]) cfg.sessionVariables) ]))))}
|
||||
'';
|
||||
|
||||
};
|
||||
|
||||
}
|
@ -30,7 +30,7 @@ in
|
||||
|
||||
config = {
|
||||
|
||||
environment.variables.TZDIR = "/etc/zoneinfo";
|
||||
environment.sessionVariables.TZDIR = "/etc/zoneinfo";
|
||||
|
||||
systemd.globalEnvironment.TZDIR = tzdir;
|
||||
|
||||
|
138
nixos/modules/config/zram.nix
Normal file
138
nixos/modules/config/zram.nix
Normal file
@ -0,0 +1,138 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
|
||||
cfg = config.zramSwap;
|
||||
|
||||
devices = map (nr: "zram${toString nr}") (range 0 (cfg.numDevices - 1));
|
||||
|
||||
modprobe = "${config.system.sbin.modprobe}/sbin/modprobe";
|
||||
|
||||
in
|
||||
|
||||
{
|
||||
|
||||
###### interface
|
||||
|
||||
options = {
|
||||
|
||||
zramSwap = {
|
||||
|
||||
enable = mkOption {
|
||||
default = false;
|
||||
type = types.bool;
|
||||
description = ''
|
||||
Enable in-memory compressed swap space provided by the zram kernel
|
||||
module. It is recommended to enable only for kernel 3.14 or higher.
|
||||
'';
|
||||
};
|
||||
|
||||
numDevices = mkOption {
|
||||
default = 4;
|
||||
type = types.int;
|
||||
description = ''
|
||||
Number of zram swap devices to create. It should be equal to the
|
||||
number of CPU cores your system has.
|
||||
'';
|
||||
};
|
||||
|
||||
memoryPercent = mkOption {
|
||||
default = 50;
|
||||
type = types.int;
|
||||
description = ''
|
||||
Maximum amount of memory that can be used by the zram swap devices
|
||||
(as a percentage of your total memory). Defaults to 1/2 of your total
|
||||
RAM.
|
||||
'';
|
||||
};
|
||||
|
||||
priority = mkOption {
|
||||
default = 5;
|
||||
type = types.int;
|
||||
description = ''
|
||||
Priority of the zram swap devices. It should be a number higher than
|
||||
the priority of your disk-based swap devices (so that the system will
|
||||
fill the zram swap devices before falling back to disk swap).
|
||||
'';
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
|
||||
system.requiredKernelConfig = with config.lib.kernelConfig; [
|
||||
(isModule "ZRAM")
|
||||
];
|
||||
|
||||
# Disabling this for the moment, as it would create and mkswap devices twice,
|
||||
# once in stage 2 boot, and again when the zram-reloader service starts.
|
||||
# boot.kernelModules = [ "zram" ];
|
||||
|
||||
boot.extraModprobeConfig = ''
|
||||
options zram num_devices=${toString cfg.numDevices}
|
||||
'';
|
||||
|
||||
services.udev.extraRules = ''
|
||||
KERNEL=="zram[0-9]*", ENV{SYSTEMD_WANTS}="zram-init-%k.service", TAG+="systemd"
|
||||
'';
|
||||
|
||||
systemd.services =
|
||||
let
|
||||
createZramInitService = dev:
|
||||
nameValuePair "zram-init-${dev}" {
|
||||
description = "Init swap on zram-based device ${dev}";
|
||||
bindsTo = [ "dev-${dev}.swap" ];
|
||||
after = [ "dev-${dev}.device" "zram-reloader.service" ];
|
||||
requires = [ "dev-${dev}.device" "zram-reloader.service" ];
|
||||
before = [ "dev-${dev}.swap" ];
|
||||
requiredBy = [ "dev-${dev}.swap" ];
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
RemainAfterExit = true;
|
||||
ExecStop = "${pkgs.stdenv.shell} -c 'echo 1 > /sys/class/block/${dev}/reset'";
|
||||
};
|
||||
script = ''
|
||||
set -u
|
||||
set -o pipefail
|
||||
|
||||
PATH=${pkgs.procps}/bin:${pkgs.gnugrep}/bin:${pkgs.gnused}/bin
|
||||
|
||||
# Calculate memory to use for zram
|
||||
totalmem=$(free | grep -e "^Mem:" | sed -e 's/^Mem: *//' -e 's/ *.*//')
|
||||
mem=$(((totalmem * ${toString cfg.memoryPercent} / 100 / ${toString cfg.numDevices}) * 1024))
|
||||
|
||||
echo $mem > /sys/class/block/${dev}/disksize
|
||||
${pkgs.utillinux}/sbin/mkswap /dev/${dev}
|
||||
'';
|
||||
restartIfChanged = false;
|
||||
};
|
||||
in listToAttrs ((map createZramInitService devices) ++ [(nameValuePair "zram-reloader"
|
||||
{
|
||||
description = "Reload zram kernel module when number of devices changes";
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
RemainAfterExit = true;
|
||||
ExecStartPre = "${modprobe} -r zram";
|
||||
ExecStart = "${modprobe} zram";
|
||||
ExecStop = "${modprobe} -r zram";
|
||||
};
|
||||
restartTriggers = [ cfg.numDevices ];
|
||||
restartIfChanged = true;
|
||||
})]);
|
||||
|
||||
swapDevices =
|
||||
let
|
||||
useZramSwap = dev:
|
||||
{
|
||||
device = "/dev/${dev}";
|
||||
priority = cfg.priority;
|
||||
};
|
||||
in map useZramSwap devices;
|
||||
|
||||
};
|
||||
|
||||
}
|
@ -19,7 +19,7 @@ with lib;
|
||||
# ISO naming.
|
||||
isoImage.isoName = "${config.isoImage.isoBaseName}-${config.system.nixosVersion}-${pkgs.stdenv.system}.iso";
|
||||
|
||||
isoImage.volumeID = substring 0 11 "NIXOS_${config.system.nixosVersion}";
|
||||
isoImage.volumeID = substring 0 11 "NIXOS_ISO";
|
||||
|
||||
# Make the installer more likely to succeed in low memory
|
||||
# environments. The kernel's overcommit heustistics bite us
|
||||
|
@ -6,4 +6,4 @@ let nodes = import networkExpr; in
|
||||
|
||||
with import ../../../../lib/testing.nix { inherit system; };
|
||||
|
||||
(complete { inherit nodes; testScript = ""; }).driver
|
||||
(makeTest { inherit nodes; testScript = ""; }).driver
|
||||
|
@ -466,7 +466,7 @@ $bootLoaderConfig
|
||||
# };
|
||||
|
||||
# List packages installed in system profile. To search by name, run:
|
||||
# $ nix-env -qaP | grep wget
|
||||
# \$ nix-env -qaP | grep wget
|
||||
# environment.systemPackages = with pkgs; [
|
||||
# wget
|
||||
# ];
|
||||
|
@ -133,6 +133,7 @@
|
||||
spiped = 123;
|
||||
teamspeak = 124;
|
||||
influxdb = 125;
|
||||
nsd = 126;
|
||||
|
||||
# When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399!
|
||||
|
||||
@ -240,6 +241,7 @@
|
||||
spiped = 123;
|
||||
teamspeak = 124;
|
||||
influxdb = 125;
|
||||
nsd = 126;
|
||||
|
||||
# When adding a gid, make sure it doesn't match an existing uid. And don't use gids above 399!
|
||||
|
||||
|
@ -14,12 +14,14 @@
|
||||
./config/power-management.nix
|
||||
./config/pulseaudio.nix
|
||||
./config/shells-environment.nix
|
||||
./config/system-environment.nix
|
||||
./config/swap.nix
|
||||
./config/sysctl.nix
|
||||
./config/system-path.nix
|
||||
./config/timezone.nix
|
||||
./config/unix-odbc-drivers.nix
|
||||
./config/users-groups.nix
|
||||
./config/zram.nix
|
||||
./hardware/all-firmware.nix
|
||||
./hardware/cpu/intel-microcode.nix
|
||||
./hardware/cpu/amd-microcode.nix
|
||||
@ -205,6 +207,7 @@
|
||||
./services/networking/networkmanager.nix
|
||||
./services/networking/ngircd.nix
|
||||
./services/networking/notbit.nix
|
||||
./services/networking/nsd.nix
|
||||
./services/networking/ntopng.nix
|
||||
./services/networking/ntpd.nix
|
||||
./services/networking/oidentd.nix
|
||||
@ -255,6 +258,7 @@
|
||||
./services/ttys/agetty.nix
|
||||
./services/ttys/kmscon.nix
|
||||
./services/web-servers/apache-httpd/default.nix
|
||||
./services/web-servers/fcgiwrap.nix
|
||||
./services/web-servers/jboss/default.nix
|
||||
./services/web-servers/lighttpd/default.nix
|
||||
./services/web-servers/lighttpd/cgit.nix
|
||||
@ -322,6 +326,7 @@
|
||||
./tasks/network-interfaces.nix
|
||||
./tasks/scsi-link-power-management.nix
|
||||
./tasks/swraid.nix
|
||||
./tasks/trackpoint.nix
|
||||
./testing/service-runner.nix
|
||||
./virtualisation/container-config.nix
|
||||
./virtualisation/containers.nix
|
||||
|
@ -19,13 +19,16 @@ in
|
||||
environment.variables =
|
||||
{ LOCATE_PATH = "/var/cache/locatedb";
|
||||
NIXPKGS_CONFIG = "/etc/nix/nixpkgs-config.nix";
|
||||
NIX_PATH =
|
||||
PAGER = "less -R";
|
||||
EDITOR = "nano";
|
||||
};
|
||||
|
||||
environment.sessionVariables =
|
||||
{ NIX_PATH =
|
||||
[ "/nix/var/nix/profiles/per-user/root/channels/nixos"
|
||||
"nixpkgs=/etc/nixos/nixpkgs"
|
||||
"nixos-config=/etc/nixos/configuration.nix"
|
||||
];
|
||||
PAGER = "less -R";
|
||||
EDITOR = "nano";
|
||||
};
|
||||
|
||||
environment.profiles =
|
||||
|
@ -12,9 +12,11 @@ with lib;
|
||||
}
|
||||
];
|
||||
|
||||
environment.variables.OPENSSL_X509_CERT_FILE = "/etc/ssl/certs/ca-bundle.crt";
|
||||
environment.variables.CURL_CA_BUNDLE = "/etc/ssl/certs/ca-bundle.crt";
|
||||
environment.variables.GIT_SSL_CAINFO = "/etc/ssl/certs/ca-bundle.crt";
|
||||
environment.sessionVariables =
|
||||
{ OPENSSL_X509_CERT_FILE = "/etc/ssl/certs/ca-bundle.crt";
|
||||
CURL_CA_BUNDLE = "/etc/ssl/certs/ca-bundle.crt";
|
||||
GIT_SSL_CAINFO = "/etc/ssl/certs/ca-bundle.crt";
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
|
@ -186,6 +186,7 @@ let
|
||||
"password optional ${pkgs.samba}/lib/security/pam_smbpass.so nullok use_authtok try_first_pass"}
|
||||
|
||||
# Session management.
|
||||
session required pam_env.so envfile=${config.system.build.pamEnvironment}
|
||||
session required pam_unix.so
|
||||
${optionalString cfg.setLoginUid
|
||||
"session required pam_loginuid.so"}
|
||||
|
@ -58,9 +58,6 @@ in
|
||||
# Don't edit this file. Set the NixOS option ‘security.sudo.configFile’ instead.
|
||||
|
||||
# Environment variables to keep for root and %wheel.
|
||||
Defaults:root,%wheel env_keep+=LOCALE_ARCHIVE
|
||||
Defaults:root,%wheel env_keep+=NIX_CONF_DIR
|
||||
Defaults:root,%wheel env_keep+=NIX_PATH
|
||||
Defaults:root,%wheel env_keep+=TERMINFO_DIRS
|
||||
Defaults:root,%wheel env_keep+=TERMINFO
|
||||
|
||||
@ -81,10 +78,13 @@ in
|
||||
security.pam.services.sudo = { sshAgentAuth = true; };
|
||||
|
||||
environment.etc = singleton
|
||||
{ source = pkgs.writeText "sudoers-in" cfg.configFile;
|
||||
{ source =
|
||||
pkgs.runCommand "sudoers"
|
||||
{src = pkgs.writeText "sudoers-in" cfg.configFile; }
|
||||
# Make sure that the sudoers file is syntactically valid.
|
||||
# (currently disabled - NIXOS-66)
|
||||
#"${pkgs.sudo}/sbin/visudo -f $src -c && cp $src $out";
|
||||
"${pkgs.sudo.override {keepVisudo = true;}}/sbin/visudo -f $src -c &&
|
||||
cp $src $out";
|
||||
target = "sudoers";
|
||||
mode = "0440";
|
||||
};
|
||||
|
@ -126,6 +126,16 @@ in {
|
||||
Extra configuration. Overrides any other cofiguration.
|
||||
'';
|
||||
};
|
||||
|
||||
configFile = mkOption {
|
||||
type = types.string;
|
||||
default = "/var/lib/couchdb/couchdb.ini";
|
||||
description = ''
|
||||
Custom configuration file. File needs to be readable and writable
|
||||
from couchdb user/group.
|
||||
'';
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
};
|
||||
@ -146,11 +156,13 @@ in {
|
||||
mkdir -p `dirname ${cfg.logFile}`;
|
||||
mkdir -p ${cfg.databaseDir};
|
||||
mkdir -p ${cfg.viewIndexDir};
|
||||
touch ${cfg.configFile}
|
||||
|
||||
if [ "$(id -u)" = 0 ]; then
|
||||
chown ${cfg.user}:${cfg.group} `dirname ${cfg.uriFile}`
|
||||
chown ${cfg.user}:${cfg.group} ${cfg.uriFile}
|
||||
chown ${cfg.user}:${cfg.group} ${cfg.databaseDir}
|
||||
chown ${cfg.user}:${cfg.group} ${cfg.viewIndexDir}
|
||||
chown ${cfg.user}:${cfg.group} ${cfg.configFile}
|
||||
fi
|
||||
'';
|
||||
|
||||
@ -158,7 +170,7 @@ in {
|
||||
PermissionsStartOnly = true;
|
||||
User = cfg.user;
|
||||
Group = cfg.group;
|
||||
ExecStart = "${cfg.package}/bin/couchdb -a ${configFile} -a ${pkgs.writeText "couchdb-extra.ini" cfg.extraConfig}";
|
||||
ExecStart = "${cfg.package}/bin/couchdb -a ${configFile} -a ${pkgs.writeText "couchdb-extra.ini" cfg.extraConfig} -a ${cfg.configFile}";
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -125,13 +125,14 @@ in
|
||||
after = [ "dbus.service" ]
|
||||
++ optional config.services.httpd.enable "httpd.service"
|
||||
++ optional config.services.mysql.enable "mysql.service"
|
||||
++ optional config.services.postgresql.enable "postgresql.service"
|
||||
++ optional config.services.tomcat.enable "tomcat.service"
|
||||
++ optional config.services.svnserve.enable "svnserve.service"
|
||||
++ optional config.services.mongodb.enable "mongodb.service";
|
||||
|
||||
restartIfChanged = false;
|
||||
|
||||
path = [ pkgs.nix pkgs.disnix pkgs.dysnomia ];
|
||||
path = [ pkgs.nix pkgs.disnix dysnomia ];
|
||||
|
||||
environment = {
|
||||
HOME = "/root";
|
||||
|
@ -318,7 +318,7 @@ in
|
||||
};
|
||||
|
||||
# Set up the environment variables for running Nix.
|
||||
environment.variables = cfg.envVars;
|
||||
environment.sessionVariables = cfg.envVars;
|
||||
|
||||
environment.extraInit =
|
||||
''
|
||||
|
@ -12,7 +12,7 @@ let
|
||||
name = "graphite-config";
|
||||
paths = lists.filter (el: el != null) [
|
||||
(writeTextOrNull "carbon.conf" cfg.carbon.config)
|
||||
(writeTextOrNull "storage-agregation.conf" cfg.carbon.storageAggregation)
|
||||
(writeTextOrNull "storage-aggregation.conf" cfg.carbon.storageAggregation)
|
||||
(writeTextOrNull "storage-schemas.conf" cfg.carbon.storageSchemas)
|
||||
(writeTextOrNull "blacklist.conf" cfg.carbon.blacklist)
|
||||
(writeTextOrNull "whitelist.conf" cfg.carbon.whitelist)
|
||||
@ -47,19 +47,19 @@ in {
|
||||
|
||||
web = {
|
||||
enable = mkOption {
|
||||
description = "Whether to enable graphite web frontend";
|
||||
description = "Whether to enable graphite web frontend.";
|
||||
default = false;
|
||||
type = types.uniq types.bool;
|
||||
};
|
||||
|
||||
host = mkOption {
|
||||
description = "Graphite web frontend listen address";
|
||||
description = "Graphite web frontend listen address.";
|
||||
default = "127.0.0.1";
|
||||
type = types.str;
|
||||
};
|
||||
|
||||
port = mkOption {
|
||||
description = "Graphite web frontend port";
|
||||
description = "Graphite web frontend port.";
|
||||
default = 8080;
|
||||
type = types.int;
|
||||
};
|
||||
@ -67,7 +67,7 @@ in {
|
||||
|
||||
carbon = {
|
||||
config = mkOption {
|
||||
description = "Content of carbon configuration file";
|
||||
description = "Content of carbon configuration file.";
|
||||
default = ''
|
||||
[cache]
|
||||
# Listen on localhost by default for security reasons
|
||||
@ -83,13 +83,13 @@ in {
|
||||
};
|
||||
|
||||
enableCache = mkOption {
|
||||
description = "Whether to enable carbon cache, the graphite storage daemon";
|
||||
description = "Whether to enable carbon cache, the graphite storage daemon.";
|
||||
default = false;
|
||||
type = types.uniq types.bool;
|
||||
};
|
||||
|
||||
storageAggregation = mkOption {
|
||||
description = "Defines how to aggregate data to lower-precision retentions";
|
||||
description = "Defines how to aggregate data to lower-precision retentions.";
|
||||
default = null;
|
||||
type = types.uniq (types.nullOr types.string);
|
||||
example = ''
|
||||
@ -101,7 +101,7 @@ in {
|
||||
};
|
||||
|
||||
storageSchemas = mkOption {
|
||||
description = "Defines retention rates for storing metrics";
|
||||
description = "Defines retention rates for storing metrics.";
|
||||
default = "";
|
||||
type = types.uniq (types.nullOr types.string);
|
||||
example = ''
|
||||
@ -112,21 +112,24 @@ in {
|
||||
};
|
||||
|
||||
blacklist = mkOption {
|
||||
description = "Any metrics received which match one of the experssions will be dropped";
|
||||
description = "Any metrics received which match one of the experssions will be dropped.";
|
||||
default = null;
|
||||
type = types.uniq (types.nullOr types.string);
|
||||
example = "^some\.noisy\.metric\.prefix\..*";
|
||||
};
|
||||
|
||||
whitelist = mkOption {
|
||||
description = "Only metrics received which match one of the experssions will be persisted";
|
||||
description = "Only metrics received which match one of the experssions will be persisted.";
|
||||
default = null;
|
||||
type = types.uniq (types.nullOr types.string);
|
||||
example = ".*";
|
||||
};
|
||||
|
||||
rewriteRules = mkOption {
|
||||
description = "Regular expression patterns that can be used to rewrite metric names in a search and replace fashion";
|
||||
description = ''
|
||||
Regular expression patterns that can be used to rewrite metric names
|
||||
in a search and replace fashion.
|
||||
'';
|
||||
default = null;
|
||||
type = types.uniq (types.nullOr types.string);
|
||||
example = ''
|
||||
@ -137,7 +140,7 @@ in {
|
||||
};
|
||||
|
||||
enableRelay = mkOption {
|
||||
description = "Whether to enable carbon relay, the carbon replication and sharding service";
|
||||
description = "Whether to enable carbon relay, the carbon replication and sharding service.";
|
||||
default = false;
|
||||
type = types.uniq types.bool;
|
||||
};
|
||||
@ -154,13 +157,13 @@ in {
|
||||
};
|
||||
|
||||
enableAggregator = mkOption {
|
||||
description = "Whether to enable carbon agregator, the carbon buffering service";
|
||||
description = "Whether to enable carbon agregator, the carbon buffering service.";
|
||||
default = false;
|
||||
type = types.uniq types.bool;
|
||||
};
|
||||
|
||||
aggregationRules = mkOption {
|
||||
description = "Defines if and how received metrics will be agregated";
|
||||
description = "Defines if and how received metrics will be agregated.";
|
||||
default = null;
|
||||
type = types.uniq (types.nullOr types.string);
|
||||
example = ''
|
||||
@ -188,10 +191,7 @@ in {
|
||||
};
|
||||
restartTriggers = [
|
||||
pkgs.pythonPackages.carbon
|
||||
cfg.carbon.config
|
||||
cfg.carbon.storageAggregation
|
||||
cfg.carbon.storageSchemas
|
||||
cfg.carbon.rewriteRules
|
||||
configDir
|
||||
];
|
||||
preStart = ''
|
||||
mkdir -p ${cfg.dataDir}/whisper
|
||||
@ -212,7 +212,8 @@ in {
|
||||
Group = "graphite";
|
||||
};
|
||||
restartTriggers = [
|
||||
pkgs.pythonPackages.carbon cfg.carbon.config cfg.carbon.aggregationRules
|
||||
pkgs.pythonPackages.carbon
|
||||
configDir
|
||||
];
|
||||
};
|
||||
|
||||
@ -228,7 +229,8 @@ in {
|
||||
Group = "graphite";
|
||||
};
|
||||
restartTriggers = [
|
||||
pkgs.pythonPackages.carbon cfg.carbon.config cfg.carbon.relayRules
|
||||
pkgs.pythonPackages.carbon
|
||||
configDir
|
||||
];
|
||||
};
|
||||
|
||||
@ -271,7 +273,6 @@ in {
|
||||
'';
|
||||
restartTriggers = [
|
||||
pkgs.python27Packages.graphite_web
|
||||
pkgs.python27Packages.waitress
|
||||
];
|
||||
};
|
||||
|
||||
|
@ -69,8 +69,8 @@ in
|
||||
};
|
||||
|
||||
graphitePort = mkOption {
|
||||
description = "Port of Graphite server";
|
||||
default = config.services.graphite.web.port;
|
||||
description = "Port of Graphite server (i.e. carbon-cache).";
|
||||
default = 2003;
|
||||
type = types.uniq types.int;
|
||||
};
|
||||
|
||||
|
751
nixos/modules/services/networking/nsd.nix
Normal file
751
nixos/modules/services/networking/nsd.nix
Normal file
@ -0,0 +1,751 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
with pkgs.lib;
|
||||
|
||||
let
|
||||
cfg = config.services.nsd;
|
||||
|
||||
username = "nsd";
|
||||
stateDir = "/var/lib/nsd";
|
||||
pidFile = stateDir + "/var/nsd.pid";
|
||||
|
||||
zoneFiles = pkgs.stdenv.mkDerivation {
|
||||
preferLocalBuild = true;
|
||||
name = "nsd-env";
|
||||
buildCommand = concatStringsSep "\n"
|
||||
[ "mkdir -p $out"
|
||||
(concatStrings (mapAttrsToList (zoneName: zoneOptions: ''
|
||||
cat > "$out/${zoneName}" <<_EOF_
|
||||
${zoneOptions.data}
|
||||
_EOF_
|
||||
'') zoneConfigs))
|
||||
];
|
||||
};
|
||||
|
||||
configFile = pkgs.writeText "nsd.conf" ''
|
||||
server:
|
||||
username: ${username}
|
||||
chroot: "${stateDir}"
|
||||
|
||||
# The directory for zonefile: files. The daemon chdirs here.
|
||||
zonesdir: "${stateDir}"
|
||||
|
||||
# the list of dynamically added zones.
|
||||
zonelistfile: "${stateDir}/var/zone.list"
|
||||
database: "${stateDir}/var/nsd.db"
|
||||
logfile: "${stateDir}/var/nsd.log"
|
||||
pidfile: "${pidFile}"
|
||||
xfrdfile: "${stateDir}/var/xfrd.state"
|
||||
xfrdir: "${stateDir}/tmp"
|
||||
|
||||
# interfaces
|
||||
${forEach " ip-address: " cfg.interfaces}
|
||||
|
||||
server-count: ${toString cfg.serverCount}
|
||||
ip-transparent: ${yesOrNo cfg.ipTransparent}
|
||||
do-ip4: ${yesOrNo cfg.ipv4}
|
||||
do-ip6: ${yesOrNo cfg.ipv6}
|
||||
port: ${toString cfg.port}
|
||||
verbosity: ${toString cfg.verbosity}
|
||||
hide-version: ${yesOrNo cfg.hideVersion}
|
||||
identity: "${cfg.identity}"
|
||||
${maybeString "nsid: " cfg.nsid}
|
||||
tcp-count: ${toString cfg.tcpCount}
|
||||
tcp-query-count: ${toString cfg.tcpQueryCount}
|
||||
tcp-timeout: ${toString cfg.tcpTimeout}
|
||||
ipv4-edns-size: ${toString cfg.ipv4EDNSSize}
|
||||
ipv6-edns-size: ${toString cfg.ipv6EDNSSize}
|
||||
${if cfg.statistics == null then "" else "statistics: ${toString cfg.statistics}"}
|
||||
xfrd-reload-timeout: ${toString cfg.xfrdReloadTimeout}
|
||||
zonefiles-check: ${yesOrNo cfg.zonefilesCheck}
|
||||
|
||||
rrl-size: ${toString cfg.ratelimit.size}
|
||||
rrl-ratelimit: ${toString cfg.ratelimit.ratelimit}
|
||||
rrl-whitelist-ratelimit: ${toString cfg.ratelimit.whitelistRatelimit}
|
||||
${maybeString "rrl-slip: " cfg.ratelimit.slip}
|
||||
${maybeString "rrl-ipv4-prefix-length: " cfg.ratelimit.ipv4PrefixLength}
|
||||
${maybeString "rrl-ipv6-prefix-length: " cfg.ratelimit.ipv6PrefixLength}
|
||||
|
||||
${keyConfigFile}
|
||||
|
||||
remote-control:
|
||||
control-enable: ${yesOrNo cfg.remoteControl.enable}
|
||||
${forEach " control-interface: " cfg.remoteControl.interfaces}
|
||||
control-port: ${toString cfg.port}
|
||||
server-key-file: "${cfg.remoteControl.serverKeyFile}"
|
||||
server-cert-file: "${cfg.remoteControl.serverCertFile}"
|
||||
control-key-file: "${cfg.remoteControl.controlKeyFile}"
|
||||
control-cert-file: "${cfg.remoteControl.controlCertFile}"
|
||||
|
||||
# zone files reside in "${zoneFiles}" linked to "${stateDir}/zones"
|
||||
${concatStrings (mapAttrsToList zoneConfigFile zoneConfigs)}
|
||||
|
||||
${cfg.extraConfig}
|
||||
'';
|
||||
|
||||
yesOrNo = b: if b then "yes" else "no";
|
||||
maybeString = pre: s: if s == null then "" else ''${pre} "${s}"'';
|
||||
forEach = pre: l: concatMapStrings (x: pre + x + "\n") l;
|
||||
|
||||
|
||||
keyConfigFile = concatStrings (mapAttrsToList (keyName: keyOptions: ''
|
||||
key:
|
||||
name: "${keyName}"
|
||||
algorithm: "${keyOptions.algorithm}"
|
||||
include: "${stateDir}/private/${keyName}"
|
||||
'') cfg.keys);
|
||||
|
||||
copyKeys = concatStrings (mapAttrsToList (keyName: keyOptions: ''
|
||||
secret=$(cat "${keyOptions.keyFile}")
|
||||
dest="${stateDir}/private/${keyName}"
|
||||
echo " secret: \"$secret\"" > "$dest"
|
||||
${pkgs.coreutils}/bin/chown ${username}:${username} "$dest"
|
||||
${pkgs.coreutils}/bin/chmod 0400 "$dest"
|
||||
'') cfg.keys);
|
||||
|
||||
|
||||
zoneConfigFile = name: zone: ''
|
||||
zone:
|
||||
name: "${name}"
|
||||
zonefile: "${stateDir}/zones/${name}"
|
||||
${maybeString "outgoing-interface: " zone.outgoingInterface}
|
||||
${forEach " rrl-whitelist: " zone.rrlWhitelist}
|
||||
|
||||
${forEach " allow-notify: " zone.allowNotify}
|
||||
${forEach " request-xfr: " zone.requestXFR}
|
||||
allow-axfr-fallback: ${yesOrNo zone.allowAXFRFallback}
|
||||
|
||||
${forEach " notify: " zone.notify}
|
||||
notify-retry: ${toString zone.notifyRetry}
|
||||
${forEach " provide-xfr: " zone.provideXFR}
|
||||
|
||||
'';
|
||||
|
||||
zoneConfigs = zoneConfigs' {} "" { children = cfg.zones; };
|
||||
|
||||
zoneConfigs' = parent: name: zone:
|
||||
if !(zone ? children) || zone.children == null || zone.children == { }
|
||||
# leaf -> actual zone
|
||||
then listToAttrs [ (nameValuePair name (parent // zone)) ]
|
||||
|
||||
# fork -> pattern
|
||||
else zipAttrsWith (name: head) (
|
||||
mapAttrsToList (name: child: zoneConfigs' (parent // zone // { children = {}; }) name child)
|
||||
zone.children
|
||||
);
|
||||
|
||||
# fighting infinite recursion
|
||||
zoneOptions = zoneOptionsRaw // childConfig zoneOptions1 true;
|
||||
zoneOptions1 = zoneOptionsRaw // childConfig zoneOptions2 false;
|
||||
zoneOptions2 = zoneOptionsRaw // childConfig zoneOptions3 false;
|
||||
zoneOptions3 = zoneOptionsRaw // childConfig zoneOptions4 false;
|
||||
zoneOptions4 = zoneOptionsRaw // childConfig zoneOptions5 false;
|
||||
zoneOptions5 = zoneOptionsRaw // childConfig zoneOptions6 false;
|
||||
zoneOptions6 = zoneOptionsRaw // childConfig null false;
|
||||
|
||||
childConfig = x: v: { options.children = { type = types.attrsOf x; visible = v; }; };
|
||||
|
||||
zoneOptionsRaw = types.submodule (
|
||||
{ options, ... }:
|
||||
{ options = {
|
||||
children = mkOption {
|
||||
default = {};
|
||||
description = ''
|
||||
Children zones inherit all options of their parents. Attributes
|
||||
defined in a child will overwrite the ones of its parent. Only
|
||||
leaf zones will be actually served. This way it's possible to
|
||||
define maybe zones which share most attributes without
|
||||
duplicating everything. This mechanism replaces nsd's patterns
|
||||
in a save and functional way.
|
||||
'';
|
||||
};
|
||||
|
||||
allowNotify = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [ ];
|
||||
example = [ "192.0.2.0/24 NOKEY" "10.0.0.1-10.0.0.5 my_tsig_key_name"
|
||||
"10.0.3.4&255.255.0.0 BLOCKED"
|
||||
];
|
||||
description = ''
|
||||
Listed primary servers are allowed to notify this secondary server.
|
||||
<screen><![CDATA[
|
||||
Format: <ip> <key-name | NOKEY | BLOCKED>
|
||||
|
||||
<ip> either a plain IPv4/IPv6 address or range. Valid patters for ranges:
|
||||
* 10.0.0.0/24 # via subnet size
|
||||
* 10.0.0.0&255.255.255.0 # via subnet mask
|
||||
* 10.0.0.1-10.0.0.254 # via range
|
||||
|
||||
A optional port number could be added with a '@':
|
||||
* 2001:1234::1@1234
|
||||
|
||||
<key-name | NOKEY | BLOCKED>
|
||||
* <key-name> will use the specified TSIG key
|
||||
* NOKEY no TSIG signature is required
|
||||
* BLOCKED notifies from non-listed or blocked IPs will be ignored
|
||||
* ]]></screen>
|
||||
'';
|
||||
};
|
||||
|
||||
requestXFR = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [];
|
||||
example = [];
|
||||
description = ''
|
||||
Format: <code>[AXFR|UDP] <ip-address> <key-name | NOKEY></code>
|
||||
'';
|
||||
};
|
||||
|
||||
allowAXFRFallback = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
If NSD as secondary server should be allowed to AXFR if the primary
|
||||
server does not allow IXFR.
|
||||
'';
|
||||
};
|
||||
|
||||
notify = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [];
|
||||
example = [ "10.0.0.1@3721 my_key" "::5 NOKEY" ];
|
||||
description = ''
|
||||
This primary server will notify all given secondary servers about
|
||||
zone changes.
|
||||
<screen><![CDATA[
|
||||
Format: <ip> <key-name | NOKEY>
|
||||
|
||||
<ip> a plain IPv4/IPv6 address with on optional port number (ip@port)
|
||||
|
||||
<key-name | NOKEY>
|
||||
* <key-name> sign notifies with the specified key
|
||||
* NOKEY don't sign notifies
|
||||
]]></screen>
|
||||
'';
|
||||
};
|
||||
|
||||
notifyRetry = mkOption {
|
||||
type = types.int;
|
||||
default = 5;
|
||||
description = ''
|
||||
Specifies the number of retries for failed notifies. Set this along with notify.
|
||||
'';
|
||||
};
|
||||
|
||||
provideXFR = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [];
|
||||
example = [ "192.0.2.0/24 NOKEY" "192.0.2.0/24 my_tsig_key_name" ];
|
||||
description = ''
|
||||
Allow these IPs and TSIG to transfer zones, addr TSIG|NOKEY|BLOCKED
|
||||
address range 192.0.2.0/24, 1.2.3.4&255.255.0.0, 3.0.2.20-3.0.2.40
|
||||
'';
|
||||
};
|
||||
|
||||
outgoingInterface = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
example = "2000::1@1234";
|
||||
description = ''
|
||||
This address will be used for zone-transfere requests if configured
|
||||
as a secondary server or notifications in case of a primary server.
|
||||
Supply either a plain IPv4 or IPv6 address with an optional port
|
||||
number (ip@port).
|
||||
'';
|
||||
};
|
||||
|
||||
rrlWhitelist = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [];
|
||||
description = ''
|
||||
Whitelists the given rrl-types.
|
||||
The RRL classification types are: nxdomain, error, referral, any,
|
||||
rrsig, wildcard, nodata, dnskey, positive, all
|
||||
'';
|
||||
};
|
||||
|
||||
data = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
example = "";
|
||||
description = ''
|
||||
The actual zone data. This is the content of your zone file.
|
||||
Use imports or pkgs.lib.readFile if you don't want this data in your config file.
|
||||
'';
|
||||
};
|
||||
|
||||
};
|
||||
}
|
||||
);
|
||||
|
||||
in
|
||||
{
|
||||
options = {
|
||||
services.nsd = {
|
||||
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Whether to enable the NSD authoritative domain name server.
|
||||
'';
|
||||
};
|
||||
|
||||
rootServer = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Wheter if this server will be a root server (a DNS root server, you
|
||||
usually don't want that).
|
||||
'';
|
||||
};
|
||||
|
||||
interfaces = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [ "127.0.0.0" "::1" ];
|
||||
description = ''
|
||||
What addresses the server should listen to.
|
||||
'';
|
||||
};
|
||||
|
||||
serverCount = mkOption {
|
||||
type = types.int;
|
||||
default = 1;
|
||||
description = ''
|
||||
Number of NSD servers to fork. Put the number of CPUs to use here.
|
||||
'';
|
||||
};
|
||||
|
||||
ipTransparent = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Allow binding to non local addresses.
|
||||
'';
|
||||
};
|
||||
|
||||
ipv4 = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
Wheter to listen on IPv4 connections.
|
||||
'';
|
||||
};
|
||||
|
||||
ipv6 = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
Wheter to listen on IPv6 connections.
|
||||
'';
|
||||
};
|
||||
|
||||
port = mkOption {
|
||||
type = types.int;
|
||||
default = 53;
|
||||
description = ''
|
||||
Port the service should bind do.
|
||||
'';
|
||||
};
|
||||
|
||||
verbosity = mkOption {
|
||||
type = types.int;
|
||||
default = 0;
|
||||
description = ''
|
||||
Verbosity level.
|
||||
'';
|
||||
};
|
||||
|
||||
hideVersion = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
Wheter NSD should answer VERSION.BIND and VERSION.SERVER CHAOS class queries.
|
||||
'';
|
||||
};
|
||||
|
||||
identity = mkOption {
|
||||
type = types.str;
|
||||
default = "unidentified server";
|
||||
description = ''
|
||||
Identify the server (CH TXT ID.SERVER entry).
|
||||
'';
|
||||
};
|
||||
|
||||
nsid = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
description = ''
|
||||
NSID identity (hex string, or "ascii_somestring").
|
||||
'';
|
||||
};
|
||||
|
||||
tcpCount = mkOption {
|
||||
type = types.int;
|
||||
default = 100;
|
||||
description = ''
|
||||
Maximum number of concurrent TCP connections per server.
|
||||
'';
|
||||
};
|
||||
|
||||
tcpQueryCount = mkOption {
|
||||
type = types.int;
|
||||
default = 0;
|
||||
description = ''
|
||||
Maximum number of queries served on a single TCP connection.
|
||||
0 means no maximum.
|
||||
'';
|
||||
};
|
||||
|
||||
tcpTimeout = mkOption {
|
||||
type = types.int;
|
||||
default = 120;
|
||||
description = ''
|
||||
TCP timeout in seconds.
|
||||
'';
|
||||
};
|
||||
|
||||
ipv4EDNSSize = mkOption {
|
||||
type = types.int;
|
||||
default = 4096;
|
||||
description = ''
|
||||
Preferred EDNS buffer size for IPv4.
|
||||
'';
|
||||
};
|
||||
|
||||
ipv6EDNSSize = mkOption {
|
||||
type = types.int;
|
||||
default = 4096;
|
||||
description = ''
|
||||
Preferred EDNS buffer size for IPv6.
|
||||
'';
|
||||
};
|
||||
|
||||
statistics = mkOption {
|
||||
type = types.nullOr types.int;
|
||||
default = null;
|
||||
description = ''
|
||||
Statistics are produced every number of seconds. Prints to log.
|
||||
If null no statistics are logged.
|
||||
'';
|
||||
};
|
||||
|
||||
xfrdReloadTimeout = mkOption {
|
||||
type = types.int;
|
||||
default = 1;
|
||||
description = ''
|
||||
Number of seconds between reloads triggered by xfrd.
|
||||
'';
|
||||
};
|
||||
|
||||
zonefilesCheck = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
Wheter to check mtime of all zone files on start and sighup.
|
||||
'';
|
||||
};
|
||||
|
||||
|
||||
extraConfig = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
description = ''
|
||||
Extra nsd config.
|
||||
'';
|
||||
};
|
||||
|
||||
|
||||
ratelimit = mkOption {
|
||||
type = types.submodule (
|
||||
{ options, ... }:
|
||||
{ options = {
|
||||
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Enable ratelimit capabilities.
|
||||
'';
|
||||
};
|
||||
|
||||
size = mkOption {
|
||||
type = types.int;
|
||||
default = 1000000;
|
||||
description = ''
|
||||
Size of the hashtable. More buckets use more memory but lower
|
||||
the chance of hash hash collisions.
|
||||
'';
|
||||
};
|
||||
|
||||
ratelimit = mkOption {
|
||||
type = types.int;
|
||||
default = 200;
|
||||
description = ''
|
||||
Max qps allowed from any query source.
|
||||
0 means unlimited. With an verbosity of 2 blocked and
|
||||
unblocked subnets will be logged.
|
||||
'';
|
||||
};
|
||||
|
||||
whitelistRatelimit = mkOption {
|
||||
type = types.int;
|
||||
default = 2000;
|
||||
description = ''
|
||||
Max qps allowed from whitelisted sources.
|
||||
0 means unlimited. Set the rrl-whitelist option for specific
|
||||
queries to apply this limit instead of the default to them.
|
||||
'';
|
||||
};
|
||||
|
||||
slip = mkOption {
|
||||
type = types.nullOr types.int;
|
||||
default = null;
|
||||
description = ''
|
||||
Number of packets that get discarded before replying a SLIP response.
|
||||
0 disables SLIP responses. 1 will make every response a SLIP response.
|
||||
'';
|
||||
};
|
||||
|
||||
ipv4PrefixLength = mkOption {
|
||||
type = types.nullOr types.int;
|
||||
default = null;
|
||||
description = ''
|
||||
IPv4 prefix length. Addresses are grouped by netblock.
|
||||
'';
|
||||
};
|
||||
|
||||
ipv6PrefixLength = mkOption {
|
||||
type = types.nullOr types.int;
|
||||
default = null;
|
||||
description = ''
|
||||
IPv6 prefix length. Addresses are grouped by netblock.
|
||||
'';
|
||||
};
|
||||
|
||||
};
|
||||
});
|
||||
default = {
|
||||
};
|
||||
example = {};
|
||||
description = ''
|
||||
'';
|
||||
};
|
||||
|
||||
|
||||
remoteControl = mkOption {
|
||||
type = types.submodule (
|
||||
{ config, options, ... }:
|
||||
{ options = {
|
||||
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Wheter to enable remote control via nsd-control(8).
|
||||
'';
|
||||
};
|
||||
|
||||
interfaces = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [ "127.0.0.1" "::1" ];
|
||||
description = ''
|
||||
Which interfaces NSD should bind to for remote control.
|
||||
'';
|
||||
};
|
||||
|
||||
port = mkOption {
|
||||
type = types.int;
|
||||
default = 8952;
|
||||
description = ''
|
||||
Port number for remote control operations (uses TLS over TCP).
|
||||
'';
|
||||
};
|
||||
|
||||
serverKeyFile = mkOption {
|
||||
type = types.path;
|
||||
default = "/etc/nsd/nsd_server.key";
|
||||
description = ''
|
||||
Path to the server private key, which is used by the server
|
||||
but not by nsd-control. This file is generated by nsd-control-setup.
|
||||
'';
|
||||
};
|
||||
|
||||
serverCertFile = mkOption {
|
||||
type = types.path;
|
||||
default = "/etc/nsd/nsd_server.pem";
|
||||
description = ''
|
||||
Path to the server self signed certificate, which is used by the server
|
||||
but and by nsd-control. This file is generated by nsd-control-setup.
|
||||
'';
|
||||
};
|
||||
|
||||
controlKeyFile = mkOption {
|
||||
type = types.path;
|
||||
default = "/etc/nsd/nsd_control.key";
|
||||
description = ''
|
||||
Path to the client private key, which is used by nsd-control
|
||||
but not by the server. This file is generated by nsd-control-setup.
|
||||
'';
|
||||
};
|
||||
|
||||
controlCertFile = mkOption {
|
||||
type = types.path;
|
||||
default = "/etc/nsd/nsd_control.pem";
|
||||
description = ''
|
||||
Path to the client certificate signed with the server certificate.
|
||||
This file is used by nsd-control and generated by nsd-control-setup.
|
||||
'';
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
});
|
||||
default = {
|
||||
};
|
||||
example = {};
|
||||
description = ''
|
||||
'';
|
||||
};
|
||||
|
||||
|
||||
keys = mkOption {
|
||||
type = types.attrsOf (types.submodule (
|
||||
{ options, ... }:
|
||||
{ options = {
|
||||
|
||||
algorithm = mkOption {
|
||||
type = types.str;
|
||||
default = "hmac-sha256";
|
||||
description = ''
|
||||
Authentication algorithm for this key.
|
||||
'';
|
||||
};
|
||||
|
||||
keyFile = mkOption {
|
||||
type = types.path;
|
||||
description = ''
|
||||
Path to the file which contains the actual base64 encoded
|
||||
key. The key will be copied into "${stateDir}/private" before
|
||||
NSD starts. The copied file is only accessibly by the NSD
|
||||
user.
|
||||
'';
|
||||
};
|
||||
|
||||
};
|
||||
}));
|
||||
default = {
|
||||
};
|
||||
example = {
|
||||
"tsig.example.org" = {
|
||||
algorithm = "hmac-md5";
|
||||
secret = "aaaaaabbbbbbccccccdddddd";
|
||||
};
|
||||
};
|
||||
description = ''
|
||||
Define your TSIG keys here.
|
||||
'';
|
||||
};
|
||||
|
||||
zones = mkOption {
|
||||
type = types.attrsOf zoneOptions;
|
||||
default = {};
|
||||
example = {
|
||||
"serverGroup1" = {
|
||||
provideXFR = [ "10.1.2.3 NOKEY" ];
|
||||
children = {
|
||||
"example.com." = {
|
||||
data = ''
|
||||
$ORIGIN example.com.
|
||||
$TTL 86400
|
||||
@ IN SOA a.ns.example.com. admin.example.com. (
|
||||
...
|
||||
'';
|
||||
};
|
||||
"example.org." = {
|
||||
data = ''
|
||||
$ORIGIN example.org.
|
||||
$TTL 86400
|
||||
@ IN SOA a.ns.example.com. admin.example.com. (
|
||||
...
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
"example.net." = {
|
||||
provideXFR = [ "10.3.2.1 NOKEY" ];
|
||||
data = ''...'';
|
||||
};
|
||||
};
|
||||
description = ''
|
||||
Define your zones here. Zones can cascade other zones and therefore
|
||||
inherit settings from parent zones. Look at the definition of
|
||||
children to learn about inheritance and child zones.
|
||||
The given example will define 3 zones (example.(com|org|net).). Both
|
||||
example.com. and example.org. inherit their configuration from
|
||||
serverGroup1.
|
||||
'';
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
|
||||
# this is not working :(
|
||||
nixpkgs.config.nsd = {
|
||||
ipv6 = cfg.ipv6;
|
||||
ratelimit = cfg.ratelimit.enable;
|
||||
rootServer = cfg.rootServer;
|
||||
};
|
||||
|
||||
users.extraGroups = singleton {
|
||||
name = username;
|
||||
gid = config.ids.gids.nsd;
|
||||
};
|
||||
|
||||
users.extraUsers = singleton {
|
||||
name = username;
|
||||
description = "NSD service user";
|
||||
home = stateDir;
|
||||
createHome = true;
|
||||
uid = config.ids.uids.nsd;
|
||||
group = username;
|
||||
};
|
||||
|
||||
systemd.services.nsd = {
|
||||
description = "NSD authoritative only domain name service";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "network.target" ];
|
||||
|
||||
serviceConfig = {
|
||||
Type = "forking";
|
||||
PIDFile = pidFile;
|
||||
Restart = "always";
|
||||
ExecStart = "${pkgs.nsd}/sbin/nsd -c ${configFile}";
|
||||
};
|
||||
|
||||
preStart = ''
|
||||
${pkgs.coreutils}/bin/mkdir -m 0700 -p "${stateDir}/private"
|
||||
${pkgs.coreutils}/bin/mkdir -m 0700 -p "${stateDir}/tmp"
|
||||
${pkgs.coreutils}/bin/mkdir -m 0700 -p "${stateDir}/var"
|
||||
|
||||
${pkgs.coreutils}/bin/touch "${stateDir}/don't touch anything in here"
|
||||
|
||||
${pkgs.coreutils}/bin/rm -f "${stateDir}/private/"*
|
||||
${pkgs.coreutils}/bin/rm -f "${stateDir}/tmp/"*
|
||||
|
||||
${pkgs.coreutils}/bin/chown nsd:nsd -R "${stateDir}/private"
|
||||
${pkgs.coreutils}/bin/chown nsd:nsd -R "${stateDir}/tmp"
|
||||
${pkgs.coreutils}/bin/chown nsd:nsd -R "${stateDir}/var"
|
||||
|
||||
${pkgs.coreutils}/bin/rm -rf "${stateDir}/zones"
|
||||
${pkgs.coreutils}/bin/cp -r "${zoneFiles}" "${stateDir}/zones"
|
||||
|
||||
${copyKeys}
|
||||
'';
|
||||
};
|
||||
|
||||
};
|
||||
}
|
@ -104,8 +104,9 @@ in {
|
||||
after = [ "network-interfaces.target" ];
|
||||
environment = { ES_HOME = cfg.dataDir; };
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.elasticsearch}/bin/elasticsearch -f -Des.path.conf=${configDir}";
|
||||
ExecStart = "${pkgs.elasticsearch}/bin/elasticsearch -Des.path.conf=${configDir}";
|
||||
User = "elasticsearch";
|
||||
PermissionsStartOnly = true;
|
||||
};
|
||||
preStart = ''
|
||||
mkdir -m 0700 -p ${cfg.dataDir}
|
||||
|
@ -594,14 +594,14 @@ in
|
||||
message = "SSL is enabled for HTTPD, but sslServerCert and/or sslServerKey haven't been specified."; }
|
||||
];
|
||||
|
||||
users.extraUsers = optionalAttrs (mainCfg.user == "wwwrun") singleton
|
||||
users.extraUsers = optional (mainCfg.user == "wwwrun")
|
||||
{ name = "wwwrun";
|
||||
group = "wwwrun";
|
||||
description = "Apache httpd user";
|
||||
uid = config.ids.uids.wwwrun;
|
||||
};
|
||||
|
||||
users.extraGroups = optionalAttrs (mainCfg.group == "wwwrun") singleton
|
||||
users.extraGroups = optional (mainCfg.group == "wwwrun")
|
||||
{ name = "wwwrun";
|
||||
gid = config.ids.gids.wwwrun;
|
||||
};
|
||||
|
49
nixos/modules/services/web-servers/fcgiwrap.nix
Normal file
49
nixos/modules/services/web-servers/fcgiwrap.nix
Normal file
@ -0,0 +1,49 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.services.fcgiwrap;
|
||||
|
||||
in {
|
||||
|
||||
options = {
|
||||
services.fcgiwrap = {
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = "Whether to enable fcgiwrap, a server for running CGI applications over FastCGI.";
|
||||
};
|
||||
|
||||
preforkProcesses = mkOption {
|
||||
type = types.int;
|
||||
default = 1;
|
||||
description = "Number of processes to prefork.";
|
||||
};
|
||||
|
||||
bindSocket = mkOption {
|
||||
type = types.string;
|
||||
default = "unix:/run/fcgiwrap.sock";
|
||||
description = ''
|
||||
Socket to bind to. Valid socket URLs are:
|
||||
unix:/path/to/socket for Unix sockets
|
||||
tcp:dot.ted.qu.ad:port for IPv4 sockets
|
||||
tcp6:[ipv6_addr]:port for IPv6 sockets
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
|
||||
systemd.services.fcgiwrap = {
|
||||
after = [ "nss-user-lookup.target" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.fcgiwrap}/sbin/fcgiwrap -c ${builtins.toString cfg.preforkProcesses} -s ${cfg.bindSocket}";
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
}
|
@ -119,6 +119,8 @@ in
|
||||
startOn = "started network-interfaces";
|
||||
stopOn = "stopping network-interfaces";
|
||||
|
||||
daemonType = "daemon";
|
||||
|
||||
preStart =
|
||||
''
|
||||
# Create the base directory
|
||||
@ -327,10 +329,12 @@ in
|
||||
done
|
||||
''
|
||||
else ""}
|
||||
|
||||
${pkgs.su}/bin/su -s ${pkgs.bash}/bin/sh ${cfg.user} -c 'CATALINA_BASE=${cfg.baseDir} JAVA_HOME=${pkgs.jdk} JAVA_OPTS="${cfg.javaOpts}" CATALINA_OPTS="${cfg.catalinaOpts}" ${tomcat}/bin/startup.sh'
|
||||
'';
|
||||
|
||||
script = ''
|
||||
${pkgs.su}/bin/su -s ${pkgs.bash}/bin/sh ${cfg.user} -c 'CATALINA_BASE=${cfg.baseDir} JAVA_HOME=${pkgs.jdk} JAVA_OPTS="${cfg.javaOpts}" CATALINA_OPTS="${cfg.catalinaOpts}" ${tomcat}/bin/startup.sh'
|
||||
'';
|
||||
|
||||
postStop =
|
||||
''
|
||||
echo "Stopping tomcat..."
|
||||
|
@ -95,7 +95,7 @@ let
|
||||
# kernel, systemd units, init scripts, etc.) as well as a script
|
||||
# `switch-to-configuration' that activates the configuration and
|
||||
# makes it bootable.
|
||||
system = showWarnings (
|
||||
baseSystem = showWarnings (
|
||||
if [] == failed then pkgs.stdenv.mkDerivation {
|
||||
name = "nixos-${config.system.nixosVersion}";
|
||||
preferLocalBuild = true;
|
||||
@ -118,6 +118,10 @@ let
|
||||
perl = "${pkgs.perl}/bin/perl -I${pkgs.perlPackages.FileSlurp}/lib/perl5/site_perl";
|
||||
} else throw "\nFailed assertions:\n${concatStringsSep "\n" (map (x: "- ${x}") failed)}");
|
||||
|
||||
# Replace runtime dependencies
|
||||
system = fold ({ oldDependency, newDependency }: drv:
|
||||
pkgs.replaceDependency { inherit oldDependency newDependency drv; }
|
||||
) baseSystem config.system.replaceRuntimeDependencies;
|
||||
|
||||
in
|
||||
|
||||
@ -184,6 +188,33 @@ in
|
||||
'';
|
||||
};
|
||||
|
||||
system.replaceRuntimeDependencies = mkOption {
|
||||
default = [];
|
||||
example = lib.literalExample "[ ({ original = pkgs.openssl; replacement = pkgs.callPackage /path/to/openssl { ... }; }) ]";
|
||||
type = types.listOf (types.submodule (
|
||||
{ options, ... }: {
|
||||
options.original = mkOption {
|
||||
type = types.package;
|
||||
description = "The original package to override.";
|
||||
};
|
||||
|
||||
options.replacement = mkOption {
|
||||
type = types.package;
|
||||
description = "The replacement package.";
|
||||
};
|
||||
})
|
||||
);
|
||||
apply = map ({ original, replacement, ... }: {
|
||||
oldDependency = original;
|
||||
newDependency = replacement;
|
||||
});
|
||||
description = ''
|
||||
List of packages to override without doing a full rebuild.
|
||||
The original derivation and replacement derivation must have the same
|
||||
name length, and ideally should have close-to-identical directory layout.
|
||||
'';
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
@ -60,12 +60,12 @@ touch /etc/fstab # to shut up mount
|
||||
touch /etc/mtab # to shut up mke2fs
|
||||
touch /etc/initrd-release
|
||||
mkdir -p /proc
|
||||
mount -t proc none /proc
|
||||
mount -t proc proc /proc
|
||||
mkdir -p /sys
|
||||
mount -t sysfs none /sys
|
||||
mount -t devtmpfs -o "size=@devSize@" none /dev
|
||||
mount -t sysfs sysfs /sys
|
||||
mount -t devtmpfs -o "size=@devSize@" devtmpfs /dev
|
||||
mkdir -p /run
|
||||
mount -t tmpfs -o "mode=0755,size=@runSize@" none /run
|
||||
mount -t tmpfs -o "mode=0755,size=@runSize@" tmpfs /run
|
||||
|
||||
|
||||
# Process the kernel command line.
|
||||
|
@ -36,9 +36,9 @@ mount -n -o remount,rw /
|
||||
# stage 1, we need to do that here.
|
||||
if [ ! -e /proc/1 ]; then
|
||||
mkdir -m 0755 -p /proc
|
||||
mount -n -t proc none /proc
|
||||
mount -n -t proc proc /proc
|
||||
mkdir -m 0755 -p /dev
|
||||
mount -t devtmpfs none /dev
|
||||
mount -t devtmpfs devtmpfs /dev
|
||||
fi
|
||||
|
||||
|
||||
@ -82,9 +82,9 @@ done
|
||||
|
||||
# More special file systems, initialise required directories.
|
||||
mkdir -m 0755 /dev/shm
|
||||
mount -t tmpfs -o "rw,nosuid,nodev,size=@devShmSize@" none /dev/shm
|
||||
mount -t tmpfs -o "rw,nosuid,nodev,size=@devShmSize@" tmpfs /dev/shm
|
||||
mkdir -m 0755 -p /dev/pts
|
||||
[ -e /proc/bus/usb ] && mount -t usbfs none /proc/bus/usb # UML doesn't have USB by default
|
||||
[ -e /proc/bus/usb ] && mount -t usbfs usbfs /proc/bus/usb # UML doesn't have USB by default
|
||||
mkdir -m 01777 -p /tmp
|
||||
mkdir -m 0755 -p /var /var/log /var/lib /var/db
|
||||
mkdir -m 0755 -p /nix/var
|
||||
@ -114,7 +114,7 @@ rm -rf /nix/var/nix/gcroots/tmp /nix/var/nix/temproots
|
||||
if ! mountpoint -q /run; then
|
||||
rm -rf /run
|
||||
mkdir -m 0755 -p /run
|
||||
mount -t tmpfs -o "mode=0755,size=@runSize@" none /run
|
||||
mount -t tmpfs -o "mode=0755,size=@runSize@" tmpfs /run
|
||||
fi
|
||||
|
||||
# Create a ramfs on /run/keys to hold secrets that shouldn't be
|
||||
@ -122,7 +122,7 @@ fi
|
||||
if ! mountpoint -q /run/keys; then
|
||||
rm -rf /run/keys
|
||||
mkdir /run/keys
|
||||
mount -t ramfs none /run/keys
|
||||
mount -t ramfs ramfs /run/keys
|
||||
chown 0:96 /run/keys
|
||||
chmod 0750 /run/keys
|
||||
fi
|
||||
@ -153,7 +153,7 @@ fi
|
||||
# Create /var/setuid-wrappers as a tmpfs.
|
||||
rm -rf /var/setuid-wrappers
|
||||
mkdir -m 0755 -p /var/setuid-wrappers
|
||||
mount -t tmpfs -o "mode=0755" none /var/setuid-wrappers
|
||||
mount -t tmpfs -o "mode=0755" tmpfs /var/setuid-wrappers
|
||||
|
||||
|
||||
# Run the script that performs all configuration activation that does
|
||||
|
@ -15,13 +15,13 @@ let
|
||||
pkgs.runCommand "unit" { preferLocalBuild = true; inherit (unit) text; }
|
||||
''
|
||||
mkdir -p $out
|
||||
echo -n "$text" > $out/${name}
|
||||
echo -n "$text" > $out/${shellEscape name}
|
||||
''
|
||||
else
|
||||
pkgs.runCommand "unit" { preferLocalBuild = true; }
|
||||
''
|
||||
mkdir -p $out
|
||||
ln -s /dev/null $out/${name}
|
||||
ln -s /dev/null $out/${shellEscape name}
|
||||
'';
|
||||
|
||||
upstreamSystemUnits =
|
||||
@ -187,9 +187,11 @@ let
|
||||
"timers.target"
|
||||
];
|
||||
|
||||
shellEscape = s: (replaceChars [ "\\" ] [ "\\\\" ] s);
|
||||
|
||||
makeJobScript = name: text:
|
||||
let x = pkgs.writeTextFile { name = "unit-script"; executable = true; destination = "/bin/${name}"; inherit text; };
|
||||
in "${x}/bin/${name}";
|
||||
let x = pkgs.writeTextFile { name = "unit-script"; executable = true; destination = "/bin/${shellEscape name}"; inherit text; };
|
||||
in "${x}/bin/${shellEscape name}";
|
||||
|
||||
unitConfig = { name, config, ... }: {
|
||||
config = {
|
||||
|
@ -183,6 +183,15 @@ in
|
||||
'';
|
||||
};
|
||||
|
||||
networking.search = mkOption {
|
||||
default = [];
|
||||
example = [ "example.com" "local.domain" ];
|
||||
type = types.listOf types.str;
|
||||
description = ''
|
||||
The list of search paths used when resolving domain names.
|
||||
'';
|
||||
};
|
||||
|
||||
networking.domain = mkOption {
|
||||
default = "";
|
||||
example = "home";
|
||||
@ -424,6 +433,7 @@ in
|
||||
${optionalString (cfg.nameservers != [] && cfg.domain != "") ''
|
||||
domain ${cfg.domain}
|
||||
''}
|
||||
${optionalString (cfg.search != []) ("search " + concatStringsSep " " cfg.search)}
|
||||
${flip concatMapStrings cfg.nameservers (ns: ''
|
||||
nameserver ${ns}
|
||||
'')}
|
||||
|
66
nixos/modules/tasks/trackpoint.nix
Normal file
66
nixos/modules/tasks/trackpoint.nix
Normal file
@ -0,0 +1,66 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
{
|
||||
###### interface
|
||||
|
||||
options = {
|
||||
|
||||
hardware.trackpoint = {
|
||||
|
||||
enable = mkOption {
|
||||
default = false;
|
||||
type = types.bool;
|
||||
description = ''
|
||||
Enable sensitivity and speed configuration for trackpoints.
|
||||
'';
|
||||
};
|
||||
|
||||
sensitivity = mkOption {
|
||||
default = 128;
|
||||
example = 255;
|
||||
type = types.int;
|
||||
description = ''
|
||||
Configure the trackpoint sensitivity. By default, the kernel
|
||||
configures 128.
|
||||
'';
|
||||
};
|
||||
|
||||
speed = mkOption {
|
||||
default = 97;
|
||||
example = 255;
|
||||
type = types.int;
|
||||
description = ''
|
||||
Configure the trackpoint sensitivity. By default, the kernel
|
||||
configures 97.
|
||||
'';
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
|
||||
###### implementation
|
||||
|
||||
config = mkIf config.hardware.trackpoint.enable {
|
||||
|
||||
jobs.trackpoint =
|
||||
{ description = "Initialize trackpoint";
|
||||
|
||||
startOn = "started udev";
|
||||
|
||||
task = true;
|
||||
|
||||
script = ''
|
||||
echo -n ${toString config.hardware.trackpoint.sensitivity} \
|
||||
> /sys/devices/platform/i8042/serio1/sensitivity
|
||||
echo -n ${toString config.hardware.trackpoint.speed} \
|
||||
> /sys/devices/platform/i8042/serio1/speed
|
||||
'';
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
}
|
@ -31,7 +31,7 @@ EOF
|
||||
}
|
||||
|
||||
my $ensureUniqueName = 0;
|
||||
my $extraConfig = "";
|
||||
my $extraConfig;
|
||||
|
||||
GetOptions(
|
||||
"help" => sub { showHelp() },
|
||||
@ -190,7 +190,7 @@ elsif ($action eq "update") {
|
||||
|
||||
# FIXME: may want to be more careful about clobbering the existing
|
||||
# configuration.nix.
|
||||
writeNixOSConfig $nixosConfigFile if defined $extraConfig;
|
||||
writeNixOSConfig $nixosConfigFile if (defined $extraConfig && $extraConfig ne "");
|
||||
|
||||
system("nix-env", "-p", "$profileDir/system",
|
||||
"-I", "nixos-config=$nixosConfigFile", "-f", "<nixpkgs/nixos>",
|
||||
|
@ -98,6 +98,10 @@ import ./make-test.nix {
|
||||
$machine->succeed("touch /tmp2/x");
|
||||
$machine->succeed("grep '/tmp2 tmpfs' /proc/mounts");
|
||||
};
|
||||
|
||||
subtest "shell-vars", sub {
|
||||
$machine->succeed('[ -n "$NIX_PATH" ]');
|
||||
};
|
||||
'';
|
||||
|
||||
}
|
||||
|
@ -1,28 +1,17 @@
|
||||
{ stdenv, fetchurl, builderDefs }:
|
||||
{ runCommand, fetchurl }:
|
||||
|
||||
let
|
||||
|
||||
let
|
||||
src = fetchurl {
|
||||
url = http://www.ladspa.org/ladspa_sdk/ladspa.h.txt;
|
||||
sha256 = "1b908csn85ng9sz5s5d1mqk711cmawain2z8px2ajngihdrynb67";
|
||||
};
|
||||
|
||||
in
|
||||
let localDefs = builderDefs.passthru.function {
|
||||
buildInputs = [];
|
||||
inherit src;
|
||||
};
|
||||
in with localDefs;
|
||||
let
|
||||
copyFile = fullDepEntry ("
|
||||
mkdir -p \$out/include
|
||||
cp ${src} \$out/include/ladspa.h
|
||||
") [minInit defEnsureDir];
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
name = "ladspa.h";
|
||||
builder = writeScript "ladspa.h-builder"
|
||||
(textClosure localDefs [copyFile]);
|
||||
meta = {
|
||||
description = "LADSPA format audio plugins";
|
||||
inherit src;
|
||||
};
|
||||
}
|
||||
|
||||
runCommand "ladspa.h"
|
||||
{ meta.description = "LADSPA format audio plugins"; }
|
||||
''
|
||||
mkdir -p $out/include
|
||||
cp ${src} $out/include/ladspa.h
|
||||
''
|
||||
|
20
pkgs/applications/audio/xmp/default.nix
Normal file
20
pkgs/applications/audio/xmp/default.nix
Normal file
@ -0,0 +1,20 @@
|
||||
{ stdenv, fetchurl, pkgconfig, alsaLib, libxmp }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "xmp-4.0.7";
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Extended module player";
|
||||
homepage = "http://xmp.sourceforge.net/";
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ iyzsong ];
|
||||
};
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/xmp/xmp/${name}.tar.gz";
|
||||
sha256 = "0qgzzaxhshz5l7s21x89xb43pbbi0zap6a4lk4s7gjp1qca2agcw";
|
||||
};
|
||||
|
||||
buildInputs = [ pkgconfig alsaLib libxmp ];
|
||||
}
|
68
pkgs/applications/editors/atom/default.nix
Normal file
68
pkgs/applications/editors/atom/default.nix
Normal file
@ -0,0 +1,68 @@
|
||||
{ stdenv, fetchurl, buildEnv, makeDesktopItem, makeWrapper, zlib, glib, alsaLib
|
||||
, dbus, gtk, atk, pango, freetype, fontconfig, libgnome_keyring3, gdk_pixbuf
|
||||
, cairo, cups, expat, libgpgerror, nspr, gconf, nss, xlibs
|
||||
}:
|
||||
|
||||
let
|
||||
atomEnv = buildEnv {
|
||||
name = "env-atom";
|
||||
paths = [
|
||||
stdenv.gcc.gcc zlib glib dbus gtk atk pango freetype libgnome_keyring3
|
||||
fontconfig gdk_pixbuf cairo cups expat libgpgerror alsaLib nspr gconf nss
|
||||
xlibs.libXrender xlibs.libX11 xlibs.libXext xlibs.libXdamage xlibs.libXtst
|
||||
xlibs.libXcomposite xlibs.libXi xlibs.libXfixes
|
||||
];
|
||||
};
|
||||
in stdenv.mkDerivation rec {
|
||||
name = "atom-${version}";
|
||||
version = "0.99.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = https://github.com/hotice/webupd8/raw/master/atom-linux64-0.99.0~git20140525.tar.xz;
|
||||
sha256 = "55c2415c96e1182ae1517751cbea1db64e9962683b384cfe5e182aec10aebecd";
|
||||
name = "${name}.tar.xz";
|
||||
};
|
||||
|
||||
iconsrc = fetchurl {
|
||||
url = https://raw.githubusercontent.com/atom/atom/master/resources/atom.png;
|
||||
sha256 = "66dc0b432eed7bcd738b7c1b194e539178a83d427c78f103041981f2b840e030";
|
||||
};
|
||||
|
||||
desktopItem = makeDesktopItem {
|
||||
name = "atom";
|
||||
exec = "atom";
|
||||
icon = iconsrc;
|
||||
comment = "A hackable text editor for the 21st Century";
|
||||
desktopName = "Atom";
|
||||
genericName = "Text editor";
|
||||
categories = "Development;TextEditor";
|
||||
};
|
||||
|
||||
buildInputs = [ atomEnv makeWrapper ];
|
||||
|
||||
phases = [ "installPhase" ];
|
||||
|
||||
installPhase = ''
|
||||
ensureDir $out/share/atom
|
||||
ensureDir $out/bin
|
||||
tar -C $out/share/atom -xvf $src
|
||||
patchelf --set-interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" \
|
||||
$out/share/atom/atom
|
||||
patchelf --set-interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" \
|
||||
$out/share/atom/resources/app/apm/node_modules/atom-package-manager/bin/node
|
||||
makeWrapper $out/share/atom/atom $out/bin/atom \
|
||||
--prefix "LD_LIBRARY_PATH" : "${atomEnv}/lib:${atomEnv}/lib64"
|
||||
|
||||
# Create a desktop item.
|
||||
mkdir -p "$out/share/applications"
|
||||
cp "${desktopItem}"/share/applications/* "$out/share/applications/"
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "A hackable text editor for the 21st Century";
|
||||
homepage = https://atom.io/;
|
||||
license = [ licenses.mit ];
|
||||
maintainers = [ maintainers.offline ];
|
||||
platforms = [ "x86_64-linux" ];
|
||||
};
|
||||
}
|
@ -1,11 +1,11 @@
|
||||
{ fetchurl, stdenv, emacs, texinfo, which, texLive }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "org-8.2.6";
|
||||
name = "org-8.2.7";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://orgmode.org/${name}.tar.gz";
|
||||
sha256 = "0f196r0n9m2np123sjabsqdw68h9qp6qr7l5v257am8qs7rj0jm1";
|
||||
sha256 = "1n864hnjvx5n2gfi7n0xbwvb1k8l5rdh4a3vpbhw23hy8rx3bvaw";
|
||||
};
|
||||
|
||||
buildInputs = [ emacs ];
|
||||
@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
license = "GPLv3+";
|
||||
|
||||
maintainers = with stdenv.lib.maintainers; [ chaoflow ];
|
||||
maintainers = with stdenv.lib.maintainers; [ chaoflow pSub ];
|
||||
platforms = stdenv.lib.platforms.gnu;
|
||||
};
|
||||
}
|
||||
|
24
pkgs/applications/editors/emacs-modes/sbt-mode/default.nix
Normal file
24
pkgs/applications/editors/emacs-modes/sbt-mode/default.nix
Normal file
@ -0,0 +1,24 @@
|
||||
{ stdenv, fetchurl, emacs, unzip }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
|
||||
name = "sbt-mode-2014-06-05";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/hvesalai/sbt-mode/archive/676f22d9658989de401d299ed0250db9b911574d.zip";
|
||||
sha256 = "0b8qrr3yp48ggl757d3a6bz633mbf4zxqpcwsh47b1ckiwa3nb2h";
|
||||
};
|
||||
|
||||
buildInputs = [ unzip emacs ];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p "$out/share/emacs/site-lisp"
|
||||
cp -v *.el *.elc "$out/share/emacs/site-lisp/"
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/hvesalai/scala-mode2";
|
||||
description = "An Emacs mode for editing Scala code";
|
||||
license = "permissive";
|
||||
};
|
||||
}
|
24
pkgs/applications/editors/emacs-modes/scala-mode/v2.nix
Normal file
24
pkgs/applications/editors/emacs-modes/scala-mode/v2.nix
Normal file
@ -0,0 +1,24 @@
|
||||
{ stdenv, fetchurl, emacs, unzip }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
|
||||
name = "scala-mode2-2014-06-05";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/hvesalai/scala-mode2/archive/af2dc30226c890ff7d49d727450f8006b90781df.zip";
|
||||
sha256 = "1jj08li9lfg5291jzj170wa3cmyf3g2a0j80cy5307l0mdawp9vx";
|
||||
};
|
||||
|
||||
buildInputs = [ unzip emacs ];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p "$out/share/emacs/site-lisp"
|
||||
cp -v *.el *.elc "$out/share/emacs/site-lisp/"
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/hvesalai/scala-mode2";
|
||||
description = "An Emacs mode for editing Scala code";
|
||||
license = "permissive";
|
||||
};
|
||||
}
|
93
pkgs/applications/editors/vim/macvim.nix
Normal file
93
pkgs/applications/editors/vim/macvim.nix
Normal file
@ -0,0 +1,93 @@
|
||||
{ stdenv, stdenvAdapters, gccApple, fetchFromGitHub, ncurses, gettext,
|
||||
pkgconfig, cscope, python, ruby, tcl, perl, luajit
|
||||
}:
|
||||
|
||||
let inherit (stdenvAdapters.overrideGCC stdenv gccApple) mkDerivation;
|
||||
in mkDerivation rec {
|
||||
name = "macvim-${version}";
|
||||
|
||||
version = "7.4-73";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "b4winckler";
|
||||
repo = "macvim";
|
||||
rev = "snapshot-73";
|
||||
sha256 = "0zv82y2wz8b482khkgbl08cnxq3pv5bm37c71wgfa0fzy3h12gcj";
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
buildInputs = [
|
||||
gettext ncurses pkgconfig luajit ruby tcl perl python
|
||||
];
|
||||
|
||||
patches = [ ./macvim.patch ];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace src/MacVim/mvim --replace "# VIM_APP_DIR=/Applications" "VIM_APP_DIR=$out/Applications"
|
||||
|
||||
# Don't create custom icons.
|
||||
substituteInPlace src/MacVim/icons/Makefile --replace '$(MAKE) -C makeicns' ""
|
||||
substituteInPlace src/MacVim/icons/make_icons.py --replace "dont_create = False" "dont_create = True"
|
||||
|
||||
# Full path to xcodebuild
|
||||
substituteInPlace src/Makefile --replace "xcodebuild" "/usr/bin/xcodebuild"
|
||||
'';
|
||||
|
||||
configureFlags = [
|
||||
#"--enable-cscope" # TODO: cscope doesn't build on Darwin yet
|
||||
"--enable-fail-if-missing"
|
||||
"--with-features=huge"
|
||||
"--enable-gui=macvim"
|
||||
"--enable-multibyte"
|
||||
"--enable-nls"
|
||||
"--enable-luainterp=dynamic"
|
||||
"--enable-pythoninterp=dynamic"
|
||||
"--enable-perlinterp=dynamic"
|
||||
"--enable-rubyinterp=dynamic"
|
||||
"--enable-tclinterp=yes"
|
||||
"--with-luajit"
|
||||
"--with-lua-prefix=${luajit}"
|
||||
"--with-ruby-command=${ruby}/bin/ruby"
|
||||
"--with-tclsh=${tcl}/bin/tclsh"
|
||||
"--with-tlib=ncurses"
|
||||
"--with-compiledby=Nix"
|
||||
];
|
||||
|
||||
preConfigure = ''
|
||||
DEV_DIR=$(/usr/bin/xcode-select -print-path)/Platforms/MacOSX.platform/Developer
|
||||
configureFlagsArray+=(
|
||||
"--with-developer-dir=$DEV_DIR"
|
||||
)
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
ensureDir $out/Applications
|
||||
cp -r src/MacVim/build/Release/MacVim.app $out/Applications
|
||||
|
||||
rm $out/bin/{Vimdiff,Vimtutor,Vim,ex,rVim,rview,view}
|
||||
|
||||
cp src/MacVim/mvim $out/bin
|
||||
cp src/vimtutor $out/bin
|
||||
|
||||
for prog in "vimdiff" "vi" "vim" "ex" "rvim" "rview" "view"; do
|
||||
ln -s $out/bin/mvim $out/bin/$prog
|
||||
done
|
||||
|
||||
# Fix rpaths
|
||||
exe="$out/Applications/MacVim.app/Contents/MacOS/Vim"
|
||||
libperl=$(dirname $(find ${perl} -name "libperl.dylib"))
|
||||
install_name_tool -add_rpath ${luajit}/lib $exe
|
||||
install_name_tool -add_rpath ${tcl}/lib $exe
|
||||
install_name_tool -add_rpath ${python}/lib $exe
|
||||
install_name_tool -add_rpath $libperl $exe
|
||||
install_name_tool -add_rpath ${ruby}/lib $exe
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Vim - the text editor - for Mac OS X";
|
||||
homepage = https://github.com/b4winckler/macvim;
|
||||
maintainers = with maintainers; [ cstrahan ];
|
||||
platforms = platforms.darwin;
|
||||
};
|
||||
}
|
159
pkgs/applications/editors/vim/macvim.patch
Normal file
159
pkgs/applications/editors/vim/macvim.patch
Normal file
@ -0,0 +1,159 @@
|
||||
diff --git a/src/vimtutor b/src/vimtutor
|
||||
index 70d9ec7..b565a1a 100755
|
||||
--- a/src/vimtutor
|
||||
+++ b/src/vimtutor
|
||||
@@ -16,7 +16,7 @@ seq="vim vim8 vim75 vim74 vim73 vim72 vim71 vim70 vim7 vim6 vi"
|
||||
if test "$1" = "-g"; then
|
||||
# Try to use the GUI version of Vim if possible, it will fall back
|
||||
# on Vim if Gvim is not installed.
|
||||
- seq="gvim gvim8 gvim75 gvim74 gvim73 gvim72 gvim71 gvim70 gvim7 gvim6 $seq"
|
||||
+ seq="mvim gvim gvim8 gvim75 gvim74 gvim73 gvim72 gvim71 gvim70 gvim7 gvim6 $seq"
|
||||
shift
|
||||
fi
|
||||
|
||||
|
||||
diff --git a/src/auto/configure b/src/auto/configure
|
||||
index bc9f074..9b9125e 100755
|
||||
--- a/src/auto/configure
|
||||
+++ b/src/auto/configure
|
||||
@@ -2252,7 +2252,7 @@ rm -f conftest.val
|
||||
as_fn_set_status $ac_retval
|
||||
|
||||
} # ac_fn_c_compute_int
|
||||
-cat >auto/config.log <<_ACEOF
|
||||
+cat >config.log <<_ACEOF
|
||||
This file contains any messages produced by compilers while
|
||||
running configure, to aid debugging if configure makes a mistake.
|
||||
|
||||
@@ -2262,7 +2262,7 @@ generated by GNU Autoconf 2.69. Invocation command line was
|
||||
$ $0 $@
|
||||
|
||||
_ACEOF
|
||||
-exec 5>>auto/config.log
|
||||
+exec 5>>config.log
|
||||
{
|
||||
cat <<_ASUNAME
|
||||
## --------- ##
|
||||
@@ -5377,10 +5377,7 @@ $as_echo "no" >&6; }
|
||||
fi
|
||||
|
||||
if test "X$vi_cv_path_mzscheme_pfx" != "X"; then
|
||||
- if test "x$MACOSX" = "xyes"; then
|
||||
- MZSCHEME_LIBS="-framework Racket"
|
||||
- MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
|
||||
- elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"; then
|
||||
+ if test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"; then
|
||||
MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"
|
||||
MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
|
||||
elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libracket3m.a"; then
|
||||
@@ -5716,23 +5713,6 @@ $as_echo ">>> too old; need Perl version 5.003_01 or later <<<" >&6; }
|
||||
fi
|
||||
|
||||
if test "x$MACOSX" = "xyes"; then
|
||||
- dir=/System/Library/Perl
|
||||
- darwindir=$dir/darwin
|
||||
- if test -d $darwindir; then
|
||||
- PERL=/usr/bin/perl
|
||||
- else
|
||||
- dir=/System/Library/Perl/5.8.1
|
||||
- darwindir=$dir/darwin-thread-multi-2level
|
||||
- if test -d $darwindir; then
|
||||
- PERL=/usr/bin/perl
|
||||
- fi
|
||||
- fi
|
||||
- if test -n "$PERL"; then
|
||||
- PERL_DIR="$dir"
|
||||
- PERL_CFLAGS="-DFEAT_PERL -I$darwindir/CORE"
|
||||
- PERL_OBJ="objects/if_perl.o objects/if_perlsfio.o $darwindir/auto/DynaLoader/DynaLoader.a"
|
||||
- PERL_LIBS="-L$darwindir/CORE -lperl"
|
||||
- fi
|
||||
PERL_LIBS=`echo "$PERL_LIBS" | sed -e 's/-arch\ ppc//' -e 's/-arch\ i386//' -e 's/-arch\ x86_64//'`
|
||||
PERL_CFLAGS=`echo "$PERL_CFLAGS" | sed -e 's/-arch\ ppc//' -e 's/-arch\ i386//' -e 's/-arch\ x86_64//'`
|
||||
fi
|
||||
@@ -5926,10 +5906,6 @@ __:
|
||||
eof
|
||||
eval "`cd ${PYTHON_CONFDIR} && make -f "${tmp_mkf}" __ | sed '/ directory /d'`"
|
||||
rm -f -- "${tmp_mkf}"
|
||||
- if test "x$MACOSX" = "xyes" && ${vi_cv_path_python} -c \
|
||||
- "import sys; sys.exit(${vi_cv_var_python_version} < 2.3)"; then
|
||||
- vi_cv_path_python_plibs="-framework Python"
|
||||
- else
|
||||
if test "${vi_cv_var_python_version}" = "1.4"; then
|
||||
vi_cv_path_python_plibs="${PYTHON_CONFDIR}/libModules.a ${PYTHON_CONFDIR}/libPython.a ${PYTHON_CONFDIR}/libObjects.a ${PYTHON_CONFDIR}/libParser.a"
|
||||
else
|
||||
@@ -5937,7 +5913,6 @@ eof
|
||||
fi
|
||||
vi_cv_path_python_plibs="${vi_cv_path_python_plibs} ${python_BASEMODLIBS} ${python_LIBS} ${python_SYSLIBS} ${python_LINKFORSHARED}"
|
||||
vi_cv_path_python_plibs=`echo $vi_cv_path_python_plibs | sed s/-ltermcap//`
|
||||
- fi
|
||||
|
||||
fi
|
||||
|
||||
@@ -6004,13 +5979,6 @@ rm -f core conftest.err conftest.$ac_objext \
|
||||
$as_echo "no" >&6; }
|
||||
fi
|
||||
|
||||
- if test -n "$MACSDK"; then
|
||||
- PYTHON_CFLAGS=
|
||||
- PYTHON_LIBS=-framework Python
|
||||
- PYTHON_CONFDIR=
|
||||
- PYTHON_GETPATH_CFLAGS=
|
||||
- fi
|
||||
-
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if compile and link flags for Python are sane" >&5
|
||||
$as_echo_n "checking if compile and link flags for Python are sane... " >&6; }
|
||||
cflags_save=$CFLAGS
|
||||
@@ -6853,11 +6821,7 @@ $as_echo "$tclver - OK" >&6; };
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for location of Tcl include" >&5
|
||||
$as_echo_n "checking for location of Tcl include... " >&6; }
|
||||
- if test "x$MACOSX" != "xyes"; then
|
||||
tclinc="$tclloc/include $tclloc/include/tcl $tclloc/include/tcl$tclver /usr/local/include /usr/local/include/tcl$tclver /usr/include /usr/include/tcl$tclver"
|
||||
- else
|
||||
- tclinc="/System/Library/Frameworks/Tcl.framework/Headers"
|
||||
- fi
|
||||
TCL_INC=
|
||||
for try in $tclinc; do
|
||||
if test -f "$try/tcl.h"; then
|
||||
@@ -6875,12 +6839,8 @@ $as_echo "<not found>" >&6; }
|
||||
if test -z "$SKIP_TCL"; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for location of tclConfig.sh script" >&5
|
||||
$as_echo_n "checking for location of tclConfig.sh script... " >&6; }
|
||||
- if test "x$MACOSX" != "xyes"; then
|
||||
tclcnf=`echo $tclinc | sed s/include/lib/g`
|
||||
tclcnf="$tclcnf `echo $tclinc | sed s/include/lib64/g`"
|
||||
- else
|
||||
- tclcnf="/System/Library/Frameworks/Tcl.framework"
|
||||
- fi
|
||||
for try in $tclcnf; do
|
||||
if test -f $try/tclConfig.sh; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $try/tclConfig.sh" >&5
|
||||
@@ -7050,10 +7010,6 @@ $as_echo "$rubyhdrdir" >&6; }
|
||||
if test -f "$rubylibdir/$librubya"; then
|
||||
librubyarg="$librubyarg"
|
||||
RUBY_LIBS="$RUBY_LIBS -L$rubylibdir"
|
||||
- elif test -d "/System/Library/Frameworks/Ruby.framework"; then
|
||||
- RUBY_LIBS="-framework Ruby"
|
||||
- RUBY_CFLAGS="-DRUBY_VERSION=$rubyversion"
|
||||
- librubyarg=
|
||||
fi
|
||||
|
||||
if test "X$librubyarg" != "X"; then
|
||||
@@ -14061,7 +14017,7 @@ fi
|
||||
|
||||
_ACEOF
|
||||
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
||||
-exec 5>>auto/config.log
|
||||
+exec 5>>config.log
|
||||
{
|
||||
echo
|
||||
sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
|
||||
@@ -14653,7 +14609,7 @@ if test "$no_create" != yes; then
|
||||
ac_config_status_args="$ac_config_status_args --quiet"
|
||||
exec 5>/dev/null
|
||||
$SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
|
||||
- exec 5>>auto/config.log
|
||||
+ exec 5>>config.log
|
||||
# Use ||, not &&, to avoid exiting from the if with $? = 1, which
|
||||
# would make configure fail if this is the last instruction.
|
||||
$ac_cs_success || as_fn_exit 1
|
@ -5,6 +5,12 @@
|
||||
, split, tasty, tastyHunit, tastyQuickcheck, time, transformersBase
|
||||
, uniplate, unixCompat, unorderedContainers, utf8String, vty
|
||||
, xdgBasedir
|
||||
, withPango ? true
|
||||
|
||||
# User may need extra dependencies for their configuration file so we
|
||||
# want to specify it here to have them available when wrapping the
|
||||
# produced binary.
|
||||
, extraDepends ? [ ]
|
||||
}:
|
||||
|
||||
cabal.mkDerivation (self: {
|
||||
@ -15,21 +21,43 @@ cabal.mkDerivation (self: {
|
||||
isExecutable = true;
|
||||
buildDepends = [
|
||||
binary Cabal cautiousFile concreteTyperep dataDefault derive Diff
|
||||
dlist dyre filepath fingertree glib gtk hashable hint lens mtl
|
||||
pango parsec pointedlist QuickCheck random regexBase regexTdfa safe
|
||||
dlist dyre filepath fingertree hashable hint lens mtl
|
||||
parsec pointedlist QuickCheck random regexBase regexTdfa safe
|
||||
split time transformersBase uniplate unixCompat unorderedContainers
|
||||
utf8String vty xdgBasedir
|
||||
];
|
||||
] ++ (if withPango then [ pango gtk glib ] else [ ]) ++ extraDepends;
|
||||
testDepends = [
|
||||
filepath HUnit QuickCheck tasty tastyHunit tastyQuickcheck
|
||||
];
|
||||
buildTools = [ alex ];
|
||||
configureFlags = "-fpango";
|
||||
configureFlags = if withPango then "-fpango" else "-f-pango";
|
||||
doCheck = false;
|
||||
|
||||
# https://ghc.haskell.org/trac/ghc/ticket/9170
|
||||
noHaddock = self.ghc.version == "7.6.3";
|
||||
|
||||
# Allows Yi to find the libraries it needs at runtime.
|
||||
postInstall = ''
|
||||
mv $out/bin/yi $out/bin/.yi-wrapped
|
||||
cat - > $out/bin/yi <<EOF
|
||||
#! ${self.stdenv.shell}
|
||||
# Trailing : is necessary for it to pick up Prelude &c.
|
||||
export GHC_PACKAGE_PATH=$(${self.ghc.GHCGetPackages} ${self.ghc.version} \
|
||||
| sed 's/-package-db\ //g' \
|
||||
| sed 's/^\ //g' \
|
||||
| sed 's/\ /:/g')\
|
||||
:$out/lib/ghc-${self.ghc.version}/package.conf.d/yi-$version.installedconf:
|
||||
|
||||
eval exec $out/bin/.yi-wrapped "\$@"
|
||||
EOF
|
||||
chmod +x $out/bin/yi
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = "http://haskell.org/haskellwiki/Yi";
|
||||
description = "The Haskell-Scriptable Editor";
|
||||
license = "GPL";
|
||||
license = self.stdenv.lib.licenses.gpl2;
|
||||
platforms = self.ghc.meta.platforms;
|
||||
maintainers = [ self.stdenv.lib.maintainers.fuuzetsu ];
|
||||
};
|
||||
})
|
||||
|
@ -1,4 +1,4 @@
|
||||
{stdenv, fetchurlGnome, gtk, pkgconfig, perl, perlXMLParser, libxml2, gettext
|
||||
{stdenv, fetchurl, fetchurlGnome, gtk, pkgconfig, perl, perlXMLParser, libxml2, gettext
|
||||
, python, libxml2Python, docbook5, docbook_xsl, libxslt, intltool, libart_lgpl
|
||||
, withGNOME ? false, libgnomeui }:
|
||||
|
||||
@ -11,6 +11,11 @@ stdenv.mkDerivation rec {
|
||||
sha256 = "1qgawm7rrf4wd1yc0fp39ywv8gbz4ry1s16k00dzg5w6p67lfqd7";
|
||||
};
|
||||
|
||||
correctPersistence = fetchurl {
|
||||
url = https://launchpadlibrarian.net/132677658/persistence;
|
||||
sha256 = "1rv6zv9i03bna4bdp1wzn72lg7kdwi900y1izdq0imibi54nxjsk";
|
||||
};
|
||||
|
||||
buildInputs =
|
||||
[ gtk perlXMLParser libxml2 gettext python libxml2Python docbook5
|
||||
libxslt docbook_xsl libart_lgpl
|
||||
@ -24,7 +29,17 @@ stdenv.mkDerivation rec {
|
||||
|
||||
# This file should normally require a gtk-update-icon-cache -q /usr/share/icons/hicolor command
|
||||
# It have no reasons to exist in a redistribuable package
|
||||
postInstall = "rm $out/share/icons/hicolor/icon-theme.cache";
|
||||
postInstall = ''
|
||||
rm $out/share/icons/hicolor/icon-theme.cache
|
||||
|
||||
cd "$out"/bin/
|
||||
mv dia .dia-wrapped
|
||||
echo '#! ${stdenv.shell}' >> dia
|
||||
echo 'test -f "$HOME/.dia/persistence" || cp ${correctPersistence} "$HOME/.dia/persistence" ' >> dia
|
||||
echo 'chmod u+rw "$HOME/.dia/persistence" ' >> dia
|
||||
echo "\"$out/bin/"'.dia-wrapped" "$@"' >> dia
|
||||
chmod a+x dia
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Gnome Diagram drawing software";
|
||||
|
@ -1,22 +1,23 @@
|
||||
{ stdenv, makeWrapper, fetchurl, x11, imlib2, libjpeg, libpng, giblib
|
||||
{ stdenv, makeWrapper, fetchurl, x11, imlib2, libjpeg, libpng
|
||||
, libXinerama, curl }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "feh-2.11";
|
||||
name = "feh-2.12";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://feh.finalrewind.org/${name}.tar.bz2";
|
||||
sha256 = "1y41ixsp5nhvb29hhiyh8g1g28lc0kki619skgxcv5iisc93dk4x";
|
||||
sha256 = "0ckhidmsms2l5jycp0qf71jzmb3bpbhjq3bcgfpvfvszah7pmq30";
|
||||
};
|
||||
|
||||
buildInputs = [makeWrapper x11 imlib2 giblib libjpeg libpng libXinerama curl ];
|
||||
buildInputs = [makeWrapper x11 imlib2 libjpeg libpng libXinerama curl];
|
||||
|
||||
preBuild = ''
|
||||
makeFlags="PREFIX=$out"
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
wrapProgram "$out/bin/feh" --prefix PATH : "${libjpeg}/bin"
|
||||
wrapProgram "$out/bin/feh" --prefix PATH : "${libjpeg}/bin" \
|
||||
--add-flags '--theme=feh'
|
||||
'';
|
||||
|
||||
meta = {
|
||||
|
@ -10,12 +10,14 @@ stdenv.mkDerivation {
|
||||
sha256 = "1bbyl7jgigawmwc8r14znv8lb6lrcxh8zpvynrl6s800dr4yp9as";
|
||||
};
|
||||
|
||||
configureFlags = ["--with-libpotrace"];
|
||||
|
||||
buildInputs = [ zlib ];
|
||||
|
||||
meta = {
|
||||
homepage = http://potrace.sourceforge.net/;
|
||||
description = "A tool for tracing a bitmap, which means, transforming a bitmap into a smooth, scalable image";
|
||||
platforms = stdenv.lib.platforms.linux;
|
||||
platforms = stdenv.lib.platforms.unix;
|
||||
maintainers = [ stdenv.lib.maintainers.pSub ];
|
||||
license = "GPL2";
|
||||
};
|
||||
|
@ -1,14 +1,15 @@
|
||||
{ stdenv, fetchurl, pkgconfig, gtk, imlib2, file } :
|
||||
{ stdenv, fetchurl, pkgconfig, gtk, imlib2, file, lcms2, libexif } :
|
||||
|
||||
stdenv.mkDerivation (rec {
|
||||
name = "qiv-2.2.4";
|
||||
version = "2.3.1";
|
||||
name = "qiv-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://spiegl.de/qiv/download/${name}.tgz";
|
||||
sha256 = "ed6078dc550c1dc2fe35c1e0f46463c13589a24b83d4f7101b71a7485e51abb7";
|
||||
sha256 = "1rlf5h67vhj7n1y7jqkm9k115nfnzpwngj3kzqsi2lg676srclv7";
|
||||
};
|
||||
|
||||
buildInputs = [ pkgconfig gtk imlib2 file ];
|
||||
buildInputs = [ pkgconfig gtk imlib2 file lcms2 libexif ];
|
||||
|
||||
preBuild=''
|
||||
substituteInPlace Makefile --replace /usr/local "$out"
|
||||
@ -18,5 +19,6 @@ stdenv.mkDerivation (rec {
|
||||
meta = {
|
||||
description = "qiv (quick image viewer)";
|
||||
homepage = http://spiegl.de/qiv/;
|
||||
inherit version;
|
||||
};
|
||||
})
|
||||
|
3
pkgs/applications/graphics/qiv/default.upstream
Normal file
3
pkgs/applications/graphics/qiv/default.upstream
Normal file
@ -0,0 +1,3 @@
|
||||
url http://spiegl.de/qiv/download/
|
||||
version_link '[.]tgz$'
|
||||
do_overwrite() { do_overwrite_just_version; }
|
@ -4,11 +4,11 @@
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "calibre-1.31.0";
|
||||
name = "calibre-1.35.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/calibre/${name}.tar.xz";
|
||||
sha256 = "1fl42y8ppw8s51v66dqsrg1ib28yi6z5779r9wfvdbl9v1clilfc";
|
||||
sha256 = "0pzxp1f9d4pw7vksdfkdz6fdgrb8jfwgh4fckjfrarqs039422bi";
|
||||
};
|
||||
|
||||
inherit python;
|
||||
|
75
pkgs/applications/misc/llpp/default.nix
Normal file
75
pkgs/applications/misc/llpp/default.nix
Normal file
@ -0,0 +1,75 @@
|
||||
{ stdenv, fetchgit, ocaml, mupdf, lablgl, mesa
|
||||
, libX11, libXext, gtk3, freetype, zlib, openjpeg
|
||||
, jbig2dec, libjpeg, ncurses }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "llpp-2014-05-26";
|
||||
|
||||
src = fetchgit {
|
||||
url = "git://repo.or.cz/llpp.git";
|
||||
rev = "902143de64d86b5714b3a59d2cc7085083b87249";
|
||||
sha256 = "038xl4gbvm57na2lz1fw36sf43zaxq407zi2d53985vc33677j9s";
|
||||
};
|
||||
|
||||
buildInputs = [ ocaml mupdf lablgl mesa libX11 libXext gtk3
|
||||
freetype jbig2dec libjpeg openjpeg zlib ncurses ];
|
||||
|
||||
# The build phase was extracted from buildall.sh, because that script
|
||||
# fetched the dependencies on its own.
|
||||
buildPhase = ''
|
||||
ccopt="-O"
|
||||
ccopt="$ccopt -I ${jbig2dec}/include"
|
||||
ccopt="$ccopt -I ${libjpeg}/include"
|
||||
ccopt="$ccopt -I ${freetype}/include"
|
||||
ccopt="$ccopt -I ${openjpeg}/include"
|
||||
ccopt="$ccopt -I ${zlib}/include"
|
||||
ccopt="$ccopt -I ${mupdf}/include"
|
||||
ccopt="$ccopt -include ${freetype}/include/ft2build.h"
|
||||
ccopt="$ccopt -D_GNU_SOURCE"
|
||||
|
||||
cclib="$cclib -lmupdf"
|
||||
cclib="$cclib -lz -ljpeg -lopenjp2 -ljbig2dec -lfreetype -lpthread"
|
||||
cclib="$cclib -lX11"
|
||||
cclib="$cclib -lfreetype"
|
||||
|
||||
comp=ocamlc.opt
|
||||
cmsuf=cmo
|
||||
|
||||
sh mkhelp.sh keystoml.ml KEYS > help.ml
|
||||
|
||||
$comp -c -o link.o -ccopt "$ccopt" link.c
|
||||
$comp -c -o help.$cmsuf help.ml
|
||||
$comp -c -o utils.$cmsuf utils.ml
|
||||
$comp -c -o wsi.cmi wsi.mli
|
||||
$comp -c -o wsi.$cmsuf wsi.ml
|
||||
$comp -c -o parser.$cmsuf parser.ml
|
||||
$comp -c -o main.$cmsuf -I ${lablgl}/lib/ocaml/4.01.0/site-lib/lablgl main.ml
|
||||
|
||||
$comp -custom -o llpp \
|
||||
-I ${lablgl}/lib/ocaml/4.01.0/site-lib/lablgl \
|
||||
str.cma unix.cma lablgl.cma \
|
||||
link.o \
|
||||
-cclib "$cclib" \
|
||||
help.cmo \
|
||||
utils.cmo \
|
||||
parser.cmo \
|
||||
wsi.cmo \
|
||||
main.cmo
|
||||
'';
|
||||
|
||||
# Binary fails with 'No bytecode file specified.' if stripped.
|
||||
dontStrip = true;
|
||||
|
||||
installPhase = ''
|
||||
install -d $out/bin
|
||||
install llpp llppac $out/bin
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = http://repo.or.cz/w/llpp.git;
|
||||
description = "A MuPDF based PDF pager written in OCaml";
|
||||
platforms = stdenv.lib.platforms.linux;
|
||||
maintainers = [ stdenv.lib.maintainers.pSub ];
|
||||
license = "GPL";
|
||||
};
|
||||
}
|
@ -1,20 +1,14 @@
|
||||
{ stdenv, fetchurl, fetchpatch, pkgconfig, zlib, freetype, libjpeg, jbig2dec, openjpeg
|
||||
, libX11, libXext }:
|
||||
stdenv.mkDerivation rec {
|
||||
name = "mupdf-1.3";
|
||||
version = "1.5";
|
||||
name = "mupdf-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://mupdf.com/download/archive/${name}-source.tar.gz";
|
||||
sha256 = "0y247nka5gkr1ajn47jrlp5rcnf6h4ff7dfsprma3h4wxqdv7a5b";
|
||||
sha256 = "0sl47zqf4c9fhs4h5zg046vixjmwgy4vhljhr5g4md733nash7z4";
|
||||
};
|
||||
|
||||
patches = [(fetchpatch {
|
||||
name = "CVE-2014-2013.patch";
|
||||
url = "http://git.ghostscript.com/?p=mupdf.git;a=commitdiff_plain;"
|
||||
+ "h=60dabde18d7fe12b19da8b509bdfee9cc886aafc";
|
||||
sha256 = "0p721f3g2djz9fy6rcgj83c20f5k257wg2d0yvvmp02m7sp06l0g";
|
||||
})];
|
||||
|
||||
buildInputs = [ pkgconfig zlib freetype libjpeg jbig2dec openjpeg libX11 libXext ];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
@ -74,5 +68,6 @@ stdenv.mkDerivation rec {
|
||||
license = "GPLv3+";
|
||||
maintainers = with stdenv.lib.maintainers; [ viric ];
|
||||
platforms = with stdenv.lib.platforms; linux;
|
||||
inherit version;
|
||||
};
|
||||
}
|
||||
|
7
pkgs/applications/misc/mupdf/default.upstream
Normal file
7
pkgs/applications/misc/mupdf/default.upstream
Normal file
@ -0,0 +1,7 @@
|
||||
url http://mupdf.com/downloads/archive/
|
||||
do_overwrite(){
|
||||
ensure_hash
|
||||
ensure_version
|
||||
set_var_value version $CURRENT_VERSION
|
||||
set_var_value sha256 $CURRENT_HASH
|
||||
}
|
@ -2,11 +2,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "pgadmin3-${version}";
|
||||
version = "1.16.1";
|
||||
version = "1.18.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://ftp.postgresql.org/pub/pgadmin3/release/v${version}/src/pgadmin3-${version}.tar.gz";
|
||||
sha256 = "13n2nyjnbmjbz9n0xp6627n3pavkqfp4n45l1mnqxhjdq8yj9fnl";
|
||||
sha256 = "1h6bqslw53q44vy7z1q7wmxkgqdzxacfs8pfm2fxm8vcd8lkxb17";
|
||||
};
|
||||
|
||||
buildInputs = [ postgresql wxGTK libxml2 libxslt openssl ];
|
||||
@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
|
||||
description = "PostgreSQL administration GUI tool";
|
||||
homepage = http://www.pgadmin.org;
|
||||
license = licenses.gpl2;
|
||||
maintainers = [ maintainers.iElectric ];
|
||||
maintainers = with maintainers; [ iElectric wmertens ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
|
@ -17,14 +17,14 @@ assert stdenv.gcc ? libc && stdenv.gcc.libc != null;
|
||||
|
||||
rec {
|
||||
|
||||
firefoxVersion = "29.0.1";
|
||||
firefoxVersion = "30.0";
|
||||
|
||||
xulVersion = "29.0.1"; # this attribute is used by other packages
|
||||
xulVersion = "30.0"; # this attribute is used by other packages
|
||||
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${firefoxVersion}/source/firefox-${firefoxVersion}.source.tar.bz2";
|
||||
sha1 = "2819ef63403de2bcfff5496bd21a3b8cb5dfce82";
|
||||
sha1 = "bll9hxf31gvg9db6gxgmq25qsjif3p11";
|
||||
};
|
||||
|
||||
commonConfigureFlags =
|
||||
|
@ -4,16 +4,16 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "vimb-${version}";
|
||||
version = "2.2";
|
||||
version = "2.4";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/fanglingsu/vimb/archive/${version}.tar.gz";
|
||||
sha256 = "18gig6rcxv0i4a8mz3jv29zpj0323zw45jsg1ycx61a08rzag60m";
|
||||
sha256 = "167ilbsd4y4zl493k6g4j5v85y784qz8z7qflzd1ccsjjznv7fm8";
|
||||
};
|
||||
|
||||
# Nixos default ca bundle
|
||||
patchPhase = ''
|
||||
sed -i s,/etc/ssl/certs/ca-certificates.crt,/etc/ssl/certs/ca-bundle.crt, src/default.h
|
||||
sed -i s,/etc/ssl/certs/ca-certificates.crt,/etc/ssl/certs/ca-bundle.crt, src/setting.c
|
||||
'';
|
||||
|
||||
buildInputs = [ makeWrapper gtk libsoup pkgconfig webkit gsettings_desktop_schemas ];
|
||||
|
@ -1,10 +1,10 @@
|
||||
{ fetchurl, stdenv, jre, glib, libXtst, gtk, makeWrapper }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "davmail-4.4.1";
|
||||
name = "davmail-4.5.0";
|
||||
src = fetchurl {
|
||||
url = "http://downloads.sourceforge.net/project/davmail/davmail/4.4.1/davmail-linux-x86_64-4.4.1-2225.tgz";
|
||||
sha256 = "66c7ae23c0242860cca1576e5fc29343431789a821f7623e420b91ba91e480a9";
|
||||
url = "http://downloads.sourceforge.net/project/davmail/davmail/4.5.0/davmail-linux-x86_64-4.5.0-2292.tgz";
|
||||
sha256 = "0ixg26s8535b4xf4i8jr0v3acwvaslmi2dvcxg2nmzkicvh6rfd4";
|
||||
};
|
||||
|
||||
buildInputs = [ makeWrapper ];
|
||||
|
@ -1,11 +1,11 @@
|
||||
{ stdenv, fetchurl, openssl, curl, coreutils, gawk, bash, which }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "esniper-2.30.0";
|
||||
name = "esniper-2.31.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/esniper/esniper-2-30-0.tgz";
|
||||
sha256 = "1p85d5qfr3f35xfj5555ck4wwk5hqkh65ivam1527p8dwcz00wpl";
|
||||
url = "mirror://sourceforge/esniper/esniper-2-31-0.tgz";
|
||||
sha256 = "0xn6gdyr0c18khwcsi2brp49wkancrsrxxca7hvbawhbf263glih";
|
||||
};
|
||||
|
||||
buildInputs = [ openssl curl ];
|
||||
|
@ -1,13 +1,13 @@
|
||||
{ stdenv, fetchurl, dbus, gnutls, wxGTK28, libidn, tinyxml, gettext
|
||||
, pkgconfig, xdg_utils, gtk2, sqlite }:
|
||||
|
||||
let version = "3.8.0"; in
|
||||
let version = "3.8.1"; in
|
||||
stdenv.mkDerivation {
|
||||
name = "filezilla-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/project/filezilla/FileZilla_Client/${version}/FileZilla_${version}_src.tar.bz2";
|
||||
sha256 = "02635sh88zvmqhqs7yx982dmfa1qd0rhk4z1fqvgh5pr2ac1r74d";
|
||||
sha256 = "0kqyz8yb15kbzx02l3riswg95prbp402k4672nwxrzs35049rg36";
|
||||
};
|
||||
|
||||
configureFlags = [
|
||||
|
@ -14,8 +14,8 @@ stdenv.mkDerivation rec {
|
||||
buildInputs =
|
||||
[ ncurses perl python openssl aspell gnutls zlib curl pkgconfig
|
||||
libgcrypt ruby lua5 tcl guile pythonPackages.pycrypto makeWrapper
|
||||
cacert cmake
|
||||
];
|
||||
cacert cmake ]
|
||||
++ stdenv.lib.optional stdenv.isDarwin pythonPackages.pync;
|
||||
|
||||
# This patch is based on
|
||||
# weechat/c324610226cef15ecfb1235113c8243b068084c8. It fixes
|
||||
@ -24,17 +24,23 @@ stdenv.mkDerivation rec {
|
||||
# then.
|
||||
patches = [ ./fix-gnutls-32.diff ];
|
||||
|
||||
NIX_CFLAGS_COMPILE = "-I${python}/include/${python.libPrefix}";
|
||||
|
||||
postInstall = ''
|
||||
wrapProgram "$out/bin/weechat" \
|
||||
--prefix PYTHONPATH : "$PYTHONPATH" \
|
||||
--prefix PYTHONPATH : "$out/lib/${python.libPrefix}/site-packages"
|
||||
NIX_PYTHONPATH="$out/lib/${python.libPrefix}/site-packages"
|
||||
'' + stdenv.lib.optionalString stdenv.isDarwin ''
|
||||
NIX_PYTHONPATH+="${pythonPackages.pync}/lib/${python.libPrefix}/site-packages"
|
||||
'' + ''
|
||||
wrapProgram "$out/bin/weechat" \
|
||||
--prefix PYTHONPATH : "$PYTHONPATH" \
|
||||
--prefix PYTHONPATH : "$NIX_PYTHONPATH"
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = http://www.weechat.org/;
|
||||
description = "A fast, light and extensible chat client";
|
||||
license = stdenv.lib.licenses.gpl3;
|
||||
maintainers = with stdenv.lib.maintainers; [ garbas the-kenny ];
|
||||
platforms = stdenv.lib.platforms.linux;
|
||||
maintainers = with stdenv.lib.maintainers; [ lovek323 garbas the-kenny ];
|
||||
platforms = stdenv.lib.platforms.unix;
|
||||
};
|
||||
}
|
||||
|
@ -16,20 +16,26 @@ stdenv.mkDerivation rec {
|
||||
buildInputs =
|
||||
[ ncurses perl python openssl aspell gnutls zlib curl pkgconfig
|
||||
libgcrypt ruby lua5 tcl guile pythonPackages.pycrypto makeWrapper
|
||||
cacert cmake
|
||||
];
|
||||
cacert cmake ]
|
||||
++ stdenv.lib.optional stdenv.isDarwin pythonPackages.pync;
|
||||
|
||||
NIX_CFLAGS_COMPILE = "-I${python}/include/${python.libPrefix}";
|
||||
|
||||
postInstall = ''
|
||||
wrapProgram "$out/bin/weechat" \
|
||||
--prefix PYTHONPATH : "$PYTHONPATH" \
|
||||
--prefix PYTHONPATH : "$out/lib/${python.libPrefix}/site-packages"
|
||||
NIX_PYTHON_PATH="$out/lib/${python.libPrefix}/site-packages"
|
||||
'' + stdenv.lib.optionalString stdenv.isDarwin ''
|
||||
NIX_PYTHON_PATH+="${pythonPackages.pync}/lib/${python.libPrefix}/site-packages"
|
||||
'' + ''
|
||||
wrapProgram "$out/bin/weechat" \
|
||||
--prefix PYTHONPATH : "$PYTHONPATH" \
|
||||
--prefix PYTHONPATH : "$NIX_PYTHONPATH"
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = http://www.weechat.org/;
|
||||
homepage = http://www.weechat.org/;
|
||||
description = "A fast, light and extensible chat client";
|
||||
license = stdenv.lib.licenses.gpl3;
|
||||
maintainers = with stdenv.lib.maintainers; [ garbas the-kenny ];
|
||||
platforms = stdenv.lib.platforms.linux;
|
||||
license = stdenv.lib.licenses.gpl3;
|
||||
maintainers = with stdenv.lib.maintainers; [ lovek323 garbas the-kenny ];
|
||||
platforms = stdenv.lib.platforms.unix;
|
||||
};
|
||||
}
|
||||
|
@ -1,32 +1,40 @@
|
||||
{ stdenv, fetchgit, ruby, rake, rubygems, makeWrapper, ncursesw_sup
|
||||
{ stdenv, fetchurl, ruby, rake, rubygems, makeWrapper, ncursesw_sup
|
||||
, xapian_ruby, gpgme, libiconvOrEmpty, mime_types, chronic, trollop, lockfile
|
||||
, gettext, iconv, locale, text, highline, rmail_sup, unicode, gnupg, which }:
|
||||
, gettext, iconv, locale, text, highline, rmail_sup, unicode, gnupg, which
|
||||
, bundler, git }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "20140312";
|
||||
version = "0.18.0";
|
||||
name = "sup-${version}";
|
||||
|
||||
|
||||
meta = {
|
||||
homepage = http://supmua.org;
|
||||
description = "A curses threads-with-tags style email client";
|
||||
homepage = http://supmua.org;
|
||||
license = stdenv.lib.licenses.gpl2;
|
||||
maintainers = with stdenv.lib.maintainers; [ lovek323 ];
|
||||
license = stdenv.lib.licenses.gpl2;
|
||||
platforms = stdenv.lib.platforms.unix;
|
||||
platforms = stdenv.lib.platforms.unix;
|
||||
};
|
||||
|
||||
dontStrip = true;
|
||||
|
||||
src = fetchgit {
|
||||
url = git://github.com/sup-heliotrope/sup.git;
|
||||
rev = "0cad7b308237c07b8a46149908b2ad4806ac3d1d";
|
||||
sha256 = "83534b6ad9fb6aa883d630c927e3a71bd09a646e3254b4eb0cc7a09f69a525bc";
|
||||
src = fetchurl {
|
||||
url = "https://github.com/sup-heliotrope/sup/archive/release-${version}.tar.gz";
|
||||
sha256 = "1dhg0i2v0ddhwi32ih5lc56x00kbaikd2wdplgzlshq0nljr9xy0";
|
||||
};
|
||||
|
||||
buildInputs =
|
||||
[ ruby rake rubygems makeWrapper gpgme ncursesw_sup xapian_ruby
|
||||
libiconvOrEmpty ];
|
||||
[ rake ruby rubygems makeWrapper gpgme ncursesw_sup xapian_ruby
|
||||
libiconvOrEmpty git ];
|
||||
|
||||
buildPhase = "rake gem";
|
||||
phases = [ "unpackPhase" "buildPhase" "installPhase" ];
|
||||
|
||||
buildPhase = ''
|
||||
# the builder uses git to get a listing of the files
|
||||
git init >/dev/null
|
||||
git add .
|
||||
git commit -m "message" >/dev/null
|
||||
gem build sup.gemspec
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
export HOME=$TMP/home; mkdir -pv "$HOME"
|
||||
@ -50,13 +58,13 @@ stdenv.mkDerivation rec {
|
||||
# Don't install some dependencies -- we have already installed
|
||||
# the dependencies but gem doesn't acknowledge this
|
||||
gem install --no-verbose --install-dir "$out/${ruby.gemPath}" \
|
||||
--bindir "$out/bin" --no-rdoc --no-ri pkg/sup-999.gem \
|
||||
--ignore-dependencies
|
||||
--bindir "$out/bin" --no-rdoc --no-ri sup-${version}.gem \
|
||||
--ignore-dependencies >/dev/null
|
||||
|
||||
# specify ruby interpreter explicitly
|
||||
sed -i '1 s|^.*$|#!${ruby}/bin/ruby|' bin/sup-sync-back-maildir
|
||||
|
||||
cp bin/sup-sync-back-maildir "$out"/bin
|
||||
cp bin/sup-sync-back-maildir "$out/bin"
|
||||
|
||||
for prog in $out/bin/*; do
|
||||
wrapProgram "$prog" --prefix GEM_PATH : "$GEM_PATH" --prefix PATH : "${gnupg}/bin:${which}/bin"
|
||||
|
@ -1,3 +1,8 @@
|
||||
# This file is generated from generate_nix.rb
|
||||
# Execute the following command in a temporary directory to update the file.
|
||||
#
|
||||
# ruby generate_nix.rb > default.nix
|
||||
|
||||
{ stdenv, fetchurl, config
|
||||
, gconf
|
||||
, alsaLib
|
||||
@ -33,121 +38,118 @@
|
||||
}:
|
||||
|
||||
let
|
||||
version = "24.5.0";
|
||||
|
||||
version = "24.6.0";
|
||||
sources = [
|
||||
{ locale = "ar"; arch = "linux-i686"; sha256 = "a5d7a95ed93277c5e7191f868df343d1a1d14e6c692cac1e6069fd9ee7177273"; }
|
||||
{ locale = "ar"; arch = "linux-x86_64"; sha256 = "b3100ead31d208968edd5b8545b641d0db9692d31a63e07fa9c391dca61de8a4"; }
|
||||
{ locale = "ast"; arch = "linux-i686"; sha256 = "059ed2a01afabebc7bd28cc79841debcaaa0bf015f28145c719396d4e612f535"; }
|
||||
{ locale = "ast"; arch = "linux-x86_64"; sha256 = "75874c6fcabb21332095562b9f86b7c6b668efdfb09904b83fa20743e1740790"; }
|
||||
{ locale = "be"; arch = "linux-i686"; sha256 = "7eda8e02a15284a0e6814072a0212457a25bcfef5058e1c376fc22facb2970f1"; }
|
||||
{ locale = "be"; arch = "linux-x86_64"; sha256 = "9fb0150098810b152ecf95e0826a3bac1dbffdfd2f8f2ce400841cb4981e3f3d"; }
|
||||
{ locale = "bg"; arch = "linux-i686"; sha256 = "6929e9c0580e62cffb3bfffb1398f35b7ac59dcc3d76a4a5c49a20cfb72e6d60"; }
|
||||
{ locale = "bg"; arch = "linux-x86_64"; sha256 = "19e2098131a6e280f1f8e8bae7c623ebe1081b0ea0dea81ebbaea51111774729"; }
|
||||
{ locale = "bn-BD"; arch = "linux-i686"; sha256 = "30f95bf5d5974ab417ff5a24fad78687b88b3f16e2337a3a4a22dd4f1d670c7a"; }
|
||||
{ locale = "bn-BD"; arch = "linux-x86_64"; sha256 = "85000f577549ccf35b2a43dc3a79264b78d100dce1e0cfd3418a0ec1f87cff90"; }
|
||||
{ locale = "br"; arch = "linux-i686"; sha256 = "ef31dbfc1cc4528ee762e384d5e12fb6383f57ea34d4d1625975a2341d5004da"; }
|
||||
{ locale = "br"; arch = "linux-x86_64"; sha256 = "d2f8330081a203477c6fc6007230f3893290c17aab4ba9e8ed591ddc337dd73c"; }
|
||||
{ locale = "ca"; arch = "linux-i686"; sha256 = "86be66b6f8075cd85470e60a1e278fb7992fbd130b6481f0ebc21e9ad46c647f"; }
|
||||
{ locale = "ca"; arch = "linux-x86_64"; sha256 = "a2b19e3ce3a747e4b1e5b52d463e3f5822e8e120a7e043d83057746552fa9867"; }
|
||||
{ locale = "cs"; arch = "linux-i686"; sha256 = "632ece525a79537acad192f8ec37fbb1e3423bcf64b1af5d18da34f1410ffbae"; }
|
||||
{ locale = "cs"; arch = "linux-x86_64"; sha256 = "f45e4701d4b81e4a5a052b5759616540317b9e89e241dc97ad1ffc39b18abaed"; }
|
||||
{ locale = "da"; arch = "linux-i686"; sha256 = "9befe92c296b57c7a7b97ecb6eb23803c93949056177df72bc111c6e18d497f0"; }
|
||||
{ locale = "da"; arch = "linux-x86_64"; sha256 = "343ef548a102a63a96b1a10745ff7866f30ac6524d4f7a2ced1be3cb3bd9f64c"; }
|
||||
{ locale = "de"; arch = "linux-i686"; sha256 = "010c9225f56a3d9f552f77502daf2e70e88e45f85b39f183907741ad773cf811"; }
|
||||
{ locale = "de"; arch = "linux-x86_64"; sha256 = "ed60c8dd0abda8c8cabdf34fcb96d39463cde9cdf1247af44438da7586490120"; }
|
||||
{ locale = "el"; arch = "linux-i686"; sha256 = "03affa186bb66fabd9b61d0e53cb7f75aa13702a58fd2dd551e6da1b6e9cfd87"; }
|
||||
{ locale = "el"; arch = "linux-x86_64"; sha256 = "d60419e5ebeec445e8efc8d9db59d093060be86af140605c8019a8f24680c4bb"; }
|
||||
{ locale = "en-GB"; arch = "linux-i686"; sha256 = "e1b6c1f3f30ea522410f947c9cf331e3d580a1620af63401186d435707a041d8"; }
|
||||
{ locale = "en-GB"; arch = "linux-x86_64"; sha256 = "6d873704a2cbeb2549dd2e55b8c915292b7167ce2f5022defd3bb2c0ad29da58"; }
|
||||
{ locale = "en-US"; arch = "linux-i686"; sha256 = "6441f90eda22808c37bca023748efee7735cf9b18b1d21ce75878c10da8baad7"; }
|
||||
{ locale = "en-US"; arch = "linux-x86_64"; sha256 = "a54afdf7dcadb94bfe2bc6ea3d6232d311568a74ed3fd93becff9cd57063ff0c"; }
|
||||
{ locale = "es-AR"; arch = "linux-i686"; sha256 = "989f400b587a75160a4ef1b6913819e0bd2c8b0689753b233943e61412bdba4d"; }
|
||||
{ locale = "es-AR"; arch = "linux-x86_64"; sha256 = "c294e1a4173dd14222d0edba31c529a3f9005412de728b1a17602e2a89c84af8"; }
|
||||
{ locale = "es-ES"; arch = "linux-i686"; sha256 = "f6eac1108efaaa0c5f34c4856e7db5236c60b8aba7c99558b32b4e60f1df3dea"; }
|
||||
{ locale = "es-ES"; arch = "linux-x86_64"; sha256 = "74132bc1e0fbe03c462399860168928bb1bca20ee1b0bf9a80262538ce320f57"; }
|
||||
{ locale = "et"; arch = "linux-i686"; sha256 = "09fea4be7480ae51d7d68bc4b044c4d4a79e405893c4952ae083a8f417b99b85"; }
|
||||
{ locale = "et"; arch = "linux-x86_64"; sha256 = "c8c5d621d975cfeb22695e589dd69a360d1b1dc6a4d0f52afc3b778835fbdb55"; }
|
||||
{ locale = "eu"; arch = "linux-i686"; sha256 = "19af889a9205d99080aa1a0afc7c75d0c43a970f864d4cefb956cc37c618b7d7"; }
|
||||
{ locale = "eu"; arch = "linux-x86_64"; sha256 = "0074802e84cab6ad21de7d960709ba15531705f4ff60bf141a917edb5295c201"; }
|
||||
{ locale = "fi"; arch = "linux-i686"; sha256 = "ae301f557be17b60290ee0910053fc99ab367fd6a68b4f0c27e1e80316fea95d"; }
|
||||
{ locale = "fi"; arch = "linux-x86_64"; sha256 = "567009788743148001e842418bfa520275ae6ed39857fd99da90ea37f6635008"; }
|
||||
{ locale = "fr"; arch = "linux-i686"; sha256 = "0491d2760611a5709c23df1a3ae618b4bc069c4af5ce2b2b7ae491bac390c058"; }
|
||||
{ locale = "fr"; arch = "linux-x86_64"; sha256 = "64e4cfe3e899cbd71ac3c3b6052d742bae4215704eeffb51f27c93f98ec7f3cb"; }
|
||||
{ locale = "fy-NL"; arch = "linux-i686"; sha256 = "9d72a5fdc02ce45030bf44d7d8b31274cfb3579efc93d064824e6909fef2ed81"; }
|
||||
{ locale = "fy-NL"; arch = "linux-x86_64"; sha256 = "f04d7404ce637abd3d807484422970852db0253da3da0a0654f3bea213f352a3"; }
|
||||
{ locale = "ga-IE"; arch = "linux-i686"; sha256 = "853112a5c6fda45afed60a9c9f2d5f9fe972d21b092ae83cc4a3796f1be90b91"; }
|
||||
{ locale = "ga-IE"; arch = "linux-x86_64"; sha256 = "36b0cef0ba9e483b13ce5f9fd12e7bc11e2bd0270b5b34e5b2690e79248724b5"; }
|
||||
{ locale = "gd"; arch = "linux-i686"; sha256 = "fcb07754340c2558e94ce44ac6e1577fb4cd155577b6bece74ceb61b2bf204b1"; }
|
||||
{ locale = "gd"; arch = "linux-x86_64"; sha256 = "cc842860d7abfc114c0db47d832508a70ea1ff0bc726fc58ccb875c245689d2b"; }
|
||||
{ locale = "gl"; arch = "linux-i686"; sha256 = "325e8a27d49b1748ac7b5c2070d32df0d66c8d9b1b651136d500d2bb4bfefe14"; }
|
||||
{ locale = "gl"; arch = "linux-x86_64"; sha256 = "dd4c6aad88ac32d6175320bd82026ae6b1c4f7b44fe04904743c7e7e3d270642"; }
|
||||
{ locale = "he"; arch = "linux-i686"; sha256 = "cbf801085b4a7a3b2ac84790b176fbea8e254b13776bd19413d4c5b6522645ea"; }
|
||||
{ locale = "he"; arch = "linux-x86_64"; sha256 = "9d60e3a8b5756bc3d3a9148dee458c28bed9bf1fac29587bd7e95318a78f59d8"; }
|
||||
{ locale = "hr"; arch = "linux-i686"; sha256 = "4361a3dc02a0dc8a26716a96aa47f0c529e0942658fcd16b472d03ae1f0f50d7"; }
|
||||
{ locale = "hr"; arch = "linux-x86_64"; sha256 = "b23b33c823ee55daa5a3f90a9f1f616fb8ea67be912182b6118521541f7039fa"; }
|
||||
{ locale = "hu"; arch = "linux-i686"; sha256 = "3d2e37fbdd5af291bc90666460258b61e4b499007ad9bba5e6e48b3b3f9cb068"; }
|
||||
{ locale = "hu"; arch = "linux-x86_64"; sha256 = "a7b904317bcf046f9139c415f1c453b66e355b31291211dc8dac76200902ac11"; }
|
||||
{ locale = "hy-AM"; arch = "linux-i686"; sha256 = "8802522b5db21a9230ae856f90013d80a466a8c2caed35079318ece7028120cd"; }
|
||||
{ locale = "hy-AM"; arch = "linux-x86_64"; sha256 = "43e899856a625d8dea84c79c0c7d1dfa15f286da628cec9f99c351139de1831e"; }
|
||||
{ locale = "id"; arch = "linux-i686"; sha256 = "6ff994c056189d13a0c36cde5925e45ba3ba52ccab61486b338a1753eafc09c8"; }
|
||||
{ locale = "id"; arch = "linux-x86_64"; sha256 = "287e89ba01280eb778b1cf1f2fd9859610b46f2abfe369fe54d4af8cc1f675ac"; }
|
||||
{ locale = "is"; arch = "linux-i686"; sha256 = "5ee6ea3e48d526af3ef29ef374b40a0cafb299d32c1d6af4684382b8b171f88c"; }
|
||||
{ locale = "is"; arch = "linux-x86_64"; sha256 = "aae33e6b2e75a9db69d17d356bc49e026bf39199cd1612ce42aa41a102a1ac03"; }
|
||||
{ locale = "it"; arch = "linux-i686"; sha256 = "3a54ac3fc738e02c8ed9b7a730624497fab15dee4f9f82e84a526dd5600e300a"; }
|
||||
{ locale = "it"; arch = "linux-x86_64"; sha256 = "cc99d99214e6d847fc885af036783fe3c1b2a55b04c758bbb2fd5bd0a39463ff"; }
|
||||
{ locale = "ja"; arch = "linux-i686"; sha256 = "804485d204392b52b4bfdbb28804f729614c53fa692a89e58f97161c89809bf0"; }
|
||||
{ locale = "ja"; arch = "linux-x86_64"; sha256 = "8bdce5e6f97c2747ff209acee7fad24f2dc0e07801ee30754370bb0450d383f7"; }
|
||||
{ locale = "ko"; arch = "linux-i686"; sha256 = "61ab133865b2c62ea88154917ddf1383a3157b96ac3b073568e392036874f5d7"; }
|
||||
{ locale = "ko"; arch = "linux-x86_64"; sha256 = "695ef59b94626f03151c8bd68ea799b0ae5e879a57f8185af5557799211bda1f"; }
|
||||
{ locale = "lt"; arch = "linux-i686"; sha256 = "014e8604790af3fa4af504986b86dc0de4bd2e53267548c01bb85e48bc90ffc5"; }
|
||||
{ locale = "lt"; arch = "linux-x86_64"; sha256 = "8c803b613526d39618c8e82d9f981293ebb6799136697488ef4d10eb2a485808"; }
|
||||
{ locale = "nb-NO"; arch = "linux-i686"; sha256 = "bfc828d3882588a9909fef1d6731a6bc1636eaf53342a57d56e3fbc975133869"; }
|
||||
{ locale = "nb-NO"; arch = "linux-x86_64"; sha256 = "f25bc7dacd28fd2c907565ab608d504abcc2896118e4cd8813de28c75d26c569"; }
|
||||
{ locale = "nl"; arch = "linux-i686"; sha256 = "cb94f869fa63215686465bb29a8c05f80611cd60a82d7cbded6ddf55577172e1"; }
|
||||
{ locale = "nl"; arch = "linux-x86_64"; sha256 = "ecb185013de3d55cfafaa156821308453a90a123b99d122ea4ef7a29e7d7fab5"; }
|
||||
{ locale = "nn-NO"; arch = "linux-i686"; sha256 = "8719216b8cc0293d8aa23c04e2d663dfef515a7bc1b6e06a5f03bed3d6fb3b6a"; }
|
||||
{ locale = "nn-NO"; arch = "linux-x86_64"; sha256 = "f6617cf98b49d28ae7fa8e7d022587c6ed8138c758ff088c5abc78f7bdd52613"; }
|
||||
{ locale = "pa-IN"; arch = "linux-i686"; sha256 = "b0e57d139f359850558f40bad00b2c4e69da8e9d73ec9aa7d180b9f33d970449"; }
|
||||
{ locale = "pa-IN"; arch = "linux-x86_64"; sha256 = "2efcfe4b366f7ff5dc95c45cb229aeed316315fe4554651e5d0239985cd64fdb"; }
|
||||
{ locale = "pl"; arch = "linux-i686"; sha256 = "3d579ed8e18d98c446a5f069d6d2e94a3ee234c75feffbaf99f561ef7bd45a2e"; }
|
||||
{ locale = "pl"; arch = "linux-x86_64"; sha256 = "04090e4b4b412f79d1879340c36e36c65e4f23fde5dc545b4d855c8497ca47f7"; }
|
||||
{ locale = "pt-BR"; arch = "linux-i686"; sha256 = "9d202dd10b626ed9753ac5e243c14f6b1eee76e8edd40389f56003c4e8816c83"; }
|
||||
{ locale = "pt-BR"; arch = "linux-x86_64"; sha256 = "3b82124d8956e83657b30347ef3b5e44cf3813c1b02998b197c817c6528423c0"; }
|
||||
{ locale = "pt-PT"; arch = "linux-i686"; sha256 = "65ebb88e9e544c38a9d85a70a1920ed9c6ec03452762f98cb2fe104912074b44"; }
|
||||
{ locale = "pt-PT"; arch = "linux-x86_64"; sha256 = "fba7f18daee4832b9851615a0597dbde98a5271c5882d56ab4c1e0cb6d8c4783"; }
|
||||
{ locale = "rm"; arch = "linux-i686"; sha256 = "e0ffc4b23cbf4a92768eff507335dffb92fad26d02662adf77e0ccff4f4b6c8b"; }
|
||||
{ locale = "rm"; arch = "linux-x86_64"; sha256 = "555e30eaa6942543c7b1cd3569a6480016be5826a474a76c2ba8e2078d6d5b83"; }
|
||||
{ locale = "ro"; arch = "linux-i686"; sha256 = "38bf63ae8365fbe1ca88b683d94c21cd5620a7397b3b344c0e4e938287311ec3"; }
|
||||
{ locale = "ro"; arch = "linux-x86_64"; sha256 = "328cb7395e61924240f8e29399bf1d64179bce5bb911595cda422b741d9b6f34"; }
|
||||
{ locale = "ru"; arch = "linux-i686"; sha256 = "8df9749d8dbe4218910026a8e4c4145b1f155903e577a16758d15eefbc2715f9"; }
|
||||
{ locale = "ru"; arch = "linux-x86_64"; sha256 = "99cd036facc18242e5ab5df00a480e5c7c779b50fa95eac191bbebfa7343a270"; }
|
||||
{ locale = "si"; arch = "linux-i686"; sha256 = "4ce33a17b148329334e596186d274b9c262a779e7190f9777dd0673df12f7b4c"; }
|
||||
{ locale = "si"; arch = "linux-x86_64"; sha256 = "c22cd896e651b2e664128411710a80a33471319951f5aff3cfc86ff86de39a86"; }
|
||||
{ locale = "sk"; arch = "linux-i686"; sha256 = "30351a15f43f905bf69e578d9ce14506ade61e805e34097f81bf8ac50f1f9ee9"; }
|
||||
{ locale = "sk"; arch = "linux-x86_64"; sha256 = "c8930d6ebff4f7429af5daf72648651162543fa000acad0fb63179c2c3f150e6"; }
|
||||
{ locale = "sl"; arch = "linux-i686"; sha256 = "10c61d7e3bc592f23811d5a06fcdc892a088cbef7fc3298e8ed9937dc7518b37"; }
|
||||
{ locale = "sl"; arch = "linux-x86_64"; sha256 = "81483f6bdc85eb244904d3a8328d81391be24ea2ae7604cb00bbf922025afd89"; }
|
||||
{ locale = "sq"; arch = "linux-i686"; sha256 = "8ac202a6eb0a3f08e9c34502b26b0cf1a85ab43850658cce7042f0afd5f9f50a"; }
|
||||
{ locale = "sq"; arch = "linux-x86_64"; sha256 = "23fc8634b6dfa984c530292f7f01f9a2d43b196a8092f93cc435abd7a8d131de"; }
|
||||
{ locale = "sr"; arch = "linux-i686"; sha256 = "9c96c0935b7a0124059caea758ba3319cc3a5977e542965f663d2daa54f5a32e"; }
|
||||
{ locale = "sr"; arch = "linux-x86_64"; sha256 = "2d64f970c70f34bd726296b8aa2db243c245d2c36167a36de7032ae17fc1ccb2"; }
|
||||
{ locale = "sv-SE"; arch = "linux-i686"; sha256 = "1b0d6476248896b9224c5c69a944084677df45e273508bf8d629eb14b57662a9"; }
|
||||
{ locale = "sv-SE"; arch = "linux-x86_64"; sha256 = "05977173bdd460eab1ff5a7065067b4074417297e38dbc70c6cceedca0c933b5"; }
|
||||
{ locale = "ta-LK"; arch = "linux-i686"; sha256 = "3ef8950e8aa9f130aa66a1ad2cfdd21c2ba9572ef3e0d868d7a8fbf1ef8e3291"; }
|
||||
{ locale = "ta-LK"; arch = "linux-x86_64"; sha256 = "be101ca34d96577ccc6ba715235eefa9dd065f04a651e9a35786f9edb6278a98"; }
|
||||
{ locale = "tr"; arch = "linux-i686"; sha256 = "d5b35faa3e0e09af778aebec4b33f39bbce98465a39edb2da15197671b777abe"; }
|
||||
{ locale = "tr"; arch = "linux-x86_64"; sha256 = "995c1abcd5357cfda831d07ad6e0b762fbabda61601a58122acc2e8942fb944a"; }
|
||||
{ locale = "uk"; arch = "linux-i686"; sha256 = "6c5b0df0a1448fcf1cebc8d82072d5653cb0432e2f787179526bae4cef774352"; }
|
||||
{ locale = "uk"; arch = "linux-x86_64"; sha256 = "86f3ce21bc863eb8f3e0099d9386e0f38ad8b2c8e29a79e47bfda37acecd991f"; }
|
||||
{ locale = "vi"; arch = "linux-i686"; sha256 = "0a21d13abb629549df74d956cc1c5f99c879980fbee2d269e1532610aebb404c"; }
|
||||
{ locale = "vi"; arch = "linux-x86_64"; sha256 = "29cbf72f4990eb55d30a85a767d01c8077ab89af69eba3b7299d43871aaa165e"; }
|
||||
{ locale = "xpi"; arch = "linux-i686"; sha256 = "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"; }
|
||||
{ locale = "xpi"; arch = "linux-x86_64"; sha256 = "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"; }
|
||||
{ locale = "zh-CN"; arch = "linux-i686"; sha256 = "1527b8e9f245c96d0104f0b7d5c8dc696036fbb80067d14a1eee9a423ddd9368"; }
|
||||
{ locale = "zh-CN"; arch = "linux-x86_64"; sha256 = "ae294571b8433b646b5d65a0cb1ab7f42295b17369f5ec82c2383c654df28e20"; }
|
||||
{ locale = "zh-TW"; arch = "linux-i686"; sha256 = "98e5c8f912d1a03f5c0a2f14b63f350823d15f1253e15a318b61227ba82fec0e"; }
|
||||
{ locale = "zh-TW"; arch = "linux-x86_64"; sha256 = "49ee58ad3978113e10de520eb094fc9c0f4d740ca6c0a0e07d5743e313163d0f"; }
|
||||
{ locale = "id"; arch = "linux-i686"; sha256 = "e19f6f5b8f19178350ec68386afd2ab7e5900b8c1fdb7bf81928fedcfcea5cbe"; }
|
||||
{ locale = "id"; arch = "linux-x86_64"; sha256 = "ece7445451150b2776f5debc818e288b9037dac1f2da9c7f7db584b6d2b73d34"; }
|
||||
{ locale = "he"; arch = "linux-i686"; sha256 = "0ff30ffc7ffe087056b0e72d66d2bc264c1060e3abb65e0c4d53d976855f436f"; }
|
||||
{ locale = "he"; arch = "linux-x86_64"; sha256 = "dd41d433644f7790ace1f246ec6703c060456260716710fc4318ca834ecd758b"; }
|
||||
{ locale = "el"; arch = "linux-i686"; sha256 = "eb6d53c00a6cd912279b56c5322d65b94fdd2a021c9ea2c854f664e476ae89e2"; }
|
||||
{ locale = "el"; arch = "linux-x86_64"; sha256 = "b0fdf2dc2de7ba5296f69694908aef4954b24b4c3092bddbec8995bf838bb817"; }
|
||||
{ locale = "tr"; arch = "linux-i686"; sha256 = "71f4f7738540445dc64399368bb63bf48ede79f055d6647ba9ed4d274040d623"; }
|
||||
{ locale = "tr"; arch = "linux-x86_64"; sha256 = "2be714b598bf8f1a3c6c9a13141d370c4d29bfec3e4053eb6f1c8a6a7988a96b"; }
|
||||
{ locale = "ast"; arch = "linux-i686"; sha256 = "8b2c3b83f4f88e33ac31b07dfb64e83fd1b2cce9ad877c8bb5715a0e6299ce6f"; }
|
||||
{ locale = "ast"; arch = "linux-x86_64"; sha256 = "93cd2c5c6c2ac05af3bb55a723bf3f02234d55064b5ea7cba6289bd07cca7647"; }
|
||||
{ locale = "nl"; arch = "linux-i686"; sha256 = "2f11b85055fa21b4e2677b92fef34a769ed56bdbd877fefb86599edb5dd39932"; }
|
||||
{ locale = "nl"; arch = "linux-x86_64"; sha256 = "d47057633c0ec5e785a723c45c5b8b0168e3d3fabe4aaedb4ca1adbff29a4dcd"; }
|
||||
{ locale = "bn-BD"; arch = "linux-i686"; sha256 = "902274548b7308e75c465f71912a7d1e5539e92420ffa17c80a2ac20d02d8630"; }
|
||||
{ locale = "bn-BD"; arch = "linux-x86_64"; sha256 = "044494d6bfc07b9cbeaa325dab3c1f0c5e554a05f1a050d960c39fbe093d9482"; }
|
||||
{ locale = "eu"; arch = "linux-i686"; sha256 = "e453a06a64c35ed81e661c67fbd4241a7c5494b1f3d2bf5ace7543798feb338c"; }
|
||||
{ locale = "eu"; arch = "linux-x86_64"; sha256 = "e8006f0e89153424c809de41ec1a714b91011b5a2a9601c1893a6ff30dcbd2ac"; }
|
||||
{ locale = "fr"; arch = "linux-i686"; sha256 = "fed414783f8e9bba5be6d4cb90ef04f274aabab34f3b4351a329d5c5ae7ae8f0"; }
|
||||
{ locale = "fr"; arch = "linux-x86_64"; sha256 = "e8f0203bf90bc30c89380c417921139f7b92ef1d38b3d95d292acee3be4e93c3"; }
|
||||
{ locale = "br"; arch = "linux-i686"; sha256 = "0948d002df401b9aaedbf8e3277ce312edeb635baa57b1bdf5de87cc13dd36cb"; }
|
||||
{ locale = "br"; arch = "linux-x86_64"; sha256 = "733e09671f00c693e13a726fa597b4705822e693ddce8a0494c57fde1de3cb56"; }
|
||||
{ locale = "pa-IN"; arch = "linux-i686"; sha256 = "c160c17e4b9b0e3d579a01b5973d142c711d4f87b03fd542d073d816ced9a9c9"; }
|
||||
{ locale = "pa-IN"; arch = "linux-x86_64"; sha256 = "0c281e6430a233aca5c6130e907e08c7d05aed8851214063546aff5a5df82232"; }
|
||||
{ locale = "gd"; arch = "linux-i686"; sha256 = "5d85eb78f01e1d52e733d4abf8d33281ec2c4adf9a9c65f50c6d6e2b6acf3d1d"; }
|
||||
{ locale = "gd"; arch = "linux-x86_64"; sha256 = "a7bb71bb08ccfc01f8e91b47b6ee0ac4592976e964454304da493e0582d262d1"; }
|
||||
{ locale = "bg"; arch = "linux-i686"; sha256 = "a63e060eac9efb27b4166e05ff6a035afd51cd29d45ddf69e5226e08441ac53c"; }
|
||||
{ locale = "bg"; arch = "linux-x86_64"; sha256 = "8a5f45352e180e984c7f1bc37f0e7602cbc6085a3dcdcac2d74f493941fd9f0e"; }
|
||||
{ locale = "sv-SE"; arch = "linux-i686"; sha256 = "ef70e1ff3ff3ce2fd9ecbe62ed010c06e63b410b843cdc3aa3c93fda2bf56708"; }
|
||||
{ locale = "sv-SE"; arch = "linux-x86_64"; sha256 = "af33cba52556057abf17df0e92c11ecbf39382bbf92c66b137113e5503ae170b"; }
|
||||
{ locale = "ja"; arch = "linux-i686"; sha256 = "f87eac6641ebccf018c76275adcba03976b9c62b9fa51533ec67ab0d2a5a91b9"; }
|
||||
{ locale = "ja"; arch = "linux-x86_64"; sha256 = "009b53f10bd785a799026dab028fbb7fa46c154569eba98db2673af12f6c19c4"; }
|
||||
{ locale = "pt-BR"; arch = "linux-i686"; sha256 = "ae2243346546cc2c768a9c24fc296013a45459637ab65477537f9d08d5ae193c"; }
|
||||
{ locale = "pt-BR"; arch = "linux-x86_64"; sha256 = "5cb2af1ec854e12b91bdf7f2fe88b56bfb45bf7144cf5cc3f0e307259d767a43"; }
|
||||
{ locale = "is"; arch = "linux-i686"; sha256 = "bf3a2e4efd86b1e73ac38ef3dc880ce2cee3102d2844b17ebf31aa6528040a92"; }
|
||||
{ locale = "is"; arch = "linux-x86_64"; sha256 = "d36f8d321d2952310dcb19a288f36f6496ca24e7f49fb483882c270c1c96571d"; }
|
||||
{ locale = "es-AR"; arch = "linux-i686"; sha256 = "e05f63d1f978029169a91719551b6e399be0e0d37310921168904d188e41f50d"; }
|
||||
{ locale = "es-AR"; arch = "linux-x86_64"; sha256 = "b8025a7a724a0d98c4f706e7ce59aae8c0f7bcd0082733ce6bee73a1d243feef"; }
|
||||
{ locale = "nn-NO"; arch = "linux-i686"; sha256 = "26ded9a3ebea58bcf80ca47759d4fdb86fe91aea8dcf56afdbaf7a32d548ee66"; }
|
||||
{ locale = "nn-NO"; arch = "linux-x86_64"; sha256 = "fd8321d5d6adaae042651d911df6ef587afda19ee82bdcfce98814144282b54d"; }
|
||||
{ locale = "sr"; arch = "linux-i686"; sha256 = "94b94517072901f34ab28b6cf3a2fd8852867f147ab4b47f34f7d9ae16fbd603"; }
|
||||
{ locale = "sr"; arch = "linux-x86_64"; sha256 = "e38f493ea1b8c0b183bad2f2627eb166e75e875a62b33704f50f8f831fd552ec"; }
|
||||
{ locale = "si"; arch = "linux-i686"; sha256 = "319ae8256ecf3d7623195e474040fffffff230cd612571872a38b52b608c0507"; }
|
||||
{ locale = "si"; arch = "linux-x86_64"; sha256 = "f776b8a9efad41f5c2f8770452a0bd053a3ba9ed4b74da3e3f24214c69e9779e"; }
|
||||
{ locale = "ro"; arch = "linux-i686"; sha256 = "f6aea954d3ba2334411a7ce9e7e1da926b0039935c5db3a5480f0fbda583b849"; }
|
||||
{ locale = "ro"; arch = "linux-x86_64"; sha256 = "9fef811764441b2b16e408808f4608e17cd21175cf45774162b3bce8b8612491"; }
|
||||
{ locale = "it"; arch = "linux-i686"; sha256 = "71df4de89a1eff632339dbaf48ce41182f7a20f7e55a223f6816ef86d3465443"; }
|
||||
{ locale = "it"; arch = "linux-x86_64"; sha256 = "076332c97a5c854b2313bd9f2138a6660d8e04fbddc3f8beb89acf071efd4c86"; }
|
||||
{ locale = "pl"; arch = "linux-i686"; sha256 = "1a45f7d1d8817f6c724dff556886edc3f2d0ee62ff45bea8d6b7ef63f7f92928"; }
|
||||
{ locale = "pl"; arch = "linux-x86_64"; sha256 = "8aa25320126052c9ebc3496e8731224e30fbd45ee2679f4d87f7f2050a01c312"; }
|
||||
{ locale = "sk"; arch = "linux-i686"; sha256 = "83a31a94eeb95e28612eeb1e696ed387b6793da350efda439de11833e0ea1173"; }
|
||||
{ locale = "sk"; arch = "linux-x86_64"; sha256 = "8c1647f8bfb210f7da8aa164777ef412bf3d4459ce53c95ee2211b4b5df440dc"; }
|
||||
{ locale = "vi"; arch = "linux-i686"; sha256 = "e5bb99de119fd6496674fb9cc8432f146e684afc652dec2861108d1ef20b49d7"; }
|
||||
{ locale = "vi"; arch = "linux-x86_64"; sha256 = "f35e62031154a32da68ea3d6960da8807f0de7ade7071526fafd6ace48c88976"; }
|
||||
{ locale = "rm"; arch = "linux-i686"; sha256 = "0826595dddc981b64d4f1a59cd71411c34ccd0aeac182925709abeedff8461fc"; }
|
||||
{ locale = "rm"; arch = "linux-x86_64"; sha256 = "b5b8d30251fc482861518e1c86001aa5eca6b53a65e14a8c6ff9e61eaf651044"; }
|
||||
{ locale = "ar"; arch = "linux-i686"; sha256 = "a9b2138cacc983142353ec09a5c4226fc731501da4c0200cc86026e6b28ca10c"; }
|
||||
{ locale = "ar"; arch = "linux-x86_64"; sha256 = "6c9a2ce8a8d3b4815475827caf89a3fee8371c422aa6c4984bb03f56728b682c"; }
|
||||
{ locale = "es-ES"; arch = "linux-i686"; sha256 = "813260cf5ab06e55c563e015e0172ce0192ccdd894a352ef6d4f439252032619"; }
|
||||
{ locale = "es-ES"; arch = "linux-x86_64"; sha256 = "c879fe62db6952f91c51ec7c172bc67d5351f55e99ab6df5cdd8639206f3444a"; }
|
||||
{ locale = "fi"; arch = "linux-i686"; sha256 = "33888c19b7e5e57155748d7372ad2b0e61f522ee96913f8846c754c3361fcb4a"; }
|
||||
{ locale = "fi"; arch = "linux-x86_64"; sha256 = "d5487588cf07cbd2b02b1c566b6515d087cf8fe9d528890b1dd5a0de53ab1d8c"; }
|
||||
{ locale = "hu"; arch = "linux-i686"; sha256 = "72b3a36269de70bd627589bad817e7702a4c83fff9b460e4f787486fa4bf15c7"; }
|
||||
{ locale = "hu"; arch = "linux-x86_64"; sha256 = "d458ed4b62f65ce7c3787930549cbee42842ae87a846e5d1565c1881b3bc17e8"; }
|
||||
{ locale = "zh-CN"; arch = "linux-i686"; sha256 = "3155a71e847020b2806f6b31acbaa702ccf20f8bd805c2aedb0c9c415f75b88f"; }
|
||||
{ locale = "zh-CN"; arch = "linux-x86_64"; sha256 = "b56beb864d247685cd9ba6820e5a8a143be28ff95440e38670c8963d2c769738"; }
|
||||
{ locale = "uk"; arch = "linux-i686"; sha256 = "74b7059580a4f389278b1059d80308101ffcfd0a738c6d614e56560ce116db34"; }
|
||||
{ locale = "uk"; arch = "linux-x86_64"; sha256 = "a351421c230f6629de0125a30767ff10d541264f6249f6fa2568eae76189398f"; }
|
||||
{ locale = "ko"; arch = "linux-i686"; sha256 = "d26ba336a555276c36f9a003df9bc3e0df1c40dd4da7062d1cd8b3a6cba6d52c"; }
|
||||
{ locale = "ko"; arch = "linux-x86_64"; sha256 = "078e5878f823b2d19568af8bda095e6ab46097a680b209bae9242d7658377abf"; }
|
||||
{ locale = "cs"; arch = "linux-i686"; sha256 = "c9aaab25dabdba0708459a82882b926155b475314d72463633af10c27d9e5dfb"; }
|
||||
{ locale = "cs"; arch = "linux-x86_64"; sha256 = "9a9fc61875f0427c26107b96ee3a6f7d71717c0d4aa6e41cc7b1b56bff2131e7"; }
|
||||
{ locale = "be"; arch = "linux-i686"; sha256 = "afc862a2a1054f08cffa0ec4facb2e9098fb042f7e4dab85c2ace7f30a384426"; }
|
||||
{ locale = "be"; arch = "linux-x86_64"; sha256 = "50353005857df556840fab0b18e8784dc18cbcdc5c45f4fc1f68f6b78b58048c"; }
|
||||
{ locale = "ru"; arch = "linux-i686"; sha256 = "4876fcda18fd01b51f392a56085ebfcb97cefd69355666f42d58ffe53b9eb8e9"; }
|
||||
{ locale = "ru"; arch = "linux-x86_64"; sha256 = "ef90a31aa408c6c86f3103d7bc82e3e8b5ac7bc9956d431ef46e1f44156b7dbf"; }
|
||||
{ locale = "ta-LK"; arch = "linux-i686"; sha256 = "ee4a961e76e63a79d08118e2355e37b1b2a1e0260613532ac6dc7c9a9e86caf1"; }
|
||||
{ locale = "ta-LK"; arch = "linux-x86_64"; sha256 = "9a1233c0ee7a72f8b1c071a6cd507d870d34bd64c71f7f960c00cf2e840ea5b1"; }
|
||||
{ locale = "zh-TW"; arch = "linux-i686"; sha256 = "00bf471763ca98d7c7e0243f5bbc75230b6cf8cea9c5dab17464c47544d102de"; }
|
||||
{ locale = "zh-TW"; arch = "linux-x86_64"; sha256 = "61e474bd0c930b9d6bcc553a87c07e415e1fe037dd033a6a97f9137d4fc73f49"; }
|
||||
{ locale = "de"; arch = "linux-i686"; sha256 = "e93520901aa59938e1c51c9943225dded88c668a91da6660de9f41714114ac8b"; }
|
||||
{ locale = "de"; arch = "linux-x86_64"; sha256 = "008156ddb73f4eb91d801d8bc35685e517328b5e5f13a4ed39873df471d01c67"; }
|
||||
{ locale = "nb-NO"; arch = "linux-i686"; sha256 = "20b3b10e12238238737fa0da3dce5e2fdff1161594b415c5872dd7416001482b"; }
|
||||
{ locale = "nb-NO"; arch = "linux-x86_64"; sha256 = "79f854469ac1a6fb0768934dc20ebc511a01904c71f321ed31ebe400ab88f4d8"; }
|
||||
{ locale = "fy-NL"; arch = "linux-i686"; sha256 = "61cec7fef6e75ecd7d459e973b258c5b62af0dbfd175b7000484594e63ead2e4"; }
|
||||
{ locale = "fy-NL"; arch = "linux-x86_64"; sha256 = "83b3761bfd949e3890c7006ba9610e858fab25815cd6e2f3f293ca707086a78c"; }
|
||||
{ locale = "sq"; arch = "linux-i686"; sha256 = "f36321189ed80130b9e4a3a6e387531c48745f4c109f35afe928cf2d44e1b424"; }
|
||||
{ locale = "sq"; arch = "linux-x86_64"; sha256 = "81da71b2ce832788213ed60f801fd79e61205a98c44e9082a35f2195af314de8"; }
|
||||
{ locale = "ga-IE"; arch = "linux-i686"; sha256 = "b759d93d78964eb8b9ce5aaad37d652fa425cfb5d6049f58a31c2492e3aa475d"; }
|
||||
{ locale = "ga-IE"; arch = "linux-x86_64"; sha256 = "62b32a8a4e7455c42bbf8cc5029919a64ca2ff61e06f535dd628a8dd612a15d9"; }
|
||||
{ locale = "da"; arch = "linux-i686"; sha256 = "4ad6ede882e973b37627105812619d2e8c804d50d496d96f68554bf75ca093fe"; }
|
||||
{ locale = "da"; arch = "linux-x86_64"; sha256 = "9fd6ce0edef1a8c8eb7d811afa39600a2c946f9ed87610a9e98a971d4cf31b08"; }
|
||||
{ locale = "hr"; arch = "linux-i686"; sha256 = "35254ef736865d1a7c368e62c9cba68fa64b7f017aca4d9569aeb18b5f559717"; }
|
||||
{ locale = "hr"; arch = "linux-x86_64"; sha256 = "6ff8a5b4ebfb9217b37afdfc4d5cab01f1ce66387010d2105a51bed486eea52c"; }
|
||||
{ locale = "ca"; arch = "linux-i686"; sha256 = "eb4af3ff107f6827d0288bd68486b8eef174c5dc6e9b5313099d99b2e695db0d"; }
|
||||
{ locale = "ca"; arch = "linux-x86_64"; sha256 = "80a6bf800a53af0cc9445c632546ce7cefcf5bd819e6e5e35e662330d58d757c"; }
|
||||
{ locale = "en-US"; arch = "linux-i686"; sha256 = "ba35f578095f79582341e988ce7c5e07f489833f7a309756c80caf4f56367987"; }
|
||||
{ locale = "en-US"; arch = "linux-x86_64"; sha256 = "09c193e865e90b6d2c547c17d10add7d43e8b89b630a8a490323d4ed391c924d"; }
|
||||
{ locale = "pt-PT"; arch = "linux-i686"; sha256 = "57610296c564291a8432fdb9215bcfbab6f09792c47e5606c1619bb203c7f5de"; }
|
||||
{ locale = "pt-PT"; arch = "linux-x86_64"; sha256 = "c702acf69957ffd1c4774f42d4f28dc239a4c5bcf6e003c236952167bf9e7e9f"; }
|
||||
{ locale = "gl"; arch = "linux-i686"; sha256 = "56ae2d38af2988791163e6b118c781d55e2c545097aa5afccc72998705312888"; }
|
||||
{ locale = "gl"; arch = "linux-x86_64"; sha256 = "c5386f149831aa2f48b65391f31f8f2e0a9c3b7a8bcaae67420a5819e80315ec"; }
|
||||
{ locale = "lt"; arch = "linux-i686"; sha256 = "8409401c0b87be071d081c03eb34e3338cb62e80669045f5d268f8da60d96bce"; }
|
||||
{ locale = "lt"; arch = "linux-x86_64"; sha256 = "4f93e9b0688e30586b3d372944ae5579f7249220733d6045e6bca3830e7f121a"; }
|
||||
{ locale = "en-GB"; arch = "linux-i686"; sha256 = "ae1608b9e15862f82d15c5acbcd9f65775efc4368588bc685ebff523ff93e2d6"; }
|
||||
{ locale = "en-GB"; arch = "linux-x86_64"; sha256 = "2466f020209de610f429315e0b090b43cf42c9ce540c6bc51e7ad11f5a3449f5"; }
|
||||
{ locale = "sl"; arch = "linux-i686"; sha256 = "76cbcf31388cbe72ebbf3fa3be66a0cfe20cd572febf062f3a58a9c50313aa03"; }
|
||||
{ locale = "sl"; arch = "linux-x86_64"; sha256 = "e4aa9dd8bb21f3d79ce5f9cfc907fc8a355fef349dcdec30403d534bf3cfbdf6"; }
|
||||
{ locale = "et"; arch = "linux-i686"; sha256 = "06561fa96d5166bfbe8eb492ebc08b3d2a768a8a7a251b357dec89ad33f3825e"; }
|
||||
{ locale = "et"; arch = "linux-x86_64"; sha256 = "85e663261cc6722c25dd36e1c0a15b7a82a3a6aaca54191effe8ea09ccb8c43e"; }
|
||||
{ locale = "hy-AM"; arch = "linux-i686"; sha256 = "d80f116d39e48b42a767fbda5b6e765be4bc3d210cf95d80bb014606785be3e6"; }
|
||||
{ locale = "hy-AM"; arch = "linux-x86_64"; sha256 = "c2e124736d63581a3034e60fe3d40bfef9458a712853ab5c8c5d391a9d3af6a9"; }
|
||||
];
|
||||
|
||||
arch = if stdenv.system == "i686-linux"
|
||||
@ -263,4 +265,3 @@ stdenv.mkDerivation {
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -0,0 +1,210 @@
|
||||
version = if ARGV.empty?
|
||||
"latest"
|
||||
else
|
||||
ARGV[0]
|
||||
end
|
||||
|
||||
base_path = "download-installer.cdn.mozilla.net/pub/thunderbird/releases"
|
||||
|
||||
arches = ["linux-i686", "linux-x86_64"]
|
||||
|
||||
arches.each do |arch|
|
||||
system("wget", "--recursive", "--continue", "--no-parent", "--reject-regex", ".*\\?.*", "--reject", "xpi", "http://#{base_path}/#{version}/#{arch}/")
|
||||
end
|
||||
|
||||
locales = Dir.glob("#{base_path}/#{version}/#{arches[0]}/*").map do |path|
|
||||
File.basename(path)
|
||||
end
|
||||
|
||||
locales.delete("index.html")
|
||||
locales.delete("xpi")
|
||||
|
||||
real_version = Dir.glob("#{base_path}/#{version}/#{arches[0]}/#{locales[0]}/thunderbird-*")[0].match(/thunderbird-([0-9.]*)/)[1][0..-2]
|
||||
|
||||
locale_arch_path_tuples = locales.flat_map do |locale|
|
||||
arches.map do |arch|
|
||||
path = Dir.glob("#{base_path}/#{version}/#{arch}/#{locale}/thunderbird-*")[0]
|
||||
|
||||
[locale, arch, path]
|
||||
end
|
||||
end
|
||||
|
||||
paths = locale_arch_path_tuples.map do |tuple| tuple[2] end
|
||||
|
||||
hashes = IO.popen(["sha256sum", "--binary", *paths]) do |input|
|
||||
input.each_line.map do |line|
|
||||
$stderr.puts(line)
|
||||
|
||||
line.match(/^[0-9a-f]*/)[0]
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
puts(<<"EOH")
|
||||
# This file is generated from generate_nix.rb
|
||||
# Execute the following command in a temporary directory to update the file.
|
||||
#
|
||||
# ruby generate_nix.rb > default.nix
|
||||
|
||||
{ stdenv, fetchurl, config
|
||||
, gconf
|
||||
, alsaLib
|
||||
, at_spi2_atk
|
||||
, atk
|
||||
, cairo
|
||||
, cups
|
||||
, curl
|
||||
, dbus_glib
|
||||
, dbus_libs
|
||||
, fontconfig
|
||||
, freetype
|
||||
, gdk_pixbuf
|
||||
, glib
|
||||
, glibc
|
||||
, gst_plugins_base
|
||||
, gstreamer
|
||||
, gtk
|
||||
, kerberos
|
||||
, libX11
|
||||
, libXScrnSaver
|
||||
, libXext
|
||||
, libXinerama
|
||||
, libXrender
|
||||
, libXt
|
||||
, libcanberra
|
||||
, libgnome
|
||||
, libgnomeui
|
||||
, mesa
|
||||
, nspr
|
||||
, nss
|
||||
, pango
|
||||
}:
|
||||
|
||||
let
|
||||
version = "#{real_version}";
|
||||
sources = [
|
||||
EOH
|
||||
|
||||
locale_arch_path_tuples.zip(hashes) do |tuple, hash|
|
||||
locale, arch, path = tuple
|
||||
|
||||
puts(%Q| { locale = "#{locale}"; arch = "#{arch}"; sha256 = "#{hash}"; }|)
|
||||
end
|
||||
|
||||
puts(<<'EOF')
|
||||
];
|
||||
|
||||
arch = if stdenv.system == "i686-linux"
|
||||
then "linux-i686"
|
||||
else "linux-x86_64";
|
||||
|
||||
isPrefixOf = prefix: string:
|
||||
builtins.substring 0 (builtins.stringLength prefix) string == prefix;
|
||||
|
||||
sourceMatches = locale: source:
|
||||
(isPrefixOf source.locale locale) && source.arch == arch;
|
||||
|
||||
systemLocale = config.i18n.defaultLocale or "en-US";
|
||||
|
||||
defaultSource = stdenv.lib.findFirst (sourceMatches "en-US") {} sources;
|
||||
|
||||
source = stdenv.lib.findFirst (sourceMatches systemLocale) defaultSource sources;
|
||||
|
||||
in
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "thunderbird-bin-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://download-installer.cdn.mozilla.net/pub/thunderbird/releases/${version}/${source.arch}/${source.locale}/thunderbird-${version}.tar.bz2";
|
||||
inherit (source) sha256;
|
||||
};
|
||||
|
||||
phases = "unpackPhase installPhase";
|
||||
|
||||
libPath = stdenv.lib.makeLibraryPath
|
||||
[ stdenv.gcc.gcc
|
||||
gconf
|
||||
alsaLib
|
||||
at_spi2_atk
|
||||
atk
|
||||
cairo
|
||||
cups
|
||||
curl
|
||||
dbus_glib
|
||||
dbus_libs
|
||||
fontconfig
|
||||
freetype
|
||||
gdk_pixbuf
|
||||
glib
|
||||
glibc
|
||||
gst_plugins_base
|
||||
gstreamer
|
||||
gtk
|
||||
kerberos
|
||||
libX11
|
||||
libXScrnSaver
|
||||
libXext
|
||||
libXinerama
|
||||
libXrender
|
||||
libXt
|
||||
libcanberra
|
||||
libgnome
|
||||
libgnomeui
|
||||
mesa
|
||||
nspr
|
||||
nss
|
||||
pango
|
||||
] + ":" + stdenv.lib.makeSearchPath "lib64" [
|
||||
stdenv.gcc.gcc
|
||||
];
|
||||
|
||||
installPhase =
|
||||
''
|
||||
mkdir -p "$prefix/usr/lib/thunderbird-bin-${version}"
|
||||
cp -r * "$prefix/usr/lib/thunderbird-bin-${version}"
|
||||
|
||||
mkdir -p "$out/bin"
|
||||
ln -s "$prefix/usr/lib/thunderbird-bin-${version}/thunderbird" "$out/bin/"
|
||||
|
||||
for executable in \
|
||||
thunderbird mozilla-xremote-client thunderbird-bin plugin-container \
|
||||
updater
|
||||
do
|
||||
patchelf --interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" \
|
||||
"$out/usr/lib/thunderbird-bin-${version}/$executable"
|
||||
done
|
||||
|
||||
for executable in \
|
||||
thunderbird mozilla-xremote-client thunderbird-bin plugin-container \
|
||||
updater libxul.so
|
||||
do
|
||||
patchelf --set-rpath "$libPath" \
|
||||
"$out/usr/lib/thunderbird-bin-${version}/$executable"
|
||||
done
|
||||
|
||||
# Create a desktop item.
|
||||
mkdir -p $out/share/applications
|
||||
cat > $out/share/applications/thunderbird.desktop <<EOF
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Exec=$out/bin/thunderbird
|
||||
Icon=$out/lib/thunderbird-bin-${version}/chrome/icons/default/default256.png
|
||||
Name=Thunderbird
|
||||
GenericName=Mail Reader
|
||||
Categories=Application;Network;
|
||||
EOF
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Mozilla Thunderbird, a full-featured email client";
|
||||
homepage = http://www.mozilla.org/thunderbird/;
|
||||
license = {
|
||||
shortName = "unfree"; # not sure
|
||||
fullName = "unfree";
|
||||
url = http://www.mozilla.org/en-US/foundation/trademarks/policy/;
|
||||
};
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
EOF
|
@ -33,6 +33,5 @@ stdenv.mkDerivation rec {
|
||||
[doScons doForceShare doPropagate]);
|
||||
meta = {
|
||||
description = "Linux DC++ - Direct Connect client";
|
||||
inherit src;
|
||||
};
|
||||
}
|
||||
|
@ -1,18 +1,20 @@
|
||||
{ stdenv, fetchurl, ncurses, zlib, bzip2, sqlite, pkgconfig, glib, gnutls }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
let
|
||||
version = "1.19.1";
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
name = "ncdc-${version}";
|
||||
version = "1.19";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://dev.yorhel.nl/download/ncdc-1.19.tar.gz";
|
||||
sha256 = "1wgvqwfxq9kc729h2r528n55821w87sfbm4h21mr6pvkpfw30hf2";
|
||||
url = "http://dev.yorhel.nl/download/ncdc-${version}.tar.gz";
|
||||
sha256 = "0iwx4b3x207sw11qqjfynpwnhryhixjzbgcy9l9zfisa8f0k7cm6";
|
||||
};
|
||||
|
||||
buildInputs = [ ncurses zlib bzip2 sqlite pkgconfig glib gnutls ];
|
||||
|
||||
meta = {
|
||||
description = "modern and lightweight direct connect client with a friendly ncurses interface";
|
||||
description = "Modern and lightweight direct connect client with a friendly ncurses interface";
|
||||
homepage = http://dev.yorhel.nl/ncdc;
|
||||
license = stdenv.lib.licenses.mit;
|
||||
platforms = stdenv.lib.platforms.linux; # arbitrary
|
||||
|
@ -10,7 +10,7 @@ in
|
||||
stdenv.mkDerivation {
|
||||
name = "teamviewer-8.0.17147";
|
||||
src = fetchurl {
|
||||
url = "http://download.teamviewer.com/download/teamviewer_linux_x64.deb";
|
||||
url = "http://download.teamviewer.com/download/version_8x/teamviewer_linux_x64.deb";
|
||||
sha256 = "0s5m15f99rdmspzwx3gb9mqd6jx1bgfm0d6rfd01k9rf7gi7qk0k";
|
||||
};
|
||||
|
||||
|
@ -11,7 +11,7 @@ in
|
||||
stdenv.mkDerivation {
|
||||
name = "teamviewer-7.0.9377";
|
||||
src = fetchurl {
|
||||
url = "http://www.teamviewer.com/download/version_7x/teamviewer_linux.tar.gz";
|
||||
url = "http://download.teamviewer.com/download/version_7x/teamviewer_linux.tar.gz";
|
||||
sha256 = "1f8934jqj093m1z56yl6k2ah6njkk6pz1rjvpqnryi29pp5piaiy";
|
||||
};
|
||||
|
||||
|
40
pkgs/applications/science/logic/prooftree/default.nix
Normal file
40
pkgs/applications/science/logic/prooftree/default.nix
Normal file
@ -0,0 +1,40 @@
|
||||
{stdenv, fetchurl, pkgconfig, ocaml, findlib, camlp5, ncurses, lablgtk ? null}:
|
||||
|
||||
stdenv.mkDerivation (rec {
|
||||
name = "prooftree-${version}";
|
||||
version = "0.12";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://askra.de/software/prooftree/releases/prooftree-${version}.tar.gz";
|
||||
sha256 = "08yp66j05pdkdpv9xkfqymqy82mir5xbwfh9mkzhh219xkps4b4m";
|
||||
};
|
||||
|
||||
buildInputs = [ pkgconfig ocaml findlib camlp5 ncurses lablgtk ];
|
||||
|
||||
dontAddPrefix = true;
|
||||
configureFlags = [ "--prefix" "$(out)" ];
|
||||
|
||||
meta = {
|
||||
description = "Prooftree is a program for proof-tree visualization";
|
||||
longDescription = ''
|
||||
Prooftree is a program for proof-tree visualization during interactive
|
||||
proof development in a theorem prover. It is currently being developed
|
||||
for Coq and Proof General. Prooftree helps against getting lost between
|
||||
different subgoals in interactive proof development. It clearly shows
|
||||
where the current subgoal comes from and thus helps in developing the
|
||||
right plan for solving it.
|
||||
|
||||
Prooftree uses different colors for the already proven subgoals, the
|
||||
current branch in the proof and the still open subgoals. Sequent texts
|
||||
are not displayed in the proof tree itself, but they are shown as a
|
||||
tool-tip when the mouse rests over a sequent symbol. Long proof commands
|
||||
are abbreviated in the tree display, but show up in full length as
|
||||
tool-tip. Both, sequents and proof commands, can be shown in the display
|
||||
below the tree (on single click) or in a separate window (on double or
|
||||
shift-click).
|
||||
'';
|
||||
homepage = http://askra.de/software/prooftree;
|
||||
platforms = stdenv.lib.platforms.unix;
|
||||
maintainers = [ stdenv.lib.maintainers.jwiegley ];
|
||||
};
|
||||
})
|
@ -5,43 +5,39 @@ let
|
||||
libPath = stdenv.lib.makeLibraryPath
|
||||
[ stdenv.gcc.libc stdenv.gcc.gcc gtk gdk_pixbuf atk pango glib cairo
|
||||
freetype fontconfig libxml2 gnome2.gtksourceview
|
||||
];
|
||||
] + ":${stdenv.gcc.gcc}/lib64";
|
||||
|
||||
patchLib = x: extra: "patchelf --set-rpath ${libPath}:${extra} ${x}";
|
||||
patchExe = x: extra: ''
|
||||
patchExe = x: ''
|
||||
patchelf --interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" \
|
||||
--set-rpath ${libPath}:${extra} ${x}
|
||||
--set-rpath ${libPath} ${x}
|
||||
'';
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
name = "verifast-${version}";
|
||||
version = "13.11.14";
|
||||
version = "14.5";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://people.cs.kuleuven.be/~bart.jacobs/verifast/verifast-13.11.14.tar.gz";
|
||||
sha256 = "1ahay7achjsfz59d3b6vl1v91gr5j34vb494isqw3fsw5l8jd9p7";
|
||||
url = "http://people.cs.kuleuven.be/~bart.jacobs/verifast/${name}-x64.tar.gz";
|
||||
sha256 = "03y1s6s2j9vqgiad0vbxriipsypxaylxxd3q36n9rvrc3lf9xra9";
|
||||
};
|
||||
|
||||
dontStrip = true;
|
||||
phases = "unpackPhase installPhase";
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
cp -R bin $out/libexec
|
||||
|
||||
${patchLib "$out/libexec/libz3-gmp.so" "$out/libexec"}
|
||||
${patchExe "$out/libexec/vfide-core" "$out/libexec"}
|
||||
${patchExe "$out/libexec/verifast-core" "$out/libexec"}
|
||||
|
||||
${patchExe "$out/libexec/verifast-core"}
|
||||
${patchExe "$out/libexec/vfide-core"}
|
||||
ln -s $out/libexec/verifast-core $out/bin/verifast
|
||||
ln -s $out/libexec/vfide-core $out/bin/vfide
|
||||
'';
|
||||
|
||||
phases = "unpackPhase installPhase";
|
||||
|
||||
meta = {
|
||||
description = "Verification for C and Java programs via separation logic";
|
||||
homepage = "http://people.cs.kuleuven.be/~bart.jacobs/verifast/";
|
||||
license = stdenv.lib.licenses.msrla;
|
||||
platforms = [ "i686-linux" ];
|
||||
platforms = [ "x86_64-linux" ];
|
||||
maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
|
||||
};
|
||||
}
|
||||
|
@ -1,15 +1,15 @@
|
||||
{ cabal, ansiTerminal, cmdargs, filepath, HTTP, network
|
||||
{ cabal, ansiTerminal, filepath, HTTP, network, optparseApplicative
|
||||
, stringsearch, terminalSize, time, zlib
|
||||
}:
|
||||
|
||||
cabal.mkDerivation (self: {
|
||||
pname = "sloane";
|
||||
version = "1.7.1";
|
||||
sha256 = "0d6k33rhp1ixrwdfwy31m39kbk8z81biwzwmkp01fvpgwm96p3va";
|
||||
version = "1.8";
|
||||
sha256 = "0c30slsswfqwzi39hk6jraxz1y1a2yn8g8nyjvlnggwajx2rlm6p";
|
||||
isLibrary = false;
|
||||
isExecutable = true;
|
||||
buildDepends = [
|
||||
ansiTerminal cmdargs filepath HTTP network stringsearch
|
||||
ansiTerminal filepath HTTP network optparseApplicative stringsearch
|
||||
terminalSize time zlib
|
||||
];
|
||||
postInstall = ''
|
||||
|
@ -1,50 +1,41 @@
|
||||
{ cabal, aeson, async, blazeBuilder, bloomfilter, bup, byteable
|
||||
, caseInsensitive, clientsession, cryptoApi, cryptohash, curl
|
||||
, dataDefault, dataenc, DAV, dbus, dlist, dns, editDistance
|
||||
, extensibleExceptions, fdoNotify, feed, filepath, git, gnupg1
|
||||
, gnutls, hamlet, hinotify, hS3, hslogger, HTTP, httpClient
|
||||
, exceptions, extensibleExceptions, fdoNotify, feed, filepath, git
|
||||
, gnupg1, gnutls, hamlet, hinotify, hS3, hslogger, HTTP, httpClient
|
||||
, httpConduit, httpTypes, IfElse, json, liftedBase, lsof, MissingH
|
||||
, MonadCatchIOTransformers, monadControl, mtl, network
|
||||
, networkConduit, networkInfo, networkMulticast
|
||||
, networkProtocolXmpp, openssh, optparseApplicative, perl
|
||||
, QuickCheck, random, regexTdfa, rsync, SafeSemaphore, securemem
|
||||
, SHA, shakespeare, stm, tasty, tastyHunit, tastyQuickcheck
|
||||
, tastyRerun, text, time, transformers, unixCompat, utf8String
|
||||
, uuid, wai, waiLogger, warp, warpTls, which, xmlTypes, yesod
|
||||
, yesodCore, yesodDefault, yesodForm, yesodStatic
|
||||
, monadControl, mtl, network, networkConduit, networkInfo
|
||||
, networkMulticast, networkProtocolXmpp, openssh
|
||||
, optparseApplicative, perl, QuickCheck, random, regexTdfa, rsync
|
||||
, SafeSemaphore, securemem, SHA, shakespeare, stm, tasty
|
||||
, tastyHunit, tastyQuickcheck, tastyRerun, text, time, transformers
|
||||
, unixCompat, utf8String, uuid, wai, waiLogger, warp, warpTls
|
||||
, which, xmlTypes, yesod, yesodCore, yesodDefault, yesodForm
|
||||
, yesodStatic, fsnotify
|
||||
}:
|
||||
|
||||
cabal.mkDerivation (self: {
|
||||
pname = "git-annex";
|
||||
version = "5.20140517";
|
||||
sha256 = "150xf6664rfdljswc270m2pqvia4sywph4rrrbky6izy6a0vq680";
|
||||
version = "5.20140606";
|
||||
sha256 = "1b9hslkdv82lf8njwzy51yj8dgg2wn7g08wy73lk7pnddfh8qjpy";
|
||||
isLibrary = false;
|
||||
isExecutable = true;
|
||||
buildDepends = [
|
||||
aeson async blazeBuilder bloomfilter byteable caseInsensitive
|
||||
clientsession cryptoApi cryptohash dataDefault dataenc DAV dbus
|
||||
dlist dns editDistance extensibleExceptions fdoNotify feed filepath
|
||||
gnutls hamlet hinotify hS3 hslogger HTTP httpClient httpConduit
|
||||
httpTypes IfElse json liftedBase MissingH MonadCatchIOTransformers
|
||||
monadControl mtl network networkConduit networkInfo
|
||||
networkMulticast networkProtocolXmpp optparseApplicative QuickCheck
|
||||
random regexTdfa SafeSemaphore securemem SHA shakespeare stm tasty
|
||||
tastyHunit tastyQuickcheck tastyRerun text time transformers
|
||||
unixCompat utf8String uuid wai waiLogger warp warpTls xmlTypes
|
||||
yesod yesodCore yesodDefault yesodForm yesodStatic
|
||||
];
|
||||
clientsession cryptoApi cryptohash dataDefault dataenc DAV
|
||||
dlist dns editDistance exceptions extensibleExceptions
|
||||
feed filepath gnutls hamlet hS3 hslogger HTTP httpClient
|
||||
httpConduit httpTypes IfElse json liftedBase MissingH monadControl
|
||||
mtl network networkConduit networkInfo networkMulticast
|
||||
networkProtocolXmpp optparseApplicative QuickCheck random regexTdfa
|
||||
SafeSemaphore securemem SHA shakespeare stm tasty tastyHunit
|
||||
tastyQuickcheck tastyRerun text time transformers unixCompat
|
||||
utf8String uuid wai waiLogger warp warpTls xmlTypes yesod yesodCore
|
||||
yesodDefault yesodForm yesodStatic
|
||||
] ++ (if !self.stdenv.isDarwin
|
||||
then [ dbus fdoNotify hinotify ] else [ fsnotify ]);
|
||||
buildTools = [ bup curl git gnupg1 lsof openssh perl rsync which ];
|
||||
configureFlags = "-fS3
|
||||
-fWebDAV
|
||||
-fInotify
|
||||
-fDbus
|
||||
-fAssistant
|
||||
-fWebapp
|
||||
-fPairing
|
||||
-fXMPP
|
||||
-fDNS
|
||||
-fProduction
|
||||
-fTDFA";
|
||||
configureFlags = "-fAssistant -fProduction";
|
||||
preConfigure = ''
|
||||
export HOME="$NIX_BUILD_TOP/tmp"
|
||||
mkdir "$HOME"
|
||||
|
@ -1,8 +1,10 @@
|
||||
{ stdenv, fetchurl, boost, zlib, botan, libidn
|
||||
, lua, pcre, sqlite, perl, pkgconfig, expect }:
|
||||
, lua, pcre, sqlite, perl, pkgconfig, expect
|
||||
, bzip2, gmp, openssl
|
||||
}:
|
||||
|
||||
let
|
||||
version = "1.0";
|
||||
version = "1.1";
|
||||
perlVersion = (builtins.parseDrvName perl.name).version;
|
||||
in
|
||||
|
||||
@ -13,12 +15,13 @@ stdenv.mkDerivation rec {
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://monotone.ca/downloads/${version}/monotone-${version}.tar.bz2";
|
||||
sha256 = "5c530bc4652b2c08b5291659f0c130618a14780f075f981e947952dcaefc31dc";
|
||||
sha256 = "124cwgi2q86hagslbk5idxbs9j896rfjzryhr6z63r6l485gcp7r";
|
||||
};
|
||||
|
||||
patches = [ ./glibc-file-handle.patch ];
|
||||
patches = [ ];
|
||||
|
||||
buildInputs = [ boost zlib botan libidn lua pcre sqlite pkgconfig expect ];
|
||||
buildInputs = [ boost zlib botan libidn lua pcre sqlite pkgconfig expect
|
||||
openssl gmp bzip2 ];
|
||||
|
||||
postInstall = ''
|
||||
mkdir -p $out/share/${name}
|
||||
|
@ -0,0 +1,8 @@
|
||||
url http://www.monotone.ca/downloads.php
|
||||
|
||||
do_overwrite(){
|
||||
ensure_version
|
||||
ensure_hash
|
||||
set_var_value version $CURRENT_VERSION
|
||||
set_var_value sha256 $CURRENT_HASH
|
||||
}
|
@ -1,166 +0,0 @@
|
||||
Revision: da62cad10eda55aa233ac124273f3db4f541137a
|
||||
Parent: 65bcb8cf8b32f68a5b48629b328f6d65979e58df
|
||||
Author: Thomas Moschny <thomas.moschny@gmx.de>
|
||||
Date: 07.05.2011 13:32:06
|
||||
Branch: net.venge.monotone
|
||||
|
||||
Changelog:
|
||||
|
||||
* src/rcs_file.cc: Rename struct "file_handle" to "rcs_file_handle"
|
||||
to avoid a name clash with a struct of same name defined by newer
|
||||
glibc's "fcntl.h". For aesthetic reasons, also rename struct
|
||||
"file_source".
|
||||
|
||||
References:
|
||||
https://code.monotone.ca/p/monotone/source/commit/da62cad10eda55aa233ac124273f3db4f541137a/
|
||||
https://bugs.gentoo.org/396651
|
||||
|
||||
============================================================
|
||||
--- a/src/rcs_file.cc 885b3fbe7b6cfed78816f0e57cd71d44616213c6
|
||||
+++ b/src/rcs_file.cc 03cf68912a4a708545ebce3d415c0e970ddead0b
|
||||
@@ -42,12 +42,12 @@ struct
|
||||
|
||||
#ifdef HAVE_MMAP
|
||||
struct
|
||||
-file_handle
|
||||
+rcs_file_handle
|
||||
{
|
||||
string const & filename;
|
||||
off_t length;
|
||||
int fd;
|
||||
- file_handle(string const & fn) :
|
||||
+ rcs_file_handle(string const & fn) :
|
||||
filename(fn),
|
||||
length(0),
|
||||
fd(-1)
|
||||
@@ -60,13 +60,13 @@ file_handle
|
||||
if (fd == -1)
|
||||
throw oops("open of " + filename + " failed");
|
||||
}
|
||||
- ~file_handle()
|
||||
+ ~rcs_file_handle()
|
||||
{
|
||||
if (close(fd) == -1)
|
||||
throw oops("close of " + filename + " failed");
|
||||
}
|
||||
};
|
||||
-struct file_source
|
||||
+struct rcs_file_source
|
||||
{
|
||||
string const & filename;
|
||||
int fd;
|
||||
@@ -91,7 +91,7 @@ struct file_source
|
||||
++pos;
|
||||
return good();
|
||||
}
|
||||
- file_source(string const & fn,
|
||||
+ rcs_file_source(string const & fn,
|
||||
int f,
|
||||
off_t len) :
|
||||
filename(fn),
|
||||
@@ -104,7 +104,7 @@ struct file_source
|
||||
if (mapping == MAP_FAILED)
|
||||
throw oops("mmap of " + filename + " failed");
|
||||
}
|
||||
- ~file_source()
|
||||
+ ~rcs_file_source()
|
||||
{
|
||||
if (munmap(mapping, length) == -1)
|
||||
throw oops("munmapping " + filename + " failed, after reading RCS file");
|
||||
@@ -112,12 +112,12 @@ struct
|
||||
};
|
||||
#elif defined(WIN32)
|
||||
struct
|
||||
-file_handle
|
||||
+rcs_file_handle
|
||||
{
|
||||
string const & filename;
|
||||
off_t length;
|
||||
HANDLE fd;
|
||||
- file_handle(string const & fn) :
|
||||
+ rcs_file_handle(string const & fn) :
|
||||
filename(fn),
|
||||
length(0),
|
||||
fd(NULL)
|
||||
@@ -134,7 +134,7 @@ file_handle
|
||||
if (fd == NULL)
|
||||
throw oops("open of " + filename + " failed");
|
||||
}
|
||||
- ~file_handle()
|
||||
+ ~rcs_file_handle()
|
||||
{
|
||||
if (CloseHandle(fd)==0)
|
||||
throw oops("close of " + filename + " failed");
|
||||
@@ -142,7 +142,7 @@ struct
|
||||
};
|
||||
|
||||
struct
|
||||
-file_source
|
||||
+rcs_file_source
|
||||
{
|
||||
string const & filename;
|
||||
HANDLE fd,map;
|
||||
@@ -167,7 +167,7 @@ file_source
|
||||
++pos;
|
||||
return good();
|
||||
}
|
||||
- file_source(string const & fn,
|
||||
+ rcs_file_source(string const & fn,
|
||||
HANDLE f,
|
||||
off_t len) :
|
||||
filename(fn),
|
||||
@@ -183,7 +183,7 @@ file_source
|
||||
if (mapping==NULL)
|
||||
throw oops("MapViewOfFile of " + filename + " failed");
|
||||
}
|
||||
- ~file_source()
|
||||
+ ~rcs_file_source()
|
||||
{
|
||||
if (UnmapViewOfFile(mapping)==0)
|
||||
throw oops("UnmapViewOfFile of " + filename + " failed");
|
||||
@@ -193,7 +193,7 @@ file_source
|
||||
};
|
||||
#else
|
||||
// no mmap at all
|
||||
-typedef istream file_source;
|
||||
+typedef istream rcs_file_source;
|
||||
#endif
|
||||
|
||||
typedef enum
|
||||
@@ -220,7 +220,7 @@ static token_type
|
||||
}
|
||||
|
||||
static token_type
|
||||
-get_token(file_source & ist,
|
||||
+get_token(rcs_file_source & ist,
|
||||
string & str,
|
||||
size_t & line,
|
||||
size_t & col)
|
||||
@@ -303,14 +303,14 @@ struct parser
|
||||
|
||||
struct parser
|
||||
{
|
||||
- file_source & ist;
|
||||
+ rcs_file_source & ist;
|
||||
rcs_file & r;
|
||||
string token;
|
||||
token_type ttype;
|
||||
|
||||
size_t line, col;
|
||||
|
||||
- parser(file_source & s,
|
||||
+ parser(rcs_file_source & s,
|
||||
rcs_file & r)
|
||||
: ist(s), r(r), line(1), col(1)
|
||||
{}
|
||||
@@ -489,8 +489,8 @@ parse_rcs_file(string const & filename,
|
||||
parse_rcs_file(string const & filename, rcs_file & r)
|
||||
{
|
||||
#if defined(HAVE_MMAP) || defined(WIN32)
|
||||
- file_handle handle(filename);
|
||||
- file_source ifs(filename, handle.fd, handle.length);
|
||||
+ rcs_file_handle handle(filename);
|
||||
+ rcs_file_source ifs(filename, handle.fd, handle.length);
|
||||
#else
|
||||
ifstream ifs(filename.c_str());
|
||||
ifs.unsetf(ios_base::skipws);
|
@ -34,11 +34,11 @@ assert vdpauSupport -> libvdpau != null && ffmpeg.vdpauSupport;
|
||||
assert pulseSupport -> pulseaudio != null;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "xbmc-13.0";
|
||||
name = "xbmc-13.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/xbmc/xbmc/archive/13.0-Gotham.tar.gz";
|
||||
sha256 = "096hin8qp1864ypyw9xysy13niwf79bgfgivxi7w7mh2dagn0mjx";
|
||||
url = "https://github.com/xbmc/xbmc/archive/13.1-Gotham.tar.gz";
|
||||
sha256 = "0y56c5csfp8xhk088g47m3bzrri73z868yfx6b04gnrdmr760jrl";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
@ -52,6 +52,8 @@ if test -z "$finalPath"; then
|
||||
# Perform the checkout.
|
||||
bzr -Ossl.cert_reqs=none export $revarg --format=dir "$tmpFile" "$url"
|
||||
|
||||
echo "bzr revision is $(bzr revno $revarg "$url")"
|
||||
|
||||
# Compute the hash.
|
||||
hash=$(nix-hash --type $hashType $hashFormat $tmpFile)
|
||||
if ! test -n "$QUIET"; then echo "hash is $hash" >&2; fi
|
||||
|
@ -217,7 +217,7 @@ clone_user_rev() {
|
||||
fi;;
|
||||
esac
|
||||
|
||||
echo "git revision is $(cd $dir && git rev-parse $rev)"
|
||||
echo "git revision is $(cd $dir && (git rev-parse $rev 2> /dev/null || git rev-parse refs/heads/fetchgit) | tail -n1)"
|
||||
|
||||
# Allow doing additional processing before .git removal
|
||||
eval "$NIX_PREFETCH_GIT_CHECKOUT_HOOK"
|
||||
|
@ -51,6 +51,7 @@ if test -z "$finalPath"; then
|
||||
hg archive -q -y -r "$rev" --cwd $tmpClone $tmpArchive
|
||||
rm -f $tmpArchive/.hg_archival.txt
|
||||
|
||||
echo "hg revision is $(cd $tmpClone; hg id -r "$rev" -i)"
|
||||
|
||||
# Compute the hash.
|
||||
hash=$(nix-hash --type $hashType $hashFormat $tmpArchive)
|
||||
|
@ -56,6 +56,7 @@ if test -z "$finalPath"; then
|
||||
fi
|
||||
|
||||
echo p | svn "$command" --quiet -r "$rev" "$url" "$tmpFile" >&2
|
||||
echo "svn revision is $(svn info -r "$rev" "$url" | grep "Revision: " | cut -d' ' -f2)"
|
||||
|
||||
# Compute the hash.
|
||||
hash=$(nix-hash --type $hashType $hashFormat $tmpFile)
|
||||
|
56
pkgs/build-support/setup-hooks/scatter_output.sh
Normal file
56
pkgs/build-support/setup-hooks/scatter_output.sh
Normal file
@ -0,0 +1,56 @@
|
||||
preFixupPhases+=" scatter_files"
|
||||
preDistPhases+=" propagate_bin_input"
|
||||
|
||||
SCATTER_BIN_DEFAULT=${SCATTER_BIN_DEFAULT:-"/lib/*.so* /bin/*"}
|
||||
SCATTER_DOC_DEFAULT=${SCATTER_DOC_DEFAULT:-"/share/man/* /share/doc/*"}
|
||||
|
||||
|
||||
scatter_files() {
|
||||
save_nullglob=$(shopt -p nullglob)
|
||||
for o in $outputs; do
|
||||
[[ "$o" == "out" ]] && continue
|
||||
v=files_${o}
|
||||
|
||||
#if files_'output' isn't set in derivative, use defualts for some
|
||||
[[ ${!v} ]] || {
|
||||
case $o in
|
||||
bin)
|
||||
v=SCATTER_BIN_DEFAULT
|
||||
;;
|
||||
doc)
|
||||
v=SCATTER_DOC_DEFAULT
|
||||
;;
|
||||
*)
|
||||
continue
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
# prepend each path with $out
|
||||
paths=$out${!v// \// $out/}
|
||||
shopt -s nullglob
|
||||
for f in $paths; do
|
||||
shopt -u nullglob
|
||||
dist=${!o}${f#$out}
|
||||
mkdir -p $(dirname $dist)
|
||||
cp -pr $f $dist
|
||||
# remove source, not forgetting to clean empty dirs
|
||||
rm -r $f
|
||||
rmdir --ignore-fail-on-non-empty $(dirname $f)
|
||||
done
|
||||
find ${!o} -type f -exec $SHELL -c 'patchelf --set-rpath $(patchelf --print-rpath {} 2>/dev/null):'${!o}'/lib {} 2>/dev/null && patchelf --shrink-rpath {}' \;
|
||||
done
|
||||
eval $save_nullglob
|
||||
}
|
||||
|
||||
propagate_bin_input() {
|
||||
if [[ -n ${bin:-} ]]; then
|
||||
mkdir -p $out/nix-support
|
||||
echo $bin >> $out/nix-support/propagated-native-build-inputs
|
||||
fi
|
||||
|
||||
if [[ -n ${bin:-} && -n ${doc:-} ]]; then
|
||||
mkdir -p $bin/nix-support
|
||||
echo $doc >> $bin/nix-support/propagated-user-env-packages
|
||||
fi
|
||||
}
|
@ -246,6 +246,12 @@ do_overwrite () {
|
||||
mv "$1.new.tmp" "$1"
|
||||
}
|
||||
|
||||
do_overwrite_just_version () {
|
||||
ensure_hash
|
||||
set_var_value version $CURRENT_VERSION
|
||||
set_var_value sha256 $CURRENT_HASH
|
||||
}
|
||||
|
||||
process_config () {
|
||||
CONFIG_DIR="$(directory_of "$1")"
|
||||
CONFIG_NAME="$(basename "$1")"
|
||||
|
@ -106,7 +106,7 @@ rec {
|
||||
|
||||
gucharmap = callPackage ./core/gucharmap { };
|
||||
|
||||
gvfs = pkgs.gvfs.override { gnome = pkgs.gnome3; };
|
||||
gvfs = pkgs.gvfs.override { gnome = pkgs.gnome3; lightWeight = false; };
|
||||
|
||||
eog = callPackage ./core/eog { };
|
||||
|
||||
|
@ -116,7 +116,7 @@ rec {
|
||||
|
||||
gucharmap = callPackage ./core/gucharmap { };
|
||||
|
||||
gvfs = pkgs.gvfs.override { gnome = gnome3; };
|
||||
gvfs = pkgs.gvfs.override { gnome = gnome3; lightWeight = false; };
|
||||
|
||||
eog = callPackage ./core/eog { };
|
||||
|
||||
|
@ -1,15 +1,15 @@
|
||||
{ stdenv, fetchurl, coq, ocaml, gcc }:
|
||||
{ stdenv, fetchurl, coq, ocaml, ocamlPackages, gcc }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "compcert-${version}";
|
||||
version = "2.2";
|
||||
version = "2.3pl2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://compcert.inria.fr/release/${name}.tgz";
|
||||
sha256 = "0zhqx9mixlsycckl6wq6yrd795byj1jz7m4njcgfv29cx33j1nrk";
|
||||
sha256 = "1cq4my646ll1mszs5mbzwk4vp8l8qnsc96fpcv2pl35aw5i6jqm8";
|
||||
};
|
||||
|
||||
buildInputs = [ coq ocaml ];
|
||||
buildInputs = [ coq ocaml ocamlPackages.menhir ];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
configurePhase = "./configure -prefix $out -toolprefix ${gcc}/bin/ ia32-linux";
|
||||
|
@ -49,6 +49,7 @@ stdenv.mkDerivation rec {
|
||||
installPhase = ''
|
||||
mkdir $out $sdk
|
||||
perl ./install-linux.pl --prefix="$out"
|
||||
rm $out/tools/CUDA_Occupancy_Calculator.xls
|
||||
perl ./install-sdk-linux.pl --prefix="$sdk" --cudaprefix="$out"
|
||||
'';
|
||||
|
||||
|
@ -1,12 +1,12 @@
|
||||
{ stdenv, fetchurl, ghc, perl, gmp, ncurses, happy, alex }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "7.9.20140430";
|
||||
version = "7.9.20140608";
|
||||
name = "ghc-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://deb.haskell.org/dailies/2014-05-01/ghc_7.9.20140430.orig.tar.bz2";
|
||||
sha256 = "072c1d71idi7jw711icn1wz4q64laasvb0ii8xvg5mbhi9szbwk4";
|
||||
url = "http://deb.haskell.org/dailies/2014-06-08/ghc_${version}.orig.tar.bz2";
|
||||
sha256 = "0x3hgh4zfns2m6bbq9xwwlafav0a29azl0xh8549za256clz97w1";
|
||||
};
|
||||
|
||||
buildInputs = [ ghc perl gmp ncurses happy alex ];
|
||||
|
@ -1,30 +1,28 @@
|
||||
{ stdenv, fetchsvn, ocaml, zlib, neko }:
|
||||
{ stdenv, fetchgit, ocaml, zlib, neko }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "haxe-3.00";
|
||||
name = "haxe-3.1.3";
|
||||
|
||||
buildInputs = [ocaml zlib neko];
|
||||
|
||||
src = fetchsvn {
|
||||
url = "http://haxe.googlecode.com/svn/trunk";
|
||||
sha256 = "0hg8qailhgrcdk7r4k9kmwfl9d9ds0vy0l7wbv5wdrrc34qzifm4";
|
||||
rev = 6706;
|
||||
src = fetchgit {
|
||||
url = "https://github.com/HaxeFoundation/haxe.git";
|
||||
sha256 = "1p4yja6flv2r04q9lcrjxia3f3fsmhi3d88s0lz0nf0r4m61bjz0";
|
||||
fetchSubmodules = true;
|
||||
|
||||
# Tag 3.1.3
|
||||
rev = "7be30670b2f1f9b6082499c8fb9e23c0a6df6c28";
|
||||
};
|
||||
|
||||
prePatch = ''
|
||||
sed -i -e 's|com.class_path <- \[|&"'"$out/lib/haxe/std/"'";|' main.ml
|
||||
'';
|
||||
|
||||
postBuild = ''
|
||||
find std/tools -name '*.n' -delete
|
||||
rm -f std/tools/haxedoc/haxedoc std/tools/haxelib/haxelib
|
||||
'';
|
||||
|
||||
buildFlags = [ "all" "tools" ];
|
||||
|
||||
installPhase = ''
|
||||
install -vd "$out/bin" "$out/lib/haxe/std"
|
||||
install -vt "$out/bin" haxe haxelib haxedoc
|
||||
install -vt "$out/bin" haxe haxelib
|
||||
cp -vr std "$out/lib/haxe"
|
||||
'';
|
||||
|
||||
|
59
pkgs/development/compilers/hhvm/default.nix
Normal file
59
pkgs/development/compilers/hhvm/default.nix
Normal file
@ -0,0 +1,59 @@
|
||||
{ stdenv, fetchgit, cmake, boost, libunwind, mariadb, libmemcached, pcre
|
||||
, libevent, gd, curl, libxml2, icu, flex, bison, openssl, zlib, php, re2c
|
||||
, expat, libcap, oniguruma, libdwarf, libmcrypt, tbb, gperftools, glog
|
||||
, bzip2, openldap, readline, libelf, uwimap, binutils, cyrus_sasl, pam, libpng
|
||||
, libxslt, ocaml
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "hhvm-${version}";
|
||||
version = "3.1.0";
|
||||
|
||||
src = fetchgit {
|
||||
url = "https://github.com/facebook/hhvm.git";
|
||||
rev = "71ecbd8fb5e94b2a008387a2b5e9a8df5c6f5c7b";
|
||||
sha256 = "1zv3k3bxahwyna2jgicwxm9lxs11jddpc9v41488rmzvfhdmzzkn";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
buildInputs =
|
||||
[ cmake boost libunwind mariadb libmemcached pcre libevent gd curl
|
||||
libxml2 icu flex bison openssl zlib php expat libcap oniguruma
|
||||
libdwarf libmcrypt tbb gperftools bzip2 openldap readline
|
||||
libelf uwimap binutils cyrus_sasl pam glog libpng libxslt ocaml
|
||||
];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
dontUseCmakeBuildDir = true;
|
||||
dontUseCmakeConfigure = true;
|
||||
NIX_LDFLAGS = "-lpam -L${pam}/lib";
|
||||
USE_HHVM=1;
|
||||
MYSQL_INCLUDE_DIR="${mariadb}/include/mysql";
|
||||
MYSQL_DIR=mariadb;
|
||||
|
||||
patchPhase = ''
|
||||
substituteInPlace hphp/util/generate-buildinfo.sh \
|
||||
--replace /bin/bash ${stdenv.shell}
|
||||
'';
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin $out/lib
|
||||
mv hphp/hhvm/hhvm $out/bin
|
||||
mv hphp/hack/bin/hh_server $out/bin
|
||||
mv hphp/hack/bin/hh_client $out/bin
|
||||
mv hphp/hack/hhi $out/lib/hack-hhi
|
||||
|
||||
cat > $out/bin/hhvm-hhi-copy <<EOF
|
||||
#!${stdenv.shell}
|
||||
cp -R $out/lib/hack-hhi \$1
|
||||
EOF
|
||||
chmod +x $out/bin/hhvm-hhi-copy
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "High-performance JIT compiler for PHP/Hack";
|
||||
homepage = "http://hhvm.com";
|
||||
license = "PHP/Zend";
|
||||
platforms = [ "x86_64-linux" ];
|
||||
maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
|
||||
};
|
||||
}
|
@ -1,23 +1,25 @@
|
||||
{ cabal, annotatedWlPprint, ansiTerminal, ansiWlPprint, binary
|
||||
, boehmgc, Cabal, cheapskate, deepseq, filepath, gmp, happy
|
||||
, haskeline, languageJava, lens, libffi, llvmGeneral
|
||||
, llvmGeneralPure, mtl, network, parsers, split, text, time
|
||||
, transformers, trifecta, unorderedContainers, utf8String, vector
|
||||
, vectorBinaryInstances, xml, zlib
|
||||
, blazeHtml, blazeMarkup, boehmgc, Cabal, cheapskate, deepseq
|
||||
, filepath, gmp, happy, haskeline, languageJava, lens, libffi
|
||||
, llvmGeneral, llvmGeneralPure, mtl, network, optparseApplicative
|
||||
, parsers, split, text, time, transformers, trifecta
|
||||
, unorderedContainers, utf8String, vector, vectorBinaryInstances
|
||||
, xml, zlib
|
||||
}:
|
||||
|
||||
cabal.mkDerivation (self: {
|
||||
pname = "idris";
|
||||
version = "0.9.12";
|
||||
sha256 = "151h9qkx7yw24q0b60r78hki1y8m6sxmfars7wywnbzk3kalqb6x";
|
||||
version = "0.9.13.1";
|
||||
sha256 = "09528c2zxriw3l8c7dd2k5db9j1qmqhs6nbqwc7dkskzqv9snz7n";
|
||||
isLibrary = true;
|
||||
isExecutable = true;
|
||||
buildDepends = [
|
||||
annotatedWlPprint ansiTerminal ansiWlPprint binary Cabal cheapskate
|
||||
deepseq filepath haskeline languageJava lens libffi llvmGeneral
|
||||
llvmGeneralPure mtl network parsers split text time transformers
|
||||
trifecta unorderedContainers utf8String vector
|
||||
vectorBinaryInstances xml zlib
|
||||
annotatedWlPprint ansiTerminal ansiWlPprint binary blazeHtml
|
||||
blazeMarkup Cabal cheapskate deepseq filepath haskeline
|
||||
languageJava lens libffi llvmGeneral llvmGeneralPure mtl network
|
||||
optparseApplicative parsers split text time transformers trifecta
|
||||
unorderedContainers utf8String vector vectorBinaryInstances xml
|
||||
zlib
|
||||
];
|
||||
buildTools = [ happy ];
|
||||
extraLibraries = [ boehmgc gmp ];
|
||||
|
@ -32,6 +32,5 @@ stdenv.mkDerivation rec {
|
||||
(textClosure localDefs [allBuild doForceShare doPropagate]);
|
||||
meta = {
|
||||
description = "Qi - next generation on top of Common Lisp";
|
||||
inherit src;
|
||||
};
|
||||
}
|
||||
|
@ -1,13 +1,13 @@
|
||||
{ stdenv, fetchurl, unzip, ant, jdk, makeWrapper }:
|
||||
|
||||
let version = "1.5.1"; in
|
||||
let version = "1.6.0"; in
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "clojure-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://repo1.maven.org/maven2/org/clojure/clojure/${version}/clojure-${version}.zip";
|
||||
sha256 = "1qgiji6ddvv40khp3qb3xfz09g7p4nnsh3pywqglb9f16v534yzy";
|
||||
sha256 = "0yv67gackrzlwn9f8cnpw14y2hwspklxhy1450rl71vdrqjahlwq";
|
||||
};
|
||||
|
||||
buildInputs = [ unzip ant jdk makeWrapper ];
|
||||
@ -43,5 +43,6 @@ stdenv.mkDerivation {
|
||||
offers a software transactional memory system and reactive Agent
|
||||
system that ensure clean, correct, multithreaded designs.
|
||||
'';
|
||||
maintainers = with stdenv.lib.maintainers; [ the-kenny ];
|
||||
};
|
||||
}
|
||||
|
@ -1,14 +1,14 @@
|
||||
{ stdenv, fetchurl, erlang, rebar, makeWrapper, coreutils }:
|
||||
|
||||
let
|
||||
version = "0.13.2";
|
||||
version = "0.13.3";
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
name = "elixir-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/elixir-lang/elixir/archive/v${version}.tar.gz";
|
||||
sha256 = "13mflf35lj2vbv32s5n982x7k5k55dsn9mx9rf3vkqgfsy7zx4ds";
|
||||
sha256 = "17nb8qfyjc67g62x10l2gq0z1501xa4wry906br0w2rm8bf4j8rf";
|
||||
};
|
||||
|
||||
buildInputs = [ erlang rebar makeWrapper ];
|
||||
|
@ -8,11 +8,11 @@ with stdenv.lib;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "erlang-" + version;
|
||||
version = "R16B02";
|
||||
version = "R16B03-1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://www.erlang.org/download/otp_src_${version}.tar.gz";
|
||||
sha256 = "119gnf3jfd98hpxxqs8vnzrc81myv07y302b99alalqqz0fsvf3a";
|
||||
sha256 = "1rvyfh22g1fir1i4xn7v2md868wcmhajwhfsq97v7kn5kd2m7khp";
|
||||
};
|
||||
|
||||
buildInputs =
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user