X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=gdm.spec;h=9e004aecaf6e8c32be28a42cc87eda3d32e85244;hb=HEAD;hp=436e7725ebfbe82d62f495104b776e49cdd87a19;hpb=4dab499104f941a568d6cd640518fe484a8ba881;p=packages%2Fgdm.git diff --git a/gdm.spec b/gdm.spec index 436e772..19b0a5d 100644 --- a/gdm.spec +++ b/gdm.spec @@ -1,11 +1,13 @@ # # TODO: # - s=/dev/null=/home/services/xdm= in %%trigger for graceful upgrade from xdm/kdm/gdm 2.2 -# - check /etc/pam.d/gdm-autologin +# - check all /etc/pam.d/gdm-* to be pldized: +# gdm-autologin[4] gdm-fingerprint[10] gdm-password[1] gdm-smartcard gdm-launch-environment[11] # -# Conditiional build: -%bcond_without selinux # without selinux +# Conditional build: +%bcond_without static_libs # static library +%define glib2_ver 1:2.68.0 Summary: GNOME Display Manager Summary(es.UTF-8): Administrador de Entrada del GNOME Summary(ja.UTF-8): GNOME ディスプレイマネージャ @@ -14,94 +16,106 @@ Summary(pt_BR.UTF-8): Gerenciador de Entrada do GNOME Summary(ru.UTF-8): Дисплейный менеджер GNOME Summary(uk.UTF-8): Дисплейний менеджер GNOME Name: gdm -Version: 3.2.0 -Release: 3 +Version: 46.0 +Release: 1 Epoch: 2 -License: GPL/LGPL +License: GPL v2+ Group: X11/Applications -Source0: http://ftp.gnome.org/pub/GNOME/sources/gdm/3.2/%{name}-%{version}.tar.xz -# Source0-md5: 34819420a3177fe18eac2154762ed996 +Source0: https://download.gnome.org/sources/gdm/46/%{name}-%{version}.tar.xz +# Source0-md5: 7c633379109fe5fb23734888649cdab0 Source1: %{name}.pamd Source2: %{name}.init Source3: %{name}-pld-logo.png Source4: %{name}-autologin.pamd Source5: %{name}-custom.desktop Source6: %{name}-default.desktop -Source7: %{name}.upstart +Source9: %{name}.tmpfiles +Source10: %{name}-fingerprint.pamd +Source11: %{name}-launch-environment.pamd Patch0: %{name}-xdmcp.patch -Patch1: %{name}-polkit.patch -Patch2: %{name}-xsession.patch -Patch3: %{name}-defaults.patch -URL: http://www.gnome.org/projects/gdm/ -BuildRequires: GConf2-devel >= 2.32.0 -BuildRequires: accountsservice-devel >= 0.6.12 -BuildRequires: attr-devel +Patch1: %{name}-xsession.patch +Patch2: %{name}-defaults.patch +Patch3: %{name}-both-libraries.patch +URL: https://wiki.gnome.org/Projects/GDM +BuildRequires: accountsservice-devel >= 0.6.35 BuildRequires: audit-libs-devel -BuildRequires: autoconf >= 2.60 -BuildRequires: automake >= 1:1.11 -BuildRequires: check >= 0.9.4 -BuildRequires: dbus-glib-devel >= 0.74 -BuildRequires: docbook-dtd412-xml -BuildRequires: fontconfig-devel >= 2.5.0 -BuildRequires: gettext-devel -BuildRequires: glib2-devel >= 1:2.28.0 -BuildRequires: gnome-doc-utils +BuildRequires: check-devel >= 0.9.4 +BuildRequires: dconf +BuildRequires: gettext-tools >= 0.19.8 +BuildRequires: glib2-devel >= %{glib2_ver} +BuildRequires: gobject-introspection-devel >= 0.9.12 BuildRequires: gtk+3-devel >= 3.0.0 -BuildRequires: intltool >= 0.40.0 BuildRequires: iso-codes +BuildRequires: json-glib-devel >= 1.2.0 +BuildRequires: keyutils-devel >= 1.6 BuildRequires: libcanberra-gtk3-devel >= 0.4 -%{?with_selinux:BuildRequires: libselinux-devel} -BuildRequires: libtool +BuildRequires: libgudev-devel >= 232 +BuildRequires: libselinux-devel +BuildRequires: libstdc++-devel BuildRequires: libwrap-devel -BuildRequires: libxklavier-devel >= 4.0-2 +BuildRequires: libxcb-devel +BuildRequires: meson >= 0.57 +BuildRequires: ninja >= 1.5 BuildRequires: pam-devel -BuildRequires: pango-devel >= 1.3.0 -BuildRequires: perl-modules BuildRequires: pkgconfig +BuildRequires: plymouth-devel BuildRequires: rpmbuild(find_lang) >= 1.23 -BuildRequires: rpmbuild(macros) >= 1.450 -BuildRequires: scrollkeeper >= 0.1.4 +BuildRequires: rpmbuild(macros) >= 1.736 +BuildRequires: systemd-devel >= 1:209 BuildRequires: tar >= 1:1.22 -BuildRequires: upower-devel >= 0.9.0 +BuildRequires: udev-devel BuildRequires: xorg-lib-libX11-devel BuildRequires: xorg-lib-libXau-devel BuildRequires: xorg-lib-libXdmcp-devel +BuildRequires: xorg-lib-libXext-devel BuildRequires: xorg-lib-libXft-devel BuildRequires: xorg-lib-libXi-devel BuildRequires: xorg-lib-libXinerama-devel -BuildRequires: xorg-lib-libXrandr-devel +# for "XServer disables tcp access by default" detection +BuildRequires: xorg-xserver-server-devel >= 1.17 BuildRequires: xz -Requires(post,postun): /usr/bin/scrollkeeper-update +BuildRequires: yelp-tools +Requires(post,postun): glib2 >= %{glib2_ver} Requires(post,postun): gtk-update-icon-cache -Requires(post,preun): GConf2 Requires(postun): /usr/sbin/groupdel Requires(postun): /usr/sbin/userdel Requires(pre): /bin/id Requires(pre): /usr/sbin/groupadd Requires(pre): /usr/sbin/useradd +Requires(posttrans): dconf Requires: %{name}-libs = %{epoch}:%{version}-%{release} Requires: /usr/bin/X -Requires: ConsoleKit-x11 >= 0.4.1 -Requires: accountsservice >= 0.6.12 +Requires: accountsservice >= 0.6.35 Requires: dbus-x11 -Requires: gnome-session >= 2.91.91.1 -Requires: gnome-settings-daemon >= 2.91.91 +Requires: gdm-wm >= 3.2.1 +Requires: glib2 >= %{glib2_ver} +Requires: gnome-session >= 3.26.0 +Requires: gnome-settings-daemon >= 3.26.0 Requires: hicolor-icon-theme +Requires: iso-codes +Requires: json-glib >= 1.2.0 +Requires: libcanberra-gtk3 >= 0.4 +Requires: libgudev >= 232 Requires: pam >= 0.99.7.1 Requires: polkit-gnome >= 0.93 Requires: which +Requires: xinitrc-ng >= 1.0 Requires: xorg-app-sessreg Requires: xorg-app-xmodmap +Suggests: ConsoleKit-x11 >= 0.4.1 +Suggests: pam-pam_gnome_keyring +Suggests: xorg-xserver-Xephyr >= 1.17 Suggests: zenity Provides: XDM Provides: group(xdm) Provides: user(xdm) -Obsoletes: gdm-Xnest -Obsoletes: gdm-user-switch-applet -Obsoletes: gnome-applet-fast-user-switch +Obsoletes: gdm-Xnest < 2:2.28 +Obsoletes: gdm-systemd < 2:3.2.1.1-10 +Obsoletes: gdm-upstart < 2:3.20 +Obsoletes: gdm-user-switch-applet < 2:3.0.0-2 +Obsoletes: gnome-applet-fast-user-switch < 2.21 Conflicts: gdkxft -# sr@Latn vs. sr@latin -Conflicts: glibc-misc < 6:2.7 +Conflicts: systemd < 186 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %description @@ -138,10 +152,28 @@ GDM (GNOME Display Manager) - це реімплементація xdm (X Display Manager). GDM дозволяє вам входити в систему, на якій запущено X Window та підтримує роботу кількох різних X сеансів одночасно. +%package init +Summary: Init script for GDM +Summary(pl.UTF-8): Skrypt init dla GDM-a +Group: X11/Applications +Requires(post,preun): /sbin/chkconfig +Requires(post,preun,postun): systemd-units >= 38 +Requires: %{name} = %{epoch}:%{version}-%{release} +Requires: open +Requires: rc-scripts >= 0.4.3.0 +Requires: systemd-units >= 38 + +%description init +Init script for GDM. + +%description init -l pl.UTF-8 +Skrypt init dla GDM-a. + %package libs Summary: GDM libraries Summary(pl.UTF-8): Biblioteki GDM Group: Libraries +Requires: glib2 >= %{glib2_ver} %description libs GDM libraries. @@ -154,6 +186,9 @@ Summary: Header files for GDM Summary(pl.UTF-8): Pliki nagłówkowe i dokumentacja Group: X11/Development/Libraries Requires: %{name}-libs = %{epoch}:%{version}-%{release} +Requires: glib2-devel >= %{glib2_ver} +Requires: libselinux-devel +Requires: systemd-devel >= 1:209 %description devel This package contains the files necessary to develop applications @@ -175,34 +210,6 @@ This package contains static libraries for GDM. %description static -l pl.UTF-8 Pakiet zawiera statyczne biblioteki GDM. -%package init -Summary: Init script for GDM -Summary(pl.UTF-8): Skrypt init dla GDM-a -Group: X11/Applications -Requires(post,preun): /sbin/chkconfig -Requires: %{name} = %{epoch}:%{version}-%{release} -Requires: open -Requires: rc-scripts >= 0.4.3.0 - -%description init -Init script for GDM. - -%description init -l pl.UTF-8 -Skrypt init dla GDM-a. - -%package upstart -Summary: Upstart job description for GDM -Summary(pl.UTF-8): Opis zadania Upstart dla GDM -Group: Daemons -Requires: %{name} = %{epoch}:%{version}-%{release} -Requires: upstart >= 0.6 - -%description upstart -Upstart job description for GDM. - -%description upstart -l pl.UTF-8 -Opis zadania Upstart dla GDM. - %prep %setup -q %patch0 -p1 @@ -211,91 +218,82 @@ Opis zadania Upstart dla GDM. %patch3 -p1 %build -touch data/gdm.schemas.in.in -%{__libtoolize} -%{__glib_gettextize} -%{__intltoolize} -%{__aclocal} -%{__autoheader} -%{__autoconf} -%{__automake} -%configure \ - --disable-console-helper \ - --disable-scrollkeeper \ - --disable-silent-rules \ - --with-console-kit \ - --enable-authentication-scheme=pam \ - --with-pam-prefix=/etc \ - --with-tcp-wrappers=yes \ - --with%{!?with_selinux:out}-selinux \ - --with-xdmcp=yes \ - --with-xinerama=yes \ - --with-user=xdm \ - --with-group=xdm - -%{__make} +%meson build \ + %{!?with_static_libs:--default-library=shared} \ + -Dgdm-xsession=true \ + -Dgroup=xdm \ + -Dinitial-vt=9 \ + -Dipv6=true \ + -Dpam-mod-dir=/%{_lib}/security \ + -Dpam-prefix=/etc \ + -Dtcp-wrappers=true \ + -Dudev-dir=/lib/udev/rules.d \ + -Duser=xdm + +%ninja_build -C build %install rm -rf $RPM_BUILD_ROOT -install -d $RPM_BUILD_ROOT/etc/{rc.d/init.d,pam.d,security,init} \ - $RPM_BUILD_ROOT{/home/services/xdm,/var/log/gdm} \ - $RPM_BUILD_ROOT%{_datadir}/xsessions +install -d $RPM_BUILD_ROOT/etc/{rc.d/init.d,pam.d,security} \ + $RPM_BUILD_ROOT{/home/services/xdm,/var/lib/gdm/.local,/var/log/gdm,/var/run/gdm/greeter} \ + $RPM_BUILD_ROOT{%{_pixmapsdir},%{_datadir}/xsessions,%{systemdunitdir}} \ + $RPM_BUILD_ROOT%{systemdtmpfilesdir} -%{__make} install \ - DESTDIR=$RPM_BUILD_ROOT \ - PAM_PREFIX=/etc +%ninja_install -C build -cp -p %{SOURCE1} $RPM_BUILD_ROOT/etc/pam.d/gdm +cp -p %{SOURCE1} $RPM_BUILD_ROOT/etc/pam.d/gdm-password +cp -p %{SOURCE10} $RPM_BUILD_ROOT/etc/pam.d/gdm-fingerprint cp -p %{SOURCE4} $RPM_BUILD_ROOT/etc/pam.d/gdm-autologin +cp -p %{SOURCE11} $RPM_BUILD_ROOT/etc/pam.d/gdm-launch-environment install -p %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/gdm -cp -p %{SOURCE7} $RPM_BUILD_ROOT/etc/init/%{name}.conf cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_pixmapsdir} +cp -p %{SOURCE9} $RPM_BUILD_ROOT%{systemdtmpfilesdir}/%{name}.conf + +# replace file with mask (to allow choosing via prefdm.service) +ln -sf /dev/null $RPM_BUILD_ROOT%{systemdunitdir}/gdm.service + touch $RPM_BUILD_ROOT/etc/security/blacklist.gdm -%find_lang %{name} --with-gnome --with-omf --all-name +%find_lang %{name} --with-gnome # allow executing ~/.Xclients and ~/.xsession cp -p %{SOURCE5} $RPM_BUILD_ROOT%{_datadir}/xsessions/custom.desktop cp -p %{SOURCE6} $RPM_BUILD_ROOT%{_datadir}/xsessions/default.desktop -%{__rm} $RPM_BUILD_ROOT%{_libdir}/gdm/simple-greeter/extensions/*.{a,la} \ - $RPM_BUILD_ROOT%{_libdir}/*.la - %clean rm -rf $RPM_BUILD_ROOT +%posttrans +umask 022 +/usr/bin/dconf update + %pre %groupadd -g 55 -r -f xdm %useradd -u 55 -r -d /home/services/xdm -s /bin/false -c "X Display Manager" -g xdm xdm %post -%glib_compile_schemas -%gconf_schema_install gdm-simple-greeter.schemas -%scrollkeeper_update_post %update_icon_cache hicolor -%preun -%gconf_schema_uninstall gdm-simple-greeter.schemas - %postun -%scrollkeeper_update_postun %update_icon_cache hicolor - if [ "$1" = "0" ]; then - %glib_compile_schemas %userremove xdm %groupremove xdm fi -%triggerpostun -- %{name} < 1:2.13.0.8-1 +%triggerpostun -- %{name} < 2:3.2.1.1-10 if [ -f /etc/X11/gdm/gdm.conf-custom.rpmsave ]; then - mv /etc/X11/gdm/gdm.conf-custom.rpmsave /etc/gdm/custom.conf + mv -f /etc/X11/gdm/gdm.conf-custom.rpmsave /etc/gdm/custom.conf fi %post init /sbin/chkconfig --add gdm # -n skips restarting as it would otherise terminate all sessions opened from gdm! %service -n gdm restart +%systemd_reload + +%postun init +%systemd_reload %preun init if [ "$1" = "0" ]; then @@ -303,32 +301,31 @@ if [ "$1" = "0" ]; then /sbin/chkconfig --del gdm fi -%post libs -p /sbin/ldconfig -%postun libs -p /sbin/ldconfig +%post libs +/sbin/ldconfig +%glib_compile_schemas + +%postun libs +/sbin/ldconfig +if [ "$1" = "0" ]; then + %glib_compile_schemas +fi %files -f %{name}.lang %defattr(644,root,root,755) -%doc AUTHORS ChangeLog NEWS README TODO +%doc AUTHORS MAINTAINERS NEWS README.md %attr(755,root,root) %{_sbindir}/gdm -%attr(755,root,root) %{_sbindir}/gdm-binary +%attr(755,root,root) %{_bindir}/gdm-config %attr(755,root,root) %{_bindir}/gdm-screenshot %attr(755,root,root) %{_bindir}/gdmflexiserver -%dir %{_libdir}/gdm -%dir %{_libdir}/gdm/simple-greeter -%dir %{_libdir}/gdm/simple-greeter/extensions -%attr(755,root,root) %{_libdir}/gdm/simple-greeter/extensions/libfingerprint.so -%attr(755,root,root) %{_libdir}/gdm/simple-greeter/extensions/libpassword.so -%attr(755,root,root) %{_libdir}/gdm/simple-greeter/extensions/libsmartcard.so -%attr(755,root,root) %{_libexecdir}/gdm-crash-logger -%attr(755,root,root) %{_libexecdir}/gdm-factory-slave %attr(755,root,root) %{_libexecdir}/gdm-host-chooser -%attr(755,root,root) %{_libexecdir}/gdm-product-slave +%attr(755,root,root) %{_libexecdir}/gdm-runtime-config %attr(755,root,root) %{_libexecdir}/gdm-session-worker %attr(755,root,root) %{_libexecdir}/gdm-simple-chooser -%attr(755,root,root) %{_libexecdir}/gdm-simple-greeter -%attr(755,root,root) %{_libexecdir}/gdm-simple-slave -%attr(755,root,root) %{_libexecdir}/gdm-xdmcp-chooser-slave -%attr(755,root,root) %{_libexecdir}/gdm-smartcard-worker +%attr(755,root,root) %{_libexecdir}/gdm-wayland-session +%attr(755,root,root) %{_libexecdir}/gdm-x-session +%attr(755,root,root) /%{_lib}/security/pam_gdm.so +/lib/udev/rules.d/61-gdm.rules %dir %{_sysconfdir}/gdm %dir %{_sysconfdir}/gdm/Init %attr(755,root,root) %config %{_sysconfdir}/gdm/Init/Default @@ -337,67 +334,46 @@ fi %attr(755,root,root) %config %{_sysconfdir}/gdm/Xsession %dir %{_sysconfdir}/gdm/PostLogin %config %{_sysconfdir}/gdm/PostLogin/Default.sample -%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/gdm/custom.conf -%{_sysconfdir}/gconf/schemas/gdm-simple-greeter.schemas -%config(noreplace) %verify(not md5 mtime size) /etc/dbus-1/system.d/* -%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/gdm* +%attr(640,root,xdm) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/gdm/custom.conf +%config(noreplace) %verify(not md5 mtime size) /etc/dbus-1/system.d/gdm.conf +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/gdm-* %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/security/blacklist.gdm -%{_sysconfdir}/dconf/db/gdm -%{_sysconfdir}/dconf/profile/gdm -%attr(1755,root,xdm) %dir /var/cache/gdm -%attr(1770,root,xdm) %dir /var/gdm +%{_datadir}/dconf/profile/gdm +%dir %{systemduserunitdir}/gnome-session@gnome-login.target.d +%{systemduserunitdir}/gnome-session@gnome-login.target.d/session.conf %attr(1770,root,xdm) %dir /var/lib/gdm -%dir /var/lib/gdm/.config -%attr(755,xdm,xdm) %dir /var/lib/gdm/.config/dconf -%attr(1750,root,xdm) %dir /var/lib/gdm/.gconf.mandatory -%attr(1640,root,xdm) /var/lib/gdm/.gconf.mandatory/*.xml -%attr(644,root,xdm) /var/lib/gdm/.gconf.path %attr(755,xdm,xdm) /var/lib/gdm/.local %attr(750,xdm,xdm) %dir /var/log/gdm %attr(711,root,xdm) %dir /var/run/gdm %attr(755,xdm,xdm) %dir /var/run/gdm/greeter %attr(750,xdm,xdm) /home/services/xdm -%{_pixmapsdir}/* +%{systemdtmpfilesdir}/%{name}.conf +%{_pixmapsdir}/gdm-pld-logo.png %{_datadir}/gdm -%{_datadir}/polkit-1/actions/gdm.policy -%{_datadir}/gnome-session/sessions/gdm-fallback.session -%{_datadir}/gnome-session/sessions/gdm-shell.session +%{_datadir}/gnome-session/sessions/gnome-login.session %{_datadir}/xsessions/custom.desktop %{_datadir}/xsessions/default.desktop -%{_iconsdir}/hicolor/*/apps/*.png -%{_datadir}/glib-2.0/schemas/org.gnome.login-screen.gschema.xml + +%files init +%defattr(644,root,root,755) +%attr(754,root,root) /etc/rc.d/init.d/gdm +%{systemdunitdir}/gdm.service %files libs %defattr(644,root,root,755) -%attr(755,root,root) %{_libdir}/libgdmgreeter.so.1.0.0 -%attr(755,root,root) %ghost %{_libdir}/libgdmgreeter.so.1 -%attr(755,root,root) %{_libdir}/libgdmsimplegreeter.so.1.0.0 -%attr(755,root,root) %ghost %{_libdir}/libgdmsimplegreeter.so.1 -%{_libdir}/girepository-1.0/GdmGreeter-1.0.typelib +%attr(755,root,root) %{_libdir}/libgdm.so.1.0.0 +%attr(755,root,root) %ghost %{_libdir}/libgdm.so.1 +%{_libdir}/girepository-1.0/Gdm-1.0.typelib +%{_datadir}/glib-2.0/schemas/org.gnome.login-screen.gschema.xml %files devel %defattr(644,root,root,755) -%dir %{_includedir}/gdm -%dir %{_includedir}/gdm/greeter -%{_includedir}/gdm/greeter/gdm-greeter-client.h -%{_includedir}/gdm/greeter/gdm-greeter-sessions.h -%dir %{_includedir}/gdm/simple-greeter -%{_includedir}/gdm/simple-greeter/gdm-login-extension.h -%{_pkgconfigdir}/gdmgreeter.pc -%{_pkgconfigdir}/gdmsimplegreeter.pc -%{_libdir}/libgdmgreeter.so -%{_libdir}/libgdmsimplegreeter.so -%{_datadir}/gir-1.0/GdmGreeter-1.0.gir +%attr(755,root,root) %{_libdir}/libgdm.so +%{_includedir}/gdm +%{_pkgconfigdir}/gdm.pc +%{_pkgconfigdir}/gdm-pam-extensions.pc +%{_datadir}/gir-1.0/Gdm-1.0.gir %files static %defattr(644,root,root,755) -%{_libdir}/libgdmgreeter.a -%{_libdir}/libgdmsimplegreeter.a - -%files init -%defattr(644,root,root,755) -%attr(754,root,root) /etc/rc.d/init.d/gdm - -%files upstart -%defattr(644,root,root,755) -%config(noreplace) %verify(not md5 mtime size) /etc/init/%{name}.conf +%{_libdir}/libgdm.a