]>
Commit | Line | Data |
---|---|---|
1 | # TODO: | |
2 | # - switch to gtk4-update-icon-cache | |
3 | # - deviced plugin (BR: libdeviced-devel >= 3.27.4) | |
4 | # | |
5 | # Conditional build: | |
6 | %bcond_without sysprof # sysprof system profiler plugin | |
7 | %bcond_without apidocs # Sphinx based help + gi-docgen API documentation | |
8 | # | |
9 | Summary: IDE for writing GNOME-based software | |
10 | Summary(pl.UTF-8): IDE do tworzenia oprogramowania opartego na GNOME | |
11 | Name: gnome-builder | |
12 | Version: 46.2 | |
13 | Release: 1 | |
14 | License: GPL v3+ | |
15 | Group: X11/Applications | |
16 | Source0: https://download.gnome.org/sources/gnome-builder/46/%{name}-%{version}.tar.xz | |
17 | # Source0-md5: 03fa7b0a57bf1699a4e47f06823e2610 | |
18 | URL: https://wiki.gnome.org/Apps/Builder | |
19 | BuildRequires: appstream-glib | |
20 | BuildRequires: clang-devel >= 3.5 | |
21 | BuildRequires: cmark-devel >= 0.29.0 | |
22 | BuildRequires: desktop-file-utils | |
23 | BuildRequires: dspy-devel >= 1.4.0 | |
24 | BuildRequires: editorconfig-devel | |
25 | BuildRequires: enchant2-devel >= 2 | |
26 | BuildRequires: flatpak-devel >= 1.11.2 | |
27 | # -std=gnu11 for C requires >= 4.7 | |
28 | # but gcc 10 is not sufficient for src/libide/terminal/ide-terminal-palettes.h, which relies of constant evaluation of sizeof-driven ?: operator | |
29 | # (error: initializer element is not constant) | |
30 | BuildRequires: gcc >= 6:11 | |
31 | BuildRequires: gettext-tools >= 0.19.8 | |
32 | BuildRequires: glib2-devel >= 1:2.75.0 | |
33 | BuildRequires: gobject-introspection-devel >= 1.74 | |
34 | BuildRequires: gtk4-devel >= 4.10 | |
35 | %{?with_apidocs:BuildRequires: gi-docgen} | |
36 | BuildRequires: gtk-webkit6-devel >= 2.40 | |
37 | BuildRequires: gtksourceview5-devel >= 5.8 | |
38 | BuildRequires: json-glib-devel >= 1.2.0 | |
39 | BuildRequires: jsonrpc-glib-devel >= 3.43.0 | |
40 | BuildRequires: libadwaita-devel >= 1.5 | |
41 | BuildRequires: libdex-devel >= 0.2 | |
42 | BuildRequires: libgit2-glib-devel >= 1.1.0 | |
43 | BuildRequires: libicu-devel | |
44 | BuildRequires: libpeas2-devel >= 2.0 | |
45 | BuildRequires: libpanel-devel >= 1.5.0 | |
46 | BuildRequires: libportal-gtk4-devel | |
47 | BuildRequires: libsoup3-devel >= 3.0 | |
48 | # -std=c++2a | |
49 | BuildRequires: libstdc++-devel >= 6:8 | |
50 | BuildRequires: libxml2-devel >= 1:2.9.0 | |
51 | BuildRequires: llvm-devel >= 3.5 | |
52 | BuildRequires: meson >= 0.60 | |
53 | BuildRequires: ninja >= 1.5 | |
54 | BuildRequires: ostree-devel | |
55 | BuildRequires: pango-devel >= 1:1.38.0 | |
56 | BuildRequires: pcre2-common-devel | |
57 | BuildRequires: pkgconfig >= 1:0.22 | |
58 | BuildRequires: python3-devel >= 1:3.2.3 | |
59 | %{?with_apidocs:BuildRequires: python3-sphinx_rtd_theme} | |
60 | BuildRequires: rpm-build >= 4.6 | |
61 | BuildRequires: rpmbuild(macros) >= 2.029 | |
62 | BuildRequires: sed >= 4.0 | |
63 | %{?with_apidocs:BuildRequires: sphinx-pdg-3} | |
64 | %{?with_sysprof:BuildRequires: sysprof-devel >= 45.0} | |
65 | BuildRequires: tar >= 1:1.22 | |
66 | BuildRequires: template-glib-devel >= 3.36.1 | |
67 | BuildRequires: vala >= 2:0.30.0.55 | |
68 | BuildRequires: vala-gtksourceview5 >= 5.8 | |
69 | BuildRequires: vala-libgit2-glib >= 1.1.0 | |
70 | BuildRequires: vala-template-glib >= 3.36.1 | |
71 | BuildRequires: vte-gtk4-devel >= 0.76.0 | |
72 | BuildRequires: xz | |
73 | BuildRequires: yelp-tools | |
74 | Requires(post,postun): desktop-file-utils | |
75 | Requires(post,postun): glib2 >= 1:2.75.0 | |
76 | Requires(post,postun): gtk-update-icon-cache | |
77 | Requires: cmark-lib >= 0.29.0 | |
78 | Requires: ctags | |
79 | Requires: dspy-libs >= 1.4.0 | |
80 | Requires: enchant2 >= 2 | |
81 | Requires: flatpak-libs >= 1.11.2 | |
82 | Requires: glib2 >= 1:2.75.0 | |
83 | Requires: gtk4 >= 4.10 | |
84 | Requires: gtk-webkit6 >= 2.40 | |
85 | Requires: gtksourceview5 >= 5.8 | |
86 | Requires: hicolor-icon-theme | |
87 | Requires: json-glib >= 1.2.0 | |
88 | Requires: jsonrpc-glib >= 3.43.0 | |
89 | Requires: libadwaita >= 1.5 | |
90 | Requires: libdex >= 0.2 | |
91 | Requires: libgit2-glib >= 1.1.0 | |
92 | Requires: libpanel >= 1.5.0 | |
93 | Requires: libpeas2 >= 2.0 | |
94 | Requires: libportal >= 0.3 | |
95 | Requires: libsoup3 >= 3.0 | |
96 | Requires: libxml2 >= 1:2.9.0 | |
97 | Requires: pango >= 1:1.38.0 | |
98 | Requires: python3-modules >= 1:3.2.3 | |
99 | Requires: template-glib >= 3.36.1 | |
100 | Requires: vte-gtk4 >= 0.76.0 | |
101 | Suggests: python3-jedi | |
102 | Suggests: python3-lxml | |
103 | Obsoletes: gnome-builder-mm < 3.24 | |
104 | BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) | |
105 | ||
106 | %define abiver 46 | |
107 | %define apiver 46 | |
108 | ||
109 | # must comply to pygobject3 due to "..importer" import | |
110 | %define py3_gi_overridesdir %{py3_sitedir}/gi/overrides | |
111 | ||
112 | %description | |
113 | Builder attempts to be an IDE for writing software for GNOME. It does | |
114 | not try to be a generic IDE, but one specialized for writing GNOME | |
115 | software. | |
116 | ||
117 | %description -l pl.UTF-8 | |
118 | Builder jest próbą stworzenia IDE do rozwijania oprogramowania dla | |
119 | GNOME. Nie próbuje być ogólnym IDE, ale wyspecjalizowanym do pisania | |
120 | oprogramowania dla GNOME. | |
121 | ||
122 | %package devel | |
123 | Summary: Development files for GNOME Builder | |
124 | Summary(pl.UTF-8): Pliki programistyczne GNOME Buildera | |
125 | Group: Development/Libraries | |
126 | Requires: %{name} = %{version}-%{release} | |
127 | Requires: glib2-devel >= 1:2.75.0 | |
128 | Requires: gtk-webkit6-devel >= 2.40 | |
129 | Requires: gtk4-devel >= 4.10 | |
130 | Requires: gtksourceview5-devel >= 5.8 | |
131 | Requires: libpeas2-devel >= 2.0 | |
132 | Requires: template-glib-devel >= 3.36.1 | |
133 | Requires: vte-gtk4-devel >= 0.76.0 | |
134 | Obsoletes: gnome-builder-mm-devel < 3.24 | |
135 | Obsoletes: vala-gnome-builder < 3.36 | |
136 | ||
137 | %description devel | |
138 | This package provides development files for GNOME Builder. | |
139 | ||
140 | %description devel -l pl.UTF-8 | |
141 | Ten pakiet zawiera pliki programistyczne GNOME Buildera. | |
142 | ||
143 | %package doc | |
144 | Summary: GNOME Builder documentation | |
145 | Summary(pl.UTF-8): Dokumentacja do GNOME Buildera | |
146 | Group: Documentation | |
147 | Requires: %{name} = %{version}-%{release} | |
148 | BuildArch: noarch | |
149 | ||
150 | %description doc | |
151 | GNOME Builder documentation. | |
152 | ||
153 | %description doc -l pl.UTF-8 | |
154 | Dokumentacja do GNOME Buildera. | |
155 | ||
156 | %package apidocs | |
157 | Summary: API documentation for GNOME Builder libraries | |
158 | Summary(pl.UTF-8): Dokumentacja API bibliotek GNOME Buildera | |
159 | Group: Documentation | |
160 | BuildArch: noarch | |
161 | ||
162 | %description apidocs | |
163 | API documentation for GNOME Builder libraries. | |
164 | ||
165 | %description apidocs -l pl.UTF-8 | |
166 | Dokumentacja API bibliotek GNOME Buildera. | |
167 | ||
168 | %prep | |
169 | %setup -q | |
170 | ||
171 | # drop useless shebang | |
172 | grep -q /usr/bin/env src/libide/Ide.py || exit 1 | |
173 | %{__sed} -i -e '1d' src/libide/Ide.py | |
174 | ||
175 | %build | |
176 | # python.purelibdir changed to place overrides file properly | |
177 | # (possible only because there are no other system-wide python modules installed) | |
178 | %meson build \ | |
179 | %if %{with apidocs} | |
180 | -Ddocs=true \ | |
181 | -Dhelp=true \ | |
182 | %endif | |
183 | -Dplugin_clangd=true \ | |
184 | -Dplugin_sysprof=%{__true_false sysprof} \ | |
185 | -Dpython.bytecompile=2 \ | |
186 | -Dpython.purelibdir=%{py3_sitedir} | |
187 | # -Dplugin_deviced=true | |
188 | ||
189 | %ninja_build -C build | |
190 | ||
191 | %install | |
192 | rm -rf $RPM_BUILD_ROOT | |
193 | ||
194 | %ninja_install -C build | |
195 | ||
196 | # for external plugins | |
197 | install -d $RPM_BUILD_ROOT%{_libdir}/gnome-builder/plugins | |
198 | ||
199 | %if %{with apidocs} | |
200 | %{__rm} -r $RPM_BUILD_ROOT%{_docdir}/gnome-builder/en/{.buildinfo,_sources,objects.inv} | |
201 | ||
202 | install -d $RPM_BUILD_ROOT%{_gidocdir} | |
203 | %{__mv} $RPM_BUILD_ROOT%{_docdir}/libide $RPM_BUILD_ROOT%{_gidocdir} | |
204 | %endif | |
205 | ||
206 | %find_lang %{name} --with-gnome | |
207 | ||
208 | %clean | |
209 | rm -rf $RPM_BUILD_ROOT | |
210 | ||
211 | %post | |
212 | %glib_compile_schemas | |
213 | %update_icon_cache hicolor | |
214 | %update_desktop_database_post | |
215 | ||
216 | %postun | |
217 | %glib_compile_schemas | |
218 | %update_icon_cache hicolor | |
219 | %update_desktop_database_postun | |
220 | ||
221 | %files -f %{name}.lang | |
222 | %defattr(644,root,root,755) | |
223 | %doc AUTHORS NEWS README.md | |
224 | %attr(755,root,root) %{_bindir}/gnome-builder | |
225 | %dir %{_libdir}/gnome-builder | |
226 | %dir %{_libdir}/gnome-builder/girepository-1.0 | |
227 | %{_libdir}/gnome-builder/girepository-1.0/Ide-%{abiver}.typelib | |
228 | %dir %{_libdir}/gnome-builder/plugins | |
229 | %attr(755,root,root) %{_libexecdir}/gnome-builder-clang | |
230 | %attr(755,root,root) %{_libexecdir}/gnome-builder-flatpak | |
231 | %attr(755,root,root) %{_libexecdir}/gnome-builder-git | |
232 | %dir %{_datadir}/gnome-builder | |
233 | %{_datadir}/gnome-builder/fonts | |
234 | %{_datadir}/gnome-builder/icons | |
235 | %{_datadir}/gnome-builder/styles | |
236 | %{_datadir}/dbus-1/services/org.gnome.Builder.service | |
237 | %{_datadir}/glib-2.0/schemas/org.gnome.builder.gschema.xml | |
238 | %{_datadir}/glib-2.0/schemas/org.gnome.builder.build.gschema.xml | |
239 | %{_datadir}/glib-2.0/schemas/org.gnome.builder.clang.gschema.xml | |
240 | %{_datadir}/glib-2.0/schemas/org.gnome.builder.code-insight.gschema.xml | |
241 | %{_datadir}/glib-2.0/schemas/org.gnome.builder.copyright.gschema.xml | |
242 | %{_datadir}/glib-2.0/schemas/org.gnome.builder.debug.gschema.xml | |
243 | %{_datadir}/glib-2.0/schemas/org.gnome.builder.editor.gschema.xml | |
244 | %{_datadir}/glib-2.0/schemas/org.gnome.builder.editor.language.gschema.xml | |
245 | %{_datadir}/glib-2.0/schemas/org.gnome.builder.extension-type.gschema.xml | |
246 | %{_datadir}/glib-2.0/schemas/org.gnome.builder.flatpak.gschema.xml | |
247 | %{_datadir}/glib-2.0/schemas/org.gnome.builder.plugin.gschema.xml | |
248 | %{_datadir}/glib-2.0/schemas/org.gnome.builder.project.gschema.xml | |
249 | %{_datadir}/glib-2.0/schemas/org.gnome.builder.project-tree.gschema.xml | |
250 | %{_datadir}/glib-2.0/schemas/org.gnome.builder.shellcmd.gschema.xml | |
251 | %{_datadir}/glib-2.0/schemas/org.gnome.builder.shellcmd.command.gschema.xml | |
252 | %{_datadir}/glib-2.0/schemas/org.gnome.builder.spelling.gschema.xml | |
253 | %{_datadir}/glib-2.0/schemas/org.gnome.builder.sysprof.gschema.xml | |
254 | %{_datadir}/glib-2.0/schemas/org.gnome.builder.terminal.gschema.xml | |
255 | %{_datadir}/glib-2.0/schemas/org.gnome.builder.valgrind.gschema.xml | |
256 | %{_datadir}/metainfo/org.gnome.Builder.appdata.xml | |
257 | %{_desktopdir}/org.gnome.Builder.desktop | |
258 | %{_iconsdir}/hicolor/scalable/apps/org.gnome.Builder-symbolic.svg | |
259 | %{_iconsdir}/hicolor/scalable/apps/org.gnome.Builder.svg | |
260 | %{py3_gi_overridesdir}/Ide.py | |
261 | %{py3_gi_overridesdir}/__pycache__/Ide.cpython-*.py[co] | |
262 | ||
263 | %files devel | |
264 | %defattr(644,root,root,755) | |
265 | %{_includedir}/gnome-builder-%{apiver} | |
266 | %dir %{_datadir}/gnome-builder/gir-1.0 | |
267 | %{_datadir}/gnome-builder/gir-1.0/Ide-%{abiver}.gir | |
268 | %{_pkgconfigdir}/gnome-builder-%{version}.pc | |
269 | ||
270 | %if %{with apidocs} | |
271 | %files doc | |
272 | %defattr(644,root,root,755) | |
273 | %dir %{_docdir}/gnome-builder | |
274 | %{_docdir}/gnome-builder/en | |
275 | ||
276 | %files apidocs | |
277 | %defattr(644,root,root,755) | |
278 | %{_gidocdir}/libide | |
279 | %endif |