glib2/glib2.spec

407 lines
13 KiB
RPMSpec
Raw Normal View History

#
# spec file for package glib2 (Version 2.24.1)
#
# Copyright (c) 2010 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/
#
# norootforbuild
Name: glib2
%define _name glib
Version: 2.24.1
Release: 1
License: LGPLv2.1+
Summary: A Library with Convenient Functions Written in C
Url: http://www.gtk.org/
Group: Development/Libraries/C and C++
Source: ftp://ftp.gnome.org/pub/GNOME/sources/%{_name}/2.14/%{_name}-%{version}.tar.bz2
Source1: glib2.sh
Source2: glib2.csh
Source3: SuSEconfig.glib2
# Not upsteam file. Only proposes upstream packages:
Source4: glib2-upstream-gnome_defaults.conf
# Not depending on gtk-doc shortens bootstrap compilation path.
# Please update this file from the latest gtk-doc package:
Source5: gtk-doc.m4
Source99: baselibs.conf
# PATCH-FIX-OPENSUSE glib2-bnc379332-desktop-su.patch bnc379332 vuntz@novell.com -- Use X-KDE-SubstituteUID
Patch8: glib2-bnc379332-desktop-su.patch
# 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
BuildRequires: fam-devel
BuildRequires: fdupes
BuildRequires: gcc-c++
BuildRequires: pcre-devel
BuildRequires: pkg-config
BuildRequires: translation-update-upstream
BuildRequires: zlib-devel
%if %suse_version > 1100
BuildRequires: libselinux-devel
%endif
# For temporary %%pre script only.
PreReq: coreutils
PreReq: /bin/sed
Requires: %{name}-branding
Requires: %{name}-lang = %{version}
# we need gio-querymodules to work in %post/%postun
Requires(post): libgio-2_0-0
Requires(postun): libgio-2_0-0
# Conflicts with gnome_defaults.conf from gnome-vfs2 in 10.3
Conflicts: gnome-vfs2 < 2.22.0
# bug437293
%ifarch ppc64
Obsoletes: glib2-64bit
%endif
#
Provides: glib2-doc = 2.19.6
Obsoletes: glib2-doc < 2.19.6
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
This library provides convenient functions, such as lists and hashes,
to a C programmer and is used by Gtk+ and GNOME.
%package branding-upstream
License: LGPLv2.1+
Summary: Definition of GNOME Default Applications
Group: Development/Libraries/C and C++
Provides: %{name}-branding = %{version}
Conflicts: otherproviders(%{name}-branding)
Supplements: packageand(%{name}:branding-upstream)
#BRAND: The /etc/gnome_defaults.conf allows to define arbitrary
#BRAND: applications as preferred defaults.
# NOTE: gnome_defaults is not an upstream feature, but a SuSE
# enhancement, but to conform branding conventions, the package is named
# as glib2-branding-upstream.
%description branding-upstream
This branding-style package sets default applications in GNOME in
openSUSE.
This is a dumb package, which provides only upstream GNOME packages as
preferred defaults. You most probably don't want this package. You
probably want to install distribution default glib2-branding and prefer
distribution wise GNOME defaults.
%package devel
#'
License: GPLv2+
Requires: %{name} = %{version} pkg-config glibc-devel
# Now require the subpackages too
Requires: libglib-2_0-0 = %{version}
Requires: libgmodule-2_0-0 = %{version}
Requires: libgio-2_0-0 = %{version}
Requires: libgthread-2_0-0 = %{version}
Requires: libgobject-2_0-0 = %{version}
Summary: Include files and libraries mandatory for development
Group: Development/Libraries/C and C++
# bug437293
%ifarch ppc64
Obsoletes: glib2-devel-64bit
%endif
#
%description devel
This package contains all necessary include files, libraries,
configuration files and development tools (with manual pages) needed to
compile and link applications using the glib library.
The glib library provides convenient functions, such as lists and
hashes, to a C programmer and is used by Gtk+ and GNOME.
%package -n libglib-2_0-0
License: LGPLv2.1+
Summary: A Library with Convenient Functions Written in C
Group: Development/Libraries/C and C++
Requires: %{name} = %{version}
# bug437293
%ifarch ppc64
Obsoletes: glib2-64bit
%endif
#
%description -n libglib-2_0-0
This library provides convenient functions, such as lists and hashes,
to a C programmer and is used by Gtk+ and GNOME.
%package -n libgmodule-2_0-0
License: LGPLv2.1+
Summary: A Library with Convenient Functions Written in C
Group: Development/Libraries/C and C++
Requires: %{name} = %{version}
# bug437293
%ifarch ppc64
Obsoletes: glib2-64bit
%endif
#
%description -n libgmodule-2_0-0
This library provides convenient functions, such as lists and hashes,
to a C programmer and is used by Gtk+ and GNOME.
%package -n libgio-2_0-0
License: LGPLv2.1+
Summary: A Library with Convenient Functions Written in C
Group: Development/Libraries/C and C++
Requires: %{name} = %{version}
# bug437293
%ifarch ppc64
Obsoletes: glib2-64bit
%endif
#
# Temporarily disable this, pending further discussion
# Recommends: gvfs
%description -n libgio-2_0-0
This library provides convenient functions, such as lists and hashes,
to a C programmer and is used by Gtk+ and GNOME.
%package -n libgio-fam
License: LGPLv2.1+
Summary: A Library with Convenient Functions Written in C
Group: Development/Libraries/C and C++
# we need gio-querymodules in %post/%postun
Requires(post): %{name}
Requires(postun): %{name}
Supplements: packageand(libgio-2_0-0:fam)
%description -n libgio-fam
This library provides convenient functions, such as lists and hashes,
to a C programmer and is used by Gtk+ and GNOME.
%package -n libgthread-2_0-0
License: LGPLv2.1+
Summary: A Library with Convenient Functions Written in C
Group: Development/Libraries/C and C++
Requires: %{name} = %{version}
# bug437293
%ifarch ppc64
Obsoletes: glib2-64bit
%endif
#
%description -n libgthread-2_0-0
This library provides convenient functions, such as lists and hashes,
to a C programmer and is used by Gtk+ and GNOME.
%package -n libgobject-2_0-0
License: LGPLv2.1+
Summary: A Library with Convenient Functions Written in C
Group: Development/Libraries/C and C++
Requires: %{name} = %{version}
# bug437293
%ifarch ppc64
Obsoletes: glib2-64bit
%endif
#
%description -n libgobject-2_0-0
This library provides convenient functions, such as lists and hashes,
to a C programmer and is used by Gtk+ and GNOME.
%lang_package
%prep
%setup -q -n %{_name}-%{version}
translation-update-upstream
%patch8
%patch10 -p1
%patch11 -p1
cp -a %{S:1} %{S:2} %{S:3} .
cp -a %{S:4} gnome_defaults.conf
if ! test -f %{_datadir}/aclocal/gtk-doc.m4 ; then
cp -a %{S:5} m4macros/
fi
%build
%configure \
--enable-static \
%if %suse_version > 1100
--enable-selinux \
%endif
--with-pcre=system
%{__make} %{?jobs:-j%jobs}
%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
mkdir -p $RPM_BUILD_ROOT/etc/profile.d
install -D -m0644 glib2.sh $RPM_BUILD_ROOT/etc/profile.d/zzz-glib2.sh
install -D -m0644 glib2.csh $RPM_BUILD_ROOT/etc/profile.d/zzz-glib2.csh
install -D -m0755 SuSEconfig.glib2 $RPM_BUILD_ROOT/sbin/conf.d/SuSEconfig.glib2
install -D -m0644 gnome_defaults.conf $RPM_BUILD_ROOT%{_sysconfdir}/gnome_defaults.conf
# default apps magic
mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/cache/gio-2.0 $RPM_BUILD_ROOT%{_datadir}/applications
touch $RPM_BUILD_ROOT%{_localstatedir}/cache/gio-2.0/defaults.list
ln -s %{_localstatedir}/cache/gio-2.0/defaults.list $RPM_BUILD_ROOT%{_datadir}/applications/defaults.list
# fix some permission issue, but only if needed
test ! -x $RPM_BUILD_ROOT/%{_bindir}/gtester-report
chmod +x $RPM_BUILD_ROOT/%{_bindir}/gtester-report
# gio-querymodules magic
%if "%{_lib}" == "lib64"
mv $RPM_BUILD_ROOT%{_bindir}/gio-querymodules $RPM_BUILD_ROOT%{_bindir}/gio-querymodules-64
%endif
touch $RPM_BUILD_ROOT%{_libdir}/gio/modules/giomodule.cache
# remove files we don't care about
rm $RPM_BUILD_ROOT%{_libdir}/gio/modules/libgiofam.*a
# We do not need the la files for 11.1 and newer
%if %suse_version > 1100
rm $RPM_BUILD_ROOT%{_libdir}/*.la
%endif
%find_lang %{_name}20
%fdupes $RPM_BUILD_ROOT
%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/opt/gnome/gnome_defaults.conf.rpmsave >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
%if "%{_lib}" == "lib64"
%{_bindir}/gio-querymodules-64 %{_libdir}/gio/modules
%else
%{_bindir}/gio-querymodules %{_libdir}/gio/modules
%endif
%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 "%{_lib}" == "lib64"
%{_bindir}/gio-querymodules-64 %{_libdir}/gio/modules
%else
%{_bindir}/gio-querymodules %{_libdir}/gio/modules
%endif
# No %postun about gio-querymodules for the main package since the binary is
# part of this package, and so doesn't exist anymore in %postun
%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 "%{_lib}" == "lib64"
%{_bindir}/gio-querymodules-64 %{_libdir}/gio/modules
%else
%{_bindir}/gio-querymodules %{_libdir}/gio/modules
%endif
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(-,root,root)
%doc AUTHORS COPYING README NEWS ChangeLog
%{_datadir}/applications/defaults.list
/etc/profile.d/zzz-glib2.*
/sbin/conf.d/SuSEconfig.glib2
%{_bindir}/gio-querymodules*
%dir %{_libdir}/gio
%dir %{_libdir}/gio/modules
%ghost %{_libdir}/gio/modules/giomodule.cache
%files branding-upstream
%defattr(-,root,root)
%config (noreplace) %{_sysconfdir}/gnome_defaults.conf
%files -n libglib-2_0-0
%defattr(-, root, root)
%{_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 %{_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)
%{_bindir}/glib-*
%{_bindir}/gobject-*
%{_bindir}/gtester*
%doc %{_mandir}/man?/glib-*.*
%doc %{_mandir}/man?/gobject-*.*
%doc %{_mandir}/man?/gtester*.*
%{_datadir}/aclocal/*.m4
%{_datadir}/glib-2.0
%{_includedir}/glib-2.0
%{_includedir}/gio-unix-2.0
%{_libdir}/lib*.so
%{_libdir}/lib*.*a
%{_libdir}/glib-2.0
%{_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
# 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/%{_prefix}/%{_lib}
%changelog