xquartz: fix build
Things done: - use libGLU instead of mesa for darwin support - move patches from local to github url - fixup xquartz install There may still be some issues at runtime. PRs welcome! Fixes #40196
This commit is contained in:
parent
92cf881675
commit
c839771129
@ -1,41 +0,0 @@
|
|||||||
From 91971455ee46b1059de75260ef0d1a45170d8b65 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jeremy Huddleston <jeremyhu@apple.com>
|
|
||||||
Date: Fri, 13 Jan 2012 12:00:57 -0800
|
|
||||||
Subject: [PATCH 2/6] sdksyms.sh: Use CPPFLAGS, not CFLAGS
|
|
||||||
|
|
||||||
CFLAGS can include flags which are not useful to the preprocessor
|
|
||||||
or can even cause it to fail. This fixes a build issue on darwin
|
|
||||||
when building for more than one architecture.
|
|
||||||
|
|
||||||
Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
|
|
||||||
Reviewed-by: Keith Packard <keithp@keithp.com>
|
|
||||||
---
|
|
||||||
hw/xfree86/Makefile.am | 5 ++---
|
|
||||||
1 file changed, 2 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
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
|
|
||||||
@@ -48,8 +48,7 @@ DIST_SUBDIRS = common ddc i2c x86emu int10 fbdevhw os-support \
|
|
||||||
bin_PROGRAMS = Xorg
|
|
||||||
nodist_Xorg_SOURCES = sdksyms.c
|
|
||||||
|
|
||||||
-AM_CFLAGS = $(DIX_CFLAGS) @XORG_CFLAGS@
|
|
||||||
-AM_CPPFLAGS = $(XORG_INCS) -I$(srcdir)/parser -I$(top_srcdir)/miext/cw \
|
|
||||||
+AM_CPPFLAGS = $(DIX_CFLAGS) @XORG_CFLAGS@ $(XORG_INCS) -I$(srcdir)/parser -I$(top_srcdir)/miext/cw \
|
|
||||||
-I$(srcdir)/ddc -I$(srcdir)/i2c -I$(srcdir)/modes -I$(srcdir)/ramdac \
|
|
||||||
-I$(srcdir)/dri -I$(srcdir)/dri2 -I$(top_srcdir)/dri3
|
|
||||||
|
|
||||||
@@ -135,7 +134,7 @@ CLEANFILES = sdksyms.c sdksyms.dep Xorg.sh
|
|
||||||
EXTRA_DIST += sdksyms.sh
|
|
||||||
|
|
||||||
sdksyms.dep sdksyms.c: sdksyms.sh
|
|
||||||
- $(AM_V_GEN)CPP='$(CPP)' AWK='$(AWK)' $(SHELL) $(srcdir)/sdksyms.sh $(top_srcdir) $(CFLAGS) $(AM_CFLAGS) $(AM_CPPFLAGS)
|
|
||||||
+ $(AM_V_GEN)CPP='$(CPP)' AWK='$(AWK)' $(SHELL) $(srcdir)/sdksyms.sh $(top_srcdir) $(CPPFLAGS) $(AM_CPPFLAGS)
|
|
||||||
|
|
||||||
SDKSYMS_DEP = sdksyms.dep
|
|
||||||
-include $(SDKSYMS_DEP)
|
|
||||||
--
|
|
||||||
2.3.2 (Apple Git-55)
|
|
||||||
|
|
@ -1,297 +0,0 @@
|
|||||||
From b229a04bde765424542eeba17a7e2bc25785a890 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 4/6] 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.3.2 (Apple Git-55)
|
|
||||||
|
|
@ -1,243 +0,0 @@
|
|||||||
From 4c7572abafeac9b2dcd884c444c5a5bae5b302c3 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 6/6] 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 | 11 +----
|
|
||||||
fb/fbscreen.c | 1 -
|
|
||||||
4 files changed, 2 insertions(+), 162 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/fb/fb.h b/fb/fb.h
|
|
||||||
index 59eaac3..046b948 100644
|
|
||||||
--- a/fb/fb.h
|
|
||||||
+++ b/fb/fb.h
|
|
||||||
@@ -1116,9 +1116,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 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);
|
|
||||||
}
|
|
||||||
|
|
||||||
-static pixman_glyph_cache_t *glyphCache;
|
|
||||||
-
|
|
||||||
-void
|
|
||||||
-fbDestroyGlyphCache(void)
|
|
||||||
-{
|
|
||||||
- if (glyphCache)
|
|
||||||
- {
|
|
||||||
- pixman_glyph_cache_destroy (glyphCache);
|
|
||||||
- glyphCache = NULL;
|
|
||||||
- }
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-static 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)
|
|
||||||
{
|
|
||||||
@@ -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);
|
|
||||||
|
|
||||||
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
|
|
||||||
-fbGlyphs(CARD8 op,
|
|
||||||
- PicturePtr pSrc,
|
|
||||||
- PicturePtr pDst,
|
|
||||||
- PictFormatPtr maskFormat,
|
|
||||||
- INT16 xSrc,
|
|
||||||
- INT16 ySrc, int nlist,
|
|
||||||
- GlyphListPtr list,
|
|
||||||
- GlyphPtr *glyphs);
|
|
||||||
-
|
|
||||||
#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;
|
|
||||||
|
|
||||||
- fbDestroyGlyphCache();
|
|
||||||
for (d = 0; d < pScreen->numDepths; d++)
|
|
||||||
free(depths[d].vids);
|
|
||||||
free(depths);
|
|
||||||
--
|
|
||||||
2.3.2 (Apple Git-55)
|
|
||||||
|
|
@ -1,118 +0,0 @@
|
|||||||
cstrahan:
|
|
||||||
|
|
||||||
This patch makes it possible (and necessary) to specify the default
|
|
||||||
shell, xterm client, and startx script from environment variables. These
|
|
||||||
defaults are used when launching the XQuartz.app, which in turn needs to know
|
|
||||||
how to start the X server. I've patched `command_from_prefs' so that it ignores
|
|
||||||
the preferences settings and immediately sets them to whatever the environment
|
|
||||||
variables are.
|
|
||||||
|
|
||||||
When developing an installable package for XQuartz/XQuartz.app, we'll need to
|
|
||||||
set an `LSEnvironment' entry in the plist for the XQuartz.app, we'll also need
|
|
||||||
to wrap the XQuartz.app/Contents/MacOS/X11 script (the Xquartz server will
|
|
||||||
invoke this script during initialization. See stub.patch for more details.).
|
|
||||||
|
|
||||||
diff --git a/hw/xquartz/mach-startup/bundle-main.c b/hw/xquartz/mach-startup/bundle-main.c
|
|
||||||
index b403662..b1e2070 100644
|
|
||||||
--- a/hw/xquartz/mach-startup/bundle-main.c
|
|
||||||
+++ b/hw/xquartz/mach-startup/bundle-main.c
|
|
||||||
@@ -77,13 +77,7 @@ FatalError(const char *f, ...) _X_ATTRIBUTE_PRINTF(1, 2) _X_NORETURN;
|
|
||||||
|
|
||||||
extern int noPanoramiXExtension;
|
|
||||||
|
|
||||||
-#define DEFAULT_CLIENT X11BINDIR "/xterm"
|
|
||||||
-#define DEFAULT_STARTX X11BINDIR "/startx -- " X11BINDIR "/Xquartz"
|
|
||||||
-#define DEFAULT_SHELL "/bin/sh"
|
|
||||||
-
|
|
||||||
-#ifndef BUILD_DATE
|
|
||||||
#define BUILD_DATE ""
|
|
||||||
-#endif
|
|
||||||
#ifndef XSERVER_VERSION
|
|
||||||
#define XSERVER_VERSION "?"
|
|
||||||
#endif
|
|
||||||
@@ -718,14 +712,14 @@ main(int argc, char **argv, char **envp)
|
|
||||||
pid_t child1, child2;
|
|
||||||
int status;
|
|
||||||
|
|
||||||
- pref_app_to_run = command_from_prefs("app_to_run", DEFAULT_CLIENT);
|
|
||||||
+ pref_app_to_run = command_from_prefs("app_to_run", getenv("XQUARTZ_DEFAULT_CLIENT"));
|
|
||||||
assert(pref_app_to_run);
|
|
||||||
|
|
||||||
- pref_login_shell = command_from_prefs("login_shell", DEFAULT_SHELL);
|
|
||||||
+ pref_login_shell = command_from_prefs("login_shell", getenv("XQUARTZ_DEFAULT_SHELL"));
|
|
||||||
assert(pref_login_shell);
|
|
||||||
|
|
||||||
pref_startx_script = command_from_prefs("startx_script",
|
|
||||||
- DEFAULT_STARTX);
|
|
||||||
+ getenv("XQUARTZ_DEFAULT_STARTX"));
|
|
||||||
assert(pref_startx_script);
|
|
||||||
|
|
||||||
/* Do the fork-twice trick to avoid having to reap zombies */
|
|
||||||
@@ -804,10 +798,12 @@ execute(const char *command)
|
|
||||||
static char *
|
|
||||||
command_from_prefs(const char *key, const char *default_value)
|
|
||||||
{
|
|
||||||
+ if (default_value == NULL)
|
|
||||||
+ return NULL;
|
|
||||||
+
|
|
||||||
char *command = NULL;
|
|
||||||
|
|
||||||
CFStringRef cfKey;
|
|
||||||
- CFPropertyListRef PlistRef;
|
|
||||||
|
|
||||||
if (!key)
|
|
||||||
return NULL;
|
|
||||||
@@ -817,40 +813,24 @@ command_from_prefs(const char *key, const char *default_value)
|
|
||||||
if (!cfKey)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
- PlistRef = CFPreferencesCopyAppValue(cfKey,
|
|
||||||
- kCFPreferencesCurrentApplication);
|
|
||||||
+ CFStringRef cfDefaultValue = CFStringCreateWithCString(
|
|
||||||
+ NULL, default_value, kCFStringEncodingASCII);
|
|
||||||
+ int len = strlen(default_value) + 1;
|
|
||||||
|
|
||||||
- if ((PlistRef == NULL) ||
|
|
||||||
- (CFGetTypeID(PlistRef) != CFStringGetTypeID())) {
|
|
||||||
- CFStringRef cfDefaultValue = CFStringCreateWithCString(
|
|
||||||
- NULL, default_value, kCFStringEncodingASCII);
|
|
||||||
- int len = strlen(default_value) + 1;
|
|
||||||
+ if (!cfDefaultValue)
|
|
||||||
+ goto command_from_prefs_out;
|
|
||||||
|
|
||||||
- if (!cfDefaultValue)
|
|
||||||
- goto command_from_prefs_out;
|
|
||||||
+ CFPreferencesSetAppValue(cfKey, cfDefaultValue,
|
|
||||||
+ kCFPreferencesCurrentApplication);
|
|
||||||
+ CFPreferencesAppSynchronize(kCFPreferencesCurrentApplication);
|
|
||||||
+ CFRelease(cfDefaultValue);
|
|
||||||
|
|
||||||
- CFPreferencesSetAppValue(cfKey, cfDefaultValue,
|
|
||||||
- kCFPreferencesCurrentApplication);
|
|
||||||
- CFPreferencesAppSynchronize(kCFPreferencesCurrentApplication);
|
|
||||||
- CFRelease(cfDefaultValue);
|
|
||||||
-
|
|
||||||
- command = (char *)malloc(len * sizeof(char));
|
|
||||||
- if (!command)
|
|
||||||
- goto command_from_prefs_out;
|
|
||||||
- strcpy(command, default_value);
|
|
||||||
- }
|
|
||||||
- else {
|
|
||||||
- int len = CFStringGetLength((CFStringRef)PlistRef) + 1;
|
|
||||||
- command = (char *)malloc(len * sizeof(char));
|
|
||||||
- if (!command)
|
|
||||||
- goto command_from_prefs_out;
|
|
||||||
- CFStringGetCString((CFStringRef)PlistRef, command, len,
|
|
||||||
- kCFStringEncodingASCII);
|
|
||||||
- }
|
|
||||||
+ command = (char *)malloc(len * sizeof(char));
|
|
||||||
+ if (!command)
|
|
||||||
+ goto command_from_prefs_out;
|
|
||||||
+ strcpy(command, default_value);
|
|
||||||
|
|
||||||
command_from_prefs_out:
|
|
||||||
- if (PlistRef)
|
|
||||||
- CFRelease(PlistRef);
|
|
||||||
if (cfKey)
|
|
||||||
CFRelease(cfKey);
|
|
||||||
return command;
|
|
@ -1,12 +0,0 @@
|
|||||||
diff --git a/hw/xquartz/xpr/x-list.new.h b/hw/xquartz/xpr/x-list.h
|
|
||||||
index 28385fd..71f9d26 100644
|
|
||||||
--- a/hw/xquartz/xpr/x-list.new.h
|
|
||||||
+++ b/hw/xquartz/xpr/x-list.h
|
|
||||||
@@ -45,6 +45,7 @@ struct x_list_struct {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef X_EXTERN
|
|
||||||
+#define __private_extern__ extern
|
|
||||||
#define X_EXTERN __private_extern__
|
|
||||||
#endif
|
|
||||||
|
|
@ -1,80 +0,0 @@
|
|||||||
cstrahan:
|
|
||||||
|
|
||||||
When the X / Xquartz server initiallizes, it starts the XQuartz.app and
|
|
||||||
hands-off the display FD. To start the XQuartz.app, Xquartz normally uses some
|
|
||||||
system calls to get the path of the application by app bundle id, and then
|
|
||||||
executes the Contents/MacOS/X11 script contained inside, which in turn executes
|
|
||||||
Contents/MacOS/X11.bin (the actual app).
|
|
||||||
|
|
||||||
This patch replaces that discovery technique with a simple call to
|
|
||||||
`getenv'. In order to make Xquartz actually work, we'll need another wrapper
|
|
||||||
that sets the `XQUARTZ_X11' environment variable to point to the `X11' script.
|
|
||||||
|
|
||||||
diff --git a/hw/xquartz/mach-startup/stub.c b/hw/xquartz/mach-startup/stub.c
|
|
||||||
index 756e4ef..3313a55 100644
|
|
||||||
--- a/hw/xquartz/mach-startup/stub.c
|
|
||||||
+++ b/hw/xquartz/mach-startup/stub.c
|
|
||||||
@@ -61,54 +61,16 @@ aslclient aslc;
|
|
||||||
static void
|
|
||||||
set_x11_path(void)
|
|
||||||
{
|
|
||||||
-#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1050
|
|
||||||
-
|
|
||||||
- CFURLRef appURL = NULL;
|
|
||||||
- OSStatus osstatus =
|
|
||||||
- LSFindApplicationForInfo(kLSUnknownCreator, CFSTR(
|
|
||||||
- kX11AppBundleId), nil, nil, &appURL);
|
|
||||||
-
|
|
||||||
- switch (osstatus) {
|
|
||||||
- case noErr:
|
|
||||||
- if (appURL == NULL) {
|
|
||||||
- asl_log(
|
|
||||||
- aslc, NULL, ASL_LEVEL_ERR,
|
|
||||||
- "Xquartz: Invalid response from LSFindApplicationForInfo(%s)",
|
|
||||||
- kX11AppBundleId);
|
|
||||||
- exit(1);
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- if (!CFURLGetFileSystemRepresentation(appURL, true,
|
|
||||||
- (unsigned char *)x11_path,
|
|
||||||
- sizeof(x11_path))) {
|
|
||||||
- asl_log(aslc, NULL, ASL_LEVEL_ERR,
|
|
||||||
- "Xquartz: Error resolving URL for %s",
|
|
||||||
- kX11AppBundleId);
|
|
||||||
- exit(3);
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- strlcat(x11_path, kX11AppBundlePath, sizeof(x11_path));
|
|
||||||
- asl_log(aslc, NULL, ASL_LEVEL_INFO, "Xquartz: X11.app = %s", x11_path);
|
|
||||||
- break;
|
|
||||||
-
|
|
||||||
- case kLSApplicationNotFoundErr:
|
|
||||||
- asl_log(aslc, NULL, ASL_LEVEL_ERR,
|
|
||||||
- "Xquartz: Unable to find application for %s",
|
|
||||||
- kX11AppBundleId);
|
|
||||||
- exit(10);
|
|
||||||
-
|
|
||||||
- default:
|
|
||||||
- asl_log(aslc, NULL, ASL_LEVEL_ERR,
|
|
||||||
- "Xquartz: Unable to find application for %s, error code = %d",
|
|
||||||
- kX11AppBundleId,
|
|
||||||
- (int)osstatus);
|
|
||||||
- exit(11);
|
|
||||||
+ char *xquartzX11 = getenv("XQUARTZ_X11");
|
|
||||||
+ if (xquartzX11) {
|
|
||||||
+ strlcpy(x11_path, xquartzX11,
|
|
||||||
+ sizeof(x11_path));
|
|
||||||
+ } else {
|
|
||||||
+ asl_log(
|
|
||||||
+ aslc, NULL, ASL_LEVEL_ERR,
|
|
||||||
+ "Xquartz: XQUARTZ_X11 environment variable not set");
|
|
||||||
+ exit(1);
|
|
||||||
}
|
|
||||||
-#else
|
|
||||||
- /* TODO: Make Tiger smarter... but TBH, this should never get called on Tiger... */
|
|
||||||
- strlcpy(x11_path, "/Applications/Utilities/X11.app/Contents/MacOS/X11",
|
|
||||||
- sizeof(x11_path));
|
|
||||||
-#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
static int
|
|
@ -456,7 +456,7 @@ in
|
|||||||
};
|
};
|
||||||
nativeBuildInputs = [ pkgconfig ];
|
nativeBuildInputs = [ pkgconfig ];
|
||||||
buildInputs = [ dri2proto dri3proto renderproto libdrm openssl libX11 libXau libXaw libxcb xcbutil xcbutilwm xcbutilimage xcbutilkeysyms xcbutilrenderutil libXdmcp libXfixes libxkbfile libXmu libXpm libXrender libXres libXt ];
|
buildInputs = [ dri2proto dri3proto renderproto libdrm openssl libX11 libXau libXaw libxcb xcbutil xcbutilwm xcbutilimage xcbutilkeysyms xcbutilrenderutil libXdmcp libXfixes libxkbfile libXmu libXpm libXrender libXres libXt ];
|
||||||
postPatch = "sed '1i#include <malloc.h>' -i include/os.h";
|
postPatch = stdenv.lib.optionalString stdenv.isLinux "sed '1i#include <malloc.h>' -i include/os.h";
|
||||||
meta.platforms = stdenv.lib.platforms.unix;
|
meta.platforms = stdenv.lib.platforms.unix;
|
||||||
} else throw "unsupported xorg abiCompat ${args.abiCompat} for ${attrs_passed.name}";
|
} else throw "unsupported xorg abiCompat ${args.abiCompat} for ${attrs_passed.name}";
|
||||||
|
|
||||||
@ -465,7 +465,7 @@ in
|
|||||||
version = (builtins.parseDrvName attrs.name).version;
|
version = (builtins.parseDrvName attrs.name).version;
|
||||||
commonBuildInputs = attrs.buildInputs ++ [ xtrans ];
|
commonBuildInputs = attrs.buildInputs ++ [ xtrans ];
|
||||||
commonPropagatedBuildInputs = [
|
commonPropagatedBuildInputs = [
|
||||||
args.zlib args.libGL args.mesa_noglu args.dbus
|
args.zlib args.libGL args.libGLU args.dbus
|
||||||
xf86bigfontproto glproto xf86driproto
|
xf86bigfontproto glproto xf86driproto
|
||||||
compositeproto scrnsaverproto resourceproto
|
compositeproto scrnsaverproto resourceproto
|
||||||
xf86dgaproto
|
xf86dgaproto
|
||||||
@ -526,6 +526,7 @@ in
|
|||||||
'';
|
'';
|
||||||
passthru.version = version; # needed by virtualbox guest additions
|
passthru.version = version; # needed by virtualbox guest additions
|
||||||
} else {
|
} else {
|
||||||
|
nativeBuildInputs = attrs.nativeBuildInputs ++ [ args.autoreconfHook xorg.utilmacros xorg.fontutil ];
|
||||||
buildInputs = commonBuildInputs ++ [
|
buildInputs = commonBuildInputs ++ [
|
||||||
args.bootstrap_cmds args.automake args.autoconf
|
args.bootstrap_cmds args.automake args.autoconf
|
||||||
args.apple_sdk.libs.Xplugin
|
args.apple_sdk.libs.Xplugin
|
||||||
@ -535,16 +536,31 @@ in
|
|||||||
propagatedBuildInputs = commonPropagatedBuildInputs ++ [
|
propagatedBuildInputs = commonPropagatedBuildInputs ++ [
|
||||||
libAppleWM applewmproto
|
libAppleWM applewmproto
|
||||||
];
|
];
|
||||||
# Patches can be pulled from the server-*-apple branches of:
|
|
||||||
# http://cgit.freedesktop.org/~jeremyhu/xserver/
|
# XQuartz patchset
|
||||||
patches = commonPatches ++ [
|
patches = commonPatches ++ [
|
||||||
./darwin/0002-sdksyms.sh-Use-CPPFLAGS-not-CFLAGS.patch
|
(args.fetchpatch {
|
||||||
./darwin/0004-Use-old-miTrapezoids-and-miTriangles-routines.patch
|
url = "https://github.com/XQuartz/xorg-server/commit/e88fd6d785d5be477d5598e70d105ffb804771aa.patch";
|
||||||
./darwin/0006-fb-Revert-fb-changes-that-broke-XQuartz.patch
|
sha256 = "1q0a30m1qj6ai924afz490xhack7rg4q3iig2gxsjjh98snikr1k";
|
||||||
./darwin/private-extern.patch
|
name = "use-cppflags-not-cflags.patch";
|
||||||
./darwin/bundle_main.patch
|
})
|
||||||
./darwin/stub.patch
|
(args.fetchpatch {
|
||||||
|
url = "https://github.com/XQuartz/xorg-server/commit/75ee9649bcfe937ac08e03e82fd45d9e18110ef4.patch";
|
||||||
|
sha256 = "1vlfylm011y00j8mig9zy6gk9bw2b4ilw2qlsc6la49zi3k0i9fg";
|
||||||
|
name = "use-old-mitrapezoids-and-mitriangles-routines.patch";
|
||||||
|
})
|
||||||
|
(args.fetchpatch {
|
||||||
|
url = "https://github.com/XQuartz/xorg-server/commit/c58f47415be79a6564a9b1b2a62c2bf866141e73.patch";
|
||||||
|
sha256 = "19sisqzw8x2ml4lfrwfvavc2jfyq2bj5xcf83z89jdxg8g1gdd1i";
|
||||||
|
name = "revert-fb-changes-1.patch";
|
||||||
|
})
|
||||||
|
(args.fetchpatch {
|
||||||
|
url = "https://github.com/XQuartz/xorg-server/commit/56e6f1f099d2821e5002b9b05b715e7b251c0c97.patch";
|
||||||
|
sha256 = "0zm9g0g1jvy79sgkvy0rjm6ywrdba2xjd1nsnjbxjccckbr6i396";
|
||||||
|
name = "revert-fb-changes-2.patch";
|
||||||
|
})
|
||||||
];
|
];
|
||||||
|
|
||||||
configureFlags = [
|
configureFlags = [
|
||||||
# note: --enable-xquartz is auto
|
# note: --enable-xquartz is auto
|
||||||
"CPPFLAGS=-I${./darwin/dri}"
|
"CPPFLAGS=-I${./darwin/dri}"
|
||||||
|
@ -26,9 +26,7 @@ stdenv.mkDerivation {
|
|||||||
fi;
|
fi;
|
||||||
done;
|
done;
|
||||||
cd $out/share/X11-fonts/
|
cd $out/share/X11-fonts/
|
||||||
rm fonts.dir
|
rm -f fonts.dir fonts.scale fonts.alias
|
||||||
rm fonts.scale
|
|
||||||
rm fonts.alias
|
|
||||||
mkfontdir
|
mkfontdir
|
||||||
mkfontscale
|
mkfontscale
|
||||||
cat $( find ${xorg.fontalias}/ -name fonts.alias) >fonts.alias
|
cat $( find ${xorg.fontalias}/ -name fonts.alias) >fonts.alias
|
||||||
|
@ -13043,7 +13043,7 @@ with pkgs;
|
|||||||
inherit clangStdenv fetchurl fetchgit fetchpatch stdenv intltool freetype fontconfig
|
inherit clangStdenv fetchurl fetchgit fetchpatch stdenv intltool freetype fontconfig
|
||||||
libxslt expat libpng zlib perl mesa_drivers spice-protocol libunwind
|
libxslt expat libpng zlib perl mesa_drivers spice-protocol libunwind
|
||||||
dbus libuuid openssl gperf m4 libevdev tradcpp libinput mcpp makeWrapper autoreconfHook
|
dbus libuuid openssl gperf m4 libevdev tradcpp libinput mcpp makeWrapper autoreconfHook
|
||||||
autoconf automake libtool mtdev pixman libGL
|
autoconf automake libtool mtdev pixman libGL libGLU
|
||||||
cairo epoxy;
|
cairo epoxy;
|
||||||
inherit (buildPackages) pkgconfig xmlto asciidoc flex bison;
|
inherit (buildPackages) pkgconfig xmlto asciidoc flex bison;
|
||||||
inherit (darwin) apple_sdk cf-private libobjc;
|
inherit (darwin) apple_sdk cf-private libobjc;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user