# # spec file for package glib2 # # Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany. # # 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 http://bugs.opensuse.org/ # %define with_systemtap 0 Name: glib2 %define _name glib Version: 2.31.22 Release: 0 # FIXME: find out if tapsets should really be in devel package or in main package Summary: General-Purpose Utility Library License: LGPL-2.1+ Group: System/Libraries Url: http://www.gtk.org/ Source: http://download.gnome.org/sources/glib/2.31/%{_name}-%{version}.tar.xz Source1: glib2.sh Source2: glib2.csh Source3: SuSEconfig.glib2 # 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 # Not depending on gtk-doc shortens bootstrap compilation path. # Please update this file from the latest gtk-doc package: Source7: gtk-doc.m4 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 Patch10: 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) Patch11: glib2-fate300461-gettext-gkeyfile-suse.patch # PATCH-FIX-UPSTREAM glib2-force-fam-for-remote-fs.patch bgo#592211 hpj@novell.com -- Try monitoring files on NFS mounts via FAM before falling back to inotify. Patch12: glib2-force-fam-for-remote-fs.patch BuildRequires: automake BuildRequires: fam-devel BuildRequires: fdupes BuildRequires: gcc-c++ # Needed for gresource BuildRequires: libelf-devel BuildRequires: libselinux-devel BuildRequires: pkg-config BuildRequires: python-base # gdbus-codegen is run during the build, so we need python-xml BuildRequires: python-xml %if 0%{?with_systemtap} # systemtap-sdt-devel on openSUSE 11.3 was missing a Requires: python. %if %{?suse_version} <= 1130 BuildRequires: python %endif BuildRequires: systemtap-sdt-devel %endif BuildRequires: translation-update-upstream BuildRequires: pkgconfig(libffi) BuildRequires: pkgconfig(libpcre) BuildRequires: pkgconfig(zlib) %if 0%{?BUILD_FROM_VCS} # It's important to keep those BuildRequires inside # BUILD_FROM_VCS to avoid build loops in Factory BuildRequires: git-core BuildRequires: gtk-doc %endif # For temporary %%posttrans script only. PreReq: coreutils PreReq: /bin/sed BuildRoot: %{_tmppath}/%{name}-%{version}-build %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. %package tools Summary: General-Purpose Utility Library -- Tools Group: Development/Libraries/C and C++ %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-2_0-0 = %{version} Provides: %{name}-branding-upstream = %{version} Obsoletes: %{name}-branding-upstream < %{version} Provides: gio-branding = %{version} Conflicts: otherproviders(gio-branding) Supplements: packageand(libgio-2_0-0:branding-upstream) 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 #' Requires: %{name} = %{version} Requires: glibc-devel Requires: pkg-config # Now require the subpackages too Requires: glib2-tools = %{version} Requires: libgio-2_0-0 = %{version} Requires: libglib-2_0-0 = %{version} Requires: libgmodule-2_0-0 = %{version} Requires: libgobject-2_0-0 = %{version} Requires: libgthread-2_0-0 = %{version} # Required by gdbus-codegen Requires: python-xml Provides: glib2-doc = 2.19.6 Obsoletes: glib2-doc < 2.19.6 Summary: General-Purpose Utility Library -- Development Files Group: Development/Libraries/C and C++ # bug437293 %ifarch ppc64 Obsoletes: glib2-devel-64bit %endif # %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 Requires: %{name}-devel = %{version} Summary: General-Purpose Utility Library -- Static Libraries Group: Development/Libraries/C and C++ %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-2_0-0 Summary: General-Purpose Utility Library Group: System/Libraries Recommends: %{name}-lang Provides: %{name} = %{version} Obsoletes: %{name} < %{version} # bug437293 %ifarch ppc64 Obsoletes: glib2-64bit %endif # %description -n libglib-2_0-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. %package -n libgmodule-2_0-0 Summary: General-Purpose Utility Library -- Library for Modules Group: System/Libraries %description -n libgmodule-2_0-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 libgmodule library provides a portable way to dynamically load object files (commonly known as 'plug-ins'). %package -n libgio-2_0-0 Summary: General-Purpose Utility Library -- Library for VFS Group: System/Libraries Requires: gio-branding = %{version} # bnc#555605: shared-mime-info is required by libgio to properly detect mime types. Requires: shared-mime-info # The tools are useful for people having libgio Recommends: %{name}-tools # Needed for branding packages Provides: gio = %{version} # Temporarily disable this, pending further discussion # Recommends: gvfs %description -n libgio-2_0-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. GIO provides a modern, easy-to-use VFS API. %package -n libgio-fam Summary: General-Purpose Utility Library -- GIO Module to use FAM Group: System/Libraries # we need gio-querymodules in %post/%postun Requires(post): %{name}-tools Requires(postun): %{name}-tools Supplements: packageand(libgio-2_0-0:fam) %description -n libgio-fam 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 packages provides a GIO module to use FAM for file monitoring. %package -n libgthread-2_0-0 Summary: General-Purpose Utility Library -- Library for Threads Group: System/Libraries %description -n libgthread-2_0-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 libgthread library provides a portable way to write multi-threaded software. %package -n libgobject-2_0-0 Summary: General-Purpose Utility Library -- Object-Oriented Framework for C Group: System/Libraries %description -n libgobject-2_0-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 %setup -q -n %{_name}-%{version} translation-update-upstream %patch10 -p1 %patch11 -p1 %patch12 -p1 cp -a %{S:1} %{S:2} %{S:3} %{S:5} . cp -a %{S:4} gnome_defaults.conf if ! test -f %{_datadir}/aclocal/gtk-doc.m4 ; then cp -a %{S:7} m4macros/ fi %if 0%{?BUILD_FROM_VCS} NOCONFIGURE=1 ./autogen.sh %endif %build %configure \ --enable-static \ --enable-selinux \ %if 0%{?with_systemtap} --enable-systemtap \ %endif --with-pcre=system %{__make} %{?_smp_mflags} V=1 %if 0%{?BUILD_FROM_VCS} %{__make} ChangeLog %endif %check # make check does not work on x86_64. See http://bugzilla.gnome.org/show_bug.cgi?id=554969 # %{__make} %{?jobs:-j%jobs} check %install %makeinstall %if 0%{?suse_version} <= 1120 %{__rm} %{buildroot}%{_datadir}/locale/en@shaw/LC_MESSAGES/* %endif %find_lang %{_name}20 %{?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 -m0755 SuSEconfig.glib2 %{buildroot}/sbin/conf.d/SuSEconfig.glib2 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 touch %{buildroot}%{_localstatedir}/cache/gio-2.0/defaults.list ln -s %{_localstatedir}/cache/gio-2.0/defaults.list %{buildroot}%{_datadir}/applications/defaults.list # gio-querymodules magic %if "%{_lib}" == "lib64" mv %{buildroot}%{_bindir}/gio-querymodules %{buildroot}%{_bindir}/gio-querymodules-64 %endif touch %{buildroot}%{_libdir}/gio/modules/giomodule.cache # gsettings magic touch %{buildroot}%{_datadir}/glib-2.0/schemas/gschemas.compiled # remove files we don't care about find %{buildroot}%{_libdir} -name '*.la' -type f -delete -print rm %{buildroot}%{_libdir}/gio/modules/libgiofam.a # Install rpm macros mkdir -p %{buildroot}%{_sysconfdir}/rpm cp %{S:6} %{buildroot}%{_sysconfdir}/rpm %fdupes %{buildroot} %posttrans # If it is an upgrade and gnome_defaults.conf were edited, # move it from its old location. (Upgrade from <= 10.2) if test -f etc/opt/gnome/gnome_defaults.conf.rpmsave ; then mv etc/gnome_defaults.conf etc/gnome_defaults.conf.rpmnew sed "s:etc/opt/gnome:etc:g;s:opt/gnome:usr:g" etc/gnome_defaults.conf fi # If it is an upgrade and gnome_defaults.conf were edited, # revive it from the RPM backup. (Upgrade from == 10.3) if test -f etc/gnome_defaults.conf.rpmsave ; then mv etc/gnome_defaults.conf etc/gnome_defaults.conf.rpmnew mv etc/gnome_defaults.conf.rpmsave etc/gnome_defaults.conf fi %post -n libglib-2_0-0 -p /sbin/ldconfig %post -n libgobject-2_0-0 -p /sbin/ldconfig %post -n libgthread-2_0-0 -p /sbin/ldconfig %post -n libgio-2_0-0 -p /sbin/ldconfig %post -n libgmodule-2_0-0 -p /sbin/ldconfig %post -n libgio-fam %if 0 ############################################################################### # Note: when updating this scriptlet, don't forget to also update baselibs.conf ############################################################################### %endif %if "%{_lib}" == "lib64" %{_bindir}/gio-querymodules-64 %{_libdir}/gio/modules %else %{_bindir}/gio-querymodules %{_libdir}/gio/modules %endif %postun -n libglib-2_0-0 -p /sbin/ldconfig %postun -n libgobject-2_0-0 -p /sbin/ldconfig %postun -n libgthread-2_0-0 -p /sbin/ldconfig %postun -n libgio-2_0-0 -p /sbin/ldconfig %postun -n libgmodule-2_0-0 -p /sbin/ldconfig %postun -n libgio-fam %if 0 ############################################################################### # Note: when updating this scriptlet, don't forget to also update baselibs.conf ############################################################################### %endif %if "%{_lib}" == "lib64" %{_bindir}/gio-querymodules-64 %{_libdir}/gio/modules %else %{_bindir}/gio-querymodules %{_libdir}/gio/modules %endif %clean rm -rf %{buildroot} %files tools %defattr(-,root,root) %{_sysconfdir}/bash_completion.d/gdbus-bash-completion.sh %{_sysconfdir}/bash_completion.d/gresource-bash-completion.sh %{_sysconfdir}/bash_completion.d/gsettings-bash-completion.sh %{_bindir}/gdbus %{_bindir}/gio-querymodules* %{_bindir}/glib-compile-schemas %{_bindir}/gresource %{_bindir}/gsettings %{_mandir}/man1/gdbus.1* %{_mandir}/man1/gio-querymodules.1* %{_mandir}/man1/glib-compile-schemas.1* %{_mandir}/man1/gresource.1* %{_mandir}/man1/gsettings.1* # 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.* /sbin/conf.d/SuSEconfig.glib2 %files -n gio-branding-upstream %defattr(-,root,root) %doc README.Gsettings-overrides %config (noreplace) %{_sysconfdir}/gnome_defaults.conf %files -n libglib-2_0-0 %defattr(-, root, root) %doc AUTHORS COPYING README NEWS %{_libdir}/libglib*.so.* %files -n libgmodule-2_0-0 %defattr(-, root, root) %{_libdir}/libgmodule*.so.* %files -n libgobject-2_0-0 %defattr(-, root, root) %{_libdir}/libgobject*.so.* %files -n libgthread-2_0-0 %defattr(-, root, root) %{_libdir}/libgthread*.so.* %files -n libgio-2_0-0 %defattr(-, root, root) %{_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/defaults.list %dir %{_localstatedir}/cache/gio-2.0 %ghost %{_localstatedir}/cache/gio-2.0/defaults.list %files -n libgio-fam %defattr(-,root,root) %{_libdir}/gio/modules/libgiofam.so %files lang -f %{_name}20.lang %files devel %defattr(-,root,root) %doc ChangeLog %{_bindir}/gdbus-codegen %{_bindir}/glib-compile-resources %{_bindir}/glib-genmarshal %{_bindir}/glib-gettextize %{_bindir}/glib-mkenums %{_bindir}/gobject-query %{_bindir}/gtester %{_bindir}/gtester-report %doc %{_mandir}/man?/gdbus-codegen.* %doc %{_mandir}/man?/glib-compile-resources.* %doc %{_mandir}/man?/glib-genmarshal.* %doc %{_mandir}/man?/glib-gettextize.* %doc %{_mandir}/man?/glib-mkenums.* %doc %{_mandir}/man?/gobject-query.* %doc %{_mandir}/man?/gtester.* %doc %{_mandir}/man?/gtester-report.* %dir %{_datadir}/aclocal %{_datadir}/aclocal/glib-2.0.m4 %{_datadir}/aclocal/glib-gettext.m4 %{_datadir}/aclocal/gsettings.m4 %dir %{_datadir}/glib-2.0/ %{_datadir}/glib-2.0/gdb/ %{_datadir}/glib-2.0/gettext/ %{_datadir}/glib-2.0/schemas/gschema.dtd %{_includedir}/glib-2.0 %{_includedir}/gio-unix-2.0 %{_libdir}/lib*.so %dir %{_libdir}/glib-2.0/ %dir %{_libdir}/gdbus-2.0/ %{_libdir}/gdbus-2.0/codegen/ %{_libdir}/glib-2.0/include/ %{_libdir}/pkgconfig/*.pc %{_datadir}/gtk-doc/html/gio %{_datadir}/gtk-doc/html/glib %{_datadir}/gtk-doc/html/gobject %{_datadir}/gdb/auto-load/%{_libdir}/*-gdb.py %if 0%{?with_systemtap} %{_datadir}/systemtap/tapset/*.stp %endif %{_sysconfdir}/rpm/macros.glib2 # Own these directories to not depend on gtk-doc while building: %dir %{_datadir}/gtk-doc %dir %{_datadir}/gtk-doc/html # Own these directories to not depend on gdb %dir %{_datadir}/gdb %dir %{_datadir}/gdb/auto-load %dir %{_datadir}/gdb/auto-load%{_prefix} %dir %{_datadir}/gdb/auto-load%{_libdir} %files devel-static %defattr(-,root,root) %{_libdir}/lib*.a %changelog