<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[118622] trunk/dports/x11/xorg-libxcb</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="https://trac.macports.org/changeset/118622">118622</a></dd>
<dt>Author</dt> <dd>jeremyhu@macports.org</dd>
<dt>Date</dt> <dd>2014-04-06 03:15:14 -0700 (Sun, 06 Apr 2014)</dd>
</dl>

<h3>Log Message</h3>
<pre>xorg-libxcb: Bump to 1.10</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkdportsx11xorglibxcbPortfile">trunk/dports/x11/xorg-libxcb/Portfile</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li>trunk/dports/x11/xorg-libxcb/files/</li>
<li><a href="#trunkdportsx11xorglibxcbfiles0001xcb_openMinorcodecleanupforbetterreadabilitypatch">trunk/dports/x11/xorg-libxcb/files/0001-xcb_open-Minor-code-cleanup-for-better-readability.patch</a></li>
<li><a href="#trunkdportsx11xorglibxcbfiles0002xcb_openImproveabstractionforlaunchdsecuresockpatch">trunk/dports/x11/xorg-libxcb/files/0002-xcb_open-Improve-abstraction-for-launchd-secure-sock.patch</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkdportsx11xorglibxcbPortfile"></a>
<div class="modfile"><h4>Modified: trunk/dports/x11/xorg-libxcb/Portfile (118621 => 118622)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/x11/xorg-libxcb/Portfile        2014-04-06 10:15:11 UTC (rev 118621)
+++ trunk/dports/x11/xorg-libxcb/Portfile        2014-04-06 10:15:14 UTC (rev 118622)
</span><span class="lines">@@ -3,7 +3,7 @@
</span><span class="cx"> PortSystem 1.0
</span><span class="cx"> 
</span><span class="cx"> name                xorg-libxcb
</span><del>-version                1.9.1
</del><ins>+version                1.10
</ins><span class="cx"> categories        x11 devel
</span><span class="cx"> license                X11
</span><span class="cx"> maintainers        jeremyhu openmaintainer
</span><span class="lines">@@ -14,9 +14,9 @@
</span><span class="cx"> master_sites         ${homepage}dist/
</span><span class="cx"> 
</span><span class="cx"> distname        libxcb-${version}
</span><del>-checksums           sha1    bf786bb7b9089102b73753135e061c87dc8e8685 \
-                    rmd160  ab86e167f8cfea581b881d5bf79f36fc0ebafe6f \
-                    sha256  d44a5ff4eb0b9569e6f7183b51fdaf6f58da90e7d6bfc36b612d7263f83e362f
</del><ins>+checksums           sha1    bb1a3113eca5146e2a1cf6379c2e52c212a757e0 \
+                    rmd160  39e06176a6b174503c8cede776d85d92ee1b3259 \
+                    sha256  98d9ab05b636dd088603b64229dd1ab2d2cc02ab807892e107d674f9c3f2d5b5
</ins><span class="cx"> use_bzip2        yes
</span><span class="cx"> use_parallel_build yes
</span><span class="cx"> 
</span><span class="lines">@@ -27,6 +27,10 @@
</span><span class="cx">                 port:xorg-xcb-proto \
</span><span class="cx">                 port:xorg-libpthread-stubs
</span><span class="cx"> 
</span><ins>+patchfiles 0001-xcb_open-Minor-code-cleanup-for-better-readability.patch \
+           0002-xcb_open-Improve-abstraction-for-launchd-secure-sock.patch
+patch.pre_args -p1
+
</ins><span class="cx"> configure.args  --disable-build-docs
</span><span class="cx"> 
</span><span class="cx"> variant docs description &quot;Install extra documentation&quot; {
</span></span></pre></div>
<a id="trunkdportsx11xorglibxcbfiles0001xcb_openMinorcodecleanupforbetterreadabilitypatch"></a>
<div class="addfile"><h4>Added: trunk/dports/x11/xorg-libxcb/files/0001-xcb_open-Minor-code-cleanup-for-better-readability.patch (0 => 118622)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/x11/xorg-libxcb/files/0001-xcb_open-Minor-code-cleanup-for-better-readability.patch                                (rev 0)
+++ trunk/dports/x11/xorg-libxcb/files/0001-xcb_open-Minor-code-cleanup-for-better-readability.patch        2014-04-06 10:15:14 UTC (rev 118622)
</span><span class="lines">@@ -0,0 +1,43 @@
</span><ins>+From 1c7fd31d6fd19233a586cce37cfd9156c24f1add Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston Sequoia &lt;jeremyhu@apple.com&gt;
+Date: Sat, 5 Apr 2014 21:09:42 -0700
+Subject: [PATCH 1/2] xcb_open: Minor code cleanup for better readability
+
+Signed-off-by: Jeremy Huddleston Sequoia &lt;jeremyhu@apple.com&gt;
+---
+ src/xcb_util.c | 17 +++++++++--------
+ 1 file changed, 9 insertions(+), 8 deletions(-)
+
+diff --git a/src/xcb_util.c b/src/xcb_util.c
+index 466dc23..0c5b07f 100644
+--- a/src/xcb_util.c
++++ b/src/xcb_util.c
+@@ -438,16 +438,17 @@ xcb_connection_t *xcb_connect_to_display_with_auth_info(const char *displayname,
+     if(!parsed) {
+         c = _xcb_conn_ret_error(XCB_CONN_CLOSED_PARSE_ERR);
+         goto out;
+-    } else {
++    }
++
+ #ifdef _WIN32
+-        WSADATA wsaData;
+-        if (WSAStartup(MAKEWORD(2, 2), &amp;wsaData) != 0) {
+-            c = _xcb_conn_ret_error(XCB_CONN_ERROR);
+-            goto out;
+-        }
+-#endif
+-        fd = _xcb_open(host, protocol, display);
++    WSADATA wsaData;
++    if (WSAStartup(MAKEWORD(2, 2), &amp;wsaData) != 0) {
++        c = _xcb_conn_ret_error(XCB_CONN_ERROR);
++        goto out;
+     }
++#endif
++
++    fd = _xcb_open(host, protocol, display);

+     if(fd == -1) {
+         c = _xcb_conn_ret_error(XCB_CONN_ERROR);
+-- 
+1.9.1
+
</ins></span></pre></div>
<a id="trunkdportsx11xorglibxcbfiles0002xcb_openImproveabstractionforlaunchdsecuresockpatch"></a>
<div class="addfile"><h4>Added: trunk/dports/x11/xorg-libxcb/files/0002-xcb_open-Improve-abstraction-for-launchd-secure-sock.patch (0 => 118622)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/x11/xorg-libxcb/files/0002-xcb_open-Improve-abstraction-for-launchd-secure-sock.patch                                (rev 0)
+++ trunk/dports/x11/xorg-libxcb/files/0002-xcb_open-Improve-abstraction-for-launchd-secure-sock.patch        2014-04-06 10:15:14 UTC (rev 118622)
</span><span class="lines">@@ -0,0 +1,155 @@
</span><ins>+From 5aa915fa6a61233d72173e8e587dbc674c81071c Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston Sequoia &lt;jeremyhu@apple.com&gt;
+Date: Sat, 5 Apr 2014 20:54:59 -0700
+Subject: [PATCH 2/2] xcb_open: Improve abstraction for launchd secure sockets
+
+This changes away from hard-coding the /tmp/launch-* path to now
+supporting a generic &lt;path to unix socket&gt;[.&lt;screen&gt;] format for
+$DISPLAY.
+
+Signed-off-by: Jeremy Huddleston Sequoia &lt;jeremyhu@apple.com&gt;
+---
+ src/xcb_util.c | 95 +++++++++++++++++++++++++++++++++++++++++++++-------------
+ 1 file changed, 75 insertions(+), 20 deletions(-)
+
+diff --git a/src/xcb_util.c b/src/xcb_util.c
+index 0c5b07f..7f446a4 100644
+--- a/src/xcb_util.c
++++ b/src/xcb_util.c
+@@ -60,6 +60,10 @@
+ # include &lt;sys/stat.h&gt;
+ #endif

++#ifdef HAVE_LAUNCHD
++#include &lt;sys/stat.h&gt;
++#endif
++
+ int xcb_popcount(uint32_t mask)
+ {
+     uint32_t y;
+@@ -78,6 +82,59 @@ int xcb_sumof(uint8_t *list, int len)
+   return s;
+ }

++#ifdef HAVE_LAUNCHD
++/* Return true and parse if name matches &lt;path to socket&gt;[.&lt;screen&gt;]
++ * Upon success:
++ *     host = &lt;path to socket&gt;
++ *     protocol = &quot;unix&quot;
++ *     display = 0
++ *     screen = &lt;screen&gt;
++ */
++static int _xcb_parse_display_path_to_socket(const char *name, char **host, char **protocol,
++                                             int *displayp, int *screenp)
++{
++    struct stat sbuf;
++    char path[PATH_MAX];
++    int _screen = 0;
++
++    strlcpy(path, name, sizeof(path));
++    if (0 != stat(path, &amp;sbuf)) {
++        char *dot = strrchr(path, '.');
++        if (!dot)
++            return 0;
++        *dot = '\0';
++
++        if (0 != stat(path, &amp;sbuf))
++            return 0;
++
++        _screen = atoi(dot + 1);
++    }
++
++    if (host) {
++        *host = strdup(path);
++        if (!*host)
++            return 0;
++    }
++
++    if (protocol) {
++        *protocol = strdup(&quot;unix&quot;);
++        if (!*protocol) {
++            if (host)
++                free(*host);
++            return 0;
++        }
++    }
++
++    if (displayp)
++        *displayp = 0;
++
++    if (screenp)
++        *screenp = _screen;
++
++    return 1;
++}
++#endif
++
+ static int _xcb_parse_display(const char *name, char **host, char **protocol,
+                       int *displayp, int *screenp)
+ {
+@@ -90,10 +147,11 @@ static int _xcb_parse_display(const char *name, char **host, char **protocol,
+         return 0;

+ #ifdef HAVE_LAUNCHD
+-    if(strncmp(name, &quot;/tmp/launch&quot;, 11) == 0)
+-        slash = NULL;
+-    else
++    /* First check for &lt;path to socket&gt;[.&lt;screen&gt;] */
++    if (_xcb_parse_display_path_to_socket(name, host, protocol, displayp, screenp))
++        return 1;
+ #endif
++
+     slash = strrchr(name, '/');

+     if (slash) {
+@@ -178,14 +236,6 @@ static int _xcb_open(const char *host, char *protocol, const int display)
+     char *file = NULL;
+     int actual_filelen;

+-#ifdef HAVE_LAUNCHD
+-    if(strncmp(host, &quot;/tmp/launch&quot;, 11) == 0) {
+-        base = host;
+-        host = &quot;&quot;;
+-        protocol = &quot;unix&quot;;
+-    }
+-#endif
+-
+     /* If protocol or host is &quot;unix&quot;, fall through to Unix socket code below */
+     if ((!protocol || (strcmp(&quot;unix&quot;,protocol) != 0)) &amp;&amp;
+         (*host != '\0') &amp;&amp; (strcmp(&quot;unix&quot;,host) != 0))
+@@ -211,18 +261,23 @@ static int _xcb_open(const char *host, char *protocol, const int display)
+     }
+ #endif

+-    filelen = strlen(base) + 1 + sizeof(display) * 3 + 1;
+-    file = malloc(filelen);
+-    if(file == NULL)
+-        return -1;
+-
+-    /* display specifies Unix socket */
+ #ifdef HAVE_LAUNCHD
+-    if(strncmp(base, &quot;/tmp/launch&quot;, 11) == 0)
+-        actual_filelen = snprintf(file, filelen, &quot;%s:%d&quot;, base, display);
+-    else
++    struct stat sbuf;
++    if (0 == stat(host, &amp;sbuf)) {
++        file = strdup(host);
++        filelen = actual_filelen = strlen(file);
++    } else
+ #endif
++    {
++        filelen = strlen(base) + 1 + sizeof(display) * 3 + 1;
++        file = malloc(filelen);
++        if(file == NULL)
++            return -1;
++
++        /* display specifies Unix socket */
+         actual_filelen = snprintf(file, filelen, &quot;%s%d&quot;, base, display);
++    }
++
+     if(actual_filelen &lt; 0)
+     {
+         free(file);
+-- 
+1.9.1
+
</ins></span></pre>
</div>
</div>

</body>
</html>