%bcond_without static_libs # static library
%bcond_without selinux # SELinux support in gio
%bcond_without systemtap # systemtap/dtrace probes
+%bcond_without fam # disable fam filesystem monitoring support
-%include /usr/lib/rpm/macros.perl
Summary: Useful routines for 'C' programming
Summary(cs.UTF-8): Šikovná knihovna s funkcemi pro pomocné programy
Summary(da.UTF-8): Nyttige biblioteksfunktioner
Summary(tr.UTF-8): Yararlı ufak yordamlar kitaplığı
Summary(zh_CN.UTF-8): 实用工具函数库
Name: glib2
-Version: 2.52.2
+Version: 2.68.0
Release: 1
Epoch: 1
License: LGPL v2+
Group: Libraries
-Source0: http://ftp.gnome.org/pub/GNOME/sources/glib/2.52/glib-%{version}.tar.xz
-# Source0-md5: ec099bce26ce6a85104ed1d89bb45856
-Patch0: %{name}-makefile.patch
-URL: http://www.gtk.org/
-BuildRequires: autoconf >= 2.62
-BuildRequires: automake >= 1:1.11
+Source0: https://download.gnome.org/sources/glib/2.68/glib-%{version}.tar.xz
+# Source0-md5: 7d06a0b20454ec17052572dcf8cd7cea
+Patch0: %{name}-python_shebang.patch
+URL: https://www.gtk.org/
BuildRequires: docbook-dtd412-xml
BuildRequires: docbook-dtd45-xml
-BuildRequires: docbook-style-xsl
+BuildRequires: docbook-style-xsl-nons
BuildRequires: elfutils-devel
-BuildRequires: fam-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.20
-BuildRequires: gtk-doc-automake >= 1.20
+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}
-BuildRequires: libtool >= 2:2.2
-BuildRequires: pcre-devel >= 8.13
+%{?with_selinux:BuildRequires: libselinux-devel >= 2.2}
+BuildRequires: libxslt-progs
+BuildRequires: meson >= 0.49.2
+BuildRequires: ninja >= 1.5
+BuildRequires: pcre-devel >= 8.31
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: python >= 1:2.5
+BuildRequires: python3 >= 1:3.5
BuildRequires: rpm-perlprov
BuildRequires: rpm-pythonprov
-BuildRequires: rpmbuild(macros) >= 1.527
+BuildRequires: rpmbuild(macros) >= 1.752
BuildRequires: sed >= 4.0
%{?with_systemtap:BuildRequires: systemtap-sdt-devel}
BuildRequires: tar >= 1:1.22
BuildRequires: zlib-devel
Requires: iconv
Requires: libmount >= 2.28
-Requires: pcre >= 8.13
+%{?with_selinux:Requires: libselinux >= 2.2}
+Requires: pcre >= 8.31
Suggests: gvfs
Provides: glib2-libs
Obsoletes: glib2-libs
-# sr@Latn vs. sr@latin
-Conflicts: glibc-misc < 6:2.7
# 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.13
-Requires: python-modules
+Requires: pcre-devel >= 8.31
+Requires: python3-modules >= 1:3.5
# gio only
-%{?with_selinux:Requires: libselinux-devel}
+%{?with_selinux:Requires: libselinux-devel >= 2.2}
Requires: zlib-devel
%description devel
Summary(pl.UTF-8): Dokumentacja API GLib
Group: Documentation
Requires: gtk-doc-common
-%if "%{_rpmversion}" >= "5"
BuildArch: noarch
-%endif
%description apidocs
GLib API documetation.
Group: Applications/Shells
Requires: bash-completion >= 2.0
Obsoletes: bash-completion-gdbus
-%if "%{_rpmversion}" >= "5"
BuildArch: noarch
-%endif
%description -n bash-completion-gio
bash-completion for gio utilities: gdbus and gsettings.
%setup -q -n glib-%{version}
%patch0 -p1
-%if %{without apidocs}
-%{__sed} -e '/SUBDIRS/s/docs//' -i Makefile.am
-%{__sed} -e '/^docs.*Makefile$/d' -i configure.ac
-echo 'AC_DEFUN([GTK_DOC_CHECK],[])' >> acinclude.m4
+%build
+%meson build \
+ %{?debug:--debug} \
+ -Ddtrace=%{__true_false systemtap} \
+ -Dsystemtap=%{__true_false systemtap} \
+%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
-%build
-%{?with_apidocs:%{__gtkdocize}}
-%{__libtoolize}
-%{__aclocal} -I m4macros
-%{__autoconf}
-%{__autoheader}
-%{__automake}
-
-# -Wall CPPFLAGS is workaround for https://bugzilla.gnome.org/show_bug.cgi?id=698716
-%configure \
- CPPFLAGS="%{rpmcppflags} -Wall" \
- --enable-debug=%{?debug:yes} \
- %{!?with_systemtap:--disable-dtrace} \
- %{__enable_disable apidocs gtk-doc} \
- %{__enable_disable selinux} \
- --disable-silent-rules \
- %{__enable_disable static_libs static} \
- --enable-man \
- %{?with_apidocs:--with-html-dir=%{_gtkdocdir}} \
- --with-pcre=system
-
-%{__make}
+%ninja_build -C build
%install
rm -rf $RPM_BUILD_ROOT
-%{__make} install \
- DESTDIR=$RPM_BUILD_ROOT \
- m4datadir=%{_aclocaldir} \
- pkgconfigdir=%{_pkgconfigdir}
+install -d $RPM_BUILD_ROOT%{_libdir}/gio/modules
+
+%ninja_install -C build
> $RPM_BUILD_ROOT%{_libdir}/gio/modules/giomodule.cache
> $RPM_BUILD_ROOT%{_datadir}/glib-2.0/schemas/gschemas.compiled
-%{__rm} $RPM_BUILD_ROOT%{_libdir}/gio/modules/libgiofam.la \
- %{?with_static_libs:$RPM_BUILD_ROOT%{_libdir}/gio/modules/libgiofam.a}
-
-%{__mv} $RPM_BUILD_ROOT%{_localedir}/{sr@ije,sr@ijekavian}
-
%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
+# adjust for compatibility with names supported by glibc
+%{__mv} $RPM_BUILD_ROOT%{_localedir}/{sr@ije,sr@ijekavian}
+
%find_lang glib20
%clean
%attr(755,root,root) %ghost %{_libdir}/libgthread-2.0.so.0
%dir %{_libdir}/gio
%dir %{_libdir}/gio/modules
-%attr(755,root,root) %{_libdir}/gio/modules/libgiofam.so
+%{?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
%ghost %{_datadir}/glib-2.0/schemas/gschemas.compiled
-%if %{with apidocs}
%{_mandir}/man1/gapplication.1*
%{_mandir}/man1/gdbus.1*
%{_mandir}/man1/gio.1*
%{_mandir}/man1/gio-querymodules.1*
%{_mandir}/man1/glib-compile-schemas.1*
%{_mandir}/man1/gsettings.1*
-%endif
%files devel
%defattr(644,root,root,755)
-%doc ChangeLog
%attr(755,root,root) %{_bindir}/gdbus-codegen
%attr(755,root,root) %{_bindir}/glib-compile-resources
%attr(755,root,root) %{_bindir}/glib-genmarshal
%{_datadir}/glib-2.0/valgrind
%{_datadir}/gettext/its/gschema.its
%{_datadir}/gettext/its/gschema.loc
-%{_libdir}/libgio-2.0.la
-%{_libdir}/libglib-2.0.la
-%{_libdir}/libgmodule-2.0.la
-%{_libdir}/libgobject-2.0.la
-%{_libdir}/libgthread-2.0.la
%{_pkgconfigdir}/gio-2.0.pc
%{_pkgconfigdir}/gio-unix-2.0.pc
%{_pkgconfigdir}/glib-2.0.pc
%{_aclocaldir}/glib-2.0.m4
%{_aclocaldir}/glib-gettext.m4
%{_aclocaldir}/gsettings.m4
-%if %{with apidocs}
%{_mandir}/man1/gdbus-codegen.1*
%{_mandir}/man1/glib-compile-resources.1*
%{_mandir}/man1/glib-genmarshal.1*
%{_mandir}/man1/gresource.1*
%{_mandir}/man1/gtester-report.1*
%{_mandir}/man1/gtester.1*
-%endif
%if %{with static_libs}
%files static
%defattr(644,root,root,755)
%{_datadir}/bash-completion/completions/gapplication
%{_datadir}/bash-completion/completions/gdbus
+%{_datadir}/bash-completion/completions/gio
%{_datadir}/bash-completion/completions/gresource
%{_datadir}/bash-completion/completions/gsettings
%if %{with systemtap}
%files -n systemtap-glib2
%defattr(644,root,root,755)
-%{_datadir}/systemtap/tapset/libgio-2.0*.stp
-%{_datadir}/systemtap/tapset/libglib-2.0*.stp
-%{_datadir}/systemtap/tapset/libgobject-2.0*.stp
+%{_datadir}/systemtap/tapset/*/libgio-2.0*.stp
+%{_datadir}/systemtap/tapset/*/libglib-2.0*.stp
+%{_datadir}/systemtap/tapset/*/libgobject-2.0*.stp
%endif