summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--Makefile.am2
-rwxr-xr-xautogen.sh6
-rw-r--r--configure.in63
-rw-r--r--daemon/Makefile.am8
-rw-r--r--daemon/auth.c4
-rw-r--r--daemon/choose.c2
-rw-r--r--daemon/cookie.c2
-rw-r--r--daemon/display.c3
-rw-r--r--daemon/errorgui.c80
-rw-r--r--daemon/filecheck.c2
-rw-r--r--daemon/gdm-net.c5
-rw-r--r--daemon/gdm.c174
-rw-r--r--daemon/gdm.h12
-rw-r--r--daemon/misc.c3
-rw-r--r--daemon/server.c3
-rw-r--r--daemon/slave.c6
-rw-r--r--daemon/verify-crypt.c2
-rw-r--r--daemon/verify-pam.c3
-rw-r--r--daemon/verify-shadow.c2
-rw-r--r--daemon/xdmcp.c2
-rw-r--r--gui/Makefile.am33
-rw-r--r--gui/gdmXnestchooser.c3
-rw-r--r--gui/gdmchooser.c34
-rw-r--r--gui/gdmconfig.c3
-rw-r--r--gui/gdmflexiserver.c3
-rw-r--r--gui/gdmlanguages.c3
-rw-r--r--gui/gdmlogin.c53
-rw-r--r--gui/gdmphotosetup.c3
-rw-r--r--gui/gdmwm.c3
-rw-r--r--gui/misc.c3
-rw-r--r--utils/Makefile.am8
-rw-r--r--utils/gdmaskpass.c2
33 files changed, 301 insertions, 240 deletions
diff --git a/ChangeLog b/ChangeLog
index db23d120..60c54375 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Mon Nov 05 21:28:43 2001 George Lebl <jirka@5z.com>
+
+ * configure.in, **/Makefile.am, daemon/*.[ch], utils/*.[ch],
+ gui/*.[ch]: Begin GNOME 2.0 porting. Not complete yet,
+ daemon may 'compile', gui doesn't compile yet
+
Thu Nov 01 01:06:21 2001 George Lebl <jirka@5z.com>
* Release 2.2.5.1
diff --git a/Makefile.am b/Makefile.am
index 7a8afb6d..3aa381f9 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,4 +1,4 @@
-SUBDIRS = config macros pixmaps intl vicious-extensions \
+SUBDIRS = config pixmaps intl vicious-extensions \
daemon gui utils docs omf-install po
EXTRA_DIST = \
diff --git a/autogen.sh b/autogen.sh
index 3548dd6a..512c8ca3 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -20,4 +20,8 @@ fi
exit 1
}
-. $srcdir/macros/autogen.sh
+which gnome-autogen.sh || {
+ echo "You need to install gnome-common from the GNOME CVS"
+ exit 1
+}
+USE_GNOME2_MACROS=1 . gnome-autogen.sh
diff --git a/configure.in b/configure.in
index 8ca8ac21..7d34a5e1 100644
--- a/configure.in
+++ b/configure.in
@@ -7,11 +7,15 @@ dnl
AM_PROG_XML_I18N_TOOLS
AM_CONFIG_HEADER(config.h)
-AM_INIT_AUTOMAKE(gdm,2.2.5.1)
+AM_INIT_AUTOMAKE(gdm,2.3.90.0)
AM_MAINTAINER_MODE
-AM_ACLOCAL_INCLUDE(macros)
-GDK_PIXBUF_REQUIRED=0.7.0
+GDK_PIXBUF_REQUIRED=1.3.1
+GTK_REQUIRED=1.3.1
+LIBGLADE_REQUIRED=1.99.2
+LIBGNOME_REQUIRED=1.96.0
+LIBGNOMEUI_REQUIRED=1.96.0
+SCROLLKEEPER_REQUIRED=0.1.4
# vicious-extensions stuff
AC_CHECK_FUNCS([setenv unsetenv clearenv])
@@ -94,7 +98,7 @@ fi
dnl
dnl Standard stuff
dnl
-GNOME_INIT
+GNOME_COMMON_INIT
AC_ISC_POSIX
AC_PROG_CC
@@ -102,11 +106,27 @@ AC_STDC_HEADERS
dnl AC_ARG_PROGRAM
AM_PROG_LIBTOOL
-GNOME_X_CHECKS
+GNOME_PLATFORM_GNOME_2(yes)
+GNOME_COMPILE_WARNINGS(maximum)
-AM_PATH_LIBGLADE(,,gnome)
-if test "x$LIBGLADE_CFLAGS" = "x"; then
- AC_MSG_ERROR(Libglade is required for gdm)
+PKG_CHECK_MODULES(DAEMON, gdk-pixbuf-2.0 >= $GDK_PIXBUF_REQUIRED gtk+-2.0 >= $GTK_REQUIRED libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED libglade-2.0 >= $LIBGLADE_REQUIRED)
+AC_SUBST(DAEMON_CFLAGS)
+AC_SUBST(DAEMON_LIBS)
+
+PKG_CHECK_MODULES(GUI, gdk-pixbuf-2.0 >= $GDK_PIXBUF_REQUIRED gtk+-2.0 >= $GTK_REQUIRED libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED libglade-2.0 >= $LIBGLADE_REQUIRED)
+AC_SUBST(GUI_CFLAGS)
+AC_SUBST(GUI_LIBS)
+
+PKG_CHECK_MODULES(UTILS, gdk-pixbuf-2.0 >= $GDK_PIXBUF_REQUIRED gtk+-2.0 >= $GTK_REQUIRED libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED libglade-2.0 >= $LIBGLADE_REQUIRED)
+AC_SUBST(UTILS_CFLAGS)
+AC_SUBST(UTILS_LIBS)
+
+dnl
+dnl libglade conversion script
+dnl
+AC_PATH_PROG(LIBGLADE_CONVERT, libglade-convert)
+if test -z $LIBGLADE_CONVERT; then
+ AC_MSG_ERROR([libglade-convert (from libglade 2.0) is needed to build gdm.])
fi
dnl Allow users to run gdmconfig using the console helper PAM stuff.
@@ -123,7 +143,8 @@ AC_SUBST(LDFLAGS)
dnl ## internationalization support
ALL_LINGUAS="az ca cs da de el es et fi fr ga gl hu it ja ko lt lv ms nl nn no pl pt_BR ro ru sk sl sv ta tr uk zh_CN.GB2312 zh_TW"
dnl AM_GNOME_GETTEXT
-AM_GNU_GETTEXT
+dnl AM_GNU_GETTEXT
+AM_GLIB_GNU_GETTEXT
# TCP Wrappers for XDMCP access control
if test x$with_tcp_wrappers = xno ; then
@@ -274,7 +295,7 @@ if test x$with_xdmcp != xno ; then
AC_CHECK_LIB(Xdmcp, XdmcpFlush, [
AC_DEFINE(HAVE_LIBXDMCP)
XDMCP_LIBS="-lXdmcp"
- XDMCP_SUPPORT=yes],, $GTK_LIBS)
+ XDMCP_SUPPORT=yes],, $GUI_LIBS)
])
if test x$with_xdmcp = xyes -a x$XDMCP_SUPPORT = x ; then
@@ -303,7 +324,7 @@ if test x$with_xinerama != xno ; then
AC_CHECK_LIB(Xinerama, XineramaQueryScreens, [
AC_DEFINE(HAVE_LIBXINERAMA)
LIBS="$LIBS -lXinerama"
- XINERAMA_SUPPORT=yes],, $GTK_LIBS)
+ XINERAMA_SUPPORT=yes],, $GUI_LIBS)
])
if test x$with_xinerama = xyes -a x$XINERAMA_SUPPORT = x ; then
@@ -311,26 +332,6 @@ if test x$with_xinerama != xno ; then
fi
fi
-dnl
-dnl GdkPixBuf
-dnl
-AC_MSG_CHECKING(for GdkPixbuf library >= $GDK_PIXBUF_REQUIRED)
-PIXBUF_CFLAGS=`$GNOME_CONFIG --cflags gdk_pixbuf`
-PIXBUF_LIBS=`$GNOME_CONFIG --libs gdk_pixbuf`
-if test "x$PIXBUF_CFLAGS" != x ; then
- vers=`gdk-pixbuf-config --version | awk 'BEGIN { FS = "."; } { printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'`
- if test "$vers" -ge 0007000; then
- AC_MSG_RESULT(found)
- else
- AC_MSG_ERROR(You need at least GdkPixbuf version 0.7.0 for the panel)
- fi
-else
- AC_MSG_ERROR(Did not find GdkPixbuf installed)
-fi
-AC_SUBST(PIXBUF_CFLAGS)
-AC_SUBST(PIXBUF_LIBS)
-AC_SUBST(GDK_PIXBUF_REQUIRED)
-
#
# Configuration file foo, we need to get expanded versions of a bunch of things
# if you actually know how to code shell then fix this :-)
diff --git a/daemon/Makefile.am b/daemon/Makefile.am
index 534533c3..0dff2ded 100644
--- a/daemon/Makefile.am
+++ b/daemon/Makefile.am
@@ -8,11 +8,10 @@ DEFS = @DEFS@ -DGDM_CONFIG_FILE=\"@sysconfdir@/gdm/gdm.conf\"
INCLUDES = \
-I. \
-I.. \
- -I$(includedir) \
-I$(top_srcdir)/vicious-extensions \
-DGNOMELOCALEDIR=\""$(datadir)/locale"\" \
-DLOCALEDIR=\"$(datadir)/locale\" \
- $(GNOME_INCLUDEDIR)
+ $(DAEMON_CFLAGS)
bin_PROGRAMS = gdm
@@ -49,10 +48,7 @@ gdm_SOURCES = \
EXTRA_gdm_SOURCES = verify-pam.c verify-crypt.c verify-shadow.c
gdm_LDADD = \
- $(GNOME_LIBDIR) \
- $(GNOME_LIBS) \
- $(GNOMEUI_LIBS) \
- $(GTK_LIBS) \
+ $(DAEMON_LIBS) \
$(XDMCP_LIBS) \
-lXau \
-lX11 \
diff --git a/daemon/auth.c b/daemon/auth.c
index ed673ca2..c54d21c5 100644
--- a/daemon/auth.c
+++ b/daemon/auth.c
@@ -20,7 +20,9 @@
* support other XAuth types and possibly DECnet... */
#include <config.h>
-#include <gnome.h>
+#include <libgnome/libgnome.h>
+#include <sys/types.h>
+#include <unistd.h>
#include <sys/stat.h>
#include <netdb.h>
#include <netinet/in.h>
diff --git a/daemon/choose.c b/daemon/choose.c
index 8fc35b29..8d8ba7c7 100644
--- a/daemon/choose.c
+++ b/daemon/choose.c
@@ -19,7 +19,7 @@
/* This file contains the XDMCP chooser glue */
#include <config.h>
-#include <gnome.h>
+#include <libgnome/libgnome.h>
#include <stdio.h>
#include <stdlib.h>
#include <syslog.h>
diff --git a/daemon/cookie.c b/daemon/cookie.c
index 7a440a12..bf852ec2 100644
--- a/daemon/cookie.c
+++ b/daemon/cookie.c
@@ -32,7 +32,7 @@
#include <fcntl.h>
#include <sys/time.h>
#include <unistd.h>
-#include <gnome.h>
+#include <libgnome/libgnome.h>
#include "gdm.h"
#include "md5.h"
diff --git a/daemon/display.c b/daemon/display.c
index 9a39e3d9..e110c795 100644
--- a/daemon/display.c
+++ b/daemon/display.c
@@ -17,12 +17,13 @@
*/
#include <config.h>
-#include <gnome.h>
+#include <libgnome/libgnome.h>
#include <syslog.h>
#include <signal.h>
#include <sys/wait.h>
#include <X11/Xauth.h>
#include <sys/types.h>
+#include <unistd.h>
#include <fcntl.h>
#include "gdm.h"
diff --git a/daemon/errorgui.c b/daemon/errorgui.c
index 5603bae1..879bbbe1 100644
--- a/daemon/errorgui.c
+++ b/daemon/errorgui.c
@@ -20,7 +20,8 @@
* and the user's session scripts. */
#include <config.h>
-#include <gnome.h>
+#include <libgnome/libgnome.h>
+#include <libgnomeui/libgnomeui.h>
#include <gdk/gdkx.h>
#include <unistd.h>
#include <sys/types.h>
@@ -37,17 +38,16 @@ extern int stored_argc;
extern char *stored_path;
static gboolean
-gdm_event (GtkObject *object,
- guint signal_id,
- guint n_params,
- GtkArg *params,
- gpointer data)
+gdm_event (GSignalInvocationHint *ihint,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer data)
{
/* HAAAAAAAAAAAAAAAAACK */
/* Since the user has not logged in yet and may have left/right
* mouse buttons switched, we just translate every right mouse click
* to a left mouse click */
- GdkEvent *event = GTK_VALUE_POINTER(params[0]);
+ GdkEvent *event = g_value_get_pointer ((GValue *)param_values);
if ((event->type == GDK_BUTTON_PRESS ||
event->type == GDK_2BUTTON_PRESS ||
event->type == GDK_3BUTTON_PRESS ||
@@ -71,16 +71,20 @@ gdm_run_errorgui (const char *error,
guint sid;
char *argv[2] = { "gdm-error-box", NULL };
- /* Avoid creating ~gdm/.gnome stuff */
- gnome_do_not_create_directories = TRUE;
-
- gnome_init ("gdm-error-box", VERSION, 1, argv);
+ gnome_program_init ("gdm-error-box", VERSION,
+ LIBGNOMEUI_MODULE,
+ 1, argv,
+ /* Avoid creating ~gdm/.gnome stuff */
+ "create-directories", FALSE,
+ NULL);
- sid = gtk_signal_lookup ("event",
- GTK_TYPE_WIDGET);
- gtk_signal_add_emission_hook (sid,
- gdm_event,
- NULL);
+ sid = g_signal_lookup ("event",
+ GTK_TYPE_WIDGET);
+ g_signal_add_emission_hook (sid,
+ 0 /* detail */,
+ gdm_event,
+ NULL /* data */,
+ NULL /* destroy_notify */);
dialog = gnome_message_box_new (error,
dialog_type,
@@ -184,16 +188,20 @@ gdm_run_failsafe_question (const char *question,
char *ret;
char *argv[2] = { "gdm-failsafe-question", NULL };
- /* Avoid creating ~gdm/.gnome stuff */
- gnome_do_not_create_directories = TRUE;
-
- gnome_init ("gdm-failsafe-question", VERSION, 1, argv);
+ gnome_program_init ("gdm-failsafe-question", VERSION,
+ LIBGNOMEUI_MODULE,
+ 1, argv,
+ /* Avoid creating ~gdm/.gnome stuff */
+ "create-directories", FALSE,
+ NULL);
- sid = gtk_signal_lookup ("event",
- GTK_TYPE_WIDGET);
- gtk_signal_add_emission_hook (sid,
- gdm_event,
- NULL);
+ sid = g_signal_lookup ("event",
+ GTK_TYPE_WIDGET);
+ g_signal_add_emission_hook (sid,
+ 0 /* detail */,
+ gdm_event,
+ NULL /* data */,
+ NULL /* destroy_notify */);
dialog = gnome_dialog_new (question,
GNOME_STOCK_BUTTON_OK,
@@ -334,16 +342,20 @@ gdm_run_failsafe_yesno (const char *question,
guint sid;
char *argv[2] = { "gdm-failsafe-yesno", NULL };
- /* Avoid creating ~gdm/.gnome stuff */
- gnome_do_not_create_directories = TRUE;
-
- gnome_init ("gdm-failsafe-yesno", VERSION, 1, argv);
+ gnome_program_init ("gdm-failsafe-yesno", VERSION,
+ LIBGNOMEUI_MODULE,
+ 1, argv,
+ /* Avoid creating ~gdm/.gnome stuff */
+ "create-directories", FALSE,
+ NULL);
- sid = gtk_signal_lookup ("event",
- GTK_TYPE_WIDGET);
- gtk_signal_add_emission_hook (sid,
- gdm_event,
- NULL);
+ sid = g_signal_lookup ("event",
+ GTK_TYPE_WIDGET);
+ g_signal_add_emission_hook (sid,
+ 0 /* detail */,
+ gdm_event,
+ NULL /* data */,
+ NULL /* destroy_notify */);
dialog = gnome_message_box_new (question,
GNOME_MESSAGE_BOX_QUESTION,
diff --git a/daemon/filecheck.c b/daemon/filecheck.c
index 369104ad..68565577 100644
--- a/daemon/filecheck.c
+++ b/daemon/filecheck.c
@@ -17,7 +17,7 @@
*/
#include <config.h>
-#include <gnome.h>
+#include <libgnome/libgnome.h>
#include <syslog.h>
#include <sys/stat.h>
diff --git a/daemon/gdm-net.c b/daemon/gdm-net.c
index c5704288..798c4f22 100644
--- a/daemon/gdm-net.c
+++ b/daemon/gdm-net.c
@@ -17,7 +17,8 @@
*/
#include "config.h"
-#include <gnome.h>
+#include <libgnome/libgnome.h>
+#include <unistd.h>
#include <signal.h>
#include <sys/stat.h>
#include <sys/wait.h>
@@ -95,7 +96,7 @@ gdm_connection_handler (GIOChannel *source,
GdmConnection *conn = data;
gchar buf[PIPE_SIZE];
char *p;
- gint len;
+ gsize len;
if ( ! (cond & G_IO_IN))
return close_if_needed (conn, cond);
diff --git a/daemon/gdm.c b/daemon/gdm.c
index ab37f312..ce59478b 100644
--- a/daemon/gdm.c
+++ b/daemon/gdm.c
@@ -17,8 +17,10 @@
*/
#include <config.h>
-#include <gnome.h>
+#include <libgnome/libgnome.h>
#include <signal.h>
+#include <unistd.h>
+#include <sys/types.h>
#include <sys/stat.h>
#include <sys/wait.h>
#include <sys/socket.h>
@@ -1115,7 +1117,7 @@ mainloop_sig_callback (gint8 sig, gpointer data)
static void
signal_notify (int sig)
{
- g_signal_notify (sig);
+ gdm_signal_notify (sig);
}
/*
@@ -1223,7 +1225,7 @@ main (int argc, char *argv[])
/* XDM compliant error message */
- if (getuid() != 0) {
+ if (getuid () != 0) {
/* make sure the pid file doesn't get wiped */
GdmPidFile = NULL;
gdm_fail (_("Only root wants to run gdm\n"));
@@ -1232,8 +1234,13 @@ main (int argc, char *argv[])
/* Initialize runtime environment */
umask (022);
- gnome_do_not_create_directories = TRUE;
- gnomelib_init ("gdm", VERSION);
+
+ gnome_program_init ("gdm", VERSION,
+ NULL /* module_info */,
+ argc, argv,
+ "create-directories", FALSE,
+ NULL);
+
main_loop = g_main_new (FALSE);
openlog ("gdm", LOG_PID, LOG_DAEMON);
@@ -1274,11 +1281,11 @@ main (int argc, char *argv[])
gdm_daemonify();
/* Signal handling */
- g_signal_add (SIGCHLD, mainloop_sig_callback, NULL);
- g_signal_add (SIGTERM, mainloop_sig_callback, NULL);
- g_signal_add (SIGINT, mainloop_sig_callback, NULL);
- g_signal_add (SIGHUP, mainloop_sig_callback, NULL);
- g_signal_add (SIGUSR1, mainloop_sig_callback, NULL);
+ gdm_signal_add (SIGCHLD, mainloop_sig_callback, NULL);
+ gdm_signal_add (SIGTERM, mainloop_sig_callback, NULL);
+ gdm_signal_add (SIGINT, mainloop_sig_callback, NULL);
+ gdm_signal_add (SIGHUP, mainloop_sig_callback, NULL);
+ gdm_signal_add (SIGUSR1, mainloop_sig_callback, NULL);
term.sa_handler = signal_notify;
term.sa_flags = SA_RESTART;
@@ -1349,116 +1356,123 @@ main (int argc, char *argv[])
/* signal main loop support */
-typedef struct _GSignalData GSignalData;
-struct _GSignalData
+typedef struct _GDMSignalData GDMSignalData;
+struct _GDMSignalData
{
- guint8 index;
- guint8 shift;
- GSignalFunc callback;
+ gint8 signal;
+ guint8 index;
+ guint8 shift;
};
-static gboolean g_signal_prepare (gpointer source_data,
- GTimeVal *current_time,
- gint *timeout,
- gpointer user_data);
-static gboolean g_signal_check (gpointer source_data,
- GTimeVal *current_time,
- gpointer user_data);
-static gboolean g_signal_dispatch (gpointer source_data,
- GTimeVal *current_time,
- gpointer user_data);
+static gboolean gdm_signal_prepare (GSource *source,
+ gint *timeout);
+static gboolean gdm_signal_check (GSource *source);
+static gboolean gdm_signal_dispatch (GSource *source,
+ GSourceFunc callback,
+ gpointer user_data);
+static void gdm_signal_destroy (GSource *source);
static GSourceFuncs signal_funcs = {
- g_signal_prepare,
- g_signal_check,
- g_signal_dispatch,
- g_free
+ gdm_signal_prepare,
+ gdm_signal_check,
+ gdm_signal_dispatch,
+ gdm_signal_destroy
};
static guint32 signals_notified[8] = { 0, 0, 0, 0, 0, 0, 0, 0 };
static gboolean
-g_signal_prepare (gpointer source_data,
- GTimeVal *current_time,
- gint *timeout,
- gpointer user_data)
+gdm_signal_prepare (GSource *source,
+ gint *timeout)
{
- GSignalData *signal_data = source_data;
-
- return signals_notified[signal_data->index] & (1 << signal_data->shift);
+ GDMSignalData *signal_data = g_dataset_get_data (source, "SignalData");
+
+ return signals_notified[signal_data->index] & (1 << signal_data->shift);
}
static gboolean
-g_signal_check (gpointer source_data,
- GTimeVal *current_time,
- gpointer user_data)
+gdm_signal_check (GSource *source)
{
- GSignalData *signal_data = source_data;
-
- return signals_notified[signal_data->index] & (1 << signal_data->shift);
+ GDMSignalData *signal_data = g_dataset_get_data (source, "SignalData");
+
+ return signals_notified[signal_data->index] & (1 << signal_data->shift);
}
static gboolean
-g_signal_dispatch (gpointer source_data,
- GTimeVal *current_time,
- gpointer user_data)
+gdm_signal_dispatch (GSource *source,
+ GSourceFunc callback,
+ gpointer user_data)
{
- GSignalData *signal_data = source_data;
-
- signals_notified[signal_data->index] &= ~(1 << signal_data->shift);
-
- return signal_data->callback (-128 + signal_data->index * 32 + signal_data->shift, user_data);
+ GDMSignalData *signal_data = g_dataset_get_data (source, "SignalData");
+
+ signals_notified[signal_data->index] &= ~(1 << signal_data->shift);
+
+ return ((GDMSignalFunc)callback) (signal_data->signal, user_data);
+}
+
+static void
+gdm_signal_destroy (GSource *source)
+{
+ g_dataset_destroy (source);
}
guint
-g_signal_add (gint8 signal,
- GSignalFunc function,
- gpointer data)
+gdm_signal_add (gint8 signal,
+ GDMSignalFunc function,
+ gpointer data)
{
- return g_signal_add_full (G_PRIORITY_DEFAULT, signal, function, data, NULL);
+ return gdm_signal_add_full (G_PRIORITY_DEFAULT, signal, function, data, NULL);
}
guint
-g_signal_add_full (gint priority,
- gint8 signal,
- GSignalFunc function,
- gpointer data,
- GDestroyNotify destroy)
+gdm_signal_add_full (gint priority,
+ gint8 signal,
+ GDMSignalFunc function,
+ gpointer data,
+ GDestroyNotify destroy)
{
- GSignalData *signal_data;
- guint s = 128 + signal;
-
- g_return_val_if_fail (function != NULL, 0);
-
- signal_data = g_new (GSignalData, 1);
- signal_data->index = s / 32;
- signal_data->shift = s % 32;
- signal_data->callback = function;
-
- return g_source_add (priority, TRUE, &signal_funcs, signal_data, data, destroy);
+ GSource *source;
+ GDMSignalData *signal_data;
+ guint s = 128 + signal;
+
+ g_return_val_if_fail (function != NULL, 0);
+
+ signal_data = g_new (GDMSignalData, 1);
+ signal_data->signal = signal;
+ signal_data->index = s / 32;
+ signal_data->shift = s % 32;
+
+ source = g_source_new (&signal_funcs, sizeof (GSource));
+
+ g_dataset_set_data_full (source, "SignalData", signal_data, g_free);
+ g_source_set_priority (source, priority);
+ g_source_set_callback (source, (GSourceFunc)function, data, destroy);
+ g_source_set_can_recurse (source, TRUE);
+
+ return g_source_attach (source, NULL);
}
void
-g_signal_notify (gint8 signal)
+gdm_signal_notify (gint8 signal)
{
- guint index, shift;
- guint s = 128 + signal;
-
- index = s / 32;
- shift = s % 32;
-
- signals_notified[index] |= 1 << shift;
+ guint index, shift;
+ guint s = 128 + signal;
+
+ index = s / 32;
+ shift = s % 32;
+
+ signals_notified[index] |= 1 << shift;
}
void
gdm_run (void)
{
- g_main_run (main_loop);
+ g_main_run (main_loop);
}
void
gdm_quit (void)
{
- g_main_quit (main_loop);
+ g_main_quit (main_loop);
}
static void
diff --git a/daemon/gdm.h b/daemon/gdm.h
index 0d8176dc..9221935a 100644
--- a/daemon/gdm.h
+++ b/daemon/gdm.h
@@ -371,17 +371,17 @@ enum {
GDM_XDMCP_LAST_OPCODE /*just a marker, not an opcode */
};
-typedef gboolean (*GSignalFunc) (gint8 signal,
+typedef gboolean (*GDMSignalFunc) (gint8 signal,
gpointer data);
-guint g_signal_add (gint8 signal,
- GSignalFunc function,
+guint gdm_signal_add (gint8 signal,
+ GDMSignalFunc function,
gpointer data);
-guint g_signal_add_full (gint priority,
+guint gdm_signal_add_full (gint priority,
gint8 signal,
- GSignalFunc function,
+ GDMSignalFunc function,
gpointer data,
GDestroyNotify destroy);
-void g_signal_notify (gint8 signal);
+void gdm_signal_notify (gint8 signal);
/* If id == NULL, then get the first X server */
GdmXServer * gdm_find_x_server (const char *id);
diff --git a/daemon/misc.c b/daemon/misc.c
index 996c2750..ffa40e56 100644
--- a/daemon/misc.c
+++ b/daemon/misc.c
@@ -17,8 +17,9 @@
*/
#include "config.h"
-#include <gnome.h>
+#include <libgnome/libgnome.h>
#include <syslog.h>
+#include <unistd.h>
#include <signal.h>
#include <sys/types.h>
#include <sys/stat.h>
diff --git a/daemon/server.c b/daemon/server.c
index 64c5b9c2..4a38e8f7 100644
--- a/daemon/server.c
+++ b/daemon/server.c
@@ -19,8 +19,9 @@
/* This file contains functions for controlling local X servers */
#include <config.h>
-#include <gnome.h>
+#include <libgnome/libgnome.h>
#include <stdio.h>
+#include <unistd.h>
#include <stdlib.h>
#include <fcntl.h>
#include <pwd.h>
diff --git a/daemon/slave.c b/daemon/slave.c
index a77a3363..ab94909f 100644
--- a/daemon/slave.c
+++ b/daemon/slave.c
@@ -20,10 +20,12 @@
* and the user's session scripts. */
#include <config.h>
-#include <gnome.h>
+#include <libgnome/libgnome.h>
+#include <libgnomeui/libgnomeui.h>
#include <gdk/gdkx.h>
#include <stdio.h>
#include <stdlib.h>
+#include <unistd.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
@@ -2045,7 +2047,7 @@ gdm_slave_session_start (void)
}
if (pwent->pw_dir == NULL ||
- ! g_file_test (pwent->pw_dir, G_FILE_TEST_ISDIR)) {
+ ! g_file_test (pwent->pw_dir, G_FILE_TEST_IS_DIR)) {
char *msg = g_strdup_printf (
_("Your home directory is listed as:\n'%s'\n"
"but it does not appear to exist.\n"
diff --git a/daemon/verify-crypt.c b/daemon/verify-crypt.c
index 430c8ff3..28171bcb 100644
--- a/daemon/verify-crypt.c
+++ b/daemon/verify-crypt.c
@@ -17,7 +17,7 @@
*/
#include <config.h>
-#include <gnome.h>
+#include <libgnome/libgnome.h>
#include <syslog.h>
#include <pwd.h>
diff --git a/daemon/verify-pam.c b/daemon/verify-pam.c
index d59e5c07..c166fa61 100644
--- a/daemon/verify-pam.c
+++ b/daemon/verify-pam.c
@@ -17,7 +17,8 @@
*/
#include <config.h>
-#include <gnome.h>
+#include <libgnome/libgnome.h>
+#include <libgnomeui/libgnomeui.h>
#include <sys/stat.h>
#include <syslog.h>
#include <security/pam_appl.h>
diff --git a/daemon/verify-shadow.c b/daemon/verify-shadow.c
index f0f6e10f..623d0bd1 100644
--- a/daemon/verify-shadow.c
+++ b/daemon/verify-shadow.c
@@ -17,7 +17,7 @@
*/
#include <config.h>
-#include <gnome.h>
+#include <libgnome/libgnome.h>
#include <syslog.h>
#include <pwd.h>
#include <shadow.h>
diff --git a/daemon/xdmcp.c b/daemon/xdmcp.c
index d6ee2427..ddc81c5b 100644
--- a/daemon/xdmcp.c
+++ b/daemon/xdmcp.c
@@ -55,7 +55,7 @@
*/
#include <config.h>
-#include <gnome.h>
+#include <libgnome/libgnome.h>
#ifdef HAVE_LIBXDMCP
#include <stdio.h>
diff --git a/gui/Makefile.am b/gui/Makefile.am
index 847b3f03..25fa8a69 100644
--- a/gui/Makefile.am
+++ b/gui/Makefile.am
@@ -12,12 +12,8 @@ INCLUDES = \
-I.. \
-I$(top_srcdir)/daemon \
-I$(top_srcdir)/vicious-extensions \
- -I$(includedir) \
-DGNOMELOCALEDIR=\""$(datadir)/locale"\" \
- $(LIBGLADE_CFLAGS) \
- $(PIXBUF_CFLAGS) \
- $(GNOME_CFLAGS) \
- $(GNOME_INCLUDEDIR)
+ $(GUI_CFLAGS)
bin_PROGRAMS = \
@GDMCHOOSER@ \
@@ -62,59 +58,44 @@ gdmconfig_SOURCES = \
misc.h
gdmchooser_LDADD = \
- $(GNOME_LIBDIR) \
- $(GNOME_LIBS) \
- $(GNOMEUI_LIBS) \
+ $(GUI_LIBS) \
$(XDMCP_LIBS) \
-lX11 \
$(INTLLIBS) \
- $(LIBGLADE_LIBS) \
-L$(top_builddir)/vicious-extensions \
-lvicious \
-lviciousui
gdmlogin_LDADD = \
- $(GNOME_LIBDIR) \
- $(GNOME_LIBS) \
- $(GNOMEUI_LIBS) \
+ $(GUI_LIBS) \
$(INTLLIBS) \
- $(PIXBUF_LIBS) \
-L$(top_builddir)/vicious-extensions \
-lvicious \
-lviciousui
gdmconfig_LDADD = \
- $(GNOME_LIBDIR) \
- $(GNOME_LIBS) \
- $(GNOMEUI_LIBS) \
+ $(GUI_LIBS) \
$(INTLLIBS) \
- $(LIBGLADE_LIBS) \
-L$(top_builddir)/vicious-extensions \
-lvicious \
-lviciousui
gdmphotosetup_LDADD = \
- $(GNOME_LIBDIR) \
- $(GNOME_LIBS) \
- $(GNOMEUI_LIBS) \
+ $(GUI_LIBS) \
$(INTLLIBS) \
-L$(top_builddir)/vicious-extensions \
-lvicious \
-lviciousui
gdmXnestchooser_LDADD = \
- $(GNOME_LIBDIR) \
- $(GNOME_LIBS) \
- $(GNOMEUI_LIBS) \
+ $(GUI_LIBS) \
$(INTLLIBS) \
-L$(top_builddir)/vicious-extensions \
-lvicious \
-lviciousui
gdmflexiserver_LDADD = \
- $(GNOME_LIBDIR) \
- $(GNOME_LIBS) \
- $(GNOMEUI_LIBS) \
+ $(GUI_LIBS) \
$(INTLLIBS) \
-L$(top_builddir)/vicious-extensions \
-lvicious \
diff --git a/gui/gdmXnestchooser.c b/gui/gdmXnestchooser.c
index e71e1479..224c508c 100644
--- a/gui/gdmXnestchooser.c
+++ b/gui/gdmXnestchooser.c
@@ -19,7 +19,8 @@
*/
#include "config.h"
-#include <gnome.h>
+#include <libgnome/libgnome.h>
+#include <libgnomeui/libgnomeui.h>
#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>
diff --git a/gui/gdmchooser.c b/gui/gdmchooser.c
index 82e70673..ae840eee 100644
--- a/gui/gdmchooser.c
+++ b/gui/gdmchooser.c
@@ -21,7 +21,8 @@
* selected hostname will be printed on stdout. */
#include <config.h>
-#include <gnome.h>
+#include <libgnome/libgnome.h>
+#include <libgnomeui/libgnomeui.h>
#include <glade/glade.h>
#include <stdio.h>
#include <stdlib.h>
@@ -1002,6 +1003,27 @@ set_background (void)
}
}
+static gboolean
+gdm_event (GSignalInvocationHint *ihint,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer data)
+{
+ /* HAAAAAAAAAAAAAAAAACK */
+ /* Since the user has not logged in yet and may have left/right
+ * mouse buttons switched, we just translate every right mouse click
+ * to a left mouse click */
+ GdkEvent *event = g_value_get_pointer ((GValue *)param_values);
+ if ((event->type == GDK_BUTTON_PRESS ||
+ event->type == GDK_2BUTTON_PRESS ||
+ event->type == GDK_3BUTTON_PRESS ||
+ event->type == GDK_BUTTON_RELEASE)
+ && event->button.button == 3)
+ event->button.button = 1;
+
+ return TRUE;
+}
+
int
main (int argc, char *argv[])
{
@@ -1083,6 +1105,16 @@ main (int argc, char *argv[])
gdm_chooser_xdmcp_init (hosts);
poptFreeContext (ctx);
+ if (g_getenv ("RUNNING_UNDER_GDM") != NULL) {
+ guint sid = g_signal_lookup ("event",
+ GTK_TYPE_WIDGET);
+ g_signal_add_emission_hook (sid,
+ 0 /* detail */,
+ gdm_event,
+ NULL /* data */,
+ NULL /* destroy_notify */);
+ }
+
gtk_widget_show_now (chooser);
/* can it ever happen that it'd be NULL here ??? */
diff --git a/gui/gdmconfig.c b/gui/gdmconfig.c
index bb392b46..5158e24c 100644
--- a/gui/gdmconfig.c
+++ b/gui/gdmconfig.c
@@ -21,7 +21,8 @@
*/
#include <config.h>
-#include <gnome.h>
+#include <libgnome/libgnome.h>
+#include <libgnomeui/libgnomeui.h>
#include <errno.h>
#include <dirent.h>
diff --git a/gui/gdmflexiserver.c b/gui/gdmflexiserver.c
index c1a81eb8..280754e2 100644
--- a/gui/gdmflexiserver.c
+++ b/gui/gdmflexiserver.c
@@ -19,7 +19,8 @@
*/
#include "config.h"
-#include <gnome.h>
+#include <libgnome/libgnome.h>
+#include <libgnomeui/libgnomeui.h>
#include <gdk/gdkx.h>
#include <X11/Xauth.h>
diff --git a/gui/gdmlanguages.c b/gui/gdmlanguages.c
index cf034c5c..42e782b1 100644
--- a/gui/gdmlanguages.c
+++ b/gui/gdmlanguages.c
@@ -19,7 +19,8 @@
*/
#include "config.h"
-#include <gnome.h>
+#include <libgnome/libgnome.h>
+#include <libgnomeui/libgnomeui.h>
#include <string.h>
#include "gdmlanguages.h"
diff --git a/gui/gdmlogin.c b/gui/gdmlogin.c
index 58c4763b..5f79bcde 100644
--- a/gui/gdmlogin.c
+++ b/gui/gdmlogin.c
@@ -17,8 +17,8 @@
*/
#include <config.h>
-#include <gnome.h>
-#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <libgnome/libgnome.h>
+#include <libgnomeui/libgnomeui.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
@@ -225,17 +225,16 @@ gdm_timer_up_delay (GtkObject *object,
}
static gboolean
-gdm_event (GtkObject *object,
- guint signal_id,
- guint n_params,
- GtkArg *params,
- gpointer data)
+gdm_event (GSignalInvocationHint *ihint,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer data)
{
/* HAAAAAAAAAAAAAAAAACK */
/* Since the user has not logged in yet and may have left/right
* mouse buttons switched, we just translate every right mouse click
* to a left mouse click */
- GdkEvent *event = GTK_VALUE_POINTER(params[0]);
+ GdkEvent *event = g_value_get_pointer ((GValue *)param_values);
if ((event->type == GDK_BUTTON_PRESS ||
event->type == GDK_2BUTTON_PRESS ||
event->type == GDK_3BUTTON_PRESS ||
@@ -3783,25 +3782,31 @@ main (int argc, char *argv[])
/* if in timed mode, delay timeout on keyboard or menu
* activity */
if ( ! ve_string_empty (GdmTimedLogin)) {
- guint sid = gtk_signal_lookup ("activate",
- GTK_TYPE_MENU_ITEM);
- gtk_signal_add_emission_hook (sid,
- gdm_timer_up_delay,
- NULL);
-
- sid = gtk_signal_lookup ("key_press_event",
- GTK_TYPE_ENTRY);
- gtk_signal_add_emission_hook (sid,
- gdm_timer_up_delay,
- NULL);
+ guint sid = g_signal_lookup ("activate",
+ GTK_TYPE_MENU_ITEM);
+ g_signal_add_emission_hook (sid,
+ 0 /* detail */,
+ gdm_timer_up_delay,
+ NULL /* data */,
+ NULL /* destroy_notify */);
+
+ sid = g_signal_lookup ("key_press_event",
+ GTK_TYPE_ENTRY);
+ g_signal_add_emission_hook (sid,
+ 0 /* detail */,
+ gdm_timer_up_delay,
+ NULL /* data */,
+ NULL /* destroy_notify */);
}
if (g_getenv ("RUNNING_UNDER_GDM") != NULL) {
- guint sid = gtk_signal_lookup ("event",
- GTK_TYPE_WIDGET);
- gtk_signal_add_emission_hook (sid,
- gdm_event,
- NULL);
+ guint sid = g_signal_lookup ("event",
+ GTK_TYPE_WIDGET);
+ g_signal_add_emission_hook (sid,
+ 0 /* detail */,
+ gdm_event,
+ NULL /* data */,
+ NULL /* destroy_notify */);
}
gtk_widget_show_now (login);
diff --git a/gui/gdmphotosetup.c b/gui/gdmphotosetup.c
index ebb878b1..d67a3b22 100644
--- a/gui/gdmphotosetup.c
+++ b/gui/gdmphotosetup.c
@@ -19,7 +19,8 @@
*/
#include "config.h"
-#include <gnome.h>
+#include <libgnome/libgnome.h>
+#include <libgnomeui/libgnomeui.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
diff --git a/gui/gdmwm.c b/gui/gdmwm.c
index c5a3b072..18762eae 100644
--- a/gui/gdmwm.c
+++ b/gui/gdmwm.c
@@ -19,7 +19,8 @@
*/
#include "config.h"
-#include <gnome.h>
+#include <libgnome/libgnome.h>
+#include <libgnomeui/libgnomeui.h>
#include <gdk/gdkx.h>
#include <X11/X.h>
#include <X11/Xlib.h>
diff --git a/gui/misc.c b/gui/misc.c
index eb662237..01f78279 100644
--- a/gui/misc.c
+++ b/gui/misc.c
@@ -17,7 +17,8 @@
*/
#include <config.h>
-#include <gnome.h>
+#include <libgnome/libgnome.h>
+#include <libgnomeui/libgnomeui.h>
#include <glade/glade.h>
#include "misc.h"
diff --git a/utils/Makefile.am b/utils/Makefile.am
index 65524478..33ac3c09 100644
--- a/utils/Makefile.am
+++ b/utils/Makefile.am
@@ -14,10 +14,7 @@ INCLUDES = \
-I$(top_srcdir)/vicious-extensions \
-I$(includedir) \
-DGNOMELOCALEDIR=\""$(datadir)/locale"\" \
- @LIBGLADE_CFLAGS@ \
- @PIXBUF_CFLAGS@ \
- $(GNOME_CFLAGS) \
- $(GNOME_INCLUDEDIR)
+ $(UTILS_CFLAGS)
sbin_PROGRAMS = \
@GDMASKPASS@ \
@@ -38,15 +35,12 @@ gdmmktemp_SOURCES = \
gdmmktemp.c
gdmaskpass_LDADD = \
- $(GNOME_LIBDIR) \
$(INTLLIBS) \
-lpam \
-lpam_misc
gdmopen_LDADD = \
- $(GNOME_LIBDIR) \
$(INTLLIBS)
gdmmktemp_LDADD = \
- $(GNOME_LIBDIR) \
$(INTLLIBS)
diff --git a/utils/gdmaskpass.c b/utils/gdmaskpass.c
index 8c083a68..09f0eb0e 100644
--- a/utils/gdmaskpass.c
+++ b/utils/gdmaskpass.c
@@ -1,7 +1,7 @@
/* Simple pam thingie to ask the root password, for use in XKeepsCrashing
* script. */
#include "config.h"
-#include <gnome.h>
+#include <libgnome/libgnome.h>
#include <stdio.h>
#include <locale.h>
#include <unistd.h>