[Pkg-tcltk-commits] r1092 - in tk8.5/trunk/debian: . patches

sgolovan at alioth.debian.org sgolovan at alioth.debian.org
Thu Nov 4 19:34:21 UTC 2010


Author: sgolovan
Date: 2010-11-04 19:34:15 +0000 (Thu, 04 Nov 2010)
New Revision: 1092

Added:
   tk8.5/trunk/debian/patches/display.patch
   tk8.5/trunk/debian/patches/icons.patch
   tk8.5/trunk/debian/patches/xauth.patch
Modified:
   tk8.5/trunk/debian/changelog
   tk8.5/trunk/debian/control
   tk8.5/trunk/debian/patches/series
Log:
[tk8.5]
  * Added ${misc:Depends} to debian/control file because the binary packages
    are built using debhelper.
  * Bumped standards version to 3.9.1.
  * Backported patch by upstream which fixes [send] command for ServerInterpreted
    X host access.
  * Backported patch from upstream which fixes application icon for 64-bit
    architectures.
  * Backported patch from upstream which fixes Tk in case when :: is contained
    in $DISPLAY variable.


Modified: tk8.5/trunk/debian/changelog
===================================================================
--- tk8.5/trunk/debian/changelog	2010-10-31 12:40:33 UTC (rev 1091)
+++ tk8.5/trunk/debian/changelog	2010-11-04 19:34:15 UTC (rev 1092)
@@ -1,8 +1,17 @@
-tk8.5 (8.5.8-2) UNRELEASED; urgency=low
+tk8.5 (8.5.8-2) unstable; urgency=low
 
   * Removed unused patches from debian/patches.
+  * Added ${misc:Depends} to debian/control file because the binary packages
+    are built using debhelper.
+  * Bumped standards version to 3.9.1.
+  * Backported patch by upstream which fixes [send] command for ServerInterpreted
+    X host access.
+  * Backported patch from upstream which fixes application icon for 64-bit
+    architectures.
+  * Backported patch from upstream which fixes Tk in case when :: is contained
+    in $DISPLAY variable.
 
- -- Sergei Golovan <sgolovan at debian.org>  Sat, 02 Jan 2010 21:02:58 +0300
+ -- Sergei Golovan <sgolovan at debian.org>  Thu, 04 Nov 2010 22:33:13 +0300
 
 tk8.5 (8.5.8-1) unstable; urgency=low
 

Modified: tk8.5/trunk/debian/control
===================================================================
--- tk8.5/trunk/debian/control	2010-10-31 12:40:33 UTC (rev 1091)
+++ tk8.5/trunk/debian/control	2010-11-04 19:34:15 UTC (rev 1092)
@@ -4,14 +4,14 @@
 Maintainer: Tcl/Tk Debian Packagers <pkg-tcltk-devel at lists.alioth.debian.org>
 Uploaders: Chris Waters <xtifr at debian.org>, Sergei Golovan <sgolovan at debian.org>
 Build-Depends: debhelper (>= 5.0.0), x11proto-core-dev, libx11-dev, libxss-dev, libxext-dev, libxft-dev, tcl8.5-dev (>= 8.5.0), quilt
-Standards-Version: 3.8.3
+Standards-Version: 3.9.1
 Homepage: http://www.tcl.tk/
 
 Package: tk8.5
 Section: libs
 Priority: optional
 Architecture: any
-Depends: ${shlibs:Depends}
+Depends: ${shlibs:Depends}, ${misc:Depends}
 Recommends: xterm | x-terminal-emulator
 Conflicts: tk40 (<= 4.0p3-2), libtk-img (<< 1.2.5)
 Provides: wish
@@ -25,6 +25,7 @@
 Section: doc
 Priority: optional
 Architecture: all
+Depends: ${misc:Depends}
 Suggests: tk8.5
 Conflicts: tkdoc, tk8.3-doc, tk8.4-doc
 Provides: tkdoc
@@ -37,7 +38,7 @@
 Section: devel
 Priority: optional
 Architecture: any
-Depends: x11proto-core-dev, libx11-dev, libxss-dev, libxext-dev, libxft-dev, tcl8.5-dev (>= 8.5.0), tk8.5 (= ${binary:Version})
+Depends: x11proto-core-dev, libx11-dev, libxss-dev, libxext-dev, libxft-dev, tcl8.5-dev (>= 8.5.0), tk8.5 (= ${binary:Version}), ${misc:Depends}
 Suggests: tk8.5-doc
 Description: Tk toolkit for Tcl and X11, v8.5 - development files
  Tk is a cross-platform graphical toolkit which provides the Motif

Added: tk8.5/trunk/debian/patches/display.patch
===================================================================
--- tk8.5/trunk/debian/patches/display.patch	                        (rev 0)
+++ tk8.5/trunk/debian/patches/display.patch	2010-11-04 19:34:15 UTC (rev 1092)
@@ -0,0 +1,16 @@
+--- tk8.5.orig/library/tk.tcl
++++ tk8.5/library/tk.tcl
+@@ -248,7 +248,12 @@
+ 	set disp $screen
+     }
+ 
+-    uplevel #0 upvar #0 ::tk::Priv.$disp ::tk::Priv
++    # Ensure that namespace separators never occur in the display name (as
++    # they cause problems in variable names). Double-colons exist in some VNC
++    # display names. [Bug 2912473]
++    set disp [string map {:: _doublecolon_} $disp]
++
++    uplevel #0 [list upvar #0 ::tk::Priv.$disp ::tk::Priv]
+     variable ::tk::Priv
+     global tcl_platform
+ 

Added: tk8.5/trunk/debian/patches/icons.patch
===================================================================
--- tk8.5/trunk/debian/patches/icons.patch	                        (rev 0)
+++ tk8.5/trunk/debian/patches/icons.patch	2010-11-04 19:34:15 UTC (rev 1092)
@@ -0,0 +1,42 @@
+--- tk8.5.orig/unix/tkUnixWm.c
++++ tk8.5/unix/tkUnixWm.c
+@@ -2335,7 +2336,7 @@
+     Tk_PhotoHandle photo;
+     Tk_PhotoImageBlock block;
+     int i, size = 0, width, height, index = 0, x, y, isDefault = 0;
+-    unsigned int *iconPropertyData;
++    unsigned long *iconPropertyData;
+ 
+     if (objc < 4) {
+ 	Tcl_WrongNumArgs(interp, 2, objv,
+@@ -2375,15 +2376,17 @@
+ 
+     /*
+      * We have calculated the size of the data. Try to allocate the needed
+-     * memory space.
++     * memory space. This is an unsigned long array (despite this being twice
++     * as much as is really needed on LP64 platforms) because that's what X
++     * defines CARD32 arrays to use. [Bug 2902814]
+      */
+ 
+-    iconPropertyData = (unsigned int *)
+-	    Tcl_AttemptAlloc(sizeof(unsigned int) * size);
++    iconPropertyData = (unsigned long *)
++	    attemptckalloc(sizeof(unsigned long) * size);
+     if (iconPropertyData == NULL) {
+ 	return TCL_ERROR;
+     }
+-    memset(iconPropertyData, 0, sizeof(unsigned int) * size);
++    memset(iconPropertyData, 0, sizeof(unsigned long) * size);
+ 
+     for (i = 3 + isDefault; i < objc; i++) {
+ 	photo = Tk_FindPhoto(interp, Tcl_GetString(objv[i]));
+@@ -2421,7 +2424,7 @@
+ 	    for (x = 0; x < width; x++) {
+ 		register unsigned char *pixelPtr =
+ 			block.pixelPtr + x*block.pixelSize + y*block.pitch;
+-		register unsigned int R, G, B, A;
++		register unsigned long R, G, B, A;
+ 
+ 		R = pixelPtr[block.offset[0]];
+ 		G = pixelPtr[block.offset[1]];

Modified: tk8.5/trunk/debian/patches/series
===================================================================
--- tk8.5/trunk/debian/patches/series	2010-10-31 12:40:33 UTC (rev 1091)
+++ tk8.5/trunk/debian/patches/series	2010-11-04 19:34:15 UTC (rev 1092)
@@ -5,3 +5,6 @@
 rpath.diff
 non-linux.diff
 manpages.diff
+display.patch
+icons.patch
+xauth.patch

Added: tk8.5/trunk/debian/patches/xauth.patch
===================================================================
--- tk8.5/trunk/debian/patches/xauth.patch	                        (rev 0)
+++ tk8.5/trunk/debian/patches/xauth.patch	2010-11-04 19:34:15 UTC (rev 1092)
@@ -0,0 +1,106 @@
+--- tk8.5.orig/unix/tkUnixSend.c
++++ tk8.5/unix/tkUnixSend.c
+@@ -679,54 +679,74 @@
+     int numHosts, secure;
+     Bool enabled;
+ 
+-    secure = 0;
+     addrPtr = XListHosts(dispPtr->display, &numHosts, &enabled);
+-    if (enabled) {
+-	if (numHosts == 0) {
+-	    secure = 1;
+-	}
+-
++    if (!enabled) {
++    insecure:
++	secure = 0;
++    } else if (numHosts == 0) {
++	secure = 1;
++    } else {
+ 	/*
+ 	 * Recent versions of X11 have the extra feature of allowing more
+ 	 * sophisticated authorization checks to be performed than the dozy
+ 	 * old ones that used to plague xhost usage. However, not all deployed
+ 	 * versions of Xlib know how to deal with this feature, so this code
+ 	 * is conditional on having the right #def in place. [Bug 1909931]
++	 *
++	 * Note that at this point we know that there's at least one entry in
++	 * the list returned by XListHosts. However there may be multiple
++	 * entries; as long as each is one of either 'SI:localhost:*' or
++	 * 'SI:localgroup:*' then we will claim to be secure enough.
+ 	 */
+ 
+ #ifdef FamilyServerInterpreted
+-	if (numHosts == 1 && addrPtr[0].family == FamilyServerInterpreted) {
+-	    XServerInterpretedAddress *siPtr =
+-		    (XServerInterpretedAddress *) addrPtr[0].address;
+-
+-	    if (siPtr->typelength==9 && !memcmp(siPtr->type,"localuser",9)) {
+-		/*
+-		 * We don't check the username here. This is because it's
+-		 * officially non-portable and we are just making sure there
+-		 * aren't silly misconfigurations. (Apparently 'root' is not a
+-		 * very good choice, but we still don't put any effort in to
+-		 * spot that.)
+-		 */
++	XServerInterpretedAddress *siPtr;
++	int i;
+ 
+-		secure = 1;
+-	    } else if (siPtr->typelength == 10
+-		    && !memcmp(siPtr->type, "localgroup", 10)) {
++	for (i=0 ; i<numHosts ; i++) {
++	    if (addrPtr[i].family != FamilyServerInterpreted) {
+ 		/*
+-		 * Similarly to above, we don't attempt to peek inside server
+-		 * interpreted group names. If someone set it, it's what they
+-		 * want and we assume it's OK.
++		 * We don't understand what the X server is letting in, so we
++		 * err on the side of safety.
+ 		 */
+ 
+-		secure = 1;
++		goto insecure;
+ 	    }
++	    siPtr = (XServerInterpretedAddress *) addrPtr[0].address;
+ 
+ 	    /*
+-	     * The other defined types of server-interpreted controls involve
+-	     * particular hosts; these are still insecure for the same reasons
+-	     * that classic xhost access is insecure.
++	     * We don't check the username or group here. This is because it's
++	     * officially non-portable and we are just making sure there
++	     * aren't silly misconfigurations. (Apparently 'root' is not a
++	     * very good choice, but we still don't put any effort in to spot
++	     * that.) However we do check to see that the constraints are
++	     * imposed against the connecting user and/or group.
+ 	     */
++
++	    if (       !(siPtr->typelength == 9 /* ==strlen("localuser") */
++			&& !memcmp(siPtr->type, "localuser", 9))
++		    && !(siPtr->typelength == 10 /* ==strlen("localgroup") */
++			&& !memcmp(siPtr->type, "localgroup", 10))) {
++		/*
++		 * The other defined types of server-interpreted controls
++		 * involve particular hosts. These are still insecure for the
++		 * same reasons that classic xhost access is insecure; there's
++		 * just no way to be sure that the users on those systems are
++		 * the ones who should be allowed to connect to this display.
++		 */
++
++		goto insecure;
++	    }
+ 	}
+-#endif
++	secure = 1;
++#else
++	/*
++	 * We don't understand what the X server is letting in, so we err on
++	 * the side of safety.
++	 */
++
++	goto insecure;
++#endif /* FamilyServerInterpreted */
+     }
+     if (addrPtr != NULL) {
+ 	XFree((char *) addrPtr);




More information about the Pkg-tcltk-commits mailing list