Merge master into staging-next

This commit is contained in:
github-actions[bot] 2022-01-15 18:01:07 +00:00 committed by GitHub
commit ed9751296d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
39 changed files with 1032 additions and 506 deletions

16
.github/CODEOWNERS vendored
View File

@ -272,10 +272,20 @@
# Cinnamon
/pkgs/desktops/cinnamon @mkg20001
#nim
/pkgs/development/compilers/nim @ehmry
/pkgs/development/nim-packages @ehmry
# nim
/pkgs/development/compilers/nim @ehmry
/pkgs/development/nim-packages @ehmry
/pkgs/top-level/nim-packages.nix @ehmry
# terraform providers
/pkgs/applications/networking/cluster/terraform-providers @zowoq
# Matrix
/pkgs/servers/heisenbridge @piegamesde
/pkgs/servers/matrix-conduit @piegamesde @pstn
/pkgs/servers/matrix-synapse/matrix-appservice-irc @piegamesde
/nixos/modules/services/misc/heisenbridge.nix @piegamesde
/nixos/modules/services/misc/matrix-appservice-irc.nix @piegamesde
/nixos/modules/services/misc/matrix-conduit.nix @piegamesde @pstn
/nixos/tests/matrix-appservice-irc.nix @piegamesde
/nixos/tests/matrix-conduit.nix @piegamesde @pstn

View File

@ -227,7 +227,7 @@ digraph {
}
```
[This GitHub Action](https://github.com/NixOS/nixpkgs/blob/master/.github/workflows/merge-staging.yml) brings changes from `master` to `staging-next` and from `staging-next` to `staging` every 6 hours.
[This GitHub Action](https://github.com/NixOS/nixpkgs/blob/master/.github/workflows/periodic-merge-6h.yml) brings changes from `master` to `staging-next` and from `staging-next` to `staging` every 6 hours.
### Master branch {#submitting-changes-master-branch}

View File

@ -90,6 +90,13 @@
<link xlink:href="options.html#opt-services.heisenbridge.enable">services.heisenbridge</link>.
</para>
</listitem>
<listitem>
<para>
<link xlink:href="https://ergo.chat">ergochat</link>, a modern
IRC with IRCv3 features. Available as
<link xlink:href="options.html#opt-services.ergochat.enable">services.ergochat</link>.
</para>
</listitem>
<listitem>
<para>
<link xlink:href="https://github.com/ngoduykhanh/PowerDNS-Admin">PowerDNS-Admin</link>,
@ -245,6 +252,14 @@
<literal>virtualisation.docker.daemon.settings</literal>.
</para>
</listitem>
<listitem>
<para>
The backward compatibility in
<literal>services.dokuwiki</literal> to configure sites with
the old interface has been removed. Please use
<literal>services.dokuwiki.sites</literal> instead.
</para>
</listitem>
<listitem>
<para>
opensmtpd-extras is no longer build with python2 scripting

View File

@ -30,6 +30,8 @@ In addition to numerous new and upgraded packages, this release has the followin
- [heisenbridge](https://github.com/hifi/heisenbridge), a bouncer-style Matrix IRC bridge. Available as [services.heisenbridge](options.html#opt-services.heisenbridge.enable).
- [ergochat](https://ergo.chat), a modern IRC with IRCv3 features. Available as [services.ergochat](options.html#opt-services.ergochat.enable).
- [PowerDNS-Admin](https://github.com/ngoduykhanh/PowerDNS-Admin), a web interface for the PowerDNS server. Available at [services.powerdns-admin](options.html#opt-services.powerdns-admin.enable).
- [maddy](https://maddy.email), a composable all-in-one mail server. Available as [services.maddy](options.html#opt-services.maddy.enable).
@ -81,6 +83,9 @@ In addition to numerous new and upgraded packages, this release has the followin
- If you previously used `/etc/docker/daemon.json`, you need to incorporate the changes into the new option `virtualisation.docker.daemon.settings`.
- The backward compatibility in `services.dokuwiki` to configure sites with the
old interface has been removed. Please use `services.dokuwiki.sites` instead.
- opensmtpd-extras is no longer build with python2 scripting support due to python2 deprecation in nixpkgs
- The `autorestic` package has been upgraded from 1.3.0 to 1.5.0 which introduces breaking changes in config file, check [their migration guide](https://autorestic.vercel.app/migration/1.4_1.5) for more details.

View File

@ -740,6 +740,7 @@
./services/networking/ejabberd.nix
./services/networking/epmd.nix
./services/networking/ergo.nix
./services/networking/ergochat.nix
./services/networking/eternal-terminal.nix
./services/networking/fakeroute.nix
./services/networking/ferm.nix

View File

@ -0,0 +1,155 @@
{ config, lib, options, pkgs, ... }: let
cfg = config.services.ergochat;
in {
options = {
services.ergochat = {
enable = lib.mkEnableOption "Ergo IRC daemon";
openFilesLimit = lib.mkOption {
type = lib.types.int;
default = 1024;
description = ''
Maximum number of open files. Limits the clients and server connections.
'';
};
configFile = lib.mkOption {
type = lib.types.path;
default = (pkgs.formats.yaml {}).generate "ergo.conf" cfg.settings;
defaultText = "generated config file from <literal>.settings</literal>";
description = ''
Path to configuration file.
Setting this will skip any configuration done via <literal>.settings</literal>
'';
};
settings = lib.mkOption {
type = (pkgs.formats.yaml {}).type;
description = ''
Ergo IRC daemon configuration file.
https://raw.githubusercontent.com/ergochat/ergo/master/default.yaml
'';
default = {
network = {
name = "testnetwork";
};
server = {
name = "example.com";
listeners = {
":6667" = {};
};
casemapping = "permissive";
enforce-utf = true;
lookup-hostnames = false;
ip-cloaking = {
enabled = false;
};
forward-confirm-hostnames = false;
check-ident = false;
relaymsg = {
enabled = false;
};
max-sendq = "1M";
ip-limits = {
count = false;
throttle = false;
};
};
datastore = {
autoupgrade = true;
# this points to the StateDirectory of the systemd service
path = "/var/lib/ergo/ircd.db";
};
accounts = {
authentication-enabled = true;
registration = {
enabled = true;
allow-before-connect = true;
throttling = {
enabled = true;
duration = "10m";
max-attempts = 30;
};
bcrypt-cost = 4;
email-verification.enabled = false;
};
multiclient = {
enabled = true;
allowed-by-default = true;
always-on = "opt-out";
auto-away = "opt-out";
};
};
channels = {
default-modes = "+ntC";
registration = {
enabled = true;
};
};
limits = {
nicklen = 32;
identlen = 20;
channellen = 64;
awaylen = 390;
kicklen = 390;
topiclen = 390;
};
history = {
enabled = true;
channel-length = 2048;
client-length = 256;
autoresize-window = "3d";
autoreplay-on-join = 0;
chathistory-maxmessages = 100;
znc-maxmessages = 2048;
restrictions = {
expire-time = "1w";
query-cutoff = "none";
grace-period = "1h";
};
retention = {
allow-individual-delete = false;
enable-account-indexing = false;
};
tagmsg-storage = {
default = false;
whitelist = [
"+draft/react"
"+react"
];
};
};
};
};
};
};
config = lib.mkIf cfg.enable {
environment.etc."ergo.yaml".source = cfg.configFile;
# merge configured values with default values
services.ergochat.settings =
lib.mapAttrsRecursive (_: lib.mkDefault) options.services.ergochat.settings.default;
systemd.services.ergochat = {
description = "Ergo IRC daemon";
wantedBy = [ "multi-user.target" ];
# reload is not applying the changed config. further investigation is needed
# at some point this should be enabled, since we don't want to restart for
# every config change
# reloadIfChanged = true;
restartTriggers = [ cfg.configFile ];
serviceConfig = {
ExecStart = "${pkgs.ergochat}/bin/ergo run --conf /etc/ergo.yaml";
ExecReload = "${pkgs.util-linux}/bin/kill -HUP $MAINPID";
DynamicUser = true;
StateDirectory = "ergo";
LimitNOFILE = toString cfg.openFilesLimit;
};
};
};
meta.maintainers = with lib.maintainers; [ lassulus tv ];
}

View File

@ -1,20 +1,14 @@
{ config, pkgs, lib, ... }:
let
inherit (lib) mkDefault mkEnableOption mkForce mkIf mkMerge mkOption types maintainers recursiveUpdate;
inherit (lib) any attrValues concatMapStrings concatMapStringsSep flatten literalExpression;
inherit (lib) filterAttrs mapAttrs mapAttrs' mapAttrsToList nameValuePair optional optionalAttrs optionalString;
with lib;
cfg = migrateOldAttrs config.services.dokuwiki;
let
cfg = config.services.dokuwiki;
eachSite = cfg.sites;
user = "dokuwiki";
webserver = config.services.${cfg.webserver};
stateDir = hostName: "/var/lib/dokuwiki/${hostName}/data";
# Migrate config.services.dokuwiki.<hostName> to config.services.dokuwiki.sites.<hostName>
oldSites = filterAttrs (o: _: o != "sites" && o != "webserver");
migrateOldAttrs = cfg: cfg // { sites = cfg.sites // oldSites cfg; };
dokuwikiAclAuthConfig = hostName: cfg: pkgs.writeText "acl.auth-${hostName}.php" ''
# acl.auth.php
# <?php exit()?>
@ -257,10 +251,7 @@ in
options = {
services.dokuwiki = mkOption {
type = types.submodule {
# Used to support old interface
freeformType = types.attrsOf (types.submodule siteOpts);
# New interface
options.sites = mkOption {
type = types.attrsOf (types.submodule siteOpts);
default = {};
@ -301,8 +292,6 @@ in
}
]) eachSite);
warnings = mapAttrsToList (hostName: _: ''services.dokuwiki."${hostName}" is deprecated use services.dokuwiki.sites."${hostName}"'') (oldSites cfg);
services.phpfpm.pools = mapAttrs' (hostName: cfg: (
nameValuePair "dokuwiki-${hostName}" {
inherit user;

View File

@ -125,6 +125,7 @@ in
enlightenment = handleTest ./enlightenment.nix {};
env = handleTest ./env.nix {};
ergo = handleTest ./ergo.nix {};
ergochat = handleTest ./ergochat.nix {};
etcd = handleTestOn ["x86_64-linux"] ./etcd.nix {};
etcd-cluster = handleTestOn ["x86_64-linux"] ./etcd-cluster.nix {};
etebase-server = handleTest ./etebase-server.nix {};

97
nixos/tests/ergochat.nix Normal file
View File

@ -0,0 +1,97 @@
let
clients = [
"ircclient1"
"ircclient2"
];
server = "ergochat";
ircPort = 6667;
channel = "nixos-cat";
iiDir = "/tmp/irc";
in
import ./make-test-python.nix ({ pkgs, lib, ... }: {
name = "ergochat";
nodes = {
"${server}" = {
networking.firewall.allowedTCPPorts = [ ircPort ];
services.ergochat = {
enable = true;
settings.server.motd = pkgs.writeText "ergo.motd" ''
The default MOTD doesn't contain the word "nixos" in it.
This one does.
'';
};
};
} // 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")
''
# look for the custom text in the MOTD.
''
${client}.wait_until_succeeds("grep 'nixos' ${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}.systemctl("status ergochat")
${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

@ -7,10 +7,10 @@ in
rec {
firefox = common rec {
pname = "firefox";
version = "96.0";
version = "96.0.1";
src = fetchurl {
url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
sha512 = "39f553474537eb4e521f4182e38f0ddff039fa6b40b939d461937d2cef27f7182097b478f08f90d64fdcbe9c063e78f14f6863a8a82a16207ec7a1d3fdfda4ff";
sha512 = "c0d2ccf9ca930def63dcb9dc269e47f60fd4bbbdcbc01463df0c30e11109a543e310fb36f2334d17b90cb9c96b8dcdd97d0e2d6c589a779de5e4f197c052f9a5";
};
meta = {

View File

@ -12,13 +12,13 @@
stdenv.mkDerivation rec {
pname = "telescope";
version = "0.7";
version = "0.7.1";
src = fetchFromGitHub {
owner = "omar-polo";
repo = pname;
rev = version;
sha256 = "sha256-YF7pysKwEwtyERBDiF0AbnDfqK3S/ZS/y+/rd17dLDw=";
sha256 = "sha256-W42e1p70dMhF9C7BBPp1Yhp2PrRb8/Lu07yOGiUSmNg=";
};
nativeBuildInputs = [

View File

@ -16,12 +16,12 @@ with lib;
buildGoPackage rec {
pname = "gitea";
version = "1.15.9";
version = "1.15.10";
# not fetching directly from the git repo, because that lacks several vendor files for the web UI
src = fetchurl {
url = "https://github.com/go-gitea/gitea/releases/download/v${version}/gitea-src-${version}.tar.gz";
sha256 = "sha256-DzPgAy7Curypc/66c1NqYSHFgtovpY5qEq/Le+0VYk4=";
sha256 = "1rrxkpahgzxgs4mckdsrss19mdjdicjgskw689hvhc063slb9vlx";
};
unpackPhase = ''
@ -77,6 +77,6 @@ buildGoPackage rec {
description = "Git with a cup of tea";
homepage = "https://gitea.io";
license = licenses.mit;
maintainers = with maintainers; [ disassembler kolaente ma27 ];
maintainers = with maintainers; [ disassembler kolaente ma27 techknowlogick ];
};
}

View File

@ -11,7 +11,9 @@ stdenv.mkDerivation rec {
sha256 = "04hmbmzf97rsii8gpwy3wkljy5xhxmlsl34d63s6hfy05knclydj";
};
nativeBuildInputs = [ meson ninja pkg-config glib ];
strictDeps = true;
nativeBuildInputs = [ meson ninja pkg-config ];
buildInputs = [ glib ];
meta = with lib; {
description = "Wallpaper collection for adapta-project";

View File

@ -3,12 +3,12 @@
let
generator = pkgsBuildBuild.buildGoModule rec {
pname = "v2ray-domain-list-community";
version = "20211228022859";
version = "20220114024213";
src = fetchFromGitHub {
owner = "v2fly";
repo = "domain-list-community";
rev = version;
sha256 = "sha256-wDz4msCaX6BPzxrg5GeZSrMuxsCx8uimhaHghWdDp8s=";
sha256 = "sha256-sF9WvXhyfMUvSXmFjkfGq4cZE/MiAnOKbkpv2CHSV3Q=";
};
vendorSha256 = "sha256-QUbnUnxG1tsNbR49HTl55aiLkBM/ae9mCtzWeN4Ju78=";
meta = with lib; {

View File

@ -3,10 +3,13 @@
, gjs
, gnome
, gobject-introspection
, xprop
, pulseaudio
, python3
, substituteAll
, touchegg
, vte
, wrapGAppsHook
, xprop
}:
let
# Helper method to reduce redundancy
@ -62,6 +65,18 @@ super: lib.trivial.pipe super [
'';
}))
(patchExtension "shell-volume-mixer@derhofbauer.at" (old: {
patches = [
(substituteAll {
src = ./extensionOverridesPatches/shell-volume-mixer_at_derhofbauer.at.patch;
inherit pulseaudio;
inherit python3;
})
];
meta.maintainers = with lib.maintainers; [ rhoriguchi ];
}))
(patchExtension "unite@hardpixel.eu" (old: {
buildInputs = [ xprop ];

View File

@ -0,0 +1,32 @@
diff --git a/lib/utils/paHelper.js b/lib/utils/paHelper.js
index be28d21..a410a63 100755
--- a/lib/utils/paHelper.js
+++ b/lib/utils/paHelper.js
@@ -57,13 +57,7 @@ async function execHelper(type, index = undefined) {
return null;
}
- const python = await findPython();
-
- if (!python) {
- return null;
- }
-
- const args = ['/usr/bin/env', python, paUtilPath, type];
+ const args = ['@python3@/bin/python', paUtilPath, type];
if (!isNaN(index)) {
args.push(index);
diff --git a/pautils/lib/libpulse.py b/pautils/lib/libpulse.py
index a32c272..8225f2f 100755
--- a/pautils/lib/libpulse.py
+++ b/pautils/lib/libpulse.py
@@ -16,7 +16,7 @@
from ctypes import *
try:
- lib = CDLL('libpulse.so.0')
+ lib = CDLL('@pulseaudio@/lib/libpulse.so.0')
except:
lib = CDLL('libpulse.so')

View File

@ -274,29 +274,29 @@ in {
sha256 = "sha256-LtAqyecQhZxBvILer7CGGXkruaJ+6qFnbHQe3t0hTdc=";
};
pypy27_prebuilt = callPackage ./pypy/prebuilt.nix {
pypy27_prebuilt = callPackage ./pypy/prebuilt_2_7.nix {
# Not included at top-level
self = pythonInterpreters.pypy27_prebuilt;
sourceVersion = {
major = "7";
minor = "3";
patch = "3";
patch = "6";
};
sha256 = "1cfpdyvbvzwc0ynjr7248jhwgcpl7073wlp7w3g2v4fnrh1bc4pl"; # linux64
sha256 = "sha256-ghJ/Q/rmznXUfWxFOfjB6jcunC2/pA+ui1g1HVInk6Q="; # linux64
pythonVersion = "2.7";
inherit passthruFun;
};
pypy36_prebuilt = callPackage ./pypy/prebuilt.nix {
pypy38_prebuilt = callPackage ./pypy/prebuilt.nix {
# Not included at top-level
self = pythonInterpreters.pypy36_prebuilt;
self = pythonInterpreters.pypy38_prebuilt;
sourceVersion = {
major = "7";
minor = "3";
patch = "3";
patch = "7";
};
sha256 = "02lys9bjky9bqg6ggv8djirbd3zzcsq7755v4yvwm0k4a7fmzf2g"; # linux64
pythonVersion = "3.6";
sha256 = "sha256-Xe43x8PLixYAKPveOlkBxoBD36VFoWeUUCuJfUvEDX4="; # linux64
pythonVersion = "3.8";
inherit passthruFun;
};

View File

@ -6,8 +6,9 @@
, which
# Dependencies
, bzip2
, sqlite
, zlib
, openssl_1_0_2
, openssl
, expat
, ncurses6
, tcl-8_5
@ -27,12 +28,12 @@ with lib;
let
isPy3k = majorVersion == "3";
passthru = passthruFun {
passthru = passthruFun rec {
inherit self sourceVersion pythonVersion packageOverrides;
implementation = "pypy";
libPrefix = "pypy${pythonVersion}";
executable = "pypy${if isPy3k then "3" else ""}";
sitePackages = "site-packages";
sitePackages = "lib/${libPrefix}/site-packages";
hasDistutilsCxxPatch = false;
# Not possible to cross-compile with.
@ -49,8 +50,9 @@ let
deps = [
bzip2
sqlite
zlib
openssl_1_0_2
openssl
expat
ncurses6
tcl-8_5
@ -68,10 +70,9 @@ in with passthru; stdenv.mkDerivation {
buildInputs = [ which ];
installPhase = ''
mkdir -p $out/lib
mkdir -p $out
echo "Moving files to $out"
mv -t $out bin include lib-python lib_pypy site-packages
mv lib/libffi.so.6* $out/lib/
mv -t $out bin include lib
mv $out/bin/libpypy*-c.so $out/lib/
@ -84,8 +85,9 @@ in with passthru; stdenv.mkDerivation {
$out/bin/pypy*
pushd $out
find {lib,lib_pypy*} -name "*.so" -exec patchelf --remove-needed libncursesw.so.6 --replace-needed libtinfow.so.6 libncursesw.so.6 {} \;
find {lib,lib_pypy*} -name "*.so" -exec patchelf --set-rpath ${lib.makeLibraryPath deps}:$out/lib {} \;
find ./lib -name "*.so" -exec patchelf --remove-needed libncursesw.so.6 --replace-needed libtinfow.so.6 libncursesw.so.6 {} \;
find ./lib -name "*.so" -exec patchelf --set-rpath ${lib.makeLibraryPath deps}:$out/lib {} \;
echo "Removing bytecode"
find . -name "__pycache__" -type d -depth -exec rm -rf {} \;

View File

@ -0,0 +1,132 @@
{ lib
, stdenv
, fetchurl
, python-setup-hook
, self
, which
# Dependencies
, bzip2
, zlib
, openssl_1_0_2
, expat
, ncurses6
, tcl-8_5
, tk-8_5
# For the Python package set
, packageOverrides ? (self: super: {})
, sourceVersion
, pythonVersion
, sha256
, passthruFun
}:
# This version of PyPy is primarily added to speed-up translation of
# our PyPy source build when developing that expression.
with lib;
let
isPy3k = majorVersion == "3";
passthru = passthruFun {
inherit self sourceVersion pythonVersion packageOverrides;
implementation = "pypy";
libPrefix = "pypy${pythonVersion}";
executable = "pypy${if isPy3k then "3" else ""}";
sitePackages = "site-packages";
hasDistutilsCxxPatch = false;
# Not possible to cross-compile with.
pythonOnBuildForBuild = throw "${pname} does not support cross compilation";
pythonOnBuildForHost = self;
pythonOnBuildForTarget = throw "${pname} does not support cross compilation";
pythonOnHostForHost = throw "${pname} does not support cross compilation";
pythonOnTargetForTarget = throw "${pname} does not support cross compilation";
};
pname = "${passthru.executable}_prebuilt";
version = with sourceVersion; "${major}.${minor}.${patch}";
majorVersion = substring 0 1 pythonVersion;
deps = [
bzip2
zlib
openssl_1_0_2
expat
ncurses6
tcl-8_5
tk-8_5
];
in with passthru; stdenv.mkDerivation {
inherit pname version;
src = fetchurl {
url = "https://downloads.python.org/pypy/pypy${pythonVersion}-v${version}-linux64.tar.bz2";
inherit sha256;
};
buildInputs = [ which ];
installPhase = ''
mkdir -p $out/lib
echo "Moving files to $out"
mv -t $out bin include lib-python lib_pypy site-packages
mv lib/libffi.so.6* $out/lib/
mv $out/bin/libpypy*-c.so $out/lib/
rm $out/bin/*.debug
echo "Patching binaries"
interpreter=$(patchelf --print-interpreter $(readlink -f $(which patchelf)))
patchelf --set-interpreter $interpreter \
--set-rpath $out/lib \
$out/bin/pypy*
pushd $out
find {lib,lib_pypy*} -name "*.so" -exec patchelf --remove-needed libncursesw.so.6 --replace-needed libtinfow.so.6 libncursesw.so.6 {} \;
find {lib,lib_pypy*} -name "*.so" -exec patchelf --set-rpath ${lib.makeLibraryPath deps}:$out/lib {} \;
echo "Removing bytecode"
find . -name "__pycache__" -type d -depth -exec rm -rf {} \;
popd
# Include a sitecustomize.py file
cp ${../sitecustomize.py} $out/${sitePackages}/sitecustomize.py
'';
doInstallCheck = true;
# Check whether importing of (extension) modules functions
installCheckPhase = let
modules = [
"ssl"
"sys"
"curses"
] ++ optionals (!isPy3k) [
"Tkinter"
] ++ optionals isPy3k [
"tkinter"
];
imports = concatMapStringsSep "; " (x: "import ${x}") modules;
in ''
echo "Testing whether we can import modules"
$out/bin/${executable} -c '${imports}'
'';
setupHook = python-setup-hook sitePackages;
donPatchElf = true;
dontStrip = true;
inherit passthru;
meta = with lib; {
homepage = "http://pypy.org/";
description = "Fast, compliant alternative implementation of the Python language (${pythonVersion})";
license = licenses.mit;
platforms = [ "x86_64-linux" ];
};
}

View File

@ -1,21 +1,29 @@
{ cmake, fetchFromGitHub, icu, lib, pkg-config, stdenv, enableUnicodeHelp ? true }:
{ lib
, stdenv
, fetchFromGitHub
, cmake
, icu
, pkg-config
, enableUnicodeHelp ? true
}:
stdenv.mkDerivation rec {
name = "cxxopts";
version = "unstable-2020-12-14";
version = "3.0.0";
src = fetchFromGitHub {
owner = "jarro2783";
repo = name;
rev = "2d8e17c4f88efce80e274cb03eeb902e055a91d3";
sha256 = "0pwrac81zfqjs17g3hx8r3ds2xf04npb6mz111qjy4bx17314ib7";
rev = "v${version}";
sha256 = "08x7j168l1xwj0r3rv89cgghmfhsx98lpq35r3vkh504m1pd55a6";
};
# CMake does not set CMAKE_LIBRARY_ARCHITECTURE variable in Nix, which breaks architecture-independent library path generation
patches = [ ./fix-install-path.patch ];
buildInputs = lib.optional enableUnicodeHelp [ icu.dev ];
cmakeFlags = [ "-DCXXOPTS_BUILD_EXAMPLES=OFF" ]
++ lib.optional enableUnicodeHelp "-DCXXOPTS_USE_UNICODE_HELP=TRUE"
# Due to -Wsuggest-override, remove when cxxopts is updated
++ lib.optional stdenv.isDarwin "-DCXXOPTS_ENABLE_WARNINGS=OFF";
++ lib.optional enableUnicodeHelp "-DCXXOPTS_USE_UNICODE_HELP=TRUE";
nativeBuildInputs = [ cmake ] ++ lib.optional enableUnicodeHelp [ pkg-config ];
doCheck = true;

View File

@ -0,0 +1,18 @@
diff --git a/cmake/cxxopts.cmake b/cmake/cxxopts.cmake
index 46e87ba..0ead543 100644
--- a/cmake/cxxopts.cmake
+++ b/cmake/cxxopts.cmake
@@ -87,7 +87,12 @@ endfunction()
# Helper function to ecapsulate install logic
function(cxxopts_install_logic)
- string(REPLACE "/${CMAKE_LIBRARY_ARCHITECTURE}" "" CMAKE_INSTALL_LIBDIR_ARCHIND "${CMAKE_INSTALL_LIBDIR}")
+ if(CMAKE_LIBRARY_ARCHITECTURE)
+ string(REPLACE "/${CMAKE_LIBRARY_ARCHITECTURE}" "" CMAKE_INSTALL_LIBDIR_ARCHIND "${CMAKE_INSTALL_LIBDIR}")
+ else()
+ # On some systems (e.g. NixOS), `CMAKE_LIBRARY_ARCHITECTURE` can be empty
+ set(CMAKE_INSTALL_LIBDIR_ARCHIND "${CMAKE_INSTALL_LIBDIR}")
+ endif()
set(CXXOPTS_CMAKE_DIR "${CMAKE_INSTALL_LIBDIR_ARCHIND}/cmake/cxxopts" CACHE STRING "Installation directory for cmake files, relative to ${CMAKE_INSTALL_PREFIX}.")
set(version_config "${PROJECT_BINARY_DIR}/cxxopts-config-version.cmake")
set(project_config "${PROJECT_BINARY_DIR}/cxxopts-config.cmake")

View File

@ -1,21 +1,31 @@
{ lib, stdenv, fetchurl, unzip }:
{ lib, stdenv, fetchFromGitHub, fetchpatch, autoreconfHook, autoconf-archive }:
stdenv.mkDerivation rec {
pname = "libxls";
version = "1.6.2";
src = fetchurl {
url = "https://github.com/libxls/libxls/releases/download/v${version}/libxls-${version}.tar.gz";
sha256 = "sha256-XazDTZS/IRWSbIDG+2nk570u1kA9Uc/0kEGpQXL143E=";
src = fetchFromGitHub {
owner = "libxls";
repo = pname;
rev = "v${version}";
sha256 = "sha256-vjmYByk+IDBon8xGR1+oNaEQTiJK+IVpDXsG1IyVNoY=";
};
nativeBuildInputs = [ unzip ];
patches = [
# Fix cross-compilation
(fetchpatch {
url = "https://github.com/libxls/libxls/commit/007e63c1f5e19bc73292f267c85d7dd14e9ecb38.patch";
sha256 = "sha256-PjPHuXth4Yaq9nVfk5MYJMRo5B0R6YA1KEqgwfjF3PM=";
})
];
nativeBuildInputs = [ autoreconfHook autoconf-archive ];
enableParallelBuilding = true;
meta = with lib; {
description = "Extract Cell Data From Excel xls files";
homepage = "https://sourceforge.net/projects/libxls/";
homepage = "https://github.com/libxls/libxls";
license = licenses.bsd2;
platforms = platforms.unix;
maintainers = with maintainers; [ abbradar ];

View File

@ -9,13 +9,13 @@
buildPythonPackage rec {
pname = "aioharmony";
version = "0.2.8";
version = "0.2.9";
disabled = pythonOlder "3.6";
src = fetchPypi {
inherit pname version;
sha256 = "0adf08955810a227db489556dc3ca808e4f825a00183f613797856114c2a2a47";
sha256 = "sha256-T30pLzPWD+5pb0ShkpNdiBFO45RdiMYgCOSg8rx+t+Y=";
};
propagatedBuildInputs = [

View File

@ -15,13 +15,13 @@
buildPythonPackage rec {
pname = "hass-nabucasa";
version = "0.50.0";
version = "0.51.0";
src = fetchFromGitHub {
owner = "nabucasa";
repo = pname;
rev = version;
sha256 = "sha256-0E8eiHzqbxHbtAd97MbvFMRDWTu25E9x/44oNGC4mUM=";
sha256 = "sha256-qN7AXs4hJpuP+GaxjOPR2CqKMYyDJxTrCuE5HreZnhU=";
};
postPatch = ''

View File

@ -12,14 +12,14 @@
buildPythonPackage rec {
pname = "pycognito";
version = "2021.03.1";
version = "2022.01.0";
disabled = isPy27;
src = fetchFromGitHub {
owner = "pvizeli";
repo = pname;
rev = version;
sha256 = "sha256-V3R6i1/FZrjcfRqJhczjURr/+x++iCvZ3aCK9wdEL1A=";
sha256 = "sha256-mmlw3irMC0SFjfEinXHyoPNfTvCcO02zGyqQLj9STSY=";
};
propagatedBuildInputs = [

View File

@ -16,7 +16,7 @@
buildPythonPackage rec {
pname = "yalexs";
version = "1.1.15";
version = "1.1.17";
format = "setuptools";
disabled = pythonOlder "3.6";
@ -25,7 +25,7 @@ buildPythonPackage rec {
owner = "bdraco";
repo = pname;
rev = "v${version}";
sha256 = "sha256-EK9jmbU3A2rNx/H8WOsZiGA7tqzg/XJkW/DV5s+2Y3U=";
sha256 = "sha256-kCLL+0ZiraTW7swgdfS9vkLcr/s6lTccFQbC02rdNDY=";
};
propagatedBuildInputs = [

View File

@ -2,7 +2,7 @@
# Do not edit!
{
version = "2021.12.8";
version = "2021.12.9";
components = {
"abode" = ps: with ps; [ abodepy ];
"accuweather" = ps: with ps; [ accuweather ];

View File

@ -193,6 +193,9 @@ let
# Pinned due to API changes in 0.1.0
(mkOverride "poolsense" "0.0.8" "09y4fq0gdvgkfsykpxnvmfv92dpbknnq5v82spz43ak6hjnhgcyp")
# Requirements for recorder not found: ['sqlalchemy==1.4.27'].
(mkOverride "sqlalchemy" "1.4.27" "031jbd0svrvwr3n52iibp9mkwsj9wicnck45yd26da5kmsfkas6p")
# Pinned due to API changes in 0.4.0
(self: super: {
vilfo-api-client = super.vilfo-api-client.overridePythonAttrs (oldAttrs: rec {
@ -219,19 +222,6 @@ let
});
})
# Remove with 2021.12.6 as the requirement will be 1.1.16 (at least)
(self: super: {
yalexs = super.yalexs.overridePythonAttrs (oldAttrs: rec {
version = "1.1.13";
src = fetchFromGitHub {
owner = "bdraco";
repo = "yalexs";
rev = "v${version}";
sha256 = "sha256-lnx8+VyDyO7Wg+QW+CC0FUg77Ndfjar6PLsDYwEpaCQ=";
};
});
})
# Remove as soon the dependency is updated and pytest-httpx > 0.15
(self: super: {
luftdaten = super.luftdaten.overridePythonAttrs (oldAttrs: rec {
@ -292,7 +282,7 @@ let
extraBuildInputs = extraPackages py.pkgs;
# Don't forget to run parse-requirements.py after updating
hassVersion = "2021.12.8";
hassVersion = "2021.12.9";
in with py.pkgs; buildPythonApplication rec {
pname = "homeassistant";
@ -309,7 +299,7 @@ in with py.pkgs; buildPythonApplication rec {
owner = "home-assistant";
repo = "core";
rev = version;
hash = "sha256:HxSEXaqNHh2hSr1fmu3xpC212PXhzvnD4CwR1Ulw9ok=";
hash = "sha256:17lh16c9kklx4q416ns12qjh1hc0g79y56kdkj1pvybblg0a07lm";
};
# leave this in, so users don't have to constantly update their downstream patch handling

View File

@ -4,11 +4,11 @@ buildPythonPackage rec {
# the frontend version corresponding to a specific home-assistant version can be found here
# https://github.com/home-assistant/home-assistant/blob/master/homeassistant/components/frontend/manifest.json
pname = "home-assistant-frontend";
version = "20211229.0";
version = "20211229.1";
src = fetchPypi {
inherit pname version;
sha256 = "sha256-2hACC2542jz1DID7nV28keVVDDBOLW1QDYTLM4S1ZJ0=";
sha256 = "sha256-glVjJ9iOmhAIGD65PHQu9l7Wc/lr5XRya2mi20/UVgs=";
};
# there is nothing to strip in this package

View File

@ -0,0 +1,26 @@
{ buildGo117Module, fetchFromGitHub, lib, nixosTests }:
buildGo117Module rec {
pname = "ergo";
version = "2.9.1";
src = fetchFromGitHub {
owner = "ergochat";
repo = "ergo";
rev = "v${version}";
sha256 = "sha256-RxsmkTfHymferS/FRW0sLnstKfvGXkW6cEb/JbeS4lc=";
};
vendorSha256 = null;
passthru.tests.ergochat = nixosTests.ergochat;
meta = {
changelog = "https://github.com/ergochat/ergo/blob/v${version}/CHANGELOG.md";
description = "A modern IRC server (daemon/ircd) written in Go";
homepage = "https://github.com/ergochat/ergo";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ lassulus tv ];
platforms = lib.platforms.linux;
};
}

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "plpgsql_check";
version = "2.0.6";
version = "2.1.0";
src = fetchFromGitHub {
owner = "okbob";
repo = pname;
rev = "v${version}";
sha256 = "sha256-M/kvfGhB2s8TvmpL7KihorVTOfwp7HmKka4IAgnIQ6M=";
sha256 = "sha256-T6bg+yeG/xtpqJqZnR5Dt/3P/O6Mv7nkSc3wYAftmIk=";
};
buildInputs = [ postgresql ];

View File

@ -86,7 +86,6 @@ stdenv.mkDerivation rec {
communityModules = withCommunityModules;
tests = {
main = nixosTests.prosody;
mysql = nixosTests.prosodyMysql;
};
};

View File

@ -1,27 +1,30 @@
{ lib, stdenv, fetchurl
, which
, attr, e2fsprogs
, curl, librsync, libthreadar
, curl, libargon2, librsync, libthreadar
, gpgme, libgcrypt, openssl
, bzip2, lzo, xz, zlib
, bzip2, lz4, lzo, xz, zlib
}:
with lib;
stdenv.mkDerivation rec {
version = "2.7.1";
version = "2.7.3";
pname = "dar";
src = fetchurl {
url = "mirror://sourceforge/dar/${pname}-${version}.tar.gz";
sha256 = "sha256-dtreitvrgX/8eL9ZLIIASHq1ZQI0z1OVOanLxdNGvu8=";
sha256 = "sha256-w7005RdZKjP7XrO/h43yM0Lsho4MOKWLynJimD2oHwY=";
};
outputs = [ "out" "dev" ];
nativeBuildInputs = [ which ];
buildInputs = [
curl librsync libthreadar
gpgme libgcrypt openssl
bzip2 lzo xz zlib
gpgme libargon2 libgcrypt openssl
bzip2 lz4 lzo xz zlib
] ++ optionals stdenv.isLinux [ attr e2fsprogs ];
configureFlags = [

View File

@ -1,32 +1,45 @@
{ lib, stdenv, fetchFromGitHub, libusb1, pkg-config, ... }:
{ lib
, stdenv
, fetchFromGitHub
, pkg-config
, libusb1
}:
stdenv.mkDerivation rec {
pname = "blink1";
version = "1.98a";
version = "2.2.0";
src = fetchFromGitHub {
owner = "todbot";
repo = "blink1";
repo = "blink1-tool";
rev = "v${version}";
sha256 = "sha256-o4pOF6Gp70AL63ih6BNOpRTCs7+qzeZrEqaR4hYDTG8=";
fetchSubmodules = true;
hash = "sha256-xuCjPSQUQ/KOcdsie/ndecUiEt+t46m4eI33PXJoAAY=";
};
postPatch = ''
substituteInPlace Makefile \
--replace "@git submodule update --init" "true"
'';
nativeBuildInputs = [ pkg-config ];
buildInputs = [ libusb1 ];
configurePhase = ''
cd commandline
'';
makeFlags = [
"GIT_TAG=v${version}"
"USBLIB_TYPE=HIDAPI"
"HIDAPI_TYPE=LIBUSB"
];
installPhase = ''
PREFIX=$out make install
'';
hardeningDisable = [ "format" ];
meta = {
installFlags = [ "PREFIX=${placeholder "out"}" ];
meta = with lib; {
description = "Command line client for the blink(1) notification light";
homepage = "https://blink1.thingm.com/";
license = lib.licenses.cc-by-sa-30;
maintainers = [ lib.maintainers.cransom ];
platforms = lib.platforms.linux;
license = with licenses; [ cc-by-sa-40 ];
maintainers = with maintainers; [ cransom ];
platforms = platforms.linux;
};
}

View File

@ -12,13 +12,13 @@
rustPlatform.buildRustPackage rec {
pname = "starship";
version = "1.1.1";
version = "1.2.1";
src = fetchFromGitHub {
owner = "starship";
repo = pname;
rev = "v${version}";
sha256 = "sha256-Rr0HCr/uJDsBQiKJIPdEL3WOaLgMY2Nq2JGOq4dEUxQ=";
sha256 = "sha256-5MJA8eHo1enOHlLpAOF1iDvOHCS/Nw0sc84VWu9nApE=";
};
nativeBuildInputs = [ installShellFiles ] ++ lib.optionals stdenv.isLinux [ pkg-config ];
@ -35,7 +35,7 @@ rustPlatform.buildRustPackage rec {
done
'';
cargoSha256 = "sha256-UT6t1GbyON/wrIF/oXXhsT3Z61LFjggSPWKpSDHp+PI=";
cargoSha256 = "sha256-DTQQFxj6stzlVzSdmv4J4Nsf8X/VMlwvfIumnuK0YDo=";
preCheck = ''
HOME=$TMPDIR

View File

@ -1,14 +1,14 @@
{ lib, stdenv, fetchFromGitHub, perl, gettext, pkg-config, libidn2, libiconv }:
stdenv.mkDerivation rec {
version = "5.5.10";
version = "5.5.11";
pname = "whois";
src = fetchFromGitHub {
owner = "rfc1036";
repo = "whois";
rev = "v${version}";
sha256 = "179hgmh9yqk8jq26ybik4cr3lgryd5p6kdwccc3r7mfssk3yp8lz";
sha256 = "sha256-+fNld+stSniuQV2zx+Qd4s2ZSwNLmnve/tXg36MC2nM=";
};
nativeBuildInputs = [ perl gettext pkg-config ];

View File

@ -20972,6 +20972,8 @@ with pkgs;
gn = gn1924;
};
ergochat = callPackage ../servers/irc/ergochat { };
etcd = etcd_3_3;
etcd_3_3 = callPackage ../servers/etcd/3.3.nix { };
etcd_3_4 = callPackage ../servers/etcd/3.4.nix { };

View File

@ -89,6 +89,7 @@ mapAliases ({
rdflib-jsonld = throw "rdflib-jsonld is not compatible with rdflib 6"; # added 2021-11-05
repeated_test = throw "repeated_test is no longer maintained"; # added 2022-01-11
requests_toolbelt = requests-toolbelt; # added 2017-09-26
roboschool = throw "roboschool is deprecated in favor of PyBullet and has been removed"; # added 2022-01-15
rotate-backups = throw "rotate-backups was removed in favor of the top-level rotate-backups"; # added 2021-07-01
ruamel_base = ruamel-base; # added 2021-11-01
ruamel_yaml = ruamel-yaml; # added 2021-11-01