[X2Go-Commits] nx-libs.git - build-baikal (branch) updated: redist-server/3.5.0.12-5-g45311f7

X2Go dev team git-admin at x2go.org
Fri Aug 30 16:25:14 CEST 2013


The branch, build-baikal has been updated
       via  45311f783acad296d37a248fb2c702c578ac3059 (commit)
      from  4372dfa53207a3247b8c317392f2672191b54fdf (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
-----------------------------------------------------------------------

Summary of changes:
 debian/changelog                                   |    5 +
 ...agent_libcairo-null-source-drawables.full.patch |  130 ++++++++++++++++++++
 debian/patches/series                              |    1 +
 3 files changed, 136 insertions(+)
 create mode 100644 debian/patches/120_nxagent_libcairo-null-source-drawables.full.patch

The diff of changes is:
diff --git a/debian/changelog b/debian/changelog
index da4999c..143717e 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,7 +1,12 @@
 nx-libs (2:3.5.0.13-0) UNRELEASED; urgency=low
 
+  [ Mike Gabriel ]
   * Let nxagent Debian package depend on xfonts-base.
 
+  [ Jim Burnes ]
+  * Add patch: 120_nxagent_libcairo-null-source-drawables.full.patch, solves
+    crashes of GTK applications based on libcairo 1.12.1+.
+
  -- Mike Gabriel <mike.gabriel at das-netzwerkteam.de>  Wed, 07 Mar 2012 21:01:21 +0100
 
 nx-libs (2:3.5.0.12-0) unstable; urgency=low
diff --git a/debian/patches/120_nxagent_libcairo-null-source-drawables.full.patch b/debian/patches/120_nxagent_libcairo-null-source-drawables.full.patch
new file mode 100644
index 0000000..66af325
--- /dev/null
+++ b/debian/patches/120_nxagent_libcairo-null-source-drawables.full.patch
@@ -0,0 +1,130 @@
+--- a/nx-X11/programs/Xserver/hw/nxagent/Render.c
++++ b/nx-X11/programs/Xserver/hw/nxagent/Render.c
+@@ -995,6 +995,36 @@
+   #endif
+ }
+ 
++
++int nxagentShouldDeferComposite(PicturePtr pSrc, PicturePtr pMask, PicturePtr pDst)
++{
++
++int drawableDst;
++int linkDeferred;
++int unSyncedSrcMask;
++
++	drawableDst      =  ( nxagentRenderVersionMajor == 0 &&
++	                      nxagentRenderVersionMinor == 8 &&
++		              (pDst) -> pDrawable -> type == DRAWABLE_PIXMAP
++                            );
++
++	linkDeferred     =  ( nxagentOption(DeferLevel) >= 2 &&
++                              nxagentOption(LinkType) < LINK_TYPE_ADSL
++                            );
++
++	unSyncedSrcMask  =  ( nxagentOption(DeferLevel) == 1 &&
++                              (pDst) -> pDrawable -> type == DRAWABLE_PIXMAP &&
++                              (
++			       (pSrc -> pDrawable && (nxagentDrawableStatus(pSrc -> pDrawable) == NotSynchronized)) ||
++	                       ((pMask) && pMask -> pDrawable && (nxagentDrawableStatus((pMask) -> pDrawable) == NotSynchronized))
++			      )
++			    );
++
++
++	return drawableDst || linkDeferred || unSyncedSrcMask;
++}
++
++
+ void nxagentComposite(CARD8 op, PicturePtr pSrc, PicturePtr pMask, PicturePtr pDst,
+                           INT16 xSrc, INT16 ySrc, INT16 xMask, INT16 yMask, INT16 xDst,
+                               INT16 yDst, CARD16 width, CARD16 height)
+@@ -1036,8 +1066,8 @@
+   }
+ 
+   #endif
+-
+-  if (NXAGENT_SHOULD_DEFER_COMPOSITE(pSrc, pMask, pDst))
++  /* if (NXAGENT_SHOULD_DEFER_COMPOSITE(pSrc, pMask, pDst)) */
++  if (nxagentShouldDeferComposite(pSrc, pMask, pDst))
+   {
+     pDstRegion = nxagentCreateRegion(pDst -> pDrawable, NULL, xDst, yDst, width, height);
+ 
+@@ -1095,7 +1125,8 @@
+     }
+   }
+ 
+-  if (pMask != NULL && pMask -> pDrawable != pSrc -> pDrawable &&
++  if ((pMask) && (pMask->pDrawable) &&
++          pMask -> pDrawable != pSrc -> pDrawable &&
+           pMask -> pDrawable != pDst -> pDrawable)
+   {
+     nxagentSynchronizeShmPixmap(pMask -> pDrawable, xMask, yMask, width, height);
+@@ -1259,7 +1290,7 @@
+    * on the real X server.
+    */
+ 
+-  if (nxagentDrawableStatus(pSrc -> pDrawable) == NotSynchronized)
++  if (pSrc -> pDrawable && (nxagentDrawableStatus(pSrc -> pDrawable) == NotSynchronized))
+   {
+     #ifdef TEST
+     fprintf(stderr, "nxagentGlyphs: Synchronizing source [%s] at [%p].\n",
+@@ -1302,14 +1333,15 @@
+       nxagentSynchronizeBox(pSrc -> pDrawable, &glyphBox, NEVER_BREAK);
+     }
+ 
+-    if (pSrc -> pDrawable -> type == DRAWABLE_PIXMAP)
++    if (pSrc -> pDrawable && (pSrc -> pDrawable -> type == DRAWABLE_PIXMAP))
+     {
+       nxagentIncreasePixmapUsageCounter((PixmapPtr) pSrc -> pDrawable);
+     }
+   }
+ 
+-  if (pSrc -> pDrawable != pDst -> pDrawable &&
+-          nxagentDrawableStatus(pDst -> pDrawable) == NotSynchronized)
++
++  if (pSrc -> pDrawable && (pSrc -> pDrawable != pDst -> pDrawable &&
++          nxagentDrawableStatus(pDst -> pDrawable) == NotSynchronized))
+   {
+     #ifdef TEST
+     fprintf(stderr, "nxagentGlyphs: Synchronizing destination [%s] at [%p].\n",
+@@ -1749,7 +1781,9 @@
+     return;
+   }
+ 
+-  if (nxagentDrawableStatus(pSrc -> pDrawable) == NotSynchronized)
++  /* the following blocks need fixing to ignore null values of pDrawable */
++
++  if (pSrc -> pDrawable && (nxagentDrawableStatus(pSrc -> pDrawable) == NotSynchronized))
+   {
+     #ifdef TEST
+     fprintf(stderr, "nxagentTrapezoids: Going to synchronize the source drawable at [%p].\n",
+@@ -1843,7 +1877,9 @@
+    * operation like nxagentTrapezoids() does.
+    */
+ 
+-  if (nxagentDrawableStatus(pSrc -> pDrawable) == NotSynchronized)
++
++
++  if (pSrc -> pDrawable && (nxagentDrawableStatus(pSrc -> pDrawable) == NotSynchronized))
+   {
+     #ifdef TEST
+     fprintf(stderr, "nxagentTriangles: Going to synchronize the source drawable at [%p].\n",
+@@ -1920,7 +1956,8 @@
+    * operation like nxagentTrapezoids() does.
+    */
+ 
+-  if (nxagentDrawableStatus(pSrc -> pDrawable) == NotSynchronized)
++
++  if (pSrc -> pDrawable && (nxagentDrawableStatus(pSrc -> pDrawable) == NotSynchronized))
+   {
+     #ifdef TEST
+     fprintf(stderr, "nxagentTriStrip: Going to synchronize the source drawable at [%p].\n",
+@@ -1997,7 +2034,8 @@
+    * operation like nxagentTrapezoids() does.
+    */
+ 
+-  if (nxagentDrawableStatus(pSrc -> pDrawable) == NotSynchronized)
++
++  if (pSrc -> pDrawable && (nxagentDrawableStatus(pSrc -> pDrawable) == NotSynchronized))
+   {
+     #ifdef TEST
+     fprintf(stderr, "nxagentTriFan: Going to synchronize the source drawable at [%p].\n",
diff --git a/debian/patches/series b/debian/patches/series
index dc42d85..0e7726a 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -35,6 +35,7 @@
 108_nxagent_wine-close-delay.full.patch
 109_nxagent_locale-utf8-compound-text.full.patch
 110_nxagent_createpixmap-bounds-check.full.patch
+120_nxagent_libcairo-null-source-drawables.full.patch
 200_nxagent_check-binary-x2go-flavour.full.patch
 201_nxagent_set-x2go-icon-if-x2goagent-flavour.full.patch
 202_nx-x11_enable-xinerama.full.patch


hooks/post-receive
-- 
nx-libs.git (NX (redistributed))

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "nx-libs.git" (NX (redistributed)).




More information about the x2go-commits mailing list