%define libauditver 1.0.6 %define gtk3_version 2.99.2 %define pam_version 0.99.8.1-11 %define desktop_file_utils_version 0.2.90 %define nss_version 3.11.1 Name: gdm Epoch: 1 Version: 42.0 Release: 1 Summary: A graphical display manager License: GPLv2+ URL: https://wiki.gnome.org/Projects/GDM Source0: http://download.gnome.org/sources/gdm/42/gdm-%{version}.tar.xz Source1: org.gnome.login-screen.gschema.override Source5: default.pa-for-gdm Patch0: 0001-data-add-system-dconf-databases-to-gdm-profile.patch Patch1: 0001-Honor-initial-setup-being-disabled-by-distro-install.patch Patch2: gdm-should-recover-automatically.patch Patch3: 9000-add-openeuler-pam-config.patch BuildRequires: meson automake autoconf systemd dconf itstool libtool which BuildRequires: systemd-devel libselinux-devel libattr-devel gettext-devel BuildRequires: yelp-devel yelp-tools plymouth-devel libdmx-devel libXdmcp-devel BuildRequires: xorg-x11-server-Xorg xorg-x11-server-devel keyutils-libs-devel accountsservice-devel BuildRequires: pkgconfig(check) pkgconfig(gobject-introspection-1.0) pkgconfig(libcanberra-gtk3) BuildRequires: pkgconfig(iso-codes) pkgconfig(gudev-1.0) BuildRequires: pkgconfig(ply-boot-client) pkgconfig(x11) pkgconfig(xau) BuildRequires: desktop-file-utils >= %{desktop_file_utils_version} BuildRequires: pkgconfig(gtk+-3.0) >= %{gtk3_version} BuildRequires: nss-devel >= %{nss_version} BuildRequires: pam-devel >= 0:%{pam_version} BuildRequires: audit-devel >= %{libauditver} Requires(pre): shadow-utils Requires(post): systemd Requires(preun): systemd Requires(postun): systemd Requires: accountsservice dconf gnome-keyring-pam gnome-session dbus-daemon Requires: gnome-session-wayland-session gnome-settings-daemon >= 3.27.90 gnome-shell iso-codes Requires: libXau >= 1.0.4-4 util-linux systemd >= 186 xorg-x11-xkb-utils Requires: system-logos xorg-x11-server-utils xorg-x11-xinit Requires: audit-libs >= %{libauditver} pam >= 0:%{pam_version} Provides: service(graphical-login) = %{name} Provides: gdm-libs%{?_isa} = %{epoch}:%{version}-%{release} Provides: gdm-plugin-smartcard = %{epoch}:%{version}-%{release} Provides: gdm-plugin-fingerprint = %{epoch}:%{version}-%{release} Provides: pulseaudio-gdm-hooks = 1:%{version}-%{release} Obsoletes: gdm-libs < 1:%{version}-%{release} gdm-plugin-smartcard < 1:%{version}-%{release} Obsoletes: gdm-plugin-fingerprint < 1:%{version}-%{release} pulseaudio-gdm-hooks < 1:%{version}-%{release} %description The GNOME Display Manager is a system service that is responsible for providing graphical log-ins and managing local and remote displays, and if the session doesn't provide a display server, GDM will start the display server. It also provides initiate functionality for user-switching, so multiple users can be logged in at the same time. %package devel Summary: Development files for gdm Requires: %{name} = %{epoch}:%{version}-%{release} pam-devel Provides: gdm-pam-extensions-devel = %{epoch}:%{version}-%{release} Obsoletes: gdm-pam-extensions-devel < %{epoch}:%{version}-%{release} %description devel The gdm-devel package contains header files and others for building applications that use GDM. %prep %autosetup -n %{name}-%{version} -p1 %build %meson -Dpam-prefix=%{_sysconfdir} \ -Drun-dir=/run/gdm \ -Dudev-dir=%{_udevrulesdir} \ -Ddefault-path=/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin \ -Dprofiling=true \ -Dplymouth=enabled \ -Dselinux=enabled %meson_build %install install -d %{buildroot}%{_sysconfdir}/gdm/Init install -d %{buildroot}%{_sysconfdir}/gdm/PreSession install -d %{buildroot}%{_sysconfdir}/gdm/PostSession install -d %{buildroot}%{_sysconfdir}/dconf/db/gdm.d/locks install -d %{buildroot}/var/log/gdm install -d %{buildroot}%{_datadir}/gdm/autostart/LoginWindow install -d %{buildroot}/run/gdm %meson_install install -p -m644 -D %{SOURCE5} %{buildroot}%{_localstatedir}/lib/gdm/.config/pulse/default.pa rm -f %{buildroot}%{_sysconfdir}/pam.d/gdm cp -a %{SOURCE1} %{buildroot}%{_datadir}/glib-2.0/schemas rm -rf %{buildroot}/%{_prefix}/doc (cd %{buildroot}%{_sysconfdir}/gdm; ln -sf ../X11/xinit/Xsession .) %delete_la_and_a %find_lang gdm --with-gnome %pre /usr/sbin/useradd -M -u 42 -d /var/lib/gdm -s /sbin/nologin -r gdm > /dev/null 2>&1 /usr/sbin/usermod -d /var/lib/gdm -s /sbin/nologin gdm >/dev/null 2>&1 exit 0 %post custom=/etc/gdm/custom.conf if [ $1 -ge 2 ] ; then if [ -f /usr/share/gdm/config/gdm.conf-custom ]; then oldconffile=/usr/share/gdm/config/gdm.conf-custom elif [ -f /etc/X11/gdm/gdm.conf ]; then oldconffile=/etc/X11/gdm/gdm.conf fi # Comment out some entries from the custom config file that may # have changed locations in the update. Also move various # elements to their new locations. [ -n "$oldconffile" ] && sed \ -e 's@^command=/usr/X11R6/bin/X@#command=/usr/bin/Xorg@' \ -e 's@^Xnest=/usr/X11R6/bin/Xnest@#Xnest=/usr/X11R6/bin/Xnest@' \ -e 's@^BaseXsession=/etc/X11/xdm/Xsession@#BaseXsession=/etc/X11/xinit/Xsession@' \ -e 's@^BaseXsession=/etc/X11/gdm/Xsession@#&@' \ -e 's@^BaseXsession=/etc/gdm/Xsession@#&@' \ -e 's@^Greeter=/usr/bin/gdmgreeter@#Greeter=/usr/libexec/gdmgreeter@' \ -e 's@^RemoteGreeter=/usr/bin/gdmlogin@#RemoteGreeter=/usr/libexec/gdmlogin@' \ -e 's@^GraphicalTheme=Bluecurve@#&@' \ -e 's@^BackgroundColor=#20305a@#&@' \ -e 's@^DefaultPath=/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin@#&@' \ -e 's@^RootPath=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin@#&@' \ -e 's@^HostImageDir=/usr/share/hosts/@#HostImageDir=/usr/share/pixmaps/faces/@' \ -e 's@^LogDir=/var/log/gdm@#&@' \ -e 's@^PostLoginScriptDir=/etc/X11/gdm/PostLogin@#&@' \ -e 's@^PreLoginScriptDir=/etc/X11/gdm/PreLogin@#&@' \ -e 's@^PreSessionScriptDir=/etc/X11/gdm/PreSession@#&@' \ -e 's@^PostSessionScriptDir=/etc/X11/gdm/PostSession@#&@' \ -e 's@^DisplayInitDir=/var/run/gdm.pid@#&@' \ -e 's@^RebootCommand=/sbin/reboot;/sbin/shutdown -r now;/usr/sbin/shutdown -r now;/usr/bin/reboot@#&@' \ -e 's@^HaltCommand=/sbin/poweroff;/sbin/shutdown -h now;/usr/sbin/shutdown -h now;/usr/bin/poweroff@#&@' \ -e 's@^ServAuthDir=/var/gdm@#&@' \ -e 's@^Greeter=/usr/bin/gdmlogin@Greeter=/usr/libexec/gdmlogin@' \ -e 's@^RemoteGreeter=/usr/bin/gdmgreeter@RemoteGreeter=/usr/libexec/gdmgreeter@' \ $oldconffile > $custom fi if [ $1 -ge 2 -a -f $custom ] && grep -q /etc/X11/gdm $custom ; then sed -i -e 's@/etc/X11/gdm@/etc/gdm@g' $custom fi if [ -f "$custom" ]; then sed -ie 's@^#WaylandEnable=false@WaylandEnable=false@' $custom fi %systemd_post gdm.service %preun %systemd_preun gdm.service %postun %systemd_postun gdm.service %files -f gdm.lang %doc AUTHORS NEWS README.md %license COPYING %dir %{_sysconfdir}/gdm %config(noreplace) %{_sysconfdir}/gdm/custom.conf %config %{_sysconfdir}/gdm/Init/* %config %{_sysconfdir}/gdm/PostLogin/* %config %{_sysconfdir}/gdm/PreSession/* %config %{_sysconfdir}/gdm/PostSession/* %config %{_sysconfdir}/pam.d/gdm-autologin %config %{_sysconfdir}/pam.d/gdm-password %{_sysconfdir}/gdm/Xsession %{_datadir}/gdm/gdm.schemas %{_sysconfdir}/dbus-1/system.d/gdm.conf %dir %{_sysconfdir}/gdm/Init %dir %{_sysconfdir}/gdm/PreSession %dir %{_sysconfdir}/gdm/PostSession %dir %{_sysconfdir}/gdm/PostLogin %dir %{_sysconfdir}/dconf/db/gdm.d %dir %{_sysconfdir}/dconf/db/gdm.d/locks %{_datadir}/glib-2.0/schemas/org.gnome.login-screen.gschema.xml %{_datadir}/glib-2.0/schemas/org.gnome.login-screen.gschema.override %{_libexecdir}/gdm-host-chooser %{_libexecdir}/gdm-runtime-config %{_libexecdir}/gdm-session-worker %{_libexecdir}/gdm-simple-chooser %{_libexecdir}/gdm-wayland-session %{_libexecdir}/gdm-x-session %{_sbindir}/gdm %{_bindir}/gdmflexiserver %{_bindir}/gdm-screenshot %dir %{_datadir}/dconf %dir %{_datadir}/dconf/profile %{_datadir}/dconf/profile/gdm %dir %{_datadir}/gdm/greeter %dir %{_datadir}/gdm/greeter/applications %{_datadir}/gdm/greeter/applications/* %dir %{_datadir}/gdm/greeter/autostart %{_datadir}/gdm/greeter/autostart/* %{_datadir}/gdm/greeter-dconf-defaults %{_datadir}/gdm/locale.alias %{_datadir}/gdm/gdb-cmd %{_datadir}/gnome-session/sessions/gnome-login.session %{_libdir}/girepository-1.0/Gdm-1.0.typelib %{_libdir}/security/pam_gdm.so %{_libdir}/libgdm*.so* %dir %{_localstatedir}/log/gdm %attr(1770, gdm, gdm) %dir %{_localstatedir}/lib/gdm %attr(0700, gdm, gdm) %dir %{_localstatedir}/lib/gdm/.config %attr(0700, gdm, gdm) %dir %{_localstatedir}/lib/gdm/.config/pulse %attr(0600, gdm, gdm) %{_localstatedir}/lib/gdm/.config/pulse/default.pa %attr(0711, root, gdm) %dir /run/gdm %config %{_sysconfdir}/pam.d/gdm-smartcard %config %{_sysconfdir}/pam.d/gdm-fingerprint %{_sysconfdir}/pam.d/gdm-launch-environment %{_udevrulesdir}/61-gdm.rules %{_unitdir}/gdm.service %dir %{_userunitdir}/gnome-session@gnome-login.target.d/ %{_userunitdir}/gnome-session@gnome-login.target.d/session.conf %files devel %dir %{_includedir}/gdm %{_includedir}/gdm/*.h %exclude %{_includedir}/gdm/gdm-pam-extensions.h %dir %{_datadir}/gir-1.0 %{_datadir}/gir-1.0/Gdm-1.0.gir %{_libdir}/pkgconfig/gdm.pc %{_libdir}/pkgconfig/gdm-pam-extensions.pc %changelog * Apr Fri 15 2022 dillon chen - 1:42.0-1 - Update to 42.0 * Tue Aug 17 2021 weijin deng - 3.38.2-3 - Add 9000-add-openeuler-pam-config.patch for openeuler pam config to normally start gdm * Wed Jun 23 2021 weijin deng - 3.38.2-2 - Add Omitted Sources1 and Sources5 - Add Omitted patches Patch0 and Patch1 - Recover Patch2 * Mon May 24 2021 weijin deng - 3.38.2-1 - Upgrade to 3.38.2 - Update Version, Release, Source0, BuildRequires - Use meson rebuild and install - Delete patches, delete pam.d related and other two files which not in 3.38.2 - Add new file session.conf. modify /etc/gdm/custom.conf * Fri Feb 5 2021 wangxiao - 1:3.30.1-10 - fix CVE-2019-3825 * Fri Dec 18 2020 Guoshuai Sun - 1:3.30.1-9 - Gdm should recover automatically when killed * Thu Nov 19 2020 openEuler Buildteam - 1:3.30.1-8 - fix CVE-2020-16125 * Tue Jan 14 2020 openEuler Buildteam - 1:3.30.1-7 - Type:bugfix - Id:NA - SUG:NA - DESC: delete the isa in obsoletes * Mon Jan 13 2020 openEuler Buildteam - 1:3.30.1-6 - delete unused patch * Mon Dec 30 2019 Ling Yang - 1:3.30.1-5 - Disable wayland * Tue Dec 17 2019 Jiangping Hu - 1:3.30.1-4 - Add openEuler PAM config * Sat Nov 23 2019 Jiangping Hu - 1:3.30.1-3 - Package init