Merge 'master' into staging and re-revert merge
... from staging to master, reverted temporarily in aa9a04883e
.
This commit is contained in:
commit
6b27ceb006
@ -57,11 +57,11 @@ stdenv.mkDerivation {
|
||||
outputFile = "./languages-frameworks/haskell.xml";
|
||||
}
|
||||
+ toDocbook {
|
||||
inputFile = ./../pkgs/development/idris-modules/README.md;
|
||||
inputFile = ../pkgs/development/idris-modules/README.md;
|
||||
outputFile = "languages-frameworks/idris.xml";
|
||||
}
|
||||
+ toDocbook {
|
||||
inputFile = ./../pkgs/development/r-modules/README.md;
|
||||
inputFile = ../pkgs/development/r-modules/README.md;
|
||||
outputFile = "languages-frameworks/r.xml";
|
||||
}
|
||||
+ ''
|
||||
|
@ -309,6 +309,7 @@
|
||||
pxc = "Patrick Callahan <patrick.callahan@latitudeengineering.com>";
|
||||
qknight = "Joachim Schiele <js@lastlog.de>";
|
||||
ragge = "Ragnar Dahlen <r.dahlen@gmail.com>";
|
||||
ralith = "Benjamin Saunders <ben.e.saunders@gmail.com>";
|
||||
rardiol = "Ricardo Ardissone <ricardo.ardissone@gmail.com>";
|
||||
rasendubi = "Alexey Shmalko <rasen.dubi@gmail.com>";
|
||||
raskin = "Michael Raskin <7c6f434c@mail.ru>";
|
||||
|
@ -203,13 +203,21 @@ rec {
|
||||
*/
|
||||
escape = list: replaceChars list (map (c: "\\${c}") list);
|
||||
|
||||
/* Escape all characters that have special meaning in the Bourne shell.
|
||||
/* Quote string to be used safely within the Bourne shell.
|
||||
|
||||
Example:
|
||||
escapeShellArg "so([<>])me"
|
||||
=> "so\\(\\[\\<\\>\\]\\)me"
|
||||
escapeShellArg "esc'ape\nme"
|
||||
=> "'esc'\\''ape\nme'"
|
||||
*/
|
||||
escapeShellArg = lib.escape (stringToCharacters "\\ ';$`()|<>\t*[]");
|
||||
escapeShellArg = arg: "'${replaceStrings ["'"] ["'\\''"] (toString arg)}'";
|
||||
|
||||
/* Quote all arguments to be safely passed to the Bourne shell.
|
||||
|
||||
Example:
|
||||
escapeShellArgs ["one" "two three" "four'five"]
|
||||
=> "'one' 'two three' 'four'\\''five'"
|
||||
*/
|
||||
escapeShellArgs = concatMapStringsSep " " escapeShellArg;
|
||||
|
||||
/* Obsolete - use replaceStrings instead. */
|
||||
replaceChars = builtins.replaceStrings or (
|
||||
|
@ -1,6 +1,6 @@
|
||||
{ nixpkgs }:
|
||||
|
||||
with import ./../.. { };
|
||||
with import ../.. { };
|
||||
with lib;
|
||||
|
||||
stdenv.mkDerivation {
|
||||
|
@ -100,6 +100,10 @@ rec {
|
||||
in if isDerivation res then res else toDerivation res;
|
||||
};
|
||||
|
||||
shellPackage = package // {
|
||||
check = x: (package.check x) && (hasAttr "shellPath" x);
|
||||
};
|
||||
|
||||
path = mkOptionType {
|
||||
name = "path";
|
||||
# Hacky: there is no ‘isPath’ primop.
|
||||
|
@ -8,4 +8,10 @@ rec {
|
||||
replaceChars ["/" "-" " "] ["-" "\\x2d" "\\x20"]
|
||||
(if hasPrefix "/" s then substring 1 (stringLength s) s else s);
|
||||
|
||||
# Returns a system path for a given shell package
|
||||
toShellPath = shell:
|
||||
if types.shellPackage.check shell then
|
||||
"/run/current-system/sw${shell.shellPath}"
|
||||
else
|
||||
shell;
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
# This module defines a global environment configuration and
|
||||
# a common configuration for all shells.
|
||||
|
||||
{ config, lib, pkgs, ... }:
|
||||
{ config, lib, utils, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
@ -135,13 +135,13 @@ in
|
||||
|
||||
environment.shells = mkOption {
|
||||
default = [];
|
||||
example = [ "/run/current-system/sw/bin/zsh" ];
|
||||
example = literalExample "[ pkgs.bashInteractive pkgs.zsh ]";
|
||||
description = ''
|
||||
A list of permissible login shells for user accounts.
|
||||
No need to mention <literal>/bin/sh</literal>
|
||||
here, it is placed into this list implicitly.
|
||||
'';
|
||||
type = types.listOf types.path;
|
||||
type = types.listOf (types.either types.shellPackage types.path);
|
||||
};
|
||||
|
||||
};
|
||||
@ -158,7 +158,7 @@ in
|
||||
|
||||
environment.etc."shells".text =
|
||||
''
|
||||
${concatStringsSep "\n" cfg.shells}
|
||||
${concatStringsSep "\n" (map utils.toShellPath cfg.shells)}
|
||||
/bin/sh
|
||||
'';
|
||||
|
||||
|
@ -1,9 +1,8 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
{ config, lib, utils, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
|
||||
ids = config.ids;
|
||||
cfg = config.users;
|
||||
|
||||
@ -103,7 +102,7 @@ let
|
||||
};
|
||||
|
||||
home = mkOption {
|
||||
type = types.str;
|
||||
type = types.path;
|
||||
default = "/var/empty";
|
||||
description = "The user's home directory.";
|
||||
};
|
||||
@ -118,8 +117,10 @@ let
|
||||
};
|
||||
|
||||
shell = mkOption {
|
||||
type = types.str;
|
||||
default = "/run/current-system/sw/bin/nologin";
|
||||
type = types.either types.shellPackage types.path;
|
||||
default = pkgs.nologin;
|
||||
defaultText = "pkgs.nologin";
|
||||
example = literalExample "pkgs.bashInteractive";
|
||||
description = "The path to the user's shell.";
|
||||
};
|
||||
|
||||
@ -359,11 +360,12 @@ let
|
||||
|
||||
spec = pkgs.writeText "users-groups.json" (builtins.toJSON {
|
||||
inherit (cfg) mutableUsers;
|
||||
users = mapAttrsToList (n: u:
|
||||
users = mapAttrsToList (_: u:
|
||||
{ inherit (u)
|
||||
name uid group description home shell createHome isSystemUser
|
||||
name uid group description home createHome isSystemUser
|
||||
password passwordFile hashedPassword
|
||||
initialPassword initialHashedPassword;
|
||||
shell = utils.toShellPath u.shell;
|
||||
}) cfg.users;
|
||||
groups = mapAttrsToList (n: g:
|
||||
{ inherit (g) name gid;
|
||||
@ -373,6 +375,12 @@ let
|
||||
}) cfg.groups;
|
||||
});
|
||||
|
||||
systemShells =
|
||||
let
|
||||
shells = mapAttrsToList (_: u: u.shell) cfg.users;
|
||||
in
|
||||
filter types.shellPackage.check shells;
|
||||
|
||||
in {
|
||||
|
||||
###### interface
|
||||
@ -477,6 +485,9 @@ in {
|
||||
};
|
||||
};
|
||||
|
||||
# Install all the user shells
|
||||
environment.systemPackages = systemShells;
|
||||
|
||||
users.groups = {
|
||||
root.gid = ids.gids.root;
|
||||
wheel.gid = ids.gids.wheel;
|
||||
|
@ -91,12 +91,10 @@ ln -s /run $mountPoint/var/run
|
||||
rm -f $mountPoint/etc/{resolv.conf,hosts}
|
||||
cp -Lf /etc/resolv.conf /etc/hosts $mountPoint/etc/
|
||||
|
||||
if [ -e "$SSL_CERT_FILE" ]; then
|
||||
cp -Lf "$SSL_CERT_FILE" "$mountPoint/tmp/ca-cert.crt"
|
||||
export SSL_CERT_FILE=/tmp/ca-cert.crt
|
||||
# For Nix 1.7
|
||||
export CURL_CA_BUNDLE=/tmp/ca-cert.crt
|
||||
fi
|
||||
cp -Lf "@cacert@" "$mountPoint/tmp/ca-cert.crt"
|
||||
export SSL_CERT_FILE=/tmp/ca-cert.crt
|
||||
# For Nix 1.7
|
||||
export CURL_CA_BUNDLE=/tmp/ca-cert.crt
|
||||
|
||||
if [ -n "$runChroot" ]; then
|
||||
if ! [ -L $mountPoint/nix/var/nix/profiles/system ]; then
|
||||
|
@ -23,6 +23,7 @@ let
|
||||
|
||||
inherit (pkgs) perl pathsFromGraph;
|
||||
nix = config.nix.package.out;
|
||||
cacert = "${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt";
|
||||
|
||||
nixClosure = pkgs.runCommand "closure"
|
||||
{ exportReferencesGraph = ["refs" config.nix.package.out]; }
|
||||
|
@ -268,6 +268,8 @@
|
||||
nzbget = 245;
|
||||
mosquitto = 246;
|
||||
toxvpn = 247;
|
||||
squeezelite = 248;
|
||||
turnserver = 249;
|
||||
|
||||
# When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399!
|
||||
|
||||
@ -506,6 +508,8 @@
|
||||
nzbget = 245;
|
||||
mosquitto = 246;
|
||||
#toxvpn = 247; # unused
|
||||
#squeezelite = 248; #unused
|
||||
turnserver = 249;
|
||||
|
||||
# When adding a gid, make sure it doesn't match an existing
|
||||
# uid. Users and groups with the same name should have equal
|
||||
|
@ -110,6 +110,7 @@
|
||||
./services/audio/liquidsoap.nix
|
||||
./services/audio/mpd.nix
|
||||
./services/audio/mopidy.nix
|
||||
./services/audio/squeezelite.nix
|
||||
./services/backup/almir.nix
|
||||
./services/backup/bacula.nix
|
||||
./services/backup/crashplan.nix
|
||||
@ -316,6 +317,7 @@
|
||||
./services/networking/cntlm.nix
|
||||
./services/networking/connman.nix
|
||||
./services/networking/consul.nix
|
||||
./services/networking/coturn.nix
|
||||
./services/networking/ddclient.nix
|
||||
./services/networking/dhcpcd.nix
|
||||
./services/networking/dhcpd.nix
|
||||
@ -413,6 +415,7 @@
|
||||
./services/networking/wicd.nix
|
||||
./services/networking/wpa_supplicant.nix
|
||||
./services/networking/xinetd.nix
|
||||
./services/networking/xl2tpd.nix
|
||||
./services/networking/zerobin.nix
|
||||
./services/networking/zerotierone.nix
|
||||
./services/networking/znc.nix
|
||||
@ -459,6 +462,7 @@
|
||||
./services/web-servers/lighttpd/cgit.nix
|
||||
./services/web-servers/lighttpd/default.nix
|
||||
./services/web-servers/lighttpd/gitweb.nix
|
||||
./services/web-servers/lighttpd/inginious.nix
|
||||
./services/web-servers/nginx/default.nix
|
||||
./services/web-servers/phpfpm.nix
|
||||
./services/web-servers/shellinabox.nix
|
||||
|
@ -200,7 +200,7 @@ in
|
||||
# Configuration for readline in bash.
|
||||
environment.etc."inputrc".source = ./inputrc;
|
||||
|
||||
users.defaultUserShell = mkDefault "/run/current-system/sw/bin/bash";
|
||||
users.defaultUserShell = mkDefault pkgs.bashInteractive;
|
||||
|
||||
environment.pathsToLink = optionals cfg.enableCompletion [
|
||||
"/etc/bash_completion.d"
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Configuration for the pwdutils suite of tools: passwd, useradd, etc.
|
||||
|
||||
{ config, lib, pkgs, ... }:
|
||||
{ config, lib, utils, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
@ -43,13 +43,13 @@ in
|
||||
users.defaultUserShell = lib.mkOption {
|
||||
description = ''
|
||||
This option defines the default shell assigned to user
|
||||
accounts. This must not be a store path, since the path is
|
||||
accounts. This can be either a full system path or a shell package.
|
||||
|
||||
This must not be a store path, since the path is
|
||||
used outside the store (in particular in /etc/passwd).
|
||||
Rather, it should be the path of a symlink that points to the
|
||||
actual shell in the Nix store.
|
||||
'';
|
||||
example = "/run/current-system/sw/bin/zsh";
|
||||
type = types.path;
|
||||
example = literalExample "pkgs.zsh";
|
||||
type = types.either types.path types.shellPackage;
|
||||
};
|
||||
|
||||
};
|
||||
@ -60,7 +60,9 @@ in
|
||||
config = {
|
||||
|
||||
environment.systemPackages =
|
||||
lib.optional config.users.mutableUsers pkgs.shadow;
|
||||
lib.optional config.users.mutableUsers pkgs.shadow ++
|
||||
lib.optional (types.shellPackage.check config.users.defaultUserShell)
|
||||
config.users.defaultUserShell;
|
||||
|
||||
environment.etc =
|
||||
[ { # /etc/login.defs: global configuration for pwdutils. You
|
||||
@ -74,7 +76,7 @@ in
|
||||
''
|
||||
GROUP=100
|
||||
HOME=/home
|
||||
SHELL=${config.users.defaultUserShell}
|
||||
SHELL=${utils.toShellPath config.users.defaultUserShell}
|
||||
'';
|
||||
target = "default/useradd";
|
||||
}
|
||||
|
@ -187,7 +187,7 @@ in
|
||||
script = ''
|
||||
cd '${cpath}'
|
||||
set +e
|
||||
simp_le ${concatMapStringsSep " " (arg: escapeShellArg (toString arg)) cmdline}
|
||||
simp_le ${escapeShellArgs cmdline}
|
||||
EXITCODE=$?
|
||||
set -e
|
||||
echo "$EXITCODE" > /tmp/lastExitCode
|
||||
|
67
nixos/modules/services/audio/squeezelite.nix
Normal file
67
nixos/modules/services/audio/squeezelite.nix
Normal file
@ -0,0 +1,67 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
|
||||
uid = config.ids.uids.squeezelite;
|
||||
cfg = config.services.squeezelite;
|
||||
|
||||
in {
|
||||
|
||||
###### interface
|
||||
|
||||
options = {
|
||||
|
||||
services.squeezelite= {
|
||||
|
||||
enable = mkEnableOption "Squeezelite, a software Squeezebox emulator";
|
||||
|
||||
dataDir = mkOption {
|
||||
default = "/var/lib/squeezelite";
|
||||
type = types.str;
|
||||
description = ''
|
||||
The directory where Squeezelite stores its name file.
|
||||
'';
|
||||
};
|
||||
|
||||
extraArguments = mkOption {
|
||||
default = "";
|
||||
type = types.str;
|
||||
description = ''
|
||||
Additional command line arguments to pass to Squeezelite.
|
||||
'';
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
|
||||
###### implementation
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
|
||||
systemd.services.squeezelite= {
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "network.target" "sound.target" ];
|
||||
description = "Software Squeezebox emulator";
|
||||
preStart = "mkdir -p ${cfg.dataDir} && chown -R squeezelite ${cfg.dataDir}";
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.squeezelite}/bin/squeezelite -N ${cfg.dataDir}/player-name ${cfg.extraArguments}";
|
||||
User = "squeezelite";
|
||||
PermissionsStartOnly = true;
|
||||
};
|
||||
};
|
||||
|
||||
users.extraUsers.squeezelite= {
|
||||
inherit uid;
|
||||
group = "nogroup";
|
||||
extraGroups = [ "audio" ];
|
||||
description = "Squeezelite user";
|
||||
home = "${cfg.dataDir}";
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
}
|
@ -101,7 +101,7 @@ in {
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.opendkim}/bin/opendkim ${concatMapStringsSep " " escapeShellArg args}";
|
||||
ExecStart = "${pkgs.opendkim}/bin/opendkim ${escapeShellArgs args}";
|
||||
User = cfg.user;
|
||||
Group = cfg.group;
|
||||
RuntimeDirectory = optional (cfg.socket == defaultSock) "opendkim";
|
||||
|
@ -5,17 +5,31 @@ with lib;
|
||||
let
|
||||
cfg = config.services.matrix-synapse;
|
||||
logConfigFile = pkgs.writeText "log_config.yaml" cfg.logConfig;
|
||||
mkResource = r: ''{names: ${builtins.toJSON r.names}, compress: ${if r.compress then "true" else "false"}}'';
|
||||
mkListener = l: ''{port: ${toString l.port}, bind_address: "${l.bind_address}", type: ${l.type}, tls: ${if l.tls then "true" else "false"}, x_forwarded: ${if l.x_forwarded then "true" else "false"}, resources: [${concatStringsSep "," (map mkResource l.resources)}]}'';
|
||||
configFile = pkgs.writeText "homeserver.yaml" ''
|
||||
tls_certificate_path: "${cfg.tls_certificate_path}"
|
||||
${optionalString (cfg.tls_private_key_path != null) ''
|
||||
tls_private_key_path: "${cfg.tls_private_key_path}"
|
||||
''}
|
||||
tls_dh_params_path: "${cfg.tls_dh_params_path}"
|
||||
no_tls: ${if cfg.no_tls then "true" else "false"}
|
||||
${optionalString (cfg.bind_port != null) ''
|
||||
bind_port: ${toString cfg.bind_port}
|
||||
''}
|
||||
${optionalString (cfg.unsecure_port != null) ''
|
||||
unsecure_port: ${toString cfg.unsecure_port}
|
||||
''}
|
||||
${optionalString (cfg.bind_host != null) ''
|
||||
bind_host: "${cfg.bind_host}"
|
||||
''}
|
||||
server_name: "${cfg.server_name}"
|
||||
pid_file: "/var/run/matrix-synapse.pid"
|
||||
web_client: ${if cfg.web_client then "true" else "false"}
|
||||
${optionalString (cfg.public_baseurl != null) ''
|
||||
public_baseurl: "${cfg.public_baseurl}"
|
||||
''}
|
||||
listeners: [${concatStringsSep "," (map mkListener cfg.listeners)}]
|
||||
database: {
|
||||
name: "${cfg.database_type}",
|
||||
args: {
|
||||
@ -24,21 +38,41 @@ database: {
|
||||
)}
|
||||
}
|
||||
}
|
||||
event_cache_size: "${cfg.event_cache_size}"
|
||||
verbose: ${cfg.verbose}
|
||||
log_file: "/var/log/matrix-synapse/homeserver.log"
|
||||
log_config: "${logConfigFile}"
|
||||
rc_messages_per_second: ${cfg.rc_messages_per_second}
|
||||
rc_message_burst_count: ${cfg.rc_message_burst_count}
|
||||
federation_rc_window_size: ${cfg.federation_rc_window_size}
|
||||
federation_rc_sleep_limit: ${cfg.federation_rc_sleep_limit}
|
||||
federation_rc_sleep_delay: ${cfg.federation_rc_sleep_delay}
|
||||
federation_rc_reject_limit: ${cfg.federation_rc_reject_limit}
|
||||
federation_rc_concurrent: ${cfg.federation_rc_concurrent}
|
||||
media_store_path: "/var/lib/matrix-synapse/media"
|
||||
uploads_path: "/var/lib/matrix-synapse/uploads"
|
||||
max_upload_size: "${cfg.max_upload_size}"
|
||||
max_image_pixels: "${cfg.max_image_pixels}"
|
||||
dynamic_thumbnails: ${if cfg.dynamic_thumbnails then "true" else "false"}
|
||||
url_preview_enabled: False
|
||||
recaptcha_private_key: "${cfg.recaptcha_private_key}"
|
||||
recaptcha_public_key: "${cfg.recaptcha_public_key}"
|
||||
enable_registration_captcha: ${if cfg.enable_registration_captcha then "true" else "false"}
|
||||
turn_uris: ${if (length cfg.turn_uris) == 0 then "[]" else ("\n" + (concatStringsSep "\n" (map (s: "- " + s) cfg.turn_uris)))}
|
||||
turn_uris: ${builtins.toJSON cfg.turn_uris}
|
||||
turn_shared_secret: "${cfg.turn_shared_secret}"
|
||||
enable_registration: ${if cfg.enable_registration then "true" else "false"}
|
||||
${optionalString (cfg.registration_shared_secret != "") ''
|
||||
${optionalString (cfg.registration_shared_secret != null) ''
|
||||
registration_shared_secret: "${cfg.registration_shared_secret}"
|
||||
''}
|
||||
recaptcha_siteverify_api: "https://www.google.com/recaptcha/api/siteverify"
|
||||
turn_user_lifetime: "${cfg.turn_user_lifetime}"
|
||||
user_creation_max_duration: ${cfg.user_creation_max_duration}
|
||||
bcrypt_rounds: ${cfg.bcrypt_rounds}
|
||||
allow_guest_access: {if cfg.allow_guest_access then "true" else "false"}
|
||||
enable_metrics: ${if cfg.enable_metrics then "true" else "false"}
|
||||
report_stats: ${if cfg.report_stats then "true" else "false"}
|
||||
signing_key_path: "/var/lib/matrix-synapse/homeserver.signing.key"
|
||||
key_refresh_interval: "${cfg.key_refresh_interval}"
|
||||
perspectives:
|
||||
servers: {
|
||||
${concatStringsSep "},\n" (mapAttrsToList (n: v: ''
|
||||
@ -52,6 +86,8 @@ perspectives:
|
||||
'') cfg.servers)}
|
||||
}
|
||||
}
|
||||
app_service_config_files: ${builtins.toJSON cfg.app_service_config_files}
|
||||
|
||||
${cfg.extraConfig}
|
||||
'';
|
||||
in {
|
||||
@ -73,53 +109,65 @@ in {
|
||||
Don't bind to the https port
|
||||
'';
|
||||
};
|
||||
tls_certificate_path = mkOption {
|
||||
type = types.path;
|
||||
default = "/var/lib/matrix-synapse/homeserver.tls.crt";
|
||||
description = ''
|
||||
PEM encoded X509 certificate for TLS
|
||||
'';
|
||||
};
|
||||
tls_private_key_path = mkOption {
|
||||
type = types.path;
|
||||
default = "/var/lib/matrix-synapse/homeserver.tls.key";
|
||||
description = ''
|
||||
PEM encoded private key for TLS
|
||||
'';
|
||||
};
|
||||
tls_dh_params_path = mkOption {
|
||||
type = types.path;
|
||||
default = "/var/lib/matrix-synapse/homeserver.tls.dh";
|
||||
description = ''
|
||||
PEM dh parameters for ephemeral keys
|
||||
'';
|
||||
};
|
||||
bind_port = mkOption {
|
||||
type = types.int;
|
||||
default = 8448;
|
||||
type = types.nullOr types.int;
|
||||
default = null;
|
||||
example = 8448;
|
||||
description = ''
|
||||
DEPRECATED: Use listeners instead.
|
||||
The port to listen for HTTPS requests on.
|
||||
For when matrix traffic is sent directly to synapse.
|
||||
'';
|
||||
};
|
||||
unsecure_port = mkOption {
|
||||
type = types.int;
|
||||
default = 8008;
|
||||
type = types.nullOr types.int;
|
||||
default = null;
|
||||
example = 8008;
|
||||
description = ''
|
||||
DEPRECATED: Use listeners instead.
|
||||
The port to listen for HTTP requests on.
|
||||
For when matrix traffic passes through loadbalancer that unwraps TLS.
|
||||
'';
|
||||
};
|
||||
bind_host = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
description = ''
|
||||
DEPRECATED: Use listeners instead.
|
||||
Local interface to listen on.
|
||||
The empty string will cause synapse to listen on all interfaces.
|
||||
'';
|
||||
};
|
||||
tls_certificate_path = mkOption {
|
||||
type = types.str;
|
||||
default = "/var/lib/matrix-synapse/homeserver.tls.crt";
|
||||
description = ''
|
||||
PEM encoded X509 certificate for TLS.
|
||||
You can replace the self-signed certificate that synapse
|
||||
autogenerates on launch with your own SSL certificate + key pair
|
||||
if you like. Any required intermediary certificates can be
|
||||
appended after the primary certificate in hierarchical order.
|
||||
'';
|
||||
};
|
||||
tls_private_key_path = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = "/var/lib/matrix-synapse/homeserver.tls.key";
|
||||
example = null;
|
||||
description = ''
|
||||
PEM encoded private key for TLS. Specify null if synapse is not
|
||||
speaking TLS directly.
|
||||
'';
|
||||
};
|
||||
tls_dh_params_path = mkOption {
|
||||
type = types.str;
|
||||
default = "/var/lib/matrix-synapse/homeserver.tls.dh";
|
||||
description = ''
|
||||
PEM dh parameters for ephemeral keys
|
||||
'';
|
||||
};
|
||||
server_name = mkOption {
|
||||
type = types.str;
|
||||
example = "example.com";
|
||||
description = ''
|
||||
The domain name of the server, with optional explicit port.
|
||||
This is used by remote servers to connect to this server,
|
||||
@ -134,6 +182,145 @@ in {
|
||||
Whether to serve a web client from the HTTP/HTTPS root resource.
|
||||
'';
|
||||
};
|
||||
public_baseurl = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
example = "https://example.com:8448/";
|
||||
description = ''
|
||||
The public-facing base URL for the client API (not including _matrix/...)
|
||||
'';
|
||||
};
|
||||
listeners = mkOption {
|
||||
type = types.listOf (types.submodule {
|
||||
options = {
|
||||
port = mkOption {
|
||||
type = types.int;
|
||||
example = 8448;
|
||||
description = ''
|
||||
The port to listen for HTTP(S) requests on.
|
||||
'';
|
||||
};
|
||||
bind_address = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
example = "203.0.113.42";
|
||||
description = ''
|
||||
Local interface to listen on.
|
||||
The empty string will cause synapse to listen on all interfaces.
|
||||
'';
|
||||
};
|
||||
type = mkOption {
|
||||
type = types.str;
|
||||
default = "http";
|
||||
description = ''
|
||||
Type of listener.
|
||||
'';
|
||||
};
|
||||
tls = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
Whether to listen for HTTPS connections rather than HTTP.
|
||||
'';
|
||||
};
|
||||
x_forwarded = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Use the X-Forwarded-For (XFF) header as the client IP and not the
|
||||
actual client IP.
|
||||
'';
|
||||
};
|
||||
resources = mkOption {
|
||||
type = types.listOf (types.submodule {
|
||||
options = {
|
||||
names = mkOption {
|
||||
type = types.listOf types.str;
|
||||
description = ''
|
||||
List of resources to host on this listener.
|
||||
'';
|
||||
example = ["client" "webclient" "federation"];
|
||||
};
|
||||
compress = mkOption {
|
||||
type = types.bool;
|
||||
description = ''
|
||||
Should synapse compress HTTP responses to clients that support it?
|
||||
This should be disabled if running synapse behind a load balancer
|
||||
that can do automatic compression.
|
||||
'';
|
||||
};
|
||||
};
|
||||
});
|
||||
description = ''
|
||||
List of HTTP resources to serve on this listener.
|
||||
'';
|
||||
};
|
||||
};
|
||||
});
|
||||
default = [{
|
||||
port = 8448;
|
||||
bind_address = "";
|
||||
type = "http";
|
||||
tls = true;
|
||||
x_forwarded = false;
|
||||
resources = [
|
||||
{ names = ["client" "webclient"]; compress = true; }
|
||||
{ names = ["federation"]; compress = false; }
|
||||
];
|
||||
}];
|
||||
description = ''
|
||||
List of ports that Synapse should listen on, their purpose and their configuration.
|
||||
'';
|
||||
};
|
||||
verbose = mkOption {
|
||||
type = types.str;
|
||||
default = "0";
|
||||
description = "Logging verbosity level.";
|
||||
};
|
||||
rc_messages_per_second = mkOption {
|
||||
type = types.str;
|
||||
default = "0.2";
|
||||
description = "Number of messages a client can send per second";
|
||||
};
|
||||
rc_message_burst_count = mkOption {
|
||||
type = types.str;
|
||||
default = "10.0";
|
||||
description = "Number of message a client can send before being throttled";
|
||||
};
|
||||
federation_rc_window_size = mkOption {
|
||||
type = types.str;
|
||||
default = "1000";
|
||||
description = "The federation window size in milliseconds";
|
||||
};
|
||||
federation_rc_sleep_limit = mkOption {
|
||||
type = types.str;
|
||||
default = "10";
|
||||
description = ''
|
||||
The number of federation requests from a single server in a window
|
||||
before the server will delay processing the request.
|
||||
'';
|
||||
};
|
||||
federation_rc_sleep_delay = mkOption {
|
||||
type = types.str;
|
||||
default = "500";
|
||||
description = ''
|
||||
The duration in milliseconds to delay processing events from
|
||||
remote servers by if they go over the sleep limit.
|
||||
'';
|
||||
};
|
||||
federation_rc_reject_limit = mkOption {
|
||||
type = types.str;
|
||||
default = "50";
|
||||
description = ''
|
||||
The maximum number of concurrent federation requests allowed
|
||||
from a single server
|
||||
'';
|
||||
};
|
||||
federation_rc_concurrent = mkOption {
|
||||
type = types.str;
|
||||
default = "3";
|
||||
description = "The number of federation requests to concurrently process from a single server";
|
||||
};
|
||||
database_type = mkOption {
|
||||
type = types.enum [ "sqlite3" "psycopg2" ];
|
||||
default = "sqlite3";
|
||||
@ -150,6 +337,11 @@ in {
|
||||
Arguments to pass to the engine.
|
||||
'';
|
||||
};
|
||||
event_cache_size = mkOption {
|
||||
type = types.str;
|
||||
default = "10K";
|
||||
description = "Number of events to cache in memory.";
|
||||
};
|
||||
recaptcha_private_key = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
@ -187,6 +379,11 @@ in {
|
||||
The shared secret used to compute passwords for the TURN server
|
||||
'';
|
||||
};
|
||||
turn_user_lifetime = mkOption {
|
||||
type = types.str;
|
||||
default = "1h";
|
||||
description = "How long generated TURN credentials last";
|
||||
};
|
||||
enable_registration = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
@ -195,8 +392,8 @@ in {
|
||||
'';
|
||||
};
|
||||
registration_shared_secret = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
description = ''
|
||||
If set, allows registration by anyone who also has the shared
|
||||
secret, even if registration is otherwise disabled.
|
||||
@ -216,7 +413,7 @@ in {
|
||||
'';
|
||||
};
|
||||
servers = mkOption {
|
||||
type = types.attrs;
|
||||
type = types.attrsOf (types.attrsOf types.str);
|
||||
default = {
|
||||
"matrix.org" = {
|
||||
"ed25519:auto" = "Noi6WqcDj0QmPxCNQqgezwTlBKrfqehY1u2FyWP9uYw";
|
||||
@ -226,6 +423,69 @@ in {
|
||||
The trusted servers to download signing keys from.
|
||||
'';
|
||||
};
|
||||
max_upload_size = mkOption {
|
||||
type = types.str;
|
||||
default = "10M";
|
||||
description = "The largest allowed upload size in bytes";
|
||||
};
|
||||
max_image_pixels = mkOption {
|
||||
type = types.str;
|
||||
default = "32M";
|
||||
description = "Maximum number of pixels that will be thumbnailed";
|
||||
};
|
||||
dynamic_thumbnails = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Whether to generate new thumbnails on the fly to precisely match
|
||||
the resolution requested by the client. If true then whenever
|
||||
a new resolution is requested by the client the server will
|
||||
generate a new thumbnail. If false the server will pick a thumbnail
|
||||
from a precalculated list.
|
||||
'';
|
||||
};
|
||||
user_creation_max_duration = mkOption {
|
||||
type = types.str;
|
||||
default = "1209600000";
|
||||
description = ''
|
||||
Sets the expiry for the short term user creation in
|
||||
milliseconds. The default value is two weeks.
|
||||
'';
|
||||
};
|
||||
bcrypt_rounds = mkOption {
|
||||
type = types.str;
|
||||
default = "12";
|
||||
description = ''
|
||||
Set the number of bcrypt rounds used to generate password hash.
|
||||
Larger numbers increase the work factor needed to generate the hash.
|
||||
'';
|
||||
};
|
||||
allow_guest_access = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Allows users to register as guests without a password/email/etc, and
|
||||
participate in rooms hosted on this server which have been made
|
||||
accessible to anonymous users.
|
||||
'';
|
||||
};
|
||||
key_refresh_interval = mkOption {
|
||||
type = types.str;
|
||||
default = "1d";
|
||||
description = ''
|
||||
How long key response published by this server is valid for.
|
||||
Used to set the valid_until_ts in /key/v2 APIs.
|
||||
Determines how quickly servers will query to check which keys
|
||||
are still valid.
|
||||
'';
|
||||
};
|
||||
app_service_config_files = mkOption {
|
||||
type = types.listOf types.path;
|
||||
default = [ ];
|
||||
description = ''
|
||||
A list of application service config file to use
|
||||
'';
|
||||
};
|
||||
extraConfig = mkOption {
|
||||
type = types.lines;
|
||||
default = "";
|
||||
@ -265,7 +525,7 @@ in {
|
||||
mkdir -p /var/lib/matrix-synapse
|
||||
chmod 700 /var/lib/matrix-synapse
|
||||
chown -R matrix-synapse:matrix-synapse /var/lib/matrix-synapse
|
||||
${cfg.package}/bin/homeserver --config-path ${configFile} --generate-keys
|
||||
${cfg.package}/bin/homeserver --config-path ${configFile} --keys-directory /var/lib/matrix-synapse/ --generate-keys
|
||||
'';
|
||||
serviceConfig = {
|
||||
Type = "simple";
|
||||
|
@ -152,8 +152,6 @@ let
|
||||
};
|
||||
};
|
||||
|
||||
mkShellStr = val: "'${replaceStrings ["'"] ["'\\''"] val}'";
|
||||
|
||||
certtool = "${pkgs.gnutls.bin}/bin/certtool";
|
||||
|
||||
nixos-taskserver = pkgs.buildPythonPackage {
|
||||
|
327
nixos/modules/services/networking/coturn.nix
Normal file
327
nixos/modules/services/networking/coturn.nix
Normal file
@ -0,0 +1,327 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
with lib;
|
||||
let
|
||||
cfg = config.services.coturn;
|
||||
pidfile = "/run/turnserver/turnserver.pid";
|
||||
configFile = pkgs.writeText "turnserver.conf" ''
|
||||
listening-port=${toString cfg.listening-port}
|
||||
tls-listening-port=${toString cfg.tls-listening-port}
|
||||
alt-listening-port=${toString cfg.alt-listening-port}
|
||||
alt-tls-listening-port=${toString cfg.alt-tls-listening-port}
|
||||
${concatStringsSep "\n" (map (x: "listening-ip=${x}") cfg.listening-ips)}
|
||||
${concatStringsSep "\n" (map (x: "relay-ip=${x}") cfg.relay-ips)}
|
||||
min-port=${toString cfg.min-port}
|
||||
max-port=${toString cfg.max-port}
|
||||
${lib.optionalString cfg.lt-cred-mech "lt-cred-mech"}
|
||||
${lib.optionalString cfg.no-auth "no-auth"}
|
||||
${lib.optionalString cfg.use-auth-secret "use-auth-secret"}
|
||||
${lib.optionalString (cfg.static-auth-secret != null) ("static-auth-secret=${cfg.static-auth-secret}")}
|
||||
realm=${cfg.realm}
|
||||
${lib.optionalString cfg.no-udp "no-udp"}
|
||||
${lib.optionalString cfg.no-tcp "no-tcp"}
|
||||
${lib.optionalString cfg.no-tls "no-tls"}
|
||||
${lib.optionalString cfg.no-dtls "no-dtls"}
|
||||
${lib.optionalString cfg.no-udp-relay "no-udp-relay"}
|
||||
${lib.optionalString cfg.no-tcp-relay "no-tcp-relay"}
|
||||
${lib.optionalString (cfg.cert != null) "cert=${cfg.cert}"}
|
||||
${lib.optionalString (cfg.pkey != null) "pkey=${cfg.pkey}"}
|
||||
${lib.optionalString (cfg.dh-file != null) ("dh-file=${cfg.dh-file}")}
|
||||
no-stdout-log
|
||||
syslog
|
||||
pidfile=${pidfile}
|
||||
${lib.optionalString cfg.secure-stun "secure-stun"}
|
||||
${lib.optionalString cfg.no-cli "no-cli"}
|
||||
cli-ip=${cfg.cli-ip}
|
||||
cli-port=${toString cfg.cli-port}
|
||||
${lib.optionalString (cfg.cli-password != null) ("cli-password=${cfg.cli-password}")}
|
||||
${cfg.extraConfig}
|
||||
'';
|
||||
in {
|
||||
options = {
|
||||
services.coturn = {
|
||||
enable = mkEnableOption "coturn TURN server";
|
||||
listening-port = mkOption {
|
||||
type = types.int;
|
||||
default = 3478;
|
||||
description = ''
|
||||
TURN listener port for UDP and TCP.
|
||||
Note: actually, TLS and DTLS sessions can connect to the
|
||||
"plain" TCP and UDP port(s), too - if allowed by configuration.
|
||||
'';
|
||||
};
|
||||
tls-listening-port = mkOption {
|
||||
type = types.int;
|
||||
default = 5349;
|
||||
description = ''
|
||||
TURN listener port for TLS.
|
||||
Note: actually, "plain" TCP and UDP sessions can connect to the TLS and
|
||||
DTLS port(s), too - if allowed by configuration. The TURN server
|
||||
"automatically" recognizes the type of traffic. Actually, two listening
|
||||
endpoints (the "plain" one and the "tls" one) are equivalent in terms of
|
||||
functionality; but we keep both endpoints to satisfy the RFC 5766 specs.
|
||||
For secure TCP connections, we currently support SSL version 3 and
|
||||
TLS version 1.0, 1.1 and 1.2.
|
||||
For secure UDP connections, we support DTLS version 1.
|
||||
'';
|
||||
};
|
||||
alt-listening-port = mkOption {
|
||||
type = types.int;
|
||||
default = cfg.listening-port + 1;
|
||||
defaultText = "listening-port + 1";
|
||||
description = ''
|
||||
Alternative listening port for UDP and TCP listeners;
|
||||
default (or zero) value means "listening port plus one".
|
||||
This is needed for RFC 5780 support
|
||||
(STUN extension specs, NAT behavior discovery). The TURN Server
|
||||
supports RFC 5780 only if it is started with more than one
|
||||
listening IP address of the same family (IPv4 or IPv6).
|
||||
RFC 5780 is supported only by UDP protocol, other protocols
|
||||
are listening to that endpoint only for "symmetry".
|
||||
'';
|
||||
};
|
||||
alt-tls-listening-port = mkOption {
|
||||
type = types.int;
|
||||
default = cfg.tls-listening-port + 1;
|
||||
defaultText = "tls-listening-port + 1";
|
||||
description = ''
|
||||
Alternative listening port for TLS and DTLS protocols.
|
||||
'';
|
||||
};
|
||||
listening-ips = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [];
|
||||
example = [ "203.0.113.42" "2001:DB8::42" ];
|
||||
description = ''
|
||||
Listener IP addresses of relay server.
|
||||
If no IP(s) specified in the config file or in the command line options,
|
||||
then all IPv4 and IPv6 system IPs will be used for listening.
|
||||
'';
|
||||
};
|
||||
relay-ips = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [];
|
||||
example = [ "203.0.113.42" "2001:DB8::42" ];
|
||||
description = ''
|
||||
Relay address (the local IP address that will be used to relay the
|
||||
packets to the peer).
|
||||
Multiple relay addresses may be used.
|
||||
The same IP(s) can be used as both listening IP(s) and relay IP(s).
|
||||
|
||||
If no relay IP(s) specified, then the turnserver will apply the default
|
||||
policy: it will decide itself which relay addresses to be used, and it
|
||||
will always be using the client socket IP address as the relay IP address
|
||||
of the TURN session (if the requested relay address family is the same
|
||||
as the family of the client socket).
|
||||
'';
|
||||
};
|
||||
min-port = mkOption {
|
||||
type = types.int;
|
||||
default = 49152;
|
||||
description = ''
|
||||
Lower bound of UDP relay endpoints
|
||||
'';
|
||||
};
|
||||
max-port = mkOption {
|
||||
type = types.int;
|
||||
default = 65535;
|
||||
description = ''
|
||||
Upper bound of UDP relay endpoints
|
||||
'';
|
||||
};
|
||||
lt-cred-mech = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Use long-term credential mechanism.
|
||||
'';
|
||||
};
|
||||
no-auth = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
This option is opposite to lt-cred-mech.
|
||||
(TURN Server with no-auth option allows anonymous access).
|
||||
If neither option is defined, and no users are defined,
|
||||
then no-auth is default. If at least one user is defined,
|
||||
in this file or in command line or in usersdb file, then
|
||||
lt-cred-mech is default.
|
||||
'';
|
||||
};
|
||||
use-auth-secret = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
TURN REST API flag.
|
||||
Flag that sets a special authorization option that is based upon authentication secret.
|
||||
This feature can be used with the long-term authentication mechanism, only.
|
||||
This feature purpose is to support "TURN Server REST API", see
|
||||
"TURN REST API" link in the project's page
|
||||
https://github.com/coturn/coturn/
|
||||
|
||||
This option is used with timestamp:
|
||||
|
||||
usercombo -> "timestamp:userid"
|
||||
turn user -> usercombo
|
||||
turn password -> base64(hmac(secret key, usercombo))
|
||||
|
||||
This allows TURN credentials to be accounted for a specific user id.
|
||||
If you don't have a suitable id, the timestamp alone can be used.
|
||||
This option is just turning on secret-based authentication.
|
||||
The actual value of the secret is defined either by option static-auth-secret,
|
||||
or can be found in the turn_secret table in the database.
|
||||
'';
|
||||
};
|
||||
static-auth-secret = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
description = ''
|
||||
'Static' authentication secret value (a string) for TURN REST API only.
|
||||
If not set, then the turn server
|
||||
will try to use the 'dynamic' value in turn_secret table
|
||||
in user database (if present). The database-stored value can be changed on-the-fly
|
||||
by a separate program, so this is why that other mode is 'dynamic'.
|
||||
'';
|
||||
};
|
||||
realm = mkOption {
|
||||
type = types.str;
|
||||
default = config.networking.hostName;
|
||||
example = "example.com";
|
||||
description = ''
|
||||
The default realm to be used for the users when no explicit
|
||||
origin/realm relationship was found in the database, or if the TURN
|
||||
server is not using any database (just the commands-line settings
|
||||
and the userdb file). Must be used with long-term credentials
|
||||
mechanism or with TURN REST API.
|
||||
'';
|
||||
};
|
||||
cert = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
example = "/var/lib/acme/example.com/fullchain.pem";
|
||||
description = ''
|
||||
Certificate file in PEM format.
|
||||
'';
|
||||
};
|
||||
pkey = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
example = "/var/lib/acme/example.com/key.pem";
|
||||
description = ''
|
||||
Private key file in PEM format.
|
||||
'';
|
||||
};
|
||||
dh-file = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
description = ''
|
||||
Use custom DH TLS key, stored in PEM format in the file.
|
||||
'';
|
||||
};
|
||||
secure-stun = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Require authentication of the STUN Binding request.
|
||||
By default, the clients are allowed anonymous access to the STUN Binding functionality.
|
||||
'';
|
||||
};
|
||||
no-cli = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Turn OFF the CLI support.
|
||||
'';
|
||||
};
|
||||
cli-ip = mkOption {
|
||||
type = types.str;
|
||||
default = "127.0.0.1";
|
||||
description = ''
|
||||
Local system IP address to be used for CLI server endpoint.
|
||||
'';
|
||||
};
|
||||
cli-port = mkOption {
|
||||
type = types.int;
|
||||
default = 5766;
|
||||
description = ''
|
||||
CLI server port.
|
||||
'';
|
||||
};
|
||||
cli-password = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
description = ''
|
||||
CLI access password.
|
||||
For the security reasons, it is recommended to use the encrypted
|
||||
for of the password (see the -P command in the turnadmin utility).
|
||||
'';
|
||||
};
|
||||
no-udp = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = "Disable UDP client listener";
|
||||
};
|
||||
no-tcp = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = "Disable TCP client listener";
|
||||
};
|
||||
no-tls = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = "Disable TLS client listener";
|
||||
};
|
||||
no-dtls = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = "Disable DTLS client listener";
|
||||
};
|
||||
no-udp-relay = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = "Disable UDP relay endpoints";
|
||||
};
|
||||
no-tcp-relay = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = "Disable TCP relay endpoints";
|
||||
};
|
||||
extraConfig = mkOption {
|
||||
type = types.lines;
|
||||
default = "";
|
||||
description = "Additional configuration options";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
users.extraUsers = [
|
||||
{ name = "turnserver";
|
||||
uid = config.ids.uids.turnserver;
|
||||
description = "coturn TURN server user";
|
||||
} ];
|
||||
users.extraGroups = [
|
||||
{ name = "turnserver";
|
||||
gid = config.ids.gids.turnserver;
|
||||
members = [ "turnserver" ];
|
||||
} ];
|
||||
|
||||
systemd.services.coturn = {
|
||||
description = "coturn TURN server";
|
||||
after = [ "network.target" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
|
||||
unitConfig = {
|
||||
Documentation = "man:coturn(1) man:turnadmin(1) man:turnserver(1)";
|
||||
};
|
||||
|
||||
serviceConfig = {
|
||||
Type = "simple";
|
||||
ExecStart = "${pkgs.coturn}/bin/turnserver -c ${configFile}";
|
||||
RuntimeDirectory = "turnserver";
|
||||
User = "turnserver";
|
||||
Group = "turnserver";
|
||||
Restart = "on-abort";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
@ -13,7 +13,7 @@ let
|
||||
|
||||
ectl = ''${cfg.package}/bin/ejabberdctl ${if cfg.configFile == null then "" else "--config ${cfg.configFile}"} --ctl-config "${ctlcfg}" --spool "${cfg.spoolDir}" --logs "${cfg.logsDir}"'';
|
||||
|
||||
dumps = lib.concatMapStringsSep " " lib.escapeShellArg cfg.loadDumps;
|
||||
dumps = lib.escapeShellArgs cfg.loadDumps;
|
||||
|
||||
in {
|
||||
|
||||
|
@ -16,7 +16,7 @@ with lib;
|
||||
clientIpRange = mkOption {
|
||||
type = types.string;
|
||||
description = "The range from which client IPs are drawn.";
|
||||
default = "10.124.142.2-11";
|
||||
default = "10.124.124.2-11";
|
||||
};
|
||||
|
||||
maxClients = mkOption {
|
||||
|
143
nixos/modules/services/networking/xl2tpd.nix
Normal file
143
nixos/modules/services/networking/xl2tpd.nix
Normal file
@ -0,0 +1,143 @@
|
||||
{ config, stdenv, pkgs, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
{
|
||||
options = {
|
||||
services.xl2tpd = {
|
||||
enable = mkEnableOption "Whether xl2tpd should be run on startup.";
|
||||
|
||||
serverIp = mkOption {
|
||||
type = types.string;
|
||||
description = "The server-side IP address.";
|
||||
default = "10.125.125.1";
|
||||
};
|
||||
|
||||
clientIpRange = mkOption {
|
||||
type = types.string;
|
||||
description = "The range from which client IPs are drawn.";
|
||||
default = "10.125.125.2-11";
|
||||
};
|
||||
|
||||
extraXl2tpOptions = mkOption {
|
||||
type = types.lines;
|
||||
description = "Adds extra lines to the xl2tpd configuration file.";
|
||||
default = "";
|
||||
};
|
||||
|
||||
extraPppdOptions = mkOption {
|
||||
type = types.lines;
|
||||
description = "Adds extra lines to the pppd options file.";
|
||||
default = "";
|
||||
example = ''
|
||||
ms-dns 8.8.8.8
|
||||
ms-dns 8.8.4.4
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf config.services.xl2tpd.enable {
|
||||
systemd.services.xl2tpd = let
|
||||
cfg = config.services.xl2tpd;
|
||||
|
||||
# Config files from https://help.ubuntu.com/community/L2TPServer
|
||||
xl2tpd-conf = pkgs.writeText "xl2tpd.conf" ''
|
||||
[global]
|
||||
ipsec saref = no
|
||||
|
||||
[lns default]
|
||||
local ip = ${cfg.serverIp}
|
||||
ip range = ${cfg.clientIpRange}
|
||||
pppoptfile = ${pppd-options}
|
||||
length bit = yes
|
||||
|
||||
; Extra
|
||||
${cfg.extraXl2tpOptions}
|
||||
'';
|
||||
|
||||
pppd-options = pkgs.writeText "ppp-options-xl2tpd.conf" ''
|
||||
refuse-pap
|
||||
refuse-chap
|
||||
refuse-mschap
|
||||
require-mschap-v2
|
||||
# require-mppe-128
|
||||
asyncmap 0
|
||||
auth
|
||||
crtscts
|
||||
idle 1800
|
||||
mtu 1200
|
||||
mru 1200
|
||||
lock
|
||||
hide-password
|
||||
local
|
||||
# debug
|
||||
name xl2tpd
|
||||
# proxyarp
|
||||
lcp-echo-interval 30
|
||||
lcp-echo-failure 4
|
||||
|
||||
# Extra:
|
||||
${cfg.extraPppdOptions}
|
||||
'';
|
||||
|
||||
xl2tpd-ppp-wrapped = pkgs.stdenv.mkDerivation {
|
||||
name = "xl2tpd-ppp-wrapped";
|
||||
phases = [ "installPhase" ];
|
||||
buildInputs = with pkgs; [ makeWrapper ];
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
|
||||
makeWrapper ${pkgs.ppp}/sbin/pppd $out/bin/pppd \
|
||||
--set LD_PRELOAD "${pkgs.libredirect}/lib/libredirect.so" \
|
||||
--set NIX_REDIRECTS "/etc/ppp=/etc/xl2tpd/ppp"
|
||||
|
||||
makeWrapper ${pkgs.xl2tpd}/bin/xl2tpd $out/bin/xl2tpd \
|
||||
--set LD_PRELOAD "${pkgs.libredirect}/lib/libredirect.so" \
|
||||
--set NIX_REDIRECTS "${pkgs.ppp}/sbin/pppd=$out/bin/pppd"
|
||||
'';
|
||||
};
|
||||
in {
|
||||
description = "xl2tpd server";
|
||||
|
||||
requires = [ "network-online.target" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
|
||||
preStart = ''
|
||||
mkdir -p -m 700 /etc/xl2tpd
|
||||
|
||||
pushd /etc/xl2tpd > /dev/null
|
||||
|
||||
mkdir -p -m 700 ppp
|
||||
|
||||
[ -f ppp/chap-secrets ] || cat > ppp/chap-secrets << EOF
|
||||
# Secrets for authentication using CHAP
|
||||
# client server secret IP addresses
|
||||
#username xl2tpd password *
|
||||
EOF
|
||||
|
||||
chown root.root ppp/chap-secrets
|
||||
chmod 600 ppp/chap-secrets
|
||||
|
||||
# The documentation says this file should be present but doesn't explain why and things work even if not there:
|
||||
[ -f l2tp-secrets ] || (echo -n "* * "; ${pkgs.apg}/bin/apg -n 1 -m 32 -x 32 -a 1 -M LCN) > l2tp-secrets
|
||||
chown root.root l2tp-secrets
|
||||
chmod 600 l2tp-secrets
|
||||
|
||||
popd > /dev/null
|
||||
|
||||
mkdir -p /run/xl2tpd
|
||||
chown root.root /run/xl2tpd
|
||||
chmod 700 /run/xl2tpd
|
||||
'';
|
||||
|
||||
serviceConfig = {
|
||||
ExecStart = "${xl2tpd-ppp-wrapped}/bin/xl2tpd -D -c ${xl2tpd-conf} -s /etc/xl2tpd/l2tp-secrets -p /run/xl2tpd/pid -C /run/xl2tpd/control";
|
||||
KillMode = "process";
|
||||
Restart = "on-success";
|
||||
Type = "simple";
|
||||
PIDFile = "/run/xl2tpd/pid";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
262
nixos/modules/services/web-servers/lighttpd/inginious.nix
Normal file
262
nixos/modules/services/web-servers/lighttpd/inginious.nix
Normal file
@ -0,0 +1,262 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.services.lighttpd.inginious;
|
||||
inginious = pkgs.inginious;
|
||||
execName = "inginious-${if cfg.useLTI then "lti" else "webapp"}";
|
||||
|
||||
inginiousConfigFile = if cfg.configFile != null then cfg.configFile else pkgs.writeText "inginious.yaml" ''
|
||||
# Backend; can be:
|
||||
# - "local" (run containers on the same machine)
|
||||
# - "remote" (connect to distant docker daemon and auto start agents) (choose this if you use boot2docker)
|
||||
# - "remote_manual" (connect to distant and manually installed agents)
|
||||
backend: "${cfg.backendType}"
|
||||
|
||||
## TODO (maybe): Add an option for the "remote" backend in this NixOS module.
|
||||
# List of remote docker daemon to which the backend will try
|
||||
# to connect (backend: remote only)
|
||||
#docker_daemons:
|
||||
# - # Host of the docker daemon *from the webapp*
|
||||
# remote_host: "some.remote.server"
|
||||
# # Port of the distant docker daemon *from the webapp*
|
||||
# remote_docker_port: "2375"
|
||||
# # A mandatory port used by the backend and the agent that will be automatically started.
|
||||
# # Needs to be available on the remote host, and to be open in the firewall.
|
||||
# remote_agent_port: "63456"
|
||||
# # Does the remote docker requires tls? Defaults to false.
|
||||
# # Parameter can be set to true or path to the certificates
|
||||
# #use_tls: false
|
||||
# # Link to the docker daemon *from the host that runs the docker daemon*. Defaults to:
|
||||
# #local_location: "unix:///var/run/docker.sock"
|
||||
# # Path to the cgroups "mount" *from the host that runs the docker daemon*. Defaults to:
|
||||
# #cgroups_location: "/sys/fs/cgroup"
|
||||
# # Name that will be used to reference the agent
|
||||
# #"agent_name": "inginious-agent"
|
||||
|
||||
# List of remote agents to which the backend will try
|
||||
# to connect (backend: remote_manual only)
|
||||
# Example:
|
||||
#agents:
|
||||
# - host: "192.168.59.103"
|
||||
# port: 5001
|
||||
agents:
|
||||
${lib.concatMapStrings (agent:
|
||||
" - host: \"${agent.host}\"\n" +
|
||||
" port: ${agent.port}\n"
|
||||
) cfg.remoteAgents}
|
||||
|
||||
# Location of the task directory
|
||||
tasks_directory: "${cfg.tasksDirectory}"
|
||||
|
||||
# Super admins: list of user names that can do everything in the backend
|
||||
superadmins:
|
||||
${lib.concatMapStrings (x: " - \"${x}\"\n") cfg.superadmins}
|
||||
|
||||
# Aliases for containers
|
||||
# Only containers listed here can be used by tasks
|
||||
containers:
|
||||
${lib.concatStrings (lib.mapAttrsToList (name: fullname:
|
||||
" ${name}: \"${fullname}\"\n"
|
||||
) cfg.containers)}
|
||||
|
||||
# Use single minified javascript file (production) or multiple files (dev) ?
|
||||
use_minified_js: true
|
||||
|
||||
## TODO (maybe): Add NixOS options for these parameters.
|
||||
|
||||
# MongoDB options
|
||||
#mongo_opt:
|
||||
# host: localhost
|
||||
# database: INGInious
|
||||
|
||||
# Disable INGInious?
|
||||
#maintenance: false
|
||||
|
||||
#smtp:
|
||||
# sendername: 'INGInious <no-reply@inginious.org>'
|
||||
# host: 'smtp.gmail.com'
|
||||
# port: 587
|
||||
# username: 'configme@gmail.com'
|
||||
# password: 'secret'
|
||||
# starttls: True
|
||||
|
||||
## NixOS extra config
|
||||
|
||||
${cfg.extraConfig}
|
||||
'';
|
||||
in
|
||||
{
|
||||
options.services.lighttpd.inginious = {
|
||||
enable = mkEnableOption "INGInious, an automated code testing and grading system.";
|
||||
|
||||
configFile = mkOption {
|
||||
type = types.nullOr types.path;
|
||||
default = null;
|
||||
example = literalExample ''pkgs.writeText "configuration.yaml" "# custom config options ...";'';
|
||||
description = ''The path to an INGInious configuration file.'';
|
||||
};
|
||||
|
||||
extraConfig = mkOption {
|
||||
type = types.lines;
|
||||
default = "";
|
||||
example = ''
|
||||
# Load the dummy auth plugin.
|
||||
plugins:
|
||||
- plugin_module: inginious.frontend.webapp.plugins.auth.demo_auth
|
||||
users:
|
||||
# register the user "test" with the password "someverycomplexpassword"
|
||||
test: someverycomplexpassword
|
||||
'';
|
||||
description = ''Extra option in YaML format, to be appended to the config file.'';
|
||||
};
|
||||
|
||||
tasksDirectory = mkOption {
|
||||
type = types.path;
|
||||
default = "${inginious}/lib/python2.7/site-packages/inginious/tasks";
|
||||
example = "/var/lib/INGInious/tasks";
|
||||
description = ''
|
||||
Path to the tasks folder.
|
||||
Defaults to the provided test tasks folder (readonly).
|
||||
'';
|
||||
};
|
||||
|
||||
useLTI = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''Whether to start the LTI frontend in place of the webapp.'';
|
||||
};
|
||||
|
||||
superadmins = mkOption {
|
||||
type = types.uniq (types.listOf types.str);
|
||||
default = [ "admin" ];
|
||||
example = [ "john" "pepe" "emilia" ];
|
||||
description = ''List of user logins allowed to administrate the whole server.'';
|
||||
};
|
||||
|
||||
containers = mkOption {
|
||||
type = types.attrsOf types.str;
|
||||
default = {
|
||||
default = "ingi/inginious-c-default";
|
||||
};
|
||||
example = {
|
||||
default = "ingi/inginious-c-default";
|
||||
sekexe = "ingi/inginious-c-sekexe";
|
||||
java = "ingi/inginious-c-java";
|
||||
oz = "ingi/inginious-c-oz";
|
||||
pythia1compat = "ingi/inginious-c-pythia1compat";
|
||||
};
|
||||
description = ''
|
||||
An attrset describing the required containers
|
||||
These containers will be available in INGInious using their short name (key)
|
||||
and will be automatically downloaded before INGInious starts.
|
||||
'';
|
||||
};
|
||||
|
||||
hostPattern = mkOption {
|
||||
type = types.str;
|
||||
default = "^inginious.";
|
||||
example = "^inginious.mydomain.xyz$";
|
||||
description = ''
|
||||
The domain that serves INGInious.
|
||||
INGInious uses absolute paths which makes it difficult to relocate in its own subdir.
|
||||
The default configuration will serve INGInious when the server is accessed with a hostname starting with "inginious.".
|
||||
If left blank, INGInious will take the precedence over all the other lighttpd sites, which is probably not what you want.
|
||||
'';
|
||||
};
|
||||
|
||||
backendType = mkOption {
|
||||
type = types.enum [ "local" "remote_manual" ]; # TODO: support backend "remote"
|
||||
default = "local";
|
||||
description = ''
|
||||
Select how INGINious accesses to grading containers.
|
||||
The default "local" option ensures that Docker is started and provisioned.
|
||||
Fore more information, see http://inginious.readthedocs.io/en/latest/install_doc/config_reference.html
|
||||
Not all backends are supported. Use services.inginious.configFile for full flexibility.
|
||||
'';
|
||||
};
|
||||
|
||||
remoteAgents = mkOption {
|
||||
type = types.listOf (types.attrsOf types.str);
|
||||
default = [];
|
||||
example = [ { host = "192.0.2.25"; port = "1345"; } ];
|
||||
description = ''A list of remote agents, used only when services.inginious.backendType is "remote_manual".'';
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable (
|
||||
mkMerge [
|
||||
# For a local install, we need docker.
|
||||
(mkIf (cfg.backendType == "local") {
|
||||
virtualisation.docker = {
|
||||
enable = true;
|
||||
# We need docker to listen on port 2375.
|
||||
extraOptions = "-H tcp://127.0.0.1:2375 -H unix:///var/run/docker.sock";
|
||||
storageDriver = mkDefault "overlay";
|
||||
socketActivation = false;
|
||||
};
|
||||
|
||||
users.extraUsers."lighttpd".extraGroups = [ "docker" ];
|
||||
|
||||
# Ensure that docker has pulled the required images.
|
||||
systemd.services.inginious-prefetch = {
|
||||
script = let
|
||||
images = lib.unique (
|
||||
[ "centos" "ingi/inginious-agent" ]
|
||||
++ lib.mapAttrsToList (_: image: image) cfg.containers
|
||||
);
|
||||
in lib.concatMapStrings (image: ''
|
||||
${pkgs.docker}/bin/docker pull ${image}
|
||||
'') images;
|
||||
|
||||
serviceConfig.Type = "oneshot";
|
||||
wants = [ "docker.service" ];
|
||||
after = [ "docker.service" ];
|
||||
wantedBy = [ "lighttpd.service" ];
|
||||
before = [ "lighttpd.service" ];
|
||||
};
|
||||
})
|
||||
|
||||
# Common
|
||||
{
|
||||
# To access inginous tools (like inginious-test-task)
|
||||
environment.systemPackages = [ inginious ];
|
||||
|
||||
services.mongodb.enable = true;
|
||||
|
||||
services.lighttpd.enable = true;
|
||||
services.lighttpd.enableModules = [ "mod_access" "mod_alias" "mod_fastcgi" "mod_redirect" "mod_rewrite" ];
|
||||
services.lighttpd.extraConfig = ''
|
||||
$HTTP["host"] =~ "${cfg.hostPattern}" {
|
||||
fastcgi.server = ( "/${execName}" =>
|
||||
((
|
||||
"socket" => "/run/lighttpd/inginious-fastcgi.socket",
|
||||
"bin-path" => "${inginious}/bin/${execName} --config=${inginiousConfigFile}",
|
||||
"max-procs" => 1,
|
||||
"bin-environment" => ( "REAL_SCRIPT_NAME" => "" ),
|
||||
"check-local" => "disable"
|
||||
))
|
||||
)
|
||||
url.rewrite-once = (
|
||||
"^/.well-known/.*" => "$0",
|
||||
"^/static/.*" => "$0",
|
||||
"^/.*$" => "/${execName}$0",
|
||||
"^/favicon.ico$" => "/static/common/favicon.ico",
|
||||
)
|
||||
alias.url += (
|
||||
"/static/webapp/" => "${inginious}/lib/python2.7/site-packages/inginious/frontend/webapp/static/",
|
||||
"/static/common/" => "${inginious}/lib/python2.7/site-packages/inginious/frontend/common/static/"
|
||||
)
|
||||
}
|
||||
'';
|
||||
|
||||
systemd.services.lighttpd.preStart = ''
|
||||
mkdir -p /run/lighttpd
|
||||
chown lighttpd.lighttpd /run/lighttpd
|
||||
'';
|
||||
|
||||
systemd.services.lighttpd.wants = [ "mongodb.service" "docker.service" ];
|
||||
systemd.services.lighttpd.after = [ "mongodb.service" "docker.service" ];
|
||||
}
|
||||
]);
|
||||
}
|
@ -119,6 +119,7 @@ in {
|
||||
services.telepathy.enable = mkDefault true;
|
||||
networking.networkmanager.enable = mkDefault true;
|
||||
services.upower.enable = config.powerManagement.enable;
|
||||
services.dbus.packages = mkIf config.services.printing.enable [ pkgs.system-config-printer ];
|
||||
hardware.bluetooth.enable = mkDefault true;
|
||||
|
||||
fonts.fonts = [ pkgs.dejavu_fonts pkgs.cantarell_fonts ];
|
||||
|
@ -33,6 +33,14 @@ in
|
||||
default = false;
|
||||
description = "Don't install XFCE desktop components (xfdesktop, panel and notification daemon).";
|
||||
};
|
||||
|
||||
extraSessionCommands = mkOption {
|
||||
default = "";
|
||||
type = types.lines;
|
||||
description = ''
|
||||
Shell commands executed just before XFCE is started.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
@ -45,6 +53,8 @@ in
|
||||
bgSupport = true;
|
||||
start =
|
||||
''
|
||||
${cfg.extraSessionCommands}
|
||||
|
||||
# Set GTK_PATH so that GTK+ can find the theme engines.
|
||||
export GTK_PATH="${config.system.path}/lib/gtk-2.0:${config.system.path}/lib/gtk-3.0"
|
||||
|
||||
|
@ -15,12 +15,21 @@ let
|
||||
If left at the default value, $HOME/.i3/config will be used.
|
||||
'';
|
||||
};
|
||||
extraSessionCommands = mkOption {
|
||||
default = "";
|
||||
type = types.lines;
|
||||
description = ''
|
||||
Shell commands executed just before i3 is started.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
i3config = name: pkg: cfg: {
|
||||
services.xserver.windowManager.session = [{
|
||||
inherit name;
|
||||
start = ''
|
||||
${cfg.extraSessionCommands}
|
||||
|
||||
${pkg}/bin/i3 ${optionalString (cfg.configFile != null)
|
||||
"-c \"${cfg.configFile}\""
|
||||
} &
|
||||
|
@ -669,6 +669,7 @@ in
|
||||
|
||||
"systemd/logind.conf".text = ''
|
||||
[Login]
|
||||
KillUserProcesses=no
|
||||
${config.services.logind.extraConfig}
|
||||
'';
|
||||
|
||||
|
@ -111,15 +111,17 @@ in
|
||||
|
||||
fileSystems = mkOption {
|
||||
default = {};
|
||||
example = {
|
||||
"/".device = "/dev/hda1";
|
||||
"/data" = {
|
||||
device = "/dev/hda2";
|
||||
fsType = "ext3";
|
||||
options = [ "data=journal" ];
|
||||
};
|
||||
"/bigdisk".label = "bigdisk";
|
||||
};
|
||||
example = literalExample ''
|
||||
{
|
||||
"/".device = "/dev/hda1";
|
||||
"/data" = {
|
||||
device = "/dev/hda2";
|
||||
fsType = "ext3";
|
||||
options = [ "data=journal" ];
|
||||
};
|
||||
"/bigdisk".label = "bigdisk";
|
||||
}
|
||||
'';
|
||||
type = types.loaOf types.optionSet;
|
||||
options = [ fileSystemOpts ];
|
||||
description = ''
|
||||
|
@ -47,7 +47,7 @@ in
|
||||
# TODO(wkennington): Add lvm2 and thin-provisioning-tools
|
||||
path = with pkgs; [ acl rsync gnutar xz btrfs-progs ];
|
||||
|
||||
serviceConfig.ExecStart = "@${pkgs.lxd}/bin/lxd lxd --syslog --group lxd";
|
||||
serviceConfig.ExecStart = "@${pkgs.lxd.bin}/bin/lxd lxd --syslog --group lxd";
|
||||
serviceConfig.Type = "simple";
|
||||
serviceConfig.KillMode = "process"; # when stopping, leave the containers alone
|
||||
};
|
||||
|
@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = [ maintainers.rycee ];
|
||||
platforms = platforms.unix;
|
||||
description = "command-line utility to get CDDB discid information from a CD-ROM disc";
|
||||
description = "Command-line utility to get CDDB discid information from a CD-ROM disc";
|
||||
|
||||
longDescription = ''
|
||||
cd-discid is a backend utility to get CDDB discid information
|
||||
|
@ -93,13 +93,13 @@ in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "cmus-${version}";
|
||||
version = "2.7.0";
|
||||
version = "2.7.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cmus";
|
||||
repo = "cmus";
|
||||
rev = "0306cc74c5073a85cf8619c61da5b94a3f863eaa";
|
||||
sha256 = "18w9mznb843nzkrcqvshfha51mlpdl92zlvb5wfc5dpgrbf37728";
|
||||
rev = "v${version}";
|
||||
sha256 = "0xd96py21bl869qlv1353zw7xsgq6v5s8szr0ldr63zj5fgc2ps5";
|
||||
};
|
||||
|
||||
patches = [ ./option-debugging.patch ];
|
||||
|
@ -24,7 +24,7 @@ stdenv.mkDerivation {
|
||||
buildInputs = [ cmake libsndfile flex bison alsaLib libpulseaudio tcltk ];
|
||||
|
||||
meta = {
|
||||
description = "sound design, audio synthesis, and signal processing system, providing facilities for music composition and performance on all major operating systems and platforms";
|
||||
description = "Sound design, audio synthesis, and signal processing system, providing facilities for music composition and performance on all major operating systems and platforms";
|
||||
homepage = http://www.csounds.com/;
|
||||
license = stdenv.lib.licenses.gpl2;
|
||||
maintainers = [stdenv.lib.maintainers.marcweber];
|
||||
|
@ -1,11 +1,11 @@
|
||||
{ fetchurl, stdenv, pkgconfig, libao, readline, json_c, libgcrypt, libav, curl }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "pianobar-2015.11.22";
|
||||
name = "pianobar-2016.06.02";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://6xq.net/projects/pianobar/${name}.tar.bz2";
|
||||
sha256 = "0arjvs31d108l1mn2k2hxbpg3mxs47vqzxm0lzdpfcjvypkckyr3";
|
||||
sha256 = "0n9544bfsdp04xqcjm4nhfvp357dx0c3gpys0rjkq09nzv8b1vy6";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = http://www.linuxsampler.org;
|
||||
description = "graphical frontend to LinuxSampler";
|
||||
description = "Graphical frontend to LinuxSampler";
|
||||
license = licenses.gpl2;
|
||||
maintainers = [ maintainers.goibhniu ];
|
||||
platforms = platforms.linux;
|
||||
|
@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
|
||||
libpng libsamplerate libsndfile zlib ];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "multi-effects processor emulating a guitar effects pedalboard";
|
||||
description = "Multi-effects processor emulating a guitar effects pedalboard";
|
||||
homepage = http://rakarrack.sourceforge.net;
|
||||
license = licenses.gpl2;
|
||||
platforms = platforms.linux;
|
||||
|
@ -54,7 +54,7 @@ stdenv.mkDerivation rec {
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "modern tracker-based DAW";
|
||||
description = "Modern tracker-based DAW";
|
||||
homepage = http://www.renoise.com/;
|
||||
license = stdenv.lib.licenses.unfree;
|
||||
};
|
||||
|
@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
|
||||
nativeBuildInputs = [ pkgconfig ];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "minimal loop based midi sequencer";
|
||||
description = "Minimal loop based midi sequencer";
|
||||
homepage = "http://www.filter24.org/seq24";
|
||||
license = licenses.gpl2;
|
||||
platforms = platforms.linux;
|
||||
|
@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
|
||||
buildInputs = [ flac ];
|
||||
|
||||
meta = {
|
||||
description = "multi-purpose WAVE data processing and reporting utility";
|
||||
description = "Multi-purpose WAVE data processing and reporting utility";
|
||||
homepage = http://www.etree.org/shnutils/shntool/;
|
||||
license = stdenv.lib.licenses.gpl2Plus;
|
||||
platforms = stdenv.lib.platforms.all;
|
||||
|
@ -5,7 +5,7 @@
|
||||
assert stdenv.system == "x86_64-linux";
|
||||
|
||||
let
|
||||
version = "1.0.28.89.gf959d4ce-37";
|
||||
version = "1.0.32.94.g8a839395-32";
|
||||
|
||||
deps = [
|
||||
alsaLib
|
||||
@ -50,7 +50,7 @@ stdenv.mkDerivation {
|
||||
src =
|
||||
fetchurl {
|
||||
url = "http://repository-origin.spotify.com/pool/non-free/s/spotify-client/spotify-client_${version}_amd64.deb";
|
||||
sha256 = "06v6fmjn0zi1riqhbmwkrq4m1q1vs95p348i8c12hqvsrp0g2qy5";
|
||||
sha256 = "1341v1j9xwj8pwmhl3q7znj3c27x1v4l61khczrgxbrfb56kina1";
|
||||
};
|
||||
|
||||
buildInputs = [ dpkg makeWrapper ];
|
||||
|
26
pkgs/applications/audio/squeezelite/default.nix
Normal file
26
pkgs/applications/audio/squeezelite/default.nix
Normal file
@ -0,0 +1,26 @@
|
||||
{ stdenv, fetchFromGitHub, alsaLib, faad2, flac, libmad, libvorbis, mpg123 }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "squeezelite-git-2016-05-27";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ralph-irving";
|
||||
repo = "squeezelite";
|
||||
rev = "e37ed17fed9e11a7346cbe9f1e1deeccc051f42e";
|
||||
sha256 = "15ihx2dbp4kr6k6r50g9q5npqad5zyv8nqf5cr37bhg964syvbdm";
|
||||
};
|
||||
|
||||
buildInputs = [ alsaLib faad2 flac libmad libvorbis mpg123 ];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
cp squeezelite $out/bin
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Lightweight headless squeezebox client emulator";
|
||||
homepage = https://github.com/ralph-irving/squeezelite;
|
||||
license = licenses.gpl3;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "classic-analog (VCOs-VCF-VCA) style software synthesizer";
|
||||
description = "Classic-analog (VCOs-VCF-VCA) style software synthesizer";
|
||||
longDescription = ''
|
||||
Xsynth-DSSI is a classic-analog (VCOs-VCF-VCA) style software
|
||||
synthesizer which operates as a plugin for the DSSI Soft Synth
|
||||
|
@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
|
||||
cmakeFlags = [ "-DFLTK_MATH_LIBRARY=${stdenv.glibc.out}/lib/libm.so -DCMAKE_INSTALL_DATAROOTDIR=$out" ];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "high quality software synthesizer based on ZynAddSubFX";
|
||||
description = "High quality software synthesizer based on ZynAddSubFX";
|
||||
longDescription = ''
|
||||
Yoshimi delivers the same synthesizer capabilities as
|
||||
ZynAddSubFX along with very good Jack and Alsa midi/audio
|
||||
|
@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "tiny logging framework for Emacs";
|
||||
description = "Tiny logging framework for Emacs";
|
||||
homepage = https://github.com/sigma/logito;
|
||||
license = stdenv.lib.licenses.gpl2Plus;
|
||||
|
||||
|
@ -28303,12 +28303,12 @@
|
||||
helm-projectile = callPackage ({ cl-lib ? null, dash, fetchFromGitHub, fetchurl, helm, lib, melpaBuild, projectile }:
|
||||
melpaBuild {
|
||||
pname = "helm-projectile";
|
||||
version = "20160603.611";
|
||||
version = "20160614.832";
|
||||
src = fetchFromGitHub {
|
||||
owner = "bbatsov";
|
||||
repo = "helm-projectile";
|
||||
rev = "3db706c9147a54a618bdb6e5de827d931d8ae9a6";
|
||||
sha256 = "0b9nd668p5lya214hyc0lv9pbmxjfy4ls1yhljr6j71qsfl0mjva";
|
||||
rev = "f41141a93aa6c03ffb9fdb294b3caa19803b1d72";
|
||||
sha256 = "0z7vhidjb3fzy28kjg6v73sxd7fgdhxcmqx5qypv3czdjcl5911x";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/4976446a8ae40980d502186615902fc05c15ec7c/recipes/helm-projectile";
|
||||
|
@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "an emacs library to access metaweblog based weblogs";
|
||||
description = "An emacs library to access metaweblog based weblogs";
|
||||
homepage = https://github.com/punchagan/metaweblog;
|
||||
license = stdenv.lib.licenses.gpl3Plus;
|
||||
|
||||
|
@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
|
||||
(require 'session)
|
||||
(add-hook 'after-init-hook 'session-initialize)
|
||||
*/
|
||||
description = "small session management for emacs";
|
||||
description = "Small session management for emacs";
|
||||
homepage = http://emacs-session.sourceforge.net/;
|
||||
license = "GPL";
|
||||
};
|
||||
|
@ -1,7 +1,7 @@
|
||||
{ stdenv, fetchurl, makeDesktopItem, makeWrapper, patchelf, p7zip
|
||||
, coreutils, gnugrep, which, git, python, unzip, jdk }:
|
||||
, coreutils, gnugrep, which, git, python, unzip }:
|
||||
|
||||
{ name, product, version, build, src, wmClass, meta } @ attrs:
|
||||
{ name, product, version, build, src, wmClass, jdk, meta } @ attrs:
|
||||
|
||||
with stdenv.lib;
|
||||
|
||||
|
@ -12,7 +12,7 @@ let
|
||||
|
||||
buildAndroidStudio = { name, version, build, src, license, description, wmClass }:
|
||||
let drv = (mkIdeaProduct rec {
|
||||
inherit name version build src wmClass;
|
||||
inherit name version build src wmClass jdk;
|
||||
product = "Studio";
|
||||
meta = with stdenv.lib; {
|
||||
homepage = https://developer.android.com/sdk/installing/studio.html;
|
||||
@ -31,13 +31,14 @@ let
|
||||
buildInputs = x.buildInputs ++ [ makeWrapper ];
|
||||
installPhase = x.installPhase + ''
|
||||
wrapProgram "$out/bin/android-studio" \
|
||||
--set ANDROID_HOME "${androidsdk}/libexec/android-sdk-linux/"
|
||||
--set ANDROID_HOME "${androidsdk}/libexec/android-sdk-linux/" \
|
||||
--set LD_LIBRARY_PATH "${stdenv.cc.cc.lib}/lib" # Gradle installs libnative-platform.so in ~/.gradle, that requires libstdc++.so.6
|
||||
'';
|
||||
});
|
||||
|
||||
buildClion = { name, version, build, src, license, description, wmClass }:
|
||||
(mkIdeaProduct rec {
|
||||
inherit name version build src wmClass;
|
||||
inherit name version build src wmClass jdk;
|
||||
product = "CLion";
|
||||
meta = with stdenv.lib; {
|
||||
homepage = "https://www.jetbrains.com/clion/";
|
||||
@ -53,7 +54,7 @@ let
|
||||
|
||||
buildIdea = { name, version, build, src, license, description, wmClass }:
|
||||
(mkIdeaProduct rec {
|
||||
inherit name version build src wmClass;
|
||||
inherit name version build src wmClass jdk;
|
||||
product = "IDEA";
|
||||
meta = with stdenv.lib; {
|
||||
homepage = "https://www.jetbrains.com/idea/";
|
||||
@ -70,7 +71,7 @@ let
|
||||
|
||||
buildRubyMine = { name, version, build, src, license, description, wmClass }:
|
||||
(mkIdeaProduct rec {
|
||||
inherit name version build src wmClass;
|
||||
inherit name version build src wmClass jdk;
|
||||
product = "RubyMine";
|
||||
meta = with stdenv.lib; {
|
||||
homepage = "https://www.jetbrains.com/ruby/";
|
||||
@ -83,7 +84,7 @@ let
|
||||
|
||||
buildPhpStorm = { name, version, build, src, license, description, wmClass }:
|
||||
(mkIdeaProduct {
|
||||
inherit name version build src wmClass;
|
||||
inherit name version build src wmClass jdk;
|
||||
product = "PhpStorm";
|
||||
meta = with stdenv.lib; {
|
||||
homepage = "https://www.jetbrains.com/phpstorm/";
|
||||
@ -100,7 +101,7 @@ let
|
||||
|
||||
buildWebStorm = { name, version, build, src, license, description, wmClass }:
|
||||
(mkIdeaProduct {
|
||||
inherit name version build src wmClass;
|
||||
inherit name version build src wmClass jdk;
|
||||
product = "WebStorm";
|
||||
meta = with stdenv.lib; {
|
||||
homepage = "https://www.jetbrains.com/webstorm/";
|
||||
@ -117,7 +118,7 @@ let
|
||||
|
||||
buildPycharm = { name, version, build, src, license, description, wmClass }:
|
||||
(mkIdeaProduct rec {
|
||||
inherit name version build src wmClass;
|
||||
inherit name version build src wmClass jdk;
|
||||
product = "PyCharm";
|
||||
meta = with stdenv.lib; {
|
||||
homepage = "https://www.jetbrains.com/pycharm/";
|
||||
@ -146,16 +147,16 @@ in
|
||||
|
||||
{
|
||||
|
||||
android-studio = let buildNumber = "143.2821654"; in buildAndroidStudio rec {
|
||||
android-studio = let buildNumber = "143.2915827"; in buildAndroidStudio rec {
|
||||
name = "android-studio-${version}";
|
||||
version = "2.1.1.0";
|
||||
version = "2.1.2.0";
|
||||
build = "AI-${buildNumber}";
|
||||
description = "Android development environment based on IntelliJ IDEA";
|
||||
license = stdenv.lib.licenses.asl20;
|
||||
src = fetchurl {
|
||||
url = "https://dl.google.com/dl/android/studio/ide-zips/${version}" +
|
||||
"/android-studio-ide-${buildNumber}-linux.zip";
|
||||
sha256 = "1zxxzyhny7j4vzlydrhwz3g8l8zcml84mhkcf5ckx8xr50j3m101";
|
||||
sha256 = "0q61m8yln77valg7y6lyxlml53z387zh6fyfgc22sm3br5ahbams";
|
||||
};
|
||||
wmClass = "jetbrains-studio";
|
||||
};
|
||||
|
@ -56,7 +56,7 @@ stdenv.mkDerivation rec {
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "the next generation code editor";
|
||||
description = "The next generation code editor";
|
||||
homepage = http://www.lighttable.com/;
|
||||
license = licenses.gpl3;
|
||||
maintainers = [ maintainers.matejc ];
|
||||
|
@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "the nice editor";
|
||||
description = "The nice editor";
|
||||
homepage = https://github.com/vigna/ne;
|
||||
longDescription = ''
|
||||
ne is a free (GPL'd) text editor based on the POSIX standard that runs (we hope) on almost any
|
||||
|
@ -2,12 +2,12 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "texmaker";
|
||||
version = "4.4.1";
|
||||
version = "4.5";
|
||||
name = "${pname}-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://www.xm1math.net/texmaker/${name}.tar.bz2";
|
||||
sha256 = "1d5lb4sibdhvzgfr0zi48j92b4acvvvdy2biqi3jzjdnzy9r94w0";
|
||||
sha256 = "056njk6j8wma23mlp7xa3rgfaxx0q8ynwx8wkmj7iy0b85p9ds9c";
|
||||
};
|
||||
|
||||
buildInputs = [ qt4 poppler_qt4 zlib ];
|
||||
|
@ -1,69 +1,158 @@
|
||||
{stdenv, fetchhg, fetchurl, fetchzip, gtk, glib, pkgconfig, unzip, ncurses, zip}:
|
||||
{ stdenv, fetchhg, fetchurl, fetchzip, gtk, glib, pkgconfig, unzip, ncurses, zip }:
|
||||
let
|
||||
buildInputs = [
|
||||
gtk glib pkgconfig unzip ncurses zip
|
||||
];
|
||||
# Textadept requires a whole bunch of external dependencies.
|
||||
# The build system expects to be able to download them with wget.
|
||||
# This expression gets Nix to fetch them instead.
|
||||
|
||||
|
||||
cached_url = url: sha256: fetchurl {
|
||||
inherit sha256 url;
|
||||
};
|
||||
get_url = url: sha256: ''
|
||||
cp ${(cached_url url sha256)} $(basename ${(cached_url url sha256)} | sed -e 's@^[0-9a-z]\+-@@')
|
||||
touch $(basename ${(cached_url url sha256)} | sed -e 's@^[0-9a-z]\+-@@')
|
||||
|
||||
get_url = url: sha256: let
|
||||
store_path = cached_url url sha256;
|
||||
in ''
|
||||
local_path=$(basename ${store_path} | sed -e 's@^[0-9a-z]\+-@@')
|
||||
|
||||
# Copy the file from the Nix store and remove the hash part.
|
||||
cp ${store_path} $local_path
|
||||
|
||||
# Update its access and modified times.
|
||||
touch $local_path
|
||||
'';
|
||||
|
||||
cached_url_zip = url: sha256: fetchzip {
|
||||
inherit sha256 url;
|
||||
};
|
||||
get_url_zip = url: sha256: let zipdir = (cached_url_zip url sha256); in ''
|
||||
( d=$PWD; cd $TMPDIR; name=$(basename ${zipdir} .zip | sed -e 's/^[a-z0-9]*-//');
|
||||
cp -r ${zipdir} $name; chmod u+rwX -R $name; zip -r $d/$name.zip $name )
|
||||
touch $name
|
||||
|
||||
get_url_zip = url: sha256: let
|
||||
store_path = cached_url_zip url sha256;
|
||||
in ''
|
||||
(
|
||||
build_dir=$PWD
|
||||
cd $TMPDIR
|
||||
|
||||
local_path=$(basename ${store_path} .zip | sed -e 's/^[a-z0-9]*-//')
|
||||
|
||||
cp -r ${store_path} $local_path
|
||||
chmod u+rwX -R $local_path
|
||||
zip -r $build_dir/$local_path.zip $local_path
|
||||
touch $local_path
|
||||
)
|
||||
'';
|
||||
|
||||
|
||||
# These lists are taken from the Makefile.
|
||||
scintilla_tgz = "scintilla365.tgz";
|
||||
scinterm_zip = "scinterm_1.8.zip";
|
||||
scintillua_zip = "scintillua_3.6.5-1.zip";
|
||||
lua_tgz = "lua-5.3.2.tar.gz";
|
||||
lpeg_tgz = "lpeg-1.0.0.tar.gz";
|
||||
lfs_zip = "v_1_6_3.zip";
|
||||
luautf8_zip = "0.1.1.zip";
|
||||
lspawn_zip = "lspawn_1.5.zip";
|
||||
luajit_tgz = "LuaJIT-2.0.3.tar.gz";
|
||||
libluajit_tgz = "libluajit_2.0.3.x86_64.tgz";
|
||||
gtdialog_zip = "gtdialog_1.2.zip";
|
||||
cdk_tgz = "cdk-5.0-20150928.tgz";
|
||||
termkey_tgz = "libtermkey-0.17.tar.gz";
|
||||
bombay_zip = "bombay.zip";
|
||||
|
||||
scinterm_url = "http://foicica.com/scinterm/download/" + scinterm_zip;
|
||||
scintillua_url = "http://foicica.com/scintillua/download/" + scintillua_zip;
|
||||
gtdialog_url = "http://foicica.com/gtdialog/download/" + gtdialog_zip;
|
||||
lspawn_url = "http://foicica.com/lspawn/download/" + lspawn_zip;
|
||||
|
||||
scintilla_url = "http://prdownloads.sourceforge.net/scintilla/" + scintilla_tgz;
|
||||
lua_url = "http://www.lua.org/ftp/" + lua_tgz;
|
||||
lpeg_url = "http://www.inf.puc-rio.br/~roberto/lpeg/" + lpeg_tgz;
|
||||
lfs_url = "https://github.com/keplerproject/luafilesystem/archive/" + lfs_zip;
|
||||
luautf8_url = "https://github.com/starwing/luautf8/archive/" + luautf8_zip;
|
||||
luajit_url = "http://luajit.org/download/" + luajit_tgz;
|
||||
libluajit_url = "http://foicica.com/textadept/download/" + libluajit_tgz;
|
||||
cdk_url = "http://invisible-mirror.net/archives/cdk/" + cdk_tgz;
|
||||
bombay_url = "http://foicica.com/hg/bombay/archive/tip.zip";
|
||||
termkey_url = "http://www.leonerd.org.uk/code/libtermkey/" + termkey_tgz;
|
||||
|
||||
|
||||
get_scintilla = get_url scintilla_url "1s5zbkn5f3vs8gbnjlkfzw4b137y12m3c89lyc4pmvqvrvxgyalj";
|
||||
get_scinterm = get_url scinterm_url "02ax6cjpxylfz7iqp1cjmsl323in066a38yklmsyzdl3w7761nxi";
|
||||
get_scintillua = get_url scintillua_url "0s4q7a9mgvxh0msi18llkczhcgafaiizw9qm1p9w18r2a7wjq9wc";
|
||||
get_lua = get_url lua_url "13x6knpv5xsli0n2bib7g1nrga2iacy7qfy63i798dm94fxwfh67";
|
||||
get_lpeg = get_url lpeg_url "13mz18s359wlkwm9d9iqlyyrrwjc6iqfpa99ai0icam2b3khl68h";
|
||||
get_lfs = get_url_zip lfs_url "1hxcnqj53540ysyw8fzax7f09pl98b8f55s712gsglcdxp2g2pri";
|
||||
get_luautf8_zip = get_url_zip luautf8_url "1dgmxdk88njpic4d4sn2wzlni4b6sfqcsmh2hrraxivpqf9ps7f7";
|
||||
get_lspawn = get_url lspawn_url "09c6v9irblay2kv1n7i59pyj9g4xb43c6rfa7ba5m353lymcwwqi";
|
||||
get_luajit = get_url luajit_url "0ydxpqkmsn2c341j4r2v6r5r0ig3kbwv3i9jran3iv81s6r6rgjm";
|
||||
get_libluajit = get_url libluajit_url "1nhvcdjpqrhd5qbihdm3bxpw84irfvnw2vmfqnsy253ay3dxzrgy";
|
||||
get_gtdialog = get_url gtdialog_url "0nvcldyhj8abr8jny9pbyfjwg8qfp9f2h508vjmrvr5c5fqdbbm0";
|
||||
get_cdk = get_url cdk_url "0j74l874y33i26y5kjg3pf1vswyjif8k93pqhi0iqykpbxfsg382";
|
||||
get_bombay = get_url_zip bombay_url "05fnh1imxdb4sb076fzqywqszp31whdbkzmpkqxc8q2r1m5vj3hg"
|
||||
+ "mv tip.zip bombay.zip\n";
|
||||
get_termkey = get_url termkey_url "12gkrv1ldwk945qbpprnyawh0jz7rmqh18fyndbxiajyxmj97538";
|
||||
|
||||
|
||||
get_deps = get_scintilla
|
||||
+ get_scinterm
|
||||
+ get_scintillua
|
||||
+ get_lua
|
||||
+ get_lpeg
|
||||
+ get_lfs
|
||||
+ get_luautf8_zip
|
||||
+ get_lspawn
|
||||
+ get_luajit
|
||||
+ get_libluajit
|
||||
+ get_gtdialog
|
||||
+ get_cdk
|
||||
+ get_bombay
|
||||
+ get_termkey;
|
||||
in
|
||||
stdenv.mkDerivation rec{
|
||||
version = "8.2";
|
||||
scintillua_version = "3.6.0-1";
|
||||
stdenv.mkDerivation rec {
|
||||
version = "8.7";
|
||||
name = "textadept-${version}";
|
||||
inherit buildInputs;
|
||||
|
||||
buildInputs = [
|
||||
gtk glib pkgconfig unzip ncurses zip
|
||||
];
|
||||
|
||||
src = fetchhg {
|
||||
url = http://foicica.com/hg/textadept;
|
||||
rev = "textadept_${version}";
|
||||
sha256 = "1vb6a15fyk7ixcv5fy0g400lxbj6dp5ndbmyx53d28idbdkz9ap1";
|
||||
sha256 = "1gi73wk11w3rbkxqqdp8z9g83qiyhx6gxry221vxjxpqsl9pvhlf";
|
||||
};
|
||||
|
||||
preConfigure = ''
|
||||
cd src
|
||||
|
||||
# Make a dummy wget.
|
||||
mkdir wget
|
||||
echo '#! ${stdenv.shell}' > wget/wget
|
||||
chmod a+x wget/wget
|
||||
export PATH="$PATH:$PWD/wget"
|
||||
${get_url http://prdownloads.sourceforge.net/scintilla/scintilla360.tgz "07ib4w3n9kqfaia2yngj2q7ab5r55zn0hccfzph6vas9hl8vk9zf"}
|
||||
${get_url http://foicica.com/scinterm/download/scinterm_1.6.zip "0ixwj9il6ri1xl4nvb6f108z4qhrahysza6frbbaqmbdz21hnmcl"}
|
||||
${get_url http://foicica.com/scintillua/download/scintillua_3.6.0-1.zip "0zk1ciyyi0d3dz4dzzq5fa74505pvqf0w5yszl7l29c1l4hkk561"}
|
||||
${get_url http://www.lua.org/ftp/lua-5.3.1.tar.gz "05xczy5ws6d7ic3f9h9djwg983bpa4pmds3698264bncssm6f9q7"}
|
||||
${get_url http://www.inf.puc-rio.br/~roberto/lpeg/lpeg-0.12.2.tar.gz "01002avq90yc8rgxa5z9a1768jm054iid3pnfpywdcfij45jgbba"}
|
||||
${get_url_zip http://github.com/keplerproject/luafilesystem/archive/v_1_6_3.zip "1hxcnqj53540ysyw8fzax7f09pl98b8f55s712gsglcdxp2g2pri"}
|
||||
${get_url http://foicica.com/lspawn/download/lspawn_1.2.zip "1fhfi274bxlsdvva5q5j0wv8hx68cmf3vnv9spllzad4jdvz82xv"}
|
||||
${get_url http://luajit.org/download/LuaJIT-2.0.3.tar.gz "0ydxpqkmsn2c341j4r2v6r5r0ig3kbwv3i9jran3iv81s6r6rgjm"}
|
||||
${get_url http://foicica.com/gtdialog/download/gtdialog_1.2.zip "0nvcldyhj8abr8jny9pbyfjwg8qfp9f2h508vjmrvr5c5fqdbbm0"}
|
||||
${get_url ftp://invisible-island.net/cdk/cdk-5.0-20150928.tgz "028da75d5f777a1c4184f88e34918bd273bd83bbe3c959bc11710c4f0ea2e448"}
|
||||
mv cdk-*.tgz cdk.tar.gz
|
||||
${get_url_zip http://foicica.com/hg/bombay/archive/d704272c3629.zip "19dg3ky87rfy0a3319vmv18hgn9spplpznvlqnk3djh239ddpplw"}
|
||||
mv d704*.zip bombay.zip
|
||||
${get_url http://www.leonerd.org.uk/code/libtermkey/libtermkey-0.17.tar.gz "12gkrv1ldwk945qbpprnyawh0jz7rmqh18fyndbxiajyxmj97538"}
|
||||
|
||||
${get_deps}
|
||||
|
||||
# Let the build system do whatever setup it needs to do with these files.
|
||||
make deps
|
||||
'';
|
||||
|
||||
postBuild = ''
|
||||
make curses
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
make curses install PREFIX=$out MAKECMDGOALS=curses
|
||||
'';
|
||||
makeFlags = ["PREFIX=$(out)"];
|
||||
meta = {
|
||||
inherit version;
|
||||
|
||||
makeFlags = [
|
||||
"PREFIX=$(out)"
|
||||
];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "An extensible text editor based on Scintilla with Lua scripting";
|
||||
license = stdenv.lib.licenses.mit ;
|
||||
maintainers = [stdenv.lib.maintainers.raskin];
|
||||
platforms = stdenv.lib.platforms.linux;
|
||||
homepage = "http://foicica.com/textadept";
|
||||
homepage = http://foicica.com/textadept;
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ raskin mirrexagon ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
|
@ -174,7 +174,7 @@ rec {
|
||||
installPhase = "installPlugins gmic_gimp";
|
||||
|
||||
meta = {
|
||||
description = "script language for image processing which comes with its open-source interpreter";
|
||||
description = "Script language for image processing which comes with its open-source interpreter";
|
||||
homepage = http://gmic.eu/gimp.shtml;
|
||||
license = stdenv.lib.licenses.cecill20;
|
||||
/*
|
||||
|
@ -3,13 +3,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "viewnior-${version}";
|
||||
version = "1.5";
|
||||
version = "1.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "xsisqox";
|
||||
repo = "Viewnior";
|
||||
rev = name;
|
||||
sha256 = "0y352hkkwmzb13a87vqgj1dpdn81qk94acby1a93xkqr1qs626lw";
|
||||
sha256 = "06ppv3r85l3id4ij6h4y5fgm3nib2587fdrdv9fccyi75zk7fs0p";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ autoreconfHook ];
|
||||
|
@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
meta = {
|
||||
homepage = http://xournal.sourceforge.net/;
|
||||
description = "note-taking application (supposes stylus)";
|
||||
description = "Note-taking application (supposes stylus)";
|
||||
maintainers = [ stdenv.lib.maintainers.guibert ];
|
||||
license = stdenv.lib.licenses.gpl2;
|
||||
};
|
||||
|
@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
|
||||
];
|
||||
|
||||
meta = {
|
||||
description = "a generic, highly customizable, and efficient menu for the X Window System";
|
||||
description = "A generic, highly customizable, and efficient menu for the X Window System";
|
||||
homepage = http://tools.suckless.org/dmenu;
|
||||
license = stdenv.lib.licenses.mit;
|
||||
maintainers = with stdenv.lib.maintainers; [ ];
|
||||
|
@ -17,7 +17,7 @@ stdenv.mkDerivation {
|
||||
|
||||
meta = {
|
||||
homepage = "http://www.fetchmail.info/";
|
||||
description = "a full-featured remote-mail retrieval and forwarding utility";
|
||||
description = "A full-featured remote-mail retrieval and forwarding utility";
|
||||
longDescription = ''
|
||||
A full-featured, robust, well-documented remote-mail retrieval and
|
||||
forwarding utility intended to be used over on-demand TCP/IP links
|
||||
|
56
pkgs/applications/misc/ganttproject-bin/default.nix
Normal file
56
pkgs/applications/misc/ganttproject-bin/default.nix
Normal file
@ -0,0 +1,56 @@
|
||||
{ stdenv, fetchzip, makeDesktopItem, makeWrapper
|
||||
, jre }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "ganttproject-bin-${version}";
|
||||
version = "2.7.2";
|
||||
|
||||
src = let build = "r1954"; in fetchzip {
|
||||
sha256 = "0l655w6n88j7klz56af8xkpiv1pwlkfl5x1d33sqv9dnyisyw2hc";
|
||||
url = "https://dl.ganttproject.biz/ganttproject-${version}/"
|
||||
+ "ganttproject-${version}-${build}.zip";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
buildInputs = [ jre ];
|
||||
|
||||
phases = [ "unpackPhase" "installPhase" "fixupPhase" ];
|
||||
|
||||
installPhase = let
|
||||
|
||||
desktopItem = makeDesktopItem {
|
||||
name = "ganttproject";
|
||||
exec = "ganttproject";
|
||||
icon = "ganttproject";
|
||||
desktopName = "GanttProject";
|
||||
genericName = "Shedule and manage projects";
|
||||
comment = meta.description;
|
||||
categories = "Office;Application;";
|
||||
};
|
||||
|
||||
in ''
|
||||
mkdir -pv "$out/share/ganttproject"
|
||||
cp -rv * "$out/share/ganttproject"
|
||||
|
||||
mkdir -pv "$out/bin"
|
||||
wrapProgram "$out/share/ganttproject/ganttproject" \
|
||||
--set JAVA_HOME "${jre}"
|
||||
mv -v "$out/share/ganttproject/ganttproject" "$out/bin"
|
||||
|
||||
install -v -Dm644 \
|
||||
plugins/net.sourceforge.ganttproject/data/resources/icons/ganttproject.png \
|
||||
"$out/share/pixmaps/ganttproject.png"
|
||||
cp -rv "${desktopItem}/share/applications" "$out/share"
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Project scheduling and management";
|
||||
homepage = https://www.ganttproject.biz/;
|
||||
downloadPage = https://www.ganttproject.biz/download;
|
||||
# GanttProject itself is GPL3+. All bundled libraries are declared
|
||||
# ‘GPL3-compatible’. See ${downloadPage} for detailed information.
|
||||
license = licenses.gpl3Plus;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ nckx ];
|
||||
};
|
||||
}
|
@ -1,24 +1,23 @@
|
||||
{ stdenv, fetchFromGitHub, pkgconfig, qt4, qmake4Hook, libXtst, libvorbis, hunspell
|
||||
, libao, ffmpeg, libeb, lzo, xz, libtiff }:
|
||||
{ stdenv, fetchurl, pkgconfig, libXtst, libvorbis, hunspell
|
||||
, libao, ffmpeg, libeb, lzo, xz, libtiff
|
||||
, qtbase, qtsvg, qtwebkit, qtx11extras, qttools, qmakeHook }:
|
||||
stdenv.mkDerivation rec {
|
||||
name = "goldendict-1.5.0.ec86515";
|
||||
src = fetchFromGitHub {
|
||||
owner = "goldendict";
|
||||
repo = "goldendict";
|
||||
rev = "ec865158f5b7116f629e4d451a39ee59093eefa5";
|
||||
sha256 = "070majwxbn15cy7sbgz7ljl8rkn7vcgkm10884v97csln7bfzwhr";
|
||||
name = "goldendict-1.5.0.rc2";
|
||||
src = fetchurl {
|
||||
url = "https://github.com/goldendict/goldendict/archive/1.5.0-RC2.tar.gz";
|
||||
sha256 = "1pizz39l61rbps0wby75fkvzyrah805257j33siqybwhsfiy1kmw";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
pkgconfig qt4 libXtst libvorbis hunspell libao ffmpeg libeb
|
||||
lzo xz libtiff qmake4Hook
|
||||
pkgconfig qtbase qtsvg qtwebkit qtx11extras qttools libXtst libvorbis hunspell libao ffmpeg libeb
|
||||
lzo xz libtiff qmakeHook
|
||||
];
|
||||
|
||||
qmakeFlags = [ "CONFIG+=zim_support" ];
|
||||
|
||||
meta = {
|
||||
homepage = http://goldendict.org/;
|
||||
description = "a feature-rich dictionary lookup program";
|
||||
description = "A feature-rich dictionary lookup program";
|
||||
|
||||
platforms = stdenv.lib.platforms.linux;
|
||||
maintainers = [ stdenv.lib.maintainers.astsmtl ];
|
||||
|
@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
|
||||
buildInputs = [ libgphoto2 libexif popt libjpeg readline libtool ];
|
||||
|
||||
meta = {
|
||||
description = "a ready to use set of digital camera software applications";
|
||||
description = "A ready to use set of digital camera software applications";
|
||||
longDescription = ''
|
||||
|
||||
A set of command line utilities for manipulating over 1400 different
|
||||
|
@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
buildInputs = [ intltool gnome3.gtk pkgconfig texinfo ];
|
||||
meta = {
|
||||
description = "a GTK enabled dropin replacement for xmessage";
|
||||
description = "A GTK enabled dropin replacement for xmessage";
|
||||
homepage = "http://homepages.ihug.co.nz/~trmusson/programs.html#gxmessage";
|
||||
license = stdenv.lib.licenses.gpl3;
|
||||
maintainers = with stdenv.lib.maintainers; [jfb];
|
||||
|
@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
meta = {
|
||||
homepage = "http://www.jbidwatcher.com/";
|
||||
description = "monitor and snipe Ebay auctions";
|
||||
description = "Monitor and snipe Ebay auctions";
|
||||
license = "LGPL";
|
||||
|
||||
longDescription = ''
|
||||
|
@ -17,7 +17,7 @@ stdenv.mkDerivation {
|
||||
preConfigure = "./autogen.sh"; # install.sh is not contained in the tar
|
||||
|
||||
meta = {
|
||||
description = "modular program to synchronize calendars, addressbooks and other PIM data between pcs, mobile devices etc";
|
||||
description = "Modular program to synchronize calendars, addressbooks and other PIM data between pcs, mobile devices etc";
|
||||
};
|
||||
}
|
||||
|
||||
|
78
pkgs/applications/misc/netsurf/browser/default.nix
Normal file
78
pkgs/applications/misc/netsurf/browser/default.nix
Normal file
@ -0,0 +1,78 @@
|
||||
{ stdenv, fetchurl, pkgconfig, libpng, openssl, curl, gtk2, check
|
||||
, libxml2, libidn, perl, nettools, perlPackages
|
||||
, libXcursor, libXrandr, makeWrapper
|
||||
, buildsystem
|
||||
, nsgenbind
|
||||
, libnsfb
|
||||
, libwapcaplet
|
||||
, libparserutils
|
||||
, libcss
|
||||
, libhubbub
|
||||
, libdom
|
||||
, libnsbmp
|
||||
, libnsgif
|
||||
, libnsutils
|
||||
, libutf8proc
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
|
||||
name = "netsurf-${version}";
|
||||
version = "3.5";
|
||||
|
||||
# UIS incldue Framebuffer, and gtk, but
|
||||
# Framebuffer is buggy. To enable, make sure
|
||||
# to also build netsurf-libnsfb with ui=framebuffer
|
||||
# and switch the ui here to framebuffer
|
||||
ui = "gtk";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://download.netsurf-browser.org/netsurf/releases/source/netsurf-${version}-src.tar.gz";
|
||||
sha256 = "1k0x8mzgavfy7q9kywl6kzsc084g1xlymcnsxi5v6jp279nsdwwq";
|
||||
};
|
||||
|
||||
buildInputs = [ pkgconfig libpng openssl curl gtk2 check libxml2 libidn perl
|
||||
nettools perlPackages.HTMLParser libXcursor libXrandr makeWrapper
|
||||
buildsystem
|
||||
nsgenbind
|
||||
libnsfb
|
||||
libwapcaplet
|
||||
libparserutils
|
||||
libcss
|
||||
libhubbub
|
||||
libdom
|
||||
libnsbmp
|
||||
libnsgif
|
||||
libnsutils
|
||||
libutf8proc
|
||||
];
|
||||
|
||||
preConfigure = ''
|
||||
cat <<EOF > Makefile.conf
|
||||
override NETSURF_GTK_RESOURCES := $out/share/Netsurf/${ui}/res
|
||||
override NETSURF_USE_GRESOURCE := YES
|
||||
EOF
|
||||
'';
|
||||
|
||||
makeFlags = [
|
||||
"PREFIX=$(out)"
|
||||
"NSSHARED=${buildsystem}/share/netsurf-buildsystem"
|
||||
"TARGET=${ui}"
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin $out/share/Netsurf/${ui}
|
||||
cmd=$(case "${ui}" in framebuffer) echo nsfb;; gtk) echo nsgtk;; esac)
|
||||
cp $cmd $out/bin/netsurf
|
||||
wrapProgram $out/bin/netsurf --set NETSURFRES $out/share/Netsurf/${ui}/res
|
||||
tar -hcf - ${ui}/res | (cd $out/share/Netsurf/ && tar -xvpf -)
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = "http://www.netsurf-browser.org/";
|
||||
description = "Free opensource web browser";
|
||||
license = licenses.gpl2;
|
||||
maintainers = [ maintainers.vrthra ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
24
pkgs/applications/misc/netsurf/buildsystem/default.nix
Normal file
24
pkgs/applications/misc/netsurf/buildsystem/default.nix
Normal file
@ -0,0 +1,24 @@
|
||||
{ stdenv, fetchurl }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
|
||||
name = "netsurf-buildsystem-${version}";
|
||||
version = "1.5";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://download.netsurf-browser.org/libs/releases/buildsystem-${version}.tar.gz";
|
||||
sha256 = "0wdgvasrjik1dgvvpqbppbpyfzkqd1v45x3g9rq7p67n773azinv";
|
||||
};
|
||||
|
||||
makeFlags = [
|
||||
"PREFIX=$(out)"
|
||||
];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = "http://www.netsurf-browser.org/";
|
||||
description = "Build system for netsurf browser";
|
||||
license = licenses.gpl2;
|
||||
maintainers = [ maintainers.vrthra ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
36
pkgs/applications/misc/netsurf/libcss/default.nix
Normal file
36
pkgs/applications/misc/netsurf/libcss/default.nix
Normal file
@ -0,0 +1,36 @@
|
||||
{ stdenv, fetchurl, pkgconfig, perl
|
||||
, buildsystem
|
||||
, libwapcaplet
|
||||
, libparserutils
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
|
||||
name = "netsurf-${libname}-${version}";
|
||||
libname = "libcss";
|
||||
version = "0.6.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz";
|
||||
sha256 = "0qp4p1q1dwgdra4pkrzd081zjzisxkgwx650ijx323j8bj725daf";
|
||||
};
|
||||
|
||||
buildInputs = [ pkgconfig perl
|
||||
buildsystem
|
||||
libwapcaplet
|
||||
libparserutils
|
||||
];
|
||||
|
||||
makeFlags = [
|
||||
"PREFIX=$(out)"
|
||||
"NSSHARED=${buildsystem}/share/netsurf-buildsystem"
|
||||
];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = "http://www.netsurf-browser.org/";
|
||||
description = "Cascading Style Sheets library for netsurf browser";
|
||||
license = licenses.gpl2;
|
||||
maintainers = [ maintainers.vrthra ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
38
pkgs/applications/misc/netsurf/libdom/default.nix
Normal file
38
pkgs/applications/misc/netsurf/libdom/default.nix
Normal file
@ -0,0 +1,38 @@
|
||||
{ stdenv, fetchurl, pkgconfig, expat
|
||||
, buildsystem
|
||||
, libparserutils
|
||||
, libwapcaplet
|
||||
, libhubbub
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
|
||||
name = "netsurf-${libname}-${version}";
|
||||
libname = "libdom";
|
||||
version = "0.3.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz";
|
||||
sha256 = "1kk6qbqagx5ypiy9kf0059iqdzyz8fqaw336vzhb5gnrzjw3wv4a";
|
||||
};
|
||||
|
||||
buildInputs = [ pkgconfig expat
|
||||
buildsystem
|
||||
libparserutils
|
||||
libwapcaplet
|
||||
libhubbub
|
||||
];
|
||||
|
||||
makeFlags = [
|
||||
"PREFIX=$(out)"
|
||||
"NSSHARED=${buildsystem}/share/netsurf-buildsystem"
|
||||
];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = "http://www.netsurf-browser.org/";
|
||||
description = "Document Object Model library for netsurf browser";
|
||||
license = licenses.gpl2;
|
||||
maintainers = [ maintainers.vrthra ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
34
pkgs/applications/misc/netsurf/libhubbub/default.nix
Normal file
34
pkgs/applications/misc/netsurf/libhubbub/default.nix
Normal file
@ -0,0 +1,34 @@
|
||||
{ stdenv, fetchurl, pkgconfig, perl
|
||||
, buildsystem
|
||||
, libparserutils
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
|
||||
name = "netsurf-${libname}-${version}";
|
||||
libname = "libhubbub";
|
||||
version = "0.3.3";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz";
|
||||
sha256 = "101781iw32p47386fxqr01nrkywi12w17ajh02k2vlga4z8zyv86";
|
||||
};
|
||||
|
||||
buildInputs = [ pkgconfig perl
|
||||
buildsystem
|
||||
libparserutils
|
||||
];
|
||||
|
||||
makeFlags = [
|
||||
"PREFIX=$(out)"
|
||||
"NSSHARED=${buildsystem}/share/netsurf-buildsystem"
|
||||
];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = "http://www.netsurf-browser.org/";
|
||||
description = "HTML5 parser library for netsurf browser";
|
||||
license = licenses.gpl2;
|
||||
maintainers = [ maintainers.vrthra ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
32
pkgs/applications/misc/netsurf/libnsbmp/default.nix
Normal file
32
pkgs/applications/misc/netsurf/libnsbmp/default.nix
Normal file
@ -0,0 +1,32 @@
|
||||
{ stdenv, fetchurl, pkgconfig
|
||||
, buildsystem
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
|
||||
name = "netsurf-${libname}-${version}";
|
||||
libname = "libnsbmp";
|
||||
version = "0.1.3";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz";
|
||||
sha256 = "0gmvzw1whh7553d6s98vr4ri2whjwrgggcq1z5b160gwjw20mzyy";
|
||||
};
|
||||
|
||||
buildInputs = [ pkgconfig
|
||||
buildsystem
|
||||
];
|
||||
|
||||
makeFlags = [
|
||||
"PREFIX=$(out)"
|
||||
"NSSHARED=${buildsystem}/share/netsurf-buildsystem"
|
||||
];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = "http://www.netsurf-browser.org/";
|
||||
description = "BMP Decoder for netsurf browser";
|
||||
license = licenses.gpl2;
|
||||
maintainers = [ maintainers.vrthra ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
31
pkgs/applications/misc/netsurf/libnsfb/default.nix
Normal file
31
pkgs/applications/misc/netsurf/libnsfb/default.nix
Normal file
@ -0,0 +1,31 @@
|
||||
{ stdenv, fetchurl, pkgconfig, ui? "gtk"
|
||||
, buildsystem
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
|
||||
name = "netsurf-${libname}-${version}";
|
||||
libname = "libnsfb";
|
||||
version = "0.1.4";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz";
|
||||
sha256 = "176f8why9gzbaca9nnxjqasl02qzc6g507z5w3dzkcjifnkz4mzl";
|
||||
};
|
||||
|
||||
buildInputs = [ pkgconfig buildsystem ];
|
||||
|
||||
makeFlags = [
|
||||
"PREFIX=$(out)"
|
||||
"NSSHARED=${buildsystem}/share/netsurf-buildsystem"
|
||||
"TARGET=${ui}"
|
||||
];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = "http://www.netsurf-browser.org/";
|
||||
description = "CSS parser and selection library for netsurf browser";
|
||||
license = licenses.gpl2;
|
||||
maintainers = [ maintainers.vrthra ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
30
pkgs/applications/misc/netsurf/libnsgif/default.nix
Normal file
30
pkgs/applications/misc/netsurf/libnsgif/default.nix
Normal file
@ -0,0 +1,30 @@
|
||||
{ stdenv, fetchurl, pkgconfig
|
||||
, buildsystem
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
|
||||
name = "netsurf-${libname}-${version}";
|
||||
libname = "libnsgif";
|
||||
version = "0.1.3";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz";
|
||||
sha256 = "1a4z45gh0fw4iybf34fig725av25h31ffk0azi0snzh4130cklnk";
|
||||
};
|
||||
|
||||
buildInputs = [ buildsystem pkgconfig];
|
||||
|
||||
makeFlags = [
|
||||
"PREFIX=$(out)"
|
||||
"NSSHARED=${buildsystem}/share/netsurf-buildsystem"
|
||||
];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = "http://www.netsurf-browser.org/";
|
||||
description = "GIF Decoder for netsurf browser";
|
||||
license = licenses.gpl2;
|
||||
maintainers = [ maintainers.vrthra ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
30
pkgs/applications/misc/netsurf/libnsutils/default.nix
Normal file
30
pkgs/applications/misc/netsurf/libnsutils/default.nix
Normal file
@ -0,0 +1,30 @@
|
||||
{ stdenv, fetchurl, pkgconfig
|
||||
, buildsystem
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
|
||||
name = "netsurf-${libname}-${version}";
|
||||
libname = "libnsutils";
|
||||
version = "0.0.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz";
|
||||
sha256 = "03p4xmd08yhj70nyj7acjccmmshs59lv4n4zsqpsn5lgkwa23lzy";
|
||||
};
|
||||
|
||||
buildInputs = [ buildsystem pkgconfig];
|
||||
|
||||
makeFlags = [
|
||||
"PREFIX=$(out)"
|
||||
"NSSHARED=${buildsystem}/share/netsurf-buildsystem"
|
||||
];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = "http://www.netsurf-browser.org/";
|
||||
description = "Generalised utility library for netsurf browser";
|
||||
license = licenses.gpl2;
|
||||
maintainers = [ maintainers.vrthra ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
30
pkgs/applications/misc/netsurf/libparserutils/default.nix
Normal file
30
pkgs/applications/misc/netsurf/libparserutils/default.nix
Normal file
@ -0,0 +1,30 @@
|
||||
{ stdenv, fetchurl, perl
|
||||
, buildsystem
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
|
||||
name = "netsurf-${libname}-${version}";
|
||||
libname = "libparserutils";
|
||||
version = "0.2.3";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz";
|
||||
sha256 = "01gzlsabgl6x0icd8758d9jqs8rrf9574bdkjainn04w3fs3znf5";
|
||||
};
|
||||
|
||||
buildInputs = [ buildsystem perl ];
|
||||
|
||||
makeFlags = [
|
||||
"PREFIX=$(out)"
|
||||
"NSSHARED=${buildsystem}/share/netsurf-buildsystem"
|
||||
];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = "http://www.netsurf-browser.org/";
|
||||
description = "Parser building library for netsurf browser";
|
||||
license = licenses.gpl2;
|
||||
maintainers = [ maintainers.vrthra ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
30
pkgs/applications/misc/netsurf/libutf8proc/default.nix
Normal file
30
pkgs/applications/misc/netsurf/libutf8proc/default.nix
Normal file
@ -0,0 +1,30 @@
|
||||
{ stdenv, fetchurl, pkgconfig
|
||||
, buildsystem
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
|
||||
name = "netsurf-${libname}-${version}";
|
||||
libname = "libutf8proc";
|
||||
version = "1.3.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz";
|
||||
sha256 = "0xf659y3c6ikjnip47r30wv796a34d71p6qhc4xjs64iqszm1sbq";
|
||||
};
|
||||
|
||||
buildInputs = [ buildsystem pkgconfig];
|
||||
|
||||
makeFlags = [
|
||||
"PREFIX=$(out)"
|
||||
"NSSHARED=${buildsystem}/share/netsurf-buildsystem"
|
||||
];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = "http://www.netsurf-browser.org/";
|
||||
description = "UTF8 Processing library for netsurf browser";
|
||||
license = licenses.gpl2;
|
||||
maintainers = [ maintainers.vrthra ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
30
pkgs/applications/misc/netsurf/libwapcaplet/default.nix
Normal file
30
pkgs/applications/misc/netsurf/libwapcaplet/default.nix
Normal file
@ -0,0 +1,30 @@
|
||||
{ stdenv, fetchurl
|
||||
, buildsystem
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
|
||||
name = "netsurf-${libname}-${version}";
|
||||
libname = "libwapcaplet";
|
||||
version = "0.3.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz";
|
||||
sha256 = "0cs1dd2afjgc3wf5gqg434hv6jdabrp9qvlpl4dp53nhkyfywna3";
|
||||
};
|
||||
|
||||
buildInputs = [ buildsystem ];
|
||||
|
||||
makeFlags = [
|
||||
"PREFIX=$(out)"
|
||||
"NSSHARED=${buildsystem}/share/netsurf-buildsystem"
|
||||
];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = "http://www.netsurf-browser.org/";
|
||||
description = "String internment library for netsurf browser";
|
||||
license = licenses.gpl2;
|
||||
maintainers = [ maintainers.vrthra ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
30
pkgs/applications/misc/netsurf/nsgenbind/default.nix
Normal file
30
pkgs/applications/misc/netsurf/nsgenbind/default.nix
Normal file
@ -0,0 +1,30 @@
|
||||
{ stdenv, fetchurl
|
||||
, flex, bison
|
||||
, buildsystem
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
|
||||
name = "netsurf-nsgenbind-${version}";
|
||||
version = "0.3";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://download.netsurf-browser.org/libs/releases/nsgenbind-${version}-src.tar.gz";
|
||||
sha256 = "16xsazly7gxwywmlkf2xix9b924sj3skhgdak7218l0nc62a08gg";
|
||||
};
|
||||
|
||||
buildInputs = [ buildsystem flex bison ];
|
||||
|
||||
makeFlags = [
|
||||
"PREFIX=$(out)"
|
||||
"NSSHARED=${buildsystem}/share/netsurf-buildsystem"
|
||||
];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = "http://www.netsurf-browser.org/";
|
||||
description = "Generator for JavaScript bindings for netsurf browser";
|
||||
license = licenses.gpl2;
|
||||
maintainers = [ maintainers.vrthra ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
37
pkgs/applications/misc/nix-tour/default.nix
Normal file
37
pkgs/applications/misc/nix-tour/default.nix
Normal file
@ -0,0 +1,37 @@
|
||||
{ stdenv, fetchgit, electron } :
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "nix-tour";
|
||||
|
||||
buildInputs = [ electron ];
|
||||
|
||||
version = "v0.0.1";
|
||||
|
||||
src = fetchgit {
|
||||
url = "https://github.com/nixcloud/tour_of_nix";
|
||||
rev = "refs/tags/${version}";
|
||||
sha256 = "09b1vxli4zv1nhqnj6c0vrrl51gaira94i8l7ww96fixqxjgdwvb";
|
||||
};
|
||||
|
||||
phases = [ "unpackPhase" "installPhase" ];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
mkdir -p $out/share
|
||||
cp -R * $out/share
|
||||
chmod 0755 $out/share/ -R
|
||||
echo "#!${stdenv.shell}" > $out/bin/nix-tour
|
||||
echo "cd $out/share/" >> $out/bin/nix-tour
|
||||
echo "${electron}/bin/electron $out/share/electron-main.js" >> $out/bin/nix-tour
|
||||
chmod 0755 $out/bin/nix-tour
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "'the tour of nix' from nixcloud.io/tour as offline version";
|
||||
homepage = "https://nixcloud.io/tour";
|
||||
license = licenses.gpl2;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ qknight ];
|
||||
};
|
||||
|
||||
}
|
@ -30,7 +30,7 @@ stdenv.mkDerivation {
|
||||
buildInputs = [unzip];
|
||||
|
||||
meta = {
|
||||
description = "open source Geographic Information System (GIS) written in the Java programming language";
|
||||
description = "Open source Geographic Information System (GIS) written in the Java programming language";
|
||||
homepage = http://www.openjump.org/index.html;
|
||||
license = stdenv.lib.licenses.gpl2;
|
||||
maintainers = [stdenv.lib.maintainers.marcweber];
|
||||
|
@ -1,15 +1,15 @@
|
||||
{ stdenv, fetchurl, autoreconfHook, pkgconfig, libX11, libxkbcommon, pango
|
||||
, cairo, glib, libxcb, xcbutil, xcbutilwm, which, git, libstartup_notification
|
||||
, cairo, glib, libxcb, xcbutil, xcbutilwm, libstartup_notification
|
||||
, i3Support ? false, i3
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "1.0.1";
|
||||
version = "1.1.0";
|
||||
name = "rofi-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/DaveDavenport/rofi/releases/download/${version}/${name}.tar.xz";
|
||||
sha256 = "01jxml9vk4cw7pngpan7dipmb98s6ibh6f0023lw3hbgxy650637";
|
||||
sha256 = "1l8vl0mh7i0b1ycifqpg6392f5i4qxlv003m126skfk6fnlfq8hn";
|
||||
};
|
||||
|
||||
preConfigure = ''
|
||||
@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
|
||||
'';
|
||||
|
||||
buildInputs = [ autoreconfHook pkgconfig libX11 libxkbcommon pango
|
||||
cairo libstartup_notification libxcb xcbutil xcbutilwm which git
|
||||
cairo libstartup_notification libxcb xcbutil xcbutilwm
|
||||
] ++ stdenv.lib.optional i3Support i3;
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
|
25
pkgs/applications/misc/sequelpro/default.nix
Normal file
25
pkgs/applications/misc/sequelpro/default.nix
Normal file
@ -0,0 +1,25 @@
|
||||
{ stdenv, fetchurl, undmg }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "sequel-pro-${version}";
|
||||
version = "1.1.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/sequelpro/sequelpro/releases/download/release-1.1.2/sequel-pro-1.1.2.dmg";
|
||||
sha256 = "1il7yc3f0yzxkra27bslnmka5ycxzx0q4m3xz2j9r7iyq5izsd3v";
|
||||
};
|
||||
|
||||
buildInputs = [ undmg ];
|
||||
installPhase = ''
|
||||
mkdir -p "$out/Applications/Sequel Pro.app"
|
||||
cp -R . "$out/Applications/Sequel Pro.app"
|
||||
chmod +x "$out/Applications/Sequel Pro.app/Contents/MacOS/Sequel Pro"
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "MySQL database management for Mac OS X";
|
||||
homepage = http://www.sequelpro.com/;
|
||||
license = stdenv.lib.licenses.mit;
|
||||
platforms = stdenv.lib.platforms.darwin;
|
||||
};
|
||||
}
|
@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/mjheagle8/tasknc";
|
||||
description = "a ncurses wrapper around taskwarrior";
|
||||
description = "A ncurses wrapper around taskwarrior";
|
||||
maintainers = [ stdenv.lib.maintainers.matthiasbeyer ];
|
||||
platforms = stdenv.lib.platforms.linux; # Cannot test others
|
||||
};
|
||||
|
@ -35,7 +35,7 @@ stdenv.mkDerivation {
|
||||
|
||||
meta = {
|
||||
homepage = "http://www.foolabs.com/xpdf/";
|
||||
description = "viewer for Portable Document Format (PDF) files";
|
||||
description = "Viewer for Portable Document Format (PDF) files";
|
||||
|
||||
platforms = stdenv.lib.platforms.unix;
|
||||
maintainers = [ stdenv.lib.maintainers.peti ];
|
||||
|
@ -57,7 +57,7 @@ let
|
||||
use_system_libevent = true;
|
||||
use_system_libexpat = true;
|
||||
# XXX: System libjpeg fails to link for version 52.0.2743.10
|
||||
use_system_libjpeg = upstream-info.version != "52.0.2743.10";
|
||||
use_system_libjpeg = versionOlder upstream-info.version "52.0.2743.10";
|
||||
use_system_libpng = false;
|
||||
use_system_libwebp = true;
|
||||
use_system_libxml = true;
|
||||
|
@ -1,18 +1,18 @@
|
||||
# This file is autogenerated from update.sh in the same directory.
|
||||
{
|
||||
beta = {
|
||||
sha256 = "1sgfwh2b0aw6l5v4ggk7frcy306x3ygxk81p3h6zdy5s1rpf8hxj";
|
||||
sha256bin64 = "14qj8l5dapha87ndyzcs3spaxp3s9sapcjcplkisbivis09a29cb";
|
||||
version = "51.0.2704.63";
|
||||
sha256 = "00dll63b3z1ijj60m0h8y2ydmkf91hyr6h98rqp21w11c2xbwzis";
|
||||
sha256bin64 = "1cdfvi5af18mlhn2ax3shsdm4p4jkhs29v3d2gmkyldfvvixh3zc";
|
||||
version = "52.0.2743.41";
|
||||
};
|
||||
dev = {
|
||||
sha256 = "1bbwbn0svgr2pfkza8pdq61bjzlj50axdm5bqqxi51hab51fc9ww";
|
||||
sha256bin64 = "1s02q72b84g9p5i7y1hh1c67qjb92934dqqwd7w6j0jz8ix71nzc";
|
||||
version = "52.0.2743.10";
|
||||
sha256 = "1pzcabdk7d9p4sc8wdpwvji9xvblsihpimnjh6n2jz5al9sm1q8j";
|
||||
sha256bin64 = "0k84hy4sj03h5bjciigagr83qf7yss22vj21fivgkvgasdmd12m8";
|
||||
version = "53.0.2767.4";
|
||||
};
|
||||
stable = {
|
||||
sha256 = "1sgfwh2b0aw6l5v4ggk7frcy306x3ygxk81p3h6zdy5s1rpf8hxj";
|
||||
sha256bin64 = "1kjnxxf2ak8v1akzxz46r7a7r6bhxjb2y9fhr1fqvks3m4jc5zqw";
|
||||
version = "51.0.2704.63";
|
||||
sha256 = "0aypf5lhi2l7cn41xhq2ck6bjblapwv26nygvg2883hhqinmnwvn";
|
||||
sha256bin64 = "1c1796sd82l480xjdw7w46867w2phw3ng2dvdb6njsvpg299chi8";
|
||||
version = "51.0.2704.103";
|
||||
};
|
||||
}
|
||||
|
@ -2,13 +2,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pkgname = "conkeror";
|
||||
version = "1.0pre-20160130";
|
||||
version = "1.0.3";
|
||||
name = "${pkgname}-${version}";
|
||||
|
||||
src = fetchgit {
|
||||
url = git://repo.or.cz/conkeror.git;
|
||||
rev = "3e4732cd0d15aa70121fe0a0403103b777c964bf";
|
||||
sha256 = "1299b1kdfd2vip3w02jzvj2i8scjpsvpx19d2c8ms2pizz7xxmp4";
|
||||
rev = "refs/tags/${version}";
|
||||
sha256 = "06fhfk8km3gd1lc19543zn0c71zfbn8wsalinvm1dbgi724f52pd";
|
||||
};
|
||||
|
||||
buildInputs = [ unzip makeWrapper ];
|
||||
|
@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
|
||||
meta = with stdenv.lib; {
|
||||
platforms = platforms.linux;
|
||||
maintainers = [ maintainers.phreedom ];
|
||||
description = "a WebKit KPart for Konqueror, Akregator and other KDE applications";
|
||||
description = "A WebKit KPart for Konqueror, Akregator and other KDE applications";
|
||||
homepage = https://projects.kde.org/projects/extragear/base/kwebkitpart;
|
||||
};
|
||||
}
|
||||
|
@ -48,8 +48,8 @@ stdenv.mkDerivation {
|
||||
--prefix GIO_EXTRA_MODULES : "${glib_networking.out}/lib/gio/modules" \
|
||||
--prefix XDG_DATA_DIRS : "${gsettings_desktop_schemas}/share:$out/usr/share/:$out/share/:$GSETTINGS_SCHEMAS_PATH" \
|
||||
--prefix XDG_CONFIG_DIRS : "$out/etc/xdg" \
|
||||
--set LUA_PATH '"${luaKitPath};${luaPath};"' \
|
||||
--set LUA_CPATH '"${luaCPath};"'
|
||||
--set LUA_PATH '${luaKitPath};${luaPath};' \
|
||||
--set LUA_CPATH '${luaCPath};'
|
||||
'';
|
||||
|
||||
}
|
||||
|
@ -1,8 +1,8 @@
|
||||
{ stdenv, fetchurl, python, buildPythonApplication, qtmultimedia, pyqt5
|
||||
, jinja2, pygments, pyyaml, pypeg2, gst-plugins-base, gst-plugins-good
|
||||
, gst-plugins-bad, gst-libav, wrapGAppsHook, glib_networking }:
|
||||
, gst-plugins-bad, gst-libav, wrapGAppsHook, glib_networking, makeQtWrapper }:
|
||||
|
||||
let version = "0.6.2"; in
|
||||
let version = "0.7.0"; in
|
||||
|
||||
buildPythonApplication rec {
|
||||
name = "qutebrowser-${version}";
|
||||
@ -10,13 +10,14 @@ buildPythonApplication rec {
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/The-Compiler/qutebrowser/releases/download/v${version}/${name}.tar.gz";
|
||||
sha256 = "16g7vlpvzkj94xk6fzl0jav2izfpvqn3zx9gydsk064cdxb02hrs";
|
||||
sha256 = "17xvv4h86frcn7zmi0y9gjsz2cazlb59v3dqi9mdc11w00b1cqbn";
|
||||
};
|
||||
|
||||
# Needs tox
|
||||
doCheck = false;
|
||||
|
||||
buildInputs = [ wrapGAppsHook
|
||||
buildInputs = [ wrapGAppsHook makeQtWrapper
|
||||
qtmultimedia
|
||||
gst-plugins-base gst-plugins-good gst-plugins-bad gst-libav
|
||||
glib_networking ];
|
||||
|
||||
@ -24,8 +25,9 @@ buildPythonApplication rec {
|
||||
python pyyaml pyqt5 jinja2 pygments pypeg2
|
||||
];
|
||||
|
||||
makeWrapperArgs = ''
|
||||
--prefix QT_PLUGIN_PATH : "${qtmultimedia}/lib/qt5/plugins"
|
||||
postInstall = ''
|
||||
mv $out/bin/qutebrowser $out/bin/.qutebrowser-noqtpath
|
||||
makeQtWrapper $out/bin/.qutebrowser-noqtpath $out/bin/qutebrowser
|
||||
'';
|
||||
|
||||
meta = {
|
||||
|
@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
meta = {
|
||||
homepage = "http://hadoop.apache.org/";
|
||||
description = "framework for distributed processing of large data sets across clusters of computers";
|
||||
description = "Framework for distributed processing of large data sets across clusters of computers";
|
||||
license = stdenv.lib.licenses.asl20;
|
||||
|
||||
longDescription = ''
|
||||
|
@ -1,13 +1,13 @@
|
||||
{ stdenv, fetchurl, dbus, gnutls, wxGTK30, libidn, tinyxml, gettext
|
||||
, pkgconfig, xdg_utils, gtk2, sqlite, pugixml, libfilezilla, nettle }:
|
||||
|
||||
let version = "3.17.0.1"; in
|
||||
let version = "3.18.0"; in
|
||||
stdenv.mkDerivation {
|
||||
name = "filezilla-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/project/filezilla/FileZilla_Client/${version}/FileZilla_${version}_src.tar.bz2";
|
||||
sha256 = "0ai3a0nys3yjmlvlv57nli77x6x0a2r409b4f5w4kr9mi6f4z4a7";
|
||||
sha256 = "1qnpbx2684r529ldih6fi5anjlcgqn2xfcls0q38iadrk1qnqr1p";
|
||||
};
|
||||
|
||||
configureFlags = [
|
||||
|
@ -24,7 +24,7 @@ stdenv.mkDerivation {
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = "http://gale.org/";
|
||||
description = "chat/messaging system (server and client)";
|
||||
description = "Chat/messaging system (server and client)";
|
||||
platforms = platforms.all;
|
||||
license = licenses.gpl2Plus;
|
||||
};
|
||||
|
@ -51,7 +51,7 @@ in mkTkabber (main // {
|
||||
for prog in $out/bin/*; do
|
||||
wrapProgram "$prog" \
|
||||
--prefix PATH : "${tk}/bin" \
|
||||
--set TCLLIBPATH '"${tclLibPaths}"' \
|
||||
--set TCLLIBPATH '${tclLibPaths}' \
|
||||
${optionalString withSitePlugins ''
|
||||
--set TKABBER_SITE_PLUGINS '${mkTkabber plugins}/share/tkabber-plugins'
|
||||
''}
|
||||
|
@ -29,7 +29,7 @@ puts(<<"EOH")
|
||||
# This file is generated from generate_sources.rb. DO NOT EDIT.
|
||||
# Execute the following command to update the file.
|
||||
#
|
||||
# ruby generate_sources.rb 45.1.0 > sources.nix
|
||||
# ruby generate_sources.rb 45.1.1 > sources.nix
|
||||
|
||||
{
|
||||
version = "#{version}";
|
||||
|
@ -1,7 +1,7 @@
|
||||
# This file is generated from generate_sources.rb. DO NOT EDIT.
|
||||
# Execute the following command to update the file.
|
||||
#
|
||||
# ruby generate_sources.rb 45.1.0 > sources.nix
|
||||
# ruby generate_sources.rb 45.1.1 > sources.nix
|
||||
|
||||
{
|
||||
version = "45.1.1";
|
||||
|
@ -13,7 +13,7 @@
|
||||
enableOfficialBranding ? false
|
||||
}:
|
||||
|
||||
let version = "45.1.0"; in
|
||||
let version = "45.1.1"; in
|
||||
let verName = "${version}"; in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://mozilla/thunderbird/releases/${verName}/source/thunderbird-${verName}.source.tar.xz";
|
||||
sha256 = "0293cwnqj4ys629ra87577c7snv4p8x2nbs1kzcnjpc96vjypsca";
|
||||
sha256 = "13kiida7smgl3bz1hx88hdvi2mj4z5b726gcw7nndxml60y10z8h";
|
||||
};
|
||||
|
||||
buildInputs = # from firefox30Pkgs.xulrunner, without gstreamer and libvpx
|
||||
|
41
pkgs/applications/networking/mailreaders/trojita/default.nix
Normal file
41
pkgs/applications/networking/mailreaders/trojita/default.nix
Normal file
@ -0,0 +1,41 @@
|
||||
{ stdenv
|
||||
, lib
|
||||
, fetchgit
|
||||
, cmake
|
||||
, qtbase
|
||||
, qtwebkit
|
||||
, makeQtWrapper
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "trojita-${version}";
|
||||
version = "0.7";
|
||||
|
||||
src = fetchgit {
|
||||
url = "https://anongit.kde.org/trojita.git";
|
||||
rev = "065d527c63e8e4a3ca0df73994f848b52e14ed58";
|
||||
sha256 = "1zlwhir33hha2p3l08wnb4njnfdg69j88ycf1fa4q3x86qm3r7hw";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
cmake
|
||||
qtbase
|
||||
qtwebkit
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
makeQtWrapper
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
wrapQtProgram "$out/bin/trojita"
|
||||
'';
|
||||
|
||||
|
||||
meta = {
|
||||
description = "A Qt IMAP e-mail client";
|
||||
homepage = http://trojita.flaska.net/;
|
||||
license = with lib.licenses; [ gpl2 gpl3 ];
|
||||
};
|
||||
|
||||
}
|
@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "benchmark to measure the performance of many different types of networking";
|
||||
description = "Benchmark to measure the performance of many different types of networking";
|
||||
homepage = "http://www.netperf.org/netperf/";
|
||||
license = "Hewlett-Packard BSD-like license";
|
||||
|
||||
|
@ -32,7 +32,7 @@ pythonPackages.buildPythonApplication rec {
|
||||
|
||||
meta = {
|
||||
homepage = http://furius.ca/beancount/;
|
||||
description = "double-entry bookkeeping computer language";
|
||||
description = "Double-entry bookkeeping computer language";
|
||||
longDescription = ''
|
||||
A double-entry bookkeeping computer language that lets you define
|
||||
financial transaction records in a text file, read them in memory,
|
||||
|
@ -1,12 +1,12 @@
|
||||
{ stdenv, fetchurl, makeWrapper, makeDesktopItem, ant, jdk, jre }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "3.3";
|
||||
version = "3.4";
|
||||
name = "jabref-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/JabRef/jabref/releases/download/v${version}/JabRef-${version}.jar";
|
||||
sha256 = "19ms68d74xg8jg9n52gh2j7a89dl5pnib3vjsnih1j45hlmfg0ac";
|
||||
sha256 = "1pimjx1452z159hvi199n52j5vkdj5c59mns9mi5mqvwhgm9dghd";
|
||||
};
|
||||
|
||||
desktopItem = makeDesktopItem {
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user