Merge master into staging-next

This commit is contained in:
github-actions[bot] 2022-01-16 06:01:16 +00:00 committed by GitHub
commit 122cae786e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
56 changed files with 1268 additions and 1806 deletions

View file

@ -1420,6 +1420,15 @@ Superuser created successfully.
for those who want to have all RetroArch cores available.
</para>
</listitem>
<listitem>
<para>
The Linux kernel for security reasons now restricts access to
BPF syscalls via <literal>BPF_UNPRIV_DEFAULT_OFF=y</literal>.
Unprivileged access can be reenabled via the
<literal>kernel.unprivileged_bpf_disabled</literal> sysctl
knob.
</para>
</listitem>
</itemizedlist>
</section>
<section xml:id="sec-release-21.11-notable-changes">

View file

@ -208,6 +208,13 @@
removed due to it being an outdated version.
</para>
</listitem>
<listitem>
<para>
The <literal>mailpile</literal> email webclient
(<literal>services.mailpile</literal>) has been removed due to
its reliance on python2.
</para>
</listitem>
<listitem>
<para>
The MoinMoin wiki engine
@ -347,6 +354,22 @@
unmaintained
</para>
</listitem>
<listitem>
<para>
MultiMC has been replaced with the fork PolyMC due to upstream
developers being hostile to 3rd party package maintainers.
PolyMC removes all MultiMC branding and is aimed at providing
proper 3rd party packages like the one contained in Nixpkgs.
This change affects the data folder where game instances and
other save and configuration files are stored. Users with
existing installations should rename
<literal>~/.local/share/multimc</literal> to
<literal>~/.local/share/polymc</literal>. The main config
files path has also moved from
<literal>~/.local/share/multimc/multimc.cfg</literal> to
<literal>~/.local/share/polymc/polymc.cfg</literal>.
</para>
</listitem>
</itemizedlist>
</section>
<section xml:id="sec-release-22.05-notable-changes">

View file

@ -417,6 +417,8 @@ In addition to numerous new and upgraded packages, this release has the followin
- `retroArchCores` has been removed. This means that using `nixpkgs.config.retroarch` to customize RetroArch cores is not supported anymore. Instead, use package overrides, for example: `retroarch.override { cores = with libretro; [ citra snes9x ]; };`. Also, `retroarchFull` derivation is available for those who want to have all RetroArch cores available.
- The Linux kernel for security reasons now restricts access to BPF syscalls via `BPF_UNPRIV_DEFAULT_OFF=y`. Unprivileged access can be reenabled via the `kernel.unprivileged_bpf_disabled` sysctl knob.
## Other Notable Changes {#sec-release-21.11-notable-changes}

View file

@ -71,6 +71,8 @@ In addition to numerous new and upgraded packages, this release has the followin
- `services.kubernetes.addons.dashboard` was removed due to it being an outdated version.
- The `mailpile` email webclient (`services.mailpile`) has been removed due to its reliance on python2.
- The MoinMoin wiki engine (`services.moinmoin`) has been removed, because Python 2 is being retired from nixpkgs.
- The `wafHook` hook now honors `NIX_BUILD_CORES` when `enableParallelBuilding` is not set explicitly. Packages can restore the old behaviour by setting `enableParallelBuilding=false`.
@ -113,6 +115,8 @@ In addition to numerous new and upgraded packages, this release has the followin
- `pkgs.docbookrx` was removed since it's unmaintained
- MultiMC has been replaced with the fork PolyMC due to upstream developers being hostile to 3rd party package maintainers. PolyMC removes all MultiMC branding and is aimed at providing proper 3rd party packages like the one contained in Nixpkgs. This change affects the data folder where game instances and other save and configuration files are stored. Users with existing installations should rename `~/.local/share/multimc` to `~/.local/share/polymc`. The main config file's path has also moved from `~/.local/share/multimc/multimc.cfg` to `~/.local/share/polymc/polymc.cfg`.
## Other Notable Changes {#sec-release-22.05-notable-changes}
- The option [services.redis.servers](#opt-services.redis.servers) was added

View file

@ -182,7 +182,7 @@ in
yandexdisk = 143;
mxisd = 144; # was once collectd
#consul = 145;# dynamically allocated as of 2021-09-03
mailpile = 146;
#mailpile = 146; # removed 2022-01-12
redmine = 147;
#seeks = 148; # removed 2020-06-21
prosody = 149;
@ -502,7 +502,7 @@ in
#yandexdisk = 143; # unused
mxisd = 144; # was once collectd
#consul = 145; # unused
mailpile = 146;
#mailpile = 146; # removed 2022-01-12
redmine = 147;
#seeks = 148; # removed 2020-06-21
prosody = 149;

View file

@ -791,7 +791,6 @@
./services/networking/lldpd.nix
./services/networking/logmein-hamachi.nix
./services/networking/lxd-image-server.nix
./services/networking/mailpile.nix
./services/networking/magic-wormhole-mailbox-server.nix
./services/networking/matterbridge.nix
./services/networking/mjpg-streamer.nix

View file

@ -17,35 +17,56 @@ with lib;
(mkAliasOptionModule [ "environment" "checkConfigurationOptions" ] [ "_module" "check" ])
# Completely removed modules
(mkRemovedOptionModule [ "environment" "blcr" "enable" ] "The BLCR module has been removed")
(mkRemovedOptionModule [ "fonts" "fontconfig" "penultimate" ] "The corresponding package has removed from nixpkgs.")
(mkRemovedOptionModule [ "services" "quagga" ] "the corresponding package has been removed from nixpkgs")
(mkRemovedOptionModule [ "hardware" "brightnessctl" ] ''
The brightnessctl module was removed because newer versions of
brightnessctl don't require the udev rules anymore (they can use the
systemd-logind API). Instead of using the module you can now
simply add the brightnessctl package to environment.systemPackages.
'')
(mkRemovedOptionModule [ "hardware" "u2f" ] ''
The U2F modules module was removed, as all it did was adding the
udev rules from libu2f-host to the system. Udev gained native support
to handle FIDO security tokens, so this isn't necessary anymore.
'')
(mkRemovedOptionModule [ "networking" "vpnc" ] "Use environment.etc.\"vpnc/service.conf\" instead.")
(mkRemovedOptionModule [ "networking" "wicd" ] "The corresponding package was removed from nixpkgs.")
(mkRemovedOptionModule [ "programs" "way-cooler" ] ("way-cooler is abandoned by its author: " +
"https://way-cooler.org/blog/2020/01/09/way-cooler-post-mortem.html"))
(mkRemovedOptionModule [ "security" "hideProcessInformation" ] ''
The hidepid module was removed, since the underlying machinery
is broken when using cgroups-v2.
'')
(mkRemovedOptionModule [ "services" "beegfs" ] "The BeeGFS module has been removed")
(mkRemovedOptionModule [ "services" "beegfsEnable" ] "The BeeGFS module has been removed")
(mkRemovedOptionModule [ "services" "cgmanager" "enable"] "cgmanager was deprecated by lxc and therefore removed from nixpkgs.")
(mkRemovedOptionModule [ "services" "chronos" ] "The corresponding package was removed from nixpkgs.")
(mkRemovedOptionModule [ "services" "couchpotato" ] "The corresponding package was removed from nixpkgs.")
(mkRemovedOptionModule [ "services" "deepin" ] "The corresponding packages were removed from nixpkgs.")
(mkRemovedOptionModule [ "services" "dnscrypt-proxy" ] "Use services.dnscrypt-proxy2 instead")
(mkRemovedOptionModule [ "services" "firefox" "syncserver" ] "The corresponding package was removed from nixpkgs.")
(mkRemovedOptionModule [ "services" "marathon" ] "The corresponding package was removed from nixpkgs.")
(mkRemovedOptionModule [ "services" "moinmoin" ] "The corresponding package was removed from nixpkgs.")
(mkRemovedOptionModule [ "services" "mesos" ] "The corresponding package was removed from nixpkgs.")
(mkRemovedOptionModule [ "services" "winstone" ] "The corresponding package was removed from nixpkgs.")
(mkRemovedOptionModule [ "networking" "vpnc" ] "Use environment.etc.\"vpnc/service.conf\" instead.")
(mkRemovedOptionModule [ "networking" "wicd" ] "The corresponding package was removed from nixpkgs.")
(mkRemovedOptionModule [ "environment" "blcr" "enable" ] "The BLCR module has been removed")
(mkRemovedOptionModule [ "services" "beegfsEnable" ] "The BeeGFS module has been removed")
(mkRemovedOptionModule [ "services" "beegfs" ] "The BeeGFS module has been removed")
(mkRemovedOptionModule ["services" "cgmanager" "enable"] "cgmanager was deprecated by lxc and therefore removed from nixpkgs.")
(mkRemovedOptionModule [ "services" "osquery" ] "The osquery module has been removed")
(mkRemovedOptionModule [ "services" "flashpolicyd" ] "The flashpolicyd module has been removed. Adobe Flash Player is deprecated.")
(mkRemovedOptionModule [ "services" "fourStore" ] "The fourStore module has been removed")
(mkRemovedOptionModule [ "services" "frab" ] "The frab module has been removed")
(mkRemovedOptionModule [ "services" "fourStoreEndpoint" ] "The fourStoreEndpoint module has been removed")
(mkRemovedOptionModule [ "services" "frab" ] "The frab module has been removed")
(mkRemovedOptionModule [ "services" "kippo" ] "The corresponding package was removed from nixpkgs.")
(mkRemovedOptionModule [ "services" "mailpile" ] "The corresponding package was removed from nixpkgs.")
(mkRemovedOptionModule [ "services" "marathon" ] "The corresponding package was removed from nixpkgs.")
(mkRemovedOptionModule [ "services" "mathics" ] "The Mathics module has been removed")
(mkRemovedOptionModule [ "services" "meguca" ] "Use meguca has been removed from nixpkgs")
(mkRemovedOptionModule [ "services" "mesos" ] "The corresponding package was removed from nixpkgs.")
(mkRemovedOptionModule [ "services" "moinmoin" ] "The corresponding package was removed from nixpkgs.")
(mkRemovedOptionModule [ "services" "mwlib" ] "The corresponding package was removed from nixpkgs.")
(mkRemovedOptionModule [ "programs" "way-cooler" ] ("way-cooler is abandoned by its author: " +
"https://way-cooler.org/blog/2020/01/09/way-cooler-post-mortem.html"))
(mkRemovedOptionModule [ "services" "xserver" "multitouch" ] ''
services.xserver.multitouch (which uses xf86_input_mtrack) has been removed
as the underlying package isn't being maintained. Working alternatives are
libinput and synaptics.
(mkRemovedOptionModule [ "services" "osquery" ] "The osquery module has been removed")
(mkRemovedOptionModule [ "services" "prey" ] ''
prey-bash-client is deprecated upstream
'')
(mkRemovedOptionModule [ "services" "quagga" ] "the corresponding package has been removed from nixpkgs")
(mkRemovedOptionModule [ "services" "seeks" ] "")
(mkRemovedOptionModule [ "services" "venus" ] "The corresponding package was removed from nixpkgs.")
(mkRemovedOptionModule [ "services" "wakeonlan"] "This module was removed in favor of enabling it with networking.interfaces.<name>.wakeOnLan")
(mkRemovedOptionModule [ "services" "winstone" ] "The corresponding package was removed from nixpkgs.")
(mkRemovedOptionModule [ "services" "xserver" "displayManager" "auto" ] ''
The services.xserver.displayManager.auto module has been removed
because it was only intended for use in internal NixOS tests, and gave the
@ -53,38 +74,13 @@ with lib;
LightDM. Please use the services.xserver.displayManager.autoLogin options
instead, or any other display manager in NixOS as they all support auto-login.
'')
(mkRemovedOptionModule [ "services" "dnscrypt-proxy" ] "Use services.dnscrypt-proxy2 instead")
(mkRemovedOptionModule [ "services" "meguca" ] "Use meguca has been removed from nixpkgs")
(mkRemovedOptionModule ["hardware" "brightnessctl" ] ''
The brightnessctl module was removed because newer versions of
brightnessctl don't require the udev rules anymore (they can use the
systemd-logind API). Instead of using the module you can now
simply add the brightnessctl package to environment.systemPackages.
(mkRemovedOptionModule [ "services" "xserver" "multitouch" ] ''
services.xserver.multitouch (which uses xf86_input_mtrack) has been removed
as the underlying package isn't being maintained. Working alternatives are
libinput and synaptics.
'')
(mkRemovedOptionModule [ "virtualisation" "rkt" ] "The rkt module has been removed, it was archived by upstream")
(mkRemovedOptionModule ["services" "prey" ] ''
prey-bash-client is deprecated upstream
'')
(mkRemovedOptionModule ["hardware" "u2f" ] ''
The U2F modules module was removed, as all it did was adding the
udev rules from libu2f-host to the system. Udev gained native support
to handle FIDO security tokens, so this isn't necessary anymore.
'')
(mkRemovedOptionModule [ "services" "seeks" ] "")
(mkRemovedOptionModule [ "services" "venus" ] "The corresponding package was removed from nixpkgs.")
(mkRemovedOptionModule [ "services" "flashpolicyd" ] "The flashpolicyd module has been removed. Adobe Flash Player is deprecated.")
(mkRemovedOptionModule [ "security" "hideProcessInformation" ] ''
The hidepid module was removed, since the underlying machinery
is broken when using cgroups-v2.
'')
(mkRemovedOptionModule ["services" "wakeonlan"] "This module was removed in favor of enabling it with networking.interfaces.<name>.wakeOnLan")
(mkRemovedOptionModule [ "services" "kippo" ] "The corresponding package was removed from nixpkgs.")
# Do NOT add any option renames here, see top of the file
];
}

View file

@ -4,7 +4,8 @@ with lib;
let
cfg = config.services.thermald;
in {
in
{
###### interface
options = {
services.thermald = {
@ -41,6 +42,7 @@ in {
description = "Thermal Daemon Service";
wantedBy = [ "multi-user.target" ];
serviceConfig = {
PrivateNetwork = true;
ExecStart = ''
${cfg.package}/sbin/thermald \
--no-daemon \

View file

@ -1,74 +0,0 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.mailpile;
hostname = cfg.hostname;
port = cfg.port;
in
{
###### interface
options = {
services.mailpile = {
enable = mkEnableOption "Mailpile the mail client";
hostname = mkOption {
type = types.str;
default = "localhost";
description = "Listen to this hostname or ip.";
};
port = mkOption {
type = types.port;
default = 33411;
description = "Listen on this port.";
};
};
};
###### implementation
config = mkIf config.services.mailpile.enable {
users.users.mailpile =
{ uid = config.ids.uids.mailpile;
description = "Mailpile user";
createHome = true;
home = "/var/lib/mailpile";
};
users.groups.mailpile =
{ gid = config.ids.gids.mailpile;
};
systemd.services.mailpile =
{
description = "Mailpile server.";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
User = "mailpile";
ExecStart = "${pkgs.mailpile}/bin/mailpile --www ${hostname}:${port} --wait";
# mixed - first send SIGINT to main process,
# then after 2min send SIGKILL to whole group if neccessary
KillMode = "mixed";
KillSignal = "SIGINT"; # like Ctrl+C - safe mailpile shutdown
TimeoutSec = 120; # wait 2min untill SIGKILL
};
environment.MAILPILE_HOME = "/var/lib/mailpile/.local/share/Mailpile";
};
environment.systemPackages = [ pkgs.mailpile ];
};
}

View file

@ -1,72 +0,0 @@
{ python2
, lib
, fetchurl
, pkg-config
, libXext
, libXxf86vm
, libX11
, libXrandr
, libXinerama
, libXScrnSaver
, argyllcms
}:
let
inherit (python2.pkgs) buildPythonApplication wxPython numpy dbus-python;
in buildPythonApplication rec {
pname = "displaycal";
version = "3.8.9.3";
enableParallelBuilding = true;
src = fetchurl {
url = "mirror://sourceforge/project/dispcalgui/release/${version}/DisplayCAL-${version}.tar.gz";
sha256 = "1sivi4q7sqsrc95qg5gh37bsm2761md4mpl89hflzwk6kyyxyd3w";
};
propagatedBuildInputs = [
libXext
libXxf86vm
libX11
libXrandr
libXinerama
libXScrnSaver
argyllcms
wxPython
numpy
dbus-python
];
nativeBuildInputs = [
pkg-config
];
preConfigure = ''
mkdir dist
cp {misc,dist}/net.displaycal.DisplayCAL.appdata.xml
touch dist/copyright
mkdir -p $out
ln -s $out/share/DisplayCAL $out/Resources
'';
# no idea why it looks there - symlink .json lang (everything)
postInstall = ''
for x in $out/share/DisplayCAL/*; do
ln -s $x $out/lib/python2.7/site-packages/DisplayCAL
done
for prog in "$out/bin/"*; do
wrapProgram "$prog" \
--prefix PYTHONPATH : "$PYTHONPATH" \
--prefix PATH : ${argyllcms}/bin
done
'';
meta = {
description = "Display Calibration and Characterization powered by Argyll CMS";
homepage = "https://displaycal.net/";
license = lib.licenses.gpl3;
maintainers = [lib.maintainers.marcweber];
platforms = lib.platforms.linux;
};
}

View file

@ -1,78 +0,0 @@
{ stdenv, runtimeShell, lib, fetchurl, python2Packages, unzip }:
# This package uses a precompiled "binary" distribution of CuraByDagoma,
# distributed by the editor.
#
# To update the package, follow the links on https://dist.dagoma.fr/:
# * Cura By Dagoma
# * Linux
# * 64 bits
# * Genric archive
#
# I made the arbitrary choice to compile this package only for x86_64.
# I guess people owning a 3D printer generally don't use i686.
# If, however, someone needs it, we certainly can find a solution.
let
pythonPackages = python2Packages;
in stdenv.mkDerivation rec {
pname = "curabydagoma";
# Version is the date, UNIX format
version = "1520506579";
# Hash of the user's choice: os, arch, package type...
hash = "58228cce5bbdcf764b7116850956f1e5";
src = fetchurl {
url = "https://dist.dagoma.fr/get/zip/CuraByDagoma/${version}/${hash}";
sha256 = "16wfipdyjkf6dq8awjzs4zgkmqk6230277mf3iz8swday9hns8pq";
};
unpackCmd = "unzip $curSrc && tar zxf CuraByDagoma_amd64.tar.gz";
nativeBuildInputs = [ unzip ];
buildInputs = [ pythonPackages.python pythonPackages.pyopengl pythonPackages.wxPython pythonPackages.pyserial pythonPackages.numpy ];
# Compile all pyc files because the included pyc files may be older than the
# py files. However, Python doesn't realize that because the packages
# have all dates set to epoch.
buildPhase = ''
python -m compileall -f curabydago
'';
# * Simply copy the stuff there
# * Create an executable with the correct path etc
# * Create a .desktop file to have a launcher in the desktop environments
installPhase = ''
mkdir $out
cp -r * $out/
mkdir $out/bin
cat > $out/bin/curabydago <<EOF
#!${runtimeShell}
export PYTHONPATH=$PYTHONPATH
${pythonPackages.python.interpreter} $out/curabydago/cura.py
EOF
chmod a+x $out/bin/curabydago
mkdir -p $out/share/applications
cat > $out/share/applications/curabydago.desktop <<EOF
[Desktop Entry]
Type=Application
Name=Cura-by-dagoma
Comment=CuraByDagoma is a fork of Legacy Cura made by Dagoma for its own printers.
Icon=$out/curabydago/resources/images/cura.ico
Exec=$out/bin/curabydago
Path=$out/
StartupNotify=true
Terminal=false
Categories=GNOME;GTK;Utility;
EOF
'';
meta = with lib; {
description = "Slicer for 3D printers built by Dagoma";
homepage = "https://dagoma.fr/cura-by-dagoma.html";
license = licenses.agpl3;
platforms = [ "x86_64-linux" ];
maintainers = with maintainers; [ tiramiseb ];
};
}

View file

@ -1,43 +0,0 @@
{ lib, stdenv, fetchgit, makeWrapper, gettext
, python27, python2Packages
}:
stdenv.mkDerivation {
pname = "metamorphose2";
version = "0.9.0beta";
# exif-py vendored via submodule
# mutagen vendored via copy
src = fetchgit {
url = "https://github.com/metamorphose/metamorphose2.git";
#rev = "refs/tags/v2.${version}"; #for when wxPython3 support is released
rev = "d2bdd6a86340b9668e93b35a6a568894c9909d68";
sha256 = "0ivcb3c8hidrff0ivl4dnwa2p3ihpqjdbvdig8dhg9mm5phdbabn";
};
postPatch = ''
substituteInPlace messages/Makefile \
--replace "\$(shell which msgfmt)" "${gettext}/bin/msgfmt"
'';
postInstall = ''
rm $out/bin/metamorphose2
makeWrapper ${python27}/bin/python $out/bin/metamorphose2 \
--prefix PYTHONPATH : $PYTHONPATH:$(toPythonPath "$out") \
--add-flags "-O $out/share/metamorphose2/metamorphose2.py -w=3"
'';
buildInput = [ gettext python27 ];
nativeBuildInputs = [ makeWrapper ];
propagatedBuildInputs = [ python2Packages.wxPython python2Packages.pillow ];
makeFlags = [ "PREFIX=$(out)" ];
meta = with lib; {
description = "a graphical mass renaming program for files and folders";
homepage = "https://github.com/metamorphose/metamorphose2";
license = with licenses; gpl3Plus;
maintainers = with maintainers; [ ramkromberg ];
platforms = with platforms; linux;
};
}

View file

@ -1,44 +0,0 @@
{ lib, stdenv, fetchFromGitHub, python2Packages }:
stdenv.mkDerivation rec {
pname = "neap";
version = "0.7.2";
src = fetchFromGitHub {
owner = "vzxwco";
repo = "neap";
rev = "v${version}";
sha256 = "04da8rq23rl1qcvrdm5m3l90xbwyli7x601sckv7hmkip2q3g1kz";
};
nativeBuildInputs = [
python2Packages.wrapPython
];
buildInputs = [
python2Packages.python
];
pythonPath = [
python2Packages.xlib
python2Packages.pygtk
];
installPhase = ''
install -D -t $out/bin neap
install -D -t $out/share/man/man1 neap.1
install -D -t $out/share/applications neap.desktop
'';
postFixup = ''
wrapPythonPrograms
'';
meta = with lib; {
description = "Systray workspace pager";
homepage = "https://github.com/vzxwco/neap";
license = licenses.bsd2;
platforms = platforms.unix;
maintainers = [ maintainers.romildo ];
};
}

View file

@ -8,13 +8,13 @@
buildGoModule rec {
pname = "arkade";
version = "0.8.11";
version = "0.8.12";
src = fetchFromGitHub {
owner = "alexellis";
repo = "arkade";
rev = version;
sha256 = "0mdi5cjcs0qzj238lfjqbjgi131r2vxj810zx1gv1lc9y0aq0hkl";
sha256 = "sha256-OBcvJ1+VAE7jDeQ/I/9uc0wiU0iibeflRMmb+ulgDtQ=";
};
CGO_ENABLED = 0;

View file

@ -1,68 +0,0 @@
{ lib, fetchdarcs, python2Packages, libvncserver, zlib
, gnutls, libvpx, makeDesktopItem, mkDerivationWith }:
mkDerivationWith python2Packages.buildPythonApplication rec {
pname = "blink";
version = "3.2.0";
src = fetchdarcs {
url = "http://devel.ag-projects.com/repositories/blink-qt";
rev = "release-${version}";
sha256 = "19rcwr5scw48qnj79q1pysw95fz9h98nyc3161qy2kph5g7dwkc3";
};
patches = [ ./pythonpath.patch ];
postPatch = ''
sed -i 's|@out@|'"''${out}"'|g' blink/resources.py
'';
propagatedBuildInputs = with python2Packages; [
pyqt5_with_qtwebkit
cjson
sipsimple
twisted
google-api-python-client
];
buildInputs = [
python2Packages.cython
zlib
libvncserver
libvpx
];
desktopItem = makeDesktopItem {
name = "Blink";
exec = "blink";
comment = meta.description;
desktopName = "Blink";
icon = "blink";
genericName = "Instant Messaging";
categories = "Internet;";
};
dontWrapQtApps = true;
postInstall = ''
mkdir -p "$out/share/applications"
mkdir -p "$out/share/pixmaps"
cp "$desktopItem"/share/applications/* "$out/share/applications"
cp "$out"/share/blink/icons/blink.* "$out/share/pixmaps"
'';
preFixup = ''
makeWrapperArgs+=(
--prefix "LD_LIBRARY_PATH" ":" "${gnutls.out}/lib"
"''${qtWrapperArgs[@]}"
)
'';
meta = with lib; {
homepage = "https://icanblink.com/";
description = "A state of the art, easy to use SIP client for Voice, Video and IM";
platforms = platforms.linux;
license = licenses.gpl3;
maintainers = with maintainers; [ pSub ];
};
}

View file

@ -1,49 +0,0 @@
--- blink-2.0.0/blink/resources.py 2016-03-09 14:39:07.000000000 +0100
+++ blink-2.0.0/blink/resources-patched.py 2016-03-12 21:34:14.965476623 +0100
@@ -1,7 +1,10 @@
+# Copyright (C) 2010-2013 AG Projects. See LICENSE for details.
+#
"""Provide access to Blink's resources"""
-import __main__
+__all__ = ['ApplicationData', 'Resources', 'IconManager']
+
import imghdr
import os
import platform
@@ -19,14 +22,10 @@
from blink.util import run_in_gui_thread
-__all__ = ['ApplicationData', 'Resources', 'IconManager']
-
-
class DirectoryContextManager(unicode):
def __enter__(self):
self.directory = os.getcwdu()
os.chdir(self)
-
def __exit__(self, type, value, traceback):
os.chdir(self.directory)
@@ -61,18 +60,7 @@
@classproperty
def directory(cls):
if cls._cached_directory is None:
- try:
- binary_directory = os.path.dirname(os.path.realpath(__main__.__file__))
- except AttributeError:
- if hasattr(sys, 'frozen'):
- application_directory = os.path.dirname(os.path.realpath(sys.executable))
- else:
- application_directory = os.path.realpath('') # executed in interactive interpreter
- else:
- if os.path.basename(binary_directory) == 'bin':
- application_directory = os.path.dirname(binary_directory)
- else:
- application_directory = binary_directory
+ application_directory = '@out@'
if os.path.exists(os.path.join(application_directory, 'resources', 'blink.ui')):
cls._cached_directory = os.path.join(application_directory, 'resources').decode(sys.getfilesystemencoding())
else:

View file

@ -1,52 +0,0 @@
{ lib, fetchFromGitHub, python2Packages, gnupg1orig, openssl, git }:
python2Packages.buildPythonApplication rec {
pname = "mailpile";
version = "1.0.0rc2";
src = fetchFromGitHub {
owner = "mailpile";
repo = "Mailpile";
rev = version;
sha256 = "1z5psh00fjr8gnl4yjcl4m9ywfj24y1ffa2rfb5q8hq4ksjblbdj";
};
postPatch = ''
patchShebangs scripts
'';
nativeBuildInputs = with python2Packages; [ pbr git ];
PBR_VERSION=version;
propagatedBuildInputs = with python2Packages; [
appdirs
cryptography
fasteners
gnupg1orig
jinja2
pgpdump
pillow
python2Packages.lxml
spambayes
];
postInstall = ''
wrapProgram $out/bin/mailpile \
--prefix PATH ":" "${lib.makeBinPath [ gnupg1orig openssl ]}" \
--set-default MAILPILE_SHARED "$out/share/mailpile"
'';
# No tests were found
doCheck = false;
meta = with lib; {
description = "A modern, fast web-mail client with user-friendly encryption and privacy features";
homepage = "https://www.mailpile.is/";
license = [ licenses.asl20 licenses.agpl3 ];
platforms = platforms.linux;
maintainers = [ ];
knownVulnerabilities = [
"Numerous and uncounted, upstream has requested we not package it. See more: https://github.com/NixOS/nixpkgs/pull/23058#issuecomment-283515104"
];
};
}

View file

@ -1,50 +0,0 @@
{ lib, stdenv, fetchFromGitHub, htslib, zlib, curl, openssl, samblaster, sambamba
, samtools, hexdump, python2Packages, which }:
let
python =
python2Packages.python.withPackages (pkgs: with pkgs; [ pysam numpy ]);
in stdenv.mkDerivation rec {
pname = "lumpy";
version = "0.3.1";
src = fetchFromGitHub {
owner = "arq5x";
repo = "lumpy-sv";
rev = "v${version}";
sha256 = "0r71sg7qch8r6p6dw995znrqdj6q49hjdylhzbib2qmv8nvglhs9";
fetchSubmodules = true;
};
nativeBuildInputs = [ which ];
buildInputs =
[ htslib zlib curl openssl python samblaster sambamba samtools hexdump ];
preConfigure = ''
patchShebangs ./.
# Use Nix htslib over bundled version
sed -i 's/lumpy_filter: htslib/lumpy_filter:/' Makefile
sed -i 's|../../lib/htslib/libhts.a|-lhts|' src/filter/Makefile
# Also make sure we use the includes from Nix's htslib
sed -i 's|../../lib/htslib/|${htslib}|' src/filter/Makefile
'';
# Upstream's makefile doesn't have an install target
installPhase = ''
mkdir -p $out
cp -r bin $out
cp -r scripts $out
sed -i 's|/build/source|'$out'|' $out/bin/lumpyexpress.config
'';
meta = with lib; {
description = "Probabilistic structural variant caller";
homepage = "https://github.com/arq5x/lumpy-sv";
maintainers = with maintainers; [ jbedo ];
license = licenses.mit;
platforms = [ "x86_64-linux" ];
};
}

View file

@ -1,17 +1,20 @@
{ lib, fetchFromGitHub, python2Packages }:
{ lib, fetchFromGitHub, python3 }:
python2Packages.buildPythonApplication rec {
python3.pkgs.buildPythonApplication rec {
pname = "git-crecord";
version = "20161216.0";
version = "20201025.0";
src = fetchFromGitHub {
owner = "andrewshadura";
repo = "git-crecord";
rev = version;
sha256 = "0v3y90zi43myyi4k7q3892dcrbyi9dn2q6xgk12nw9db9zil269i";
sha256 = "1rkdmy2d2vsx22fx97nd9afh0g5lq4pns7rdxyl711apq1bhiihn";
};
propagatedBuildInputs = with python2Packages; [ docutils ];
propagatedBuildInputs = with python3.pkgs; [ docutils ];
# has no tests
doCheck = false;
meta = {
homepage = "https://github.com/andrewshadura/git-crecord";

View file

@ -1,26 +0,0 @@
{ lib, fetchFromGitHub, python2Packages }:
python2Packages.buildPythonApplication rec {
pname = "gitinspector";
version = "0.4.4";
namePrefix = "";
src = fetchFromGitHub {
owner = "ejwa";
repo = "gitinspector";
rev = "v${version}";
sha256 = "sha256-9bChvE5aAZFunu599pH7QKHZFd7aQzv0i9LURrvh2t0=";
};
checkInputs = with python2Packages; [
unittest2
];
meta = with lib; {
homepage = "https://github.com/ejwa/gitinspector";
description = "Statistical analysis tool for git repositories";
license = licenses.gpl3;
platforms = platforms.all;
maintainers = [ maintainers.bjornfor ];
};
}

View file

@ -1,34 +0,0 @@
{ lib, stdenv, fetchFromGitHub, python2Packages }:
stdenv.mkDerivation rec {
pname = "cdetheme";
version = "1.3";
src = fetchFromGitHub {
owner = "josvanr";
repo = "cde-motif-theme";
rev = version;
sha256 = "1v5c4db69cmzdci8xxlkx3s3cifg1h5160qq5siwfps0sj7pvggj";
};
dontBuild = true;
pythonPath = with python2Packages; [ pyqt4 pillow pyxdg pyyaml ];
nativeBuildInputs = with python2Packages; [ python wrapPython ];
installPhase = ''
mkdir -p $out/share/themes
cp -r cdetheme $out/share/themes
patchShebangs $out/share/themes/cdetheme/scripts/switchtheme
wrapPythonProgramsIn "$out/share/themes/cdetheme/scripts" "$out $pythonPath"
'';
meta = with lib; {
description = "Gtk2 / Gtk3 theme mimicking CDE / Motif";
homepage = "https://www.gnome-look.org/p/1231025";
license = licenses.gpl3;
platforms = platforms.all;
maintainers = with maintainers; [ ];
hydraPlatforms = [];
};
}

View file

@ -1,46 +0,0 @@
{ lib, fetchurl, python2Packages, picocom
, avrdude, arduino-core }:
python2Packages.buildPythonApplication rec {
pname = "ino";
version = "0.3.6";
src = fetchurl {
url = "mirror://pypi/i/ino/ino-${version}.tar.gz";
sha256 = "0k6lzfcn55favbj0w4afrvnmwyskf7bgzg9javv2ycvskp35srwv";
};
# TODO: add avrgcclibc, it must be rebuild with C++ support
propagatedBuildInputs = with python2Packages; [
arduino-core
avrdude
picocom
configobj
jinja2
pyserial
six
];
patchPhase = ''
echo "Patching Arduino distribution path"
sed -i 's@/usr/local/share/arduino@${arduino-core}/share/arduino@g' \
ino/environment.py
sed -i -e 's@argparse@@' -e 's@ordereddict@@' \
requirements.txt
sed -i -e 's@from ordereddict@from collections@' \
ino/environment.py ino/utils.py
# Patch the upload command so it uses the correct avrdude
substituteInPlace ino/commands/upload.py \
--replace "self.e['avrdude']" "'${avrdude}/bin/avrdude'" \
--replace "'-C', self.e['avrdude.conf']," ""
'';
meta = with lib; {
description = "Command line toolkit for working with Arduino hardware";
homepage = "http://inotool.org/";
license = licenses.mit;
maintainers = with maintainers; [ antono ];
platforms = platforms.linux;
};
}

View file

@ -1,19 +0,0 @@
{ lib, fetchurl, python2Packages }:
python2Packages.buildPythonPackage rec {
pname = "pyrex";
version = "0.9.5.1.1";
src = fetchurl {
url = "https://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex/oldtar/Pyrex-${version}.tar.gz";
sha256 = "0lxxvn4mjfb83swcbqb5908q4iy53w4ip5i0f9angm2va1jyhd3z";
};
doCheck = false;
meta = {
homepage = "http://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex/";
description = "A language for writing Python extension modules";
license = lib.licenses.asl20;
};
}

View file

@ -1,19 +0,0 @@
{ lib, fetchurl, python2Packages }:
python2Packages.buildPythonPackage rec {
pname = "pyrex";
version = "0.9.6.4";
src = fetchurl {
url = "https://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex/oldtar/Pyrex-${version}.tar.gz";
sha256 = "18pd9f8al3l6i27cc0ddhgg7hxf28lnfs75x4a8jzscydxgiq5a8";
};
doCheck = false;
meta = {
homepage = "http://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex/";
description = "A language for writing Python extension modules";
license = lib.licenses.asl20;
};
}

View file

@ -1,62 +0,0 @@
{ lib, stdenv, fetchurl, python2Packages, pkg-config, SDL2
, libpng, ffmpeg, freetype, glew, libGL, libGLU, fribidi, zlib
, glib
}:
with python2Packages;
stdenv.mkDerivation rec {
pname = "renpy";
version = "7.3.5";
meta = with lib; {
description = "Ren'Py Visual Novel Engine";
homepage = "https://renpy.org/";
license = licenses.mit;
platforms = platforms.linux;
};
src = fetchurl {
url = "https://www.renpy.org/dl/${version}/renpy-${version}-source.tar.bz2";
sha256 = "1anr5cfbvbsbik4v4rvrkdkciwhg700k4lydfbs4n85raimz9mw4";
};
patches = [
./launcherenv.patch
];
postPatch = ''
substituteInPlace launcher/game/choose_directory.rpy --replace /usr/bin/python ${python.interpreter}
'';
nativeBuildInputs = [ pkg-config ];
buildInputs = [
python cython wrapPython tkinter
SDL2 libpng ffmpeg freetype glew libGLU libGL fribidi zlib pygame_sdl2 glib
];
pythonPath = [ pygame_sdl2 tkinter ];
RENPY_DEPS_INSTALL = lib.concatStringsSep "::" (map (path: path) [
SDL2 SDL2.dev libpng ffmpeg ffmpeg.out freetype glew.dev glew.out libGLU libGL fribidi zlib
]);
buildPhase = ''
python module/setup.py build
'';
installPhase = ''
mkdir -p $out/share/renpy
cp -vr * $out/share/renpy
rm -rf $out/share/renpy/module
python module/setup.py install --prefix=$out --install-lib=$out/share/renpy/module
makeWrapper ${python}/bin/python $out/bin/renpy \
--set PYTHONPATH $PYTHONPATH \
--set RENPY_BASE $out/share/renpy \
--add-flags "-O $out/share/renpy/renpy.py"
'';
NIX_CFLAGS_COMPILE = "-I${pygame_sdl2}/include/${python.libPrefix}";
}

View file

@ -1,14 +0,0 @@
# The launcher game starts projects in a separate python process
# with the -E flag, which prevents the nix set PYTHONPATH envvar
# from taking effect, preventing the loading of pygame_sdl2
--- a/launcher/game/project.rpy
+++ b/launcher/game/project.rpy
@@ -239,7 +239,7 @@
raise Exception("Python interpreter not found: %r", executables)
# Put together the basic command line.
- cmd = [ executable, "-EO", sys.argv[0] ]
+ cmd = [ executable, "-O", sys.argv[0] ]
cmd.append(self.path)
cmd.extend(args)

View file

@ -1,5 +1,5 @@
{ lib, stdenv, fetchurl, libjpeg, libtiff, zlib
, postgresql, libmysqlclient, libgeotiff, python2Packages, proj, geos, openssl
, postgresql, libmysqlclient, libgeotiff, python3Packages, proj, geos, openssl
, libpng, sqlite, libspatialite, poppler, hdf4, qhull, giflib, expat
, libiconv, libxml2
, netcdfSupport ? true, netcdf, hdf5, curl
@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
buildInputs = [ libjpeg libtiff libgeotiff libpng proj openssl sqlite
libspatialite poppler hdf4 qhull giflib expat libxml2 proj ]
++ (with python2Packages; [ python numpy wrapPython ])
++ (with python3Packages; [ python numpy wrapPython ])
++ lib.optional stdenv.isDarwin libiconv
++ lib.optionals netcdfSupport [ netcdf hdf5 curl ];

View file

@ -1,6 +1,6 @@
{ lib, stdenv, fetchFromGitHub, cmake
, libuuid, json_c
, doxygen, perl, python2, python2Packages
, doxygen, perl, python3
}:
stdenv.mkDerivation rec {
@ -23,10 +23,11 @@ stdenv.mkDerivation rec {
NIX_CFLAGS_COMPILE = [
"-Wno-error=format-truncation"
"-Wno-error=address-of-packed-member"
"-Wno-array-bounds"
];
nativeBuildInputs = [ cmake doxygen perl python2Packages.sphinx ];
buildInputs = [ libuuid json_c python2 ];
nativeBuildInputs = [ cmake doxygen perl python3.pkgs.sphinx ];
buildInputs = [ libuuid json_c python3 ];
# Set the Epoch to 1980; otherwise the Python wheel/zip code
# gets very angry

View file

@ -1,4 +1,4 @@
{ lib, stdenv, fetchFromGitHub, python2Packages, hexio
{ lib, stdenv, fetchFromGitHub, python3Packages, hexio
, cmake, bash, arpa2cm, git, asn2quickder }:
stdenv.mkDerivation rec {
@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ cmake ];
buildInputs = with python2Packages; [
buildInputs = with python3Packages; [
arpa2cm
asn1ate
hexio

View file

@ -12,12 +12,11 @@
, libpng
, libtiff
, openexr
, python2Packages
, python3
}:
let
inherit (python2Packages) python numpy;
# Might want to use `python2.withPackages(ps: [ps.numpy]);` here...
python = python3.withPackages (py: with py; [ numpy ]);
in
stdenv.mkDerivation rec {
pname = "vigra";
@ -50,7 +49,6 @@ stdenv.mkDerivation rec {
libjpeg
libpng
libtiff
numpy
openexr
python
];

View file

@ -1,18 +0,0 @@
{ lib, buildPythonPackage, fetchPypi, isPy3k, isPyPy }:
buildPythonPackage rec {
pname = "python-cjson";
version = "1.2.2";
disabled = isPy3k || isPyPy;
src = fetchPypi {
inherit pname version;
sha256 = "3006c2c218297be3448dc793218e0b15d20fe9839775521bfc294fc6aa24972b";
};
meta = with lib; {
description = "A very fast JSON encoder/decoder for Python";
homepage = "https://ag-projects.com/";
license = licenses.lgpl2;
};
}

View file

@ -0,0 +1,37 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, pytestCheckHook
}:
let
pname = "rpi-bad-power";
version = "0.1.0";
in
buildPythonPackage {
inherit pname version;
format = "pyproject";
src = fetchFromGitHub {
owner = "shenxn";
repo = pname;
rev = "v${version}";
hash = "sha256:1yvfz28blq4fdnn614n985vbs5hcw1gm3i9am53k410sfs7ilvkk";
};
pythonImportsCheck = [
"rpi_bad_power"
];
checkInputs = [
pytestCheckHook
];
meta = with lib; {
description = "Python library to detect bad power supply on Raspberry Pi";
homepage = "https://github.com/shenxn/rpi-bad-power";
license = licenses.mit;
maintainers = with maintainers; [ hexa ];
platforms = platforms.linux;
};
}

View file

@ -1,5 +1,5 @@
{ lib, fetchgit, pkg-config, gettext, runCommand, makeWrapper
, elfutils, kernel, gnumake, python2, python2Packages
, cpio, elfutils, kernel, gnumake, python3
}:
let
@ -16,8 +16,8 @@ let
pname = "systemtap";
inherit version;
src = fetchgit { inherit url rev sha256; };
nativeBuildInputs = [ pkg-config ];
buildInputs = [ elfutils gettext python2 python2Packages.setuptools ];
nativeBuildInputs = [ pkg-config cpio ];
buildInputs = [ elfutils gettext python3 python3.pkgs.setuptools ];
enableParallelBuilding = true;
};
@ -33,7 +33,7 @@ let
done
'';
pypkgs = with python2Packages; makePythonPath [ pyparsing ];
pypkgs = with python3.pkgs; makePythonPath [ pyparsing ];
in runCommand "systemtap-${kernel.version}-${version}" {
inherit stapBuild kernelBuildDir;

View file

@ -1,21 +0,0 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl jq common-updater-scripts
BASEDIR="$(dirname "$0")"
# get current release version
versions=$(curl -s 'https://launchermeta.mojang.com/mc/game/version_manifest.json')
version=$(echo $versions | jq .latest.release)
url=$(echo $versions | jq -r ".versions[] | select(.id == $version) | .url")
# get current server.jar
versions=$(curl -s $url | jq .downloads.server)
sha1=$(echo $versions | jq .sha1)
url=$(echo $versions | jq .url)
echo $version: $url:$sha1
# change default.nix
sed -i "s/version = \"[0-9.]*\";/version = ${version};/g" "$BASEDIR/default.nix"
sed -i "s+url = \"[a-zA-Z0-9/:.]*/server.jar\";+url = $url;+g" "$BASEDIR/default.nix"
sed -i "s/sha1 = \"[a-zA-Z0-9]*\";/sha1 = ${sha1};/g" "$BASEDIR/default.nix"

View file

@ -0,0 +1,24 @@
{ callPackage, lib, javaPackages }:
let
versions = lib.importJSON ./versions.json;
latestVersion = lib.last (builtins.sort lib.versionOlder (builtins.attrNames versions));
escapeVersion = builtins.replaceStrings [ "." ] [ "-" ];
getJavaVersion = v: (builtins.getAttr "openjdk${toString v}" javaPackages.compiler).headless;
packages = lib.mapAttrs'
(version: value: {
name = "vanilla-${escapeVersion version}";
value = callPackage ./derivation.nix {
inherit (value) version url sha1;
jre_headless = getJavaVersion (if value.javaVersion == null then 8 else value.javaVersion); # versions <= 1.6 will default to 8
};
})
versions;
in
lib.recurseIntoAttrs (
packages // {
vanilla = builtins.getAttr "vanilla-${escapeVersion latestVersion}" packages;
}
)

View file

@ -1,13 +1,9 @@
{ lib, stdenv, fetchurl, nixosTests, jre_headless }:
{ lib, stdenv, fetchurl, nixosTests, jre_headless, version, url, sha1 }:
stdenv.mkDerivation {
pname = "minecraft-server";
version = "1.18.1";
inherit version;
src = fetchurl {
url = "https://launcher.mojang.com/v1/objects/125e5adf40c659fd3bce3e66e67a16bb49ecc1b9/server.jar";
# sha1 because that comes from mojang via api
sha1 = "125e5adf40c659fd3bce3e66e67a16bb49ecc1b9";
};
src = fetchurl { inherit url sha1; };
preferLocalBuild = true;
@ -27,7 +23,7 @@ stdenv.mkDerivation {
passthru = {
tests = { inherit (nixosTests) minecraft-server; };
updateScript = ./update.sh;
updateScript = ./update.py;
};
meta = with lib; {
@ -35,6 +31,6 @@ stdenv.mkDerivation {
homepage = "https://minecraft.net";
license = licenses.unfreeRedistributable;
platforms = platforms.unix;
maintainers = with maintainers; [ thoughtpolice tomberek costrouc ];
maintainers = with maintainers; [ thoughtpolice tomberek costrouc jyooru ];
};
}

View file

@ -0,0 +1,155 @@
#!/usr/bin/env nix-shell
#!nix-shell -i python3 -p python3Packages.requests python3Packages.dataclasses-json
import json
from dataclasses import dataclass, field
from datetime import datetime
from typing import Any, Dict, List, Optional
import requests
from dataclasses_json import DataClassJsonMixin, LetterCase, config
from marshmallow import fields
@dataclass
class Download(DataClassJsonMixin):
sha1: str
size: int
url: str
@dataclass
class Version(DataClassJsonMixin):
id: str
type: str
url: str
time: datetime = field(
metadata=config(
encoder=datetime.isoformat,
decoder=datetime.fromisoformat,
mm_field=fields.DateTime(format="iso"),
)
)
release_time: datetime = field(
metadata=config(
encoder=datetime.isoformat,
decoder=datetime.fromisoformat,
mm_field=fields.DateTime(format="iso"),
letter_case=LetterCase.CAMEL,
)
)
def get_manifest(self) -> Any:
"""Return the version's manifest."""
response = requests.get(self.url)
response.raise_for_status()
return response.json()
def get_downloads(self) -> Dict[str, Download]:
"""
Return all downloadable files from the version's manifest, in Download
objects.
"""
return {
download_name: Download.from_dict(download_info)
for download_name, download_info in self.get_manifest()["downloads"].items()
}
def get_java_version(self) -> Any:
"""
Return the java version specified in a version's manifest, if it is
present. Versions <= 1.6 do not specify this.
"""
return self.get_manifest().get("javaVersion", {}).get("majorVersion", None)
def get_server(self) -> Optional[Download]:
"""
If the version has a server download available, return the Download
object for the server download. If the version does not have a server
download avilable, return None.
"""
downloads = self.get_downloads()
if "server" in downloads:
return downloads["server"]
return None
def get_versions() -> List[Version]:
"""Return a list of Version objects for all available versions."""
response = requests.get(
"https://launchermeta.mojang.com/mc/game/version_manifest.json"
)
response.raise_for_status()
data = response.json()
return [Version.from_dict(version) for version in data["versions"]]
def get_major_release(version_id: str) -> str:
"""
Return the major release for a version. The major release for 1.17 and
1.17.1 is 1.17.
"""
if not len(version_id.split(".")) >= 2:
raise ValueError(f"version not in expected format: '{version_id}'")
return ".".join(version_id.split(".")[:2])
def group_major_releases(releases: List[Version]) -> Dict[str, List[Version]]:
"""
Return a dictionary containing each version grouped by each major release.
The key "1.17" contains a list with two Version objects, one for "1.17"
and another for "1.17.1".
"""
groups: Dict[str, List[Version]] = {}
for release in releases:
major_release = get_major_release(release.id)
if major_release not in groups:
groups[major_release] = []
groups[major_release].append(release)
return groups
def get_latest_major_releases(releases: List[Version]) -> Dict[str, Version]:
"""
Return a dictionary containing the latest version for each major release.
The latest major release for 1.16 is 1.16.5, so the key "1.16" contains a
Version object for 1.16.5.
"""
return {
major_release: sorted(releases, key=lambda x: x.id, reverse=True)[0]
for major_release, releases in group_major_releases(releases).items()
}
def generate() -> Dict[str, Dict[str, str]]:
"""
Return a dictionary containing the latest url, sha1 and version for each major
release.
"""
versions = get_versions()
releases = list(
filter(lambda version: version.type == "release", versions)
) # remove snapshots and betas
latest_major_releases = get_latest_major_releases(releases)
servers = {
version: Download.schema().dump(download_info) # Download -> dict
for version, download_info in {
version: value.get_server()
for version, value in latest_major_releases.items()
}.items()
if download_info is not None # versions < 1.2 do not have a server
}
for server in servers.values():
del server["size"] # don't need it
for version, server in servers.items():
server["version"] = latest_major_releases[version].id
server["javaVersion"] = latest_major_releases[version].get_java_version()
return servers
if __name__ == "__main__":
with open("versions.json", "w") as file:
json.dump(generate(), file, indent=2)
file.write("\n")

View file

@ -0,0 +1,104 @@
{
"1.18": {
"url": "https://launcher.mojang.com/v1/objects/125e5adf40c659fd3bce3e66e67a16bb49ecc1b9/server.jar",
"sha1": "125e5adf40c659fd3bce3e66e67a16bb49ecc1b9",
"version": "1.18.1",
"javaVersion": 17
},
"1.17": {
"url": "https://launcher.mojang.com/v1/objects/a16d67e5807f57fc4e550299cf20226194497dc2/server.jar",
"sha1": "a16d67e5807f57fc4e550299cf20226194497dc2",
"version": "1.17.1",
"javaVersion": 16
},
"1.16": {
"url": "https://launcher.mojang.com/v1/objects/1b557e7b033b583cd9f66746b7a9ab1ec1673ced/server.jar",
"sha1": "1b557e7b033b583cd9f66746b7a9ab1ec1673ced",
"version": "1.16.5",
"javaVersion": 8
},
"1.15": {
"url": "https://launcher.mojang.com/v1/objects/bb2b6b1aefcd70dfd1892149ac3a215f6c636b07/server.jar",
"sha1": "bb2b6b1aefcd70dfd1892149ac3a215f6c636b07",
"version": "1.15.2",
"javaVersion": 8
},
"1.14": {
"url": "https://launcher.mojang.com/v1/objects/3dc3d84a581f14691199cf6831b71ed1296a9fdf/server.jar",
"sha1": "3dc3d84a581f14691199cf6831b71ed1296a9fdf",
"version": "1.14.4",
"javaVersion": 8
},
"1.13": {
"url": "https://launcher.mojang.com/v1/objects/3737db93722a9e39eeada7c27e7aca28b144ffa7/server.jar",
"sha1": "3737db93722a9e39eeada7c27e7aca28b144ffa7",
"version": "1.13.2",
"javaVersion": 8
},
"1.12": {
"url": "https://launcher.mojang.com/v1/objects/886945bfb2b978778c3a0288fd7fab09d315b25f/server.jar",
"sha1": "886945bfb2b978778c3a0288fd7fab09d315b25f",
"version": "1.12.2",
"javaVersion": 8
},
"1.11": {
"url": "https://launcher.mojang.com/v1/objects/f00c294a1576e03fddcac777c3cf4c7d404c4ba4/server.jar",
"sha1": "f00c294a1576e03fddcac777c3cf4c7d404c4ba4",
"version": "1.11.2",
"javaVersion": 8
},
"1.10": {
"url": "https://launcher.mojang.com/v1/objects/3d501b23df53c548254f5e3f66492d178a48db63/server.jar",
"sha1": "3d501b23df53c548254f5e3f66492d178a48db63",
"version": "1.10.2",
"javaVersion": 8
},
"1.9": {
"url": "https://launcher.mojang.com/v1/objects/edbb7b1758af33d365bf835eb9d13de005b1e274/server.jar",
"sha1": "edbb7b1758af33d365bf835eb9d13de005b1e274",
"version": "1.9.4",
"javaVersion": 8
},
"1.8": {
"url": "https://launcher.mojang.com/v1/objects/b58b2ceb36e01bcd8dbf49c8fb66c55a9f0676cd/server.jar",
"sha1": "b58b2ceb36e01bcd8dbf49c8fb66c55a9f0676cd",
"version": "1.8.9",
"javaVersion": 8
},
"1.7": {
"url": "https://launcher.mojang.com/v1/objects/4cec86a928ec171fdc0c6b40de2de102f21601b5/server.jar",
"sha1": "4cec86a928ec171fdc0c6b40de2de102f21601b5",
"version": "1.7.9",
"javaVersion": 8
},
"1.6": {
"url": "https://launcher.mojang.com/v1/objects/050f93c1f3fe9e2052398f7bd6aca10c63d64a87/server.jar",
"sha1": "050f93c1f3fe9e2052398f7bd6aca10c63d64a87",
"version": "1.6.4",
"javaVersion": null
},
"1.5": {
"url": "https://launcher.mojang.com/v1/objects/f9ae3f651319151ce99a0bfad6b34fa16eb6775f/server.jar",
"sha1": "f9ae3f651319151ce99a0bfad6b34fa16eb6775f",
"version": "1.5.2",
"javaVersion": null
},
"1.4": {
"url": "https://launcher.mojang.com/v1/objects/2f0ec8efddd2f2c674c77be9ddb370b727dec676/server.jar",
"sha1": "2f0ec8efddd2f2c674c77be9ddb370b727dec676",
"version": "1.4.7",
"javaVersion": null
},
"1.3": {
"url": "https://launcher.mojang.com/v1/objects/3de2ae6c488135596e073a9589842800c9f53bfe/server.jar",
"sha1": "3de2ae6c488135596e073a9589842800c9f53bfe",
"version": "1.3.2",
"javaVersion": null
},
"1.2": {
"url": "https://launcher.mojang.com/v1/objects/d8321edc9470e56b8ad5c67bbd16beba25843336/server.jar",
"sha1": "d8321edc9470e56b8ad5c67bbd16beba25843336",
"version": "1.2.5",
"javaVersion": null
}
}

View file

@ -1,56 +0,0 @@
{ lib, mkDerivation, fetchFromGitHub, cmake, jdk8, jdk, zlib, file, makeWrapper, xorg, libpulseaudio, qtbase, libGL, msaClientID ? "" }:
let
libpath = with xorg; lib.makeLibraryPath [ libX11 libXext libXcursor libXrandr libXxf86vm libpulseaudio libGL ];
in mkDerivation rec {
pname = "multimc";
version = "unstable-2021-09-08";
src = fetchFromGitHub {
owner = "MultiMC";
repo = "MultiMC5";
rev = "e2355eb276bf355ca4acf526a0f3cc390aa88f8b";
sha256 = "3G9QPoAbC+uVfUYR0Kq6hnxl9c2mvCzIEYGjwfarQJ8=";
fetchSubmodules = true;
};
nativeBuildInputs = [ cmake file makeWrapper ];
buildInputs = [ qtbase jdk8 zlib ];
patches = [ ./0001-pick-latest-java-first.patch ];
postPatch = ''
# hardcode jdk paths
substituteInPlace launcher/java/JavaUtils.cpp \
--replace 'scanJavaDir("/usr/lib/jvm")' 'javas.append("${jdk}/lib/openjdk/bin/java")' \
--replace 'scanJavaDir("/usr/lib32/jvm")' 'javas.append("${jdk8}/lib/openjdk/bin/java")'
# add client ID
substituteInPlace notsecrets/Secrets.cpp \
--replace 'QString MSAClientID = "";' 'QString MSAClientID = "${msaClientID}";'
'';
cmakeFlags = [ "-DMultiMC_LAYOUT=lin-system" ];
postInstall = ''
install -Dm644 ../launcher/resources/multimc/scalable/multimc.svg $out/share/pixmaps/multimc.svg
install -Dm755 ../launcher/package/linux/multimc.desktop $out/share/applications/multimc.desktop
# xorg.xrandr needed for LWJGL [2.9.2, 3) https://github.com/LWJGL/lwjgl/issues/128
wrapProgram $out/bin/multimc \
--set GAME_LIBRARY_PATH /run/opengl-driver/lib:${libpath} \
--prefix PATH : ${lib.makeBinPath [ xorg.xrandr ]}
'';
meta = with lib; {
homepage = "https://multimc.org/";
description = "A free, open source launcher for Minecraft";
longDescription = ''
Allows you to have multiple, separate instances of Minecraft (each with their own mods, texture packs, saves, etc) and helps you manage them and their associated options with a simple interface.
'';
platforms = platforms.linux;
license = licenses.asl20;
# upstream don't want us to re-distribute this application:
# https://github.com/NixOS/nixpkgs/issues/131983
hydraPlatforms = [];
maintainers = with maintainers; [ cleverca22 starcraft66 ];
};
}

View file

@ -0,0 +1,92 @@
{ lib
, mkDerivation
, makeDesktopItem
, fetchFromGitHub
, cmake
, jdk8
, jdk
, zlib
, file
, makeWrapper
, xorg
, libpulseaudio
, qtbase
, libGL
, msaClientID ? ""
}:
mkDerivation rec {
pname = "polymc";
version = "1.0.4";
src = fetchFromGitHub {
owner = "PolyMC";
repo = "PolyMC";
rev = version;
sha256 = "sha256-8aya0KfV9F+i2qBpweWcR9hwyTSQkqn2wHdtkCEeNvk=";
fetchSubmodules = true;
};
nativeBuildInputs = [ cmake file makeWrapper ];
buildInputs = [ qtbase jdk8 zlib ];
patches = [ ./0001-pick-latest-java-first.patch ];
postPatch = ''
# hardcode jdk paths
substituteInPlace launcher/java/JavaUtils.cpp \
--replace 'scanJavaDir("/usr/lib/jvm")' 'javas.append("${jdk}/lib/openjdk/bin/java")' \
--replace 'scanJavaDir("/usr/lib32/jvm")' 'javas.append("${jdk8}/lib/openjdk/bin/java")'
'';
cmakeFlags = [ "-DLauncher_LAYOUT=lin-system" ] ++
lib.optionals (msaClientID != "") [ "-DLauncher_MSA_CLIENT_ID=${msaClientID}" ];
desktopItems = [
(makeDesktopItem {
name = "polymc";
desktopName = "PolyMC";
genericName = "Minecraft Launcher";
comment = "Free, open source launcher and instance manager for Minecraft.";
icon = "launcher";
exec = "polymc";
categories = "Game";
terminal = "false";
})
];
dontWrapQtApps = true;
postInstall = let
libpath = with xorg; lib.makeLibraryPath [
libX11
libXext
libXcursor
libXrandr
libXxf86vm
libpulseaudio
libGL
];
in ''
install -Dm644 ../launcher/resources/multimc/scalable/launcher.svg $out/share/pixmaps/polymc.svg
# xorg.xrandr needed for LWJGL [2.9.2, 3) https://github.com/LWJGL/lwjgl/issues/128
wrapProgram $out/bin/polymc \
"''${qtWrapperArgs[@]}" \
--set GAME_LIBRARY_PATH /run/opengl-driver/lib:${libpath} \
--prefix PATH : ${lib.makeBinPath [ xorg.xrandr ]}
'';
meta = with lib; {
homepage = "https://polymc.org/";
description = "A free, open source launcher for Minecraft";
longDescription = ''
Allows you to have multiple, separate instances of Minecraft (each with
their own mods, texture packs, saves, etc) and helps you manage them and
their associated options with a simple interface.
'';
platforms = platforms.linux;
license = licenses.gpl3Plus;
maintainers = with maintainers; [ cleverca22 starcraft66 ];
};
}

View file

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "fceux";
version = "2.5.0";
version = "2.6.0";
src = fetchFromGitHub {
owner = "TASVideos";
owner = "TASEmulators";
repo = pname;
rev = "${pname}-${version}";
sha256 = "sha256-k9GkG+HLscSv9Ar58gdj4+WvXRchGqeDcvgiKyxEMHs=";
sha256 = "sha256-FNcybq0EFN0tWgWxzwEJQMpsnpvdRxDYnIWDXW2fXkw=";
};
nativeBuildInputs = [ cmake pkg-config wrapQtAppsHook ];

View file

@ -539,6 +539,7 @@ let
UPROBE_EVENT = { optional = true; tristate = whenOlder "4.11" "y";};
UPROBE_EVENTS = { optional = true; tristate = whenAtLeast "4.11" "y";};
BPF_SYSCALL = whenAtLeast "4.4" yes;
BPF_UNPRIV_DEFAULT_OFF = whenBetween "5.10" "5.15" yes;
BPF_EVENTS = whenAtLeast "4.4" yes;
FUNCTION_PROFILER = yes;
RING_BUFFER_BENCHMARK = no;

View file

@ -2,51 +2,51 @@
"4.14": {
"patch": {
"extra": "-hardened1",
"name": "linux-hardened-4.14.261-hardened1.patch",
"sha256": "0m5bb9lpaxw1kq01s9hqsxkmmsyj4ag8s5swrgdca1cf6q84r7bb",
"url": "https://github.com/anthraxx/linux-hardened/releases/download/4.14.261-hardened1/linux-hardened-4.14.261-hardened1.patch"
"name": "linux-hardened-4.14.262-hardened1.patch",
"sha256": "0z2vdqbsqngdm1w7dh65c1ir25x6vrpmyrjx3c8vgzql67c5xb4b",
"url": "https://github.com/anthraxx/linux-hardened/releases/download/4.14.262-hardened1/linux-hardened-4.14.262-hardened1.patch"
},
"sha256": "08s7idxpsjb29ccj0gkrj87xhbdqj9nc417qc7gd2kmbjd6amymz",
"version": "4.14.261"
"sha256": "05yl51r5n3q9l8pq6azx3bbl69l79lk8vkdivy3cvgzdh59pizac",
"version": "4.14.262"
},
"4.19": {
"patch": {
"extra": "-hardened1",
"name": "linux-hardened-4.19.224-hardened1.patch",
"sha256": "0sma7hwznyf8h3fr7r63nbfb85120nz8xq95ynp6m0lxayj5alxs",
"url": "https://github.com/anthraxx/linux-hardened/releases/download/4.19.224-hardened1/linux-hardened-4.19.224-hardened1.patch"
"name": "linux-hardened-4.19.225-hardened1.patch",
"sha256": "0wqwgsk0giwcp0kwp39nkv5bdqk4s2np7gsjymaqimq9187cnkvv",
"url": "https://github.com/anthraxx/linux-hardened/releases/download/4.19.225-hardened1/linux-hardened-4.19.225-hardened1.patch"
},
"sha256": "0c8h457n52qzpw4kgr16ndhsl35si99amc6fadb31fy32csgrk01",
"version": "4.19.224"
"sha256": "15k7b04zx5ggfjagp8sfrylr9xgwgz3hb2bygdml7ka1jnbv76jb",
"version": "4.19.225"
},
"5.10": {
"patch": {
"extra": "-hardened1",
"name": "linux-hardened-5.10.89-hardened1.patch",
"sha256": "0gpfyykm66h4hdazqw1xkg514cglin6zmd754xala924kj6x0k8b",
"url": "https://github.com/anthraxx/linux-hardened/releases/download/5.10.89-hardened1/linux-hardened-5.10.89-hardened1.patch"
"name": "linux-hardened-5.10.91-hardened1.patch",
"sha256": "0sswrl880155vphcfm3nb0smjgcgprqmr1baabhwfn62iz5sv29q",
"url": "https://github.com/anthraxx/linux-hardened/releases/download/5.10.91-hardened1/linux-hardened-5.10.91-hardened1.patch"
},
"sha256": "0c5v8fsv9sazdmdw4m1canm54x2p8777yavxq2gcpw8q98d8n8cj",
"version": "5.10.89"
"sha256": "1lcmhp6njj4ypwkq471mdjapbqvcn6jfqx7z422h8fn6q62gpkk2",
"version": "5.10.91"
},
"5.15": {
"patch": {
"extra": "-hardened1",
"name": "linux-hardened-5.15.12-hardened1.patch",
"sha256": "1xxyh87pbk7961zc5554f3gwr65n5msaxyxbi1kpd4q19gcw86xz",
"url": "https://github.com/anthraxx/linux-hardened/releases/download/5.15.12-hardened1/linux-hardened-5.15.12-hardened1.patch"
"name": "linux-hardened-5.15.14-hardened1.patch",
"sha256": "1vxcdzrnnsgrxk5a9qinqffmgrm1rdd4m68d9kqjrmxg7cnabj65",
"url": "https://github.com/anthraxx/linux-hardened/releases/download/5.15.14-hardened1/linux-hardened-5.15.14-hardened1.patch"
},
"sha256": "182iwy2288layl2290cxla0k6y436lxlx43yaa8par325dviksbx",
"version": "5.15.12"
"sha256": "0kbayz4k72hx9b0l9yz2mbgb2xpnpm13snms06r2absv3gkv9wid",
"version": "5.15.14"
},
"5.4": {
"patch": {
"extra": "-hardened1",
"name": "linux-hardened-5.4.170-hardened1.patch",
"sha256": "0sy1114vw8lrbf4a1p3skg67am1f9bvl15d81mplx2bd98cpx0y8",
"url": "https://github.com/anthraxx/linux-hardened/releases/download/5.4.170-hardened1/linux-hardened-5.4.170-hardened1.patch"
"name": "linux-hardened-5.4.171-hardened1.patch",
"sha256": "1wq9r5bs42zyc06zac59rfl1987lwrwm4vi7wnmgvd4ygmvibc8k",
"url": "https://github.com/anthraxx/linux-hardened/releases/download/5.4.171-hardened1/linux-hardened-5.4.171-hardened1.patch"
},
"sha256": "0b1qdmp2q0lpngfvvnwb248cnqn9akk2z4xawrfwziszrzh797xh",
"version": "5.4.170"
"sha256": "0n29bd1kv4rk3ji05vkvxkrzyzq50dxk0zsnk7r5lj45gpnwig5g",
"version": "5.4.171"
}
}

View file

@ -6,7 +6,7 @@
, ... } @ args:
let
version = "5.4.161-rt67"; # updated by ./update-rt.sh
version = "5.4.170-rt68"; # updated by ./update-rt.sh
branch = lib.versions.majorMinor version;
kversion = builtins.elemAt (lib.splitString "-" version) 0;
in buildLinux (args // {
@ -14,14 +14,14 @@ in buildLinux (args // {
src = fetchurl {
url = "mirror://kernel/linux/kernel/v5.x/linux-${kversion}.tar.xz";
sha256 = "19rrz7fzka506bpgy229v1sbaxc2s609ldmxc2522y9h5aswcj9i";
sha256 = "0b1qdmp2q0lpngfvvnwb248cnqn9akk2z4xawrfwziszrzh797xh";
};
kernelPatches = let rt-patch = {
name = "rt";
patch = fetchurl {
url = "mirror://kernel/linux/kernel/projects/rt/${branch}/older/patch-${version}.patch.xz";
sha256 = "1xn3i1m0n4zcsnw5k52iyrd994zxmrla4rkjmdr71ra7csbrvkbx";
sha256 = "0wzvyybrawn9y3ccgafj6jcmh31vwwq2n5rrlidn80736466a3ba";
};
}; in [ rt-patch ] ++ kernelPatches;

View file

@ -725,7 +725,7 @@
"rpi_gpio" = ps: with ps; [ ]; # missing inputs: RPi.GPIO
"rpi_gpio_pwm" = ps: with ps; [ ]; # missing inputs: pwmled
"rpi_pfio" = ps: with ps; [ ]; # missing inputs: pifacecommon pifacedigitalio
"rpi_power" = ps: with ps; [ ]; # missing inputs: rpi-bad-power
"rpi_power" = ps: with ps; [ rpi-bad-power ];
"rpi_rf" = ps: with ps; [ ]; # missing inputs: RPi.GPIO rpi-rf
"rss_feed_template" = ps: with ps; [ aiohttp-cors ];
"rtorrent" = ps: with ps; [ ];
@ -1018,4 +1018,569 @@
"zwave" = ps: with ps; [ homeassistant-pyozw pydispatcher ];
"zwave_js" = ps: with ps; [ aiohttp-cors pyserial pyudev zwave-js-server-python ];
};
# components listed in tests/components for which all dependencies are packaged
supportedComponentsWithTests = [
"abode"
"accuweather"
"acmeda"
"adax"
"adguard"
"advantage_air"
"aemet"
"agent_dvr"
"air_quality"
"airly"
"airnow"
"airthings"
"airtouch4"
"airvisual"
"alarm_control_panel"
"alarmdecoder"
"alert"
"alexa"
"almond"
"ambee"
"amberelectric"
"ambiclimate"
"ambient_station"
"analytics"
"androidtv"
"apache_kafka"
"api"
"apple_tv"
"apprise"
"aprs"
"arcam_fmj"
"arlo"
"asuswrt"
"atag"
"august"
"aurora"
"auth"
"automation"
"awair"
"aws"
"axis"
"azure_devops"
"azure_event_hub"
"balboa"
"bayesian"
"binary_sensor"
"blackbird"
"blebox"
"blink"
"blueprint"
"bluetooth_le_tracker"
"bmw_connected_drive"
"bond"
"bosch_shc"
"braviatv"
"broadlink"
"brother"
"bsblan"
"buienradar"
"button"
"caldav"
"calendar"
"camera"
"canary"
"cast"
"cert_expiry"
"climacell"
"climate"
"cloud"
"cloudflare"
"color_extractor"
"comfoconnect"
"command_line"
"compensation"
"config"
"configurator"
"control4"
"conversation"
"coolmaster"
"coronavirus"
"counter"
"cover"
"crownstone"
"daikin"
"darksky"
"datadog"
"debugpy"
"deconz"
"default_config"
"demo"
"denonavr"
"derivative"
"device_automation"
"device_sun_light_trigger"
"device_tracker"
"devolo_home_control"
"devolo_home_network"
"dexcom"
"dhcp"
"dialogflow"
"directv"
"discovery"
"dlna_dmr"
"doorbird"
"dsmr"
"dte_energy_bridge"
"duckdns"
"dunehd"
"eafm"
"ecobee"
"econet"
"efergy"
"elgato"
"elkm1"
"emonitor"
"emulated_hue"
"emulated_kasa"
"emulated_roku"
"energy"
"enocean"
"enphase_envoy"
"environment_canada"
"epson"
"esphome"
"everlights"
"evil_genius_labs"
"ezviz"
"faa_delays"
"facebook"
"facebox"
"fail2ban"
"fan"
"feedreader"
"ffmpeg"
"fido"
"file"
"filesize"
"filter"
"fireservicerota"
"firmata"
"fjaraskupan"
"flick_electric"
"flipr"
"flo"
"flume"
"flunearyou"
"flux"
"flux_led"
"folder"
"folder_watcher"
"foobot"
"forecast_solar"
"foscam"
"freebox"
"freedns"
"freedompro"
"fritz"
"fritzbox"
"fritzbox_callmonitor"
"fronius"
"frontend"
"garages_amsterdam"
"gdacs"
"generic"
"generic_hygrostat"
"generic_thermostat"
"geo_json_events"
"geo_location"
"geo_rss_events"
"geofency"
"geonetnz_quakes"
"geonetnz_volcano"
"gios"
"glances"
"goalzero"
"gogogate2"
"google"
"google_assistant"
"google_domains"
"google_pubsub"
"google_translate"
"google_travel_time"
"google_wifi"
"gpslogger"
"graphite"
"gree"
"group"
"growatt_server"
"guardian"
"habitica"
"hangouts"
"harmony"
"hassio"
"hddtemp"
"heos"
"here_travel_time"
"hisense_aehw4a1"
"history"
"history_stats"
"hive"
"hlk_sw16"
"home_connect"
"home_plus_control"
"homeassistant"
"homekit"
"homekit_controller"
"homematic"
"homematicip_cloud"
"honeywell"
"html5"
"http"
"huawei_lte"
"hue"
"huisbaasje"
"humidifier"
"hunterdouglas_powerview"
"hvv_departures"
"hyperion"
"ialarm"
"iaqualink"
"icloud"
"ifttt"
"ign_sismologia"
"image"
"image_processing"
"imap_email_content"
"influxdb"
"input_boolean"
"input_datetime"
"input_number"
"input_select"
"input_text"
"insteon"
"integration"
"intent"
"intent_script"
"ios"
"iotawatt"
"ipma"
"ipp"
"iqvia"
"islamic_prayer_times"
"isy994"
"izone"
"jellyfin"
"jewish_calendar"
"juicenet"
"keenetic_ndms2"
"kira"
"kmtronic"
"knx"
"kodi"
"konnected"
"kraken"
"kulersky"
"lastfm"
"lcn"
"light"
"litterrobot"
"local_file"
"local_ip"
"locative"
"lock"
"logbook"
"logentries"
"logger"
"london_air"
"lookin"
"lovelace"
"luftdaten"
"lutron_caseta"
"lyric"
"mailbox"
"manual"
"manual_mqtt"
"maxcube"
"mazda"
"media_player"
"media_source"
"melcloud"
"meraki"
"met"
"met_eireann"
"meteoclimatic"
"mhz19"
"microsoft_face"
"microsoft_face_detect"
"microsoft_face_identify"
"mikrotik"
"mill"
"min_max"
"minecraft_server"
"minio"
"mobile_app"
"modbus"
"modem_callerid"
"modern_forms"
"mold_indicator"
"moon"
"motion_blinds"
"motioneye"
"mqtt"
"mqtt_eventstream"
"mqtt_json"
"mqtt_room"
"mqtt_statestream"
"mullvad"
"mutesync"
"my"
"myq"
"mysensors"
"mythicbeastsdns"
"nam"
"namecheapdns"
"nanoleaf"
"neato"
"ness_alarm"
"nest"
"netatmo"
"network"
"nexia"
"nightscout"
"no_ip"
"notify"
"notion"
"nsw_rural_fire_service_feed"
"nuki"
"number"
"nws"
"nx584"
"octoprint"
"omnilogic"
"onboarding"
"ondilo_ico"
"openalpr_cloud"
"openalpr_local"
"openerz"
"opengarage"
"openhardwaremonitor"
"opentherm_gw"
"openuv"
"openweathermap"
"opnsense"
"ovo_energy"
"owntracks"
"ozw"
"p1_monitor"
"panel_custom"
"panel_iframe"
"persistent_notification"
"person"
"philips_js"
"pi_hole"
"picnic"
"ping"
"plaato"
"plant"
"plex"
"plugwise"
"point"
"poolsense"
"profiler"
"prometheus"
"prosegur"
"proximity"
"push"
"pushbullet"
"pvpc_hourly_pricing"
"python_script"
"qld_bushfire"
"rachio"
"radarr"
"rainforest_eagle"
"rainmachine"
"random"
"rdw"
"recollect_waste"
"recorder"
"reddit"
"remote"
"renault"
"rest"
"rest_command"
"rflink"
"rfxtrx"
"ridwell"
"ring"
"risco"
"rituals_perfume_genie"
"rmvtransport"
"roku"
"roomba"
"roon"
"rpi_power"
"rss_feed_template"
"ruckus_unleashed"
"safe_mode"
"samsungtv"
"scene"
"screenlogic"
"script"
"search"
"season"
"select"
"sense"
"sensor"
"sentry"
"seventeentrack"
"sharkiq"
"shell_command"
"shelly"
"shopping_list"
"sia"
"sigfox"
"sighthound"
"simplisafe"
"simulated"
"siren"
"slack"
"sleepiq"
"sma"
"smappee"
"smart_meter_texas"
"smarthab"
"smartthings"
"smarttub"
"smhi"
"smtp"
"snips"
"solaredge"
"solarlog"
"soma"
"somfy"
"somfy_mylink"
"sonarr"
"songpal"
"sonos"
"soundtouch"
"spaceapi"
"spc"
"speedtestdotnet"
"spider"
"spotify"
"sql"
"squeezebox"
"srp_energy"
"ssdp"
"starline"
"startca"
"statistics"
"statsd"
"stream"
"stt"
"subaru"
"sun"
"surepetcare"
"switch"
"switchbot"
"switcher_kis"
"syncthing"
"syncthru"
"synology_dsm"
"system_bridge"
"system_health"
"system_log"
"tado"
"tag"
"tailscale"
"tasmota"
"tcp"
"telegram"
"tellduslive"
"template"
"tesla_wall_connector"
"threshold"
"tibber"
"tile"
"time_date"
"timer"
"tod"
"tolo"
"tomato"
"toon"
"totalconnect"
"tplink"
"traccar"
"trace"
"tractive"
"tradfri"
"trafikverket_weatherstation"
"transmission"
"transport_nsw"
"trend"
"tts"
"tuya"
"twentemilieu"
"twilio"
"twinkly"
"twitch"
"uk_transport"
"unifi"
"unifi_direct"
"universal"
"upb"
"upcloud"
"updater"
"upnp"
"uptime"
"uptimerobot"
"usb"
"usgs_earthquakes_feed"
"utility_meter"
"uvc"
"vacuum"
"velbus"
"venstar"
"vera"
"verisure"
"version"
"vesync"
"vicare"
"vilfo"
"vizio"
"vlc_telnet"
"voicerss"
"volumio"
"vultr"
"wake_on_lan"
"wallbox"
"water_heater"
"watttime"
"waze_travel_time"
"weather"
"webhook"
"webostv"
"websocket_api"
"wemo"
"whirlpool"
"wiffi"
"wilight"
"wled"
"workday"
"worldclock"
"wsdot"
"xbox"
"xiaomi"
"xiaomi_aqara"
"xiaomi_miio"
"yale_smart_alarm"
"yamaha"
"yamaha_musiccast"
"yandex_transport"
"yandextts"
"yeelight"
"youless"
"zeroconf"
"zerproc"
"zha"
"zodiac"
"zone"
"zwave"
"zwave_js"
];
}

View file

@ -1,5 +1,6 @@
{ stdenv
, lib
, callPackage
, fetchFromGitHub
, fetchpatch
, python3
@ -40,87 +41,6 @@ let
# Override the version of some packages pinned in Home Assistant's setup.py and requirements_all.txt
(mkOverride "python-slugify" "4.0.1" "69a517766e00c1268e5bbfc0d010a0a8508de0b18d30ad5a1ff357f8ae724270")
(self: super: {
httpcore = super.httpcore.overridePythonAttrs (oldAttrs: rec {
version = "0.14.3";
src = fetchFromGitHub {
owner = "encode";
repo = "httpcore";
rev = version;
sha256 = "sha256-jPsbMhY1lWKBXlh6hsX6DGKXi/g7VQSU00tF6H7qkOo=";
};
propagatedBuildInputs = oldAttrs.propagatedBuildInputs ++ [ python3.pkgs.certifi ];
doCheck = false;
});
})
(self: super: {
httpx = super.httpx.overridePythonAttrs (oldAttrs: rec {
version = "0.21.1";
src = fetchFromGitHub {
owner = "encode";
repo = "httpx";
rev = version;
sha256 = "sha256-ayhLP+1hPWAx2ds227CKp5cebVkD5B2Z59L+3dzdINc=";
};
doCheck = false;
});
})
(self: super: {
pytest-httpx = super.pytest-httpx.overridePythonAttrs (oldAttrs: rec {
version = "0.15.0";
src = fetchFromGitHub {
owner = "Colin-bin";
repo = "pytest_httpx";
rev = "v${version}";
sha256 = "08dxvjkxlnam3r0yp17495d1vksyawzzkpykacjql1gi6hqlfrwg";
};
});
})
(self: super: {
respx = super.respx.overridePythonAttrs (oldAttrs: rec {
version = "0.19.0";
src = fetchFromGitHub {
owner = "lundberg";
repo = "respx";
rev = version;
sha256 = "sha256-xiAt42kc1+rro99KMwzYKi3XC+wxYVqOY11tM+M/uV8=";
};
});
})
(self: super: {
envoy-reader = super.envoy-reader.overridePythonAttrs (oldAttrs: rec {
patches = [
# Support for later httpx, https://github.com/jesserizzo/envoy_reader/pull/82
(fetchpatch {
name = "support-later-httpx.patch";
url = "https://github.com/jesserizzo/envoy_reader/commit/6019a89419fe9c830ba839be7d39ec54725268b0.patch";
sha256 = "17vsrx13rskvh8swvjisb2dk6x1jdbjcm8ikkpidia35pa24h272";
})
];
});
})
(self: super: {
sanic = super.sanic.overridePythonAttrs (oldAttrs: rec {
version = "21.9.3";
src = fetchFromGitHub {
owner = "sanic-org";
repo = "sanic";
rev = "v${version}";
sha256 = "0m18jdw1mvf7jhpnrxhm96p24pxvv0h9m71a8c7sqqkwnnpa3p5i";
};
disabledTests = oldAttrs.disabledTests ++ [
"test_redirect"
"test_chained_redirect"
"test_unix_connection"
];
});
})
(self: super: {
huawei-lte-api = super.huawei-lte-api.overridePythonAttrs (oldAttrs: rec {
version = "1.4.18";
@ -222,33 +142,6 @@ let
});
})
# Remove as soon the dependency is updated and pytest-httpx > 0.15
(self: super: {
luftdaten = super.luftdaten.overridePythonAttrs (oldAttrs: rec {
version = "0.7.1";
src = fetchFromGitHub {
owner = "home-assistant-ecosystem";
repo = "python-luftdaten";
rev = version;
sha256 = "sha256-76Y5TJet0WtzYXuK8Og0rmpsUIlXK7b37oesh+MliU8=";
};
});
})
# Remove as soon the dependency is updated and pytest-httpx > 0.15
(self: super: {
pyrmvtransport = super.pyrmvtransport.overridePythonAttrs (oldAttrs: rec {
version = "0.3.3";
src = fetchFromGitHub {
owner = "cgtobi";
repo = "pyrmvtransport";
rev = "v${version}";
sha256 = "sha256-nFxGEyO+wyRzPayjjv8WNIJ+XIWbVn0dyyjQKHiyr40=";
};
doCheck = false;
});
})
# home-assistant-frontend does not exist in python3.pkgs
(self: super: {
home-assistant-frontend = self.callPackage ./frontend.nix { };
@ -265,7 +158,7 @@ let
});
};
py = python3.override {
python = python3.override {
# Put packageOverrides at the start so they are applied after defaultOverrides
packageOverrides = lib.foldr lib.composeExtensions (self: super: { }) ([ packageOverrides ] ++ defaultOverrides);
};
@ -274,22 +167,24 @@ let
availableComponents = builtins.attrNames componentPackages.components;
getPackages = component: builtins.getAttr component componentPackages.components;
inherit (componentPackages) supportedComponentsWithTests;
componentBuildInputs = lib.concatMap (component: getPackages component py.pkgs) extraComponents;
getPackages = component: componentPackages.components.${component};
componentBuildInputs = lib.concatMap (component: getPackages component python.pkgs) extraComponents;
# Ensure that we are using a consistent package set
extraBuildInputs = extraPackages py.pkgs;
extraBuildInputs = extraPackages python.pkgs;
# Don't forget to run parse-requirements.py after updating
hassVersion = "2021.12.9";
in with py.pkgs; buildPythonApplication rec {
in python.pkgs.buildPythonApplication rec {
pname = "homeassistant";
version = assert (componentPackages.version == hassVersion); hassVersion;
# check REQUIRED_PYTHON_VER in homeassistant/const.py
disabled = pythonOlder "3.8";
disabled = python.pythonOlder "3.8";
# don't try and fail to strip 6600+ python files, it takes minutes!
dontStrip = true;
@ -325,7 +220,7 @@ in with py.pkgs; buildPythonApplication rec {
substituteInPlace tests/test_config.py --replace '"/usr"' '"/build/media"'
'';
propagatedBuildInputs = [
propagatedBuildInputs = with python.pkgs; [
# Only packages required in setup.py
aiohttp
astral
@ -361,9 +256,10 @@ in with py.pkgs; buildPythonApplication rec {
# upstream only tests on Linux, so do we.
doCheck = stdenv.isLinux;
checkInputs = [
checkInputs = with python.pkgs; [
# test infrastructure (selectively from requirement_test.txt)
freezegun
jsonpickle
pytest-aiohttp
pytest-freezegun
pytest-mock
@ -372,541 +268,15 @@ in with py.pkgs; buildPythonApplication rec {
pytest-xdist
pytestCheckHook
requests-mock
stdlib-list
jsonpickle
respx
stdlib-list
tqdm
# required by tests/auth/mfa_modules
pyotp
] ++ lib.concatMap (component: getPackages component py.pkgs) componentTests;
# We can reasonably test components that don't communicate with any network
# services. Before adding new components to this list make sure we have all
# its dependencies packaged and listed in ./component-packages.nix.
componentTests = [
"abode"
"accuweather"
"acmeda"
"adguard"
"advantage_air"
"aemet"
"agent_dvr"
"air_quality"
"airly"
"airnow"
"airthings"
"airvisual"
"alarm_control_panel"
"alarmdecoder"
"alert"
"alexa"
"almond"
"ambiclimate"
"ambient_station"
"analytics"
"androidtv"
"apache_kafka"
"api"
"apple_tv"
"apprise"
"aprs"
"arcam_fmj"
"arlo"
"asuswrt"
"atag"
"august"
"aurora"
"auth"
"automation"
"awair"
"aws"
"axis"
"azure_devops"
"azure_event_hub"
"bayesian"
"binary_sensor"
"blackbird"
"blebox"
"blink"
"blueprint"
"bluetooth_le_tracker"
"bmw_connected_drive"
"bond"
"bosch_shc"
"braviatv"
"broadlink"
"brother"
"bsblan"
"buienradar"
"caldav"
"calendar"
"camera"
"canary"
"cast"
"cert_expiry"
"climacell"
"climate"
"cloud"
"cloudflare"
"color_extractor"
"comfoconnect"
"command_line"
"compensation"
"config"
"configurator"
"control4"
"conversation"
"coolmaster"
"coronavirus"
"counter"
"cover"
"daikin"
"darksky"
"datadog"
"deconz"
] ++ lib.concatMap (component: getPackages component python.pkgs) [
# some components are needed even if tests in tests/components are disabled
"default_config"
"demo"
"denonavr"
"derivative"
"device_automation"
"device_sun_light_trigger"
"device_tracker"
"devolo_home_control"
"dexcom"
"dhcp"
"dialogflow"
"directv"
"discovery"
"doorbird"
"dsmr"
"dte_energy_bridge"
"duckdns"
"dunehd"
"eafm"
"ecobee"
"econet"
"efergy"
"elgato"
"elkm1"
"emonitor"
"emulated_hue"
"emulated_kasa"
"emulated_roku"
"enocean"
"enphase_envoy"
"epson"
"esphome"
"everlights"
"ezviz"
"faa_delays"
"facebook"
"facebox"
"fail2ban"
"fan"
"feedreader"
"ffmpeg"
"fido"
"file"
"filesize"
"filter"
"fireservicerota"
"firmata"
"fjaraskupan"
"flick_electric"
"flipr"
"flo"
"flume"
"flunearyou"
"flux"
"folder"
"folder_watcher"
"foobot"
"foscam"
"freebox"
"freedns"
"fritz"
"fritzbox"
"fritzbox_callmonitor"
"frontend"
"garages_amsterdam"
"gdacs"
"generic"
"generic_thermostat"
"geo_json_events"
"geo_location"
"geo_rss_events"
"geofency"
"geonetnz_quakes"
"geonetnz_volcano"
"gios"
# updated to incompatible version and overriding is annoying because of async_timeout<4 pin
# "glances"
"goalzero"
"gogogate2"
"google"
"google_assistant"
"google_domains"
"google_pubsub"
"google_translate"
"google_travel_time"
"google_wifi"
"gpslogger"
"graphite"
"gree"
"group"
"growatt_server"
"guardian"
"habitica"
"hangouts"
"harmony"
"hassio"
"hddtemp"
"heos"
"here_travel_time"
"hisense_aehw4a1"
"history"
"history_stats"
"hive"
"hlk_sw16"
"home_connect"
"home_plus_control"
"homeassistant"
# disable homekit tests because they fail in the network component
#"homekit"
"homekit_controller"
"homematic"
"homematicip_cloud"
"honeywell"
"html5"
"http"
"huawei_lte"
"hue"
"huisbaasje"
"humidifier"
"hunterdouglas_powerview"
"hvv_departures"
"hyperion"
"ialarm"
"iaqualink"
"icloud"
"ifttt"
"ign_sismologia"
"image"
"image_processing"
"imap_email_content"
"influxdb"
"input_boolean"
"input_datetime"
"input_number"
"input_select"
"input_text"
"insteon"
"integration"
"intent"
"intent_script"
"ios"
"ipma"
"ipp"
"iqvia"
"islamic_prayer_times"
"isy994"
"izone"
"jewish_calendar"
"juicenet"
"keenetic_ndms2"
"kira"
"kmtronic"
"knx"
"kodi"
"konnected"
"kraken"
"kulersky"
"lastfm"
"lcn"
"light"
"litterrobot"
"local_file"
"local_ip"
"locative"
"lock"
"logbook"
"logentries"
"logger"
"london_air"
"lovelace"
"luftdaten"
"lutron_caseta"
"lyric"
"mailbox"
"manual"
"manual_mqtt"
"maxcube"
"mazda"
"media_player"
"media_source"
"melcloud"
"meraki"
"met"
"met_eireann"
"meteoclimatic"
"mhz19"
"microsoft_face"
"microsoft_face_detect"
"microsoft_face_identify"
"mikrotik"
"mill"
"min_max"
"minecraft_server"
"minio"
"mobile_app"
"modbus"
"mold_indicator"
"moon"
"motion_blinds"
"motioneye"
"mqtt"
"mqtt_eventstream"
"mqtt_json"
"mqtt_room"
"mqtt_statestream"
"mullvad"
"mutesync"
"my"
"myq"
"mysensors"
"mythicbeastsdns"
"nam"
"namecheapdns"
"neato"
"ness_alarm"
# python-nest has an unfree license, this prevents builds through ofborg
# "nest"
"netatmo"
"nexia"
"nightscout"
"no_ip"
"notify"
"notion"
"nsw_rural_fire_service_feed"
"nuki"
"number"
"nws"
"nx584"
"octoprint"
"omnilogic"
"onboarding"
"ondilo_ico"
"openalpr_cloud"
"openalpr_local"
"openerz"
"openhardwaremonitor"
"opentherm_gw"
"openuv"
"openweathermap"
"opnsense"
"ovo_energy"
"owntracks"
"ozw"
"p1_monitor"
"panel_custom"
"panel_iframe"
"persistent_notification"
"person"
"philips_js"
"pi_hole"
"picnic"
"ping"
"plaato"
"plant"
"plex"
"plugwise"
"point"
"poolsense"
"profiler"
"prometheus"
"proximity"
"push"
"pushbullet"
"pvpc_hourly_pricing"
"python_script"
"qld_bushfire"
"rachio"
"radarr"
"rainmachine"
"random"
"recollect_waste"
"recorder"
"reddit"
"remote"
"renault"
"rest"
"rest_command"
"rflink"
"rfxtrx"
"ring"
"risco"
"rituals_perfume_genie"
"rmvtransport"
"roku"
"roomba"
"roon"
"rss_feed_template"
"ruckus_unleashed"
"safe_mode"
"samsungtv"
"scene"
"screenlogic"
"script"
"search"
"season"
"sense"
"sensor"
"sentry"
"sharkiq"
"shell_command"
"shelly"
"shopping_list"
"sia"
"sigfox"
"sighthound"
"simplisafe"
"simulated"
"slack"
"sleepiq"
"sma"
"smappee"
"smart_meter_texas"
"smarthab"
"smartthings"
"smarttub"
"smhi"
"smtp"
"snips"
"solaredge"
"soma"
"somfy"
"somfy_mylink"
"sonarr"
"songpal"
# disable sonos components test because they rely on ssdp, which doesn't work in our sandbox
# "sonos"
"soundtouch"
"spaceapi"
"spc"
"speedtestdotnet"
"spider"
"spotify"
"sql"
"squeezebox"
"srp_energy"
"ssdp"
"starline"
"startca"
"statistics"
"statsd"
"stream"
"stt"
"subaru"
"sun"
"surepetcare"
"switch"
"switcher_kis"
"syncthing"
"syncthru"
"synology_dsm"
"system_health"
"system_log"
"tado"
"tag"
"tasmota"
"tcp"
"telegram"
"tellduslive"
"template"
"threshold"
"tibber"
"tile"
"time_date"
"timer"
"tod"
"tomato"
"toon"
"totalconnect"
"tplink"
"traccar"
"trace"
"tradfri"
"transmission"
"transport_nsw"
"trend"
"tts"
"tuya"
"twentemilieu"
"twilio"
"twinkly"
"twitch"
"uk_transport"
"unifi"
"unifi_direct"
"universal"
"upb"
"upcloud"
"updater"
# disabled, because it tries to join a multicast group and fails to find a usable network interface
# "upnp"
"uptime"
"uptimerobot"
"usgs_earthquakes_feed"
"utility_meter"
"uvc"
"vacuum"
"velbus"
# disabled, because it includes onewire component tests, for which we lack p1wire dependency
# "venstar"
"vera"
"verisure"
"version"
"vesync"
"vilfo"
"vizio"
"vlc_telnet"
"voicerss"
"volumio"
"vultr"
"wake_on_lan"
"wallbox"
"water_heater"
"waze_travel_time"
"weather"
"webhook"
"webostv"
"websocket_api"
"wemo"
"wiffi"
"wilight"
"wled"
"workday"
"worldclock"
"wsdot"
"xbox"
"xiaomi"
"xiaomi_aqara"
# disabled, because we require cryptography>=35.0 for the miio package
# "xiaomi_miio"
"yamaha"
"yandex_transport"
"yandextts"
"yeelight"
"youless"
# disabled, because it tries to join a multicast group and fails to find a usable network interface
# "zeroconf"
"zerproc"
"zha"
"zodiac"
"zone"
"zwave"
"zwave_js"
] ++ lib.optionals (builtins.any (s: s == stdenv.hostPlatform.system) debugpy.meta.platforms) [
"debugpy"
];
pytestFlagsArray = [
@ -919,120 +289,46 @@ in with py.pkgs; buildPythonApplication rec {
"--only-rerun RuntimeError"
# enable full variable printing on error
"--showlocals"
# here_travel_time/test_sensor.py: Tries to access HERE API: herepy.error.HEREError: Error occured on __get
"--deselect tests/components/here_travel_time/test_sensor.py::test_invalid_credentials"
# screenlogic/test_config_flow.py: Tries to send out UDP broadcasts
"--deselect tests/components/screenlogic/test_config_flow.py::test_form_cannot_connect"
# abode/test_camera.py: Race condition in pickle file creationg
"--deselect tests/components/abode/test_camera.py::test_camera_off"
# asuswrt/test_config_flow.py: Sandbox network limitations, fails with unexpected error
"--deselect tests/components/asuswrt/test_config_flow.py::test_on_connect_failed"
# shelly/test_config_flow.py: Tries to join multicast group
"--deselect tests/components/shelly/test_config_flow.py::test_form"
"--deselect tests/components/shelly/test_config_flow.py::test_title_without_name"
"--deselect tests/components/shelly/test_config_flow.py::test_form_auth"
"--deselect tests/components/shelly/test_config_flow.py::test_form_errors_test_connection"
"--deselect tests/components/shelly/test_config_flow.py::test_user_setup_ignored_device"
"--deselect tests/components/shelly/test_config_flow.py::test_form_auth_errors_test_connection"
"--deselect tests/components/shelly/test_config_flow.py::test_form_auth_errors_test_connection"
"--deselect tests/components/shelly/test_config_flow.py::test_form_auth_errors_test_connection"
"--deselect tests/components/shelly/test_config_flow.py::test_zeroconf"
"--deselect tests/components/shelly/test_config_flow.py::test_zeroconf_sleeping_device"
"--deselect tests/components/shelly/test_config_flow.py::test_zeroconf_sleeping_device_error"
"--deselect tests/components/shelly/test_config_flow.py::test_zeroconf_sleeping_device_error"
"--deselect tests/components/shelly/test_config_flow.py::test_zeroconf_require_auth"
# prometheus/test_init.py: Spurious AssertionError regarding humidifier_target_humidity_percent metric
"--deselect tests/components/prometheus/test_init.py::test_view"
# smhi/test_init.py: Tries to fetch data from the network: socket.gaierror: [Errno -2] Name or service not known
"--deselect tests/components/smhi/test_init.py::test_remove_entry"
# wallbox/test_config_flow.py: Tries to connect to api.wall-box.cim: Failed to establish a new connection: [Errno -2] Name or service not known
"--deselect tests/components/wallbox/test_config_flow.py::test_form_invalid_auth"
"--deselect tests/components/wallbox/test_config_flow.py::test_form_cannot_connect"
# default_config/test_init.py: Tries to check for updates and fails ungracefully without network access
"--deselect tests/components/default_config/test_init.py::test_setup"
# local_ip/test_{init,config_flow}.py: tries to lookup a route towards a multicast address and fails
"--deselect tests/components/local_ip/test_init.py::test_basic_setup"
"--deselect tests/components/local_ip/test_config_flow.py::test_config_flow"
# netatmo/test_select.py: NoneType object has no attribute state
"--deselect tests/components/netatmo/test_select.py::test_select_schedule_thermostats"
# wemo/test_sensor.py: KeyError for various power attributes
"--deselect tests/components/wemo/test_sensor.py::TestInsightTodayEnergy::test_state_unavailable"
"--deselect tests/components/wemo/test_sensor.py::TestInsightCurrentPower::test_state_unavailable"
# helpers/test_system_info.py: AssertionError: assert 'Unknown' == 'Home Assistant Container'
"--deselect tests/helpers/test_system_info.py::test_container_installationtype"
# tests are located in tests/
"tests"
# dynamically add packages required for component tests
] ++ map (component: "tests/components/" + component) componentTests;
];
disabledTestPaths = [
# don't bulk test all components
"tests/components"
# pyotp since v2.4.0 complains about the short mock keys, hass pins v2.3.0
"tests/auth/mfa_modules/test_notify.py"
# emulated_hue/test_upnp.py: Tries to establish the public ipv4 address
"tests/components/emulated_hue/test_upnp.py"
# tado/test_{climate,water_heater}.py: Tries to connect to my.tado.com
"tests/components/tado/test_climate.py"
"tests/components/tado/test_water_heater.py"
];
disabledTests = [
# AssertionError: assert 1 == 0
"test_error_posted_as_event"
"test_merge"
# ModuleNotFoundError: No module named 'pyqwikswitch'
"test_merge_id_schema"
# keyring.errors.NoKeyringError: No recommended backend was available.
"test_secrets_from_unrelated_fails"
"test_secrets_credstash"
# generic/test_camera.py: AssertionError: 500 == 200
"test_fetching_without_verify_ssl"
"test_fetching_url_with_verify_ssl"
# util/test_package.py: AssertionError on package.is_installed('homeassistant>=999.999.999')
"test_check_package_version_does_not_match"
# homeassistant/util/thread.py:51: SystemError
"test_executor_shutdown_can_interrupt_threads"
# {'theme_color': '#03A9F4'} != {'theme_color': 'blue'}
"test_webhook_handle_get_config"
# onboarding tests rpi_power component, for which we are lacking rpi_bad_power library
"test_onboarding_core_sets_up_rpi_power"
"test_onboarding_core_no_rpi_power"
# hue/test_sensor_base.py: Race condition when counting events
"test_hue_events"
# august/test_lock.py: AssertionError: assert 'unlocked' == 'locked' / assert 'off' == 'on'
"test_lock_update_via_pubnub"
"test_door_sense_update_via_pubnub"
# Tests are flaky
"test_config_platform_valid"
"test_hls_stream"
];
preCheck = ''
export HOME="$TEMPDIR"
patch -p1 < ${./patches/tests-mock-source-ip.patch}
# the tests require the existance of a media dir
mkdir /build/media
# put ping binary into PATH, e.g. for wake_on_lan tests
export PATH=${inetutils}/bin:$PATH
# error out when component test directory is missing, otherwise hidden by xdist execution :(
for component in ${lib.concatStringsSep " " (map lib.escapeShellArg componentTests)}; do
test -d "tests/components/$component" || {
>2& echo "ERROR: Tests for component '$component' were enabled, but they do not exist!"
exit 1
}
done
'';
passthru = {
inherit availableComponents extraComponents;
python = py;
inherit
availableComponents
extraComponents
getPackages
python
supportedComponentsWithTests;
tests = {
inherit (nixosTests) home-assistant;
nixos = nixosTests.home-assistant;
components = callPackage ./tests.nix { };
};
};

View file

@ -62,6 +62,7 @@ def get_version():
def parse_components(version: str = "master"):
components = {}
components_with_tests = []
with tempfile.TemporaryDirectory() as tmp:
with urlopen(
f"https://github.com/home-assistant/home-assistant/archive/{version}.tar.gz"
@ -69,9 +70,13 @@ def parse_components(version: str = "master"):
tarfile.open(fileobj=BytesIO(response.read())).extractall(tmp)
# Use part of a script from the Home Assistant codebase
core_path = os.path.join(tmp, f"core-{version}")
for entry in os.scandir(os.path.join(core_path, "tests/components")):
if entry.is_dir():
components_with_tests.append(entry.name)
sys.path.append(core_path)
from script.hassfest.model import Integration
integrations = Integration.load_dir(
pathlib.Path(
os.path.join(core_path, "homeassistant/components")
@ -81,7 +86,8 @@ def parse_components(version: str = "master"):
integration = integrations[domain]
if not integration.disabled:
components[domain] = integration.manifest
return components
return components, components_with_tests
# Recursively get the requirements of a component and its dependencies
@ -162,7 +168,7 @@ def main() -> None:
packages = dump_packages()
version = get_version()
print("Generating component-packages.nix for version {}".format(version))
components = parse_components(version=version)
components, components_with_tests = parse_components(version=version)
build_inputs = {}
outdated = {}
for component in sorted(components.keys()):
@ -205,6 +211,13 @@ def main() -> None:
f.write(f" # missing inputs: {' '.join(missing)}")
f.write("\n")
f.write(" };\n")
f.write(" # components listed in tests/components for which all dependencies are packaged\n")
f.write(" supportedComponentsWithTests = [\n")
for component, deps in build_inputs.items():
available, missing = deps
if len(missing) == 0 and component in components_with_tests:
f.write(f' "{component}"' + "\n")
f.write(" ];\n")
f.write("}\n")
supported_components = reduce(lambda n, c: n + (build_inputs[c][1] == []),

View file

@ -1,8 +1,8 @@
diff --git a/homeassistant/components/network/__init__.py b/homeassistant/components/network/__init__.py
index 7cc864727d..69333a5454 100644
index b3ef88e7ab..b7a8471e1a 100644
--- a/homeassistant/components/network/__init__.py
+++ b/homeassistant/components/network/__init__.py
@@ -26,7 +26,7 @@ async def async_get_source_ip(
@@ -30,7 +30,7 @@ async def async_get_source_ip(
) -> str:
"""Get the source ip for a target ip."""
adapters = await async_get_adapters(hass)

View file

@ -0,0 +1,69 @@
{ lib
, home-assistant
}:
let
# some components' tests have additional dependencies
extraCheckInputs = with home-assistant.python.pkgs; {
alexa = [ ha-av ];
camera = [ ha-av ];
cloud = [ mutagen ];
config = [ pydispatcher ];
generic = [ ha-av ];
google_translate = [ mutagen ];
nest = [ ha-av ];
onboarding = [ pymetno rpi-bad-power ];
voicerss = [ mutagen ];
yandextts = [ mutagen ];
zha = [ pydeconz ];
zwave_js = [ homeassistant-pyozw ];
};
extraDisabledTestPaths = {
tado = [
# tado/test_{climate,water_heater}.py: Tries to connect to my.tado.com
"tests/components/tado/test_climate.py"
"tests/components/tado/test_water_heater.py"
];
};
extraPytestFlagsArray = {
asuswrt = [
# asuswrt/test_config_flow.py: Sandbox network limitations, fails with unexpected error
"--deselect tests/components/asuswrt/test_config_flow.py::test_on_connect_failed"
];
};
in lib.listToAttrs (map (component: lib.nameValuePair component (
home-assistant.overridePythonAttrs (old: {
pname = "homeassistant-test-${component}";
dontBuild = true;
dontInstall = true;
checkInputs = old.checkInputs
++ home-assistant.getPackages component home-assistant.python.pkgs
++ extraCheckInputs.${component} or [ ];
disabledTestPaths = old.disabledTestPaths ++ extraDisabledTestPaths.${component} or [ ];
pytestFlagsArray = lib.remove "tests" old.pytestFlagsArray
++ extraPytestFlagsArray.${component} or [ ]
++ [ "tests/components/${component}" ];
preCheck = old.preCheck + lib.optionalString (component != "network") ''
patch -p1 < ${./patches/tests-mock-source-ip.patch}
'';
meta = old.meta // {
broken = lib.elem component [
"airtouch4"
"glances"
"ridwell"
"venstar"
"yamaha_musiccast"
];
# upstream only tests on Linux, so do we.
platforms = lib.platforms.linux;
};
})
)) home-assistant.supportedComponentsWithTests)

View file

@ -1,38 +0,0 @@
{ lib, python2Packages, fetchFromGitHub, pkg-config, glib, alsa-lib, libjack2 }:
python2Packages.buildPythonApplication {
version = "2015-11-17";
pname = "mididings";
src = fetchFromGitHub {
owner = "dsacre";
repo = "mididings";
rev = "bbec99a8c878a2a7029e78e84fc736e4a68ed5a0";
sha256 = "1pdf5mib87zy7yjh9vpasja419h28wvgq6x5hw2hkm7bg9ds4p2m";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [ glib alsa-lib libjack2 python2Packages.boost ];
propagatedBuildInputs = with python2Packages; [ decorator ]
# for livedings
++ [ tkinter pyliblo ]
# for mididings.extra
++ [ dbus-python pyinotify ]
# to read/write standard MIDI files
++ [ pysmf ]
# so mididings knows where to look for config files
++ [ pyxdg ];
preBuild = with lib.versions; ''
substituteInPlace setup.py \
--replace boost_python "boost_python${major python2Packages.python.version}${minor python2Packages.python.version}"
'';
meta = with lib; {
description = "A MIDI router and processor based on Python, supporting ALSA and JACK MIDI";
homepage = "http://das.nasophon.de/mididings";
license = licenses.gpl2;
maintainers = [ ];
platforms = platforms.linux;
};
}

View file

@ -17,14 +17,14 @@ let
in
with python.pkgs; buildPythonApplication rec {
pname = "esphome";
version = "2021.12.2";
version = "2021.12.3";
format = "setuptools";
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = version;
sha256 = "sha256-Uq+VzU/j14+3LegEA9bQ1JGe5tUBuP0IX34LdritJdA=";
sha256 = "sha256-uEwpolMbtBPHAOk3fDE6OE3/Sls5NB0p5ibnrbNIbV0=";
};
patches = [

View file

@ -1,29 +0,0 @@
{ lib, fetchurl, python2Packages }:
python2Packages.buildPythonApplication rec {
pname = "getmail";
version = "5.14";
src = fetchurl {
url = "http://pyropus.ca/software/getmail/old-versions/${pname}-${version}.tar.gz";
sha256 = "1hcrd9h4g12f5gvl1djsbchcjry02ghq4icdr897s8v48pkrzagk";
};
doCheck = false;
postPatch = ''
# getmail spends a lot of effort to build an absolute path for
# documentation installation; too bad it is counterproductive now
sed -e '/datadir or prefix,/d' -i setup.py
'';
meta = {
description = "A program for retrieving mail";
maintainers = [ lib.maintainers.raskin ];
platforms = lib.platforms.linux;
homepage = "http://pyropus.ca/software/getmail/";
updateWalker = true;
license = lib.licenses.gpl2Plus;
};
}

View file

@ -100,6 +100,7 @@ mapAliases ({
bitwarden_rs-postgresql = vaultwarden-postgresql;
bitwarden_rs-vault = vaultwarden-vault;
blink = throw "blink has been removed from nixpkgs, it was unmaintained and required python2 at the time of removal."; # added 2022-01-12
bs1770gain = throw "bs1770gain has been removed from nixpkgs, as it had no maintainer or reverse dependencies."; # added 2021-01-02
bsod = throw "bsod has been removed: deleted by upstream"; # added 2022-01-07
btc1 = throw "btc1 has been removed, it was abandoned by upstream"; # added 2020-11-03
@ -118,6 +119,7 @@ mapAliases ({
casperjs = throw "casperjs has been removed, it was abandoned by upstream and broken.";
catfish = xfce.catfish; # added 2019-12-22
ccnet = throw "ccnet has been removed because seafile does not depend on it anymore"; # added 2021-03-25
cde-gtk-theme = throw "cde-gtk-theme has been removed from nixpkgs as it shipped with python2 scripts that didn't work anymore."; # added 2022-01-12
cgmanager = throw "cgmanager was deprecated by lxc and therefore removed from nixpkgs."; # added 2020-06-05
checkbashism = checkbashisms; # added 2016-08-16
chronos = throw "chronos has been removed from nixpkgs, as it was unmaintained"; # added 2020-08-15
@ -180,6 +182,7 @@ mapAliases ({
cups_filters = cups-filters; # added 2016-08
cups-googlecloudprint = throw "Google Cloudprint is officially discontinued since Jan 2021, more info https://support.google.com/chrome/a/answer/9633006";
cloud-print-connector = throw "Google Cloudprint is officially discontinued since Jan 2021, more info https://support.google.com/chrome/a/answer/9633006";
curaByDagoma = throw "curaByDagoma has been removed from nixpkgs, because it was unmaintained and dependent on python2 packages."; # added 2022-01-12
curaLulzbot = throw "curaLulzbot has been removed due to insufficient upstream support for a modern dependency chain"; # added 2021-10-23
cquery = throw "cquery has been removed because it is abandoned by upstream. Consider switching to clangd or ccls instead."; # added 2020-06-15
cv = progress; # added 2015-09-06
@ -214,6 +217,7 @@ mapAliases ({
desktop_file_utils = desktop-file-utils; # added 2018-02-25
devicemapper = lvm2; # added 2018-04-25
digikam5 = digikam; # added 2017-02-18
displaycal = throw "displaycal has been removed from nixpkgs, as it hasn't migrated to python3."; # added 2022-01-12
dmtx = dmtx-utils; # added 2018-04-25
dnnl = oneDNN; # added 2020-04-22
docbook5_xsl = docbook_xsl_ns; # added 2018-04-25
@ -306,6 +310,7 @@ mapAliases ({
gdb-multitarget = gdb; # added 2017-11-13
gdk_pixbuf = gdk-pixbuf; # added 2019-05-22
gettextWithExpat = gettext; # 2016-02-19
getmail = throw "getmail has been removed from nixpkgs, migrate to getmail6."; # added 2022-01-12
giflib_4_1 = throw "giflib_4_1 has been removed; use giflib instead"; # 2020-02-12
git-bz = throw "giz-bz has been removed from nixpkgs as it is stuck on python2."; # added 2022-01-01
gitAndTools = self // { # added 2021-01-14
@ -318,6 +323,7 @@ mapAliases ({
topGit = top-git;
};
gitin = throw "gitin has been remove because it was unmaintained and depended on an insecure version of libgit2"; # added 2021-12-07
gitinspector = throw "gitinspector has been removed because it doesn't work with python3."; # added 2022-01-12
glib_networking = glib-networking; # added 2018-02-25
gmailieer = lieer; # added 2020-04-19
gmvault = throw "gmvault has been removed because it is unmaintained, mostly broken, and insecure"; # added 2021-03-08
@ -419,6 +425,7 @@ mapAliases ({
kodiGBM = kodi-gbm;
kodiPlain = kodi;
kodiPlainWayland = kodi-wayland;
ino = throw "ino has been removed from nixpkgs, the project is stuck on python2 and upstream has archived the project."; # added 2022-01-12
jellyfin_10_5 = throw "Jellyfin 10.5 is no longer supported and contains a security vulnerability. Please upgrade to a newer version."; # added 2021-04-26
julia_07 = throw "julia_07 has been deprecated in favor of the latest LTS version"; # added 2020-09-15
julia_1 = throw "julia_1 has been deprecated in favor of julia_10 as it was ambiguous"; # added 2021-03-13
@ -565,10 +572,12 @@ mapAliases ({
lua5_1_sockets = lua51Packages.luasocket; # added 2017-05-02
lua5_expat = luaPackages.luaexpat; # added 2017-05-02
lua5_sec = luaPackages.luasec; # added 2017-05-02
lumpy = throw "lumpy has been removed from nixpkgs, as it is stuck on python2."; # added 2022-01-12
lxappearance-gtk3 = throw "lxappearance-gtk3 has been removed. Use lxappearance instead, which now defaults to Gtk3"; # added 2020-06-03
lzma = xz; # moved from top-level 2021-03-14
m3d-linux = m33-linux; # added 2016-08-13
mail-notification = throw "mail-notification has been removed from nixpkgs, as it's unmaintained and has dependencies on old gnome libraries we want to remove"; # added 2021-08-21
mailpile = throw "mailpile was removed from nixpkgs, as it is stuck on python2."; # added 2022-01-12
man_db = man-db; # added 2016-05
manpages = man-pages; # added 2015-12-06
marathon = throw "marathon has been removed from nixpkgs, as it's unmaintained"; # added 2020-08-15
@ -580,8 +589,10 @@ mapAliases ({
mbedtls_1_3 = throw "mbedtls_1_3 is end of life, see https://tls.mbed.org/kb/how-to/upgrade-2.0"; # added 2019-12-08
meme = meme-image-generator; # added 2021-04-21
mess = mame; # added 2019-10-30
metamorphose2 = throw "metamorphose2 has been removed from nixpkgs, as it was stuck on python2."; # added 2022-01-12
mcgrid = throw "mcgrid has been removed from nixpkgs, as it's not compatible with rivet 3"; # added 2020-05-23
mcomix = throw "mcomix has been removed from nixpkgs, as it's unmaintained; try mcomix3 a Python 3 fork"; # added 2019-12-10, modified 2020-11-25
mididings = throw "mididings has been removed from nixpkgs as it doesn't support recent python3 versions and its upstream stopped maintaining it."; # added 2022-01-12
mimms = throw "mimms has been removed from nixpkgs as the upstream project is stuck on python2."; # added 2022-01-01
mirage = throw "mirage has been removed from nixpkgs, as it's unmaintained"; # added 2019-12-10
minergate = throw "minergate has been removed from nixpkgs, because the package is unmaintained and the site has a bad reputation"; # added 2021-08-13
@ -624,6 +635,7 @@ mapAliases ({
nagiosPluginsOfficial = monitoring-plugins;
navit = throw "navit has been removed from nixpkgs, due to being unmaintained"; # added 2021-06-07
ncat = nmap; # added 2016-01-26
neap = throw "neap was removed from nixpkgs, as it relies on python2"; # added 2022-01-12
netcat-openbsd = libressl.nc; # added 2018-04-25
netease-cloud-music = throw "netease-cloud-music has been removed together with deepin"; # added 2020-08-31
networkmanager_fortisslvpn = networkmanager-fortisslvpn; # added 2018-02-25
@ -800,6 +812,9 @@ mapAliases ({
pybind11 = throw "pybind11 was removed because pythonPackages.pybind11 for the appropriate version of Python should be used"; # added 2021-05-14
pybitmessage = throw "pybitmessage was removed from nixpkgs as it is stuck on python2."; # added 2022-01-01
pynagsystemd = throw "pynagsystemd was removed as it was unmaintained and incompatible with recent systemd versions. Instead use its fork check_systemd."; # added 2020-10-24
pyrex = throw "pyrex has been removed from nixpkgs as the project is still stuck on python2."; # added 2022-01-12
pyrex095 = throw "pyrex has been removed from nixpkgs as the project is still stuck on python2."; # added 2022-01-12
pyrex096 = throw "pyrex has been removed from nixpkgs as the project is still stuck on python2."; # added 2022-01-12
pyrit = throw "pyrit has been removed from nixpkgs as the project is still stuck on python2."; # added 2022-01-01
python2nix = throw "python2nix has been removed as it is outdated. Use e.g. nixpkgs-pytools instead."; # added 2021-03-08
python-swiftclient = swiftclient; # added 2021-09-09
@ -843,6 +858,7 @@ mapAliases ({
radare2-cutter = cutter; # added 2021-03-30
redkite = throw "redkite was archived by upstream"; # added 2021-04-12
redshift-wlr = throw "redshift-wlr has been replaced by gammastep"; # added 2021-12-25
renpy = throw "renpy has been removed from nixpkgs, it was unmaintained and the latest packaged version required python2."; # added 2022-01-12
retroArchCores = throw "retroArchCores has been removed. Please use overrides instead, e.g.: `retroarch.override { cores = with libretro; [ ... ]; }`"; # added 2021-11-19
rkt = throw "rkt was archived by upstream"; # added 2020-05-16
rpiboot-unstable = rpiboot; # added 2021-07-30
@ -1205,6 +1221,8 @@ mapAliases ({
Its new location is obs-studio-plugins.wlrobs.
'';
multimc = throw "multimc was removed from nixpkgs; use polymc instead"; # Added 2022-01-08
/* If these are in the scope of all-packages.nix, they cause collisions
between mixed versions of qt. See:
https://github.com/NixOS/nixpkgs/pull/101369 */

View file

@ -2197,8 +2197,6 @@ with pkgs;
bitbucket-server-cli = callPackage ../applications/version-management/git-and-tools/bitbucket-server-cli { };
blink = libsForQt5.callPackage ../applications/networking/instant-messengers/blink { };
blitz = callPackage ../development/libraries/blitz { };
blockbook = callPackage ../servers/blockbook { };
@ -3400,8 +3398,6 @@ with pkgs;
midicsv = callPackage ../tools/audio/midicsv { };
mididings = callPackage ../tools/audio/mididings { };
miniscript = callPackage ../applications/blockchains/miniscript { };
miniserve = callPackage ../tools/misc/miniserve {
@ -5592,8 +5588,6 @@ with pkgs;
geteltorito = callPackage ../tools/misc/geteltorito { };
getmail = callPackage ../tools/networking/getmail { };
getmail6 = callPackage ../tools/networking/getmail6 { };
getopt = callPackage ../tools/misc/getopt { };
@ -5826,8 +5820,6 @@ with pkgs;
github-runner = callPackage ../development/tools/continuous-integration/github-runner { };
gitinspector = callPackage ../applications/version-management/gitinspector { };
gitkraken = callPackage ../applications/version-management/gitkraken { };
gitlab = callPackage ../applications/version-management/gitlab { };
@ -7608,8 +7600,6 @@ with pkgs;
mailsend = callPackage ../tools/networking/mailsend { };
mailpile = callPackage ../applications/networking/mailreaders/mailpile { };
mailutils = callPackage ../tools/networking/mailutils {
sasl = gsasl;
};
@ -7713,8 +7703,6 @@ with pkgs;
mencal = callPackage ../applications/misc/mencal { } ;
metamorphose2 = callPackage ../applications/misc/metamorphose2 { };
metar = callPackage ../applications/misc/metar { };
mfcuk = callPackage ../tools/security/mfcuk { };
@ -8855,6 +8843,8 @@ with pkgs;
poly2tri-c = callPackage ../development/libraries/poly2tri-c { };
polymc = libsForQt5.callPackage ../games/polymc { };
ponysay = callPackage ../tools/misc/ponysay { };
popfile = callPackage ../tools/text/popfile { };
@ -13789,12 +13779,6 @@ with pkgs;
pyradio = callPackage ../applications/audio/pyradio {};
pyrex = pyrex095;
pyrex095 = callPackage ../development/interpreters/pyrex/0.9.5.nix { };
pyrex096 = callPackage ../development/interpreters/pyrex/0.9.6.nix { };
racket = callPackage ../development/interpreters/racket {
# racket 6.11 doesn't build with gcc6 + recent glibc:
# https://github.com/racket/racket/pull/1886
@ -13827,8 +13811,6 @@ with pkgs;
inherit (ocamlPackages) reason;
renpy = callPackage ../development/interpreters/renpy { };
pixie = callPackage ../development/interpreters/pixie { };
dust = callPackage ../development/interpreters/pixie/dust.nix { };
@ -14925,8 +14907,6 @@ with pkgs;
indent = callPackage ../development/tools/misc/indent { };
ino = callPackage ../development/embedded/arduino/ino { };
inotify-tools = callPackage ../development/tools/misc/inotify-tools { };
intel-gpu-tools = callPackage ../development/tools/misc/intel-gpu-tools { };
@ -21083,6 +21063,8 @@ with pkgs;
home-assistant-cli = callPackage ../servers/home-assistant/cli.nix { };
home-assistant-component-tests = recurseIntoAttrs home-assistant.tests.components;
hqplayerd = callPackage ../servers/hqplayerd { };
https-dns-proxy = callPackage ../servers/dns/https-dns-proxy { };
@ -23297,8 +23279,6 @@ with pkgs;
cascadia-code = callPackage ../data/fonts/cascadia-code { };
cde-gtk-theme = callPackage ../data/themes/cdetheme { };
charis-sil = callPackage ../data/fonts/charis-sil { };
cherry = callPackage ../data/fonts/cherry { inherit (xorg) fonttosfnt mkfontdir; };
@ -27407,8 +27387,6 @@ with pkgs;
n8n = callPackage ../applications/networking/n8n {};
neap = callPackage ../applications/misc/neap { };
neomutt = callPackage ../applications/networking/mailreaders/neomutt { };
natron = callPackage ../applications/video/natron { };
@ -28628,8 +28606,6 @@ with pkgs;
curaPlugins = callPackage ../applications/misc/cura/plugins.nix { };
curaByDagoma = callPackage ../applications/misc/curabydagoma { };
peru = callPackage ../applications/version-management/peru {};
petrinizer = haskellPackages.callPackage ../applications/science/logic/petrinizer {};
@ -30273,8 +30249,6 @@ with pkgs;
digikam = libsForQt5.callPackage ../applications/graphics/digikam {};
displaycal = callPackage ../applications/graphics/displaycal {};
drumkv1 = libsForQt5.callPackage ../applications/audio/drumkv1 { };
### GAMES
@ -30854,12 +30828,11 @@ with pkgs;
minecraft = callPackage ../games/minecraft { };
minecraft-server = callPackage ../games/minecraft-server { };
minecraftServers = import ../games/minecraft-servers { inherit callPackage lib javaPackages; };
minecraft-server = minecraftServers.vanilla; # backwards compatibility
moon-buggy = callPackage ../games/moon-buggy {};
multimc = libsForQt5.callPackage ../games/multimc { };
inherit (callPackages ../games/minetest {
inherit (darwin) libiconv;
inherit (darwin.apple_sdk.frameworks) OpenGL OpenAL Carbon Cocoa;
@ -31707,8 +31680,6 @@ with pkgs;
last = callPackage ../applications/science/biology/last { };
lumpy = callPackage ../applications/science/biology/lumpy { };
macse = callPackage ../applications/science/biology/macse { };
MACS2 = callPackage ../applications/science/biology/MACS2 { };

View file

@ -1609,8 +1609,6 @@ in {
cjkwrap = callPackage ../development/python-modules/cjkwrap { };
cjson = callPackage ../development/python-modules/cjson { };
ckcc-protocol = callPackage ../development/python-modules/ckcc-protocol { };
claripy = callPackage ../development/python-modules/claripy { };
@ -2825,9 +2823,7 @@ in {
fints = callPackage ../development/python-modules/fints { };
fiona = callPackage ../development/python-modules/fiona {
gdal = pkgs.gdal_2;
};
fiona = callPackage ../development/python-modules/fiona { };
fipy = callPackage ../development/python-modules/fipy { };
@ -8395,9 +8391,7 @@ in {
inherit (pkgs) libarchive;
};
rasterio = callPackage ../development/python-modules/rasterio {
gdal = pkgs.gdal_2;
};
rasterio = callPackage ../development/python-modules/rasterio { };
ratelim = callPackage ../development/python-modules/ratelim { };
@ -8641,6 +8635,8 @@ in {
rpdb = callPackage ../development/python-modules/rpdb { };
rpi-bad-power = callPackage ../development/python-modules/rpi-bad-power { };
rply = callPackage ../development/python-modules/rply { };
rpm = toPythonModule (pkgs.rpm.override {