]> git.pld-linux.org Git - packages/glib2.git/blobdiff - glib2.spec
C: gobject-introspection < 1.79 only when building with introspection
[packages/glib2.git] / glib2.spec
index 3fc3229279eb8fa48eafb699cd798c6348de3dd3..bffd43ae3173fc20fc6881e632337af5b4636eb4 100644 (file)
@@ -1,11 +1,14 @@
+# TODO: 
+# - use -Dmultiarch for arch-dependent binaries? (like gio-querymodules or gio-launch-desktop)
 #
 # Conditional build:
-%bcond_without apidocs         # disable gtk-doc
+%bcond_without apidocs         # gi-docgen based API documentation
+%bcond_without introspection   # gi modules
 %bcond_without static_libs     # static library
 %bcond_without selinux         # SELinux support in gio
-%bcond_without systemtap       # systemtap/dtrace probes
+%bcond_with    sysprof         # sysprof tracing support
+%bcond_without systemtap       # systemtap/dtrace tracing 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
@@ -19,57 +22,64 @@ Summary(pt_BR.UTF-8):       Conjunto de funções gráficas utilitárias
 Summary(tr.UTF-8):     Yararlı ufak yordamlar kitaplığı
 Summary(zh_CN.UTF-8):  实用工具函数库
 Name:          glib2
-Version:       2.58.2
+Version:       2.80.0
 Release:       1
 Epoch:         1
 License:       LGPL v2+
 Group:         Libraries
-Source0:       http://ftp.gnome.org/pub/GNOME/sources/glib/2.58/glib-%{version}.tar.xz
-# Source0-md5: 8483db194fd8a4653394a1413df97a4c
-Patch0:                %{name}-makefile.patch
-URL:           http://www.gtk.org/
-BuildRequires: autoconf >= 2.62
-BuildRequires: automake >= 1:1.13.3
+Source0:       https://download.gnome.org/sources/glib/2.80/glib-%{version}.tar.xz
+# Source0-md5: 3a51e2803ecd22c2dadcd07d9475ebe3
+Patch0:                %{name}-python_shebang.patch
+URL:           https://www.gtk.org/
+BuildRequires: automake
 BuildRequires: docbook-dtd412-xml
 BuildRequires: docbook-dtd45-xml
 BuildRequires: docbook-style-xsl-nons
 BuildRequires: elfutils-devel
-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
-%endif
+# g-ir-scanner required to build introspection
+%{?with_introspection:BuildRequires:   gobject-introspection-devel}
 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.31
+%{?with_selinux:BuildRequires: libselinux-devel >= 2.2}
+BuildRequires: libstdc++-devel
+BuildRequires: libxslt-progs
+BuildRequires: meson >= 1.2.0
+BuildRequires: ninja >= 1.5
+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: python >= 1:2.7
+BuildRequires: python3 >= 1:3.7
+BuildRequires: python3-modules >= 1:3.7
+BuildRequires: python3-packaging
+BuildRequires: rpm-build >= 4.6
 BuildRequires: rpm-perlprov
 BuildRequires: rpm-pythonprov
-BuildRequires: rpmbuild(macros) >= 1.527
+BuildRequires: rpmbuild(macros) >= 2.029
 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
 BuildRequires: zlib-devel
+%if %{with apidocs}
+BuildRequires: docutils >= 0.13.1
+BuildRequires: gi-docgen >= 2023.1
+%endif
 Requires:      iconv
 Requires:      libmount >= 2.28
-Requires:      pcre >= 8.31
+%{?with_selinux:Requires:      libselinux >= 2.2}
+Requires:      pcre2-8 >= 10.32
 Suggests:      gvfs
 Provides:      glib2-libs
-Obsoletes:     glib2-libs
-# sr@Latn vs. sr@latin
-Conflicts:     glibc-misc < 6:2.7
+Obsoletes:     glib2-libs < 1:2.12.11-3
+%{?with_introspection:Conflicts:       gobject-introspection < 1.79}
 # 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)
@@ -130,11 +140,12 @@ Group:            Development/Libraries
 Requires:      %{name} = %{epoch}:%{version}-%{release}
 Requires:      libffi-devel >= 3.0.0
 Requires:      libmount-devel >= 2.28
-Requires:      pcre-devel >= 8.31
-Requires:      python-modules
+Requires:      pcre2-8-devel >= 10.32
+Requires:      python3-modules >= 1:3.7
 # gio only
-%{?with_selinux:Requires:      libselinux-devel}
+%{?with_selinux:Requires:      libselinux-devel >= 2.2}
 Requires:      zlib-devel
+%{?with_introspection:Conflicts:       gobject-introspection-devel < 1.79}
 
 %description devel
 Header files for the support library for the GIMP's X libraries, which
@@ -165,6 +176,7 @@ Summary(pl.UTF-8):  Biblioteki statyczne GLib
 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.
@@ -179,10 +191,7 @@ Bibliotecas estáticas para desenvolvimento com GLib.
 Summary:       GLib API documetation
 Summary(pl.UTF-8):     Dokumentacja API GLib
 Group:         Documentation
-Requires:      gtk-doc-common
-%if "%{_rpmversion}" >= "5"
 BuildArch:     noarch
-%endif
 
 %description apidocs
 GLib API documetation.
@@ -210,11 +219,9 @@ ramek sygnagłów w zrzutach wywołań (backtrace).
 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
-%if "%{_rpmversion}" >= "5"
+Requires:      bash-completion >= 1:2.0
+Obsoletes:     bash-completion-gdbus < 1:2.26.0-4
 BuildArch:     noarch
-%endif
 
 %description -n bash-completion-gio
 bash-completion for gio utilities: gdbus and gsettings.
@@ -239,59 +246,48 @@ Sondy systemtap/dtrace dla GLib 2.
 %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
-%endif
-
 %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} \
+%meson build \
+       %{?debug:--debug} \
+       -Ddtrace=%{__true_false systemtap} \
+       %{!?with_introspection:-Dintrospection=disabled} \
+       -Dsystemtap=%{__true_false systemtap} \
 %ifarch %{ix86}
-       %{?with_systemtap:--with-tapset-install-dir=%{_datadir}/systemtap/tapset/i386} \
+       %{?with_systemtap:-Dtapset_install_dir=%{_datadir}/systemtap/tapset/i386} \
 %endif
-       %{__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
-
-# gtk-doc build requires UTF-8 locale
-LC_ALL=C.UTF-8 \
-%{__make}
+       -Ddocumentation=%{__true_false apidocs} \
+       -Dselinux=%{?with_selinux:enabled}%{!?with_selinux:disabled} \
+       %{?with_sysprof:-Dsysprof=enabled} \
+       -Dman-pages=enabled
+
+%ninja_build -C build
 
 %install
 rm -rf $RPM_BUILD_ROOT
+install -d $RPM_BUILD_ROOT%{_libdir}/gio/modules
+
+%ninja_install -C build
 
-%{__make} install \
-       DESTDIR=$RPM_BUILD_ROOT \
-       m4datadir=%{_aclocaldir} \
-       pkgconfigdir=%{_pkgconfigdir}
+%if %{without introspection}
+install -d $RPM_BUILD_ROOT{%{_libdir}/girepository-1.0,%{_datadir}/gir-1.0}
+%endif
+
+%if %{with apidocs}
+install -d $RPM_BUILD_ROOT%{_gidocdir}
+%{__mv} $RPM_BUILD_ROOT%{_docdir}/glib-2.0 $RPM_BUILD_ROOT%{_gidocdir}
+%endif
 
 > $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}
+%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}
 
-%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
+# not supported by glibc yet
+%{__rm} -r $RPM_BUILD_ROOT%{_localedir}/ie
 
 %find_lang glib20
 
@@ -308,16 +304,18 @@ umask 022
 
 %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-launch-desktop
 %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}/libgirepository-2.0.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libgirepository-2.0.so.0
 %attr(755,root,root) %{_libdir}/libglib-2.0.so.*.*.*
 %attr(755,root,root) %ghost %{_libdir}/libglib-2.0.so.0
 %attr(755,root,root) %{_libdir}/libgmodule-2.0.so.*.*.*
@@ -328,23 +326,33 @@ umask 022
 %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
 %ghost %{_libdir}/gio/modules/giomodule.cache
+%dir %{_libdir}/girepository-1.0
+%if %{with introspection}
+%{_libdir}/girepository-1.0/Gio-2.0.typelib
+%{_libdir}/girepository-1.0/GioUnix-2.0.typelib
+%{_libdir}/girepository-1.0/GIRepository-3.0.typelib
+%{_libdir}/girepository-1.0/GLib-2.0.typelib
+%{_libdir}/girepository-1.0/GLibUnix-2.0.typelib
+%{_libdir}/girepository-1.0/GModule-2.0.typelib
+%{_libdir}/girepository-1.0/GObject-2.0.typelib
+%endif
 %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)
 %attr(755,root,root) %{_bindir}/gdbus-codegen
+%attr(755,root,root) %{_bindir}/gi-compile-repository
+%attr(755,root,root) %{_bindir}/gi-decompile-typelib
+%attr(755,root,root) %{_bindir}/gi-inspect-typelib
 %attr(755,root,root) %{_bindir}/glib-compile-resources
 %attr(755,root,root) %{_bindir}/glib-genmarshal
 %attr(755,root,root) %{_bindir}/glib-gettextize
@@ -354,28 +362,37 @@ umask 022
 %attr(755,root,root) %{_bindir}/gtester
 %attr(755,root,root) %{_bindir}/gtester-report
 %attr(755,root,root) %{_libdir}/libgio-2.0.so
+%attr(755,root,root) %{_libdir}/libgirepository-2.0.so
 %attr(755,root,root) %{_libdir}/libglib-2.0.so
 %attr(755,root,root) %{_libdir}/libgmodule-2.0.so
 %attr(755,root,root) %{_libdir}/libgobject-2.0.so
 %attr(755,root,root) %{_libdir}/libgthread-2.0.so
-%{_libdir}/glib-2.0
+%dir %{_libdir}/glib-2.0
+%{_libdir}/glib-2.0/include
 %{_includedir}/gio-unix-2.0
 %{_includedir}/glib-2.0
+%dir %{_datadir}/gir-1.0
+%if %{with introspection}
+%{_datadir}/gir-1.0/Gio-2.0.gir
+%{_datadir}/gir-1.0/GioUnix-2.0.gir
+%{_datadir}/gir-1.0/GIRepository-3.0.gir
+%{_datadir}/gir-1.0/GLib-2.0.gir
+%{_datadir}/gir-1.0/GLibUnix-2.0.gir
+%{_datadir}/gir-1.0/GModule-2.0.gir
+%{_datadir}/gir-1.0/GObject-2.0.gir
+%endif
 %dir %{_datadir}/glib-2.0/codegen
 %{_datadir}/glib-2.0/codegen/*.py*
+%{_datadir}/glib-2.0/dtds
 %dir %{_datadir}/glib-2.0/gettext
 %{_datadir}/glib-2.0/gettext/po
 %{_datadir}/glib-2.0/schemas/gschema.dtd
 %{_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}/girepository-2.0.pc
 %{_pkgconfigdir}/glib-2.0.pc
 %{_pkgconfigdir}/gmodule-2.0.pc
 %{_pkgconfigdir}/gmodule-export-2.0.pc
@@ -385,8 +402,10 @@ umask 022
 %{_aclocaldir}/glib-2.0.m4
 %{_aclocaldir}/glib-gettext.m4
 %{_aclocaldir}/gsettings.m4
-%if %{with apidocs}
 %{_mandir}/man1/gdbus-codegen.1*
+%{_mandir}/man1/gi-compile-repository.1*
+%{_mandir}/man1/gi-decompile-typelib.1*
+%{_mandir}/man1/gi-inspect-typelib.1*
 %{_mandir}/man1/glib-compile-resources.1*
 %{_mandir}/man1/glib-genmarshal.1*
 %{_mandir}/man1/glib-gettextize.1*
@@ -395,12 +414,12 @@ umask 022
 %{_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)
 %{_libdir}/libgio-2.0.a
+%{_libdir}/libgirepository-2.0.a
 %{_libdir}/libglib-2.0.a
 %{_libdir}/libgmodule-2.0.a
 %{_libdir}/libgobject-2.0.a
@@ -410,9 +429,7 @@ umask 022
 %if %{with apidocs}
 %files apidocs
 %defattr(644,root,root,755)
-%{_gtkdocdir}/gio
-%{_gtkdocdir}/glib
-%{_gtkdocdir}/gobject
+%{_gidocdir}/glib-2.0
 %endif
 
 %files gdb
@@ -423,11 +440,11 @@ umask 022
 
 %files -n bash-completion-gio
 %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
+%{bash_compdir}/gapplication
+%{bash_compdir}/gdbus
+%{bash_compdir}/gio
+%{bash_compdir}/gresource
+%{bash_compdir}/gsettings
 
 %if %{with systemtap}
 %files -n systemtap-glib2
This page took 0.099196 seconds and 4 git commands to generate.