File glib2.spec of Package glib2

#
# spec file for package glib2 (Version 2.18.2)
#
# 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
BuildRequires:  fam-devel fdupes gcc-c++ pcre-devel pkg-config
%if %suse_version > 1100
BuildRequires:  libselinux-devel
%endif
License:        LGPL v2.1 or later
Group:          Development/Libraries/C and C++
AutoReqProv:    on
# bug437293
%ifarch ppc64
Obsoletes:      glib2-64bit
%endif
%ifarch  ppc
Obsoletes:      glib2-32bit
%endif
#
Version:        2.18.2
Release:        5.<RELEASE4>
Summary:        A Library with Convenient Functions Written in C
Url:            http://www.gtk.org/
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
# PATCH-FIX-OPENSUSE glib2-mkinstalldirs.patch
Patch0:         glib2-mkinstalldirs.patch
# PATCH-FIX-OPENSUSE glib2-aclocal.patch
Patch1:         glib2-aclocal.patch
# PATCH-FIX-UPSTREAM glib2-libtool.diff schwab@suse.de -- apparently configure.in is invoking libtool in a bad way
Patch6:         glib2-libtool.diff
# PATCH-FIX-OPENSUSE glib2-bnc379332-desktop-su.patch bnc379332 vuntz@novell.com -- Use X-KDE-SubstituteUID
Patch8:         glib2-bnc379332-desktop-su.patch
# PATCH-FIX-OPENSUSE glib-2.17.3-implicitdecl.patch crrodriguez@suse.de
Patch10:        glib-2.17.3-implicitdecl.patch
# PATCH-FEATURE-OPENSUSE glib2-fate300461-desktop-gettext.patch fate300461 vuntz@novell.com -- Look for translation of desktop entry strings via gettext
Patch11:        glib2-fate300461-desktop-gettext.patch
# PATCH-FIX-UPSTREAM glib2-bnc402256-filename-leak.diff bnc402256 federico@novell.com - Fix leak in g_local_file_get_parse_name()
Patch12:        glib2-bnc402256-filename-leak.diff
# PATCH-FIX-UPSTREAM glib2-CVE-2008-4316.patch bnc449927 vuntz@novell.com -- Fix overflows, taken from svn
Patch13:        glib2-CVE-2008-4316.patch
# PATCH-FIX-UPSTREAM glib2-gio-compress-idle-events.patch bnc485976 bgo575708 hpj@novell.com -- Avoid file monitoring of /tmp blocking apps - from upstream
Patch14:        glib2-gio-compress-idle-events.patch
# PATCH-FIX-UPSTREAM glib2-CVE-2009-3289.patch bnc538005 vuntz@opensuse.org -- Fix symlink copying permission exposure, taken from git
Patch15:        glib2-CVE-2009-3289.patch
# PATCH-FIX-UPSTREAM glib2-fix-g_dummy_file_get_path.patch bnc500520 vuntz@opensuse.org -- fix g_dummy_file_get_path() implementation
Patch16:        glib2-fix-g_dummy_file_get_path.patch
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
Requires:       %{name}-lang = %{version}
# For temporary %%pre script only.
PreReq:         coreutils
PreReq:         /bin/sed
# Conflicts with gnome_defaults.conf from gnome-vfs2 in 10.3
Conflicts:      gnome-vfs2 < 2.22.0
Requires:       %{name}-branding

%description
This library provides convenient functions, such as lists and hashes,
to a C programmer and is used by Gtk+ and GNOME.



Authors:
--------
    Peter Mattis <petm@xcf.berkeley.edu>
    Spencer Kimball <spencer@xcf.berkeley.edu>
    Josh MacDonald <jmacd@xcf.berkeley.edu>
    Shawn T. Amundson <amundson@gimp.org>
    Jeff Garzik <jgarzik@pobox.com>
    Raja R Harinath <harinath@cs.umn.edu>
    Tim Janik <timj@gtk.org>
    Elliot Lee <sopwith@redhat.com>
    Tor Lillqvist <tml@iki.fi>
    Paolo Molaro <lupus@debian.org>
    Havoc Pennington <hp@pobox.com>
    Manish Singh <yosh@gimp.org>
    Owen Taylor <otaylor@gtk.org>
    Sebastian Wilhelmi <wilhelmi@ira.uka.de>

%package branding-upstream
License:        LGPL v2.1 or later
Summary:        Definition of GNOME Default Applications
Group:          Development/Libraries/C and C++
Provides:       %{name}-branding = %{version}
Conflicts:      otherproviders(%{name}-branding)
Supplements:    packageand(branding-upstream:%{name})
#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.



Authors:
--------
    Peter Mattis <petm@xcf.berkeley.edu>
    Spencer Kimball <spencer@xcf.berkeley.edu>
    Josh MacDonald <jmacd@xcf.berkeley.edu>
    Shawn T. Amundson <amundson@gimp.org>
    Jeff Garzik <jgarzik@pobox.com>
    Raja R Harinath <harinath@cs.umn.edu>
    Tim Janik <timj@gtk.org>
    Elliot Lee <sopwith@redhat.com>
    Tor Lillqvist <tml@iki.fi>
    Paolo Molaro <lupus@debian.org>
    Havoc Pennington <hp@pobox.com>
    Manish Singh <yosh@gimp.org>
    Owen Taylor <otaylor@gtk.org>
    Sebastian Wilhelmi <wilhelmi@ira.uka.de>

%package devel
#'
License:        GPL v2 or later
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++
AutoReqProv:    on
# bug437293
%ifarch ppc64
Obsoletes:      glib2-devel-64bit
%endif
%ifarch  ppc
Obsoletes:      glib2-devel-32bit
%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.



Authors:
--------
    Peter Mattis <petm@xcf.berkeley.edu>
    Spencer Kimball <spencer@xcf.berkeley.edu>
    Josh MacDonald <jmacd@xcf.berkeley.edu>
    Shawn T. Amundson <amundson@gimp.org>
    Jeff Garzik <jgarzik@pobox.com>
    Raja R Harinath <harinath@cs.umn.edu>
    Tim Janik <timj@gtk.org>
    Elliot Lee <sopwith@redhat.com>
    Tor Lillqvist <tml@iki.fi>
    Paolo Molaro <lupus@debian.org>
    Havoc Pennington <hp@pobox.com>
    Manish Singh <yosh@gimp.org>
    Owen Taylor <otaylor@gtk.org>
    Sebastian Wilhelmi <wilhelmi@ira.uka.de>

%package -n libglib-2_0-0
License:        LGPL v2.1 or later
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
%ifarch  ppc
Obsoletes:      glib2-32bit
%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.



Authors:
--------
    Peter Mattis <petm@xcf.berkeley.edu>
    Spencer Kimball <spencer@xcf.berkeley.edu>
    Josh MacDonald <jmacd@xcf.berkeley.edu>
    Shawn T. Amundson <amundson@gimp.org>
    Jeff Garzik <jgarzik@pobox.com>
    Raja R Harinath <harinath@cs.umn.edu>
    Tim Janik <timj@gtk.org>
    Elliot Lee <sopwith@redhat.com>
    Tor Lillqvist <tml@iki.fi>
    Paolo Molaro <lupus@debian.org>
    Havoc Pennington <hp@pobox.com>
    Manish Singh <yosh@gimp.org>
    Owen Taylor <otaylor@gtk.org>
    Sebastian Wilhelmi <wilhelmi@ira.uka.de>

%package -n libgmodule-2_0-0
License:        LGPL v2.1 or later
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
%ifarch  ppc
Obsoletes:      glib2-32bit
%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.



Authors:
--------
    Peter Mattis <petm@xcf.berkeley.edu>
    Spencer Kimball <spencer@xcf.berkeley.edu>
    Josh MacDonald <jmacd@xcf.berkeley.edu>
    Shawn T. Amundson <amundson@gimp.org>
    Jeff Garzik <jgarzik@pobox.com>
    Raja R Harinath <harinath@cs.umn.edu>
    Tim Janik <timj@gtk.org>
    Elliot Lee <sopwith@redhat.com>
    Tor Lillqvist <tml@iki.fi>
    Paolo Molaro <lupus@debian.org>
    Havoc Pennington <hp@pobox.com>
    Manish Singh <yosh@gimp.org>
    Owen Taylor <otaylor@gtk.org>
    Sebastian Wilhelmi <wilhelmi@ira.uka.de>

%package -n libgio-2_0-0
License:        LGPL v2.1 or later
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
%ifarch  ppc
Obsoletes:      glib2-32bit
%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.



Authors:
--------
    Peter Mattis <petm@xcf.berkeley.edu>
    Spencer Kimball <spencer@xcf.berkeley.edu>
    Josh MacDonald <jmacd@xcf.berkeley.edu>
    Shawn T. Amundson <amundson@gimp.org>
    Jeff Garzik <jgarzik@pobox.com>
    Raja R Harinath <harinath@cs.umn.edu>
    Tim Janik <timj@gtk.org>
    Elliot Lee <sopwith@redhat.com>
    Tor Lillqvist <tml@iki.fi>
    Paolo Molaro <lupus@debian.org>
    Havoc Pennington <hp@pobox.com>
    Manish Singh <yosh@gimp.org>
    Owen Taylor <otaylor@gtk.org>
    Sebastian Wilhelmi <wilhelmi@ira.uka.de>

%package -n libgio-fam
License:        LGPL v2.1 or later
Summary:        A Library with Convenient Functions Written in C
Group:          Development/Libraries/C and C++
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.



Authors:
--------
    Peter Mattis <petm@xcf.berkeley.edu>
    Spencer Kimball <spencer@xcf.berkeley.edu>
    Josh MacDonald <jmacd@xcf.berkeley.edu>
    Shawn T. Amundson <amundson@gimp.org>
    Jeff Garzik <jgarzik@pobox.com>
    Raja R Harinath <harinath@cs.umn.edu>
    Tim Janik <timj@gtk.org>
    Elliot Lee <sopwith@redhat.com>
    Tor Lillqvist <tml@iki.fi>
    Paolo Molaro <lupus@debian.org>
    Havoc Pennington <hp@pobox.com>
    Manish Singh <yosh@gimp.org>
    Owen Taylor <otaylor@gtk.org>
    Sebastian Wilhelmi <wilhelmi@ira.uka.de>

%package -n libgthread-2_0-0
License:        LGPL v2.1 or later
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
%ifarch  ppc
Obsoletes:      glib2-32bit
%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.



Authors:
--------
    Peter Mattis <petm@xcf.berkeley.edu>
    Spencer Kimball <spencer@xcf.berkeley.edu>
    Josh MacDonald <jmacd@xcf.berkeley.edu>
    Shawn T. Amundson <amundson@gimp.org>
    Jeff Garzik <jgarzik@pobox.com>
    Raja R Harinath <harinath@cs.umn.edu>
    Tim Janik <timj@gtk.org>
    Elliot Lee <sopwith@redhat.com>
    Tor Lillqvist <tml@iki.fi>
    Paolo Molaro <lupus@debian.org>
    Havoc Pennington <hp@pobox.com>
    Manish Singh <yosh@gimp.org>
    Owen Taylor <otaylor@gtk.org>
    Sebastian Wilhelmi <wilhelmi@ira.uka.de>

%package -n libgobject-2_0-0
License:        LGPL v2.1 or later
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
%ifarch  ppc
Obsoletes:      glib2-32bit
%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.



Authors:
--------
    Peter Mattis <petm@xcf.berkeley.edu>
    Spencer Kimball <spencer@xcf.berkeley.edu>
    Josh MacDonald <jmacd@xcf.berkeley.edu>
    Shawn T. Amundson <amundson@gimp.org>
    Jeff Garzik <jgarzik@pobox.com>
    Raja R Harinath <harinath@cs.umn.edu>
    Tim Janik <timj@gtk.org>
    Elliot Lee <sopwith@redhat.com>
    Tor Lillqvist <tml@iki.fi>
    Paolo Molaro <lupus@debian.org>
    Havoc Pennington <hp@pobox.com>
    Manish Singh <yosh@gimp.org>
    Owen Taylor <otaylor@gtk.org>
    Sebastian Wilhelmi <wilhelmi@ira.uka.de>

%package doc
License:        GPL v2 or later
Summary:        Documentation for the C Library with Convenience Functions
Group:          Development/Libraries/C and C++
AutoReqProv:    on
Requires:       %{name} = %{version}

%description doc
This package contains additional documentation for the glib2 library.



Authors:
--------
    Peter Mattis <petm@xcf.berkeley.edu>
    Spencer Kimball <spencer@xcf.berkeley.edu>
    Josh MacDonald <jmacd@xcf.berkeley.edu>
    Shawn T. Amundson <amundson@gimp.org>
    Jeff Garzik <jgarzik@pobox.com>
    Raja R Harinath <harinath@cs.umn.edu>
    Tim Janik <timj@gtk.org>
    Elliot Lee <sopwith@redhat.com>
    Tor Lillqvist <tml@iki.fi>
    Paolo Molaro <lupus@debian.org>
    Havoc Pennington <hp@pobox.com>
    Manish Singh <yosh@gimp.org>
    Owen Taylor <otaylor@gtk.org>
    Sebastian Wilhelmi <wilhelmi@ira.uka.de>

%lang_package
%prep
%setup -q -n %{_name}-%{version}
%patch0
%patch1
%patch6
%patch8
%patch10
%patch11
%patch12 -p1
%patch13 -p1
%patch14 -p0
%patch15 -p1
%patch16 -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
autoreconf -fiv
# needed for glib-2.12.4:
export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing"
%configure \
    --enable-static \
%if %suse_version > 1100
    --enable-selinux \
%endif
    --with-pcre=system
%{__make} %{?jobs:-j%jobs}

%check
%{__make} %{?jobs:-j%jobs} check

%install
make install DESTDIR=$RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT/etc/profile.d
install -D -m0755 glib2.sh $RPM_BUILD_ROOT/etc/profile.d/zzz-glib2.sh
install -D -m0755 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
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
chmod +x $RPM_BUILD_ROOT/%{_bindir}/gtester-report
rm $RPM_BUILD_ROOT%{_libdir}/gio/modules/libgiofam.*a
# We do not need the la files
rm $RPM_BUILD_ROOT%{_libdir}/*.la
%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 -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

%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

%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
%dir %{_libdir}/gio
%dir %{_libdir}/gio/modules

%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}/*
%{_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
%doc %{_mandir}/man*/*

%files doc
%defattr(-,root,root)
%{_datadir}/gtk-doc/html/gio
%{_datadir}/gtk-doc/html/glib
%{_datadir}/gtk-doc/html/gobject
# Own these repositories to not depend on gtk-doc while building:
%dir %{_datadir}/gtk-doc
%dir %{_datadir}/gtk-doc/html

%changelog
openSUSE Build Service is sponsored by