Sisyphus repository
Last update: 1 october 2023 | SRPMs: 18631 | Visits: 37723694
en ru br
ALT Linux repos
S:45.0.1-alt2
5.0: 2.26.0-alt1
4.1: 2.20.7-alt1.M41.1
4.0: 2.18.4-alt1
3.0: 2.6.0.9-alt1

Other repositories
Upstream:2.20.4

Group :: Graphical desktop/GNOME
RPM: gdm

 Main   Changelog   Spec   Patches   Sources   Download   Gear   Bugs and FR  Repocop 

%define ver_major 2.26

%define _libexecdir %_prefix/libexec
%define _localstatedir %_var

%define authentication_scheme pam
%def_disable static
%def_disable debug
%def_enable ipv6
%def_with xinerama
%def_with xdmcp
%def_with tcp_wrappers
%def_without selinux
%def_with consolekit
%def_with libaudit
%def_enable polkit
%def_without xevie

Name: gdm
Version: %ver_major.0
Release: alt1

Summary: The GNOME Display Manager
License: GPLv2+
URL: ftp://ftp.gnome.org/
Group: Graphical desktop/GNOME

Provides: gnome-dm
Requires: GConf-sanity-check
Requires: coreutils consolehelper zenity xinitrc iso-codes

Source: %gnome_ftp/%name/%ver_major/%name-%version.tar.bz2
Source2: %name-Xsession

# ALT patches

Patch2: %name-2.24.0-alt-xsession.patch
Patch5: %name-2.24.0-alt-pam.patch
# required patch24
Patch6: %name-2.26.0-alt-multistack-pam.patch

# Fedora patches

Patch12: %name-2.23.92-force-active-vt.patch
Patch13: %name-2.23.92-save-root-window.patch
Patch14: %name-2.25.2-append-logs.patch
# uses /etc/sysconfig/keyboard and is thus not directly upstreamable
# should probably be changed to get the system layout from the X server
Patch23: gdm-system-keyboard.patch

#http://git.gnome.org/cgit/preview/gdm/?h=multi-stack

Patch24: gdm-2.25.2-multistack-but-boring.patch
Patch25: gdm-2.25.2-start-faster.patch

Patch26: gdm-2.25.2-dont-depend-on-hostname.patch

# http://bugzilla.redhat.com/show_bug.cgi?id=485974

Patch27: gdm-2.26.0-clean-up-auth-entries.patch

Patch28: gdm-2.26.0-load-settings-for-other-user.patch



%{?_with_consolekit:Requires: ConsoleKit-x11}

# from configure.ac

%define dbus_glib_ver 0.74
%define glib_ver 2.15.4
%define gtk_ver 2.10.0
%define pango_ver 1.3.0
%define libglade_ver 1.99.2
%define scrollkeeper_ver 0.1.4
%define gconf_ver 2.6.1
%define policykit_ver 0.7
%define gnome_panel_ver 2.0.0

BuildPreReq: desktop-file-utils gnome-common gnome-doc-utils rpm-build-gnome
BuildPreReq: intltool >= 0.40.0
BuildPreReq: libdbus-glib-devel >= %dbus_glib_ver
BuildPreReq: libhal-devel
BuildPreReq: iso-codes-devel
BuildPreReq: glib2-devel >= %glib_ver
BuildPreReq: libgtk+2-devel >= %gtk_ver
BuildPreReq: libpango-devel >= %pango_ver
BuildPreReq: libglade-devel >= %libglade_ver
BuildPreReq: librarian
BuildPreReq: libGConf-devel >= %gconf_ver
%{?_with_consolekit:BuildPreReq: libConsoleKit-devel}
%{?_with_selinux:BuildPreReq: libselinux-devel}
%{?_with_libaudit:BuildPreReq: libaudit-devel}
BuildPreReq: libpam-devel
%{?_with_tcp_wrappers:BuildPreReq: libwrap-devel}
%{?_enable_polkit:BuildPreReq: libPolicyKit-gnome-devel >= 0.8}
BuildPreReq: libgnome-panel-devel >= 2.0.0
BuildPreReq: libxklavier-devel >= 3.5
BuildPreReq: fontconfig-devel >= 2.5.0
BuildPreReq: libX11-devel libXau-devel libXext-devel libXdmcp-devel libXft-devel libSM-devel
BuildPreReq: libXi-devel xorg-inputproto-devel libXinerama-devel xorg-xineramaproto-devel libXevie-devel
BuildPreReq: xorg-xephyr xorg-server
BuildPreReq: libcheck-devel
BuildPreReq: libnss-devel >= 3.11.1

BuildRequires: docbook-dtds gcc-c++ glibc-devel gnome-doc-utils-xslt  libdmx-devel libgnomecanvas-devel libpopt-devel librsvg-devel  perl-XML-Parser xorg-cf-files  xsltproc zenity


%description
Gdm (the GNOME Display Manager) is a highly configurable
reimplementation of xdm, the X Display Manager. Gdm allows you to log
into your system with the X Window System running and supports running
several different X sessions on your local machine at the same time.

%package help
Summary: User documentation for Gdm
Group: Graphical desktop/GNOME
BuildArch: noarch
Conflicts: %name < %version-%release

%description help
Gdm (the GNOME Display Manager) is a highly configurable
reimplementation of xdm, the X Display Manager. Gdm allows you to log
into your system with the X Window System running and supports running
several different X sessions on your local machine at the same time.

This package contains user documentation for Gdm.

%package user-switch-applet
Summary: GNOME applet for fast user switching
Group: Graphical desktop/GNOME
Requires: gdm >= 2.21.9
Requires: xorg-x11-xnest
Obsoletes: gnome-applets-extra-fast-user-switch
Provides:  gnome-applets-extra-fast-user-switch = %version-%release

%description user-switch-applet
The Fast User-Switching Applet is an applet for the GNOME panel which
provides a menu to switch between users.

%package plugin-fingerprint
Summary: Fingerprint plugin for Gdm
Group: Graphical desktop/GNOME
Requires: %name = %version-%release
Requires: %_libdir/gdm/simple-greeter/plugins

%description plugin-fingerprint
Gdm (the GNOME Display Manager) is a highly configurable
reimplementation of xdm, the X Display Manager. Gdm allows you to log
into your system with the X Window System running and supports running
several different X sessions on your local machine at the same time.

This package contains Fingerprint plugin for Gdm.

%package plugin-smartcard
Summary: Smartcard plugin for Gdm
Group: Graphical desktop/GNOME
Requires: %name = %version-%release
Requires: %_libdir/gdm/simple-greeter/plugins

%description plugin-smartcard
Gdm (the GNOME Display Manager) is a highly configurable
reimplementation of xdm, the X Display Manager. Gdm allows you to log
into your system with the X Window System running and supports running
several different X sessions on your local machine at the same time.

This package contains Smartcard plugin for Gdm.

%prep
%setup -q

subst 's at /usr/bin/grep at grep at g' data/Init.in

#%%patch2 -p1

%patch5 -p1
%patch12 -p1 -b .force-active-vt
%patch13 -p1 -b .save-root-window
%patch14 -p1 -b .append-logs
%patch23 -p1 -b .system-keyboard

%patch24 -p1 -b .multistack-but-boring
%patch6 -p1

%patch25 -p1 -b .start-faster
%patch26 -p1 -b .dont-depend-on-hostname
%patch27 -p1 -b .clean-up-auth-entries
%patch28 -p1 -b .load-settings-for-other-user


%build
mkdir -p m4
%autoreconf
export CFLAGS="$CFLAGS `pkg-config --cflags dbus-glib-1`"
export LDFLAGS="$LDFLAGS `pkg-config --libs dbus-glib-1`"
%configure \
%{subst_enable static} \
--disable-scrollkeeper \
--disable-schemas-install \
%{subst_enable polkit} \
--enable-console-helper \
--enable-authentication-scheme=%authentication_scheme \
%{subst_enable ipv6} \
%{subst_enable debug} \
--with-sysconfsubdir=X11/gdm \
%{subst_with xinerama} \
%{subst_with xdmcp} \
%{?_with_tcp_wrappers:--with-tcp-wrappers} \
%{subst_with selinux} \
%{?_with_consolekit:--with-console-kit} \
--with-pam-prefix=%_sysconfdir \
%{subst_with xevie} \
%{subst_with libaudit} \
--disable-dependency-tracking

%make_build XLIB_LIBS=" -lXau -lX11 -lXext"

# strip unneeded translations from .mo files

# ideally intltool (ha!) would do that for us
# http://bugzilla.gnome.org/show_bug.cgi?id=474987
cd po
grep -v ".*[.]desktop[.]in.*\|.*[.]server[.]in[.]in$\|.*[.]schemas[.]in$" POTFILES.in > POTFILES.keep
mv POTFILES.keep POTFILES.in
intltool-update --pot
for p in *.po; do
 msgmerge $p %{name}.pot > $p.out
 msgfmt -o `basename $p .po`.gmo $p.out
done


%install
mkdir -p %buildroot%_datadir/gdm/autostart/LoginWindow

%make DESTDIR=%buildroot install

mkdir -p %buildroot%_sysconfdir/X11/sessions
install -pD -m755 %SOURCE2 %buildroot%_sysconfdir/X11/%name/Xsession
find %buildroot -name '*.a' -delete
find %buildroot -name '*.la' -delete

#Remove devel files

rm -rf %buildroot%_includedir
rm -rf %buildroot%_pkgconfigdir
rm -f %buildroot%_libdir/*.so

%find_lang %name
%find_lang --output=%name-help.lang --without-mo --with-gnome %name

%preun
if [ $1 = 0 ]; then
%gconf2_uninstall gdm-simple-greeter
fi

%post
%gconf2_install gdm-simple-greeter

%files -f %name.lang
%_bindir/*
%_sbindir/*
%_libexecdir/*
%_libdir/*.so.*
%dir %_libdir/%name
%dir %_libdir/%name/simple-greeter
%dir %_libdir/%name/simple-greeter/plugins
%_libdir/%name/simple-greeter/plugins/password.so
%exclude %_libexecdir/gdm-user-switch-applet
%_datadir/%name
%_pixmapsdir/*
%_datadir/icons/*/*/*/*.*
%dir %_sysconfdir/X11/sessions
%config %_sysconfdir/pam.d/gdm
%config %_sysconfdir/pam.d/gdm-autologin
%config %_sysconfdir/dbus-1/system.d/%name.conf
%config %gconf_schemasdir/*
%config(noreplace) %_sysconfdir/X11/%name
%doc AUTHORS ChangeLog NEWS README TODO
%dir %{_localstatedir}/log/gdm
%attr(775, root, gdm) %dir %{_localstatedir}/spool/gdm
%attr(1770, gdm, gdm) %dir %{_localstatedir}/lib/gdm
%attr(1750, gdm, gdm) %dir %{_localstatedir}/lib/gdm/.gconf.mandatory
%attr(1640, gdm, gdm) %dir %{_localstatedir}/lib/gdm/.gconf.mandatory/*.xml
%attr(1640, gdm, gdm) %dir %{_localstatedir}/lib/gdm/.gconf.path
%attr(1777, root, gdm) %dir %{_localstatedir}/run/gdm

%files user-switch-applet
%_libexecdir/gdm-user-switch-applet
%bonobo_serversdir/*.server
%_datadir/gnome-2.0/ui/*

%files help -f %name-help.lang

# TODO

#files plugin-fingerprint
#%config %_sysconfdir/pam.d/gdm-fingerprint
#%_libdir/%name/simple-greeter/plugins/fingerprint.so

#files plugin-smartcard

#%config %_sysconfdir/pam.d/gdm-smartcard
#%_libdir/%name/simple-greeter/plugins/smartcard.so

%changelog

Full changelog you can see here

 
design & coding: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
current maintainer: Michael Shigorin