Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:mgorse:branches:GNOME:STABLE:45
glib2
glib2.spec
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File glib2.spec of Package glib2
# # spec file # # Copyright (c) 2023 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via https://bugs.opensuse.org/ # %global flavor @BUILD_FLAVOR@%{nil} %if "%{flavor}" == "doc" %global psuffix -doc %else %global psuffix %{nil} %endif %define libver 2_0-0 %define libgio libgio-%{libver} %define libglib libglib-%{libver} %define libgmodule libgmodule-%{libver} %define libgobject libgobject-%{libver} %define libgthread libgthread-%{libver} %bcond_without systemtap Name: glib2%{psuffix} Version: 2.78.6 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 Source1: glib2.sh Source2: glib2.csh # Not upstream file. Only proposes upstream packages: Source4: glib2-upstream-gnome_defaults.conf # Some documentation for people writing branding packages, shipped in the branding-upstream package Source5: README.Gsettings-overrides Source6: macros.glib2 # zsh completion from https://github.com/jmatsuzawa/zsh-comp-gsettings Source8: gsettings.zsh Source98: glib2-rpmlintrc Source99: baselibs.conf # 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) Patch1: glib2-fate300461-gettext-gkeyfile-suse.patch # PATCH-FIX-OPENSUSE glib2-suppress-schema-deprecated-path-warning.patch rh#814053 badshah400@gmail.com -- Suppress the deprecated path warning since it fills up screen unnecessarily during package installations/upgrade. 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 # PATCH-FIX-UPSTREAM glib2-CVE-2024-52533.patch boo#1233282 mgorse@suse.com -- fix a single byte buffer overflow. Patch5: glib2-CVE-2024-52533.patch BuildRequires: docbook-xsl-stylesheets BuildRequires: fdupes BuildRequires: gcc-c++ BuildRequires: libselinux-devel BuildRequires: m4 BuildRequires: meson >= 0.60.0 BuildRequires: pkgconfig BuildRequires: python3-base >= 3.5 # gdbus-codegen is run during the build, so we need python3-xml BuildRequires: python3-xml BuildRequires: xsltproc # Needed for gresource BuildRequires: pkgconfig(libelf) >= 0.8.12 BuildRequires: pkgconfig(libffi) >= 3.0.0 BuildRequires: pkgconfig(libpcre2-8) >= 10.32 BuildRequires: pkgconfig(mount) >= 2.28 BuildRequires: pkgconfig(zlib) %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 %endif %if %{with systemtap} BuildRequires: systemtap-dtrace BuildRequires: systemtap-headers %endif %description 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. %if %{with doc} This package provides the documentation for the GLib library. %endif %package tools Summary: Tools from glib2, a general-purpose utility library # ensure libgio-2_0-0 is updated before glib2-tools' ensures glib-compile-schema to # be functional when the file trigger fires (boo#1178713) Group: Development/Libraries/C and C++ Requires(post): %{libgio} = %{version} %description tools 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. %package -n gio-branding-upstream Summary: Upstream definitions of default settings and applications Group: System/Libraries Requires: %{libgio} = %{version} Supplements: (%{libgio} and branding-upstream) Conflicts: gio-branding Provides: %{name}-branding-upstream = %{version} Obsoletes: %{name}-branding-upstream < %{version} Provides: gio-branding = %{version} BuildArch: noarch #BRAND: The /etc/gnome_defaults.conf allows to define arbitrary #BRAND: applications as preferred defaults. #BRAND: A /usr/share/glib-2.0/schemas/$NAME.gschema.override file can #BRAND: be used to override the default value for GSettings keys. See #BRAND: README.Gsettings-overrides for more details. The branding #BRAND: package should then have proper Requires for features changed #BRAND: with such an override file. # NOTE: gnome_defaults is not an upstream feature, but a SuSE # enhancement, but to conform branding conventions, the package is named # as gio-branding-upstream. %description -n gio-branding-upstream This package provides upstream defaults for settings stored with 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++ Requires: %{libgio} = %{version} Requires: %{libglib} = %{version} Requires: %{libgmodule} = %{version} Requires: %{libgobject} = %{version} Requires: %{libgthread} = %{version} Requires: glib2-tools = %{version} 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 # %description devel 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. This package contains the development files for GLib. %package devel-static Summary: Static libraries for glib, a general-purpose utility library Group: Development/Libraries/C and C++ Requires: %{name}-devel = %{version} %description devel-static 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. This package contains static versions of the GLib libraries. %package -n %{libglib} Summary: General-Purpose Utility Library Group: System/Libraries Provides: %{name} = %{version} Obsoletes: %{name} < %{version} # %description -n %{libglib} 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. %package -n %{libgmodule} Summary: General-Purpose Utility Library -- Library for Modules Group: System/Libraries %description -n %{libgmodule} 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 libgmodule library provides a portable way to dynamically load object files (commonly known as 'plug-ins'). %package -n %{libgio} Summary: A virtual file system library API 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 if dbus-service) Requires: gio-branding = %{version} Requires: shared-mime-info # Needed for branding packages Provides: gio = %{version} # Temporarily disable this, pending further discussion # Recommends: gvfs %description -n %{libgio} 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. GIO provides a modern, easy-to-use VFS API. %package -n %{libgthread} Summary: Portable API from glib wrapping system threads Group: System/Libraries %description -n %{libgthread} 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 libgthread library provides a portable way to write multi-threaded software. %package -n %{libgobject} Summary: Object-Oriented Framework for C Group: System/Libraries %description -n %{libgobject} 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++ Requires: %{name}-devel = %{version} Requires: %{name}-tests = %{version}-%{release} Provides: %{name}-tests = %{version}-%{release} Obsoletes: %{name}-tests < %{version}-%{release} %description tests-devel The glib2-tests-devel package contains tests that can be used to verify the functionality of the installed glib2 package. %lang_package %prep %autosetup -p1 -n glib-%{version} cp -a %{SOURCE1} %{SOURCE2} %{SOURCE5} . cp -a %{SOURCE4} gnome_defaults.conf # replace /usr/bin/env shebangs # /usr/bin/env @PYTHON@ -> /usr/bin/python3 grep "%{_bindir}/env @PYTHON@" . -rl | xargs sed -i "s|%{_bindir}/env @PYTHON@|%{_bindir}/python3|g" sed -i "s/1.32.1/1.32/" docs/reference/meson.build %build %if %{with systemtap} %global _lto_cflags %{nil} %else %global _lto_cflags %{_lto_cflags} -ffat-lto-objects %endif %meson \ --default-library=both \ -Dselinux=enabled \ -Dman=true \ %if "%{flavor}" == "doc" -Dgtk_doc=true \ %endif %if %{with systemtap} -Dsystemtap=true \ -Ddtrace=true \ %else -Dsystemtap=false \ -Ddtrace=false \ %endif -Dinstalled_tests=true \ %{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 %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 %define compile_schemas \ (umask 022 && %{_bindir}/glib-compile-schemas %{_datadir}/glib-2.0/schemas) %filetriggerin -n glib2-tools -- %{_datadir}/glib-2.0/schemas %{compile_schemas} %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 do mimeapps="%{_localstatedir}/cache/gio-2.0/$ENV-mimeapps.list" && 2>/dev/null <"${mimeapps}" || cat >"${mimeapps}" <<EOF # Dummy file. Install desktop-file-utils to get better defaults. [Default Applications] EOF done %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 %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 %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 %endif %changelog
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor