mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-22 23:13:19 +00:00
Merge pull request #79235 from goertzenator/add_vispy
vispy: init at 0.6.4
This commit is contained in:
commit
1be9aa3a83
@ -3064,6 +3064,12 @@
|
|||||||
githubId = 25820499;
|
githubId = 25820499;
|
||||||
name = "Roman Kretschmer";
|
name = "Roman Kretschmer";
|
||||||
};
|
};
|
||||||
|
goertzenator = {
|
||||||
|
email = "daniel.goertzen@gmail.com";
|
||||||
|
github = "goertzenator";
|
||||||
|
githubId = 605072;
|
||||||
|
name = "Daniel Goertzen";
|
||||||
|
};
|
||||||
goibhniu = {
|
goibhniu = {
|
||||||
email = "cillian.deroiste@gmail.com";
|
email = "cillian.deroiste@gmail.com";
|
||||||
github = "cillianderoiste";
|
github = "cillianderoiste";
|
||||||
|
31
pkgs/development/python-modules/freetype-py/default.nix
Normal file
31
pkgs/development/python-modules/freetype-py/default.nix
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
{ lib, buildPythonPackage, fetchPypi, substituteAll, stdenv, setuptools_scm, freetype }:
|
||||||
|
|
||||||
|
buildPythonPackage rec {
|
||||||
|
pname = "freetype-py";
|
||||||
|
version = "2.1.0.post1";
|
||||||
|
|
||||||
|
src = fetchPypi {
|
||||||
|
inherit pname version;
|
||||||
|
sha256 = "1k62fx53qrv9nb73mpqi2r11wzbx41qfv5qppvh6rylywnrknf3n";
|
||||||
|
};
|
||||||
|
|
||||||
|
patches = [
|
||||||
|
(substituteAll {
|
||||||
|
src = ./library-paths.patch;
|
||||||
|
freetype = "${freetype.out}/lib/libfreetype${stdenv.hostPlatform.extensions.sharedLibrary}";
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
|
nativeBuildInputs = [ setuptools_scm ];
|
||||||
|
|
||||||
|
propagatedBuildInputs = [ freetype ];
|
||||||
|
|
||||||
|
pythonImportsCheck = [ "freetype" ];
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
homepage = "https://github.com/rougier/freetype-py";
|
||||||
|
description = "FreeType (high-level Python API)";
|
||||||
|
license = licenses.bsd3;
|
||||||
|
maintainers = with maintainers; [ goertzenator ];
|
||||||
|
};
|
||||||
|
}
|
@ -0,0 +1,37 @@
|
|||||||
|
diff --git a/freetype/raw.py b/freetype/raw.py
|
||||||
|
index ff3bea3..78c68ab 100644
|
||||||
|
--- a/freetype/raw.py
|
||||||
|
+++ b/freetype/raw.py
|
||||||
|
@@ -19,31 +19,7 @@ from freetype.ft_enums import *
|
||||||
|
from freetype.ft_errors import *
|
||||||
|
from freetype.ft_structs import *
|
||||||
|
|
||||||
|
-# First, look for a bundled FreeType shared object on the top-level of the
|
||||||
|
-# installed freetype-py module.
|
||||||
|
-system = platform.system()
|
||||||
|
-if system == 'Windows':
|
||||||
|
- library_name = 'libfreetype.dll'
|
||||||
|
-elif system == 'Darwin':
|
||||||
|
- library_name = 'libfreetype.dylib'
|
||||||
|
-else:
|
||||||
|
- library_name = 'libfreetype.so'
|
||||||
|
-
|
||||||
|
-filename = os.path.join(os.path.dirname(freetype.__file__), library_name)
|
||||||
|
-
|
||||||
|
-# If no bundled shared object is found, look for a system-wide installed one.
|
||||||
|
-if not os.path.exists(filename):
|
||||||
|
- # on windows all ctypes does when checking for the library
|
||||||
|
- # is to append .dll to the end and look for an exact match
|
||||||
|
- # within any entry in PATH.
|
||||||
|
- filename = ctypes.util.find_library('freetype')
|
||||||
|
-
|
||||||
|
- if filename is None:
|
||||||
|
- if platform.system() == 'Windows':
|
||||||
|
- # Check current working directory for dll as ctypes fails to do so
|
||||||
|
- filename = os.path.join(os.path.realpath('.'), "freetype.dll")
|
||||||
|
- else:
|
||||||
|
- filename = library_name
|
||||||
|
+filename = "@freetype@"
|
||||||
|
|
||||||
|
try:
|
||||||
|
_lib = ctypes.CDLL(filename)
|
40
pkgs/development/python-modules/vispy/default.nix
Normal file
40
pkgs/development/python-modules/vispy/default.nix
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
{ lib, buildPythonPackage, substituteAll, stdenv,
|
||||||
|
fetchPypi, numpy, cython, freetype-py, fontconfig, libGL,
|
||||||
|
setuptools_scm, setuptools-scm-git-archive
|
||||||
|
}:
|
||||||
|
|
||||||
|
buildPythonPackage rec {
|
||||||
|
pname = "vispy";
|
||||||
|
version = "0.6.4";
|
||||||
|
|
||||||
|
src = fetchPypi {
|
||||||
|
inherit pname version;
|
||||||
|
sha256 = "07sb4qww6mgzm66qsrr3pd66yz39r6jj4ibb3qmfg1kwnxs6ayv2";
|
||||||
|
};
|
||||||
|
|
||||||
|
patches = [
|
||||||
|
(substituteAll {
|
||||||
|
src = ./library-paths.patch;
|
||||||
|
fontconfig = "${fontconfig.lib}/lib/libfontconfig${stdenv.hostPlatform.extensions.sharedLibrary}";
|
||||||
|
gl = "${libGL.out}/lib/libGL${stdenv.hostPlatform.extensions.sharedLibrary}";
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
cython setuptools_scm setuptools-scm-git-archive
|
||||||
|
];
|
||||||
|
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
numpy freetype-py fontconfig libGL
|
||||||
|
];
|
||||||
|
|
||||||
|
doCheck = false; # otherwise runs OSX code on linux.
|
||||||
|
pythonImportsCheck = [ "vispy" ];
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
homepage = "http://vispy.org/index.html";
|
||||||
|
description = "Interactive scientific visualization in Python";
|
||||||
|
license = licenses.bsd3;
|
||||||
|
maintainers = with maintainers; [ goertzenator ];
|
||||||
|
};
|
||||||
|
}
|
39
pkgs/development/python-modules/vispy/library-paths.patch
Normal file
39
pkgs/development/python-modules/vispy/library-paths.patch
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
diff --git a/vispy/ext/fontconfig.py b/vispy/ext/fontconfig.py
|
||||||
|
index ff24662b..6a5079f0 100644
|
||||||
|
--- a/vispy/ext/fontconfig.py
|
||||||
|
+++ b/vispy/ext/fontconfig.py
|
||||||
|
@@ -7,10 +7,7 @@ from ..util.wrappers import run_subprocess
|
||||||
|
|
||||||
|
# Some code adapted from Pyglet
|
||||||
|
|
||||||
|
-fc = util.find_library('fontconfig')
|
||||||
|
-if fc is None:
|
||||||
|
- raise ImportError('fontconfig not found')
|
||||||
|
-fontconfig = cdll.LoadLibrary(fc)
|
||||||
|
+fontconfig = cdll.LoadLibrary('@fontconfig@')
|
||||||
|
|
||||||
|
FC_FAMILY = 'family'.encode('ASCII')
|
||||||
|
FC_SIZE = 'size'.encode('ASCII')
|
||||||
|
diff --git a/vispy/gloo/gl/gl2.py b/vispy/gloo/gl/gl2.py
|
||||||
|
index d5bd9c38..63350e73 100644
|
||||||
|
--- a/vispy/gloo/gl/gl2.py
|
||||||
|
+++ b/vispy/gloo/gl/gl2.py
|
||||||
|
@@ -39,16 +39,8 @@ elif sys.platform.startswith('win'):
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
# Unix-ish
|
||||||
|
- if sys.platform.startswith('darwin'):
|
||||||
|
- _fname = ctypes.util.find_library('OpenGL')
|
||||||
|
- else:
|
||||||
|
- _fname = ctypes.util.find_library('GL')
|
||||||
|
- if not _fname:
|
||||||
|
- logger.warning('Could not load OpenGL library.')
|
||||||
|
- _lib = None
|
||||||
|
- else:
|
||||||
|
- # Load lib
|
||||||
|
- _lib = ctypes.cdll.LoadLibrary(_fname)
|
||||||
|
+ # Load lib
|
||||||
|
+ _lib = ctypes.cdll.LoadLibrary("@gl@")
|
||||||
|
|
||||||
|
|
||||||
|
def _have_context():
|
@ -766,6 +766,8 @@ in {
|
|||||||
|
|
||||||
foxdot = callPackage ../development/python-modules/foxdot { };
|
foxdot = callPackage ../development/python-modules/foxdot { };
|
||||||
|
|
||||||
|
freetype-py = callPackage ../development/python-modules/freetype-py { };
|
||||||
|
|
||||||
fsspec = callPackage ../development/python-modules/fsspec { };
|
fsspec = callPackage ../development/python-modules/fsspec { };
|
||||||
|
|
||||||
furl = callPackage ../development/python-modules/furl { };
|
furl = callPackage ../development/python-modules/furl { };
|
||||||
@ -6242,6 +6244,8 @@ in {
|
|||||||
|
|
||||||
virtualenv = callPackage ../development/python-modules/virtualenv { };
|
virtualenv = callPackage ../development/python-modules/virtualenv { };
|
||||||
|
|
||||||
|
vispy = callPackage ../development/python-modules/vispy { };
|
||||||
|
|
||||||
vsts = callPackage ../development/python-modules/vsts { };
|
vsts = callPackage ../development/python-modules/vsts { };
|
||||||
|
|
||||||
vsts-cd-manager = callPackage ../development/python-modules/vsts-cd-manager { };
|
vsts-cd-manager = callPackage ../development/python-modules/vsts-cd-manager { };
|
||||||
|
Loading…
Reference in New Issue
Block a user