File geoclue2.spec of Package geoclue2

#
# spec file for package geoclue2
#
# Copyright (c) 2016 SUSE LINUX 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 _name geoclue
%define dbus_user srvGeoClue
Name:           geoclue2
Version:        2.4.3
Release:        0
Summary:        GeoLocation Framework
License:        GPL-2.0+
Group:          System/Libraries
Url:            http://people.freedesktop.org/~zeenix/releases/
Source:         http://www.freedesktop.org/software/geoclue/releases/2.4/%{_name}-%{version}.tar.xz
Source99:       geoclue2-rpmlintrc
# PATCH-FIX-UPSTREAM geoclue2-permit-gnome-maps.patch dimstar@opensuse.org -- Allow gnome-maps to access geoclue
Patch0:         geoclue2-permit-gnome-maps.patch
BuildRequires:  gtk-doc
BuildRequires:  intltool >= 0.40.0
BuildRequires:  pkg-config
BuildRequires:  systemd-rpm-macros
BuildRequires:  perl(XML::Parser)
BuildRequires:  pkgconfig(avahi-client) >= 0.6.10
BuildRequires:  pkgconfig(avahi-glib) >= 0.6.10
BuildRequires:  pkgconfig(gio-2.0) >= 2.34.0
BuildRequires:  pkgconfig(gio-unix-2.0) >= 2.34.0
BuildRequires:  pkgconfig(glib-2.0) >= 2.34.0
BuildRequires:  pkgconfig(gobject-introspection-1.0)
BuildRequires:  pkgconfig(json-glib-1.0) >= 0.14
BuildRequires:  pkgconfig(libsoup-2.4) >= 2.42
BuildRequires:  pkgconfig(mm-glib) >= 1.0
BuildRequires:  pkgconfig(systemd)
# we require shadow for useradd
Requires(pre):  shadow
# Virtual provides for the dbus service
Provides:       dbus(org.freedesktop.GeoClue2) = %{version}
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
%{?systemd_requires}

%description
GeoClue is a software framework which can be used to enable geospatial
awareness in applications. GeoClue uses the D-Bus inter-process
communication mechanism to provide location information

%package -n typelib-1_0-Geoclue-2_0
Summary:        GeoLocation Framework --GObject Introspection
Group:          System/Libraries

%description -n typelib-1_0-Geoclue-2_0
GeoClue is a software framework which can be used to enable geospatial
awareness in applications. GeoClue uses the D-Bus inter-process
communication mechanism to provide location information

%package devel
Summary:        GeoLocation Framework -- Development files
Group:          Development/Languages/C and C++
Requires:       %{name} = %{version}
Requires:       typelib-1_0-Geoclue-2_0 = %{version}

%description devel
GeoClue is a software framework which can be used to enable geospatial
awareness in applications. GeoClue uses the D-Bus inter-process
communication mechanism to provide location information

%prep
%setup -q -n %{_name}-%{version}
%patch0 -p1

%build
%configure \
    --disable-geoip-server \
    --enable-introspection \
    --with-dbus-service-user=%{dbus_user}
make %{?_smp_mflags} V=1

%install
make DESTDIR=%{buildroot} install %{?_smp_mflags}
install -d %{buildroot}%{_localstatedir}/lib/%{dbus_user}
# Create conveniance shortcut for rcgeoclue -> /usr/sbin/service
mkdir -p %{buildroot}%{_sbindir}
ln -s %{_sbindir}/service %{buildroot}%{_sbindir}/rcgeoclue
find %{buildroot} -type f -name "*.la" -delete -print
# Remove desktop file, we do not build the demos
find %{buildroot} -type f -name "geoclue-demo-agent.desktop" -delete -print

%pre
getent passwd %{dbus_user} > /dev/null || useradd -r -g nogroup -d %{_localstatedir}/lib/%{dbus_user} -s /sbin/nologin -c "User for GeoClue D-Bus service" %{dbus_user}

# note: do not use systemd macros for geoclue2.service, they are not meant for dbus unit files.

%post -p /sbin/ldconfig

%postun -p /sbin/ldconfig

%files
%defattr(-,root,root)
%doc README COPYING
# Not split per SLPP as the interface to the underlying daemon is
# too strict to allow parallel installations
%{_libdir}/libgeoclue-2.so.*
%{_libexecdir}/geoclue
%dir %{_libexecdir}/geoclue-2.0/
%{_libexecdir}/geoclue-2.0/demos/
%{_datadir}/applications/geoclue-where-am-i.desktop
%dir %{_datadir}/dbus-1
%dir %{_datadir}/dbus-1/interfaces
%{_datadir}/dbus-1/interfaces/org.freedesktop.GeoClue2.Client.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.GeoClue2.Location.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.GeoClue2.Manager.xml
%dir %{_datadir}/dbus-1/system-services
%{_datadir}/dbus-1/system-services/org.freedesktop.GeoClue2.service
%dir %{_sysconfdir}/dbus-1
%dir %{_sysconfdir}/dbus-1/system.d
%dir %{_sysconfdir}/geoclue/
%config %{_sysconfdir}/geoclue/geoclue.conf
%config %{_sysconfdir}/dbus-1/system.d/org.freedesktop.GeoClue2.conf
%config %{_sysconfdir}/dbus-1/system.d/org.freedesktop.GeoClue2.Agent.conf
%attr(0700,%{dbus_user},root) %{_localstatedir}/lib/%{dbus_user}
%{_sbindir}/rcgeoclue
%{_unitdir}/geoclue.service

%files -n typelib-1_0-Geoclue-2_0
%defattr(-,root,root)
%{_libdir}/girepository-1.0/Geoclue-2.0.typelib

%files devel
%defattr(-,root,root)
%doc README COPYING
%{_includedir}/libgeoclue-2.0/
%{_libdir}/*.so
%{_libdir}/pkgconfig/geoclue-2.0.pc
%{_libdir}/pkgconfig/libgeoclue-2.0.pc
%{_datadir}/dbus-1/interfaces/org.freedesktop.GeoClue2.Agent.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.GeoClue2.xml
%{_datadir}/gir-1.0/Geoclue-2.0.gir

%changelog
openSUSE Build Service is sponsored by