diff options
author | Matthew Bauer <mjbauer95@gmail.com> | 2018-05-11 16:01:40 -0500 |
---|---|---|
committer | Matthew Bauer <mjbauer95@gmail.com> | 2018-05-11 23:55:59 -0500 |
commit | c839771129f17cad501effb6676b0e0cde5cbd0b (patch) | |
tree | ceb0254361c8addab58ca917f113c3151b8c4671 /pkgs | |
parent | 92cf8816752a78e2142c532cbdf1e6e6c087206a (diff) | |
download | nixlib-c839771129f17cad501effb6676b0e0cde5cbd0b.tar nixlib-c839771129f17cad501effb6676b0e0cde5cbd0b.tar.gz nixlib-c839771129f17cad501effb6676b0e0cde5cbd0b.tar.bz2 nixlib-c839771129f17cad501effb6676b0e0cde5cbd0b.tar.lz nixlib-c839771129f17cad501effb6676b0e0cde5cbd0b.tar.xz nixlib-c839771129f17cad501effb6676b0e0cde5cbd0b.tar.zst nixlib-c839771129f17cad501effb6676b0e0cde5cbd0b.zip |
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
Diffstat (limited to 'pkgs')
9 files changed, 28 insertions, 805 deletions
diff --git a/pkgs/servers/x11/xorg/darwin/0002-sdksyms.sh-Use-CPPFLAGS-not-CFLAGS.patch b/pkgs/servers/x11/xorg/darwin/0002-sdksyms.sh-Use-CPPFLAGS-not-CFLAGS.patch deleted file mode 100644 index ed0518da5ce1..000000000000 --- a/pkgs/servers/x11/xorg/darwin/0002-sdksyms.sh-Use-CPPFLAGS-not-CFLAGS.patch +++ /dev/null @@ -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) - diff --git a/pkgs/servers/x11/xorg/darwin/0004-Use-old-miTrapezoids-and-miTriangles-routines.patch b/pkgs/servers/x11/xorg/darwin/0004-Use-old-miTrapezoids-and-miTriangles-routines.patch deleted file mode 100644 index 4027227bb53f..000000000000 --- a/pkgs/servers/x11/xorg/darwin/0004-Use-old-miTrapezoids-and-miTriangles-routines.patch +++ /dev/null @@ -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) - diff --git a/pkgs/servers/x11/xorg/darwin/0006-fb-Revert-fb-changes-that-broke-XQuartz.patch b/pkgs/servers/x11/xorg/darwin/0006-fb-Revert-fb-changes-that-broke-XQuartz.patch deleted file mode 100644 index 03d4decdb1c9..000000000000 --- a/pkgs/servers/x11/xorg/darwin/0006-fb-Revert-fb-changes-that-broke-XQuartz.patch +++ /dev/null @@ -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) - diff --git a/pkgs/servers/x11/xorg/darwin/bundle_main.patch b/pkgs/servers/x11/xorg/darwin/bundle_main.patch deleted file mode 100644 index e60ca5738d14..000000000000 --- a/pkgs/servers/x11/xorg/darwin/bundle_main.patch +++ /dev/null @@ -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; diff --git a/pkgs/servers/x11/xorg/darwin/private-extern.patch b/pkgs/servers/x11/xorg/darwin/private-extern.patch deleted file mode 100644 index 87af7865c376..000000000000 --- a/pkgs/servers/x11/xorg/darwin/private-extern.patch +++ /dev/null @@ -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 - diff --git a/pkgs/servers/x11/xorg/darwin/stub.patch b/pkgs/servers/x11/xorg/darwin/stub.patch deleted file mode 100644 index db3215b498aa..000000000000 --- a/pkgs/servers/x11/xorg/darwin/stub.patch +++ /dev/null @@ -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 diff --git a/pkgs/servers/x11/xorg/overrides.nix b/pkgs/servers/x11/xorg/overrides.nix index 5efa4bfcfd5d..ce78eba4b432 100644 --- a/pkgs/servers/x11/xorg/overrides.nix +++ b/pkgs/servers/x11/xorg/overrides.nix @@ -456,7 +456,7 @@ in }; 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 ]; - 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; } else throw "unsupported xorg abiCompat ${args.abiCompat} for ${attrs_passed.name}"; @@ -465,7 +465,7 @@ in version = (builtins.parseDrvName attrs.name).version; commonBuildInputs = attrs.buildInputs ++ [ xtrans ]; commonPropagatedBuildInputs = [ - args.zlib args.libGL args.mesa_noglu args.dbus + args.zlib args.libGL args.libGLU args.dbus xf86bigfontproto glproto xf86driproto compositeproto scrnsaverproto resourceproto xf86dgaproto @@ -526,6 +526,7 @@ in ''; passthru.version = version; # needed by virtualbox guest additions } else { + nativeBuildInputs = attrs.nativeBuildInputs ++ [ args.autoreconfHook xorg.utilmacros xorg.fontutil ]; buildInputs = commonBuildInputs ++ [ args.bootstrap_cmds args.automake args.autoconf args.apple_sdk.libs.Xplugin @@ -535,16 +536,31 @@ in propagatedBuildInputs = commonPropagatedBuildInputs ++ [ libAppleWM applewmproto ]; - # Patches can be pulled from the server-*-apple branches of: - # http://cgit.freedesktop.org/~jeremyhu/xserver/ + + # XQuartz patchset patches = commonPatches ++ [ - ./darwin/0002-sdksyms.sh-Use-CPPFLAGS-not-CFLAGS.patch - ./darwin/0004-Use-old-miTrapezoids-and-miTriangles-routines.patch - ./darwin/0006-fb-Revert-fb-changes-that-broke-XQuartz.patch - ./darwin/private-extern.patch - ./darwin/bundle_main.patch - ./darwin/stub.patch + (args.fetchpatch { + url = "https://github.com/XQuartz/xorg-server/commit/e88fd6d785d5be477d5598e70d105ffb804771aa.patch"; + sha256 = "1q0a30m1qj6ai924afz490xhack7rg4q3iig2gxsjjh98snikr1k"; + name = "use-cppflags-not-cflags.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 = [ # note: --enable-xquartz is auto "CPPFLAGS=-I${./darwin/dri}" diff --git a/pkgs/servers/x11/xquartz/system-fonts.nix b/pkgs/servers/x11/xquartz/system-fonts.nix index cf24bb439b91..db47f8afe015 100644 --- a/pkgs/servers/x11/xquartz/system-fonts.nix +++ b/pkgs/servers/x11/xquartz/system-fonts.nix @@ -26,9 +26,7 @@ stdenv.mkDerivation { fi; done; cd $out/share/X11-fonts/ - rm fonts.dir - rm fonts.scale - rm fonts.alias + rm -f fonts.dir fonts.scale fonts.alias mkfontdir mkfontscale cat $( find ${xorg.fontalias}/ -name fonts.alias) >fonts.alias diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index f6d3a7a5b937..a4766030f04d 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -13043,7 +13043,7 @@ with pkgs; inherit clangStdenv fetchurl fetchgit fetchpatch stdenv intltool freetype fontconfig libxslt expat libpng zlib perl mesa_drivers spice-protocol libunwind 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; inherit (buildPackages) pkgconfig xmlto asciidoc flex bison; inherit (darwin) apple_sdk cf-private libobjc; |