Merge master into staging-next
This commit is contained in:
commit
d73a492e83
|
@ -1859,6 +1859,12 @@
|
|||
fingerprint = "68B8 0D57 B2E5 4AC3 EC1F 49B0 B37E 0F23 7101 6A4C";
|
||||
}];
|
||||
};
|
||||
collares = {
|
||||
email = "mauricio@collares.org";
|
||||
github = "collares";
|
||||
githubId = 244239;
|
||||
name = "Mauricio Collares";
|
||||
};
|
||||
copumpkin = {
|
||||
email = "pumpkingod@gmail.com";
|
||||
github = "copumpkin";
|
||||
|
|
|
@ -134,6 +134,7 @@ with lib.maintainers; {
|
|||
timokau
|
||||
omasanori
|
||||
raskin
|
||||
collares
|
||||
];
|
||||
scope = "Maintain SageMath and the dependencies that are likely to break it.";
|
||||
};
|
||||
|
|
|
@ -177,6 +177,7 @@
|
|||
./programs/tmux.nix
|
||||
./programs/traceroute.nix
|
||||
./programs/tsm-client.nix
|
||||
./programs/turbovnc.nix
|
||||
./programs/udevil.nix
|
||||
./programs/usbtop.nix
|
||||
./programs/vim.nix
|
||||
|
|
54
nixos/modules/programs/turbovnc.nix
Normal file
54
nixos/modules/programs/turbovnc.nix
Normal file
|
@ -0,0 +1,54 @@
|
|||
# Global configuration for the SSH client.
|
||||
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.programs.turbovnc;
|
||||
in
|
||||
{
|
||||
options = {
|
||||
|
||||
programs.turbovnc = {
|
||||
|
||||
ensureHeadlessSoftwareOpenGL = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Whether to set up NixOS such that TurboVNC's built-in software OpenGL
|
||||
implementation works.
|
||||
|
||||
This will enable <option>hardware.opengl.enable</option> so that OpenGL
|
||||
programs can find Mesa's llvmpipe drivers.
|
||||
|
||||
Setting this option to <code>false</code> does not mean that software
|
||||
OpenGL won't work; it may still work depending on your system
|
||||
configuration.
|
||||
|
||||
This option is also intended to generate warnings if you are using some
|
||||
configuration that's incompatible with using headless software OpenGL
|
||||
in TurboVNC.
|
||||
'';
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
config = mkIf cfg.ensureHeadlessSoftwareOpenGL {
|
||||
|
||||
# TurboVNC has builtin support for Mesa llvmpipe's `swrast`
|
||||
# software rendering to implemnt GLX (OpenGL on Xorg).
|
||||
# However, just building TurboVNC with support for that is not enough
|
||||
# (it only takes care of the X server side part of OpenGL);
|
||||
# the indiviudual applications (e.g. `glxgears`) also need to directly load
|
||||
# the OpenGL libs.
|
||||
# Thus, this creates `/run/opengl-driver` populated by Mesa so that the applications
|
||||
# can find the llvmpipe `swrast.so` software rendering DRI lib via `libglvnd`.
|
||||
# This comment exists to explain why `hardware.` is involved,
|
||||
# even though 100% software rendering is used.
|
||||
hardware.opengl.enable = true;
|
||||
|
||||
};
|
||||
}
|
|
@ -408,6 +408,7 @@ in
|
|||
trickster = handleTest ./trickster.nix {};
|
||||
trilium-server = handleTestOn ["x86_64-linux"] ./trilium-server.nix {};
|
||||
tuptime = handleTest ./tuptime.nix {};
|
||||
turbovnc-headless-server = handleTest ./turbovnc-headless-server.nix {};
|
||||
ucg = handleTest ./ucg.nix {};
|
||||
udisks2 = handleTest ./udisks2.nix {};
|
||||
unbound = handleTest ./unbound.nix {};
|
||||
|
|
171
nixos/tests/turbovnc-headless-server.nix
Normal file
171
nixos/tests/turbovnc-headless-server.nix
Normal file
|
@ -0,0 +1,171 @@
|
|||
import ./make-test-python.nix ({ pkgs, lib, ... }: {
|
||||
name = "turbovnc-headless-server";
|
||||
meta = {
|
||||
maintainers = with lib.maintainers; [ nh2 ];
|
||||
};
|
||||
|
||||
machine = { pkgs, ... }: {
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
glxinfo
|
||||
procps # for `pkill`, `pidof` in the test
|
||||
scrot # for screenshotting Xorg
|
||||
turbovnc
|
||||
];
|
||||
|
||||
programs.turbovnc.ensureHeadlessSoftwareOpenGL = true;
|
||||
|
||||
networking.firewall = {
|
||||
# Reject instead of drop, for failures instead of hangs.
|
||||
rejectPackets = true;
|
||||
allowedTCPPorts = [
|
||||
5900 # VNC :0, for seeing what's going on in the server
|
||||
];
|
||||
};
|
||||
|
||||
# So that we can ssh into the VM, see e.g.
|
||||
# http://blog.patapon.info/nixos-local-vm/#accessing-the-vm-with-ssh
|
||||
services.openssh.enable = true;
|
||||
services.openssh.permitRootLogin = "yes";
|
||||
users.extraUsers.root.password = "";
|
||||
users.mutableUsers = false;
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
def wait_until_terminated_or_succeeds(
|
||||
termination_check_shell_command,
|
||||
success_check_shell_command,
|
||||
get_detail_message_fn,
|
||||
retries=60,
|
||||
retry_sleep=0.5,
|
||||
):
|
||||
def check_success():
|
||||
command_exit_code, _output = machine.execute(success_check_shell_command)
|
||||
return command_exit_code == 0
|
||||
|
||||
for _ in range(retries):
|
||||
exit_check_exit_code, _output = machine.execute(termination_check_shell_command)
|
||||
is_terminated = exit_check_exit_code != 0
|
||||
if is_terminated:
|
||||
if check_success():
|
||||
return
|
||||
else:
|
||||
details = get_detail_message_fn()
|
||||
raise Exception(
|
||||
f"termination check ({termination_check_shell_command}) triggered without command succeeding ({success_check_shell_command}); details: {details}"
|
||||
)
|
||||
else:
|
||||
if check_success():
|
||||
return
|
||||
time.sleep(retry_sleep)
|
||||
|
||||
if not check_success():
|
||||
details = get_detail_message_fn()
|
||||
raise Exception(
|
||||
f"action timed out ({success_check_shell_command}); details: {details}"
|
||||
)
|
||||
|
||||
|
||||
# Below we use the pattern:
|
||||
# (cmd | tee stdout.log) 3>&1 1>&2 2>&3 | tee stderr.log
|
||||
# to capture both stderr and stdout while also teeing them, see:
|
||||
# https://unix.stackexchange.com/questions/6430/how-to-redirect-stderr-and-stdout-to-different-files-and-also-display-in-termina/6431#6431
|
||||
|
||||
|
||||
# Starts headless VNC server, backgrounding it.
|
||||
def start_xvnc():
|
||||
xvnc_command = " ".join(
|
||||
[
|
||||
"Xvnc",
|
||||
":0",
|
||||
"-iglx",
|
||||
"-auth /root/.Xauthority",
|
||||
"-geometry 1240x900",
|
||||
"-depth 24",
|
||||
"-rfbwait 5000",
|
||||
"-deferupdate 1",
|
||||
"-verbose",
|
||||
"-securitytypes none",
|
||||
# We don't enforce localhost listening such that we
|
||||
# can connect from outside the VM using
|
||||
# env QEMU_NET_OPTS=hostfwd=tcp::5900-:5900 $(nix-build nixos/tests/turbovnc-headless-server.nix -A driver)/bin/nixos-test-driver
|
||||
# for testing purposes, and so that we can in the future
|
||||
# add another test case that connects the TurboVNC client.
|
||||
# "-localhost",
|
||||
]
|
||||
)
|
||||
machine.execute(
|
||||
# Note trailing & for backgrounding.
|
||||
f"({xvnc_command} | tee /tmp/Xvnc.stdout) 3>&1 1>&2 2>&3 | tee /tmp/Xvnc.stderr &",
|
||||
)
|
||||
|
||||
|
||||
# Waits until the server log message that tells us that GLX is ready
|
||||
# (requires `-verbose` above), avoiding screenshoting racing below.
|
||||
def wait_until_xvnc_glx_ready():
|
||||
machine.wait_until_succeeds("test -f /tmp/Xvnc.stderr")
|
||||
wait_until_terminated_or_succeeds(
|
||||
termination_check_shell_command="pidof Xvnc",
|
||||
success_check_shell_command="grep 'GLX: Initialized DRISWRAST' /tmp/Xvnc.stderr",
|
||||
get_detail_message_fn=lambda: "Contents of /tmp/Xvnc.stderr:\n"
|
||||
+ machine.succeed("cat /tmp/Xvnc.stderr"),
|
||||
)
|
||||
|
||||
|
||||
# Checks that we detect glxgears failing when
|
||||
# `LIBGL_DRIVERS_PATH=/nonexistent` is set
|
||||
# (in which case software rendering should not work).
|
||||
def test_glxgears_failing_with_bad_driver_path():
|
||||
machine.execute(
|
||||
# Note trailing & for backgrounding.
|
||||
"(env DISPLAY=:0 LIBGL_DRIVERS_PATH=/nonexistent glxgears -info | tee /tmp/glxgears-should-fail.stdout) 3>&1 1>&2 2>&3 | tee /tmp/glxgears-should-fail.stderr &"
|
||||
)
|
||||
machine.wait_until_succeeds("test -f /tmp/glxgears-should-fail.stderr")
|
||||
wait_until_terminated_or_succeeds(
|
||||
termination_check_shell_command="pidof glxgears",
|
||||
success_check_shell_command="grep 'libGL error: failed to load driver: swrast' /tmp/glxgears-should-fail.stderr",
|
||||
get_detail_message_fn=lambda: "Contents of /tmp/glxgears-should-fail.stderr:\n"
|
||||
+ machine.succeed("cat /tmp/glxgears-should-fail.stderr"),
|
||||
)
|
||||
machine.wait_until_fails("pidof glxgears")
|
||||
|
||||
|
||||
# Starts glxgears, backgrounding it. Waits until it prints the `GL_RENDERER`.
|
||||
# Does not quit glxgears.
|
||||
def test_glxgears_prints_renderer():
|
||||
machine.execute(
|
||||
# Note trailing & for backgrounding.
|
||||
"(env DISPLAY=:0 glxgears -info | tee /tmp/glxgears.stdout) 3>&1 1>&2 2>&3 | tee /tmp/glxgears.stderr &"
|
||||
)
|
||||
machine.wait_until_succeeds("test -f /tmp/glxgears.stderr")
|
||||
wait_until_terminated_or_succeeds(
|
||||
termination_check_shell_command="pidof glxgears",
|
||||
success_check_shell_command="grep 'GL_RENDERER' /tmp/glxgears.stdout",
|
||||
get_detail_message_fn=lambda: "Contents of /tmp/glxgears.stderr:\n"
|
||||
+ machine.succeed("cat /tmp/glxgears.stderr"),
|
||||
)
|
||||
|
||||
|
||||
with subtest("Start Xvnc"):
|
||||
start_xvnc()
|
||||
wait_until_xvnc_glx_ready()
|
||||
|
||||
with subtest("Ensure bad driver path makes glxgears fail"):
|
||||
test_glxgears_failing_with_bad_driver_path()
|
||||
|
||||
with subtest("Run 3D application (glxgears)"):
|
||||
test_glxgears_prints_renderer()
|
||||
|
||||
# Take screenshot; should display the glxgears.
|
||||
machine.succeed("scrot --display :0 /tmp/glxgears.png")
|
||||
|
||||
# Copy files down.
|
||||
machine.copy_from_vm("/tmp/glxgears.png")
|
||||
machine.copy_from_vm("/tmp/glxgears.stdout")
|
||||
machine.copy_from_vm("/tmp/glxgears-should-fail.stdout")
|
||||
machine.copy_from_vm("/tmp/glxgears-should-fail.stderr")
|
||||
machine.copy_from_vm("/tmp/Xvnc.stdout")
|
||||
machine.copy_from_vm("/tmp/Xvnc.stderr")
|
||||
'';
|
||||
|
||||
})
|
|
@ -130,6 +130,8 @@ mkDerivation rec {
|
|||
|
||||
postFixup = ''
|
||||
mv $out/share/doc $out
|
||||
ln -s $out/bin/FreeCAD $out/bin/freecad
|
||||
ln -s $out/bin/FreeCADCmd $out/bin/freecadcmd
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
{ stdenv
|
||||
, lib
|
||||
, fetchurl
|
||||
, fetchpatch
|
||||
, substituteAll
|
||||
, autoreconfHook
|
||||
, pkg-config
|
||||
|
@ -72,6 +73,12 @@ in stdenv.mkDerivation rec {
|
|||
# Use absolute paths instead of relying on PATH
|
||||
# to make sure plug-ins are loaded by the correct interpreter.
|
||||
./hardcode-plugin-interpreters.patch
|
||||
|
||||
# Fix crash without dot.
|
||||
(fetchpatch {
|
||||
url = "https://gitlab.gnome.org/GNOME/gimp/-/commit/f83fd22c4b8701ffc4ce14383e5e22756a4bce04.patch";
|
||||
sha256 = "POuvBhOSStO7hBGp4HgNx5F9pElFRoqN3W+i3u4zOnk=";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
@ -2,17 +2,17 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "waypoint";
|
||||
version = "0.2.3";
|
||||
version = "0.2.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "hashicorp";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-FTBBDKFUoyC+Xdm3+2QWXK57fLwitYrFP89OvAyHHVY=";
|
||||
sha256 = "sha256-6sV2e/m0qVSRWgdvVZ9VxEL/J57nTcTClxHF5X8/8PQ=";
|
||||
};
|
||||
|
||||
deleteVendor = true;
|
||||
vendorSha256 = "sha256-ihelAumTRgLALevJdVq3V3SISitiRPCQZUh2h5/eczA=";
|
||||
vendorSha256 = "sha256-NPE3YHulqllWDGrxQgPmy/KKE7xFPOUorLQNIU8cP50=";
|
||||
|
||||
nativeBuildInputs = [ go-bindata ];
|
||||
|
||||
|
|
|
@ -17,11 +17,11 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "filezilla";
|
||||
version = "3.51.0";
|
||||
version = "3.52.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://download.filezilla-project.org/client/FileZilla_${version}_src.tar.bz2";
|
||||
sha256 = "0k3c7gm16snc6dr9a3xgq14ajyqj4hxcrd6hk6jk5fsi9x51rgl2";
|
||||
sha256 = "sha256-wHiIFpKKJuiGPH3CaxWGROcb7ylAbffS7aN9xIENbN8=";
|
||||
};
|
||||
|
||||
# https://www.linuxquestions.org/questions/slackware-14/trouble-building-filezilla-3-47-2-1-current-4175671182/#post6099769
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
{
|
||||
"version": "13.8.5",
|
||||
"repo_hash": "0dpyqynd6rscg07s58y0cjn7vfj2h21h51ja0fm6ll76wb02sbm6",
|
||||
"version": "13.8.6",
|
||||
"repo_hash": "0izzvr4bw86nbrqkf44gkcf63ham10cw4vp5yk0ylgm7w0kimv8v",
|
||||
"owner": "gitlab-org",
|
||||
"repo": "gitlab",
|
||||
"rev": "v13.8.5-ee",
|
||||
"rev": "v13.8.6-ee",
|
||||
"passthru": {
|
||||
"GITALY_SERVER_VERSION": "13.8.5",
|
||||
"GITALY_SERVER_VERSION": "13.8.6",
|
||||
"GITLAB_PAGES_VERSION": "1.34.0",
|
||||
"GITLAB_SHELL_VERSION": "13.15.1",
|
||||
"GITLAB_WORKHORSE_VERSION": "8.59.2"
|
||||
|
|
|
@ -33,14 +33,14 @@ let
|
|||
};
|
||||
};
|
||||
in buildGoModule rec {
|
||||
version = "13.8.5";
|
||||
version = "13.8.6";
|
||||
pname = "gitaly";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "gitlab-org";
|
||||
repo = "gitaly";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-hKIjKltPPmz50Ru7elpHdeoyGAqgp+txR3fKleqY7hM=";
|
||||
sha256 = "sha256-6ocP4SMafvLI2jfvcB8jk1AemAI/TiBQ1iaVxK7I54A=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-oVw6vXI3CyOn4l02PkYx3HVpZfzQPi3yBuf9tRvoWoM=";
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
{ writeShellScript
|
||||
, nix
|
||||
, curl
|
||||
, gzip
|
||||
, xmlstarlet
|
||||
, common-updater-scripts
|
||||
}:
|
||||
|
||||
{ attrPath }:
|
||||
|
||||
let
|
||||
url = "http://mirrors.kodi.tv/addons/matrix/addons.xml.gz";
|
||||
updateScript = writeShellScript "update.sh" ''
|
||||
set -ex
|
||||
|
||||
attrPath=$1
|
||||
namespace=$(${nix}/bin/nix-instantiate $systemArg --eval -E "with import ./. {}; $attrPath.namespace" | tr -d '"')
|
||||
version=$(${curl}/bin/curl -s -L ${url} | ${gzip}/bin/gunzip -c | ${xmlstarlet}/bin/xml select -T -t -m "//addons/addon[@id='$namespace']" -v @version)
|
||||
|
||||
${common-updater-scripts}/bin/update-source-version "$attrPath" "$version"
|
||||
'';
|
||||
in
|
||||
[ updateScript attrPath ]
|
21
pkgs/applications/video/kodi-packages/certifi/default.nix
Normal file
21
pkgs/applications/video/kodi-packages/certifi/default.nix
Normal file
|
@ -0,0 +1,21 @@
|
|||
{ lib, buildKodiAddon, fetchzip, addonUpdateScript }:
|
||||
buildKodiAddon rec {
|
||||
pname = "certifi";
|
||||
namespace = "script.module.certifi";
|
||||
version = "2019.11.28+matrix.1";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
|
||||
sha256 = "0vsd68izv1ix0hb1gm74qq3zff0sxmhfhjyh7y9005zzp2gpi62v";
|
||||
};
|
||||
|
||||
passthru.updateScript = addonUpdateScript {
|
||||
attrPath = "kodi.packages.certifi";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://certifi.io";
|
||||
description = "Python package for providing Mozilla's CA Bundle";
|
||||
license = licenses.mpl20;
|
||||
};
|
||||
}
|
21
pkgs/applications/video/kodi-packages/chardet/default.nix
Normal file
21
pkgs/applications/video/kodi-packages/chardet/default.nix
Normal file
|
@ -0,0 +1,21 @@
|
|||
{ lib, buildKodiAddon, fetchzip, addonUpdateScript }:
|
||||
buildKodiAddon rec {
|
||||
pname = "chardet";
|
||||
namespace = "script.module.chardet";
|
||||
version = "3.0.4+matrix.3";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
|
||||
sha256 = "05928dj4fsj2zg8ajdial3sdf8izddq64sr0al3zy1gqw91jp80f";
|
||||
};
|
||||
|
||||
passthru.updateScript = addonUpdateScript {
|
||||
attrPath = "kodi.packages.chardet";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/Freso/script.module.chardet";
|
||||
description = "Universal encoding detector";
|
||||
license = licenses.lgpl2Only;
|
||||
};
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
{ lib, buildKodiAddon, fetchFromGitHub, controller }:
|
||||
buildKodiAddon rec {
|
||||
pname = "game-controller-${controller}";
|
||||
namespace = "game.controller.${controller}";
|
||||
version = "1.0.3";
|
||||
|
||||
sourceDir = "addons/" + namespace;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kodi-game";
|
||||
repo = "kodi-game-controllers";
|
||||
rev = "01acb5b6e8b85392b3cb298b034aadb1b24ccf18";
|
||||
sha256 = "0sbc0w0fwbp7rbmbgb6a1kglhnn5g85hijcbbvf5x6jdq9v3f1qb";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Add support for different gaming controllers.";
|
||||
platforms = platforms.all;
|
||||
maintainers = with maintainers; [ edwtjo ];
|
||||
};
|
||||
}
|
21
pkgs/applications/video/kodi-packages/idna/default.nix
Normal file
21
pkgs/applications/video/kodi-packages/idna/default.nix
Normal file
|
@ -0,0 +1,21 @@
|
|||
{ lib, buildKodiAddon, fetchzip, addonUpdateScript }:
|
||||
buildKodiAddon rec {
|
||||
pname = "idna";
|
||||
namespace = "script.module.idna";
|
||||
version = "2.8.1+matrix.1";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
|
||||
sha256 = "02s75fhfmbs3a38wvxba51aj3lv5bidshjdkl6yjfji6waxpr9xh";
|
||||
};
|
||||
|
||||
passthru.updateScript = addonUpdateScript {
|
||||
attrPath = "kodi.packages.idna";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/Freso/script.module.idna";
|
||||
description = "Internationalized Domain Names for Python";
|
||||
license = licenses.bsd3;
|
||||
};
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
{ stdenv, lib, rel, addonDir, buildKodiBinaryAddon, fetchFromGitHub, expat, glib, nspr, nss }:
|
||||
buildKodiBinaryAddon rec {
|
||||
pname = "inputstream-adaptive";
|
||||
namespace = "inputstream.adaptive";
|
||||
version = "2.6.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "peak3d";
|
||||
repo = "inputstream.adaptive";
|
||||
rev = "${version}-${rel}";
|
||||
sha256 = "1pwqmbr78wp12jn6rwv63npdfc456adwz0amlxf6gvgg43li6p7s";
|
||||
};
|
||||
|
||||
extraBuildInputs = [ expat ];
|
||||
|
||||
extraRuntimeDependencies = [ glib nspr nss stdenv.cc.cc.lib ];
|
||||
|
||||
extraInstallPhase = let n = namespace; in ''
|
||||
ln -s $out/lib/addons/${n}/libssd_wv.so $out/${addonDir}/${n}/libssd_wv.so
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/peak3d/inputstream.adaptive";
|
||||
description = "Kodi inputstream addon for several manifest types";
|
||||
platforms = platforms.all;
|
||||
maintainers = with maintainers; [ sephalon ];
|
||||
};
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
{ lib, buildKodiAddon, fetchzip, addonUpdateScript }:
|
||||
buildKodiAddon rec {
|
||||
pname = "inputstreamhelper";
|
||||
namespace = "script.module.inputstreamhelper";
|
||||
version = "0.5.2+matrix.1";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
|
||||
sha256 = "18lkksljfa57w69yklbldf7dgyykrm84pd10mdjdqdm88fdiiijk";
|
||||
};
|
||||
|
||||
passthru.updateScript = addonUpdateScript {
|
||||
attrPath = "kodi.packages.inputstreamhelper";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/emilsvennesson/script.module.inputstreamhelper";
|
||||
description = "A simple Kodi module that makes life easier for add-on developers relying on InputStream based add-ons and DRM playback";
|
||||
license = licenses.mit;
|
||||
};
|
||||
}
|
21
pkgs/applications/video/kodi-packages/joystick/default.nix
Normal file
21
pkgs/applications/video/kodi-packages/joystick/default.nix
Normal file
|
@ -0,0 +1,21 @@
|
|||
{ lib, rel, buildKodiBinaryAddon, fetchFromGitHub, tinyxml, udev }:
|
||||
buildKodiBinaryAddon rec {
|
||||
pname = namespace;
|
||||
namespace = "peripheral.joystick";
|
||||
version = "1.7.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "xbmc";
|
||||
repo = namespace;
|
||||
rev = "${version}-${rel}";
|
||||
sha256 = "1dhj4afr9kj938xx70fq5r409mz6lbw4n581ljvdjj9lq7akc914";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Binary addon for raw joystick input.";
|
||||
platforms = platforms.all;
|
||||
maintainers = with maintainers; [ edwtjo ];
|
||||
};
|
||||
|
||||
extraBuildInputs = [ tinyxml udev ];
|
||||
}
|
|
@ -0,0 +1,15 @@
|
|||
{ stdenv, fetchFromGitHub, cmake, kodi, libcec_platform, tinyxml }:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "kodi-platform";
|
||||
version = "17.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "xbmc";
|
||||
repo = pname;
|
||||
rev = "c8188d82678fec6b784597db69a68e74ff4986b5";
|
||||
sha256 = "1r3gs3c6zczmm66qcxh9mr306clwb3p7ykzb70r3jv5jqggiz199";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
buildInputs = [ kodi libcec_platform tinyxml ];
|
||||
}
|
21
pkgs/applications/video/kodi-packages/myconnpy/default.nix
Normal file
21
pkgs/applications/video/kodi-packages/myconnpy/default.nix
Normal file
|
@ -0,0 +1,21 @@
|
|||
{ lib, buildKodiAddon, fetchzip, addonUpdateScript }:
|
||||
buildKodiAddon rec {
|
||||
pname = "myconnpy";
|
||||
namespace = "script.module.myconnpy";
|
||||
version = "8.0.18+matrix.1";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
|
||||
sha256 = "1cx3qdzw9lkkmbyvyrmc2i193is20fihn2sfl7kmv43f708vam0k";
|
||||
};
|
||||
|
||||
passthru.updateScript = addonUpdateScript {
|
||||
attrPath = "kodi.packages.myconnpy";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "http://dev.mysql.com/doc/connector-python/en/index.html";
|
||||
description = "MySQL Connector/Python";
|
||||
license = licenses.gpl2Only;
|
||||
};
|
||||
}
|
26
pkgs/applications/video/kodi-packages/netflix/default.nix
Normal file
26
pkgs/applications/video/kodi-packages/netflix/default.nix
Normal file
|
@ -0,0 +1,26 @@
|
|||
{ lib, buildKodiAddon, fetchFromGitHub, signals, inputstreamhelper, requests, myconnpy }:
|
||||
buildKodiAddon rec {
|
||||
pname = "netflix";
|
||||
namespace = "plugin.video.netflix";
|
||||
version = "1.14.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "CastagnaIT";
|
||||
repo = namespace;
|
||||
rev = "v${version}";
|
||||
sha256 = "0vv3234gg4brp0gvrsl4vdskmpfbyk4z7cjmmj31zn4m8j33japn";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
signals
|
||||
inputstreamhelper
|
||||
requests
|
||||
myconnpy
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/CastagnaIT/plugin.video.netflix";
|
||||
description = "Netflix VOD Services Add-on";
|
||||
license = licenses.mit;
|
||||
};
|
||||
}
|
21
pkgs/applications/video/kodi-packages/osmc-skin/default.nix
Normal file
21
pkgs/applications/video/kodi-packages/osmc-skin/default.nix
Normal file
|
@ -0,0 +1,21 @@
|
|||
{ lib, buildKodiAddon, fetchFromGitHub }:
|
||||
buildKodiAddon rec {
|
||||
pname = "osmc-skin";
|
||||
namespace = "skin.osmc";
|
||||
version = "18.0.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "osmc";
|
||||
repo = namespace;
|
||||
rev = "40a6c318641e2cbeac58fb0e7dde9c2beac737a0";
|
||||
sha256 = "1l7hyfj5zvjxjdm94y325bmy1naak455b9l8952sb0gllzrcwj6s";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/osmc/skin.osmc";
|
||||
description = "The default skin for OSMC";
|
||||
platforms = platforms.all;
|
||||
maintainers = with maintainers; [ worldofpeace ];
|
||||
license = licenses.cc-by-nc-sa-30;
|
||||
};
|
||||
}
|
19
pkgs/applications/video/kodi-packages/pdfreader/default.nix
Normal file
19
pkgs/applications/video/kodi-packages/pdfreader/default.nix
Normal file
|
@ -0,0 +1,19 @@
|
|||
{ lib, buildKodiAddon, fetchFromGitHub }:
|
||||
buildKodiAddon rec {
|
||||
pname = "pdfreader";
|
||||
namespace = "plugin.image.pdf";
|
||||
version = "2.0.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "i96751414";
|
||||
repo = "plugin.image.pdfreader";
|
||||
rev = "v${version}";
|
||||
sha256 = "0nkqhlm1gyagq6xpdgqvd5qxyr2ngpml9smdmzfabc8b972mwjml";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://forum.kodi.tv/showthread.php?tid=187421";
|
||||
description = "A comic book reader";
|
||||
maintainers = with maintainers; [ edwtjo ];
|
||||
};
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
{ lib, rel, buildKodiBinaryAddon, fetchFromGitHub, jsoncpp, libhdhomerun }:
|
||||
buildKodiBinaryAddon rec {
|
||||
pname = "pvr-hdhomerun";
|
||||
namespace = "pvr.hdhomerun";
|
||||
version = "7.1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kodi-pvr";
|
||||
repo = "pvr.hdhomerun";
|
||||
rev = "${version}-${rel}";
|
||||
sha256 = "0gbwjssnd319csq2kwlyjj1rskg19m1dxac5dl2dymvx5hn3zrgm";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/kodi-pvr/pvr.hdhomerun";
|
||||
description = "Kodi's HDHomeRun PVR client addon";
|
||||
platforms = platforms.all;
|
||||
maintainers = with maintainers; [ titanous ];
|
||||
};
|
||||
|
||||
extraBuildInputs = [ jsoncpp libhdhomerun ];
|
||||
}
|
21
pkgs/applications/video/kodi-packages/pvr-hts/default.nix
Normal file
21
pkgs/applications/video/kodi-packages/pvr-hts/default.nix
Normal file
|
@ -0,0 +1,21 @@
|
|||
{ lib, rel, buildKodiBinaryAddon, fetchFromGitHub }:
|
||||
buildKodiBinaryAddon rec {
|
||||
pname = "pvr-hts";
|
||||
namespace = "pvr.hts";
|
||||
version = "8.2.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kodi-pvr";
|
||||
repo = "pvr.hts";
|
||||
rev = "${version}-${rel}";
|
||||
sha256 = "0jnn9gfjl556acqjf92wzzn371gxymhbbi665nqgg2gjcan0a49q";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/kodi-pvr/pvr.hts";
|
||||
description = "Kodi's Tvheadend HTSP client addon";
|
||||
platforms = platforms.all;
|
||||
maintainers = with maintainers; [ cpages ];
|
||||
};
|
||||
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
{ lib, rel, buildKodiBinaryAddon, fetchFromGitHub, zlib, pugixml }:
|
||||
buildKodiBinaryAddon rec {
|
||||
pname = "pvr-iptvsimple";
|
||||
namespace = "pvr.iptvsimple";
|
||||
version = "7.4.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kodi-pvr";
|
||||
repo = "pvr.iptvsimple";
|
||||
rev = "${version}-${rel}";
|
||||
sha256 = "062i922qi0izkvn7v47yhyy2cf3fa7xc3k95b1gm9abfdwkk8ywr";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/kodi-pvr/pvr.iptvsimple";
|
||||
description = "Kodi's IPTV Simple client addon";
|
||||
platforms = platforms.all;
|
||||
license = licenses.gpl2Plus;
|
||||
};
|
||||
|
||||
extraBuildInputs = [ zlib pugixml ];
|
||||
}
|
28
pkgs/applications/video/kodi-packages/requests/default.nix
Normal file
28
pkgs/applications/video/kodi-packages/requests/default.nix
Normal file
|
@ -0,0 +1,28 @@
|
|||
{ lib, buildKodiAddon, fetchzip, addonUpdateScript, certifi, chardet, idna, urllib3 }:
|
||||
buildKodiAddon rec {
|
||||
pname = "requests";
|
||||
namespace = "script.module.requests";
|
||||
version = "2.22.0+matrix.1";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
|
||||
sha256 = "09576galkyzhw8fhy2h4aablm5rm2v08g0mdmg9nn55dlxhkkljq";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
certifi
|
||||
chardet
|
||||
idna
|
||||
urllib3
|
||||
];
|
||||
|
||||
passthru.updateScript = addonUpdateScript {
|
||||
attrPath = "kodi.packages.requests";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "http://python-requests.org";
|
||||
description = "Python HTTP for Humans";
|
||||
license = licenses.asl20;
|
||||
};
|
||||
}
|
21
pkgs/applications/video/kodi-packages/signals/default.nix
Normal file
21
pkgs/applications/video/kodi-packages/signals/default.nix
Normal file
|
@ -0,0 +1,21 @@
|
|||
{ lib, buildKodiAddon, fetchzip, addonUpdateScript }:
|
||||
buildKodiAddon rec {
|
||||
pname = "signals";
|
||||
namespace = "script.module.addon.signals";
|
||||
version = "0.0.6+matrix.1";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
|
||||
sha256 = "1qcjbakch8hvx02wc01zv014nmzgn6ahc4n2bj5mzr114ppd3hjs";
|
||||
};
|
||||
|
||||
passthru.updateScript = addonUpdateScript {
|
||||
attrPath = "kodi.packages.signals";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/ruuk/script.module.addon.signals";
|
||||
description = "Provides signal/slot mechanism for inter-addon communication";
|
||||
license = licenses.lgpl21Only;
|
||||
};
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
{ lib, buildKodiBinaryAddon, fetchFromGitHub, libusb1 }:
|
||||
buildKodiBinaryAddon rec {
|
||||
pname = namespace;
|
||||
namespace = "peripheral.steamcontroller";
|
||||
version = "0.11.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kodi-game";
|
||||
repo = namespace;
|
||||
rev = "f68140ca44f163a03d3a625d1f2005a6edef96cb";
|
||||
sha256 = "09lm8i119xlsxxk0c64rnp8iw0crr90v7m8iwi9r31qdmxrdxpmg";
|
||||
};
|
||||
|
||||
extraBuildInputs = [ libusb1 ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Binary addon for steam controller.";
|
||||
platforms = platforms.all;
|
||||
maintainers = with maintainers; [ edwtjo ];
|
||||
};
|
||||
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
{ lib, buildKodiAddon, fetchFromGitHub, steam }:
|
||||
buildKodiAddon {
|
||||
pname = "steam-launcher";
|
||||
namespace = "script.steam.launcher";
|
||||
version = "3.5.1";
|
||||
|
||||
src = fetchFromGitHub rec {
|
||||
owner = "teeedubb";
|
||||
repo = owner + "-xbmc-repo";
|
||||
rev = "8260bf9b464846a1f1965da495d2f2b7ceb81d55";
|
||||
sha256 = "1fj3ry5s44nf1jzxk4bmnpa4b9p23nrpmpj2a4i6xf94h7jl7p5k";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ steam ];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://forum.kodi.tv/showthread.php?tid=157499";
|
||||
description = "Launch Steam in Big Picture Mode from Kodi";
|
||||
longDescription = ''
|
||||
This add-on will close/minimise Kodi, launch Steam in Big
|
||||
Picture Mode and when Steam BPM is exited (either by quitting
|
||||
Steam or returning to the desktop) Kodi will
|
||||
restart/maximise. Running pre/post Steam scripts can be
|
||||
configured via the addon.
|
||||
'';
|
||||
maintainers = with maintainers; [ edwtjo ];
|
||||
};
|
||||
}
|
26
pkgs/applications/video/kodi-packages/svtplay/default.nix
Normal file
26
pkgs/applications/video/kodi-packages/svtplay/default.nix
Normal file
|
@ -0,0 +1,26 @@
|
|||
{ lib, buildKodiAddon, fetchFromGitHub }:
|
||||
buildKodiAddon rec {
|
||||
pname = "svtplay";
|
||||
namespace = "plugin.video.svtplay";
|
||||
version = "5.1.12";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "nilzen";
|
||||
repo = "xbmc-" + pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "04j1nhm7mh9chs995lz6bv1vsq5xzk7a7c0lmk4bnfv8jrfpj0w6";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://forum.kodi.tv/showthread.php?tid=67110";
|
||||
description = "Watch content from SVT Play";
|
||||
longDescription = ''
|
||||
With this addon you can stream content from SVT Play
|
||||
(svtplay.se). The plugin fetches the video URL from the SVT
|
||||
Play website and feeds it to the Kodi video player. HLS (m3u8)
|
||||
is the preferred video format by the plugin.
|
||||
'';
|
||||
platforms = platforms.all;
|
||||
maintainers = with maintainers; [ edwtjo ];
|
||||
};
|
||||
}
|
21
pkgs/applications/video/kodi-packages/urllib3/default.nix
Normal file
21
pkgs/applications/video/kodi-packages/urllib3/default.nix
Normal file
|
@ -0,0 +1,21 @@
|
|||
{ lib, buildKodiAddon, fetchzip, addonUpdateScript }:
|
||||
buildKodiAddon rec {
|
||||
pname = "urllib3";
|
||||
namespace = "script.module.urllib3";
|
||||
version = "1.25.8+matrix.1";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
|
||||
sha256 = "080yq8ns0sag6rmdag1hjwi0whcmp35wzqjp3by92m81cpszs75q";
|
||||
};
|
||||
|
||||
passthru.updateScript = addonUpdateScript {
|
||||
attrPath = "kodi.packages.urllib3";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://urllib3.readthedocs.io/en/latest/";
|
||||
description = "HTTP library with thread-safe connection pooling, file post, and more";
|
||||
license = licenses.mit;
|
||||
};
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
{ lib, rel, buildKodiBinaryAddon, fetchFromGitHub, libarchive, lzma, bzip2, zlib, lz4, lzo, openssl }:
|
||||
buildKodiBinaryAddon rec {
|
||||
pname = namespace;
|
||||
namespace = "vfs.libarchive";
|
||||
version = "2.0.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "xbmc";
|
||||
repo = namespace;
|
||||
rev = "${version}-${rel}";
|
||||
sha256 = "1q62p1i6rvqk2zv6f1cpffkh95lgclys2xl4dwyhj3acmqdxd9i5";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "LibArchive Virtual Filesystem add-on for Kodi";
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = platforms.all;
|
||||
maintainers = with maintainers; [ minijackson ];
|
||||
};
|
||||
|
||||
extraBuildInputs = [ libarchive lzma bzip2 zlib lz4 lzo openssl ];
|
||||
}
|
22
pkgs/applications/video/kodi-packages/vfs-sftp/default.nix
Normal file
22
pkgs/applications/video/kodi-packages/vfs-sftp/default.nix
Normal file
|
@ -0,0 +1,22 @@
|
|||
{ lib, rel, buildKodiBinaryAddon, fetchFromGitHub, openssl, libssh, zlib }:
|
||||
buildKodiBinaryAddon rec {
|
||||
pname = namespace;
|
||||
namespace = "vfs.sftp";
|
||||
version = "2.0.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "xbmc";
|
||||
repo = namespace;
|
||||
rev = "${version}-${rel}";
|
||||
sha256 = "06w74sh8yagrrp7a7rjaz3xrh1j3wdqald9c4b72c33gpk5997dk";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "SFTP Virtual Filesystem add-on for Kodi";
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = platforms.all;
|
||||
maintainers = with maintainers; [ minijackson ];
|
||||
};
|
||||
|
||||
extraBuildInputs = [ openssl libssh zlib ];
|
||||
}
|
21
pkgs/applications/video/kodi/build-kodi-addon.nix
Normal file
21
pkgs/applications/video/kodi/build-kodi-addon.nix
Normal file
|
@ -0,0 +1,21 @@
|
|||
{ stdenv, toKodiAddon, addonDir }:
|
||||
{ name ? "${attrs.pname}-${attrs.version}"
|
||||
, namespace
|
||||
, sourceDir ? ""
|
||||
, ... } @ attrs:
|
||||
toKodiAddon (stdenv.mkDerivation ({
|
||||
name = "kodi-" + name;
|
||||
|
||||
dontStrip = true;
|
||||
|
||||
extraRuntimeDependencies = [ ];
|
||||
|
||||
installPhase = ''
|
||||
cd $src/$sourceDir
|
||||
d=$out${addonDir}/${namespace}
|
||||
mkdir -p $d
|
||||
sauce="."
|
||||
[ -d ${namespace} ] && sauce=${namespace}
|
||||
cp -R "$sauce/"* $d
|
||||
'';
|
||||
} // attrs))
|
31
pkgs/applications/video/kodi/build-kodi-binary-addon.nix
Normal file
31
pkgs/applications/video/kodi/build-kodi-binary-addon.nix
Normal file
|
@ -0,0 +1,31 @@
|
|||
{ stdenv, toKodiAddon, addonDir, cmake, kodi, kodi-platform, libcec_platform }:
|
||||
{ name ? "${attrs.pname}-${attrs.version}"
|
||||
, namespace
|
||||
, version
|
||||
, extraBuildInputs ? []
|
||||
, extraRuntimeDependencies ? []
|
||||
, extraInstallPhase ? "", ... } @ attrs:
|
||||
toKodiAddon (stdenv.mkDerivation ({
|
||||
name = "kodi-" + name;
|
||||
|
||||
dontStrip = true;
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
buildInputs = [ kodi kodi-platform libcec_platform ] ++ extraBuildInputs;
|
||||
|
||||
inherit extraRuntimeDependencies;
|
||||
|
||||
# disables check ensuring install prefix is that of kodi
|
||||
cmakeFlags = [
|
||||
"-DOVERRIDE_PATHS=1"
|
||||
];
|
||||
|
||||
# kodi checks for addon .so libs existance in the addon folder (share/...)
|
||||
# and the non-wrapped kodi lib/... folder before even trying to dlopen
|
||||
# them. Symlinking .so, as setting LD_LIBRARY_PATH is of no use
|
||||
installPhase = let n = namespace; in ''
|
||||
make install
|
||||
ln -s $out/lib/addons/${n}/${n}.so.${version} $out${addonDir}/${n}/${n}.so.${version}
|
||||
${extraInstallPhase}
|
||||
'';
|
||||
} // attrs))
|
|
@ -1,7 +1,7 @@
|
|||
{ callPackage, ... } @ args:
|
||||
let
|
||||
unwrapped = callPackage ./unwrapped.nix (removeAttrs args [ "callPackage" ]);
|
||||
kodiPackages = callPackage ./packages.nix { kodi = unwrapped; };
|
||||
kodiPackages = callPackage ../../../top-level/kodi-packages.nix { kodi = unwrapped; };
|
||||
in
|
||||
unwrapped.overrideAttrs (oldAttrs: {
|
||||
passthru = oldAttrs.passthru // {
|
||||
|
|
|
@ -1,560 +0,0 @@
|
|||
{ lib, stdenv, callPackage, fetchFromGitHub
|
||||
, cmake, kodi, libcec_platform, tinyxml, pugixml
|
||||
, steam, udev, libusb1, jsoncpp, libhdhomerun, zlib
|
||||
, python3Packages, expat, glib, nspr, nss, openssl
|
||||
, libssh, libarchive, lzma, bzip2, lz4, lzo }:
|
||||
|
||||
with lib;
|
||||
|
||||
let self = rec {
|
||||
|
||||
addonDir = "/share/kodi/addons";
|
||||
rel = "Matrix";
|
||||
|
||||
inherit kodi;
|
||||
|
||||
# Convert derivation to a kodi module. Stolen from ../../../top-level/python-packages.nix
|
||||
toKodiAddon = drv: drv.overrideAttrs(oldAttrs: {
|
||||
# Use passthru in order to prevent rebuilds when possible.
|
||||
passthru = (oldAttrs.passthru or {})// {
|
||||
kodiAddonFor = kodi;
|
||||
requiredKodiAddons = requiredKodiAddons drv.propagatedBuildInputs;
|
||||
};
|
||||
});
|
||||
|
||||
# Check whether a derivation provides a Kodi addon.
|
||||
hasKodiAddon = drv: drv ? kodiAddonFor && drv.kodiAddonFor == kodi;
|
||||
|
||||
# Get list of required Kodi addons given a list of derivations.
|
||||
requiredKodiAddons = drvs: let
|
||||
modules = filter hasKodiAddon drvs;
|
||||
in unique (modules ++ concatLists (catAttrs "requiredKodiAddons" modules));
|
||||
|
||||
kodi-platform = stdenv.mkDerivation rec {
|
||||
project = "kodi-platform";
|
||||
version = "17.1";
|
||||
name = "${project}-${version}";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "xbmc";
|
||||
repo = project;
|
||||
rev = "c8188d82678fec6b784597db69a68e74ff4986b5";
|
||||
sha256 = "1r3gs3c6zczmm66qcxh9mr306clwb3p7ykzb70r3jv5jqggiz199";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
buildInputs = [ kodi libcec_platform tinyxml ];
|
||||
};
|
||||
|
||||
buildKodiAddon =
|
||||
{ name ? "${attrs.pname}-${attrs.version}"
|
||||
, namespace
|
||||
, sourceDir ? ""
|
||||
, ... } @ attrs:
|
||||
toKodiAddon (stdenv.mkDerivation ({
|
||||
name = "kodi-" + name;
|
||||
|
||||
dontStrip = true;
|
||||
|
||||
extraRuntimeDependencies = [ ];
|
||||
|
||||
installPhase = ''
|
||||
cd $src/$sourceDir
|
||||
d=$out${addonDir}/${namespace}
|
||||
mkdir -p $d
|
||||
sauce="."
|
||||
[ -d ${namespace} ] && sauce=${namespace}
|
||||
cp -R "$sauce/"* $d
|
||||
'';
|
||||
} // attrs));
|
||||
|
||||
buildKodiBinaryAddon =
|
||||
{ name ? "${attrs.pname}-${attrs.version}"
|
||||
, namespace
|
||||
, version
|
||||
, extraBuildInputs ? []
|
||||
, extraRuntimeDependencies ? []
|
||||
, extraInstallPhase ? "", ... } @ attrs:
|
||||
toKodiAddon (stdenv.mkDerivation ({
|
||||
name = "kodi-" + name;
|
||||
|
||||
dontStrip = true;
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
buildInputs = [ kodi kodi-platform libcec_platform ] ++ extraBuildInputs;
|
||||
|
||||
inherit extraRuntimeDependencies;
|
||||
|
||||
# disables check ensuring install prefix is that of kodi
|
||||
cmakeFlags = [
|
||||
"-DOVERRIDE_PATHS=1"
|
||||
];
|
||||
|
||||
# kodi checks for addon .so libs existance in the addon folder (share/...)
|
||||
# and the non-wrapped kodi lib/... folder before even trying to dlopen
|
||||
# them. Symlinking .so, as setting LD_LIBRARY_PATH is of no use
|
||||
installPhase = let n = namespace; in ''
|
||||
make install
|
||||
ln -s $out/lib/addons/${n}/${n}.so.${version} $out${addonDir}/${n}/${n}.so.${version}
|
||||
${extraInstallPhase}
|
||||
'';
|
||||
} // attrs));
|
||||
|
||||
advanced-launcher = buildKodiAddon rec {
|
||||
|
||||
pname = "advanced-launcher";
|
||||
namespace = "plugin.program.advanced.launcher";
|
||||
version = "2.5.8";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "edwtjo";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "142vvgs37asq5m54xqhjzqvgmb0xlirvm0kz6lxaqynp0vvgrkx2";
|
||||
};
|
||||
|
||||
meta = {
|
||||
homepage = "https://forum.kodi.tv/showthread.php?tid=85724";
|
||||
description = "A program launcher for Kodi";
|
||||
longDescription = ''
|
||||
Advanced Launcher allows you to start any Linux, Windows and
|
||||
macOS external applications (with command line support or not)
|
||||
directly from the Kodi GUI. Advanced Launcher also give you
|
||||
the possibility to edit, download (from Internet resources)
|
||||
and manage all the meta-data (informations and images) related
|
||||
to these applications.
|
||||
'';
|
||||
platforms = platforms.all;
|
||||
maintainers = with maintainers; [ edwtjo ];
|
||||
broken = true; # requires port to python3
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
advanced-emulator-launcher = buildKodiAddon rec {
|
||||
|
||||
pname = "advanced-emulator-launcher";
|
||||
namespace = "plugin.program.advanced.emulator.launcher";
|
||||
version = "0.9.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Wintermute0110";
|
||||
repo = namespace;
|
||||
rev = version;
|
||||
sha256 = "1sv9z77jj6bam6llcnd9b3dgkbvhwad2m1v541rv3acrackms2z2";
|
||||
};
|
||||
|
||||
meta = {
|
||||
homepage = "https://forum.kodi.tv/showthread.php?tid=287826";
|
||||
description = "A program launcher for Kodi";
|
||||
longDescription = ''
|
||||
Advanced Emulator Launcher is a multi-emulator front-end for Kodi
|
||||
scalable to collections of thousands of ROMs. Includes offline scrapers
|
||||
for MAME and No-Intro ROM sets and also supports scrapping ROM metadata
|
||||
and artwork online. ROM auditing for No-Intro ROMs using No-Intro XML
|
||||
DATs. Launching of games and standalone applications is also available.
|
||||
'';
|
||||
platforms = platforms.all;
|
||||
maintainers = with maintainers; [ edwtjo ];
|
||||
broken = true; # requires port to python3
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
controllers = let
|
||||
pname = "game-controller";
|
||||
version = "1.0.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kodi-game";
|
||||
repo = "kodi-game-controllers";
|
||||
rev = "01acb5b6e8b85392b3cb298b034aadb1b24ccf18";
|
||||
sha256 = "0sbc0w0fwbp7rbmbgb6a1kglhnn5g85hijcbbvf5x6jdq9v3f1qb";
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Add support for different gaming controllers.";
|
||||
platforms = platforms.all;
|
||||
maintainers = with maintainers; [ edwtjo ];
|
||||
};
|
||||
|
||||
mkController = controller: {
|
||||
${controller} = buildKodiAddon rec {
|
||||
pname = pname + "-" + controller;
|
||||
namespace = "game.controller." + controller;
|
||||
sourceDir = "addons/" + namespace;
|
||||
inherit version src meta;
|
||||
};
|
||||
};
|
||||
in (mkController "default")
|
||||
// (mkController "dreamcast")
|
||||
// (mkController "gba")
|
||||
// (mkController "genesis")
|
||||
// (mkController "mouse")
|
||||
// (mkController "n64")
|
||||
// (mkController "nes")
|
||||
// (mkController "ps")
|
||||
// (mkController "snes");
|
||||
|
||||
hyper-launcher = let
|
||||
pname = "hyper-launcher";
|
||||
version = "1.5.2";
|
||||
src = fetchFromGitHub rec {
|
||||
name = pname + "-" + version + ".tar.gz";
|
||||
owner = "teeedubb";
|
||||
repo = owner + "-xbmc-repo";
|
||||
rev = "f958ba93fe85b9c9025b1745d89c2db2e7dd9bf6";
|
||||
sha256 = "1dvff24fbas25k5kvca4ssks9l1g5rfa3hl8lqxczkaqi3pp41j5";
|
||||
};
|
||||
meta = {
|
||||
homepage = "https://forum.kodi.tv/showthread.php?tid=258159";
|
||||
description = "A ROM launcher for Kodi that uses HyperSpin assets.";
|
||||
maintainers = with maintainers; [ edwtjo ];
|
||||
broken = true; # requires port to python3
|
||||
};
|
||||
in {
|
||||
service = buildKodiAddon {
|
||||
pname = pname + "-service";
|
||||
version = "1.2.1";
|
||||
namespace = "service.hyper.launcher";
|
||||
inherit src meta;
|
||||
};
|
||||
plugin = buildKodiAddon {
|
||||
namespace = "plugin.hyper.launcher";
|
||||
inherit pname version src meta;
|
||||
};
|
||||
};
|
||||
|
||||
joystick = buildKodiBinaryAddon rec {
|
||||
pname = namespace;
|
||||
namespace = "peripheral.joystick";
|
||||
version = "1.7.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "xbmc";
|
||||
repo = namespace;
|
||||
rev = "${version}-${rel}";
|
||||
sha256 = "1dhj4afr9kj938xx70fq5r409mz6lbw4n581ljvdjj9lq7akc914";
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Binary addon for raw joystick input.";
|
||||
platforms = platforms.all;
|
||||
maintainers = with maintainers; [ edwtjo ];
|
||||
};
|
||||
|
||||
extraBuildInputs = [ tinyxml udev ];
|
||||
};
|
||||
|
||||
simpleplugin = buildKodiAddon rec {
|
||||
pname = "simpleplugin";
|
||||
namespace = "script.module.simpleplugin";
|
||||
version = "2.3.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "romanvm";
|
||||
repo = namespace;
|
||||
rev = "v.${version}";
|
||||
sha256 = "0myar8dqjigb75pcc8zx3i5z79p1ifgphgb82s5syqywk0zaxm3j";
|
||||
};
|
||||
|
||||
meta = {
|
||||
homepage = src.meta.homepage;
|
||||
description = "Simpleplugin API";
|
||||
license = licenses.gpl3;
|
||||
broken = true; # requires port to python3
|
||||
};
|
||||
};
|
||||
|
||||
svtplay = buildKodiAddon rec {
|
||||
|
||||
pname = "svtplay";
|
||||
namespace = "plugin.video.svtplay";
|
||||
version = "5.1.12";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
name = pname + "-" + version + ".tar.gz";
|
||||
owner = "nilzen";
|
||||
repo = "xbmc-" + pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "04j1nhm7mh9chs995lz6bv1vsq5xzk7a7c0lmk4bnfv8jrfpj0w6";
|
||||
};
|
||||
|
||||
meta = {
|
||||
homepage = "https://forum.kodi.tv/showthread.php?tid=67110";
|
||||
description = "Watch content from SVT Play";
|
||||
longDescription = ''
|
||||
With this addon you can stream content from SVT Play
|
||||
(svtplay.se). The plugin fetches the video URL from the SVT
|
||||
Play website and feeds it to the Kodi video player. HLS (m3u8)
|
||||
is the preferred video format by the plugin.
|
||||
'';
|
||||
platforms = platforms.all;
|
||||
maintainers = with maintainers; [ edwtjo ];
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
steam-controller = buildKodiBinaryAddon rec {
|
||||
pname = namespace;
|
||||
namespace = "peripheral.steamcontroller";
|
||||
version = "0.11.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kodi-game";
|
||||
repo = namespace;
|
||||
rev = "f68140ca44f163a03d3a625d1f2005a6edef96cb";
|
||||
sha256 = "09lm8i119xlsxxk0c64rnp8iw0crr90v7m8iwi9r31qdmxrdxpmg";
|
||||
};
|
||||
|
||||
extraBuildInputs = [ libusb1 ];
|
||||
|
||||
meta = {
|
||||
description = "Binary addon for steam controller.";
|
||||
platforms = platforms.all;
|
||||
maintainers = with maintainers; [ edwtjo ];
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
steam-launcher = buildKodiAddon {
|
||||
|
||||
pname = "steam-launcher";
|
||||
namespace = "script.steam.launcher";
|
||||
version = "3.5.1";
|
||||
|
||||
src = fetchFromGitHub rec {
|
||||
owner = "teeedubb";
|
||||
repo = owner + "-xbmc-repo";
|
||||
rev = "8260bf9b464846a1f1965da495d2f2b7ceb81d55";
|
||||
sha256 = "1fj3ry5s44nf1jzxk4bmnpa4b9p23nrpmpj2a4i6xf94h7jl7p5k";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ steam ];
|
||||
|
||||
meta = {
|
||||
homepage = "https://forum.kodi.tv/showthread.php?tid=157499";
|
||||
description = "Launch Steam in Big Picture Mode from Kodi";
|
||||
longDescription = ''
|
||||
This add-on will close/minimise Kodi, launch Steam in Big
|
||||
Picture Mode and when Steam BPM is exited (either by quitting
|
||||
Steam or returning to the desktop) Kodi will
|
||||
restart/maximise. Running pre/post Steam scripts can be
|
||||
configured via the addon.
|
||||
'';
|
||||
maintainers = with maintainers; [ edwtjo ];
|
||||
};
|
||||
};
|
||||
|
||||
pdfreader = buildKodiAddon rec {
|
||||
pname = "pdfreader";
|
||||
namespace = "plugin.image.pdf";
|
||||
version = "2.0.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "i96751414";
|
||||
repo = "plugin.image.pdfreader";
|
||||
rev = "v${version}";
|
||||
sha256 = "0nkqhlm1gyagq6xpdgqvd5qxyr2ngpml9smdmzfabc8b972mwjml";
|
||||
};
|
||||
|
||||
meta = {
|
||||
homepage = "https://forum.kodi.tv/showthread.php?tid=187421";
|
||||
description = "A comic book reader";
|
||||
maintainers = with maintainers; [ edwtjo ];
|
||||
};
|
||||
};
|
||||
|
||||
pvr-hts = buildKodiBinaryAddon rec {
|
||||
|
||||
pname = "pvr-hts";
|
||||
namespace = "pvr.hts";
|
||||
version = "8.2.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kodi-pvr";
|
||||
repo = "pvr.hts";
|
||||
rev = "${version}-${rel}";
|
||||
sha256 = "0jnn9gfjl556acqjf92wzzn371gxymhbbi665nqgg2gjcan0a49q";
|
||||
};
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/kodi-pvr/pvr.hts";
|
||||
description = "Kodi's Tvheadend HTSP client addon";
|
||||
platforms = platforms.all;
|
||||
maintainers = with maintainers; [ cpages ];
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
pvr-hdhomerun = buildKodiBinaryAddon rec {
|
||||
|
||||
pname = "pvr-hdhomerun";
|
||||
namespace = "pvr.hdhomerun";
|
||||
version = "7.1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kodi-pvr";
|
||||
repo = "pvr.hdhomerun";
|
||||
rev = "${version}-${rel}";
|
||||
sha256 = "0gbwjssnd319csq2kwlyjj1rskg19m1dxac5dl2dymvx5hn3zrgm";
|
||||
};
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/kodi-pvr/pvr.hdhomerun";
|
||||
description = "Kodi's HDHomeRun PVR client addon";
|
||||
platforms = platforms.all;
|
||||
maintainers = with maintainers; [ titanous ];
|
||||
};
|
||||
|
||||
extraBuildInputs = [ jsoncpp libhdhomerun ];
|
||||
|
||||
};
|
||||
|
||||
pvr-iptvsimple = buildKodiBinaryAddon rec {
|
||||
|
||||
pname = "pvr-iptvsimple";
|
||||
namespace = "pvr.iptvsimple";
|
||||
version = "7.4.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kodi-pvr";
|
||||
repo = "pvr.iptvsimple";
|
||||
rev = "${version}-${rel}";
|
||||
sha256 = "062i922qi0izkvn7v47yhyy2cf3fa7xc3k95b1gm9abfdwkk8ywr";
|
||||
};
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/kodi-pvr/pvr.iptvsimple";
|
||||
description = "Kodi's IPTV Simple client addon";
|
||||
platforms = platforms.all;
|
||||
maintainers = with maintainers; [ ];
|
||||
license = licenses.gpl2Plus;
|
||||
};
|
||||
|
||||
extraBuildInputs = [ zlib pugixml ];
|
||||
};
|
||||
|
||||
osmc-skin = buildKodiAddon rec {
|
||||
|
||||
pname = "osmc-skin";
|
||||
namespace = "skin.osmc";
|
||||
version = "18.0.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "osmc";
|
||||
repo = namespace;
|
||||
rev = "40a6c318641e2cbeac58fb0e7dde9c2beac737a0";
|
||||
sha256 = "1l7hyfj5zvjxjdm94y325bmy1naak455b9l8952sb0gllzrcwj6s";
|
||||
};
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/osmc/skin.osmc";
|
||||
description = "The default skin for OSMC";
|
||||
platforms = platforms.all;
|
||||
maintainers = with maintainers; [ worldofpeace ];
|
||||
license = licenses.cc-by-nc-sa-30;
|
||||
};
|
||||
};
|
||||
|
||||
yatp = python3Packages.toPythonModule (buildKodiAddon rec {
|
||||
pname = "yatp";
|
||||
namespace = "plugin.video.yatp";
|
||||
version = "3.3.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "romanvm";
|
||||
repo = "kodi.yatp";
|
||||
rev = "v.${version}";
|
||||
sha256 = "12g1f57sx7dy6wy7ljl7siz2qs1kxcmijcg7xx2xpvmq61x9qa2d";
|
||||
};
|
||||
|
||||
patches = [ ./yatp/dont-monkey.patch ];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
simpleplugin
|
||||
python3Packages.requests
|
||||
python3Packages.libtorrent-rasterbar
|
||||
];
|
||||
|
||||
meta = {
|
||||
homepage = src.meta.homepage;
|
||||
description = "Yet Another Torrent Player: libtorrent-based torrent streaming for Kodi";
|
||||
license = licenses.gpl3;
|
||||
broken = true; # requires port to python3
|
||||
};
|
||||
});
|
||||
|
||||
inputstream-adaptive = buildKodiBinaryAddon rec {
|
||||
|
||||
pname = "inputstream-adaptive";
|
||||
namespace = "inputstream.adaptive";
|
||||
version = "2.6.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "peak3d";
|
||||
repo = "inputstream.adaptive";
|
||||
rev = "${version}-${rel}";
|
||||
sha256 = "1pwqmbr78wp12jn6rwv63npdfc456adwz0amlxf6gvgg43li6p7s";
|
||||
};
|
||||
|
||||
extraBuildInputs = [ expat ];
|
||||
|
||||
extraRuntimeDependencies = [ glib nspr nss stdenv.cc.cc.lib ];
|
||||
|
||||
extraInstallPhase = let n = namespace; in ''
|
||||
ln -s $out/lib/addons/${n}/libssd_wv.so $out/${addonDir}/${n}/libssd_wv.so
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/peak3d/inputstream.adaptive";
|
||||
description = "Kodi inputstream addon for several manifest types";
|
||||
platforms = platforms.all;
|
||||
maintainers = with maintainers; [ sephalon ];
|
||||
};
|
||||
};
|
||||
|
||||
vfs-sftp = buildKodiBinaryAddon rec {
|
||||
pname = namespace;
|
||||
namespace = "vfs.sftp";
|
||||
version = "2.0.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "xbmc";
|
||||
repo = namespace;
|
||||
rev = "${version}-${rel}";
|
||||
sha256 = "06w74sh8yagrrp7a7rjaz3xrh1j3wdqald9c4b72c33gpk5997dk";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "SFTP Virtual Filesystem add-on for Kodi";
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = platforms.all;
|
||||
maintainers = with maintainers; [ minijackson ];
|
||||
};
|
||||
|
||||
extraBuildInputs = [ openssl libssh zlib ];
|
||||
};
|
||||
|
||||
vfs-libarchive = buildKodiBinaryAddon rec {
|
||||
pname = namespace;
|
||||
namespace = "vfs.libarchive";
|
||||
version = "2.0.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "xbmc";
|
||||
repo = namespace;
|
||||
rev = "${version}-${rel}";
|
||||
sha256 = "1q62p1i6rvqk2zv6f1cpffkh95lgclys2xl4dwyhj3acmqdxd9i5";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "LibArchive Virtual Filesystem add-on for Kodi";
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = platforms.all;
|
||||
maintainers = with maintainers; [ minijackson ];
|
||||
};
|
||||
|
||||
extraBuildInputs = [ libarchive lzma bzip2 zlib lz4 lzo openssl ];
|
||||
};
|
||||
}; in self
|
|
@ -1,5 +1,10 @@
|
|||
{ lib, makeWrapper, buildEnv, kodi, addons }:
|
||||
|
||||
let
|
||||
# linux distros are supposed to provide pillow and pycryptodome
|
||||
requiredPythonPackages = with kodi.pythonPackages; [ pillow pycryptodome] ++ addons;
|
||||
in
|
||||
|
||||
buildEnv {
|
||||
name = "${kodi.name}-env";
|
||||
|
||||
|
@ -13,7 +18,7 @@ buildEnv {
|
|||
for exe in kodi{,-standalone}
|
||||
do
|
||||
makeWrapper ${kodi}/bin/$exe $out/bin/$exe \
|
||||
--prefix PYTHONPATH : ${kodi.pythonPackages.makePythonPath addons} \
|
||||
--prefix PYTHONPATH : ${kodi.pythonPackages.makePythonPath requiredPythonPackages} \
|
||||
--prefix KODI_HOME : $out/share/kodi \
|
||||
--prefix LD_LIBRARY_PATH ":" "${lib.makeLibraryPath
|
||||
(lib.concatMap
|
||||
|
|
|
@ -1,29 +0,0 @@
|
|||
diff --git a/plugin.video.yatp/server.py b/plugin.video.yatp/server.py
|
||||
index 1adcbb5..488b72c 100644
|
||||
--- a/plugin.video.yatp/server.py
|
||||
+++ b/plugin.video.yatp/server.py
|
||||
@@ -20,24 +20,8 @@ addon = Addon()
|
||||
_ = addon.initialize_gettext()
|
||||
addon.log_notice('Starting Torrent Server...')
|
||||
|
||||
-# A monkey-patch to set the necessary librorrent version
|
||||
-librorrent_addon = Addon('script.module.libtorrent')
|
||||
-orig_custom_version = librorrent_addon.get_setting('custom_version', False)
|
||||
-orig_set_version = librorrent_addon.get_setting('set_version', False)
|
||||
-librorrent_addon.set_setting('custom_version', 'true')
|
||||
-if addon.libtorrent_version == '1.0.9':
|
||||
- librorrent_addon.set_setting('set_version', '4')
|
||||
-elif addon.libtorrent_version == '1.1.0':
|
||||
- librorrent_addon.set_setting('set_version', '5')
|
||||
-elif addon.libtorrent_version == '1.1.1':
|
||||
- librorrent_addon.set_setting('set_version', '6')
|
||||
-else:
|
||||
- librorrent_addon.set_setting('set_version', '0')
|
||||
-
|
||||
from libs.server import wsgi_app
|
||||
|
||||
-librorrent_addon.set_setting('custom_version', orig_custom_version)
|
||||
-librorrent_addon.set_setting('set_version', orig_set_version)
|
||||
# ======
|
||||
|
||||
if addon.enable_limits:
|
|
@ -17,6 +17,7 @@
|
|||
, libv4l
|
||||
, x264
|
||||
, curl
|
||||
, wayland
|
||||
, xorg
|
||||
, makeWrapper
|
||||
, pkg-config
|
||||
|
@ -67,6 +68,7 @@ in mkDerivation rec {
|
|||
qtx11extras
|
||||
qtsvg
|
||||
speex
|
||||
wayland
|
||||
x264
|
||||
libvlc
|
||||
makeWrapper
|
||||
|
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "bats";
|
||||
version = "1.2.1";
|
||||
version = "1.3.0";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://github.com/bats-core/bats-core/archive/v${version}.tar.gz";
|
||||
hash = "sha256-grB/rJaDU0fuw4Hm3/9nI2px8KZnSWqRjTJPd7Mmb7s=";
|
||||
hash = "sha256-+dboExOx2YELxV8Cwk9SVwk9G3p8EoP0LdaJ3o7GT6c=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
@ -22,6 +22,9 @@ stdenv.mkDerivation rec {
|
|||
|
||||
inherit doCheck;
|
||||
checkPhase = ''
|
||||
# TODO: cut if https://github.com/bats-core/bats-core/issues/418 allows
|
||||
sed -i '/test works even if PATH is reset/a skip' test/bats.bats
|
||||
|
||||
# test generates file with absolute shebang dynamically
|
||||
substituteInPlace test/install.bats --replace \
|
||||
"/usr/bin/env bash" "${bash}/bin/bash"
|
||||
|
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "rakudo";
|
||||
version = "2020.12";
|
||||
version = "2021.02.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://www.rakudo.org/dl/rakudo/rakudo-${version}.tar.gz";
|
||||
sha256 = "1g3ciwhlac85d6l2kqslw8pm4bjjd1z79m1c5ll0fxmr6awgpk67";
|
||||
sha256 = "1xwqx4357bw7h5pdmwxm5wxh8wjvrcdk4rvr3wyrhg1wzy5qvsn8";
|
||||
};
|
||||
|
||||
buildInputs = [ icu zlib gmp perl ];
|
||||
|
|
|
@ -3,11 +3,11 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "moarvm";
|
||||
version = "2020.12";
|
||||
version = "2021.02";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://www.moarvm.org/releases/MoarVM-${version}.tar.gz";
|
||||
sha256 = "18iys1bdb92asggrsz7sg1hh76j7kq63c3fgg33fnla18qf4z488";
|
||||
sha256 = "08ri9mvbk97qfxcy6lj4cb7j3a789ck052m2vqfhis3vkrkw780r";
|
||||
};
|
||||
|
||||
buildInputs = [ perl ] ++ lib.optionals stdenv.isDarwin [ CoreServices ApplicationServices ];
|
||||
|
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "nqp";
|
||||
version = "2020.12";
|
||||
version = "2021.02";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/raku/nqp/releases/download/${version}/nqp-${version}.tar.gz";
|
||||
sha256 = "13h64d41fwggc3lg4bpllg4jrp64clm7nmnw4g2jyjl47cy5ni7x";
|
||||
sha256 = "1vyl6x811f8mbdnp34yj6kfmfpxp2yfrr8cqf1w47rzmr741sjyj";
|
||||
};
|
||||
|
||||
buildInputs = [ perl ];
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "primesieve";
|
||||
version = "7.5";
|
||||
version = "7.6";
|
||||
|
||||
nativeBuildInputs = [cmake];
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/kimwalisch/primesieve/archive/v${version}.tar.gz";
|
||||
sha256 = "0g60br3p8di92jx3pr2bb51xh15gg57l7qvwzwn7xf7l585hgi7v";
|
||||
sha256 = "sha256-SFZp6Pmmx05SiUfSdN9wXxPKrydtRg0PA3uNvAycCpk=";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
|
|
24
pkgs/development/python-modules/ajsonrpc/default.nix
Normal file
24
pkgs/development/python-modules/ajsonrpc/default.nix
Normal file
|
@ -0,0 +1,24 @@
|
|||
{ lib, pythonOlder, buildPythonPackage, fetchPypi, pytestCheckHook }:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "ajsonrpc";
|
||||
version = "1.1.0";
|
||||
|
||||
disabled = pythonOlder "3.5";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "1b5r8975wdnk3qnc1qjnn4lkxmqcir3brbwnxml9ii90dnsw408a";
|
||||
};
|
||||
|
||||
checkInputs = [ pytestCheckHook ];
|
||||
|
||||
pythonImportsCheck = [ "ajsonrpc" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Async JSON-RPC 2.0 protocol + asyncio server";
|
||||
homepage = "https://github.com/pavlov99/ajsonrpc";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ oxzi ];
|
||||
};
|
||||
}
|
|
@ -6,13 +6,13 @@
|
|||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
version = "1.0.0";
|
||||
version = "2.0.0";
|
||||
pname = "azure-mgmt-netapp";
|
||||
disabled = isPy27;
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "e2c0cecd634c0a106e389f39ad767bfd1d718d90692e4e3c9664b1fe9a792ade";
|
||||
sha256 = "ff3b663e36c961e86fc0cdbd6f9fb9fb863d3e7db9035fe713af7299e809ee5e";
|
||||
extension = "zip";
|
||||
};
|
||||
|
||||
|
|
|
@ -2,36 +2,31 @@
|
|||
, buildPythonPackage
|
||||
, isPy3k
|
||||
, fetchPypi
|
||||
, html5lib
|
||||
, wcwidth
|
||||
, setuptools
|
||||
, pytest
|
||||
, pytestCheckHook
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "ftfy";
|
||||
version = "5.8";
|
||||
version = "5.9";
|
||||
|
||||
disabled = !isPy3k;
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "081p5z20dirrf1i3nshylc31qd5mbxibjc7gzj8x4isbiizpdisi";
|
||||
sha256 = "8c4fb2863c0b82eae2ab3cf353d9ade268dfbde863d322f78d6a9fd5cefb31e9";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
html5lib
|
||||
wcwidth
|
||||
setuptools
|
||||
];
|
||||
|
||||
checkInputs = [
|
||||
pytest
|
||||
pytestCheckHook
|
||||
];
|
||||
|
||||
# We suffix PATH like this because the tests want the ftfy executable
|
||||
checkPhase = ''
|
||||
PATH=$out/bin:$PATH pytest
|
||||
preCheck = ''
|
||||
export PATH=$out/bin:$PATH
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
|
|
|
@ -11,11 +11,11 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "google-cloud-bigquery-datatransfer";
|
||||
version = "3.0.0";
|
||||
version = "3.0.1";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "0hmsqvs2srmqcwmli48vd5vw829zax3pwj63fsxig6sdhjlf6j7j";
|
||||
sha256 = "c5669410018eb41cecf6f9c90136d24d0ca9ed141bda8fbb3d52cd3de7162960";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ google-api-core libcst proto-plus ];
|
||||
|
|
|
@ -17,11 +17,11 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "google-cloud-bigquery";
|
||||
version = "2.11.0";
|
||||
version = "2.12.0";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "d8f8464188e3eb03925a4f4acbf4e8fbfbde84a06145bd8a52c6b736113713ae";
|
||||
sha256 = "484bb733e5dd14bb82d28480a5d7f540b8ee59f081fcf32782546b717180d1b8";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "mergedeep";
|
||||
version = "1.3.1";
|
||||
version = "1.3.4";
|
||||
disabled = isPy27;
|
||||
|
||||
# PyPI tarball doesn't include tests directory
|
||||
|
@ -10,7 +10,7 @@ buildPythonPackage rec {
|
|||
owner = "clarketm";
|
||||
repo = "mergedeep";
|
||||
rev = "v${version}";
|
||||
sha256 = "1ryccb64hg438y1wsjlfp4ciq05q4c6khwhllwdnndm8cbkbrgph";
|
||||
sha256 = "1msvvdzk33sxzgyvs4fs8dlsrsi7fjj038z83s0yw5h8m8d78469";
|
||||
};
|
||||
|
||||
checkInputs = [ pytest ];
|
||||
|
|
|
@ -5,11 +5,11 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "minidump";
|
||||
version = "0.0.13";
|
||||
version = "0.0.15";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "1w93yh2dz7llxjgv0jn7gf9praz7d5952is7idgh0lsyj67ri2ms";
|
||||
sha256 = "sha256-IVlzAsnl1KhErxWPi96hUFlIX4IN3Y9t8OicckdYUv0=";
|
||||
};
|
||||
|
||||
# Upstream doesn't have tests
|
||||
|
|
|
@ -17,14 +17,14 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "pyinsteon";
|
||||
version = "1.0.9";
|
||||
version = "1.0.10";
|
||||
disabled = pythonOlder "3.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = pname;
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-+3tA+YdpTKDt7uOSl6Z1G8jTjpBJ8S9gjiQTacQSFTc=";
|
||||
sha256 = "sha256-8b/PvMFHvYGVWw6ycLnL8n972cn+1QW/VTMiblMPam4=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
|
|
@ -7,12 +7,12 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "pymitv";
|
||||
version = "1.4.3";
|
||||
version = "1.5.0";
|
||||
disabled = pythonOlder "3.5";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "0jbs1zhqpnsyad3pd8cqy1byv8m5bq17ydc6crmrfkjbp6xvvg3x";
|
||||
sha256 = "sha256-0n4IS5W3nvYwKdl6FVf4upRrFDGdYHohsaXadFy8d8w=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ requests ];
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ pkgs, callPackage }:
|
||||
{ pkgs, callPackage, CoreServices }:
|
||||
|
||||
{
|
||||
rust-analyzer-unwrapped = callPackage ./generic.nix rec {
|
||||
|
@ -6,6 +6,8 @@
|
|||
version = "unstable-${rev}";
|
||||
sha256 = "150gydm0mg72bbhgjjks8qc5ldiqyzhai9z4yfh4f1s2bwdfh3yf";
|
||||
cargoSha256 = "10l0lk5p11002q59dqa5yrrz6n6s11i7bmr1wnl141bxqvm873q2";
|
||||
|
||||
inherit CoreServices;
|
||||
};
|
||||
|
||||
rust-analyzer = callPackage ./wrapper.nix {} {
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
{ lib, stdenv, fetchFromGitHub, rustPlatform, darwin, cmake
|
||||
{ lib, stdenv, fetchFromGitHub, rustPlatform, CoreServices, cmake
|
||||
, libiconv
|
||||
, useMimalloc ? false
|
||||
, doCheck ? true
|
||||
|
||||
|
@ -22,8 +23,10 @@ rustPlatform.buildRustPackage {
|
|||
|
||||
nativeBuildInputs = lib.optional useMimalloc cmake;
|
||||
|
||||
buildInputs = lib.optionals stdenv.hostPlatform.isDarwin
|
||||
[ darwin.apple_sdk.frameworks.CoreServices ];
|
||||
buildInputs = lib.optionals stdenv.isDarwin [
|
||||
CoreServices
|
||||
libiconv
|
||||
];
|
||||
|
||||
RUST_ANALYZER_REV = rev;
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{ lib, stdenv, fetchFromGitHub, autoconf, automake, pkg-config, ronn, libpng, uthash
|
||||
, xorg }:
|
||||
{ lib, stdenv, coreutils, fetchFromGitHub, autoconf, automake, pkg-config, procps, ronn,
|
||||
libpng, uthash , which, xnee, xorg, python3Packages }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "1.6.0";
|
||||
|
@ -35,10 +35,22 @@ stdenv.mkDerivation rec {
|
|||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
doCheck = true;
|
||||
|
||||
checkInputs = [
|
||||
coreutils
|
||||
procps
|
||||
python3Packages.xvfbwrapper
|
||||
which
|
||||
xnee
|
||||
xorg.xeyes
|
||||
xorg.xprop
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/sagb/alttab";
|
||||
description = "X11 window switcher designed for minimalistic window managers or standalone X11 session";
|
||||
license = licenses.gpl3;
|
||||
license = licenses.gpl3Plus;
|
||||
platforms = platforms.all;
|
||||
maintainers = [ maintainers.sgraf ];
|
||||
};
|
||||
|
|
|
@ -21,18 +21,18 @@ let
|
|||
sources = name: system: {
|
||||
x86_64-darwin = {
|
||||
url = "${baseUrl}/${name}-darwin-x86_64.tar.gz";
|
||||
sha256 = "sha256-aHFwcynt4xQ0T1J+OTSxgttU9W3VFJAqCwmQSdVg8Fk=";
|
||||
sha256 = "09jhcv0ysq37k06b4rw3f9w33spvkkxx7fydraikm3zzvy28l58x";
|
||||
};
|
||||
|
||||
x86_64-linux = {
|
||||
url = "${baseUrl}/${name}-linux-x86_64.tar.gz";
|
||||
sha256 = "sha256-MfldToK7ZfdWZiZnI1qKI1o/dSiUcysxzUkTYMVZ5u4=";
|
||||
sha256 = "1971fz8cv69y7kvirgw9n0xr7z9b1yyh4y43mg10lvv3glx46xcy";
|
||||
};
|
||||
}.${system};
|
||||
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "google-cloud-sdk";
|
||||
version = "328.0.0";
|
||||
version = "332.0.0";
|
||||
|
||||
src = fetchurl (sources "${pname}-${version}" stdenv.hostPlatform.system);
|
||||
|
||||
|
@ -81,7 +81,8 @@ in stdenv.mkDerivation rec {
|
|||
|
||||
# setup bash completion
|
||||
mkdir -p $out/share/bash-completion/completions
|
||||
mv $out/google-cloud-sdk/completion.bash.inc $out/share/bash-completion/completions/gcloud.inc
|
||||
mv $out/google-cloud-sdk/completion.bash.inc $out/share/bash-completion/completions/gcloud
|
||||
ln -s $out/share/bash-completion/completions/gcloud $out/share/bash-completion/completions/gsutil
|
||||
|
||||
# This directory contains compiled mac binaries. We used crcmod from
|
||||
# nixpkgs instead.
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, nixosTests
|
||||
|
||||
# Dependencies
|
||||
, cmake
|
||||
|
@ -101,6 +102,8 @@ stdenv.mkDerivation rec {
|
|||
--prefix PATH : ${lib.makeBinPath [ openssh ]}
|
||||
'';
|
||||
|
||||
passthru.tests.turbovnc-headless-server = nixosTests.turbovnc-headless-server;
|
||||
|
||||
meta = {
|
||||
homepage = "https://turbovnc.org/";
|
||||
license = lib.licenses.gpl2Plus;
|
||||
|
|
|
@ -29,6 +29,6 @@ buildGoModule rec {
|
|||
homepage = "https://github.com/natsukagami/mpd-mpris";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ doronbehar ];
|
||||
platforms = platforms.linux;
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{lib, stdenv, fetchurl}:
|
||||
{ lib, stdenv, fetchurl }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "cdi2iso";
|
||||
|
@ -9,9 +9,13 @@ stdenv.mkDerivation rec {
|
|||
sha256 = "0fj2fxhpr26z649m0ph71378c41ljflpyk89g87x8r1mc4rbq3kh";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace Makefile --replace "gcc" "${stdenv.cc.targetPrefix}cc"
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin/
|
||||
cp cdi2iso $out/bin/
|
||||
mkdir -p $out/bin
|
||||
cp cdi2iso $out/bin
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
|
@ -19,6 +23,6 @@ stdenv.mkDerivation rec {
|
|||
homepage = "https://sourceforge.net/projects/cdi2iso.berlios";
|
||||
license = licenses.gpl2;
|
||||
maintainers = with maintainers; [ hrdinka ];
|
||||
platforms = platforms.linux;
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
|
|||
};
|
||||
|
||||
buildPhase = ''
|
||||
gcc -Wall -o dejsonlz4 src/dejsonlz4.c src/lz4.c
|
||||
${stdenv.cc.targetPrefix}cc -o dejsonlz4 src/dejsonlz4.c src/lz4.c
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
|
@ -23,6 +23,6 @@ stdenv.mkDerivation rec {
|
|||
homepage = "https://github.com/avih/dejsonlz4";
|
||||
license = licenses.bsd2;
|
||||
maintainers = with maintainers; [ mt-caret ];
|
||||
platforms = platforms.linux;
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,8 +0,0 @@
|
|||
source $stdenv/setup
|
||||
|
||||
installPhase() {
|
||||
mkdir -p $out/bin
|
||||
cp -p zdc zdu $out/bin
|
||||
}
|
||||
|
||||
genericBuild
|
|
@ -1,16 +1,24 @@
|
|||
{lib, stdenv, fetchurl}:
|
||||
{ lib, stdenv, fetchurl }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "zdelta-2.1";
|
||||
builder = ./builder.sh;
|
||||
pname = "zdelta";
|
||||
version = "2.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "${meta.homepage}/downloads/${name}.tar.gz";
|
||||
sha256 = "0k6y0r9kv5qiglnr2j4a0yvfynjkvm0pyv8ly28j0pr3w6rbxrh3";
|
||||
url = "https://web.archive.org/web/20160316212948/http://cis.poly.edu/zdelta/downloads/zdelta-2.1.tar.gz";
|
||||
sha256 = "sha256-WiQKWxJkINIwRBcdiuVLMDiupQ8gOsiXOEZvHDa5iFg=";
|
||||
};
|
||||
|
||||
makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
cp -p zdc zdu $out/bin
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "http://cis.poly.edu/zdelta";
|
||||
platforms = platforms.linux;
|
||||
homepage = "https://web.archive.org/web/20160316212948/http://cis.poly.edu/zdelta/";
|
||||
platforms = platforms.all;
|
||||
license = licenses.zlib;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -25,6 +25,6 @@ buildPythonApplication rec {
|
|||
homepage = "https://github.com/deadc0de6/catcli";
|
||||
license = licenses.gpl3;
|
||||
maintainers = with maintainers; [ petersjt014 ];
|
||||
platforms = platforms.linux;
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -36,6 +36,6 @@ stdenv.mkDerivation rec {
|
|||
homepage = "https://github.com/derikz/cpcfs/" ;
|
||||
license = licenses.bsd2;
|
||||
maintainers = [ ];
|
||||
platforms = platforms.linux;
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -24,6 +24,6 @@ stdenv.mkDerivation rec {
|
|||
homepage = "https://github.com/cpcsdk/idsk" ;
|
||||
license = licenses.mit;
|
||||
maintainers = [ ];
|
||||
platforms = platforms.linux;
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -9,6 +9,12 @@ stdenv.mkDerivation rec {
|
|||
sha256 = "1pfgqbipwk36clhma2k365jkpvyy75ahswn8jczzys382jalpwgk";
|
||||
};
|
||||
|
||||
makeFlags = [
|
||||
"CC=${stdenv.cc.targetPrefix}cc"
|
||||
"CLINK=${stdenv.cc.targetPrefix}cc"
|
||||
"LINK=${stdenv.cc.targetPrefix}cc"
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
make EPSTOOL_ROOT=$out install
|
||||
'';
|
||||
|
@ -20,6 +26,6 @@ stdenv.mkDerivation rec {
|
|||
homepage = "http://pages.cs.wisc.edu/~ghost/gsview/epstool.htm";
|
||||
license = licenses.gpl2;
|
||||
maintainers = [ maintainers.asppsa ];
|
||||
platforms = platforms.linux;
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
|
|||
meta = with lib; {
|
||||
description = "A shell script that uploads images to imgur";
|
||||
license = licenses.mit;
|
||||
platforms = platforms.linux;
|
||||
platforms = platforms.all;
|
||||
maintainers = with maintainers; [ abbradar ];
|
||||
homepage = "https://github.com/ram-on/imgurbash2";
|
||||
};
|
||||
|
|
|
@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
|
|||
description = "A tool designed for parsing and converting SPIR-V to other shader languages";
|
||||
homepage = "https://github.com/KhronosGroup/SPIRV-Cross";
|
||||
changelog = "https://github.com/KhronosGroup/SPIRV-Cross/releases/tag/${version}";
|
||||
platforms = platforms.linux;
|
||||
platforms = platforms.all;
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ Flakebi ];
|
||||
};
|
||||
|
|
|
@ -1,23 +1,23 @@
|
|||
{ lib, stdenv, fetchFromGitHub, writeText, conf ? null }:
|
||||
|
||||
with lib;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "abduco-2018-05-16";
|
||||
pname = "abduco";
|
||||
version = "2020-04-30";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "martanne";
|
||||
repo = "abduco";
|
||||
rev = "8f80aa8044d7ecf0e43a0294a09007d056b20e4c";
|
||||
sha256 = "0wqcif633nbgnznn46j0sng9l0wncppw1x1c42f75b4p9hrph203";
|
||||
rev = "8c32909a159aaa9484c82b71f05b7a73321eb491";
|
||||
sha256 = "0a3p8xljhpk7zh203s75248blfir15smgw5jmszwbmdpy4mqzd53";
|
||||
};
|
||||
|
||||
configFile = optionalString (conf!=null) (writeText "config.def.h" conf);
|
||||
preBuild = optionalString (conf!=null) "cp ${configFile} config.def.h";
|
||||
preBuild = lib.optionalString (conf != null)
|
||||
"cp ${writeText "config.def.h" conf} config.def.h";
|
||||
|
||||
installFlags = [ "install-completion" ];
|
||||
CFLAGS = lib.optionalString stdenv.isDarwin "-D_DARWIN_C_SOURCE";
|
||||
|
||||
meta = {
|
||||
meta = with lib; {
|
||||
homepage = "http://brain-dump.org/projects/abduco";
|
||||
license = licenses.isc;
|
||||
description = "Allows programs to be run independently from its controlling terminal";
|
||||
|
|
|
@ -15,6 +15,6 @@ stdenv.mkDerivation rec {
|
|||
description = "Add directory bookmarks, distant listing, and distant editing to the command line";
|
||||
maintainers = with maintainers; [ lethalman ];
|
||||
license = licenses.gpl2;
|
||||
platforms = platforms.linux;
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
|
|||
meta = with lib; {
|
||||
description = "Bash unit testing enterprise edition framework for professionals";
|
||||
maintainers = with maintainers; [ pamplemousse ];
|
||||
platforms = platforms.linux;
|
||||
platforms = platforms.all;
|
||||
license = licenses.gpl3Plus;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
|
|||
description = "A sed-like editor for binary files";
|
||||
homepage = "http://bbe-.sourceforge.net/";
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = platforms.linux;
|
||||
platforms = platforms.all;
|
||||
maintainers = [ maintainers.hhm ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -25,6 +25,6 @@ stdenv.mkDerivation rec {
|
|||
homepage = "https://gitlab.linphone.org/BC/public/bcunit";
|
||||
license = licenses.lgpl2Plus;
|
||||
maintainers = with maintainers; [ raskin jluttine ];
|
||||
platforms = platforms.linux;
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -23,6 +23,9 @@ in stdenv.mkDerivation {
|
|||
sed -e 's|gcc|$CC|' \
|
||||
conf-compile/defaults/host_link.sh \
|
||||
> conf-compile/host_link.sh
|
||||
sed -e 's|gcc|$CC|' \
|
||||
conf-compile/defaults/host_compile.sh \
|
||||
> conf-compile/host_compile.sh
|
||||
|
||||
echo "${skawarePackages.skalibs.lib}/lib/skalibs/sysdeps" \
|
||||
> conf-compile/depend_skalibs_sysdeps
|
||||
|
|
|
@ -23,7 +23,7 @@ stdenv.mkDerivation {
|
|||
'';
|
||||
homepage = "https://github.com/qw3rtman/git-fire";
|
||||
license = licenses.mit;
|
||||
platforms = platforms.linux;
|
||||
platforms = platforms.all;
|
||||
maintainers = [ maintainers.swflint ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -26,6 +26,6 @@ stdenv.mkDerivation rec {
|
|||
homepage = "https://git.decadent.org.uk/gitweb/?p=ministat.git";
|
||||
license = licenses.beerware;
|
||||
maintainers = [ maintainers.dezgeg ];
|
||||
platforms = platforms.linux;
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -27,6 +27,6 @@ stdenv.mkDerivation rec {
|
|||
'';
|
||||
license = licenses.isc;
|
||||
maintainers = [ maintainers.matthiasbeyer ];
|
||||
platforms = platforms.linux;
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
||||
|
|
36
pkgs/tools/misc/usbview/default.nix
Normal file
36
pkgs/tools/misc/usbview/default.nix
Normal file
|
@ -0,0 +1,36 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, autoreconfHook
|
||||
, pkg-config
|
||||
, gtk3
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "usbview";
|
||||
version = "2.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "gregkh";
|
||||
repo = "usbview";
|
||||
rev = "v${version}";
|
||||
sha256 = "1cw5jjpidjn34rxdjslpdlj99k4dqaq1kz6mplv5hgjdddijvn5p";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoreconfHook
|
||||
pkg-config
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
gtk3
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "USB viewer for Linux";
|
||||
license = licenses.gpl2Only;
|
||||
homepage = "http://www.kroah.com/linux-usb/";
|
||||
maintainers = with maintainers; [ shamilton ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
|
@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
|
|||
'';
|
||||
license = licenses.mit;
|
||||
maintainers = [ maintainers.matthiasbeyer ];
|
||||
platforms = platforms.linux;
|
||||
platforms = platforms.all;
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
@ -1,12 +1,11 @@
|
|||
{ lib, stdenv, fetchurl }:
|
||||
{ lib, gccStdenv, fetchurl }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
baseName = "altermime";
|
||||
name = "${baseName}-${version}";
|
||||
gccStdenv.mkDerivation rec {
|
||||
pname = "altermime";
|
||||
version = "0.3.11";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://pldaniels.com/${baseName}/${name}.tar.gz";
|
||||
url = "https://pldaniels.com/${pname}/${pname}-${version}.tar.gz";
|
||||
sha256 = "15zxg6spcmd35r6xbidq2fgcg2nzyv1sbbqds08lzll70mqx4pj7";
|
||||
};
|
||||
|
||||
|
@ -19,14 +18,14 @@ stdenv.mkDerivation rec {
|
|||
];
|
||||
|
||||
postPatch = ''
|
||||
sed -i Makefile -e "s@/usr/local@$out@"
|
||||
mkdir -p "$out/bin"
|
||||
mkdir -p $out/bin
|
||||
substituteInPlace Makefile --replace "/usr/local" "$out"
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "MIME alteration tool";
|
||||
maintainers = [ maintainers.raskin ];
|
||||
platforms = platforms.linux;
|
||||
platforms = platforms.all;
|
||||
license.fullName = "alterMIME LICENSE";
|
||||
downloadPage = "https://pldaniels.com/altermime/";
|
||||
};
|
||||
|
|
|
@ -27,6 +27,6 @@ stdenv.mkDerivation rec {
|
|||
'';
|
||||
homepage = "http://www.mavetju.org/unix/general.php";
|
||||
license = licenses.bsd2;
|
||||
platforms = platforms.linux;
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
|
|||
homepage = "https://github.com/httperf/httperf";
|
||||
maintainers = with maintainers; [ nand0p ];
|
||||
license = licenses.gpl2;
|
||||
platforms = platforms.linux;
|
||||
platforms = platforms.all;
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ lib, buildGoModule, fetchFromGitHub }:
|
||||
{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
|
||||
buildGoModule rec {
|
||||
pname = "kapp";
|
||||
version = "0.36.0";
|
||||
|
@ -14,6 +14,15 @@ buildGoModule rec {
|
|||
|
||||
subPackages = [ "cmd/kapp" ];
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
||||
postInstall = ''
|
||||
for shell in bash fish zsh; do
|
||||
$out/bin/kapp completion $shell > kapp.$shell
|
||||
installShellCompletion kapp.$shell
|
||||
done
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "CLI tool that encourages Kubernetes users to manage bulk resources with an application abstraction for grouping";
|
||||
homepage = "https://get-kapp.io";
|
||||
|
|
|
@ -3325,6 +3325,8 @@ in
|
|||
|
||||
usbsdmux = callPackage ../development/tools/misc/usbsdmux { };
|
||||
|
||||
usbview = callPackage ../tools/misc/usbview { };
|
||||
|
||||
anthy = callPackage ../tools/inputmethods/anthy { };
|
||||
|
||||
evdevremapkeys = callPackage ../tools/inputmethods/evdevremapkeys { };
|
||||
|
@ -11087,7 +11089,9 @@ in
|
|||
rustracerd = callPackage ../development/tools/rust/racerd {
|
||||
inherit (darwin.apple_sdk.frameworks) Security;
|
||||
};
|
||||
inherit (callPackage ../development/tools/rust/rust-analyzer { })
|
||||
inherit (callPackage ../development/tools/rust/rust-analyzer {
|
||||
inherit (darwin.apple_sdk.frameworks) CoreServices;
|
||||
})
|
||||
rust-analyzer-unwrapped rust-analyzer;
|
||||
rust-bindgen = callPackage ../development/tools/rust/bindgen { };
|
||||
rust-cbindgen = callPackage ../development/tools/rust/cbindgen {
|
||||
|
|
113
pkgs/top-level/kodi-packages.nix
Normal file
113
pkgs/top-level/kodi-packages.nix
Normal file
|
@ -0,0 +1,113 @@
|
|||
{ lib, newScope, kodi }:
|
||||
|
||||
with lib;
|
||||
|
||||
let self = rec {
|
||||
|
||||
addonDir = "/share/kodi/addons";
|
||||
rel = "Matrix";
|
||||
|
||||
callPackage = newScope self;
|
||||
|
||||
inherit kodi;
|
||||
|
||||
# Convert derivation to a kodi module. Stolen from ../../../top-level/python-packages.nix
|
||||
toKodiAddon = drv: drv.overrideAttrs (oldAttrs: {
|
||||
# Use passthru in order to prevent rebuilds when possible.
|
||||
passthru = (oldAttrs.passthru or {}) // {
|
||||
kodiAddonFor = kodi;
|
||||
requiredKodiAddons = requiredKodiAddons drv.propagatedBuildInputs;
|
||||
};
|
||||
});
|
||||
|
||||
# Check whether a derivation provides a Kodi addon.
|
||||
hasKodiAddon = drv: drv ? kodiAddonFor && drv.kodiAddonFor == kodi;
|
||||
|
||||
# Get list of required Kodi addons given a list of derivations.
|
||||
requiredKodiAddons = drvs:
|
||||
let
|
||||
modules = filter hasKodiAddon drvs;
|
||||
in
|
||||
unique (modules ++ concatLists (catAttrs "requiredKodiAddons" modules));
|
||||
|
||||
# package update scripts
|
||||
|
||||
addonUpdateScript = callPackage ../applications/video/kodi-packages/addon-update-script { };
|
||||
|
||||
# package builders
|
||||
|
||||
buildKodiAddon = callPackage ../applications/video/kodi/build-kodi-addon.nix { };
|
||||
|
||||
buildKodiBinaryAddon = callPackage ../applications/video/kodi/build-kodi-binary-addon.nix { };
|
||||
|
||||
# regular packages
|
||||
|
||||
kodi-platform = callPackage ../applications/video/kodi-packages/kodi-platform { };
|
||||
|
||||
# addon packages
|
||||
|
||||
controllers = {
|
||||
default = callPackage ../applications/video/kodi-packages/controllers { controller = "default"; };
|
||||
|
||||
dreamcast = callPackage ../applications/video/kodi-packages/controllers { controller = "dreamcast"; };
|
||||
|
||||
gba = callPackage ../applications/video/kodi-packages/controllers { controller = "gba"; };
|
||||
|
||||
genesis = callPackage ../applications/video/kodi-packages/controllers { controller = "genesis"; };
|
||||
|
||||
mouse = callPackage ../applications/video/kodi-packages/controllers { controller = "mouse"; };
|
||||
|
||||
n64 = callPackage ../applications/video/kodi-packages/controllers { controller = "n64"; };
|
||||
|
||||
nes = callPackage ../applications/video/kodi-packages/controllers { controller = "nes"; };
|
||||
|
||||
ps = callPackage ../applications/video/kodi-packages/controllers { controller = "ps"; };
|
||||
|
||||
snes = callPackage ../applications/video/kodi-packages/controllers { controller = "snes"; };
|
||||
};
|
||||
|
||||
joystick = callPackage ../applications/video/kodi-packages/joystick { };
|
||||
|
||||
netflix = callPackage ../applications/video/kodi-packages/netflix { };
|
||||
|
||||
svtplay = callPackage ../applications/video/kodi-packages/svtplay { };
|
||||
|
||||
steam-controller = callPackage ../applications/video/kodi-packages/steam-controller { };
|
||||
|
||||
steam-launcher = callPackage ../applications/video/kodi-packages/steam-launcher { };
|
||||
|
||||
pdfreader = callPackage ../applications/video/kodi-packages/pdfreader { };
|
||||
|
||||
pvr-hts = callPackage ../applications/video/kodi-packages/pvr-hts { };
|
||||
|
||||
pvr-hdhomerun = callPackage ../applications/video/kodi-packages/pvr-hdhomerun { };
|
||||
|
||||
pvr-iptvsimple = callPackage ../applications/video/kodi-packages/pvr-iptvsimple { };
|
||||
|
||||
osmc-skin = callPackage ../applications/video/kodi-packages/osmc-skin { };
|
||||
|
||||
vfs-sftp = callPackage ../applications/video/kodi-packages/vfs-sftp { };
|
||||
|
||||
vfs-libarchive = callPackage ../applications/video/kodi-packages/vfs-libarchive { };
|
||||
|
||||
# addon packages (dependencies)
|
||||
|
||||
certifi = callPackage ../applications/video/kodi-packages/certifi { };
|
||||
|
||||
chardet = callPackage ../applications/video/kodi-packages/chardet { };
|
||||
|
||||
idna = callPackage ../applications/video/kodi-packages/idna { };
|
||||
|
||||
inputstream-adaptive = callPackage ../applications/video/kodi-packages/inputstream-adaptive { };
|
||||
|
||||
inputstreamhelper = callPackage ../applications/video/kodi-packages/inputstreamhelper { };
|
||||
|
||||
myconnpy = callPackage ../applications/video/kodi-packages/myconnpy { };
|
||||
|
||||
requests = callPackage ../applications/video/kodi-packages/requests { };
|
||||
|
||||
signals = callPackage ../applications/video/kodi-packages/signals { };
|
||||
|
||||
urllib3 = callPackage ../applications/video/kodi-packages/urllib3 { };
|
||||
|
||||
}; in self
|
|
@ -340,6 +340,8 @@ in {
|
|||
|
||||
ajpy = callPackage ../development/python-modules/ajpy { };
|
||||
|
||||
ajsonrpc = callPackage ../development/python-modules/ajsonrpc { };
|
||||
|
||||
alabaster = callPackage ../development/python-modules/alabaster { };
|
||||
|
||||
alarmdecoder = callPackage ../development/python-modules/alarmdecoder { };
|
||||
|
|
Loading…
Reference in New Issue
Block a user