From 15f71a66936cf45fd5e2adcf14facd2c3b0b819d2420c37a99f75c892a885bf7 Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Tue, 19 Mar 2024 13:32:09 +0000 Subject: [PATCH] Accepting request 1158986 from GNOME:Next GNOME 46 OBS-URL: https://build.opensuse.org/request/show/1158986 OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/glib2?expand=0&rev=536 --- _multibuild | 1 + _service | 19 ++ files.glib2 | 175 +++++++++++++ files.stage1 | 63 +++++ glib-2.78.3.tar.xz | 3 - glib-2.80.0.obscpio | 3 + glib.obsinfo | 4 + glib2-gdbus-codegen-version.patch | 21 +- glib2.changes | 98 ++++++++ glib2.spec | 393 ++++++++++++++---------------- 10 files changed, 557 insertions(+), 223 deletions(-) create mode 100644 _service create mode 100644 files.glib2 create mode 100644 files.stage1 delete mode 100644 glib-2.78.3.tar.xz create mode 100644 glib-2.80.0.obscpio create mode 100644 glib.obsinfo diff --git a/_multibuild b/_multibuild index 58ef5ee..7f4fd20 100644 --- a/_multibuild +++ b/_multibuild @@ -1,3 +1,4 @@ doc + stage1 diff --git a/_service b/_service new file mode 100644 index 0000000..f626c31 --- /dev/null +++ b/_service @@ -0,0 +1,19 @@ + + + + git + https://gitlab.gnome.org/GNOME/glib.git + 2.80.0 + @PARENT_TAG@+@TAG_OFFSET@ + (.*)\+0 + \1 + + + + + *.tar + zst + + + + diff --git a/files.glib2 b/files.glib2 new file mode 100644 index 0000000..203ebdc --- /dev/null +++ b/files.glib2 @@ -0,0 +1,175 @@ +%files tools +%license LICENSES/LGPL-2.1-or-later.txt +%doc README.md +%{_bindir}/gapplication +%{_bindir}/gdbus +%{_bindir}/gio +%{_bindir}/gio-querymodules* +%{_bindir}/glib-compile-schemas +%{_bindir}/gresource +%{_bindir}/gsettings +%{_libexecdir}/gio-launch-desktop +%dir %{_datadir}/bash-completion +%dir %{_datadir}/bash-completion/completions +%{_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 +%dir %{_datadir}/zsh +%dir %{_datadir}/zsh/site-functions +%{_datadir}/zsh/site-functions/_gsettings +%{_mandir}/man1/gapplication.1%{?ext_man} +%{_mandir}/man1/gdbus.1%{?ext_man} +%{_mandir}/man1/gio.1%{?ext_man} +%{_mandir}/man1/gio-querymodules.1%{?ext_man} +%{_mandir}/man1/glib-compile-schemas.1%{?ext_man} +%{_mandir}/man1/gresource.1%{?ext_man} +%{_mandir}/man1/gsettings.1%{?ext_man} +# We put those files here, but they don't really belong here. They just don't +# have a better home... The zzz-glib2 scripts could arguably be in +# libglib-2_0-0 but that would break the shared library policy. +%{_sysconfdir}/profile.d/zzz-glib2.* + +%files -n gio-branding-upstream +%license LICENSES/LGPL-2.1-or-later.txt +%doc README.Gsettings-overrides +%config (noreplace) %{_sysconfdir}/gnome_defaults.conf + +%files -n %{libglib} +%license LICENSES/LGPL-2.1-or-later.txt +%doc NEWS +%{_libdir}/libglib*.so.* + +%files -n %{libgmodule} +%license LICENSES/LGPL-2.1-or-later.txt +%{_libdir}/libgmodule*.so.* + +%files -n %{libgobject} +%license LICENSES/LGPL-2.1-or-later.txt +%{_libdir}/libgobject*.so.* + +%files -n %{libgthread} +%license LICENSES/LGPL-2.1-or-later.txt +%{_libdir}/libgthread*.so.* + +%files -n %{libgio} +%license LICENSES/LGPL-2.1-or-later.txt +%{_libdir}/libgio*.so.* +%dir %{_libdir}/gio +%dir %{_libdir}/gio/modules +%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 +%{_datadir}/applications/gnome-mimeapps.list +%dir %{_localstatedir}/cache/gio-2.0 +%ghost %{_localstatedir}/cache/gio-2.0/gnome-mimeapps.list +%ghost %{_localstatedir}/cache/gio-2.0/xfce-mimeapps.list +%ghost %{_localstatedir}/cache/gio-2.0/lxde-mimeapps.list +%ghost %{_localstatedir}/cache/gio-2.0/pantheon-mimeapps.list +%ghost %{_localstatedir}/cache/gio-2.0/budgie-mimeapps.list +%ghost %{_localstatedir}/cache/gio-2.0/mate-mimeapps.list + +%files devel +%license LICENSES/LGPL-2.1-or-later.txt +%{_bindir}/gdbus-codegen +%{_bindir}/gi-compile-repository +%{_bindir}/gi-decompile-typelib +%{_bindir}/gi-inspect-typelib +%{_bindir}/glib-compile-resources +%{_bindir}/glib-genmarshal +%{_bindir}/glib-gettextize +%{_bindir}/glib-mkenums +%{_bindir}/gobject-query +%{_bindir}/gtester +%{_bindir}/gtester-report +%{_mandir}/man1/gdbus-codegen*%{ext_man} +%{_mandir}/man1/gi-compile-repository.1%{?ext_man} +%{_mandir}/man1/gi-decompile-typelib.1%{?ext_man} +%{_mandir}/man1/gi-inspect-typelib.1%{?ext_man} +%{_mandir}/man1/glib-compile-resources.1%{ext_man} +%{_mandir}/man1/glib-genmarshal.1%{ext_man} +%{_mandir}/man1/glib-gettextize.1%{ext_man} +%{_mandir}/man1/glib-mkenums.1%{ext_man} +%{_mandir}/man1/gobject-query.1%{ext_man} +%{_mandir}/man1/gtester-report.1%{?ext_man} +%{_mandir}/man1/gtester.1%{ext_man} +%dir %{_datadir}/aclocal +%{_datadir}/aclocal/glib-2.0.m4 +%{_datadir}/aclocal/glib-gettext.m4 +%{_datadir}/aclocal/gsettings.m4 +%dir %{_datadir}/gettext/its/ +%{_datadir}/gettext/its/gschema* +%dir %{_datadir}/glib-2.0/ +%{_datadir}/glib-2.0/dtds/ +%{_datadir}/glib-2.0/gdb/ +%{_datadir}/glib-2.0/gettext/ +%{_datadir}/glib-2.0/codegen/ +%{_datadir}/glib-2.0/schemas/gschema.dtd +%{_datadir}/glib-2.0/valgrind/ +%{_includedir}/glib-2.0 +%{_includedir}/gio-unix-2.0 +%{_libdir}/lib*.so +%dir %{_libdir}/glib-2.0/ +%{_libdir}/glib-2.0/include/ +%{_libdir}/pkgconfig/*.pc +%{_datadir}/gdb/auto-load/%{_libdir}/*-gdb.py +%if %{with systemtap} +%dir %{_datadir}/systemtap +%dir %{_datadir}/systemtap/tapset +%dir %{_datadir}/systemtap/tapset/* +%{_datadir}/systemtap/tapset/*/libgio-*.so.*.stp +%{_datadir}/systemtap/tapset/*/libglib-*.so.*.stp +%{_datadir}/systemtap/tapset/*/libgobject-*.so.*.stp +%endif +%{_rpmmacrodir}/macros.glib2 +# Own these directories to avoid build requirement on gdb +# only for directories ownership +%dir %{_datadir}/gdb +%dir %{_datadir}/gdb/auto-load +%dir %{_datadir}/gdb/auto-load%{_prefix} +%dir %{_datadir}/gdb/auto-load%{_libdir} +%{_datadir}/gir-1.0/GIRepository-3.0.gir +%{_datadir}/gir-1.0/GLib-2.0.gir +%{_datadir}/gir-1.0/GModule-2.0.gir +%{_datadir}/gir-1.0/GObject-2.0.gir +%{_datadir}/gir-1.0/Gio-2.0.gir +%{_datadir}/gir-1.0/GLibUnix-2.0.gir +%{_datadir}/gir-1.0/GioUnix-2.0.gir + +%files -n typelib-1_0-GLibUnix-2_0 +%{_libdir}/girepository-1.0/GLibUnix-2.0.typelib + +%files -n typelib-1_0-GIRepository-3_0 +%{_libdir}/girepository-1.0/GIRepository-3.0.typelib + +%files -n typelib-1_0-GLib-2_0 +%{_libdir}/girepository-1.0/GLib-2.0.typelib + +%files -n typelib-1_0-GModule-2_0 +%{_libdir}/girepository-1.0/GModule-2.0.typelib + +%files -n typelib-1_0-GObject-2_0 +%{_libdir}/girepository-1.0/GObject-2.0.typelib + +%files -n typelib-1_0-Gio-2_0 +%{_libdir}/girepository-1.0/Gio-2.0.typelib +%{_libdir}/girepository-1.0/GioUnix-2.0.typelib + +%files -n %{libgirepository} +%{_libdir}/libgirepository-2.0.so.0* + +%files devel-static +%license LICENSES/LGPL-2.1-or-later.txt +%{_libdir}/lib*.a + +%files lang -f glib20.lang +%license LICENSES/LGPL-2.1-or-later.txt + +%files tests-devel +%license LICENSES/LGPL-2.1-or-later.txt +%{_libexecdir}/installed-tests +%attr(0755 - -) %{_libexecdir}/installed-tests/glib/taptestrunner.py +%attr(0755 - -) %{_libexecdir}/installed-tests/glib/x-content/unix-software/autorun.sh +%{_datadir}/installed-tests diff --git a/files.stage1 b/files.stage1 new file mode 100644 index 0000000..14febf2 --- /dev/null +++ b/files.stage1 @@ -0,0 +1,63 @@ + +%ldconfig_scriptlets + +%files +%dir %{_libdir}/glib-2.0 +%dir %{_libdir}/glib-2.0/include +%dir %{_datadir}/gdb/auto-load/usr +%dir %{_datadir}/gdb/auto-load%{_libdir} +%dir %{_datadir}/gettext/its +%dir %{_datadir}/gdb +%dir %{_datadir}/gdb/auto-load + +%{_bindir}/gapplication +%{_bindir}/gdbus +%{_bindir}/gdbus-codegen +%{_bindir}/gi-compile-repository +%{_bindir}/gi-decompile-typelib +%{_bindir}/gi-inspect-typelib +%{_bindir}/gio +%{_bindir}/gio-querymodules +%{_bindir}/glib-compile-resources +%{_bindir}/glib-compile-schemas +%{_bindir}/glib-genmarshal +%{_bindir}/glib-gettextize +%{_bindir}/glib-mkenums +%{_bindir}/gobject-query +%{_bindir}/gresource +%{_bindir}/gsettings +%{_bindir}/gtester +%{_bindir}/gtester-report +%{_datadir}/aclocal/glib-2.0.m4 +%{_datadir}/aclocal/glib-gettext.m4 +%{_datadir}/aclocal/gsettings.m4 +%{_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 +%{_datadir}/gdb/auto-load%{_libdir}/libglib-2.0.so.*gdb.py +%{_datadir}/gdb/auto-load%{_libdir}/libgobject-2.0.so.*gdb.py +%{_datadir}/gettext/its/gschema.its +%{_datadir}/gettext/its/gschema.loc +%{_datadir}/glib-2.0/ +%{_includedir}/gio-unix-2.0 +%{_includedir}/glib-2.0 +%{_libdir}/glib-2.0/include/glibconfig.h +%{_libdir}/libgio-2.0.so* +%{_libdir}/libgirepository-2.0.so* +%{_libdir}/libglib-2.0.so* +%{_libdir}/libgmodule-2.0.so* +%{_libdir}/libgobject-2.0.so* +%{_libdir}/libgthread-2.0.so* +%{_libdir}/pkgconfig/gio-2.0.pc +%{_libdir}/pkgconfig/gio-unix-2.0.pc +%{_libdir}/pkgconfig/girepository-2.0.pc +%{_libdir}/pkgconfig/glib-2.0.pc +%{_libdir}/pkgconfig/gmodule-2.0.pc +%{_libdir}/pkgconfig/gmodule-export-2.0.pc +%{_libdir}/pkgconfig/gmodule-no-export-2.0.pc +%{_libdir}/pkgconfig/gobject-2.0.pc +%{_libdir}/pkgconfig/gthread-2.0.pc +%{_libexecdir}/gio-launch-desktop + diff --git a/glib-2.78.3.tar.xz b/glib-2.78.3.tar.xz deleted file mode 100644 index 3d16d27..0000000 --- a/glib-2.78.3.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:609801dd373796e515972bf95fc0b2daa44545481ee2f465c4f204d224b2bc21 -size 5321388 diff --git a/glib-2.80.0.obscpio b/glib-2.80.0.obscpio new file mode 100644 index 0000000..0f3794c --- /dev/null +++ b/glib-2.80.0.obscpio @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:326c1df6d24bc611550ab6f99d68651f6d20ecd33d7a41a3f7d5fdd7a7d79390 +size 51352590 diff --git a/glib.obsinfo b/glib.obsinfo new file mode 100644 index 0000000..ef14bd2 --- /dev/null +++ b/glib.obsinfo @@ -0,0 +1,4 @@ +name: glib +version: 2.80.0 +mtime: 1709847305 +commit: 763cc3b238398614c20069fd67642730e3a6519b diff --git a/glib2-gdbus-codegen-version.patch b/glib2-gdbus-codegen-version.patch index 8a94e42..c347041 100644 --- a/glib2-gdbus-codegen-version.patch +++ b/glib2-gdbus-codegen-version.patch @@ -1,8 +1,8 @@ -Index: glib-2.70.0/gio/gdbus-2.0/codegen/codegen.py -=================================================================== ---- glib-2.70.0.orig/gio/gdbus-2.0/codegen/codegen.py -+++ glib-2.70.0/gio/gdbus-2.0/codegen/codegen.py -@@ -95,8 +95,7 @@ class HeaderCodeGenerator: +diff --git a/gio/gdbus-2.0/codegen/codegen.py b/gio/gdbus-2.0/codegen/codegen.py +index 2e8ef8e2..772dad77 100644 +--- a/gio/gdbus-2.0/codegen/codegen.py ++++ b/gio/gdbus-2.0/codegen/codegen.py +@@ -98,8 +98,7 @@ class HeaderCodeGenerator: # ---------------------------------------------------------------------------------------------------- def generate_header_preamble(self): @@ -12,7 +12,7 @@ Index: glib-2.70.0/gio/gdbus-2.0/codegen/codegen.py self.outfile.write("\n") if self.use_pragma: -@@ -1040,8 +1039,7 @@ class InterfaceInfoHeaderCodeGenerator: +@@ -1043,8 +1042,7 @@ class InterfaceInfoHeaderCodeGenerator: # ---------------------------------------------------------------------------------------------------- def generate_header_preamble(self): @@ -22,7 +22,7 @@ Index: glib-2.70.0/gio/gdbus-2.0/codegen/codegen.py self.outfile.write("\n") if self.use_pragma: -@@ -1112,8 +1110,7 @@ class InterfaceInfoBodyCodeGenerator: +@@ -1115,8 +1113,7 @@ class InterfaceInfoBodyCodeGenerator: # ---------------------------------------------------------------------------------------------------- def generate_body_preamble(self): @@ -32,13 +32,12 @@ Index: glib-2.70.0/gio/gdbus-2.0/codegen/codegen.py if self.symbol_decoration_define is not None: self.outfile.write("\n") -@@ -1466,8 +1463,7 @@ class CodeGenerator: - # ---------------------------------------------------------------------------------------------------- +@@ -1469,7 +1466,7 @@ class CodeGenerator: def generate_body_preamble(self): -- basenames = ", ".join(self.input_files_basenames) + basenames = ", ".join(self.input_files_basenames) - self.outfile.write(LICENSE_STR.format(config.VERSION, basenames)) + self.outfile.write(LICENSE_STR) + if self.symbol_decoration_define is not None: self.outfile.write("\n") - self.outfile.write("#define %s\n" % self.symbol_decoration_define) diff --git a/glib2.changes b/glib2.changes index 92407dc..fd2d689 100644 --- a/glib2.changes +++ b/glib2.changes @@ -1,3 +1,101 @@ +------------------------------------------------------------------- +Mon Mar 18 12:25:33 UTC 2024 - Dominique Leuenberger + +- Fold typelib-1_0-GioUnix-2_0 into typeib-1_0-Gio-2_0: gjs loads + GioUnix as platform-specific overlay to Gio transparently. Any + consumer that wants Gio needs GioUnix on Unix-like systems + (boo#1211604). + +------------------------------------------------------------------- +Fri Mar 8 07:28:10 UTC 2024 - Dominique Leuenberger + +- Update to version 2.80.0: + + Bugs fixed: + - GLib: string malformed for gettext. + - Add missing argument placeholders to several command-line + tools. + - g_warn_if_fail: Document as always evaluating expr. + - docs: + . Fix a typo in the macros docs page. + . Specify gi-docgen as a native dependency. + . Fix building with docs enabled and introspection disabled. + . Minor improvements to GSignal documentation. + + Updated translations. + +------------------------------------------------------------------- +Wed Mar 6 14:32:51 UTC 2024 - Dominique Leuenberger + +- Create glib2-stage1: build glib2 without intrsospection. This + intermediate glib2-stage1-devel is used to the build + gobject-introspection, which in turn is needed to build the real + glib2 packages. + +------------------------------------------------------------------- +Tue Feb 27 10:43:06 UTC 2024 - Dominique Leuenberger + +- Update to version 2.79.3: + + Various consistency improvements to the command line + libgirepository tools + +------------------------------------------------------------------- +Tue Feb 13 09:20:25 UTC 2024 - Dominique Leuenberger + +- Update to version 2.79.2: + + More work to reduce lock contention and improve performance in + GObject. + + More API changes to libgirepository, which is now stable as of + this release. + + Import `g-ir-compiler`, `g-ir-generate` and `g-ir-inspect` + from gobject-introspection.git and update them to work with + girepository-2.0, renaming them to `gi-compile-repository`, + `gi-decompile-typelib` and`gi-inspect-typelib`. + + Add new `GLibUnix-2.0.gir`, `GLibWin32-2.0.gir`, + `GioUnix-2.0.gir` and `GioWin32-2.0.gir` GIRs which contain + platform specific APIs, and are the preferred way for third + parties to access those APIs in future; although platform + specific APIs which were already exposed in `GLib-2.0.gir` and + `Gio-2.0.gir` continue to be listed there; the underlying `.so` + files have not changed. + +------------------------------------------------------------------- +Mon Jan 29 13:38:52 UTC 2024 - Dominique Leuenberger + +- Update to version 2.79.1: + + Fix a race condition in `g_object_unref()`, + + Various API and build changes to libgirepository as it is not + yet API-stable, + + Build fixes on big-endian 64-bit systems and mips64el, + + Reduce contention on global locks within GObject, + + Allow building man pages without the reference documentation, + +------------------------------------------------------------------- +Tue Jan 16 07:51:52 UTC 2024 - Dominique Leuenberger + +- Update to version 2.79.0+158: + + Port to gi-docgen and drop gtk-doc support — dependencies have + changed, and Meson needs `-Ddocumentation` now rather than + `-Dgtk_doc. + + Move libgirepository into glib.git from + gobject-introspection.git — but tools like `g-ir-scanner` are + currently still in gobject-introspection.git. For the moment, + glib.git needs to be built twice, once with + `-Dintrospection=false`, then build gobject-introspection.git, + then re-build glib.git with `-Dintrospection=true`. This + process will evolve throughout the GLib 2.80 cycle. The API and + ABI of libgirepository has changed, and accordingly its version + number has been bumped from 1.0 to 2.0 (note: the version + number of `GIRepository-*.gir` has been bumped from 2.0 to 3.0. + + Match behaviour for `GAppInfo` searches has changed. + + Rename `GTK_USE_PORTAL` environment variable to + `GIO_USE_PORTALS`. + + Bump Meson dependency to 1.2.0 and depend on Python `packaging` + module. +- Add pkgconfig(gobject-introspection-1.0) BuildRequires: new + dependency. +- For doc flavor: replace gtk-doc BuildRequires with + pkgconfig(gi-docgen), following upstreams port to gi-docgen. +- Convert to source service for easier updating. + ------------------------------------------------------------------- Thu Dec 7 10:52:01 UTC 2023 - Bjørn Lie diff --git a/glib2.spec b/glib2.spec index 56d63d9..e213da6 100644 --- a/glib2.spec +++ b/glib2.spec @@ -1,7 +1,7 @@ # -# spec file +# spec file for package glib2 # -# Copyright (c) 2023 SUSE LLC +# Copyright (c) 2024 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,9 +18,16 @@ %global flavor @BUILD_FLAVOR@%{nil} %if "%{flavor}" == "doc" -%global psuffix -doc + %global psuffix -doc + %bcond_with systemtap %else -%global psuffix %{nil} + %if "%{flavor}" == "stage1" + %global psuffix -stage1-devel + %bcond_with systemtap + %else + %global psuffix %{nil} + %bcond_without systemtap + %endif %endif %define libver 2_0-0 %define libgio libgio-%{libver} @@ -28,15 +35,15 @@ %define libgmodule libgmodule-%{libver} %define libgobject libgobject-%{libver} %define libgthread libgthread-%{libver} -%bcond_without systemtap +%define libgirepository libgirepository-%{libver} Name: glib2%{psuffix} -Version: 2.78.3 +Version: 2.80.0 Release: 0 Summary: General-Purpose Utility Library License: LGPL-2.1-or-later Group: Development/Libraries/C and C++ URL: https://gitlab.gnome.org/GNOME/glib/ -Source0: https://download.gnome.org/sources/glib/2.78/glib-%{version}.tar.xz +Source0: glib-%{version}.tar.zst Source1: glib2.sh Source2: glib2.csh # Not upstream file. Only proposes upstream packages: @@ -48,6 +55,8 @@ Source6: macros.glib2 Source8: gsettings.zsh Source98: glib2-rpmlintrc Source99: baselibs.conf +Source200: files.glib2 +Source201: files.stage1 # PATCH-FEATURE-UPSTREAM glib2-bgo569829-gettext-gkeyfile.patch fate300461 bgo569829 vuntz@novell.com -- Look for translation of desktop entry strings via gettext, part that we share with Ubuntu and try to push upstream Patch0: glib2-bgo569829-gettext-gkeyfile.patch # PATCH-FEATURE-OPENSUSE glib2-fate300461-gettext-gkeyfile-suse.patch fate300461 vuntz@novell.com -- Look for translation of desktop entry strings via gettext, part that deals with the openSUSE specific infrastructure (with desktop_translations) @@ -56,7 +65,6 @@ Patch1: glib2-fate300461-gettext-gkeyfile-suse.patch Patch2: glib2-suppress-schema-deprecated-path-warning.patch # PATCH-FIX-OPENSUSE glib2-gdbus-codegen-version.patch olaf@aepfle.de -- Remove version string from files generated by gdbus-codegen Patch4: glib2-gdbus-codegen-version.patch - BuildRequires: docbook-xsl-stylesheets BuildRequires: fdupes BuildRequires: gcc-c++ @@ -65,6 +73,7 @@ BuildRequires: m4 BuildRequires: meson >= 0.60.0 BuildRequires: pkgconfig BuildRequires: python3-base >= 3.5 +BuildRequires: python3-docutils # gdbus-codegen is run during the build, so we need python3-xml BuildRequires: python3-xml BuildRequires: xsltproc @@ -74,18 +83,31 @@ BuildRequires: pkgconfig(libffi) >= 3.0.0 BuildRequires: pkgconfig(libpcre2-8) >= 10.32 BuildRequires: pkgconfig(mount) >= 2.28 BuildRequires: pkgconfig(zlib) +%if "%{flavor}" != "stage1" +BuildRequires: pkgconfig(gobject-introspection-1.0) +%endif %if "%{flavor}" == "doc" # Split-provides Provides: glib2-devel:%{_datadir}/gtk-doc/html/gobject/index.html %endif %if "%{flavor}" == "doc" BuildRequires: glib2-devel -BuildRequires: gtk-doc >= 1.32 +BuildRequires: pkgconfig(gi-docgen) %endif %if %{with systemtap} BuildRequires: systemtap-dtrace BuildRequires: systemtap-headers %endif +%if "%{flavor}" == "stage1" +Requires: this-is-only-for-build-envs +Conflicts: %{libgio} +Conflicts: %{libglib} +Conflicts: %{libgmodule} +Conflicts: %{libgobject} +Conflicts: %{libgthread} +Conflicts: glib2-devel +Conflicts: glib2-tools +%endif %description GLib is a general-purpose utility library, which provides many useful @@ -135,9 +157,12 @@ GSettings and applications used by the MIME system. %package devel Summary: Development files for glib, a general-purpose utility library -# Now require the subpackages too Group: Development/Libraries/C and C++ +# GDbusTest launches dbus-daemon with a special env to not interfere with +# the real session bus. +Requires: %{_bindir}/dbus-daemon Requires: %{libgio} = %{version} +Requires: %{libgirepository} = %{version} Requires: %{libglib} = %{version} Requires: %{libgmodule} = %{version} Requires: %{libgobject} = %{version} @@ -147,9 +172,12 @@ Requires: glibc-devel Requires: pkgconfig # Required by gdbus-codegen Requires: python3-xml -# GDbusTest launches dbus-daemon with a special env to not interfere with -# the real session bus. -Requires: %{_bindir}/dbus-daemon +Requires: typelib-1_0-GIRepository-3_0 = %{version} +Requires: typelib-1_0-GLib-2_0 = %{version} +Requires: typelib-1_0-GLibUnix-2_0 = %{version} +Requires: typelib-1_0-GModule-2_0 = %{version} +Requires: typelib-1_0-GObject-2_0 = %{version} +Requires: typelib-1_0-Gio-2_0 = %{version} # %description devel @@ -201,9 +229,9 @@ Group: System/Libraries # The tools are useful for people having libgio # bnc#555605: shared-mime-info is required by libgio to properly detect mime types, but not during build #!BuildIgnore: shared-mime-info -Requires: %{name}-tools # bnc#678518: libgio interacts with others by means of dbus-launch Requires: %{_bindir}/dbus-launch +Requires: %{name}-tools Requires: gio-branding = %{version} Requires: shared-mime-info # Needed for branding packages @@ -241,6 +269,17 @@ a main loop abstraction, and so on. The GObject library provides an object-oriented framework for C. +%package -n %{libgirepository} +Summary: Object-Oriented Framework for C +Group: System/Libraries + +%description -n %{libgirepository} +GLib is a general-purpose utility library, which provides many useful +data types, macros, type conversions, string utilities, file utilities, +a main loop abstraction, and so on. + +The GObject library provides an object-oriented framework for C. + %package tests-devel Summary: Tests for the glib2 package Group: Development/Libraries/C and C++ @@ -253,6 +292,76 @@ Obsoletes: %{name}-tests < %{version}-%{release} The glib2-tests-devel package contains tests that can be used to verify the functionality of the installed glib2 package. +%package -n typelib-1_0-GIRepository-3_0 +Summary: Object-Oriented Framework for C +Group: System/Libraries + +%description -n typelib-1_0-GIRepository-3_0 +GLib is a general-purpose utility library, which provides many useful +data types, macros, type conversions, string utilities, file utilities, +a main loop abstraction, and so on. + +The GObject library provides an object-oriented framework for C. + +%package -n typelib-1_0-GLib-2_0 +Summary: Object-Oriented Framework for C +Group: System/Libraries + +%description -n typelib-1_0-GLib-2_0 +GLib is a general-purpose utility library, which provides many useful +data types, macros, type conversions, string utilities, file utilities, +a main loop abstraction, and so on. + +The GObject library provides an object-oriented framework for C. + +%package -n typelib-1_0-GLibUnix-2_0 +Summary: Object-Oriented Framework for C +Group: System/Libraries + +%description -n typelib-1_0-GLibUnix-2_0 +GLib is a general-purpose utility library, which provides many useful +data types, macros, type conversions, string utilities, file utilities, +a main loop abstraction, and so on. + +The GObject library provides an object-oriented framework for C. + +%package -n typelib-1_0-GModule-2_0 +Summary: Object-Oriented Framework for C +Group: System/Libraries + +%description -n typelib-1_0-GModule-2_0 +GLib is a general-purpose utility library, which provides many useful +data types, macros, type conversions, string utilities, file utilities, +a main loop abstraction, and so on. + +The GObject library provides an object-oriented framework for C. + +%package -n typelib-1_0-GObject-2_0 +Summary: Object-Oriented Framework for C +Group: System/Libraries + +%description -n typelib-1_0-GObject-2_0 +GLib is a general-purpose utility library, which provides many useful +data types, macros, type conversions, string utilities, file utilities, +a main loop abstraction, and so on. + +The GObject library provides an object-oriented framework for C. + +%package -n typelib-1_0-Gio-2_0 +Summary: Object-Oriented Framework for C +Group: System/Libraries +# GioUnix has been folded into Gio package, as this is transparently loaded +# when including Gio (Platform specific loader in gjs - we know we are on unix) +Provides: typelib-1_0-GioUnix-2_0 = %{version} +Obsoletes: typelib-1_0-GioUnix-2_0 <%{version} + +%description -n typelib-1_0-Gio-2_0 +GLib is a general-purpose utility library, which provides many useful +data types, macros, type conversions, string utilities, file utilities, +a main loop abstraction, and so on. + +The GObject library provides an object-oriented framework for C. + %lang_package %prep @@ -272,11 +381,15 @@ sed -i "s/1.32.1/1.32/" docs/reference/meson.build %global _lto_cflags %{_lto_cflags} -ffat-lto-objects %endif %meson \ - --default-library=both \ - -Dselinux=enabled \ - -Dman=true \ + --default-library=%[ "%{flavor}" == "" ? "both" : "shared" ]\ + -Dselinux=%[ "%{flavor}" != "stage1" ? "enabled" : "disabled" ] \ + -Dman-pages=%[ "%{flavor}" != "stage1" ? "true" : "false" ] \ %if "%{flavor}" == "doc" - -Dgtk_doc=true \ + -Ddocumentation=true \ +%else + -Ddocumentation=false \ + -Dinstalled_tests=%[ "%{flavor}" != "stage1" ? "true" : "false" ] \ + -Dnls=%[ "%{flavor}" != "stage1" ? "enabled" : "disabled" ] \ %endif %if %{with systemtap} -Dsystemtap=true \ @@ -285,50 +398,53 @@ sed -i "s/1.32.1/1.32/" docs/reference/meson.build -Dsystemtap=false \ -Ddtrace=false \ %endif - -Dinstalled_tests=true \ + -Dintrospection=%[ "%{flavor}" != "stage1" ? "enabled" : "disabled" ] \ %{nil} %meson_build %install %meson_install %if "%{flavor}" == "doc" -find %{buildroot}/%{_prefix} -not -path "*%{_datadir}/gtk-doc/*" -delete || : -%else -%find_lang glib20 %{?no_lang_C} -mkdir -p %{buildroot}%{_sysconfdir}/profile.d -install -D -m0644 glib2.sh %{buildroot}%{_sysconfdir}/profile.d/zzz-glib2.sh -install -D -m0644 glib2.csh %{buildroot}%{_sysconfdir}/profile.d/zzz-glib2.csh -install -D -m0644 gnome_defaults.conf %{buildroot}%{_sysconfdir}/gnome_defaults.conf -# default apps magic -mkdir -p %{buildroot}%{_localstatedir}/cache/gio-2.0 %{buildroot}%{_datadir}/applications ->> %{buildroot}%{_localstatedir}/cache/gio-2.0/gnome-mimeapps.list ->> %{buildroot}%{_localstatedir}/cache/gio-2.0/xfce-mimeapps.list ->> %{buildroot}%{_localstatedir}/cache/gio-2.0/lxde-mimeapps.list ->> %{buildroot}%{_localstatedir}/cache/gio-2.0/pantheon-mimeapps.list ->> %{buildroot}%{_localstatedir}/cache/gio-2.0/budgie-mimeapps.list ->> %{buildroot}%{_localstatedir}/cache/gio-2.0/mate-mimeapps.list -ln -s %{_localstatedir}/cache/gio-2.0/gnome-mimeapps.list %{buildroot}%{_datadir}/applications/gnome-mimeapps.list -# gio-querymodules magic -%if "%{_lib}" == "lib64" -mv -T %{buildroot}%{_bindir}/gio-querymodules %{buildroot}%{_bindir}/gio-querymodules-64 -sed -i -e "/^gio_querymodules=/s/gio-querymodules/gio-querymodules-64/" %{buildroot}%{_libdir}/pkgconfig/gio-2.0.pc + find %{buildroot}/%{_prefix} -not -path "*%{_datadir}/doc/*" -delete || : %endif -mkdir -p %{buildroot}%{_libdir}/gio/modules ->> %{buildroot}%{_libdir}/gio/modules/giomodule.cache -# gsettings magic ->> %{buildroot}%{_datadir}/glib-2.0/schemas/gschemas.compiled -# Install rpm macros -mkdir -p %{buildroot}%{_rpmmacrodir} -cp -t%{buildroot}%{_rpmmacrodir} %{SOURCE6} -# Install zsh completion for gsettings -mkdir -p %{buildroot}%{_datadir}/zsh/site-functions/ -cp -T %{SOURCE8} %{buildroot}%{_datadir}/zsh/site-functions/_gsettings -mkdir -p %{buildroot}%{_datadir}/gtk-doc/html -%fdupes %{buildroot}/%{_prefix} -# Too many users complain about schemas compiled with wrong permissions -# when in fact the system just honours their umask setting -# subshell restores umask for paranoia mode +%if "%{flavor}" == "" + %find_lang glib20 %{?no_lang_C} + mkdir -p %{buildroot}%{_sysconfdir}/profile.d + install -D -m0644 glib2.sh %{buildroot}%{_sysconfdir}/profile.d/zzz-glib2.sh + install -D -m0644 glib2.csh %{buildroot}%{_sysconfdir}/profile.d/zzz-glib2.csh + install -D -m0644 gnome_defaults.conf %{buildroot}%{_sysconfdir}/gnome_defaults.conf + # default apps magic + mkdir -p %{buildroot}%{_localstatedir}/cache/gio-2.0 %{buildroot}%{_datadir}/applications + >> %{buildroot}%{_localstatedir}/cache/gio-2.0/gnome-mimeapps.list + >> %{buildroot}%{_localstatedir}/cache/gio-2.0/xfce-mimeapps.list + >> %{buildroot}%{_localstatedir}/cache/gio-2.0/lxde-mimeapps.list + >> %{buildroot}%{_localstatedir}/cache/gio-2.0/pantheon-mimeapps.list + >> %{buildroot}%{_localstatedir}/cache/gio-2.0/budgie-mimeapps.list + >> %{buildroot}%{_localstatedir}/cache/gio-2.0/mate-mimeapps.list + ln -s %{_localstatedir}/cache/gio-2.0/gnome-mimeapps.list %{buildroot}%{_datadir}/applications/gnome-mimeapps.list + # gio-querymodules magic + + %if "%{_lib}" == "lib64" + mv -T %{buildroot}%{_bindir}/gio-querymodules %{buildroot}%{_bindir}/gio-querymodules-64 + sed -i -e "/^gio_querymodules=/s/gio-querymodules/gio-querymodules-64/" %{buildroot}%{_libdir}/pkgconfig/gio-2.0.pc + %endif + + mkdir -p %{buildroot}%{_libdir}/gio/modules + >> %{buildroot}%{_libdir}/gio/modules/giomodule.cache + # gsettings magic + >> %{buildroot}%{_datadir}/glib-2.0/schemas/gschemas.compiled + # Install rpm macros + mkdir -p %{buildroot}%{_rpmmacrodir} + cp -t%{buildroot}%{_rpmmacrodir} %{SOURCE6} + # Install zsh completion for gsettings + mkdir -p %{buildroot}%{_datadir}/zsh/site-functions/ + cp -T %{SOURCE8} %{buildroot}%{_datadir}/zsh/site-functions/_gsettings + %fdupes %{buildroot}/%{_prefix} + + # Too many users complain about schemas compiled with wrong permissions + # when in fact the system just honours their umask setting + # subshell restores umask for paranoia mode %define compile_schemas \ (umask 022 && %{_bindir}/glib-compile-schemas %{_datadir}/glib-2.0/schemas) @@ -338,10 +454,6 @@ mkdir -p %{buildroot}%{_datadir}/gtk-doc/html %filetriggerpostun -n glib2-tools -- %{_datadir}/glib-2.0/schemas %{compile_schemas} -%post -n %{libglib} -p /sbin/ldconfig -%post -n %{libgobject} -p /sbin/ldconfig -%post -n %{libgthread} -p /sbin/ldconfig - %post -n %{libgio} %{ldconfig} for ENV in gnome xfce lxde pantheon mate @@ -351,168 +463,31 @@ do mimeapps="%{_localstatedir}/cache/gio-2.0/$ENV-mimeapps.list" && [Default Applications] EOF done + +%postun -n %{libgio} -p %{ldconfig} + +%ldconfig_scriptlets -n %{libglib} +%ldconfig_scriptlets -n %{libgobject} +%ldconfig_scriptlets -n %{libgthread} +%ldconfig_scriptlets -n %{libgmodule} +%ldconfig_scriptlets -n %{libgirepository} %endif %check ### FIXME ### Figure out how to run the "stable tests" only ref info from upstream. #%%meson_test -%post -n libgmodule-2_0-0 -p /sbin/ldconfig -%postun -n %{libglib} -p %{ldconfig} -%postun -n %{libgobject} -p %{ldconfig} -%postun -n %{libgthread} -p %{ldconfig} -%postun -n %{libgio} -p %{ldconfig} -%postun -n %{libgmodule} -p %{ldconfig} - %if "%{flavor}" == "doc" %files -%{_datadir}/gtk-doc/html/gio -%{_datadir}/gtk-doc/html/glib -%{_datadir}/gtk-doc/html/gobject -%else - -%files tools -%license LICENSES/LGPL-2.1-or-later.txt -%doc README.md -%{_bindir}/gapplication -%{_bindir}/gdbus -%{_bindir}/gio -%{_bindir}/gio-querymodules* -%{_bindir}/glib-compile-schemas -%{_bindir}/gresource -%{_bindir}/gsettings -%{_libexecdir}/gio-launch-desktop -%dir %{_datadir}/bash-completion -%dir %{_datadir}/bash-completion/completions -%{_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 -%dir %{_datadir}/zsh -%dir %{_datadir}/zsh/site-functions -%{_datadir}/zsh/site-functions/_gsettings -%{_mandir}/man1/gapplication.1%{?ext_man} -%{_mandir}/man1/gdbus.1%{?ext_man} -%{_mandir}/man1/gio.1%{?ext_man} -%{_mandir}/man1/gio-querymodules.1%{?ext_man} -%{_mandir}/man1/glib-compile-schemas.1%{?ext_man} -%{_mandir}/man1/gresource.1%{?ext_man} -%{_mandir}/man1/gsettings.1%{?ext_man} -# We put those files here, but they don't really belong here. They just don't -# have a better home... The zzz-glib2 scripts could arguably be in -# libglib-2_0-0 but that would break the shared library policy. -%{_sysconfdir}/profile.d/zzz-glib2.* - -%files -n gio-branding-upstream -%license LICENSES/LGPL-2.1-or-later.txt -%doc README.Gsettings-overrides -%config (noreplace) %{_sysconfdir}/gnome_defaults.conf - -%files -n %{libglib} -%license LICENSES/LGPL-2.1-or-later.txt -%doc NEWS -%{_libdir}/libglib*.so.* - -%files -n %{libgmodule} -%license LICENSES/LGPL-2.1-or-later.txt -%{_libdir}/libgmodule*.so.* - -%files -n %{libgobject} -%license LICENSES/LGPL-2.1-or-later.txt -%{_libdir}/libgobject*.so.* - -%files -n %{libgthread} -%license LICENSES/LGPL-2.1-or-later.txt -%{_libdir}/libgthread*.so.* - -%files -n %{libgio} -%license LICENSES/LGPL-2.1-or-later.txt -%{_libdir}/libgio*.so.* -%dir %{_libdir}/gio -%dir %{_libdir}/gio/modules -%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 -%{_datadir}/applications/gnome-mimeapps.list -%dir %{_localstatedir}/cache/gio-2.0 -%ghost %{_localstatedir}/cache/gio-2.0/gnome-mimeapps.list -%ghost %{_localstatedir}/cache/gio-2.0/xfce-mimeapps.list -%ghost %{_localstatedir}/cache/gio-2.0/lxde-mimeapps.list -%ghost %{_localstatedir}/cache/gio-2.0/pantheon-mimeapps.list -%ghost %{_localstatedir}/cache/gio-2.0/budgie-mimeapps.list -%ghost %{_localstatedir}/cache/gio-2.0/mate-mimeapps.list - -%files devel -%license LICENSES/LGPL-2.1-or-later.txt -%{_bindir}/gdbus-codegen -%{_bindir}/glib-compile-resources -%{_bindir}/glib-genmarshal -%{_bindir}/glib-gettextize -%{_bindir}/glib-mkenums -%{_bindir}/gobject-query -%{_bindir}/gtester -%{_bindir}/gtester-report -%{_mandir}/man?/gdbus-codegen*%{ext_man} -%{_mandir}/man?/glib-compile-resources*%{ext_man} -%{_mandir}/man?/glib-genmarshal*%{ext_man} -%{_mandir}/man?/glib-gettextize*%{ext_man} -%{_mandir}/man?/glib-mkenums*%{ext_man} -%{_mandir}/man?/gobject-query*%{ext_man} -%{_mandir}/man?/gtester*%{ext_man} -%dir %{_datadir}/aclocal -%{_datadir}/aclocal/glib-2.0.m4 -%{_datadir}/aclocal/glib-gettext.m4 -%{_datadir}/aclocal/gsettings.m4 -%dir %{_datadir}/gettext/its/ -%{_datadir}/gettext/its/gschema* -%dir %{_datadir}/glib-2.0/ -%{_datadir}/glib-2.0/dtds/ -%{_datadir}/glib-2.0/gdb/ -%{_datadir}/glib-2.0/gettext/ -%{_datadir}/glib-2.0/codegen/ -%{_datadir}/glib-2.0/schemas/gschema.dtd -%{_datadir}/glib-2.0/valgrind/ -%{_includedir}/glib-2.0 -%{_includedir}/gio-unix-2.0 -%{_libdir}/lib*.so -%dir %{_libdir}/glib-2.0/ -%{_libdir}/glib-2.0/include/ -%{_libdir}/pkgconfig/*.pc -%{_datadir}/gdb/auto-load/%{_libdir}/*-gdb.py -%if %{with systemtap} -%dir %{_datadir}/systemtap -%dir %{_datadir}/systemtap/tapset -%dir %{_datadir}/systemtap/tapset/* -%{_datadir}/systemtap/tapset/*/libgio-*.so.*.stp -%{_datadir}/systemtap/tapset/*/libglib-*.so.*.stp -%{_datadir}/systemtap/tapset/*/libgobject-*.so.*.stp +%{_datadir}/doc/glib-2.0/ %endif -%{_rpmmacrodir}/macros.glib2 -# Own these directories to avoid build requirement on gdb -# only for directories ownership -%dir %{_datadir}/gdb -%dir %{_datadir}/gdb/auto-load -%dir %{_datadir}/gdb/auto-load%{_prefix} -%dir %{_datadir}/gdb/auto-load%{_libdir} -# Own these directories to not avoid breakages throughout the project -%dir %{_datadir}/gtk-doc -%dir %{_datadir}/gtk-doc/html -%files devel-static -%license LICENSES/LGPL-2.1-or-later.txt -%{_libdir}/lib*.a +%if "%{flavor}" == "" +%include %{SOURCE200} +%endif -%files lang -f glib20.lang -%license LICENSES/LGPL-2.1-or-later.txt - -%files tests-devel -%license LICENSES/LGPL-2.1-or-later.txt -%{_libexecdir}/installed-tests -%attr(0755 - -) %{_libexecdir}/installed-tests/glib/taptestrunner.py -%attr(0755 - -) %{_libexecdir}/installed-tests/glib/x-content/unix-software/autorun.sh -%{_datadir}/installed-tests +%if "%{flavor}" == "stage1" +%include %{SOURCE201} %endif %changelog