-
Notifications
You must be signed in to change notification settings - Fork 2
/
blender.spec
307 lines (228 loc) · 10.3 KB
/
blender.spec
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
%global debug_package %{nil}
%global __strip /bin/true
%global blender_api 4.2
%global org org.blender.Blender
# Turn off the brp-python-bytecompile script
%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g')
%global macrosdir %(d=%{_rpmconfigdir}/macros.d; [ -d $d ] || d=%{_sysconfdir}/rpm; echo $d)
# Bundled libraries:
%global __requires_exclude ^(libsycl\\.so.*|libcycles_kernel_oneapi_aot\\.so.*|libI.*\\.so.*|libOpen.*\\.so.*|libboost_.*\\.so.*|libembree.*\\.so.*|libopenvdb.*\\.so.*|libosd.*\\.so.*|libosl.*\\.so.*|libtbb\\.so.*|libvulkan\\.so.*|libusd.*\\.so.*)$
%global __provides_exclude ^(libsycl\\.so.*|libcycles_kernel_oneapi_aot\\.so.*|libI.*\\.so.*|libOpen.*\\.so.*|libboost_.*\\.so.*|libembree.*\\.so.*|libopenvdb.*\\.so.*|libosd.*\\.so.*|libosl.*\\.so.*|libtbb\\.so.*|libvulkan\\.so.*|libusd.*\\.so.*)$
Name: blender
Epoch: 2
Version: 4.2.3
Release: 1%{?dist}
Summary: 3D modeling, animation, rendering and post-production
License: GPLv2
URL: http://www.blender.org
ExclusiveArch: x86_64
Source0: http://download.%{name}.org/release/Blender%{blender_api}/%{name}-%{version}-linux-x64.tar.xz
Source1: %{name}.thumbnailer
Source2: https://raw.githubusercontent.com/blender/blender/v%{version}/release/freedesktop/org.blender.Blender.metainfo.xml
Source3: %{name}.xml
Source4: macros.%{name}
BuildRequires: chrpath
BuildRequires: desktop-file-utils
BuildRequires: libappstream-glib
BuildRequires: python3-devel
Requires: hicolor-icon-theme
Provides: blender(ABI) = %{blender_api}
# Obsolete the standalone Blender player retired by upstream
Obsoletes: blenderplayer < %{epoch}:%{version}-%{release}
Provides: blenderplayer = %{epoch}:%{version}-%{release}
Obsoletes: blender-rpm-macros < %{epoch}:%{version}-%{release}
Provides: blender-rpm-macros = %{epoch}:%{version}-%{release}
Obsoletes: blender-fonts < %{epoch}:%{version}-%{release}
Provides: blender-fonts = %{epoch}:%{version}-%{release}
%description
Blender is the essential software solution you need for 3D, from modeling,
animation, rendering and post-production to interactive creation and playback.
Professionals and novices can easily and inexpensively publish stand-alone,
secure, multi-platform content to the web, CD-ROMs, and other media.
%package rpm-macros
Summary: RPM macros to build third-party blender addons packages
BuildArch: noarch
%description rpm-macros
This package provides rpm macros to support the creation of third-party addon
packages to extend Blender.
# Hardware acceleration. Intel (oneAPI, SYCL) is always included as embree is
# linked into the main executable and it also deals with CPUs.
# https://docs.blender.org/manual/en/latest/editors/preferences/system.html#cycles-render-device
%package cuda
Summary: Nvidia CUDA support for Blender
Requires: %{name} = %{epoch}:%{version}-%{release}
# Required to enable autocompilation of kernels
# Requires: cuda-nvrtc-devel
%description cuda
This package contains CUDA support for Blender, to enable Cycles rendering on
supported Nvidia GPUs.
%package hip
Summary: AMD HIP RT support for Blender
Requires: %{name} = %{epoch}:%{version}-%{release}
%description hip
This package contains ROCm HIP support for Blender, to enable Cycles rendering
on supported AMD GPUs.
%prep
%autosetup -p1 -n %{name}-%{version}-linux-x64
# Fix all Python shebangs recursively in .
%if 0%{?fedora}
%{__python3} %{_rpmconfigdir}/redhat/pathfix.py -pni "%{__python3} %{py3_shbang_opts}" .
%else
pathfix.py -pni "%{__python3} %{py3_shbang_opts}" .
%endif
# Fix all library permissions:
find . -type f -name "*lib*.so*" -exec chmod 755 {} \;
%if 0%{?rhel} == 8
sed -i -e '/PrefersNonDefaultGPU/d' %{name}.desktop
%endif
%install
# Main program
mkdir -p %{buildroot}%{_libdir}/%{name}
cp -fra %{blender_api} %{name} lib \
blender-symbolic.svg \
%{buildroot}%{_libdir}/%{name}
rm -fr %{buildroot}%{_libdir}/%{name}/lib/mesa
mkdir -p %{buildroot}%{_bindir}
ln -sf ../%{_lib}/%{name}/%{name} %{buildroot}%{_bindir}/%{name}
# Desktop file
install -p -D -m 644 %{name}.desktop %{buildroot}%{_datadir}/applications/%{name}.desktop
install -p -D -m 644 %{name}.svg %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/%{name}.svg
# Thumbnailer
install -p -D -m 755 %{name}-thumbnailer %{buildroot}%{_bindir}/%{name}-thumbnailer
install -p -D -m 644 %{SOURCE1} %{buildroot}%{_datadir}/thumbnailers/%{name}.thumbnailer
# Mime support
install -p -D -m 644 %{SOURCE3} %{buildroot}%{_datadir}/mime/packages/%{name}.xml
# rpm macros
mkdir -p %{buildroot}%{macrosdir}
sed -e 's/@VERSION@/%{blender_api}/g' %{SOURCE4} > %{buildroot}%{macrosdir}/macros.%{name}
# AppData
install -p -m 644 -D %{SOURCE2} %{buildroot}%{_metainfodir}/%{org}.metainfo.xml
sed -i \
-e '/type="faq"/d' \
-e '/type="vcs-browser"/d' \
-e '/type="translate"/d' \
-e '/type="vcs-browser"/d' \
-e '/type="contribute"/d' \
%{buildroot}%{_metainfodir}/%{org}.metainfo.xml
# Localization
%find_lang %{name}
# rpmlint fixes
find %{buildroot} -name ".so" -exec chmod 755 {} \;
find %{buildroot} -name ".so.*" -exec chmod 755 {} \;
chrpath -d %{buildroot}%{_libdir}/%{name}/%{blender_api}/python/lib/python3.*/site-packages/libextern_draco.so
%check
desktop-file-validate %{buildroot}%{_datadir}/applications/%{name}.desktop
appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/%{org}.metainfo.xml
%files -f %{name}.lang
%license *.txt license
%doc readme.html
%{_bindir}/%{name}
%{_bindir}/%{name}-thumbnailer
%{_datadir}/applications/%{name}.desktop
%{_datadir}/icons/hicolor/scalable/apps/%{name}.svg
%{_datadir}/mime/packages/%{name}.xml
%{_datadir}/thumbnailers/%{name}.thumbnailer
%{_libdir}/%{name}/
%{_metainfodir}/%{org}.metainfo.xml
# Stuff that goes into the hw acceleration subpackages.
%exclude %{_libdir}/%{name}/%{blender_api}/scripts/addons_core/cycles/lib
%exclude %{_libdir}/%{name}/lib/libOpenImageDenoise_device_cuda.so.*
%exclude %{_libdir}/%{name}/lib/libOpenImageDenoise_device_hip.so.*
%files cuda
%{_libdir}/%{name}/%{blender_api}/scripts/addons_core/cycles/lib
%{_libdir}/%{name}/lib/libOpenImageDenoise_device_cuda.so.*
%files hip
%{_libdir}/%{name}/lib/libOpenImageDenoise_device_hip.so.*
%files rpm-macros
%{macrosdir}/macros.%{name}
%changelog
* Wed Oct 23 2024 Simone Caronni <[email protected]> - 2:4.2.3-1
- Update to 4.2.3.
* Thu Sep 26 2024 Simone Caronni <[email protected]> - 2:4.2.2-1
- Update to 4.2.2.
* Tue Aug 06 2024 Simone Caronni <[email protected]> - 2:4.2.0-1
- Update to 4.2.0.
* Thu Apr 25 2024 Simone Caronni <[email protected]> - 2:4.1.1-1
- Update to 4.1.1.
* Wed Apr 17 2024 Simone Caronni <[email protected]> - 2:4.1.0-2
- Split of AMD ROCm HIP subpackage.
* Fri Apr 12 2024 Simone Caronni <[email protected]> - 2:4.1.0-1
- Update to 4.1.0.
- Make sure Provides/Requires are properly set by setting permissions on
libraries before the package is assembled (#9).
* Sat Jan 06 2024 Simone Caronni <[email protected]> - 2:4.0.2-1
- Update to 4.0.2.
* Fri Oct 06 2023 Simone Caronni <[email protected]> - 2:3.6.4-2
- Filter out provided libraries.
* Fri Oct 06 2023 Simone Caronni <[email protected]> - 2:3.6.4-1
- Update to 3.6.4.
* Wed Sep 27 2023 Simone Caronni <[email protected]> - 2:3.6.3-1
- Update to 3.6.3.
* Thu Aug 24 2023 Simone Caronni <[email protected]> - 2:3.6.2-1
- Update to 3.6.2.
* Thu Jul 20 2023 Simone Caronni <[email protected]> - 2:3.6.1-1
- Update to 3.6.1.
* Fri May 05 2023 Simone Caronni <[email protected]> - 2:3.5.1-1
- Update to 3.5.1.
* Thu Apr 13 2023 Simone Caronni <[email protected]> - 2:3.5.0-1
- Update to 3.5.0.
* Tue Jan 10 2023 Lars R. Damerow <[email protected]> - 2:3.4.1-2
- Filter out automatic Provides/Requires for libcycles_kernel_oneapi_aot library.
* Wed Dec 21 2022 Simone Caronni <[email protected]> - 2:3.4.1-1
- Update to 3.4.1.
* Thu Dec 15 2022 Simone Caronni <[email protected]> - 2:3.4.0-2
- Fix libraries.
* Tue Dec 13 2022 Simone Caronni <[email protected]> - 2:3.4.0-1
- Update to 3.4.0.
* Tue Nov 15 2022 Simone Caronni <[email protected]> - 2:3.3.1-2
- Filter out Ncurses 5 libraries.
* Wed Oct 12 2022 Simone Caronni <[email protected]> - 2:3.3.1-1
- Update to 3.3.1.
* Fri Sep 30 2022 Simone Caronni <[email protected]> - 2:3.3.0-3
- Make private libraries visible.
- Trim changelog.
* Thu Sep 29 2022 Simone Caronni <[email protected]> - 2:3.3.0-2
- Filter out SYCL library.
* Wed Sep 21 2022 Simone Caronni <[email protected]> - 2:3.3.0-1
- Update to 3.3.0.
* Fri Jul 22 2022 Simone Caronni <[email protected]> - 2:3.2.1-1
- Update to 3.2.1.
* Thu Jun 16 2022 Simone Caronni <[email protected]> - 2:3.2.0-1
- Update to 3.2.0.
* Thu Apr 21 2022 Simone Caronni <[email protected]> - 2:3.1.2-1
- Update to 3.1.2.
* Sun Jan 23 2022 Simone Caronni <[email protected]> - 2:3.0.0-2
- Fix build on RHEL/CentOS 7.
* Sat Jan 22 2022 Simone Caronni <[email protected]> - 2:3.0.0-1
- Update to 3.0.0.
* Thu Nov 18 2021 Simone Caronni <[email protected]> - 2:2.93.6-1
- Update to 2.93.6.
* Mon Nov 08 2021 Simone Caronni <[email protected]> - 2:2.93.5-1
- Update to 2.93.5.
* Wed Sep 22 2021 Simone Caronni <[email protected]> - 2:2.93.4-2
- Do not attempt to strip binaries.
* Wed Sep 01 2021 Simone Caronni <[email protected]> - 2:2.93.4-1
- Update to 2.93.4.
* Mon Aug 09 2021 Simone Caronni <[email protected]> - 2:2.93.2-1
- Update to 2.93.2.
* Tue Jul 20 2021 Simone Caronni <[email protected]> - 2:2.93.1-1
- Update to 2.93.1.
* Thu Jun 03 2021 Simone Caronni <[email protected]> - 2:2.93.0-1
- Update to 2.93.0.
- Fix icon.
* Wed Mar 10 2021 Simone Caronni <[email protected]> - 2:2.92.0-1
- Update to 2.92.0.
* Wed Jan 27 2021 Simone Caronni <[email protected]> - 2:2.91.2-1
- Update to 2.91.2.
* Sat Nov 28 2020 Simone Caronni <[email protected]> - 2:2.91.0-1
- Update to 2.91.0.
* Tue Oct 06 2020 Simone Caronni <[email protected]> - 2:2.90.1-1
- Update to 2.90.1.
* Sat Sep 05 2020 Simone Caronni <[email protected]> - 2:2.90.0-1
- Switch to release binaries as the depending libraries in Fedora are all at the
wrong versions.
- Update to 2.90.0.
- Fix build on RHEL/CentOS.
* Tue Aug 25 2020 Simone Caronni <[email protected]> - 2:2.83.5-5
- Merge changes from Fedora.
- Enable CUDA & OptiX.