# TODO:
-# - deviced (BR: libdeviced-devel >= 3.27.4)
-# - fix warning: jedi not found, python auto-completion not possible.
+# - deviced plugin (BR: libdeviced-devel >= 3.27.4)
#
# Conditional build:
%bcond_without sysprof # sysprof system profiler plugin
%bcond_without vala_pack # vala pack plugin
+%bcond_without apidocs # Sphinx based help + gtk-doc API documentation
#
Summary: IDE for writing GNOME-based software
Summary(pl.UTF-8): IDE do tworzenia oprogramowania opartego na GNOME
Name: gnome-builder
-Version: 3.32.2
+Version: 3.38.1
Release: 2
License: GPL v3+
Group: X11/Applications
-Source0: http://ftp.gnome.org/pub/GNOME/sources/gnome-builder/3.32/%{name}-%{version}.tar.xz
-# Source0-md5: 2ee275b409ba61ddeab17737961ec415
-# Should be safe to remove when we move to gcc 8
-Patch0: unknown-gcc-option.patch
+Source0: http://ftp.gnome.org/pub/GNOME/sources/gnome-builder/3.38/%{name}-%{version}.tar.xz
+# Source0-md5: 40b03ca71dd0e37693819b05d9fa8ffd
URL: https://wiki.gnome.org/Apps/Builder
-BuildRequires: appstream-glib-devel
+BuildRequires: appstream-glib
BuildRequires: clang-devel >= 3.5
BuildRequires: desktop-file-utils
BuildRequires: devhelp-devel >= 3.26.0
BuildRequires: gcc >= 6:4.7
BuildRequires: gettext-tools >= 0.19.8
BuildRequires: gjs-devel >= 1.42.0
-BuildRequires: glade-devel
-BuildRequires: glib2-devel >= 1:2.56.0
+BuildRequires: glade-devel >= 3.22.0
+BuildRequires: glib2-devel >= 1:2.65.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
+%{?with_apidocs:BuildRequires: gtk-doc >= 1.11}
+BuildRequires: gtk-webkit4-devel >= 2.26
+BuildRequires: gtksourceview4-devel >= 4.0.0
BuildRequires: json-glib-devel >= 1.2.0
-BuildRequires: jsonrpc-glib-devel >= 3.28.0
-BuildRequires: libdazzle-devel >= 3.32.0
+BuildRequires: jsonrpc-glib-devel >= 3.30.0
+BuildRequires: libdazzle-devel >= 3.37.0
BuildRequires: libgit2-glib-devel >= 0.25.0
BuildRequires: libpeas-devel >= 1.22.0
+BuildRequires: libportal-devel >= 0.3
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 >= 3.5
-BuildRequires: meson >= 0.44.0
-BuildRequires: ninja
+BuildRequires: meson >= 0.54.0
+BuildRequires: ninja >= 1.5
+BuildRequires: ostree-devel
BuildRequires: pango-devel >= 1:1.38.0
BuildRequires: pcre-devel
BuildRequires: pkgconfig >= 1:0.22
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: rpmbuild(macros) >= 1.752
+%{?with_apidocs:BuildRequires: sphinx-pdg-3}
+%{?with_sysprof:BuildRequires: sysprof-ui-devel >= 3.37.1}
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-gtksourceview4 >= 4.0.0
+BuildRequires: vala-libdazzle >= 3.37.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
BuildRequires: yelp-tools
-Requires(post,postun): glib2 >= 1:2.56.0
+Requires(post,postun): glib2 >= 1:2.65.0
Requires(post,postun): gtk-update-icon-cache
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.56.0
+Requires: glade-libs >= 3.22.0
+Requires: glib2 >= 1:2.65.0
Requires: gspell >= 1.2.0
Requires: gtk+3 >= 3.22.26
-Requires: gtk-webkit4 >= 2.12.0
-Requires: gtksourceview4
+Requires: gtk-webkit4 >= 2.26
+Requires: gtksourceview4 >= 4.0.0
Requires: hicolor-icon-theme
Requires: json-glib >= 1.2.0
-Requires: jsonrpc-glib >= 3.28.0
-Requires: libdazzle >= 3.32.0
+Requires: jsonrpc-glib >= 3.30.0
+Requires: libdazzle >= 3.37.0
Requires: libgit2-glib >= 0.25.0
Requires: libpeas >= 1.22.0
+Requires: libportal >= 0.3
Requires: libsoup >= 2.52.0
Requires: libxml2 >= 1:2.9.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}
+%{?with_sysprof:Requires: sysprof-ui-libs >= 3.37.1}
Requires: template-glib >= 3.28.0
Requires: vte >= 0.46
+Suggests: python3-jedi
Suggests: python3-lxml
-Obsoletes: gnome-builder-apidocs
Obsoletes: gnome-builder-mm
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+%define apiver 3.38
+
%description
Builder attempts to be an IDE for writing software for GNOME. It does
not try to be a generic IDE, but one specialized for writing GNOME
Summary(pl.UTF-8): Pliki programistyczne GNOME Buildera
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
-Requires: glib2-devel >= 1:2.56.0
+Requires: glib2-devel >= 1:2.65.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: gtksourceview4-devel >= 4.0.0
+Requires: jsonrpc-glib-devel >= 3.30.0
+Requires: libdazzle-devel >= 3.37.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
+Obsoletes: vala-gnome-builder < 3.36
%description devel
This package provides development files for GNOME Builder.
%description devel -l pl.UTF-8
Ten pakiet zawiera pliki programistyczne GNOME Buildera.
-%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
-%if "%{_rpmversion}" >= "5"
-BuildArch: noarch
-%endif
-
-%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
+%{?noarchpackage}
%description doc
GNOME Builder documentation.
%description doc -l pl.UTF-8
Dokumentacja do GNOME Buildera.
+%package apidocs
+Summary: API documentation for GNOME Builder libraries
+Summary(pl.UTF-8): Dokumentacja API bibliotek GNOME Buildera
+Group: Documentation
+%{?noarchpackage}
+
+%description apidocs
+API documentation for GNOME Builder libraries.
+
+%description apidocs -l pl.UTF-8
+Dokumentacja API bibliotek GNOME Buildera.
+
%prep
%setup -q
-%patch0 -p1
+
+grep -rl /usr/bin/env src/plugins src/libide | xargs sed -i -e '1{
+ s,^#!.*bin/env python3,#!%{__python3},
+ s,^#!.*bin/env python$,#!%{__python},
+}'
%build
%meson build \
- -Dwith_sysprof=%{__true_false sysprof} \
- -Dwith_vala_pack=%{__true_false vala_pack}
+%if %{with apidocs}
+ -Ddocs=true \
+ -Dhelp=true \
+%endif
+ -Dplugin_rls=true \
+ -Dplugin_sysprof=%{__true_false sysprof} \
+ -Dplugin_vagrant=true \
+ -Dplugin_vala=%{__true_false vala_pack}
+# -Dplugin_deviced=true
%meson_build -C build
%meson_install -C build
+%if %{with apidocs}
+%{__rm} -r $RPM_BUILD_ROOT%{_docdir}/gnome-builder/en/{.buildinfo,_sources,objects.inv}
+%endif
+
%find_lang %{name} --with-gnome
%clean
%attr(755,root,root) %{_bindir}/gnome-builder
%dir %{_libdir}/gnome-builder
%dir %{_libdir}/gnome-builder/girepository-1.0
-%{_libdir}/gnome-builder/girepository-1.0/Ide-3.32.typelib
+%{_libdir}/gnome-builder/girepository-1.0/Ide-%{apiver}.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
+%{_datadir}/gnome-builder/icons
%{_libdir}/gnome-builder/plugins/cargo.plugin
%{_libdir}/gnome-builder/plugins/cargo_plugin.py
+%{_libdir}/gnome-builder/plugins/copyright.plugin
+%{_libdir}/gnome-builder/plugins/copyright_plugin.py
+%{_datadir}/glib-2.0/schemas/org.gnome.builder.plugins.copyright.gschema.xml
+
%{_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/go-langserv.plugin
%{_libdir}/gnome-builder/plugins/go_langserver_plugin.py
+%{_libdir}/gnome-builder/plugins/gvls.plugin
+%{_libdir}/gnome-builder/plugins/gvls_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/rustup_plugin.gresource
%{_libdir}/gnome-builder/plugins/rustup_plugin.py
-%{_libdir}/gnome-builder/plugins/Ide-3.32.metadata
-
%{_libdir}/gnome-builder/plugins/gradle.plugin
%{_libdir}/gnome-builder/plugins/gradle_plugin.py
%{_libdir}/gnome-builder/plugins/rls.plugin
%{_libdir}/gnome-builder/plugins/rls_plugin.py
+%{_libdir}/gnome-builder/plugins/stylelint.plugin
+%{_libdir}/gnome-builder/plugins/stylelint_plugin.py
+%{_datadir}/glib-2.0/schemas/org.gnome.builder.plugins.stylelint.gschema.xml
+
%{_libdir}/gnome-builder/plugins/waf.plugin
%{_libdir}/gnome-builder/plugins/waf_plugin.py
%endif
%if %{with vala_pack}
-%attr(755,root,root) %{_libdir}/gnome-builder/plugins/libplugin-vala-pack.so
%{_libdir}/gnome-builder/plugins/vala-pack.plugin
+%{_libdir}/gnome-builder/plugins/vala_pack_plugin.py
%endif
%{_libdir}/gnome-builder/plugins/valgrind.plugin
%{_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.rust-analyzer.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}/gtksourceview-4/styles/Adwaita*.style-scheme.xml
+%{_datadir}/gtksourceview-4/styles/builder*.style-scheme.xml
%{_datadir}/metainfo/org.gnome.Builder.appdata.xml
%{_desktopdir}/org.gnome.Builder.desktop
%{_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)
%{_includedir}/gnome-builder
-%{_includedir}/gnome-builder-3.32
+%{_includedir}/gnome-builder-%{apiver}
%dir %{_datadir}/gnome-builder/gir-1.0
-%{_datadir}/gnome-builder/gir-1.0/Ide-3.32.gir
+%{_datadir}/gnome-builder/gir-1.0/Ide-%{apiver}.gir
%dir %{_libdir}/gnome-builder/pkgconfig
-%{_libdir}/gnome-builder/pkgconfig/gnome-builder-3.32.pc
+%{_libdir}/gnome-builder/pkgconfig/gnome-builder-%{apiver}.pc
-%files -n vala-gnome-builder
+%if %{with apidocs}
+%files doc
%defattr(644,root,root,755)
-%dir %{_datadir}/gnome-builder/vapi
-%{_datadir}/gnome-builder/vapi/libide-3.32.deps
-%{_datadir}/gnome-builder/vapi/libide-3.32.vapi
+%dir %{_docdir}/gnome-builder
+%{_docdir}/gnome-builder/en
+
+%files apidocs
+%defattr(644,root,root,755)
+%{_gtkdocdir}/libide
+%endif