Commit 3dc1d30d authored by Brian Cameron's avatar Brian Cameron Committed by Brian Cameron

Updated. Update to 2.13.0.8 and use EXPANDED_DATADIR instead of %{datadir}

2006-02-13  Brian Cameron  <brian.cameron@sun.com>

        * Release 2.13.0.8:
        * NEWS: Updated.
        * configure.ac: Update to 2.13.0.8 and use EXPANDED_DATADIR instead
          of %{datadir} since that makes it work much better.
        * README.install, README, docs/C/gdm.xml:  Update docs so that the
          change from --with-configdir to --with-defaults-conf and renaming of
          default and custom config file is documented.
        * daemon/gdm-net.c, daemon/gdmconfig.c, gui/gdmsetup.c: Update comments
          to no longer mention old name of config file.  Fix gdmsetup to know
          new location of custom config file.
        * config/Makefile.am: Now if upgrading and gdm.conf and
          factory-gdm.conf are different, move the gdm.conf file to
          custom.conf instead of copy.  This is  because we don't want GDM
          to overwrite the custom.conf file every time user upgrades.  Only
          first time, then gdm.conf should go away.
parent 9db396d4
2006-02-13 Brian Cameron <brian.cameron@sun.com>
* Release 2.13.0.8:
* NEWS: Updated.
* configure.ac: Update to 2.13.0.8 and use EXPANDED_DATADIR instead
of %{datadir} since that makes it work much better.
* README.install, README, docs/C/gdm.xml: Update docs so that the
change from --with-configdir to --with-defaults-conf and renaming of
default and custom config file is documented.
* daemon/gdm-net.c, daemon/gdmconfig.c, gui/gdmsetup.c: Update comments
to no longer mention old name of config file. Fix gdmsetup to know
new location of custom config file.
* config/Makefile.am: Now if upgrading and gdm.conf and
factory-gdm.conf are different, move the gdm.conf file to
custom.conf instead of copy. This is because we don't want GDM
to overwrite the custom.conf file every time user upgrades. Only
first time, then gdm.conf should go away.
2006-02-13 Brian Cameron <brian.cameron@sun.com>
* acconfig.h, configure.ac, daemon/Makefile.am, daemon/gdmconfig.c,
......
Ahh news...
2.13.0.8 stuff:
- Because the main gdm.conf file is now read-only, contains distro
defaults and is not to be edited by the user, the file has been
moved to ${datadir}/gdm/defaults.conf (also factory-gdm.conf is
now %{datadir}/gdm/factory-defaults.conf). Users can use the
--with-defaults-conf to specify the location of this file.
Note that this means that distributions who want to preserve GDM
configuration set by those using older versions of GDM should use
preinstall/postinstall scripts to move the /etc/gdm/gdm.conf file
to /etc/gdm/gdm.conf-custom if the file has been edited (compare
against /etc/gdm/factory-gdm.conf to see if it has been modified).
"make install" for GDM does this if building from source. GDM
docs updated to reflect this change.
- Lots of performance issues with the GDM sockets connection improved.
Now the code deals much better with failures, and better debug is
printed to the log.
- Improved debug logic in GDM slaves so they use common functions.
- Fix gdmdynamic so it supports up to hundreds of displays rather than
just a dozen or so. Now gdmdynamic backs off on sending sockets
commands to the server if it is being flooded with requests. Added
new "SERVER_BUSY" sockets command to support this feature and new
-t and -s command line options so the back-off behavior can be
tuned, if needed.
- The config logic for the slaves will now return the compiled in
value if it fails to connect to the server for better behavior.
- gdm-restart, gdm-safe-restart, gdm-stop, and gdm.spec now use
gdmflexiserver to get config data rather than trying to grep and
awk the config file directly.
- Fix Xsession script so zenity calls work.
- Lots of improvements to the GDM docs. Added section about "PAM" in
Security. Add comment that +xkb is needed for keyboard gesture
listeners (accessibility) to work. Also updated README and
README.install and moved some information that was in these files
to the docs.
- Bump MAX_CONNECTIONS from 10 to 15 so that the daemon will accept
more connections from slaves. This improves performance when the
daemon is flooded with requests.
- Fix include statement in daemon/gdmconfig.c to fix compile problem
on LFS.
- Translation updates (Raphael Higino, Theppitak Karoonboonyanan,
Priit Laes, Kjartan Maraas, Lukas Novotny, Ankit Patel,
Josep Puigdemont i Casamaj\303\263, Ignacio Casal Quinteiro,
Hendrik Richter, Francisco Javier F. Serrador, Clytie Siddall,
Slobodan D. Sredojevic, Ilkka Tuohela, Vincent van Adrighem,
Funda Wang, Adam Weinberger)
2.13.0.7 stuff:
- Turns out the core dumping issue that was supposed to be fixed in 2.13.0.6
......
......@@ -83,10 +83,10 @@ Reporting Bugs:
http://bugzilla.gnome.org/
When reporting bugs you should first turn on debugging on the
"Security" tab of gdmsetup or editing gdm.conf-custom 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.
"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
......
......@@ -59,8 +59,8 @@ GDM: http://www.gnome.org/projects/gdm/
Reporting Bugs
--------------
When reporting bugs you should first turn on debugging in
gdm.conf. This causes debug messages to be sent to the system
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.
......@@ -82,19 +82,20 @@ documentation for full information:
GDM Default Configuration File
------------------------------
The GDM configuration file /etc/gdm/gdm.conf may be replaced by
you distribution on upgrade, so if a user wants to ensure that
configuration changes persist on upgrade, edit the
/etc/gdm/gdm.conf-custom file. You can specify a different
location for the file via the "--with-defaults-conf=/dir" option.
This can be useful if you want to put the default file on a
filesystem shared by multiple machines.
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 file via the "--with-defaults-conf=/dir"
and "--with-custom-conf=/dir" 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/X11/gdm/gdm.conf-custom file and make sure the keyname=value
pair you want is included in the appropriate section. For example,
/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 gdm.conf-custom file has the value like
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.
......@@ -127,7 +128,7 @@ 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 gdm.conf DefaultFace configuration option allows the system
The DefaultFace configuration option allows the system
administrator to set up a default face image.
Configuring Performance
......
......@@ -85,9 +85,9 @@ install-data-hook: gdm.conf gdm.conf-custom Xsession Init PostSession PreSession
if test -f $(DESTDIR)$(confdir)/gdm.conf; then \
if ! cmp -s $(DESTDIR)$(confdir)/gdm.conf $(DESTDIR)$(confdir)/factory-gdm.conf > /dev/null 2>&1 ; then \
if test '!' -f $(DESTDIR)$(GDM_CUSTOM_CONF); then \
cp -f $(DESTDIR)$(confdir)/gdm.conf $(DESTDIR)$(GDM_CUSTOM_CONF); \
mv -f $(DESTDIR)$(confdir)/gdm.conf $(DESTDIR)$(GDM_CUSTOM_CONF); \
else \
cp -f $(DESTDIR)$(confdir)/gdm.conf $(DESTDIR)$(GDM_DEFAULTS_CONF).org; \
mv -f $(DESTDIR)$(confdir)/gdm.conf $(DESTDIR)$(GDM_DEFAULTS_CONF).org; \
fi; \
fi; \
fi
......
......@@ -2,7 +2,7 @@ AC_PREREQ(2.52)
AC_INIT(daemon/gdm.h)
AM_CONFIG_HEADER(config.h)
AM_INIT_AUTOMAKE(gdm,2.13.0.7)
AM_INIT_AUTOMAKE(gdm,2.13.0.8)
AC_CONFIG_MACRO_DIR([m4])
AM_MAINTAINER_MODE
......@@ -855,7 +855,7 @@ AC_ARG_WITH(defaults_conf,
if test x$withval != x; then
GDM_DEFAULTS_CONF="$withval"
else
GDM_DEFAULTS_CONF="$datadir/gdm/defaults.conf"
GDM_DEFAULTS_CONF="$EXPANDED_DATADIR/gdm/defaults.conf"
fi
AC_SUBST(GDM_DEFAULTS_CONF)
......
......@@ -59,8 +59,8 @@
* servers) where lots of connections may hit the server at once
* and 15 connections may not be enough (especially since the
* console login screen may also be using one of them). Perhaps
* this number should be in gdm.conf so it can be tuned by the
* end user?
* this number should be in configuration file so it can be
* tuned by the end user?
*
* If, when you turn on debug, you notice messages like this
* in the log, "Closing connection, x subconnections reached"
......
......@@ -722,7 +722,8 @@ gdm_config_to_string (gchar *key, gchar **retval)
/**
* gdm_compare_displays
*
* Support function for loading displays from the gdm.conf file
* Support function for loading displays from the configuration
* file
*/
int
gdm_compare_displays (gconstpointer a, gconstpointer b)
......
......@@ -793,9 +793,9 @@
its graphical interfaces such as <command>gdmgreeter</command> and
<command>gdmlogin</command>. These are configured via the
<filename>User</filename> and <filename>Group</filename>
configuration options in the gdm.conf file. The user and group should
be created before running &quot;make install&quot;. By default GDM
assumes the user and the group are called &quot;gdm&quot;.
configuration options in the GDM configuration files. The user and
group should be created before running &quot;make install&quot;. By
default GDM assumes the user and the group are called &quot;gdm&quot;.
</para>
<para>
......@@ -1022,21 +1022,21 @@ gdm: .your.domain
<para>
If you are a distribution and want to set machine defaults, you should
edit the <filename>gdm.conf</filename> file rather than editing the
<filename>gdm.conf-custom</filename> file, so the distribution changes
are preserved as defaults.
edit the <filename>&lt;share&gt;/gdm/defaults.conf</filename> file rather
than editing the <filename>&lt;etc&gt;/gdm/custom.conf</filename>
file, so the distribution changes are preserved as defaults.
</para>
<para>
If you want to change configuration by hand, edit the
<filename>&lt;etc&gt;/X11/gdm/gdm.conf-custom</filename> file and make sure the
keyname=value pair you want is included in the appropriate section. For
example, to change the &quot;Greeter&quot; key in the &quot;daemon&quot;
section, make sure the daemon section of the
<filename>gdm.conf-custom</filename> file has the value like in this
example. The modified option does not have to come anywhere in the
section. The <command>gdmsetup</command> program manages editing these
files for you.
<filename>&lt;etc&gt;/gdm/custom.conf</filename> file and make
sure the keyname=value pair you want is included in the appropriate
section. For example, to change the &quot;Greeter&quot; key in the
&quot;daemon&quot; section, make sure the daemon section of the
<filename>&lt;etc&gt;/gdm/custom.conf</filename> file has the value
like in this example. The modified option does not have to come anywhere
in the section. The <command>gdmsetup</command> program manages editing
these files for you.
</para>
<screen>
......@@ -1045,9 +1045,10 @@ Greeter=/usr/lib/gdmgreeter
</screen>
<para>
The configuration files (especially the <filename>gdm.conf</filename>
and <filename>gdm.conf-custom</filename> files) contains useful
comments and examples, so read these for more information about
The configuration files (especially the
<filename>&lt;share&gt;/gdm/defaults.conf</filename> and
<filename>&lt;etc&gt;/gdm/custom.conf</filename> files) contains
useful comments and examples, so read these for more information about
changing your setup.
</para>
......@@ -1060,42 +1061,43 @@ Greeter=/usr/lib/gdmgreeter
</para>
<para>
The <filename>gdm.conf</filename> file contains the default
configuration choices for GDM, and should not be modified by the
user. The <filename>gdm.conf-custom</filename> file is where users
may specify their custom configuration choices. Configuration options
specified in the <filename>gdm.conf-custom</filename> file override
the values in the main <filename>gdm.conf</filename> file. Running
the <command>gdmsetup</command> command will cause the
<filename>gdm.conf-custom</filename> to be modified with the
user's configuration choices and will cause any running GDM GUI
The <filename>&lt;share&gt;/gdm/defaults.conf</filename> file contains
the default configuration choices for GDM, and should not be modified by
the user. The <filename>&lt;etc&gt;/gdm/custom.conf</filename> file
is where users may specify their custom configuration choices.
Configuration options specified in the
<filename>&lt;etc&gt;/gdm/custom.conf</filename> file override the
values in the main <filename>&lt;share&gt;/gdm/defaults.conf</filename>
file. Running the <command>gdmsetup</command> command will cause the
<filename>&lt;etc&gt;/gdm/custom.conf</filename> to be modified with
the user's configuration choices and will cause any running GDM GUI
programs to automatically update. Previous to version 2.13.0.4
GDM only supported the <filename>gdm.conf</filename> file, so if
using an older version of GDM just edit that file directly.
GDM only supported the <filename>&lt;etc&gt;/gdm/gdm.conf</filename>
file, so if using an older version of GDM just edit that file directly.
</para>
<para>
GDM may be configured to support system-wide configuration if
built with the <command>--with-defaults-conf</command> option. This
allows the gdm.conf file to be installed to a directory that can
be mounted across multiple-systems. The GDM --config option may
also be used to specify the configuration file location. The GDM2
daemon must be restarted to change the configuration file being
used.
allows the location of the default configuration file directory to be
specified. The GDM daemon --config option may also be used to
specify the configuration file location. The GDM daemon must be
restarted to change the configuration file being used.
</para>
<para>
<filename>factory-gdm.conf</filename> is the configuration file as
shipped with the daemon. This can be useful if you wish to revert to
the default configuration.
<filename>&lt;share&gt;/gdm/factory-defaults.conf</filename> is the
configuration file as shipped with the daemon. This can be useful for
to see if the <filename>&lt;share&gt;/gdm/defaults.conf</filename> file
has been changed.
</para>
<para>
The other GDM configuration files are located, by default, in the
<filename>&lt;etc&gt;/gdm/</filename> folder or its subdirectories.
However, the location of all configuration files can be defined in
the <filename>gdm.conf</filename> file, so the sysadmin may choose
to locate these files in any location.
However, the location of all configuration files are defined in
the GDM configuration files, so the sysadmin may choose to locate these
files in any location.
</para>
<para>
......@@ -1312,64 +1314,67 @@ PostSession/
</sect2>
<sect2 id="configfile">
<title>The Configuration File - <filename>gdm.conf</filename> and
<filename>gdm.conf-custom</filename></title>
<title>The Configuration Files - <filename>defaults.conf</filename> and
<filename>custom.conf</filename></title>
<para>
GDM uses two configuration files: <filename>gdm.conf</filename>
and <filename>gdm.conf-custom</filename>. The
<filename>gdm.conf</filename> file contains the default
configuration choices for GDM, and should not be modified by the
user. The <filename>gdm.conf-custom</filename> file is where
users may specify their custom configuration choices.
GDM uses two configuration files:
<filename>&lt;share&gt;/gdm/defaults.conf</filename>
and <filename>&lt;etc&gt;/gdm/custom.conf</filename>. The
<filename>&lt;share&gt;/gdm/defaults.conf</filename> file contains the
default configuration choices for GDM, and should not be modified by
the user. The <filename>&lt;etc&gt;/gdm/custom.conf</filename>
file is where users may specify their custom configuration choices.
Configuration options specified in the
<filename>gdm.conf-custom</filename> file override the values in
the main <filename>gdm.conf</filename> file. If a configuration
option is not defined in either file, GDM will default to the
value described in the comments in the
<filename>gdm.conf</filename> file.
<filename>&lt;etc&gt;/gdm/custom.conf</filename> file override the
values in the <filename>&lt;share&gt;/gdm/defaults.conf</filename>
file. If a configuration option is not defined in either file, GDM
will default to the value described in the comments in the
<filename>&lt;share&gt;/gdm/defaults.conf</filename> file.
</para>
<para>
Running the <command>gdmsetup</command> command will cause the
<filename>gdm.conf-custom</filename> to be modified with the
user's configuration choices.
<filename>&lt;etc&gt;/gdm/custom.conf</filename> to be modified
with the user's configuration choices.
</para>
<para>
Previous to GDM 2.13.0.4 only the <filename>gdm.conf</filename>
existed. If upgrading to the new version of GDM, install will
check to see if your <filename>gdm.conf</filename> file is
different than your <filename>factory-gdm.conf</filename> file.
If so, your <filename>gdm.conf</filename> file will be
automatically copied to <filename>gdm.conf-custom</filename>
to preserve your configuration changes.
Previous to GDM 2.13.0.4 only the
<filename>&lt;etc&gt;/gdm/gdm.conf</filename> existed. If upgrading
to the new version of GDM, install will check to see if your
<filename>&lt;etc&gt;/gdm/gdm.conf</filename> file is different than
your <filename>&lt;etc&gt;/gdm/factory-gdm.conf</filename> file.
If so, your <filename>&lt;etc&gt;/gdm/gdm.conf</filename> file will be
automatically copied to
<filename>&lt;etc&gt;/gdm/custom.conf</filename> to preserve any
configuration changes.
</para>
<para>
GDM may be configured to support system-wide configuration if
built with the <command>--with-defaults-conf</command> option. This
allows the <filename>gdm.conf</filename> file to be installed to
a directory that can be mounted across multiple-systems. The
GDM --config option may instead be used to specify a configuration
file installed to another location. The GDM2 daemon must be
allows the location of the default configuration file directory to be
specified. The GDM daemon --config option may instead be used to
specify the configuration file location. The GDM daemon must be
restarted to change the configuration file being used.
</para>
<para>
Both configuration files are divided into sections each containing
variables that define the behavior for a specific part of the GDM
suite. Refer to the comments in the <filename>gdm.conf</filename>
file for additional information about each configuration setting.
suite. Refer to the comments in the
<filename>&lt;share&gt;/gdm/defaults.conf</filename> file for
additional information about each configuration setting.
</para>
<para>
The <filename>gdm.conf</filename> and
<filename>gdm.conf-custom</filename> files follow the standard
<filename>.ini</filename> style configuration file syntax. Keywords
in brackets define sections, strings before an equal sign (=) are
variables and the data after equal sign represents their value. Empty
lines or lines starting with the hash mark (#) are ignored. The
The <filename>&lt;share&gt;/gdm/defaults.conf</filename> and
<filename>&lt;etc&gt;/gdm/custom.conf</filename> files follow the
standard <filename>.ini</filename> style configuration file syntax.
Keywords in brackets define sections, strings before an equal sign (=)
are variables and the data after equal sign represents their value.
Empty lines or lines starting with the hash mark (#) are ignored. The
graphical configurator will try to preserve both comments (lines with
a hash mark) and the overall structure of the file so you can intermix
using the GUI or hand editing the configuration file.
......@@ -3671,12 +3676,14 @@ gdm:.my.domain
users to edit the servers defined in the GDM configuration files
but currently does not allow adding or deleting entries. Like
normal configuration options, <filename>server-</filename>
sections in the <filename>gdm.conf-custom</filename> file
override values in the <filename>gdm.conf</filename> file. In
other words, if a <filename>server-Standard</filename> section is
defined in <filename>gdm.conf-custom</filename>, then that will
be used and the section in the <filename>gdm.conf</filename>
file will be ignored.
sections in the <filename>&lt;etc&gt;/gdm/custom.conf</filename>
file override values in the
<filename>&lt;share&gt;/gdm/defaults.conf</filename> file. In other
words, if a <filename>server-Standard</filename> section is defined
in <filename>&lt;etc&gt;/gdm/custom.conf</filename>, then that
will be used and the section in the
<filename>&lt;share&gt;/gdm/defaults.conf</filename> file will be
ignored.
</para>
<variablelist>
......@@ -3770,8 +3777,9 @@ gdm:.my.domain
display configuration defined in the GDM configuration files
and allows the user to add or delete entries. Like normal
configuration options, the <filename>[servers]</filename>
section in the <filename>gdm.conf-custom</filename> file
overrides values in the <filename>gdm.conf</filename> file.
section in the <filename>&lt;etc&gt;/gdm/custom.conf</filename>
file overrides values in the
<filename>&lt;share&gt;/gdm/defaults.conf</filename> file.
</para>
<variablelist>
......@@ -3795,9 +3803,10 @@ gdm:.my.domain
for them to be &quot;packed&quot;. They keyword
&quot;inactive&quot; can be used instead of a command to
specify that the display should be not managed. This can be
used in the <filename>gdm.conf-custom</filename> to turn off a
display that is defined in the <filename>gdm.conf</filename>
file.
used in the
<filename>&lt;etc&gt;/gdm/custom.conf</filename> to turn
off a display that is defined in the
<filename>&lt;share&gt;/gdm/defaults.conf</filename> file.
</para>
<para>
......
This diff is collapsed.
This diff is collapsed.
......@@ -6,8 +6,6 @@ DEFS = @DEFS@ \
-DSYSCONFDIR=\"@sysconfdir@\" \
-DDATADIR=\"@datadir@\" \
-DLIBDIR=\"@libdir@\" \
-DGDM_FACTORY_CONFIG_FILE=\"$(GDM_CONFIGDIR)/factory-gdm.conf\" \
-DGDM_SYSCONFDIR_CONFIG_FILE=\"$(GDM_CONFIGDIR)/gdm.conf\" \
-DGDM_GLADE_DIR=\"@datadir@/gdm\"
INCLUDES = \
......
......@@ -864,7 +864,7 @@ refresh_remote_tab (void)
}
/*
* We probably should check the server definition in the gdm.conf defaults file
* We probably should check the server definition in the defaults.conf file
* and just erase the section if the values are the same, like we do for the
* displays section and the normal configuration sections.
*/
......@@ -4755,17 +4755,19 @@ xserver_init_definitions ()
* Deletes a server definition (not the same as removing a server
* from the list of servers to start)
*
* NOTE, now that we have the gdm.conf and gdm.conf-custom files, this will
* need to work like the displays. So if you want to delete something that
* is gdm.conf you will need to write a new value to gdm.conf-custom section
* for this xserver like "inactive=true". For this to work, daemon/gdmconfig.c
* will also need to be modified so that it doesn't bother loading xservers
* that are marked as inactive in the gdm.conf-custom file. As I said, this
* is the same way the displays already work so the code should be similar.
* Or perhaps it makes more sense to just not allow deleting of server-foo
* sections as defined in the gdm.conf file. If the user doesn't want to
* use them, they can always create new server-foo sections in gdm.conf-custom
* and define their displays to only use the ones they define.
* NOTE, now that we have the %{datadir}/gdm/defaults.conf and
* %{etc}/gdm/custom.conf files, this will need to work like the displays.
* So if you want to delete something that is defaults.conf you will need
* to write a new value to custom.conf section for this xserver like
* "inactive=true". For this to work, daemon/gdmconfig.c will also need
* to be modified so that it doesn't bother loading xservers that are
* marked as inactive in the custom.conf file. As I said, this
* is the same way the displays already work so the code should be
* similar. Or perhaps it makes more sense to just not allow
* deleting of server-foo sections as defined in the defaults.conf
* file. If the user doesn't want to use them, they can always
* create new server-foo sections in custom.conf and define their
* displays to only use the ones they define.
*/
#ifdef GDM_UNUSED_CODE
static void
......@@ -6445,7 +6447,7 @@ main (int argc, char *argv[])
gtk_window_set_default_icon_from_file (DATADIR"/pixmaps/gdm-setup.png", NULL);
glade_gnome_init();
custom_config_file = g_strdup_printf ("%s-custom", GDM_SYSCONFDIR_CONFIG_FILE);
custom_config_file = g_strdup_printf ("%s", GDM_CUSTOM_CONF);
config_file = gdm_common_get_config_file ();
if (config_file == NULL) {
......
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