]>
Commit | Line | Data |
---|---|---|
1 | # | |
2 | # TODO: | |
3 | # - s=/dev/null=/home/services/xdm= in %%trigger for graceful upgrade from xdm/kdm/gdm 2.2 | |
4 | # - check all /etc/pam.d/gdm-* to be pldized: | |
5 | # gdm-autologin[4] gdm-fingerprint[10] gdm-password[1] gdm-smartcard gdm-launch-environment[11] | |
6 | # | |
7 | # Conditional build: | |
8 | %bcond_without static_libs # static library | |
9 | ||
10 | %define glib2_ver 1:2.56.0 | |
11 | Summary: GNOME Display Manager | |
12 | Summary(es.UTF-8): Administrador de Entrada del GNOME | |
13 | Summary(ja.UTF-8): GNOME ディスプレイマネージャ | |
14 | Summary(pl.UTF-8): gdm - zarządca ekranów GNOME | |
15 | Summary(pt_BR.UTF-8): Gerenciador de Entrada do GNOME | |
16 | Summary(ru.UTF-8): Дисплейный менеджер GNOME | |
17 | Summary(uk.UTF-8): Дисплейний менеджер GNOME | |
18 | Name: gdm | |
19 | Version: 41.0 | |
20 | Release: 1 | |
21 | Epoch: 2 | |
22 | License: GPL v2+ | |
23 | Group: X11/Applications | |
24 | Source0: https://download.gnome.org/sources/gdm/41/%{name}-%{version}.tar.xz | |
25 | # Source0-md5: 55cb882364fbfe86eb6f9dc3b2b956ed | |
26 | Source1: %{name}.pamd | |
27 | Source2: %{name}.init | |
28 | Source3: %{name}-pld-logo.png | |
29 | Source4: %{name}-autologin.pamd | |
30 | Source5: %{name}-custom.desktop | |
31 | Source6: %{name}-default.desktop | |
32 | Source9: %{name}.tmpfiles | |
33 | Source10: %{name}-fingerprint.pamd | |
34 | Source11: %{name}-launch-environment.pamd | |
35 | Patch0: %{name}-xdmcp.patch | |
36 | Patch1: %{name}-xsession.patch | |
37 | Patch2: %{name}-defaults.patch | |
38 | Patch3: %{name}-both-libraries.patch | |
39 | URL: https://wiki.gnome.org/Projects/GDM | |
40 | BuildRequires: accountsservice-devel >= 0.6.35 | |
41 | BuildRequires: audit-libs-devel | |
42 | BuildRequires: check-devel >= 0.9.4 | |
43 | BuildRequires: dconf | |
44 | BuildRequires: gettext-tools >= 0.19.8 | |
45 | BuildRequires: glib2-devel >= %{glib2_ver} | |
46 | BuildRequires: gobject-introspection-devel >= 0.9.12 | |
47 | BuildRequires: gtk+3-devel >= 3.0.0 | |
48 | BuildRequires: iso-codes | |
49 | BuildRequires: keyutils-devel >= 1.6 | |
50 | BuildRequires: libcanberra-gtk3-devel >= 0.4 | |
51 | BuildRequires: libselinux-devel | |
52 | BuildRequires: libstdc++-devel | |
53 | BuildRequires: libwrap-devel | |
54 | BuildRequires: libxcb-devel | |
55 | BuildRequires: meson >= 0.50 | |
56 | BuildRequires: ninja >= 1.5 | |
57 | BuildRequires: pam-devel | |
58 | BuildRequires: pkgconfig | |
59 | BuildRequires: plymouth-devel | |
60 | BuildRequires: rpmbuild(find_lang) >= 1.23 | |
61 | BuildRequires: rpmbuild(macros) >= 1.736 | |
62 | BuildRequires: systemd-devel >= 1:209 | |
63 | BuildRequires: tar >= 1:1.22 | |
64 | BuildRequires: xorg-lib-libX11-devel | |
65 | BuildRequires: xorg-lib-libXau-devel | |
66 | BuildRequires: xorg-lib-libXdmcp-devel | |
67 | BuildRequires: xorg-lib-libXext-devel | |
68 | BuildRequires: xorg-lib-libXft-devel | |
69 | BuildRequires: xorg-lib-libXi-devel | |
70 | BuildRequires: xorg-lib-libXinerama-devel | |
71 | # for "XServer disables tcp access by default" detection | |
72 | BuildRequires: xorg-xserver-server-devel | |
73 | BuildRequires: xz | |
74 | BuildRequires: yelp-tools | |
75 | Requires(post,postun): glib2 >= %{glib2_ver} | |
76 | Requires(post,postun): gtk-update-icon-cache | |
77 | Requires(postun): /usr/sbin/groupdel | |
78 | Requires(postun): /usr/sbin/userdel | |
79 | Requires(pre): /bin/id | |
80 | Requires(pre): /usr/sbin/groupadd | |
81 | Requires(pre): /usr/sbin/useradd | |
82 | Requires(posttrans): dconf | |
83 | Requires: %{name}-libs = %{epoch}:%{version}-%{release} | |
84 | Requires: /usr/bin/X | |
85 | Requires: accountsservice >= 0.6.35 | |
86 | Requires: dbus-x11 | |
87 | Requires: gdm-wm >= 3.2.1 | |
88 | Requires: glib2 >= %{glib2_ver} | |
89 | Requires: gnome-session >= 3.26.0 | |
90 | Requires: gnome-settings-daemon >= 3.26.0 | |
91 | Requires: hicolor-icon-theme | |
92 | Requires: iso-codes | |
93 | Requires: libcanberra-gtk3 >= 0.4 | |
94 | Requires: pam >= 0.99.7.1 | |
95 | Requires: polkit-gnome >= 0.93 | |
96 | Requires: which | |
97 | Requires: xinitrc-ng >= 1.0 | |
98 | Requires: xorg-app-sessreg | |
99 | Requires: xorg-app-xmodmap | |
100 | Suggests: ConsoleKit-x11 >= 0.4.1 | |
101 | Suggests: pam-pam_gnome_keyring | |
102 | Suggests: xorg-xserver-Xephyr | |
103 | Suggests: zenity | |
104 | Provides: XDM | |
105 | Provides: group(xdm) | |
106 | Provides: user(xdm) | |
107 | Obsoletes: gdm-Xnest < 2:2.28 | |
108 | Obsoletes: gdm-systemd < 2:3.2.1.1-10 | |
109 | Obsoletes: gdm-upstart < 2:3.20 | |
110 | Obsoletes: gdm-user-switch-applet < 2:3.0.0-2 | |
111 | Obsoletes: gnome-applet-fast-user-switch < 2.21 | |
112 | Conflicts: gdkxft | |
113 | Conflicts: systemd < 186 | |
114 | BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) | |
115 | ||
116 | %description | |
117 | Gdm (the GNOME Display Manager) is a highly configurable | |
118 | reimplementation of xdm, the X Display Manager. Gdm allows you to log | |
119 | into your system with the X Window System running and supports running | |
120 | several different X sessions on your local machine at the same time. | |
121 | ||
122 | %description -l es.UTF-8 | |
123 | Administrador de Entrada del GNOME. | |
124 | ||
125 | %description -l ja.UTF-8 | |
126 | Gdm (the GNOME Display Manager) は、高度に設定可能な xdm X Display Manager | |
127 | の再実装版です。 Gdm を使うと、 X Window System が動いているあなたの | |
128 | システムにいろいろなセッションを選択してログインすることができます。 | |
129 | ||
130 | このバージョンの Gdm では、各種言語や、XIM を選択することも可能です。 | |
131 | ||
132 | %description -l pl.UTF-8 | |
133 | Gdm jest wysokokonfigurowalną reimplementacją xdma. Gdm pozwala | |
134 | logować się do systemu z poziomu X11 i wspiera jednoczesną pracę kilku | |
135 | różnych sesji X na lokalnej maszynie. | |
136 | ||
137 | %description -l pt_BR.UTF-8 | |
138 | Gerenciador de Entrada do GNOME. | |
139 | ||
140 | %description -l ru.UTF-8 | |
141 | GDM (GNOME Display Manager) - это реимплементация xdm (X Display | |
142 | Manager). GDM позволяет вам входить в систему, на которой запущено X | |
143 | Window и поддерживает работу нескольуих разных X сеансов одновременно. | |
144 | ||
145 | %description -l uk.UTF-8 | |
146 | GDM (GNOME Display Manager) - це реімплементація xdm (X Display | |
147 | Manager). GDM дозволяє вам входити в систему, на якій запущено X | |
148 | Window та підтримує роботу кількох різних X сеансів одночасно. | |
149 | ||
150 | %package init | |
151 | Summary: Init script for GDM | |
152 | Summary(pl.UTF-8): Skrypt init dla GDM-a | |
153 | Group: X11/Applications | |
154 | Requires(post,preun): /sbin/chkconfig | |
155 | Requires(post,preun,postun): systemd-units >= 38 | |
156 | Requires: %{name} = %{epoch}:%{version}-%{release} | |
157 | Requires: open | |
158 | Requires: rc-scripts >= 0.4.3.0 | |
159 | Requires: systemd-units >= 38 | |
160 | ||
161 | %description init | |
162 | Init script for GDM. | |
163 | ||
164 | %description init -l pl.UTF-8 | |
165 | Skrypt init dla GDM-a. | |
166 | ||
167 | %package libs | |
168 | Summary: GDM libraries | |
169 | Summary(pl.UTF-8): Biblioteki GDM | |
170 | Group: Libraries | |
171 | ||
172 | %description libs | |
173 | GDM libraries. | |
174 | ||
175 | %description libs -l pl.UTF-8 | |
176 | Biblioteki GDM. | |
177 | ||
178 | %package devel | |
179 | Summary: Header files for GDM | |
180 | Summary(pl.UTF-8): Pliki nagłówkowe i dokumentacja | |
181 | Group: X11/Development/Libraries | |
182 | Requires: %{name}-libs = %{epoch}:%{version}-%{release} | |
183 | ||
184 | %description devel | |
185 | This package contains the files necessary to develop applications | |
186 | using GDM's libraries. | |
187 | ||
188 | %description devel -l pl.UTF-8 | |
189 | Pakiet zawiera pliki potrzebne do rozwoju aplikacji używających | |
190 | bibliotek programu GDM. | |
191 | ||
192 | %package static | |
193 | Summary: Static libraries for GDM | |
194 | Summary(pl.UTF-8): Biblioteki statyczne dla GDM | |
195 | Group: X11/Development/Libraries | |
196 | Requires: %{name}-devel = %{epoch}:%{version}-%{release} | |
197 | ||
198 | %description static | |
199 | This package contains static libraries for GDM. | |
200 | ||
201 | %description static -l pl.UTF-8 | |
202 | Pakiet zawiera statyczne biblioteki GDM. | |
203 | ||
204 | %prep | |
205 | %setup -q | |
206 | %patch0 -p1 | |
207 | %patch1 -p1 | |
208 | %patch2 -p1 | |
209 | %patch3 -p1 | |
210 | ||
211 | %build | |
212 | %meson build \ | |
213 | %{!?with_static_libs:--default-library=shared} \ | |
214 | -Dgdm-xsession=true \ | |
215 | -Dgroup=xdm \ | |
216 | -Dinitial-vt=9 \ | |
217 | -Dipv6=true \ | |
218 | -Dpam-mod-dir=/%{_lib}/security \ | |
219 | -Dpam-prefix=/etc \ | |
220 | -Dtcp-wrappers=true \ | |
221 | -Dudev-dir=/lib/udev/rules.d \ | |
222 | -Duser=xdm | |
223 | ||
224 | %ninja_build -C build | |
225 | ||
226 | %install | |
227 | rm -rf $RPM_BUILD_ROOT | |
228 | install -d $RPM_BUILD_ROOT/etc/{rc.d/init.d,pam.d,security} \ | |
229 | $RPM_BUILD_ROOT{/home/services/xdm,/var/lib/gdm/.local,/var/log/gdm,/var/run/gdm/greeter} \ | |
230 | $RPM_BUILD_ROOT{%{_pixmapsdir},%{_datadir}/xsessions,%{systemdunitdir}} \ | |
231 | $RPM_BUILD_ROOT%{systemdtmpfilesdir} | |
232 | ||
233 | %ninja_install -C build | |
234 | ||
235 | cp -p %{SOURCE1} $RPM_BUILD_ROOT/etc/pam.d/gdm-password | |
236 | cp -p %{SOURCE10} $RPM_BUILD_ROOT/etc/pam.d/gdm-fingerprint | |
237 | cp -p %{SOURCE4} $RPM_BUILD_ROOT/etc/pam.d/gdm-autologin | |
238 | cp -p %{SOURCE11} $RPM_BUILD_ROOT/etc/pam.d/gdm-launch-environment | |
239 | install -p %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/gdm | |
240 | cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_pixmapsdir} | |
241 | cp -p %{SOURCE9} $RPM_BUILD_ROOT%{systemdtmpfilesdir}/%{name}.conf | |
242 | ||
243 | # replace file with mask (to allow choosing via prefdm.service) | |
244 | ln -sf /dev/null $RPM_BUILD_ROOT%{systemdunitdir}/gdm.service | |
245 | ||
246 | touch $RPM_BUILD_ROOT/etc/security/blacklist.gdm | |
247 | ||
248 | %find_lang %{name} --with-gnome | |
249 | ||
250 | # allow executing ~/.Xclients and ~/.xsession | |
251 | cp -p %{SOURCE5} $RPM_BUILD_ROOT%{_datadir}/xsessions/custom.desktop | |
252 | cp -p %{SOURCE6} $RPM_BUILD_ROOT%{_datadir}/xsessions/default.desktop | |
253 | ||
254 | %clean | |
255 | rm -rf $RPM_BUILD_ROOT | |
256 | ||
257 | %posttrans | |
258 | umask 022 | |
259 | /usr/bin/dconf update | |
260 | ||
261 | %pre | |
262 | %groupadd -g 55 -r -f xdm | |
263 | %useradd -u 55 -r -d /home/services/xdm -s /bin/false -c "X Display Manager" -g xdm xdm | |
264 | ||
265 | %post | |
266 | %update_icon_cache hicolor | |
267 | ||
268 | %postun | |
269 | %update_icon_cache hicolor | |
270 | if [ "$1" = "0" ]; then | |
271 | %userremove xdm | |
272 | %groupremove xdm | |
273 | fi | |
274 | ||
275 | %triggerpostun -- %{name} < 2:3.2.1.1-10 | |
276 | if [ -f /etc/X11/gdm/gdm.conf-custom.rpmsave ]; then | |
277 | mv -f /etc/X11/gdm/gdm.conf-custom.rpmsave /etc/gdm/custom.conf | |
278 | fi | |
279 | ||
280 | %post init | |
281 | /sbin/chkconfig --add gdm | |
282 | # -n skips restarting as it would otherise terminate all sessions opened from gdm! | |
283 | %service -n gdm restart | |
284 | %systemd_reload | |
285 | ||
286 | %postun init | |
287 | %systemd_reload | |
288 | ||
289 | %preun init | |
290 | if [ "$1" = "0" ]; then | |
291 | %service gdm stop | |
292 | /sbin/chkconfig --del gdm | |
293 | fi | |
294 | ||
295 | %post libs | |
296 | /sbin/ldconfig | |
297 | %glib_compile_schemas | |
298 | ||
299 | %postun libs | |
300 | /sbin/ldconfig | |
301 | if [ "$1" = "0" ]; then | |
302 | %glib_compile_schemas | |
303 | fi | |
304 | ||
305 | %files -f %{name}.lang | |
306 | %defattr(644,root,root,755) | |
307 | %doc AUTHORS MAINTAINERS NEWS README.md | |
308 | %attr(755,root,root) %{_sbindir}/gdm | |
309 | %attr(755,root,root) %{_bindir}/gdm-screenshot | |
310 | %attr(755,root,root) %{_bindir}/gdmflexiserver | |
311 | %attr(755,root,root) %{_libexecdir}/gdm-host-chooser | |
312 | %attr(755,root,root) %{_libexecdir}/gdm-runtime-config | |
313 | %attr(755,root,root) %{_libexecdir}/gdm-session-worker | |
314 | %attr(755,root,root) %{_libexecdir}/gdm-simple-chooser | |
315 | %attr(755,root,root) %{_libexecdir}/gdm-wayland-session | |
316 | %attr(755,root,root) %{_libexecdir}/gdm-x-session | |
317 | %attr(755,root,root) /%{_lib}/security/pam_gdm.so | |
318 | /lib/udev/rules.d/61-gdm.rules | |
319 | %dir %{_sysconfdir}/gdm | |
320 | %dir %{_sysconfdir}/gdm/Init | |
321 | %attr(755,root,root) %config %{_sysconfdir}/gdm/Init/Default | |
322 | %attr(755,root,root) %config %{_sysconfdir}/gdm/PreSession | |
323 | %attr(755,root,root) %config %{_sysconfdir}/gdm/PostSession | |
324 | %attr(755,root,root) %config %{_sysconfdir}/gdm/Xsession | |
325 | %dir %{_sysconfdir}/gdm/PostLogin | |
326 | %config %{_sysconfdir}/gdm/PostLogin/Default.sample | |
327 | %attr(640,root,xdm) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/gdm/custom.conf | |
328 | %config(noreplace) %verify(not md5 mtime size) /etc/dbus-1/system.d/gdm.conf | |
329 | %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/gdm-* | |
330 | %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/security/blacklist.gdm | |
331 | %{_datadir}/dconf/profile/gdm | |
332 | %dir %{systemduserunitdir}/gnome-session@gnome-login.target.d | |
333 | %{systemduserunitdir}/gnome-session@gnome-login.target.d/session.conf | |
334 | %attr(1770,root,xdm) %dir /var/lib/gdm | |
335 | %attr(755,xdm,xdm) /var/lib/gdm/.local | |
336 | %attr(750,xdm,xdm) %dir /var/log/gdm | |
337 | %attr(711,root,xdm) %dir /var/run/gdm | |
338 | %attr(755,xdm,xdm) %dir /var/run/gdm/greeter | |
339 | %attr(750,xdm,xdm) /home/services/xdm | |
340 | %{systemdtmpfilesdir}/%{name}.conf | |
341 | %{_pixmapsdir}/gdm-pld-logo.png | |
342 | %{_datadir}/gdm | |
343 | %{_datadir}/gnome-session/sessions/gnome-login.session | |
344 | %{_datadir}/xsessions/custom.desktop | |
345 | %{_datadir}/xsessions/default.desktop | |
346 | ||
347 | %files init | |
348 | %defattr(644,root,root,755) | |
349 | %attr(754,root,root) /etc/rc.d/init.d/gdm | |
350 | %{systemdunitdir}/gdm.service | |
351 | ||
352 | %files libs | |
353 | %defattr(644,root,root,755) | |
354 | %attr(755,root,root) %{_libdir}/libgdm.so.1.0.0 | |
355 | %attr(755,root,root) %ghost %{_libdir}/libgdm.so.1 | |
356 | %{_libdir}/girepository-1.0/Gdm-1.0.typelib | |
357 | %{_datadir}/glib-2.0/schemas/org.gnome.login-screen.gschema.xml | |
358 | ||
359 | %files devel | |
360 | %defattr(644,root,root,755) | |
361 | %attr(755,root,root) %{_libdir}/libgdm.so | |
362 | %dir %{_includedir}/gdm | |
363 | %{_includedir}/gdm/gdm-client-glue.h | |
364 | %{_includedir}/gdm/gdm-client.h | |
365 | %{_includedir}/gdm/gdm-pam-extensions.h | |
366 | %{_includedir}/gdm/gdm-sessions.h | |
367 | %{_includedir}/gdm/gdm-user-switching.h | |
368 | %{_pkgconfigdir}/gdm.pc | |
369 | %{_pkgconfigdir}/gdm-pam-extensions.pc | |
370 | %{_datadir}/gir-1.0/Gdm-1.0.gir | |
371 | ||
372 | %files static | |
373 | %defattr(644,root,root,755) | |
374 | %{_libdir}/libgdm.a |