From 0f603556a9e03742b5da6ebdf2b7c0a8ed3bc92b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= Date: Tue, 1 Mar 2022 20:50:57 +0000 Subject: [PATCH] python3Packages.nextcord: init at 2.0.0a8 --- .../python-modules/nextcord/default.nix | 64 +++++++++++++++++++ .../python-modules/nextcord/paths.patch | 26 ++++++++ pkgs/top-level/python-packages.nix | 2 + 3 files changed, 92 insertions(+) create mode 100644 pkgs/development/python-modules/nextcord/default.nix create mode 100644 pkgs/development/python-modules/nextcord/paths.patch diff --git a/pkgs/development/python-modules/nextcord/default.nix b/pkgs/development/python-modules/nextcord/default.nix new file mode 100644 index 000000000000..345a77239bf4 --- /dev/null +++ b/pkgs/development/python-modules/nextcord/default.nix @@ -0,0 +1,64 @@ +{ lib +, stdenv +, buildPythonPackage +, pythonOlder +, fetchFromGitHub +, substituteAll +, ffmpeg +, libopus +, aiohttp +, aiodns +, brotli +, cchardet +, orjson +, pynacl +}: + +buildPythonPackage rec { + pname = "nextcord"; + version = "2.0.0a8"; + + format = "setuptools"; + + disabled = pythonOlder "3.8"; + + src = fetchFromGitHub { + owner = "nextcord"; + repo = "nextcord"; + rev = version; + hash = "sha256-aYFY58zWZlZwW3xwa1iAK4w29AofKIkTyCjQ2nR8JrY="; + }; + + patches = [ + (substituteAll { + src = ./paths.patch; + ffmpeg = "${ffmpeg}/bin/ffmpeg"; + libopus = "${libopus}/lib/libopus${stdenv.hostPlatform.extensions.sharedLibrary}"; + }) + ]; + + propagatedBuildInputs = [ + aiodns + aiohttp + brotli + cchardet + orjson + pynacl + ]; + + # upstream has no tests + doCheck = false; + + pythonImportsCheck = [ + "nextcord" + "nextcord.ext.commands" + "nextcord.ext.tasks" + ]; + + meta = with lib; { + description = "Python wrapper for the Discord API forked from discord.py"; + homepage = "https://github.com/nextcord/nextcord"; + license = licenses.mit; + maintainers = with maintainers; [ dotlambda ]; + }; +} diff --git a/pkgs/development/python-modules/nextcord/paths.patch b/pkgs/development/python-modules/nextcord/paths.patch new file mode 100644 index 000000000000..389637a18878 --- /dev/null +++ b/pkgs/development/python-modules/nextcord/paths.patch @@ -0,0 +1,26 @@ +diff --git a/nextcord/opus.py b/nextcord/opus.py +index 97d437a3..755e1a5c 100644 +--- a/nextcord/opus.py ++++ b/nextcord/opus.py +@@ -213,7 +213,7 @@ def _load_default() -> bool: + _filename = os.path.join(_basedir, 'bin', f'libopus-0.{_target}.dll') + _lib = libopus_loader(_filename) + else: +- _lib = libopus_loader(ctypes.util.find_library('opus')) ++ _lib = libopus_loader('@libopus@') + except Exception: + _lib = None + +diff --git a/nextcord/player.py b/nextcord/player.py +index bedefc5a..34de0459 100644 +--- a/nextcord/player.py ++++ b/nextcord/player.py +@@ -140,7 +140,7 @@ class FFmpegAudio(AudioSource): + .. versionadded:: 1.3 + """ + +- def __init__(self, source: Union[str, io.BufferedIOBase], *, executable: str = 'ffmpeg', args: Any, **subprocess_kwargs: Any): ++ def __init__(self, source: Union[str, io.BufferedIOBase], *, executable: str = '@ffmpeg@', args: Any, **subprocess_kwargs: Any): + piping = subprocess_kwargs.get('stdin') == subprocess.PIPE + if piping and isinstance(source, str): + raise TypeError("parameter conflict: 'source' parameter cannot be a string when piping to stdin") diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index b2b3831e65d7..63a7005db1c2 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -5468,6 +5468,8 @@ in { nextcloudmonitor = callPackage ../development/python-modules/nextcloudmonitor { }; + nextcord = callPackage ../development/python-modules/nextcord { }; + nghttp2 = (toPythonModule (pkgs.nghttp2.override { inherit (self) python cython setuptools; inherit (pkgs) ncurses;