+# TODO:
+# - deviced (BR: libdeviced-devel >= 3.27.4)
+# - fix warning: jedi not found, python auto-completion not possible.
+#
+# Conditional build:
+%bcond_without sysprof # sysprof system profiler plugin
+%bcond_without vala_pack # vala pack plugin
+#
Summary: IDE for writing GNOME-based software
Summary(pl.UTF-8): IDE do tworzenia oprogramowania opartego na GNOME
Name: gnome-builder
-Version: 3.16.3
-Release: 1
+Version: 3.34.1
+Release: 4
License: GPL v3+
Group: X11/Applications
-Source0: https://download.gnome.org/sources/gnome-builder/3.16/%{name}-%{version}.tar.xz
-# Source0-md5: 186d75c5310c37c28061bc294ed0dd15
+Source0: http://ftp.gnome.org/pub/GNOME/sources/gnome-builder/3.34/%{name}-%{version}.tar.xz
+# Source0-md5: 88e43a49678309a41db35f48aa0ce4fc
+Patch0: meson0.52.patch
URL: https://wiki.gnome.org/Apps/Builder
BuildRequires: appstream-glib-devel
-BuildRequires: autoconf >= 2.69
-BuildRequires: automake >= 1:1.11
-BuildRequires: clang-devel
-BuildRequires: devhelp-devel >= 3.16.0
+BuildRequires: clang-devel >= 3.5
+BuildRequires: desktop-file-utils
+BuildRequires: devhelp-devel >= 3.26.0
+BuildRequires: enchant2-devel >= 2
+BuildRequires: flatpak-devel >= 0.8.0
# -std=gnu11 for C
BuildRequires: gcc >= 6:4.7
-BuildRequires: gettext-tools
+BuildRequires: gettext-tools >= 0.19.8
BuildRequires: gjs-devel >= 1.42.0
-BuildRequires: glib2-devel >= 1:2.44.0
-BuildRequires: gnome-common
-BuildRequires: gobject-introspection-devel >= 1.42.0
-BuildRequires: gtk+3-devel >= 3.16.1
-BuildRequires: gtk-doc >= 1.11
-BuildRequires: gtksourceview3-devel >= 3.16.1
+BuildRequires: glade-devel
+BuildRequires: glib2-devel >= 1:2.56.0
+BuildRequires: gobject-introspection-devel >= 1.48.0
+BuildRequires: gspell-devel >= 1.2.0
+BuildRequires: gtk+3-devel >= 3.22.26
+BuildRequires: gtk-webkit4-devel >= 2.12.0
+BuildRequires: gtksourceview4-devel
BuildRequires: intltool >= 0.50.1
-BuildRequires: libgit2-glib-devel >= 0.22.6
+BuildRequires: json-glib-devel >= 1.2.0
+BuildRequires: jsonrpc-glib-devel >= 3.28.0
+BuildRequires: libdazzle-devel >= 3.32.0
+BuildRequires: libgit2-glib-devel >= 0.25.0
+BuildRequires: libpeas-devel >= 1.22.0
+BuildRequires: libsoup-devel >= 2.52.0
# C++11
BuildRequires: libstdc++-devel >= 6:4.7
BuildRequires: libtool >= 2:2.2
BuildRequires: libxml2-devel >= 1:2.9.0
-BuildRequires: llvm-devel
+BuildRequires: llvm-devel >= 3.5
+BuildRequires: meson >= 0.44.0
+BuildRequires: ninja
+BuildRequires: pango-devel >= 1:1.38.0
+BuildRequires: pcre-devel
BuildRequires: pkgconfig >= 1:0.22
-BuildRequires: python3-devel >= 1:3.2
-BuildRequires: python3-pygobject3-devel >= 3.0.0
+BuildRequires: python3-devel >= 1:3.2.3
+BuildRequires: python3-pygobject3-devel >= 3.22.0
BuildRequires: rpmbuild(macros) >= 1.522
+%{?with_sysprof:BuildRequires: sysprof-ui-devel >= 3.32.0}
BuildRequires: tar >= 1:1.22
+BuildRequires: template-glib-devel >= 3.28.0
+BuildRequires: vala >= 2:0.30.0.55
+BuildRequires: vala-gtksourceview4
+BuildRequires: vala-libdazzle >= 3.32.0
+BuildRequires: vala-libgit2-glib >= 0.25.0
+BuildRequires: vala-template-glib >= 3.28.0
+%if %{with vala_pack}
+BuildRequires: vala-jsonrpc-glib >= 3.28.0
+BuildRequires: vala-vte >= 0.46
+%endif
+BuildRequires: vte-devel >= 0.46
BuildRequires: xz
-Requires(post,postun): glib2 >= 1:2.44.0
+BuildRequires: yelp-tools
+Requires(post,postun): glib2 >= 1:2.56.0
Requires(post,postun): gtk-update-icon-cache
-Requires: devhelp-libs >= 3.16.0
+Requires: ctags
+Requires: devhelp-libs >= 3.26.0
+Requires: enchant2 >= 2
+Requires: flatpak-libs >= 0.8.0
Requires: gjs >= 1.42.0
-Requires: glib2 >= 1:2.44.0
-Requires: gtk+3 >= 3.16.1
-Requires: gtksourceview3 >= 3.16.1
+Requires: glib2 >= 1:2.56.0
+Requires: gspell >= 1.2.0
+Requires: gtk+3 >= 3.22.26
+Requires: gtk-webkit4 >= 2.12.0
+Requires: gtksourceview4
Requires: hicolor-icon-theme
-Requires: libgit2-glib >= 0.22.6
+Requires: json-glib >= 1.2.0
+Requires: jsonrpc-glib >= 3.28.0
+Requires: libdazzle >= 3.32.0
+Requires: libgit2-glib >= 0.25.0
+Requires: libpeas >= 1.22.0
+Requires: libsoup >= 2.52.0
Requires: libxml2 >= 1:2.9.0
-Requires: python3-pygobject3 >= 3.0.0
+Requires: pango >= 1:1.38.0
+Requires: python3-modules >= 1:3.2.3
+Requires: python3-pygobject3 >= 3.22.0
+%{?with_sysprof:Requires: sysprof-ui-libs >= 3.32.0}
+Requires: template-glib >= 3.28.0
+Requires: vte >= 0.46
+Suggests: python3-lxml
+Obsoletes: gnome-builder-apidocs
+Obsoletes: gnome-builder-mm
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
Summary: Development files for GNOME Builder
Summary(pl.UTF-8): Pliki programistyczne GNOME Buildera
Group: Development/Libraries
-Requires: glib2-devel >= 1:2.44.0
-Requires: gtk+3-devel >= 3.16.1
-Requires: gtksourceview3-devel >= 3.16.1
+Requires: %{name} = %{version}-%{release}
+Requires: glib2-devel >= 1:2.56.0
+Requires: gtk+3-devel >= 3.22.26
+Requires: gtksourceview4-devel
+Requires: jsonrpc-glib-devel >= 3.28.0
+Requires: libdazzle-devel >= 3.32.0
+Requires: libpeas-devel >= 1.22.0
+Requires: pango-devel >= 1:1.38.0
+Requires: template-glib-devel >= 3.28.0
+Requires: vte-devel >= 0.46
+Obsoletes: gnome-builder-mm-devel
%description devel
This package provides development files for GNOME Builder.
%description devel -l pl.UTF-8
Ten pakiet zawiera pliki programistyczne GNOME Buildera.
-%package apidocs
-Summary: LibIDE API documentation
-Summary(pl.UTF-8): Dokumentacja API LibIDE
+%package -n vala-gnome-builder
+Summary: Vala API for GNOME Builder
+Summary(pl.UTF-8): API języka Vala dla GNOME Buildera
+Group: Development/Libraries
+Requires: %{name}-devel = %{version}-%{release}
+Requires: vala >= 2:0.30
+Requires: vala-gtksourceview4
+Requires: vala-libdazzle >= 3.32.0
+Requires: vala-template-glib >= 3.28.0
+
+%description -n vala-gnome-builder
+Vala API for GNOME Builder.
+
+%description -n vala-gnome-builder -l pl.UTF-8
+API języka Vala dla GNOME Buildera.
+
+%package doc
+Summary: GNOME Builder documentation
+Summary(pl.UTF-8): Dokumentacja do GNOME Buildera
Group: Documentation
+Requires: %{name} = %{version}-%{release}
+%if "%{_rpmversion}" >= "5"
+BuildArch: noarch
+%endif
-%description apidocs
-LibIDE API documentation.
+%description doc
+GNOME Builder documentation.
-%description apidocs -l pl.UTF-8
-Dokumentacja API LibIDE.
+%description doc -l pl.UTF-8
+Dokumentacja do GNOME Buildera.
%prep
%setup -q
+%patch0 -p1
%build
-%{__intltoolize}
-%{__libtoolize}
-%{__aclocal} -I build/autotools
-%{__autoconf}
-%{__autoheader}
-%{__automake}
-%configure \
- --disable-silent-rules \
- --disable-static \
- --with-html-dir=%{_gtkdocdir}
-%{__make}
+%meson build \
+ -Dwith_sysprof=%{__true_false sysprof} \
+ -Dwith_vala_pack=%{__true_false vala_pack}
+
+%meson_build -C build
%install
rm -rf $RPM_BUILD_ROOT
-%{__make} install \
- DESTDIR=$RPM_BUILD_ROOT
-
-%{__rm} $RPM_BUILD_ROOT%{_libdir}/gnome-builder/*.la
-#%{__rm} -r $RPM_BUILD_ROOT%{_docdir}/gnome-builder
+%meson_install -C build
-%find_lang %{name}
+%find_lang %{name} --with-gnome
%clean
rm -rf $RPM_BUILD_ROOT
%files -f %{name}.lang
%defattr(644,root,root,755)
-%doc AUTHORS NEWS README
+%doc AUTHORS NEWS README.md
%attr(755,root,root) %{_bindir}/gnome-builder
%dir %{_libdir}/gnome-builder
-%attr(755,root,root) %{_libdir}/gnome-builder/libide-1.0.so
%dir %{_libdir}/gnome-builder/girepository-1.0
-%{_libdir}/gnome-builder/girepository-1.0/Ide-1.0.typelib
-%attr(755,root,root) %{_libdir}/gnome-builder/ide-build
-%attr(755,root,root) %{_libdir}/gnome-builder/ide-list-*
-%attr(755,root,root) %{_libdir}/gnome-builder/ide-mine-projects
-%attr(755,root,root) %{_libdir}/gnome-builder/ide-search
-%{_datadir}/appdata/org.gnome.Builder.appdata.xml
+%{_libdir}/gnome-builder/girepository-1.0/Ide-*.typelib
+%dir %{_libdir}/gnome-builder/plugins
+%attr(755,root,root) %{_libexecdir}/gnome-builder-clang
+%attr(755,root,root) %{_libexecdir}/gnome-builder-git
+%dir %{_datadir}/gnome-builder
+%{_datadir}/gnome-builder/fonts
+
+%{_libdir}/gnome-builder/plugins/cargo.plugin
+%{_libdir}/gnome-builder/plugins/cargo_plugin.py
+
+%{_libdir}/gnome-builder/plugins/eslint.plugin
+%{_libdir}/gnome-builder/plugins/eslint_plugin.py
+%{_datadir}/glib-2.0/schemas/org.gnome.builder.plugins.eslint.gschema.xml
+
+%{_libdir}/gnome-builder/plugins/find-other-file.plugin
+%{_libdir}/gnome-builder/plugins/find_other_file.py
+
+%{_libdir}/gnome-builder/plugins/gjs_symbols.plugin
+%{_libdir}/gnome-builder/plugins/gjs_symbols.py
+
+%{_libdir}/gnome-builder/plugins/go-langserv.plugin
+%{_libdir}/gnome-builder/plugins/go_langserver_plugin.py
+
+%{_libdir}/gnome-builder/plugins/html_preview.gresource
+%{_libdir}/gnome-builder/plugins/html-preview.plugin
+%{_libdir}/gnome-builder/plugins/html_preview.py
+
+%{_libdir}/gnome-builder/plugins/jedi.plugin
+%{_libdir}/gnome-builder/plugins/jedi_plugin.py
+
+%{_libdir}/gnome-builder/plugins/jhbuild.plugin
+%{_libdir}/gnome-builder/plugins/jhbuild_plugin.py
+
+%{_libdir}/gnome-builder/plugins/make.plugin
+%{_libdir}/gnome-builder/plugins/make_plugin.gresource
+%{_libdir}/gnome-builder/plugins/make_plugin.py
+
+%{_libdir}/gnome-builder/plugins/meson-templates.plugin
+%{_libdir}/gnome-builder/plugins/meson_templates.gresource
+%{_libdir}/gnome-builder/plugins/meson_templates.py
+
+%{_libdir}/gnome-builder/plugins/mono.plugin
+%{_libdir}/gnome-builder/plugins/mono_plugin.py
+
+%{_libdir}/gnome-builder/plugins/npm.plugin
+%{_libdir}/gnome-builder/plugins/npm_plugin.py
+
+%{_libdir}/gnome-builder/plugins/phpize.plugin
+%{_libdir}/gnome-builder/plugins/phpize_plugin.py
+
+%{_libdir}/gnome-builder/plugins/python-gi-imports-completion.plugin
+%{_libdir}/gnome-builder/plugins/python_gi_imports_completion.py
+
+%{_libdir}/gnome-builder/plugins/rustup.plugin
+%{_libdir}/gnome-builder/plugins/rustup_plugin.gresource
+%{_libdir}/gnome-builder/plugins/rustup_plugin.py
+
+#%{_libdir}/gnome-builder/plugins/Ide-*.metadata
+
+%{_libdir}/gnome-builder/plugins/gradle.plugin
+%{_libdir}/gnome-builder/plugins/gradle_plugin.py
+
+%{_libdir}/gnome-builder/plugins/maven.plugin
+%{_libdir}/gnome-builder/plugins/maven_plugin.py
+
+%{_libdir}/gnome-builder/plugins/rls.plugin
+%{_libdir}/gnome-builder/plugins/rls_plugin.py
+
+%{_libdir}/gnome-builder/plugins/waf.plugin
+%{_libdir}/gnome-builder/plugins/waf_plugin.py
+
+%if %{with sysprof}
+# not installed since 3.28
+#%{_libdir}/gnome-builder/plugins/sysprof.plugin
+%endif
+
+%if %{with vala_pack}
+%attr(755,root,root) %{_libdir}/gnome-builder/plugins/libplugin-vala-pack.so
+%{_libdir}/gnome-builder/plugins/vala-pack.plugin
+%endif
+
+%{_libdir}/gnome-builder/plugins/valgrind.plugin
+%{_libdir}/gnome-builder/plugins/valgrind_plugin.gresource
+%{_libdir}/gnome-builder/plugins/valgrind_plugin.py
+
%{_datadir}/dbus-1/services/org.gnome.Builder.service
%{_datadir}/glib-2.0/schemas/org.gnome.builder.gschema.xml
+%{_datadir}/glib-2.0/schemas/org.gnome.builder.build.gschema.xml
+%{_datadir}/glib-2.0/schemas/org.gnome.builder.clang.gschema.xml
%{_datadir}/glib-2.0/schemas/org.gnome.builder.code-insight.gschema.xml
%{_datadir}/glib-2.0/schemas/org.gnome.builder.editor.gschema.xml
%{_datadir}/glib-2.0/schemas/org.gnome.builder.editor.language.gschema.xml
+%{_datadir}/glib-2.0/schemas/org.gnome.builder.extension-type.gschema.xml
+%{_datadir}/glib-2.0/schemas/org.gnome.builder.gnome-code-assistance.gschema.xml
+%{_datadir}/glib-2.0/schemas/org.gnome.builder.plugin.gschema.xml
+%{_datadir}/glib-2.0/schemas/org.gnome.builder.plugins.color_picker_plugin.gschema.xml
+%{_datadir}/glib-2.0/schemas/org.gnome.builder.project.gschema.xml
%{_datadir}/glib-2.0/schemas/org.gnome.builder.project-tree.gschema.xml
+%{_datadir}/glib-2.0/schemas/org.gnome.builder.terminal.gschema.xml
+%{_datadir}/glib-2.0/schemas/org.gnome.builder.workbench.gschema.xml
%{_datadir}/gtksourceview-3.0/styles/builder*.xml
+%{_datadir}/gtksourceview-4/styles/builder*.xml
+%{_datadir}/metainfo/org.gnome.Builder.appdata.xml
%{_desktopdir}/org.gnome.Builder.desktop
-%{_iconsdir}/hicolor/*x*/apps/builder.png
-%{_iconsdir}/hicolor/scalable/apps/builder-symbolic.svg
+%{_iconsdir}/hicolor/scalable/apps/org.gnome.Builder-symbolic.svg
+%{_iconsdir}/hicolor/scalable/apps/org.gnome.Builder.svg
+%{_datadir}/gnome-builder/icons
+%{py3_sitedir}/gi/overrides/Ide.py
%files devel
%defattr(644,root,root,755)
-%{_datadir}/gir-1.0/Ide-1.0.gir
-%{_pkgconfigdir}/libide-1.0.pc
+%{_includedir}/gnome-builder
+%{_includedir}/gnome-builder-*
+%dir %{_datadir}/gnome-builder/gir-1.0
+%{_datadir}/gnome-builder/gir-1.0/Ide-*.gir
+%dir %{_libdir}/gnome-builder/pkgconfig
+%{_libdir}/gnome-builder/pkgconfig/gnome-builder-*.pc
-%files apidocs
+%files -n vala-gnome-builder
%defattr(644,root,root,755)
-%{_gtkdocdir}/libide
+%dir %{_datadir}/gnome-builder/vapi
+%{_datadir}/gnome-builder/vapi/libide-*.deps
+%{_datadir}/gnome-builder/vapi/libide-*.vapi
+%attr(755,root,root) %{_libexecdir}/gnome-builder-vala