Merge master into staging-next
This commit is contained in:
commit
122cae786e
56 changed files with 1268 additions and 1806 deletions
|
@ -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">
|
||||
|
|
|
@ -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
|
||||
file’s 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">
|
||||
|
|
|
@ -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}
|
||||
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
];
|
||||
}
|
||||
|
|
|
@ -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 \
|
||||
|
|
|
@ -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 ];
|
||||
|
||||
};
|
||||
|
||||
}
|
|
@ -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;
|
||||
};
|
||||
}
|
|
@ -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 ];
|
||||
};
|
||||
}
|
|
@ -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;
|
||||
};
|
||||
}
|
|
@ -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 ];
|
||||
};
|
||||
}
|
|
@ -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;
|
||||
|
|
|
@ -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 ];
|
||||
};
|
||||
}
|
|
@ -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:
|
|
@ -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"
|
||||
];
|
||||
};
|
||||
}
|
|
@ -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" ];
|
||||
};
|
||||
|
||||
}
|
|
@ -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";
|
||||
|
|
|
@ -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 ];
|
||||
};
|
||||
}
|
|
@ -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 = [];
|
||||
};
|
||||
}
|
|
@ -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;
|
||||
};
|
||||
}
|
|
@ -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;
|
||||
};
|
||||
}
|
|
@ -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;
|
||||
};
|
||||
}
|
|
@ -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}";
|
||||
}
|
|
@ -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)
|
|
@ -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 ];
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
];
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
}
|
37
pkgs/development/python-modules/rpi-bad-power/default.nix
Normal file
37
pkgs/development/python-modules/rpi-bad-power/default.nix
Normal 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;
|
||||
};
|
||||
}
|
|
@ -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;
|
||||
|
|
|
@ -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"
|
24
pkgs/games/minecraft-servers/default.nix
Normal file
24
pkgs/games/minecraft-servers/default.nix
Normal 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;
|
||||
}
|
||||
)
|
|
@ -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 ];
|
||||
};
|
||||
}
|
155
pkgs/games/minecraft-servers/update.py
Executable file
155
pkgs/games/minecraft-servers/update.py
Executable 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")
|
104
pkgs/games/minecraft-servers/versions.json
Normal file
104
pkgs/games/minecraft-servers/versions.json
Normal 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
|
||||
}
|
||||
}
|
|
@ -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 ];
|
||||
};
|
||||
}
|
92
pkgs/games/polymc/default.nix
Normal file
92
pkgs/games/polymc/default.nix
Normal 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 ];
|
||||
};
|
||||
}
|
|
@ -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 ];
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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"
|
||||
];
|
||||
}
|
||||
|
|
|
@ -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 { };
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -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] == []),
|
||||
|
|
|
@ -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)
|
||||
|
|
69
pkgs/servers/home-assistant/tests.nix
Normal file
69
pkgs/servers/home-assistant/tests.nix
Normal 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)
|
|
@ -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;
|
||||
};
|
||||
}
|
|
@ -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 = [
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
}
|
|
@ -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 */
|
||||
|
|
|
@ -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 { };
|
||||
|
|
|
@ -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 {
|
||||
|
|
Loading…
Reference in a new issue