File gdm.spec of Package gdm

#
# spec file for package gdm (Version 2.24.0)
#
# 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:           gdm
BuildRequires:  PolicyKit-gnome-devel
BuildRequires:  check-devel
BuildRequires:  docbook_4
BuildRequires:  fdupes
BuildRequires:  gconf2-devel
BuildRequires:  gnome-common
BuildRequires:  gnome-doc-utils-devel
BuildRequires:  gnome-panel-devel
BuildRequires:  gnome-patch-translation
BuildRequires:  intltool
BuildRequires:  iso-codes-devel
BuildRequires:  libglade2-devel
BuildRequires:  libgnomeprintui-devel
BuildRequires:  libgnomeui-devel
BuildRequires:  libgnutls-devel
BuildRequires:  librsvg-devel
BuildRequires:  libselinux-devel
BuildRequires:  libwnck-devel
BuildRequires:  libxklavier-devel
BuildRequires:  pam-devel
BuildRequires:  perl-XML-Parser
BuildRequires:  pwdutils
BuildRequires:  scrollkeeper
BuildRequires:  tcpd-devel
BuildRequires:  update-desktop-files
BuildRequires:  xorg-x11-server
BuildRequires:  xorg-x11-server-extra
BuildRequires:  zenity
PreReq:         /usr/sbin/groupadd
PreReq:         /usr/sbin/useradd
PreReq:         /usr/sbin/usermod
%if %suse_version < 1010
PreReq:         %fillup_prereq
%endif
PreReq:         %insserv_prereq
License:        GPL v2 or later
Group:          System/GUI/GNOME
Version:        2.24.0
Release:        15.<RELEASE2>
Summary:        The GNOME 2.x Display Manager
Source:         %{name}-%{version}.tar.bz2
Source1:        gdm.pamd
Source2:        gdm-autologin.pamd
# FIXME: See FIXME in the script.
Source3:        SuSEconfig.gdm
Source5:        sysconfig.displaymanager-gdm
Patch1:         gdm-consolekit-helper-subdir.patch
Patch2:         gdm-2.21.9-no-fatal-warnings.patch
Patch3:         gdm-xauthlocalhostname.patch
Patch4:         gdm-vt-allocation-hack.patch
Patch5:         gdm-2.23.92-gsd-path.patch
# PATCH-FIX-OPENSUSE gdm-desktop-session-env-pam.patch bnc427744 vuntz@novell.com -- Sets a PAM environment variable to let the pam gnome-keyring module know which session is started
Patch6:         gdm-desktop-session-env-pam.patch
# PATCH-FIX-OPENSUSE gdm-suse-xsession.patch vuntz@novell.com -- Use the /etc/X11/xdm/* scripts
Patch7:         gdm-suse-xsession.patch
Patch8:         gdm-domain-logon.patch
# PATCH-FIX-UPSTREAM gdm-2.23.92-another-locale-fixup.patch jpr@novell.com -- From upstream/Fedora, canonicalize LANG variable
Patch9:         gdm-2.23.92-another-locale-fixup.patch
# PATCH-FIX-UPSTREAM gdm-2.23.92-filter-dupes-from-lang-list.patch jpr@novell.com -- From upstream/Fedora, don't show the same language multiple times
Patch10:        gdm-2.23.92-filter-dupes-from-lang-list.patch
# PATCH-FIX-UPSTREAM gdm-2.23.92-fix-crash.patch jpr@novell.com -- From upstream/Fedora, don't crash in the option widgets
Patch11:        gdm-2.23.92-fix-crash.patch 
# PATCH-FIX-UPSTREAM gdm-fix-icon-scale.patch vuntz@novell.com -- From upstream/Fedora: don't have a huge size for icons in the greeter
Patch12:        gdm-fix-icon-scale.patch
# PATCH-FIX-OPENSUSE gdm-sysconfig-settings.patch bnc432360 hpj@novell.com -- Read autologin options from /etc/sysconfig/displaymanager
Patch13:        gdm-sysconfig-settings.patch
# PATCH-FIX-UPSTREAM gdm-autologin.patch bnc436524 mmeeks@novell.com -- From upstream don't create the greeter when autologging it to save startup time
Patch14:        gdm-autologin.patch
# PATCH-FIX-UPSTREAM gdm-greeter-greater-ui.patch bnc436431 bgo560508 vuntz@novell.com -- Improve the layout of the greeter. Note: the patch contains a patched glade file *and* the result glade file (for reference only, in case we need to rebase the patch)
Patch15:        gdm-greeter-greater-ui.patch
# PATCH-FIX-UPSTREAM gdm-fix-xdmcp.patch bnc441396 bgo561396 hpj@novell.com -- Make XDMCP work, patch from upstream bugzilla.
Patch16:        gdm-fix-xdmcp.patch
# PATCH-FIX-UPSTREAM gdm-fix-pam-auditing.patch bnc436852 bgo557794 hpj@novell.com -- Make PAM auditing work on logout.
Patch17:        gdm-fix-pam-auditing.patch
# PATCH-FIX-UPSTREAM gdm-always-reflect-keyboard-layout.patch bnc438159 bgo561771 hpj@novell.com -- Make keyboard selector not neglect to apply the selected keyboard in some situations.
Patch18:        gdm-always-reflect-keyboard-layout.patch
# PATCH-FIX-OPENSUSE gdm-save-panel-space-on-low-resolutions.patch bnc449815 hpj@novell.com -- Hide clock and/or selector labels on low resolutions.
Patch19:        gdm-save-panel-space-on-low-resolutions.patch
# PATCH-FIX-UPSTREAM gdm-fix-dbus-properties.patch bnc#633655 vuntz@opensuse.org -- Fix dbus configuration file to reference org.freedesktop.DBus.Properties instead of non-existing org.gnome.DBus.Properties
Patch20:        gdm-fix-dbus-properties.patch
Patch28:        gdm-X_SERVER.patch
# PATCH-SUSE: enable SELinux
Patch60:        gdm-selinux.patch
Url:            http://www.gnome.org/
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
DocDir:         %{_defaultdocdir}
Provides:       gdm2
Obsoletes:      gdm2
Obsoletes:      fast-user-switch-applet <= 2.22.0
Requires:       ConsoleKit-x11
Requires:       gnome-session
Requires:       gnome-themes
Requires:       klogd
Requires:       xorg-x11-server-extra
Requires:       %{name}-branding
Requires:       %{name}-lang = %{version}
Recommends:     gnome-settings-daemon
%gconf_schemas_prereq

%description
This version of GDM, the GNOME display manager, is based on GTK2 and is
suited for the GNOME 2.x Desktop. GDM is a flexible X Window System
display manager that has many options, is usable for remote login, and
provides a good looking graphical interface.



Authors:
--------
    George (Jiri) Lebl <jirka@5z.com>
    Martin K. Petersen <mkp@mkp.net>
    Alex Larsson <alexl@redhat.com>

%package branding-upstream
License:        GPL v2 or later
Summary:        The GNOME 2.x Display Manager
Group:          System/GUI/GNOME
Provides:       %{name}-branding = %{version}
Conflicts:      otherproviders(%{name}-branding)
Supplements:    packageand(branding-upstream:%{name})
#BRAND: Provide two equal files - /usr/share/gdm/defaults.conf and
#BRAND: factory-defaults.conf with default configuration of gdm.
#BRAND: Branding package requires the package with the default theme.
#NOTE: We may want to create gdm-themes with upstream themes.

%description branding-upstream
This version of GDM, the GNOME display manager, is based on GTK2 and is
suited for the GNOME 2.x Desktop. GDM is a flexible X Window System
display manager that has many options, is usable for remote login, and
provides a good looking graphical interface.



Authors:
--------
    George (Jiri) Lebl <jirka@5z.com>
    Martin K. Petersen <mkp@mkp.net>
    Alex Larsson <alexl@redhat.com>

%lang_package
%prep
%setup -q
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
%patch8 -p1
%patch9 -p1
%patch10 -p1
%patch11 -p1
%patch12 -p1
%patch13 -p1
%patch14
%patch15 -p1
%patch16 -p1
%patch17 -p0
%patch18 -p1
%patch19 -p1
%patch20 -p1
%patch28
%patch60

%build
libtoolize -f -i
autoreconf -f -i
export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing"
%configure\
	--libexecdir=%{_prefix}/lib/gdm \
	--localstatedir=%{_localstatedir} \
	--with-at-spi-registryd-directory=%{_prefix}/lib/at-spi \
	--with-selinux \
	--enable-ipv6\
	--disable-scrollkeeper\
	--enable-secureremote
%__make %{?jobs:-j%jobs}

%install
%makeinstall
%find_gconf_schemas
# Remove wrapper, it is not needed.
mv $RPM_BUILD_ROOT%{_sbindir}/gdm-binary $RPM_BUILD_ROOT%{_sbindir}/gdm
# Install PAM files and remove examples.
mkdir -p $RPM_BUILD_ROOT/etc/pam.d
cp %{S:1} $RPM_BUILD_ROOT/etc/pam.d/gdm
cp %{S:2} $RPM_BUILD_ROOT/etc/pam.d/gdm-autologin
# Install PostLogin script.
mv $RPM_BUILD_ROOT%{_sysconfdir}/gdm/PostLogin/Default.sample $RPM_BUILD_ROOT%{_sysconfdir}/gdm/PostLogin/Default
# Install SuSEconfig script.
mkdir -p $RPM_BUILD_ROOT/sbin/conf.d
cp %{S:3} $RPM_BUILD_ROOT/sbin/conf.d
chmod +x $RPM_BUILD_ROOT/sbin/conf.d/SuSEconfig.gdm
touch $RPM_BUILD_ROOT%{_sysconfdir}/gdm/gdm_sysconfig.conf
mkdir -p $RPM_BUILD_ROOT{_localstatedir}/log/gdm
mkdir -p $RPM_BUILD_ROOT{_localstatedir}/run/gdm
%find_lang %{name}
mkdir -p $RPM_BUILD_ROOT%{_bindir}
ln -s ../sbin/gdm $RPM_BUILD_ROOT%{_bindir}/gdm
%fdupes $RPM_BUILD_ROOT

%clean
rm -rf $RPM_BUILD_ROOT

%pre -f %{name}.schemas_pre
/usr/sbin/groupadd -r gdm 2> /dev/null || :
/usr/sbin/useradd -r -o -g gdm -s /bin/false \
-c "Gnome Display Manager daemon" -d /var/lib/gdm gdm 2> /dev/null || :
/usr/sbin/usermod -g gdm -G gdm -s /bin/false gdm 2> /dev/null
# Remove old gdm_sysconfig.conf to update custom.conf from sysconfig settings.
rm -f etc/gdm/gdm_sysconfig.conf
# Remove old logs (#56205). Last created in SLEC8&9.0, first deleted in 9.2&SLED10.
# Can be removed after SLES11:
rm -f var/lib/gdm/*.log*
# Fix incorrect interpretation of DISPLAYMANAGER_PASSWORD_LESS_LOGIN (#307566).
# Last done in SLED10&10.1, first fixed in 10.3.
# Can be removed after SLES12:
if grep -q gdm-autologin sbin/conf.d/SuSEconfig.gdm ; then
    if grep -q '^DISPLAYMANAGER_PASSWORD_LESS_LOGIN="no"' etc/sysconfig/displaymanager ; then
	sed 's/^\(auth[[:space:]][[:space:]]*\)include[[:space:]]\([[:space:]]*\)common-auth/\1required\2pam_permit.so/' <etc/pam.d/gdm-autologin >etc/pam.d/gdm-autologin.new
	if cmp -s etc/pam.d/gdm-autologin etc/pam.d/gdm-autologin.new ; then
	    rm etc/pam.d/gdm-autologin.new
	else
	    mv etc/pam.d/gdm-autologin.new etc/pam.d/gdm-autologin
	fi
    fi
fi

%preun -f %{name}.schemas_preun

%posttrans -f %{name}.schemas_posttrans

%postun
%insserv_cleanup

%files -f %{name}.schemas_list
%defattr(-,root,root)
%doc AUTHORS COPYING ChangeLog NEWS README
%dir %config %{_sysconfdir}/gdm
%config %{_sysconfdir}/gdm/[IPXl]*
%ghost %{_sysconfdir}/gdm/gdm_sysconfig.conf
%{_sbindir}/*
%{_bindir}/*
%{_datadir}/gdm
%{_datadir}/pixmaps/*.png
%{_datadir}/pixmaps/faces
%{_datadir}/icons/*/*/*/*.*
%dir %{_prefix}/lib/gdm
%{_prefix}/lib/gdm/gdm-*
%{_libdir}/bonobo/servers/*
/var/lib/gdm
%{_datadir}/gnome-2.0/ui/*
%attr(750,gdm,gdm) %dir %{_localstatedir}/lib/gdm
%attr(755,gdm,gdm) %dir %{_localstatedir}/run/gdm
%attr(750,gdm,gdm) %dir %{_localstatedir}/log/gdm
%attr(750,gdm,gdm) %dir %{_localstatedir}/lib/gdm/.gconf.mandatory
%attr(640,gdm,gdm) %{_localstatedir}/lib/gdm/.gconf.mandatory/%gconf-tree.xml
%attr(640,gdm,gdm) %{_localstatedir}/lib/gdm/.gconf.path
%config /etc/pam.d/*
/sbin/conf.d/SuSEconfig.gdm
%config %{_sysconfdir}/dbus-1/system.d/gdm.conf
%config %{_sysconfdir}/gdm/gdm.schemas

%files branding-upstream
%defattr(-,root,root)
%config(noreplace) %{_sysconfdir}/gdm/custom.conf

%files lang -f %{name}.lang

%changelog
openSUSE Build Service is sponsored by