<!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 "Install extra documentation" {
</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 <jeremyhu@apple.com>
+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 <jeremyhu@apple.com>
+---
+ 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), &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), &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 <jeremyhu@apple.com>
+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 <path to unix socket>[.<screen>] format for
+$DISPLAY.
+
+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
+---
+ 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 <sys/stat.h>
+ #endif
+
++#ifdef HAVE_LAUNCHD
++#include <sys/stat.h>
++#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 <path to socket>[.<screen>]
++ * Upon success:
++ * host = <path to socket>
++ * protocol = "unix"
++ * display = 0
++ * screen = <screen>
++ */
++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, &sbuf)) {
++ char *dot = strrchr(path, '.');
++ if (!dot)
++ return 0;
++ *dot = '\0';
++
++ if (0 != stat(path, &sbuf))
++ return 0;
++
++ _screen = atoi(dot + 1);
++ }
++
++ if (host) {
++ *host = strdup(path);
++ if (!*host)
++ return 0;
++ }
++
++ if (protocol) {
++ *protocol = strdup("unix");
++ 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, "/tmp/launch", 11) == 0)
+- slash = NULL;
+- else
++ /* First check for <path to socket>[.<screen>] */
++ 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, "/tmp/launch", 11) == 0) {
+- base = host;
+- host = "";
+- protocol = "unix";
+- }
+-#endif
+-
+ /* If protocol or host is "unix", fall through to Unix socket code below */
+ if ((!protocol || (strcmp("unix",protocol) != 0)) &&
+ (*host != '\0') && (strcmp("unix",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, "/tmp/launch", 11) == 0)
+- actual_filelen = snprintf(file, filelen, "%s:%d", base, display);
+- else
++ struct stat sbuf;
++ if (0 == stat(host, &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, "%s%d", base, display);
++ }
++
+ if(actual_filelen < 0)
+ {
+ free(file);
+--
+1.9.1
+
</ins></span></pre>
</div>
</div>
</body>
</html>