File lightdm.spec of Package lightdm

#
# spec file for package lightdm
#
# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
# Copyright (c) 2011 Guido Berhoerster.
#
# 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 gobject_libname lightdm-gobject-1
%define gobject_lib     lib%{gobject_libname}-0
%define qt_libname      lightdm-qt-2
%define qt_lib          lib%{qt_libname}-0
%if 0%{?suse_version} >= 1230
%define rundir          /run
%else
%define rundir          %{_localstatedir}/run
%endif

Name:           lightdm
Version:        1.4.0
Release:        0
Summary:        Lightweight, Cross-desktop Display Manager
License:        GPL-3.0+
Group:          System/X11/Displaymanagers
Url:            http://www.freedesktop.org/wiki/Software/LightDM
Source0:        %{name}-%{version}.tar.gz
Source1:        %{name}-greeter.pamd
Source2:        X11-displaymanagers-%{name}
# workaround for bnc#798769
Source3:        %{name}.rules
Source100:      %{name}-rpmlintrc
# PATCH-FEATURE-OPENSUSE lightdm-sysconfig-support.patch gber@opensuse.org -- Adds support for reading configuration options from /etc/sysconfig/displaymanager and /etc/sysconfig/windowmanager
Patch0:         lightdm-sysconfig-support.patch
# PATCH-FEATURE-OPENSUSE lightdm-xauthlocalhostname-support.patch bnc#796230 gber@opensuse.org -- Set XAUTHLOCALHOSTNAME to the hostname for local logins to avoid issues in the session in case the hostname changes
Patch1:         lightdm-xauthlocalhostname-support.patch
# PATCH-FEATURE-OPENSUSE lightdm-set-gdmflexiserver-envvar.patch gber@opensuse.org -- Sets the GDMFLEXISERVER environment variable for the gdmflexiserver wrapper
Patch2:         lightdm-set-gdmflexiserver-envvar.patch
# PATCH-FEATURE-OPENSUSE lightdm-default-configuration.patch gber@opensuse.org -- Modifies configuration with suitable defaults for openSUSE
Patch3:         lightdm-default-configuration.patch
# PATCH-FIX-UPSTREAM lightdm-lock-screen-before-switch.patch gber@opensuse.org -- Try to lock the screen before switching users
Patch4:         lightdm-lock-screen-before-switch.patch
# PATCH-FIX-OPENSUSE lightdm-disable-utmp-handling.patch gber@opensuse.org -- Disable utmp handling since this is handled in the Xstartup/Xreset scripts
Patch5:         lightdm-disable-utmp-handling.patch
# PATCH-FIX-UPSTREAM lightdm-make-sessions-inherit-system-default-locale.patch lp#1073135 bnc#786926 gber@opensuse.org -- Make greeter and user sessions inherit the system default locale
Patch6:         lightdm-make-sessions-inherit-system-default-locale.patch
# PATCH-FIX-OPENSUSE lightdm-fix-language-setting.patch lp#1068853 lp#1019314 gber@opensuse.org -- Fix saving/retrieving of the language setting
Patch7:         lightdm-fix-language-setting.patch
# PATCH-FIX-OPENSUSE lightdm-do-not-strip-codeset-from-language.patch lp#1074946 gber@opensuse.org -- Do not strip the codeset and be consistent with how the Language setting is retrived from AccountsService
Patch8:         lightdm-do-not-strip-codeset-from-language.patch
# PATCH-FIX-OPENSUSE lightdm-use-run-dir.patch gber@opensuse.org -- Use /run instead of /var/run
Patch9:         lightdm-use-run-dir.patch
# PATCH-FIX-UPSTREAM lightdm-fix-determining-active-display.patch gber@opensuse.org -- Correctly work out the active display from the active VT when it exits so a greeter starts (backported from upstrem bzr)
Patch10:        lightdm-fix-determining-active-display.patch
# PATCH-FIX-UPSTREAM lightdm-use-fine-grained-memory-locking.patch gber@opensuse.org -- Use libgcrypt to selectively secure password memory instead of the big-hammer approach of mlockall (backported from upstrem bzr)
Patch11:        lightdm-use-fine-grained-memory-locking.patch
BuildRequires:  gcc-c++
BuildRequires:  gnome-common
BuildRequires:  gtk-doc
BuildRequires:  intltool
BuildRequires:  pam-devel
# for symlinks to xdm pam configuration files
%if 0%{?suse_version} < 1220
BuildRequires:  xorg-x11
%else
BuildRequires:  xdm
%endif
BuildRequires:  polkit
BuildRequires:  libgcrypt-devel
BuildRequires:  pkgconfig(gobject-introspection-1.0)
BuildRequires:  pkgconfig(gio-2.0)
BuildRequires:  pkgconfig(gio-unix-2.0)
BuildRequires:  pkgconfig(glib-2.0)
BuildRequires:  pkgconfig(gobject-2.0)
BuildRequires:  pkgconfig(libxklavier)
BuildRequires:  pkgconfig(QtCore)
BuildRequires:  pkgconfig(QtDBus)
BuildRequires:  pkgconfig(QtGui)
BuildRequires:  pkgconfig(x11)
BuildRequires:  pkgconfig(xcb)
BuildRequires:  pkgconfig(xdmcp)
Requires(pre):  pwdutils
# 3rd party greeters don't have to follow
# the same versioning of lightdm
Requires:       lightdm-greeter
# uses pam configuration and relies on scripts provided by xdm
%if 0%{?suse_version} < 1220
Requires:       xorg-x11
%else
Requires:       xdm
%endif
Requires:       ConsoleKit-x11
Requires:       polkit
Requires:       gdmflexiserver
Recommends:     upower
Recommends:     %{name}-lang
BuildRoot:      %{_tmppath}/%{name}-%{version}-build

%description
LightDM is a lightweight, cross-desktop display manager. Its main features are
a well-defined greeter API allowing multiple GUIs, support for all display
manager use cases, with plugins where appropriate, low code complexity, and
fast performance. Due to its cross-platform nature greeters can be written in
several toolkits such as Qt and GTK.

%lang_package

%package -n %{gobject_lib}

Summary:        LightDM GObject-based Client Library
Group:          System/Libraries
Recommends:     accountsservice

%description -n %{gobject_lib}
A GObject-based library for LightDM clients to use to interface with LightDM.

%package gobject-devel
Summary:        Development Files for %{gobject_lib}
Group:          Development/Libraries/C and C++
Requires:       %{gobject_lib} = %{version}

%description gobject-devel
This package contains development files needed for developing GObject-based
LightDM clients.

%package -n %{qt_lib}
Summary:        LightDM Qt-based Client Library
Group:          System/Libraries

%description -n %{qt_lib}
A Qt-based library for LightDM clients to use to interface with LightDM.

%package qt-devel
Summary:        Development Files for %{qt_lib}
Group:          Development/Libraries/C and C++
Requires:       %{qt_lib} = %{version}

%description qt-devel
This package contains development files needed for developing Qt-based
LightDM clients.

%prep
%setup -q
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
%patch8 -p1
%if 0%{?suse_version} >= 1230
%patch9 -p1
%endif
%patch10 -p1
%patch11 -p1

%build
./autogen.sh
%configure \
    --libexecdir=%{_libexecdir} \
    --disable-static \
    --enable-gtk-doc \
    --with-user-session=twm \
    --with-greeter-session=lightdm-default-greeter \
    --with-greeter-user=lightdm
make %{?_smp_mflags} V=1

%install
%make_install

rm -f %{buildroot}%{_libdir}/*.la

# upstart configuration is not needed
rm -rf %{buildroot}%{_sysconfdir}/init/

# these are useless stubs for now
rm -rf %{buildroot}%{_datadir}/help/

ln -sf %{_sysconfdir}/pam.d/xdm %{buildroot}%{_sysconfdir}/pam.d/lightdm
ln -sf %{_sysconfdir}/pam.d/xdm-np %{buildroot}%{_sysconfdir}/pam.d/lightdm-autologin
install -D -m 644 -p %{SOURCE1} %{buildroot}%{_sysconfdir}/pam.d/lightdm-greeter
install -D -m 644 -p %{SOURCE2} %{buildroot}%{_libexecdir}/X11/displaymanagers/lightdm

%if 0%{?suse_version} >= 1230
install -D -m 644 -p %{SOURCE3} %{buildroot}%{_datadir}/polkit-1/rules.d/50-lightdm.rules
%endif

install -d %{buildroot}%{_localstatedir}/log/lightdm
install -d %{buildroot}%{rundir}/lightdm
install -d %{buildroot}%{_localstatedir}/lib/lightdm
install -d %{buildroot}%{_localstatedir}/cache/lightdm
install -d %{buildroot}%{_datadir}/xgreeters

%find_lang %{name} %{?no_lang_C}

%clean
rm -rf %{buildroot}

%pre
/usr/sbin/groupadd -r lightdm 2> /dev/null || :
/usr/sbin/useradd -r -g lightdm -s /bin/false -c "LightDM daemon" \
    -d /var/lib/lightdm lightdm 2> /dev/null || :
/usr/sbin/usermod -g lightdm -G lightdm -s /bin/false lightdm 2> /dev/null

%post -n %{gobject_lib} -p /sbin/ldconfig

%postun -n %{gobject_lib} -p /sbin/ldconfig

%post -n %{qt_lib} -p /sbin/ldconfig

%postun -n %{qt_lib} -p /sbin/ldconfig

%files
%defattr(-,root,root,-)
%doc COPYING ChangeLog NEWS README
%{_bindir}/dm-tool
%{_sbindir}/lightdm
%dir %{_libexecdir}/lightdm/
%{_libexecdir}/%{name}/lightdm-set-defaults
%{_libexecdir}/%{name}/lightdm-guest-session-wrapper
%{_libexecdir}/%{name}/gdmflexiserver
%dir %{_sysconfdir}/lightdm/
%config %{_sysconfdir}/lightdm/lightdm.conf
%config %{_sysconfdir}/lightdm/users.conf
%config %{_sysconfdir}/lightdm/keys.conf
%config %{_sysconfdir}/pam.d/lightdm*
%config %{_sysconfdir}/dbus-1/system.d/org.freedesktop.DisplayManager.conf
%dir %{_sysconfdir}/apparmor.d/
%{_sysconfdir}/apparmor.d/lightdm-guest-session
%dir %{_libexecdir}/X11/displaymanagers/
%{_libexecdir}/X11/displaymanagers/lightdm
%dir %{_datadir}/xgreeters/
%if 0%{?suse_version} >= 1230
%{_datadir}/polkit-1/rules.d/50-lightdm.rules
%endif
%ghost %attr(711,lightdm,lightdm) %dir %{rundir}/lightdm
%attr(750,lightdm,lightdm) %dir %{_localstatedir}/log/lightdm
%attr(750,lightdm,lightdm) %dir %{_localstatedir}/lib/lightdm
%ghost %attr(711,root,root) %dir %{_localstatedir}/cache/lightdm
%doc %{_mandir}/man1/lightdm.1*

%files lang -f %{name}.lang

%files -n %{gobject_lib}
%defattr(-,root,root,-)
%{_libdir}/lib%{gobject_libname}.so.*

%files gobject-devel
%defattr(-,root,root,-)
%{_libdir}/lib%{gobject_libname}.so
%{_libdir}/pkgconfig/lib%{gobject_libname}.pc
%{_includedir}/%{gobject_libname}/
%{_libdir}/girepository-1.0/LightDM-1.typelib
%{_datadir}/gir-1.0/LightDM-1.gir
%dir %{_datadir}/vala
%dir %{_datadir}/vala/vapi
%{_datadir}/vala/vapi/liblightdm-gobject-1.vapi
%doc %{_datadir}/gtk-doc/html/%{gobject_libname}/

%files -n %{qt_lib}
%defattr(-,root,root,-)
%{_libdir}/lib%{qt_libname}.so.*

%files qt-devel
%defattr(-,root,root,-)
%{_libdir}/lib%{qt_libname}.so
%{_libdir}/pkgconfig/lib%{qt_libname}.pc
%{_includedir}/%{qt_libname}/

%changelog
openSUSE Build Service is sponsored by