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