<!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>[141472] trunk/dports/x11/xorg-server</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/141472">141472</a></dd>
<dt>Author</dt> <dd>jeremyhu@macports.org</dd>
<dt>Date</dt> <dd>2015-10-19 13:35:08 -0700 (Mon, 19 Oct 2015)</dd>
</dl>
<h3>Log Message</h3>
<pre>xorg-server: Bump to 1.17.2</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkdportsx11xorgserverPortfile">trunk/dports/x11/xorg-server/Portfile</a></li>
<li><a href="#trunkdportsx11xorgserverfiles0001XQuartzGLXUse__glXEnableExtensiontobuildextenspatch">trunk/dports/x11/xorg-server/files/0001-XQuartz-GLX-Use-__glXEnableExtension-to-build-extens.patch</a></li>
<li><a href="#trunkdportsx11xorgserverfiles0002XQuartzSilenceWpointerboolconversionpatch">trunk/dports/x11/xorg-server/files/0002-XQuartz-Silence-Wpointer-bool-conversion.patch</a></li>
<li><a href="#trunkdportsx11xorgserverfiles0003XQuartzSilenceWunusedvariablepatch">trunk/dports/x11/xorg-server/files/0003-XQuartz-Silence-Wunused-variable.patch</a></li>
<li><a href="#trunkdportsx11xorgserverfiles0004XQuartzSilenceWunusedfunctionpatch">trunk/dports/x11/xorg-server/files/0004-XQuartz-Silence-Wunused-function.patch</a></li>
<li><a href="#trunkdportsx11xorgserverfiles0005XQuartzSilenceWformatsecurityforNSRunAlertPanelpatch">trunk/dports/x11/xorg-server/files/0005-XQuartz-Silence-Wformat-security-for-NSRunAlertPanel.patch</a></li>
<li><a href="#trunkdportsx11xorgserverfiles0006XQuartzRelaxAppTransportSecurityforcommunicatipatch">trunk/dports/x11/xorg-server/files/0006-XQuartz-Relax-App-Transport-Security-for-communicati.patch</a></li>
<li><a href="#trunkdportsx11xorgserverfiles0007XQuartzRemoveInfoPliststringspatch">trunk/dports/x11/xorg-server/files/0007-XQuartz-Remove-InfoPlist.strings.patch</a></li>
<li><a href="#trunkdportsx11xorgserverfiles0008XQuartzFixhowwecalculatetheheightoftheOSXmpatch">trunk/dports/x11/xorg-server/files/0008-XQuartz-Fix-how-we-calculate-the-height-of-the-OSX-m.patch</a></li>
<li><a href="#trunkdportsx11xorgserverfiles5000sdksymsshUseCPPFLAGSnotCFLAGSpatch">trunk/dports/x11/xorg-server/files/5000-sdksyms.sh-Use-CPPFLAGS-not-CFLAGS.patch</a></li>
<li><a href="#trunkdportsx11xorgserverfiles5003fbRevertfbchangesthatbrokeXQuartzpatch">trunk/dports/x11/xorg-server/files/5003-fb-Revert-fb-changes-that-broke-XQuartz.patch</a></li>
</ul>
<h3>Added Paths</h3>
<ul>
<li><a href="#trunkdportsx11xorgserverfiles1000XQuartzMakesurethatdarwin_all_modifier_mask_addipatch">trunk/dports/x11/xorg-server/files/1000-XQuartz-Make-sure-that-darwin_all_modifier_mask_addi.patch</a></li>
<li><a href="#trunkdportsx11xorgserverfiles5001UseoldmiTrapezoidsandmiTrianglesroutinespatch">trunk/dports/x11/xorg-server/files/5001-Use-old-miTrapezoids-and-miTriangles-routines.patch</a></li>
<li><a href="#trunkdportsx11xorgserverfiles5002fbRevertfbchangesthatbrokeXQuartzpatch">trunk/dports/x11/xorg-server/files/5002-fb-Revert-fb-changes-that-broke-XQuartz.patch</a></li>
</ul>
<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkdportsx11xorgserverfiles5001WorkaroundtheGCclippingprobleminmiPaintWindowpatch">trunk/dports/x11/xorg-server/files/5001-Workaround-the-GC-clipping-problem-in-miPaintWindow-.patch</a></li>
<li><a href="#trunkdportsx11xorgserverfiles5002UseoldmiTrapezoidsandmiTrianglesroutinespatch">trunk/dports/x11/xorg-server/files/5002-Use-old-miTrapezoids-and-miTriangles-routines.patch</a></li>
<li><a href="#trunkdportsx11xorgserverfiles5004fbRevertfbchangesthatbrokeXQuartzpatch">trunk/dports/x11/xorg-server/files/5004-fb-Revert-fb-changes-that-broke-XQuartz.patch</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkdportsx11xorgserverPortfile"></a>
<div class="modfile"><h4>Modified: trunk/dports/x11/xorg-server/Portfile (141471 => 141472)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/x11/xorg-server/Portfile        2015-10-19 18:09:40 UTC (rev 141471)
+++ trunk/dports/x11/xorg-server/Portfile        2015-10-19 20:35:08 UTC (rev 141472)
</span><span class="lines">@@ -5,8 +5,7 @@
</span><span class="cx"> name                xorg-server
</span><span class="cx"> conflicts xorg-server-devel
</span><span class="cx"> set my_name        xorg-server
</span><del>-version                1.16.4
-revision 1
</del><ins>+version                1.17.2
</ins><span class="cx"> categories        x11 devel
</span><span class="cx"> license                X11
</span><span class="cx"> maintainers        jeremyhu openmaintainer
</span><span class="lines">@@ -22,9 +21,8 @@
</span><span class="cx"> dist_subdir ${my_name}
</span><span class="cx"> distname ${my_name}-${version}
</span><span class="cx">
</span><del>-checksums sha1 b2ccace1316fb94a23514a760227c156bd6116cd \
- rmd160 db32dd1d4edb61a7bf472f8f434febeea921ff56 \
- sha256 abb6e1cc9213a9915a121f48576ff6739a0b8cdb3d32796f9a7743c9a6efc871
</del><ins>+checksums rmd160 bf575a269f1e7b729992a20989be84e09fcc88a2 \
+ sha256 f61120612728f2c5034671d0ca3e2273438c60aba93b3dda4a8aa40e6a257993
</ins><span class="cx">
</span><span class="cx"> use_bzip2        yes
</span><span class="cx"> use_parallel_build yes
</span><span class="lines">@@ -89,19 +87,19 @@
</span><span class="cx">         RAWCPP=${configure.cpp}
</span><span class="cx">
</span><span class="cx"> patchfiles \
</span><del>- 0001-XQuartz-GLX-Use-__glXEnableExtension-to-build-extens.patch \
- 0002-XQuartz-Silence-Wpointer-bool-conversion.patch \
- 0003-XQuartz-Silence-Wunused-variable.patch \
- 0004-XQuartz-Silence-Wunused-function.patch \
- 0005-XQuartz-Silence-Wformat-security-for-NSRunAlertPanel.patch \
- 0006-XQuartz-Relax-App-Transport-Security-for-communicati.patch \
- 0007-XQuartz-Remove-InfoPlist.strings.patch \
- 0008-XQuartz-Fix-how-we-calculate-the-height-of-the-OSX-m.patch \
- 5000-sdksyms.sh-Use-CPPFLAGS-not-CFLAGS.patch \
- 5001-Workaround-the-GC-clipping-problem-in-miPaintWindow-.patch \
- 5002-Use-old-miTrapezoids-and-miTriangles-routines.patch \
- 5003-fb-Revert-fb-changes-that-broke-XQuartz.patch \
- 5004-fb-Revert-fb-changes-that-broke-XQuartz.patch
</del><ins>+        0001-XQuartz-GLX-Use-__glXEnableExtension-to-build-extens.patch \
+        0002-XQuartz-Silence-Wpointer-bool-conversion.patch \
+        0003-XQuartz-Silence-Wunused-variable.patch \
+        0004-XQuartz-Silence-Wunused-function.patch \
+        0005-XQuartz-Silence-Wformat-security-for-NSRunAlertPanel.patch \
+        0006-XQuartz-Relax-App-Transport-Security-for-communicati.patch \
+        0007-XQuartz-Remove-InfoPlist.strings.patch \
+        0008-XQuartz-Fix-how-we-calculate-the-height-of-the-OSX-m.patch \
+        1000-XQuartz-Make-sure-that-darwin_all_modifier_mask_addi.patch \
+        5000-sdksyms.sh-Use-CPPFLAGS-not-CFLAGS.patch \
+        5001-Use-old-miTrapezoids-and-miTriangles-routines.patch \
+        5002-fb-Revert-fb-changes-that-broke-XQuartz.patch \
+        5003-fb-Revert-fb-changes-that-broke-XQuartz.patch
</ins><span class="cx">
</span><span class="cx"> patch.pre_args -p1
</span><span class="cx">
</span></span></pre></div>
<a id="trunkdportsx11xorgserverfiles0001XQuartzGLXUse__glXEnableExtensiontobuildextenspatch"></a>
<div class="modfile"><h4>Modified: trunk/dports/x11/xorg-server/files/0001-XQuartz-GLX-Use-__glXEnableExtension-to-build-extens.patch (141471 => 141472)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/x11/xorg-server/files/0001-XQuartz-GLX-Use-__glXEnableExtension-to-build-extens.patch        2015-10-19 18:09:40 UTC (rev 141471)
+++ trunk/dports/x11/xorg-server/files/0001-XQuartz-GLX-Use-__glXEnableExtension-to-build-extens.patch        2015-10-19 20:35:08 UTC (rev 141472)
</span><span class="lines">@@ -1,4 +1,4 @@
</span><del>-From 87c6ecdec88bb9ebbda240979575fd33da38a39c Mon Sep 17 00:00:00 2001
</del><ins>+From c15e48bb032514f1123f715719c25eaba7e043a7 Mon Sep 17 00:00:00 2001
</ins><span class="cx"> From: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
</span><span class="cx"> Date: Sun, 1 Jun 2014 04:29:19 -0700
</span><span class="cx"> Subject: [PATCH 1/8] XQuartz: GLX: Use __glXEnableExtension to build
</span></span></pre></div>
<a id="trunkdportsx11xorgserverfiles0002XQuartzSilenceWpointerboolconversionpatch"></a>
<div class="modfile"><h4>Modified: trunk/dports/x11/xorg-server/files/0002-XQuartz-Silence-Wpointer-bool-conversion.patch (141471 => 141472)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/x11/xorg-server/files/0002-XQuartz-Silence-Wpointer-bool-conversion.patch        2015-10-19 18:09:40 UTC (rev 141471)
+++ trunk/dports/x11/xorg-server/files/0002-XQuartz-Silence-Wpointer-bool-conversion.patch        2015-10-19 20:35:08 UTC (rev 141472)
</span><span class="lines">@@ -1,4 +1,4 @@
</span><del>-From f28810c4ca90b397cd3e9856b51350804162596f Mon Sep 17 00:00:00 2001
</del><ins>+From 414fc605a930c5baa7e65cc303b05f3977b86baf Mon Sep 17 00:00:00 2001
</ins><span class="cx"> From: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
</span><span class="cx"> Date: Tue, 9 Jun 2015 23:29:40 -0700
</span><span class="cx"> Subject: [PATCH 2/8] XQuartz: Silence -Wpointer-bool-conversion
</span></span></pre></div>
<a id="trunkdportsx11xorgserverfiles0003XQuartzSilenceWunusedvariablepatch"></a>
<div class="modfile"><h4>Modified: trunk/dports/x11/xorg-server/files/0003-XQuartz-Silence-Wunused-variable.patch (141471 => 141472)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/x11/xorg-server/files/0003-XQuartz-Silence-Wunused-variable.patch        2015-10-19 18:09:40 UTC (rev 141471)
+++ trunk/dports/x11/xorg-server/files/0003-XQuartz-Silence-Wunused-variable.patch        2015-10-19 20:35:08 UTC (rev 141472)
</span><span class="lines">@@ -1,4 +1,4 @@
</span><del>-From 9aebf5f8bf8317e63b26719a5d6fd55a29a7d829 Mon Sep 17 00:00:00 2001
</del><ins>+From 601e9b5f8c147ef4242b4bda76e9a16e3d635370 Mon Sep 17 00:00:00 2001
</ins><span class="cx"> From: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
</span><span class="cx"> Date: Tue, 9 Jun 2015 23:30:50 -0700
</span><span class="cx"> Subject: [PATCH 3/8] XQuartz: Silence -Wunused-variable
</span></span></pre></div>
<a id="trunkdportsx11xorgserverfiles0004XQuartzSilenceWunusedfunctionpatch"></a>
<div class="modfile"><h4>Modified: trunk/dports/x11/xorg-server/files/0004-XQuartz-Silence-Wunused-function.patch (141471 => 141472)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/x11/xorg-server/files/0004-XQuartz-Silence-Wunused-function.patch        2015-10-19 18:09:40 UTC (rev 141471)
+++ trunk/dports/x11/xorg-server/files/0004-XQuartz-Silence-Wunused-function.patch        2015-10-19 20:35:08 UTC (rev 141472)
</span><span class="lines">@@ -1,4 +1,4 @@
</span><del>-From e39ffe687bd12fb8ff278073060f7d48769bccc0 Mon Sep 17 00:00:00 2001
</del><ins>+From 434890171d5ab4ec61a05596cb33e469a61a870c Mon Sep 17 00:00:00 2001
</ins><span class="cx"> From: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
</span><span class="cx"> Date: Tue, 9 Jun 2015 23:34:50 -0700
</span><span class="cx"> Subject: [PATCH 4/8] XQuartz: Silence -Wunused-function
</span></span></pre></div>
<a id="trunkdportsx11xorgserverfiles0005XQuartzSilenceWformatsecurityforNSRunAlertPanelpatch"></a>
<div class="modfile"><h4>Modified: trunk/dports/x11/xorg-server/files/0005-XQuartz-Silence-Wformat-security-for-NSRunAlertPanel.patch (141471 => 141472)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/x11/xorg-server/files/0005-XQuartz-Silence-Wformat-security-for-NSRunAlertPanel.patch        2015-10-19 18:09:40 UTC (rev 141471)
+++ trunk/dports/x11/xorg-server/files/0005-XQuartz-Silence-Wformat-security-for-NSRunAlertPanel.patch        2015-10-19 20:35:08 UTC (rev 141472)
</span><span class="lines">@@ -1,4 +1,4 @@
</span><del>-From 5788401a9acba603d86161e716cc3e1f83ac8e44 Mon Sep 17 00:00:00 2001
</del><ins>+From ba00d8fe70cbb16e45e578437defaf3eed6d25f4 Mon Sep 17 00:00:00 2001
</ins><span class="cx"> From: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
</span><span class="cx"> Date: Tue, 9 Jun 2015 23:41:12 -0700
</span><span class="cx"> Subject: [PATCH 5/8] XQuartz: Silence -Wformat-security for NSRunAlertPanel
</span></span></pre></div>
<a id="trunkdportsx11xorgserverfiles0006XQuartzRelaxAppTransportSecurityforcommunicatipatch"></a>
<div class="modfile"><h4>Modified: trunk/dports/x11/xorg-server/files/0006-XQuartz-Relax-App-Transport-Security-for-communicati.patch (141471 => 141472)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/x11/xorg-server/files/0006-XQuartz-Relax-App-Transport-Security-for-communicati.patch        2015-10-19 18:09:40 UTC (rev 141471)
+++ trunk/dports/x11/xorg-server/files/0006-XQuartz-Relax-App-Transport-Security-for-communicati.patch        2015-10-19 20:35:08 UTC (rev 141472)
</span><span class="lines">@@ -1,4 +1,4 @@
</span><del>-From fa848c31ba3e74d05b9408506f553d5612031de8 Mon Sep 17 00:00:00 2001
</del><ins>+From d939043594fe75c49f356e717f94195050f6d08c Mon Sep 17 00:00:00 2001
</ins><span class="cx"> From: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
</span><span class="cx"> Date: Mon, 12 Oct 2015 02:04:11 -0700
</span><span class="cx"> Subject: [PATCH 6/8] XQuartz: Relax App Transport Security for communicating
</span></span></pre></div>
<a id="trunkdportsx11xorgserverfiles0007XQuartzRemoveInfoPliststringspatch"></a>
<div class="modfile"><h4>Modified: trunk/dports/x11/xorg-server/files/0007-XQuartz-Remove-InfoPlist.strings.patch (141471 => 141472)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/x11/xorg-server/files/0007-XQuartz-Remove-InfoPlist.strings.patch        2015-10-19 18:09:40 UTC (rev 141471)
+++ trunk/dports/x11/xorg-server/files/0007-XQuartz-Remove-InfoPlist.strings.patch        2015-10-19 20:35:08 UTC (rev 141472)
</span><span class="lines">@@ -1,4 +1,4 @@
</span><del>-From fbefe5e78c9b7ad83a7a4adc39c972ba3b000750 Mon Sep 17 00:00:00 2001
</del><ins>+From 3a7ed42d33d264f7151fa2ed9bef7a55bde1c0e2 Mon Sep 17 00:00:00 2001
</ins><span class="cx"> From: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
</span><span class="cx"> Date: Mon, 12 Oct 2015 02:06:10 -0700
</span><span class="cx"> Subject: [PATCH 7/8] XQuartz: Remove InfoPlist.strings
</span></span></pre></div>
<a id="trunkdportsx11xorgserverfiles0008XQuartzFixhowwecalculatetheheightoftheOSXmpatch"></a>
<div class="modfile"><h4>Modified: trunk/dports/x11/xorg-server/files/0008-XQuartz-Fix-how-we-calculate-the-height-of-the-OSX-m.patch (141471 => 141472)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/x11/xorg-server/files/0008-XQuartz-Fix-how-we-calculate-the-height-of-the-OSX-m.patch        2015-10-19 18:09:40 UTC (rev 141471)
+++ trunk/dports/x11/xorg-server/files/0008-XQuartz-Fix-how-we-calculate-the-height-of-the-OSX-m.patch        2015-10-19 20:35:08 UTC (rev 141472)
</span><span class="lines">@@ -1,4 +1,4 @@
</span><del>-From 29a418b15edd448ae66e2cd318dc456929ce0bfc Mon Sep 17 00:00:00 2001
</del><ins>+From 52506f60b6680e11fa418f4e59e7159eb5b7ec39 Mon Sep 17 00:00:00 2001
</ins><span class="cx"> From: Ken Thomases <ken@codeweavers.com>
</span><span class="cx"> Date: Mon, 12 Oct 2015 16:45:41 -0700
</span><span class="cx"> Subject: [PATCH 8/8] XQuartz: Fix how we calculate the height of the OSX menu
</span></span></pre></div>
<a id="trunkdportsx11xorgserverfiles1000XQuartzMakesurethatdarwin_all_modifier_mask_addipatch"></a>
<div class="addfile"><h4>Added: trunk/dports/x11/xorg-server/files/1000-XQuartz-Make-sure-that-darwin_all_modifier_mask_addi.patch (0 => 141472)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/x11/xorg-server/files/1000-XQuartz-Make-sure-that-darwin_all_modifier_mask_addi.patch         (rev 0)
+++ trunk/dports/x11/xorg-server/files/1000-XQuartz-Make-sure-that-darwin_all_modifier_mask_addi.patch        2015-10-19 20:35:08 UTC (rev 141472)
</span><span class="lines">@@ -0,0 +1,93 @@
</span><ins>+From 3db7e332d374bf8cee581c31b7d50d7ac0509187 Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
+Date: Sun, 18 Oct 2015 23:03:23 -0700
+Subject: [PATCH] XQuartz: Make sure that darwin_all_modifier_mask_additions is
+ 0-terminated
+
+Found by ASan
+
+X.Org X Server 1.17.99.901 Build Date: 20151018
+================================================================
+==40471==ERROR: AddressSanitizer: global-buffer-overflow on address 0x000101fed7a4 at pc 0x000101584030 bp 0x70000029f920 sp 0x70000029f918
+READ of size 4 at 0x000101fed7a4 thread T7
+ #0 0x10158402f in DarwinEQInit darwinEvents.c:377
+ #1 0x10157f3bc in InitInput darwin.c:566
+ #2 0x101be87ad in dix_main main.c:268
+ #3 0x10159131b in server_thread quartzStartup.c:66
+ #4 0x7fff8a535c12 in _pthread_body (/usr/lib/system/libsystem_pthread.dylib+0x3c12)
+ #5 0x7fff8a535b8f in _pthread_start (/usr/lib/system/libsystem_pthread.dylib+0x3b8f)
+ #6 0x7fff8a533374 in thread_start (/usr/lib/system/libsystem_pthread.dylib+0x1374)
+
+0x000101fed7a4 is located 0 bytes to the right of global variable 'darwin_all_modifier_mask_additions' defined in 'darwinEvents.c:181:12'
+(0x101fed7a0) of size 4
+SUMMARY: AddressSanitizer: global-buffer-overflow darwinEvents.c:377 DarwinEQInit
+Shadow bytes around the buggy address:
+ 0x1000203fdaa0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 0x1000203fdab0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 0x1000203fdac0: f9 f9 f9 f9 00 00 00 00 00 00 f9 f9 f9 f9 f9 f9
+ 0x1000203fdad0: 00 00 00 00 00 00 00 00 f9 f9 f9 f9 00 00 00 00
+ 0x1000203fdae0: 00 00 f9 f9 f9 f9 f9 f9 00 00 00 00 00 f9 f9 f9
+=>0x1000203fdaf0: f9 f9 f9 f9[04]f9 f9 f9 f9 f9 f9 f9 00 00 00 00
+ 0x1000203fdb00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 0x1000203fdb10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 0x1000203fdb20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 0x1000203fdb30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 0x1000203fdb40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+Shadow byte legend (one shadow byte represents 8 application bytes):
+ Addressable: 00
+ Partially addressable: 01 02 03 04 05 06 07
+ Heap left redzone: fa
+ Heap right redzone: fb
+ Freed heap region: fd
+ Stack left redzone: f1
+ Stack mid redzone: f2
+ Stack right redzone: f3
+ Stack partial redzone: f4
+ Stack after return: f5
+ Stack use after scope: f8
+ Global redzone: f9
+ Global init order: f6
+ Poisoned by user: f7
+ Container overflow: fc
+ Array cookie: ac
+ Intra object redzone: bb
+ ASan internal: fe
+ Left alloca redzone: ca
+ Right alloca redzone: cb
+Thread T7 created by T0 here:
+ #0 0x10242ee99 in wrap_pthread_create
+(/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/7.0.0/lib/darwin/libclang_rt.asan_osx_dynamic.dylib+0x37e99)
+ #1 0x101591089 in create_thread quartzStartup.c:78
+ #2 0x101590ed9 in QuartzInitServer quartzStartup.c:95
+ #3 0x1015697eb in X11ApplicationMain X11Application.m:1277
+ #4 0x101575dc0 in X11ControllerMain X11Controller.m:984
+ #5 0x10159171a in server_main quartzStartup.c:127
+ #6 0x101540fc0 in do_start_x11_server bundle-main.c:436
+ #7 0x101544869 in _Xstart_x11_server mach_startupServer.c:189
+ #8 0x101545c96 in mach_startup_server mach_startupServer.c:398
+ #9 0x7fff8d1b70f3 in mach_msg_server (/usr/lib/system/libsystem_kernel.dylib+0x110f3)
+ #10 0x1015416e7 in main bundle-main.c:774
+ #11 0x7fff8bd975ac in start (/usr/lib/system/libdyld.dylib+0x35ac)
+ #12 0x0 (<unknown module>)
+
+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
+---
+ hw/xquartz/darwinEvents.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/hw/xquartz/darwinEvents.c b/hw/xquartz/darwinEvents.c
+index 9bf2f14..0c8e7c4 100644
+--- a/hw/xquartz/darwinEvents.c
++++ b/hw/xquartz/darwinEvents.c
+@@ -178,7 +178,7 @@ static int darwin_x11_modifier_mask_list[] = {
+ 0
+ };
+
+-static int darwin_all_modifier_mask_additions[] = { NX_SECONDARYFNMASK, };
++static int darwin_all_modifier_mask_additions[] = { NX_SECONDARYFNMASK, 0 };
+
+ static void
+ DarwinUpdateModifiers(int pressed, // KeyPress or KeyRelease
+--
+2.6.2
+
</ins></span></pre></div>
<a id="trunkdportsx11xorgserverfiles5000sdksymsshUseCPPFLAGSnotCFLAGSpatch"></a>
<div class="modfile"><h4>Modified: trunk/dports/x11/xorg-server/files/5000-sdksyms.sh-Use-CPPFLAGS-not-CFLAGS.patch (141471 => 141472)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/x11/xorg-server/files/5000-sdksyms.sh-Use-CPPFLAGS-not-CFLAGS.patch        2015-10-19 18:09:40 UTC (rev 141471)
+++ trunk/dports/x11/xorg-server/files/5000-sdksyms.sh-Use-CPPFLAGS-not-CFLAGS.patch        2015-10-19 20:35:08 UTC (rev 141472)
</span><span class="lines">@@ -1,7 +1,7 @@
</span><del>-From fcc77206683e2e13d8287598599fa2a2bffe336c Mon Sep 17 00:00:00 2001
</del><ins>+From 9ba585c94cbea9a1446b5abad58eda529f70ad8d Mon Sep 17 00:00:00 2001
</ins><span class="cx"> From: Jeremy Huddleston <jeremyhu@apple.com>
</span><span class="cx"> Date: Fri, 13 Jan 2012 12:00:57 -0800
</span><del>-Subject: [PATCH 5000/5005] sdksyms.sh: Use CPPFLAGS, not CFLAGS
</del><ins>+Subject: [PATCH 5000/5003] sdksyms.sh: Use CPPFLAGS, not CFLAGS
</ins><span class="cx">
</span><span class="cx"> CFLAGS can include flags which are not useful to the preprocessor
</span><span class="cx"> or can even cause it to fail. This fixes a build issue on darwin
</span><span class="lines">@@ -13,10 +13,10 @@
</span><span class="cx"> hw/xfree86/Makefile.am | 5 ++---
</span><span class="cx"> 1 file changed, 2 insertions(+), 3 deletions(-)
</span><span class="cx">
</span><del>-diff --git server-1.16-branch/hw/xfree86/Makefile.am server-1.16-branch/hw/xfree86/Makefile.am
-index c5992c3..71b6769 100644
---- server-1.16-branch/hw/xfree86/Makefile.am
-+++ server-1.16-branch/hw/xfree86/Makefile.am
</del><ins>+diff --git a/hw/xfree86/Makefile.am b/hw/xfree86/Makefile.am
+index 27f2cc6..d898c43 100644
+--- a/hw/xfree86/Makefile.am
++++ b/hw/xfree86/Makefile.am
</ins><span class="cx"> @@ -48,8 +48,7 @@ DIST_SUBDIRS = common ddc i2c x86emu int10 fbdevhw os-support \
</span><span class="cx"> bin_PROGRAMS = Xorg
</span><span class="cx"> nodist_Xorg_SOURCES = sdksyms.c
</span><span class="lines">@@ -37,5 +37,5 @@
</span><span class="cx"> SDKSYMS_DEP = sdksyms.dep
</span><span class="cx"> -include $(SDKSYMS_DEP)
</span><span class="cx"> --
</span><del>-2.0.4
</del><ins>+2.6.1
</ins><span class="cx">
</span></span></pre></div>
<a id="trunkdportsx11xorgserverfiles5001UseoldmiTrapezoidsandmiTrianglesroutinespatch"></a>
<div class="addfile"><h4>Added: trunk/dports/x11/xorg-server/files/5001-Use-old-miTrapezoids-and-miTriangles-routines.patch (0 => 141472)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/x11/xorg-server/files/5001-Use-old-miTrapezoids-and-miTriangles-routines.patch         (rev 0)
+++ trunk/dports/x11/xorg-server/files/5001-Use-old-miTrapezoids-and-miTriangles-routines.patch        2015-10-19 20:35:08 UTC (rev 141472)
</span><span class="lines">@@ -0,0 +1,297 @@
</span><ins>+From f78bd64ef12cffbf46327641ba7baa05bfa07a6b Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
+Date: Sat, 2 Nov 2013 11:00:23 -0700
+Subject: [PATCH 5001/5003] Use old miTrapezoids and miTriangles routines
+
+Reverts commits:
+ 788ccb9a8bcf6a4fb4054c507111eec3338fb969
+ 566f1931ee2916269e164e114bffaf2da1d039d1
+
+http://xquartz.macosforge.org/trac/ticket/525
+
+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
+---
+ fb/fbpict.c | 2 -
+ render/mipict.c | 4 +-
+ render/mipict.h | 27 ++++++++++++++
+ render/mitrap.c | 111 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ render/mitri.c | 61 +++++++++++++++++++++++++++++++
+ 5 files changed, 201 insertions(+), 4 deletions(-)
+
+diff --git a/fb/fbpict.c b/fb/fbpict.c
+index c8378ad..cafb027 100644
+--- a/fb/fbpict.c
++++ b/fb/fbpict.c
+@@ -499,10 +499,8 @@ fbPictureInit(ScreenPtr pScreen, PictFormatPtr formats, int nformats)
+ ps->UnrealizeGlyph = fbUnrealizeGlyph;
+ ps->CompositeRects = miCompositeRects;
+ ps->RasterizeTrapezoid = fbRasterizeTrapezoid;
+- ps->Trapezoids = fbTrapezoids;
+ ps->AddTraps = fbAddTraps;
+ ps->AddTriangles = fbAddTriangles;
+- ps->Triangles = fbTriangles;
+
+ return TRUE;
+ }
+diff --git a/render/mipict.c b/render/mipict.c
+index a725104..e14293a 100644
+--- a/render/mipict.c
++++ b/render/mipict.c
+@@ -575,8 +575,8 @@ miPictureInit(ScreenPtr pScreen, PictFormatPtr formats, int nformats)
+ ps->Composite = 0; /* requires DDX support */
+ ps->Glyphs = miGlyphs;
+ ps->CompositeRects = miCompositeRects;
+- ps->Trapezoids = 0;
+- ps->Triangles = 0;
++ ps->Trapezoids = miTrapezoids;
++ ps->Triangles = miTriangles;
+
+ ps->RasterizeTrapezoid = 0; /* requires DDX support */
+ ps->AddTraps = 0; /* requires DDX support */
+diff --git a/render/mipict.h b/render/mipict.h
+index 23ce9e8..e0f1d4c 100644
+--- a/render/mipict.h
++++ b/render/mipict.h
+@@ -122,6 +122,16 @@ miCompositeRects(CARD8 op,
+ xRenderColor * color, int nRect, xRectangle *rects);
+
+ extern _X_EXPORT void
++miTriangles (CARD8         op,
++         PicturePtr         pSrc,
++         PicturePtr         pDst,
++         PictFormatPtr maskFormat,
++         INT16         xSrc,
++         INT16         ySrc,
++         int         ntri,
++         xTriangle         *tris);
++
++extern _X_EXPORT void
+
+ miTriStrip(CARD8 op,
+ PicturePtr pSrc,
+@@ -137,10 +147,27 @@ miTriFan(CARD8 op,
+ PictFormatPtr maskFormat,
+ INT16 xSrc, INT16 ySrc, int npoints, xPointFixed * points);
+
++extern _X_EXPORT PicturePtr
++miCreateAlphaPicture (ScreenPtr         pScreen,
++                 PicturePtr pDst,
++                 PictFormatPtr pPictFormat,
++                 CARD16         width,
++                 CARD16         height);
++
+ extern _X_EXPORT void
+ miTrapezoidBounds(int ntrap, xTrapezoid * traps, BoxPtr box);
+
+ extern _X_EXPORT void
++miTrapezoids (CARD8 op,
++ PicturePtr pSrc,
++ PicturePtr pDst,
++ PictFormatPtr maskFormat,
++ INT16 xSrc,
++ INT16 ySrc,
++ int ntrap,
++ xTrapezoid *traps);
++
++extern _X_EXPORT void
+ miPointFixedBounds(int npoint, xPointFixed * points, BoxPtr bounds);
+
+ extern _X_EXPORT void
+diff --git a/render/mitrap.c b/render/mitrap.c
+index 17b6dcd..71c1857 100644
+--- a/render/mitrap.c
++++ b/render/mitrap.c
+@@ -34,6 +34,55 @@
+ #include "picturestr.h"
+ #include "mipict.h"
+
++PicturePtr
++miCreateAlphaPicture (ScreenPtr         pScreen,
++                 PicturePtr pDst,
++                 PictFormatPtr pPictFormat,
++                 CARD16         width,
++                 CARD16         height)
++{
++ PixmapPtr         pPixmap;
++ PicturePtr         pPicture;
++ GCPtr         pGC;
++ int                 error;
++ xRectangle         rect;
++
++ if (width > 32767 || height > 32767)
++        return 0;
++
++ if (!pPictFormat)
++ {
++        if (pDst->polyEdge == PolyEdgeSharp)
++         pPictFormat = PictureMatchFormat (pScreen, 1, PICT_a1);
++        else
++         pPictFormat = PictureMatchFormat (pScreen, 8, PICT_a8);
++        if (!pPictFormat)
++         return 0;
++ }
++
++ pPixmap = (*pScreen->CreatePixmap) (pScreen, width, height,
++                                        pPictFormat->depth, 0);
++ if (!pPixmap)
++        return 0;
++ pGC = GetScratchGC (pPixmap->drawable.depth, pScreen);
++ if (!pGC)
++ {
++        (*pScreen->DestroyPixmap) (pPixmap);
++        return 0;
++ }
++ ValidateGC (&pPixmap->drawable, pGC);
++ rect.x = 0;
++ rect.y = 0;
++ rect.width = width;
++ rect.height = height;
++ (*pGC->ops->PolyFillRect)(&pPixmap->drawable, pGC, 1, &rect);
++ FreeScratchGC (pGC);
++ pPicture = CreatePicture (0, &pPixmap->drawable, pPictFormat,
++                         0, 0, serverClient, &error);
++ (*pScreen->DestroyPixmap) (pPixmap);
++ return pPicture;
++}
++
+ static xFixed
+ miLineFixedX(xLineFixed * l, xFixed y, Bool ceil)
+ {
+@@ -79,3 +128,65 @@ miTrapezoidBounds(int ntrap, xTrapezoid * traps, BoxPtr box)
+ box->x2 = x2;
+ }
+ }
++
++
++void
++miTrapezoids (CARD8 op,
++ PicturePtr pSrc,
++ PicturePtr pDst,
++ PictFormatPtr maskFormat,
++ INT16 xSrc,
++ INT16 ySrc,
++ int ntrap,
++ xTrapezoid *traps)
++{
++ ScreenPtr pScreen = pDst->pDrawable->pScreen;
++ PictureScreenPtr ps = GetPictureScreen(pScreen);
++
++ /*
++ * Check for solid alpha add
++ */
++ if (op == PictOpAdd && miIsSolidAlpha (pSrc))
++ {
++ for (; ntrap; ntrap--, traps++)
++ (*ps->RasterizeTrapezoid) (pDst, traps, 0, 0);
++ }
++ else if (maskFormat)
++ {
++ PicturePtr pPicture;
++ BoxRec bounds;
++ INT16 xDst, yDst;
++ INT16 xRel, yRel;
++
++ xDst = traps[0].left.p1.x >> 16;
++ yDst = traps[0].left.p1.y >> 16;
++
++ miTrapezoidBounds (ntrap, traps, &bounds);
++ if (bounds.y1 >= bounds.y2 || bounds.x1 >= bounds.x2)
++ return;
++ pPicture = miCreateAlphaPicture (pScreen, pDst, maskFormat,
++ bounds.x2 - bounds.x1,
++ bounds.y2 - bounds.y1);
++ if (!pPicture)
++ return;
++ for (; ntrap; ntrap--, traps++)
++ (*ps->RasterizeTrapezoid) (pPicture, traps,
++ -bounds.x1, -bounds.y1);
++ xRel = bounds.x1 + xSrc - xDst;
++ yRel = bounds.y1 + ySrc - yDst;
++ CompositePicture (op, pSrc, pPicture, pDst,
++ xRel, yRel, 0, 0, bounds.x1, bounds.y1,
++ bounds.x2 - bounds.x1,
++ bounds.y2 - bounds.y1);
++ FreePicture (pPicture, 0);
++ }
++ else
++ {
++ if (pDst->polyEdge == PolyEdgeSharp)
++ maskFormat = PictureMatchFormat (pScreen, 1, PICT_a1);
++ else
++ maskFormat = PictureMatchFormat (pScreen, 8, PICT_a8);
++ for (; ntrap; ntrap--, traps++)
++ miTrapezoids (op, pSrc, pDst, maskFormat, xSrc, ySrc, 1, traps);
++ }
++}
+diff --git a/render/mitri.c b/render/mitri.c
+index 922f22a..bdca9ca 100644
+--- a/render/mitri.c
++++ b/render/mitri.c
+@@ -65,3 +65,64 @@ miTriangleBounds(int ntri, xTriangle * tris, BoxPtr bounds)
+ {
+ miPointFixedBounds(ntri * 3, (xPointFixed *) tris, bounds);
+ }
++
++
++void
++miTriangles (CARD8         op,
++         PicturePtr         pSrc,
++         PicturePtr         pDst,
++         PictFormatPtr maskFormat,
++         INT16         xSrc,
++         INT16         ySrc,
++         int         ntri,
++         xTriangle         *tris)
++{
++ ScreenPtr                pScreen = pDst->pDrawable->pScreen;
++ PictureScreenPtr ps = GetPictureScreen(pScreen);
++
++ /*
++ * Check for solid alpha add
++ */
++ if (op == PictOpAdd && miIsSolidAlpha (pSrc))
++ {
++        (*ps->AddTriangles) (pDst, 0, 0, ntri, tris);
++ }
++ else if (maskFormat)
++ {
++        BoxRec                bounds;
++        PicturePtr        pPicture;
++        INT16                xDst, yDst;
++        INT16                xRel, yRel;
++        
++        xDst = tris[0].p1.x >> 16;
++        yDst = tris[0].p1.y >> 16;
++
++        miTriangleBounds (ntri, tris, &bounds);
++        if (bounds.x2 <= bounds.x1 || bounds.y2 <= bounds.y1)
++         return;
++        pPicture = miCreateAlphaPicture (pScreen, pDst, maskFormat,
++                                         bounds.x2 - bounds.x1,
++                                         bounds.y2 - bounds.y1);
++        if (!pPicture)
++         return;
++        (*ps->AddTriangles) (pPicture, -bounds.x1, -bounds.y1, ntri, tris);
++        
++        xRel = bounds.x1 + xSrc - xDst;
++        yRel = bounds.y1 + ySrc - yDst;
++        CompositePicture (op, pSrc, pPicture, pDst,
++                         xRel, yRel, 0, 0, bounds.x1, bounds.y1,
++                         bounds.x2 - bounds.x1, bounds.y2 - bounds.y1);
++        FreePicture (pPicture, 0);
++ }
++ else
++ {
++        if (pDst->polyEdge == PolyEdgeSharp)
++         maskFormat = PictureMatchFormat (pScreen, 1, PICT_a1);
++        else
++         maskFormat = PictureMatchFormat (pScreen, 8, PICT_a8);
++        
++        for (; ntri; ntri--, tris++)
++         miTriangles (op, pSrc, pDst, maskFormat, xSrc, ySrc, 1, tris);
++ }
++}
++
+--
+2.6.1
+
</ins></span></pre></div>
<a id="trunkdportsx11xorgserverfiles5001WorkaroundtheGCclippingprobleminmiPaintWindowpatch"></a>
<div class="delfile"><h4>Deleted: trunk/dports/x11/xorg-server/files/5001-Workaround-the-GC-clipping-problem-in-miPaintWindow-.patch (141471 => 141472)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/x11/xorg-server/files/5001-Workaround-the-GC-clipping-problem-in-miPaintWindow-.patch        2015-10-19 18:09:40 UTC (rev 141471)
+++ trunk/dports/x11/xorg-server/files/5001-Workaround-the-GC-clipping-problem-in-miPaintWindow-.patch        2015-10-19 20:35:08 UTC (rev 141472)
</span><span class="lines">@@ -1,165 +0,0 @@
</span><del>-From 1b47538d15f803b3ae45feb0d092b991118940bb Mon Sep 17 00:00:00 2001
-From: Jeremy Huddleston <jeremyhu@apple.com>
-Date: Fri, 30 Apr 2010 13:08:25 -0700
-Subject: [PATCH 5001/5005] Workaround the GC clipping problem in miPaintWindow
- and add some debugging output.
-
-Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
----
- mi/miexpose.c | 104 ++++++++++++++++++++++++++++++++++++++++++++++++++++------
- 1 file changed, 94 insertions(+), 10 deletions(-)
-
-diff --git server-1.16-branch/mi/miexpose.c server-1.16-branch/mi/miexpose.c
-index 198c433..ad1621d 100644
---- server-1.16-branch/mi/miexpose.c
-+++ server-1.16-branch/mi/miexpose.c
-@@ -489,7 +489,8 @@ void RootlessSetPixmapOfAncestors(WindowPtr pWin);
- void RootlessStartDrawing(WindowPtr pWin);
- void RootlessDamageRegion(WindowPtr pWin, RegionPtr prgn);
- Bool IsFramedWindow(WindowPtr pWin);
--#endif
-+#include "../fb/fb.h"
-+#endif
-
- void
- miPaintWindow(WindowPtr pWin, RegionPtr prgn, int what)
-@@ -518,23 +519,37 @@ miPaintWindow(WindowPtr pWin, RegionPtr prgn, int what)
- Bool solid = TRUE;
- DrawablePtr drawable = &pWin->drawable;
-
-+#ifdef XQUARTZ_CLIP_DEBUG
-+ ErrorF("START %d BS %d (pR = %ld)\n", what, pWin->backgroundState, ParentRelative);
-+ ErrorF(" Rgn: %d %d %d %d\n", prgn->extents.x1, prgn->extents.y1,
-+         prgn->extents.x2 - prgn->extents.x1,
-+         prgn->extents.y2 - prgn->extents.y1);
-+ ErrorF(" Win: %d %d (%d %d) %d %d\n", pWin->origin.x, pWin->origin.y,
-+         pWin->winSize.extents.x1, pWin->winSize.extents.y1,
-+         pWin->winSize.extents.x2 - pWin->winSize.extents.x1,
-+                                         pWin->winSize.extents.y2 - pWin->winSize.extents.y1);
-+ ErrorF(" Draw: %d %d %d %d\n", pWin->drawable.x, pWin->drawable.y,
-+                                 pWin->drawable.width, pWin->drawable.height);
-+#endif
-+
- #ifdef ROOTLESS
- if (!drawable || drawable->type == UNDRAWABLE_WINDOW)
- return;
-+#endif
-+
-+ if (what == PW_BACKGROUND)
-+ {
-+#ifdef ROOTLESS
-+ if(IsFramedWindow(pWin)) {
-+ RootlessStartDrawing(pWin);
-+ RootlessDamageRegion(pWin, prgn);
-
-- if (IsFramedWindow(pWin)) {
-- RootlessStartDrawing(pWin);
-- RootlessDamageRegion(pWin, prgn);
--
-- if (pWin->backgroundState == ParentRelative) {
-- if ((what == PW_BACKGROUND) ||
-- (what == PW_BORDER && !pWin->borderIsPixel))
-+ if(pWin->backgroundState == ParentRelative) {
- RootlessSetPixmapOfAncestors(pWin);
-+ }
- }
-- }
- #endif
-
-- if (what == PW_BACKGROUND) {
- while (pWin->backgroundState == ParentRelative)
- pWin = pWin->parent;
-
-@@ -559,6 +574,18 @@ miPaintWindow(WindowPtr pWin, RegionPtr prgn, int what)
- else {
- PixmapPtr pixmap;
-
-+#ifdef ROOTLESS
-+        if(IsFramedWindow(pWin)) {
-+         RootlessStartDrawing(pWin);
-+         RootlessDamageRegion(pWin, prgn);
-+        
-+         if(!pWin->borderIsPixel &&
-+                pWin->backgroundState == ParentRelative) {
-+                RootlessSetPixmapOfAncestors(pWin);
-+         }
-+        }
-+#endif
-+
- tile_x_off = drawable->x;
- tile_y_off = drawable->y;
-
-@@ -567,6 +594,12 @@ miPaintWindow(WindowPtr pWin, RegionPtr prgn, int what)
- return;
- pixmap = (*pScreen->GetWindowPixmap) ((WindowPtr) drawable);
- drawable = &pixmap->drawable;
-+
-+#ifdef XQUARTZ_CLIP_DEBUG
-+ ErrorF(" Draw: %d %d %d %d\n",
-+ drawable->x, drawable->y, drawable->width, drawable->height);
-+#endif
-+        
- #ifdef COMPOSITE
- draw_x_off = pixmap->screen_x;
- draw_y_off = pixmap->screen_y;
-@@ -629,6 +662,57 @@ miPaintWindow(WindowPtr pWin, RegionPtr prgn, int what)
- ChangeGC(NullClient, pGC, gcmask, gcval);
- ValidateGC(drawable, pGC);
-
-+#ifdef XQUARTZ_CLIP_DEBUG
-+ ErrorF(" GC: %d %d %d %d\n",
-+         pGC->pCompositeClip->extents.x1, pGC->pCompositeClip->extents.y1,
-+         pGC->pCompositeClip->extents.x2 - pGC->pCompositeClip->extents.x1,
-+         pGC->pCompositeClip->extents.y2 - pGC->pCompositeClip->extents.y1);
-+#endif
-+
-+#ifdef XQUARTZ
-+ /* Looks like our clipping isn't set right for some reason:
-+ * http://xquartz.macosforge.org/trac/ticket/290
-+ */
-+ if(what == PW_BORDER) {
-+
-+#if 0
-+        if(solid) {
-+#if 1
-+         fbFillRegionSolid(&pWin->drawable,
-+                         prgn,
-+                         0,
-+                         fbReplicatePixel(fill.pixel,
-+                                         pWin->drawable.bitsPerPixel));
-+#else
-+         fbFillRegionSolid(drawable,
-+                         prgn,
-+                         0,
-+                         fbReplicatePixel(fill.pixel,
-+                                         drawable->bitsPerPixel));
-+#endif
-+         return;
-+        }
-+#endif
-+
-+        pGC->pCompositeClip->extents.x1 += prgn->extents.x1;
-+        pGC->pCompositeClip->extents.y1 += prgn->extents.y1;
-+        pGC->pCompositeClip->extents.x2 += prgn->extents.x1;
-+        pGC->pCompositeClip->extents.y2 += prgn->extents.y1;
-+        
-+        if(pGC->pCompositeClip->extents.x2 > drawable->pScreen->width)
-+         pGC->pCompositeClip->extents.x2 = drawable->pScreen->width;
-+        if(pGC->pCompositeClip->extents.y2 > drawable->pScreen->height)
-+         pGC->pCompositeClip->extents.y2 = drawable->pScreen->height;
-+ }
-+#endif
-+
-+#ifdef XQUARTZ_CLIP_DEBUG
-+ ErrorF(" GC: %d %d %d %d\n",
-+         pGC->pCompositeClip->extents.x1, pGC->pCompositeClip->extents.y1,
-+         pGC->pCompositeClip->extents.x2 - pGC->pCompositeClip->extents.x1,
-+         pGC->pCompositeClip->extents.y2 - pGC->pCompositeClip->extents.y1);
-+#endif
-+
- numRects = RegionNumRects(prgn);
- pbox = RegionRects(prgn);
- for (i = numRects; --i >= 0; pbox++, prect++) {
---
-2.0.4
-
</del></span></pre></div>
<a id="trunkdportsx11xorgserverfiles5002UseoldmiTrapezoidsandmiTrianglesroutinespatch"></a>
<div class="delfile"><h4>Deleted: trunk/dports/x11/xorg-server/files/5002-Use-old-miTrapezoids-and-miTriangles-routines.patch (141471 => 141472)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/x11/xorg-server/files/5002-Use-old-miTrapezoids-and-miTriangles-routines.patch        2015-10-19 18:09:40 UTC (rev 141471)
+++ trunk/dports/x11/xorg-server/files/5002-Use-old-miTrapezoids-and-miTriangles-routines.patch        2015-10-19 20:35:08 UTC (rev 141472)
</span><span class="lines">@@ -1,297 +0,0 @@
</span><del>-From 29c3bb27a56a6120b583a0ff4e36b4ae8b13c002 Mon Sep 17 00:00:00 2001
-From: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
-Date: Sat, 2 Nov 2013 11:00:23 -0700
-Subject: [PATCH 5002/5005] Use old miTrapezoids and miTriangles routines
-
-Reverts commits:
- 788ccb9a8bcf6a4fb4054c507111eec3338fb969
- 566f1931ee2916269e164e114bffaf2da1d039d1
-
-http://xquartz.macosforge.org/trac/ticket/525
-
-Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
----
- fb/fbpict.c | 2 -
- render/mipict.c | 4 +-
- render/mipict.h | 27 ++++++++++++++
- render/mitrap.c | 111 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- render/mitri.c | 61 +++++++++++++++++++++++++++++++
- 5 files changed, 201 insertions(+), 4 deletions(-)
-
-diff --git server-1.16-branch/fb/fbpict.c server-1.16-branch/fb/fbpict.c
-index 21baf89..65eb2a4 100644
---- server-1.16-branch/fb/fbpict.c
-+++ server-1.16-branch/fb/fbpict.c
-@@ -507,10 +507,8 @@ fbPictureInit(ScreenPtr pScreen, PictFormatPtr formats, int nformats)
- ps->UnrealizeGlyph = fbUnrealizeGlyph;
- ps->CompositeRects = miCompositeRects;
- ps->RasterizeTrapezoid = fbRasterizeTrapezoid;
-- ps->Trapezoids = fbTrapezoids;
- ps->AddTraps = fbAddTraps;
- ps->AddTriangles = fbAddTriangles;
-- ps->Triangles = fbTriangles;
-
- return TRUE;
- }
-diff --git server-1.16-branch/render/mipict.c server-1.16-branch/render/mipict.c
-index 3959fc4..2bb1a1d 100644
---- server-1.16-branch/render/mipict.c
-+++ server-1.16-branch/render/mipict.c
-@@ -595,8 +595,8 @@ miPictureInit(ScreenPtr pScreen, PictFormatPtr formats, int nformats)
- ps->Composite = 0; /* requires DDX support */
- ps->Glyphs = miGlyphs;
- ps->CompositeRects = miCompositeRects;
-- ps->Trapezoids = 0;
-- ps->Triangles = 0;
-+ ps->Trapezoids = miTrapezoids;
-+ ps->Triangles = miTriangles;
-
- ps->RasterizeTrapezoid = 0; /* requires DDX support */
- ps->AddTraps = 0; /* requires DDX support */
-diff --git server-1.16-branch/render/mipict.h server-1.16-branch/render/mipict.h
-index a16dd31..ee90b58 100644
---- server-1.16-branch/render/mipict.h
-+++ server-1.16-branch/render/mipict.h
-@@ -122,6 +122,16 @@ miCompositeRects(CARD8 op,
- xRenderColor * color, int nRect, xRectangle *rects);
-
- extern _X_EXPORT void
-+miTriangles (CARD8         op,
-+         PicturePtr         pSrc,
-+         PicturePtr         pDst,
-+         PictFormatPtr maskFormat,
-+         INT16         xSrc,
-+         INT16         ySrc,
-+         int         ntri,
-+         xTriangle         *tris);
-+
-+extern _X_EXPORT void
-
- miTriStrip(CARD8 op,
- PicturePtr pSrc,
-@@ -137,10 +147,27 @@ miTriFan(CARD8 op,
- PictFormatPtr maskFormat,
- INT16 xSrc, INT16 ySrc, int npoints, xPointFixed * points);
-
-+extern _X_EXPORT PicturePtr
-+miCreateAlphaPicture (ScreenPtr         pScreen,
-+                 PicturePtr pDst,
-+                 PictFormatPtr pPictFormat,
-+                 CARD16         width,
-+                 CARD16         height);
-+
- extern _X_EXPORT void
- miTrapezoidBounds(int ntrap, xTrapezoid * traps, BoxPtr box);
-
- extern _X_EXPORT void
-+miTrapezoids (CARD8 op,
-+ PicturePtr pSrc,
-+ PicturePtr pDst,
-+ PictFormatPtr maskFormat,
-+ INT16 xSrc,
-+ INT16 ySrc,
-+ int ntrap,
-+ xTrapezoid *traps);
-+
-+extern _X_EXPORT void
- miPointFixedBounds(int npoint, xPointFixed * points, BoxPtr bounds);
-
- extern _X_EXPORT void
-diff --git server-1.16-branch/render/mitrap.c server-1.16-branch/render/mitrap.c
-index 17b6dcd..71c1857 100644
---- server-1.16-branch/render/mitrap.c
-+++ server-1.16-branch/render/mitrap.c
-@@ -34,6 +34,55 @@
- #include "picturestr.h"
- #include "mipict.h"
-
-+PicturePtr
-+miCreateAlphaPicture (ScreenPtr         pScreen,
-+                 PicturePtr pDst,
-+                 PictFormatPtr pPictFormat,
-+                 CARD16         width,
-+                 CARD16         height)
-+{
-+ PixmapPtr         pPixmap;
-+ PicturePtr         pPicture;
-+ GCPtr         pGC;
-+ int                 error;
-+ xRectangle         rect;
-+
-+ if (width > 32767 || height > 32767)
-+        return 0;
-+
-+ if (!pPictFormat)
-+ {
-+        if (pDst->polyEdge == PolyEdgeSharp)
-+         pPictFormat = PictureMatchFormat (pScreen, 1, PICT_a1);
-+        else
-+         pPictFormat = PictureMatchFormat (pScreen, 8, PICT_a8);
-+        if (!pPictFormat)
-+         return 0;
-+ }
-+
-+ pPixmap = (*pScreen->CreatePixmap) (pScreen, width, height,
-+                                        pPictFormat->depth, 0);
-+ if (!pPixmap)
-+        return 0;
-+ pGC = GetScratchGC (pPixmap->drawable.depth, pScreen);
-+ if (!pGC)
-+ {
-+        (*pScreen->DestroyPixmap) (pPixmap);
-+        return 0;
-+ }
-+ ValidateGC (&pPixmap->drawable, pGC);
-+ rect.x = 0;
-+ rect.y = 0;
-+ rect.width = width;
-+ rect.height = height;
-+ (*pGC->ops->PolyFillRect)(&pPixmap->drawable, pGC, 1, &rect);
-+ FreeScratchGC (pGC);
-+ pPicture = CreatePicture (0, &pPixmap->drawable, pPictFormat,
-+                         0, 0, serverClient, &error);
-+ (*pScreen->DestroyPixmap) (pPixmap);
-+ return pPicture;
-+}
-+
- static xFixed
- miLineFixedX(xLineFixed * l, xFixed y, Bool ceil)
- {
-@@ -79,3 +128,65 @@ miTrapezoidBounds(int ntrap, xTrapezoid * traps, BoxPtr box)
- box->x2 = x2;
- }
- }
-+
-+
-+void
-+miTrapezoids (CARD8 op,
-+ PicturePtr pSrc,
-+ PicturePtr pDst,
-+ PictFormatPtr maskFormat,
-+ INT16 xSrc,
-+ INT16 ySrc,
-+ int ntrap,
-+ xTrapezoid *traps)
-+{
-+ ScreenPtr pScreen = pDst->pDrawable->pScreen;
-+ PictureScreenPtr ps = GetPictureScreen(pScreen);
-+
-+ /*
-+ * Check for solid alpha add
-+ */
-+ if (op == PictOpAdd && miIsSolidAlpha (pSrc))
-+ {
-+ for (; ntrap; ntrap--, traps++)
-+ (*ps->RasterizeTrapezoid) (pDst, traps, 0, 0);
-+ }
-+ else if (maskFormat)
-+ {
-+ PicturePtr pPicture;
-+ BoxRec bounds;
-+ INT16 xDst, yDst;
-+ INT16 xRel, yRel;
-+
-+ xDst = traps[0].left.p1.x >> 16;
-+ yDst = traps[0].left.p1.y >> 16;
-+
-+ miTrapezoidBounds (ntrap, traps, &bounds);
-+ if (bounds.y1 >= bounds.y2 || bounds.x1 >= bounds.x2)
-+ return;
-+ pPicture = miCreateAlphaPicture (pScreen, pDst, maskFormat,
-+ bounds.x2 - bounds.x1,
-+ bounds.y2 - bounds.y1);
-+ if (!pPicture)
-+ return;
-+ for (; ntrap; ntrap--, traps++)
-+ (*ps->RasterizeTrapezoid) (pPicture, traps,
-+ -bounds.x1, -bounds.y1);
-+ xRel = bounds.x1 + xSrc - xDst;
-+ yRel = bounds.y1 + ySrc - yDst;
-+ CompositePicture (op, pSrc, pPicture, pDst,
-+ xRel, yRel, 0, 0, bounds.x1, bounds.y1,
-+ bounds.x2 - bounds.x1,
-+ bounds.y2 - bounds.y1);
-+ FreePicture (pPicture, 0);
-+ }
-+ else
-+ {
-+ if (pDst->polyEdge == PolyEdgeSharp)
-+ maskFormat = PictureMatchFormat (pScreen, 1, PICT_a1);
-+ else
-+ maskFormat = PictureMatchFormat (pScreen, 8, PICT_a8);
-+ for (; ntrap; ntrap--, traps++)
-+ miTrapezoids (op, pSrc, pDst, maskFormat, xSrc, ySrc, 1, traps);
-+ }
-+}
-diff --git server-1.16-branch/render/mitri.c server-1.16-branch/render/mitri.c
-index 922f22a..bdca9ca 100644
---- server-1.16-branch/render/mitri.c
-+++ server-1.16-branch/render/mitri.c
-@@ -65,3 +65,64 @@ miTriangleBounds(int ntri, xTriangle * tris, BoxPtr bounds)
- {
- miPointFixedBounds(ntri * 3, (xPointFixed *) tris, bounds);
- }
-+
-+
-+void
-+miTriangles (CARD8         op,
-+         PicturePtr         pSrc,
-+         PicturePtr         pDst,
-+         PictFormatPtr maskFormat,
-+         INT16         xSrc,
-+         INT16         ySrc,
-+         int         ntri,
-+         xTriangle         *tris)
-+{
-+ ScreenPtr                pScreen = pDst->pDrawable->pScreen;
-+ PictureScreenPtr ps = GetPictureScreen(pScreen);
-+
-+ /*
-+ * Check for solid alpha add
-+ */
-+ if (op == PictOpAdd && miIsSolidAlpha (pSrc))
-+ {
-+        (*ps->AddTriangles) (pDst, 0, 0, ntri, tris);
-+ }
-+ else if (maskFormat)
-+ {
-+        BoxRec                bounds;
-+        PicturePtr        pPicture;
-+        INT16                xDst, yDst;
-+        INT16                xRel, yRel;
-+        
-+        xDst = tris[0].p1.x >> 16;
-+        yDst = tris[0].p1.y >> 16;
-+
-+        miTriangleBounds (ntri, tris, &bounds);
-+        if (bounds.x2 <= bounds.x1 || bounds.y2 <= bounds.y1)
-+         return;
-+        pPicture = miCreateAlphaPicture (pScreen, pDst, maskFormat,
-+                                         bounds.x2 - bounds.x1,
-+                                         bounds.y2 - bounds.y1);
-+        if (!pPicture)
-+         return;
-+        (*ps->AddTriangles) (pPicture, -bounds.x1, -bounds.y1, ntri, tris);
-+        
-+        xRel = bounds.x1 + xSrc - xDst;
-+        yRel = bounds.y1 + ySrc - yDst;
-+        CompositePicture (op, pSrc, pPicture, pDst,
-+                         xRel, yRel, 0, 0, bounds.x1, bounds.y1,
-+                         bounds.x2 - bounds.x1, bounds.y2 - bounds.y1);
-+        FreePicture (pPicture, 0);
-+ }
-+ else
-+ {
-+        if (pDst->polyEdge == PolyEdgeSharp)
-+         maskFormat = PictureMatchFormat (pScreen, 1, PICT_a1);
-+        else
-+         maskFormat = PictureMatchFormat (pScreen, 8, PICT_a8);
-+        
-+        for (; ntri; ntri--, tris++)
-+         miTriangles (op, pSrc, pDst, maskFormat, xSrc, ySrc, 1, tris);
-+ }
-+}
-+
---
-2.0.4
-
</del></span></pre></div>
<a id="trunkdportsx11xorgserverfiles5002fbRevertfbchangesthatbrokeXQuartzpatch"></a>
<div class="addfile"><h4>Added: trunk/dports/x11/xorg-server/files/5002-fb-Revert-fb-changes-that-broke-XQuartz.patch (0 => 141472)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/x11/xorg-server/files/5002-fb-Revert-fb-changes-that-broke-XQuartz.patch         (rev 0)
+++ trunk/dports/x11/xorg-server/files/5002-fb-Revert-fb-changes-that-broke-XQuartz.patch        2015-10-19 20:35:08 UTC (rev 141472)
</span><span class="lines">@@ -0,0 +1,316 @@
</span><ins>+From e35f1856819eaaa4f0cc4a0687ff1f4b518085dc Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston <jeremyhu@apple.com>
+Date: Fri, 12 Feb 2010 19:48:52 -0800
+Subject: [PATCH 5002/5003] fb: Revert fb changes that broke XQuartz
+
+http://bugs.freedesktop.org/show_bug.cgi?id=26124
+
+Revert "Fix source pictures getting random transforms after 2d6a8f668342a5190cdf43b5."
+Revert "fb: Adjust transform or composite coordinates for pixman operations"
+
+http://bugs.freedesktop.org/26124
+
+This reverts commit a72c65e9176c51de95db2fdbf4c5d946a4911695.
+This reverts commit a6bd5d2e482a5aa84acb3d4932e2a166d8670ef1.
+
+Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
+---
+ fb/fb.h | 3 +--
+ fb/fbpict.c | 82 ++++++++++++++++++-------------------------------------------
+ fb/fbtrap.c | 43 ++++++++++++++------------------
+ 3 files changed, 43 insertions(+), 85 deletions(-)
+
+diff --git a/fb/fb.h b/fb/fb.h
+index c687aa7..256a1ee 100644
+--- a/fb/fb.h
++++ b/fb/fb.h
+@@ -1321,8 +1321,7 @@ fbFillRegionSolid(DrawablePtr pDrawable,
+ RegionPtr pRegion, FbBits and, FbBits xor);
+
+ extern _X_EXPORT pixman_image_t *image_from_pict(PicturePtr pict,
+- Bool has_clip,
+- int *xoff, int *yoff);
++ Bool has_clip);
+
+ extern _X_EXPORT void free_pixman_pict(PicturePtr, pixman_image_t *);
+
+diff --git a/fb/fbpict.c b/fb/fbpict.c
+index cafb027..6ee63e9 100644
+--- a/fb/fbpict.c
++++ b/fb/fbpict.c
+@@ -46,23 +46,18 @@ fbComposite(CARD8 op,
+ INT16 yMask, INT16 xDst, INT16 yDst, CARD16 width, CARD16 height)
+ {
+ pixman_image_t *src, *mask, *dest;
+- int src_xoff, src_yoff;
+- int msk_xoff, msk_yoff;
+- int dst_xoff, dst_yoff;
+-
+ miCompositeSourceValidate(pSrc);
+ if (pMask)
+ miCompositeSourceValidate(pMask);
+
+- src = image_from_pict(pSrc, FALSE, &src_xoff, &src_yoff);
+- mask = image_from_pict(pMask, FALSE, &msk_xoff, &msk_yoff);
+- dest = image_from_pict(pDst, TRUE, &dst_xoff, &dst_yoff);
++ src = image_from_pict(pSrc, TRUE);
++ mask = image_from_pict(pMask, TRUE);
++ dest = image_from_pict(pDst, TRUE);
+
+ if (src && dest && !(pMask && !mask)) {
+ pixman_image_composite(op, src, mask, dest,
+- xSrc + src_xoff, ySrc + src_yoff,
+- xMask + msk_xoff, yMask + msk_yoff,
+- xDst + dst_xoff, yDst + dst_yoff, width, height);
++ xSrc, ySrc, xMask, yMask, xDst, yDst,
++ width, height);
+ }
+
+ free_pixman_pict(pSrc, src);
+@@ -289,20 +284,22 @@ create_conical_gradient_image(PictGradient * gradient)
+ }
+
+ static pixman_image_t *
+-create_bits_picture(PicturePtr pict, Bool has_clip, int *xoff, int *yoff)
++create_bits_picture(PicturePtr pict, Bool has_clip)
+ {
+- PixmapPtr pixmap;
+ FbBits *bits;
+ FbStride stride;
+- int bpp;
++ int bpp, xoff, yoff;
+ pixman_image_t *image;
+
+- fbGetDrawablePixmap(pict->pDrawable, pixmap, *xoff, *yoff);
+- fbGetPixmapBitsData(pixmap, bits, stride, bpp);
++ fbGetDrawable (pict->pDrawable, bits, stride, bpp, xoff, yoff);
++
++ bits = (FbBits*)((CARD8*)bits +
++ (pict->pDrawable->y + yoff) * stride * sizeof(FbBits) +
++ (pict->pDrawable->x + xoff) * (bpp / 8));
+
+ image = pixman_image_create_bits((pixman_format_code_t) pict->format,
+- pixmap->drawable.width,
+- pixmap->drawable.height, (uint32_t *) bits,
++ pict->pDrawable->width,
++ pict->pDrawable->height, (uint32_t *) bits,
+ stride * sizeof(FbStride));
+
+ if (!image)
+@@ -321,57 +318,31 @@ create_bits_picture(PicturePtr pict, Bool has_clip, int *xoff, int *yoff)
+ if (pict->clientClip)
+ pixman_image_set_has_client_clip(image, TRUE);
+
+- if (*xoff || *yoff)
+- pixman_region_translate(pict->pCompositeClip, *xoff, *yoff);
++ pixman_region_translate (pict->pCompositeClip, - pict->pDrawable->x, - pict->pDrawable->y);
+
+ pixman_image_set_clip_region(image, pict->pCompositeClip);
+
+- if (*xoff || *yoff)
+- pixman_region_translate(pict->pCompositeClip, -*xoff, -*yoff);
++ pixman_region_translate (pict->pCompositeClip, pict->pDrawable->x, pict->pDrawable->y);
+ }
+
+ /* Indexed table */
+ if (pict->pFormat->index.devPrivate)
+ pixman_image_set_indexed(image, pict->pFormat->index.devPrivate);
+
+- /* Add in drawable origin to position within the image */
+- *xoff += pict->pDrawable->x;
+- *yoff += pict->pDrawable->y;
+-
+ return image;
+ }
+
+ static pixman_image_t *image_from_pict_internal(PicturePtr pict, Bool has_clip,
+- int *xoff, int *yoff,
+ Bool is_alpha_map);
+
+ static void
+-set_image_properties(pixman_image_t * image, PicturePtr pict, Bool has_clip,
+- int *xoff, int *yoff, Bool is_alpha_map)
++set_image_properties(pixman_image_t * image, PicturePtr pict, Bool is_alpha_map)
+ {
+ pixman_repeat_t repeat;
+ pixman_filter_t filter;
+
+ if (pict->transform) {
+- /* For source images, adjust the transform to account
+- * for the drawable offset within the pixman image,
+- * then set the offset to 0 as it will be used
+- * to compute positions within the transformed image.
+- */
+- if (!has_clip) {
+- struct pixman_transform adjusted;
+-
+- adjusted = *pict->transform;
+- pixman_transform_translate(&adjusted,
+- NULL,
+- pixman_int_to_fixed(*xoff),
+- pixman_int_to_fixed(*yoff));
+- pixman_image_set_transform(image, &adjusted);
+- *xoff = 0;
+- *yoff = 0;
+- }
+- else
+- pixman_image_set_transform(image, pict->transform);
++ pixman_image_set_transform(image, pict->transform);
+ }
+
+ switch (pict->repeatType) {
+@@ -399,10 +370,8 @@ set_image_properties(pixman_image_t * image, PicturePtr pict, Bool has_clip,
+ * as the alpha map for this operation
+ */
+ if (pict->alphaMap && !is_alpha_map) {
+- int alpha_xoff, alpha_yoff;
+ pixman_image_t *alpha_map =
+- image_from_pict_internal(pict->alphaMap, FALSE, &alpha_xoff,
+- &alpha_yoff, TRUE);
++ image_from_pict_internal(pict->alphaMap, TRUE, TRUE);
+
+ pixman_image_set_alpha_map(image, alpha_map, pict->alphaOrigin.x,
+ pict->alphaOrigin.y);
+@@ -436,8 +405,7 @@ set_image_properties(pixman_image_t * image, PicturePtr pict, Bool has_clip,
+ }
+
+ static pixman_image_t *
+-image_from_pict_internal(PicturePtr pict, Bool has_clip, int *xoff, int *yoff,
+- Bool is_alpha_map)
++image_from_pict_internal(PicturePtr pict, Bool has_clip, Bool is_alpha_map)
+ {
+ pixman_image_t *image = NULL;
+
+@@ -445,7 +413,7 @@ image_from_pict_internal(PicturePtr pict, Bool has_clip, int *xoff, int *yoff,
+ return NULL;
+
+ if (pict->pDrawable) {
+- image = create_bits_picture(pict, has_clip, xoff, yoff);
++ image = create_bits_picture(pict, has_clip);
+ }
+ else if (pict->pSourcePict) {
+ SourcePict *sp = pict->pSourcePict;
+@@ -463,19 +431,17 @@ image_from_pict_internal(PicturePtr pict, Bool has_clip, int *xoff, int *yoff,
+ else if (sp->type == SourcePictTypeConical)
+ image = create_conical_gradient_image(gradient);
+ }
+- *xoff = *yoff = 0;
+ }
+
+ if (image)
+- set_image_properties(image, pict, has_clip, xoff, yoff, is_alpha_map);
+-
++ set_image_properties (image, pict, is_alpha_map);
+ return image;
+ }
+
+ pixman_image_t *
+-image_from_pict(PicturePtr pict, Bool has_clip, int *xoff, int *yoff)
++image_from_pict (PicturePtr pict, Bool has_clip)
+ {
+- return image_from_pict_internal(pict, has_clip, xoff, yoff, FALSE);
++ return image_from_pict_internal (pict, has_clip, FALSE);
+ }
+
+ void
+diff --git a/fb/fbtrap.c b/fb/fbtrap.c
+index bf82f8f..0145ce9 100644
+--- a/fb/fbtrap.c
++++ b/fb/fbtrap.c
+@@ -36,13 +36,12 @@ fbAddTraps(PicturePtr pPicture,
+ INT16 x_off, INT16 y_off, int ntrap, xTrap * traps)
+ {
+ pixman_image_t *image;
+- int dst_xoff, dst_yoff;
+
+- if (!(image = image_from_pict(pPicture, FALSE, &dst_xoff, &dst_yoff)))
+- return;
+-
+- pixman_add_traps(image, x_off + dst_xoff, y_off + dst_yoff,
+- ntrap, (pixman_trap_t *) traps);
++ if (!(image = image_from_pict (pPicture, FALSE)))
++        return;
++
++ pixman_add_traps(image, x_off, y_off,
++ ntrap, (pixman_trap_t *)traps);
+
+ free_pixman_pict(pPicture, image);
+ }
+@@ -52,13 +51,12 @@ fbRasterizeTrapezoid(PicturePtr pPicture,
+ xTrapezoid * trap, int x_off, int y_off)
+ {
+ pixman_image_t *image;
+- int dst_xoff, dst_yoff;
+
+- if (!(image = image_from_pict(pPicture, FALSE, &dst_xoff, &dst_yoff)))
++ if (!(image = image_from_pict (pPicture, FALSE)))
+ return;
+
+- pixman_rasterize_trapezoid(image, (pixman_trapezoid_t *) trap,
+- x_off + dst_xoff, y_off + dst_yoff);
++ pixman_rasterize_trapezoid(image, (pixman_trapezoid_t *)trap,
++ x_off, y_off);
+
+ free_pixman_pict(pPicture, image);
+ }
+@@ -68,14 +66,12 @@ fbAddTriangles(PicturePtr pPicture,
+ INT16 x_off, INT16 y_off, int ntri, xTriangle * tris)
+ {
+ pixman_image_t *image;
+- int dst_xoff, dst_yoff;
+
+- if (!(image = image_from_pict(pPicture, FALSE, &dst_xoff, &dst_yoff)))
++ if (!(image = image_from_pict (pPicture, FALSE)))
+ return;
+-
+- pixman_add_triangles(image,
+- dst_xoff + x_off, dst_yoff + y_off,
+- ntri, (pixman_triangle_t *) tris);
++
++ pixman_add_triangles(image, x_off, y_off, ntri,
++ (pixman_triangle_t *)tris);
+
+ free_pixman_pict(pPicture, image);
+ }
+@@ -98,13 +94,11 @@ fbShapes(CompositeShapesFunc composite,
+ int16_t ySrc, int nshapes, int shape_size, const uint8_t * shapes)
+ {
+ pixman_image_t *src, *dst;
+- int src_xoff, src_yoff;
+- int dst_xoff, dst_yoff;
+
+ miCompositeSourceValidate(pSrc);
+
+- src = image_from_pict(pSrc, FALSE, &src_xoff, &src_yoff);
+- dst = image_from_pict(pDst, TRUE, &dst_xoff, &dst_yoff);
++ src = image_from_pict(pSrc, FALSE);
++ dst = image_from_pict(pDst, TRUE);
+
+ if (src && dst) {
+ pixman_format_code_t format;
+@@ -121,9 +115,8 @@ fbShapes(CompositeShapesFunc composite,
+
+ for (i = 0; i < nshapes; ++i) {
+ composite(op, src, dst, format,
+- xSrc + src_xoff,
+- ySrc + src_yoff,
+- dst_xoff, dst_yoff, 1, shapes + i * shape_size);
++ xSrc, ySrc, 0, 0,
++ 1, shapes + i * shape_size);
+ }
+ }
+ else {
+@@ -143,8 +136,8 @@ fbShapes(CompositeShapesFunc composite,
+ }
+
+ composite(op, src, dst, format,
+- xSrc + src_xoff,
+- ySrc + src_yoff, dst_xoff, dst_yoff, nshapes, shapes);
++ xSrc, ySrc, 0, 0,
++ nshapes, shapes);
+ }
+
+ DamageRegionProcessPending(pDst->pDrawable);
+--
+2.6.1
+
</ins></span></pre></div>
<a id="trunkdportsx11xorgserverfiles5003fbRevertfbchangesthatbrokeXQuartzpatch"></a>
<div class="modfile"><h4>Modified: trunk/dports/x11/xorg-server/files/5003-fb-Revert-fb-changes-that-broke-XQuartz.patch (141471 => 141472)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/x11/xorg-server/files/5003-fb-Revert-fb-changes-that-broke-XQuartz.patch        2015-10-19 18:09:40 UTC (rev 141471)
+++ trunk/dports/x11/xorg-server/files/5003-fb-Revert-fb-changes-that-broke-XQuartz.patch        2015-10-19 20:35:08 UTC (rev 141472)
</span><span class="lines">@@ -1,316 +1,243 @@
</span><del>-From 0c3bf02ba1982bcfce8cef13bd0afa11c49fe796 Mon Sep 17 00:00:00 2001
-From: Jeremy Huddleston <jeremyhu@apple.com>
-Date: Fri, 12 Feb 2010 19:48:52 -0800
-Subject: [PATCH 5003/5005] fb: Revert fb changes that broke XQuartz
</del><ins>+From 942c11eb42beafd96f6dc96fd8e1e2a832c3e9d7 Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
+Date: Sat, 31 May 2014 13:14:20 -0700
+Subject: [PATCH 5003/5003] fb: Revert fb changes that broke XQuartz
</ins><span class="cx">
</span><del>-http://bugs.freedesktop.org/show_bug.cgi?id=26124
</del><ins>+ http://bugs.freedesktop.org/show_bug.cgi?id=26124
</ins><span class="cx">
</span><del>-Revert "Fix source pictures getting random transforms after 2d6a8f668342a5190cdf43b5."
-Revert "fb: Adjust transform or composite coordinates for pixman operations"
</del><ins>+Revert "Use new pixman_glyph_cache_t API that will be in pixman 0.28.0"
+Revert "fb: Fix origin of source picture in fbGlyphs"
+Revert "fb: Publish fbGlyphs and fbUnrealizeGlyph"
</ins><span class="cx">
</span><del>-http://bugs.freedesktop.org/26124
-
-This reverts commit a72c65e9176c51de95db2fdbf4c5d946a4911695.
-This reverts commit a6bd5d2e482a5aa84acb3d4932e2a166d8670ef1.
-
-Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
</del><ins>+This reverts commit 9cbcb5bd6a5360a128d15b77a02d8d3351f74366.
+This reverts commit 983e30361f49a67252d0b5d82630e70724d69dbf.
+This reverts commit 3c2c59eed3c68c0e5a93c38cf01eedad015e3157.
</ins><span class="cx"> ---
</span><del>- fb/fb.h | 3 +--
- fb/fbpict.c | 82 ++++++++++++++++++-------------------------------------------
- fb/fbtrap.c | 43 ++++++++++++++------------------
- 3 files changed, 43 insertions(+), 85 deletions(-)
</del><ins>+ fb/fb.h | 3 --
+ fb/fbpict.c | 149 +---------------------------------------------------------
+ fb/fbpict.h | 11 +----
+ fb/fbscreen.c | 1 -
+ 4 files changed, 2 insertions(+), 162 deletions(-)
</ins><span class="cx">
</span><del>-diff --git server-1.16-branch/fb/fb.h server-1.16-branch/fb/fb.h
-index 9057767..f584154 100644
---- server-1.16-branch/fb/fb.h
-+++ server-1.16-branch/fb/fb.h
-@@ -1652,8 +1652,7 @@ fbFillRegionSolid(DrawablePtr pDrawable,
- RegionPtr pRegion, FbBits and, FbBits xor);
</del><ins>+diff --git a/fb/fb.h b/fb/fb.h
+index 256a1ee..8e87498 100644
+--- a/fb/fb.h
++++ b/fb/fb.h
+@@ -1111,9 +1111,6 @@ extern _X_EXPORT void
+ extern _X_EXPORT Bool
+ fbPictureInit(ScreenPtr pScreen, PictFormatPtr formats, int nformats);
</ins><span class="cx">
</span><del>- extern _X_EXPORT pixman_image_t *image_from_pict(PicturePtr pict,
-- Bool has_clip,
-- int *xoff, int *yoff);
-+ Bool has_clip);
-
- extern _X_EXPORT void free_pixman_pict(PicturePtr, pixman_image_t *);
-
-diff --git server-1.16-branch/fb/fbpict.c server-1.16-branch/fb/fbpict.c
-index 65eb2a4..e7a3811 100644
---- server-1.16-branch/fb/fbpict.c
-+++ server-1.16-branch/fb/fbpict.c
-@@ -46,23 +46,18 @@ fbComposite(CARD8 op,
- INT16 yMask, INT16 xDst, INT16 yDst, CARD16 width, CARD16 height)
- {
- pixman_image_t *src, *mask, *dest;
-- int src_xoff, src_yoff;
-- int msk_xoff, msk_yoff;
-- int dst_xoff, dst_yoff;
</del><ins>+-extern _X_EXPORT void
+-fbDestroyGlyphCache(void);
</ins><span class="cx"> -
</span><del>- miCompositeSourceValidate(pSrc);
- if (pMask)
- miCompositeSourceValidate(pMask);
-
-- src = image_from_pict(pSrc, FALSE, &src_xoff, &src_yoff);
-- mask = image_from_pict(pMask, FALSE, &msk_xoff, &msk_yoff);
-- dest = image_from_pict(pDst, TRUE, &dst_xoff, &dst_yoff);
-+ src = image_from_pict(pSrc, TRUE);
-+ mask = image_from_pict(pMask, TRUE);
-+ dest = image_from_pict(pDst, TRUE);
-
- if (src && dest && !(pMask && !mask)) {
- pixman_image_composite(op, src, mask, dest,
-- xSrc + src_xoff, ySrc + src_yoff,
-- xMask + msk_xoff, yMask + msk_yoff,
-- xDst + dst_xoff, yDst + dst_yoff, width, height);
-+ xSrc, ySrc, xMask, yMask, xDst, yDst,
-+ width, height);
- }
-
- free_pixman_pict(pSrc, src);
-@@ -289,20 +284,22 @@ create_conical_gradient_image(PictGradient * gradient)
</del><ins>+ /*
+ * fbpixmap.c
+ */
+diff --git a/fb/fbpict.c b/fb/fbpict.c
+index 6ee63e9..9c4cc42 100644
+--- a/fb/fbpict.c
++++ b/fb/fbpict.c
+@@ -65,152 +65,6 @@ fbComposite(CARD8 op,
+ free_pixman_pict(pDst, dest);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- static pixman_image_t *
--create_bits_picture(PicturePtr pict, Bool has_clip, int *xoff, int *yoff)
-+create_bits_picture(PicturePtr pict, Bool has_clip)
- {
-- PixmapPtr pixmap;
- FbBits *bits;
- FbStride stride;
-- int bpp;
-+ int bpp, xoff, yoff;
- pixman_image_t *image;
-
-- fbGetDrawablePixmap(pict->pDrawable, pixmap, *xoff, *yoff);
-- fbGetPixmapBitsData(pixmap, bits, stride, bpp);
-+ fbGetDrawable (pict->pDrawable, bits, stride, bpp, xoff, yoff);
-+
-+ bits = (FbBits*)((CARD8*)bits +
-+ (pict->pDrawable->y + yoff) * stride * sizeof(FbBits) +
-+ (pict->pDrawable->x + xoff) * (bpp / 8));
-
- image = pixman_image_create_bits((pixman_format_code_t) pict->format,
-- pixmap->drawable.width,
-- pixmap->drawable.height, (uint32_t *) bits,
-+ pict->pDrawable->width,
-+ pict->pDrawable->height, (uint32_t *) bits,
- stride * sizeof(FbStride));
-
- if (!image)
-@@ -329,57 +326,31 @@ create_bits_picture(PicturePtr pict, Bool has_clip, int *xoff, int *yoff)
- if (pict->clientClipType != CT_NONE)
- pixman_image_set_has_client_clip(image, TRUE);
-
-- if (*xoff || *yoff)
-- pixman_region_translate(pict->pCompositeClip, *xoff, *yoff);
-+ pixman_region_translate (pict->pCompositeClip, - pict->pDrawable->x, - pict->pDrawable->y);
-
- pixman_image_set_clip_region(image, pict->pCompositeClip);
-
-- if (*xoff || *yoff)
-- pixman_region_translate(pict->pCompositeClip, -*xoff, -*yoff);
-+ pixman_region_translate (pict->pCompositeClip, pict->pDrawable->x, pict->pDrawable->y);
- }
-
- /* Indexed table */
- if (pict->pFormat->index.devPrivate)
- pixman_image_set_indexed(image, pict->pFormat->index.devPrivate);
-
-- /* Add in drawable origin to position within the image */
-- *xoff += pict->pDrawable->x;
-- *yoff += pict->pDrawable->y;
</del><ins>+-static pixman_glyph_cache_t *glyphCache;
</ins><span class="cx"> -
</span><del>- return image;
- }
-
- static pixman_image_t *image_from_pict_internal(PicturePtr pict, Bool has_clip,
-- int *xoff, int *yoff,
- Bool is_alpha_map);
-
- static void
--set_image_properties(pixman_image_t * image, PicturePtr pict, Bool has_clip,
-- int *xoff, int *yoff, Bool is_alpha_map)
-+set_image_properties(pixman_image_t * image, PicturePtr pict, Bool is_alpha_map)
- {
- pixman_repeat_t repeat;
- pixman_filter_t filter;
-
- if (pict->transform) {
-- /* For source images, adjust the transform to account
-- * for the drawable offset within the pixman image,
-- * then set the offset to 0 as it will be used
-- * to compute positions within the transformed image.
-- */
-- if (!has_clip) {
-- struct pixman_transform adjusted;
</del><ins>+-void
+-fbDestroyGlyphCache(void)
+-{
+- if (glyphCache)
+- {
+-        pixman_glyph_cache_destroy (glyphCache);
+-        glyphCache = NULL;
+- }
+-}
</ins><span class="cx"> -
</span><del>-- adjusted = *pict->transform;
-- pixman_transform_translate(&adjusted,
-- NULL,
-- pixman_int_to_fixed(*xoff),
-- pixman_int_to_fixed(*yoff));
-- pixman_image_set_transform(image, &adjusted);
-- *xoff = 0;
-- *yoff = 0;
-- }
-- else
-- pixman_image_set_transform(image, pict->transform);
-+ pixman_image_set_transform(image, pict->transform);
- }
-
- switch (pict->repeatType) {
-@@ -407,10 +378,8 @@ set_image_properties(pixman_image_t * image, PicturePtr pict, Bool has_clip,
- * as the alpha map for this operation
- */
- if (pict->alphaMap && !is_alpha_map) {
-- int alpha_xoff, alpha_yoff;
- pixman_image_t *alpha_map =
-- image_from_pict_internal(pict->alphaMap, FALSE, &alpha_xoff,
-- &alpha_yoff, TRUE);
-+ image_from_pict_internal(pict->alphaMap, TRUE, TRUE);
-
- pixman_image_set_alpha_map(image, alpha_map, pict->alphaOrigin.x,
- pict->alphaOrigin.y);
-@@ -444,8 +413,7 @@ set_image_properties(pixman_image_t * image, PicturePtr pict, Bool has_clip,
- }
-
- static pixman_image_t *
--image_from_pict_internal(PicturePtr pict, Bool has_clip, int *xoff, int *yoff,
-- Bool is_alpha_map)
-+image_from_pict_internal(PicturePtr pict, Bool has_clip, Bool is_alpha_map)
- {
- pixman_image_t *image = NULL;
-
-@@ -453,7 +421,7 @@ image_from_pict_internal(PicturePtr pict, Bool has_clip, int *xoff, int *yoff,
- return NULL;
-
- if (pict->pDrawable) {
-- image = create_bits_picture(pict, has_clip, xoff, yoff);
-+ image = create_bits_picture(pict, has_clip);
- }
- else if (pict->pSourcePict) {
- SourcePict *sp = pict->pSourcePict;
-@@ -471,19 +439,17 @@ image_from_pict_internal(PicturePtr pict, Bool has_clip, int *xoff, int *yoff,
- else if (sp->type == SourcePictTypeConical)
- image = create_conical_gradient_image(gradient);
- }
-- *xoff = *yoff = 0;
- }
-
- if (image)
-- set_image_properties(image, pict, has_clip, xoff, yoff, is_alpha_map);
</del><ins>+-static void
+-fbUnrealizeGlyph(ScreenPtr pScreen,
+-                 GlyphPtr pGlyph)
+-{
+- if (glyphCache)
+-        pixman_glyph_cache_remove (glyphCache, pGlyph, NULL);
+-}
</ins><span class="cx"> -
</span><del>-+ set_image_properties (image, pict, is_alpha_map);
- return image;
- }
-
- pixman_image_t *
--image_from_pict(PicturePtr pict, Bool has_clip, int *xoff, int *yoff)
-+image_from_pict (PicturePtr pict, Bool has_clip)
- {
-- return image_from_pict_internal(pict, has_clip, xoff, yoff, FALSE);
-+ return image_from_pict_internal (pict, has_clip, FALSE);
- }
-
- void
-diff --git server-1.16-branch/fb/fbtrap.c server-1.16-branch/fb/fbtrap.c
-index bf82f8f..0145ce9 100644
---- server-1.16-branch/fb/fbtrap.c
-+++ server-1.16-branch/fb/fbtrap.c
-@@ -36,13 +36,12 @@ fbAddTraps(PicturePtr pPicture,
- INT16 x_off, INT16 y_off, int ntrap, xTrap * traps)
- {
- pixman_image_t *image;
-- int dst_xoff, dst_yoff;
-
-- if (!(image = image_from_pict(pPicture, FALSE, &dst_xoff, &dst_yoff)))
-- return;
</del><ins>+-void
+-fbGlyphs(CARD8 op,
+-         PicturePtr pSrc,
+-         PicturePtr pDst,
+-         PictFormatPtr maskFormat,
+-         INT16 xSrc,
+-         INT16 ySrc, int nlist,
+-         GlyphListPtr list,
+-         GlyphPtr *glyphs)
+-{
+-#define N_STACK_GLYPHS 512
+- ScreenPtr pScreen = pDst->pDrawable->pScreen;
+- pixman_glyph_t stack_glyphs[N_STACK_GLYPHS];
+- pixman_glyph_t *pglyphs = stack_glyphs;
+- pixman_image_t *srcImage, *dstImage;
+- int srcXoff, srcYoff, dstXoff, dstYoff;
+- GlyphPtr glyph;
+- int n_glyphs;
+- int x, y;
+- int i, n;
+- int xDst = list->xOff, yDst = list->yOff;
</ins><span class="cx"> -
</span><del>-- pixman_add_traps(image, x_off + dst_xoff, y_off + dst_yoff,
-- ntrap, (pixman_trap_t *) traps);
-+ if (!(image = image_from_pict (pPicture, FALSE)))
-+        return;
-+
-+ pixman_add_traps(image, x_off, y_off,
-+ ntrap, (pixman_trap_t *)traps);
-
- free_pixman_pict(pPicture, image);
- }
-@@ -52,13 +51,12 @@ fbRasterizeTrapezoid(PicturePtr pPicture,
- xTrapezoid * trap, int x_off, int y_off)
</del><ins>+- miCompositeSourceValidate(pSrc);
+-
+- n_glyphs = 0;
+- for (i = 0; i < nlist; ++i)
+-        n_glyphs += list[i].len;
+-
+- if (!glyphCache)
+-        glyphCache = pixman_glyph_cache_create();
+-
+- pixman_glyph_cache_freeze (glyphCache);
+-
+- if (n_glyphs > N_STACK_GLYPHS) {
+-        if (!(pglyphs = malloc (n_glyphs * sizeof (pixman_glyph_t))))
+-         goto out;
+- }
+-
+- i = 0;
+- x = y = 0;
+- while (nlist--) {
+- x += list->xOff;
+- y += list->yOff;
+- n = list->len;
+- while (n--) {
+-         const void *g;
+-
+- glyph = *glyphs++;
+-
+-         if (!(g = pixman_glyph_cache_lookup (glyphCache, glyph, NULL))) {
+-                pixman_image_t *glyphImage;
+-                PicturePtr pPicture;
+-                int xoff, yoff;
+-
+-                pPicture = GetGlyphPicture(glyph, pScreen);
+-                if (!pPicture) {
+-                 n_glyphs--;
+-                 goto next;
+-                }
+-
+-                if (!(glyphImage = image_from_pict(pPicture, FALSE, &xoff, &yoff)))
+-                 goto out;
+-
+-                g = pixman_glyph_cache_insert(glyphCache, glyph, NULL,
+-                                         glyph->info.x,
+-                                         glyph->info.y,
+-                                         glyphImage);
+-
+-                free_pixman_pict(pPicture, glyphImage);
+-
+-                if (!g)
+-                 goto out;
+-         }
+-
+-         pglyphs[i].x = x;
+-         pglyphs[i].y = y;
+-         pglyphs[i].glyph = g;
+-         i++;
+-
+-        next:
+- x += glyph->info.xOff;
+- y += glyph->info.yOff;
+-        }
+-        list++;
+- }
+-
+- if (!(srcImage = image_from_pict(pSrc, FALSE, &srcXoff, &srcYoff)))
+-        goto out;
+-
+- if (!(dstImage = image_from_pict(pDst, TRUE, &dstXoff, &dstYoff)))
+-        goto out_free_src;
+-
+- if (maskFormat) {
+-        pixman_format_code_t format;
+-        pixman_box32_t extents;
+-
+-        format = maskFormat->format | (maskFormat->depth << 24);
+-
+-        pixman_glyph_get_extents(glyphCache, n_glyphs, pglyphs, &extents);
+-
+-        pixman_composite_glyphs(op, srcImage, dstImage, format,
+-                                xSrc + srcXoff + extents.x1 - xDst, ySrc + srcYoff + extents.y1 - yDst,
+-                                extents.x1, extents.y1,
+-                                extents.x1 + dstXoff, extents.y1 + dstYoff,
+-                                extents.x2 - extents.x1,
+-                                extents.y2 - extents.y1,
+-                                glyphCache, n_glyphs, pglyphs);
+- }
+- else {
+-        pixman_composite_glyphs_no_mask(op, srcImage, dstImage,
+-                                        xSrc + srcXoff - xDst, ySrc + srcYoff - yDst,
+-                                        dstXoff, dstYoff,
+-                                        glyphCache, n_glyphs, pglyphs);
+- }
+-
+- free_pixman_pict(pDst, dstImage);
+-
+-out_free_src:
+- free_pixman_pict(pSrc, srcImage);
+-
+-out:
+- pixman_glyph_cache_thaw(glyphCache);
+- if (pglyphs != stack_glyphs)
+-        free(pglyphs);
+-}
+-
+ static pixman_image_t *
+ create_solid_fill_image(PicturePtr pict)
</ins><span class="cx"> {
</span><del>- pixman_image_t *image;
-- int dst_xoff, dst_yoff;
</del><ins>+@@ -461,8 +315,7 @@ fbPictureInit(ScreenPtr pScreen, PictFormatPtr formats, int nformats)
+ return FALSE;
+ ps = GetPictureScreen(pScreen);
+ ps->Composite = fbComposite;
+- ps->Glyphs = fbGlyphs;
+- ps->UnrealizeGlyph = fbUnrealizeGlyph;
++ ps->Glyphs = miGlyphs;
+ ps->CompositeRects = miCompositeRects;
+ ps->RasterizeTrapezoid = fbRasterizeTrapezoid;
+ ps->AddTraps = fbAddTraps;
+diff --git a/fb/fbpict.h b/fb/fbpict.h
+index 5cb8663..110f32d 100644
+--- a/fb/fbpict.h
++++ b/fb/fbpict.h
+@@ -65,20 +65,11 @@ fbTrapezoids(CARD8 op,
+ INT16 xSrc, INT16 ySrc, int ntrap, xTrapezoid * traps);
</ins><span class="cx">
</span><del>-- if (!(image = image_from_pict(pPicture, FALSE, &dst_xoff, &dst_yoff)))
-+ if (!(image = image_from_pict (pPicture, FALSE)))
- return;
</del><ins>+ extern _X_EXPORT void
++
+ fbTriangles(CARD8 op,
+ PicturePtr pSrc,
+ PicturePtr pDst,
+ PictFormatPtr maskFormat,
+ INT16 xSrc, INT16 ySrc, int ntris, xTriangle * tris);
</ins><span class="cx">
</span><del>-- pixman_rasterize_trapezoid(image, (pixman_trapezoid_t *) trap,
-- x_off + dst_xoff, y_off + dst_yoff);
-+ pixman_rasterize_trapezoid(image, (pixman_trapezoid_t *)trap,
-+ x_off, y_off);
-
- free_pixman_pict(pPicture, image);
- }
-@@ -68,14 +66,12 @@ fbAddTriangles(PicturePtr pPicture,
- INT16 x_off, INT16 y_off, int ntri, xTriangle * tris)
- {
- pixman_image_t *image;
-- int dst_xoff, dst_yoff;
-
-- if (!(image = image_from_pict(pPicture, FALSE, &dst_xoff, &dst_yoff)))
-+ if (!(image = image_from_pict (pPicture, FALSE)))
- return;
</del><ins>+-extern _X_EXPORT void
+-fbGlyphs(CARD8 op,
+-         PicturePtr pSrc,
+-         PicturePtr pDst,
+-         PictFormatPtr maskFormat,
+-         INT16 xSrc,
+-         INT16 ySrc, int nlist,
+-         GlyphListPtr list,
+-         GlyphPtr *glyphs);
</ins><span class="cx"> -
</span><del>-- pixman_add_triangles(image,
-- dst_xoff + x_off, dst_yoff + y_off,
-- ntri, (pixman_triangle_t *) tris);
-+
-+ pixman_add_triangles(image, x_off, y_off, ntri,
-+ (pixman_triangle_t *)tris);
</del><ins>+ #endif /* _FBPICT_H_ */
+diff --git a/fb/fbscreen.c b/fb/fbscreen.c
+index 71bcc5d..55330fc 100644
+--- a/fb/fbscreen.c
++++ b/fb/fbscreen.c
+@@ -32,7 +32,6 @@ fbCloseScreen(ScreenPtr pScreen)
+ int d;
+ DepthPtr depths = pScreen->allowedDepths;
</ins><span class="cx">
</span><del>- free_pixman_pict(pPicture, image);
- }
-@@ -98,13 +94,11 @@ fbShapes(CompositeShapesFunc composite,
- int16_t ySrc, int nshapes, int shape_size, const uint8_t * shapes)
- {
- pixman_image_t *src, *dst;
-- int src_xoff, src_yoff;
-- int dst_xoff, dst_yoff;
-
- miCompositeSourceValidate(pSrc);
-
-- src = image_from_pict(pSrc, FALSE, &src_xoff, &src_yoff);
-- dst = image_from_pict(pDst, TRUE, &dst_xoff, &dst_yoff);
-+ src = image_from_pict(pSrc, FALSE);
-+ dst = image_from_pict(pDst, TRUE);
-
- if (src && dst) {
- pixman_format_code_t format;
-@@ -121,9 +115,8 @@ fbShapes(CompositeShapesFunc composite,
-
- for (i = 0; i < nshapes; ++i) {
- composite(op, src, dst, format,
-- xSrc + src_xoff,
-- ySrc + src_yoff,
-- dst_xoff, dst_yoff, 1, shapes + i * shape_size);
-+ xSrc, ySrc, 0, 0,
-+ 1, shapes + i * shape_size);
- }
- }
- else {
-@@ -143,8 +136,8 @@ fbShapes(CompositeShapesFunc composite,
- }
-
- composite(op, src, dst, format,
-- xSrc + src_xoff,
-- ySrc + src_yoff, dst_xoff, dst_yoff, nshapes, shapes);
-+ xSrc, ySrc, 0, 0,
-+ nshapes, shapes);
- }
-
- DamageRegionProcessPending(pDst->pDrawable);
</del><ins>+- fbDestroyGlyphCache();
+ for (d = 0; d < pScreen->numDepths; d++)
+ free(depths[d].vids);
+ free(depths);
</ins><span class="cx"> --
</span><del>-2.0.4
</del><ins>+2.6.1
</ins><span class="cx">
</span></span></pre></div>
<a id="trunkdportsx11xorgserverfiles5004fbRevertfbchangesthatbrokeXQuartzpatch"></a>
<div class="delfile"><h4>Deleted: trunk/dports/x11/xorg-server/files/5004-fb-Revert-fb-changes-that-broke-XQuartz.patch (141471 => 141472)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/x11/xorg-server/files/5004-fb-Revert-fb-changes-that-broke-XQuartz.patch        2015-10-19 18:09:40 UTC (rev 141471)
+++ trunk/dports/x11/xorg-server/files/5004-fb-Revert-fb-changes-that-broke-XQuartz.patch        2015-10-19 20:35:08 UTC (rev 141472)
</span><span class="lines">@@ -1,247 +0,0 @@
</span><del>-From 923740dfc55b0b7e3495cbbd0a6a6a8fe86189fd Mon Sep 17 00:00:00 2001
-From: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
-Date: Sat, 31 May 2014 13:14:20 -0700
-Subject: [PATCH 5004/5005] fb: Revert fb changes that broke XQuartz
-
- http://bugs.freedesktop.org/show_bug.cgi?id=26124
-
-Revert "Use new pixman_glyph_cache_t API that will be in pixman 0.28.0"
-Revert "fb: Fix origin of source picture in fbGlyphs"
-Revert "fb: Publish fbGlyphs and fbUnrealizeGlyph"
-
-This reverts commit 9cbcb5bd6a5360a128d15b77a02d8d3351f74366.
-This reverts commit 983e30361f49a67252d0b5d82630e70724d69dbf.
-This reverts commit 3c2c59eed3c68c0e5a93c38cf01eedad015e3157.
----
- fb/fb.h | 3 --
- fb/fbpict.c | 149 +---------------------------------------------------------
- fb/fbpict.h | 15 +-----
- fb/fbscreen.c | 1 -
- 4 files changed, 2 insertions(+), 166 deletions(-)
-
-diff --git server-1.16-branch/fb/fb.h server-1.16-branch/fb/fb.h
-index f584154..25a7eff 100644
---- server-1.16-branch/fb/fb.h
-+++ server-1.16-branch/fb/fb.h
-@@ -1310,9 +1310,6 @@ extern _X_EXPORT void
- extern _X_EXPORT Bool
- fbPictureInit(ScreenPtr pScreen, PictFormatPtr formats, int nformats);
-
--extern _X_EXPORT void
--fbDestroyGlyphCache(void);
--
- /*
- * fbpixmap.c
- */
-diff --git server-1.16-branch/fb/fbpict.c server-1.16-branch/fb/fbpict.c
-index e7a3811..276ff06 100644
---- server-1.16-branch/fb/fbpict.c
-+++ server-1.16-branch/fb/fbpict.c
-@@ -65,152 +65,6 @@ fbComposite(CARD8 op,
- free_pixman_pict(pDst, dest);
- }
-
--static pixman_glyph_cache_t *glyphCache;
--
--void
--fbDestroyGlyphCache(void)
--{
-- if (glyphCache)
-- {
--        pixman_glyph_cache_destroy (glyphCache);
--        glyphCache = NULL;
-- }
--}
--
--void
--fbUnrealizeGlyph(ScreenPtr pScreen,
--                 GlyphPtr pGlyph)
--{
-- if (glyphCache)
--        pixman_glyph_cache_remove (glyphCache, pGlyph, NULL);
--}
--
--void
--fbGlyphs(CARD8 op,
--         PicturePtr pSrc,
--         PicturePtr pDst,
--         PictFormatPtr maskFormat,
--         INT16 xSrc,
--         INT16 ySrc, int nlist,
--         GlyphListPtr list,
--         GlyphPtr *glyphs)
--{
--#define N_STACK_GLYPHS 512
-- ScreenPtr pScreen = pDst->pDrawable->pScreen;
-- pixman_glyph_t stack_glyphs[N_STACK_GLYPHS];
-- pixman_glyph_t *pglyphs = stack_glyphs;
-- pixman_image_t *srcImage, *dstImage;
-- int srcXoff, srcYoff, dstXoff, dstYoff;
-- GlyphPtr glyph;
-- int n_glyphs;
-- int x, y;
-- int i, n;
-- int xDst = list->xOff, yDst = list->yOff;
--
-- miCompositeSourceValidate(pSrc);
--
-- n_glyphs = 0;
-- for (i = 0; i < nlist; ++i)
--        n_glyphs += list[i].len;
--
-- if (!glyphCache)
--        glyphCache = pixman_glyph_cache_create();
--
-- pixman_glyph_cache_freeze (glyphCache);
--
-- if (n_glyphs > N_STACK_GLYPHS) {
--        if (!(pglyphs = malloc (n_glyphs * sizeof (pixman_glyph_t))))
--         goto out;
-- }
--
-- i = 0;
-- x = y = 0;
-- while (nlist--) {
-- x += list->xOff;
-- y += list->yOff;
-- n = list->len;
-- while (n--) {
--         const void *g;
--
-- glyph = *glyphs++;
--
--         if (!(g = pixman_glyph_cache_lookup (glyphCache, glyph, NULL))) {
--                pixman_image_t *glyphImage;
--                PicturePtr pPicture;
--                int xoff, yoff;
--
--                pPicture = GetGlyphPicture(glyph, pScreen);
--                if (!pPicture) {
--                 n_glyphs--;
--                 goto next;
--                }
--
--                if (!(glyphImage = image_from_pict(pPicture, FALSE, &xoff, &yoff)))
--                 goto out;
--
--                g = pixman_glyph_cache_insert(glyphCache, glyph, NULL,
--                                         glyph->info.x,
--                                         glyph->info.y,
--                                         glyphImage);
--
--                free_pixman_pict(pPicture, glyphImage);
--
--                if (!g)
--                 goto out;
--         }
--
--         pglyphs[i].x = x;
--         pglyphs[i].y = y;
--         pglyphs[i].glyph = g;
--         i++;
--
--        next:
-- x += glyph->info.xOff;
-- y += glyph->info.yOff;
--        }
--        list++;
-- }
--
-- if (!(srcImage = image_from_pict(pSrc, FALSE, &srcXoff, &srcYoff)))
--        goto out;
--
-- if (!(dstImage = image_from_pict(pDst, TRUE, &dstXoff, &dstYoff)))
--        goto out_free_src;
--
-- if (maskFormat) {
--        pixman_format_code_t format;
--        pixman_box32_t extents;
--
--        format = maskFormat->format | (maskFormat->depth << 24);
--
--        pixman_glyph_get_extents(glyphCache, n_glyphs, pglyphs, &extents);
--
--        pixman_composite_glyphs(op, srcImage, dstImage, format,
--                                xSrc + srcXoff + extents.x1 - xDst, ySrc + srcYoff + extents.y1 - yDst,
--                                extents.x1, extents.y1,
--                                extents.x1 + dstXoff, extents.y1 + dstYoff,
--                                extents.x2 - extents.x1,
--                                extents.y2 - extents.y1,
--                                glyphCache, n_glyphs, pglyphs);
-- }
-- else {
--        pixman_composite_glyphs_no_mask(op, srcImage, dstImage,
--                                        xSrc + srcXoff - xDst, ySrc + srcYoff - yDst,
--                                        dstXoff, dstYoff,
--                                        glyphCache, n_glyphs, pglyphs);
-- }
--
-- free_pixman_pict(pDst, dstImage);
--
--out_free_src:
-- free_pixman_pict(pSrc, srcImage);
--
--out:
-- pixman_glyph_cache_thaw(glyphCache);
-- if (pglyphs != stack_glyphs)
--        free(pglyphs);
--}
--
- static pixman_image_t *
- create_solid_fill_image(PicturePtr pict)
- {
-@@ -469,8 +323,7 @@ fbPictureInit(ScreenPtr pScreen, PictFormatPtr formats, int nformats)
- return FALSE;
- ps = GetPictureScreen(pScreen);
- ps->Composite = fbComposite;
-- ps->Glyphs = fbGlyphs;
-- ps->UnrealizeGlyph = fbUnrealizeGlyph;
-+ ps->Glyphs = miGlyphs;
- ps->CompositeRects = miCompositeRects;
- ps->RasterizeTrapezoid = fbRasterizeTrapezoid;
- ps->AddTraps = fbAddTraps;
-diff --git server-1.16-branch/fb/fbpict.h server-1.16-branch/fb/fbpict.h
-index 8b0f59f..110f32d 100644
---- server-1.16-branch/fb/fbpict.h
-+++ server-1.16-branch/fb/fbpict.h
-@@ -65,24 +65,11 @@ fbTrapezoids(CARD8 op,
- INT16 xSrc, INT16 ySrc, int ntrap, xTrapezoid * traps);
-
- extern _X_EXPORT void
-+
- fbTriangles(CARD8 op,
- PicturePtr pSrc,
- PicturePtr pDst,
- PictFormatPtr maskFormat,
- INT16 xSrc, INT16 ySrc, int ntris, xTriangle * tris);
-
--extern _X_EXPORT void
--fbUnrealizeGlyph(ScreenPtr pScreen,
--                 GlyphPtr pGlyph);
--
--extern _X_EXPORT void
--fbGlyphs(CARD8 op,
--         PicturePtr pSrc,
--         PicturePtr pDst,
--         PictFormatPtr maskFormat,
--         INT16 xSrc,
--         INT16 ySrc, int nlist,
--         GlyphListPtr list,
--         GlyphPtr *glyphs);
--
- #endif /* _FBPICT_H_ */
-diff --git server-1.16-branch/fb/fbscreen.c server-1.16-branch/fb/fbscreen.c
-index 0d4d87f..e6ff1bd 100644
---- server-1.16-branch/fb/fbscreen.c
-+++ server-1.16-branch/fb/fbscreen.c
-@@ -32,7 +32,6 @@ fbCloseScreen(ScreenPtr pScreen)
- int d;
- DepthPtr depths = pScreen->allowedDepths;
-
-- fbDestroyGlyphCache();
- for (d = 0; d < pScreen->numDepths; d++)
- free(depths[d].vids);
- free(depths);
---
-2.0.4
-
</del></span></pre>
</div>
</div>
</body>
</html>