21d185d
%global _hardened_build 1
21d185d
4016c4f
%define libauditver 1.0.6
0b20eb8
%define gtk3_version 2.99.2
70d04c7
%define pam_version 0.99.8.1-11
cvsdist 0dba8df
%define desktop_file_utils_version 0.2.90
d841ff3
%define nss_version 3.11.1
cvsdist f7e6706
100892a
%global tarball_version %%(echo %{version} | tr '~' '.')
100892a
ee2e046
Name:    gdm
ee2e046
Epoch:   1
4059750
Version: 45.0.1
ff71281
Release: %autorelease
f05c735
Summary: The GNOME Display Manager
f05c735
ee2e046
License: GPL-2.0-or-later
ee2e046
URL:     https://wiki.gnome.org/Projects/GDM
ee2e046
Source0: https://download.gnome.org/sources/gdm/44/gdm-%{tarball_version}.tar.xz
7c6072e
Source1: org.gnome.login-screen.gschema.override
d9f59d9
b1a6cca
# moved here from pulseaudio-gdm-hooks-11.1-16
b1a6cca
Source5: default.pa-for-gdm
b1a6cca
d892da1
Source6: gdm.sysusers
d892da1
ff71281
# Downstream patches
ff71281
Patch: 0001-udev-Stick-with-wayland-on-hybrid-nvidia-with-vendor.patch
ff71281
Patch: 0001-Honor-initial-setup-being-disabled-by-distro-install.patch
ff71281
Patch: 0001-data-add-system-dconf-databases-to-gdm-profile.patch
c2dc904
9bfc25d
BuildRequires: dconf
cvsdist 0dba8df
BuildRequires: desktop-file-utils >= %{desktop_file_utils_version}
a454a2f
BuildRequires: gettext-devel
9bfc25d
BuildRequires: libXdmcp-devel
9bfc25d
BuildRequires: meson
9bfc25d
BuildRequires: pam-devel >= 0:%{pam_version}
99a446b
BuildRequires: pkgconfig(accountsservice) >= 0.6.3
150e1e1
BuildRequires: pkgconfig(audit) >= %{libauditver}
ad08b77
BuildRequires: pkgconfig(check)
ad08b77
BuildRequires: pkgconfig(gobject-introspection-1.0)
ad08b77
BuildRequires: pkgconfig(gtk+-3.0) >= %{gtk3_version}
b808595
BuildRequires: pkgconfig(gudev-1.0)
ad08b77
BuildRequires: pkgconfig(iso-codes)
ad08b77
BuildRequires: pkgconfig(libcanberra-gtk3)
150e1e1
BuildRequires: pkgconfig(libkeyutils)
ad08b77
BuildRequires: pkgconfig(libselinux)
Richard Hughes 926c7e8
BuildRequires: pkgconfig(libsystemd)
a4bea52
BuildRequires: pkgconfig(ply-boot-client)
ad08b77
BuildRequires: pkgconfig(systemd)
ad08b77
BuildRequires: pkgconfig(x11)
ad08b77
BuildRequires: pkgconfig(xau)
42a811a
BuildRequires: pkgconfig(xorg-server)
c42527f
BuildRequires: systemd-rpm-macros
9bfc25d
BuildRequires: which
9bfc25d
BuildRequires: xorg-x11-server-Xorg
9bfc25d
BuildRequires: yelp-devel
9bfc25d
BuildRequires: yelp-tools
Lennart Poettering 60a4c55
f432dc6
Provides: service(graphical-login) = %{name}
c65bf27
2f053f3
Requires: accountsservice
4016c4f
Requires: audit-libs >= %{libauditver}
2f053f3
Requires: dconf
2f053f3
# since we use it, and pam spams the log if the module is missing
2f053f3
Requires: gnome-keyring-pam
2f053f3
Requires: gnome-session
a26bf8e
Requires: gnome-session-wayland-session
Bastien Nocera 0a90c09
Requires: gnome-settings-daemon >= 3.27.90
2f053f3
Requires: gnome-shell
2f053f3
Requires: iso-codes
2f053f3
# We need 1.0.4-5 since it lets us use "localhost" in auth cookies
2f053f3
Requires: libXau >= 1.0.4-4
2f053f3
Requires: pam >= 0:%{pam_version}
2f053f3
Requires: /sbin/nologin
2f053f3
Requires: setxkbmap
2f053f3
Requires: systemd >= 186
2f053f3
Requires: system-logos
b3b801f
Requires: xhost xmodmap xrdb
2f053f3
Requires: xorg-x11-xinit
985a289
bb7bcfd
# Until the greeter gets dynamic user support, it can't
bb7bcfd
# use a user bus
bb7bcfd
Requires: /usr/bin/dbus-run-session
bb7bcfd
Debarshi Ray 6e92d3a
%{?sysusers_requires_compat}
Debarshi Ray 6e92d3a
358e602
Provides: gdm-libs%{?_isa} = %{epoch}:%{version}-%{release}
358e602
1307f0e
%description
3f218d1
GDM, the GNOME Display Manager, handles authentication-related backend
3f218d1
functionality for logging in a user and unlocking the user's session after
3f218d1
it's been locked. GDM also provides functionality for initiating user-switching,
3f218d1
so more than one user can be logged in at the same time. It handles
3f218d1
graphical session registration with the system for both local and remote
3f218d1
sessions (in the latter case, via the XDMCP protocol).  In cases where the
3f218d1
session doesn't provide it's own display server, GDM can start the display
3f218d1
server on behalf of the session.
1307f0e
f30ca7c
%package devel
358e602
Summary: Development files for gdm
358e602
Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release}
15587e2
Requires: gdm-pam-extensions-devel = %{epoch}:%{version}-%{release}
f30ca7c
f30ca7c
%description devel
f30ca7c
The gdm-devel package contains headers and other
f30ca7c
files needed to build custom greeters.
2257959
15587e2
%package pam-extensions-devel
15587e2
Summary: Macros for developing GDM extensions to PAM
15587e2
Requires: pam-devel
15587e2
15587e2
%description pam-extensions-devel
15587e2
The gdm-pam-extensions-devel package contains headers and other
15587e2
files that are helpful to PAM modules wishing to support
15587e2
GDM specific authentication features.
15587e2
cvsdist 56263d9
%prep
150e1e1
%autosetup -p1 -n gdm-%{tarball_version}
d9fb4f7
cvsdist 56263d9
%build
994a0d9
%meson -Dpam-prefix=%{_sysconfdir} \
994a0d9
       -Drun-dir=/run/gdm \
994a0d9
       -Dudev-dir=%{_udevrulesdir} \
994a0d9
       -Ddefault-path=/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin \
994a0d9
       -Dprofiling=true \
994a0d9
       -Dplymouth=enabled \
994a0d9
       -Dselinux=enabled
994a0d9
%meson_build
cvsdist 56263d9
4e0df52
cvsdist 56263d9
%install
26a4bff
mkdir -p %{buildroot}%{_sysconfdir}/gdm/Init
26a4bff
mkdir -p %{buildroot}%{_sysconfdir}/gdm/PreSession
26a4bff
mkdir -p %{buildroot}%{_sysconfdir}/gdm/PostSession
cvsdist f7e6706
994a0d9
%meson_install
b7149c3
b7149c3
install -p -m644 -D %{SOURCE5} %{buildroot}%{_localstatedir}/lib/gdm/.config/pulse/default.pa
d892da1
install -p -m644 -D %{SOURCE6} %{buildroot}%{_sysusersdir}/%{name}.conf
cvsdist d1fbd55
26a4bff
rm -f %{buildroot}%{_sysconfdir}/pam.d/gdm
bc2b1f0
f30ca7c
# add logo to shell greeter
f4457e5
cp -a %{SOURCE1} %{buildroot}%{_datadir}/glib-2.0/schemas
f30ca7c
cvsdist 56263d9
# docs go elsewhere
26a4bff
rm -rf %{buildroot}/%{_prefix}/doc
cvsdist 56263d9
cvsdist 19e6bb2
# create log dir
26a4bff
mkdir -p %{buildroot}/var/log/gdm
cvsdist 56263d9
26a4bff
(cd %{buildroot}%{_sysconfdir}/gdm; ln -sf ../X11/xinit/Xsession .)
512821a
26a4bff
mkdir -p %{buildroot}%{_datadir}/gdm/autostart/LoginWindow
70b8f6c
26a4bff
mkdir -p %{buildroot}/run/gdm
499787d
12d3598
mkdir -p %{buildroot}%{_sysconfdir}/dconf/db/gdm.d/locks
12d3598
512f507
%find_lang gdm --with-gnome
cvsdist 27bc216
cvsdist 56263d9
%pre
ce1b7dc
%sysusers_create_compat %{SOURCE6}
cvsdist 56263d9
cvsdist d1fbd55
%post
1302485
# if the user already has a config file, then migrate it to the new
1302485
# location; rpm will ensure that old file will be renamed
1302485
1302485
custom=/etc/gdm/custom.conf
1302485
1302485
if [ $1 -ge 2 ] ; then
1302485
    if [ -f /usr/share/gdm/config/gdm.conf-custom ]; then
edd6f02
        oldconffile=/usr/share/gdm/config/gdm.conf-custom
1302485
    elif [ -f /etc/X11/gdm/gdm.conf ]; then
edd6f02
        oldconffile=/etc/X11/gdm/gdm.conf
1302485
    fi
1302485
1302485
    # Comment out some entries from the custom config file that may
1302485
    # have changed locations in the update.  Also move various
1302485
    # elements to their new locations.
1302485
1302485
    [ -n "$oldconffile" ] && sed \
1302485
    -e 's@^command=/usr/X11R6/bin/X@#command=/usr/bin/Xorg@' \
1302485
    -e 's@^Xnest=/usr/X11R6/bin/Xnest@#Xnest=/usr/X11R6/bin/Xnest@' \
1302485
    -e 's@^BaseXsession=/etc/X11/xdm/Xsession@#BaseXsession=/etc/X11/xinit/Xsession@' \
7e9a830
    -e 's@^BaseXsession=/etc/X11/gdm/Xsession@#&@' \
1302485
    -e 's@^BaseXsession=/etc/gdm/Xsession@#&@' \
1302485
    -e 's@^Greeter=/usr/bin/gdmgreeter@#Greeter=/usr/libexec/gdmgreeter@' \
1302485
    -e 's@^RemoteGreeter=/usr/bin/gdmlogin@#RemoteGreeter=/usr/libexec/gdmlogin@' \
1302485
    -e 's@^GraphicalTheme=Bluecurve@#&@' \
1302485
    -e 's@^BackgroundColor=#20305a@#&@' \
1302485
    -e 's@^DefaultPath=/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin@#&@' \
1302485
    -e 's@^RootPath=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin@#&@' \
1302485
    -e 's@^HostImageDir=/usr/share/hosts/@#HostImageDir=/usr/share/pixmaps/faces/@' \
1302485
    -e 's@^LogDir=/var/log/gdm@#&@' \
1302485
    -e 's@^PostLoginScriptDir=/etc/X11/gdm/PostLogin@#&@' \
1302485
    -e 's@^PreLoginScriptDir=/etc/X11/gdm/PreLogin@#&@' \
1302485
    -e 's@^PreSessionScriptDir=/etc/X11/gdm/PreSession@#&@' \
1302485
    -e 's@^PostSessionScriptDir=/etc/X11/gdm/PostSession@#&@' \
1302485
    -e 's@^DisplayInitDir=/var/run/gdm.pid@#&@' \
1302485
    -e 's@^RebootCommand=/sbin/reboot;/sbin/shutdown -r now;/usr/sbin/shutdown -r now;/usr/bin/reboot@#&@' \
1302485
    -e 's@^HaltCommand=/sbin/poweroff;/sbin/shutdown -h now;/usr/sbin/shutdown -h now;/usr/bin/poweroff@#&@' \
1302485
    -e 's@^ServAuthDir=/var/gdm@#&@' \
1302485
    -e 's@^Greeter=/usr/bin/gdmlogin@Greeter=/usr/libexec/gdmlogin@' \
1302485
    -e 's@^RemoteGreeter=/usr/bin/gdmgreeter@RemoteGreeter=/usr/libexec/gdmgreeter@' \
1302485
    $oldconffile > $custom
839d33c
fi
839d33c
1302485
if [ $1 -ge 2 -a -f $custom ] && grep -q /etc/X11/gdm $custom ; then
1302485
   sed -i -e 's@/etc/X11/gdm@/etc/gdm@g' $custom
cvsdist 6426184
fi
238ab1c
Lennart Poettering 60a4c55
%systemd_post gdm.service
Lennart Poettering 60a4c55
5085d7b
%preun
Lennart Poettering 60a4c55
%systemd_preun gdm.service
5085d7b
cvsdist d1fbd55
%postun
b7149c3
%systemd_postun gdm.service
9cdffb8
5dafa8a
%files -f gdm.lang
c897520
%doc AUTHORS NEWS README.md
fd5f851
%license COPYING
839d33c
%dir %{_sysconfdir}/gdm
839d33c
%config(noreplace) %{_sysconfdir}/gdm/custom.conf
839d33c
%config %{_sysconfdir}/gdm/Init/*
839d33c
%config %{_sysconfdir}/gdm/PostLogin/*
839d33c
%config %{_sysconfdir}/gdm/PreSession/*
839d33c
%config %{_sysconfdir}/gdm/PostSession/*
238ab1c
%config %{_sysconfdir}/pam.d/gdm-autologin
2257959
%config %{_sysconfdir}/pam.d/gdm-password
0c13f98
# not config files
0c13f98
%{_sysconfdir}/gdm/Xsession
a4b9002
%{_datadir}/gdm/gdm.schemas
0c13f98
%{_sysconfdir}/dbus-1/system.d/gdm.conf
839d33c
%dir %{_sysconfdir}/gdm/Init
839d33c
%dir %{_sysconfdir}/gdm/PreSession
839d33c
%dir %{_sysconfdir}/gdm/PostSession
839d33c
%dir %{_sysconfdir}/gdm/PostLogin
b67be4e
%dir %{_sysconfdir}/dconf/db/gdm.d
b67be4e
%dir %{_sysconfdir}/dconf/db/gdm.d/locks
f30ca7c
%{_datadir}/glib-2.0/schemas/org.gnome.login-screen.gschema.xml
f30ca7c
%{_datadir}/glib-2.0/schemas/org.gnome.login-screen.gschema.override
9a54f73
%{_libexecdir}/gdm-host-chooser
100892a
%{_libexecdir}/gdm-runtime-config
9a54f73
%{_libexecdir}/gdm-session-worker
9a54f73
%{_libexecdir}/gdm-simple-chooser
Richard Hughes f526b0e
%{_libexecdir}/gdm-wayland-session
Richard Hughes f526b0e
%{_libexecdir}/gdm-x-session
9a54f73
%{_sbindir}/gdm
356b1f7
%{_bindir}/gdmflexiserver
7fb4887
%{_bindir}/gdm-screenshot
b4ec156
%dir %{_datadir}/dconf
b4ec156
%dir %{_datadir}/dconf/profile
9c3bcd6
%{_datadir}/dconf/profile/gdm
b4ec156
%dir %{_datadir}/gdm/greeter
b4ec156
%dir %{_datadir}/gdm/greeter/applications
9cdffb8
%{_datadir}/gdm/greeter/applications/*
b4ec156
%dir %{_datadir}/gdm/greeter/autostart
6712247
%{_datadir}/gdm/greeter/autostart/*
9c3bcd6
%{_datadir}/gdm/greeter-dconf-defaults
1df2df1
%{_datadir}/gdm/locale.alias
979d2a9
%{_datadir}/gdm/gdb-cmd
660310e
%{_datadir}/gnome-session/sessions/gnome-login.session
358e602
%{_libdir}/girepository-1.0/Gdm-1.0.typelib
2ebb36c
%{_libdir}/security/pam_gdm.so
aabe760
%{_libdir}/libgdm*.so*
cvsdist 19e6bb2
%dir %{_localstatedir}/log/gdm
640ca54
%attr(1770, gdm, gdm) %dir %{_localstatedir}/lib/gdm
b7149c3
%attr(0700, gdm, gdm) %dir %{_localstatedir}/lib/gdm/.config
b7149c3
%attr(0700, gdm, gdm) %dir %{_localstatedir}/lib/gdm/.config/pulse
b7149c3
%attr(0600, gdm, gdm) %{_localstatedir}/lib/gdm/.config/pulse/default.pa
0e1d5c6
%attr(0711, root, gdm) %dir /run/gdm
2257959
%config %{_sysconfdir}/pam.d/gdm-smartcard
2257959
%config %{_sysconfdir}/pam.d/gdm-fingerprint
Richard Hughes 92dc2b1
%{_sysconfdir}/pam.d/gdm-launch-environment
68c91e8
%{_udevrulesdir}/61-gdm.rules
Lennart Poettering 60a4c55
%{_unitdir}/gdm.service
0795ffb
%dir %{_userunitdir}/gnome-session@gnome-login.target.d/
0795ffb
%{_userunitdir}/gnome-session@gnome-login.target.d/session.conf
d892da1
%{_sysusersdir}/%{name}.conf
2257959
f30ca7c
%files devel
f30ca7c
%dir %{_includedir}/gdm
e83f778
%{_includedir}/gdm/*.h
15587e2
%exclude %{_includedir}/gdm/gdm-pam-extensions.h
b4ec156
%dir %{_datadir}/gir-1.0
e83f778
%{_datadir}/gir-1.0/Gdm-1.0.gir
e83f778
%{_libdir}/pkgconfig/gdm.pc
f30ca7c
15587e2
%files pam-extensions-devel
15587e2
%{_includedir}/gdm/gdm-pam-extensions.h
15587e2
%{_libdir}/pkgconfig/gdm-pam-extensions.pc
15587e2
cvsdist 56263d9
%changelog
ff71281
%autochangelog