diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 2a25eacb9966..592b74e294fa 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -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"; diff --git a/maintainers/team-list.nix b/maintainers/team-list.nix index 7d778a8ae30c..0575b87b7472 100644 --- a/maintainers/team-list.nix +++ b/maintainers/team-list.nix @@ -134,6 +134,7 @@ with lib.maintainers; { timokau omasanori raskin + collares ]; scope = "Maintain SageMath and the dependencies that are likely to break it."; }; diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 7a84e2620f82..21f421abfece 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -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 diff --git a/nixos/modules/programs/turbovnc.nix b/nixos/modules/programs/turbovnc.nix new file mode 100644 index 000000000000..e6f8836aa367 --- /dev/null +++ b/nixos/modules/programs/turbovnc.nix @@ -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 so that OpenGL + programs can find Mesa's llvmpipe drivers. + + Setting this option to false 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; + + }; +} diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 251f24a9a089..3ce71b0abe6d 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -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 {}; diff --git a/nixos/tests/turbovnc-headless-server.nix b/nixos/tests/turbovnc-headless-server.nix new file mode 100644 index 000000000000..35da9a53d2db --- /dev/null +++ b/nixos/tests/turbovnc-headless-server.nix @@ -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") + ''; + +}) diff --git a/pkgs/applications/graphics/freecad/default.nix b/pkgs/applications/graphics/freecad/default.nix index 5a3dffd0c367..07ac5b32e5f1 100644 --- a/pkgs/applications/graphics/freecad/default.nix +++ b/pkgs/applications/graphics/freecad/default.nix @@ -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; { diff --git a/pkgs/applications/graphics/gimp/default.nix b/pkgs/applications/graphics/gimp/default.nix index 62f1a3627716..2491d8d3a8ab 100644 --- a/pkgs/applications/graphics/gimp/default.nix +++ b/pkgs/applications/graphics/gimp/default.nix @@ -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 = [ diff --git a/pkgs/applications/networking/cluster/waypoint/default.nix b/pkgs/applications/networking/cluster/waypoint/default.nix index f28754005ecb..7675dc0de880 100644 --- a/pkgs/applications/networking/cluster/waypoint/default.nix +++ b/pkgs/applications/networking/cluster/waypoint/default.nix @@ -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 ]; diff --git a/pkgs/applications/networking/ftp/filezilla/default.nix b/pkgs/applications/networking/ftp/filezilla/default.nix index 877cdec4ca8d..b4c1e95087ec 100644 --- a/pkgs/applications/networking/ftp/filezilla/default.nix +++ b/pkgs/applications/networking/ftp/filezilla/default.nix @@ -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 diff --git a/pkgs/applications/version-management/gitlab/data.json b/pkgs/applications/version-management/gitlab/data.json index 001d0b158b25..b3a5d25c930f 100644 --- a/pkgs/applications/version-management/gitlab/data.json +++ b/pkgs/applications/version-management/gitlab/data.json @@ -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" diff --git a/pkgs/applications/version-management/gitlab/gitaly/default.nix b/pkgs/applications/version-management/gitlab/gitaly/default.nix index a201d79a12a4..db2ac513b211 100644 --- a/pkgs/applications/version-management/gitlab/gitaly/default.nix +++ b/pkgs/applications/version-management/gitlab/gitaly/default.nix @@ -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="; diff --git a/pkgs/applications/video/kodi-packages/addon-update-script/default.nix b/pkgs/applications/video/kodi-packages/addon-update-script/default.nix new file mode 100644 index 000000000000..17c1d45783fa --- /dev/null +++ b/pkgs/applications/video/kodi-packages/addon-update-script/default.nix @@ -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 ] diff --git a/pkgs/applications/video/kodi-packages/certifi/default.nix b/pkgs/applications/video/kodi-packages/certifi/default.nix new file mode 100644 index 000000000000..bfce47b7b2ce --- /dev/null +++ b/pkgs/applications/video/kodi-packages/certifi/default.nix @@ -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; + }; +} diff --git a/pkgs/applications/video/kodi-packages/chardet/default.nix b/pkgs/applications/video/kodi-packages/chardet/default.nix new file mode 100644 index 000000000000..1e37f6b46e2b --- /dev/null +++ b/pkgs/applications/video/kodi-packages/chardet/default.nix @@ -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; + }; +} diff --git a/pkgs/applications/video/kodi-packages/controllers/default.nix b/pkgs/applications/video/kodi-packages/controllers/default.nix new file mode 100644 index 000000000000..bd29b7c0f7c3 --- /dev/null +++ b/pkgs/applications/video/kodi-packages/controllers/default.nix @@ -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 ]; + }; +} diff --git a/pkgs/applications/video/kodi-packages/idna/default.nix b/pkgs/applications/video/kodi-packages/idna/default.nix new file mode 100644 index 000000000000..abe5635e8281 --- /dev/null +++ b/pkgs/applications/video/kodi-packages/idna/default.nix @@ -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; + }; +} diff --git a/pkgs/applications/video/kodi-packages/inputstream-adaptive/default.nix b/pkgs/applications/video/kodi-packages/inputstream-adaptive/default.nix new file mode 100644 index 000000000000..cd4c5aca1171 --- /dev/null +++ b/pkgs/applications/video/kodi-packages/inputstream-adaptive/default.nix @@ -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 ]; + }; +} diff --git a/pkgs/applications/video/kodi-packages/inputstreamhelper/default.nix b/pkgs/applications/video/kodi-packages/inputstreamhelper/default.nix new file mode 100644 index 000000000000..2bbcc6d9d2c3 --- /dev/null +++ b/pkgs/applications/video/kodi-packages/inputstreamhelper/default.nix @@ -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; + }; +} diff --git a/pkgs/applications/video/kodi-packages/joystick/default.nix b/pkgs/applications/video/kodi-packages/joystick/default.nix new file mode 100644 index 000000000000..321ddce905fd --- /dev/null +++ b/pkgs/applications/video/kodi-packages/joystick/default.nix @@ -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 ]; +} diff --git a/pkgs/applications/video/kodi-packages/kodi-platform/default.nix b/pkgs/applications/video/kodi-packages/kodi-platform/default.nix new file mode 100644 index 000000000000..6d458f7377d7 --- /dev/null +++ b/pkgs/applications/video/kodi-packages/kodi-platform/default.nix @@ -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 ]; +} diff --git a/pkgs/applications/video/kodi-packages/myconnpy/default.nix b/pkgs/applications/video/kodi-packages/myconnpy/default.nix new file mode 100644 index 000000000000..a1b255765242 --- /dev/null +++ b/pkgs/applications/video/kodi-packages/myconnpy/default.nix @@ -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; + }; +} diff --git a/pkgs/applications/video/kodi-packages/netflix/default.nix b/pkgs/applications/video/kodi-packages/netflix/default.nix new file mode 100644 index 000000000000..20440153f76e --- /dev/null +++ b/pkgs/applications/video/kodi-packages/netflix/default.nix @@ -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; + }; +} diff --git a/pkgs/applications/video/kodi-packages/osmc-skin/default.nix b/pkgs/applications/video/kodi-packages/osmc-skin/default.nix new file mode 100644 index 000000000000..c83fd66a4333 --- /dev/null +++ b/pkgs/applications/video/kodi-packages/osmc-skin/default.nix @@ -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; + }; +} diff --git a/pkgs/applications/video/kodi-packages/pdfreader/default.nix b/pkgs/applications/video/kodi-packages/pdfreader/default.nix new file mode 100644 index 000000000000..430b9be3fd45 --- /dev/null +++ b/pkgs/applications/video/kodi-packages/pdfreader/default.nix @@ -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 ]; + }; +} diff --git a/pkgs/applications/video/kodi-packages/pvr-hdhomerun/default.nix b/pkgs/applications/video/kodi-packages/pvr-hdhomerun/default.nix new file mode 100644 index 000000000000..3920120b90ac --- /dev/null +++ b/pkgs/applications/video/kodi-packages/pvr-hdhomerun/default.nix @@ -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 ]; +} diff --git a/pkgs/applications/video/kodi-packages/pvr-hts/default.nix b/pkgs/applications/video/kodi-packages/pvr-hts/default.nix new file mode 100644 index 000000000000..935238758a6b --- /dev/null +++ b/pkgs/applications/video/kodi-packages/pvr-hts/default.nix @@ -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 ]; + }; + +} diff --git a/pkgs/applications/video/kodi-packages/pvr-iptvsimple/default.nix b/pkgs/applications/video/kodi-packages/pvr-iptvsimple/default.nix new file mode 100644 index 000000000000..b508eae8c7e8 --- /dev/null +++ b/pkgs/applications/video/kodi-packages/pvr-iptvsimple/default.nix @@ -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 ]; +} diff --git a/pkgs/applications/video/kodi-packages/requests/default.nix b/pkgs/applications/video/kodi-packages/requests/default.nix new file mode 100644 index 000000000000..05288b74b6c1 --- /dev/null +++ b/pkgs/applications/video/kodi-packages/requests/default.nix @@ -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; + }; +} diff --git a/pkgs/applications/video/kodi-packages/signals/default.nix b/pkgs/applications/video/kodi-packages/signals/default.nix new file mode 100644 index 000000000000..9d49e632721f --- /dev/null +++ b/pkgs/applications/video/kodi-packages/signals/default.nix @@ -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; + }; +} diff --git a/pkgs/applications/video/kodi-packages/steam-controller/default.nix b/pkgs/applications/video/kodi-packages/steam-controller/default.nix new file mode 100644 index 000000000000..5eee0eff9415 --- /dev/null +++ b/pkgs/applications/video/kodi-packages/steam-controller/default.nix @@ -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 ]; + }; + +} diff --git a/pkgs/applications/video/kodi-packages/steam-launcher/default.nix b/pkgs/applications/video/kodi-packages/steam-launcher/default.nix new file mode 100644 index 000000000000..cb140b4fb4d6 --- /dev/null +++ b/pkgs/applications/video/kodi-packages/steam-launcher/default.nix @@ -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 ]; + }; +} diff --git a/pkgs/applications/video/kodi-packages/svtplay/default.nix b/pkgs/applications/video/kodi-packages/svtplay/default.nix new file mode 100644 index 000000000000..cc7d350fa31c --- /dev/null +++ b/pkgs/applications/video/kodi-packages/svtplay/default.nix @@ -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 ]; + }; +} diff --git a/pkgs/applications/video/kodi-packages/urllib3/default.nix b/pkgs/applications/video/kodi-packages/urllib3/default.nix new file mode 100644 index 000000000000..e81469879139 --- /dev/null +++ b/pkgs/applications/video/kodi-packages/urllib3/default.nix @@ -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; + }; +} diff --git a/pkgs/applications/video/kodi-packages/vfs-libarchive/default.nix b/pkgs/applications/video/kodi-packages/vfs-libarchive/default.nix new file mode 100644 index 000000000000..13100b0dd35a --- /dev/null +++ b/pkgs/applications/video/kodi-packages/vfs-libarchive/default.nix @@ -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 ]; +} diff --git a/pkgs/applications/video/kodi-packages/vfs-sftp/default.nix b/pkgs/applications/video/kodi-packages/vfs-sftp/default.nix new file mode 100644 index 000000000000..7910ab640e91 --- /dev/null +++ b/pkgs/applications/video/kodi-packages/vfs-sftp/default.nix @@ -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 ]; +} diff --git a/pkgs/applications/video/kodi/build-kodi-addon.nix b/pkgs/applications/video/kodi/build-kodi-addon.nix new file mode 100644 index 000000000000..cd768b6fa991 --- /dev/null +++ b/pkgs/applications/video/kodi/build-kodi-addon.nix @@ -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)) diff --git a/pkgs/applications/video/kodi/build-kodi-binary-addon.nix b/pkgs/applications/video/kodi/build-kodi-binary-addon.nix new file mode 100644 index 000000000000..74ce508ab6a6 --- /dev/null +++ b/pkgs/applications/video/kodi/build-kodi-binary-addon.nix @@ -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)) diff --git a/pkgs/applications/video/kodi/default.nix b/pkgs/applications/video/kodi/default.nix index 55ba84cc454c..3f382efff11b 100644 --- a/pkgs/applications/video/kodi/default.nix +++ b/pkgs/applications/video/kodi/default.nix @@ -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 // { diff --git a/pkgs/applications/video/kodi/packages.nix b/pkgs/applications/video/kodi/packages.nix deleted file mode 100644 index 8e0ecbf9b9b7..000000000000 --- a/pkgs/applications/video/kodi/packages.nix +++ /dev/null @@ -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 diff --git a/pkgs/applications/video/kodi/wrapper.nix b/pkgs/applications/video/kodi/wrapper.nix index 2b4abbb500af..86164682138d 100644 --- a/pkgs/applications/video/kodi/wrapper.nix +++ b/pkgs/applications/video/kodi/wrapper.nix @@ -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 diff --git a/pkgs/applications/video/kodi/yatp/dont-monkey.patch b/pkgs/applications/video/kodi/yatp/dont-monkey.patch deleted file mode 100644 index 62d5d0c0d4c0..000000000000 --- a/pkgs/applications/video/kodi/yatp/dont-monkey.patch +++ /dev/null @@ -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: diff --git a/pkgs/applications/video/obs-studio/default.nix b/pkgs/applications/video/obs-studio/default.nix index 9fdb78c70382..caeffa56b178 100644 --- a/pkgs/applications/video/obs-studio/default.nix +++ b/pkgs/applications/video/obs-studio/default.nix @@ -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 diff --git a/pkgs/development/interpreters/bats/default.nix b/pkgs/development/interpreters/bats/default.nix index aa3abc655343..01d1b61cb801 100644 --- a/pkgs/development/interpreters/bats/default.nix +++ b/pkgs/development/interpreters/bats/default.nix @@ -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" diff --git a/pkgs/development/interpreters/rakudo/default.nix b/pkgs/development/interpreters/rakudo/default.nix index 99a812905d42..358b8663196b 100644 --- a/pkgs/development/interpreters/rakudo/default.nix +++ b/pkgs/development/interpreters/rakudo/default.nix @@ -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 ]; diff --git a/pkgs/development/interpreters/rakudo/moarvm.nix b/pkgs/development/interpreters/rakudo/moarvm.nix index f833c153b964..e5baacf5c295 100644 --- a/pkgs/development/interpreters/rakudo/moarvm.nix +++ b/pkgs/development/interpreters/rakudo/moarvm.nix @@ -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 ]; diff --git a/pkgs/development/interpreters/rakudo/nqp.nix b/pkgs/development/interpreters/rakudo/nqp.nix index b4b41fa88046..cd60bb3b7900 100644 --- a/pkgs/development/interpreters/rakudo/nqp.nix +++ b/pkgs/development/interpreters/rakudo/nqp.nix @@ -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 ]; diff --git a/pkgs/development/libraries/science/math/primesieve/default.nix b/pkgs/development/libraries/science/math/primesieve/default.nix index d99026bc5659..d4f16d230e60 100644 --- a/pkgs/development/libraries/science/math/primesieve/default.nix +++ b/pkgs/development/libraries/science/math/primesieve/default.nix @@ -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; { diff --git a/pkgs/development/python-modules/ajsonrpc/default.nix b/pkgs/development/python-modules/ajsonrpc/default.nix new file mode 100644 index 000000000000..e5a81d9cfa6e --- /dev/null +++ b/pkgs/development/python-modules/ajsonrpc/default.nix @@ -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 ]; + }; +} diff --git a/pkgs/development/python-modules/azure-mgmt-netapp/default.nix b/pkgs/development/python-modules/azure-mgmt-netapp/default.nix index ec1caa5c3e4a..35dc7ef05aba 100644 --- a/pkgs/development/python-modules/azure-mgmt-netapp/default.nix +++ b/pkgs/development/python-modules/azure-mgmt-netapp/default.nix @@ -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"; }; diff --git a/pkgs/development/python-modules/ftfy/default.nix b/pkgs/development/python-modules/ftfy/default.nix index dbc363172288..403ca5247923 100644 --- a/pkgs/development/python-modules/ftfy/default.nix +++ b/pkgs/development/python-modules/ftfy/default.nix @@ -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; { diff --git a/pkgs/development/python-modules/google-cloud-bigquery-datatransfer/default.nix b/pkgs/development/python-modules/google-cloud-bigquery-datatransfer/default.nix index 8f67fed79d7a..ccc8aa83975f 100644 --- a/pkgs/development/python-modules/google-cloud-bigquery-datatransfer/default.nix +++ b/pkgs/development/python-modules/google-cloud-bigquery-datatransfer/default.nix @@ -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 ]; diff --git a/pkgs/development/python-modules/google-cloud-bigquery/default.nix b/pkgs/development/python-modules/google-cloud-bigquery/default.nix index 2aa615a221f1..6f2e6c473a34 100644 --- a/pkgs/development/python-modules/google-cloud-bigquery/default.nix +++ b/pkgs/development/python-modules/google-cloud-bigquery/default.nix @@ -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 = [ diff --git a/pkgs/development/python-modules/mergedeep/default.nix b/pkgs/development/python-modules/mergedeep/default.nix index cdd19beb68d9..46de34050239 100644 --- a/pkgs/development/python-modules/mergedeep/default.nix +++ b/pkgs/development/python-modules/mergedeep/default.nix @@ -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 ]; diff --git a/pkgs/development/python-modules/minidump/default.nix b/pkgs/development/python-modules/minidump/default.nix index 346430d23926..60440ff4b488 100644 --- a/pkgs/development/python-modules/minidump/default.nix +++ b/pkgs/development/python-modules/minidump/default.nix @@ -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 diff --git a/pkgs/development/python-modules/pyinsteon/default.nix b/pkgs/development/python-modules/pyinsteon/default.nix index cd8c566c4654..cfe5112ab221 100644 --- a/pkgs/development/python-modules/pyinsteon/default.nix +++ b/pkgs/development/python-modules/pyinsteon/default.nix @@ -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 = [ diff --git a/pkgs/development/python-modules/pymitv/default.nix b/pkgs/development/python-modules/pymitv/default.nix index ffaabb04a291..32f90d07dcb4 100644 --- a/pkgs/development/python-modules/pymitv/default.nix +++ b/pkgs/development/python-modules/pymitv/default.nix @@ -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 ]; diff --git a/pkgs/development/tools/rust/rust-analyzer/default.nix b/pkgs/development/tools/rust/rust-analyzer/default.nix index 642f2e936e19..09e24775a351 100644 --- a/pkgs/development/tools/rust/rust-analyzer/default.nix +++ b/pkgs/development/tools/rust/rust-analyzer/default.nix @@ -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 {} { diff --git a/pkgs/development/tools/rust/rust-analyzer/generic.nix b/pkgs/development/tools/rust/rust-analyzer/generic.nix index ecca83f89a4e..ddb834af6c38 100644 --- a/pkgs/development/tools/rust/rust-analyzer/generic.nix +++ b/pkgs/development/tools/rust/rust-analyzer/generic.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; diff --git a/pkgs/tools/X11/alttab/default.nix b/pkgs/tools/X11/alttab/default.nix index 34c17a7b5180..591edff2add7 100644 --- a/pkgs/tools/X11/alttab/default.nix +++ b/pkgs/tools/X11/alttab/default.nix @@ -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 ]; }; diff --git a/pkgs/tools/admin/google-cloud-sdk/default.nix b/pkgs/tools/admin/google-cloud-sdk/default.nix index 1d585514f7e0..1d70fa24fb5a 100644 --- a/pkgs/tools/admin/google-cloud-sdk/default.nix +++ b/pkgs/tools/admin/google-cloud-sdk/default.nix @@ -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. diff --git a/pkgs/tools/admin/turbovnc/default.nix b/pkgs/tools/admin/turbovnc/default.nix index 16ae53d25b91..33d248ffde88 100644 --- a/pkgs/tools/admin/turbovnc/default.nix +++ b/pkgs/tools/admin/turbovnc/default.nix @@ -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; diff --git a/pkgs/tools/audio/mpd-mpris/default.nix b/pkgs/tools/audio/mpd-mpris/default.nix index af4000dfa448..b90ab80befdc 100644 --- a/pkgs/tools/audio/mpd-mpris/default.nix +++ b/pkgs/tools/audio/mpd-mpris/default.nix @@ -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; }; } diff --git a/pkgs/tools/cd-dvd/cdi2iso/default.nix b/pkgs/tools/cd-dvd/cdi2iso/default.nix index 9df7ab7657f1..26768747a46c 100644 --- a/pkgs/tools/cd-dvd/cdi2iso/default.nix +++ b/pkgs/tools/cd-dvd/cdi2iso/default.nix @@ -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; }; } diff --git a/pkgs/tools/compression/dejsonlz4/default.nix b/pkgs/tools/compression/dejsonlz4/default.nix index 9e6f95aecb8e..07b6a5979a4f 100644 --- a/pkgs/tools/compression/dejsonlz4/default.nix +++ b/pkgs/tools/compression/dejsonlz4/default.nix @@ -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; }; } diff --git a/pkgs/tools/compression/zdelta/builder.sh b/pkgs/tools/compression/zdelta/builder.sh deleted file mode 100644 index 03db413181d7..000000000000 --- a/pkgs/tools/compression/zdelta/builder.sh +++ /dev/null @@ -1,8 +0,0 @@ -source $stdenv/setup - -installPhase() { - mkdir -p $out/bin - cp -p zdc zdu $out/bin -} - -genericBuild diff --git a/pkgs/tools/compression/zdelta/default.nix b/pkgs/tools/compression/zdelta/default.nix index 46760c913060..b30a43f33c13 100644 --- a/pkgs/tools/compression/zdelta/default.nix +++ b/pkgs/tools/compression/zdelta/default.nix @@ -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; }; } diff --git a/pkgs/tools/filesystems/catcli/default.nix b/pkgs/tools/filesystems/catcli/default.nix index 1552505701df..be9349daa27c 100644 --- a/pkgs/tools/filesystems/catcli/default.nix +++ b/pkgs/tools/filesystems/catcli/default.nix @@ -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; }; } diff --git a/pkgs/tools/filesystems/cpcfs/default.nix b/pkgs/tools/filesystems/cpcfs/default.nix index 2aa63208e008..a439e29358f7 100644 --- a/pkgs/tools/filesystems/cpcfs/default.nix +++ b/pkgs/tools/filesystems/cpcfs/default.nix @@ -36,6 +36,6 @@ stdenv.mkDerivation rec { homepage = "https://github.com/derikz/cpcfs/" ; license = licenses.bsd2; maintainers = [ ]; - platforms = platforms.linux; + platforms = platforms.all; }; } diff --git a/pkgs/tools/filesystems/idsk/default.nix b/pkgs/tools/filesystems/idsk/default.nix index 12a0af7ea4d3..0b7ae339053c 100644 --- a/pkgs/tools/filesystems/idsk/default.nix +++ b/pkgs/tools/filesystems/idsk/default.nix @@ -24,6 +24,6 @@ stdenv.mkDerivation rec { homepage = "https://github.com/cpcsdk/idsk" ; license = licenses.mit; maintainers = [ ]; - platforms = platforms.linux; + platforms = platforms.all; }; } diff --git a/pkgs/tools/graphics/epstool/default.nix b/pkgs/tools/graphics/epstool/default.nix index 8052434ff0b8..6910f458a17d 100644 --- a/pkgs/tools/graphics/epstool/default.nix +++ b/pkgs/tools/graphics/epstool/default.nix @@ -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; }; } diff --git a/pkgs/tools/graphics/imgurbash2/default.nix b/pkgs/tools/graphics/imgurbash2/default.nix index 8b79e3373a68..30848d7d0dc9 100644 --- a/pkgs/tools/graphics/imgurbash2/default.nix +++ b/pkgs/tools/graphics/imgurbash2/default.nix @@ -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"; }; diff --git a/pkgs/tools/graphics/spirv-cross/default.nix b/pkgs/tools/graphics/spirv-cross/default.nix index cb5a37527bf6..19359698f02e 100644 --- a/pkgs/tools/graphics/spirv-cross/default.nix +++ b/pkgs/tools/graphics/spirv-cross/default.nix @@ -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 ]; }; diff --git a/pkgs/tools/misc/abduco/default.nix b/pkgs/tools/misc/abduco/default.nix index dbba2193b14c..9493df1c66c4 100644 --- a/pkgs/tools/misc/abduco/default.nix +++ b/pkgs/tools/misc/abduco/default.nix @@ -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"; diff --git a/pkgs/tools/misc/apparix/default.nix b/pkgs/tools/misc/apparix/default.nix index 7d8de2c14367..d446a2cf0af6 100644 --- a/pkgs/tools/misc/apparix/default.nix +++ b/pkgs/tools/misc/apparix/default.nix @@ -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; }; } diff --git a/pkgs/tools/misc/bash_unit/default.nix b/pkgs/tools/misc/bash_unit/default.nix index 2fd93cb33b97..7541281eeb67 100644 --- a/pkgs/tools/misc/bash_unit/default.nix +++ b/pkgs/tools/misc/bash_unit/default.nix @@ -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; }; } diff --git a/pkgs/tools/misc/bbe/default.nix b/pkgs/tools/misc/bbe/default.nix index fb62b8be8947..5cd7326d7b17 100644 --- a/pkgs/tools/misc/bbe/default.nix +++ b/pkgs/tools/misc/bbe/default.nix @@ -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 ]; }; } diff --git a/pkgs/tools/misc/bcunit/default.nix b/pkgs/tools/misc/bcunit/default.nix index bc3bbc8276dd..099ae294bec9 100644 --- a/pkgs/tools/misc/bcunit/default.nix +++ b/pkgs/tools/misc/bcunit/default.nix @@ -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; }; } diff --git a/pkgs/tools/misc/fdtools/default.nix b/pkgs/tools/misc/fdtools/default.nix index d096f903bd1a..2a2f44d81821 100644 --- a/pkgs/tools/misc/fdtools/default.nix +++ b/pkgs/tools/misc/fdtools/default.nix @@ -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 diff --git a/pkgs/tools/misc/git-fire/default.nix b/pkgs/tools/misc/git-fire/default.nix index bba1bd65a54d..15dc34cd5267 100644 --- a/pkgs/tools/misc/git-fire/default.nix +++ b/pkgs/tools/misc/git-fire/default.nix @@ -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 ]; }; } diff --git a/pkgs/tools/misc/ministat/default.nix b/pkgs/tools/misc/ministat/default.nix index 68670599c1ee..0cd3ff3a5c1f 100644 --- a/pkgs/tools/misc/ministat/default.nix +++ b/pkgs/tools/misc/ministat/default.nix @@ -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; }; } diff --git a/pkgs/tools/misc/sfeed/default.nix b/pkgs/tools/misc/sfeed/default.nix index 57e49c887454..93ef69ea2ea5 100644 --- a/pkgs/tools/misc/sfeed/default.nix +++ b/pkgs/tools/misc/sfeed/default.nix @@ -27,6 +27,6 @@ stdenv.mkDerivation rec { ''; license = licenses.isc; maintainers = [ maintainers.matthiasbeyer ]; - platforms = platforms.linux; + platforms = platforms.all; }; } diff --git a/pkgs/tools/misc/usbview/default.nix b/pkgs/tools/misc/usbview/default.nix new file mode 100644 index 000000000000..2f417ea86de5 --- /dev/null +++ b/pkgs/tools/misc/usbview/default.nix @@ -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; + }; +} diff --git a/pkgs/tools/misc/vimer/default.nix b/pkgs/tools/misc/vimer/default.nix index 1fbb85f07516..bbab2d64bb00 100644 --- a/pkgs/tools/misc/vimer/default.nix +++ b/pkgs/tools/misc/vimer/default.nix @@ -25,7 +25,7 @@ stdenv.mkDerivation rec { ''; license = licenses.mit; maintainers = [ maintainers.matthiasbeyer ]; - platforms = platforms.linux; + platforms = platforms.all; }; } diff --git a/pkgs/tools/networking/altermime/default.nix b/pkgs/tools/networking/altermime/default.nix index c28df4614592..703af40864ae 100644 --- a/pkgs/tools/networking/altermime/default.nix +++ b/pkgs/tools/networking/altermime/default.nix @@ -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/"; }; diff --git a/pkgs/tools/networking/dhcping/default.nix b/pkgs/tools/networking/dhcping/default.nix index d4255d46096a..f1f8cd8b5e4b 100644 --- a/pkgs/tools/networking/dhcping/default.nix +++ b/pkgs/tools/networking/dhcping/default.nix @@ -27,6 +27,6 @@ stdenv.mkDerivation rec { ''; homepage = "http://www.mavetju.org/unix/general.php"; license = licenses.bsd2; - platforms = platforms.linux; + platforms = platforms.unix; }; } diff --git a/pkgs/tools/networking/httperf/default.nix b/pkgs/tools/networking/httperf/default.nix index f5c888dc4bb6..ea567f10d488 100644 --- a/pkgs/tools/networking/httperf/default.nix +++ b/pkgs/tools/networking/httperf/default.nix @@ -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; }; } diff --git a/pkgs/tools/networking/kapp/default.nix b/pkgs/tools/networking/kapp/default.nix index dfb641348714..2ff2fd8daec1 100644 --- a/pkgs/tools/networking/kapp/default.nix +++ b/pkgs/tools/networking/kapp/default.nix @@ -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"; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index ec2c7d39df0c..380e8914272b 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -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 { diff --git a/pkgs/top-level/kodi-packages.nix b/pkgs/top-level/kodi-packages.nix new file mode 100644 index 000000000000..f9b20dd2bc7e --- /dev/null +++ b/pkgs/top-level/kodi-packages.nix @@ -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 diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 47573d3b5e7d..2b35c242edb3 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -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 { };