Merge lp:~jamesodhunt/ubuntu/natty/gdm/single-user-mode-fix into lp:ubuntu/natty/gdm
- Natty (11.04)
- single-user-mode-fix
- Merge into natty
Proposed by
James Hunt
Status: | Merged |
---|---|
Merge reported by: | Sebastien Bacher |
Merged at revision: | not available |
Proposed branch: | lp:~jamesodhunt/ubuntu/natty/gdm/single-user-mode-fix |
Merge into: | lp:ubuntu/natty/gdm |
Diff against target: |
14657 lines (+14358/-0) (has conflicts) 59 files modified
.bzr-builddeb/default.conf (+2/-0) debian/%gconf-tree.xml (+21/-0) debian/60xdg_path-on-session (+22/-0) debian/changelog (+1492/-0) debian/compat (+1/-0) debian/control (+67/-0) debian/copyright (+54/-0) debian/gdm-autologin.pam (+11/-0) debian/gdm.8.pod (+47/-0) debian/gdm.config (+41/-0) debian/gdm.init (+119/-0) debian/gdm.install (+1/-0) debian/gdm.pam (+14/-0) debian/gdm.postinst (+62/-0) debian/gdm.postrm (+27/-0) debian/gdm.preinst (+49/-0) debian/gdm.prerm (+64/-0) debian/gdm.templates (+123/-0) debian/gdm.upstart (+49/-0) debian/onboard.desktop (+11/-0) debian/patches/02_x_server_location.patch (+21/-0) debian/patches/04_fix_external_program_directories.patch (+54/-0) debian/patches/05_initial_server_on_vt7.patch (+38/-0) debian/patches/06_run_xsession.d.patch (+28/-0) debian/patches/08_use_polkit_for_settings.patch (+337/-0) debian/patches/09_gdmserver_gconf_settings.patch (+469/-0) debian/patches/09_gdmsetup.patch (+4549/-0) debian/patches/10_xsplash.patch (+51/-0) debian/patches/11_crash_for_apport.patch (+67/-0) debian/patches/14_guest_session.patch (+346/-0) debian/patches/15_default_session.patch (+387/-0) debian/patches/16_gdmserver_user_manager.patch (+2934/-0) debian/patches/17_use_timed_login_after_autologin.patch (+17/-0) debian/patches/19_no_greeter_for_autologin.patch (+26/-0) debian/patches/20_upstart.patch (+23/-0) debian/patches/24_respect_system_minuid.patch (+343/-0) debian/patches/25_update_gconf_directories.patch (+13/-0) debian/patches/26_no_debug.patch (+22/-0) debian/patches/27_save_root_window.patch (+131/-0) debian/patches/28_plymouth_transition.patch (+270/-0) debian/patches/29_switch_user.patch (+638/-0) debian/patches/30_don_t_save_failsafe_session.patch (+341/-0) debian/patches/32-hide-mouse-cursor.patch (+31/-0) debian/patches/33-multi-keyboard-layouts.patch (+89/-0) debian/patches/34_disable_a11y_default.patch (+21/-0) debian/patches/35_langlist_and_lsmess_dmrc_fields.patch (+234/-0) debian/patches/36_language_environment_settings.patch (+149/-0) debian/patches/37_disable_resize_grip.patch (+13/-0) debian/patches/38_user_chooser_focus.patch (+47/-0) debian/patches/39_grep_path.patch (+13/-0) debian/patches/40_one_lang_option_per_translation.patch (+181/-0) debian/patches/41_passwordless_login_crash.patch (+72/-0) debian/patches/90_git_name_escaping.patch (+35/-0) debian/patches/series (+32/-0) debian/rules (+43/-0) debian/source/format (+1/-0) debian/watch (+2/-0) debian/xsession.desktop (+4/-0) debian/xterm.desktop (+9/-0) Conflict adding file debian. Moved existing file to debian.moved. |
To merge this branch: | bzr merge lp:~jamesodhunt/ubuntu/natty/gdm/single-user-mode-fix |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Ubuntu branches | Pending | ||
Review via email: mp+52860@code.launchpad.net |
Commit message
Description of the change
The "if this doesn't work, just shoot me now" push:
* debian/gdm.upstart: gdm will now restart as expected if a user
runs "telinit 2" from single-user mode (LP: #436936).
To post a comment you must log in.
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === added directory '.bzr-builddeb' |
2 | === added file '.bzr-builddeb/default.conf' |
3 | --- .bzr-builddeb/default.conf 1970-01-01 00:00:00 +0000 |
4 | +++ .bzr-builddeb/default.conf 2011-03-10 14:39:08 +0000 |
5 | @@ -0,0 +1,2 @@ |
6 | +[BUILDDEB] |
7 | +merge = True |
8 | |
9 | === added directory 'debian' |
10 | === renamed directory 'debian' => 'debian.moved' |
11 | === added file 'debian/%gconf-tree.xml' |
12 | --- debian/%gconf-tree.xml 1970-01-01 00:00:00 +0000 |
13 | +++ debian/%gconf-tree.xml 2011-03-10 14:39:08 +0000 |
14 | @@ -0,0 +1,21 @@ |
15 | +<?xml version="1.0"?> |
16 | +<gconf> |
17 | + <dir name="desktop"> |
18 | + <dir name="gnome"> |
19 | + <dir name="interface"> |
20 | + <entry name="icon_theme" mtime="1255598514" type="string"> |
21 | + <stringvalue>LoginIcons</stringvalue> |
22 | + </entry> |
23 | + </dir> |
24 | + </dir> |
25 | + </dir> |
26 | + <dir name="apps"> |
27 | + <dir name="gnome-power-manager"> |
28 | + <dir name="ui"> |
29 | + <entry name="icon_policy" mtime="1255598662" type="string"> |
30 | + <stringvalue>never</stringvalue> |
31 | + </entry> |
32 | + </dir> |
33 | + </dir> |
34 | + </dir> |
35 | +</gconf> |
36 | |
37 | === added file 'debian/60xdg_path-on-session' |
38 | --- debian/60xdg_path-on-session 1970-01-01 00:00:00 +0000 |
39 | +++ debian/60xdg_path-on-session 2011-03-10 14:39:08 +0000 |
40 | @@ -0,0 +1,22 @@ |
41 | +# This file is sourced by Xsession(5), not executed. |
42 | +# Add additionnal xdg paths depending on selected desktop session |
43 | + |
44 | +DEFAULT_XDG_CONFIG_DIRS='/etc/xdg' |
45 | +DEFAULT_XDG_DATA_DIRS='/usr/local/share/:/usr/share/' |
46 | +if [ -n "$GDMSESSION" ]; then |
47 | + # readd default if was empty |
48 | + if [ -z "$XDG_CONFIG_DIRS" ]; then |
49 | + XDG_CONFIG_DIRS="$DEFAULT_XDG_CONFIG_DIRS" |
50 | + fi |
51 | + XDG_CONFIG_DIRS="$DEFAULT_XDG_CONFIG_DIRS"/xdg-"$GDMSESSION":"$XDG_CONFIG_DIRS" |
52 | + export XDG_CONFIG_DIRS |
53 | + # gnome is already added if gnome-session installed |
54 | + if [ "$GDMSESSION" != "gnome" ]; then |
55 | + if [ -z "$XDG_DATA_DIRS" ]; then |
56 | + XDG_DATA_DIRS="$DEFAULT_XDG_DATA_DIRS" |
57 | + fi |
58 | + XDG_DATA_DIRS=/usr/share/"$GDMSESSION":"$XDG_DATA_DIRS" |
59 | + export XDG_DATA_DIRS |
60 | + fi |
61 | +fi |
62 | + |
63 | |
64 | === added file 'debian/changelog' |
65 | --- debian/changelog 1970-01-01 00:00:00 +0000 |
66 | +++ debian/changelog 2011-03-10 14:39:08 +0000 |
67 | @@ -0,0 +1,1492 @@ |
68 | +gdm (2.32.0-0ubuntu10) UNRELEASED; urgency=low |
69 | + |
70 | + [ Martin Pitt ] |
71 | + * Add 41_passwordless_login_crash.patch: Fix crash when hitting the login |
72 | + button while doing passwordless login. (LP: #724205) |
73 | + |
74 | + [ James Hunt ] |
75 | + * debian/gdm.upstart: gdm will now restart as expected if a user |
76 | + runs "telinit 2" from single-user mode (LP: #436936). |
77 | + |
78 | + -- James Hunt <james.hunt@ubuntu.com> Tue, 08 Mar 2011 17:58:30 +0000 |
79 | + |
80 | +gdm (2.32.0-0ubuntu9) natty; urgency=low |
81 | + |
82 | + * debian/patches/36_language_environment_settings.patch: |
83 | + - Set LC_MESSAGES explicitly only if the value does not equal |
84 | + $LANG, to prevent that side effects when connecting to other |
85 | + computers via ssh appear unnecessarily. |
86 | + |
87 | + -- Gunnar Hjalmarsson <ubuntu@gunnar.cc> Wed, 23 Feb 2011 20:53:50 +0100 |
88 | + |
89 | +gdm (2.32.0-0ubuntu8) natty; urgency=low |
90 | + |
91 | + [ Gunnar Hjalmarsson ] |
92 | + * debian/patches/36_language_environment_settings.patch: |
93 | + - Use locale names with '.UTF-8' instead of '.utf8' when setting |
94 | + the LC_MESSAGES environment variable (LP: #666565). |
95 | + * debian/patches/40_one_lang_option_per_translation.patch: |
96 | + - Modification of /usr/share/gdm/language-options so an absent |
97 | + translation directory won't cause it to exit. |
98 | + |
99 | + -- Evan Dandrea <ev@ubuntu.com> Mon, 14 Feb 2011 15:53:38 +0000 |
100 | + |
101 | +gdm (2.32.0-0ubuntu7) natty; urgency=low |
102 | + |
103 | + [ Gunnar Hjalmarsson ] |
104 | + * debian/patches/40_one_lang_option_per_translation.patch: |
105 | + - The option list in the language chooser changed so the items |
106 | + represent available translations instead of locales |
107 | + (LP: #693337). |
108 | + - setlocale() validation removed (not applicable). |
109 | + - Show locale variants in the list of language options |
110 | + (LP: #408474). |
111 | + * debian/patches/36_language_environment_settings.patch: |
112 | + - Skip the encoding part in the dmrc "Language" value. It's not |
113 | + a locale name, so let's not give the impression it is. |
114 | + - Take main country code into account when generating |
115 | + a locale name for LC_MESSAGES. |
116 | + |
117 | + [ Kees Cook ] |
118 | + * Restore 24_respect_system_minuid.patch: upstream does not handle |
119 | + reading login.defs yet (LP: #708911). |
120 | + |
121 | + -- Gunnar Hjalmarsson <ubuntu@gunnar.cc> Thu, 10 Feb 2011 10:07:31 +0100 |
122 | + |
123 | +gdm (2.32.0-0ubuntu6) natty; urgency=low |
124 | + |
125 | + * Backported some changes from Debian |
126 | + * debian/patches/39_grep_path.patch: |
127 | + - Don’t hardcode grep to a wrong location. |
128 | + * debian/gdm.postrm: |
129 | + - correctly deal with uninstalls while gdm is still running (lp: #613150) |
130 | + |
131 | + -- Sebastien Bacher <seb128@ubuntu.com> Tue, 25 Jan 2011 16:53:46 +0100 |
132 | + |
133 | +gdm (2.32.0-0ubuntu5) natty; urgency=low |
134 | + |
135 | + [ Martin Pitt ] |
136 | + * Add 38_user_chooser_focus.patch: Correctly give focus to the user chooser |
137 | + on startup. Patch by Vincent Untz, merci! (LP: #687440) |
138 | + |
139 | + [ James Hunt ] |
140 | + * debian/gdm.upstart: Remove starting-dm event (which was missed from a |
141 | + previous commit) and add login-session-start and desktop-session-start |
142 | + events (LP: #706842). |
143 | + |
144 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 24 Jan 2011 17:14:25 +0100 |
145 | + |
146 | +gdm (2.32.0-0ubuntu4) natty; urgency=low |
147 | + |
148 | + * debian/control.in: |
149 | + - updated the gtk requirement to the version having the new api required |
150 | + |
151 | + [ Gunnar Hjalmarsson ] |
152 | + * debian/patches/36_language_environment_settings.patch: |
153 | + - grep() calls replaced for efficiency purposes |
154 | + - ability to deal with @variants in locale names |
155 | + - attempt to set the language fields in /var/cache/gdm/$USER/dmrc at |
156 | + first login after upgrade from GDM version pre 2.32.0-0ubuntu2 |
157 | + |
158 | + [ Cody Russell ] |
159 | + * debian/patches/37_disable_resize_grip.patch: |
160 | + - disable the grips on the gdm screen (lp: #704018) |
161 | + |
162 | + -- Sebastien Bacher <seb128@ubuntu.com> Wed, 19 Jan 2011 11:33:33 +0100 |
163 | + |
164 | +gdm (2.32.0-0ubuntu2) natty; urgency=low |
165 | + |
166 | + [ Martin Pitt ] |
167 | + * 06_run_xsession.d.patch: Don't trip over directories and other non-files |
168 | + in Xsession.d/. (LP: #654578) |
169 | + |
170 | + [ Gunnar Hjalmarsson ] |
171 | + * debian/patches/35_langlist_and_lsmess_dmrc_fields.patch: |
172 | + - Addition of the fields "Langlist" and "LCMess", which make ~/.dmrc |
173 | + and /var/cache/gdm/$USER/dmrc able to store the user language |
174 | + environment (LP: #553162). |
175 | + * debian/patches/36_language_environment_settings.patch: |
176 | + - Changes to Xsession's way to use GDM_LANG. It now sets LANGUAGE |
177 | + and LC_MESSAGES, which makes it possible to keep the user language |
178 | + for message translation apart from other locale settings |
179 | + (LP: #553162). |
180 | + |
181 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 14 Dec 2010 22:24:40 +0100 |
182 | + |
183 | +gdm (2.32.0-0ubuntu1) natty; urgency=low |
184 | + |
185 | + * New upstream release. |
186 | + * Drop 01_upower.patch, upstream now. |
187 | + * Drop 03_hide_system_users.patch, fixed upstream in a different way. |
188 | + * Drop 07_correct_distribution_version.patch, upstream now. |
189 | + * Drop 12_fusa_name_change.patch, obsolete now as we don't install the gdm |
190 | + one any more. |
191 | + * Drop 18_locale_env_vars.patch, upstream now. |
192 | + * Drop 24_system_uid.patch; upstream handles this more dynamically now, and |
193 | + we really want to show users with an ID of < 1000 (but >= 500). |
194 | + * Drop 90_git_name_escaping.patch, upstream now. |
195 | + * Update all other patches to cleanly apply to new upstream version. |
196 | + * 08_use_polkit_for_settings.patch: Add missing library linking to |
197 | + libgdmcommon, to fix building with --as-needed. |
198 | + |
199 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 07 Dec 2010 15:55:34 +0100 |
200 | + |
201 | +gdm (2.30.5-0ubuntu5) natty; urgency=low |
202 | + |
203 | + * debian/control: |
204 | + - don't b-d on libglade2-dev, it uses gtkbuilder |
205 | + * debian/rules: |
206 | + - don't install the user switching applet, upstream is going to stop |
207 | + shipping it in gdm for GNOME3 and Ubuntu already use indicator-session. |
208 | + |
209 | + -- Sebastien Bacher <seb128@ubuntu.com> Tue, 09 Nov 2010 13:34:57 +0100 |
210 | + |
211 | +gdm (2.30.5-0ubuntu4) maverick; urgency=low |
212 | + |
213 | + * debian/gdm.upstart: Do not already fire on a framebuffer device. When a |
214 | + real DRM driver gets loaded later on, X will be started too early to catch |
215 | + it. This should go a long way towards fixing LP: #615549 |
216 | + |
217 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 13 Sep 2010 15:23:24 +0200 |
218 | + |
219 | +gdm (2.30.5-0ubuntu3) maverick; urgency=low |
220 | + |
221 | + * debian/patches/90_git_name_escaping.patch: |
222 | + - git change to correctly escape usernames (lp: #633050) |
223 | + |
224 | + -- Sebastien Bacher <seb128@ubuntu.com> Wed, 08 Sep 2010 17:37:51 +0200 |
225 | + |
226 | +gdm (2.30.5-0ubuntu2) maverick; urgency=low |
227 | + |
228 | + * debian/patches/09_gdmsetup.patch: |
229 | + - don't list the policykit file in the configure, it's not required but |
230 | + breaks the escaping and the strings listed in the authentification dialog |
231 | + (lp: #617044) |
232 | + |
233 | + -- Sebastien Bacher <seb128@ubuntu.com> Tue, 17 Aug 2010 21:47:44 +0200 |
234 | + |
235 | +gdm (2.30.5-0ubuntu1) maverick; urgency=low |
236 | + |
237 | + * New upstream version: |
238 | + - Retry getpw* calls if they return EINTR |
239 | + - #619588, don't show markup tags in UI (lp: #603097) |
240 | + - #626564, fix intermittent failure to load user list (lp: #614810) |
241 | + |
242 | + -- Sebastien Bacher <seb128@ubuntu.com> Wed, 11 Aug 2010 21:50:35 +0200 |
243 | + |
244 | +gdm (2.30.4-0ubuntu1) maverick; urgency=low |
245 | + |
246 | + [ Sebastien Bacher ] |
247 | + * New upstream versions: |
248 | + - Translation fixes |
249 | + - Many performance improvements for the greeter |
250 | + - Various robustness fixes |
251 | + - Fix XDMCP |
252 | + - Fix switch user menu item detection |
253 | + - Remove obsolete restart and stop scripts |
254 | + - Fixed #618834, GdmProductSlave does not handle OpenSession |
255 | + - Fixed #342397, gdm doesn't respond to XDMCP querys if local X server fails |
256 | + to start |
257 | + - Fixed #544730, XDMCP broadcast discovery not working on BSD w/ ipv6 |
258 | + enabled (lp: #393835) |
259 | + - Fixed #589536, gdm-simple-slave crashed with signal 5 in |
260 | + g_return_if_fail_warning (lp: #403441) |
261 | + - Fixed #592183, GDM entry field loses focus after dialogs are presented |
262 | + - Fixed #594857, Warning when type 'gdm --version' in terminal in new GDM |
263 | + - Fixed #599683, xdmcp Queries from Older software |
264 | + - Fixed #610179, GDM patch for accounts dialogue |
265 | + - Fixed #616722, Xdmcp linking problem |
266 | + - Fixed #616730, user-switch-applet build failure: missing -I for dbus-glib |
267 | + - Fixed #617665, Panel doesn't shrink after disabling "high contrast" |
268 | + - Fixed #619588, User's Real names should be escaped against XML markup |
269 | + (lp: #499690, #585128) |
270 | + - Fixed #620430, memory leaks in gdm |
271 | + - Fixed #620893, bottom panel is overlapping at smaller sizes |
272 | + - Fixed #620908, gdm user switch applet goes nuts while |
273 | + changing password file |
274 | + - Fixed #621045, Improve startup performance of the greeter |
275 | + - Fixed #621131, User switch applet performance issues |
276 | + - Fixed #621661, Make slaves more robust against crashes |
277 | + - Fixed #622069, greeter doesn't work when there's no local user |
278 | + - Fixed #622337, shows shutdown buttons when connecting over xdmcp |
279 | + - Fixed #622430, keyboard layout handling wonky |
280 | + - Fixed #622431, cancel button not shown during timed login |
281 | + - Fixed #601458, Add presence items to status menu and port to JS |
282 | + * Refresh distribution changes |
283 | + * debian/patches/07_correct_distribution_version.patch: |
284 | + - use upstream version |
285 | + * debian/patches/13_cache_ck_history.patch: |
286 | + - dropped since the new upstream version solves this issue differently |
287 | + * debian/patches/23_login_window_hint.patch: |
288 | + - dropped, the change is in the new version |
289 | + |
290 | + [ Kees Cook ] |
291 | + * debian/patches/24_system_uid.patch: - updated for upstream code changes |
292 | + |
293 | + [ Robert Ancell ] |
294 | + * debian/xsession.desktop: |
295 | + * debian/xterm.desktop: |
296 | + - Use clearer session names (LP: #599336) |
297 | + * debian/patches/09_gdmsetup.patch: |
298 | + - Remove session comment from combo box to make it fit better |
299 | + |
300 | + [ Martin Pitt ] |
301 | + * 09_gdmsetup.patch: Only show "Play Login Sound" checkbox if we have |
302 | + /usr/share/gdm/autostart/LoginWindow/libcanberra-ready-sound.desktop. |
303 | + * Add 01_upower.patch: Port to UPower. |
304 | + * debian/control: libdevkit-power-gobject-dev → libupower-glib-dev. |
305 | + |
306 | + -- Kees Cook <kees@ubuntu.com> Fri, 06 Aug 2010 13:02:51 +0200 |
307 | + |
308 | +gdm (2.30.2.is.2.30.2-0ubuntu3) maverick; urgency=low |
309 | + |
310 | + * debian/patches/95_git_name_escaping.patch: |
311 | + - updated to the current git version to fix escaping issues in the |
312 | + language selector list due the previous change |
313 | + (lp: #603097) |
314 | + |
315 | + -- Sebastien Bacher <seb128@ubuntu.com> Wed, 21 Jul 2010 11:43:52 +0200 |
316 | + |
317 | +gdm (2.30.2.is.2.30.2-0ubuntu2) maverick; urgency=low |
318 | + |
319 | + * debian/60xdg_path-on-session: |
320 | + - add XDG_CONFIG_DIRS depending on session so that we can show/hide desktop |
321 | + file depending on session |
322 | + |
323 | + -- Didier Roche <didrocks@ubuntu.com> Tue, 20 Jul 2010 17:37:11 +0200 |
324 | + |
325 | +gdm (2.30.2.is.2.30.2-0ubuntu1) maverick; urgency=low |
326 | + |
327 | + * Tweak the version number to be newer than the lucid-updates one |
328 | + * debian/patches/94_git_null_free_crash.patch: |
329 | + - git change to fix a crasher (lp: #403441) |
330 | + * debian/patches/95_git_name_escaping.patch: |
331 | + - git change to fix escaping issues leading to crashes (lp: #499690), |
332 | + or to having incorrect usernames displayed (lp: #585128) |
333 | + |
334 | + -- Sebastien Bacher <seb128@ubuntu.com> Tue, 06 Jul 2010 13:36:48 +0200 |
335 | + |
336 | +gdm (2.30.2-0ubuntu5) maverick; urgency=low |
337 | + |
338 | + * debian/patches/09_gdmserver_gconf_settings.patch: |
339 | + * debian/patches/09_gdmsetup.patch: |
340 | + - Fix face browser toggle |
341 | + |
342 | + -- Robert Ancell <robert.ancell@canonical.com> Mon, 28 Jun 2010 10:03:02 +1000 |
343 | + |
344 | +gdm (2.30.2-0ubuntu4) maverick; urgency=low |
345 | + |
346 | + * debian/control: |
347 | + - Build-depend on gnome-common for autotools |
348 | + * debian/rules: |
349 | + - Run autotools on build |
350 | + * debian/source: |
351 | + - Use source format 3.0 |
352 | + * debian/patches/*: |
353 | + - Use quilt and fix patch headers |
354 | + * debian/patches/09_gdmsetup.patch: |
355 | + - Add checkbutton for enabling face browser (LP: #445123) |
356 | + * debian/patches/99_autoreconf.patch: |
357 | + - Removed, autotools now run from debian/rules |
358 | + |
359 | + -- Robert Ancell <robert.ancell@canonical.com> Tue, 22 Jun 2010 13:26:45 +1000 |
360 | + |
361 | +gdm (2.30.2-0ubuntu3) maverick; urgency=low |
362 | + |
363 | + * debian/patches/30_don_t_save_failsafe_session.patch: (LP: #542345) |
364 | + - return FALSE instead of exiting on .desktop file without a comment |
365 | + |
366 | + -- Didier Roche <didrocks@ubuntu.com> Thu, 10 Jun 2010 10:32:58 +0200 |
367 | + |
368 | +gdm (2.30.2-0ubuntu2) lucid-proposed; urgency=low |
369 | + |
370 | + * debian/patches/16_gdmserver_user_manager.patch: |
371 | + * debian/patches/24_system_uid.patch: |
372 | + - Update to match IncludeAll behaviour in greeter (LP: #471542) |
373 | + |
374 | + -- Robert Ancell <robert.ancell@canonical.com> Wed, 09 Jun 2010 11:09:11 +1000 |
375 | + |
376 | +gdm (2.30.2-0ubuntu1) lucid-proposed; urgency=low |
377 | + |
378 | + * New upstream bug fix release: |
379 | + - Accessibility is now enabled by default for the GDM login screen. |
380 | + - When the face browser is disabled, the PAM conversation is started |
381 | + immediately, so users do not need to click a button to start entering |
382 | + the username and password. (GNOME #591082) |
383 | + - Add label-for and labelled-by a11y relations to the entry field in the |
384 | + login GUI. This makes the login GUI more accessible when using AT programs. |
385 | + (GNOME #613434). |
386 | + - Fixed bugs that were causing XDMCP to not show the greeter again after |
387 | + logout. (GNOME #606724). |
388 | + - The default XDMCP PingIntervalSeconds was increased from 15 to |
389 | + 60 seconds. |
390 | + - The WINDOWPATH environment variable is now set for the user session. |
391 | + (GNOME #609272) |
392 | + - Ensure Init script is called when using Automatic Login. (GNOME #614488) |
393 | + - Fix race condition with Timed Login. (GNOME #614062) |
394 | + - Drop xhost localuser:gdm and localuser:root when the user session starts. |
395 | + (GNOME #605350) |
396 | + - Removed the icon monitor from the GDM login GUI since it was not functional |
397 | + and was causing problems with automounting user's $HOME directories. |
398 | + (GNOME #609321, LP: #518810) |
399 | + - Do not mark "%x" for translation. (GNOME #613306) |
400 | + - Remove duplicated strings for translation. (GNOME #609179) |
401 | + - Minor doc corrections. |
402 | + - Translation updates. |
403 | + * 04_fix_external_program_directories.patch, 99_autoreconf.patch: Refresh |
404 | + for new upstream version. |
405 | + * Add 34_disable_a11y_default.patch: Revert upstream change between 2.30.0 |
406 | + and 2.30.1 to enable a11y by default. This wasn't tested and isn't |
407 | + appropriate for an SRU. |
408 | + * 06_run_xsession.d.patch: Export $USERXSESSION, $USERXSESSIONRC, and |
409 | + $ALTUSERXSESSION, so that running the "custom"/"default" sessions actually |
410 | + works. Without those, /etc/X11/Xsession.d/50x11-common_determine-startup |
411 | + decides to run the system default session even if we have the |
412 | + "allow-user-xsession" option. This is a prerequisite for fixing LP#398300. |
413 | + Also update the patch tag header to comply to DEP-3. |
414 | + * Add debian/xsession.desktop: Add a new session type "~/.xsession" which |
415 | + will run ~/.xsession (Exec=default will be interpreted by the |
416 | + 20x11-common_process-args and 50x11-common_determine-startup Xsession.d |
417 | + scripts). If the admin sets "allow-user-xsession" to False, this will |
418 | + launch the system default session instead. (LP: #398300) |
419 | + |
420 | + -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 28 Apr 2010 14:41:12 +0200 |
421 | + |
422 | +gdm (2.30.0-0ubuntu5) lucid; urgency=low |
423 | + |
424 | + * debian/patches/14_guest_session.patch: |
425 | + - enable switching to guest session corresponsding to current one (ie UNE if |
426 | + you are in UNE session and gnome if you are in GNOME session) |
427 | + (LP: #562908) |
428 | + |
429 | + -- Didier Roche <didrocks@ubuntu.com> Wed, 14 Apr 2010 16:36:26 +0200 |
430 | + |
431 | +gdm (2.30.0-0ubuntu4) lucid; urgency=low |
432 | + |
433 | + * debian/patches/29_switch_user.patch: |
434 | + - Deselect user when cancelling user switch (LP: #532531) |
435 | + |
436 | + -- Robert Ancell <robert.ancell@canonical.com> Tue, 13 Apr 2010 15:43:37 +0800 |
437 | + |
438 | +gdm (2.30.0-0ubuntu3) lucid; urgency=low |
439 | + |
440 | + [ Didier Roche ] |
441 | + * debian/patches/09_gdmsetup.patch: |
442 | + - do not list users who have an encrypted home directory for autologin |
443 | + candidate (still some corner case, see code comment). (LP: #353446) |
444 | + |
445 | + -- Robert Ancell <robert.ancell@canonical.com> Tue, 13 Apr 2010 15:43:27 +0800 |
446 | + |
447 | +gdm (2.30.0-0ubuntu2) lucid; urgency=low |
448 | + |
449 | + * 33-multi-keyboard-layouts.patch: Work around strange libxklavier behaviour |
450 | + (which returns NULL for empty variants, but does not accept NULL when |
451 | + setting a configuration). This fixes broken variant setting in some cases. |
452 | + (LP: #550887) |
453 | + |
454 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 30 Mar 2010 22:29:15 +0200 |
455 | + |
456 | +gdm (2.30.0-0ubuntu1) lucid; urgency=low |
457 | + |
458 | + * New upstream release: |
459 | + - Translation improvements |
460 | + * debian/patches/09_gdmsetup.patch: |
461 | + - Disable broken face browser checkbutton |
462 | + |
463 | + -- Robert Ancell <robert.ancell@canonical.com> Tue, 30 Mar 2010 12:56:00 +1100 |
464 | + |
465 | +gdm (2.29.92-0ubuntu9) lucid; urgency=low |
466 | + |
467 | + * 33-multi-keyboard-layouts.patch: Fix duplication of layouts by treating "" |
468 | + and NULL variants equally. (LP: #548778) |
469 | + |
470 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 29 Mar 2010 10:07:58 +0200 |
471 | + |
472 | +gdm (2.29.92-0ubuntu8) lucid; urgency=low |
473 | + |
474 | + * debian/patches/09_gdmsetup.patch: |
475 | + - reintegrate the needed bits lost in the merge in 2.29.92-0ubuntu5: |
476 | + select default session is back! (LP: #548417) |
477 | + |
478 | + -- Didier Roche <didrocks@ubuntu.com> Fri, 26 Mar 2010 10:19:17 +0100 |
479 | + |
480 | +gdm (2.29.92-0ubuntu7) lucid; urgency=low |
481 | + |
482 | + * debian/patches/09_gdmserver_gconf_settings.patch: |
483 | + * debian/patches/09_gdmsetup.patch: |
484 | + - Add face browser checkbutton to gdmsetup (LP: #445123) |
485 | + |
486 | + -- Robert Ancell <robert.ancell@canonical.com> Fri, 26 Mar 2010 15:45:20 +1100 |
487 | + |
488 | +gdm (2.29.92-0ubuntu6) lucid; urgency=low |
489 | + |
490 | + * debian/patches/31-unify-power-strings.patch: |
491 | + - drop the change for lucid it requires documentation update |
492 | + which has not been taken into account there, similar changes are done on |
493 | + the other desktop components too now |
494 | + |
495 | + -- Sebastien Bacher <seb128@ubuntu.com> Thu, 25 Mar 2010 11:26:02 +0100 |
496 | + |
497 | +gdm (2.29.92-0ubuntu5) lucid; urgency=low |
498 | + |
499 | + [ Robert Ancell ] |
500 | + * debian/patches/09_gdmsetup.patch: |
501 | + * debian/patches/15_gdmsetup_default_session.patch: |
502 | + * debian/patches/09_gdmserver_sound_settings.patch: |
503 | + - Add startup sound configuration |
504 | + - Merged 15_gdmsetup_default_session.patch into 09_gdmsetup.patch |
505 | + |
506 | + [ Didier Roche ] |
507 | + * debian/patches/09_gdmserver_sound_settings.patch: (LP: #437429) |
508 | + * debian/patches/15_gdmsetup_default_session.patch: |
509 | + - add gconftool calls to get/set sound parameter |
510 | + - fix some wrong signal call and missing callback function |
511 | + * debian/patches/25_update_gconf_directories.patch: |
512 | + - readd $HOME/.gconf between default and mandatory to take changes |
513 | + into account |
514 | + |
515 | + -- Didier Roche <didrocks@ubuntu.com> Wed, 24 Mar 2010 11:11:33 +0100 |
516 | + |
517 | +gdm (2.29.92-0ubuntu4) lucid; urgency=low |
518 | + |
519 | + * 31-unify-power-strings.patch: Drop "Shut Down" → "Switch Off" hunk, still |
520 | + under debate. |
521 | + * Add 33-multi-keyboard-layouts.patch: Keep multiple system keyboard layouts |
522 | + for session. (LP: #460328) |
523 | + |
524 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 23 Mar 2010 17:08:55 +0100 |
525 | + |
526 | +gdm (2.29.92-0ubuntu3) lucid; urgency=low |
527 | + |
528 | + * debian/gdm.upstart: |
529 | + - Now we've inhibited rc2 from stopping plymouth once gdm has been |
530 | + started, this script is responsible for stopping plymouth itself, |
531 | + even if it doesn't start gdm. Add a "plymouth quit || true" in |
532 | + the "text" path. |
533 | + |
534 | + -- Scott James Remnant <scott@ubuntu.com> Wed, 17 Mar 2010 00:53:30 +0000 |
535 | + |
536 | +gdm (2.29.92-0ubuntu2) lucid; urgency=low |
537 | + |
538 | + * debian/patches/28_plymouth_transition.patch: |
539 | + - After deactivating plymouth, call plymouth --has-active-vt and if not, |
540 | + just tell it to quit and don't continue with the transition -- start |
541 | + gdm on a new vt |
542 | + |
543 | + This solves the issue of just re-using the active VT when Plymouth |
544 | + hasn't even shown a splash screen yet; resulting in X running on VT1 |
545 | + alongside the X server. |
546 | + |
547 | + -- Scott James Remnant <scott@ubuntu.com> Thu, 11 Mar 2010 20:06:42 +0000 |
548 | + |
549 | +gdm (2.29.92-0ubuntu1) lucid; urgency=low |
550 | + |
551 | + * New upsteam release: |
552 | + - The greeter is not torn down until pam_open_session finishes since |
553 | + some PAM modules can ask questions up until this point. |
554 | + - The daemon now kills the session process rather than the entire process |
555 | + group, fixing bug #607738. The corresponding gnome-session bug #607658 |
556 | + is released with 2.29.92 so this works properly. |
557 | + * debian/patches/04_fix_external_program_directories.patch: adapt to |
558 | + last upstream version |
559 | + * debian/patches/99_autoreconf.patch: refreshed |
560 | + * debian/control.in: |
561 | + - bump Standards-Version to latest |
562 | + |
563 | + -- Didier Roche <didrocks@ubuntu.com> Tue, 09 Mar 2010 12:45:39 +0100 |
564 | + |
565 | +gdm (2.29.6-0ubuntu7) lucid; urgency=low |
566 | + |
567 | + * Add debian/patches/32-hide-mouse-cursor.patch: Hide the mouse cursor on |
568 | + startup and when starting an user session. |
569 | + |
570 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 05 Mar 2010 11:03:55 +0100 |
571 | + |
572 | +gdm (2.29.6-0ubuntu6) lucid; urgency=low |
573 | + |
574 | + * debian/%gconf-tree.xml: |
575 | + - updated artwork to the lucid one |
576 | + |
577 | + [ Chris Coulson ] |
578 | + * debian/patches/31-unify-power-strings.patch: |
579 | + - Patch from Ted Gould to change "Shut down" and "Suspend" to |
580 | + "Switch off" and "Sleep" (LP: #531493) |
581 | + |
582 | + -- Sebastien Bacher <seb128@ubuntu.com> Thu, 04 Mar 2010 23:36:10 +0100 |
583 | + |
584 | +gdm (2.29.6-0ubuntu5) lucid; urgency=low |
585 | + |
586 | + * Add 18_locale_env_vars.patch: gdm does not have a facility to specify a |
587 | + list of languages for $LANGUAGE, so do not break $LANGUAGE by forcing it |
588 | + to $LANG (they have a completely different syntax, and different |
589 | + meanings). Also, if the system sets $LC_ALL (which distros should never |
590 | + ever do), we should not clobber this. $LINGUAS is not a runtime |
591 | + environment variable for locales, so just drop this. (LP: #407300) |
592 | + |
593 | + -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 04 Mar 2010 12:55:59 +0100 |
594 | + |
595 | +gdm (2.29.6-0ubuntu4) lucid; urgency=low |
596 | + |
597 | + * 05_initial_server_on_vt7.patch: Move the actual stamp file creation into |
598 | + gdm_server_spawn(), so that the stamp file is also created when not using |
599 | + gdm_server_start(). This happens when booting with Plymouth, since |
600 | + 28_plymouth_transition.patch introduces an alternative startup function. |
601 | + (LP: #511134) |
602 | + |
603 | + -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 03 Mar 2010 12:35:29 +0100 |
604 | + |
605 | +gdm (2.29.6-0ubuntu3) lucid; urgency=low |
606 | + |
607 | + * debian/patches/15_gdmsetup_default_session.patch: fix bug asking |
608 | + polkit write access on load and erasing autologin |
609 | + |
610 | + -- Didier Roche <didrocks@ubuntu.com> Thu, 11 Feb 2010 12:24:10 +0100 |
611 | + |
612 | +gdm (2.29.6-0ubuntu2) lucid; urgency=low |
613 | + |
614 | + * debian/rules: Enable --with-incomplete-locales, so that the language |
615 | + picker also displays languages which do not have any .mo file in |
616 | + /usr/share/locale/ (since our langpacks ship the .mo files in a different |
617 | + path). Thanks to Robert Collins for debugging this! |
618 | + |
619 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 05 Feb 2010 15:04:53 -0800 |
620 | + |
621 | +gdm (2.29.6-0ubuntu1) lucid; urgency=low |
622 | + |
623 | + * New upstream version: |
624 | + - Various build fixes |
625 | + - Crash fix in layout detection |
626 | + - Crash fix in session list detection |
627 | + - Remove timeout for interacting with PAM |
628 | + - Fix compile with --no-as-needed |
629 | + - Add debug message if system lacks fonts |
630 | + - Disable switch user item if user switching won't work |
631 | + * debian/patches/01_disable_hal.patch, |
632 | + debian/patches/00git-add-missing-locale-alias.patch, |
633 | + debian/patches/00git-keyboard-layout-crash.patch, |
634 | + debian/patches/18_do_not_double_free_exec_variable.patch: |
635 | + - those changes are in the new version |
636 | + * debian/patches/15_default_session.patch, |
637 | + debian/patches/99_autoreconf.patch: |
638 | + - new version update |
639 | + |
640 | + -- Sebastien Bacher <seb128@ubuntu.com> Thu, 28 Jan 2010 17:10:32 +0100 |
641 | + |
642 | +gdm (2.29.5-0ubuntu6) lucid; urgency=low |
643 | + |
644 | + * add debian/patches/30_don_t_save_failsafe_session.patch: |
645 | + Don't set failsafe session as default when user select it (LP: #509182) |
646 | + |
647 | + -- Didier Roche <didrocks@ubuntu.com> Thu, 21 Jan 2010 20:45:19 +0100 |
648 | + |
649 | +gdm (2.29.5-0ubuntu5) lucid; urgency=low |
650 | + |
651 | + * debian/patches/15_gdmsetup_default_session.patch: |
652 | + Provide default session choice in gdmsetup |
653 | + * debian/patches/99_autoreconf.patch: refresh to take into account |
654 | + new files in previous file |
655 | + |
656 | + -- Didier Roche <didrocks@ubuntu.com> Wed, 20 Jan 2010 15:04:11 +0100 |
657 | + |
658 | +gdm (2.29.5-0ubuntu4) lucid; urgency=low |
659 | + |
660 | + * debian/patches/18_do_not_double_free_exec_variable.patch: |
661 | + - don't free the exec variable twice, thank Colin Gibbs for the detailled |
662 | + bug description (lp: #505051) |
663 | + * debian/patches/20_upstart.patch: |
664 | + - specify the initctl path to avoid command not found errors which break |
665 | + user switching and guest session |
666 | + |
667 | + -- Sebastien Bacher <seb128@ubuntu.com> Tue, 19 Jan 2010 23:42:30 +0100 |
668 | + |
669 | +gdm (2.29.5-0ubuntu3) lucid; urgency=low |
670 | + |
671 | + * debian/patches/15_default_session.patch: use gpointer* instead of |
672 | + GObject* (as a parameter can be a GType) |
673 | + |
674 | + -- Didier Roche <didrocks@ubuntu.com> Tue, 19 Jan 2010 10:57:14 +0100 |
675 | + |
676 | +gdm (2.29.5-0ubuntu2) lucid; urgency=low |
677 | + |
678 | + * Add 00git-keyboard-layout-crash.patch: Fixes the crash that happens at the |
679 | + second call of get_system_default_layout(). (LP: #505972) |
680 | + |
681 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 18 Jan 2010 16:28:48 +0100 |
682 | + |
683 | +gdm (2.29.5-0ubuntu1) lucid; urgency=low |
684 | + |
685 | + [ Robert Ancell ] |
686 | + * debian/patches/29_switch_user.patch: |
687 | + - Add bug link |
688 | + |
689 | + [ Milan Bouchet-Valat ] |
690 | + * debian/gdm.pam: allow members or the 'nopasswdlogin' group to log in |
691 | + without password. This integrates with the gnome-system-tools, which |
692 | + include such an option in 2.27. |
693 | + * debian/gdm.postinst: create this group on install, which enables that |
694 | + feature in the g-s-t. |
695 | + |
696 | + [ Martin Pitt ] |
697 | + * New upstream release: |
698 | + - XDMCP fixes on Solaris |
699 | + - run PostLogin script as user instead of gdm |
700 | + - Fix ellipses usage on User Switch Applet |
701 | + - Add ability to customize system language list |
702 | + - Solaris NULL printf fixes |
703 | + - Convert from glade to gtkbuilder |
704 | + - Detect default keyboard layout better |
705 | + - Ignore executable subfolders of xinitrc.d |
706 | + - Don't reveal valid usernames when authenticating |
707 | + * Drop 01_default_keyboard_layout.patch, accepted upstream. |
708 | + * Refresh patches for new upstream version. |
709 | + * Add 01_disable_hal.patch: Don't attempt to connect to Hal. The hal-using |
710 | + code is already commented out, and this just needlessly triggers Hal |
711 | + startup during boot. |
712 | + * Add 00git-add-missing-locale-alias.patch: Add missing locale.alias file |
713 | + (taken from upstream git head). |
714 | + |
715 | + -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 14 Jan 2010 17:07:34 +0100 |
716 | + |
717 | +gdm (2.29.4-0ubuntu3) lucid; urgency=low |
718 | + |
719 | + * debian/patches/29_switch_user.patch: |
720 | + - Add SwitchToUser() method call |
721 | + |
722 | + -- Robert Ancell <robert.ancell@canonical.com> Thu, 14 Jan 2010 13:11:06 +1100 |
723 | + |
724 | +gdm (2.29.4-0ubuntu2) lucid; urgency=low |
725 | + |
726 | + * debian/gdm.upstart: Wait for D-Bus to be ready, to avoid failure if gdm |
727 | + starts too early. Thanks to Robert Hooker! (LP: #502838) |
728 | + |
729 | + -- Martin Pitt <martin.pitt@ubuntu.com> Sat, 09 Jan 2010 17:34:43 +0100 |
730 | + |
731 | +gdm (2.29.4-0ubuntu1) lucid; urgency=low |
732 | + |
733 | + * New upstream version: |
734 | + - Remove deprecated function g_mapped_file_free |
735 | + - Fix option widgets to work better with orca |
736 | + - make --with-custom-conf work |
737 | + - Don't hard code path to policykit agent |
738 | + - Don't backup xkb configuration before login |
739 | + * debian/control: |
740 | + - updated libglib requirement |
741 | + * debian/patches/08_use_polkit_for_settings.patch: |
742 | + - new version update |
743 | + * debian/patches/99_autoreconf.patch: |
744 | + - new version update |
745 | + |
746 | + -- Sebastien Bacher <seb128@ubuntu.com> Thu, 07 Jan 2010 17:05:51 +0100 |
747 | + |
748 | +gdm (2.29.1-0ubuntu9) lucid; urgency=low |
749 | + |
750 | + * debian/patches/24_system_uid.patch: use configured system UID |
751 | + minimum instead of hard-coded value (LP: #459199). |
752 | + |
753 | + -- Kees Cook <kees@ubuntu.com> Wed, 16 Dec 2009 10:35:09 -0800 |
754 | + |
755 | +gdm (2.29.1-0ubuntu8) lucid; urgency=low |
756 | + |
757 | + * debian/gdm.upstart: |
758 | + - Revert Mario's changes which prevent gdm from starting for most people, |
759 | + and introduce expensive dkms integration code in the non-dkms case! |
760 | + |
761 | + -- Scott James Remnant <scott@ubuntu.com> Tue, 15 Dec 2009 09:37:02 +0000 |
762 | + |
763 | +gdm (2.29.1-0ubuntu7) lucid; urgency=low |
764 | + |
765 | + * debian/60xdg_path-on-session: |
766 | + - Add xdg path depending on GDM selected session. This enables starting |
767 | + desired applications depending on session |
768 | + * debian/gdm.install: install previous file in /etc/X11/Xsession.d |
769 | + |
770 | + -- Didier Roche <didrocks@ubuntu.com> Mon, 14 Dec 2009 21:20:06 +0100 |
771 | + |
772 | +gdm (2.29.1-0ubuntu6) lucid; urgency=low |
773 | + |
774 | + * debian/gdm.upstart (LP: #453365) |
775 | + - Start on built-successful signal for fglrx or nvidia modules. |
776 | + - If dkms is available on the system, use it to check the status |
777 | + of fglrx or nvidia. |
778 | + - If they're in the DKMS tree but not built, exit the gdm task |
779 | + and wait for the build-successful signal. If they don't build, |
780 | + the failsafe-x task will receive a build-failed and can start |
781 | + BulletProof-X. |
782 | + |
783 | + -- Mario Limonciello <mario_limonciello@dell.com> Mon, 14 Dec 2009 14:09:14 -0600 |
784 | + |
785 | +gdm (2.29.1-0ubuntu5) lucid; urgency=low |
786 | + |
787 | + * debian/patches/15_default_session.patch: (LP: #403291) |
788 | + - Choose default session in /etc/gdm/custom.conf using DBus. Removed |
789 | + default.desktop hack. |
790 | + - Add /usr/lib/gdm-set-default-session to properly define default session: |
791 | + use DBus when gdm daemon is on and filing the file when it's off. This |
792 | + script can be called in postinst file of ubuntu derivatives. |
793 | + * debian/60xdg_path-on-session: |
794 | + - Add xdg path depending on GDM selected session. This enables starting |
795 | + desired applications depending on session |
796 | + * debian/patches/99_autoreconf.patch: refreshed |
797 | + |
798 | + -- Didier Roche <didrocks@ubuntu.com> Sat, 12 Dec 2009 22:55:06 +0100 |
799 | + |
800 | +gdm (2.29.1-0ubuntu4) lucid; urgency=low |
801 | + |
802 | + * debian/patches/05_initial_server_on_vt7.patch: |
803 | + - Fix a bug in the patch: the return value of open() can be zero on |
804 | + success, because zero is a valid file descriptor! This probably |
805 | + never broke in the real world, because we always have standard |
806 | + input set to something, but it's worth fixing bugs when you find |
807 | + them ;-) |
808 | + * debian/patches/27_save_root_window.patch: |
809 | + - Patch taken from the plymouth-integration branch of Upstream GIT |
810 | + to save the root window pixmap in a property for other things to |
811 | + pick up. |
812 | + * debian/patches/28_plymouth_transition.patch: |
813 | + - Patch taken from the plymouth-integration branch of Upstream GIT, |
814 | + makes gdm check whether plymouth is running on startup; if it is, |
815 | + actively arranges for a smooth transition. Also handles getting |
816 | + plymouth out of the way in case the X server doesn't start. |
817 | + * debian/gdm.upstart: |
818 | + - Remove "starting-dm" event; the above patch means we handle |
819 | + stopping the splash screen gracefully by ourselves so don't need |
820 | + it. |
821 | + - Only look at /etc/X11/default-display-manager and /proc/cmdline |
822 | + when started automatically; always allow "start gdm" to work. |
823 | + - Use the PRIMARY_DEVICE_FOR_DISPLAY tag on the framebuffer or |
824 | + drm card devices to start the X server, still falling back on |
825 | + end of udev probing (we may have neither). Drop the tty |
826 | + part, we need both more and less than this. LP: #491162. |
827 | + |
828 | + -- Scott James Remnant <scott@ubuntu.com> Fri, 11 Dec 2009 06:00:05 +0000 |
829 | + |
830 | +gdm (2.29.1-0ubuntu3) lucid; urgency=low |
831 | + |
832 | + * debian/gdm.upstart: Do not fail with exit status !=0 on startup |
833 | + when disabled. LP: #491483 |
834 | + |
835 | + -- Philip Muskovac <yofel@gmx.net> Mon, 07 Dec 2009 19:33:05 +0100 |
836 | + |
837 | +gdm (2.29.1-0ubuntu2) lucid; urgency=low |
838 | + |
839 | + * debian/patches/26_no_debug.patch: |
840 | + - Turn off debugging for unstable versions by default. Logging to |
841 | + syslog will slow down loading |
842 | + |
843 | + -- Chris Coulson <chrisccoulson@ubuntu.com> Fri, 04 Dec 2009 17:38:24 +0000 |
844 | + |
845 | +gdm (2.29.1-0ubuntu1) lucid; urgency=low |
846 | + |
847 | + * New upstream release: |
848 | + [ 2.29.1 ] |
849 | + - A new desktop extension is now supported in GDM session desktop files |
850 | + (normally found in /usr/share/xsessions). Setting the key to true as follows: |
851 | + X-GDM_BypassXsession=true |
852 | + will cause the Xsession script to not be used to launch the session. This |
853 | + can be useful if you want to create a "failsafe" xterm session. The Xsession |
854 | + script sources the user's $HOME/.profile, for example, so setting this key |
855 | + to true will ensure that any errors in the user's $HOME/.profile will not |
856 | + cause the session to fail to start. |
857 | + - Fix makedist problem. |
858 | + [ 2.29.0 ] |
859 | + - Now GDM supports Include, Exclude, and IncludeAll configuration options to |
860 | + allow the ability to configure which users are displayed in the FaceBrowser. |
861 | + - Now GDM supports better debugging. Users can set the debug/Enable |
862 | + configuration option to turn on GDM debugging. |
863 | + - The directory where GDM screenshots are placed has been moved to its own |
864 | + directory: /var/run/gdm/greeter/GDM-Screenshot.png. The screenshot directory |
865 | + can now be specified at build time via the --with-screenshot-dir configure |
866 | + argument. |
867 | + - Many simple-greeter Face Browser usability improvements. |
868 | + - The simple-greeter Face Browser tree view search entry is now obscured to |
869 | + help prevent accidental display of passwords. |
870 | + - Shutdown and reboot functions are moved to a menu in the simple-greeter panel |
871 | + instead of being presented as buttons. The shutdown menu is better |
872 | + positioned on multi-monitor displays. |
873 | + - The simple-greeter panel notification area has been improved and now honors |
874 | + the GConf setting for /apps/notification_area_applet/prefs/padding. |
875 | + - The entry field in the simple-greeter now has accessibility labels so it will |
876 | + work better with accessibility programs. |
877 | + - The clock in the simple-greeter panel no longer shows the date, making the |
878 | + screen look a little cleaner. The date is moved to the clock tooltip so it |
879 | + is still available. |
880 | + - The simple-greeter now uses gethostname instead of g_get_host_name since |
881 | + is more reliable when the hostname changes at runtime. |
882 | + - The user switch applet now honors disable_lock_screen. The option to lock |
883 | + screen is now not shown if disable_lock_screen is set. |
884 | + - The /var/run/gdm directory is better locked down. |
885 | + - GDM no longer crashes on bad UTF-8 in the /etc/passwd file. |
886 | + - When the worker dies, the auth-failed signal is no longer sent. This |
887 | + prevents a crash that happens when switching run-levels when the login screen |
888 | + is displayed. |
889 | + - Ensure that the length of sockaddr structure is set to the correct length for |
890 | + IPv4 or IPv6. This makes GDM work better on some operating systems that are |
891 | + picky about the length being exact. |
892 | + - String and documentation improvements. |
893 | + * debian/patches/17_add_failsafe.patch: |
894 | + * debian/patches/22_shutdown_menu.patch: |
895 | + - Applied upstream |
896 | + |
897 | + -- Robert Ancell <robert.ancell@canonical.com> Fri, 04 Dec 2009 16:19:35 +1100 |
898 | + |
899 | +gdm (2.28.1-0ubuntu5) lucid; urgency=low |
900 | + |
901 | + * debian/patches/10_xsplash.patch: |
902 | + - don't use xsplash by default for now, it uses lot of cpu and costs one |
903 | + second to the current login, that will be reactivated later in lucid |
904 | + |
905 | + -- Sebastien Bacher <seb128@ubuntu.com> Thu, 03 Dec 2009 11:29:59 +0100 |
906 | + |
907 | +gdm (2.28.1-0ubuntu4) lucid; urgency=low |
908 | + |
909 | + * debian/gdm.upstart: Do not wait for hal, since we don't need it any more |
910 | + (and doesn't even need to be installed any more with a dehalified X.org). |
911 | + |
912 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 27 Nov 2009 22:16:26 +0100 |
913 | + |
914 | +gdm (2.28.1-0ubuntu3) lucid; urgency=low |
915 | + |
916 | + * Replace 01_default_keyboard_layout_hal.patch with |
917 | + 01_default_keyboard_layout.patch which uses libxklavier instead of hal to |
918 | + read the default keyboard layout from X.org. Drop hal build and binary |
919 | + dependencies. (LP: #418981) |
920 | + * 16_gdmserver_user_manager.patch, 99_autoreconf.patch: Updated. |
921 | + |
922 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 27 Nov 2009 09:25:31 +0100 |
923 | + |
924 | +gdm (2.28.1-0ubuntu2) karmic-proposed; urgency=low |
925 | + |
926 | + * Don't respawn gdm on failure; this lets us capture X failures instead and |
927 | + trigger the bulletproof X handler here. LP: #441638. |
928 | + * re-export any XORGCONFIG value passed to the upstart job, needed to |
929 | + complete integration with bulletproof X. LP: #474806. |
930 | + |
931 | + -- Steve Langasek <steve.langasek@ubuntu.com> Wed, 04 Nov 2009 18:15:37 -0800 |
932 | + |
933 | +gdm (2.28.1-0ubuntu1) karmic; urgency=low |
934 | + |
935 | + * New upstream release (LP: #455944) |
936 | + - GDM will now avoid calling XAddHosts for remote connections. |
937 | + - Now GDM uses DeviceKit-power instead of gnome-power-manager for Suspend |
938 | + support. |
939 | + - Now the at-spi-registryd-wrapper.desktop GDM autostart file will run |
940 | + at-spi-registryd directly instead of calling at-spi-registryd-wrapper. |
941 | + - Fix to the visibility check for the "Other" button which corrects some |
942 | + situations where the button would not appear when it was supposed to. |
943 | + - Now the GDM daemon will make the /var/log/gdm directory if it does not |
944 | + exist. |
945 | + - Fixes to avoid autologin failure when a NULL username is passed in. |
946 | + - Restore CTYPE when canonicalizing codesets. |
947 | + - Several fixes to avoid warnings. |
948 | + * debian/patches/18_create_log_dir_when_required.patch: |
949 | + * debian/patches/21_dkpower.patch: |
950 | + - Applied upstream |
951 | + * debian/patches/22_shutdown_menu.patch: |
952 | + - Updated |
953 | + |
954 | + -- Robert Ancell <robert.ancell@canonical.com> Tue, 20 Oct 2009 11:52:57 +1100 |
955 | + |
956 | +gdm (2.28.0-0ubuntu19) karmic; urgency=low |
957 | + |
958 | + * debian/%gconf-tree.xml, debian/gdm.postinst, debian/rules: |
959 | + - don't use gconftool to register the default gconf keys but rather |
960 | + install a xml files with the values, that will avoid different issues |
961 | + due to the su call or the gconf server not being running |
962 | + (lp: #441028, #441167) |
963 | + - set the gnome-power-manager icon key to never since that's not useful |
964 | + on the login screen and the design team recommended to not have it there |
965 | + * debian/gdm.postinst: |
966 | + - workaround chown breaking due to the .gvfs fuse directory (lp: #438561) |
967 | + * debian/patches/25_update_gconf_directories.patch: |
968 | + - define a new directory which is used for the default gconf values |
969 | + |
970 | + -- Sebastien Bacher <seb128@ubuntu.com> Thu, 15 Oct 2009 12:34:11 +0200 |
971 | + |
972 | +gdm (2.28.0-0ubuntu18) karmic; urgency=low |
973 | + |
974 | + * debian/patches/14_guest_session.patch: |
975 | + - Switch to existing guest session if already open (LP: #450965) |
976 | + * debian/patches/24_system_uid.patch: |
977 | + * debian/patches/16_gdmserver_user_manager.patch: |
978 | + - Fix more cases of users with UID < 1000 |
979 | + |
980 | + -- Robert Ancell <robert.ancell@canonical.com> Thu, 15 Oct 2009 01:07:18 +0200 |
981 | + |
982 | +gdm (2.28.0-0ubuntu17) karmic; urgency=low |
983 | + |
984 | + [ Robert Ancell ] |
985 | + * debian/patches/22_shutdown_menu.patch: |
986 | + - Mark power menu options as translatable (LP: #450707) |
987 | + |
988 | + [ Scott James Remnant ] |
989 | + * debian/gdm.upstart: |
990 | + - Wait for tty7 to be ready, and either a framebuffer or the end |
991 | + of coldplugging. |
992 | + |
993 | + -- Scott James Remnant <scott@ubuntu.com> Wed, 14 Oct 2009 05:08:47 +0100 |
994 | + |
995 | +gdm (2.28.0-0ubuntu15) karmic; urgency=low |
996 | + |
997 | + * debian/patches/23_login_window_hint.patch: |
998 | + - Don't put a type hint on the login window as this causes it not to get |
999 | + focus (LP: #447049) |
1000 | + * debian/patches/16_gdmserver_user_manager.patch: |
1001 | + - Don't show users with UID < 1000 (LP: #427462) |
1002 | + |
1003 | + -- Robert Ancell <robert.ancell@canonical.com> Tue, 13 Oct 2009 15:56:41 +1100 |
1004 | + |
1005 | +gdm (2.28.0-0ubuntu14) karmic; urgency=low |
1006 | + |
1007 | + * debian/gdm.postinst: Set icon theme to HumanLoginIcons. Also, call su just |
1008 | + once with all four gconftool commands instead of several times. |
1009 | + |
1010 | + -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 07 Oct 2009 15:39:17 +0200 |
1011 | + |
1012 | +gdm (2.28.0-0ubuntu13) karmic; urgency=low |
1013 | + |
1014 | + * debian/gdm{,-autologin}.pam: correctly handle SELinux transitions, |
1015 | + thanks to Caleb Case (LP: #430205). |
1016 | + |
1017 | + -- Kees Cook <kees@ubuntu.com> Tue, 06 Oct 2009 16:49:25 -0700 |
1018 | + |
1019 | +gdm (2.28.0-0ubuntu12) karmic; urgency=low |
1020 | + |
1021 | + * debian/gdm.upstart: Also stop when entering single-user mode. |
1022 | + LP: #437281. |
1023 | + |
1024 | + -- Scott James Remnant <scott@ubuntu.com> Sat, 03 Oct 2009 08:09:44 +0100 |
1025 | + |
1026 | +gdm (2.28.0-0ubuntu11) karmic; urgency=low |
1027 | + |
1028 | + * 99_autoreconf.patch: Drop removal of *.rej junk, it was fixed in |
1029 | + 04_fix_external_program_directories.patch. |
1030 | + |
1031 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 02 Oct 2009 12:22:28 +0200 |
1032 | + |
1033 | +gdm (2.28.0-0ubuntu10) karmic; urgency=low |
1034 | + |
1035 | + * 01_default_keyboard_layout_hal.patch: Read keyboard variant from hal, too. |
1036 | + (LP: #421212) |
1037 | + * debian/gdm.postinst: Set HumanLogin theme for metacity, too. Thanks to |
1038 | + Devid Antonio Filoni! (LP: #439546) |
1039 | + * 04_fix_external_program_directories.patch: Remove *.rej junk. |
1040 | + * 04_fix_external_program_directories.patch: Fix path to polkit-gnome |
1041 | + authentication agent. (Caught as a side issue in LP #401822) |
1042 | + * debian/rules: Drop polkit-gnome agent autostart file. It has never worked |
1043 | + anyway due to wrong path (see previous change), and we do not currently |
1044 | + need it. |
1045 | + |
1046 | + -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 01 Oct 2009 23:53:54 +0200 |
1047 | + |
1048 | +gdm (2.28.0-0ubuntu9) karmic; urgency=low |
1049 | + |
1050 | + * debian/gdm.postinst: |
1051 | + - use the correct key to set the gtk theme |
1052 | + |
1053 | + [ Robert Ancell ] |
1054 | + * debian/patches/22_shutdown_menu.patch: |
1055 | + - Fix spacing on shutdown menu (LP: #437691) |
1056 | + * debian/patches/*.patch: |
1057 | + - Update patch headers |
1058 | + * debian/patches/19_no_greeter_for_autologin.patch: |
1059 | + - Fix bug that caused the GDM greeter to be displayed briefly when |
1060 | + automatically logging in (LP: #435801) |
1061 | + |
1062 | + -- Sebastien Bacher <seb128@ubuntu.com> Wed, 30 Sep 2009 15:21:09 +0200 |
1063 | + |
1064 | +gdm (2.28.0-0ubuntu8) karmic; urgency=low |
1065 | + |
1066 | + * debian/gdm.upstart: |
1067 | + - Emit a starting-dm event just before starting gdm itself, for the |
1068 | + benefit of usplash. |
1069 | + |
1070 | + -- Colin Watson <cjwatson@ubuntu.com> Tue, 29 Sep 2009 00:18:49 +0100 |
1071 | + |
1072 | +gdm (2.28.0-0ubuntu7) karmic; urgency=low |
1073 | + |
1074 | + * debian/gdm.postinst: |
1075 | + - set a different theme for the gdm login screen (lp: #436817) |
1076 | + |
1077 | + -- Sebastien Bacher <seb128@ubuntu.com> Mon, 28 Sep 2009 23:25:40 +0200 |
1078 | + |
1079 | +gdm (2.28.0-0ubuntu6) karmic; urgency=low |
1080 | + |
1081 | + * debian/patches/16_gdmserver_user_manager.patch: |
1082 | + - change by Cody Russell to Fix user-added and user-removed signal emissions |
1083 | + to emit the UID instead of the user pointer. (lp :#436195) |
1084 | + |
1085 | + -- Sebastien Bacher <seb128@ubuntu.com> Fri, 25 Sep 2009 00:58:39 +0200 |
1086 | + |
1087 | +gdm (2.28.0-0ubuntu5) karmic; urgency=low |
1088 | + |
1089 | + * debian/patches/17_add_failsafe.patch: |
1090 | + - adds code to support failsafe sessions again (from gnome #594833) |
1091 | + |
1092 | + -- Travis Watkins <amaranth@ubuntu.com> Thu, 24 Sep 2009 10:30:08 +0200 |
1093 | + |
1094 | +gdm (2.28.0-0ubuntu4) karmic; urgency=low |
1095 | + |
1096 | + * Move shutdown buttons from under user list to lower right corner of screen |
1097 | + (LP: #434338) |
1098 | + |
1099 | + -- Robert Ancell <robert.ancell@canonical.com> Wed, 23 Sep 2009 15:44:15 +1000 |
1100 | + |
1101 | +gdm (2.28.0-0ubuntu3) karmic; urgency=low |
1102 | + |
1103 | + * debian/patches/21_dkpower.patch: |
1104 | + - Port the greeter to DK-Power so that the suspend/hibernate buttons |
1105 | + appear again, where supported (LP: #420063). |
1106 | + * debian/control: |
1107 | + - Add build-depend on libdevkit-power-gobject-dev (>= 008) |
1108 | + * Refreshed 99_autoreconf.patch |
1109 | + |
1110 | + -- Chris Coulson <chrisccoulson@ubuntu.com> Tue, 22 Sep 2009 22:04:11 +0100 |
1111 | + |
1112 | +gdm (2.28.0-0ubuntu2) karmic; urgency=low |
1113 | + |
1114 | + * debian/patches/08_use_polkit_for_settings.patch: |
1115 | + - set translatable strings and list the file to translate (lp: #425798) |
1116 | + * debian/patches/09_gdmsetup.patch, |
1117 | + debian/patches/99_autoreconf.patch: |
1118 | + - initialize the translations so the gdmsetup interface is translated |
1119 | + (lp: #434102) |
1120 | + * debian/patches/17_use_timed_login_after_autologin.patch: |
1121 | + - revert upstream change to not use timed login after autologin session |
1122 | + (lp: #396489) |
1123 | + * debian/patches/18_create_log_dir_when_required.patch: |
1124 | + - create the log directory when required (lp: #405227) |
1125 | + * debian/gdm.config, debian/gdm.templates: |
1126 | + - restore debconf files which have been dropped by error in karmic, |
1127 | + thanks Pär Andersson (lp: #395591) |
1128 | + |
1129 | + -- Sebastien Bacher <seb128@ubuntu.com> Tue, 22 Sep 2009 15:20:27 +0200 |
1130 | + |
1131 | +gdm (2.28.0-0ubuntu1) karmic; urgency=low |
1132 | + |
1133 | + * New upstream release (LP: #434354) |
1134 | + - Now GDM supports the ability to specify the automatic/timed login user via |
1135 | + a script via the same interface that the old GDM supported. |
1136 | + - Now the user's dmrc and face image files are stored in /var/cache/gdm, so |
1137 | + that the login process does not need to access the user's $HOME directory |
1138 | + before authentication. |
1139 | + - Fix the login GUI options widget so the language/session/layout choices |
1140 | + are not reset after a failed login. |
1141 | + - Fix language dialog so it does not crash if the user click's the "OK" |
1142 | + button when no language is selected. |
1143 | + - Fix to ensure that the login dialog regains focus after the language or |
1144 | + layout dialogs are used. |
1145 | + - The language dialog has improved logic to sort the language names more |
1146 | + correctly. |
1147 | + - Make sure to check error variable is not NULL before referencing it in the |
1148 | + gdm-user-manager code. |
1149 | + - Make sure to not print NULL strings since this causes crashes on some |
1150 | + platforms. |
1151 | + - Improve documentation. |
1152 | + * debian/patches/09_gdmsetup.patch: updated: |
1153 | + - Filter ConsoleKit system users (LP: #432271) |
1154 | + - Make window size fixed (LP: #429206) |
1155 | + * debian/patches/01_default_keyboard_layout_hal.patch, |
1156 | + debian/patches/99_autoreconf.patch: updated. |
1157 | + |
1158 | + -- Robert Ancell <robert.ancell@canonical.com> Mon, 21 Sep 2009 13:05:51 +1000 |
1159 | + |
1160 | +gdm (2.27.90-0ubuntu7) karmic; urgency=low |
1161 | + |
1162 | + [ Ken VanDine ] |
1163 | + * debian/patches/10_xsplash.patch: |
1164 | + - Use --daemon instead of using the "&" (LP: #430834) |
1165 | + * debian/control: |
1166 | + - Conflict with xsplash (<< 0.8), we don't depend on xsplash but if |
1167 | + /usr/bin/xsplash exists we need it to support the --daemon option |
1168 | + |
1169 | + [ Martin Pitt ] |
1170 | + * debian/gdm.upstart: Drop gdm-cdd.conf handling, gdm does not support it |
1171 | + any more. |
1172 | + * debian/gdm.upstart: Do not start in single-user modes or when "text" is |
1173 | + given as a kernel command line option. This restores previous behaviour. |
1174 | + (LP: #431176) |
1175 | + * Add debian/onboard.desktop: gdm "onboard" configuration for the |
1176 | + accessibility dialog, thanks to Francesco Fumanti! |
1177 | + * debian/rules: Install onboard.desktop, remove gok.desktop from upstream |
1178 | + install. We do not ship gok any more. (LP: #423831, #130368) |
1179 | + |
1180 | + -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 17 Sep 2009 19:22:46 +0200 |
1181 | + |
1182 | +gdm (2.27.90-0ubuntu6) karmic; urgency=low |
1183 | + |
1184 | + * The upstart job won't start unless hal is also started, so add an |
1185 | + appropriate versioned dependency on the upstarted hal. |
1186 | + |
1187 | + -- Steve Langasek <steve.langasek@ubuntu.com> Wed, 16 Sep 2009 01:58:11 -0700 |
1188 | + |
1189 | +gdm (2.27.90-0ubuntu5) karmic; urgency=low |
1190 | + |
1191 | + FFE LP: #427356. |
1192 | + |
1193 | + * Replace init script with Upstart job. |
1194 | + * debian/control: |
1195 | + - Bump build-dependency on debhelper for Upstart-aware dh_installinit |
1196 | + * debian/patches/20_upstart.patch: |
1197 | + - Emit Upstart events when starting the login session and desktop |
1198 | + session, just after starting xsplash. These can be used as |
1199 | + synchronisation points. |
1200 | + |
1201 | + -- Scott James Remnant <scott@ubuntu.com> Tue, 15 Sep 2009 03:31:21 +0100 |
1202 | + |
1203 | +gdm (2.27.90-0ubuntu4) karmic; urgency=low |
1204 | + |
1205 | + * debian/patches/16_gdmserver_user_manager.patch: |
1206 | + - Add user manager d-bus interface to gdmserver (LP: #423450) |
1207 | + |
1208 | + -- Robert Ancell <robert.ancell@canonical.com> Sat, 12 Sep 2009 12:49:48 +0200 |
1209 | + |
1210 | +gdm (2.27.90-0ubuntu3) karmic; urgency=low |
1211 | + |
1212 | + * Add 15_default_session.patch: Prefer "default.session", so that other |
1213 | + desktop environments like XFCE can use gdm, too, without being forced to |
1214 | + start GNOME. (LP: #403291) |
1215 | + * debian/gdm.postrm: Fix purge breakage if one of the to-be-cleaned-up |
1216 | + directories does not exist. |
1217 | + |
1218 | + -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 10 Sep 2009 13:02:27 +0200 |
1219 | + |
1220 | +gdm (2.27.90-0ubuntu2) karmic; urgency=low |
1221 | + |
1222 | + [ Robert Ancell ] |
1223 | + * debian/patches/13_cache_ck_history.patch: |
1224 | + - Cache result of ck-history to make startup fast (LP: #400863) |
1225 | + |
1226 | + [ Martin Pitt ] |
1227 | + * Add 14_guest_session.patch: Rewrite guest session support for new gdm |
1228 | + architecture. This now adds a D-BUS operation StartGuestSession(), since |
1229 | + gdmflexiserver is being deprecated. (LP: #404870) |
1230 | + |
1231 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 07 Sep 2009 18:18:15 +0200 |
1232 | + |
1233 | +gdm (2.27.90-0ubuntu1) karmic; urgency=low |
1234 | + |
1235 | + [ Robert Ancell ] |
1236 | + * New upstream release: (LP: #418426) |
1237 | + - Autostart polkit-gnome authentication agent. |
1238 | + - Add screen capture sound effect to screenshot tool. |
1239 | + - If HOST_NAME_MAX is not available, try _POSIX_HOST_NAME_MAX, then |
1240 | + default to 256. |
1241 | + - Add users "nobody4" and "noaccess" to the list of users to filter from |
1242 | + the Face Browser. |
1243 | + - Add Solaris logindevperm support. |
1244 | + - Fix mispelling of XDMCP. |
1245 | + - Improve documentation. |
1246 | + * debian/control: |
1247 | + - Depend on libcanberra-gtk |
1248 | + * debian/patches/01_default_keyboard_layout_hal.patch: |
1249 | + * debian/patches/02_x_server_location.patch: |
1250 | + * debian/patches/03_hide_system_users.patch: |
1251 | + * debian/patches/04_fix_external_program_directories.patch: |
1252 | + * debian/patches/08_use_polkit_for_settings.patch: |
1253 | + * debian/patches/99_autoreconf.patch: |
1254 | + - Refreshed |
1255 | + * debian/patches/09_gdmsetup.patch: |
1256 | + - Set gdmsetup window title and icon |
1257 | + - Fix crash when have no default users configured |
1258 | + |
1259 | + [ Ted Gould ] |
1260 | + * Add 12_fusa_name_change.patch: Change the Bonobo activation server name |
1261 | + of the FUSA applet. |
1262 | + * debian/rules: Rename the Bonobo activate server description before |
1263 | + installing it. (LP: #410498) |
1264 | + |
1265 | + -- Robert Ancell <robert.ancell@canonical.com> Tue, 25 Aug 2009 15:32:13 +0200 |
1266 | + |
1267 | +gdm (2.27.4-0ubuntu11) karmic; urgency=low |
1268 | + |
1269 | + * debian/patches/09_gdmsetup.patch: |
1270 | + - clean some unused variables there |
1271 | + - don't crash if there is no autologin key in the configuration yet |
1272 | + (lp: #410475) |
1273 | + - don't specify encoding in desktop entry (lp: #410591) |
1274 | + * debian/patches/11_crash_for_apport.patch: |
1275 | + - don't catch crashes so apport can do its job |
1276 | + |
1277 | + -- Sebastien Bacher <seb128@ubuntu.com> Wed, 12 Aug 2009 16:17:23 +0200 |
1278 | + |
1279 | +gdm (2.27.4-0ubuntu10) karmic; urgency=low |
1280 | + |
1281 | + * debian/patches/10_xsplash.patch: |
1282 | + - updated version by Cody Russell |
1283 | + |
1284 | + -- Sebastien Bacher <seb128@ubuntu.com> Tue, 11 Aug 2009 19:10:45 +0200 |
1285 | + |
1286 | +gdm (2.27.4-0ubuntu9) karmic; urgency=low |
1287 | + |
1288 | + * debian/control: |
1289 | + - build-depends on libpolkit-gobject-1-dev |
1290 | + |
1291 | + -- Sebastien Bacher <seb128@ubuntu.com> Fri, 07 Aug 2009 17:00:43 +0100 |
1292 | + |
1293 | +gdm (2.27.4-0ubuntu8) karmic; urgency=low |
1294 | + |
1295 | + * debian/patches/10_xsplash.patch: |
1296 | + - Fixed a syntax error |
1297 | + |
1298 | + -- Ken VanDine <ken.vandine@canonical.com> Fri, 07 Aug 2009 16:29:02 +0100 |
1299 | + |
1300 | +gdm (2.27.4-0ubuntu7) karmic; urgency=low |
1301 | + |
1302 | + * debian/patches/08_use_polkit_for_settings.patch: |
1303 | + - Use PolicyKit for GDM settings |
1304 | + * debian/patches/09_gdmsetup.patch: |
1305 | + - Provide a setup tool for basic configuration (LP: #395299) |
1306 | + * debian/patches/10_xsplash.patch: |
1307 | + - Load xsplash on login |
1308 | + * debian/patches/99_autoreconf.patch: |
1309 | + - Updated |
1310 | + |
1311 | + -- Robert Ancell <robert.ancell@canonical.com> Fri, 07 Aug 2009 09:23:21 +0100 |
1312 | + |
1313 | +gdm (2.27.4-0ubuntu6) karmic; urgency=low |
1314 | + |
1315 | + * debian/patches/07_correct_distribution_version.patch: |
1316 | + - correctly display ubuntu as distribution (lp: #396805) |
1317 | + |
1318 | + -- Sebastien Bacher <seb128@ubuntu.com> Thu, 23 Jul 2009 23:19:33 +0200 |
1319 | + |
1320 | +gdm (2.27.4-0ubuntu5) karmic; urgency=low |
1321 | + |
1322 | + * debian/rules: |
1323 | + - move custom.conf to /usr/share/doc/gdm/examples to avoid |
1324 | + a conffile prompt when upgrading from a existing gdm |
1325 | + * debian/gdm.preinst: |
1326 | + - fix typo |
1327 | + |
1328 | + -- Michael Vogt <michael.vogt@ubuntu.com> Wed, 22 Jul 2009 10:51:59 +0200 |
1329 | + |
1330 | +gdm (2.27.4-0ubuntu4) karmic; urgency=low |
1331 | + |
1332 | + * debian/control: |
1333 | + - Replace dependency on gnome-session with gnome-session-bin |
1334 | + - Add recommends on metacity | x-window-manager |
1335 | + - Add recommends on gnome-settings-daemon | xfconf |
1336 | + - Add suggestion on gnome-power-manager, gnome-orca, gok, and gnome-mag |
1337 | + - (LP: #400901) |
1338 | + |
1339 | + -- Cody A.W. somerville <cody-somerville@ubuntu.com> Tue, 21 Jul 2009 21:28:30 +0200 |
1340 | + |
1341 | +gdm (2.27.4-0ubuntu3) karmic; urgency=low |
1342 | + |
1343 | + * 06_run_xsession.d.patch: Define $OPTIONFILE, so that the |
1344 | + 75dbus_dbus-launch Xsession.d script properly runs the session under |
1345 | + dbus-launch. (LP: #402161) |
1346 | + |
1347 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 21 Jul 2009 14:31:02 +0200 |
1348 | + |
1349 | +gdm (2.27.4-0ubuntu2) karmic; urgency=low |
1350 | + |
1351 | + * debian/control: Fix typo in Conflicts |
1352 | + |
1353 | + -- Didier Roche <didrocks@ubuntu.com> Mon, 20 Jul 2009 16:12:11 +0200 |
1354 | + |
1355 | +gdm (2.27.4-0ubuntu1) karmic; urgency=low |
1356 | + |
1357 | + * New upstream release: |
1358 | + - Favor XFree86 Xinerama over Solaris Xinerama on Solaris |
1359 | + - Make greeter a well behaved session client |
1360 | + - XDMCP fixes |
1361 | + - Fix up btmp record handling |
1362 | + - Handle locales with modifiers better |
1363 | + - Use better logic with keyboard layout handling |
1364 | + - Change example PAM file/documentation to demonstrate password-less login |
1365 | + - Handle usernames from non-utf8 locales |
1366 | + - Allow dbus introspection for gdm services |
1367 | + - Show more details authentication error messages in UI |
1368 | + - Allow uppercase and lowercase booleans in config file |
1369 | + - Be more consistent with booleans in schemas |
1370 | + - Use g_timeout_add_seconds to reduce wakeups |
1371 | + - Make greeter window more clear when user list is disabled |
1372 | + - Put greeter login window in same ctrl-alt-tab menu as panel |
1373 | + - Port greeter to PolicyKit 1.0 |
1374 | + - Shave off 1/2 second delay when bringing up greeter |
1375 | + - OS X portability fixes |
1376 | + - Look for locales in /usr/lib/locale instead of /usr/share/locale |
1377 | + - Better handling when two users have the same name |
1378 | + * Drop 01_xrdb_nocpp.patch, applied upstream. |
1379 | + * debian/control: |
1380 | + - use conflicts on the buggy libxklavier version to avoid race upgrade |
1381 | + leading to a gdm greeter crash |
1382 | + |
1383 | + -- Sebastien Bacher <seb128@ubuntu.com> Mon, 20 Jul 2009 15:20:37 +0200 |
1384 | + |
1385 | +gdm (2.26.1git20090717-0ubuntu2) karmic; urgency=low |
1386 | + |
1387 | + * Add 06_run_xsession.d.patch: Run /etc/X11/Xsession.d/. (LP: #401201) |
1388 | + * Add debian/watch. |
1389 | + * Add 01_default_keyboard_layout_hal.patch: Get default keyboard layout from |
1390 | + hal. Patch taken from Fedora. (LP: #395103) Add libhal-dev build |
1391 | + dependency. |
1392 | + * Add 99_autoreconf.patch to pick up above change. |
1393 | + |
1394 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 20 Jul 2009 13:20:46 +0200 |
1395 | + |
1396 | +gdm (2.26.1git20090717-0ubuntu1) karmic; urgency=low |
1397 | + |
1398 | + * Update to latest upstream git head: |
1399 | + - Make greeter login window be a dock. Fixes metacity complaining about |
1400 | + session management. (LP: #395324) |
1401 | + * Drop patches which are fixed upstream: |
1402 | + - 00git-greeter-session-management.patch |
1403 | + - 00git-invalid-dmrc-layout.patch |
1404 | + - 00git-use-after-free.patch |
1405 | + - 00git-xklavier4.patch |
1406 | + - 02_dont_force_us_keyboard.patch |
1407 | + - 04_polkit1.patch |
1408 | + * 80_workaround_incorrect_directories.patch: Update to new upstream version. |
1409 | + * Drop 01_xconfigoptions.patch; these configure variables are not used any |
1410 | + more in the upstream code, and upstream supplies the X.org -br option by |
1411 | + default now. Also drop the corresponding configure changes from |
1412 | + 17_update_default_xserver.patch. |
1413 | + * Apply 15_usplash.patch to debian/gdm.init and drop the patch. |
1414 | + * 17_update_default_xserver.patch: Update to new upstream version, add |
1415 | + corresponding configure change, add patch tag header, forward upstream, |
1416 | + and rename to 02_x_server_location.patch. |
1417 | + * Drop 99_autoreconf.patch. The only remaining build system change is the |
1418 | + previous item. |
1419 | + * Drop 20_xdm-stuff.patch, it's just cruft. |
1420 | + * Drop debian/Xsession, and change debian/rules to install the upstream one. |
1421 | + * 01_xrdb_nocpp.patch: Add patch tag header, forward upstream. |
1422 | + * Rename 80_workaround_incorrect_directories.patch to |
1423 | + 04_fix_external_program_directories.patch and add patch tag header. |
1424 | + * Rename 81_initial_server_on_vt7.patch to 05_initial_server_on_vt7.patch. |
1425 | + * debian/rules: Remove /var/gdm (empty and nonstandard) and /var/run (will |
1426 | + be created at runtime), thanks lintian. |
1427 | + * debian/copyright: Point to versioned GPL, thanks lintian. |
1428 | + * debian/gdm.postrm: Use "set -e" to conform to policy. |
1429 | + * Add debian/xterm.desktop: Reintroduce "failsafe xterm" session. |
1430 | + |
1431 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 17 Jul 2009 11:41:35 +0200 |
1432 | + |
1433 | +gdm (2.26.1-0ubuntu7) karmic; urgency=low |
1434 | + |
1435 | + * Rename 04_xklavier4.patch to 00git-xklavier4.patch. |
1436 | + * Add 04_polkit1.patch: Port to PolicyKit (which essentially means to rip |
1437 | + out all PolicyKit code, since the backend now talks to the authentication |
1438 | + agent itself). |
1439 | + * debian/control: Drop polkit build dependency. |
1440 | + * Add debian/patches/99_autoreconf.patch: Regenerate autotools files to pick |
1441 | + up 04_polkit1.patch changes. |
1442 | + |
1443 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 13 Jul 2009 14:50:17 +0200 |
1444 | + |
1445 | +gdm (2.26.1-0ubuntu6) karmic; urgency=low |
1446 | + |
1447 | + * Add 00git-greeter-session-management.patch: Make the greeter a |
1448 | + well-behaved session client. Patch taken from upstream git head. |
1449 | + * Add 00git-use-after-free.patch: Fix crash in xdmcp chooser. Taken from |
1450 | + upstream git head. |
1451 | + * debian/control: Add libxklavier-dev build dependency, to get the |
1452 | + keyboard selector. |
1453 | + * Add 04_xklavier4.patch: Fix build with libxklavier 4.0. Taken from |
1454 | + upstream git head. |
1455 | + * Add 00git-invalid-dmrc-layout.patch: Correctly handle invalid xkb layout |
1456 | + from ~/.dmrc. Taken from upstream git head. |
1457 | + |
1458 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 13 Jul 2009 11:17:44 +0200 |
1459 | + |
1460 | +gdm (2.26.1-0ubuntu5) karmic; urgency=low |
1461 | + |
1462 | + * debian/gdm.preinst: Remove obsolete conffiles. |
1463 | + * debian/gdm.preinst: Migrate autologin settings from gdm.conf (which isn't |
1464 | + read any more) to custom.conf. (LP: #396459) |
1465 | + * Add 81_initial_server_on_vt7.patch: Force initial X server to go to tty7 |
1466 | + instead of tty1. This is an Ugly Hack until we have a cleaner solution for |
1467 | + getty not to tramp over a running X server on vt1. This bandaids the |
1468 | + immediate problem of the first X server being killed after a few minutes |
1469 | + due to getty on tty1 timing out. (LP: #396226) |
1470 | + |
1471 | + -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 09 Jul 2009 18:08:07 +0200 |
1472 | + |
1473 | +gdm (2.26.1-0ubuntu4) karmic; urgency=low |
1474 | + |
1475 | + * debian/gdm.preinst: Do not check for an existing custom.conf, since we |
1476 | + already ship it. Always let the gdm.conf-custom win, to actually migrate |
1477 | + settings. |
1478 | + * debian/control: Drop alternative dependencies for gnome-session, since gdm |
1479 | + itself now needs gnome-session. (LP: #396321). |
1480 | + |
1481 | + -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 07 Jul 2009 08:53:38 +0200 |
1482 | + |
1483 | +gdm (2.26.1-0ubuntu3) karmic; urgency=low |
1484 | + |
1485 | + * Add 03_hide_system_users.patch: Do not show system users in the "frequent |
1486 | + users" list. (LP: #395281) |
1487 | + * debian/rules: Call dh_installinit with --no-scripts, to avoid restarting |
1488 | + gdm (and killing your X session) during upgrade. The prerm/postinst |
1489 | + scripts already have code to reload gdm if appropriate. Unfortunately this |
1490 | + doesn't help to fix the upgrade from 0ubuntu2, its prerm already kills it. |
1491 | + (LP: #395302) This also fixes the "locks session and spawns a second X |
1492 | + server" issue on upgrades from Jaunty. (LP: #395313) |
1493 | + * Drop 16_correct_customconf_naming.patch: Upstream uses |
1494 | + and installs /etc/gdm/custom.conf, so gdm also needs to read this. Add |
1495 | + debian/gdm.preinst to migrate the old name to the new name on upgrades. |
1496 | + (LP: #395861) |
1497 | + * 02_dont_force_us_keyboard.patch: Don't return NULL in |
1498 | + get_default_layout(), but return an empty string and explicitly check this |
1499 | + when setting $GDM_KEYBOARD_LAYOUT. With NULL, gdm trips over an assertion |
1500 | + check. (LP: #395595) |
1501 | + |
1502 | + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 06 Jul 2009 16:04:25 +0200 |
1503 | + |
1504 | +gdm (2.26.1-0ubuntu2) karmic; urgency=low |
1505 | + |
1506 | + * debian/control: Add Vcs-Bzr, package imported into bzr. |
1507 | + * Add 02_dont_force_us_keyboard.patch: Don't force GDM_KEYBOARD_LAYOUT=us if |
1508 | + gdm does not have an explicit setting (which it currently doesn't, since |
1509 | + there is not even an interface for changing the keyboard layout). Instead, |
1510 | + let the GNOME session default to the very same system default as gdm |
1511 | + itself. (LP: #395103) |
1512 | + |
1513 | + -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 03 Jul 2009 19:19:56 +0200 |
1514 | + |
1515 | +gdm (2.26.1-0ubuntu1) karmic; urgency=low |
1516 | + |
1517 | + * Upload the new gdm codebase to karmic, there is several known issues but |
1518 | + the new version need testing: |
1519 | + - there is no graphical configure tool yet |
1520 | + - gdm will not work correctly after upgrade until restart (restarting on |
1521 | + upgrade is not possible since it would close running xsession) |
1522 | + - the fast user switch applet ubuntu changes and the guest session |
1523 | + have not been updated yet |
1524 | + |
1525 | + -- Sebastien Bacher <seb128@ubuntu.com> Thu, 02 Jul 2009 16:24:43 +0200 |
1526 | + |
1527 | +gdm (2.26.1-0ubuntu0.3) karmic; urgency=low |
1528 | + |
1529 | + * debian/gdm.init: tweak previous change to not break default server |
1530 | + |
1531 | + -- Sebastien Bacher <seb128@ubuntu.com> Wed, 01 Jul 2009 09:55:39 +0200 |
1532 | + |
1533 | +gdm (2.26.1-0ubuntu0.2) karmic; urgency=low |
1534 | + |
1535 | + * debian/patches/17_update_default_xserver.patch: |
1536 | + - update xserver location |
1537 | + * debian/gdm.init: use the correct binary naming so restart is working |
1538 | + |
1539 | + -- Sebastien Bacher <seb128@ubuntu.com> Tue, 30 Jun 2009 23:23:17 +0200 |
1540 | + |
1541 | +gdm (2.26.1-0ubuntu0.1) karmic; urgency=low |
1542 | + |
1543 | + * New upstream version |
1544 | + |
1545 | + -- Sebastien Bacher <seb128@ubuntu.com> Thu, 04 Jun 2009 16:01:19 +0200 |
1546 | + |
1547 | +gdm-new (2.25.2-0ubuntu0.2) jaunty; urgency=low |
1548 | + |
1549 | + * debian/patches/16_correct_customconf_naming.patch: |
1550 | + - use correct gdm.conf-custom location so user config settings are read |
1551 | + |
1552 | + -- Sebastien Bacher <seb128@ubuntu.com> Tue, 03 Mar 2009 17:40:04 +0100 |
1553 | + |
1554 | +gdm-new (2.25.2-0ubuntu0.1) intrepid; urgency=low |
1555 | + |
1556 | + * New upstream version, the code is a rewrite so the packaging is new too |
1557 | + |
1558 | + -- Sebastien Bacher <seb128@ubuntu.com> Tue, 15 Jul 2008 14:16:47 +0100 |
1559 | + |
1560 | |
1561 | === added file 'debian/compat' |
1562 | --- debian/compat 1970-01-01 00:00:00 +0000 |
1563 | +++ debian/compat 2011-03-10 14:39:08 +0000 |
1564 | @@ -0,0 +1,1 @@ |
1565 | +7 |
1566 | |
1567 | === added file 'debian/control' |
1568 | --- debian/control 1970-01-01 00:00:00 +0000 |
1569 | +++ debian/control 2011-03-10 14:39:08 +0000 |
1570 | @@ -0,0 +1,67 @@ |
1571 | +Source: gdm |
1572 | +Section: gnome |
1573 | +Priority: optional |
1574 | +Maintainer: Sebastien Bacher <seb128@ubuntu.com> |
1575 | +Build-Depends: cdbs, |
1576 | + debhelper (>= 7.3.15ubuntu2), |
1577 | + gnome-common, |
1578 | + autotools-dev, |
1579 | + gnome-pkg-tools, |
1580 | + libglib2.0-dev (>= 2.22), |
1581 | + libdbus-glib-1-dev (>= 0.74), |
1582 | + libx11-dev, |
1583 | + libgtk2.0-dev (>= 2.23.90-0ubuntu4), |
1584 | + libgconf2-dev, |
1585 | + gnome-doc-utils, |
1586 | + libpanel-applet2-dev, |
1587 | + gconf2, |
1588 | + libattr1-dev, |
1589 | + libpam0g-dev, |
1590 | + libxdmcp-dev, |
1591 | + libwrap0-dev, |
1592 | + libxi-dev, |
1593 | + libxinerama-dev, |
1594 | + libxklavier-dev, |
1595 | + libpolkit-gobject-1-dev, |
1596 | + libcanberra-gtk-dev (>= 0.4), |
1597 | + libselinux1-dev [!hurd-i386 !kfreebsd-i386 !kfreebsd-amd64], |
1598 | + iso-codes, |
1599 | + libupower-glib-dev (>= 0.9.0) |
1600 | +Standards-Version: 3.9.1 |
1601 | +Vcs-Bzr: https://code.launchpad.net/~ubuntu-desktop/gdm/ubuntu |
1602 | + |
1603 | +Package: gdm |
1604 | +Conflicts: gdm-snapshot, fast-user-switch-applet, libxklavier15 (<< 4.0-0ubuntu2), xsplash (<< 0.8) |
1605 | +Replaces: gdm-snapshot, fast-user-switch-applet |
1606 | +Architecture: any |
1607 | +Depends: ${shlibs:Depends}, |
1608 | + ${misc:Depends}, |
1609 | + adduser, |
1610 | + libpam-modules (>= 0.72-1), |
1611 | + libpam-runtime (>= 0.76-13.1), |
1612 | + gnome-session-bin, |
1613 | + kbd | console-tools, |
1614 | + udev (>= 149-2) |
1615 | +Recommends: xserver-xorg, |
1616 | + metacity | x-window-manager, |
1617 | + gnome-settings-daemon | xfconf |
1618 | +Suggests: locales, |
1619 | + uswsusp, |
1620 | + libpam-gnome-keyring, |
1621 | + gnome-power-manager, |
1622 | + gnome-orca, |
1623 | + gok, |
1624 | + gnome-mag |
1625 | +Provides: x-display-manager |
1626 | +Breaks: usplash |
1627 | +Description: GNOME Display Manager |
1628 | + gdm provides the equivalent of a "login:" prompt for X displays- it |
1629 | + pops up a login window and starts an X session. |
1630 | + . |
1631 | + It provides all the functionality of xdm, including XDMCP support for |
1632 | + managing remote displays. |
1633 | + . |
1634 | + The greeting window is written using the GNOME libraries and hence |
1635 | + looks like a GNOME application- even to the extent of supporting |
1636 | + themes! By default, the greeter is run as an unprivileged user for |
1637 | + security. |
1638 | |
1639 | === added file 'debian/copyright' |
1640 | --- debian/copyright 1970-01-01 00:00:00 +0000 |
1641 | +++ debian/copyright 2011-03-10 14:39:08 +0000 |
1642 | @@ -0,0 +1,54 @@ |
1643 | +This package was debianized by Sebastien Bacher <seb128@canonical.com> on |
1644 | +Tue, 15 Jul 2008 14:16:47 +0100. |
1645 | + |
1646 | +It was downloaded from http://ftp.acc.umu.se/pub/GNOME/sources/gdm/2.22 |
1647 | + |
1648 | +Upstream Authors: |
1649 | + |
1650 | + William Jon McCann <mccann@jhu.edu> |
1651 | + Ray Strode <rstrode@redhat.com> |
1652 | + |
1653 | +Copyright: |
1654 | + |
1655 | +Copyright (C) 2007 William Jon McCann <mccann@jhu.edu> |
1656 | +Copyright (C) 2003 Red Hat Inc. |
1657 | +Copyright (C) 1999, 2000 Aladdin Enterprises. All rights reserved. |
1658 | +Copyright (C) 2006 Red Hat, Inc. |
1659 | +Copyright (C) 2006 Ray Strode <rstrode@redhat.com> |
1660 | +Copyright (C) 2004, 2008 Sun Microsystems, Inc. |
1661 | +Copyright (C) 2005, 2008 Red Hat, Inc. |
1662 | +Copyright (c) 2007 David Zeuthen <davidz@redhat.com> |
1663 | +Copyright (C) 1998, 1999, 2000 Martin K. Petersen <mkp@mkp.net> |
1664 | +Copyright (C) 2004-2005 James M. Cape <jcape@ignore-your.tv>. |
1665 | +Copyright (C) 2001 Havoc Pennington, 2002 Red Hat Inc. |
1666 | +Copyright (C) 2003-2006 Vincent Untz |
1667 | +Copyright (C) 2002 Red Hat, Inc. |
1668 | +Copyright (C) 2006, 2007 Christian Persch |
1669 | +Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald |
1670 | +Copyright (C) 2002 Anders Carlsson <andersca@gnu.org> |
1671 | +Copyright (C) 2008 Red Hat, Inc. |
1672 | +Copyright (C) 2002 Free Software Foundation, Inc. |
1673 | +Copyright (C) 2003 Sun Microsystems, Inc. |
1674 | +Copyright (C) 2000 Helix Code, Inc. |
1675 | +Copyright (C) 2001-2006 Jonathan Blandford <jrb@alum.mit.edu> |
1676 | + |
1677 | +License: |
1678 | + |
1679 | + This package is free software; you can redistribute it and/or modify |
1680 | + it under the terms of the GNU General Public License as published by |
1681 | + the Free Software Foundation version 3 |
1682 | + |
1683 | + This package is distributed in the hope that it will be useful, |
1684 | + but WITHOUT ANY WARRANTY; without even the implied warranty of |
1685 | + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
1686 | + GNU General Public License for more details. |
1687 | + |
1688 | + You should have received a copy of the GNU General Public License |
1689 | + along with this package; if not, write to the Free Software |
1690 | + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
1691 | + |
1692 | +On Debian systems, the complete text of the GNU General |
1693 | +Public License can be found in `/usr/share/common-licenses/GPL-3'. |
1694 | + |
1695 | +The Debian packaging is (C) 2008, Sebastien Bacher <seb128@canonical.com> and |
1696 | +is licensed under the GPL, see above. |
1697 | |
1698 | === added file 'debian/gdm-autologin.pam' |
1699 | --- debian/gdm-autologin.pam 1970-01-01 00:00:00 +0000 |
1700 | +++ debian/gdm-autologin.pam 2011-03-10 14:39:08 +0000 |
1701 | @@ -0,0 +1,11 @@ |
1702 | +#%PAM-1.0 |
1703 | +auth requisite pam_nologin.so |
1704 | +auth required pam_env.so readenv=1 |
1705 | +auth required pam_env.so readenv=1 envfile=/etc/default/locale |
1706 | +auth required pam_permit.so |
1707 | +@include common-account |
1708 | +session [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so close |
1709 | +session required pam_limits.so |
1710 | +@include common-session |
1711 | +session [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so open |
1712 | +@include common-password |
1713 | |
1714 | === added file 'debian/gdm.8.pod' |
1715 | --- debian/gdm.8.pod 1970-01-01 00:00:00 +0000 |
1716 | +++ debian/gdm.8.pod 2011-03-10 14:39:08 +0000 |
1717 | @@ -0,0 +1,47 @@ |
1718 | +=head1 NAME |
1719 | + |
1720 | +gdm - GNOME Display Manager |
1721 | + |
1722 | +=head1 SYNOPSIS |
1723 | + |
1724 | +gdm |
1725 | + |
1726 | +=head1 DESCRIPTION |
1727 | + |
1728 | +B<gdm> is the equivalent of xdm(1x) or wdm(1x), but uses the GNOME |
1729 | +libraries to provide a GNOME look-and-feel. It provides the GNOME |
1730 | +equivalent of a "login:" prompt. |
1731 | + |
1732 | +B<gdm> reads F</etc/gdm/gdm.conf> for its configuration. For each |
1733 | +local display, gdm starts an X server and runs gdmlogin(8x) on that |
1734 | +display. The main gdm process also listens for XDMCP requests from |
1735 | +remote displays. These requests can either be direct, causing B<gdm> |
1736 | +to start a gdmlogin(8x) on the remote display, or indirect, causing |
1737 | +a gdmchooser(8x) to be opened. |
1738 | + |
1739 | +When managing a display, B<gdm> attempts to execute |
1740 | +F</etc/gdm/Init/>I<display>, or F</etc/gdm/Init/Default> if that does |
1741 | +not exist. When a user logs in, B<gdm> first attempts |
1742 | +F</etc/gdm/PreSession/>I<display> (or F</etc/gdm/PreSession/Default>), |
1743 | +and then one of the sessions in F</etc/gdm/Sessions>. When the session |
1744 | +has completed, B<gdm> attempts to run |
1745 | +F</etc/gdm/PostSession/>I<display>, or |
1746 | +F</etc/gdm/PostSession/>I<Default>. Of all these files, only the |
1747 | +F</etc/gdm/Sessions> one is required to exist. |
1748 | + |
1749 | +B<gdm> maintains information about the displays it is managing in |
1750 | +F</var/lib/gdm>. This includes xauth information, so this directory |
1751 | +is not readable to normal users. |
1752 | + |
1753 | +B<gdm> uses PAM to perform authentication using the config file |
1754 | +F</etc/pam.d/gdm>. |
1755 | + |
1756 | +=head1 AUTHOR |
1757 | + |
1758 | +Martin Kasper Petersen <mkp@SunSITE.auc.dk> |
1759 | + |
1760 | +This manual page written by Steve Haslam <araqnid@debian.org> for |
1761 | +Debian GNU/Linux. Updated by Raphaël Hertzog <hertzog@debian.org>. |
1762 | +Updated by Ryan Murray <rmurray@debian.org>. |
1763 | + |
1764 | +=cut |
1765 | |
1766 | === added file 'debian/gdm.config' |
1767 | --- debian/gdm.config 1970-01-01 00:00:00 +0000 |
1768 | +++ debian/gdm.config 2011-03-10 14:39:08 +0000 |
1769 | @@ -0,0 +1,41 @@ |
1770 | +#!/bin/sh |
1771 | +# Debian gdm package configuration script |
1772 | +# Copyright 2000-2001 Branden Robinson. |
1773 | +# Licensed under the GNU General Public License, version 2. See the file |
1774 | +# /usr/share/common-licenses/GPL or <http://www.gnu.org/copyleft/gpl.txt>. |
1775 | + |
1776 | +set -e |
1777 | + |
1778 | +# source debconf library |
1779 | +. /usr/share/debconf/confmodule |
1780 | + |
1781 | +THIS_PACKAGE=gdm |
1782 | +DEFAULT_DISPLAY_MANAGER_FILE=/etc/X11/default-display-manager |
1783 | + |
1784 | +# set default display manager |
1785 | + |
1786 | +db_get shared/default-x-display-manager |
1787 | +OLD_DEFAULT="$RET" |
1788 | + |
1789 | +db_metaget shared/default-x-display-manager owners |
1790 | +OWNERS="$RET" |
1791 | +db_metaget shared/default-x-display-manager choices |
1792 | +CHOICES="$RET" |
1793 | + |
1794 | +if [ "$OWNERS" != "$CHOICES" ]; then |
1795 | + db_subst shared/default-x-display-manager choices $OWNERS |
1796 | + db_fset shared/default-x-display-manager seen false |
1797 | +fi |
1798 | + |
1799 | +db_input high shared/default-x-display-manager || true |
1800 | +db_go |
1801 | + |
1802 | +# using this display manager? |
1803 | +db_get shared/default-x-display-manager |
1804 | +CURRENT_DEFAULT="$RET" |
1805 | +# remove the default display manager file if we're going to change it |
1806 | +if [ "$OLD_DEFAULT" != "$CURRENT_DEFAULT" ]; then |
1807 | + rm -f $DEFAULT_DISPLAY_MANAGER_FILE |
1808 | +fi |
1809 | + |
1810 | +exit 0 |
1811 | |
1812 | === added file 'debian/gdm.init' |
1813 | --- debian/gdm.init 1970-01-01 00:00:00 +0000 |
1814 | +++ debian/gdm.init 2011-03-10 14:39:08 +0000 |
1815 | @@ -0,0 +1,119 @@ |
1816 | +#! /bin/sh |
1817 | +# |
1818 | +### BEGIN INIT INFO |
1819 | +# Provides: gdm |
1820 | +# Should-Start: console-screen acpid dbus hal network-manager |
1821 | +# Required-Start: $local_fs $remote_fs |
1822 | +# Required-Stop: $local_fs $remote_fs |
1823 | +# Default-Start: 2 3 4 5 |
1824 | +# Default-Stop: 0 1 6 |
1825 | +# Short-Description: GNOME Display Manager |
1826 | +# Description: Debian init script for the GNOME Display Manager |
1827 | +### END INIT INFO |
1828 | +# |
1829 | +# Author: Ryan Murray <rmurray@debian.org> |
1830 | +# |
1831 | +set -e |
1832 | + |
1833 | +# To start gdm even if it is not the default display manager, change |
1834 | +# HEED_DEFAULT_DISPLAY_MANAGER to "false." |
1835 | +HEED_DEFAULT_DISPLAY_MANAGER=true |
1836 | +DEFAULT_DISPLAY_MANAGER_FILE=/etc/X11/default-display-manager |
1837 | +PATH=/sbin:/bin:/usr/sbin:/usr/bin |
1838 | +DAEMON=/usr/sbin/gdm-binary |
1839 | +PIDFILE=/var/run/gdm.pid |
1840 | +UPGRADEFILE=/var/run/gdm.upgrade |
1841 | + |
1842 | +if [ -e $UPGRADEFILE -a "$1" != "restart" -a "$1" != "force-reload" ]; then |
1843 | + SSD_ARG="--startas $DAEMON" |
1844 | + rm -f $UPGRADEFILE |
1845 | +else |
1846 | + SSD_ARG="--exec $DAEMON" |
1847 | +fi |
1848 | + |
1849 | +# Allow cdd to override the config |
1850 | +if [ -f /etc/gdm/gdm-cdd.conf ]; then |
1851 | + CONFIG_FILE="--config=/etc/gdm/gdm-cdd.conf" |
1852 | +fi |
1853 | + |
1854 | +test -x $DAEMON || exit 0 |
1855 | + |
1856 | +if [ -r /etc/default/locale ]; then |
1857 | + . /etc/default/locale |
1858 | + export LANG LANGUAGE |
1859 | +elif [ -r /etc/environment ]; then |
1860 | + . /etc/environment |
1861 | + export LANG LANGUAGE |
1862 | +fi |
1863 | + |
1864 | +. /lib/lsb/init-functions |
1865 | + |
1866 | +case "$1" in |
1867 | + start) |
1868 | + if grep -wqs text /proc/cmdline; then |
1869 | + log_warning_msg "Not starting GNOME Display Manager (gdm); found 'text' in kernel commandline." |
1870 | + elif [ -e "$DEFAULT_DISPLAY_MANAGER_FILE" -a "$HEED_DEFAULT_DISPLAY_MANAGER" = "true" -a "$(cat $DEFAULT_DISPLAY_MANAGER_FILE 2>/dev/null)" != "/usr/sbin/gdm" ]; then |
1871 | + log_warning_msg "Not starting GNOME Display Manager (gdm); it is not the default display manager." |
1872 | + else |
1873 | + if [ -z "$SPLASH_ORIG_CONSOLE" ]; then |
1874 | + log_begin_msg "Starting GNOME Display Manager..." |
1875 | + fi |
1876 | + # if usplash is running, make sure to stop it now, yes "start" kills it. |
1877 | + if [ "$SPLASH_ORIG_CONSOLE" ]; then |
1878 | + # usplash was already shut down earlier, so don't |
1879 | + # log success as it will look weird on the console. |
1880 | + log_end_msg=: |
1881 | + elif pidof usplash > /dev/null; then |
1882 | + SPLASH_ORIG_CONSOLE="$(fgconsole)" |
1883 | + DO_NOT_SWITCH_VT=yes /etc/init.d/usplash start |
1884 | + # We've just shut down usplash, so don't log |
1885 | + # success as it will look weird on the console. |
1886 | + log_end_msg=: |
1887 | + else |
1888 | + log_end_msg=log_end_msg |
1889 | + fi |
1890 | + start-stop-daemon --start --quiet --background --oknodo --pidfile $PIDFILE --name gdm-binary $SSD_ARG -- $CONFIG_FILE >/dev/null 2>&1 || log_end_msg 1 |
1891 | + $log_end_msg 0 |
1892 | + |
1893 | + if [ "$SPLASH_ORIG_CONSOLE" ] && \ |
1894 | + [ "$SPLASH_ORIG_CONSOLE" != serial ]; then |
1895 | + # Wait a short while for the active console to |
1896 | + # change, to try to avoid visible console noise from |
1897 | + # later init scripts. |
1898 | + i=0 |
1899 | + while [ "$(fgconsole)" = "$SPLASH_ORIG_CONSOLE" ]; do |
1900 | + i="$(($i + 1))" |
1901 | + if [ "$i" -gt 5 ]; then |
1902 | + break |
1903 | + fi |
1904 | + sleep 1 |
1905 | + done |
1906 | + fi |
1907 | + fi |
1908 | + ;; |
1909 | + stop) |
1910 | + log_begin_msg "Stopping GNOME Display Manager..." |
1911 | + start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE --name gdm-binary $SSD_ARG --retry 30 >/dev/null 2>&1 |
1912 | + log_end_msg 0 |
1913 | + ;; |
1914 | + reload) |
1915 | + log_begin_msg "Reloading GNOME Display Manager configuration..." |
1916 | + log_warning_msg "Changes will take effect when all current X sessions have ended." |
1917 | + start-stop-daemon --stop --signal USR1 --quiet --pidfile \ |
1918 | + $PIDFILE --name gdm-binary $SSD_ARG >/dev/null 2>&1 |
1919 | + log_end_msg 0 |
1920 | + ;; |
1921 | + restart|force-reload) |
1922 | + $0 stop || true |
1923 | + $0 start |
1924 | + ;; |
1925 | + status) |
1926 | + status_of_proc -p "$PIDFILE" "$DAEMON" gdm-binary && exit 0 || exit $? |
1927 | + ;; |
1928 | + *) |
1929 | + log_success_msg "Usage: /etc/init.d/gdm {start|stop|restart|reload|force-reload|status}" |
1930 | + exit 1 |
1931 | + ;; |
1932 | +esac |
1933 | + |
1934 | +exit 0 |
1935 | |
1936 | === added file 'debian/gdm.install' |
1937 | --- debian/gdm.install 1970-01-01 00:00:00 +0000 |
1938 | +++ debian/gdm.install 2011-03-10 14:39:08 +0000 |
1939 | @@ -0,0 +1,1 @@ |
1940 | +debian/60xdg_path-on-session etc/X11/Xsession.d/ |
1941 | |
1942 | === added file 'debian/gdm.pam' |
1943 | --- debian/gdm.pam 1970-01-01 00:00:00 +0000 |
1944 | +++ debian/gdm.pam 2011-03-10 14:39:08 +0000 |
1945 | @@ -0,0 +1,14 @@ |
1946 | +#%PAM-1.0 |
1947 | +auth requisite pam_nologin.so |
1948 | +auth required pam_env.so readenv=1 |
1949 | +auth required pam_env.so readenv=1 envfile=/etc/default/locale |
1950 | +auth sufficient pam_succeed_if.so user ingroup nopasswdlogin |
1951 | +@include common-auth |
1952 | +auth optional pam_gnome_keyring.so |
1953 | +@include common-account |
1954 | +session [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so close |
1955 | +session required pam_limits.so |
1956 | +@include common-session |
1957 | +session [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so open |
1958 | +session optional pam_gnome_keyring.so auto_start |
1959 | +@include common-password |
1960 | |
1961 | === added file 'debian/gdm.postinst' |
1962 | --- debian/gdm.postinst 1970-01-01 00:00:00 +0000 |
1963 | +++ debian/gdm.postinst 2011-03-10 14:39:08 +0000 |
1964 | @@ -0,0 +1,62 @@ |
1965 | +#!/bin/sh |
1966 | + |
1967 | +set -e |
1968 | + |
1969 | +. /usr/share/debconf/confmodule |
1970 | + |
1971 | +THIS_PACKAGE=gdm |
1972 | +DEFAULT_DISPLAY_MANAGER_FILE=/etc/X11/default-display-manager |
1973 | + |
1974 | +# creating gdm group if he isn't already there |
1975 | +if ! getent group gdm >/dev/null; then |
1976 | + addgroup --system gdm |
1977 | +fi |
1978 | + |
1979 | +# creating gdm user if he isn't already there |
1980 | +if ! getent passwd gdm >/dev/null; then |
1981 | + adduser --system --ingroup gdm --home /var/lib/gdm gdm |
1982 | + usermod -c "Gnome Display Manager" gdm |
1983 | + usermod -d "/var/lib/gdm" gdm |
1984 | + usermod -g "gdm" gdm |
1985 | + usermod -s "/bin/false" gdm |
1986 | +fi |
1987 | + |
1988 | +# Creating nopasswdlogin group if he isn't already there. |
1989 | +# That enables the password-less login feature in the users-admin |
1990 | +# tool of the gnome-system-tools for users that belong to it, |
1991 | +# and which is working thanks to GDM's PAM policy. |
1992 | +if ! getent group nopasswdlogin >/dev/null; then |
1993 | + addgroup --system nopasswdlogin |
1994 | +fi |
1995 | + |
1996 | +if [ -d /var/lib/gdm ]; then |
1997 | + chown gdm:gdm /var/lib/gdm |
1998 | + chown -R gdm:gdm /var/lib/gdm/.gconf* |
1999 | + chmod 0750 /var/lib/gdm |
2000 | +fi |
2001 | + |
2002 | +# debconf is not a registry, so we only fiddle with the default file if it |
2003 | +# does not exist |
2004 | +if [ ! -e $DEFAULT_DISPLAY_MANAGER_FILE ]; then |
2005 | + if db_get shared/default-x-display-manager; then |
2006 | + # workaround debconf passthru bug (#379198) |
2007 | + if [ -z "$RET" ]; then |
2008 | + $RET="$THIS_PACKAGE" |
2009 | + fi |
2010 | + if [ "$THIS_PACKAGE" != "$RET" ]; then |
2011 | + echo "Please be sure to run \"dpkg --configure $RET\"." |
2012 | + fi |
2013 | + if db_get "$RET"/daemon_name; then |
2014 | + echo "$RET" > $DEFAULT_DISPLAY_MANAGER_FILE |
2015 | + fi |
2016 | + fi |
2017 | +fi |
2018 | +# debconf hangs if gdm gets started below without this |
2019 | +db_stop || true |
2020 | + |
2021 | +PID=$(status "gdm" 2>/dev/null | awk '/[0-9]$/ { print $NF }') |
2022 | +[ -z "$PID" ] || kill -HUP $PID |
2023 | + |
2024 | +#DEBHELPER# |
2025 | + |
2026 | +exit 0 |
2027 | |
2028 | === added file 'debian/gdm.postrm' |
2029 | --- debian/gdm.postrm 1970-01-01 00:00:00 +0000 |
2030 | +++ debian/gdm.postrm 2011-03-10 14:39:08 +0000 |
2031 | @@ -0,0 +1,27 @@ |
2032 | +#!/bin/sh |
2033 | +set -e |
2034 | + |
2035 | +if [ "$1" = "purge" ] ; then |
2036 | + rm -f /etc/default/gdm |
2037 | + if [ -d /etc/gdm ]; then |
2038 | + rmdir /etc/gdm/Init /etc/gdm/PreSession /etc/gdm/PostSession /etc/gdm/PostLogin /etc/gdm/Sessions /etc/gdm 2>/dev/null || true |
2039 | + fi |
2040 | + if [ -d /var/lib/gdm ]; then |
2041 | + rm -r /var/lib/gdm |
2042 | + fi |
2043 | + if [ -d /var/log/gdm ]; then |
2044 | + rm -r /var/log/gdm |
2045 | + fi |
2046 | + if getent passwd gdm >/dev/null; then |
2047 | + if [ -x /usr/sbin/deluser ]; then |
2048 | + deluser --system gdm || echo "Could not remove gdm user." |
2049 | + fi |
2050 | + fi |
2051 | + if getent group gdm >/dev/null; then |
2052 | + if [ -x /usr/sbin/delgroup ]; then |
2053 | + delgroup --system gdm || echo "Could not remove gdm group." |
2054 | + fi |
2055 | + fi |
2056 | +fi |
2057 | +#DEBHELPER# |
2058 | +exit 0 |
2059 | |
2060 | === added file 'debian/gdm.preinst' |
2061 | --- debian/gdm.preinst 1970-01-01 00:00:00 +0000 |
2062 | +++ debian/gdm.preinst 2011-03-10 14:39:08 +0000 |
2063 | @@ -0,0 +1,49 @@ |
2064 | +#!/bin/sh -e |
2065 | + |
2066 | +rm_conffile() { |
2067 | + PKGNAME="gdm" |
2068 | + CONFFILE="$1" |
2069 | + |
2070 | + if [ -e "$CONFFILE" ]; then |
2071 | + md5sum="`md5sum \"$CONFFILE\" | sed -e \"s/ .*//\"`" |
2072 | + old_md5sum="`dpkg-query -W -f='${Conffiles}' $PKGNAME | sed -n -e \"\\\\' $CONFFILE'{s/ obsolete$//;s/.* //p}\"`" |
2073 | + if [ "$md5sum" != "$old_md5sum" ]; then |
2074 | + echo "Obsolete conffile $CONFFILE has been modified by you." |
2075 | + echo "Saving as $CONFFILE.dpkg-bak ..." |
2076 | + mv -f "$CONFFILE" "$CONFFILE".dpkg-bak |
2077 | + else |
2078 | + echo "Removing obsolete conffile $CONFFILE ..." |
2079 | + rm -f "$CONFFILE" |
2080 | + fi |
2081 | + fi |
2082 | +} |
2083 | + |
2084 | +if [ "$1" = "upgrade" ] || [ "$1" = "install" ] && \ |
2085 | + # earlier releases used /etc/gdm/gdm.conf-custom, but upstream uses |
2086 | + # custom.conf |
2087 | + dpkg --compare-versions "$2" le-nl "2.26.1-0ubuntu5"; then |
2088 | + if [ -f /etc/gdm/gdm.conf-custom ]; then |
2089 | + echo "Renaming /etc/gdm/gdm.conf-custom to /etc/gdm/custom.conf" >&2 |
2090 | + mv /etc/gdm/gdm.conf-custom /etc/gdm/custom.conf |
2091 | + fi |
2092 | + |
2093 | + # migrate autologin settings |
2094 | + if ! egrep -q '^(Automatic|Timed)Login(Enable|Delay|)=' /etc/gdm/custom.conf; then |
2095 | + settings="`egrep '^((Automatic|Timed)LoginEnable=[^f])|^((Automatic|Timed)Login=.)|^TimedLoginDelay=[^3]' /etc/gdm/gdm.conf`" || true |
2096 | + if [ -n "$settings" ]; then |
2097 | + echo '[daemon]' >> /etc/gdm/custom.conf |
2098 | + echo "$settings" >> /etc/gdm/custom.conf |
2099 | + fi |
2100 | + fi |
2101 | + |
2102 | + # obsolete conffiles |
2103 | + rm_conffile /etc/gdm/gdm.conf |
2104 | + rm_conffile /etc/gdm/locale.conf |
2105 | + rm_conffile /etc/gdm/gdmprefetchlist |
2106 | + rm_conffile /etc/gdm/XKeepsCrashing |
2107 | + rm_conffile /etc/gdm/modules/AccessKeyMouseEvents |
2108 | + rm_conffile /etc/gdm/modules/factory-AccessKeyMouseEvents |
2109 | + rm_conffile /etc/gdm/modules/AccessDwellMouseEvents |
2110 | + rm_conffile /etc/gdm/modules/factory-AccessDwellMouseEvents |
2111 | +fi |
2112 | + |
2113 | |
2114 | === added file 'debian/gdm.prerm' |
2115 | --- debian/gdm.prerm 1970-01-01 00:00:00 +0000 |
2116 | +++ debian/gdm.prerm 2011-03-10 14:39:08 +0000 |
2117 | @@ -0,0 +1,64 @@ |
2118 | +#!/bin/bash |
2119 | +# Debian gdm package pre-removal script |
2120 | +# Copyright 2001 Branden Robinson. |
2121 | +# Licensed under the GNU General Public License, version 2. See the file |
2122 | +# /usr/share/common-licenses/GPL or <http://www.gnu.org/copyleft/gpl.txt>. |
2123 | +# Acknowlegements to Stephen Early, Mark Eichin, and Manoj Srivastava. |
2124 | + |
2125 | +set -e |
2126 | + |
2127 | +THIS_PACKAGE=gdm |
2128 | +DEFAULT_DISPLAY_MANAGER_FILE=/etc/X11/default-display-manager |
2129 | + |
2130 | +if [ "$1" = "remove" -o "$1" = "deconfigure" ]; then |
2131 | + if [ -e /usr/share/debconf/confmodule ]; then |
2132 | + . /usr/share/debconf/confmodule |
2133 | + # disown this question |
2134 | + db_unregister shared/default-x-display-manager || true |
2135 | + # does the question still exist? |
2136 | + if db_get shared/default-x-display-manager; then |
2137 | + db_metaget shared/default-x-display-manager owners |
2138 | + db_subst shared/default-x-display-manager choices "$RET" |
2139 | + db_get shared/default-x-display-manager |
2140 | + # are we removing the currently selected display manager? |
2141 | + if [ "$THIS_PACKAGE" = "$RET" ]; then |
2142 | + if [ -e "$DEFAULT_DISPLAY_MANAGER_FILE" ]; then |
2143 | + db_get "$RET"/daemon_name |
2144 | + if [ "$(cat $DEFAULT_DISPLAY_MANAGER_FILE)" = "$RET" ]; then |
2145 | + rm "$DEFAULT_DISPLAY_MANAGER_FILE" |
2146 | + fi |
2147 | + fi |
2148 | + # ask the user to choose a new default |
2149 | + db_fset shared/default-x-display-manager seen false |
2150 | + db_input critical shared/default-x-display-manager || true |
2151 | + db_go |
2152 | + # if the display manager file doesn't exist, write it with the path |
2153 | + # to the new default display manager |
2154 | + if [ ! -e $DEFAULT_DISPLAY_MANAGER_FILE ]; then |
2155 | + db_get shared/default-x-display-manager |
2156 | + echo "Please be sure to run \"dpkg-reconfigure $RET\"." |
2157 | + db_get "$RET"/daemon_name |
2158 | + echo "$RET" > "$DEFAULT_DISPLAY_MANAGER_FILE" |
2159 | + fi |
2160 | + fi |
2161 | + fi |
2162 | + fi |
2163 | +fi |
2164 | + |
2165 | +if [ "$1" = "remove" ]; then |
2166 | + if [ -x /etc/init.d/gdm ]; then |
2167 | + nostop= |
2168 | + for hostname in "" "localhost" "$(hostname)" "$(hostname -f)"; do |
2169 | + if echo $DISPLAY | grep -q "^$hostname:0.*"; then |
2170 | + nostop=yes |
2171 | + fi |
2172 | + done |
2173 | + if [ -z $nostop ]; then |
2174 | + stop gdm || : |
2175 | + fi |
2176 | + fi |
2177 | +fi |
2178 | + |
2179 | +#DEBHELPER# |
2180 | + |
2181 | +exit 0 |
2182 | |
2183 | === added file 'debian/gdm.templates' |
2184 | --- debian/gdm.templates 1970-01-01 00:00:00 +0000 |
2185 | +++ debian/gdm.templates 2011-03-10 14:39:08 +0000 |
2186 | @@ -0,0 +1,123 @@ |
2187 | +Template: gdm/daemon_name |
2188 | +Type: string |
2189 | +Default: /usr/sbin/gdm |
2190 | +Description: for internal use only |
2191 | + |
2192 | +Template: shared/default-x-display-manager |
2193 | +Type: select |
2194 | +Choices: ${choices} |
2195 | +Description: Default display manager: |
2196 | + A display manager is a program that provides graphical login capabilities for |
2197 | + the X Window System. |
2198 | + . |
2199 | + Only one display manager can manage a given X server, but multiple display |
2200 | + manager packages are installed. Please select which display manager should |
2201 | + run by default. |
2202 | + . |
2203 | + Multiple display managers can run simultaneously if they are configured to |
2204 | + manage different servers; to achieve this, configure the display managers |
2205 | + accordingly, edit each of their init scripts in /etc/init.d, and disable the |
2206 | + check for a default display manager. |
2207 | +Description-ca.UTF-8: Escolliu el gestor de pantalla: |
2208 | + Un gestor de pantalla (display manager) és un programa que proporciona la capacitat d’un quadre gràfic d’entrada (login) a l’X Window System. |
2209 | + . |
2210 | + Només un gestor de pantalla pot gestionar un servidor X determinat, però teniu instaŀlats diversos paquets de gestor de pantalla. Per favor, escolliu quin gestor de pantalla s'executarà per defecte. |
2211 | + . |
2212 | + Poden haver diversos gestors de pantalla corrent simultàniament si es configuren per a gestionar diferents servidors; per a aconseguir açò, configureu adequadament els gestors de pantalla, editeu cadascun dels seus scripts d’inici en «/etc/init.d», i deshabiliteu la comprovació de gestor de pantalla per defecte. |
2213 | +Description-cs.UTF-8: Výchozí správce obrazovky: |
2214 | + Správce obrazovky je program, který nabízí grafické přihlášení do systému X Window. |
2215 | + . |
2216 | + Je nainstalováno několik správců obrazovky, ale jen jeden může obsluhovat daný X server. Vyberte, který správce se má spouštět jako výchozí. |
2217 | + . |
2218 | + Více správců obrazovky může běžet zároveň pouze pokud spravují různé servery. Pro dosažení takového nastavení je musíte správně nakonfigurovat, upravit jejich spouštěcí skripty v /etc/init.d a zakázat kontrolu výchozího správce obrazovky. |
2219 | +Description-de.UTF-8: Standardmäßiger Display-Manager: |
2220 | + Ein Display-Manager ist ein Programm, welches grafische Anmeldemöglichkeiten für das X Window System zur Verfügung stellt. |
2221 | + . |
2222 | + Nur ein einziger Display-Manager kann einen gegebenen X-Server verwalten, es sind allerdings mehrere Display-Manager installiert. Bitte wählen Sie den Display-Manager aus, der standardmäßig ausgeführt werden soll. |
2223 | + . |
2224 | + Es können mehrere Display-Manager gleichzeitig laufen, wenn diese so konfiguriert sind, dass sie verschiedene X-Server verwalten. Um dies zu erreichen, konfigurieren Sie die Display-Manager entsprechend, editieren Sie jedes ihrer Init-Skripte in /etc/init.d, und schalten Sie die Überprüfung auf einen Standard-Display-Manager ab. |
2225 | +Description-eu.UTF-8: Lehenetsiriko pantaila kudeatzailea: |
2226 | + Pantaila kudeatzailea X Leiho Sistemarako saio hasiera grafiko aukera ematen duen programa bat da. |
2227 | + . |
2228 | + Jakindako X zerbitzari bat pantaila kudeatzaile batek bakarrik kudea dezake, baina pantaila kudeatzaile anitz daude instalaturik. Hautatu zein pantaila kudeatzaile erabili nahi duzun lehenetsi bezala. |
2229 | + . |
2230 | + Pantaila kudeatzaile anitz batera martxan egon daitezke, zerbitzari ezberdinak kudeatzeko konfiguraturik badaude; hau lortzeko, pantaila kudeatzaileak behar bezala konfiguratu eta /etc/init.d-eko init script-ean lehenetsiriko pantaila kudeatzailea arakatzeko aukera ezgaitu. |
2231 | +Description-fr.UTF-8: Gestionnaire graphique de session par défaut : |
2232 | + Un gestionnaire graphique de session est un programme qui permet de se connecter depuis le système X Window. |
2233 | + . |
2234 | + Un seul gestionnaire graphique de session peut s'occuper d'un serveur X donné, bien que plusieurs gestionnaires puissent être installés simultanément. Veuillez choisir celui qui sera utilisé par défaut. |
2235 | + . |
2236 | + Plusieurs gestionnaires graphiques peuvent être lancés en même temps, s'ils gèrent des serveurs X différents ; pour cela, configurez correctement chacun des gestionnaires graphiques, modifiez leurs scripts de lancement dans /etc/init.d, et désactivez le test de gestionnaire graphique par défaut. |
2237 | +Description-gl.UTF-8: Xestor de pantalla por defecto: |
2238 | + Un xestor de pantalla é un programa que fornece capacidades de inicio de sesión gráfico para o sistema X Window. |
2239 | + . |
2240 | + Só un xestor de pantalla pode xestionar un servidor X determinado, pero hai varios paquetes de xestores de pantalla instalados. Escolla o xestor de pantalla que se debería executar por defecto. |
2241 | + . |
2242 | + Pódense executar varios xestores de pantalla ao mesmo tempo se se configuran para xestionar servidores distintos; para facelo, configure os xestores de pantalla, edite cada un dos scripts de inicio de /etc/init.d e desactive a comprobación do xestor de pantalla por defecto. |
2243 | +Description-it.UTF-8: Display manager predefinito. |
2244 | + Un display manager è un programma che fornisce capacità di login grafico per il sistema X Window. |
2245 | + . |
2246 | + Solo un display manager può gestire un dato server X, ma sono installati più pacchetti di display manager. Scegliere il display manager da usare come predefinito. |
2247 | + . |
2248 | + Possono essere eseguiti più display manager contemporaneamente, a patto che siano impostati per gestire server diversi; per fare questo, configurare i display manager in maniera appropriata, modificare ciascuno dei loro script di avvio in /etc/init.d e disabilitare il controllo per un display manager predefinito. |
2249 | +Description-ja.UTF-8: デフォルトのディスプレイマネージャ: |
2250 | + ディスプレイマネージャとは、X Window System 上でのグラフィカルなログイン機能を提供するものです。 |
2251 | + . |
2252 | + ひとつの X サーバを管理できるのはひとつのディスプレイマネージャだけですが、ディスプレイマネージャパッケージが複数インストールされています。どのディスプレイマネージャをデフォルトで起動させるか選択して下さい。 |
2253 | + . |
2254 | + 異なるサーバを担当するように設定すれば、複数のディスプレイサーバは同時に動作できます。そのようにするには、/etc/init.d にある各ディスプレイマネージャの初期化スクリプトを編集し、デフォルトディスプレイマネージャのチェックを無効にして下さい。 |
2255 | +Description-ml.UTF-8: ഡിഫാള്ട്ടായി വേണ്ട പ്രദര്ശന മാനേജര്: |
2256 | + എക്സ് ജാലക സിസ്റ്റത്തിന് ഗ്രാഫിക്കലായി അകത്ത് കടക്കാനുള്ള കഴിവുകള് നല്കുന്ന ഒരു പ്രോഗ്രാമാണ് ഒരു പ്രദര്ശന മാനേജര്. |
2257 | + . |
2258 | + ഏതെങ്കിലും ഒരു എക്സ് സേവകനെ ഒരേ ഒരു പ്രദര്ശന മാനേജര്ക്കേ മാനേജ് ചെയ്യാന് പറ്റൂ, പക്ഷേ ഒന്നിലധികം പ്രദര്ശന മാനേജര് പാക്കേജുകള് ഇന്സ്റ്റാള് ചെയ്തിട്ടുണ്ട്. ദയവായി ഡിഫാള്ട്ടായി പ്രവര്ത്തിപ്പിക്കേണ്ട പ്രദര്ശന മാനേജര് ഏതാണെന്ന് തിരഞ്ഞെടുക്കുക. |
2259 | + . |
2260 | + വ്യത്യസ്ത സേവകന്മാരെ മാനേജ് ചെയ്യാനായി ക്രമീകരിച്ചിട്ടുണ്ടെങ്കില് ഒന്നിലധികം പ്രദര്ശന മാനേജര്മാര്ക്ക് ഒരേ സമയം പ്രവര്ത്തിക്കാം; ഇത് കൈവരിക്കണമെങ്കില്, പ്രദര്ശന മാനേജര്മാരെ അനുസൃതമായി ക്രമീകരിക്കുകയും, അവയോരോന്നിന്റേയും /etc/init.d യിലുള്ള ഇനിറ്റ് സ്ക്രിപ്റ്റുകളെ മാറ്റുകയും, ഡിഫാള്ട്ട് പ്രദര്ശന മാനേജര്ക്കായുള്ള പരിശോദന ഡിസേബിള് ചെയ്യുകയും ചെയ്യുക. |
2261 | +Description-nl.UTF-8: Standaard beeldschermbeheerder: |
2262 | + Een beeldschermbeheerder is een programma waarmee u zich grafisch op het systeem kunt aanmelden, waarna u in de grafische omgeving (het X Window System) terecht komt. |
2263 | + . |
2264 | + Elke X-server kan door slechts één beeldschermbeheerder beheerd worden, hoewel er meerdere beeldschermbeheerders geïnstalleerd kunnen zijn. Welke beeldschermbeheerder dient standaard gebruikt te worden? |
2265 | + . |
2266 | + Het is mogelijk om meerdere beeldschermbeheerders tegelijk te draaien zolang deze verschillende servers beheren. Om dat te bereiken dient u de beeldschermbeheerders overeenkomstig in te stellen door in hun init-scripts (in /etc/init.d) de controle of ze de standaard beeldschermbeheerder zijn uit te schakelen. |
2267 | +Description-pt.UTF-8: Seleccione o gestor de ecrã por omissão desejado. |
2268 | + Um gestor de ecrã é um programa que fornece capacidades de autenticação gráfica ao X Window System. |
2269 | + . |
2270 | + Apenas um único gestor de ecrã pode gerir um dado servidor X, mas estão instalados múltiplos pacotes de gestores de ecrã. Por favor seleccione qual o gestor de ecrã que deve ser executado por omissão. |
2271 | + . |
2272 | + Podem ser executados em simultâneo múltiplos gestores de écran se estes estiverem configurados para gerir diferentes servidores; para fazer isto, configure os gestores de ecrã de acordo, edite cada um dos seus scripts "init" em /etc/init.d, e desligue a verificação de um gestor de écran de omissão. |
2273 | +Description-pt_BR.UTF-8: Gerenciador de sessão padrão: |
2274 | + Um gerenciador de sessão é um programa que provê capacidades de login gráfico para o 'X Window System'. |
2275 | + . |
2276 | + Somente um gerenciador de sessão pode gerenciar um dado servidor X, mas diversos pacotes de gerenciadores de sessão estão instalados. Por favor selecione qual gerenciador de sessão deverá ser executado por padrão. |
2277 | + . |
2278 | + Múltiplos gerenciadores de sessão podem ser executados simultaneamente se eles estão configurados para gerenciar servidores diferentes; para conseguir isso, configure os gerenciadores de sessão apropriadamente, edite cada um dos seus scripts de inicialização em /etc/init.d, e desabilite a checagem por um gerenciador de sessão padrão. |
2279 | +Description-ru.UTF-8: Менеджер дисплеев по умолчанию: |
2280 | + Менеджер дисплеев -- это программа, которая обеспечивает возможность графического входа в систему для X Window System. |
2281 | + . |
2282 | + Данный X-сервер может обслуживать только один менеджер дисплеев, но установлено несколько пакетов менеджеров дисплеев. Пожалуйста, выберите менеджер дисплеев, который должен запускаться по умолчанию. |
2283 | + . |
2284 | + Несколько менеджеров дисплеев могут запускаться одновременно, если они настроены на обслуживание разных серверов; чтобы добиться этого, настройте менеджеры дисплеев соответственно, отредактируйте их сценарии инициализации в /etc/init.d и отключите проверку менеджера дисплеев по умолчанию. |
2285 | +Description-sk.UTF-8: Zvoľte predvoleného správcu obrazovky: |
2286 | + Správca obrazovky je program, ktorý ponúka grafické prihlásenie do systému X Window. |
2287 | + . |
2288 | + Máte nainštalovaných viac správcov obrazovky, ale iba jeden môže obsluhovať daný X server. Zvoľte si správcu, ktorý bude predvolený. |
2289 | + . |
2290 | + Súbežne môže byť spustených viac správcov obrazovky, ale iba v prípade viacero rozdielnych serverov. Pre dosiahnutie takéhoto nastavenia ich musíte správne nastaviť, upraviť ich spúšťacie skripty v /etc/init.d a zakázať kontrolu predvoleného správcu obrazovky. |
2291 | +Description-sv.UTF-8: Standarddisplayhanterare: |
2292 | + En displayhanterare är det program som tillhandahåller grafiska inloggningsmöjligheter i X Window System. |
2293 | + . |
2294 | + Endast en displayhanterare kan hantera en angiven X-server, men flera displayhanterarpaket kan vara installerade. Välj vilken displayhanterare som skall köras som standard. |
2295 | + . |
2296 | + Flera displayhanterare kan köras samtidigt om de är konfigurerade att hantera olika servrar. För att uppnå detta ska du konfigurera displayhanterarnas init-skript under /etc/init.d, och inaktivera kontrollen efter en standarddisplayhanterare. |
2297 | +Description-ta.UTF-8: முன்னிருப்பு காட்சி மேலாளர்: |
2298 | + காட்சி மேலாளர் என்பது வரைகலை உள்நுழைவு இயலுமையை எக்ஸ் விண்டோஸ் அமைப்புக்கு தரும் நிரலாகும். |
2299 | + . |
2300 | + ஒரு கொடுக்கப் பட்ட X சேவையகத்தில் ஒரு காட்சி மேலாளர்தான் மேலாள இயலும். ஆனால் பல காட்சி மேலாளர்கள் நிறுவப் பட்டுள்ளன. எது முன்னிருப்பாக இருக்க வேண்டும் என தேர்ந்தெடுங்கள் |
2301 | + . |
2302 | + வெவ்வேறு சேவையகங்களை மேலாள வடிவமைத்தால் பல காட்சி மேலாளர்கள் ஒரே நேரத்தில் இயங்கக் கூடும். இதை செய்ய காட்சி மேலாளர்களை தகுந்தாற் போல வடிவமையுங்கள். அவற்றின் இனிட் சிறு நிரல்களை /etc/init.d இல் திருத்துங்கள். முன்னிருப்பு காட்சி மேலாளர் தேர்வை செயலிழக்கச் செய்யவும். |
2303 | +Description-zh_CN.UTF-8: 默认显示管理器: |
2304 | + 显示管理器是为 X 窗口系统提供图形界面登录模式的程序。 |
2305 | + . |
2306 | + 一个给定的 X 服务器只能由一个显示管理器来管理,但是系统中已经安装了多个显示管理器软件包。请选择一个作为默认的显示管理器。 |
2307 | + . |
2308 | + 如果多个显示管理器被配置为分别管理不同的 X 服务器,那么它们可以同时运行。要做到这一点,您要按照需求分别对各显示管理器进行设置,编辑它们在 /etc/init.d 目录下的 init 脚本,并且关闭对默认显示管理器的检查。 |
2309 | + |
2310 | |
2311 | === added file 'debian/gdm.upstart' |
2312 | --- debian/gdm.upstart 1970-01-01 00:00:00 +0000 |
2313 | +++ debian/gdm.upstart 2011-03-10 14:39:08 +0000 |
2314 | @@ -0,0 +1,49 @@ |
2315 | +# gdm - GNOME Display Manager |
2316 | +# |
2317 | +# The display manager service manages the X servers running on the |
2318 | +# system, providing login and auto-login services |
2319 | + |
2320 | +description "GNOME Display Manager" |
2321 | +author "William Jon McCann <mccann@jhu.edu>" |
2322 | + |
2323 | +start on ((filesystem |
2324 | + and (started dbus |
2325 | + and (drm-device-added card0 PRIMARY_DEVICE_FOR_DISPLAY=1 |
2326 | + or stopped udevtrigger))) |
2327 | + or runlevel PREVLEVEL=S) |
2328 | + |
2329 | +stop on runlevel [016] |
2330 | + |
2331 | +emits login-session-start |
2332 | +emits desktop-session-start |
2333 | + |
2334 | +env XORGCONFIG=/etc/X11/xorg.conf |
2335 | + |
2336 | +script |
2337 | + if [ -n "$UPSTART_EVENTS" ] |
2338 | + then |
2339 | + [ ! -f /etc/X11/default-display-manager -o "$(cat /etc/X11/default-display-manager 2>/dev/null)" = "/usr/sbin/gdm" ] || { stop; exit 0; } |
2340 | + |
2341 | + set -- `runlevel` |
2342 | + prev=$1 |
2343 | + curr=$2 |
2344 | + |
2345 | + if [ "$curr" = S -o "$prev" = unknown ] |
2346 | + then |
2347 | + # Single-user mode |
2348 | + plymouth quit || : |
2349 | + exit 0 |
2350 | + fi |
2351 | + fi |
2352 | + |
2353 | + if [ -r /etc/default/locale ]; then |
2354 | + . /etc/default/locale |
2355 | + export LANG LANGUAGE |
2356 | + elif [ -r /etc/environment ]; then |
2357 | + . /etc/environment |
2358 | + export LANG LANGUAGE |
2359 | + fi |
2360 | + export XORGCONFIG |
2361 | + |
2362 | + exec gdm-binary $CONFIG_FILE |
2363 | +end script |
2364 | |
2365 | === added file 'debian/onboard.desktop' |
2366 | --- debian/onboard.desktop 1970-01-01 00:00:00 +0000 |
2367 | +++ debian/onboard.desktop 2011-03-10 14:39:08 +0000 |
2368 | @@ -0,0 +1,11 @@ |
2369 | +[Desktop Entry] |
2370 | +Name=Onboard Onscreen Keyboard |
2371 | +Comment=Type without using a hardware keyboard |
2372 | +TryExec=onboard |
2373 | +Exec=onboard --size 500x180 -x 20 -y 10 |
2374 | +Terminal=false |
2375 | +Type=Application |
2376 | +StartupNotify=true |
2377 | +Categories=GNOME;GTK;Accessibility; |
2378 | +AutostartCondition=GNOME /desktop/gnome/applications/at/screen_keyboard_enabled |
2379 | +X-Ubuntu-Gettext-Domain=gdm |
2380 | |
2381 | === added directory 'debian/patches' |
2382 | === added file 'debian/patches/02_x_server_location.patch' |
2383 | --- debian/patches/02_x_server_location.patch 1970-01-01 00:00:00 +0000 |
2384 | +++ debian/patches/02_x_server_location.patch 2011-03-10 14:39:08 +0000 |
2385 | @@ -0,0 +1,21 @@ |
2386 | +Description: Change the default X server location to /usr/bin/X. This avoids having to build-depend on xserver-xorg. |
2387 | +Bug: http://bugzilla.gnome.org/show_bug.cgi?id=588848 |
2388 | + |
2389 | +Index: gdm-2.32.0/configure.ac |
2390 | +=================================================================== |
2391 | +--- gdm-2.32.0.orig/configure.ac 2010-09-27 19:05:57.000000000 +0200 |
2392 | ++++ gdm-2.32.0/configure.ac 2010-12-07 15:03:45.297502001 +0100 |
2393 | +@@ -1161,12 +1161,9 @@ |
2394 | + X_SERVER="/usr/bin/X" |
2395 | + X_CONFIG_OPTIONS="-audit 0" |
2396 | + else |
2397 | +- # what to do, what to do, this is wrong, but this just sets the |
2398 | +- # defaults, perhaps this user is cross compiling or some such |
2399 | +- X_PATH="/usr/bin/X11:/usr/X11R6/bin:/opt/X11R6/bin" |
2400 | ++ X_PATH="/usr/bin" |
2401 | + X_SERVER_PATH="/usr/bin" |
2402 | + X_SERVER="/usr/bin/X" |
2403 | +- X_CONFIG_OPTIONS="-audit 0" |
2404 | + fi |
2405 | + |
2406 | + dnl --------------------------------------------------------------------------- |
2407 | |
2408 | === added file 'debian/patches/04_fix_external_program_directories.patch' |
2409 | --- debian/patches/04_fix_external_program_directories.patch 1970-01-01 00:00:00 +0000 |
2410 | +++ debian/patches/04_fix_external_program_directories.patch 2011-03-10 14:39:08 +0000 |
2411 | @@ -0,0 +1,54 @@ |
2412 | +Description: Fix location of external programs. |
2413 | + |
2414 | +Index: gdm-2.30.4/daemon/gdm-server.c |
2415 | +=================================================================== |
2416 | +--- gdm-2.30.4.orig/daemon/gdm-server.c 2010-06-30 12:29:43.000000000 +0200 |
2417 | ++++ gdm-2.30.4/daemon/gdm-server.c 2010-06-30 12:30:03.000000000 +0200 |
2418 | +@@ -131,7 +131,7 @@ |
2419 | + g_return_val_if_fail (GDM_IS_SERVER (server), NULL); |
2420 | + |
2421 | + error = NULL; |
2422 | +- command = g_strdup_printf (LIBEXECDIR "/ck-get-x11-display-device --display %s", |
2423 | ++ command = g_strdup_printf ("/usr/lib/ConsoleKit/ck-get-x11-display-device --display %s", |
2424 | + server->priv->display_name); |
2425 | + |
2426 | + g_debug ("GdmServer: Running helper %s", command); |
2427 | +Index: gdm-2.30.4/data/greeter-autostart/gnome-settings-daemon.desktop.in.in |
2428 | +=================================================================== |
2429 | +--- gdm-2.30.4.orig/data/greeter-autostart/gnome-settings-daemon.desktop.in.in 2010-06-30 12:29:43.000000000 +0200 |
2430 | ++++ gdm-2.30.4/data/greeter-autostart/gnome-settings-daemon.desktop.in.in 2010-06-30 12:30:03.000000000 +0200 |
2431 | +@@ -1,8 +1,8 @@ |
2432 | + [Desktop Entry] |
2433 | + Type=Application |
2434 | + _Name=GNOME Settings Daemon |
2435 | +-TryExec=@LIBEXECDIR@/gnome-settings-daemon |
2436 | +-Exec=@LIBEXECDIR@/gnome-settings-daemon --gconf-prefix=/apps/gdm/simple-greeter/settings-manager-plugins |
2437 | ++TryExec=/usr/lib/gnome-settings-daemon/gnome-settings-daemon |
2438 | ++Exec=/usr/lib/gnome-settings-daemon/gnome-settings-daemon --gconf-prefix=/apps/gdm/simple-greeter/settings-manager-plugins |
2439 | + OnlyShowIn=GNOME; |
2440 | + X-GNOME-Autostart-Phase=Initialization |
2441 | + X-GNOME-Autostart-Notify=true |
2442 | +Index: gdm-2.30.4/data/greeter-autostart/polkit-gnome-authentication-agent-1.desktop.in.in |
2443 | +=================================================================== |
2444 | +--- gdm-2.30.4.orig/data/greeter-autostart/polkit-gnome-authentication-agent-1.desktop.in.in 2010-06-16 18:32:38.000000000 +0200 |
2445 | ++++ gdm-2.30.4/data/greeter-autostart/polkit-gnome-authentication-agent-1.desktop.in.in 2010-06-30 12:30:03.000000000 +0200 |
2446 | +@@ -1,5 +1,5 @@ |
2447 | + [Desktop Entry] |
2448 | + Type=Application |
2449 | + _Name=PolicyKit Authentication Agent |
2450 | +-Exec=@LIBEXECDIR@/polkit-gnome-authentication-agent-1 |
2451 | ++Exec=/usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1 |
2452 | + OnlyShowIn=GNOME; |
2453 | +Index: gdm-2.30.4/gui/simple-chooser/gdm-chooser-session.c |
2454 | +=================================================================== |
2455 | +--- gdm-2.30.4.orig/gui/simple-chooser/gdm-chooser-session.c 2010-06-30 12:29:43.000000000 +0200 |
2456 | ++++ gdm-2.30.4/gui/simple-chooser/gdm-chooser-session.c 2010-06-30 12:30:03.000000000 +0200 |
2457 | +@@ -131,7 +131,7 @@ |
2458 | + ret = FALSE; |
2459 | + |
2460 | + error = NULL; |
2461 | +- g_spawn_command_line_async (LIBEXECDIR "/gnome-settings-daemon --gconf-prefix=/apps/gdm/simple-chooser/settings-manager-plugins", &error); |
2462 | ++ g_spawn_command_line_async ("/usr/lib/gnome-settings-daemon/gnome-settings-daemon --gconf-prefix=/apps/gdm/simple-chooser/settings-manager-plugins", &error); |
2463 | + if (error != NULL) { |
2464 | + g_warning ("Error starting settings daemon: %s", error->message); |
2465 | + g_error_free (error); |
2466 | |
2467 | === added file 'debian/patches/05_initial_server_on_vt7.patch' |
2468 | --- debian/patches/05_initial_server_on_vt7.patch 1970-01-01 00:00:00 +0000 |
2469 | +++ debian/patches/05_initial_server_on_vt7.patch 2011-03-10 14:39:08 +0000 |
2470 | @@ -0,0 +1,38 @@ |
2471 | +Description: Force initial X server to go to tty7 instead of tty1. This is an Ugly Hack until we have a cleaner solution for getty not to tramp over a running X server on vt1. |
2472 | +Author: Martin Pitt <martin.pitt@ubuntu.com> |
2473 | +Bug-Ubuntu: https://launchpad.net/bugs/396226 |
2474 | + |
2475 | +Index: gdm-2.30.4/daemon/gdm-server.c |
2476 | +=================================================================== |
2477 | +--- gdm-2.30.4.orig/daemon/gdm-server.c 2010-06-30 12:30:03.000000000 +0200 |
2478 | ++++ gdm-2.30.4/daemon/gdm-server.c 2010-06-30 12:30:07.000000000 +0200 |
2479 | +@@ -640,6 +640,13 @@ |
2480 | + g_debug ("GdmServer: Starting X server process: %s", freeme); |
2481 | + g_free (freeme); |
2482 | + |
2483 | ++ /* write a stamp file, so that the first startup of the server can be |
2484 | ++ * special-cased (initial server needs to go on vt7, since 1 to 6 |
2485 | ++ * usually get gettys after gdm startup, which interfere with X) */ |
2486 | ++ int f = open ("/var/run/gdm/firstserver.stamp", O_CREAT|O_WRONLY|O_EXCL, 0666); |
2487 | ++ if (f >= 0) |
2488 | ++ close (f); |
2489 | ++ |
2490 | + error = NULL; |
2491 | + ret = g_spawn_async_with_pipes (NULL, |
2492 | + argv, |
2493 | +@@ -684,9 +691,14 @@ |
2494 | + gdm_server_start (GdmServer *server) |
2495 | + { |
2496 | + gboolean res; |
2497 | ++ int firstserver; |
2498 | ++ |
2499 | ++ /* HACK: force initial server to go on vt7, since 1 to 6 usually get |
2500 | ++ * gettys after gdm startup, which interfere with X */ |
2501 | ++ firstserver = access ("/var/run/gdm/firstserver.stamp", F_OK) < 0; |
2502 | + |
2503 | + /* fork X server process */ |
2504 | +- res = gdm_server_spawn (server, NULL); |
2505 | ++ res = gdm_server_spawn (server, firstserver ? "vt7" : NULL); |
2506 | + |
2507 | + return res; |
2508 | + } |
2509 | |
2510 | === added file 'debian/patches/06_run_xsession.d.patch' |
2511 | --- debian/patches/06_run_xsession.d.patch 1970-01-01 00:00:00 +0000 |
2512 | +++ debian/patches/06_run_xsession.d.patch 2011-03-10 14:39:08 +0000 |
2513 | @@ -0,0 +1,28 @@ |
2514 | +Description: Run /etc/X11/Xsession.d/. |
2515 | +Author: Martin Pitt <martin.pitt@ubuntu.com> |
2516 | +Origin: Ubuntu; /etc/X11/Xsession.d is a Debianism/Ubuntuism |
2517 | + |
2518 | +Index: gdm-2.32.0/data/Xsession.in |
2519 | +=================================================================== |
2520 | +--- gdm-2.32.0.orig/data/Xsession.in 2010-08-27 23:45:29.000000000 +0200 |
2521 | ++++ gdm-2.32.0/data/Xsession.in 2010-12-07 15:10:12.177502001 +0100 |
2522 | +@@ -162,6 +162,19 @@ |
2523 | + done |
2524 | + fi |
2525 | + |
2526 | ++# run /etc/X11/Xsession.d/ |
2527 | ++OPTIONFILE=/etc/X11/Xsession.options |
2528 | ++USERXSESSION=$HOME/.xsession |
2529 | ++USERXSESSIONRC=$HOME/.xsessionrc |
2530 | ++ALTUSERXSESSION=$HOME/.Xsession |
2531 | ++if [ -d /etc/X11/Xsession.d ]; then |
2532 | ++ for i in `ls /etc/X11/Xsession.d/` ; do |
2533 | ++ if [ -r "/etc/X11/Xsession.d/$i" -a -f "/etc/X11/Xsession.d/$i" ] && expr "$i" : '^[[:alnum:]_-]\+$' > /dev/null; then |
2534 | ++ . "/etc/X11/Xsession.d/$i" |
2535 | ++ fi |
2536 | ++ done |
2537 | ++fi |
2538 | ++ |
2539 | + if [ "x$command" = "xcustom" ] ; then |
2540 | + if [ -x "$HOME/.xsession" ]; then |
2541 | + command="$HOME/.xsession" |
2542 | |
2543 | === added file 'debian/patches/08_use_polkit_for_settings.patch' |
2544 | --- debian/patches/08_use_polkit_for_settings.patch 1970-01-01 00:00:00 +0000 |
2545 | +++ debian/patches/08_use_polkit_for_settings.patch 2011-03-10 14:39:08 +0000 |
2546 | @@ -0,0 +1,337 @@ |
2547 | +Description: Add PolicyKit support to GDM settings D-Bus interface |
2548 | +Bug: http://bugzilla.gnome.org/show_bug.cgi?id=587750 |
2549 | +Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/gdm/+bug/395299 |
2550 | + |
2551 | +Index: gdm-2.32.0/common/gdm-settings.c |
2552 | +=================================================================== |
2553 | +--- gdm-2.32.0.orig/common/gdm-settings.c 2010-08-27 16:54:37.000000000 +0200 |
2554 | ++++ gdm-2.32.0/common/gdm-settings.c 2010-12-07 15:34:08.167502002 +0100 |
2555 | +@@ -36,6 +36,7 @@ |
2556 | + #define DBUS_API_SUBJECT_TO_CHANGE |
2557 | + #include <dbus/dbus-glib.h> |
2558 | + #include <dbus/dbus-glib-lowlevel.h> |
2559 | ++#include <polkit/polkit.h> |
2560 | + |
2561 | + #include "gdm-settings.h" |
2562 | + #include "gdm-settings-glue.h" |
2563 | +@@ -110,6 +111,90 @@ |
2564 | + return res; |
2565 | + } |
2566 | + |
2567 | ++static void |
2568 | ++unlock_auth_cb (PolkitAuthority *authority, |
2569 | ++ GAsyncResult *result, |
2570 | ++ DBusGMethodInvocation *context) |
2571 | ++{ |
2572 | ++ PolkitAuthorizationResult *auth_result; |
2573 | ++ GError *error = NULL; |
2574 | ++ |
2575 | ++ auth_result = polkit_authority_check_authorization_finish (authority, result, &error); |
2576 | ++ |
2577 | ++ if (!auth_result) |
2578 | ++ dbus_g_method_return_error (context, error); |
2579 | ++ else { |
2580 | ++ dbus_g_method_return (context, |
2581 | ++ polkit_authorization_result_get_is_authorized (auth_result)); |
2582 | ++ } |
2583 | ++ |
2584 | ++ if (auth_result) |
2585 | ++ g_object_unref (auth_result); |
2586 | ++ if (error) |
2587 | ++ g_error_free (error); |
2588 | ++} |
2589 | ++ |
2590 | ++gboolean |
2591 | ++gdm_settings_unlock (GdmSettings *settings, |
2592 | ++ DBusGMethodInvocation *context) |
2593 | ++{ |
2594 | ++ polkit_authority_check_authorization (polkit_authority_get (), |
2595 | ++ polkit_system_bus_name_new (dbus_g_method_get_sender (context)), |
2596 | ++ "org.gnome.displaymanager.settings.write", |
2597 | ++ NULL, |
2598 | ++ POLKIT_CHECK_AUTHORIZATION_FLAGS_ALLOW_USER_INTERACTION, |
2599 | ++ NULL, |
2600 | ++ (GAsyncReadyCallback) unlock_auth_cb, |
2601 | ++ context); |
2602 | ++} |
2603 | ++ |
2604 | ++typedef struct |
2605 | ++{ |
2606 | ++ GdmSettings *settings; |
2607 | ++ DBusGMethodInvocation *context; |
2608 | ++ gchar *key, *value; |
2609 | ++} SetValueData; |
2610 | ++ |
2611 | ++static void |
2612 | ++set_value_auth_cb (PolkitAuthority *authority, |
2613 | ++ GAsyncResult *result, |
2614 | ++ SetValueData *data) |
2615 | ++{ |
2616 | ++ PolkitAuthorizationResult *auth_result; |
2617 | ++ GError *error = NULL; |
2618 | ++ |
2619 | ++ auth_result = polkit_authority_check_authorization_finish (authority, result, &error); |
2620 | ++ |
2621 | ++ if (!auth_result) |
2622 | ++ dbus_g_method_return_error (data->context, error); |
2623 | ++ else { |
2624 | ++ if (polkit_authorization_result_get_is_authorized (auth_result)) { |
2625 | ++ gboolean result; |
2626 | ++ |
2627 | ++ result = gdm_settings_backend_set_value (data->settings->priv->backend, |
2628 | ++ data->key, |
2629 | ++ data->value, |
2630 | ++ &error); |
2631 | ++ if (result) |
2632 | ++ dbus_g_method_return (data->context); |
2633 | ++ else |
2634 | ++ dbus_g_method_return_error (data->context, error); |
2635 | ++ } |
2636 | ++ else { |
2637 | ++ error = g_error_new (DBUS_GERROR_REMOTE_EXCEPTION, 0, "Not authorized"); |
2638 | ++ dbus_g_method_return_error (data->context, error); |
2639 | ++ } |
2640 | ++ } |
2641 | ++ |
2642 | ++ if (auth_result) |
2643 | ++ g_object_unref (auth_result); |
2644 | ++ if (error) |
2645 | ++ g_error_free (error); |
2646 | ++ g_free (data->key); |
2647 | ++ g_free (data->value); |
2648 | ++ g_free (data); |
2649 | ++} |
2650 | ++ |
2651 | + /* |
2652 | + dbus-send --system --print-reply --dest=org.gnome.DisplayManager /org/gnome/DisplayManager/Settings org.gnome.DisplayManager.Settings.SetValue string:"xdmcp/Enable" string:"false" |
2653 | + */ |
2654 | +@@ -118,26 +203,30 @@ |
2655 | + gdm_settings_set_value (GdmSettings *settings, |
2656 | + const char *key, |
2657 | + const char *value, |
2658 | +- GError **error) |
2659 | ++ DBusGMethodInvocation *context) |
2660 | + { |
2661 | +- GError *local_error; |
2662 | +- gboolean res; |
2663 | +- |
2664 | ++ SetValueData *data; |
2665 | ++ |
2666 | + g_return_val_if_fail (GDM_IS_SETTINGS (settings), FALSE); |
2667 | + g_return_val_if_fail (key != NULL, FALSE); |
2668 | + |
2669 | + g_debug ("Setting value %s", key); |
2670 | +- |
2671 | +- local_error = NULL; |
2672 | +- res = gdm_settings_backend_set_value (settings->priv->backend, |
2673 | +- key, |
2674 | +- value, |
2675 | +- &local_error); |
2676 | +- if (! res) { |
2677 | +- g_propagate_error (error, local_error); |
2678 | +- } |
2679 | +- |
2680 | +- return res; |
2681 | ++ |
2682 | ++ /* Authorize with PolicyKit */ |
2683 | ++ data = g_malloc (sizeof(SetValueData)); |
2684 | ++ data->settings = settings; |
2685 | ++ data->context = context; |
2686 | ++ data->key = g_strdup(key); |
2687 | ++ data->value = g_strdup(value); |
2688 | ++ polkit_authority_check_authorization (polkit_authority_get (), |
2689 | ++ polkit_system_bus_name_new (dbus_g_method_get_sender (context)), |
2690 | ++ "org.gnome.displaymanager.settings.write", |
2691 | ++ NULL, |
2692 | ++ POLKIT_CHECK_AUTHORIZATION_FLAGS_ALLOW_USER_INTERACTION, |
2693 | ++ NULL, |
2694 | ++ (GAsyncReadyCallback) set_value_auth_cb, |
2695 | ++ data); |
2696 | ++ return TRUE; |
2697 | + } |
2698 | + |
2699 | + static gboolean |
2700 | +Index: gdm-2.32.0/common/gdm-settings.h |
2701 | +=================================================================== |
2702 | +--- gdm-2.32.0.orig/common/gdm-settings.h 2010-08-27 16:54:37.000000000 +0200 |
2703 | ++++ gdm-2.32.0/common/gdm-settings.h 2010-12-07 15:34:08.177502002 +0100 |
2704 | +@@ -23,6 +23,7 @@ |
2705 | + #define __GDM_SETTINGS_H |
2706 | + |
2707 | + #include <glib-object.h> |
2708 | ++#include <dbus/dbus-glib.h> |
2709 | + |
2710 | + G_BEGIN_DECLS |
2711 | + |
2712 | +@@ -70,10 +71,12 @@ |
2713 | + const char *key, |
2714 | + char **value, |
2715 | + GError **error); |
2716 | ++gboolean gdm_settings_unlock (GdmSettings *settings, |
2717 | ++ DBusGMethodInvocation *context); |
2718 | + gboolean gdm_settings_set_value (GdmSettings *settings, |
2719 | + const char *key, |
2720 | + const char *value, |
2721 | +- GError **error); |
2722 | ++ DBusGMethodInvocation *context); |
2723 | + |
2724 | + G_END_DECLS |
2725 | + |
2726 | +Index: gdm-2.32.0/common/gdm-settings.xml |
2727 | +=================================================================== |
2728 | +--- gdm-2.32.0.orig/common/gdm-settings.xml 2010-08-27 16:54:37.000000000 +0200 |
2729 | ++++ gdm-2.32.0/common/gdm-settings.xml 2010-12-07 15:34:08.177502002 +0100 |
2730 | +@@ -5,7 +5,12 @@ |
2731 | + <arg name="key" direction="in" type="s"/> |
2732 | + <arg name="value" direction="out" type="s"/> |
2733 | + </method> |
2734 | ++ <method name="Unlock"> |
2735 | ++ <annotation name="org.freedesktop.DBus.GLib.Async" value=""/> |
2736 | ++ <arg name="is_unlocked" direction="out" type="b"/> |
2737 | ++ </method> |
2738 | + <method name="SetValue"> |
2739 | ++ <annotation name="org.freedesktop.DBus.GLib.Async" value=""/> |
2740 | + <arg name="key" direction="in" type="s"/> |
2741 | + <arg name="value" direction="in" type="s"/> |
2742 | + </method> |
2743 | +Index: gdm-2.32.0/configure.ac |
2744 | +=================================================================== |
2745 | +--- gdm-2.32.0.orig/configure.ac 2010-12-07 15:34:08.047502002 +0100 |
2746 | ++++ gdm-2.32.0/configure.ac 2010-12-07 15:34:08.177502002 +0100 |
2747 | +@@ -40,6 +40,7 @@ |
2748 | + dnl --------------------------------------------------------------------------- |
2749 | + |
2750 | + DBUS_GLIB_REQUIRED_VERSION=0.74 |
2751 | ++POLKIT_GOBJECT_REQUIRED_VERSION=0.92 |
2752 | + GLIB_REQUIRED_VERSION=2.22.0 |
2753 | + GTK_REQUIRED_VERSION=2.20.0 |
2754 | + PANGO_REQUIRED_VERSION=1.3.0 |
2755 | +@@ -60,6 +61,7 @@ |
2756 | + |
2757 | + PKG_CHECK_MODULES(COMMON, |
2758 | + dbus-glib-1 >= $DBUS_GLIB_REQUIRED_VERSION |
2759 | ++ polkit-gobject-1 >= $POLKIT_GOBJECT_REQUIRED_VERSION |
2760 | + gobject-2.0 >= $GLIB_REQUIRED_VERSION |
2761 | + gio-2.0 >= $GLIB_REQUIRED_VERSION |
2762 | + ) |
2763 | +@@ -68,6 +70,7 @@ |
2764 | + |
2765 | + PKG_CHECK_MODULES(DAEMON, |
2766 | + dbus-glib-1 >= $DBUS_GLIB_REQUIRED_VERSION |
2767 | ++ polkit-gobject-1 >= $POLKIT_GOBJECT_REQUIRED_VERSION |
2768 | + gobject-2.0 >= $GLIB_REQUIRED_VERSION |
2769 | + gio-2.0 >= $GLIB_REQUIRED_VERSION |
2770 | + ) |
2771 | +Index: gdm-2.32.0/data/gdm.conf.in |
2772 | +=================================================================== |
2773 | +--- gdm-2.32.0.orig/data/gdm.conf.in 2010-09-15 20:58:11.000000000 +0200 |
2774 | ++++ gdm-2.32.0/data/gdm.conf.in 2010-12-07 15:34:08.177502002 +0100 |
2775 | +@@ -34,8 +34,6 @@ |
2776 | + <deny send_destination="org.gnome.DisplayManager" |
2777 | + send_interface="org.gnome.DisplayManager.LocalDisplayFactory"/> |
2778 | + <deny send_destination="org.gnome.DisplayManager" |
2779 | +- send_interface="org.gnome.DisplayManager.Settings"/> |
2780 | +- <deny send_destination="org.gnome.DisplayManager" |
2781 | + send_interface="org.gnome.DisplayManager.Slave"/> |
2782 | + <deny send_destination="org.gnome.DisplayManager" |
2783 | + send_interface="org.gnome.DisplayManager.Session"/> |
2784 | +@@ -44,6 +42,10 @@ |
2785 | + <allow send_destination="org.gnome.DisplayManager" |
2786 | + send_interface="org.freedesktop.DBus.Introspectable"/> |
2787 | + |
2788 | ++ <!-- Controlled by PolicyKit --> |
2789 | ++ <allow send_destination="org.gnome.DisplayManager" |
2790 | ++ send_interface="org.gnome.DisplayManager.Settings"/> |
2791 | ++ |
2792 | + <allow send_destination="org.gnome.DisplayManager" |
2793 | + send_interface="org.gnome.DisplayManager.Display" |
2794 | + send_member="GetId"/> |
2795 | +Index: gdm-2.32.0/data/gdm.policy.in |
2796 | +=================================================================== |
2797 | +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
2798 | ++++ gdm-2.32.0/data/gdm.policy.in 2010-12-07 15:34:08.000000000 +0100 |
2799 | +@@ -0,0 +1,18 @@ |
2800 | ++<?xml version="1.0" encoding="UTF-8"?> |
2801 | ++<!DOCTYPE policyconfig PUBLIC |
2802 | ++ "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN" |
2803 | ++ "http://www.freedesktop.org/standards/PolicyKit/1.0/policyconfig.dtd"> |
2804 | ++<policyconfig> |
2805 | ++ <vendor>The GNOME Project</vendor> |
2806 | ++ <vendor_url>http://www.gnome.org/</vendor_url> |
2807 | ++ <icon_name>gdm</icon_name> |
2808 | ++ |
2809 | ++ <action id="org.gnome.displaymanager.settings.write"> |
2810 | ++ <_description>Change login screen configuration</_description> |
2811 | ++ <_message>Privileges are required to change the login screen configuration.</_message> |
2812 | ++ <defaults> |
2813 | ++ <allow_inactive>no</allow_inactive> |
2814 | ++ <allow_active>auth_admin_keep</allow_active> |
2815 | ++ </defaults> |
2816 | ++ </action> |
2817 | ++</policyconfig> |
2818 | +Index: gdm-2.32.0/data/Makefile.am |
2819 | +=================================================================== |
2820 | +--- gdm-2.32.0.orig/data/Makefile.am 2010-09-16 01:44:56.000000000 +0200 |
2821 | ++++ gdm-2.32.0/data/Makefile.am 2010-12-07 15:34:08.177502002 +0100 |
2822 | +@@ -46,6 +46,8 @@ |
2823 | + schemas_in_files = gdm.schemas.in |
2824 | + schemas_DATA = $(schemas_in_files:.schemas.in=.schemas) |
2825 | + |
2826 | ++@INTLTOOL_POLICY_RULE@ |
2827 | ++ |
2828 | + gdm.schemas.in: $(srcdir)/gdm.schemas.in.in |
2829 | + sed -e 's,[@]GDMPREFETCHCMD[@],$(GDMPREFETCHCMD),g' \ |
2830 | + -e 's,[@]GDM_CUSTOM_CONF[@],$(GDM_CUSTOM_CONF),g' \ |
2831 | +@@ -78,11 +80,18 @@ |
2832 | + localealiasdir = $(datadir)/gdm |
2833 | + localealias_DATA = locale.alias |
2834 | + |
2835 | ++polkitdir = $(datadir)/polkit-1/actions |
2836 | ++polkit_in_files = gdm.policy.in |
2837 | ++polkit_DATA = $(polkit_in_files:.policy.in=.policy) |
2838 | ++check: |
2839 | ++ $(POLKIT_POLICY_FILE_VALIDATE) $(polkit_DATA) |
2840 | ++ |
2841 | + EXTRA_DIST = \ |
2842 | + $(schemas_in_files) \ |
2843 | + $(schemas_DATA) \ |
2844 | + $(dbusconf_in_files) \ |
2845 | + $(localealias_DATA) \ |
2846 | ++ $(polkit_in_files) \ |
2847 | + gdm.schemas.in.in \ |
2848 | + gdm.conf-custom.in \ |
2849 | + Xsession.in \ |
2850 | +@@ -105,7 +114,8 @@ |
2851 | + $(NULL) |
2852 | + |
2853 | + DISTCLEANFILES = \ |
2854 | +- $(dbusconf_DATA) \ |
2855 | ++ $(dbusconf_DATA) \ |
2856 | ++ $(polkit_DATA) \ |
2857 | + gdm.schemas \ |
2858 | + $(NULL) |
2859 | + |
2860 | +Index: gdm-2.32.0/po/POTFILES.in |
2861 | +=================================================================== |
2862 | +--- gdm-2.32.0.orig/po/POTFILES.in 2010-09-15 20:58:11.000000000 +0200 |
2863 | ++++ gdm-2.32.0/po/POTFILES.in 2010-12-07 15:34:08.177502002 +0100 |
2864 | +@@ -49,6 +49,7 @@ |
2865 | + daemon/simple-slave-main.c |
2866 | + daemon/test-session.c |
2867 | + daemon/xdmcp-chooser-slave-main.c |
2868 | ++data/gdm.policy.in |
2869 | + data/gdm.schemas.in.in |
2870 | + data/greeter-autostart/at-spi-registryd-wrapper.desktop.in.in |
2871 | + data/greeter-autostart/gdm-simple-greeter.desktop.in.in |
2872 | +Index: gdm-2.32.0/common/Makefile.am |
2873 | +=================================================================== |
2874 | +--- gdm-2.32.0.orig/common/Makefile.am 2010-12-07 15:34:17.347502002 +0100 |
2875 | ++++ gdm-2.32.0/common/Makefile.am 2010-12-07 15:34:42.007502002 +0100 |
2876 | +@@ -112,6 +112,7 @@ |
2877 | + $(NULL) |
2878 | + |
2879 | + libgdmcommon_la_LIBADD = \ |
2880 | ++ $(COMMON_LIBS) \ |
2881 | + $(NULL) |
2882 | + |
2883 | + libgdmcommon_la_LDFLAGS = \ |
2884 | |
2885 | === added file 'debian/patches/09_gdmserver_gconf_settings.patch' |
2886 | --- debian/patches/09_gdmserver_gconf_settings.patch 1970-01-01 00:00:00 +0000 |
2887 | +++ debian/patches/09_gdmserver_gconf_settings.patch 2011-03-10 14:39:08 +0000 |
2888 | @@ -0,0 +1,469 @@ |
2889 | +Index: gdm-2.30.4/common/gdm-settings.c |
2890 | +=================================================================== |
2891 | +--- gdm-2.30.4.orig/common/gdm-settings.c 2010-06-30 12:35:02.000000000 +0200 |
2892 | ++++ gdm-2.30.4/common/gdm-settings.c 2010-06-30 12:35:06.000000000 +0200 |
2893 | +@@ -28,6 +28,7 @@ |
2894 | + #include <signal.h> |
2895 | + #include <sys/stat.h> |
2896 | + #include <sys/types.h> |
2897 | ++#include <pwd.h> |
2898 | + |
2899 | + #include <glib.h> |
2900 | + #include <glib/gi18n.h> |
2901 | +@@ -49,6 +50,9 @@ |
2902 | + #define GDM_SETTINGS_DBUS_PATH GDM_DBUS_PATH "/Settings" |
2903 | + #define GDM_SETTINGS_DBUS_NAME "org.gnome.DisplayManager.Settings" |
2904 | + |
2905 | ++#define GCONF_SOUND_EVENT_KEY "/desktop/gnome/sound/event_sounds" |
2906 | ++#define GCONF_FACE_BROWSER_DISABLE_KEY "/apps/gdm/simple-greeter/disable_user_list" |
2907 | ++ |
2908 | + #define GDM_SETTINGS_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GDM_TYPE_SETTINGS, GdmSettingsPrivate)) |
2909 | + |
2910 | + struct GdmSettingsPrivate |
2911 | +@@ -83,6 +87,190 @@ |
2912 | + return ret; |
2913 | + } |
2914 | + |
2915 | ++static void |
2916 | ++set_gdm_uid_child_setup () |
2917 | ++{ |
2918 | ++ struct passwd *pwent; |
2919 | ++ uid_t gdm_uid; |
2920 | ++ uid_t gdm_gid; |
2921 | ++ |
2922 | ++ pwent = getpwnam (GDM_USERNAME); |
2923 | ++ // --shutdown take into account the resuid/resgid and HOME whereas |
2924 | ++ // --get --set take the euid/egid |
2925 | ++ setenv("HOME", pwent->pw_dir, 1); |
2926 | ++ gdm_uid = pwent->pw_uid; |
2927 | ++ gdm_gid = pwent->pw_gid; |
2928 | ++ setresgid (gdm_gid, gdm_gid, gdm_gid); |
2929 | ++ setresuid (gdm_uid, gdm_uid, gdm_uid); |
2930 | ++ |
2931 | ++} |
2932 | ++ |
2933 | ++static gboolean |
2934 | ++gdm_settings_get_gconf_value (gchar *gconf_key, gchar **value) { |
2935 | ++ |
2936 | ++ GError *error = NULL; |
2937 | ++ char *shutdown_command[] = { "gconftool-2", "--shutdown", NULL }; |
2938 | ++ char *get_command[] = { "gconftool-2", "--direct", "-g", gconf_key, "--config-source", NULL, NULL }; |
2939 | ++ gboolean res; |
2940 | ++ struct passwd *pwent; |
2941 | ++ gboolean success = FALSE; |
2942 | ++ |
2943 | ++ pwent = getpwnam (GDM_USERNAME); |
2944 | ++ if G_UNLIKELY (pwent == NULL) |
2945 | ++ g_warning ("Can't access to 'gdm' user name in passwd"); |
2946 | ++ else { |
2947 | ++ get_command[5] = g_strdup_printf("xml:readwrite:%s/.gconf", pwent->pw_dir); |
2948 | ++ res = g_spawn_sync (NULL, |
2949 | ++ shutdown_command, |
2950 | ++ NULL, |
2951 | ++ G_SPAWN_SEARCH_PATH, |
2952 | ++ (GSpawnChildSetupFunc)set_gdm_uid_child_setup, |
2953 | ++ NULL, |
2954 | ++ NULL, |
2955 | ++ NULL, |
2956 | ++ NULL, |
2957 | ++ &error); |
2958 | ++ if (!res) { |
2959 | ++ if (error != NULL) { |
2960 | ++ g_warning ("Unable to shutdown gconf: %s", error->message); |
2961 | ++ g_error_free (error); |
2962 | ++ } |
2963 | ++ else |
2964 | ++ g_warning ("Unable to shutdown gconf: unknown error"); |
2965 | ++ } |
2966 | ++ else { |
2967 | ++ res = g_spawn_sync (NULL, |
2968 | ++ get_command, |
2969 | ++ NULL, |
2970 | ++ G_SPAWN_SEARCH_PATH | G_SPAWN_STDERR_TO_DEV_NULL, |
2971 | ++ (GSpawnChildSetupFunc)set_gdm_uid_child_setup, |
2972 | ++ NULL, |
2973 | ++ value, |
2974 | ++ NULL, |
2975 | ++ NULL, |
2976 | ++ &error); |
2977 | ++ if (!res) { |
2978 | ++ if (error != NULL) { |
2979 | ++ g_warning ("Unable to get event key to gconf: %s", error->message); |
2980 | ++ g_error_free (error); |
2981 | ++ } |
2982 | ++ else |
2983 | ++ g_warning ("Unable to get event key to gconf: unknown error"); |
2984 | ++ } |
2985 | ++ else { |
2986 | ++ if (error != NULL) { |
2987 | ++ g_warning ("Unable to get event key to gconf: %s", error->message); |
2988 | ++ g_error_free (error); |
2989 | ++ } |
2990 | ++ else { |
2991 | ++ g_debug ("gconftool call returning: %s", *value); |
2992 | ++ success = TRUE; |
2993 | ++ } |
2994 | ++ } |
2995 | ++ } |
2996 | ++ } |
2997 | ++ |
2998 | ++ return success; |
2999 | ++} |
3000 | ++ |
3001 | ++ |
3002 | ++ |
3003 | ++static gboolean |
3004 | ++gdm_settings_get_bool_gconf_value (gchar *gconf_key, gboolean *enabled) { |
3005 | ++ |
3006 | ++ gchar *value = NULL; |
3007 | ++ gboolean result = FALSE; |
3008 | ++ |
3009 | ++ if (gdm_settings_get_gconf_value(gconf_key, &value)) { |
3010 | ++ result = TRUE; |
3011 | ++ if (strstr(value, "false") != NULL) |
3012 | ++ *enabled = FALSE; |
3013 | ++ else if (strstr(value, "true") != NULL) |
3014 | ++ *enabled = TRUE; |
3015 | ++ else |
3016 | ++ result = FALSE; |
3017 | ++ } |
3018 | ++ |
3019 | ++ if (value) |
3020 | ++ g_free (value); |
3021 | ++ return result; |
3022 | ++ |
3023 | ++} |
3024 | ++ |
3025 | ++static gboolean |
3026 | ++gdm_settings_set_gconf_value (gchar *gconf_key, gchar *type, gchar *value) { |
3027 | ++ |
3028 | ++ GError *error = NULL; |
3029 | ++ char *shutdown_command[] = { "gconftool-2", "--shutdown", NULL }; |
3030 | ++ char *set_command[] = { "gconftool-2", "--direct", "-s", gconf_key, "--config-source", NULL, "-t", type, value, NULL }; |
3031 | ++ gboolean res; |
3032 | ++ struct passwd *pwent; |
3033 | ++ gboolean success = FALSE; |
3034 | ++ |
3035 | ++ pwent = getpwnam (GDM_USERNAME); |
3036 | ++ if G_UNLIKELY (pwent == NULL) |
3037 | ++ g_warning ("Can't access to 'gdm' user name in passwd"); |
3038 | ++ else { |
3039 | ++ set_command[5] = g_strdup_printf("xml:readwrite:%s/.gconf", pwent->pw_dir); |
3040 | ++ res = g_spawn_sync (NULL, |
3041 | ++ shutdown_command, |
3042 | ++ NULL, |
3043 | ++ G_SPAWN_SEARCH_PATH, |
3044 | ++ (GSpawnChildSetupFunc)set_gdm_uid_child_setup, |
3045 | ++ NULL, |
3046 | ++ NULL, |
3047 | ++ NULL, |
3048 | ++ NULL, |
3049 | ++ &error); |
3050 | ++ if (!res) { |
3051 | ++ if (error != NULL) { |
3052 | ++ g_warning ("Unable to shutdown gconf: %s", error->message); |
3053 | ++ g_error_free (error); |
3054 | ++ } |
3055 | ++ else |
3056 | ++ g_warning ("Unable to shutdown gconf: unknown error"); |
3057 | ++ } |
3058 | ++ else { |
3059 | ++ res = g_spawn_async (NULL, |
3060 | ++ set_command, |
3061 | ++ NULL, |
3062 | ++ G_SPAWN_SEARCH_PATH |
3063 | ++ | G_SPAWN_STDOUT_TO_DEV_NULL |
3064 | ++ | G_SPAWN_STDERR_TO_DEV_NULL, |
3065 | ++ (GSpawnChildSetupFunc)set_gdm_uid_child_setup, |
3066 | ++ NULL, |
3067 | ++ NULL, |
3068 | ++ &error); |
3069 | ++ if (!res) { |
3070 | ++ if (error != NULL) { |
3071 | ++ g_warning ("Unable to set event key to gconf: %s", error->message); |
3072 | ++ g_error_free (error); |
3073 | ++ } |
3074 | ++ else |
3075 | ++ g_warning ("Unable to set event key to gconf: unknown error"); |
3076 | ++ } |
3077 | ++ else |
3078 | ++ success = TRUE; |
3079 | ++ } |
3080 | ++ } |
3081 | ++ |
3082 | ++ return success; |
3083 | ++} |
3084 | ++ |
3085 | ++static gboolean |
3086 | ++gdm_settings_set_bool_gconf_value (gchar *gconf_key, gboolean enabled) { |
3087 | ++ |
3088 | ++ gchar *value = g_strdup_printf ("%i", enabled); |
3089 | ++ gboolean result; |
3090 | ++ |
3091 | ++ result = gdm_settings_set_gconf_value (gconf_key, "bool", value); |
3092 | ++ |
3093 | ++ if (value) |
3094 | ++ g_free (value); |
3095 | ++ return result; |
3096 | ++} |
3097 | ++ |
3098 | ++ |
3099 | + /* |
3100 | + dbus-send --system --print-reply --dest=org.gnome.DisplayManager /org/gnome/DisplayManager/Settings org.gnome.DisplayManager.Settings.GetValue string:"xdmcp/Enable" |
3101 | + */ |
3102 | +@@ -111,6 +299,51 @@ |
3103 | + return res; |
3104 | + } |
3105 | + |
3106 | ++ |
3107 | ++/* |
3108 | ++dbus-send --system --print-reply --dest=org.gnome.DisplayManager /org/gnome/DisplayManager/Settings org.gnome.DisplayManager.Settings.GetSoundEnabled |
3109 | ++*/ |
3110 | ++ |
3111 | ++gboolean |
3112 | ++gdm_settings_get_sound_enabled (GdmSettings *settings, |
3113 | ++ gboolean *enabled, |
3114 | ++ GError **error) |
3115 | ++{ |
3116 | ++ gboolean res; |
3117 | ++ g_debug ("Trying to get sound"); |
3118 | ++ |
3119 | ++ g_return_val_if_fail (GDM_IS_SETTINGS (settings), FALSE); |
3120 | ++ |
3121 | ++ *enabled = FALSE; |
3122 | ++ res = gdm_settings_get_bool_gconf_value (GCONF_SOUND_EVENT_KEY, enabled); |
3123 | ++ if (res) |
3124 | ++ g_debug ("get sound returned: %i", *enabled); |
3125 | ++ |
3126 | ++ return TRUE; |
3127 | ++} |
3128 | ++ |
3129 | ++ |
3130 | ++/* |
3131 | ++dbus-send --system --print-reply --dest=org.gnome.DisplayManager /org/gnome/DisplayManager/Settings org.gnome.DisplayManager.Settings.GetFaceBrowserEnabled |
3132 | ++*/ |
3133 | ++ |
3134 | ++gboolean |
3135 | ++gdm_settings_get_face_browser_enabled (GdmSettings *settings, |
3136 | ++ gboolean *enabled, |
3137 | ++ GError **error) |
3138 | ++{ |
3139 | ++ gboolean res; |
3140 | ++ |
3141 | ++ g_return_val_if_fail (GDM_IS_SETTINGS (settings), FALSE); |
3142 | ++ |
3143 | ++ *enabled = TRUE; |
3144 | ++ res = gdm_settings_get_bool_gconf_value (GCONF_FACE_BROWSER_DISABLE_KEY, enabled); |
3145 | ++ if (res) |
3146 | ++ *enabled = !*enabled; |
3147 | ++ |
3148 | ++ return TRUE; |
3149 | ++} |
3150 | ++ |
3151 | + static void |
3152 | + unlock_auth_cb (PolkitAuthority *authority, |
3153 | + GAsyncResult *result, |
3154 | +@@ -155,6 +388,12 @@ |
3155 | + gchar *key, *value; |
3156 | + } SetValueData; |
3157 | + |
3158 | ++typedef struct |
3159 | ++{ |
3160 | ++ DBusGMethodInvocation *context; |
3161 | ++ gboolean enabled; |
3162 | ++} SetGConfBooleanData; |
3163 | ++ |
3164 | + static void |
3165 | + set_value_auth_cb (PolkitAuthority *authority, |
3166 | + GAsyncResult *result, |
3167 | +@@ -229,6 +468,129 @@ |
3168 | + return TRUE; |
3169 | + } |
3170 | + |
3171 | ++static void |
3172 | ++set_sound_enabled_auth_cb (PolkitAuthority *authority, |
3173 | ++ GAsyncResult *result, |
3174 | ++ SetGConfBooleanData *data) |
3175 | ++{ |
3176 | ++ PolkitAuthorizationResult *auth_result; |
3177 | ++ GError *error = NULL; |
3178 | ++ |
3179 | ++ auth_result = polkit_authority_check_authorization_finish (authority, result, &error); |
3180 | ++ |
3181 | ++ if (!auth_result) |
3182 | ++ dbus_g_method_return_error (data->context, error); |
3183 | ++ else { |
3184 | ++ if (polkit_authorization_result_get_is_authorized (auth_result)) { |
3185 | ++ if (!gdm_settings_set_bool_gconf_value (GCONF_SOUND_EVENT_KEY, data->enabled)) |
3186 | ++ g_warning ("set new value for sound failed"); |
3187 | ++ dbus_g_method_return (data->context); |
3188 | ++ } |
3189 | ++ else { |
3190 | ++ error = g_error_new (DBUS_GERROR_REMOTE_EXCEPTION, 0, "Not authorized"); |
3191 | ++ dbus_g_method_return_error (data->context, error); |
3192 | ++ } |
3193 | ++ } |
3194 | ++ |
3195 | ++ if (auth_result) |
3196 | ++ g_object_unref (auth_result); |
3197 | ++ if (error) |
3198 | ++ g_error_free (error); |
3199 | ++ |
3200 | ++ g_free (data); |
3201 | ++} |
3202 | ++ |
3203 | ++/* |
3204 | ++dbus-send --system --print-reply --dest=org.gnome.DisplayManager /org/gnome/DisplayManager/Settings org.gnome.DisplayManager.Settings.SetSoundEnabled boolean:false |
3205 | ++*/ |
3206 | ++ |
3207 | ++gboolean |
3208 | ++gdm_settings_set_sound_enabled (GdmSettings *settings, |
3209 | ++ gboolean enabled, |
3210 | ++ DBusGMethodInvocation *context) |
3211 | ++{ |
3212 | ++ SetGConfBooleanData *data; |
3213 | ++ |
3214 | ++ g_return_val_if_fail (GDM_IS_SETTINGS (settings), FALSE); |
3215 | ++ |
3216 | ++ |
3217 | ++ g_debug ("Setting sound enabled to %s", enabled ? "true" : "false"); |
3218 | ++ |
3219 | ++ /* Authorize with PolicyKit */ |
3220 | ++ data = g_malloc (sizeof(SetGConfBooleanData)); |
3221 | ++ data->context = context; |
3222 | ++ data->enabled = enabled; |
3223 | ++ polkit_authority_check_authorization (polkit_authority_get (), |
3224 | ++ polkit_system_bus_name_new (dbus_g_method_get_sender (context)), |
3225 | ++ "org.gnome.displaymanager.settings.write", |
3226 | ++ NULL, |
3227 | ++ POLKIT_CHECK_AUTHORIZATION_FLAGS_ALLOW_USER_INTERACTION, |
3228 | ++ NULL, |
3229 | ++ (GAsyncReadyCallback) set_sound_enabled_auth_cb, |
3230 | ++ data); |
3231 | ++ return TRUE; |
3232 | ++} |
3233 | ++ |
3234 | ++static void |
3235 | ++set_face_browser_enabled_auth_cb (PolkitAuthority *authority, |
3236 | ++ GAsyncResult *result, |
3237 | ++ SetGConfBooleanData *data) |
3238 | ++{ |
3239 | ++ PolkitAuthorizationResult *auth_result; |
3240 | ++ GError *error = NULL; |
3241 | ++ |
3242 | ++ auth_result = polkit_authority_check_authorization_finish (authority, result, &error); |
3243 | ++ |
3244 | ++ if (!auth_result) |
3245 | ++ dbus_g_method_return_error (data->context, error); |
3246 | ++ else { |
3247 | ++ if (polkit_authorization_result_get_is_authorized (auth_result)) { |
3248 | ++ if (!gdm_settings_set_bool_gconf_value (GCONF_FACE_BROWSER_DISABLE_KEY, !data->enabled)) |
3249 | ++ g_warning ("set new value for face browser failed"); |
3250 | ++ dbus_g_method_return (data->context); |
3251 | ++ } |
3252 | ++ else { |
3253 | ++ error = g_error_new (DBUS_GERROR_REMOTE_EXCEPTION, 0, "Not authorized"); |
3254 | ++ dbus_g_method_return_error (data->context, error); |
3255 | ++ } |
3256 | ++ } |
3257 | ++ |
3258 | ++ if (auth_result) |
3259 | ++ g_object_unref (auth_result); |
3260 | ++ if (error) |
3261 | ++ g_error_free (error); |
3262 | ++ |
3263 | ++ g_free (data); |
3264 | ++} |
3265 | ++ |
3266 | ++/* |
3267 | ++dbus-send --system --print-reply --dest=org.gnome.DisplayManager /org/gnome/DisplayManager/Settings org.gnome.DisplayManager.Settings.SetFaceBrowserEnabled boolean:true |
3268 | ++*/ |
3269 | ++ |
3270 | ++gboolean |
3271 | ++gdm_settings_set_face_browser_enabled (GdmSettings *settings, |
3272 | ++ gboolean enabled, |
3273 | ++ DBusGMethodInvocation *context) |
3274 | ++{ |
3275 | ++ SetGConfBooleanData *data; |
3276 | ++ |
3277 | ++ g_return_val_if_fail (GDM_IS_SETTINGS (settings), FALSE); |
3278 | ++ |
3279 | ++ /* Authorize with PolicyKit */ |
3280 | ++ data = g_malloc (sizeof(SetGConfBooleanData)); |
3281 | ++ data->context = context; |
3282 | ++ data->enabled = enabled; |
3283 | ++ polkit_authority_check_authorization (polkit_authority_get (), |
3284 | ++ polkit_system_bus_name_new (dbus_g_method_get_sender (context)), |
3285 | ++ "org.gnome.displaymanager.settings.write", |
3286 | ++ NULL, |
3287 | ++ POLKIT_CHECK_AUTHORIZATION_FLAGS_ALLOW_USER_INTERACTION, |
3288 | ++ NULL, |
3289 | ++ (GAsyncReadyCallback) set_face_browser_enabled_auth_cb, |
3290 | ++ data); |
3291 | ++ return TRUE; |
3292 | ++} |
3293 | ++ |
3294 | + static gboolean |
3295 | + register_settings (GdmSettings *settings) |
3296 | + { |
3297 | +Index: gdm-2.30.4/common/gdm-settings.h |
3298 | +=================================================================== |
3299 | +--- gdm-2.30.4.orig/common/gdm-settings.h 2010-06-30 12:35:02.000000000 +0200 |
3300 | ++++ gdm-2.30.4/common/gdm-settings.h 2010-06-30 12:35:06.000000000 +0200 |
3301 | +@@ -71,12 +71,24 @@ |
3302 | + const char *key, |
3303 | + char **value, |
3304 | + GError **error); |
3305 | ++gboolean gdm_settings_get_sound_enabled (GdmSettings *settings, |
3306 | ++ gboolean *value, |
3307 | ++ GError **error); |
3308 | ++gboolean gdm_settings_get_face_browser_enabled (GdmSettings *settings, |
3309 | ++ gboolean *value, |
3310 | ++ GError **error); |
3311 | + gboolean gdm_settings_unlock (GdmSettings *settings, |
3312 | + DBusGMethodInvocation *context); |
3313 | + gboolean gdm_settings_set_value (GdmSettings *settings, |
3314 | + const char *key, |
3315 | + const char *value, |
3316 | + DBusGMethodInvocation *context); |
3317 | ++gboolean gdm_settings_set_sound_enabled (GdmSettings *settings, |
3318 | ++ gboolean value, |
3319 | ++ DBusGMethodInvocation *context); |
3320 | ++gboolean gdm_settings_set_face_browser_enabled (GdmSettings *settings, |
3321 | ++ gboolean value, |
3322 | ++ DBusGMethodInvocation *context); |
3323 | + |
3324 | + G_END_DECLS |
3325 | + |
3326 | +Index: gdm-2.30.4/common/gdm-settings.xml |
3327 | +=================================================================== |
3328 | +--- gdm-2.30.4.orig/common/gdm-settings.xml 2010-06-30 12:35:02.000000000 +0200 |
3329 | ++++ gdm-2.30.4/common/gdm-settings.xml 2010-06-30 12:35:06.000000000 +0200 |
3330 | +@@ -5,6 +5,12 @@ |
3331 | + <arg name="key" direction="in" type="s"/> |
3332 | + <arg name="value" direction="out" type="s"/> |
3333 | + </method> |
3334 | ++ <method name="GetSoundEnabled"> |
3335 | ++ <arg name="enabled" direction="out" type="b"/> |
3336 | ++ </method> |
3337 | ++ <method name="GetFaceBrowserEnabled"> |
3338 | ++ <arg name="enabled" direction="out" type="b"/> |
3339 | ++ </method> |
3340 | + <method name="Unlock"> |
3341 | + <annotation name="org.freedesktop.DBus.GLib.Async" value=""/> |
3342 | + <arg name="is_unlocked" direction="out" type="b"/> |
3343 | +@@ -14,6 +20,14 @@ |
3344 | + <arg name="key" direction="in" type="s"/> |
3345 | + <arg name="value" direction="in" type="s"/> |
3346 | + </method> |
3347 | ++ <method name="SetSoundEnabled"> |
3348 | ++ <annotation name="org.freedesktop.DBus.GLib.Async" value=""/> |
3349 | ++ <arg name="enabled" direction="in" type="b"/> |
3350 | ++ </method> |
3351 | ++ <method name="SetFaceBrowserEnabled"> |
3352 | ++ <annotation name="org.freedesktop.DBus.GLib.Async" value=""/> |
3353 | ++ <arg name="enabled" direction="in" type="b"/> |
3354 | ++ </method> |
3355 | + <signal name="ValueChanged"> |
3356 | + <arg name="key" type="s"/> |
3357 | + <arg name="old_value" type="s"/> |
3358 | |
3359 | === added file 'debian/patches/09_gdmsetup.patch' |
3360 | --- debian/patches/09_gdmsetup.patch 1970-01-01 00:00:00 +0000 |
3361 | +++ debian/patches/09_gdmsetup.patch 2011-03-10 14:39:08 +0000 |
3362 | @@ -0,0 +1,4549 @@ |
3363 | +Description: Add GDM Setup |
3364 | +Bug: http://bugzilla.gnome.org/show_bug.cgi?id=587750 |
3365 | +Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/gdm/+bug/395299 |
3366 | + |
3367 | +Index: gdm-2.30.5/configure.ac |
3368 | +=================================================================== |
3369 | +--- gdm-2.30.5.orig/configure.ac 2010-08-17 22:19:05.000000000 +0200 |
3370 | ++++ gdm-2.30.5/configure.ac 2010-08-17 22:19:18.000000000 +0200 |
3371 | +@@ -118,6 +118,14 @@ |
3372 | + AC_SUBST(UPOWER_CFLAGS) |
3373 | + AC_SUBST(UPOWER_LIBS) |
3374 | + |
3375 | ++PKG_CHECK_MODULES(GDMSETUP, |
3376 | ++ dbus-glib-1 >= $DBUS_GLIB_REQUIRED_VERSION |
3377 | ++ gtk+-2.0 >= $GTK_REQUIRED_VERSION |
3378 | ++ gmodule-2.0 |
3379 | ++) |
3380 | ++AC_SUBST(GDMSETUP_CFLAGS) |
3381 | ++AC_SUBST(GDMSETUP_LIBS) |
3382 | ++ |
3383 | + PKG_CHECK_MODULES(SIMPLE_GREETER, |
3384 | + dbus-glib-1 >= $DBUS_GLIB_REQUIRED_VERSION |
3385 | + gtk+-2.0 >= $GTK_REQUIRED_VERSION |
3386 | +@@ -1399,6 +1407,7 @@ |
3387 | + daemon/Makefile |
3388 | + docs/Makefile |
3389 | + gui/Makefile |
3390 | ++gui/gdmsetup/Makefile |
3391 | + gui/simple-greeter/Makefile |
3392 | + gui/simple-greeter/libnotificationarea/Makefile |
3393 | + gui/simple-chooser/Makefile |
3394 | +Index: gdm-2.30.5/gui/gdmsetup/gdm-sessions.c |
3395 | +=================================================================== |
3396 | +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
3397 | ++++ gdm-2.30.5/gui/gdmsetup/gdm-sessions.c 2010-08-17 22:19:05.000000000 +0200 |
3398 | +@@ -0,0 +1,265 @@ |
3399 | ++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- |
3400 | ++ * |
3401 | ++ * Copyright 2008 Red Hat, Inc, |
3402 | ++ * 2007 William Jon McCann <mccann@jhu.edu> |
3403 | ++ * |
3404 | ++ * This program is free software; you can redistribute it and/or modify |
3405 | ++ * it under the terms of the GNU General Public License as published by |
3406 | ++ * the Free Software Foundation; either version 2 of the License, or |
3407 | ++ * (at your option) any later version. |
3408 | ++ * |
3409 | ++ * This program is distributed in the hope that it will be useful, |
3410 | ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of |
3411 | ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
3412 | ++ * GNU General Public License for more details. |
3413 | ++ * |
3414 | ++ * You should have received a copy of the GNU General Public License |
3415 | ++ * along with this program; if not, write to the Free Software |
3416 | ++ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
3417 | ++ * |
3418 | ++ * Written by : William Jon McCann <mccann@jhu.edu> |
3419 | ++ * Ray Strode <rstrode@redhat.com> |
3420 | ++ */ |
3421 | ++ |
3422 | ++#include "config.h" |
3423 | ++ |
3424 | ++#include <stdlib.h> |
3425 | ++#include <stdio.h> |
3426 | ++#include <unistd.h> |
3427 | ++#include <string.h> |
3428 | ++#include <errno.h> |
3429 | ++#include <dirent.h> |
3430 | ++#include <sys/stat.h> |
3431 | ++ |
3432 | ++#include <glib.h> |
3433 | ++#include <glib/gi18n.h> |
3434 | ++#include <glib/gstdio.h> |
3435 | ++ |
3436 | ++#include "gdm-sessions.h" |
3437 | ++ |
3438 | ++typedef struct _GdmSessionFile { |
3439 | ++ char *id; |
3440 | ++ char *path; |
3441 | ++ char *translated_name; |
3442 | ++ char *translated_comment; |
3443 | ++} GdmSessionFile; |
3444 | ++ |
3445 | ++static GHashTable *gdm_available_sessions_map; |
3446 | ++ |
3447 | ++static gboolean gdm_sessions_map_is_initialized = FALSE; |
3448 | ++ |
3449 | ++/* adapted from gnome-menus desktop-entries.c */ |
3450 | ++static gboolean |
3451 | ++key_file_is_relevant (GKeyFile *key_file) |
3452 | ++{ |
3453 | ++ GError *error; |
3454 | ++ gboolean no_display; |
3455 | ++ gboolean hidden; |
3456 | ++ gboolean tryexec_failed; |
3457 | ++ char *tryexec; |
3458 | ++ |
3459 | ++ error = NULL; |
3460 | ++ no_display = g_key_file_get_boolean (key_file, |
3461 | ++ G_KEY_FILE_DESKTOP_GROUP, |
3462 | ++ "NoDisplay", |
3463 | ++ &error); |
3464 | ++ if (error) { |
3465 | ++ no_display = FALSE; |
3466 | ++ g_error_free (error); |
3467 | ++ } |
3468 | ++ |
3469 | ++ error = NULL; |
3470 | ++ hidden = g_key_file_get_boolean (key_file, |
3471 | ++ G_KEY_FILE_DESKTOP_GROUP, |
3472 | ++ "Hidden", |
3473 | ++ &error); |
3474 | ++ if (error) { |
3475 | ++ hidden = FALSE; |
3476 | ++ g_error_free (error); |
3477 | ++ } |
3478 | ++ |
3479 | ++ tryexec_failed = FALSE; |
3480 | ++ tryexec = g_key_file_get_string (key_file, |
3481 | ++ G_KEY_FILE_DESKTOP_GROUP, |
3482 | ++ "TryExec", |
3483 | ++ NULL); |
3484 | ++ if (tryexec) { |
3485 | ++ char *path; |
3486 | ++ |
3487 | ++ path = g_find_program_in_path (g_strstrip (tryexec)); |
3488 | ++ |
3489 | ++ tryexec_failed = (path == NULL); |
3490 | ++ |
3491 | ++ g_free (path); |
3492 | ++ g_free (tryexec); |
3493 | ++ } |
3494 | ++ |
3495 | ++ if (no_display || hidden || tryexec_failed) { |
3496 | ++ return FALSE; |
3497 | ++ } |
3498 | ++ |
3499 | ++ return TRUE; |
3500 | ++} |
3501 | ++ |
3502 | ++static void |
3503 | ++load_session_file (const char *id, |
3504 | ++ const char *path) |
3505 | ++{ |
3506 | ++ GKeyFile *key_file; |
3507 | ++ GError *error; |
3508 | ++ gboolean res; |
3509 | ++ GdmSessionFile *session; |
3510 | ++ |
3511 | ++ key_file = g_key_file_new (); |
3512 | ++ |
3513 | ++ error = NULL; |
3514 | ++ res = g_key_file_load_from_file (key_file, path, 0, &error); |
3515 | ++ |
3516 | ++ if (!res) { |
3517 | ++ g_debug ("Failed to load \"%s\": %s\n", path, error->message); |
3518 | ++ g_error_free (error); |
3519 | ++ goto out; |
3520 | ++ } |
3521 | ++ |
3522 | ++ if (! g_key_file_has_group (key_file, G_KEY_FILE_DESKTOP_GROUP)) { |
3523 | ++ goto out; |
3524 | ++ } |
3525 | ++ |
3526 | ++ res = g_key_file_has_key (key_file, G_KEY_FILE_DESKTOP_GROUP, "Name", NULL); |
3527 | ++ if (! res) { |
3528 | ++ g_debug ("\"%s\" contains no \"Name\" key\n", path); |
3529 | ++ goto out; |
3530 | ++ } |
3531 | ++ |
3532 | ++ if (!key_file_is_relevant (key_file)) { |
3533 | ++ g_debug ("\"%s\" is hidden or contains non-executable TryExec program\n", path); |
3534 | ++ goto out; |
3535 | ++ } |
3536 | ++ |
3537 | ++ session = g_new0 (GdmSessionFile, 1); |
3538 | ++ |
3539 | ++ session->id = g_strdup (id); |
3540 | ++ session->path = g_strdup (path); |
3541 | ++ |
3542 | ++ session->translated_name = g_key_file_get_locale_string (key_file, G_KEY_FILE_DESKTOP_GROUP, "Name", NULL, NULL); |
3543 | ++ session->translated_comment = g_key_file_get_locale_string (key_file, G_KEY_FILE_DESKTOP_GROUP, "Comment", NULL, NULL); |
3544 | ++ |
3545 | ++ g_hash_table_insert (gdm_available_sessions_map, |
3546 | ++ g_strdup (id), |
3547 | ++ session); |
3548 | ++ out: |
3549 | ++ g_key_file_free (key_file); |
3550 | ++} |
3551 | ++ |
3552 | ++static void |
3553 | ++collect_sessions_from_directory (const char *dirname) |
3554 | ++{ |
3555 | ++ GDir *dir; |
3556 | ++ const char *filename; |
3557 | ++ |
3558 | ++ /* FIXME: add file monitor to directory */ |
3559 | ++ |
3560 | ++ dir = g_dir_open (dirname, 0, NULL); |
3561 | ++ if (dir == NULL) { |
3562 | ++ return; |
3563 | ++ } |
3564 | ++ |
3565 | ++ while ((filename = g_dir_read_name (dir))) { |
3566 | ++ char *id; |
3567 | ++ char *full_path; |
3568 | ++ |
3569 | ++ if (! g_str_has_suffix (filename, ".desktop")) { |
3570 | ++ continue; |
3571 | ++ } |
3572 | ++ id = g_strndup (filename, strlen (filename) - strlen (".desktop")); |
3573 | ++ |
3574 | ++ full_path = g_build_filename (dirname, filename, NULL); |
3575 | ++ |
3576 | ++ load_session_file (id, full_path); |
3577 | ++ |
3578 | ++ g_free (id); |
3579 | ++ g_free (full_path); |
3580 | ++ } |
3581 | ++ |
3582 | ++ g_dir_close (dir); |
3583 | ++} |
3584 | ++ |
3585 | ++static void |
3586 | ++collect_sessions (void) |
3587 | ++{ |
3588 | ++ int i; |
3589 | ++ const char *search_dirs[] = { |
3590 | ++ "/etc/X11/sessions/", |
3591 | ++ DMCONFDIR "/Sessions/", |
3592 | ++ DATADIR "/gdm/BuiltInSessions/", |
3593 | ++ DATADIR "/xsessions/", |
3594 | ++ NULL |
3595 | ++ }; |
3596 | ++ |
3597 | ++ if (gdm_available_sessions_map == NULL) { |
3598 | ++ gdm_available_sessions_map = g_hash_table_new_full (g_str_hash, g_str_equal, |
3599 | ++ g_free, g_free); |
3600 | ++ } |
3601 | ++ |
3602 | ++ for (i = 0; search_dirs [i] != NULL; i++) { |
3603 | ++ collect_sessions_from_directory (search_dirs [i]); |
3604 | ++ } |
3605 | ++} |
3606 | ++ |
3607 | ++char ** |
3608 | ++gdm_get_all_sessions (void) |
3609 | ++{ |
3610 | ++ GHashTableIter iter; |
3611 | ++ gpointer key, value; |
3612 | ++ GPtrArray *array; |
3613 | ++ |
3614 | ++ if (!gdm_sessions_map_is_initialized) { |
3615 | ++ collect_sessions (); |
3616 | ++ |
3617 | ++ gdm_sessions_map_is_initialized = TRUE; |
3618 | ++ } |
3619 | ++ |
3620 | ++ array = g_ptr_array_new (); |
3621 | ++ g_hash_table_iter_init (&iter, gdm_available_sessions_map); |
3622 | ++ while (g_hash_table_iter_next (&iter, &key, &value)) { |
3623 | ++ GdmSessionFile *session; |
3624 | ++ |
3625 | ++ session = (GdmSessionFile *) value; |
3626 | ++ |
3627 | ++ g_ptr_array_add (array, g_strdup (session->id)); |
3628 | ++ } |
3629 | ++ g_ptr_array_add (array, NULL); |
3630 | ++ |
3631 | ++ return (char **) g_ptr_array_free (array, FALSE); |
3632 | ++} |
3633 | ++ |
3634 | ++gboolean |
3635 | ++gdm_get_details_for_session (const char *id, |
3636 | ++ char **name, |
3637 | ++ char **comment) |
3638 | ++{ |
3639 | ++ GdmSessionFile *session; |
3640 | ++ |
3641 | ++ if (!gdm_sessions_map_is_initialized) { |
3642 | ++ collect_sessions (); |
3643 | ++ |
3644 | ++ gdm_sessions_map_is_initialized = TRUE; |
3645 | ++ } |
3646 | ++ |
3647 | ++ session = (GdmSessionFile *) g_hash_table_lookup (gdm_available_sessions_map, |
3648 | ++ id); |
3649 | ++ |
3650 | ++ if (session == NULL) { |
3651 | ++ return FALSE; |
3652 | ++ } |
3653 | ++ |
3654 | ++ if (name != NULL) { |
3655 | ++ *name = g_strdup (session->translated_name); |
3656 | ++ } |
3657 | ++ |
3658 | ++ if (comment != NULL) { |
3659 | ++ *comment = g_strdup (session->translated_comment); |
3660 | ++ } |
3661 | ++ |
3662 | ++ return TRUE; |
3663 | ++} |
3664 | +Index: gdm-2.30.5/gui/gdmsetup/gdm-sessions.h |
3665 | +=================================================================== |
3666 | +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
3667 | ++++ gdm-2.30.5/gui/gdmsetup/gdm-sessions.h 2010-08-17 22:19:05.000000000 +0200 |
3668 | +@@ -0,0 +1,38 @@ |
3669 | ++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- |
3670 | ++ * |
3671 | ++ * Copyright 2008 Red Hat, Inc. |
3672 | ++ * Copyright 2007 William Jon McCann <mccann@jhu.edu> |
3673 | ++ * |
3674 | ++ * This program is free software; you can redistribute it and/or modify |
3675 | ++ * it under the terms of the GNU General Public License as published by |
3676 | ++ * the Free Software Foundation; either version 2 of the License, or |
3677 | ++ * (at your option) any later version. |
3678 | ++ * |
3679 | ++ * This program is distributed in the hope that it will be useful, |
3680 | ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of |
3681 | ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
3682 | ++ * GNU General Public License for more details. |
3683 | ++ * |
3684 | ++ * You should have received a copy of the GNU General Public License |
3685 | ++ * along with this program; if not, write to the Free Software |
3686 | ++ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
3687 | ++ * |
3688 | ++ * Written by: Ray Strode |
3689 | ++ * William Jon McCann |
3690 | ++ */ |
3691 | ++ |
3692 | ++#ifndef __GDM_SESSIONS_H |
3693 | ++#define __GDM_SESSIONS_H |
3694 | ++ |
3695 | ++#include <glib.h> |
3696 | ++ |
3697 | ++G_BEGIN_DECLS |
3698 | ++ |
3699 | ++char ** gdm_get_all_sessions (void); |
3700 | ++gboolean gdm_get_details_for_session (const char *id, |
3701 | ++ char **name, |
3702 | ++ char **comment); |
3703 | ++ |
3704 | ++G_END_DECLS |
3705 | ++ |
3706 | ++#endif /* __GDM_SESSION_H */ |
3707 | +Index: gdm-2.30.5/gui/gdmsetup/gdmsetup.c |
3708 | +=================================================================== |
3709 | +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
3710 | ++++ gdm-2.30.5/gui/gdmsetup/gdmsetup.c 2010-08-17 22:19:05.000000000 +0200 |
3711 | +@@ -0,0 +1,717 @@ |
3712 | ++#ifdef HAVE_CONFIG_H |
3713 | ++#include "config.h" |
3714 | ++#endif |
3715 | ++ |
3716 | ++#include <string.h> |
3717 | ++#include <stdlib.h> |
3718 | ++#include <gtk/gtk.h> |
3719 | ++#include <gdk/gdkkeysyms.h> |
3720 | ++#include <dbus/dbus-glib.h> |
3721 | ++#include <glib/gi18n.h> |
3722 | ++ |
3723 | ++#include "gdm-user-manager.h" |
3724 | ++#include "gdm-sessions.h" |
3725 | ++ |
3726 | ++#define MAX_USERS_IN_COMBO_BOX 20 |
3727 | ++ |
3728 | ++/* User interface */ |
3729 | ++static GtkBuilder *ui; |
3730 | ++static GtkWidget *dialog, *unlock_button, *option_vbox; |
3731 | ++static GtkWidget *user_combo, *user_entry, *delay_spin; |
3732 | ++static GtkWidget *session_combo; |
3733 | ++static GtkWidget *auto_login_radio, *login_delay_box, *login_delay_check, *sound_enable_check, *face_browser_enable_check; |
3734 | ++ |
3735 | ++/* Timer to delay application of configuration */ |
3736 | ++static guint apply_timeout = 0; |
3737 | ++ |
3738 | ++/* Flag to show when information is user_login_loaded */ |
3739 | ++static gboolean user_login_loaded = FALSE; |
3740 | ++static gboolean session_loaded = FALSE; |
3741 | ++ |
3742 | ++/* Flag to show when information is loaded */ |
3743 | ++static gboolean locked = TRUE; |
3744 | ++ |
3745 | ++/* True if the user selection method is a combo box, False if an entry */ |
3746 | ++static gboolean user_list_is_combo = TRUE; |
3747 | ++ |
3748 | ++/* User information */ |
3749 | ++static GdmUserManager *user_manager; |
3750 | ++ |
3751 | ++/* Proxy to GDM settings */ |
3752 | ++static DBusGProxy *proxy = NULL; |
3753 | ++ |
3754 | ++ |
3755 | ++static gboolean |
3756 | ++get_sound_enabled () |
3757 | ++{ |
3758 | ++ gboolean value; |
3759 | ++ GError *error = NULL; |
3760 | ++ |
3761 | ++ if (!dbus_g_proxy_call (proxy, "GetSoundEnabled", &error, |
3762 | ++ G_TYPE_INVALID, |
3763 | ++ G_TYPE_BOOLEAN, &value, G_TYPE_INVALID)) { |
3764 | ++ g_warning ("Error calling GetSoundEnabled(): %s", error->message); |
3765 | ++ return FALSE; |
3766 | ++ } |
3767 | ++ |
3768 | ++ return value; |
3769 | ++} |
3770 | ++ |
3771 | ++ |
3772 | ++static gboolean |
3773 | ++set_sound_enabled (gboolean enabled) |
3774 | ++{ |
3775 | ++ GError *error = NULL; |
3776 | ++ |
3777 | ++ dbus_g_proxy_call (proxy, "SetSoundEnabled", &error, |
3778 | ++ G_TYPE_BOOLEAN, enabled, G_TYPE_INVALID, |
3779 | ++ G_TYPE_INVALID); |
3780 | ++ if (error) { |
3781 | ++ g_warning ("Error calling SetSoundEnabled(%s): %s", enabled ? "TRUE" : "FALSE", error->message); |
3782 | ++ return FALSE; |
3783 | ++ } |
3784 | ++ |
3785 | ++ return TRUE; |
3786 | ++} |
3787 | ++ |
3788 | ++ |
3789 | ++static gboolean |
3790 | ++get_face_browser_enabled () |
3791 | ++{ |
3792 | ++ gboolean value; |
3793 | ++ GError *error = NULL; |
3794 | ++ |
3795 | ++ if (!dbus_g_proxy_call (proxy, "GetFaceBrowserEnabled", &error, |
3796 | ++ G_TYPE_INVALID, |
3797 | ++ G_TYPE_BOOLEAN, &value, G_TYPE_INVALID)) { |
3798 | ++ g_warning ("Error calling GetFaceBrowserEnabled(): %s", error->message); |
3799 | ++ return FALSE; |
3800 | ++ } |
3801 | ++ |
3802 | ++ return value; |
3803 | ++} |
3804 | ++ |
3805 | ++ |
3806 | ++static gboolean |
3807 | ++set_face_browser_enabled (gboolean enabled) |
3808 | ++{ |
3809 | ++ GError *error = NULL; |
3810 | ++ |
3811 | ++ dbus_g_proxy_call (proxy, "SetFaceBrowserEnabled", &error, |
3812 | ++ G_TYPE_BOOLEAN, enabled, G_TYPE_INVALID, |
3813 | ++ G_TYPE_INVALID); |
3814 | ++ if (error) { |
3815 | ++ g_warning ("Error calling SetFaceBrowserEnabled(%s): %s", enabled ? "TRUE" : "FALSE", error->message); |
3816 | ++ return FALSE; |
3817 | ++ } |
3818 | ++ |
3819 | ++ return TRUE; |
3820 | ++} |
3821 | ++ |
3822 | ++ |
3823 | ++static gchar * |
3824 | ++get_value (const gchar *key, gchar *def) |
3825 | ++{ |
3826 | ++ gchar *value; |
3827 | ++ GError *error = NULL; |
3828 | ++ |
3829 | ++ if (!dbus_g_proxy_call (proxy, "GetValue", &error, |
3830 | ++ G_TYPE_STRING, key, G_TYPE_INVALID, |
3831 | ++ G_TYPE_STRING, &value, G_TYPE_INVALID)) { |
3832 | ++ g_warning ("Error calling GetValue('%s'): %s", key, error->message); |
3833 | ++ return def; |
3834 | ++ } |
3835 | ++ |
3836 | ++ return value; |
3837 | ++} |
3838 | ++ |
3839 | ++ |
3840 | ++static gboolean |
3841 | ++set_value (const gchar *key, const gchar *value) |
3842 | ++{ |
3843 | ++ GError *error = NULL; |
3844 | ++ |
3845 | ++ dbus_g_proxy_call (proxy, "SetValue", &error, |
3846 | ++ G_TYPE_STRING, key, |
3847 | ++ G_TYPE_STRING, value, G_TYPE_INVALID, G_TYPE_INVALID); |
3848 | ++ if (error) { |
3849 | ++ g_warning ("Error calling SetValue('%s', '%s'): %s", key, value, error->message); |
3850 | ++ return FALSE; |
3851 | ++ } |
3852 | ++ |
3853 | ++ return TRUE; |
3854 | ++} |
3855 | ++ |
3856 | ++ |
3857 | ++static gboolean |
3858 | ++get_boolean_value (const gchar *key, gboolean def) |
3859 | ++{ |
3860 | ++ gchar *value; |
3861 | ++ gboolean result; |
3862 | ++ |
3863 | ++ value = get_value (key, NULL); |
3864 | ++ if (!value) |
3865 | ++ return def; |
3866 | ++ result = strcmp (value, "true") == 0; |
3867 | ++ g_free (value); |
3868 | ++ return result; |
3869 | ++} |
3870 | ++ |
3871 | ++ |
3872 | ++static gint |
3873 | ++get_integer_value (const gchar *key, gint def) |
3874 | ++{ |
3875 | ++ gchar *value; |
3876 | ++ gint result; |
3877 | ++ char *end; |
3878 | ++ |
3879 | ++ value = get_value (key, NULL); |
3880 | ++ if (!value || value[0] == '\0') |
3881 | ++ result = def; |
3882 | ++ else { |
3883 | ++ result = strtol (value, &end, 10); |
3884 | ++ if (*end != '\0') |
3885 | ++ result = def; |
3886 | ++ } |
3887 | ++ |
3888 | ++ if (value) |
3889 | ++ g_free (value); |
3890 | ++ return result; |
3891 | ++} |
3892 | ++ |
3893 | ++ |
3894 | ++static gboolean |
3895 | ++set_boolean_value (const gchar *key, gboolean value) |
3896 | ++{ |
3897 | ++ return set_value (key, value ? "true" : "false"); |
3898 | ++} |
3899 | ++ |
3900 | ++ |
3901 | ++static gboolean |
3902 | ++set_integer_value (const gchar *key, gint value) |
3903 | ++{ |
3904 | ++ char value_string[1024]; |
3905 | ++ snprintf(value_string, 1024, "%d", value); |
3906 | ++ return set_value (key, value_string); |
3907 | ++} |
3908 | ++ |
3909 | ++ |
3910 | ++static void |
3911 | ++update_config () |
3912 | ++{ |
3913 | ++ GtkTreeModel *model; |
3914 | ++ GtkTreeIter iter; |
3915 | ++ gchar *user = NULL; |
3916 | ++ gint delay = 0; |
3917 | ++ gboolean auto_login = FALSE, timed_login = FALSE, error = FALSE; |
3918 | ++ gchar *default_session = NULL; |
3919 | ++ |
3920 | ++ if (apply_timeout != 0) { |
3921 | ++ g_source_remove (apply_timeout); |
3922 | ++ apply_timeout = 0; |
3923 | ++ } |
3924 | ++ |
3925 | ++ if (user_list_is_combo) { |
3926 | ++ model = gtk_combo_box_get_model (GTK_COMBO_BOX (user_combo)); |
3927 | ++ if (gtk_combo_box_get_active_iter (GTK_COMBO_BOX (user_combo), &iter)) |
3928 | ++ gtk_tree_model_get (model, &iter, 1, &user, -1); |
3929 | ++ } |
3930 | ++ else |
3931 | ++ user = g_strdup (gtk_entry_get_text (GTK_ENTRY (user_entry))); |
3932 | ++ |
3933 | ++ model = gtk_combo_box_get_model (GTK_COMBO_BOX (session_combo)); |
3934 | ++ if (gtk_combo_box_get_active_iter (GTK_COMBO_BOX (session_combo), &iter)) |
3935 | ++ gtk_tree_model_get (model, &iter, 1, &default_session, -1); |
3936 | ++ |
3937 | ++ if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (auto_login_radio))) { |
3938 | ++ if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (login_delay_check))) |
3939 | ++ timed_login = TRUE; |
3940 | ++ else |
3941 | ++ auto_login = TRUE; |
3942 | ++ } |
3943 | ++ |
3944 | ++ delay = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (delay_spin)); |
3945 | ++ |
3946 | ++ g_debug ("set user='%s', auto=%s, timed=%s, delay=%d, default_session=%s", |
3947 | ++ user, |
3948 | ++ auto_login ? "True" : "False", |
3949 | ++ timed_login ? "True" : "False", delay, |
3950 | ++ default_session); |
3951 | ++ |
3952 | ++ if (!set_boolean_value ("daemon/TimedLoginEnable", timed_login) || |
3953 | ++ !set_boolean_value ("daemon/AutomaticLoginEnable", auto_login) || |
3954 | ++ !set_value ("daemon/TimedLogin", user) || |
3955 | ++ !set_value ("daemon/AutomaticLogin", user) || |
3956 | ++ !set_integer_value ("daemon/TimedLoginDelay", delay) || |
3957 | ++ !set_value ("daemon/DefaultSession", default_session)) |
3958 | ++ error = TRUE; |
3959 | ++ |
3960 | ++ if (user) |
3961 | ++ g_free (user); |
3962 | ++} |
3963 | ++ |
3964 | ++ |
3965 | ++G_MODULE_EXPORT |
3966 | ++void |
3967 | ++gdm_capplet_response_cb (GtkWidget *widget, gint response_id) |
3968 | ++{ |
3969 | ++ if (response_id != 1) |
3970 | ++ gtk_main_quit (); |
3971 | ++} |
3972 | ++ |
3973 | ++ |
3974 | ++static void |
3975 | ++unlock_response_cb (DBusGProxy *proxy, |
3976 | ++ DBusGProxyCall *call_id, |
3977 | ++ void *user_data) |
3978 | ++{ |
3979 | ++ gboolean is_unlocked; |
3980 | ++ GError *error = NULL; |
3981 | ++ |
3982 | ++ dbus_g_proxy_end_call (proxy, call_id, &error, G_TYPE_BOOLEAN, &is_unlocked, G_TYPE_INVALID); |
3983 | ++ if (error) { |
3984 | ++ g_warning ("Failed to unlock: %s", error->message); |
3985 | ++ g_error_free (error); |
3986 | ++ return; |
3987 | ++ } |
3988 | ++ |
3989 | ++ if (!is_unlocked) |
3990 | ++ return; |
3991 | ++ |
3992 | ++ locked = FALSE; |
3993 | ++ gtk_widget_set_sensitive (unlock_button, FALSE); |
3994 | ++ gtk_widget_set_sensitive (option_vbox, user_login_loaded && !locked); |
3995 | ++} |
3996 | ++ |
3997 | ++ |
3998 | ++G_MODULE_EXPORT |
3999 | ++void |
4000 | ++unlock_button_clicked_cb (GtkWidget *widget) |
4001 | ++{ |
4002 | ++ dbus_g_proxy_begin_call (proxy, "Unlock", unlock_response_cb, NULL, NULL, G_TYPE_INVALID); |
4003 | ++} |
4004 | ++ |
4005 | ++ |
4006 | ++G_MODULE_EXPORT |
4007 | ++void |
4008 | ++login_delay_check_toggled_cb (GtkWidget *widget) |
4009 | ++{ |
4010 | ++ gtk_widget_set_sensitive (delay_spin, |
4011 | ++ gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (login_delay_check))); |
4012 | ++ |
4013 | ++ if (session_loaded && user_login_loaded) |
4014 | ++ update_config (); |
4015 | ++} |
4016 | ++ |
4017 | ++ |
4018 | ++G_MODULE_EXPORT |
4019 | ++void |
4020 | ++sound_enable_check_toggled_cb (GtkWidget *widget) |
4021 | ++{ |
4022 | ++ set_sound_enabled (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))); |
4023 | ++} |
4024 | ++ |
4025 | ++ |
4026 | ++G_MODULE_EXPORT |
4027 | ++void |
4028 | ++face_browser_enable_check_toggled_cb (GtkWidget *widget) |
4029 | ++{ |
4030 | ++ set_face_browser_enabled (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))); |
4031 | ++} |
4032 | ++ |
4033 | ++ |
4034 | ++static gboolean |
4035 | ++delayed_apply_cb () |
4036 | ++{ |
4037 | ++ update_config (); |
4038 | ++ return FALSE; |
4039 | ++} |
4040 | ++ |
4041 | ++ |
4042 | ++G_MODULE_EXPORT |
4043 | ++void |
4044 | ++apply_config_cb (GtkWidget *widget) |
4045 | ++{ |
4046 | ++ if (session_loaded && user_login_loaded) { |
4047 | ++ if (apply_timeout != 0) |
4048 | ++ g_source_remove (apply_timeout); |
4049 | ++ apply_timeout = g_timeout_add (200, (GSourceFunc)delayed_apply_cb, NULL); |
4050 | ++ } |
4051 | ++} |
4052 | ++ |
4053 | ++ |
4054 | ++static void |
4055 | ++init_login_delay () |
4056 | ++{ |
4057 | ++ gint delay; |
4058 | ++ |
4059 | ++ if (get_boolean_value ("daemon/TimedLoginEnable", FALSE)) |
4060 | ++ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (login_delay_check), TRUE); |
4061 | ++ |
4062 | ++ delay = get_integer_value ("daemon/TimedLoginDelay", 30); |
4063 | ++ |
4064 | ++ g_debug ("init delay=%d", delay); |
4065 | ++ |
4066 | ++ gtk_spin_button_set_value (GTK_SPIN_BUTTON (delay_spin), delay); |
4067 | ++} |
4068 | ++ |
4069 | ++ |
4070 | ++G_MODULE_EXPORT |
4071 | ++void |
4072 | ++automatic_login_toggle_cb (GtkWidget *automatic_login_toggle) |
4073 | ++{ |
4074 | ++ gboolean automatic_login; |
4075 | ++ |
4076 | ++ automatic_login = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (automatic_login_toggle)); |
4077 | ++ gtk_widget_set_sensitive (login_delay_box, automatic_login); |
4078 | ++ gtk_widget_set_sensitive (user_combo, automatic_login); |
4079 | ++ gtk_widget_set_sensitive (user_entry, automatic_login); |
4080 | ++ gtk_widget_set_sensitive (face_browser_enable_check, !automatic_login); |
4081 | ++ |
4082 | ++ if (session_loaded && user_login_loaded) |
4083 | ++ update_config (); |
4084 | ++} |
4085 | ++ |
4086 | ++ |
4087 | ++G_MODULE_EXPORT |
4088 | ++void |
4089 | ++default_user_combo_box_changed_cb (void) |
4090 | ++{ |
4091 | ++ if (session_loaded && user_login_loaded) { |
4092 | ++ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (auto_login_radio), TRUE); |
4093 | ++ update_config (); |
4094 | ++ } |
4095 | ++} |
4096 | ++ |
4097 | ++G_MODULE_EXPORT |
4098 | ++void |
4099 | ++default_session_combo_box_changed_cb (void) |
4100 | ++{ |
4101 | ++ if (session_loaded && user_login_loaded) |
4102 | ++ update_config (); |
4103 | ++} |
4104 | ++ |
4105 | ++ |
4106 | ++static void |
4107 | ++init_default_user (void) |
4108 | ++{ |
4109 | ++ GtkTreeModel *model; |
4110 | ++ GtkTreeIter iter; |
4111 | ++ gboolean auto_login, timed_login, active; |
4112 | ++ gchar *user = NULL; |
4113 | ++ |
4114 | ++ auto_login = get_boolean_value ("daemon/AutomaticLoginEnable", FALSE); |
4115 | ++ timed_login = get_boolean_value ("daemon/TimedLoginEnable", FALSE); |
4116 | ++ |
4117 | ++ if (auto_login) |
4118 | ++ user = get_value ("daemon/AutomaticLogin", NULL); |
4119 | ++ if (user == NULL) |
4120 | ++ user = get_value ("daemon/TimedLogin", NULL); |
4121 | ++ |
4122 | ++ g_debug ("init user='%s' auto=%s", user, auto_login || timed_login ? "True" : "False"); |
4123 | ++ |
4124 | ++ if (auto_login || timed_login) |
4125 | ++ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (auto_login_radio), TRUE); |
4126 | ++ |
4127 | ++ if (!user_list_is_combo) { |
4128 | ++ if (user != NULL) |
4129 | ++ gtk_entry_set_text (GTK_ENTRY (user_entry), user); |
4130 | ++ } |
4131 | ++ else { |
4132 | ++ model = gtk_combo_box_get_model (GTK_COMBO_BOX (user_combo)); |
4133 | ++ active = gtk_tree_model_get_iter_first (model, &iter); |
4134 | ++ |
4135 | ++ /* If no user then use first available */ |
4136 | ++ if (user == NULL) { |
4137 | ++ if (active) |
4138 | ++ gtk_combo_box_set_active_iter (GTK_COMBO_BOX (user_combo), &iter); |
4139 | ++ } |
4140 | ++ else { |
4141 | ++ while (user != NULL && active) { |
4142 | ++ gchar *u; |
4143 | ++ gboolean matched; |
4144 | ++ |
4145 | ++ gtk_tree_model_get (model, &iter, 1, &u, -1); |
4146 | ++ matched = strcmp (user, u) == 0; |
4147 | ++ g_free (u); |
4148 | ++ if (matched) { |
4149 | ++ gtk_combo_box_set_active_iter (GTK_COMBO_BOX (user_combo), &iter); |
4150 | ++ break; |
4151 | ++ } |
4152 | ++ |
4153 | ++ active = gtk_tree_model_iter_next (model, &iter); |
4154 | ++ } |
4155 | ++ } |
4156 | ++ } |
4157 | ++ |
4158 | ++ g_free (user); |
4159 | ++} |
4160 | ++ |
4161 | ++ |
4162 | ++static void |
4163 | ++init_default_session (void) |
4164 | ++{ |
4165 | ++ GtkTreeModel *model; |
4166 | ++ GtkTreeIter iter; |
4167 | ++ gboolean active; |
4168 | ++ gchar *default_session = NULL; |
4169 | ++ |
4170 | ++ default_session = get_value ("daemon/DefaultSession", NULL); |
4171 | ++ g_debug ("Init default session found:'%s'", default_session); |
4172 | ++ |
4173 | ++ model = gtk_combo_box_get_model (GTK_COMBO_BOX (session_combo)); |
4174 | ++ active = gtk_tree_model_get_iter_first (model, &iter); |
4175 | ++ |
4176 | ++ /* If no default session then use gnome one */ |
4177 | ++ if (default_session == NULL || strlen(default_session) == 0) |
4178 | ++ default_session = g_strdup("gnome"); |
4179 | ++ |
4180 | ++ while (active) { |
4181 | ++ gchar *u; |
4182 | ++ gboolean matched; |
4183 | ++ |
4184 | ++ gtk_tree_model_get (model, &iter, 1, &u, -1); |
4185 | ++ matched = strcmp (default_session, u) == 0; |
4186 | ++ g_free (u); |
4187 | ++ if (matched) { |
4188 | ++ gtk_combo_box_set_active_iter (GTK_COMBO_BOX (session_combo), &iter); |
4189 | ++ break; |
4190 | ++ } |
4191 | ++ |
4192 | ++ active = gtk_tree_model_iter_next (model, &iter); |
4193 | ++ } |
4194 | ++ session_loaded = TRUE; |
4195 | ++ |
4196 | ++ g_free (default_session); |
4197 | ++} |
4198 | ++ |
4199 | ++ |
4200 | ++static void add_user (GdmUser *user) |
4201 | ++{ |
4202 | ++ GtkListStore *model; |
4203 | ++ GtkTreeIter iter; |
4204 | ++ GString *label; |
4205 | ++ const gchar *home_user_dir; |
4206 | ++ gchar *encryption_path; |
4207 | ++ gchar *encryption_content; |
4208 | ++ GFile *encryption_file; |
4209 | ++ GString *encryption_mount; |
4210 | ++ gboolean using_encryption = FALSE; |
4211 | ++ |
4212 | ++ /* don't enable autologin for user having encrypted home dir |
4213 | ++ there are some corner case if gdmsetup isn't run as root and another user |
4214 | ++ than the current one is using encrypted dir: you can't check for them if |
4215 | ++ they access to it. The solution is the server to refuse the change then |
4216 | ++ (too late in the cycle for such changes). */ |
4217 | ++ home_user_dir = gdm_user_get_home_directory (user); |
4218 | ++ encryption_path = g_build_filename (home_user_dir, ".ecryptfs", "Private.mnt", NULL); |
4219 | ++ encryption_file = g_file_new_for_path (encryption_path); |
4220 | ++ if (g_file_load_contents (encryption_file, NULL, &encryption_content, NULL, NULL, NULL)) { |
4221 | ++ if (g_str_has_suffix (encryption_content, "\n")) |
4222 | ++ encryption_content[strlen(encryption_content)-1] = '\0'; |
4223 | ++ encryption_mount = g_string_new(encryption_content); |
4224 | ++ if (strcmp (encryption_mount->str, home_user_dir) == 0) |
4225 | ++ using_encryption = TRUE; |
4226 | ++ g_string_free (encryption_mount, TRUE); |
4227 | ++ } |
4228 | ++ if (encryption_file) |
4229 | ++ g_object_unref (encryption_file); |
4230 | ++ g_free (encryption_path); |
4231 | ++ |
4232 | ++ if (using_encryption) { |
4233 | ++ g_debug ("%s is using an encrypted home, not listing him for autologin", gdm_user_get_real_name (user)); |
4234 | ++ return; |
4235 | ++ } |
4236 | ++ |
4237 | ++ model = GTK_LIST_STORE (gtk_builder_get_object (ui, "login_user_model")); |
4238 | ++ gtk_list_store_append (model, &iter); |
4239 | ++ label = g_string_new(""); |
4240 | ++ g_string_printf (label, "%s (%s)", gdm_user_get_real_name (user), gdm_user_get_user_name (user)); |
4241 | ++ gtk_list_store_set (model, &iter, |
4242 | ++ 0, label->str, |
4243 | ++ 1, gdm_user_get_user_name (user), |
4244 | ++ -1); |
4245 | ++ g_string_free (label, TRUE); |
4246 | ++} |
4247 | ++ |
4248 | ++ |
4249 | ++static void add_session (gchar *session_id, gchar *name, gchar *comment) |
4250 | ++{ |
4251 | ++ GtkListStore *model; |
4252 | ++ GtkTreeIter iter; |
4253 | ++ GString *label; |
4254 | ++ |
4255 | ++ model = GTK_LIST_STORE (gtk_builder_get_object (ui, "session_model")); |
4256 | ++ gtk_list_store_append (model, &iter); |
4257 | ++ label = g_string_new(""); |
4258 | ++ g_string_printf (label, "%s", name); |
4259 | ++ gtk_list_store_set (model, &iter, |
4260 | ++ 0, label->str, |
4261 | ++ 1, session_id, |
4262 | ++ -1); |
4263 | ++ g_string_free (label, TRUE); |
4264 | ++} |
4265 | ++ |
4266 | ++ |
4267 | ++static void |
4268 | ++users_loaded_cb(GdmUserManager *manager) |
4269 | ++{ |
4270 | ++ GSList *users, *item; |
4271 | ++ |
4272 | ++ users = gdm_user_manager_list_users (user_manager); |
4273 | ++ |
4274 | ++ if (g_slist_length (users) > MAX_USERS_IN_COMBO_BOX) { |
4275 | ++ user_list_is_combo = FALSE; |
4276 | ++ gtk_widget_hide (user_combo); |
4277 | ++ gtk_widget_show (user_entry); |
4278 | ++ } |
4279 | ++ else { |
4280 | ++ for (item = users; item; item = item->next) |
4281 | ++ add_user ((GdmUser *) item->data); |
4282 | ++ } |
4283 | ++ |
4284 | ++ init_default_user (); |
4285 | ++ |
4286 | ++ user_login_loaded = TRUE; |
4287 | ++ gtk_widget_set_sensitive (option_vbox, user_login_loaded && !locked); |
4288 | ++} |
4289 | ++ |
4290 | ++ |
4291 | ++static void |
4292 | ++user_added_cb (GdmUserManager *manager, GdmUser *user) |
4293 | ++{ |
4294 | ++ if (session_loaded && user_login_loaded) |
4295 | ++ add_user (user); |
4296 | ++} |
4297 | ++ |
4298 | ++ |
4299 | ++static void |
4300 | ++load_sessions_cb(void) |
4301 | ++{ |
4302 | ++ gchar **session_ids; |
4303 | ++ int i; |
4304 | ++ |
4305 | ++ session_ids = gdm_get_all_sessions (); |
4306 | ++ |
4307 | ++ for (i = 0; session_ids[i] != NULL; i++) { |
4308 | ++ gchar *name; |
4309 | ++ gchar *comment; |
4310 | ++ if (!gdm_get_details_for_session (session_ids[i], |
4311 | ++ &name, &comment)) { |
4312 | ++ continue; |
4313 | ++ } |
4314 | ++ add_session (session_ids[i], name, comment); |
4315 | ++ g_free (name); |
4316 | ++ g_free (comment); |
4317 | ++ } |
4318 | ++ g_strfreev (session_ids); |
4319 | ++ |
4320 | ++ init_default_session(); |
4321 | ++} |
4322 | ++ |
4323 | ++ |
4324 | ++static void |
4325 | ++split_text (const gchar *text, const gchar *prefix_label_name, const gchar *suffix_label_name) |
4326 | ++{ |
4327 | ++ gchar **tokens; |
4328 | ++ GtkWidget *prefix_label, *suffix_label; |
4329 | ++ |
4330 | ++ prefix_label = GTK_WIDGET (gtk_builder_get_object (ui, prefix_label_name)); |
4331 | ++ suffix_label = GTK_WIDGET (gtk_builder_get_object (ui, suffix_label_name)); |
4332 | ++ |
4333 | ++ tokens = g_strsplit (text, "%s", 2); |
4334 | ++ if (tokens[0] != NULL && tokens[1] != NULL) { |
4335 | ++ if (tokens[0][0] != '\0') |
4336 | ++ gtk_label_set_text (GTK_LABEL (prefix_label), g_strstrip (tokens[0])); |
4337 | ++ else |
4338 | ++ gtk_widget_hide (prefix_label); |
4339 | ++ if (tokens[1][0] != '\0') |
4340 | ++ gtk_label_set_text (GTK_LABEL (suffix_label), g_strstrip (tokens[1])); |
4341 | ++ else |
4342 | ++ gtk_widget_hide (suffix_label); |
4343 | ++ } |
4344 | ++ g_strfreev (tokens); |
4345 | ++} |
4346 | ++ |
4347 | ++ |
4348 | ++int main (int argc, char **argv) |
4349 | ++{ |
4350 | ++ GtkCellRenderer *renderer; |
4351 | ++ DBusGConnection *connection; |
4352 | ++ GError *error = NULL; |
4353 | ++ |
4354 | ++ bindtextdomain (GETTEXT_PACKAGE, GNOMELOCALEDIR); |
4355 | ++ bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); |
4356 | ++ textdomain (GETTEXT_PACKAGE); |
4357 | ++ |
4358 | ++ gtk_init (&argc, &argv); |
4359 | ++ |
4360 | ++ connection = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error); |
4361 | ++ if (error) { |
4362 | ++ g_warning ("Failed to get system bus: %s", error->message); |
4363 | ++ return 1; |
4364 | ++ } |
4365 | ++ proxy = dbus_g_proxy_new_for_name (connection, |
4366 | ++ "org.gnome.DisplayManager", |
4367 | ++ "/org/gnome/DisplayManager/Settings", |
4368 | ++ "org.gnome.DisplayManager.Settings"); |
4369 | ++ |
4370 | ++ ui = gtk_builder_new (); |
4371 | ++ gtk_builder_add_from_file (ui, UIDIR "/gdmsetup.ui", &error); |
4372 | ++ if (error) { |
4373 | ++ g_warning ("Failed to load UI: %s", error->message); |
4374 | ++ return 1; |
4375 | ++ } |
4376 | ++ dialog = GTK_WIDGET (gtk_builder_get_object (ui, "gdm_capplet")); |
4377 | ++ unlock_button = GTK_WIDGET (gtk_builder_get_object (ui, "unlock_button")); |
4378 | ++ option_vbox = GTK_WIDGET (gtk_builder_get_object (ui, "gdm_capplet_vbox")); |
4379 | ++ user_combo = GTK_WIDGET (gtk_builder_get_object (ui, "default_user_combo_box")); |
4380 | ++ session_combo = GTK_WIDGET (gtk_builder_get_object (ui, "default_session_combo_box")); |
4381 | ++ user_entry = GTK_WIDGET (gtk_builder_get_object (ui, "default_user_entry")); |
4382 | ++ delay_spin = GTK_WIDGET (gtk_builder_get_object (ui, "login_delay_spin")); |
4383 | ++ auto_login_radio = GTK_WIDGET (gtk_builder_get_object (ui, "automatic_login_radio")); |
4384 | ++ login_delay_box = GTK_WIDGET (gtk_builder_get_object (ui, "login_delay_box")); |
4385 | ++ login_delay_check = GTK_WIDGET (gtk_builder_get_object (ui, "login_delay_check")); |
4386 | ++ sound_enable_check = GTK_WIDGET (gtk_builder_get_object (ui, "sound_enable_check")); |
4387 | ++ face_browser_enable_check = GTK_WIDGET (gtk_builder_get_object (ui, "face_browser_enable_check")); |
4388 | ++ |
4389 | ++ if (g_file_test ("/usr/share/gdm/autostart/LoginWindow/libcanberra-ready-sound.desktop", G_FILE_TEST_EXISTS)) |
4390 | ++ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (sound_enable_check), get_sound_enabled ()); |
4391 | ++ else |
4392 | ++ gtk_widget_hide (GTK_WIDGET (sound_enable_check)); |
4393 | ++ |
4394 | ++ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (face_browser_enable_check), get_face_browser_enabled ()); |
4395 | ++ |
4396 | ++ gtk_builder_connect_signals (ui, NULL); |
4397 | ++ |
4398 | ++ /* Translators: Label for choosing which user to log in as. '%s' is replaced with an input field. */ |
4399 | ++ split_text (_("Log in as %s automatically"), "user_prefix_label", "user_suffix_label"); |
4400 | ++ /* Translators: Label for choosing the login delay. '%s' is replaced with an input field. */ |
4401 | ++ split_text (_("Allow %s seconds for anyone else to log in first"), "delay_prefix_label", "delay_suffix_label"); |
4402 | ++ /* Translators: Label for choosing the default session. '%s' is replaced with an input field. */ |
4403 | ++ split_text (_("Select %s as default session"), "session_prefix_label", "session_suffix_label"); |
4404 | ++ |
4405 | ++ init_login_delay (); |
4406 | ++ load_sessions_cb(); |
4407 | ++ |
4408 | ++ renderer = gtk_cell_renderer_text_new (); |
4409 | ++ gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (user_combo), renderer, TRUE); |
4410 | ++ gtk_cell_layout_add_attribute (GTK_CELL_LAYOUT (user_combo), renderer, "text", 0); |
4411 | ++ |
4412 | ++ renderer = gtk_cell_renderer_text_new (); |
4413 | ++ gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (session_combo), renderer, TRUE); |
4414 | ++ gtk_cell_layout_add_attribute (GTK_CELL_LAYOUT (session_combo), renderer, "text", 0); |
4415 | ++ |
4416 | ++ user_manager = gdm_user_manager_ref_default (); |
4417 | ++ g_signal_connect (user_manager, "users-loaded", G_CALLBACK (users_loaded_cb), NULL); |
4418 | ++ g_signal_connect (user_manager, "user-added", G_CALLBACK (user_added_cb), NULL); |
4419 | ++ |
4420 | ++ gtk_widget_hide (user_entry); |
4421 | ++ |
4422 | ++ gtk_widget_set_sensitive (option_vbox, FALSE); |
4423 | ++ gtk_widget_show (dialog); |
4424 | ++ |
4425 | ++ gtk_main (); |
4426 | ++ |
4427 | ++ return 0; |
4428 | ++} |
4429 | +Index: gdm-2.30.5/gui/gdmsetup/gdmsetup.desktop.in |
4430 | +=================================================================== |
4431 | +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
4432 | ++++ gdm-2.30.5/gui/gdmsetup/gdmsetup.desktop.in 2010-08-17 22:19:05.000000000 +0200 |
4433 | +@@ -0,0 +1,12 @@ |
4434 | ++[Desktop Entry] |
4435 | ++_Name=Login Screen |
4436 | ++_Comment=Configure login screen behavior |
4437 | ++Exec=gdmsetup |
4438 | ++Icon=gdm-setup |
4439 | ++StartupNotify=true |
4440 | ++Terminal=false |
4441 | ++Type=Application |
4442 | ++Categories=GNOME;GTK;Settings;System; |
4443 | ++X-GNOME-Bugzilla-Bugzilla=GNOME |
4444 | ++X-GNOME-Bugzilla-Product=gdm |
4445 | ++X-GNOME-Bugzilla-Component=general |
4446 | +Index: gdm-2.30.5/gui/gdmsetup/gdmsetup.ui |
4447 | +=================================================================== |
4448 | +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
4449 | ++++ gdm-2.30.5/gui/gdmsetup/gdmsetup.ui 2010-08-17 22:19:05.000000000 +0200 |
4450 | +@@ -0,0 +1,345 @@ |
4451 | ++<?xml version="1.0"?> |
4452 | ++<interface> |
4453 | ++ <requires lib="gtk+" version="2.16"/> |
4454 | ++ <!-- interface-naming-policy project-wide --> |
4455 | ++ <object class="GtkListStore" id="login_user_model"> |
4456 | ++ <columns> |
4457 | ++ <!-- column-name label --> |
4458 | ++ <column type="gchararray"/> |
4459 | ++ <!-- column-name user --> |
4460 | ++ <column type="gchararray"/> |
4461 | ++ <!-- column-name icon --> |
4462 | ++ <column type="GdkPixbuf"/> |
4463 | ++ </columns> |
4464 | ++ </object> |
4465 | ++ <object class="GtkListStore" id="session_model"> |
4466 | ++ <columns> |
4467 | ++ <!-- column-name user --> |
4468 | ++ <column type="gchararray"/> |
4469 | ++ <!-- column-name session_id --> |
4470 | ++ <column type="gchararray"/> |
4471 | ++ <!-- column-name icon --> |
4472 | ++ <column type="GdkPixbuf"/> |
4473 | ++ </columns> |
4474 | ++ </object> |
4475 | ++ <object class="GtkDialog" id="gdm_capplet"> |
4476 | ++ <property name="border_width">5</property> |
4477 | ++ <property name="title" translatable="yes" comments="Title of login screen settings dialog">Login Screen Settings</property> |
4478 | ++ <property name="resizable">False</property> |
4479 | ++ <property name="window_position">center</property> |
4480 | ++ <property name="icon_name">gdm-setup</property> |
4481 | ++ <property name="type_hint">normal</property> |
4482 | ++ <property name="has_separator">False</property> |
4483 | ++ <signal name="response" handler="gdm_capplet_response_cb"/> |
4484 | ++ <child internal-child="vbox"> |
4485 | ++ <object class="GtkVBox" id="dialog-vbox1"> |
4486 | ++ <property name="visible">True</property> |
4487 | ++ <property name="spacing">12</property> |
4488 | ++ <child> |
4489 | ++ <object class="GtkVBox" id="gdm_capplet_vbox"> |
4490 | ++ <property name="visible">True</property> |
4491 | ++ <property name="spacing">18</property> |
4492 | ++ <child> |
4493 | ++ <object class="GtkLabel" id="intro_label"> |
4494 | ++ <property name="visible">True</property> |
4495 | ++ <property name="xalign">0</property> |
4496 | ++ <property name="label" translatable="yes" comments="Description above login option radio buttons">When the computer starts up:</property> |
4497 | ++ </object> |
4498 | ++ <packing> |
4499 | ++ <property name="expand">False</property> |
4500 | ++ <property name="position">0</property> |
4501 | ++ </packing> |
4502 | ++ </child> |
4503 | ++ <child> |
4504 | ++ <object class="GtkVBox" id="vbox3"> |
4505 | ++ <property name="visible">True</property> |
4506 | ++ <property name="spacing">12</property> |
4507 | ++ <child> |
4508 | ++ <object class="GtkCheckButton" id="sound_enable_check"> |
4509 | ++ <property name="label" translatable="yes">Play login sound</property> |
4510 | ++ <property name="visible">True</property> |
4511 | ++ <property name="can_focus">True</property> |
4512 | ++ <property name="receives_default">False</property> |
4513 | ++ <property name="draw_indicator">True</property> |
4514 | ++ <signal name="toggled" handler="sound_enable_check_toggled_cb"/> |
4515 | ++ </object> |
4516 | ++ <packing> |
4517 | ++ <property name="position">0</property> |
4518 | ++ </packing> |
4519 | ++ </child> |
4520 | ++ <child> |
4521 | ++ <object class="GtkCheckButton" id="face_browser_enable_check"> |
4522 | ++ <property name="label" translatable="yes">Show list of users</property> |
4523 | ++ <property name="visible">True</property> |
4524 | ++ <property name="can_focus">True</property> |
4525 | ++ <property name="receives_default">False</property> |
4526 | ++ <property name="draw_indicator">True</property> |
4527 | ++ <signal name="toggled" handler="face_browser_enable_check_toggled_cb"/> |
4528 | ++ </object> |
4529 | ++ <packing> |
4530 | ++ <property name="position">1</property> |
4531 | ++ </packing> |
4532 | ++ </child> |
4533 | ++ <child> |
4534 | ++ <object class="GtkRadioButton" id="manual_login_radio"> |
4535 | ++ <property name="label" translatable="yes" comments="Radio option to set login screen to prompt for user">_Show the screen for choosing who will log in</property> |
4536 | ++ <property name="visible">True</property> |
4537 | ++ <property name="can_focus">True</property> |
4538 | ++ <property name="receives_default">False</property> |
4539 | ++ <property name="use_underline">True</property> |
4540 | ++ <property name="active">True</property> |
4541 | ++ <property name="draw_indicator">True</property> |
4542 | ++ </object> |
4543 | ++ <packing> |
4544 | ++ <property name="expand">False</property> |
4545 | ++ <property name="position">2</property> |
4546 | ++ </packing> |
4547 | ++ </child> |
4548 | ++ <child> |
4549 | ++ <object class="GtkVBox" id="vbox4"> |
4550 | ++ <property name="visible">True</property> |
4551 | ++ <property name="spacing">6</property> |
4552 | ++ <child> |
4553 | ++ <object class="GtkHBox" id="hbox1"> |
4554 | ++ <property name="visible">True</property> |
4555 | ++ <property name="spacing">6</property> |
4556 | ++ <child> |
4557 | ++ <object class="GtkRadioButton" id="automatic_login_radio"> |
4558 | ++ <property name="visible">True</property> |
4559 | ++ <property name="can_focus">True</property> |
4560 | ++ <property name="receives_default">False</property> |
4561 | ++ <property name="draw_indicator">True</property> |
4562 | ++ <property name="group">manual_login_radio</property> |
4563 | ++ <signal name="toggled" handler="automatic_login_toggle_cb"/> |
4564 | ++ <child> |
4565 | ++ <object class="GtkLabel" id="user_prefix_label"> |
4566 | ++ <property name="visible">True</property> |
4567 | ++ <property name="label">_Log in as</property> |
4568 | ++ <property name="use_underline">True</property> |
4569 | ++ </object> |
4570 | ++ </child> |
4571 | ++ </object> |
4572 | ++ <packing> |
4573 | ++ <property name="expand">False</property> |
4574 | ++ <property name="position">0</property> |
4575 | ++ </packing> |
4576 | ++ </child> |
4577 | ++ <child> |
4578 | ++ <object class="GtkComboBox" id="default_user_combo_box"> |
4579 | ++ <property name="visible">True</property> |
4580 | ++ <property name="sensitive">False</property> |
4581 | ++ <property name="model">login_user_model</property> |
4582 | ++ <signal name="changed" handler="default_user_combo_box_changed_cb"/> |
4583 | ++ </object> |
4584 | ++ <packing> |
4585 | ++ <property name="expand">False</property> |
4586 | ++ <property name="position">1</property> |
4587 | ++ </packing> |
4588 | ++ </child> |
4589 | ++ <child> |
4590 | ++ <object class="GtkEntry" id="default_user_entry"> |
4591 | ++ <property name="visible">True</property> |
4592 | ++ <property name="sensitive">False</property> |
4593 | ++ <property name="can_focus">True</property> |
4594 | ++ <property name="invisible_char">•</property> |
4595 | ++ <signal name="changed" handler="apply_config_cb"/> |
4596 | ++ </object> |
4597 | ++ <packing> |
4598 | ++ <property name="position">2</property> |
4599 | ++ </packing> |
4600 | ++ </child> |
4601 | ++ <child> |
4602 | ++ <object class="GtkLabel" id="user_suffix_label"> |
4603 | ++ <property name="visible">True</property> |
4604 | ++ <property name="label">automatically</property> |
4605 | ++ </object> |
4606 | ++ <packing> |
4607 | ++ <property name="expand">False</property> |
4608 | ++ <property name="position">3</property> |
4609 | ++ </packing> |
4610 | ++ </child> |
4611 | ++ </object> |
4612 | ++ <packing> |
4613 | ++ <property name="expand">False</property> |
4614 | ++ <property name="position">0</property> |
4615 | ++ </packing> |
4616 | ++ </child> |
4617 | ++ <child> |
4618 | ++ <object class="GtkAlignment" id="alignment1"> |
4619 | ++ <property name="visible">True</property> |
4620 | ++ <property name="left_padding">16</property> |
4621 | ++ <child> |
4622 | ++ <object class="GtkHBox" id="login_delay_box"> |
4623 | ++ <property name="visible">True</property> |
4624 | ++ <property name="sensitive">False</property> |
4625 | ++ <property name="spacing">6</property> |
4626 | ++ <child> |
4627 | ++ <object class="GtkCheckButton" id="login_delay_check"> |
4628 | ++ <property name="visible">True</property> |
4629 | ++ <property name="can_focus">True</property> |
4630 | ++ <property name="receives_default">False</property> |
4631 | ++ <property name="draw_indicator">True</property> |
4632 | ++ <signal name="toggled" handler="login_delay_check_toggled_cb"/> |
4633 | ++ <child> |
4634 | ++ <object class="GtkLabel" id="delay_prefix_label"> |
4635 | ++ <property name="visible">True</property> |
4636 | ++ <property name="label">_Allow</property> |
4637 | ++ <property name="use_underline">True</property> |
4638 | ++ </object> |
4639 | ++ </child> |
4640 | ++ </object> |
4641 | ++ <packing> |
4642 | ++ <property name="expand">False</property> |
4643 | ++ <property name="position">0</property> |
4644 | ++ </packing> |
4645 | ++ </child> |
4646 | ++ <child> |
4647 | ++ <object class="GtkSpinButton" id="login_delay_spin"> |
4648 | ++ <property name="visible">True</property> |
4649 | ++ <property name="sensitive">False</property> |
4650 | ++ <property name="can_focus">True</property> |
4651 | ++ <property name="invisible_char">•</property> |
4652 | ++ <property name="adjustment">adjustment1</property> |
4653 | ++ <signal name="value_changed" handler="apply_config_cb"/> |
4654 | ++ </object> |
4655 | ++ <packing> |
4656 | ++ <property name="expand">False</property> |
4657 | ++ <property name="position">1</property> |
4658 | ++ </packing> |
4659 | ++ </child> |
4660 | ++ <child> |
4661 | ++ <object class="GtkLabel" id="delay_suffix_label"> |
4662 | ++ <property name="visible">True</property> |
4663 | ++ <property name="label">seconds for anyone else to log in first</property> |
4664 | ++ </object> |
4665 | ++ <packing> |
4666 | ++ <property name="expand">False</property> |
4667 | ++ <property name="position">2</property> |
4668 | ++ </packing> |
4669 | ++ </child> |
4670 | ++ </object> |
4671 | ++ </child> |
4672 | ++ </object> |
4673 | ++ <packing> |
4674 | ++ <property name="expand">False</property> |
4675 | ++ <property name="position">1</property> |
4676 | ++ </packing> |
4677 | ++ </child> |
4678 | ++ </object> |
4679 | ++ <packing> |
4680 | ++ <property name="expand">False</property> |
4681 | ++ <property name="position">3</property> |
4682 | ++ </packing> |
4683 | ++ </child> |
4684 | ++ <child> |
4685 | ++ <object class="GtkHBox" id="hbox2"> |
4686 | ++ <property name="visible">True</property> |
4687 | ++ <property name="spacing">6</property> |
4688 | ++ <child> |
4689 | ++ <object class="GtkLabel" id="session_prefix_label"> |
4690 | ++ <property name="visible">True</property> |
4691 | ++ <property name="label">Use</property> |
4692 | ++ <property name="use_underline">True</property> |
4693 | ++ </object> |
4694 | ++ <packing> |
4695 | ++ <property name="expand">False</property> |
4696 | ++ <property name="position">0</property> |
4697 | ++ </packing> |
4698 | ++ </child> |
4699 | ++ <child> |
4700 | ++ <object class="GtkComboBox" id="default_session_combo_box"> |
4701 | ++ <property name="visible">True</property> |
4702 | ++ <property name="model">session_model</property> |
4703 | ++ <signal name="changed" handler="default_session_combo_box_changed_cb"/> |
4704 | ++ </object> |
4705 | ++ <packing> |
4706 | ++ <property name="expand">False</property> |
4707 | ++ <property name="position">1</property> |
4708 | ++ </packing> |
4709 | ++ </child> |
4710 | ++ <child> |
4711 | ++ <object class="GtkLabel" id="session_suffix_label"> |
4712 | ++ <property name="visible">True</property> |
4713 | ++ <property name="label">as default session</property> |
4714 | ++ </object> |
4715 | ++ <packing> |
4716 | ++ <property name="expand">False</property> |
4717 | ++ <property name="position">2</property> |
4718 | ++ </packing> |
4719 | ++ </child> |
4720 | ++ </object> |
4721 | ++ <packing> |
4722 | ++ <property name="position">4</property> |
4723 | ++ </packing> |
4724 | ++ </child> |
4725 | ++ </object> |
4726 | ++ <packing> |
4727 | ++ <property name="expand">False</property> |
4728 | ++ <property name="position">4</property> |
4729 | ++ </packing> |
4730 | ++ </child> |
4731 | ++ </object> |
4732 | ++ <packing> |
4733 | ++ <property name="position">1</property> |
4734 | ++ </packing> |
4735 | ++ </child> |
4736 | ++ <child internal-child="action_area"> |
4737 | ++ <object class="GtkHButtonBox" id="dialog-action_area1"> |
4738 | ++ <property name="visible">True</property> |
4739 | ++ <property name="layout_style">end</property> |
4740 | ++ <child> |
4741 | ++ <object class="GtkButton" id="unlock_button"> |
4742 | ++ <property name="label" translatable="yes">_Unlock</property> |
4743 | ++ <property name="visible">True</property> |
4744 | ++ <property name="can_focus">True</property> |
4745 | ++ <property name="receives_default">True</property> |
4746 | ++ <property name="image">image1</property> |
4747 | ++ <property name="use_underline">True</property> |
4748 | ++ <signal name="clicked" handler="unlock_button_clicked_cb"/> |
4749 | ++ </object> |
4750 | ++ <packing> |
4751 | ++ <property name="expand">False</property> |
4752 | ++ <property name="fill">False</property> |
4753 | ++ <property name="position">0</property> |
4754 | ++ </packing> |
4755 | ++ </child> |
4756 | ++ <child> |
4757 | ++ <object class="GtkButton" id="close_button"> |
4758 | ++ <property name="label">gtk-close</property> |
4759 | ++ <property name="visible">True</property> |
4760 | ++ <property name="can_focus">True</property> |
4761 | ++ <property name="receives_default">True</property> |
4762 | ++ <property name="use_stock">True</property> |
4763 | ++ </object> |
4764 | ++ <packing> |
4765 | ++ <property name="expand">False</property> |
4766 | ++ <property name="fill">False</property> |
4767 | ++ <property name="position">1</property> |
4768 | ++ </packing> |
4769 | ++ </child> |
4770 | ++ </object> |
4771 | ++ <packing> |
4772 | ++ <property name="expand">False</property> |
4773 | ++ <property name="pack_type">end</property> |
4774 | ++ <property name="position">0</property> |
4775 | ++ </packing> |
4776 | ++ </child> |
4777 | ++ </object> |
4778 | ++ </child> |
4779 | ++ <action-widgets> |
4780 | ++ <action-widget response="1">unlock_button</action-widget> |
4781 | ++ <action-widget response="-7">close_button</action-widget> |
4782 | ++ </action-widgets> |
4783 | ++ </object> |
4784 | ++ <object class="GtkImage" id="image1"> |
4785 | ++ <property name="visible">True</property> |
4786 | ++ <property name="stock">gtk-dialog-authentication</property> |
4787 | ++ </object> |
4788 | ++ <object class="GtkSizeGroup" id="combo_size_group"/> |
4789 | ++ <object class="GtkSizeGroup" id="radio_size_group"/> |
4790 | ++ <object class="GtkAdjustment" id="adjustment1"> |
4791 | ++ <property name="lower">1</property> |
4792 | ++ <property name="upper">600</property> |
4793 | ++ <property name="step_increment">1</property> |
4794 | ++ </object> |
4795 | ++</interface> |
4796 | +Index: gdm-2.30.5/gui/gdmsetup/gdm-user.c |
4797 | +=================================================================== |
4798 | +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
4799 | ++++ gdm-2.30.5/gui/gdmsetup/gdm-user.c 2010-08-17 22:19:05.000000000 +0200 |
4800 | +@@ -0,0 +1,1172 @@ |
4801 | ++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- |
4802 | ++ * |
4803 | ++ * Copyright (C) 2004-2005 James M. Cape <jcape@ignore-your.tv>. |
4804 | ++ * Copyright (C) 2007-2008 William Jon McCann <mccann@jhu.edu> |
4805 | ++ * |
4806 | ++ * This program is free software; you can redistribute it and/or modify |
4807 | ++ * it under the terms of the GNU General Public License as published by |
4808 | ++ * the Free Software Foundation; either version 2 of the License, or |
4809 | ++ * (at your option) any later version. |
4810 | ++ * |
4811 | ++ * This program is distributed in the hope that it will be useful, |
4812 | ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of |
4813 | ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
4814 | ++ * GNU General Public License for more details. |
4815 | ++ * |
4816 | ++ * You should have received a copy of the GNU General Public License |
4817 | ++ * along with this program; if not, write to the Free Software |
4818 | ++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
4819 | ++ */ |
4820 | ++ |
4821 | ++#include <config.h> |
4822 | ++ |
4823 | ++#include <float.h> |
4824 | ++#include <string.h> |
4825 | ++#include <sys/types.h> |
4826 | ++#include <sys/stat.h> |
4827 | ++#include <unistd.h> |
4828 | ++ |
4829 | ++#include <glib/gi18n.h> |
4830 | ++#include <gio/gio.h> |
4831 | ++#include <gtk/gtk.h> |
4832 | ++ |
4833 | ++#include "gdm-user-manager.h" |
4834 | ++#include "gdm-user-private.h" |
4835 | ++ |
4836 | ++#define GDM_USER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDM_TYPE_USER, GdmUserClass)) |
4837 | ++#define GDM_IS_USER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDM_TYPE_USER)) |
4838 | ++#define GDM_USER_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), GDM_TYPE_USER, GdmUserClass)) |
4839 | ++ |
4840 | ++#define GLOBAL_FACEDIR DATADIR "/faces" |
4841 | ++#define MAX_ICON_SIZE 128 |
4842 | ++#define MAX_FILE_SIZE 65536 |
4843 | ++#define MINIMAL_UID 100 |
4844 | ++#define RELAX_GROUP TRUE |
4845 | ++#define RELAX_OTHER TRUE |
4846 | ++ |
4847 | ++enum { |
4848 | ++ PROP_0, |
4849 | ++ PROP_MANAGER, |
4850 | ++ PROP_REAL_NAME, |
4851 | ++ PROP_USER_NAME, |
4852 | ++ PROP_UID, |
4853 | ++ PROP_HOME_DIR, |
4854 | ++ PROP_SHELL, |
4855 | ++ PROP_LOGIN_FREQUENCY, |
4856 | ++}; |
4857 | ++ |
4858 | ++enum { |
4859 | ++ ICON_CHANGED, |
4860 | ++ SESSIONS_CHANGED, |
4861 | ++ LAST_SIGNAL |
4862 | ++}; |
4863 | ++ |
4864 | ++struct _GdmUser { |
4865 | ++ GObject parent; |
4866 | ++ |
4867 | ++ GdmUserManager *manager; |
4868 | ++ |
4869 | ++ uid_t uid; |
4870 | ++ char *user_name; |
4871 | ++ char *real_name; |
4872 | ++ char *home_dir; |
4873 | ++ char *shell; |
4874 | ++ GList *sessions; |
4875 | ++ gulong login_frequency; |
4876 | ++ |
4877 | ++ GFileMonitor *icon_monitor; |
4878 | ++}; |
4879 | ++ |
4880 | ++typedef struct _GdmUserClass |
4881 | ++{ |
4882 | ++ GObjectClass parent_class; |
4883 | ++ |
4884 | ++ void (* icon_changed) (GdmUser *user); |
4885 | ++ void (* sessions_changed) (GdmUser *user); |
4886 | ++} GdmUserClass; |
4887 | ++ |
4888 | ++static void gdm_user_finalize (GObject *object); |
4889 | ++ |
4890 | ++static guint signals[LAST_SIGNAL] = { 0 }; |
4891 | ++ |
4892 | ++G_DEFINE_TYPE (GdmUser, gdm_user, G_TYPE_OBJECT) |
4893 | ++ |
4894 | ++static int |
4895 | ++session_compare (const char *a, |
4896 | ++ const char *b) |
4897 | ++{ |
4898 | ++ if (a == NULL) { |
4899 | ++ return 1; |
4900 | ++ } else if (b == NULL) { |
4901 | ++ return -1; |
4902 | ++ } |
4903 | ++ |
4904 | ++ return strcmp (a, b); |
4905 | ++} |
4906 | ++ |
4907 | ++void |
4908 | ++_gdm_user_add_session (GdmUser *user, |
4909 | ++ const char *ssid) |
4910 | ++{ |
4911 | ++ GList *li; |
4912 | ++ |
4913 | ++ g_return_if_fail (GDM_IS_USER (user)); |
4914 | ++ g_return_if_fail (ssid != NULL); |
4915 | ++ |
4916 | ++ li = g_list_find_custom (user->sessions, ssid, (GCompareFunc)session_compare); |
4917 | ++ if (li == NULL) { |
4918 | ++ g_debug ("GdmUser: adding session %s", ssid); |
4919 | ++ user->sessions = g_list_prepend (user->sessions, g_strdup (ssid)); |
4920 | ++ g_signal_emit (user, signals[SESSIONS_CHANGED], 0); |
4921 | ++ } else { |
4922 | ++ g_debug ("GdmUser: session already present: %s", ssid); |
4923 | ++ } |
4924 | ++} |
4925 | ++ |
4926 | ++void |
4927 | ++_gdm_user_remove_session (GdmUser *user, |
4928 | ++ const char *ssid) |
4929 | ++{ |
4930 | ++ GList *li; |
4931 | ++ |
4932 | ++ g_return_if_fail (GDM_IS_USER (user)); |
4933 | ++ g_return_if_fail (ssid != NULL); |
4934 | ++ |
4935 | ++ li = g_list_find_custom (user->sessions, ssid, (GCompareFunc)session_compare); |
4936 | ++ if (li != NULL) { |
4937 | ++ g_debug ("GdmUser: removing session %s", ssid); |
4938 | ++ g_free (li->data); |
4939 | ++ user->sessions = g_list_delete_link (user->sessions, li); |
4940 | ++ g_signal_emit (user, signals[SESSIONS_CHANGED], 0); |
4941 | ++ } else { |
4942 | ++ g_debug ("GdmUser: session not found: %s", ssid); |
4943 | ++ } |
4944 | ++} |
4945 | ++ |
4946 | ++guint |
4947 | ++gdm_user_get_num_sessions (GdmUser *user) |
4948 | ++{ |
4949 | ++ return g_list_length (user->sessions); |
4950 | ++} |
4951 | ++ |
4952 | ++GList * |
4953 | ++gdm_user_get_sessions (GdmUser *user) |
4954 | ++{ |
4955 | ++ return user->sessions; |
4956 | ++} |
4957 | ++ |
4958 | ++static void |
4959 | ++_gdm_user_set_login_frequency (GdmUser *user, |
4960 | ++ gulong login_frequency) |
4961 | ++{ |
4962 | ++ user->login_frequency = login_frequency; |
4963 | ++ g_object_notify (G_OBJECT (user), "login-frequency"); |
4964 | ++} |
4965 | ++ |
4966 | ++static void |
4967 | ++gdm_user_set_property (GObject *object, |
4968 | ++ guint param_id, |
4969 | ++ const GValue *value, |
4970 | ++ GParamSpec *pspec) |
4971 | ++{ |
4972 | ++ GdmUser *user; |
4973 | ++ |
4974 | ++ user = GDM_USER (object); |
4975 | ++ |
4976 | ++ switch (param_id) { |
4977 | ++ case PROP_MANAGER: |
4978 | ++ user->manager = g_value_get_object (value); |
4979 | ++ g_assert (user->manager); |
4980 | ++ break; |
4981 | ++ case PROP_LOGIN_FREQUENCY: |
4982 | ++ _gdm_user_set_login_frequency (user, g_value_get_ulong (value)); |
4983 | ++ break; |
4984 | ++ default: |
4985 | ++ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec); |
4986 | ++ break; |
4987 | ++ } |
4988 | ++} |
4989 | ++ |
4990 | ++static void |
4991 | ++gdm_user_get_property (GObject *object, |
4992 | ++ guint param_id, |
4993 | ++ GValue *value, |
4994 | ++ GParamSpec *pspec) |
4995 | ++{ |
4996 | ++ GdmUser *user; |
4997 | ++ |
4998 | ++ user = GDM_USER (object); |
4999 | ++ |
5000 | ++ switch (param_id) { |
The diff has been truncated for viewing.