Merge master into staging-next

This commit is contained in:
github-actions[bot] 2021-03-23 12:27:46 +00:00 committed by GitHub
commit 963842fb19
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
30 changed files with 521 additions and 72 deletions

View file

@ -682,6 +682,7 @@
./services/networking/i2p.nix
./services/networking/icecream/scheduler.nix
./services/networking/icecream/daemon.nix
./services/networking/inspircd.nix
./services/networking/iodine.nix
./services/networking/iperf3.nix
./services/networking/ircd-hybrid/default.nix

View file

@ -0,0 +1,62 @@
{ config, lib, pkgs, ... }:
let
cfg = config.services.inspircd;
configFile = pkgs.writeText "inspircd.conf" cfg.config;
in {
meta = {
maintainers = [ lib.maintainers.sternenseemann ];
};
options = {
services.inspircd = {
enable = lib.mkEnableOption "InspIRCd";
package = lib.mkOption {
type = lib.types.package;
default = pkgs.inspircd;
defaultText = lib.literalExample "pkgs.inspircd";
example = lib.literalExample "pkgs.inspircdMinimal";
description = ''
The InspIRCd package to use. This is mainly useful
to specify an overridden version of the
<literal>pkgs.inspircd</literal> dervivation, for
example if you want to use a more minimal InspIRCd
distribution with less modules enabled or with
modules enabled which can't be distributed in binary
form due to licensing issues.
'';
};
config = lib.mkOption {
type = lib.types.lines;
description = ''
Verbatim <literal>inspircd.conf</literal> file.
For a list of options, consult the
<link xlink:href="https://docs.inspircd.org/3/configuration/">InspIRCd documentation</link>, the
<link xlink:href="https://docs.inspircd.org/3/modules/">Module documentation</link>
and the example configuration files distributed
with <literal>pkgs.inspircd.doc</literal>
'';
};
};
};
config = lib.mkIf cfg.enable {
systemd.services.inspircd = {
description = "InspIRCd - the stable, high-performance and modular Internet Relay Chat Daemon";
wantedBy = [ "multi-user.target" ];
requires = [ "network.target" ];
serviceConfig = {
Type = "simple";
ExecStart = ''
${lib.getBin cfg.package}/bin/inspircd start --config ${configFile} --nofork --nopid
'';
DynamicUser = true;
};
};
};
}

View file

@ -176,6 +176,7 @@ in
initrd-network-ssh = handleTest ./initrd-network-ssh {};
initrdNetwork = handleTest ./initrd-network.nix {};
initrd-secrets = handleTest ./initrd-secrets.nix {};
inspircd = handleTest ./inspircd.nix {};
installer = handleTest ./installer.nix {};
iodine = handleTest ./iodine.nix {};
ipfs = handleTest ./ipfs.nix {};

93
nixos/tests/inspircd.nix Normal file
View file

@ -0,0 +1,93 @@
let
clients = [
"ircclient1"
"ircclient2"
];
server = "inspircd";
ircPort = 6667;
channel = "nixos-cat";
iiDir = "/tmp/irc";
in
import ./make-test-python.nix ({ pkgs, lib, ... }: {
name = "inspircd";
nodes = {
"${server}" = {
networking.firewall.allowedTCPPorts = [ ircPort ];
services.inspircd = {
enable = true;
package = pkgs.inspircdMinimal;
config = ''
<bind address="" port="${toString ircPort}" type="clients">
<connect name="main" allow="*" pingfreq="15">
'';
};
};
} // lib.listToAttrs (builtins.map (client: lib.nameValuePair client {
imports = [
./common/user-account.nix
];
systemd.services.ii = {
requires = [ "network.target" ];
wantedBy = [ "default.target" ];
serviceConfig = {
Type = "simple";
ExecPreStartPre = "mkdir -p ${iiDir}";
ExecStart = ''
${lib.getBin pkgs.ii}/bin/ii -n ${client} -s ${server} -i ${iiDir}
'';
User = "alice";
};
};
}) clients);
testScript =
let
msg = client: "Hello, my name is ${client}";
clientScript = client: [
''
${client}.wait_for_unit("network.target")
${client}.systemctl("start ii")
${client}.wait_for_unit("ii")
${client}.wait_for_file("${iiDir}/${server}/out")
''
# wait until first PING from server arrives before joining,
# so we don't try it too early
''
${client}.wait_until_succeeds("grep 'PING' ${iiDir}/${server}/out")
''
# join ${channel}
''
${client}.succeed("echo '/j #${channel}' > ${iiDir}/${server}/in")
${client}.wait_for_file("${iiDir}/${server}/#${channel}/in")
''
# send a greeting
''
${client}.succeed(
"echo '${msg client}' > ${iiDir}/${server}/#${channel}/in"
)
''
# check that all greetings arrived on all clients
] ++ builtins.map (other: ''
${client}.succeed(
"grep '${msg other}$' ${iiDir}/${server}/#${channel}/out"
)
'') clients;
# foldl', but requires a non-empty list instead of a start value
reduce = f: list:
builtins.foldl' f (builtins.head list) (builtins.tail list);
in ''
start_all()
${server}.wait_for_open_port(${toString ircPort})
# run clientScript for all clients so that every list
# entry is executed by every client before advancing
# to the next one.
'' + lib.concatStrings
(reduce
(lib.zipListsWith (cs: c: cs + c))
(builtins.map clientScript clients));
})

View file

@ -63,6 +63,6 @@ stdenv.mkDerivation rec {
homepage = "https://getmonero.org/";
license = licenses.bsd3;
platforms = platforms.all;
maintainers = with maintainers; [ ehmry rnhmjoj ];
maintainers = with maintainers; [ rnhmjoj ];
};
}

View file

@ -150,6 +150,6 @@ python3.pkgs.buildPythonApplication {
homepage = "https://electrum.org/";
license = licenses.mit;
platforms = platforms.all;
maintainers = with maintainers; [ ehmry joachifm np prusnak ];
maintainers = with maintainers; [ joachifm np prusnak ];
};
}

View file

@ -31,6 +31,5 @@ mkDerivation {
homepage = "https://centrabit.com/";
license = licenses.gpl3;
platforms = qt5.qtbase.meta.platforms;
maintainers = [ maintainers.ehmry ];
};
}

View file

@ -7,16 +7,16 @@ in
rec {
firefox = common rec {
pname = "firefox";
ffversion = "86.0.1";
ffversion = "87.0";
src = fetchurl {
url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz";
sha512 = "e613cdcadfd71a01800a72c08c590032605ca8a8a0ba93326ffba93c2819f629fd620c23d00ca1274b203adc20acfe5d7913fee240ff14819fb1377ed08b1214";
sha512 = "c1c08be2283e7a162c8be2f2647ec2bb85cab592738dc45e4b4ffb72969229cc0019a30782a4cb27f09a13b088c63841071dd202b3543dfba295140a7d6246a4";
};
meta = {
description = "A web browser built from Firefox source tree";
homepage = "http://www.mozilla.com/en-US/firefox/";
maintainers = with lib.maintainers; [ eelco lovesegfault ];
maintainers = with lib.maintainers; [ eelco lovesegfault hexa ];
platforms = lib.platforms.unix;
badPlatforms = lib.platforms.darwin;
broken = stdenv.buildPlatform.is32bit; # since Firefox 60, build on 32-bit platforms fails with "out of memory".
@ -32,16 +32,16 @@ rec {
firefox-esr-78 = common rec {
pname = "firefox-esr";
ffversion = "78.8.0esr";
ffversion = "78.9.0esr";
src = fetchurl {
url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz";
sha512 = "0160aa6c408c2af66d24b74cf98e1a07ab1604e7b93ffcde79201f9d68e41e896ef965f1904de52d5dd82ffedae33ac96e93b871727bf5dd5983c5af2f1f439f";
sha512 = "28582fc0a03fb50c0a817deb1083817bb7f2f5d38e98439bf655ed4ee18c83568b3002a59ef76edf357bfb11f55832a221d14130f116aac19d850768fba3ac8b";
};
meta = {
description = "A web browser built from Firefox Extended Support Release source tree";
homepage = "http://www.mozilla.com/en-US/firefox/";
maintainers = with lib.maintainers; [ eelco ];
maintainers = with lib.maintainers; [ eelco hexa ];
platforms = lib.platforms.unix;
badPlatforms = lib.platforms.darwin;
broken = stdenv.buildPlatform.is32bit; # since Firefox 60, build on 32-bit platforms fails with "out of memory".

View file

@ -511,10 +511,12 @@
},
"kubernetes-alpha": {
"owner": "hashicorp",
"provider-source-address": "registry.terraform.io/hashicorp/kubernetes-alpha",
"repo": "terraform-provider-kubernetes-alpha",
"rev": "nightly20200608",
"sha256": "1g171sppf3kq5qlp6g0qqdm0x8lnpizgw8bxjlhp9b6cl4kym70m",
"version": "nightly20200608"
"rev": "v0.3.2",
"sha256": "0lgh42fvfwvj6cw8i7800k016ay4babqiz38q0y7apq4s7vs62sb",
"vendorSha256": null,
"version": "0.3.2"
},
"launchdarkly": {
"owner": "terraform-providers",

View file

@ -17,11 +17,11 @@
stdenv.mkDerivation rec {
pname = "filezilla";
version = "3.52.2";
version = "3.53.0";
src = fetchurl {
url = "https://download.filezilla-project.org/client/FileZilla_${version}_src.tar.bz2";
sha256 = "sha256-wHiIFpKKJuiGPH3CaxWGROcb7ylAbffS7aN9xIENbN8=";
sha256 = "sha256-MJXnYN9PVADttNqj3hshLElHk2Dy9FzE67clMMh85CA=";
};
# https://www.linuxquestions.org/questions/slackware-14/trouble-building-filezilla-3-47-2-1-current-4175671182/#post6099769

View file

@ -1,4 +1,4 @@
{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, boost, bzip2, libX11
{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, bzip2, libX11
, mkDerivation, qtbase, qttools, qtmultimedia, qtscript
, libiconv, pcre-cpp, libidn, lua5, miniupnpc, aspell, gettext, perl }:
@ -14,30 +14,32 @@ mkDerivation rec {
};
nativeBuildInputs = [ cmake pkg-config ];
buildInputs = [ qtbase qttools qtmultimedia qtscript boost bzip2 libX11 pcre-cpp libidn lua5 miniupnpc aspell gettext
buildInputs = [ qtbase qttools qtmultimedia qtscript bzip2 libX11 pcre-cpp libidn lua5 miniupnpc aspell gettext
(perl.withPackages (p: with p; [
GetoptLong
RpcXML
TermShellUI
])) ]
++ lib.optional stdenv.isDarwin libiconv;
cmakeFlags = [
"-DUSE_ASPELL=ON"
"-DFREE_SPACE_BAR_C=ON"
"-DUSE_MINIUPNP=ON"
"-DLOCAL_MINIUPNP=ON"
"-DDBUS_NOTIFY=ON"
"-DUSE_JS=ON"
"-DPERL_REGEX=ON"
"-DUSE_CLI_XMLRPC=ON"
"-DWITH_SOUNDS=ON"
"-DFREE_SPACE_BAR_C=ON"
"-DLUA_SCRIPT=ON"
"-DPERL_REGEX=ON"
"-DUSE_ASPELL=ON"
"-DUSE_CLI_JSONRPC=ON"
"-DUSE_MINIUPNP=ON"
"-DUSE_JS=ON"
"-DWITH_LUASCRIPTS=ON"
"-DWITH_SOUNDS=ON"
];
postInstall = ''
ln -s $out/bin/$pname-qt $out/bin/$pname
'';
preFixup = ''
substituteInPlace $out/bin/eiskaltdcpp-cli-xmlrpc \
substituteInPlace $out/bin/eiskaltdcpp-cli-jsonrpc \
--replace "/usr/local" "$out"
'';

View file

@ -8,7 +8,7 @@
{ lib, stdenv, fetchzip, writeText, pkg-config, gnumake42
, customOCamlPackages ? null
, ocamlPackages_4_05, ocamlPackages_4_09, ocamlPackages_4_10, ncurses
, buildIde ? !(stdenv.isDarwin && lib.versionAtLeast version "8.10")
, buildIde ? true
, glib, gnome3, wrapGAppsHook
, csdp ? null
, version, coq-version ? null,

View file

@ -9,11 +9,11 @@ with lib;
buildGoPackage rec {
pname = "gitea";
version = "1.13.4";
version = "1.13.5";
src = fetchurl {
url = "https://github.com/go-gitea/gitea/releases/download/v${version}/gitea-src-${version}.tar.gz";
sha256 = "sha256-Q9wM+TGgE9oFFzg6516bG7iFNjhxOxPMLKtTHghA/OU=";
sha256 = "08c5gp4qp65mnq4ggzfmyc7n3zcp0js86fz4nj5p249zs9vn1ypd";
};
unpackPhase = ''

View file

@ -1,35 +1,29 @@
{ stdenv, lib, fetchurl, fetchpatch, ocaml, findlib, cppo, minimal ? true }:
{ stdenv, lib, fetchurl, ocaml, findlib, cppo
# De facto, option minimal seems to be the default. See the README.
, minimal ? true
}:
assert lib.versionAtLeast (lib.getVersion ocaml) "3.11";
stdenv.mkDerivation {
name = "ocaml${ocaml.version}-extlib-1.7.7";
stdenv.mkDerivation rec {
pname = "ocaml${ocaml.version}-extlib";
version = "1.7.8";
src = fetchurl {
url = "http://ygrek.org.ua/p/release/ocaml-extlib/extlib-1.7.7.tar.gz";
sha256 = "1sxmzc1mx3kg62j8kbk0dxkx8mkf1rn70h542cjzrziflznap0s1";
url = "https://ygrek.org/p/release/ocaml-extlib/extlib-${version}.tar.gz";
sha256 = "0npq4hq3zym8nmlyji7l5cqk6drx2rkcx73d60rxqh5g8dla8p4k";
};
patches = [
(fetchpatch {
url = "https://github.com/ygrek/ocaml-extlib/pull/55.patch";
sha256 = "0mj3xii56rh8j8brdyv5d06rbs6jjjcy4ib9chafkq3f3sbq795p";
})
];
buildInputs = [ ocaml findlib cppo ];
createFindlibDestdir = true;
dontConfigure = true;
dontConfigure = true; # Skip configure
# De facto, option minimal=1 seems to be the default. See the README.
buildPhase = "make ${if minimal then "minimal=1" else ""} build";
installPhase = "make ${if minimal then "minimal=1" else ""} install";
makeFlags = lib.optional minimal "minimal=1";
meta = {
homepage = "https://github.com/ygrek/ocaml-extlib";
description = "Enhancements to the OCaml Standard Library modules";
license = lib.licenses.lgpl21;
license = lib.licenses.lgpl21Only;
platforms = ocaml.meta.platforms or [];
maintainers = [ lib.maintainers.sternenseemann ];
};
}

View file

@ -5,13 +5,13 @@
buildPythonPackage rec {
pname = "tatsu";
version = "5.6.0";
version = "5.6.1";
src = fetchFromGitHub {
owner = "neogeny";
repo = "TatSu";
rev = "v${version}";
sha256 = "sha256-kC2MxMebS4TQEZBgTmYRBWaWSF36rVS3bXIsQgRrF0Y=";
sha256 = "149ra1lwax5m1svlv4dwjfqw00lc5vwyfj6zw2v0ammmfm1b94x9";
};
disabled = pythonOlder "3.8";

View file

@ -105,12 +105,12 @@ in {
#<generated>
# DO NOT EDIT! Automatically generated by ./update.py
radare2 = generic {
version_commit = "25480";
gittap = "5.0.0";
gittip = "a476454c00f64acbb7425c178c98714ef76e26d7";
rev = "5.0.0";
version = "5.0.0";
sha256 = "0aa7c27kd0l55fy5qfvxqmakp4pz6240v3hn84095qmqkzcbs420";
version_commit = "25741";
gittap = "5.1.1";
gittip = "a86f8077fc148abd6443384362a3717cd4310e64";
rev = "5.1.1";
version = "5.1.1";
sha256 = "0hv9x31iabasj12g8f04incr1rbcdkxi3xnqn3ggp8gl4h6pf2f3";
cs_ver = "4.0.2";
cs_sha256 = "0y5g74yjyliciawpn16zhdwya7bd3d7b1cccpcccc2wg8vni1k2w";
};

View file

@ -124,6 +124,7 @@ def main() -> None:
radare2_info = get_repo_info(dirname, radare2_rev)
git(dirname, "fetch", r2_cutter_rev)
git(dirname, "checkout", r2_cutter_rev)
timestamp = git(dirname, "log", "-n1", "--format=%at")

View file

@ -604,7 +604,7 @@ let
buildInputs = [ jdk ];
meta = {
license = lib.licenses.epl20;
broken = lib.versionAtLeast jdk.version "11";
broken = lib.versionOlder jdk.version "11";
};
};

View file

@ -2,13 +2,14 @@
stdenv.mkDerivation rec {
pname = "acpi-call";
version = "2020-04-07-${kernel.version}";
version = "1.2.1";
name = "${pname}-${version}-${kernel.version}";
src = fetchFromGitHub {
owner = "nix-community";
repo = "acpi_call";
rev = "fe4cd0124099b88b61f83006023bc0d95e742e75";
sha256 = "1rksbg78i7y2wzam9p6kbhx8rmkaiq0kqg8nj7k0j6d25m79289s";
rev = "v${version}";
sha256 = "0mr4rjbv6fj4phf038addrgv32940bphghw2v9n1z4awvw7wzkbg";
};
hardeningDisable = [ "pic" ];
@ -26,8 +27,9 @@ stdenv.mkDerivation rec {
meta = with lib; {
maintainers = with maintainers; [ raskin mic92 ];
inherit (src.meta) homepage;
homepage = "https://github.com/nix-community/acpi_call";
platforms = platforms.linux;
description = "A module allowing arbitrary ACPI calls; use case: hybrid video";
license = licenses.gpl3Plus;
};
}

View file

@ -0,0 +1,221 @@
let
# inspircd ships a few extra modules that users can load
# via configuration. Upstream thus recommends to ship as
# many of them as possible. There is however a problem:
# inspircd is licensed under the GPL version 2 only and
# some modules link libraries that are incompatible with
# the GPL 2. Therefore we can't provide them as binaries
# via our binary-caches, but users should still be able
# to override this package and build the incompatible
# modules themselves.
#
# This means for us we need to a) prevent hydra from
# building a module set with a GPL incompatibility
# and b) dynamically figure out the largest possible
# set of modules to use depending on stdenv, because
# the used libc needs to be compatible as well.
#
# For an overview of all modules and their licensing
# situation, see https://docs.inspircd.org/packaging/
# Predicate for checking license compatibility with
# GPLv2. Since this is _only_ used for libc compatibility
# checking, only whitelist licenses used by notable
# libcs in nixpkgs (musl and glibc).
compatible = lib: drv:
lib.any (lic: lic == drv.meta.license) [
lib.licenses.mit # musl
lib.licenses.lgpl2Plus # glibc
];
# compatible if libc is compatible
libcModules = [
"regex_posix"
"sslrehashsignal"
];
# compatible if libc++ is compatible
# TODO(sternenseemann):
# we could enable "regex_stdlib" automatically, but only if
# we are using libcxxStdenv which is compatible with GPLv2,
# since the gcc libstdc++ license is GPLv2-incompatible
libcxxModules = [
"regex_stdlib"
];
compatibleModules = lib: stdenv: [
# GPLv2 compatible dependencies
"argon2"
"ldap"
"mysql"
"pgsql"
"regex_pcre"
"regex_re2"
"regex_tre"
"sqlite3"
"ssl_gnutls"
] ++ lib.optionals (compatible lib stdenv.cc.libc) libcModules;
in
{ lib
, stdenv
, fetchFromGitHub
, nixosTests
, perl
, pkg-config
, libargon2
, openldap
, postgresql
, libmysqlclient
, pcre
, tre
, re2
, sqlite
, gnutls
, libmaxminddb
, openssl
, mbedtls
# For a full list of module names, see https://docs.inspircd.org/packaging/
, extraModules ? compatibleModules lib stdenv
}:
let
extras = {
# GPLv2 compatible
argon2 = [
(libargon2 // {
meta = libargon2.meta // {
# use libargon2 as CC0 since ASL20 is GPLv2-incompatible
# updating this here is important that meta.license is accurate
# libargon2 is licensed under either ASL20 or CC0.
license = lib.licenses.cc0;
};
})
];
ldap = [ openldap ];
mysql = [ libmysqlclient ];
pgsql = [ postgresql ];
regex_pcre = [ pcre ];
regex_re2 = [ re2 ];
regex_tre = [ tre ];
sqlite3 = [ sqlite ];
ssl_gnutls = [ gnutls ];
# depends on stdenv.cc.libc
regex_posix = [];
sslrehashsignal = [];
# depends on used libc++
regex_stdlib = [];
# GPLv2 incompatible
geo_maxmind = [ libmaxminddb ];
ssl_mbedtls = [ mbedtls ];
ssl_openssl = [ openssl ];
};
# buildInputs necessary for the enabled extraModules
extraInputs = lib.concatMap
(m: extras."${m}" or (builtins.throw "Unknown extra module ${m}"))
extraModules;
# if true, we can't provide a binary version of this
# package without violating the GPL 2
gpl2Conflict =
let
allowed = compatibleModules lib stdenv;
in
!lib.all (lib.flip lib.elem allowed) extraModules;
# return list of the license(s) of the given derivation
getLicenses = drv:
let
lics = drv.meta.license or [];
in
if lib.isAttrs lics || lib.isString lics
then [ lics ]
else lics;
# Whether any member of list1 is also member of list2, i. e. set intersection.
anyMembers = list1: list2:
lib.any (m1: lib.elem m1 list2) list1;
in
stdenv.mkDerivation rec {
pname = "inspircd";
version = "3.9.0";
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = "v${version}";
sha256 = "0x3paasf4ynx4ddky2nq613vyirbhfnxzkjq148k7154pz3q426s";
};
outputs = [ "bin" "lib" "man" "doc" "out" ];
nativeBuildInputs = [
perl
pkg-config
];
buildInputs = extraInputs;
configurePhase = ''
patchShebangs configure make/*.pl
# configure is executed twice, once to set the extras
# to use and once to do the Makefile setup
./configure \
--enable-extras \
${lib.escapeShellArg (lib.concatStringsSep " " extraModules)}
# this manually sets the flags instead of using configureFlags, because otherwise stdenv passes flags like --bindir, which make configure fail
./configure \
--disable-auto-extras \
--distribution-label nixpkgs${version} \
--uid 0 \
--gid 0 \
--binary-dir ${placeholder "bin"}/bin \
--config-dir /etc/inspircd \
--data-dir ${placeholder "lib"}/lib/inspircd \
--example-dir ${placeholder "doc"}/share/doc/inspircd \
--log-dir /var/log/inspircd \
--manual-dir ${placeholder "man"}/share/man/man1 \
--module-dir ${placeholder "lib"}/lib/inspircd \
--runtime-dir /var/run \
--script-dir ${placeholder "bin"}/share/inspircd \
'';
postInstall = ''
# for some reasons the executables are not executable
chmod +x $bin/bin/*
'';
enableParallelBuilding = true;
passthru.tests = {
nixos-test = nixosTests.inspircd;
};
meta = {
description = "A modular C++ IRC server";
license = [ lib.licenses.gpl2Only ]
++ lib.concatMap getLicenses extraInputs
++ lib.optionals (anyMembers extraModules libcModules) (getLicenses stdenv.cc.libc)
# FIXME(sternenseemann): get license of used lib(std)c++ somehow
++ lib.optional (anyMembers extraModules libcxxModules) "Unknown"
# Hack: Definitely prevent a hydra from building this package on
# a GPL 2 incompatibility even if it is not in a top-level attribute,
# but pulled in indirectly somehow.
++ lib.optional gpl2Conflict lib.licenses.unfree;
maintainers = [ lib.maintainers.sternenseemann ];
# windows is theoretically possible, but requires extra work
# which I am not willing to do and can't test.
# https://github.com/inspircd/inspircd/blob/master/win/README.txt
platforms = lib.platforms.unix;
homepage = "https://www.inspircd.org/";
} // lib.optionalAttrs gpl2Conflict {
# make sure we never distribute a GPLv2-violating module
# in binary form. They can be built locally of course.
hydraPlatforms = [];
};
}

View file

@ -12,11 +12,11 @@ let
in
buildPythonApplication rec {
pname = "matrix-synapse";
version = "1.29.0";
version = "1.30.0";
src = fetchPypi {
inherit pname version;
sha256 = "sha256-BySztUwVqyaL0AvmJMWEbjVqf981ABKMAU9f9C/0wkU=";
sha256 = "1ca69v479537bbj2hjliwk9zzy9fqqsf7fm188k6xxj0a37q9y41";
};
patches = [

View file

@ -160,7 +160,7 @@ in stdenv.mkDerivation rec {
meta = with lib; {
description = "Ripple P2P payment network reference server";
homepage = "https://github.com/ripple/rippled";
maintainers = with maintainers; [ ehmry offline RaghavSood ];
maintainers = with maintainers; [ offline RaghavSood ];
license = licenses.isc;
platforms = [ "x86_64-linux" ];
};

View file

@ -27,7 +27,6 @@ stdenv.mkDerivation {
description = "Multi-algo CPUMiner";
homepage = "https://github.com/wolf9466/cpuminer-multi";
license = licenses.gpl2;
maintainers = [ maintainers.ehmry ];
# does not build on i686 https://github.com/lucasjones/cpuminer-multi/issues/27
platforms = [ "x86_64-linux" ];
};

View file

@ -0,0 +1,53 @@
{ fetchFromGitHub, lib, stdenv }:
stdenv.mkDerivation rec {
pname = "digitemp";
version = "3.7.2";
src = fetchFromGitHub {
owner = "bcl";
repo = "digitemp";
rev = "v${version}";
sha256 = "19zka5fcdxhhginaspak76l984iqq9v2j6qrwvi5mvca7bcj8f72";
};
enableParallelBuilding = true;
makeFlags = [
"LOCK=no"
"ds9097"
"ds9097u"
];
installPhase = ''
runHook preInstall
install -D -m555 -t $out/bin digitemp_*
install -D -m444 -t $out/share/doc/${pname} FAQ README
runHook postInstall
'';
meta = with lib; {
description = "Temperature logging and reporting using Maxim's iButtons and 1-Wire protocol";
longDescription = ''
DigiTemp is a command line application used for reading 1-wire sensors like
the DS18S20 temperature sensor, or DS2438 battery monitor. DigiTemp supports
the following devices:
DS18S20 (and older DS1820) Temperature Sensor
DS18B20 Temperature Sensor
DS1822 Temperature Sensor
DS2438 Battery monitor
DS2409 1-wire coupler (used in 1-wire hubs)
DS2422 Counter
DS2423 Counter
The output format can be customized and all settings are stored in a
configuration file (.digitemprc) in the current directory. DigiTemp can
repeatedly read the sensors and output to stdout and/or to a logfile.
'';
homepage = "https://www.digitemp.com";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ zseri ];
platforms = platforms.unix;
};
}

View file

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "libcpuid";
version = "0.5.0";
version = "0.5.1";
src = fetchFromGitHub {
owner = "anrieff";
repo = "libcpuid";
rev = "v${version}";
sha256 = "13v5x8gyka2v4kx52khwalb6ai328z7kk9jlipbbbys63p6nyddr";
sha256 = "sha256-m10LdtwBk1Lx31AJ4HixEYaCkT7EHpF9+tOV1rSA6VU=";
};
patches = [

View file

@ -6,13 +6,13 @@
stdenv.mkDerivation rec {
pname = "home-manager";
version = "2021-01-16";
version = "2021-03-21";
src = fetchFromGitHub {
owner = "nix-community";
repo = "home-manager";
rev = "8127799f79ee96129b295d78294f40a54078131f";
sha256 = "0iji8nxa66s409pvjwi370ycsw4m74w6b3ywnjpfkl2filpapjns";
rev = "ddcd476603dfd3388b1dc8234fa9d550156a51f5";
sha256 = "sha256-E6ABXtzw6bHmrIirB1sJL6S2MEa3sfcvRLzRa92frCo=";
};
nativeBuildInputs = [ makeWrapper ];

View file

@ -52,6 +52,9 @@ in (buildEnv {
buildInputs = [ makeWrapper ] ++ pkgList.extraInputs;
# This is set primarily to help find-tarballs.nix to do its job
passthru.packages = pkgList.all;
postBuild = ''
cd "$out"
mkdir -p ./bin

View file

@ -2189,6 +2189,8 @@ in
inherit (darwin.apple_sdk.frameworks) Security;
};
digitemp = callPackage ../tools/misc/digitemp { };
dijo = callPackage ../tools/misc/dijo {
inherit (darwin.apple_sdk.frameworks) CoreServices;
};
@ -18249,6 +18251,10 @@ in
theme-spring = callPackage ../servers/icingaweb2/theme-spring { };
};
inspircd = callPackage ../servers/irc/inspircd { };
inspircdMinimal = inspircd.override { extraModules = []; };
imgproxy = callPackage ../servers/imgproxy { };
ircdog = callPackage ../applications/networking/irc/ircdog { };

View file

@ -1408,7 +1408,10 @@ let
omake_rc1 = callPackage ../development/tools/ocaml/omake/0.9.8.6-rc1.nix { };
google-drive-ocamlfuse = callPackage ../applications/networking/google-drive-ocamlfuse { };
google-drive-ocamlfuse = callPackage ../applications/networking/google-drive-ocamlfuse {
# needs Base64 module
ocaml_extlib = ocaml_extlib.override { minimal = false; };
};
hol_light = callPackage ../applications/science/logic/hol_light { };

View file

@ -10955,11 +10955,12 @@ let
url = "mirror://cpan/authors/id/B/BR/BRMILLER/${pname}-${version}.tar.gz";
sha256 = "0dr69rgl4si9i9ww1r4dc7apgb7y6f7ih808w4g0924cvz823s0x";
};
propagatedBuildInputs = [ ArchiveZip DBFile FileWhich IOString ImageSize JSONXS LWP ParseRecDescent PodParser TextUnidecode XMLLibXSLT ];
propagatedBuildInputs = [ ArchiveZip DBFile FileWhich IOString ImageSize JSONXS LWP ParseRecDescent PerlMagick PodParser TextUnidecode XMLLibXSLT ];
preCheck = ''
rm t/931_epub.t # epub test fails
'';
nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang;
buildInputs = [ pkgs.makeWrapper ];
# shebangs need to be patched before executables are copied to $out
preBuild = ''
patchShebangs bin/
@ -10968,6 +10969,12 @@ let
shortenPerlShebang "$file"
done
'';
postInstall = ''
for file in latexmlc latexmlmath latexmlpost ; do
# add runtime dependencies that cause silent failures when missing
wrapProgram $out/bin/$file --prefix PATH : ${lib.makeBinPath [ pkgs.ghostscript pkgs.potrace ]}
done
'';
meta = {
description = "Transforms TeX and LaTeX into XML/HTML/MathML";
license = lib.licenses.free;