Commit 89ce606a authored by William Jon McCann's avatar William Jon McCann

Move old info out of the way

svn path=/branches/mccann-gobject/; revision=5014
parent 85edd92d
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This package mostly runs as root and is thus security prone, so be careful
about changes. Ask me (Brian.Cameron@sun.com) if you have questions. It's
probably better to ask before committing though we won't gnaw your head off
if you don't (unless you break something in which case we'll get medieval
on you :). However we're never opposed to people hacking on this and fixing
things and adding features. So have fun.
Brian Cameron <Brian.Cameron@sun.com>
This package mostly runs as root and is thus security prone, so be careful
about changes. Ask me (Brian.Cameron@sun.com) if you have questions. It's
probably better to ask before committing though we won't gnaw your head off
if you don't (unless you break something in which case we'll get medieval
on you :). However we're never opposed to people hacking on this and fixing
things and adding features. So have fun.
Brian Cameron <Brian.Cameron@sun.com>
The Queen of England
Email: Brian.Cameron@sun.com
The Queen of England
Email: Brian.Cameron@sun.com
......@@ -19,7 +19,6 @@ EXTRA_DIST = \
MAINTAINERS \
ChangeLog \
README \
README.install \
intltool-extract.in \
intltool-merge.in \
intltool-update.in \
......
This diff is collapsed.
This diff is collapsed.
GDM - GNOME DISPLAY MANAGER
-----------------------------------------------------------
Note: For instructions how to install read README.install |
-----------------------------------------------------------
| For documentation see the website:
| http://www.gnome.org/projects/gdm/
| Or use the GNOME help browser under GNOME|System.
| The XML documentation is in docs/ and is in DocBook/XML
| format so you can use docbook2html or docbook2pdf to
| convert it.
-----------------------------------------------------------
The Gnome Display Manager (GDM) is a display manager that
implements all significant features required for managing
local and remote displays. For full information about
GDM features, refer to the documentation.
GDM daemon:
o X Authentication
o XDMCP (Remote Login) including TCP Wrappers for access
control and improved security.
o Machine-specific and system-wide configuration support.
o Default and per-display initialization scripts.
o PreSession, PostSession, Init, and PostLogin scripts.
o Pluggable Authentication Modules (PAM)
o IPv6 support (optional, use --enable-ipv6=yes to enable)
o Autologin for single user workstations (off by default)
o Timed login for kiosks and public terminals (off by
default)
o On-demand local servers (gdmflexiserver)
o SunRay (SRSS) support via gdmdynamic.
o Can manage X servers without a login window (Such as
for XDMCP terminal client machines)
o Many other features ...
gdmlogin and gdmgreeter:
o Can launch the XDMCP chooser program (Remote Login)
o Can launch the Setup program (off by default)
o Can halt, reboot, or suspend the machine (off by
default)
o Session selection support
o Language selection support
gdmlogin:
o Logo image
o Background image/color
o Face browser
o Background program support
o Xinerama support
gdmgreeter:
o Themable with many themes at http://art.gnome.org/
o Xinerama support
o Face browser (if supported by the theme)
gdmchooser:
o XDMCP
o Visual host browser
o Type in extra host names
o Customizable icons
gdmsetup:
o GUI to edit the GDM configuration. Refer to the documentation
for more information about how to configure GDM.
Availability:
ftp://ftp.gnome.org/pub/GNOME/sources/gdm/
Reporting Bugs:
Please submit bug reports, enhancement requests, and patches to
the "gdm" category at:
http://bugzilla.gnome.org/
When reporting bugs you should first turn on debugging on the
"Security" tab of gdmsetup or editing custom.conf as described in
the documentation. This causes debug messages to be sent to the
system log (/var/log/messages or /var/adm/messages) and include
the GDM output sent to syslog.
You should not have to configure syslog for this to work, but if
you do not see GDM messages in your syslog it may require
configuration.
You should not leave "debug" on after collecting data. It will
clutter your syslog and slow system performance.
Installation:
Please consult README.install for instructions on how to
configure and install GDM.
Contact:
The GDM mail list is gdm-list@gnome.org. Archives can be found here:
http://mail.gnome.org/archives/
Martin, George, and then Brian
-------------------------------------------------------------------------
Note:
Originally I started maintaining gdm2 because Martin didn't yet finish gdm3 and
was in general busy and we needed a working GDM for 1.4. The move to gdm3 is
very unlikely to happen now that gdm3 has been pretty dead for quite
a while.
-George <jirka@5z.com>
-------------------------------------------------------------------------
Note:
Starting January, 2005 I have been acting as maintainer.
-Brian Cameron <Brian.Cameron@Sun.Com>
-------------------------------------------------------------------------
QUICK NOTES ON INSTALLATION/USE:
General
=======
GDM sometimes requires some configuration work for a given setup.
Make sure you are familiar with the "Overview", "Security",
"Configuration", and "Troubleshooting" sections of the GDM
documentation:
http://www.gnome.org/projects/gdm/docs.html
You can also look in the docs subdirectory for the XML version of
the documentation.
WARNING: "gdm-binary" is a *daemon* -- not a common user application.
It requires extensive knowledge about your system setup to install and
configure. GDM does not intend to be Plug and Play.
(i.e. ./configure ; make install).
Building GDM
------------
You may need to update your build tools if the autogen.sh command
complains that it requires a newer version of the build tool.
If you did not compile GNOME yourself, make sure you have the
appropriate -devel packages installed.
Here is a recommended configure for GDM:
./autogen.sh --enable-ipv6=yes --with-at-bindir=/usr/sfw/bin
--with-prefetch --with-post-path=/usr/openwin/bin
Remove --enable-ipv6=yes if you do not use IPv6.
If you want to add distribution-specific directories to the end of
DefaultPath and RootDefaultPath, then use the --with-post-path
configure option. Argument value should be a list of directories
separated by ":" characters (no spaces).
Make sure the --with-pam-prefix points to the prefix where the
pam.conf file is located if it is not in the default directory
(sysconfdir or /etc).
If you want accessibility to work and have AT programs like gok and
gnopernicus installed to a different directory than bindir,
then use the --with-at-bindir configure option.
For best a11y support on Linux, it is recommended use the
--with-xevie configuration option so that the user's Xserver
session is always started with the Xserver XEVIE extension.
GOK works best when XEVIE is enabled.
Read the GDM documentation for more information about configuring
GDM: http://www.gnome.org/projects/gdm/
Reporting Bugs
--------------
When reporting bugs you should first turn on debugging as described
in the README. This causes debug messages to be sent to the system
log (/var/log/messages or /var/adm/messages) and include the
output sent to syslog.
You should not have to configure syslog for this to work, but if
you don't see GDM messages in your syslog you may need to
configure it.
You should not leave "debug" on after collecting data. It will
clutter your syslog and slow system performance.
Configuration
=============
Gain, refer to the "Configuring GDM" section of the GDM
documentation for full information:
http://www.gnome.org/projects/gdm/docs.html
GDM Default Configuration File
------------------------------
The GDM configuration file ${datadir}/gdm/default.conf may be
replaced by your distribution on upgrade, so if a user wants
to ensure that configuration changes persist on upgrade, edit
the /etc/gdm/custom.conf file. You can specify a different
location for the configuration files via the
"--with-defaults-conf=/path/to/file" and the
"--with-custom-conf=/path/to/file" options. This can be
useful if you want to put the default file on a filesystem
shared by multiple machines.
If you wish to change configuration by hand, edit the
/etc/gdm/custom.conf file and make sure the keyname=value pair
you want is included in the appropriate section. For example,
to change the "Greeter" key in the "daemon" section, make sure the
daemon section of the custom.conf file has the value like
in this example. The modified option does not have to come
first after the "[daemon]" section heading, but can be placed
anywhere in the section.
[daemon]
Greeter=/usr/lib/gdmgreeter
The following interfaces most frequently need to be customized
for a given setup, since they are OS/machine specific:
HaltCommand
RebootCommand
SuspendCommand
StandardXServer
Xnest
SoundProgram
"command" value in each "[server-foo]" section
For example on some systems you need to define RebootCommand
as "/sbin halt -p" or "/sbin/init 0" or whatever is right on
your system.
Face Browser
------------
Face Browser is turned off by default and displays a list of
faces to choose from on the login screen which can be used
instead of typing the username. This decreases security, but
is appropriate for some uses (e.g. home use).
To assign a default face to a user for the face browser, place a
(jpg, gif, png, xpm) image to the user's $HOME/.iface directory.
The DefaultFace configuration option allows the system
administrator to set up a default face image.
Configuring Performance
----------------------
PreFetch can be turned on by using the "--with-prefetch" configure
option. Turning on PreFetch tells GDM to load a specified list of
libraries immediately after displaying the first GUI screen. This
list can be populated with libraries that will get used when the
session starts and will speed up session start performance. Why
not let your computer load these libraries while the user types
in their name and password?
The provided gdmprefetchlist.in was created for Solaris 11 running
GNOME 2.13 (not a particularly stable configuration). If using
another OS or desktop (such as KDE), then you will probably want
to modify the config/gdmprefetchlist.in file before running
configure. The GDM PreFetch will ignore libraries listed that it
does not find on your system.
Red Hat
=======
If you want to install OVER RedHat or Ximian packages use, following
configure options:
--prefix=/usr --sysconfdir=/etc/X11 --localstatedir=/var
--enable-console-helper --with-pam-prefix=/etc
However, there is now a spec file so you can build an rpm by just doing
rpm -ta gdm-<version>.tar.gz
This should work on RedHat 6.x, 7.x, 8.x, 9 and perhaps later, and if you
are very lucky then on your favorite other distribution, but no promises.
GDM is not a trivial package so it's more likely it will not work in other
places out of the box.
Solaris
=======
On Solaris, the following configuration is recommended:
./autogen.sh --prefix=/usr --sysconfdir=/etc/X11 --localstatedir=/var
--libexecdir=/usr/lib --enable-ipv6=yes --with-at-bindir=/usr/sfw/bin
--with-prefetch --with-post-path=/usr/openwin/bin
GDM includes code to integrate with the audit API, only supported on
Solaris 10 and later. GDM should not be used on Solaris 9 and earlier
if auditing is needed. Refer to the "Solaris" section of the
documentation for information about specific configuration issues for
Solaris.
http://www.gnome.org/projects/gdm/docs.html
GDM - GNOME DISPLAY MANAGER
-----------------------------------------------------------
Note: For instructions how to install read README.install |
-----------------------------------------------------------
| For documentation see the website:
| http://www.gnome.org/projects/gdm/
| Or use the GNOME help browser under GNOME|System.
| The XML documentation is in docs/ and is in DocBook/XML
| format so you can use docbook2html or docbook2pdf to
| convert it.
-----------------------------------------------------------
The Gnome Display Manager (GDM) is a display manager that
implements all significant features required for managing
local and remote displays. For full information about
GDM features, refer to the documentation.
GDM daemon:
o X Authentication
o XDMCP (Remote Login) including TCP Wrappers for access
control and improved security.
o Machine-specific and system-wide configuration support.
o Default and per-display initialization scripts.
o PreSession, PostSession, Init, and PostLogin scripts.
o Pluggable Authentication Modules (PAM)
o IPv6 support (optional, use --enable-ipv6=yes to enable)
o Autologin for single user workstations (off by default)
o Timed login for kiosks and public terminals (off by
default)
o On-demand local servers (gdmflexiserver)
o SunRay (SRSS) support via gdmdynamic.
o Can manage X servers without a login window (Such as
for XDMCP terminal client machines)
o Many other features ...
gdmlogin and gdmgreeter:
o Can launch the XDMCP chooser program (Remote Login)
o Can launch the Setup program (off by default)
o Can halt, reboot, or suspend the machine (off by
default)
o Session selection support
o Language selection support
gdmlogin:
o Logo image
o Background image/color
o Face browser
o Background program support
o Xinerama support
gdmgreeter:
o Themable with many themes at http://art.gnome.org/
o Xinerama support
o Face browser (if supported by the theme)
gdmchooser:
o XDMCP
o Visual host browser
o Type in extra host names
o Customizable icons
gdmsetup:
o GUI to edit the GDM configuration. Refer to the documentation
for more information about how to configure GDM.
Availability:
ftp://ftp.gnome.org/pub/GNOME/sources/gdm/
Reporting Bugs:
Please submit bug reports, enhancement requests, and patches to
the "gdm" category at:
http://bugzilla.gnome.org/
When reporting bugs you should first turn on debugging on the
"Security" tab of gdmsetup or editing custom.conf as described in
the documentation. This causes debug messages to be sent to the
system log (/var/log/messages or /var/adm/messages) and include
the GDM output sent to syslog.
You should not have to configure syslog for this to work, but if
you do not see GDM messages in your syslog it may require
configuration.
You should not leave "debug" on after collecting data. It will
clutter your syslog and slow system performance.
Installation:
Please consult README.install for instructions on how to
configure and install GDM.
Contact:
The GDM mail list is gdm-list@gnome.org. Archives can be found here:
http://mail.gnome.org/archives/
Martin, George, and then Brian
-------------------------------------------------------------------------
Note:
Originally I started maintaining gdm2 because Martin didn't yet finish gdm3 and
was in general busy and we needed a working GDM for 1.4. The move to gdm3 is
very unlikely to happen now that gdm3 has been pretty dead for quite
a while.
-George <jirka@5z.com>
-------------------------------------------------------------------------
Note:
Starting January, 2005 I have been acting as maintainer.
-Brian Cameron <Brian.Cameron@Sun.Com>
-------------------------------------------------------------------------
This file is just a place to note ideas about GDM that are maybe
experimental or not significant enough to report a bug. Refore
to http://bugzilla.gnome.org in the "gdm" category for the real
TODO list for GDM.
+ On Solaris GDM uses /etc/logindevperm (see README.install)
and it might be useful to simply make GDM's PreSession and
PostSession scripts process /etc/logindevperm directly and
not call the library interface on Solaris.
+ Big TODO: Rewrite the slave to be based around a mainloop.
So that we don't have to do things directly from signal handlers.
Some work has already been started by making the slave use select
calls instead of waitpid. This needs to be extended a bit. The
big issue is things that hang. We need two things, some better
general framework for things that hang and handling signals there
(see daemon/misc.c for solution when using gethostbyaddr in the
main daemon). We also need some way to do something like
"sleep(5)" with the mainloop nicely. We want the slave to still
be very synchronous, but just have some small handlers run from
within the mainloop. The one thing that will always cause
trouble here is the XDMCP server pinging, I think in this case
it would be sane to do the setjmp thing and just ignore the ping
if a signal comes, not sure how this will play with the X stuff
and if this would completely whack us out. The other option is
to have a separate "pinger process" but that seems to
heavyweight. Another option here is to give up on complete
mainloopishness and during pinging set up an alarm or some other
polling thing that checks all the mainloops stuff.
+ Resource limits have been implemented into the GDM slaves, but
perhaps more could be done. Always keep eye out for leaks.
Small TODO things:
+ If we can't setup PAM display user visible errors and not just
syslog stuff
+ Languages should be read from available locales. Right now the code
stats each file in /usr/locale, which is slow. Would be faster to
do a readdir on the direction and process them without doing stats.
Perhaps stuff:
+ Keyboard layout menu.
+ native utmp/wtmp handling without sessreg
+ xsri like logo functionality
+ Handle all the XFree86 Xserver error thingies, such as No "Display"
subsection for etc...
+ Add spacer files. Files which we can use in case there is disk
shortage to write a new xauthority stuff so that someone can
actually log on and clean up. Is this crack? Maybe.
This file is just a place to note ideas about GDM that are maybe
experimental or not significant enough to report a bug. Refore
to http://bugzilla.gnome.org in the "gdm" category for the real
TODO list for GDM.
+ On Solaris GDM uses /etc/logindevperm (see README.install)
and it might be useful to simply make GDM's PreSession and
PostSession scripts process /etc/logindevperm directly and
not call the library interface on Solaris.
+ Big TODO: Rewrite the slave to be based around a mainloop.
So that we don't have to do things directly from signal handlers.
Some work has already been started by making the slave use select
calls instead of waitpid. This needs to be extended a bit. The
big issue is things that hang. We need two things, some better
general framework for things that hang and handling signals there
(see daemon/misc.c for solution when using gethostbyaddr in the
main daemon). We also need some way to do something like
"sleep(5)" with the mainloop nicely. We want the slave to still
be very synchronous, but just have some small handlers run from
within the mainloop. The one thing that will always cause
trouble here is the XDMCP server pinging, I think in this case
it would be sane to do the setjmp thing and just ignore the ping
if a signal comes, not sure how this will play with the X stuff
and if this would completely whack us out. The other option is
to have a separate "pinger process" but that seems to
heavyweight. Another option here is to give up on complete
mainloopishness and during pinging set up an alarm or some other
polling thing that checks all the mainloops stuff.
+ Resource limits have been implemented into the GDM slaves, but
perhaps more could be done. Always keep eye out for leaks.
Small TODO things:
+ If we can't setup PAM display user visible errors and not just
syslog stuff
+ Languages should be read from available locales. Right now the code
stats each file in /usr/locale, which is slow. Would be faster to
do a readdir on the direction and process them without doing stats.
Perhaps stuff:
+ Keyboard layout menu.
+ native utmp/wtmp handling without sessreg
+ xsri like logo functionality
+ Handle all the XFree86 Xserver error thingies, such as No "Display"
subsection for etc...
+ Add spacer files. Files which we can use in case there is disk
shortage to write a new xauthority stuff so that someone can
actually log on and clean up. Is this crack? Maybe.
......@@ -1416,14 +1416,16 @@ gdm_product_slave_init (GdmProductSlave *product_slave)
static void
gdm_product_slave_finalize (GObject *object)
{
GdmProductSlave *product_slave;
GdmProductSlave *slave;
g_return_if_fail (object != NULL);
g_return_if_fail (GDM_IS_PRODUCT_SLAVE (object));
product_slave = GDM_PRODUCT_SLAVE (object);
slave = GDM_PRODUCT_SLAVE (object);
g_return_if_fail (product_slave->priv != NULL);
g_return_if_fail (slave->priv != NULL);
gdm_product_slave_stop (GDM_SLAVE (slave));
G_OBJECT_CLASS (gdm_product_slave_parent_class)->finalize (object);
}
......
......@@ -140,6 +140,26 @@ on_slave_stopped (GdmSlave *slave,
g_main_loop_quit (main_loop);
}
static void
on_session_exited (GdmSlave *slave,
int code,
GMainLoop *main_loop)
{
g_debug ("slave session exited: %d", code);
gdm_return_code = 0;
g_main_loop_quit (main_loop);
}
static void
on_session_died (GdmSlave *slave,
int num,
GMainLoop *main_loop)
{
g_debug ("slave session died: %d", num);
gdm_return_code = 0;
g_main_loop_quit (main_loop);
}
int
main (int argc,
char **argv)
......@@ -203,6 +223,14 @@ main (int argc,
"stopped",
G_CALLBACK (on_slave_stopped),
main_loop);
g_signal_connect (slave,
"session-exited",
G_CALLBACK (on_session_exited),
main_loop);
g_signal_connect (slave,
"session-died",
G_CALLBACK (on_session_exited),
main_loop);
gdm_slave_start (slave);
g_main_loop_run (main_loop);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment