[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

xorg-server: Changes to 'debian-unstable'



 Xi/exevents.c                                                           |   13 
 Xi/setbmap.c                                                            |    2 
 Xi/setmmap.c                                                            |    2 
 composite/compext.c                                                     |    6 
 config/dbus-core.c                                                      |    3 
 config/dbus.c                                                           |   18 -
 config/hal.c                                                            |    3 
 configure                                                               |   94 ++++-
 configure.ac                                                            |    4 
 debian/changelog                                                        |   10 
 debian/patches/42_fix_RemoveGeneralSocket_crash_from_dbus.diff          |   31 -
 debian/patches/44_XKB_mapping_changes_for_all_core-sending_devices.diff |  159 ---------
 debian/patches/series                                                   |    2 
 dix/devices.c                                                           |   25 -
 dix/events.c                                                            |   24 -
 hw/xfree86/common/xf86Events.c                                          |    2 
 hw/xfree86/common/xf86Xinput.c                                          |    5 
 hw/xfree86/dixmods/extmod/Makefile.am                                   |   14 
 hw/xfree86/dixmods/extmod/Makefile.in                                   |   16 -
 hw/xfree86/os-support/shared/sigio.c                                    |    6 
 include/exevents.h                                                      |    3 
 include/xkbsrv.h                                                        |   30 +
 xkb/xkbAccessX.c                                                        |   23 +
 xkb/xkbActions.c                                                        |  160 ++++------
 xkb/xkbEvents.c                                                         |   39 +-
 xkb/xkbPrKeyEv.c                                                        |  110 +++++-
 26 files changed, 398 insertions(+), 406 deletions(-)

New commits:
commit ea028948fc902fb97425350cc31f62658d6058c0
Author: David Nusinow <dnusinow@debian.org>
Date:   Mon Nov 5 22:47:00 2007 -0500

    autoreconf

diff --git a/configure b/configure
index 49d3247..92882ef 100755
--- a/configure
+++ b/configure
@@ -1157,6 +1157,10 @@ XQUARTZ_TRUE
 XQUARTZ_FALSE
 DGA_TRUE
 DGA_FALSE
+XF86MISC_TRUE
+XF86MISC_FALSE
+XF86VIDMODE_TRUE
+XF86VIDMODE_FALSE
 MFB_TRUE
 MFB_FALSE
 CFB_TRUE
@@ -5272,7 +5276,7 @@ ia64-*-hpux*)
   ;;
 *-*-irix6*)
   # Find out which ABI we are using.
-  echo '#line 5275 "configure"' > conftest.$ac_ext
+  echo '#line 5279 "configure"' > conftest.$ac_ext
   if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
@@ -8304,11 +8308,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:8307: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:8311: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:8311: \$? = $ac_status" >&5
+   echo "$as_me:8315: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -8594,11 +8598,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:8597: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:8601: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:8601: \$? = $ac_status" >&5
+   echo "$as_me:8605: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -8698,11 +8702,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:8701: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:8705: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:8705: \$? = $ac_status" >&5
+   echo "$as_me:8709: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -11060,7 +11064,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<EOF
-#line 11063 "configure"
+#line 11067 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -11160,7 +11164,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<EOF
-#line 11163 "configure"
+#line 11167 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -13580,11 +13584,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:13583: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:13587: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:13587: \$? = $ac_status" >&5
+   echo "$as_me:13591: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -13684,11 +13688,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:13687: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:13691: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:13691: \$? = $ac_status" >&5
+   echo "$as_me:13695: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -15261,11 +15265,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:15264: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:15268: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:15268: \$? = $ac_status" >&5
+   echo "$as_me:15272: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -15365,11 +15369,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:15368: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:15372: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:15372: \$? = $ac_status" >&5
+   echo "$as_me:15376: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -17565,11 +17569,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:17568: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:17572: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:17572: \$? = $ac_status" >&5
+   echo "$as_me:17576: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -17855,11 +17859,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:17858: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:17862: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:17862: \$? = $ac_status" >&5
+   echo "$as_me:17866: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -17959,11 +17963,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:17962: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:17966: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:17966: \$? = $ac_status" >&5
+   echo "$as_me:17970: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -34110,6 +34114,22 @@ else
   DGA_FALSE=
 fi
 
+ if test "x$XF86MISC" = xyes; then
+  XF86MISC_TRUE=
+  XF86MISC_FALSE='#'
+else
+  XF86MISC_TRUE='#'
+  XF86MISC_FALSE=
+fi
+
+ if test "x$XF86VIDMODE" = xyes; then
+  XF86VIDMODE_TRUE=
+  XF86VIDMODE_FALSE='#'
+else
+  XF86VIDMODE_TRUE='#'
+  XF86VIDMODE_FALSE=
+fi
+
 
 test "x$MFB" = xauto && MFB="$XORG"
 test "x$CFB" = xauto && CFB="$XORG"
@@ -37486,6 +37506,20 @@ echo "$as_me: error: conditional \"DGA\" was never defined.
 Usually this means the macro was only invoked conditionally." >&2;}
    { (exit 1); exit 1; }; }
 fi
+if test -z "${XF86MISC_TRUE}" && test -z "${XF86MISC_FALSE}"; then
+  { { echo "$as_me:$LINENO: error: conditional \"XF86MISC\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"XF86MISC\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+if test -z "${XF86VIDMODE_TRUE}" && test -z "${XF86VIDMODE_FALSE}"; then
+  { { echo "$as_me:$LINENO: error: conditional \"XF86VIDMODE\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"XF86VIDMODE\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
 if test -z "${MFB_TRUE}" && test -z "${MFB_FALSE}"; then
   { { echo "$as_me:$LINENO: error: conditional \"MFB\" was never defined.
 Usually this means the macro was only invoked conditionally." >&5
@@ -38979,6 +39013,10 @@ _ACEOF
 ac_delim='%!_!# '
 for ac_last_try in false false false false false :; do
   cat >conf$$subs.sed <<_ACEOF
+XF86MISC_TRUE!$XF86MISC_TRUE$ac_delim
+XF86MISC_FALSE!$XF86MISC_FALSE$ac_delim
+XF86VIDMODE_TRUE!$XF86VIDMODE_TRUE$ac_delim
+XF86VIDMODE_FALSE!$XF86VIDMODE_FALSE$ac_delim
 MFB_TRUE!$MFB_TRUE$ac_delim
 MFB_FALSE!$MFB_FALSE$ac_delim
 CFB_TRUE!$CFB_TRUE$ac_delim
@@ -39072,10 +39110,6 @@ XORGCONFIG_DEP_CFLAGS!$XORGCONFIG_DEP_CFLAGS$ac_delim
 XORGCONFIG_DEP_LIBS!$XORGCONFIG_DEP_LIBS$ac_delim
 XORGCFG_DEP_CFLAGS!$XORGCFG_DEP_CFLAGS$ac_delim
 XORGCFG_DEP_LIBS!$XORGCFG_DEP_LIBS$ac_delim
-APPDEFAULTDIR!$APPDEFAULTDIR$ac_delim
-BUILD_XORGCFG_TRUE!$BUILD_XORGCFG_TRUE$ac_delim
-BUILD_XORGCFG_FALSE!$BUILD_XORGCFG_FALSE$ac_delim
-USE_CURSES_TRUE!$USE_CURSES_TRUE$ac_delim
 _ACEOF
 
   if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
@@ -39117,6 +39151,10 @@ _ACEOF
 ac_delim='%!_!# '
 for ac_last_try in false false false false false :; do
   cat >conf$$subs.sed <<_ACEOF
+APPDEFAULTDIR!$APPDEFAULTDIR$ac_delim
+BUILD_XORGCFG_TRUE!$BUILD_XORGCFG_TRUE$ac_delim
+BUILD_XORGCFG_FALSE!$BUILD_XORGCFG_FALSE$ac_delim
+USE_CURSES_TRUE!$USE_CURSES_TRUE$ac_delim
 USE_CURSES_FALSE!$USE_CURSES_FALSE$ac_delim
 BUILD_KBD_MODE_TRUE!$BUILD_KBD_MODE_TRUE$ac_delim
 BUILD_KBD_MODE_FALSE!$BUILD_KBD_MODE_FALSE$ac_delim
@@ -39146,7 +39184,7 @@ LIBOBJS!$LIBOBJS$ac_delim
 LTLIBOBJS!$LTLIBOBJS$ac_delim
 _ACEOF
 
-  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 27; then
+  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 31; then
     break
   elif $ac_last_try; then
     { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
diff --git a/hw/xfree86/dixmods/extmod/Makefile.in b/hw/xfree86/dixmods/extmod/Makefile.in
index 7415d9e..ea95db1 100644
--- a/hw/xfree86/dixmods/extmod/Makefile.in
+++ b/hw/xfree86/dixmods/extmod/Makefile.in
@@ -65,9 +65,11 @@ am__libextmod_la_SOURCES_DIST = modinit.c modinit.h xf86dga.c \
 	xf86dga2.c dgaproc.h xf86dgaext.h xf86misc.c xf86miscproc.h \
 	xf86vmode.c vidmodeproc.h xvmod.c xvmodproc.h
 @DGA_TRUE@am__objects_1 = xf86dga.lo xf86dga2.lo
-@XV_TRUE@am__objects_2 = xvmod.lo
-am_libextmod_la_OBJECTS = modinit.lo $(am__objects_1) xf86misc.lo \
-	xf86vmode.lo $(am__objects_2)
+@XF86MISC_TRUE@am__objects_2 = xf86misc.lo
+@XF86VIDMODE_TRUE@am__objects_3 = xf86vmode.lo
+@XV_TRUE@am__objects_4 = xvmod.lo
+am_libextmod_la_OBJECTS = modinit.lo $(am__objects_1) $(am__objects_2) \
+	$(am__objects_3) $(am__objects_4)
 libextmod_la_OBJECTS = $(am_libextmod_la_OBJECTS)
 libextmod_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
@@ -383,6 +385,8 @@ extsmoduledir = $(moduledir)/extensions
 extsmodule_LTLIBRARIES = libextmod.la
 @DGA_TRUE@DGA_SRCS = xf86dga.c xf86dga2.c dgaproc.h xf86dgaext.h
 @XV_TRUE@XV_SRCS = xvmod.c xvmodproc.h
+@XF86MISC_TRUE@XF86MISC_SRCS = xf86misc.c xf86miscproc.h
+@XF86VIDMODE_TRUE@XF86VMODE_SRCS = xf86vmode.c vidmodeproc.h
 AM_CFLAGS = @DIX_CFLAGS@ @XORG_CFLAGS@
 INCLUDES = @XORG_INCS@ \
            -I$(top_srcdir)/afb \
@@ -396,10 +400,8 @@ libextmod_la_LDFLAGS = -avoid-version
 libextmod_la_SOURCES = modinit.c \
                        modinit.h \
                        $(DGA_SRCS) \
-                       xf86misc.c \
-                       xf86miscproc.h \
-                       xf86vmode.c \
-                       vidmodeproc.h \
+                       $(XF86MISC_SRCS) \
+                       $(XF86VMODE_SRCS) \
                        $(XV_SRCS)
 
 libextmod_la_LIBADD = $(top_builddir)/Xext/libXextmodule.la

commit 675ce6a256bc2ff3d1cb9ce749f3d1ec0c084b23
Author: David Nusinow <dnusinow@debian.org>
Date:   Mon Nov 5 22:43:14 2007 -0500

    * Remove patches merged in this snapshot
      + 42_fix_RemoveGeneralSocket_crash_from_dbus.diff
      + 44_XKB_mapping_changes_for_all_core-sending_devices.diff

diff --git a/debian/changelog b/debian/changelog
index 24e53c0..f896305 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -29,8 +29,11 @@ xorg-server (2:1.4.1~git20071105-1) unstable; urgency=low
 
   [ David Nusinow ]
   * New upstream stable snapshot
+  * Remove patches merged in this snapshot
+    + 42_fix_RemoveGeneralSocket_crash_from_dbus.diff
+    + 44_XKB_mapping_changes_for_all_core-sending_devices.diff
 
- -- David Nusinow <dnusinow@debian.org>  Mon, 05 Nov 2007 22:27:14 -0500
+ -- David Nusinow <dnusinow@debian.org>  Mon, 05 Nov 2007 22:42:36 -0500
 
 xorg-server (2:1.4-3) unstable; urgency=low
 
diff --git a/debian/patches/42_fix_RemoveGeneralSocket_crash_from_dbus.diff b/debian/patches/42_fix_RemoveGeneralSocket_crash_from_dbus.diff
deleted file mode 100644
index eda334e..0000000
--- a/debian/patches/42_fix_RemoveGeneralSocket_crash_from_dbus.diff
+++ /dev/null
@@ -1,31 +0,0 @@
-From: Julien Cristau <jcristau@debian.org>
-Date: Thu, 6 Sep 2007 22:20:24 +0200
-Subject: [PATCH] config/dbus: don't call RemoveGeneralSocket if bus_info.fd == -1
-
-Fixes a crash reported at:
-http://bugs.freedesktop.org/show_bug.cgi?id=12291
-http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=440547
----
- config/dbus-core.c |    6 ++++--
- 1 files changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/config/dbus-core.c b/config/dbus-core.c
-index 2888159..d220cea 100644
---- a/config/dbus-core.c
-+++ b/config/dbus-core.c
-@@ -87,8 +87,10 @@ teardown(void)
-         dbus_connection_unref(bus_info.connection);
- 
-     RemoveBlockAndWakeupHandlers(block_handler, wakeup_handler, &bus_info);
--    RemoveGeneralSocket(bus_info.fd);
--    bus_info.fd = -1;
-+    if (bus_info.fd >= 0) {
-+        RemoveGeneralSocket(bus_info.fd);
-+        bus_info.fd = -1;
-+    }
-     bus_info.connection = NULL;
- 
-     for (hook = bus_info.hooks; hook; hook = hook->next) {
--- 
-1.5.3.1
-
diff --git a/debian/patches/44_XKB_mapping_changes_for_all_core-sending_devices.diff b/debian/patches/44_XKB_mapping_changes_for_all_core-sending_devices.diff
deleted file mode 100644
index 49a56a4..0000000
--- a/debian/patches/44_XKB_mapping_changes_for_all_core-sending_devices.diff
+++ /dev/null
@@ -1,159 +0,0 @@
-From: Daniel Stone <daniel@fooishbar.org>
-Date: Sun, 23 Sep 2007 14:17:03 +0000 (+0300)
-Subject: Input: Generate XKB mapping changes for all core-sending devices (bug #12523)
-X-Git-Url: http://gitweb.freedesktop.org/?p=xorg/xserver.git;a=commitdiff;h=27ad5d74c20f01516a1bff73be283f8982fcf0fe
-
-Input: Generate XKB mapping changes for all core-sending devices (bug #12523)
-
-When we change the mapping on a core device, make sure we propagate this
-through to XKB for all extended devices as well.
-
-http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=443044
----
-
-Index: xorg-server/Xi/exevents.c
-===================================================================
---- xorg-server.orig/Xi/exevents.c	2007-10-21 11:32:46.000000000 +0200
-+++ xorg-server/Xi/exevents.c	2007-10-24 02:15:17.000000000 +0200
-@@ -73,6 +73,10 @@
- #include "dixgrabs.h"	/* CreateGrab() */
- #include "scrnintstr.h"
- 
-+#ifdef XKB
-+#include "xkbsrv.h"
-+#endif
-+
- #define WID(w) ((w) ? ((w)->drawable.id) : 0)
- #define AllModifiersMask ( \
- 	ShiftMask | LockMask | ControlMask | Mod1Mask | Mod2Mask | \
-@@ -942,7 +946,7 @@
- }
- 
- void
--SendDeviceMappingNotify(CARD8 request,
-+SendDeviceMappingNotify(ClientPtr client, CARD8 request,
- 			KeyCode firstKeyCode, CARD8 count, DeviceIntPtr dev)
- {
-     xEvent event;
-@@ -957,6 +961,11 @@
- 	ev->count = count;
-     }
- 
-+#ifdef XKB
-+    if (request == MappingKeyboard || request == MappingModifier)
-+        XkbApplyMappingChange(dev, request, firstKeyCode, count, client);
-+#endif
-+
-     SendEventToAllWindows(dev, DeviceMappingNotifyMask, (xEvent *) ev, 1);
- }
- 
-@@ -992,7 +1001,7 @@
-     keysyms.map = map;
-     if (!SetKeySymsMap(&k->curKeySyms, &keysyms))
- 	return BadAlloc;
--    SendDeviceMappingNotify(MappingKeyboard, firstKeyCode, keyCodes, dev);
-+    SendDeviceMappingNotify(client, MappingKeyboard, firstKeyCode, keyCodes, dev);
-     return client->noClientException;
- }
- 
-Index: xorg-server/Xi/setbmap.c
-===================================================================
---- xorg-server.orig/Xi/setbmap.c	2007-10-21 11:32:46.000000000 +0200
-+++ xorg-server/Xi/setbmap.c	2007-10-24 02:15:17.000000000 +0200
-@@ -134,7 +134,7 @@
-     }
- 
-     if (ret != MappingBusy)
--	SendDeviceMappingNotify(MappingPointer, 0, 0, dev);
-+	SendDeviceMappingNotify(client, MappingPointer, 0, 0, dev);
-     return Success;
- }
- 
-Index: xorg-server/Xi/setmmap.c
-===================================================================
---- xorg-server.orig/Xi/setmmap.c	2007-10-21 11:32:46.000000000 +0200
-+++ xorg-server/Xi/setmmap.c	2007-10-24 02:15:17.000000000 +0200
-@@ -122,7 +122,7 @@
-     if (ret == MappingSuccess || ret == MappingBusy || ret == MappingFailed) {
- 	rep.success = ret;
- 	if (ret == MappingSuccess)
--	    SendDeviceMappingNotify(MappingModifier, 0, 0, dev);
-+	    SendDeviceMappingNotify(client, MappingModifier, 0, 0, dev);
- 	WriteReplyToClient(client, sizeof(xSetDeviceModifierMappingReply),
- 			   &rep);
-     } else {
-Index: xorg-server/dix/devices.c
-===================================================================
---- xorg-server.orig/dix/devices.c	2007-10-24 02:15:16.000000000 +0200
-+++ xorg-server/dix/devices.c	2007-10-24 02:15:17.000000000 +0200
-@@ -1218,10 +1218,9 @@
-     }
- #ifdef XKB
-     if (!noXkbExtension &&
--	((request == MappingKeyboard) || (request == MappingModifier))) {
--	XkbApplyMappingChange(inputInfo.keyboard,request,firstKeyCode,count,
--									client);
--    }
-+	((request == MappingKeyboard) || (request == MappingModifier)))
-+        XkbApplyMappingChange(inputInfo.keyboard, request, firstKeyCode, count,
-+                              client);
- #endif
- 
-    /* 0 is the server client */
-@@ -1369,6 +1368,7 @@
- ProcSetModifierMapping(ClientPtr client)
- {
-     xSetModifierMappingReply rep;
-+    DeviceIntPtr dev;
-     REQUEST(xSetModifierMappingReq);
-     
-     REQUEST_AT_LEAST_SIZE(xSetModifierMappingReq);
-@@ -1384,8 +1384,10 @@
-     rep.success = DoSetModifierMapping(client, (KeyCode *)&stuff[1],
-                                        stuff->numKeyPerModifier);
- 
--    /* FIXME: Send mapping notifies for all the extended devices as well. */
-     SendMappingNotify(MappingModifier, 0, 0, client);
-+    for (dev = inputInfo.devices; dev; dev = dev->next)
-+        if (dev->key && dev->coreEvents)
-+            SendDeviceMappingNotify(client, MappingModifier, 0, 0, dev);
-     WriteReplyToClient(client, sizeof(xSetModifierMappingReply), &rep);
-     return client->noClientException;
- }
-@@ -1448,16 +1450,19 @@
-     keysyms.maxKeyCode = stuff->firstKeyCode + stuff->keyCodes - 1;
-     keysyms.mapWidth = stuff->keySymsPerKeyCode;
-     keysyms.map = (KeySym *)&stuff[1];
--    for (pDev = inputInfo.devices; pDev; pDev = pDev->next) {
--        if ((pDev->coreEvents || pDev == inputInfo.keyboard) && pDev->key) {
-+    for (pDev = inputInfo.devices; pDev; pDev = pDev->next)
-+        if ((pDev->coreEvents || pDev == inputInfo.keyboard) && pDev->key)
-             if (!SetKeySymsMap(&pDev->key->curKeySyms, &keysyms))
-                 return BadAlloc;
--        }
--    }
- 
--    /* FIXME: Send mapping notifies for all the extended devices as well. */
-     SendMappingNotify(MappingKeyboard, stuff->firstKeyCode, stuff->keyCodes,
-                       client);
-+    for (pDev = inputInfo.devices; pDev; pDev = pDev->next)
-+        if (pDev->key && pDev->coreEvents)
-+            SendDeviceMappingNotify(client, MappingKeyboard,
-+                                    stuff->firstKeyCode, stuff->keyCodes,
-+                                    pDev);
-+
-     return client->noClientException;
- }
- 
-Index: xorg-server/include/exevents.h
-===================================================================
---- xorg-server.orig/include/exevents.h	2007-10-21 11:32:46.000000000 +0200
-+++ xorg-server/include/exevents.h	2007-10-24 02:15:17.000000000 +0200
-@@ -129,6 +129,7 @@
- 	KeyClassPtr *          /* k */);
- 
- extern void SendDeviceMappingNotify(
-+        ClientPtr              /* client, */,
- 	CARD8                  /* request, */,
- 	KeyCode                /* firstKeyCode */,
- 	CARD8                  /* count */,
diff --git a/debian/patches/series b/debian/patches/series
index 42c53f1..204137d 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -14,9 +14,7 @@
 15_keyboard_leds.diff
 21_glx_align_fixes.patch
 41_vbe_filter_less.diff
-42_fix_RemoveGeneralSocket_crash_from_dbus.diff
 43_allow_override_BIOS_EDID_preferred_mode.diff
-44_XKB_mapping_changes_for_all_core-sending_devices.diff
 45_GetKeyboardEvents_reject_out-of-range_keycodes.diff
 #47_fbdevhw_magic_numbers.diff
 #51_xkb-and-loathing.diff

commit 535db8af6670e9d070ada20220941cf889af392c
Author: David Nusinow <dnusinow@debian.org>
Date:   Mon Nov 5 22:30:17 2007 -0500

    * New upstream stable snapshot

diff --git a/debian/changelog b/debian/changelog
index 34046e6..24e53c0 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-xorg-server (2:1.4-4) UNRELEASED; urgency=low
+xorg-server (2:1.4.1~git20071105-1) unstable; urgency=low
 
   [ Julien Cristau ]
   * Add conflict on xserver-xorg-input-wacom (<< 0.7.8) to xserver-xorg-core.
@@ -27,7 +27,10 @@ xorg-server (2:1.4-4) UNRELEASED; urgency=low
   * Bump x11proto-core-dev build-dependency to >= 7.0.9,
     thanks Max Kellermann, closes: #446869.
 
- -- Christian Perrier <bubulle@debian.org>  Sat, 27 Oct 2007 19:37:43 +0200
+  [ David Nusinow ]
+  * New upstream stable snapshot
+
+ -- David Nusinow <dnusinow@debian.org>  Mon, 05 Nov 2007 22:27:14 -0500
 
 xorg-server (2:1.4-3) unstable; urgency=low
 

commit 846745c58108856e5fc1b6d94c91a245cbc4f16f
Author: Markku Vire <markku.vire@movial.fi>
Date:   Thu Nov 1 22:43:04 2007 +0200

    Config: HAL: Touchpads are pointers too
    
    Treat touchpads -- not just mice -- as pointer devices.
    (cherry picked from commit 3f1b6765aadf665ede8253464da19a5878f16e56)

diff --git a/config/hal.c b/config/hal.c
index d7835e6..6bb449d 100644
--- a/config/hal.c
+++ b/config/hal.c
@@ -177,7 +177,8 @@ device_added(LibHalContext *hal_ctx, const char *udi)
         if (strcmp(props[i], "input.keys") == 0 ||
             strcmp(props[i], "input.keyboard") == 0)
             type |= TYPE_KEYS;
-        if (strcmp(props[i], "input.mouse") == 0)
+        if (strcmp(props[i], "input.mouse") == 0 ||
+            strcmp(props[i], "input.touchpad") == 0)
             type |= TYPE_POINTER;
     }
     libhal_free_string_array(props);

commit ab80b27250bb583e3a40bf92cfe5edc117e4bd58
Author: Mark Vytlacil <mrv@wi.rr.com>
Date:   Thu Nov 1 21:05:43 2007 +0200

    XFree86: Input: Save/restore errno around SIGIO (bug #10683)
    
    Make sure errno is saved and restored from the SIGIO handler, so errors
    from system calls in input handlers don't break the interrupted code.
    (cherry picked from commit 41c3069f7cf28155f8e6cfe0c10a12a1f5f76c7d)

diff --git a/hw/xfree86/common/xf86Events.c b/hw/xfree86/common/xf86Events.c
index 91964c9..46fae08 100644
--- a/hw/xfree86/common/xf86Events.c
+++ b/hw/xfree86/common/xf86Events.c
@@ -510,12 +510,14 @@ static void
 xf86SigioReadInput(int fd,
 		   void *closure)
 {
+    int errno_save = errno;
     int sigstate = xf86BlockSIGIO();
     InputInfoPtr pInfo = (InputInfoPtr) closure;
 
     pInfo->read_input(pInfo);
 
     xf86UnblockSIGIO(sigstate);
+    errno = errno_save;
 }
 
 /*

commit ad05d5d035b32b05d304b2fc598f6fadeb077516
Author: Daniel Stone <daniel@fooishbar.org>
Date:   Sun Sep 23 17:17:03 2007 +0300

    Input: Generate XKB mapping changes for all core-sending devices (bug #12523)
    
    When we change the mapping on a core device, make sure we propagate this
    through to XKB for all extended devices as well.
    (cherry picked from commit 27ad5d74c20f01516a1bff73be283f8982fcf0fe)

diff --git a/Xi/exevents.c b/Xi/exevents.c
index fe297ab..377311e 100644
--- a/Xi/exevents.c
+++ b/Xi/exevents.c
@@ -73,6 +73,10 @@ SOFTWARE.
 #include "dixgrabs.h"	/* CreateGrab() */
 #include "scrnintstr.h"
 
+#ifdef XKB
+#include "xkbsrv.h"
+#endif
+
 #define WID(w) ((w) ? ((w)->drawable.id) : 0)
 #define AllModifiersMask ( \
 	ShiftMask | LockMask | ControlMask | Mod1Mask | Mod2Mask | \
@@ -942,7 +946,7 @@ SetModifierMapping(ClientPtr client, DeviceIntPtr dev, int len, int rlen,
 }
 
 void
-SendDeviceMappingNotify(CARD8 request,
+SendDeviceMappingNotify(ClientPtr client, CARD8 request,
 			KeyCode firstKeyCode, CARD8 count, DeviceIntPtr dev)
 {
     xEvent event;
@@ -957,6 +961,11 @@ SendDeviceMappingNotify(CARD8 request,
 	ev->count = count;
     }
 
+#ifdef XKB
+    if (request == MappingKeyboard || request == MappingModifier)
+        XkbApplyMappingChange(dev, request, firstKeyCode, count, client);
+#endif
+
     SendEventToAllWindows(dev, DeviceMappingNotifyMask, (xEvent *) ev, 1);
 }
 
@@ -992,7 +1001,7 @@ ChangeKeyMapping(ClientPtr client,
     keysyms.map = map;
     if (!SetKeySymsMap(&k->curKeySyms, &keysyms))
 	return BadAlloc;
-    SendDeviceMappingNotify(MappingKeyboard, firstKeyCode, keyCodes, dev);
+    SendDeviceMappingNotify(client, MappingKeyboard, firstKeyCode, keyCodes, dev);
     return client->noClientException;
 }
 
diff --git a/Xi/setbmap.c b/Xi/setbmap.c
index bdfa513..1f5970d 100644
--- a/Xi/setbmap.c
+++ b/Xi/setbmap.c
@@ -134,7 +134,7 @@ ProcXSetDeviceButtonMapping(ClientPtr client)
     }
 
     if (ret != MappingBusy)
-	SendDeviceMappingNotify(MappingPointer, 0, 0, dev);
+	SendDeviceMappingNotify(client, MappingPointer, 0, 0, dev);
     return Success;
 }
 
diff --git a/Xi/setmmap.c b/Xi/setmmap.c
index 0078499..e30213e 100644
--- a/Xi/setmmap.c
+++ b/Xi/setmmap.c
@@ -122,7 +122,7 @@ ProcXSetDeviceModifierMapping(ClientPtr client)
     if (ret == MappingSuccess || ret == MappingBusy || ret == MappingFailed) {
 	rep.success = ret;
 	if (ret == MappingSuccess)
-	    SendDeviceMappingNotify(MappingModifier, 0, 0, dev);
+	    SendDeviceMappingNotify(client, MappingModifier, 0, 0, dev);
 	WriteReplyToClient(client, sizeof(xSetDeviceModifierMappingReply),
 			   &rep);
     } else {
diff --git a/dix/devices.c b/dix/devices.c
index 9f3c576..e05444e 100644
--- a/dix/devices.c
+++ b/dix/devices.c
@@ -1208,10 +1208,9 @@ SendMappingNotify(unsigned request, unsigned firstKeyCode, unsigned count,
     }
 #ifdef XKB
     if (!noXkbExtension &&
-	((request == MappingKeyboard) || (request == MappingModifier))) {
-	XkbApplyMappingChange(inputInfo.keyboard,request,firstKeyCode,count,
-									client);
-    }
+	((request == MappingKeyboard) || (request == MappingModifier)))
+        XkbApplyMappingChange(inputInfo.keyboard, request, firstKeyCode, count,
+                              client);
 #endif
 
    /* 0 is the server client */
@@ -1359,6 +1358,7 @@ int
 ProcSetModifierMapping(ClientPtr client)
 {
     xSetModifierMappingReply rep;
+    DeviceIntPtr dev;
     REQUEST(xSetModifierMappingReq);
     
     REQUEST_AT_LEAST_SIZE(xSetModifierMappingReq);
@@ -1374,8 +1374,10 @@ ProcSetModifierMapping(ClientPtr client)
     rep.success = DoSetModifierMapping(client, (KeyCode *)&stuff[1],
                                        stuff->numKeyPerModifier);
 
-    /* FIXME: Send mapping notifies for all the extended devices as well. */
     SendMappingNotify(MappingModifier, 0, 0, client);
+    for (dev = inputInfo.devices; dev; dev = dev->next)
+        if (dev->key && dev->coreEvents)
+            SendDeviceMappingNotify(client, MappingModifier, 0, 0, dev);
     WriteReplyToClient(client, sizeof(xSetModifierMappingReply), &rep);
     return client->noClientException;
 }
@@ -1438,16 +1440,19 @@ ProcChangeKeyboardMapping(ClientPtr client)
     keysyms.maxKeyCode = stuff->firstKeyCode + stuff->keyCodes - 1;
     keysyms.mapWidth = stuff->keySymsPerKeyCode;
     keysyms.map = (KeySym *)&stuff[1];
-    for (pDev = inputInfo.devices; pDev; pDev = pDev->next) {
-        if ((pDev->coreEvents || pDev == inputInfo.keyboard) && pDev->key) {
+    for (pDev = inputInfo.devices; pDev; pDev = pDev->next)
+        if ((pDev->coreEvents || pDev == inputInfo.keyboard) && pDev->key)
             if (!SetKeySymsMap(&pDev->key->curKeySyms, &keysyms))
                 return BadAlloc;
-        }
-    }
 
-    /* FIXME: Send mapping notifies for all the extended devices as well. */
     SendMappingNotify(MappingKeyboard, stuff->firstKeyCode, stuff->keyCodes,
                       client);
+    for (pDev = inputInfo.devices; pDev; pDev = pDev->next)
+        if (pDev->key && pDev->coreEvents)
+            SendDeviceMappingNotify(client, MappingKeyboard,
+                                    stuff->firstKeyCode, stuff->keyCodes,
+                                    pDev);
+
     return client->noClientException;
 }
 
diff --git a/include/exevents.h b/include/exevents.h
index 9f15f50..0892f4d 100644
--- a/include/exevents.h
+++ b/include/exevents.h
@@ -131,6 +131,7 @@ extern int SetModifierMapping(
 	KeyClassPtr *          /* k */);
 
 extern void SendDeviceMappingNotify(
+        ClientPtr              /* client, */,
 	CARD8                  /* request, */,
 	KeyCode                /* firstKeyCode */,
 	CARD8                  /* count */,

commit 84040b655e3ea9188a6c9d6dafea429ffc4690de
Author: Peter Hutterer <peter@cs.unisa.edu.au>
Date:   Thu Sep 6 18:57:00 2007 +0930

    xfree86: wrap keyboard devices for XKB.
    
    Call ProcessOtherEvents first, then for all keyboard devices let them be
    wrapped by XKB. This way all XI events will go through XKB.
    
    Note that the VCK is still not wrapped, so core events will bypass XKB.
    
    (cherry picked from commit d627061b48ae06d27b37be209d67a3f4f2388dd3)
    (cherry picked from commit 8ead41388e36e21eea6fa0408c847f174911eab0)

diff --git a/hw/xfree86/common/xf86Xinput.c b/hw/xfree86/common/xf86Xinput.c
index e45d44c..b939fb7 100644
--- a/hw/xfree86/common/xf86Xinput.c
+++ b/hw/xfree86/common/xf86Xinput.c
@@ -165,6 +165,11 @@ xf86ActivateDevice(LocalDevicePtr local)
         dev->coreEvents = local->flags & XI86_ALWAYS_CORE;
         RegisterOtherDevice(dev);
 
+#ifdef XKB
+        if (!noXkbExtension)
+            XkbSetExtension(dev, ProcessKeyboardEvent);
+#endif
+
         if (serverGeneration == 1) 
             xf86Msg(X_INFO, "XINPUT: Adding extended input device \"%s\" (type: %s)\n",
                     local->name, local->type_name);

commit e26e93c54e54ab4010dfdede47c3e56e4418bcbd
Author: Daniel Stone <daniel@fooishbar.org>
Date:   Sat Oct 27 21:32:47 2007 +0300

    XKB: Cope with all events in XkbProcessKeyboardEvent
    
    Cope with Xi and pointer events in the (now increasingly misnamed)
    XkbProcessKeyboardEvent.  If it's the wrong type, call through the wrapping
    chain to get out; else, process it.
    (cherry picked from commit e717cf08e99746761d74289c426bbd84176f4435)

diff --git a/xkb/xkbPrKeyEv.c b/xkb/xkbPrKeyEv.c
index ba3fcc0..3fec4f5 100644
--- a/xkb/xkbPrKeyEv.c
+++ b/xkb/xkbPrKeyEv.c
@@ -36,11 +36,11 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
 #include <X11/keysym.h>
 #include "misc.h"
 #include "inputstr.h"
+#include "exevents.h"
 #include <xkbsrv.h>
 #include <ctype.h>
 #define EXTENSION_EVENT_BASE 64
 
-
 /***====================================================================***/
 
 void
@@ -115,12 +115,12 @@ int             xiEvent;
 		break;
 	    case XkbKB_Lock:
 		if ( xE->u.u.type == KeyRelease || 
-                        xE->u.u.type == DeviceKeyRelease)
+                        xE->u.u.type == DeviceKeyRelease) {
 		    return;
+                }
 		else {
 		    int	bit= 1<<(key&7);
-		    if ( keyc->down[key>>3]&bit )
-                    {
+		    if ( keyc->down[key>>3]&bit ) {
                         if (xiEvent)
                             xE->u.u.type = DeviceKeyRelease;
                         else
@@ -193,23 +193,42 @@ int             xiEvent;
 void
 ProcessKeyboardEvent(xEvent *xE,DeviceIntPtr keybd,int count)
 {
-KeyClassPtr	keyc = keybd->key;
-XkbSrvInfoPtr	xkbi;
 
-    xkbi= keyc->xkbInfo;
+    KeyClassPtr keyc = keybd->key;
+    XkbSrvInfoPtr xkbi = NULL;
+    ProcessInputProc backup_proc;
+    xkbDeviceInfoPtr xkb_priv = XKBDEVICEINFO(keybd);
+    int is_press = (xE->u.u.type == KeyPress || xE->u.u.type == DeviceKeyPress);
+    int is_release = (xE->u.u.type == KeyRelease ||
+                      xE->u.u.type == DeviceKeyRelease);
+
+    if (keyc)
+        xkbi = keyc->xkbInfo;
+
+    /* We're only interested in key events. */
+    if (!is_press && !is_release) {
+        UNWRAP_PROCESS_INPUT_PROC(keybd, xkb_priv, backup_proc);
+        keybd->public.processInputProc(xE, keybd, count);
+        COND_WRAP_PROCESS_INPUT_PROC(keybd, xkb_priv, backup_proc,
+                                     xkbUnwrapProc);
+        return;
+    }
 
-#ifdef DEBUG
-    if (xkbDebugFlags&0x8) {
-	int key= xE->u.u.detail;
-	ErrorF("PKE: Key %d %s\n",key,(xE->u.u.type==KeyPress?"down":"up"));
+    /* If AccessX filters are active, then pass it through to
+     * AccessXFilter{Press,Release}Event; else, punt to
+     * XkbProcessKeyboardEvent.
+     *
+     * If AXF[PK]E don't intercept anything (which they probably won't),
+     * they'll punt through XPKE anyway. */
+    if ((xkbi->desc->ctrls->enabled_ctrls & XkbAllFilteredEventsMask)) {
+        if (is_press)
+            AccessXFilterPressEvent(xE, keybd, count);
+        else if (is_release)
+            AccessXFilterReleaseEvent(xE, keybd, count);
     }
-#endif
-    if ((xkbi->desc->ctrls->enabled_ctrls&XkbAllFilteredEventsMask)==0)
-	XkbProcessKeyboardEvent(xE,keybd,count);
-    else if (xE->u.u.type==KeyPress || xE->u.u.type==DeviceKeyPress)
-	AccessXFilterPressEvent(xE,keybd,count);
-    else if (xE->u.u.type==KeyRelease || xE->u.u.type==DeviceKeyRelease)
-	AccessXFilterReleaseEvent(xE,keybd,count);
+    else {
+        XkbProcessKeyboardEvent(xE, keybd, count);
+    }
+    
     return;
 }
-

commit 37c690cfa4e9055209732ab5431fffb8886c7d67
Author: Daniel Stone <daniel@fooishbar.org>
Date:   Sat Oct 27 21:31:39 2007 +0300

    XKB: Don't update indicators on all devices, add missing include file
    
    Don't get XkbUpdateIndicators to update the indicators on all our devices: we
    already deal with that ourselves.
    Add exevents.h include to get more (proto)types.
    (cherry picked from commit 9db8846fa53d91193bbfe541b244e2326440011d)

diff --git a/xkb/xkbActions.c b/xkb/xkbActions.c
index e50dbfe..8ddbdba 100644
--- a/xkb/xkbActions.c
+++ b/xkb/xkbActions.c
@@ -36,6 +36,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
 #include <X11/keysym.h>
 #include "misc.h"
 #include "inputstr.h"
+#include "exevents.h"
 #include <xkbsrv.h>
 #include "xkb.h"
 #include <ctype.h>
@@ -80,8 +81,7 @@ XkbSetExtension(DeviceIntPtr device, ProcessInputProc proc)
     xkbPrivPtr->unwrapProc = NULL;
 
     device->devPrivates[xkbDevicePrivateIndex].ptr = xkbPrivPtr;
-    WRAP_PROCESS_INPUT_PROC(device,xkbPrivPtr,
-			    proc,xkbUnwrapProc);
+    WRAP_PROCESS_INPUT_PROC(device, xkbPrivPtr, proc, xkbUnwrapProc);
 }
 
 extern	void	ProcessOtherEvent(
@@ -400,7 +400,6 @@ _XkbFilterLockState(	XkbSrvInfoPtr	xkbi,
 			unsigned	keycode,
 			XkbAction *	pAction)
 {
-
     if (pAction&&(pAction->type==XkbSA_LockGroup)) {



Reply to: