Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE
glib2.28512
glib2.spec
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File glib2.spec of Package glib2.28512
# # spec file # # Copyright (c) 2022 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/ # %bcond_without systemtap %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} Name: glib2%{psuffix} Version: 2.70.5 Release: 0 Summary: General-Purpose Utility Library License: LGPL-2.1-or-later Group: Development/Libraries/C and C++ URL: https://wiki.gnome.org/Projects/GLib Source0: https://download.gnome.org/sources/glib/2.70/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-dbus-socket-path.patch bnc#845287 dimstar@opensuse.org -- Have gio look for the system dbus socket in /run instead of /var/run. Patch3: glib2-dbus-socket-path.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-fix-normal-form-handling-in-gvariant.patch CVE-2023-24593, CVE-2023-25180, bsc#1209714, bsc#1209713 alynx.zhou@suse.com -- Various fixes to normal form handling in GVariant Patch5: glib2-fix-normal-form-handling-in-gvariant.patch %if "%{flavor}" == "doc" # Split-provides Provides: glib2-devel:%{_datadir}/gtk-doc/html/gobject/index.html %endif BuildRequires: docbook-xsl-stylesheets BuildRequires: fdupes BuildRequires: gcc-c++ BuildRequires: libselinux-devel BuildRequires: m4 BuildRequires: meson >= 0.49.2 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(libpcre) >= 8.31 BuildRequires: pkgconfig(mount) >= 2.28 BuildRequires: pkgconfig(zlib) %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 Provides: %{name}-doc = 2.19.6 Obsoletes: %{name}-doc < 2.19.6 # %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 # 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 Group: System/Libraries Requires: %{name}-tools # bnc#678518: libgio interacts with others by means of dbus-launch Requires: dbus-launch 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 %setup -q -n glib-%{version} %patch0 -p1 %patch1 -p1 %patch2 -p1 %patch3 -p1 %patch4 -p1 %patch5 -p1 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 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 %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 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 COPYING %{_bindir}/gapplication %{_bindir}/gdbus %{_bindir}/gio %{_bindir}/gio-querymodules* %{_bindir}/glib-compile-schemas %{_bindir}/gresource %{_bindir}/gsettings %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.* %doc README.md %files -n gio-branding-upstream %license COPYING %doc README.Gsettings-overrides %config (noreplace) %{_sysconfdir}/gnome_defaults.conf %files -n %{libglib} %license COPYING %doc AUTHORS README NEWS %{_libdir}/libglib*.so.* %files -n %{libgmodule} %license COPYING %{_libdir}/libgmodule*.so.* %files -n %{libgobject} %license COPYING %{_libdir}/libgobject*.so.* %files -n %{libgthread} %license COPYING %{_libdir}/libgthread*.so.* %files -n %{libgio} %license COPYING %{_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 %files devel %license COPYING %doc HACKING README.rationale %{_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/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 COPYING %{_libdir}/lib*.a %files lang -f glib20.lang %license COPYING %files tests-devel %license COPYING %{_libexecdir}/installed-tests %attr(0444 - -) %{_libexecdir}/installed-tests/glib/x-content/win32-software/autorun.exe %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