tangled
alpha
login
or
join now
pyrox.dev
/
nixpkgs
lol
0
fork
atom
overview
issues
pulls
pipelines
flatcam: 8.5 -> unstable-2022-02-02
qt4 -> qt5
ajs124
2 years ago
85d2adb0
de1d98ca
+75
-81
3 changed files
expand all
collapse all
unified
split
pkgs
applications
science
electronics
flatcam
default.nix
release.patch
top-level
all-packages.nix
+74
-67
pkgs/applications/science/electronics/flatcam/default.nix
···
1
1
{ lib
2
2
-
, stdenv
3
3
-
, python3
4
4
-
, fetchPypi
5
2
, fetchFromBitbucket
6
6
-
, fetchpatch
7
7
-
, substituteAll
8
8
-
, geos
3
3
+
, buildPythonApplication
4
4
+
, pyqt5
5
5
+
, matplotlib
6
6
+
, numpy
7
7
+
, cycler
8
8
+
, python-dateutil
9
9
+
, kiwisolver
10
10
+
, six
11
11
+
, setuptools
12
12
+
, dill
13
13
+
, Rtree
14
14
+
, pyopengl
15
15
+
, vispy
16
16
+
, ortools
17
17
+
, svg-path
18
18
+
, simplejson
19
19
+
, shapely
20
20
+
, freetype-py
21
21
+
, fonttools
22
22
+
, rasterio
23
23
+
, lxml
24
24
+
, ezdxf
25
25
+
, qrcode
26
26
+
, reportlab
27
27
+
, svglib
28
28
+
, gdal
29
29
+
, pyserial
30
30
+
, python3
9
31
}:
10
32
11
11
-
let
12
12
-
python = python3.override {
13
13
-
packageOverrides = self: super: {
14
14
-
shapely = super.shapely.overridePythonAttrs (old: rec {
15
15
-
version = "1.8.4";
16
16
-
17
17
-
src = fetchPypi {
18
18
-
pname = "Shapely";
19
19
-
inherit version;
20
20
-
hash = "sha256-oZXlHKr6IYKR8suqP+9p/TNTyT7EtlsqRyLEz0DDGYw=";
21
21
-
};
22
22
-
23
23
-
# Environment variable used in shapely/_buildcfg.py
24
24
-
GEOS_LIBRARY_PATH = "${geos}/lib/libgeos_c${stdenv.hostPlatform.extensions.sharedLibrary}";
25
25
-
26
26
-
patches = [
27
27
-
# Patch to search form GOES .so/.dylib files in a Nix-aware way
28
28
-
(substituteAll {
29
29
-
src = ./shapely-library-paths.patch;
30
30
-
libgeos_c = GEOS_LIBRARY_PATH;
31
31
-
libc = lib.optionalString (!stdenv.isDarwin) "${stdenv.cc.libc}/lib/libc${stdenv.hostPlatform.extensions.sharedLibrary}.6";
32
32
-
})
33
33
-
];
34
34
-
35
35
-
postPatch = ''
36
36
-
substituteInPlace pyproject.toml \
37
37
-
--replace 'setuptools<64' 'setuptools'
38
38
-
'';
39
39
-
});
40
40
-
};
41
41
-
};
42
42
-
in
43
43
-
python.pkgs.buildPythonApplication rec {
33
33
+
buildPythonApplication rec {
44
34
pname = "flatcam";
45
45
-
version = "8.5";
35
35
+
version = "unstable-2022-02-02";
46
36
47
37
src = fetchFromBitbucket {
48
38
owner = "jpcgt";
49
39
repo = pname;
50
50
-
rev = "533afd6a1772857cb633c011b5e0a15b60b1e92e"; # 8.5 with Red Hat packaging.
51
51
-
sha256 = "199kiiml18k34z1zhk2hbhibphmnv0kb11kxiajq52alps0mjb3m";
40
40
+
rev = "ebf5cb9e3094362c4b0774a54cf119559c02211d"; # beta branch as of 2022-02-02
41
41
+
hash = "sha256-QKkBPEM+HVYmSZ83b4JRmOmCMp7C3EUqbJKPqUXMiKE=";
52
42
};
53
43
54
54
-
propagatedBuildInputs = with python.pkgs; [
44
44
+
format = "other";
45
45
+
46
46
+
dontBuild = true;
47
47
+
48
48
+
propagatedBuildInputs = [
49
49
+
pyqt5
55
50
matplotlib
56
51
numpy
57
57
-
packaging
58
58
-
pyqt4
59
59
-
rtree
60
60
-
scipy
52
52
+
cycler
53
53
+
python-dateutil
54
54
+
kiwisolver
55
55
+
six
61
56
setuptools
57
57
+
dill
58
58
+
Rtree
59
59
+
pyopengl
60
60
+
vispy
61
61
+
ortools
62
62
+
svg-path
63
63
+
simplejson
62
64
shapely
63
63
-
simplejson
64
64
-
six
65
65
-
svg-path
65
65
+
freetype-py
66
66
+
fonttools
67
67
+
rasterio
68
68
+
lxml
69
69
+
ezdxf
70
70
+
qrcode
71
71
+
reportlab
72
72
+
svglib
73
73
+
gdal
74
74
+
pyserial
66
75
];
67
76
68
68
-
packaging_fix_pull_request_patch = fetchpatch {
69
69
-
name = "packaging_fix_pull_request.patch";
70
70
-
url = "https://bitbucket.org/trepetti/flatcam/commits/5591ed889d1f48a5190fe237b562cb932cb5876c/raw";
71
71
-
sha256 = "19rhjdrf1n1q29cgpcry6pl2kl90zq0d613hhkwdir9bhq5bkknp";
72
72
-
};
77
77
+
preInstall = ''
78
78
+
patchShebangs .
73
79
74
74
-
patches = [
75
75
-
packaging_fix_pull_request_patch
76
76
-
./release.patch
77
77
-
];
80
80
+
sed -i "s|/usr/local/bin|$out/bin|" Makefile
78
81
79
79
-
postPatch = ''
80
80
-
substituteInPlace setup.py --replace "'shapely>=1.3'" "'shapely>=1.3',"
82
82
+
mkdir -p $out/share/{flatcam,applications}
83
83
+
mkdir -p $out/bin
81
84
'';
82
85
83
83
-
# Only non-GUI tests can be run deterministically in the Nix build environment.
84
84
-
checkPhase = ''
85
85
-
python -m unittest tests.test_excellon
86
86
-
python -m unittest tests.test_gerber_buffer
87
87
-
python -m unittest tests.test_paint
88
88
-
python -m unittest tests.test_pathconnect
86
86
+
installFlags = [
87
87
+
"USER_ID=0"
88
88
+
"LOCAL_PATH=/build/source/."
89
89
+
"INSTALL_PATH=${placeholder "out"}/share/flatcam"
90
90
+
"APPS_PATH=${placeholder "out"}/share/applications"
91
91
+
];
92
92
+
93
93
+
postInstall = ''
94
94
+
sed -i "s|python3|${python3.withPackages (_: propagatedBuildInputs)}/bin/python3|" $out/bin/flatcam-beta
95
95
+
mv $out/bin/flatcam{-beta,}
89
96
'';
90
97
91
98
meta = with lib; {
-13
pkgs/applications/science/electronics/flatcam/release.patch
···
1
1
-
diff --git a/FlatCAMVersion.py b/FlatCAMVersion.py
2
2
-
index ba9e04a5..2c64d5a6 100644
3
3
-
--- a/FlatCAMVersion.py
4
4
-
+++ b/FlatCAMVersion.py
5
5
-
@@ -16,7 +16,7 @@ version = {
6
6
-
"number": 8.5,
7
7
-
"date": (2016, 7, 1), # Year, Month, Day
8
8
-
"name": None,
9
9
-
- "release": False,
10
10
-
+ "release": True,
11
11
-
}
12
12
-
13
13
-
+1
-1
pkgs/top-level/all-packages.nix
···
39961
39961
39962
39962
diylc = callPackage ../applications/science/electronics/diylc { };
39963
39963
39964
39964
-
flatcam = callPackage ../applications/science/electronics/flatcam { };
39964
39964
+
flatcam = python3.pkgs.callPackage ../applications/science/electronics/flatcam { };
39965
39965
39966
39966
flopoco = callPackage ../applications/science/electronics/flopoco { };
39967
39967