Merge branch 'master' into staging-next

This commit is contained in:
Jan Tojnar 2019-09-12 21:31:04 +02:00
commit 7d39ecdf58
No known key found for this signature in database
GPG Key ID: 7FAB2A15F7A607A4
81 changed files with 1427 additions and 460 deletions

11
.github/CODEOWNERS vendored
View File

@ -130,6 +130,12 @@
/nixos/tests/hardened.nix @joachifm
/pkgs/os-specific/linux/kernel/hardened-config.nix @joachifm
# Network Time Daemons
/pkgs/tools/networking/chrony @thoughtpolice
/pkgs/tools/networking/ntp @thoughtpolice
/pkgs/tools/networking/openntpd @thoughtpolice
/nixos/modules/services/networking/ntp @thoughtpolice
# Dhall
/pkgs/development/dhall-modules @Gabriel439 @Profpatsch
/pkgs/development/interpreters/dhall @Gabriel439 @Profpatsch
@ -150,3 +156,8 @@
/pkgs/applications/editors/emacs-modes @adisbladis
/pkgs/applications/editors/emacs @adisbladis
/pkgs/top-level/emacs-packages.nix @adisbladis
# Prometheus exporter modules and tests
/nixos/modules/services/monitoring/prometheus/exporters.nix @WilliButz
/nixos/modules/services/monitoring/prometheus/exporters.xml @WilliButz
/nixos/tests/prometheus-exporters.nix @WilliButz

View File

@ -354,7 +354,7 @@ rec {
=> { a = ["x" "y"]; b = ["z"] }
*/
zipAttrsWith = f: sets: zipAttrsWithNames (concatMap attrNames sets) f sets;
/* Like `zipAttrsWith' with `(name: values: value)' as the function.
/* Like `zipAttrsWith' with `(name: values: values)' as the function.
Example:
zipAttrs [{a = "x";} {a = "y"; b = "z";}]

View File

@ -2602,6 +2602,15 @@
email = "t@larkery.com";
name = "Tom Hinton";
};
hkjn = {
email = "me@hkjn.me";
name = "Henrik Jonsson";
github = "hkjn";
keys = [{
longkeyid = "rsa4096/0x03EFBF839A5FDC15";
fingerprint = "D618 7A03 A40A 3D56 62F5 4B46 03EF BF83 9A5F DC15";
}];
};
hlolli = {
email = "hlolli@gmail.com";
github = "hlolli";

View File

@ -392,7 +392,11 @@
<filename>hardware-configuration.nix</filename> is included from
<filename>configuration.nix</filename> and will be overwritten by future
invocations of <command>nixos-generate-config</command>; thus, you
generally should not modify it.)
generally should not modify it.) Additionally, you may want to look at
<link xlink:href="https://github.com/NixOS/nixos-hardware">Hardware
configuration for known-hardware</link> at this point or after
installation.
</para>
<note>
<para>

View File

@ -567,7 +567,6 @@
./services/networking/bird.nix
./services/networking/bitlbee.nix
./services/networking/charybdis.nix
./services/networking/chrony.nix
./services/networking/cjdns.nix
./services/networking/cntlm.nix
./services/networking/connman.nix
@ -650,14 +649,15 @@
./services/networking/nntp-proxy.nix
./services/networking/nsd.nix
./services/networking/ntopng.nix
./services/networking/ntpd.nix
./services/networking/ntp/chrony.nix
./services/networking/ntp/ntpd.nix
./services/networking/ntp/openntpd.nix
./services/networking/nullidentdmod.nix
./services/networking/nylon.nix
./services/networking/ocserv.nix
./services/networking/ofono.nix
./services/networking/oidentd.nix
./services/networking/openfire.nix
./services/networking/openntpd.nix
./services/networking/openvpn.nix
./services/networking/ostinato.nix
./services/networking/owamp.nix

View File

@ -4,6 +4,7 @@ with lib;
let
cfg = config.programs.mtr;
in {
options = {
programs.mtr = {
@ -15,13 +16,22 @@ in {
setcap wrapper for it.
'';
};
package = mkOption {
type = types.package;
default = pkgs.mtr;
description = ''
The package to use.
'';
};
};
};
config = mkIf cfg.enable {
environment.systemPackages = with pkgs; [ mtr ];
environment.systemPackages = with pkgs; [ cfg.package ];
security.wrappers.mtr-packet = {
source = "${pkgs.mtr}/bin/mtr-packet";
source = "${cfg.package}/bin/mtr-packet";
capabilities = "cap_net_raw+p";
};
};

View File

@ -6,16 +6,35 @@ let
cfg = config.services.mailman;
pythonEnv = pkgs.python3.withPackages (ps: [ps.mailman]);
mailmanPyEnv = pkgs.python3.withPackages (ps: with ps; [mailman mailman-hyperkitty]);
mailmanExe = with pkgs; stdenv.mkDerivation {
name = "mailman-" + python3Packages.mailman.version;
buildInputs = [makeWrapper];
unpackPhase = ":";
installPhase = ''
mkdir -p $out/bin
sed >"$out/bin/mailman" <"${pythonEnv}/bin/mailman" \
-e "2 iexport MAILMAN_CONFIG_FILE=/etc/mailman.cfg"
chmod +x $out/bin/mailman
makeWrapper ${mailmanPyEnv}/bin/mailman $out/bin/mailman \
--set MAILMAN_CONFIG_FILE /etc/mailman.cfg
'';
};
mailmanWeb = pkgs.python3Packages.mailman-web.override {
serverEMail = cfg.siteOwner;
archiverKey = cfg.hyperkittyApiKey;
allowedHosts = cfg.webHosts;
};
mailmanWebPyEnv = pkgs.python3.withPackages (x: with x; [mailman-web]);
mailmanWebExe = with pkgs; stdenv.mkDerivation {
inherit (mailmanWeb) name;
buildInputs = [makeWrapper];
unpackPhase = ":";
installPhase = ''
mkdir -p $out/bin
makeWrapper ${mailmanWebPyEnv}/bin/django-admin $out/bin/mailman-web \
--set DJANGO_SETTINGS_MODULE settings
'';
};
@ -28,11 +47,30 @@ let
bin_dir: ${pkgs.python3Packages.mailman}/bin
var_dir: /var/lib/mailman
queue_dir: $var_dir/queue
template_dir: $var_dir/templates
log_dir: $var_dir/log
lock_dir: $var_dir/lock
etc_dir: /etc
ext_dir: $etc_dir/mailman.d
pid_file: /run/mailman/master.pid
'' + optionalString (cfg.hyperkittyApiKey != null) ''
[archiver.hyperkitty]
class: mailman_hyperkitty.Archiver
enable: yes
configuration: ${pkgs.writeText "mailman-hyperkitty.cfg" mailmanHyperkittyCfg}
'';
mailmanHyperkittyCfg = ''
[general]
# This is your HyperKitty installation, preferably on the localhost. This
# address will be used by Mailman to forward incoming emails to HyperKitty
# for archiving. It does not need to be publicly available, in fact it's
# better if it is not.
base_url: ${cfg.hyperkittyBaseUrl}
# Shared API key, must be the identical to the value in HyperKitty's
# settings.
api_key: ${cfg.hyperkittyApiKey}
'';
in {
@ -51,7 +89,7 @@ in {
siteOwner = mkOption {
type = types.str;
default = "postmaster";
default = "postmaster@example.org";
description = ''
Certain messages that must be delivered to a human, but which can't
be delivered to a list owner (e.g. a bounce from a list owner), will
@ -59,6 +97,48 @@ in {
'';
};
webRoot = mkOption {
type = types.path;
default = "${mailmanWeb}/${pkgs.python3.sitePackages}";
defaultText = "pkgs.python3Packages.mailman-web";
description = ''
The web root for the Hyperkity + Postorius apps provided by Mailman.
This variable can be set, of course, but it mainly exists so that site
admins can refer to it in their own hand-written httpd configuration files.
'';
};
webHosts = mkOption {
type = types.listOf types.str;
default = [];
description = ''
The list of hostnames and/or IP addresses from which the Mailman Web
UI will accept requests. By default, "localhost" and "127.0.0.1" are
enabled. All additional names under which your web server accepts
requests for the UI must be listed here or incoming requests will be
rejected.
'';
};
hyperkittyBaseUrl = mkOption {
type = types.str;
default = "http://localhost/hyperkitty/";
description = ''
Where can Mailman connect to Hyperkitty's internal API, preferably on
localhost?
'';
};
hyperkittyApiKey = mkOption {
type = types.nullOr types.str;
default = null;
description = ''
The shared secret used to authenticate Mailman's internal
communication with Hyperkitty. Must be set to enable support for the
Hyperkitty archiver. Note that this secret is going to be visible to
all local users in the Nix store.
'';
};
};
};
@ -71,25 +151,22 @@ in {
{ assertion = cfg.enable -> config.services.postfix.enable;
message = "Mailman requires Postfix";
}
{ assertion = config.services.postfix.recipientDelimiter == "+";
message = "Postfix's recipientDelimiter must be set to '+'.";
}
];
users.users.mailman = { description = "GNU Mailman"; isSystemUser = true; };
environment = {
systemPackages = [ mailmanExe ];
systemPackages = [ mailmanExe mailmanWebExe pkgs.sassc ];
etc."mailman.cfg".text = mailmanCfg;
};
services.postfix = {
relayDomains = [ "hash:/var/lib/mailman/data/postfix_domains" ];
recipientDelimiter = "+"; # bake recipient addresses in mail envelopes via VERP
config = {
transport_maps = [ "hash:/var/lib/mailman/data/postfix_lmtp" ];
local_recipient_maps = [ "hash:/var/lib/mailman/data/postfix_lmtp" ];
# Mailman uses recipient delimiters, so we don't need special handling.
owner_request_special = "no";
owner_request_special = "no"; # Mailman handles -owner addresses on its own
};
};
@ -109,6 +186,112 @@ in {
};
};
systemd.services.mailman-web = {
description = "Init Postorius DB";
before = [ "httpd.service" ];
requiredBy = [ "httpd.service" ];
script = ''
${mailmanWebExe}/bin/mailman-web migrate
rm -rf static
${mailmanWebExe}/bin/mailman-web collectstatic
${mailmanWebExe}/bin/mailman-web compress
'';
serviceConfig = {
User = config.services.httpd.user;
Type = "oneshot";
StateDirectory = "mailman-web";
StateDirectoryMode = "0700";
WorkingDirectory = "/var/lib/mailman-web";
};
};
systemd.services.mailman-daily = {
description = "Trigger daily Mailman events";
startAt = "daily";
serviceConfig = {
ExecStart = "${mailmanExe}/bin/mailman digests --send";
User = "mailman";
};
};
systemd.services.hyperkitty = {
enable = cfg.hyperkittyApiKey != null;
description = "GNU Hyperkitty QCluster Process";
after = [ "network.target" ];
wantedBy = [ "mailman.service" "multi-user.target" ];
serviceConfig = {
ExecStart = "${mailmanWebExe}/bin/mailman-web qcluster";
User = config.services.httpd.user;
WorkingDirectory = "/var/lib/mailman-web";
};
};
systemd.services.hyperkitty-minutely = {
enable = cfg.hyperkittyApiKey != null;
description = "Trigger minutely Hyperkitty events";
startAt = "minutely";
serviceConfig = {
ExecStart = "${mailmanWebExe}/bin/mailman-web runjobs minutely";
User = config.services.httpd.user;
WorkingDirectory = "/var/lib/mailman-web";
};
};
systemd.services.hyperkitty-quarter-hourly = {
enable = cfg.hyperkittyApiKey != null;
description = "Trigger quarter-hourly Hyperkitty events";
startAt = "*:00/15";
serviceConfig = {
ExecStart = "${mailmanWebExe}/bin/mailman-web runjobs quarter_hourly";
User = config.services.httpd.user;
WorkingDirectory = "/var/lib/mailman-web";
};
};
systemd.services.hyperkitty-hourly = {
enable = cfg.hyperkittyApiKey != null;
description = "Trigger hourly Hyperkitty events";
startAt = "hourly";
serviceConfig = {
ExecStart = "${mailmanWebExe}/bin/mailman-web runjobs hourly";
User = config.services.httpd.user;
WorkingDirectory = "/var/lib/mailman-web";
};
};
systemd.services.hyperkitty-daily = {
enable = cfg.hyperkittyApiKey != null;
description = "Trigger daily Hyperkitty events";
startAt = "daily";
serviceConfig = {
ExecStart = "${mailmanWebExe}/bin/mailman-web runjobs daily";
User = config.services.httpd.user;
WorkingDirectory = "/var/lib/mailman-web";
};
};
systemd.services.hyperkitty-weekly = {
enable = cfg.hyperkittyApiKey != null;
description = "Trigger weekly Hyperkitty events";
startAt = "weekly";
serviceConfig = {
ExecStart = "${mailmanWebExe}/bin/mailman-web runjobs weekly";
User = config.services.httpd.user;
WorkingDirectory = "/var/lib/mailman-web";
};
};
systemd.services.hyperkitty-yearly = {
enable = cfg.hyperkittyApiKey != null;
description = "Trigger yearly Hyperkitty events";
startAt = "yearly";
serviceConfig = {
ExecStart = "${mailmanWebExe}/bin/mailman-web runjobs yearly";
User = config.services.httpd.user;
WorkingDirectory = "/var/lib/mailman-web";
};
};
};
}

View File

@ -34,6 +34,7 @@ let
"node"
"postfix"
"postgres"
"rspamd"
"snmp"
"surfboard"
"tor"
@ -193,6 +194,8 @@ in
services.prometheus.exporters.minio.minioAddress = mkDefault "http://localhost:9000";
services.prometheus.exporters.minio.minioAccessKey = mkDefault config.services.minio.accessKey;
services.prometheus.exporters.minio.minioAccessSecret = mkDefault config.services.minio.secretKey;
})] ++ [(mkIf config.services.rspamd.enable {
services.prometheus.exporters.rspamd.url = mkDefault "http://localhost:11334/stat";
})] ++ (mapAttrsToList (name: conf:
mkExporterConf {
inherit name;

View File

@ -0,0 +1,92 @@
{ config, lib, pkgs, options }:
with lib;
let
cfg = config.services.prometheus.exporters.rspamd;
prettyJSON = conf:
pkgs.runCommand "rspamd-exporter-config.yml" { } ''
echo '${builtins.toJSON conf}' | ${pkgs.buildPackages.jq}/bin/jq '.' > $out
'';
generateConfig = extraLabels: (map (path: {
name = "rspamd_${replaceStrings [ "." " " ] [ "_" "_" ] path}";
path = "$.${path}";
labels = extraLabels;
}) [
"actions.'add header'"
"actions.'no action'"
"actions.'rewrite subject'"
"actions.'soft reject'"
"actions.greylist"
"actions.reject"
"bytes_allocated"
"chunks_allocated"
"chunks_freed"
"chunks_oversized"
"connections"
"control_connections"
"ham_count"
"learned"
"pools_allocated"
"pools_freed"
"read_only"
"scanned"
"shared_chunks_allocated"
"spam_count"
"total_learns"
]) ++ [{
name = "rspamd_statfiles";
type = "object";
path = "$.statfiles[*]";
labels = recursiveUpdate {
symbol = "$.symbol";
type = "$.type";
} extraLabels;
values = {
revision = "$.revision";
size = "$.size";
total = "$.total";
used = "$.used";
languages = "$.languages";
users = "$.users";
};
}];
in
{
port = 7980;
extraOpts = {
listenAddress = {}; # not used
url = mkOption {
type = types.str;
description = ''
URL to the rspamd metrics endpoint.
Defaults to http://localhost:11334/stat when
<option>services.rspamd.enable</option> is true.
'';
};
extraLabels = mkOption {
type = types.attrsOf types.str;
default = {
host = config.networking.hostName;
};
defaultText = "{ host = config.networking.hostName; }";
example = literalExample ''
{
host = config.networking.hostName;
custom_label = "some_value";
}
'';
description = "Set of labels added to each metric.";
};
};
serviceOpts.serviceConfig.ExecStart = ''
${pkgs.prometheus-json-exporter}/bin/prometheus-json-exporter \
--port ${toString cfg.port} \
${cfg.url} ${prettyJSON (generateConfig cfg.extraLabels)} \
${concatStringsSep " \\\n " cfg.extraFlags}
'';
}

View File

@ -9,11 +9,11 @@ let
keyFile = "${stateDir}/chrony.keys";
configFile = pkgs.writeText "chrony.conf" ''
${concatMapStringsSep "\n" (server: "server " + server) cfg.servers}
${concatMapStringsSep "\n" (server: "server " + server + " iburst") cfg.servers}
${optionalString
(cfg.initstepslew.enabled && (cfg.servers != []))
"initstepslew ${toString cfg.initstepslew.threshold} ${concatStringsSep " " cfg.initstepslew.servers}"
"initstepslew ${toString cfg.initstepslew.threshold} ${concatStringsSep " " cfg.servers}"
}
driftfile ${stateDir}/chrony.drift
@ -24,7 +24,7 @@ let
${cfg.extraConfig}
'';
chronyFlags = "-m -u chrony -f ${configFile} ${toString cfg.extraFlags}";
chronyFlags = "-n -m -u chrony -f ${configFile} ${toString cfg.extraFlags}";
in
{
options = {
@ -48,7 +48,6 @@ in
default = {
enabled = true;
threshold = 1000; # by default, same threshold as 'ntpd -g' (1000s)
servers = cfg.servers;
};
description = ''
Allow chronyd to make a rapid measurement of the system clock error at
@ -76,6 +75,8 @@ in
};
config = mkIf cfg.enable {
meta.maintainers = with lib.maintainers; [ thoughtpolice ];
environment.systemPackages = [ pkgs.chrony ];
users.groups = singleton
@ -115,7 +116,7 @@ in
unitConfig.ConditionCapability = "CAP_SYS_TIME";
serviceConfig =
{ Type = "forking";
{ Type = "simple";
ExecStart = "${pkgs.chrony}/bin/chronyd ${chronyFlags}";
ProtectHome = "yes";

View File

@ -96,6 +96,7 @@ in
###### implementation
config = mkIf config.services.ntp.enable {
meta.maintainers = with lib.maintainers; [ thoughtpolice ];
# Make tools such as ntpq available in the system path.
environment.systemPackages = [ pkgs.ntp ];

View File

@ -52,6 +52,7 @@ in
###### implementation
config = mkIf cfg.enable {
meta.maintainers = with lib.maintainers; [ thoughtpolice ];
services.timesyncd.enable = mkForce false;
# Add ntpctl to the environment for status checking

View File

@ -216,7 +216,6 @@ in
index index.html index.php;
gzip on;
gzip_disable "msie6";
gzip_comp_level 6;
gzip_min_length 1100;

View File

@ -179,7 +179,7 @@ in
'' + optionalString (cfg.database.type == "oracle") ''
extension=${pkgs.phpPackages.oci8}/lib/php/extensions/oci8.so
'';
phpEnv.ZABBIX_CONFIG = zabbixConfig;
phpEnv.ZABBIX_CONFIG = "${zabbixConfig}";
settings = {
"listen.owner" = config.services.httpd.user;
"listen.group" = config.services.httpd.group;
@ -197,7 +197,7 @@ in
<Directory "${cfg.package}/share/zabbix">
<FilesMatch "\.php$">
<If "-f %{REQUEST_FILENAME}">
SetHandler "proxy:unix:${fpm.listen}|fcgi://localhost/"
SetHandler "proxy:unix:${fpm.socket}|fcgi://localhost/"
</If>
</FilesMatch>
AllowOverride all

View File

@ -94,7 +94,6 @@ let
${optionalString (cfg.recommendedGzipSettings) ''
gzip on;
gzip_disable "msie6";
gzip_proxied any;
gzip_comp_level 5;
gzip_types

View File

@ -297,6 +297,22 @@ let
'';
};
rspamd = {
exporterConfig = {
enable = true;
};
metricProvider = {
services.rspamd.enable = true;
};
exporterTest = ''
waitForUnit("rspamd.service");
waitForUnit("prometheus-rspamd-exporter.service");
waitForOpenPort(11334);
waitForOpenPort(7980);
waitUntilSucceeds("curl -sSf localhost:7980/metrics | grep -q 'rspamd_scanned{host=\"rspamd\"} 0'");
'';
};
snmp = {
exporterConfig = {
enable = true;

View File

@ -14,9 +14,9 @@ let
};
betaVersion = stableVersion;
latestVersion = { # canary & dev
version = "3.6.0.10"; # "Android Studio 3.6 Canary 10"
build = "192.5842447";
sha256Hash = "0qyvqm0ihp6czx77skia87qnz87wrsp1a6la04dr4b0xln2c8m5b";
version = "3.6.0.11"; # "Android Studio 3.6 Canary 11"
build = "192.5863777";
sha256Hash = "1wz4vcdj4225vffsq0ji4zgg9qaqlfd21x7c6nczhqvydbyrjzg8";
};
in {
# Attributes are named by their corresponding release channels

View File

@ -5,7 +5,7 @@
incidenceeditor, kcalcore, kcalutils, kconfig, kdbusaddons, kdeclarative,
kdepim-apps-libs, kholidays, ki18n, kmime, ktexteditor, ktnef, libgravatar,
libksieve, mailcommon, mailimporter, messagelib, poppler, prison, kpkpass,
kitinerary
kitinerary, kontactinterface
}:
mkDerivation {
@ -20,6 +20,6 @@ mkDerivation {
incidenceeditor kcalcore kcalutils kconfig kdbusaddons kdeclarative
kdepim-apps-libs kholidays ki18n kmime ktexteditor ktnef libgravatar
libksieve mailcommon mailimporter messagelib poppler prison kpkpass
kitinerary
kitinerary kontactinterface
];
}

View File

@ -5,7 +5,7 @@
python3Packages.buildPythonApplication rec {
pname = "electrum-ltc";
version = "3.1.3.1";
version = "3.3.8.1";
src = fetchurl {
url = "https://electrum-ltc.org/download/Electrum-LTC-${version}.tar.gz";

View File

@ -1,24 +1,24 @@
{ stdenv, requireFile, unzip, rlwrap, bash }:
{ stdenv, requireFile, unzip, rlwrap, bash, zlib }:
assert (stdenv.hostPlatform.system == "i686-linux");
let
libPath = stdenv.lib.makeLibraryPath
[ stdenv.cc.libc stdenv.cc.cc ];
[ stdenv.cc.libc stdenv.cc.cc zlib ];
in
stdenv.mkDerivation rec {
pname = "kdbplus";
version = "3.3";
version = "3.6";
src = requireFile {
src = requireFile rec {
message = ''
Nix can't download kdb+ for you automatically. Go to
http://kx.com and download the free, 32-bit version for
Linux. Then run "nix-prefetch-url file://\$PWD/linux.zip" in
the directory where you saved it. Note you need version 3.3.
Linux. Then run "nix-prefetch-url file://\$PWD/${name}" in
the directory where you saved it. Note you need version ${version}.
'';
name = "linux.zip";
sha256 = "5fd0837599e24f0f437a8314510888a86ab0787684120a8fcf592299800aa940";
name = "linuxx86.zip";
sha256 = "0w6znd9warcqx28vf648n0vgmxyyy9kvsfpsfw37d1kp5finap4p";
};
dontStrip = true;

View File

@ -104,6 +104,9 @@ in buildFHSUserEnv {
# WINE
cups lcms2 mpg123 cairo unixODBC samba4 sane-backends openldap
ocl-icd utillinux
# Winetricks
fribidi
] ++ xorgDeps pkgs;
extraInstallCommands = ''

View File

@ -1,8 +1,8 @@
{ fetchurl, stdenv, pkgconfig, python, file, bc, fetchpatch
{ fetchurl, lib, mkDerivation, pkgconfig, python, file, bc, fetchpatch
, qtbase, qtsvg, hunspell, makeWrapper #, mythes, boost
}:
stdenv.mkDerivation rec {
mkDerivation rec {
version = "2.3.0";
pname = "lyx";
@ -30,10 +30,9 @@ stdenv.mkDerivation rec {
doCheck = true;
# python is run during runtime to do various tasks
postFixup = ''
wrapProgram "$out/bin/lyx" \
--prefix PATH : '${python}/bin'
'';
qtWrapperArgs = [
" --prefix PATH : ${python}/bin"
];
patches = [
(fetchpatch {
@ -42,7 +41,7 @@ stdenv.mkDerivation rec {
})
];
meta = with stdenv.lib; {
meta = with lib; {
description = "WYSIWYM frontend for LaTeX, DocBook";
homepage = http://www.lyx.org;
license = licenses.gpl2Plus;

View File

@ -1,7 +1,7 @@
{ fetchurl, stdenv, makeWrapper, pkgconfig, intltool, gettext, gtk2, expat, curl
, gpsd, bc, file, gnome-doc-utils, libexif, libxml2, libxslt, scrollkeeper
, docbook_xml_dtd_412, gexiv2, sqlite, gpsbabel, expect, hicolor-icon-theme
, geoclue2, liboauth }:
, geoclue2, liboauth, nettle }:
stdenv.mkDerivation rec {
pname = "viking";
@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ makeWrapper intltool gettext gtk2 expat curl gpsd bc file gnome-doc-utils
libexif libxml2 libxslt scrollkeeper docbook_xml_dtd_412 gexiv2 sqlite hicolor-icon-theme
geoclue2 liboauth
geoclue2 liboauth nettle
];
configureFlags = [ "--disable-scrollkeeper --disable-mapnik" ];

View File

@ -1,22 +1,30 @@
{stdenv, fetchurl, wxGTK, chmlib}:
{ stdenv, fetchFromGitHub, autoreconfHook, wxGTK30, chmlib }:
stdenv.mkDerivation {
name = "xchm-1.23";
src = fetchurl {
url = mirror://sourceforge/xchm/xchm-1.23.tar.gz;
sha256 = "0qn0fyxcrn30ndq2asx31k0qkx3grbm16fb1y580wd2gjmh5r3wg";
stdenv.mkDerivation rec {
pname = "xchm";
version = "1.30";
src = fetchFromGitHub {
owner = "rzvncj";
repo = "xCHM";
rev = version;
sha256 = "1sjvh06m8jbb28k6y3knas3nkh1dfvff4mlwjs33x12ilhddhr8v";
};
buildInputs = [wxGTK chmlib];
postConfigure = ''
export NIX_LDFLAGS="$NIX_LDFLAGS $(${wxGTK}/lib/wx/config/* --libs | sed -e s@-pthread@@)"
echo $NIX_LDFLAGS
nativeBuildInputs = [ autoreconfHook ];
buildInputs = [ wxGTK30 chmlib ];
configureFlags = [ "--with-wx-prefix=${wxGTK30}" ];
preConfigure = ''
export LDFLAGS="$LDFLAGS $(${wxGTK30}/bin/wx-config --libs | sed -e s@-pthread@@) -lwx_gtk2u_aui-3.0"
'';
meta = with stdenv.lib; {
description = "A viewer for Microsoft HTML Help files";
homepage = http://xchm.sourceforge.net;
homepage = "https://github.com/rzvncj/xCHM";
license = licenses.gpl2;
maintainers = with maintainers; [ sikmir ];
platforms = platforms.linux;
};
}

View File

@ -100,11 +100,11 @@ let
flash = stdenv.mkDerivation rec {
pname = "flashplayer-ppapi";
version = "32.0.0.238";
version = "32.0.0.255";
src = fetchzip {
url = "https://fpdownload.adobe.com/pub/flashplayer/pdc/${version}/flash_player_ppapi_linux.x86_64.tar.gz";
sha256 = "0jqx68lfqjpy6wbxdi0giclvh9mc9rha92hqdj1nx42v95k3gc65";
sha256 = "1rqb54kqxq66vvqk5yrr3rsy3wcj9r9wnkngk27c7jayzm6bwgvv";
stripRoot = false;
};

View File

@ -74,7 +74,7 @@ let
in
stdenv.mkDerivation rec {
pname = "flashplayer";
version = "32.0.0.238";
version = "32.0.0.255";
src = fetchurl {
url =
@ -85,14 +85,14 @@ stdenv.mkDerivation rec {
sha256 =
if debug then
if arch == "x86_64" then
"1f5i64nzkvxy20vi7kldaamwp6pi2zgmjiw061cgqrwf7hj45wkg"
"1hd5z8qmki36k2wdwgg3v4sj32g8590r5563gdrjrk7bmrqfjnji"
else
"09jvxqp83hpk89ak8flq14s3s3nhy3ary91jc6k47v325axh1cl9"
"0y13bxdgkxaqsyab09skiqj8dfjw76n2lr7p525ba8lbfbc8xj52"
else
if arch == "x86_64" then
"05gvssjdz43pvgivdngrf8qr5b30p45hr2sr97cyl6b87581qw9s"
"0qkslkaiw3c9xk1rjcl4x9d0fi6i91k7g01mf0gq28wgzcyz4cw7"
else
"06l7zhgh5rfxxw46b500zdgcqsk2h7kivng5b0b74s3vy7f0g270";
"0qblmaa3nq1g7825yhvz98pvd1591q3q7bsrhv5bbhdbmb9c1qd5";
};
nativeBuildInputs = [ unzip ];
@ -141,7 +141,7 @@ stdenv.mkDerivation rec {
description = "Adobe Flash Player browser plugin";
homepage = http://www.adobe.com/products/flashplayer/;
license = stdenv.lib.licenses.unfree;
maintainers = [];
maintainers = with stdenv.lib.maintainers; [ taku0 ];
platforms = [ "x86_64-linux" "i686-linux" ];
};
}

View File

@ -50,7 +50,7 @@
stdenv.mkDerivation {
pname = "flashplayer-standalone";
version = "32.0.0.238";
version = "32.0.0.255";
src = fetchurl {
url =
@ -60,9 +60,9 @@ stdenv.mkDerivation {
"https://fpdownload.macromedia.com/pub/flashplayer/updaters/32/flash_player_sa_linux.x86_64.tar.gz";
sha256 =
if debug then
"1vhfjpwsmg96irfvz81ldzn2m4qcjnql5psg4cifjay423yxabvy"
"1igc23mljmw1bw6fwx3rwpz7kxiy8n5znkng20w3yin2zh8qw8sy"
else
"0am95xi2jasvxj5b2i12wzpvl3bvxli537k1i04698cg0na6x0y0";
"0rfvgx1g0s8wswwpmfjx6p59yh1cxya3x3bczbissrq4rcb1v315";
};
nativeBuildInputs = [ unzip ];

View File

@ -89,7 +89,7 @@ let
fteLibPath = makeLibraryPath [ stdenv.cc.cc gmp ];
# Upstream source
version = "8.5.4";
version = "8.5.5";
lang = "en-US";
@ -99,7 +99,7 @@ let
"https://github.com/TheTorProject/gettorbrowser/releases/download/v${version}/tor-browser-linux64-${version}_${lang}.tar.xz"
"https://dist.torproject.org/torbrowser/${version}/tor-browser-linux64-${version}_${lang}.tar.xz"
];
sha256 = "0nnzynk3nlnd847c8jjghs9anmr5a2hv7nk1qxigigxqa5vqy96z";
sha256 = "00r5k9bbfpv3s6shxqypl13psr1zz51xiyz3vmm4flhr2qa4ycsz";
};
i686-linux = fetchurl {
@ -107,7 +107,7 @@ let
"https://dist.torproject.org/torbrowser/${version}/tor-browser-linux32-${version}_${lang}.tar.xz"
"https://github.com/TheTorProject/gettorbrowser/releases/download/v${version}/tor-browser-linux32-${version}_${lang}.tar.xz"
];
sha256 = "1b34skl3hwvpy0r4l5ykgnnwhbz7cvly2gi9ib4h7lijjfafiys1";
sha256 = "1nxvw5kiggfr4n5an436ass84cvwjviaa894kfm72yf2ls149f29";
};
};
in

View File

@ -8,7 +8,7 @@ with lib;
mkDerivation rec {
pname = "telegram-desktop";
version = "1.8.4";
version = "1.8.8";
# Note: Due to our strong dependency on the Arch patches it's probably best
# to also wait for the Arch update (especially if the patches don't apply).
@ -17,7 +17,7 @@ mkDerivation rec {
owner = "telegramdesktop";
repo = "tdesktop";
rev = "v${version}";
sha256 = "1q6y05kb6jjarb690qq28fqkv6kfkxdmfx0va1qi7aqxlhd5rvyl";
sha256 = "1aj1pnzc6bz8jbdrfwdj2r54jhw9z7b5fd1095r007zmlnzs51lv";
fetchSubmodules = true;
};
@ -25,8 +25,8 @@ mkDerivation rec {
archPatches = fetchsvn {
url = "svn://svn.archlinux.org/community/telegram-desktop/trunk";
# svn log svn://svn.archlinux.org/community/telegram-desktop/trunk
rev = "498563";
sha256 = "0g2y6impygqhfiqnyxc1ivxwl8j82q9qcnkqcjn6mwj3cisyxwnl";
rev = "509240";
sha256 = "1sf4mspbsqsnjzp9ys9l0asrx1bhj273d163i2bv1zhl4mmgpl3k";
};
privateHeadersPatch = fetchpatch {
url = "https://github.com/telegramdesktop/tdesktop/commit/b9d3ba621eb8af638af46c6b3cfd7a8330bf0dd5.patch";

View File

@ -130,7 +130,7 @@ stdenv.mkDerivation {
'';
dontStrip = true;
dontPatchElf = true;
dontPatchELF = true;
updateScript = import ./update.nix { inherit writeScript runtimeShell; };

View File

@ -1,8 +1,8 @@
{ stdenv, fetchbzr, python3, rtmpdump, makeWrapper }:
{ mkDerivation, lib, fetchbzr, python3, rtmpdump }:
let
pythonEnv = python3.withPackages (ps: with ps; [ pyqt5 sip ]);
in stdenv.mkDerivation {
pythonEnv = python3.withPackages (ps: with ps; [ pyqt5_with_qtmultimedia ]);
in mkDerivation {
name = "qarte-4.6.0";
src = fetchbzr {
url = http://bazaar.launchpad.net/~vincent-vandevyvre/qarte/qarte-4;
@ -10,28 +10,33 @@ in stdenv.mkDerivation {
sha256 = "0v4zpj8w67ydvnmanxbl8pwvn0cfv70c0mlw36a1r4n0rvgxffcn";
};
buildInputs = [ makeWrapper pythonEnv ];
buildInputs = [ pythonEnv ];
installPhase = ''
runHook preInstall
mkdir -p $out/bin
mv qarte $out/bin/
substituteInPlace $out/bin/qarte \
--replace '/usr/share' "$out/share"
wrapProgram $out/bin/qarte \
--prefix PATH : "${rtmpdump}/bin"
mkdir -p $out/share/man/man1/
mv qarte.1 $out/share/man/man1/
mkdir -p $out/share/qarte
mv * $out/share/qarte/
runHook postInstall
'';
postFixup = ''
wrapQtApp $out/bin/qarte \
--prefix PATH : ${rtmpdump}/bin
'';
meta = {
homepage = https://launchpad.net/qarte;
description = "A recorder for Arte TV Guide and Arte Concert";
license = stdenv.lib.licenses.gpl3;
maintainers = with stdenv.lib.maintainers; [ vbgl ];
platforms = stdenv.lib.platforms.linux;
license = lib.licenses.gpl3;
maintainers = with lib.maintainers; [ vbgl ];
platforms = lib.platforms.linux;
};
}

View File

@ -0,0 +1,31 @@
{ stdenv, lib, fetchFromGitHub, autoreconfHook, go-md2man, pkgconfig
, libcap, libseccomp, python3, systemd, yajl }:
stdenv.mkDerivation rec {
pname = "crun";
version = "0.8";
src = fetchFromGitHub {
owner = "containers";
repo = pname;
rev = version;
sha256 = "1anvlgw373031w0pp0b28l10yrnyhbj192n60bbbjahw487dk2fi";
fetchSubmodules = true;
};
nativeBuildInputs = [ autoreconfHook go-md2man pkgconfig python3 ];
buildInputs = [ libcap libseccomp systemd yajl ];
enableParallelBuilding = true;
# the tests require additional permissions
doCheck = false;
meta = with lib; {
description = "A fast and lightweight fully featured OCI runtime and C library for running containers";
license = licenses.gpl3;
platforms = platforms.linux;
inherit (src.meta) homepage;
};
}

View File

@ -1,232 +0,0 @@
{ stdenv, fetchurl, tzdata, iana-etc, runCommand
, perl, which, pkgconfig, patch, procps, pcre, cacert, Security, Foundation
, mailcap, runtimeShell
, buildPackages, pkgsTargetTarget
}:
let
inherit (stdenv.lib) optionals optionalString;
goBootstrap = runCommand "go-bootstrap" {} ''
mkdir $out
cp -rf ${buildPackages.go_bootstrap}/* $out/
chmod -R u+w $out
find $out -name "*.c" -delete
cp -rf $out/bin/* $out/share/go/bin/
'';
goarch = platform: {
i686 = "386";
x86_64 = "amd64";
aarch64 = "arm64";
arm = "arm";
armv5tel = "arm";
armv6l = "arm";
armv7l = "arm";
}.${platform.parsed.cpu.name} or (throw "Unsupported system");
in
stdenv.mkDerivation rec {
pname = "go";
version = "1.11.13";
src = fetchurl {
url = "https://dl.google.com/go/go${version}.src.tar.gz";
sha256 = "0xj0pbviikdf8g0sfz5hwxf7hwz8b8g5akqnrvyclhgnsdghjcjh";
};
# perl is used for testing go vet
nativeBuildInputs = [ perl which pkgconfig patch procps ];
buildInputs = [ cacert pcre ]
++ optionals stdenv.isLinux [ stdenv.cc.libc.out ]
++ optionals (stdenv.hostPlatform.libc == "glibc") [ stdenv.cc.libc.static ];
propagatedBuildInputs = optionals stdenv.isDarwin [ Security Foundation ];
hardeningDisable = [ "all" ];
prePatch = ''
patchShebangs ./ # replace /bin/bash
# This source produces shell script at run time,
# and thus it is not corrected by patchShebangs.
substituteInPlace misc/cgo/testcarchive/carchive_test.go \
--replace '#!/usr/bin/env bash' '#!${runtimeShell}'
# Patch the mimetype database location which is missing on NixOS.
substituteInPlace src/mime/type_unix.go \
--replace '/etc/mime.types' '${mailcap}/etc/mime.types'
# Disabling the 'os/http/net' tests (they want files not available in
# chroot builds)
rm src/net/{listen,parse}_test.go
rm src/syscall/exec_linux_test.go
# !!! substituteInPlace does not seems to be effective.
# The os test wants to read files in an existing path. Just don't let it be /usr/bin.
sed -i 's,/usr/bin,'"`pwd`", src/os/os_test.go
sed -i 's,/bin/pwd,'"`type -P pwd`", src/os/os_test.go
# Disable the unix socket test
sed -i '/TestShutdownUnix/areturn' src/net/net_test.go
# Disable the hostname test
sed -i '/TestHostname/areturn' src/os/os_test.go
# ParseInLocation fails the test
sed -i '/TestParseInSydney/areturn' src/time/format_test.go
# Remove the api check as it never worked
sed -i '/src\/cmd\/api\/run.go/ireturn nil' src/cmd/dist/test.go
# Remove the coverage test as we have removed this utility
sed -i '/TestCoverageWithCgo/areturn' src/cmd/go/go_test.go
# Remove the timezone naming test
sed -i '/TestLoadFixed/areturn' src/time/time_test.go
# Remove disable setgid test
sed -i '/TestRespectSetgidDir/areturn' src/cmd/go/internal/work/build_test.go
# Remove cert tests that conflict with NixOS's cert resolution
sed -i '/TestEnvVars/areturn' src/crypto/x509/root_unix_test.go
# TestWritevError hangs sometimes
sed -i '/TestWritevError/areturn' src/net/writev_test.go
# TestVariousDeadlines fails sometimes
sed -i '/TestVariousDeadlines/areturn' src/net/timeout_test.go
sed -i 's,/etc/protocols,${iana-etc}/etc/protocols,' src/net/lookup_unix.go
sed -i 's,/etc/services,${iana-etc}/etc/services,' src/net/port_unix.go
# Disable cgo lookup tests not works, they depend on resolver
rm src/net/cgo_unix_test.go
'' + optionalString stdenv.isLinux ''
sed -i 's,/usr/share/zoneinfo/,${tzdata}/share/zoneinfo/,' src/time/zoneinfo_unix.go
'' + optionalString stdenv.isAarch32 ''
echo '#!${runtimeShell}' > misc/cgo/testplugin/test.bash
'' + optionalString stdenv.isDarwin ''
substituteInPlace src/race.bash --replace \
"sysctl machdep.cpu.extfeatures | grep -qv EM64T" true
sed -i 's,strings.Contains(.*sysctl.*,true {,' src/cmd/dist/util.go
sed -i 's,"/etc","'"$TMPDIR"'",' src/os/os_test.go
sed -i 's,/_go_os_test,'"$TMPDIR"'/_go_os_test,' src/os/path_test.go
sed -i '/TestChdirAndGetwd/areturn' src/os/os_test.go
sed -i '/TestCredentialNoSetGroups/areturn' src/os/exec/exec_posix_test.go
sed -i '/TestRead0/areturn' src/os/os_test.go
sed -i '/TestSystemRoots/areturn' src/crypto/x509/root_darwin_test.go
sed -i '/TestGoInstallRebuildsStalePackagesInOtherGOPATH/areturn' src/cmd/go/go_test.go
sed -i '/TestBuildDashIInstallsDependencies/areturn' src/cmd/go/go_test.go
sed -i '/TestDisasmExtld/areturn' src/cmd/objdump/objdump_test.go
sed -i 's/unrecognized/unknown/' src/cmd/link/internal/ld/lib.go
touch $TMPDIR/group $TMPDIR/hosts $TMPDIR/passwd
'';
patches = [
./remove-tools-1.11.patch
./ssl-cert-file-1.12.1.patch
./remove-test-pie.patch
./creds-test.patch
./go-1.9-skip-flaky-19608.patch
./go-1.9-skip-flaky-20072.patch
./remove-fhs-test-references.patch
./skip-external-network-tests.patch
./skip-nohup-tests.patch
# breaks under load: https://github.com/golang/go/issues/25628
./skip-test-extra-files-on-386.patch
];
GOOS = stdenv.targetPlatform.parsed.kernel.name;
GOARCH = goarch stdenv.targetPlatform;
# GOHOSTOS/GOHOSTARCH must match the building system, not the host system.
# Go will nevertheless build a for host system that we will copy over in
# the install phase.
GOHOSTOS = stdenv.buildPlatform.parsed.kernel.name;
GOHOSTARCH = goarch stdenv.buildPlatform;
# {CC,CXX}_FOR_TARGET must be only set for cross compilation case as go expect those
# to be different from CC/CXX
CC_FOR_TARGET = if (stdenv.buildPlatform != stdenv.targetPlatform) then
"${pkgsTargetTarget.stdenv.cc}/bin/${pkgsTargetTarget.stdenv.cc.targetPrefix}cc"
else
null;
CXX_FOR_TARGET = if (stdenv.buildPlatform != stdenv.targetPlatform) then
"${pkgsTargetTarget.stdenv.cc}/bin/${pkgsTargetTarget.stdenv.cc.targetPrefix}c++"
else
null;
GOARM = toString (stdenv.lib.intersectLists [(stdenv.hostPlatform.parsed.cpu.version or "")] ["5" "6" "7"]);
GO386 = 387; # from Arch: don't assume sse2 on i686
CGO_ENABLED = 1;
# Hopefully avoids test timeouts on Hydra
GO_TEST_TIMEOUT_SCALE = 3;
# Indicate that we are running on build infrastructure
# Some tests assume things like home directories and users exists
GO_BUILDER_NAME = "nix";
GOROOT_BOOTSTRAP="${goBootstrap}/share/go";
postConfigure = ''
export GOCACHE=$TMPDIR/go-cache
# this is compiled into the binary
export GOROOT_FINAL=$out/share/go
export PATH=$(pwd)/bin:$PATH
# Independent from host/target, CC should produce code for the building system.
export CC=${buildPackages.stdenv.cc}/bin/cc
ulimit -a
'';
postBuild = ''
(cd src && ./make.bash)
'';
doCheck = stdenv.hostPlatform == stdenv.targetPlatform && !stdenv.isDarwin;
checkPhase = ''
runHook preCheck
(cd src && ./run.bash --no-rebuild)
runHook postCheck
'';
preInstall = ''
rm -r pkg/{bootstrap,obj}
# Contains the wrong perl shebang when cross compiling,
# since it is not used for anything we can deleted as well.
rm src/regexp/syntax/make_perl_groups.pl
'' + (if (stdenv.buildPlatform != stdenv.hostPlatform) then ''
mv bin/*_*/* bin
rmdir bin/*_*
${optionalString (!(GOHOSTARCH == GOARCH && GOOS == GOHOSTOS)) ''
rm -rf pkg/${GOHOSTOS}_${GOHOSTARCH} pkg/tool/${GOHOSTOS}_${GOHOSTARCH}
''}
'' else if (stdenv.hostPlatform != stdenv.targetPlatform) then ''
rm -rf bin/*_*
${optionalString (!(GOHOSTARCH == GOARCH && GOOS == GOHOSTOS)) ''
rm -rf pkg/${GOOS}_${GOARCH} pkg/tool/${GOOS}_${GOARCH}
''}
'' else "");
installPhase = ''
runHook preInstall
mkdir -p $GOROOT_FINAL
cp -a bin pkg src lib misc api doc $GOROOT_FINAL
ln -s $GOROOT_FINAL/bin $out/bin
runHook postInstall
'';
setupHook = ./setup-hook.sh;
disallowedReferences = [ goBootstrap ];
meta = with stdenv.lib; {
branch = "1.11";
homepage = http://golang.org/;
description = "The Go Programming language";
license = licenses.bsd3;
maintainers = with maintainers; [ cstrahan orivej velovix mic92 rvolosatovs ];
platforms = platforms.linux ++ platforms.darwin;
};
}

View File

@ -5,9 +5,11 @@
}:
stdenv.mkDerivation rec {
name = "love-0.8.0";
pname = "love";
version = "0.8.0";
src = fetchurl {
url = "https://bitbucket.org/rude/love/downloads/${name}-linux-src.tar.gz";
url = "https://bitbucket.org/rude/love/downloads/${pname}-${version}-linux-src.tar.gz";
sha256 = "1k4fcsa8zzi04ja179bmj24hvqcbm3icfvrvrzyz2gw9qwfclrwi";
};
@ -36,13 +38,14 @@ stdenv.mkDerivation rec {
} || true
'';
NIX_CFLAGS_COMPILE = ''
-I${SDL.dev}/include/SDL
-I${freetype.dev}include/freetype2
'';
NIX_CFLAGS_COMPILE = [
"-I${SDL.dev}/include/SDL"
"-I${freetype.dev}include/freetype2"
"-DGL_GLEXT_PROTOTYPES" # https://community.khronos.org/t/glgenbuffers-was-not-declared-in-this-scope/59283/2
];
meta = {
homepage = http://love2d.org;
homepage = "http://love2d.org";
description = "A Lua-based 2D game engine/scripting language";
license = stdenv.lib.licenses.zlib;

View File

@ -1,4 +1,4 @@
{ stdenv, fetchFromGitHub, autoconf, automake, libtool, libjack2, alsaLib, rtmidi }:
{ stdenv, fetchFromGitHub, autoconf, automake, libtool, libjack2, alsaLib, pulseaudio, rtmidi }:
stdenv.mkDerivation rec {
version = "5.1.0";
@ -13,18 +13,18 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
buildInputs = [ autoconf automake libtool libjack2 alsaLib rtmidi ];
buildInputs = [ autoconf automake libtool libjack2 alsaLib pulseaudio rtmidi ];
preConfigure = ''
./autogen.sh --no-configure
./configure
'';
meta = {
meta = with stdenv.lib; {
description = "A set of C++ classes that provide a cross platform API for realtime audio input/output";
homepage = http://www.music.mcgill.ca/~gary/rtaudio/;
license = stdenv.lib.licenses.mit;
maintainers = [ stdenv.lib.maintainers.magnetophon ];
platforms = with stdenv.lib.platforms; linux ++ darwin;
license = licenses.mit;
maintainers = [ maintainers.magnetophon ];
platforms = platforms.unix;
};
}

View File

@ -3,11 +3,12 @@
stdenv.mkDerivation rec {
pname = "getdns";
version = "1.5.1";
version = "1.5.2";
versionRewrite = builtins.splitVersion version;
src = fetchurl {
url = "https://getdnsapi.net/releases/${pname}-1-5-1/${pname}-${version}.tar.gz";
sha256 = "5686e61100599c309ce03535f9899a5a3d94a82cc08d10718e2cd73ad3dc28af";
url = "https://getdnsapi.net/releases/${pname}-${builtins.concatStringsSep "-" versionRewrite}/${pname}-${version}.tar.gz";
sha256 = "1h4l0sbkpiahpx2pd5lby10yi22mdxgx5xf1y80r77pa46iac9hq";
};
nativeBuildInputs = [ libtool m4 autoreconfHook automake file ];

View File

@ -1,6 +1,6 @@
{ stdenv, fetchurl, meson, ninja, pkgconfig, gst-plugins-base, bzip2, libva, wayland
, libdrm, udev, xorg, libGLU_combined, gstreamer, gst-plugins-bad, nasm
, libvpx, python
, libvpx, python, fetchpatch
}:
stdenv.mkDerivation rec {
@ -12,6 +12,15 @@ stdenv.mkDerivation rec {
sha256 = "07qpynamiz0lniqajcaijh3n7ixs4lfk9a5mfk50sng0dricwzsf";
};
patches = [
# See: https://mail.gnome.org/archives/distributor-list/2019-September/msg00000.html
# Note that the patch has now been actually accepted upstream.
(fetchpatch {
url = "https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/commit/a90daabb84f983d2fa05ff3159f7ad59aa648b55.patch";
sha256 = "0p2qygq6b5h6nxjdfnlzbsyih43hjq5c94ag8sbyyb8pmnids9rb";
})
];
outputs = [ "out" "dev" ];
nativeBuildInputs = [ meson ninja pkgconfig bzip2 ];
@ -28,8 +37,6 @@ stdenv.mkDerivation rec {
'';
mesonFlags = [
# Enables all features, so that we know when new dependencies are necessary.
"-Dauto_features=enabled"
"-Dexamples=disabled" # requires many dependencies and probably not useful for our users
];

View File

@ -16,7 +16,7 @@ top-level attribute to `top-level/all-packages.nix`.
{
newScope,
stdenv, fetchurl, fetchFromGitHub, makeSetupHook, makeWrapper,
stdenv, fetchurl, fetchFromGitHub, fetchpatch, makeSetupHook, makeWrapper,
bison, cups ? null, harfbuzz, libGL, perl,
gstreamer, gst-plugins-base, gtk3, dconf,
llvmPackages_5,
@ -55,7 +55,15 @@ let
./qtbase-fixguicmake.patch
];
qtdeclarative = [ ./qtdeclarative.patch ];
qtscript = [ ./qtscript.patch ];
qtscript = [
./qtscript.patch
# needed due to changes in gcc 8.3, see https://bugreports.qt.io/browse/QTBUG-74196
# fixed in qtscript 5.12.2
(fetchpatch {
url = "https://github.com/qt/qtscript/commit/97ec1d1882a83c23c91f0f7daea48e05858d8c32.diff";
sha256 = "0khrapq13xzvxckzc9l7gqyjwibyd98vyqy6gmyhvsbm2kq8n6wi";
})
];
qtserialport = [ ./qtserialport.patch ];
qttools = [ ./qttools.patch ];
qtwebengine = [

View File

@ -42,7 +42,15 @@ let
./qtbase-openssl_1_1.patch
];
qtdeclarative = [ ./qtdeclarative.patch ];
qtscript = [ ./qtscript.patch ];
qtscript = [
./qtscript.patch
# needed due to changes in gcc 8.3, see https://bugreports.qt.io/browse/QTBUG-74196
# fixed in qtscript 5.12.2
(fetchpatch {
url = "https://github.com/qt/qtscript/commit/97ec1d1882a83c23c91f0f7daea48e05858d8c32.diff";
sha256 = "0khrapq13xzvxckzc9l7gqyjwibyd98vyqy6gmyhvsbm2kq8n6wi";
})
];
qtserialport = [ ./qtserialport.patch ];
qttools = [ ./qttools.patch ];
qtwebengine = [ ./qtwebengine-no-build-skip.patch ]

View File

@ -73,6 +73,11 @@ stdenv.mkDerivation rec {
chmod u+w -R .
'';
postPatch = stdenv.lib.optionalString stdenv.isAarch64 ''
substituteInPlace build/toolchain/linux/BUILD.gn \
--replace 'toolprefix = "aarch64-linux-gnu-"' 'toolprefix = ""'
'';
gnFlags = [
"use_custom_libcxx=false"
"is_clang=${if stdenv.cc.isClang then "true" else "false"}"
@ -104,6 +109,17 @@ stdenv.mkDerivation rec {
install -D d8 $out/bin/d8
install -D obj/libv8_monolith.a $out/lib/libv8.a
cp -r ../../include $out
mkdir -p $out/lib/pkgconfig
cat > $out/lib/pkgconfig/v8.pc << EOF
Name: v8
Description: V8 JavaScript Engine
Version: ${version}
Libs: -L$out/lib -lv8 -pthread
Cflags: -I$out/include
Libs: -L$out/lib -lpulse
Cflags: -I$out/include
EOF
'';
meta = with lib; {

View File

@ -1,6 +1,6 @@
{ stdenv, fetchFromGitHub, cmake, boost, pkgconfig, doxygen, qt48Full, libharu
, pango, fcgi, firebird, mysql, postgresql, graphicsmagick, glew, openssl
, pcre
, pcre, harfbuzz
}:
let
@ -31,6 +31,7 @@ let
"-DWT_CPP_11_MODE=-std=c++11"
"-DGM_PREFIX=${graphicsmagick}"
"-DMYSQL_PREFIX=${mysql.connector-c}"
"-DHARFBUZZ_INCLUDE_DIR=${harfbuzz.dev}/include"
"--no-warn-unused-cli"
];
@ -44,12 +45,12 @@ let
};
in {
wt3 = generic {
version = "3.4.0";
sha256 = "0y0b2h9jf5cg1gdh48dj32pj5nsvipab1cgygncxf98c46ikhysg";
version = "3.4.1";
sha256 = "1bsx7hmy6g2x9p3vl5xw9lv1xk891pnvs93a87s15g257gznkjmj";
};
wt4 = generic {
version = "4.1.0";
sha256 = "1a9nl5gs8m8pssf2l3z6kbl2rc9fw5ad7lfslw5yr3gzi0zqn05x";
version = "4.1.1";
sha256 = "1f1imx5kbpqlysrqx5h75hf2f8pkq972rz42x0pl6cxbnsyzngid";
};
}

View File

@ -1,4 +1,4 @@
{ stdenv, lib, fetchFromGitHub, mcpp, bzip2, expat, openssl, db5
{ stdenv, lib, fetchFromGitHub, fetchpatch, mcpp, bzip2, expat, openssl, db5
, darwin, libiconv, Security
, cpp11 ? false
}:
@ -26,6 +26,16 @@ stdenv.mkDerivation rec {
--replace xcrun ""
'';
patches = [
# Fixes compilation issues with GCC 8 using one of the patches
# provided in https://github.com/zeroc-ice/ice/issues/82
( fetchpatch {
url = "https://github.com/zeroc-ice/ice/commit/a6a4981616b669432ff7b588179d6e93694d9e3f.patch";
sha256 = "17j5r7gsa3izrm7zln4mrp7l16h532gvmpas0kzglybicbiz7d56";
stripLen = 1;
})
];
preBuild = ''
makeFlagsArray+=(
"prefix=$out"

View File

@ -7,13 +7,13 @@
stdenv.mkDerivation rec {
pname = "rappel";
version = "unstable-2019-07-08";
version = "unstable-2019-09-09";
src = fetchFromGitHub {
owner = "yrp604";
repo = "rappel";
rev = "95a776f850cf6a7c21923a2100b605408ef038de";
sha256 = "0fmd15xa6hswh3x48av4g1sf6rncbiinbj7gbw1ffvqsbcfnsgcr";
rev = "31a06762d34880ff2ed7176ca71bd8a6b91b10d5";
sha256 = "0wj3hypqfrjra8mwmn32hs5qs6ic81cq3gn1v0b2fba6vkqcsqfy";
};
buildInputs = [ libedit ];

View File

@ -1,5 +1,5 @@
{ stdenv, buildPythonPackage, fetchPypi
, pytest, pytestcov, mock, coverage
, pytest, pytestcov, mock, coverage, setuptools
, Mako, sqlalchemy, python-editor, dateutil
}:
@ -13,7 +13,7 @@ buildPythonPackage rec {
};
buildInputs = [ pytest pytestcov mock coverage ];
propagatedBuildInputs = [ Mako sqlalchemy python-editor dateutil ];
propagatedBuildInputs = [ Mako sqlalchemy python-editor dateutil setuptools ];
meta = with stdenv.lib; {
homepage = https://bitbucket.org/zzzeek/alembic;

View File

@ -1,5 +1,5 @@
{ lib, buildPythonPackage, fetchPypi
, setuptools_scm, django, dateutil, whoosh, pysolr
, setuptools, setuptools_scm, django, dateutil, whoosh, pysolr
, coverage, mock, nose, geopy, requests }:
buildPythonPackage rec {
@ -12,7 +12,7 @@ buildPythonPackage rec {
};
checkInputs = [ pysolr whoosh dateutil geopy coverage nose mock coverage requests ];
propagatedBuildInputs = [ django ];
propagatedBuildInputs = [ django setuptools ];
nativeBuildInputs = [ setuptools_scm ];
postPatch = ''

View File

@ -10,7 +10,7 @@ buildPythonPackage rec {
propagatedBuildInputs = [ ply ];
disabled = isPy3k;
doCheck = !isPy3k;
meta = {
homepage = https://github.com/erezsh/plyplus;

View File

@ -6,6 +6,7 @@
, qtdeclarative
, qtwebchannel
, withConnectivity ? false, qtconnectivity
, withMultimedia ? false, qtmultimedia
, withWebKit ? false, qtwebkit
, withWebSockets ? false, qtwebsockets
}:
@ -50,6 +51,7 @@ in buildPythonPackage rec {
qtwebchannel
]
++ lib.optional withConnectivity qtconnectivity
++ lib.optional withMultimedia qtmultimedia
++ lib.optional withWebKit qtwebkit
++ lib.optional withWebSockets qtwebsockets
;
@ -121,6 +123,7 @@ in buildPythonPackage rec {
]
++ lib.optional withWebSockets "PyQt5.QtWebSockets"
++ lib.optional withWebKit "PyQt5.QtWebKit"
++ lib.optional withMultimedia "PyQt5.QtMultimedia"
++ lib.optional withConnectivity "PyQt5.QtConnectivity"
;
imports = lib.concatMapStrings (module: "import ${module};") modules;

View File

@ -14,7 +14,7 @@ buildPythonPackage rec {
sha256 = "75e38454757c77060ad3782bd071682d6d316de86f9aec1c2042d236f93aec7b";
};
buildInputs = [ pytest ];
checkInputs = [ pytest ];
propagatedBuildInputs = [ tvdb_api ];
# a ton of tests fail with: IOError: tvnamer/main.py could not be found in . or ..

View File

@ -5,12 +5,12 @@
with stdenv.lib;
stdenv.mkDerivation rec {
pname = "ammonite";
version = "1.6.9";
version = "1.7.1";
scalaVersion = "2.12";
src = fetchurl {
url = "https://github.com/lihaoyi/Ammonite/releases/download/${version}/${scalaVersion}-${version}";
sha256 = "1fi5j0kcndq00x72d8bkx6qiy9nh2i6c6m29gzfqql52qgbq1fd0";
sha256 = "0isg9flnzc2ldbx6q0lg0xyg9lnvqkd8qhgfln8p1hbzdq0n6jd0";
};
propagatedBuildInputs = [ jre ] ;

View File

@ -2,37 +2,27 @@
, gpgme, libgpgerror, lvm2, btrfs-progs, pkgconfig, ostree, libselinux, libseccomp
}:
let
version = "1.10.1";
buildGoPackage rec {
pname = "buildah";
version = "1.11.0";
src = fetchFromGitHub {
rev = "v${version}";
owner = "containers";
repo = "buildah";
sha256 = "0dki2v8j2jzbw49sdzcyjqbalbh70m0lgzrldgj6cc92mj896pxk";
rev = "v${version}";
sha256 = "114dmjqacz5hairl1s8qhndzr52lcvh99g565cq5ydscblnzpw1b";
};
goPackagePath = "github.com/containers/buildah";
in buildGoPackage {
pname = "buildah";
inherit version;
inherit src;
outputs = [ "bin" "man" "out" ];
inherit goPackagePath;
goPackagePath = "github.com/containers/buildah";
excludedPackages = [ "tests" ];
# Optimizations break compilation of libseccomp c bindings
hardeningDisable = [ "fortify" ];
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ gpgme libgpgerror lvm2 btrfs-progs ostree libselinux libseccomp ];
buildPhase = ''
pushd go/src/${goPackagePath}
patchShebangs .
make GIT_COMMIT="unknown"
install -Dm755 buildah $bin/bin/buildah
'';
@ -41,10 +31,10 @@ in buildGoPackage {
make -C docs install PREFIX="$man"
'';
meta = {
meta = with stdenv.lib; {
description = "A tool which facilitates building OCI images";
homepage = https://github.com/containers/buildah;
maintainers = with stdenv.lib.maintainers; [ Profpatsch vdemeester ];
license = stdenv.lib.licenses.asl20;
homepage = "https://github.com/containers/buildah";
license = licenses.asl20;
maintainers = with maintainers; [ Profpatsch vdemeester ];
};
}

View File

@ -2,21 +2,27 @@
buildGoModule rec {
pname = "conftest";
version = "0.7.0";
version = "0.12.0";
src = fetchFromGitHub {
owner = "instrumenta";
repo = "conftest";
rev = "v${version}";
sha256 = "0qq2kp9h91rirlhml5vyzmi7rd4v3pkqjk2bn7mvdn578jnwww24";
sha256 = "0blrbbnvnnxyw0idhglqdz16i7g6g86a6kw2iw707bg0yfdl1ncq";
};
patches = [
# Version 0.12.0 does not build with go 1.13. See https://github.com/instrumenta/conftest/pull/85.
# TODO: Remove once https://github.com/instrumenta/conftest/pull/85 is merged and lands in a release.
./go-1.13-deps.patch
];
buildFlagsArray = ''
-ldflags=
-X main.version=${version}
'';
modSha256 = "0c9phka7n2cfi8lf0a3prks2pjna5dgf5lj6az82iklnq4p7177y";
modSha256 = "11999ywy73ng45gl1qypky8342jvishcp11bdxbigvqhwl2zbpav";
meta = with lib; {
description = "Write tests against structured configuration data";

View File

@ -0,0 +1,99 @@
diff --git a/go.mod b/go.mod
index a552a6b..a39703d 100644
--- a/go.mod
+++ b/go.mod
@@ -1,6 +1,6 @@
module github.com/instrumenta/conftest
-go 1.12
+go 1.13
require (
cloud.google.com/go v0.39.0 // indirect
@@ -43,12 +43,16 @@ require (
golang.org/x/crypto v0.0.0-20190513172903-22d7a77e9e5f // indirect
golang.org/x/oauth2 v0.0.0-20190523182746-aaccbc9213b0 // indirect
golang.org/x/sys v0.0.0-20190526052359-791d8a0f4d09 // indirect
+ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7 // indirect
google.golang.org/appengine v1.6.0 // indirect
google.golang.org/genproto v0.0.0-20190620144150-6af8c5fc6601 // indirect
)
replace (
+ git.apache.org/thrift.git => github.com/apache/thrift v0.0.0-20180902110319-2566ecd5d999
github.com/containerd/containerd => github.com/containerd/containerd v1.2.6
github.com/docker/docker => github.com/docker/docker v0.0.0-20190131205458-8a43b7bb99cd
github.com/golang/lint => golang.org/x/lint v0.0.0-20190409202823-959b441ac422
+ github.com/opencontainers/runc v1.0.1-0.20190307181833-2b18fe1d885e => github.com/opencontainers/runc v1.0.0-rc6.0.20190307181833-2b18fe1d885e
+ golang.org/x/crypto v0.0.0-20190129210102-0709b304e793 => golang.org/x/crypto v0.0.0-20180904163835-0709b304e793
)
diff --git a/go.sum b/go.sum
index 2441c4e..212ac69 100644
--- a/go.sum
+++ b/go.sum
@@ -10,7 +10,6 @@ dmitri.shuralyov.com/app/changes v0.0.0-20180602232624-0a106ad413e3/go.mod h1:Yl
dmitri.shuralyov.com/html/belt v0.0.0-20180602232347-f7d459c86be0/go.mod h1:JLBrvjyP0v+ecvNYvCpyZgu5/xkfAUhi6wJj28eUfSU=
dmitri.shuralyov.com/service/change v0.0.0-20181023043359-a85b471d5412/go.mod h1:a1inKt/atXimZ4Mv927x+r7UpyzRUf4emIoiiSC2TN4=
dmitri.shuralyov.com/state v0.0.0-20180228185332-28bcc343414c/go.mod h1:0PRwlb0D6DFvNNtx+9ybjezNCa8XF0xaYcETyp6rHWU=
-git.apache.org/thrift.git v0.0.0-20180902110319-2566ecd5d999/go.mod h1:fPE2ZNJGynbRyZ4dJvy6G277gSllfV2HJqblrnkyeyg=
github.com/Azure/azure-sdk-for-go v21.3.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc=
github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78 h1:w+iIsaOQNcT7OZ575w+acHgRric5iCyQh+xv+KJ4HB8=
github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8=
@@ -43,6 +42,7 @@ github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYU
github.com/antchfx/xpath v0.0.0-20190129040759-c8489ed3251e/go.mod h1:Yee4kTMuNiPYJ7nSNorELQMr1J33uOpXDMByNYhvtNk=
github.com/antchfx/xquery v0.0.0-20180515051857-ad5b8c7a47b0/go.mod h1:LzD22aAzDP8/dyiCKFp31He4m2GPjl0AFyzDtZzUu9M=
github.com/apache/thrift v0.0.0-20161221203622-b2a4d4ae21c7/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ=
+github.com/apache/thrift v0.0.0-20180902110319-2566ecd5d999/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ=
github.com/apparentlymart/go-cidr v1.0.0 h1:lGDvXx8Lv9QHjrAVP7jyzleG4F9+FkRhJcEsDFxeb8w=
github.com/apparentlymart/go-cidr v1.0.0/go.mod h1:EBcsNrHc3zQeuaeCeCtQruQm+n9/YjEn/vI25Lg7Gwc=
github.com/apparentlymart/go-dump v0.0.0-20180507223929-23540a00eaa3/go.mod h1:oL81AME2rN47vu18xqj1S1jPIPuN7afo62yKTNn3XMM=
@@ -132,13 +132,8 @@ github.com/docker/cli v0.0.0-20190511004558-53fc257292ad/go.mod h1:JLrzqnKDaYBop
github.com/docker/distribution v2.7.1-0.20190205005809-0d3efadf0154+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
github.com/docker/distribution v2.7.1+incompatible h1:a5mlkVzth6W5A4fOsS3D2EO5BUmsJpcB+cRlLU7cSug=
github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
-github.com/docker/docker v0.0.0-20180531152204-71cd53e4a197/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
github.com/docker/docker v0.0.0-20190131205458-8a43b7bb99cd h1:h98Vus5/NAC3I4k243/B/KgCdpjCUK4lfxNEw2p/HAc=
github.com/docker/docker v0.0.0-20190131205458-8a43b7bb99cd/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
-github.com/docker/docker v1.14.0-0.20190131205458-8a43b7bb99cd h1:adRHD5aU4yFK0L4yZwjY3SyWapVmPdq1h19eJdgYUfs=
-github.com/docker/docker v1.14.0-0.20190131205458-8a43b7bb99cd/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
-github.com/docker/docker v1.14.0-0.20190319215453-e7b5f7dbe98c h1:rZ+3jNsgjvYgdZ0Nrd4Udrv8rneDbWBohAPuXsTsvGU=
-github.com/docker/docker v1.14.0-0.20190319215453-e7b5f7dbe98c/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
github.com/docker/docker-credential-helpers v0.6.0/go.mod h1:WRaJzqw3CTB9bk10avuGsjVBZsD05qeibJ1/TYlvc0Y=
github.com/docker/docker-credential-helpers v0.6.1/go.mod h1:WRaJzqw3CTB9bk10avuGsjVBZsD05qeibJ1/TYlvc0Y=
github.com/docker/docker-credential-helpers v0.6.2 h1:CrW9H1VMf3a4GrtyAi7IUJjkJVpwBBpX0+mvkvYJaus=
@@ -214,6 +209,7 @@ github.com/google/martian v2.1.0+incompatible h1:/CP5g8u/VJHijgedC/Legn3BAbAaWPg
github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
github.com/google/shlex v0.0.0-20150127133951-6f45313302b9/go.mod h1:RpwtwJQFrIEPstU94h88MWPXP2ektJZ8cZ0YntAmXiE=
+github.com/googleapis/gax-go v2.0.0+incompatible h1:j0GKcs05QVmm7yesiZq2+9cxHkNK9YM6zKx4D2qucQU=
github.com/googleapis/gax-go v2.0.0+incompatible/go.mod h1:SFVmujtThgffbyetf+mdk2eWhX2bMyUtNHzFKcPA9HY=
github.com/googleapis/gax-go/v2 v2.0.3/go.mod h1:LLvjysVCY1JZeum8Z6l8qUty8fiNwE08qbEPm1M08qg=
github.com/googleapis/gax-go/v2 v2.0.4 h1:hU4mGcQI4DaAYW+IbTun+2qEZVFxK0ySjQLTbS0VQKc=
@@ -407,8 +403,8 @@ github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zM
github.com/opencontainers/runc v0.1.1 h1:GlxAyO6x8rfZYN9Tt0Kti5a/cP41iuiO2yYT0IJGY8Y=
github.com/opencontainers/runc v0.1.1/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U=
github.com/opencontainers/runc v1.0.0-rc6/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U=
-github.com/opencontainers/runc v1.0.1-0.20190307181833-2b18fe1d885e h1:+uPGJuuDl61O9GKN/rLHkUCf597mpxmJI06RqMQX81A=
-github.com/opencontainers/runc v1.0.1-0.20190307181833-2b18fe1d885e/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U=
+github.com/opencontainers/runc v1.0.0-rc6.0.20190307181833-2b18fe1d885e h1:9wcty7nGPPNkY8/VsiZkjmMB8x7SydrklJE+vCr4uDg=
+github.com/opencontainers/runc v1.0.0-rc6.0.20190307181833-2b18fe1d885e/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U=
github.com/opencontainers/runtime-spec v0.0.0-20180909173843-eba862dc2470/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
github.com/opentracing-contrib/go-stdlib v0.0.0-20171029140428-b1a47cfbdd75/go.mod h1:PLldrQSroqzH70Xl+1DQcGnefIbqsKR7UDaiux3zV+w=
github.com/opentracing/opentracing-go v0.0.0-20171003133519-1361b9cd60be/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
@@ -587,7 +583,6 @@ golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnf
golang.org/x/crypto v0.0.0-20181030102418-4d3f4d9ffa16/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20181112202954-3d3f9f413869/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
-golang.org/x/crypto v0.0.0-20190129210102-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20190129210102-ccddf3741a0c/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20190131182504-b8fe1690c613/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20190219172222-a4c6cb3142f2/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
@@ -679,6 +674,8 @@ golang.org/x/tools v0.0.0-20190425150028-36563e24a262 h1:qsl9y/CJx34tuA7QCPNp86J
golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373 h1:PPwnA7z1Pjf7XYaBP9GL1VAMZmcIWyFz7QCMSIIa3Bg=
golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7 h1:9zdDQZ7Thm29KFXgAX/+yaf3eVbP7djjWp/dXAppNCc=
+golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
google.golang.org/api v0.0.0-20180910000450-7ca32eb868bf/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0=
google.golang.org/api v0.0.0-20181030000543-1d582fd0359e/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0=
google.golang.org/api v0.1.0/go.mod h1:UGEZY7KEX120AnNLIHFMKIo4obdJhkp2tPbaPlQx13Y=

View File

@ -18,11 +18,11 @@ let
];
in stdenv.mkDerivation rec {
pname = "insomnia";
version = "6.5.3";
version = "6.6.2";
src = fetchurl {
url = "https://github.com/getinsomnia/insomnia/releases/download/v${version}/insomnia_${version}_amd64.deb";
sha256 = "0km7anw5xpcfr6j7pwqhv26pk7nxv1jywqlz0lpvgj6w85aafcm3";
sha256 = "0hlny3lac7whdbpp0pcyaa30h6x9536jsg95gj9irw2qjsx74xa7";
};
nativeBuildInputs = [

View File

@ -19,6 +19,7 @@
, glibcLocales
, nose
, jsonschema
, setuptools
, send2trash
, CoreAudio
# This little flag adds a huge number of dependencies, but we assume that
@ -87,7 +88,7 @@ buildPythonApplication rec {
propagatedBuildInputs = [
pyqtwebengine sqlalchemy beautifulsoup4 send2trash pyaudio requests decorator
markdown jsonschema
markdown jsonschema setuptools
]
++ lib.optional plotsSupport matplotlib
++ lib.optional stdenv.isDarwin [ CoreAudio ]

View File

@ -13,6 +13,8 @@ stdenv.mkDerivation rec {
hardeningDisable = [ "format" ];
NIX_CFLAGS_COMPILE = [ "-lm" ];
meta = with stdenv.lib; {
description = ''The classic version of a quick tactics game LiquidWar'';
maintainers = [ maintainers.raskin ];

View File

@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
buildInputs = [ libpng SDL2 libGL libjpeg SDL2_ttf libvorbis gettext physfs ];
dontPatchElf = true;
dontPatchELF = true;
patchPhase = ''
sed -i -e 's@\./data@'$out/share/neverball/data@ share/base_config.h Makefile

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
name = "rtl8812au-${kernel.version}-${version}";
version = "5.2.20.2_28373.20180619";
version = "5.2.20.2_28373.20190903";
src = fetchFromGitHub {
owner = "zebulon2";
repo = "rtl8812au-driver-5.2.20";
rev = "ac063a4b1a87855e10f6cd1f358aaccbeee9b9c1";
sha256 = "1cmsv22q4k6p2wzm73k60kxbjhcgx4hqr0x3djvqrlv4rzz75l92";
rev = "30d47a0a3f43ccb19e8fd59fe93d74a955147bf2";
sha256 = "1fy0f8ihxd0i5kr8gmky8v8xl0ns6bhxfdn64c97c5irzdvg37sr";
};
nativeBuildInputs = [ bc ];

View File

@ -65,10 +65,6 @@ let
};
})
(self: super: {
pyyaml = super.pyyaml_3;
})
# hass-frontend does not exist in python3.pkgs
(self: super: {
hass-frontend = self.callPackage ./frontend.nix { };

View File

@ -0,0 +1,512 @@
# -*- coding: utf-8 -*-
# Copyright (C) 1998-2019 by the Free Software Foundation, Inc.
#
# This file is part of Postorius.
#
# Postorius is free software: you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free
# Software Foundation, either version 3 of the License, or (at your option)
# any later version.
#
# Postorius is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
# more details.
#
# You should have received a copy of the GNU General Public License along with
# Postorius. If not, see <http://www.gnu.org/licenses/>.
"""
Django settings for postorius project.
For more information on this file, see
https://docs.djangoproject.com/en/1.9/topics/settings/
For the full list of settings and their values, see
https://docs.djangoproject.com/en/1.9/ref/settings/
"""
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
import os
# Compatibility with Bootstrap 3
from django.contrib.messages import constants as messages
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/1.9/howto/deployment/checklist/
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = '$!-7^wl#wiifjbh)5@f7ji%x!vp7s1vzbvwt26hxv$idixq0u0'
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = False
ADMINS = (
#('Admin', 'webmaster@example.com'),
)
SITE_ID = 1
# Hosts/domain names that are valid for this site; required if DEBUG is False
# See https://docs.djangoproject.com/en/1.8/ref/settings/#allowed-hosts
ALLOWED_HOSTS = [
"localhost", # Archiving API from Mailman, keep it.
"127.0.0.1",
# Add here all production URLs you may have.
@ALLOWED_HOSTS@
]
# Mailman API credentials
MAILMAN_REST_API_URL = 'http://localhost:8001'
MAILMAN_REST_API_USER = 'restadmin'
MAILMAN_REST_API_PASS = 'restpass'
MAILMAN_ARCHIVER_KEY = "@ARCHIVER_KEY@"
MAILMAN_ARCHIVER_FROM = ('127.0.0.1', '::1')
# Application definition
INSTALLED_APPS = (
'hyperkitty',
'postorius',
'django_mailman3',
# Uncomment the next line to enable the admin:
'django.contrib.admin',
# Uncomment the next line to enable admin documentation:
# 'django.contrib.admindocs',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
'django_gravatar',
'compressor',
'haystack',
'django_extensions',
'django_q',
'allauth',
'allauth.account',
'allauth.socialaccount',
'django_mailman3.lib.auth.fedora',
'allauth.socialaccount.providers.openid',
'allauth.socialaccount.providers.github',
'allauth.socialaccount.providers.gitlab',
'allauth.socialaccount.providers.google',
#'allauth.socialaccount.providers.facebook',
#'allauth.socialaccount.providers.twitter',
'allauth.socialaccount.providers.stackexchange',
)
MIDDLEWARE = (
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django_mailman3.middleware.TimezoneMiddleware',
)
ROOT_URLCONF = 'urls'
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.i18n',
'django.template.context_processors.media',
'django.template.context_processors.static',
'django.template.context_processors.tz',
'django.template.context_processors.csrf',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
'django_mailman3.context_processors.common',
'hyperkitty.context_processors.common',
],
},
},
]
WSGI_APPLICATION = 'wsgi.application'
# Database
# https://docs.djangoproject.com/en/1.9/ref/settings/#databases
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': '/var/lib/mailman-web/mailman-web.db'
}
}
# Password validation
# https://docs.djangoproject.com/en/1.9/ref/settings/#auth-password-validators
AUTH_PASSWORD_VALIDATORS = [
{
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
},
]
# If you're behind a proxy, use the X-Forwarded-Host header
# See https://docs.djangoproject.com/en/1.8/ref/settings/#use-x-forwarded-host
# USE_X_FORWARDED_HOST = True
# And if your proxy does your SSL encoding for you, set SECURE_PROXY_SSL_HEADER
# https://docs.djangoproject.com/en/1.8/ref/settings/#secure-proxy-ssl-header
# SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
# SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_SCHEME', 'https')
# Other security settings
# SECURE_SSL_REDIRECT = True
# If you set SECURE_SSL_REDIRECT to True, make sure the SECURE_REDIRECT_EXEMPT
# contains at least this line:
# SECURE_REDIRECT_EXEMPT = [
# "archives/api/mailman/.*", # Request from Mailman.
# ]
# SESSION_COOKIE_SECURE = True
# SECURE_CONTENT_TYPE_NOSNIFF = True
# SECURE_BROWSER_XSS_FILTER = True
# CSRF_COOKIE_SECURE = True
# CSRF_COOKIE_HTTPONLY = True
# X_FRAME_OPTIONS = 'DENY'
# Internationalization
# https://docs.djangoproject.com/en/1.9/topics/i18n/
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'UTC'
USE_I18N = True
USE_L10N = True
USE_TZ = True
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.9/howto/static-files/
# Absolute path to the directory static files should be collected to.
# Don't put anything in this directory yourself; store your static files
# in apps' "static/" subdirectories and in STATICFILES_DIRS.
# Example: "/var/www/example.com/static/"
STATIC_ROOT = 'static'
# URL prefix for static files.
# Example: "http://example.com/static/", "http://static.example.com/"
STATIC_URL = '/static/'
# Additional locations of static files
STATICFILES_DIRS = (
# Put strings here, like "/home/html/static" or "C:/www/django/static".
# Always use forward slashes, even on Windows.
# Don't forget to use absolute paths, not relative paths.
# BASE_DIR + '/static/',
)
# List of finder classes that know how to find static files in
# various locations.
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
# 'django.contrib.staticfiles.finders.DefaultStorageFinder',
'compressor.finders.CompressorFinder',
)
# Django 1.6+ defaults to a JSON serializer, but it won't work with
# django-openid, see
# https://bugs.launchpad.net/django-openid-auth/+bug/1252826
SESSION_SERIALIZER = 'django.contrib.sessions.serializers.PickleSerializer'
LOGIN_URL = 'account_login'
LOGIN_REDIRECT_URL = 'hk_root'
LOGOUT_URL = 'account_logout'
# If you enable internal authentication, this is the address that the emails
# will appear to be coming from. Make sure you set a valid domain name,
# otherwise the emails may get rejected.
# https://docs.djangoproject.com/en/1.8/ref/settings/#default-from-email
DEFAULT_FROM_EMAIL = "@SERVER_EMAIL@"
# If you enable email reporting for error messages, this is where those emails
# will appear to be coming from. Make sure you set a valid domain name,
# otherwise the emails may get rejected.
# https://docs.djangoproject.com/en/1.8/ref/settings/#std:setting-SERVER_EMAIL
SERVER_EMAIL = "@SERVER_EMAIL@"
MESSAGE_TAGS = {
messages.ERROR: 'danger'
}
#
# Social auth
#
AUTHENTICATION_BACKENDS = (
'django.contrib.auth.backends.ModelBackend',
'allauth.account.auth_backends.AuthenticationBackend',
)
# Django Allauth
ACCOUNT_AUTHENTICATION_METHOD = "username_email"
ACCOUNT_EMAIL_REQUIRED = True
ACCOUNT_EMAIL_VERIFICATION = "mandatory"
ACCOUNT_DEFAULT_HTTP_PROTOCOL = "https"
ACCOUNT_UNIQUE_EMAIL = True
SOCIALACCOUNT_PROVIDERS = {
'openid': {
'SERVERS': [
dict(id='yahoo',
name='Yahoo',
openid_url='http://me.yahoo.com'),
],
},
'google': {
'SCOPE': ['profile', 'email'],
'AUTH_PARAMS': {'access_type': 'online'},
},
'facebook': {
'METHOD': 'oauth2',
'SCOPE': ['email'],
'FIELDS': [
'email',
'name',
'first_name',
'last_name',
'locale',
'timezone',
],
'VERSION': 'v2.4',
},
'gitlab': {
'GITLAB_URL': 'https://gitlab.com',
'SCOPE': ['read_user'],
},
}
#
# Gravatar
# https://github.com/twaddington/django-gravatar
#
# Gravatar base url.
# GRAVATAR_URL = 'http://cdn.libravatar.org/'
# Gravatar base secure https url.
# GRAVATAR_SECURE_URL = 'https://seccdn.libravatar.org/'
# Gravatar size in pixels.
# GRAVATAR_DEFAULT_SIZE = '80'
# An image url or one of the following: 'mm', 'identicon', 'monsterid',
# 'wavatar', 'retro'.
# GRAVATAR_DEFAULT_IMAGE = 'mm'
# One of the following: 'g', 'pg', 'r', 'x'.
# GRAVATAR_DEFAULT_RATING = 'g'
# True to use https by default, False for plain http.
# GRAVATAR_DEFAULT_SECURE = True
# These can be set to override the defaults but are not mandatory:
# EMAIL_CONFIRMATION_TEMPLATE = 'postorius/address_confirmation_message.txt'
# EMAIL_CONFIRMATION_SUBJECT = 'Confirmation needed'
#
# django-compressor
# https://pypi.python.org/pypi/django_compressor
#
COMPRESS_PRECOMPILERS = (
('text/x-scss', '/run/current-system/sw/bin/sassc -t compressed {infile} {outfile}'),
('text/x-sass', '/run/current-system/sw/bin/sassc -t compressed {infile} {outfile}'),
)
# On a production setup, setting COMPRESS_OFFLINE to True will bring a
# significant performance improvement, as CSS files will not need to be
# recompiled on each requests. It means running an additional "compress"
# management command after each code upgrade.
# http://django-compressor.readthedocs.io/en/latest/usage/#offline-compression
COMPRESS_ENABLED = True
COMPRESS_OFFLINE = True
# Needed for debug mode
# INTERNAL_IPS = ('127.0.0.1',)
#
# Full-text search engine
#
HAYSTACK_CONNECTIONS = {
'default': {
'ENGINE': 'haystack.backends.whoosh_backend.WhooshEngine',
'PATH': "/var/lib/mailman-web/fulltext_index",
# You can also use the Xapian engine, it's faster and more accurate,
# but requires another library.
# http://django-haystack.readthedocs.io/en/v2.4.1/installing_search_engines.html#xapian
# Example configuration for Xapian:
#'ENGINE': 'xapian_backend.XapianEngine'
},
}
#
# REST framework
#
REST_FRAMEWORK = {
'PAGE_SIZE': 10,
'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.LimitOffsetPagination',
'DEFAULT_FILTER_BACKENDS': (
'rest_framework.filters.OrderingFilter',
),
}
#
# Asynchronous tasks
#
Q_CLUSTER = {
'timeout': 300,
'save_limit': 100,
'orm': 'default',
}
# A sample logging configuration. The only tangible logging
# performed by this configuration is to send an email to
# the site admins on every HTTP 500 error when DEBUG=False.
# See http://docs.djangoproject.com/en/dev/topics/logging for
# more details on how to customize your logging configuration.
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'filters': {
'require_debug_false': {
'()': 'django.utils.log.RequireDebugFalse'
}
},
'handlers': {
'console': {
'class': 'logging.StreamHandler',
'formatter': 'simple',
},
'mail_admins': {
'level': 'ERROR',
'filters': ['require_debug_false'],
'class': 'django.utils.log.AdminEmailHandler'
},
'file':{
'level': 'INFO',
#'class': 'logging.handlers.RotatingFileHandler',
'class': 'logging.handlers.WatchedFileHandler',
'filename': 'mailman-web.log',
'formatter': 'verbose',
},
},
'loggers': {
'django': {
'handlers': ['console', 'file'],
'level': 'INFO',
},
'django.request': {
'handlers': ['console', 'mail_admins', 'file'],
'level': 'ERROR',
'propagate': True,
},
'postorius': {
'handlers': ['console', 'file'],
'level': 'INFO',
},
'django': {
'handlers': ['file'],
'level': 'ERROR',
'propagate': True,
},
'hyperkitty': {
'handlers': ['file'],
'level': 'DEBUG',
'propagate': True,
},
},
'formatters': {
'simple': {
'format': '%(levelname)s: %(message)s'
},
'verbose': {
'format': '%(levelname)s %(asctime)s %(process)d %(name)s %(message)s'
},
'simple': {
'format': '%(levelname)s %(message)s'
},
},
#'root': {
# 'handlers': ['file'],
# 'level': 'INFO',
#},
}
POSTORIUS_TEMPLATE_BASE_URL = "http://localhost:8000"
# Using the cache infrastructure can significantly improve performance on a
# production setup. This is an example with a local Memcached server.
#CACHES = {
# 'default': {
# 'BACKEND': 'django.core.cache.backends.memcached.PyLibMCCache',
# 'LOCATION': '127.0.0.1:11211',
# }
#}
# When DEBUG is True, don't actually send emails to the SMTP server, just store
# them in a directory. This way you won't accidentally spam your mailing-lists
# while you're fiddling with the code.
if DEBUG == True:
EMAIL_BACKEND = 'django.core.mail.backends.filebased.EmailBackend'
EMAIL_FILE_PATH = '/tmp/hyperkitty-emails'
#
# HyperKitty-specific
#
# Only display mailing-lists from the same virtual host as the webserver
FILTER_VHOST = False
# Disable singleton locking for Django-Q tasks.
HYPERKITTY_DISABLE_SINGLETON_TASKS = False
# Maximum time between two task runs with same function and arguments.
# This setting is mostly meant for Mailman Developers and should be used
# with caution.
# Default set to 10mins.
HYPERKITTY_TASK_LOCK_TIMEOUT = 10 * 60
try:
from settings_local import *
except ImportError:
pass

View File

@ -0,0 +1,34 @@
# -*- coding: utf-8 -*-
# Copyright (C) 1998-2019 by the Free Software Foundation, Inc.
#
# This file is part of Postorius.
#
# Postorius is free software: you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free
# Software Foundation, either version 3 of the License, or (at your option)
# any later version.
#
# Postorius is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
# more details.
#
# You should have received a copy of the GNU General Public License along with
# Postorius. If not, see <http://www.gnu.org/licenses/>.
from django.conf.urls import include, url
from django.contrib import admin
from django.urls import reverse_lazy
from django.views.generic import RedirectView
urlpatterns = [
url(r'^$', RedirectView.as_view(url=reverse_lazy('hk_root'))),
url(r'^hyperkitty/', include('hyperkitty.urls')),
url(r'^postorius/', include('postorius.urls')),
url(r'', include('django_mailman3.urls')),
url(r'^accounts/', include('allauth.urls')),
# Django admin
url(r'^admin/', admin.site.urls),
]

View File

@ -0,0 +1,37 @@
{ stdenv, python, hyperkitty, postorius, buildPythonPackage
, serverEMail ? "postmaster@example.org"
, archiverKey ? "SecretArchiverAPIKey"
, allowedHosts ? []
}:
let
allowedHostsString = stdenv.lib.concatMapStringsSep ", " (x: "\""+x+"\"") allowedHosts;
in
# We turn those Djando configuration files into a make-shift Python library so
# that Nix users can use this package as a part of their buildInputs to import
# the code. Also, this package implicitly provides an environment in which the
# Django app can be run.
buildPythonPackage {
name = "mailman-web-0";
propagatedBuildInputs = [ hyperkitty postorius ];
unpackPhase = ":";
buildPhase = ":";
setuptoolsCheckPhase = ":";
installPhase = ''
d=$out/${python.sitePackages}
install -D -m 444 ${./urls.py} $d/urls.py
install -D -m 444 ${./wsgi.py} $d/wsgi.py
substitute ${./settings.py} $d/settings.py \
--subst-var-by SERVER_EMAIL '${serverEMail}' \
--subst-var-by ARCHIVER_KEY '${archiverKey}' \
--subst-var-by ALLOWED_HOSTS '${allowedHostsString}'
chmod 444 $d/settings.py
'';
}

View File

@ -0,0 +1,17 @@
"""
WSGI config for meh project.
It exposes the WSGI callable as a module-level variable named ``application``.
For more information on this file, see
https://docs.djangoproject.com/en/1.9/howto/deployment/wsgi/
"""
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings")
application = get_wsgi_application()

View File

@ -28,6 +28,7 @@ buildPythonPackage rec {
telethon-session-sqlalchemy
pillow
lxml
setuptools
];
# `alembic` (a database migration tool) is only needed for the initial setup,

View File

@ -24,6 +24,11 @@ buildGoPackage rec {
rm -rf testing
'';
# Fix build with go >=1.12
preBuild = ''
sed -i s/"_Ctype_struct_GeoIPRecordTag"/"C.struct_GeoIPRecordTag"/ ./go/src/github.com/etix/geoip/geoip.go
'';
goPackagePath = "github.com/etix/mirrorbits";
goDeps = ./deps.nix;

View File

@ -2,7 +2,7 @@
buildGoPackage rec {
pname = "blackbox_exporter";
version = "0.14.0";
version = "0.15.0";
rev = version;
goPackagePath = "github.com/prometheus/blackbox_exporter";
@ -11,7 +11,7 @@ buildGoPackage rec {
rev = "v${version}";
owner = "prometheus";
repo = "blackbox_exporter";
sha256 = "1v5n59p9jl6y1ka9mqp0ibx1kpcb3gbpl0i6bhqpbr154frmqm4x";
sha256 = "06llb37xpn5zjnqkw526vbk4mfdiwrv3yg7aw4365p3gz5dk085i";
};
doCheck = true;

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, perl, openssl, db, zlib, uwimap, html-tidy, pam}:
{ stdenv, fetchurl, fetchpatch, perl, openssl, db, zlib, uwimap, html-tidy, pam}:
let
ssl = stdenv.lib.optionals uwimap.withSSL
@ -12,7 +12,20 @@ stdenv.mkDerivation rec {
sha256 = "135fjbxjn385b6cjys6qhbwfw61mdcl2akkll4jfpdzfvhbxlyda";
};
patches = [ ./install.patch ];
patches = [
./install.patch
# fix build errors which result from openssl changes
(fetchpatch {
url = "https://sources.debian.org/data/main/p/prayer/1.3.5-dfsg1-6/debian/patches/disable_ssl3.patch";
sha256 = "1rx4bidc9prh4gffipykp144cyi3zd6qzd990s2aad3knzv5bkdd";
})
(fetchpatch {
url = "https://sources.debian.org/data/main/p/prayer/1.3.5-dfsg1-6/debian/patches/openssl1.1.patch";
sha256 = "0zinylvq3bcifdmki867gir49pbjx6qb5h019hawwif2l4jmlxw1";
})
];
postPatch = ''
sed -i -e s/gmake/make/ -e 's/LDAP_ENABLE.*= true/LDAP_ENABLE=false/' \
${ssl} \

View File

@ -1,10 +1,7 @@
{ stdenv, coreutils, curl, diffutils, gawk, gnugrep, gnused, openssl, makeWrapper, fetchFromGitHub }:
let
pkgName = "dehydrated";
version = "0.6.5";
in
{ stdenv, coreutils, curl, diffutils, gawk, gnugrep, gnused, openssl, makeWrapper, fetchFromGitHub, installShellFiles }:
stdenv.mkDerivation rec {
name = pkgName + "-" + version;
pname = "dehydrated";
version = "0.6.5";
src = fetchFromGitHub {
owner = "lukas2511";
@ -13,9 +10,16 @@ stdenv.mkDerivation rec {
sha256 = "14k7ykry16zp09i0bqb5pqaclvnjcb6p3x8knm9v5q0bdvlplkjv";
};
buildInputs = [ makeWrapper ];
nativeBuildInputs = [ makeWrapper installShellFiles ];
installPhase = ''
installManPage docs/man/dehydrated.1
mkdir -p "$out/share/docs/dehydrated"
cp docs/*.md "$out/share/docs/dehydrated"
cp -r docs/examples "$out/share/docs/dehydrated"
cp {CHANGELOG,LICENSE,README.md} "$out/share/docs/dehydrated"
mkdir -p $out/bin
cp -a dehydrated $out/bin
wrapProgram "$out/bin/dehydrated" --prefix PATH : "${stdenv.lib.makeBinPath [ openssl coreutils gnused gnugrep diffutils curl gawk ]}"

View File

@ -0,0 +1,49 @@
{ stdenv, fetchFromGitHub, perl, which
, openssl, sqlite }:
# Instead of writing directly into $HOME, we change the default db location
# from $HOME/.dupd_sqlite to $HOME/.cache/dupd.sqlite3
stdenv.mkDerivation rec {
pname = "dupd";
version = "1.7";
src = fetchFromGitHub {
owner = "jvirkki";
repo = "dupd";
rev = version;
sha256 = "0vg4vbiwjc5p22cisj8970mym4y2r29fcm08ibik92786vsbxcqk";
};
postPatch = ''
patchShebangs tests
# tests need HOME to write the database
export HOME=$TMPDIR
mkdir -p $HOME/.cache
for f in man/dupd man/dupd.1 src/main.c tests/test.56 tests/test.57 ; do
substituteInPlace $f --replace .dupd_sqlite .cache/dupd.sqlite3
done
'';
buildInputs = [ openssl sqlite ];
nativeBuildInputs = [ perl which ];
makeFlags = [
"INSTALL_PREFIX=$(out)"
];
enableParallelBuilding = true;
doCheck = true;
meta = with stdenv.lib; {
description = "CLI utility to find duplicate files";
homepage = http://www.virkki.com/dupd;
license = licenses.gpl3;
maintainers = with maintainers; [ peterhoeg ];
};
}

View File

@ -1,27 +1,38 @@
{ stdenv, buildGoPackage, fetchFromGitHub, openssl_1_0_2, pkgconfig, libpcap }:
{ stdenv
, lib
, buildGoPackage
, fetchFromGitHub
, openssl_1_0_2
, pkgconfig
, libpcap
}:
let
tools = [
"bsondump" "mongodump" "mongoexport" "mongofiles" "mongoimport"
"mongoreplay" "mongorestore" "mongostat" "mongotop"
"bsondump"
"mongoimport"
"mongoexport"
"mongodump"
"mongorestore"
"mongostat"
"mongofiles"
"mongotop"
"mongoreplay"
];
in
version = "4.2.0";
with stdenv.lib;
buildGoPackage rec {
in buildGoPackage {
pname = "mongo-tools";
version = "3.7.2";
rev = "r${version}";
inherit version;
goPackagePath = "github.com/mongodb/mongo-tools";
subPackages = map (t: t + "/main") tools;
subPackages = tools;
src = fetchFromGitHub {
inherit rev;
rev = "r${version}";
owner = "mongodb";
repo = "mongo-tools";
sha256 = "1y5hd4qw7422sqkj8vmy4agscvin3ck54r515bjrzn69iw73nhfl";
sha256 = "0mjwvx0cxvb6zam6jyr3753xjnwcygxcjzqhhlsq0b3xnwws9yh7";
};
nativeBuildInputs = [ pkgconfig ];
@ -31,18 +42,18 @@ buildGoPackage rec {
# Let's work around this with our own installer
buildPhase = ''
# move vendored codes so nixpkgs go builder could find it
mv go/src/github.com/mongodb/mongo-tools/vendor/src/* go/src/github.com/mongodb/mongo-tools/vendor/
runHook preBuild
${stdenv.lib.concatMapStrings (t: ''
go build -o "$bin/bin/${t}" -tags ssl -ldflags "-s -w" $goPackagePath/${t}/main
'') tools}
runHook postBuild
'';
meta = {
homepage = https://github.com/mongodb/mongo-tools;
description = "Tools for the MongoDB";
license = licenses.asl20;
license = lib.licenses.asl20;
};
}

View File

@ -18,11 +18,11 @@ buildPythonPackage rec {
# The websites youtube-dl deals with are a very moving target. That means that
# downloads break constantly. Because of that, updates should always be backported
# to the latest stable release.
version = "2019.09.01";
version = "2019.09.12.1";
src = fetchurl {
url = "https://yt-dl.org/downloads/${version}/${pname}-${version}.tar.gz";
sha256 = "0jbby0x5krww1acc8qxhmmwg0dsqmj6yjnynfm7r6k3rxbvlydqr";
sha256 = "0h7v81kcxcpy82wq9b1aiz2zg6hg7rnlcfmzd13j6k8yhr7ah9yf";
};
nativeBuildInputs = [ makeWrapper ];

View File

@ -5,7 +5,6 @@ assert stdenv.isLinux -> libcap != null;
stdenv.mkDerivation rec {
pname = "chrony";
version = "3.5";
src = fetchurl {
@ -32,7 +31,7 @@ stdenv.mkDerivation rec {
repositories.git = git://git.tuxfamily.org/gitroot/chrony/chrony.git;
license = licenses.gpl2;
platforms = with platforms; linux ++ freebsd ++ openbsd;
maintainers = with maintainers; [ fpletz ];
maintainers = with maintainers; [ fpletz thoughtpolice ];
longDescription = ''
Chronyd is a daemon which runs in background on the system. It obtains

View File

@ -1,11 +1,11 @@
{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig
{ stdenv, lib, fetchFromGitHub, autoreconfHook, pkgconfig
, libcap, ncurses
, withGtk ? false, gtk2 ? null }:
assert withGtk -> gtk2 != null;
stdenv.mkDerivation rec {
pname = "mtr";
pname = "mtr${lib.optionalString withGtk "-gui"}";
version = "0.93";
src = fetchFromGitHub {

View File

@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
# very close to isc and bsd2
url = https://www.eecis.udel.edu/~mills/ntp/html/copyright.html;
};
maintainers = [ maintainers.eelco ];
maintainers = with maintainers; [ eelco thoughtpolice ];
platforms = platforms.linux;
};
}

View File

@ -37,5 +37,6 @@ stdenv.mkDerivation rec {
license = licenses.bsd3;
description = "OpenBSD NTP daemon (Debian port)";
platforms = platforms.all;
maintainers = with maintainers; [ thoughtpolice ];
};
}

View File

@ -51,7 +51,7 @@ let
dontBuild = true;
dontConfigure = true;
dontPatchElf = true;
dontPatchELF = true;
dontWrapGApps = true;
buildInputs = [ libsecret ] ++ atomEnv.packages;

View File

@ -59,7 +59,7 @@ stdenv.mkDerivation rec {
dontBuild = true;
dontConfigure = true;
dontPatchElf = true;
dontPatchELF = true;
unpackPhase = ''
ar xf $src

View File

@ -2,14 +2,15 @@
let
inherit (python3.pkgs) buildPythonApplication pytest mock pexpect;
repo = "lesspass";
in
buildPythonApplication rec {
pname = "lesspass-cli";
version = "9.0.0";
src = fetchFromGitHub {
owner = pname;
repo = pname;
owner = repo;
repo = repo;
rev = version;
sha256 = "1mdv0c0fn4d72iigy8hz4s7kf7q3pg4gjjadxwxyjwsalapnsapk";
};

View File

@ -28,7 +28,7 @@ in stdenv.mkDerivation rec {
buildInputs = [ makeWrapper ];
dontPatchelf = true; # stay away from exploit executables
dontPatchELF = true; # stay away from exploit executables
installPhase = ''
mkdir -p $out/{bin,share/msf}

View File

@ -2,19 +2,17 @@
stdenv.mkDerivation rec {
pname = "scdoc";
version = "1.9.7";
version = "1.10.0";
src = fetchurl {
url = "https://git.sr.ht/~sircmpwn/scdoc/archive/${version}.tar.gz";
sha256 = "0y9p03dzdaszx02jbkdf3vcs52fqml591cmic5jdch5yznrg03ky";
sha256 = "0lk8wpz95ld1fnpnc3xkhvnd58px1vbhvlpkr8labi2ck65y10il";
};
postPatch = ''
substituteInPlace Makefile \
--replace "-static" "" \
--replace "/usr/local" "$out"
# It happens from time to time that the version wasn't updated:
sed -iE 's/VERSION=[0-9]\.[0-9]\.[0-9]/VERSION=${version}/' Makefile
'';
doCheck = true;

View File

@ -1993,11 +1993,7 @@ in
mongodb-compass = callPackage ../tools/misc/mongodb-compass { };
mongodb-tools = callPackage ../tools/misc/mongodb-tools {
# XXX: this is failing with Go 1.12. Error is related to cgo, an
# update to this package might fix it.
buildGoPackage = buildGo111Package;
};
mongodb-tools = callPackage ../tools/misc/mongodb-tools { };
moosefs = callPackage ../tools/filesystems/moosefs { };
@ -4798,11 +4794,7 @@ in
miredo = callPackage ../tools/networking/miredo { };
mirrorbits = callPackage ../servers/mirrorbits {
# XXX: this is failing with Go 1.12. Error is related to cgo, an
# update to this package might fix it.
buildGoPackage = buildGo111Package;
};
mirrorbits = callPackage ../servers/mirrorbits { };
mitmproxy = callPackage ../tools/networking/mitmproxy { };
@ -4868,6 +4860,8 @@ in
mtr = callPackage ../tools/networking/mtr {};
mtr-gui = callPackage ../tools/networking/mtr { withGtk = true; };
mtx = callPackage ../tools/backup/mtx {};
mt-st = callPackage ../tools/backup/mt-st {};
@ -5693,7 +5687,7 @@ in
openmodelica = callPackage ../applications/science/misc/openmodelica { };
qarte = callPackage ../applications/video/qarte { };
qarte = libsForQt5.callPackage ../applications/video/qarte { };
qlcplus = libsForQt5.callPackage ../applications/misc/qlcplus { };
@ -7908,10 +7902,6 @@ in
inherit (darwin.apple_sdk.frameworks) Security;
};
go_1_11 = callPackage ../development/compilers/go/1.11.nix {
inherit (darwin.apple_sdk.frameworks) Security Foundation;
};
go_1_12 = callPackage ../development/compilers/go/1.12.nix {
inherit (darwin.apple_sdk.frameworks) Security Foundation;
};
@ -13176,7 +13166,7 @@ in
qt511 = recurseIntoAttrs (makeOverridable
(import ../development/libraries/qt-5/5.11) {
inherit newScope;
inherit stdenv fetchurl fetchFromGitHub makeSetupHook makeWrapper;
inherit stdenv fetchurl fetchFromGitHub fetchpatch makeSetupHook makeWrapper;
bison = bison2; # error: too few arguments to function 'int yylex(...
inherit cups;
harfbuzz = harfbuzzFull;
@ -14349,19 +14339,12 @@ in
### DEVELOPMENT / GO MODULES
buildGo111Package = callPackage ../development/go-packages/generic {
go = buildPackages.go_1_11;
};
buildGo112Package = callPackage ../development/go-packages/generic {
go = buildPackages.go_1_12;
};
buildGoPackage = buildGo112Package;
buildGo111Module = callPackage ../development/go-modules/generic {
go = buildPackages.go_1_11;
};
buildGo112Module = callPackage ../development/go-modules/generic {
go = buildPackages.go_1_12;
};
@ -17693,6 +17676,8 @@ in
cpp_ethereum = callPackage ../applications/misc/cpp-ethereum { };
crun = callPackage ../applications/virtualization/crun {};
csdp = callPackage ../applications/science/math/csdp { };
ctop = callPackage ../tools/system/ctop { };
@ -18928,6 +18913,8 @@ in
japa = callPackage ../applications/audio/japa { };
dupd = callPackage ../tools/misc/dupd { };
jdupes = callPackage ../tools/misc/jdupes { };
jedit = callPackage ../applications/editors/jedit { };
@ -24336,7 +24323,7 @@ in
terraform_plugins_test
;
terraform = terraform_0_11;
terraform = terraform_0_12;
# deprecated
terraform-full = terraform.full;

View File

@ -719,6 +719,8 @@ in {
mailman = disabledIf (!isPy3k) (callPackage ../servers/mail/mailman/core.nix { });
mailman-web = disabledIf (!isPy3k) (callPackage ../servers/mail/mailman/web.nix { });
mailmanclient = callPackage ../development/python-modules/mailmanclient { };
mailman-hyperkitty = callPackage ../development/python-modules/mailman-hyperkitty { };
@ -1000,6 +1002,8 @@ in {
*/
pyqt5_with_qtwebkit = self.pyqt5.override { withWebKit = true; };
pyqt5_with_qtmultimedia = self.pyqt5.override { withMultimedia = true; };
pyqtwebengine = pkgs.libsForQt5.callPackage ../development/python-modules/pyqtwebengine {
pythonPackages = self;
};