gdm/gdm.spec
2020-01-06 11:47:39 +08:00

188 lines
7.3 KiB
RPMSpec

Name: gdm
Epoch: 1
Version: 3.30.1
Release: 5
Summary: A graphical display manager
License: GPLv2+
URL: https://wiki.gnome.org/Projects/GDM
Source0: http://download.gnome.org/sources/gdm/3.30/gdm-%{version}.tar.xz
Source1: org.gnome.login-screen.gschema.override
Source2: default.pa-for-gdm
Patch0001: 0001-Honor-initial-setup-being-disabled-by-distro-install.patch
Patch0002: 0001-manager-correct-display-confusion.patch
Patch0003: 0001-local-display-factory-defer-initialization-for-CanGr.patch
Patch0004: 0001-manager-do-initial-setup-post-work-in-manager-code.patch
Patch0005: system-dconf.patch
Patch9000: 9000-add-openeuler-pam-config.patch
BuildRequires: pam-devel >= 0:0.99.8.1-11 desktop-file-utils >= 0.2.90
BuildRequires: libtool automake autoconf libattr-devel gettext-devel libdmx-devel
BuildRequires: audit-libs-devel >= 1.0.6 xorg-x11-server-Xorg nss-devel >= 3.11.1
BuildRequires: pkgconfig(accountsservice) >= 0.6.3 pkgconfig(check)
BuildRequires: pkgconfig(gobject-introspection-1.0) pkgconfig(gtk+-3.0) >= 2.99.2
BuildRequires: pkgconfig(iso-codes) pkgconfig(libcanberra-gtk3) pkgconfig(libselinux)
BuildRequires: pkgconfig(libsystemd) pkgconfig(ply-boot-client) pkgconfig(systemd)
BuildRequires: pkgconfig(x11) pkgconfig(xau) pkgconfig(xorg-server) libXdmcp-devel
BuildRequires: systemd keyutils-libs-devel dconf
Requires(pre): shadow-utils
Requires(post): systemd
Requires(preun): systemd
Requires(postun): systemd
Requires: accountsservice audit-libs >= 1.0.6 dconf gnome-keyring-pam gnome-session
Requires: gnome-session-wayland-session gnome-settings-daemon >= 3.27.90 gnome-shell iso-codes
Requires: libXau >= 1.0.4-4 pam >= 0:0.99.8.1-11 util-linux setxkbmap systemd >= 186
Requires: system-logos xorg-x11-server-utils xorg-x11-xinit
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:3.12.0-3 gdm-plugin-smartcard < 1:3.2.1
Obsoletes: gdm-plugin-fingerprint < 1:3.2.1 pulseaudio-gdm-hooks < 1:11.1-17
%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}
Provides: gdm-pam-extensions-devel%{?_isa} = %{epoch}:%{version}-%{release}
Obsoletes: gdm-pam-extensions-devel < 1:3.30.1-3
Obsoletes: gdm-pam-extensions-devel%{?_isa} < 1:3.30.1-3
%description devel
The gdm-devel package contains header files and others for building
applications that use GDM.
%prep
%autosetup -n %{name}-%{version} -p1
autoreconf -if
%build
%configure --with-pam-prefix=%{_sysconfdir} --with-run-dir=/run/gdm \
--with-default-path=/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin \
--enable-split-authentication --enable-profiling --enable-console-helper \
--with-selinux
sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0 /g' libtool
sed -i -e 's/ if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then/ func_append compile_command " -Wl,-O1,--as-needed"\n func_append finalize_command " -Wl,-O1,--as-needed"\n\0/' libtool
%make_build
%install
install -d %{buildroot}%{_sysconfdir}/gdm/Init
install -d %{buildroot}%{_sysconfdir}/gdm/PreSession
install -d %{buildroot}%{_sysconfdir}/gdm/PostSession
install -d %{buildroot}/var/log/gdm
install -d %{buildroot}%{_datadir}/gdm/autostart/LoginWindow
install -d %{buildroot}/run/gdm
%make_install
install -D %{SOURCE1} %{buildroot}%{_datadir}/glib-2.0/schemas
install -p -m644 -D %{SOURCE2} %{buildroot}%{_localstatedir}/lib/gdm/.config/pulse/default.pa
(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
newconffile=/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
if [ -n "$oldconffile" ]; then
sed -e 's@^Greeter=/usr/bin/gdmlogin@Greeter=/usr/libexec/gdmlogin@' $oldconffile > $newconffile
sed -e 's@^RemoteGreeter=/usr/bin/gdmgreeter@RemoteGreeter=/usr/libexec/gdmgreeter@' $oldconffile >> $newconffile
fi
fi
if [ -f "$newconffile" ]; then
sed -ie 's@^#WaylandEnable=false@WaylandEnable=false@' $newconffile
fi
%systemd_post gdm.service
%preun
%systemd_preun gdm.service
%postun
%systemd_postun gdm.service
%files -f gdm.lang
%doc AUTHORS NEWS README.md COPYING
%config(noreplace) %{_sysconfdir}/gdm/custom.conf
%config %{_sysconfdir}/gdm/Init/*
%config %{_sysconfdir}/gdm/PostLogin/*
%config %{_sysconfdir}/gdm/PreSession/*
%config %{_sysconfdir}/gdm/PostSession/*
%{_sysconfdir}/gdm/Xsession
%config %{_sysconfdir}/pam.d/gdm-autologin
%config %{_sysconfdir}/pam.d/gdm-password
%config %{_sysconfdir}/pam.d/gdm-pin
%config %{_sysconfdir}/pam.d/gdm-smartcard
%config %{_sysconfdir}/pam.d/gdm-fingerprint
%exclude %{_sysconfdir}/pam.d/gdm
%{_sysconfdir}/pam.d/gdm-launch-environment
%{_sysconfdir}/dbus-1/system.d/gdm.conf
%{_datadir}/gdm/gdm.schemas
%{_datadir}/gdm/greeter-dconf-defaults
%{_datadir}/gdm/locale.alias
%{_datadir}/gdm/gdb-cmd
%{_datadir}/gdm/greeter/applications/*
%{_datadir}/gdm/greeter/autostart/*
%{_datadir}/pixmaps/*.png
%{_datadir}/glib-2.0/schemas/*
%{_datadir}/dconf/profile/gdm
%{_datadir}/gnome-session/sessions/gnome-login.session
%{_datadir}/icons/hicolor/*/*/*.png
%{_libexecdir}/*
%{_sbindir}/gdm
%{_bindir}/*
%{_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
%attr(1755, root, gdm) %dir %{_localstatedir}/cache/gdm
%{_udevrulesdir}/61-gdm.rules
%{_unitdir}/gdm.service
%files devel
%{_includedir}/gdm/*.h
%{_datadir}/gir-1.0/Gdm-1.0.gir
%{_libdir}/pkgconfig/*.pc
%changelog
* Mon Dec 30 2019 Ling Yang <lingyang2@huawei.com> - 1:3.30.1-5
- Disable wayland
* Tue Dec 17 2019 Jiangping Hu <hujiangping@huawei.com> - 1:3.30.1-4
- Add openEuler PAM config
* Wed Nov 23 2019 Jiangping Hu <hujiangping@huawei.com> - 1:3.30.1-3
- Package init