+# TODO:
+# - use -Dmultiarch for arch-dependent binaries? (like gio-querymodules or gio-launch-desktop)
+# - docutils >= 0.13.1 (rst2html5) based gvariant docs
#
# Conditional build:
%bcond_without apidocs # gtk-doc based API documentation
%bcond_without static_libs # static library
%bcond_without selinux # SELinux support in gio
-%bcond_without systemtap # systemtap/dtrace probes
-%bcond_without fam # FAM filesystem monitoring support
+%bcond_with sysprof # sysprof tracing support
+%bcond_without systemtap # systemtap/dtrace tracing support
Summary: Useful routines for 'C' programming
Summary(cs.UTF-8): Šikovná knihovna s funkcemi pro pomocné programy
Summary(tr.UTF-8): Yararlı ufak yordamlar kitaplığı
Summary(zh_CN.UTF-8): 实用工具函数库
Name: glib2
-Version: 2.68.3
+Version: 2.76.1
Release: 1
Epoch: 1
License: LGPL v2+
Group: Libraries
-Source0: https://download.gnome.org/sources/glib/2.68/glib-%{version}.tar.xz
-# Source0-md5: a3968c7510447f055fd2204ba947f80f
+Source0: https://download.gnome.org/sources/glib/2.76/glib-%{version}.tar.xz
+# Source0-md5: 1adbc389ab891616a041aa6d42ef0529
Patch0: %{name}-python_shebang.patch
+Patch1: gtk-doc-build.patch
URL: https://www.gtk.org/
+BuildRequires: automake
BuildRequires: docbook-dtd412-xml
BuildRequires: docbook-dtd45-xml
BuildRequires: docbook-style-xsl-nons
BuildRequires: elfutils-devel
-%{?with_fam:BuildRequires: fam-devel}
BuildRequires: gettext-tools
%if %(locale -a | grep -q '^C\.utf8$'; echo $?)
BuildRequires: glibc-localedb-all
%endif
%if %{with apidocs}
BuildRequires: gtk-doc >= 1.32.1
-BuildRequires: meson >= 0.52.0
%endif
BuildRequires: libffi-devel >= 3.0.0
BuildRequires: libmount-devel >= 2.28
%{?with_selinux:BuildRequires: libselinux-devel >= 2.2}
+BuildRequires: libstdc++-devel
BuildRequires: libxslt-progs
-BuildRequires: meson >= 0.49.2
+BuildRequires: meson >= 0.60.0
BuildRequires: ninja >= 1.5
-BuildRequires: pcre-devel >= 8.31
+BuildRequires: pcre2-8-devel >= 10.32
BuildRequires: perl-base
BuildRequires: pkgconfig >= 1:0.16
# in case of separate libelf (elfutils don't provide .pc file)
#BuildRequires: pkgconfig(libelf) >= 0.8.12
BuildRequires: pkgconfig(libffi) >= 3.0.0
BuildRequires: python3 >= 1:3.5
+BuildRequires: python3-modules >= 1:3.5
BuildRequires: rpm-build >= 4.6
BuildRequires: rpm-perlprov
BuildRequires: rpm-pythonprov
BuildRequires: rpmbuild(macros) >= 1.752
BuildRequires: sed >= 4.0
+%{?with_sysprof:BuildRequires: sysprof-devel >= 3.38.0}
%{?with_systemtap:BuildRequires: systemtap-sdt-devel}
BuildRequires: tar >= 1:1.22
BuildRequires: xz
Requires: iconv
Requires: libmount >= 2.28
%{?with_selinux:Requires: libselinux >= 2.2}
-Requires: pcre >= 8.31
+Requires: pcre2-8 >= 10.32
Suggests: gvfs
Provides: glib2-libs
-Obsoletes: glib2-libs
+Obsoletes: glib2-libs < 1:2.12.11-3
# see https://bugzilla.xfce.org/show_bug.cgi?id=9709
Conflicts: xfce4-session < 4.10.0-5
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
Requires: %{name} = %{epoch}:%{version}-%{release}
Requires: libffi-devel >= 3.0.0
Requires: libmount-devel >= 2.28
-Requires: pcre-devel >= 8.31
+Requires: pcre2-8-devel >= 10.32
Requires: python3-modules >= 1:3.5
# gio only
%{?with_selinux:Requires: libselinux-devel >= 2.2}
Summary(pt_BR.UTF-8): Bibliotecas estáticas para desenvolvimento com GLib
Group: Development/Libraries
Requires: %{name}-devel = %{epoch}:%{version}-%{release}
+Requires: pcre2-8-static
%description static
Static GLib libraries.
Summary: bash-completion for gio utilities
Summary(pl.UTF-8): Bashowe uzupełnianie nazw dla narzędzi gio
Group: Applications/Shells
-Requires: bash-completion >= 2.0
-Obsoletes: bash-completion-gdbus
+Requires: bash-completion >= 1:2.0
+Obsoletes: bash-completion-gdbus < 1:2.26.0-4
BuildArch: noarch
%description -n bash-completion-gio
%prep
%setup -q -n glib-%{version}
%patch0 -p1
+%patch1 -p1
%build
%meson build \
%ifarch %{ix86}
%{?with_systemtap:-Dtapset_install_dir=%{_datadir}/systemtap/tapset/i386} \
%endif
- -Dfam=%{__true_false fam} \
-Dgtk_doc=%{__true_false apidocs} \
-Dselinux=%{?with_selinux:enabled}%{!?with_selinux:disabled} \
- -Dman=true \
- -Dinternal_pcre=false
+ %{?with_sysprof:-Dsysprof=enabled} \
+ -Dman=true
%ninja_build -C build
> $RPM_BUILD_ROOT%{_libdir}/gio/modules/giomodule.cache
> $RPM_BUILD_ROOT%{_datadir}/glib-2.0/schemas/gschemas.compiled
-%py_comp $RPM_BUILD_ROOT%{_datadir}/glib-2.0/gdb
-%py_ocomp $RPM_BUILD_ROOT%{_datadir}/glib-2.0/gdb
-%py_postclean $RPM_BUILD_ROOT%{_datadir}/glib-2.0/gdb
+%py3_comp $RPM_BUILD_ROOT%{_datadir}/glib-2.0/gdb
+%py3_ocomp $RPM_BUILD_ROOT%{_datadir}/glib-2.0/gdb
# adjust for compatibility with names supported by glibc
%{__mv} $RPM_BUILD_ROOT%{_localedir}/{sr@ije,sr@ijekavian}
+# not supported by glibc yet
+%{__rm} -r $RPM_BUILD_ROOT%{_localedir}/ie
+
%find_lang glib20
%clean
%files -f glib20.lang
%defattr(644,root,root,755)
-%doc AUTHORS README NEWS
+%doc README.md NEWS SECURITY.md
%attr(755,root,root) %{_bindir}/gapplication
%attr(755,root,root) %{_bindir}/gdbus
%attr(755,root,root) %{_bindir}/gio
%attr(755,root,root) %{_bindir}/gio-querymodules
%attr(755,root,root) %{_bindir}/glib-compile-schemas
%attr(755,root,root) %{_bindir}/gsettings
+%attr(755,root,root) %{_libexecdir}/gio-launch-desktop
%attr(755,root,root) %{_libdir}/libgio-2.0.so.*.*.*
%attr(755,root,root) %ghost %{_libdir}/libgio-2.0.so.0
%attr(755,root,root) %{_libdir}/libglib-2.0.so.*.*.*
%attr(755,root,root) %ghost %{_libdir}/libgthread-2.0.so.0
%dir %{_libdir}/gio
%dir %{_libdir}/gio/modules
-%{?with_fam:%attr(755,root,root) %{_libdir}/gio/modules/libgiofam.so}
%ghost %{_libdir}/gio/modules/giomodule.cache
%dir %{_datadir}/glib-2.0
%dir %{_datadir}/glib-2.0/schemas