1 Summary: 3D printer control software
6 Group: Applications/Engineering
8 # Icons AGPLv3 https://github.com/daid/Cura/issues/231#issuecomment-12209683
9 # Example models are CC-BY-SA
10 # TweakAtZ.py is CC-BY-SA
11 License: AGPLv3 and CC-BY-SA
12 Source0: https://github.com/Ultimaker/Cura/archive/%{version}/%{name}-%{version}.tar.gz
13 # Source0-md5: ebe1b78c8b9ce77c289a266c9e732dc8
15 Patch0: plugins-path.patch
16 URL: https://ultimaker.com/en/products/cura-software
18 BuildRequires: desktop-file-utils
19 BuildRequires: dos2unix
20 BuildRequires: gettext
21 BuildRequires: gettext-tools
22 BuildRequires: python3-Uranium = %{version}
23 BuildRequires: python3-devel
24 BuildRequires: python3-pytest
25 BuildRequires: rpm-pythonprov
26 BuildRequires: rpmbuild(macros) >= 1.219
27 Requires: CuraEngine = %{epoch}:%{version}
28 Requires: Qt5Quick-controls
29 Requires: fonts-TTF-OpenSans
30 Requires: python3-PyOpenGL
31 Requires: python3-PyQt5
32 Requires: python3-numpy
33 Requires: python3-power
34 Requires: python3-savitar
35 Requires: python3-serial
36 Requires: python3-Uranium = %{version}
37 Requires: python3-zeroconf
39 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
42 Cura is a project which aims to be an single software solution for 3D
43 printing. While it is developed to be used with the Ultimaker 3D
44 printer, it can be used with other RepRap based designs.
46 Cura helps you to setup an Ultimaker, shows your 3D model, allows for
47 scaling / positioning, can slice the model to G-Code, with sane
48 editable configuration settings and send this G-Code to the 3D printer
52 %setup -q -n Cura-%{version}
55 # The setup.py is only useful for py2exe, remove it, so noone is tempted to use it
58 # https://github.com/Ultimaker/Cura/issues/1784
59 sed -i 's/Version=1/Version=1.1/' cura.desktop.in
61 # Upstream installs to lib/python3/dist-packages
62 # We want to install to %%{py3_sitescriptdir}
63 sed -i 's|lib/python${PYTHON_VERSION_MAJOR}/dist-packages|%(echo %{py3_sitescriptdir} | sed -e s@%{_prefix}/@@)|g' CMakeLists.txt
65 # Wrong end of line encoding
66 dos2unix docs/How_to_use_the_flame_graph_profiler.md
69 sed -i '1s=^#!%{_bindir}/\(python\|env python\)3*=#!%{__python3}=' cura_app.py
71 # Invalid locale name ptbr
72 # https://github.com/Ultimaker/Uranium/issues/246
73 mv resources/i18n/{ptbr,pt_BR}
74 sed -i 's/"Language: ptbr\n"/"Language: pt_BR\n"/' resources/i18n/pt_BR/*.po
76 # Failing test, mixes sets and lists :(
77 # Changed in master, not reporting to upstream
78 sed -i -e '0,/set()/{s/set()/[]/}' \
81 tests/TestMachineAction.py
87 -DCURA_VERSION:STRING=%{version}
92 rm -rf $RPM_BUILD_ROOT
93 %{__make} -C build install DESTDIR=$RPM_BUILD_ROOT
95 # Sanitize the location of locale files
96 mv $RPM_BUILD_ROOT%{_datadir}/{cura/resources/i18n,locale}
97 ln -s ../../locale $RPM_BUILD_ROOT%{_datadir}/cura/resources/i18n
98 rm $RPM_BUILD_ROOT%{_localedir}/*/*.po
99 rm $RPM_BUILD_ROOT%{_localedir}/*.pot
102 rm -rf $RPM_BUILD_ROOT%{_datadir}/%{name}/resources/themes/cura/fonts/
103 ln -s %{_datadir}/fonts/open-sans/ $RPM_BUILD_ROOT%{_datadir}/%{name}/resources/themes/cura/fonts
105 %py_ocomp $RPM_BUILD_ROOT%{py_sitescriptdir}
106 %py_comp $RPM_BUILD_ROOT%{py_sitescriptdir}
109 %find_lang cura --all-name
112 rm -rf $RPM_BUILD_ROOT
115 %defattr(644,root,root,755)
116 %attr(755,root,root) %{_bindir}/%{name}
117 %{py3_sitescriptdir}/cura
118 %{_desktopdir}/%{name}.desktop
120 %{_datadir}/appdata/cura.appdata.xml
121 %{_datadir}/mime/packages/cura.xml