Remove some uneeded | old patches.

Add a schemas override.
This commit is contained in:
ajacoutot 2012-10-10 12:34:35 +00:00
parent 29d3b3280f
commit bd51ae65ca
15 changed files with 54 additions and 397 deletions

View File

@ -1,4 +1,4 @@
# $OpenBSD: Makefile,v 1.135 2012/10/10 09:09:06 ajacoutot Exp $
# $OpenBSD: Makefile,v 1.136 2012/10/10 12:34:35 ajacoutot Exp $
SHARED_ONLY= Yes
@ -6,7 +6,7 @@ COMMENT= GNOME display manager
GNOME_PROJECT= gdm
GNOME_VERSION= 3.6.0
REVISION= 0
REVISION= 1
HOMEPAGE= http://projects.gnome.org/gdm/
@ -101,6 +101,8 @@ post-install:
${INSTALL_DATA_DIR} ${PREFIX}/share/examples/gdm/{etc/pam.d,var/db}
${INSTALL_DATA} ${FILESDIR}/gdm-* \
${PREFIX}/share/examples/gdm/etc/pam.d
${INSTALL_DATA} ${FILESDIR}/org.gnome.login-screen.gschema.override \
${PREFIX}/share/glib-2.0/schemas
mv ${WRKINST}/etc/gdm ${PREFIX}/share/examples/gdm/etc
mv ${WRKINST}/etc/dbus-1 ${PREFIX}/share/examples/gdm/etc
mv ${WRKINST}/etc/dconf ${PREFIX}/share/examples/gdm/etc

View File

@ -0,0 +1,8 @@
# $OpenBSD: org.gnome.login-screen.gschema.override,v 1.1 2012/10/10 12:34:35 ajacoutot Exp $
[org.gnome.login-screen]
enable-fingerprint-authentication=false
enable-smartcard-authentication=false
# orientation in gnome-settings-daemon depends on gudev
[org/gnome/settings-daemon/plugins/orientation]
active=false

View File

@ -1,4 +1,4 @@
$OpenBSD: patch-configure,v 1.23 2012/10/03 06:40:50 ajacoutot Exp $
$OpenBSD: patch-configure,v 1.24 2012/10/10 12:34:35 ajacoutot Exp $
Fix DATADIRNAME: see LOCALBASE/share/aclocal/{glib-gettext.m4,intltool.m4}
@ -14,16 +14,3 @@ Fix DATADIRNAME: see LOCALBASE/share/aclocal/{glib-gettext.m4,intltool.m4}
*)
DATADIRNAME=lib
;;
@@ -26390,6 +26393,12 @@ else
am__EXEEXT_TRUE='#'
am__EXEEXT_FALSE=
fi
+
+case $host in
+ i386-*-openbsd*|amd64-*-openbsd*)
+ X_CONFIG_OPTIONS="$X_CONFIG_OPTIONS vt5"
+ ;;
+esac
if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined.

View File

@ -1,88 +0,0 @@
$OpenBSD: patch-daemon_gdm-session-worker_c,v 1.1 2012/10/03 06:40:50 ajacoutot Exp $
From 0fbe5f38740cb59d542241dae3457d6c0dcf2880 Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Mon, 01 Oct 2012 21:51:23 +0000
Subject: worker: fix compiler warning
From 01c334ed94b64a3b2e9119e95e968db24dac5a31 Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Mon, 01 Oct 2012 21:51:47 +0000
Subject: worker: create program session log file as root
--- daemon/gdm-session-worker.c.orig Mon Sep 17 22:41:25 2012
+++ daemon/gdm-session-worker.c Tue Oct 2 10:42:02 2012
@@ -1530,10 +1530,10 @@ gdm_session_worker_accredit_user (GdmSessionWorker *w
return ret;
}
-static char **
+static const char * const *
gdm_session_worker_get_environment (GdmSessionWorker *worker)
{
- return pam_getenvlist (worker->priv->pam_handle);
+ return (const char * const *) pam_getenvlist (worker->priv->pam_handle);
}
static void
@@ -1775,11 +1775,19 @@ gdm_session_worker_start_session (GdmSessionWorker *w
}
if (session_pid == 0) {
- char **environment;
+ const char * const * environment;
char *kerberos_cache;
char *home_dir;
int fd;
+ fd = open ("/dev/null", O_RDWR);
+ dup2 (fd, STDIN_FILENO);
+ close (fd);
+
+ if (worker->priv->is_program_session) {
+ fd = _open_program_session_log (worker->priv->log_file);
+ }
+
if (setuid (worker->priv->uid) < 0) {
g_debug ("GdmSessionWorker: could not reset uid: %s", g_strerror (errno));
_exit (1);
@@ -1791,7 +1799,6 @@ gdm_session_worker_start_session (GdmSessionWorker *w
_exit (2);
}
-
kerberos_cache = gdm_session_worker_get_environment_variable (worker, "KRB5CCNAME");
if (kerberos_cache == NULL) {
@@ -1823,13 +1830,7 @@ gdm_session_worker_start_session (GdmSessionWorker *w
g_chdir ("/");
}
- fd = open ("/dev/null", O_RDWR);
- dup2 (fd, STDIN_FILENO);
- close (fd);
-
- if (worker->priv->is_program_session) {
- fd = _open_program_session_log (worker->priv->log_file);
- } else {
+ if (!worker->priv->is_program_session) {
if (home_dir != NULL && home_dir[0] != '\0') {
char *cache_dir;
char *log_dir;
@@ -1869,6 +1870,7 @@ gdm_session_worker_start_session (GdmSessionWorker *w
gdm_session_execute (worker->priv->arguments[0],
worker->priv->arguments,
+ (char **)
environment,
TRUE);
@@ -2693,7 +2695,7 @@ reauthentication_request_new (GdmSessionWorker *w
GDBusMethodInvocation *invocation)
{
ReauthenticationRequest *request;
- char **environment;
+ const char * const * environment;
char *address;
environment = gdm_session_worker_get_environment (worker);

View File

@ -1,104 +0,0 @@
$OpenBSD: patch-daemon_gdm-simple-slave_c,v 1.2 2012/10/08 21:47:04 ajacoutot Exp $
From 5479f2542c79873d3f36968bf081274ab9c241fd Mon Sep 17 00:00:00 2001
From: Matthias Clasen <mclasen@redhat.com>
Date: Fri, 28 Sep 2012 23:56:51 +0000
Subject: Fix errors in the setup code for gnome-initial-setup
From 6eeb747f1b056e6c10ad4390001ae094575d9c94 Mon Sep 17 00:00:00 2001
From: Matthias Clasen <mclasen@redhat.com>
Date: Sat, 29 Sep 2012 03:19:27 +0000
Subject: Don't try to delete a NULL user
From 71f07f3aa22e3f6382d525d1a0104a9a792090f9 Mon Sep 17 00:00:00 2001
From: Matthias Clasen <mclasen@redhat.com>
Date: Sat, 29 Sep 2012 03:20:18 +0000
Subject: Install polkit rules to the right place
From c32fef1406287ed324b1223837e7e7a539b86866 Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Mon, 01 Oct 2012 21:54:59 +0000
Subject: slave: don't delete initial-setup user until after initial-setup is finished
--- daemon/gdm-simple-slave.c.orig Tue Sep 25 19:57:35 2012
+++ daemon/gdm-simple-slave.c Tue Oct 9 01:01:10 2012
@@ -115,6 +115,8 @@ static void gdm_simple_slave_open_reauthentication
gpointer user_data,
GCancellable *cancellable);
+static gboolean wants_initial_setup (GdmSimpleSlave *slave);
+static void destroy_initial_setup_user (GdmSimpleSlave *slave);
G_DEFINE_TYPE (GdmSimpleSlave, gdm_simple_slave, GDM_TYPE_SLAVE)
static void create_new_session (GdmSimpleSlave *slave);
@@ -842,6 +844,9 @@ on_greeter_environment_session_stopped (GdmLaunchEnvir
if (slave->priv->start_session_service_name == NULL) {
gdm_slave_stop (GDM_SLAVE (slave));
} else {
+ if (wants_initial_setup (slave)) {
+ destroy_initial_setup_user (slave);
+ }
start_session (slave);
}
@@ -1118,7 +1123,7 @@ start_greeter (GdmSimpleSlave *slave)
start_launch_environment (slave, GDM_USERNAME, NULL);
}
-#define RULES_DIR LOCALSTATEDIR "/lib/polkit-1/localauthority/10-vendor.d/"
+#define RULES_DIR DATADIR "/polkit-1/rules.d/"
#define RULES_FILE "20-gnome-initial-setup.rules"
static const gboolean
@@ -1147,12 +1152,14 @@ create_initial_setup_user (GdmSimpleSlave *slave)
ret = FALSE;
goto out;
}
+
+ g_clear_error (&error);
} else {
g_object_unref (user);
}
/* Now, make sure the PolicyKit policy is in place */
- src_file = g_file_new_for_path (DATADIR "/gnome-initial-setup" RULES_FILE);
+ src_file = g_file_new_for_path (DATADIR "/gnome-initial-setup/" RULES_FILE);
dest_file = g_file_new_for_path (RULES_DIR RULES_FILE);
if (!g_file_copy (src_file,
@@ -1195,12 +1202,13 @@ destroy_initial_setup_user (GdmSimpleSlave *slave)
error = NULL;
user = act_user_manager_get_user (act, INITIAL_SETUP_USERNAME);
- if (!act_user_manager_delete_user (act, user, TRUE, &error)) {
- g_warning ("Failed to delete user '%s': %s", INITIAL_SETUP_USERNAME, error->message);
- g_error_free (error);
+ if (user != NULL) {
+ if (!act_user_manager_delete_user (act, user, TRUE, &error)) {
+ g_warning ("Failed to delete user '%s': %s", INITIAL_SETUP_USERNAME, error->message);
+ g_error_free (error);
+ }
+ g_object_unref (user);
}
-
- g_object_unref (user);
}
static void
@@ -1208,7 +1216,6 @@ start_initial_setup (GdmSimpleSlave *slave)
{
create_initial_setup_user (slave);
start_launch_environment (slave, INITIAL_SETUP_USERNAME, "gnome-initial-setup");
- destroy_initial_setup_user (slave);
}
static gboolean
@@ -1222,7 +1229,7 @@ wants_autologin (GdmSimpleSlave *slave)
return enabled && delay == 0;
}
-#define INITIAL_SETUP_TRIGGER_FILE LOCALSTATEDIR "/lib/gdm/run-initial-setup"
+#define INITIAL_SETUP_TRIGGER_FILE LOCALSTATEDIR "/db/gdm/run-initial-setup"
static gboolean
wants_initial_setup (GdmSimpleSlave *slave)

View File

@ -1,57 +0,0 @@
$OpenBSD: patch-daemon_gdm-slave_c,v 1.1 2012/10/03 06:40:50 ajacoutot Exp $
From 189cd818bf1592b5b8607793575bcf4e71ba8008 Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Mon, 01 Oct 2012 21:52:33 +0000
Subject: slave: let initial-setup have access to its display
--- daemon/gdm-slave.c.orig Mon Sep 24 16:08:48 2012
+++ daemon/gdm-slave.c Tue Oct 2 10:42:23 2012
@@ -545,11 +545,15 @@ gdm_slave_setup_xhost_auth (XHostAddress *host_entries
si_entries[0].typelength = strlen ("localuser");
si_entries[1].type = "localuser";
si_entries[1].typelength = strlen ("localuser");
+ si_entries[2].type = "localuser";
+ si_entries[2].typelength = strlen ("localuser");
si_entries[0].value = "root";
si_entries[0].valuelength = strlen ("root");
si_entries[1].value = GDM_USERNAME;
si_entries[1].valuelength = strlen (GDM_USERNAME);
+ si_entries[2].value = "gnome-initial-setup";
+ si_entries[2].valuelength = strlen ("gnome-initial-setup");
host_entries[0].family = FamilyServerInterpreted;
host_entries[0].address = (char *) &si_entries[0];
@@ -557,6 +561,9 @@ gdm_slave_setup_xhost_auth (XHostAddress *host_entries
host_entries[1].family = FamilyServerInterpreted;
host_entries[1].address = (char *) &si_entries[1];
host_entries[1].length = sizeof (XServerInterpretedAddress);
+ host_entries[2].family = FamilyServerInterpreted;
+ host_entries[2].address = (char *) &si_entries[2];
+ host_entries[2].length = sizeof (XServerInterpretedAddress);
}
static void
@@ -672,8 +679,8 @@ gdm_slave_connect_to_x11_display (GdmSlave *slave)
g_warning ("Unable to connect to display %s", slave->priv->display_name);
ret = FALSE;
} else if (slave->priv->display_is_local) {
- XServerInterpretedAddress si_entries[2];
- XHostAddress host_entries[2];
+ XServerInterpretedAddress si_entries[3];
+ XHostAddress host_entries[3];
g_debug ("GdmSlave: Connected to display %s", slave->priv->display_name);
ret = TRUE;
@@ -909,8 +916,8 @@ gdm_slave_add_user_authorization (GdmSlave *slave,
const char *username,
char **filenamep)
{
- XServerInterpretedAddress si_entries[2];
- XHostAddress host_entries[2];
+ XServerInterpretedAddress si_entries[3];
+ XHostAddress host_entries[3];
gboolean res;
GError *error;
char *filename;

View File

@ -1,6 +1,6 @@
$OpenBSD: patch-daemon_gdm-xdmcp-display-factory_c,v 1.3 2012/09/10 13:19:04 ajacoutot Exp $
--- daemon/gdm-xdmcp-display-factory.c.orig Sat Apr 14 20:52:00 2012
+++ daemon/gdm-xdmcp-display-factory.c Mon Sep 10 15:03:45 2012
$OpenBSD: patch-daemon_gdm-xdmcp-display-factory_c,v 1.4 2012/10/10 12:34:35 ajacoutot Exp $
--- daemon/gdm-xdmcp-display-factory.c.orig Thu Sep 6 20:33:20 2012
+++ daemon/gdm-xdmcp-display-factory.c Wed Oct 10 15:55:48 2012
@@ -35,6 +35,7 @@
#include <netdb.h>
#include <arpa/inet.h>
@ -9,26 +9,40 @@ $OpenBSD: patch-daemon_gdm-xdmcp-display-factory_c,v 1.3 2012/09/10 13:19:04 aja
#ifdef HAVE_SYS_SOCKIO_H
#include <sys/sockio.h>
#endif
@@ -64,7 +65,7 @@
* On Sun, we need to define allow_severity and deny_severity to link
* against libwrap.
*/
-#ifdef __sun
+#if defined(__sun) || defined(__OpenBSD__)
#include <syslog.h>
int allow_severity = LOG_INFO;
int deny_severity = LOG_WARNING;
@@ -86,6 +87,13 @@ int deny_severity = LOG_WARNING;
#define GDM_MAX_FORWARD_QUERIES 10
#define GDM_FORWARD_QUERY_TIMEOUT 30
#define MANAGED_FORWARD_INTERVAL 1500 /* 1.5 seconds */
+
+#ifndef AI_ALL
+#define AI_ALL 0
@@ -376,12 +377,14 @@ ai_flags_str (struct addrinfo *ai)
if (ai->ai_flags & AI_NUMERICSERV) {
g_string_append (str, "numserv ");
}
+#ifndef __OpenBSD__
if (ai->ai_flags & AI_V4MAPPED) {
g_string_append (str, "v4mapped ");
}
if (ai->ai_flags & AI_ALL) {
g_string_append (str, "all ");
}
+#endif
+#ifndef AI_V4MAPPED
+#define AI_V4MAPPED 0
}
return g_string_free (str, FALSE);
}
@@ -1526,8 +1529,10 @@ create_address_from_request (ARRAY8 *req_addr,
memset (&hints, 0, sizeof (hints));
hints.ai_family = family;
+#ifndef __OpenBSD__
/* this should convert IPv4 address to IPv6 if needed */
hints.ai_flags = AI_V4MAPPED;
+#endif
hints.ai_socktype = SOCK_DGRAM;
if ((gaierr = getaddrinfo (host, serv, &hints, &ai_list)) != 0) {
@@ -2009,8 +2014,10 @@ on_hostname_selected (GdmXdmcpChooserDisplay *display,
memset (&hints, 0, sizeof (hints));
hints.ai_family = gdm_address_get_family_type (address);
+#ifndef __OpenBSD__
/* this should convert IPv4 address to IPv6 if needed */
hints.ai_flags = AI_V4MAPPED;
+#endif
/* some extra XDMCP opcodes that xdm will happily ignore since they'll be
* the wrong XDMCP version anyway */
xdmcp_port = g_strdup_printf ("%d", XDM_UDP_PORT);
if ((gaierr = getaddrinfo (hostname, xdmcp_port, &hints, &ai_list)) != 0) {

View File

@ -1,18 +0,0 @@
$OpenBSD: patch-data_00-upstream-settings,v 1.3 2012/09/29 19:28:15 ajacoutot Exp $
Our gnome-settings-daemon does not provide the
org.gnome.settings-daemon.plugins.orientation gschema because it depends
on gudev.
--- data/00-upstream-settings.orig Tue Sep 4 20:41:39 2012
+++ data/00-upstream-settings Sat Sep 29 19:46:01 2012
@@ -84,9 +84,6 @@ www=''
[org/gnome/settings-daemon/plugins/mouse]
active=false
-[org/gnome/settings-daemon/plugins/orientation]
-active=true
-
[org/gnome/settings-daemon/plugins/power]
active=true

View File

@ -1,16 +0,0 @@
$OpenBSD: patch-data_00-upstream-settings-locks,v 1.2 2012/09/29 19:28:15 ajacoutot Exp $
Our gnome-settings-daemon does not provide the
org.gnome.settings-daemon.plugins.orientation gschema because it depends
on gudev.
--- data/00-upstream-settings-locks.orig Tue Sep 4 20:41:39 2012
+++ data/00-upstream-settings-locks Sat Sep 29 19:46:01 2012
@@ -38,7 +38,6 @@
/org/gnome/settings-daemon/plugins/media-keys/stop
/org/gnome/settings-daemon/plugins/media-keys/www
/org/gnome/settings-daemon/plugins/mouse/active
-/org/gnome/settings-daemon/plugins/orientation/active
/org/gnome/settings-daemon/plugins/power/active
/org/gnome/settings-daemon/plugins/print-notifications/active
/org/gnome/settings-daemon/plugins/smartcard/active

View File

@ -1,4 +1,4 @@
$OpenBSD: patch-data_gdm-shell_session_in,v 1.2 2012/09/29 19:28:15 ajacoutot Exp $
$OpenBSD: patch-data_gdm-shell_session_in,v 1.3 2012/10/10 12:34:35 ajacoutot Exp $
--- data/gdm-shell.session.in.orig Mon Sep 24 22:27:23 2012
+++ data/gdm-shell.session.in Sat Sep 29 19:46:02 2012
@@ -1,5 +1,5 @@
@ -6,5 +6,5 @@ $OpenBSD: patch-data_gdm-shell_session_in,v 1.2 2012/09/29 19:28:15 ajacoutot Ex
Name=Display Manager
RequiredComponents=gnome-shell;gnome-settings-daemon;
-IsRunnableHelper=bash -c 'type -p gnome-shell >& /dev/null && @CHECK_ACCELERATED_DIR@/gnome-session-check-accelerated'
+IsRunnableHelper=sh -c 'gnome-shell --help | grep -q gdm-mode && @libexecdir@/gnome-session-check-accelerated'
+IsRunnableHelper=sh -c 'type -p gnome-shell >/dev/null && @CHECK_ACCELERATED_DIR@/gnome-session-check-accelerated'
FallbackSession=gdm-fallback

View File

@ -1,18 +0,0 @@
$OpenBSD: patch-gui_libgdm_gdm-user-switching_c,v 1.1 2012/10/03 06:40:50 ajacoutot Exp $
From 1e72815156834468b57f3e5ac1960950c2e9519f Mon Sep 17 00:00:00 2001
From: Tim Lunn <tim@feathertop.org>
Date: Fri, 28 Sep 2012 00:29:00 +0000
Subject: libgdm: correct invalid g_variant format string
--- gui/libgdm/gdm-user-switching.c.orig Tue Sep 25 19:57:36 2012
+++ gui/libgdm/gdm-user-switching.c Tue Oct 2 10:40:56 2012
@@ -251,7 +251,7 @@ seat_can_activate_sessions (GDBusConnection *connectio
return FALSE;
}
- g_variant_get (reply, "(&b)", &ret);
+ g_variant_get (reply, "(b)", &ret);
g_variant_unref (reply);
return ret;

View File

@ -1,21 +0,0 @@
$OpenBSD: patch-gui_simple-chooser_chooser-main_c,v 1.2 2012/09/10 13:19:04 ajacoutot Exp $
--- gui/simple-chooser/chooser-main.c.orig Sat Apr 14 20:52:00 2012
+++ gui/simple-chooser/chooser-main.c Mon Sep 10 14:58:05 2012
@@ -52,7 +52,7 @@ assistive_registry_launch (void)
char **argv;
gboolean res;
- command = AT_SPI_REGISTRYD_DIR "/at-spi-registryd";
+ command = AT_SPI_REGISTRYD_DIR "/at-spi2-registryd";
argv = NULL;
error = NULL;
@@ -81,7 +81,7 @@ assistive_registry_launch (void)
}
if (kill (pid, 0) < 0) {
- g_warning ("at-spi-registryd not running");
+ g_warning ("at-spi2-registryd not running");
return FALSE;
}

View File

@ -1,12 +0,0 @@
$OpenBSD: patch-gui_simple-chooser_gdm-host-chooser-widget_c,v 1.1 2011/09/12 07:39:21 ajacoutot Exp $
--- gui/simple-chooser/gdm-host-chooser-widget.c.orig Mon Mar 7 18:40:37 2011
+++ gui/simple-chooser/gdm-host-chooser-widget.c Fri Jun 17 07:55:04 2011
@@ -544,6 +544,8 @@ xdmcp_init (GdmHostChooserWidget *widget)
#ifdef ENABLE_IPV6
widget->priv->socket_fd = socket (AF_INET6, SOCK_DGRAM, 0);
if (widget->priv->socket_fd != -1) {
+ int off = 0;
+ setsockopt(widget->priv->socket_fd, IPPROTO_IPV6, IPV6_V6ONLY, (void *)&off, sizeof (off));
widget->priv->have_ipv6 = TRUE;
#ifdef IPV6_V6ONLY
{

View File

@ -1,21 +0,0 @@
$OpenBSD: patch-gui_simple-chooser_gdm-host-chooser_c,v 1.2 2012/09/10 13:19:04 ajacoutot Exp $
--- gui/simple-chooser/gdm-host-chooser.c.orig Sat Apr 14 20:52:00 2012
+++ gui/simple-chooser/gdm-host-chooser.c Mon Sep 10 14:58:05 2012
@@ -53,7 +53,7 @@ assistive_registry_launch (void)
char **argv;
gboolean res;
- command = AT_SPI_REGISTRYD_DIR "/at-spi-registryd";
+ command = AT_SPI_REGISTRYD_DIR "/at-spi2-registryd";
argv = NULL;
error = NULL;
@@ -82,7 +82,7 @@ assistive_registry_launch (void)
}
if (kill (pid, 0) < 0) {
- g_warning ("at-spi-registryd not running");
+ g_warning ("at-spi2-registryd not running");
return FALSE;
}

View File

@ -1,4 +1,4 @@
@comment $OpenBSD: PLIST,v 1.52 2012/10/09 13:18:00 ajacoutot Exp $
@comment $OpenBSD: PLIST,v 1.53 2012/10/10 12:34:35 ajacoutot Exp $
@comment starts a full gnome-session as _gdm which requires a valid homedir
@newgroup _gdm:676
@newuser _gdm:676:_gdm:daemon:GNOME Display Manager:/var/db/gdm:/sbin/nologin
@ -153,6 +153,7 @@ share/gdm/simple-greeter/extensions/smartcard/page.ui
share/gdm/simple-greeter/extensions/unified/
share/gdm/simple-greeter/extensions/unified/page.ui
share/gir-1.0/Gdm-1.0.gir
share/glib-2.0/schemas/org.gnome.login-screen.gschema.override
share/glib-2.0/schemas/org.gnome.login-screen.gschema.xml
share/gnome-session/sessions/gdm-fallback.session
share/gnome-session/sessions/gdm-shell.session