tangled
alpha
login
or
join now
pyrox.dev
/
nixpkgs
lol
0
fork
atom
overview
issues
pulls
pipelines
pythonPackages.cairocffi: move out of python-modules.nix
Jan Tojnar
8 years ago
cd35a39b
795e49bc
+67
-53
3 changed files
expand all
collapse all
unified
split
pkgs
applications
window-managers
qtile
default.nix
development
python-modules
cairocffi
default.nix
top-level
python-packages.nix
+1
-1
pkgs/applications/window-managers/qtile/default.nix
···
1
1
{ stdenv, fetchFromGitHub, python27Packages, glib, cairo, pango, pkgconfig, libxcb, xcbutilcursor }:
2
2
3
3
let cairocffi-xcffib = python27Packages.cairocffi.override {
4
4
-
pythonPath = [ python27Packages.xcffib ];
4
4
+
withXcffib = true;
5
5
};
6
6
in
7
7
+65
pkgs/development/python-modules/cairocffi/default.nix
···
1
1
+
{ buildPythonPackage
2
2
+
, fetchurl
3
3
+
, makeFontsConf
4
4
+
, freefont_ttf
5
5
+
, pytest
6
6
+
, glibcLocales
7
7
+
, cairo
8
8
+
, cffi
9
9
+
, withXcffib ? false, xcffib
10
10
+
, python
11
11
+
, fetchpatch
12
12
+
, glib
13
13
+
, gdk_pixbuf }:
14
14
+
15
15
+
buildPythonPackage rec {
16
16
+
name = "cairocffi-0.7.2";
17
17
+
18
18
+
src = fetchurl {
19
19
+
url = "mirror://pypi/c/cairocffi/${name}.tar.gz";
20
20
+
sha256 = "e42b4256d27bd960cbf3b91a6c55d602defcdbc2a73f7317849c80279feeb975";
21
21
+
};
22
22
+
23
23
+
LC_ALL = "en_US.UTF-8";
24
24
+
25
25
+
# checkPhase require at least one 'normal' font and one 'monospace',
26
26
+
# otherwise glyph tests fails
27
27
+
FONTCONFIG_FILE = makeFontsConf {
28
28
+
fontDirectories = [ freefont_ttf ];
29
29
+
};
30
30
+
31
31
+
checkInputs = [ pytest glibcLocales ];
32
32
+
propagatedBuildInputs = [ cairo cffi ] ++ lib.optional withXcffib xcffib;
33
33
+
34
34
+
checkPhase = ''
35
35
+
py.test $out/${python.sitePackages}
36
36
+
'';
37
37
+
38
38
+
# FIXME: make gdk_pixbuf dependency optional
39
39
+
# Happens with 0.7.1 and 0.7.2
40
40
+
# OSError: dlopen() failed to load a library: gdk_pixbuf-2.0 / gdk_pixbuf-2.0-0
41
41
+
42
42
+
patches = [
43
43
+
# This patch from PR substituted upstream
44
44
+
(fetchpatch {
45
45
+
url = "https://github.com/avnik/cairocffi/commit/2266882e263c5efc87350cf016d117b2ec6a1d59.patch";
46
46
+
sha256 = "0gb570z3ivf1b0ixsk526n3h29m8c5rhjsiyam7rr3x80dp65cdl";
47
47
+
})
48
48
+
49
49
+
./dlopen-paths.patch
50
50
+
./fix_test_scaled_font.patch
51
51
+
];
52
52
+
53
53
+
postPatch = ''
54
54
+
# Hardcode cairo library path
55
55
+
substituteInPlace cairocffi/__init__.py --subst-var-by cairo ${cairo.out}
56
56
+
substituteInPlace cairocffi/__init__.py --subst-var-by glib ${glib.out}
57
57
+
substituteInPlace cairocffi/__init__.py --subst-var-by gdk_pixbuf ${gdk_pixbuf.out}
58
58
+
'';
59
59
+
60
60
+
meta = {
61
61
+
homepage = https://github.com/SimonSapin/cairocffi;
62
62
+
license = "bsd";
63
63
+
description = "cffi-based cairo bindings for Python";
64
64
+
};
65
65
+
}
+1
-52
pkgs/top-level/python-packages.nix
···
2052
2052
2053
2053
canmatrix = callPackage ../development/python-modules/canmatrix {};
2054
2054
2055
2055
-
cairocffi = buildPythonPackage rec {
2056
2056
-
name = "cairocffi-0.7.2";
2057
2057
-
2058
2058
-
src = pkgs.fetchurl {
2059
2059
-
url = "mirror://pypi/c/cairocffi/${name}.tar.gz";
2060
2060
-
sha256 = "e42b4256d27bd960cbf3b91a6c55d602defcdbc2a73f7317849c80279feeb975";
2061
2061
-
};
2062
2062
-
2063
2063
-
LC_ALL = "en_US.UTF-8";
2064
2064
-
2065
2065
-
# checkPhase require at least one 'normal' font and one 'monospace',
2066
2066
-
# otherwise glyph tests fails
2067
2067
-
FONTCONFIG_FILE = pkgs.makeFontsConf {
2068
2068
-
fontDirectories = [ pkgs.freefont_ttf ];
2069
2069
-
};
2070
2070
-
2071
2071
-
buildInputs = with self; [ pytest pkgs.glibcLocales ];
2072
2072
-
propagatedBuildInputs = with self; [ pkgs.cairo cffi ];
2073
2073
-
2074
2074
-
checkPhase = ''
2075
2075
-
py.test $out/${python.sitePackages}
2076
2076
-
'';
2077
2077
-
2078
2078
-
# FIXME: make gdk_pixbuf dependency optional (as wel as xcfffi)
2079
2079
-
# Happens with 0.7.1 and 0.7.2
2080
2080
-
# OSError: dlopen() failed to load a library: gdk_pixbuf-2.0 / gdk_pixbuf-2.0-0
2081
2081
-
2082
2082
-
patches = [
2083
2083
-
# This patch from PR substituted upstream
2084
2084
-
(pkgs.fetchpatch {
2085
2085
-
url = "https://github.com/avnik/cairocffi/commit/2266882e263c5efc87350cf016d117b2ec6a1d59.patch";
2086
2086
-
sha256 = "0gb570z3ivf1b0ixsk526n3h29m8c5rhjsiyam7rr3x80dp65cdl";
2087
2087
-
})
2088
2088
-
2089
2089
-
../development/python-modules/cairocffi/dlopen-paths.patch
2090
2090
-
../development/python-modules/cairocffi/fix_test_scaled_font.patch
2091
2091
-
];
2092
2092
-
2093
2093
-
postPatch = ''
2094
2094
-
# Hardcode cairo library path
2095
2095
-
substituteInPlace cairocffi/__init__.py --subst-var-by cairo ${pkgs.cairo.out}
2096
2096
-
substituteInPlace cairocffi/__init__.py --subst-var-by glib ${pkgs.glib.out}
2097
2097
-
substituteInPlace cairocffi/__init__.py --subst-var-by gdk_pixbuf ${pkgs.gdk_pixbuf.out}
2098
2098
-
'';
2099
2099
-
2100
2100
-
meta = {
2101
2101
-
homepage = https://github.com/SimonSapin/cairocffi;
2102
2102
-
license = "bsd";
2103
2103
-
description = "cffi-based cairo bindings for Python";
2104
2104
-
};
2105
2105
-
};
2106
2106
-
2055
2055
+
cairocffi = callPackage ../development/python-modules/cairocffi {};
2107
2056
2108
2057
cairosvg = buildPythonPackage rec {
2109
2058
version = "1.0.18";