From owner-svn-ports-head@freebsd.org Sun Apr 9 08:07:01 2017 Return-Path: Delivered-To: svn-ports-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DABC9D36DBD; Sun, 9 Apr 2017 08:07:01 +0000 (UTC) (envelope-from dbn@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9DD87F02; Sun, 9 Apr 2017 08:07:01 +0000 (UTC) (envelope-from dbn@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v39870UC021595; Sun, 9 Apr 2017 08:07:00 GMT (envelope-from dbn@FreeBSD.org) Received: (from dbn@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v39870QN021593; Sun, 9 Apr 2017 08:07:00 GMT (envelope-from dbn@FreeBSD.org) Message-Id: <201704090807.v39870QN021593@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dbn set sender to dbn@FreeBSD.org using -f From: David Naylor Date: Sun, 9 Apr 2017 08:07:00 +0000 (UTC) To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r438077 - in head/x11-toolkits/libgdiplus: . files X-SVN-Group: ports-head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-ports-head@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the ports tree for head List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 09 Apr 2017 08:07:02 -0000 Author: dbn Date: Sun Apr 9 08:07:00 2017 New Revision: 438077 URL: https://svnweb.freebsd.org/changeset/ports/438077 Log: x11-toolkits/libgdiplus: add option to compile without X11 - Add extra patch that conditionally compiles x11 support [1] - Add X11 option that applies extra patch if X11 support is disabled - PORTREVISION is not bumped as: - The default case (X11) has not changed, and - The non-default case will propogate due to options change [1] https://github.com/mono/libgdiplus/pull/46 PR: 213973 Added: head/x11-toolkits/libgdiplus/files/ head/x11-toolkits/libgdiplus/files/extrapatch-nox11 (contents, props changed) Modified: head/x11-toolkits/libgdiplus/Makefile Modified: head/x11-toolkits/libgdiplus/Makefile ============================================================================== --- head/x11-toolkits/libgdiplus/Makefile Sun Apr 9 07:52:25 2017 (r438076) +++ head/x11-toolkits/libgdiplus/Makefile Sun Apr 9 08:07:00 2017 (r438077) @@ -25,12 +25,19 @@ GNU_CONFIGURE= yes USES= cpe gettext-runtime gmake jpeg libtool:keepla pathfix pkgconfig USE_GNOME= glib20 USE_LDCONFIG= yes -USE_XORG= x11 xrender CPPFLAGS+= -I${LOCALBASE}/include LDFLAGS+= -L${LOCALBASE}/lib INSTALL_TARGET= install-strip CPE_VENDOR= mono-project +OPTIONS_DEFINE= X11 +OPTIONS_DEFAULT=X11 + +X11_USE= XORG=x11,xrender +X11_CONFIGURE_OFF= --without-x11 +X11_EXTRA_PATCHES_OFF= ${PATCHDIR}/extrapatch-nox11 +X11_USES_OFF= autoreconf + PLIST_FILES= lib/libgdiplus.a \ lib/libgdiplus.la \ lib/libgdiplus.so \ Added: head/x11-toolkits/libgdiplus/files/extrapatch-nox11 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/x11-toolkits/libgdiplus/files/extrapatch-nox11 Sun Apr 9 08:07:00 2017 (r438077) @@ -0,0 +1,295 @@ +https://github.com/mono/libgdiplus/pull/46 + +--- configure.ac.orig 2015-12-20 17:33:10 UTC ++++ configure.ac +@@ -19,8 +19,8 @@ fi + GLIB_REQUIRED_VERSION="2.2.3" + PKG_CHECK_MODULES(BASE_DEPENDENCIES, glib-2.0 >= $GLIB_REQUIRED_VERSION) + +-GDIPLUS_LIBS="`pkg-config --libs glib-2.0 `" +-GDIPLUS_CFLAGS="`pkg-config --cflags glib-2.0 `" ++GDIPLUS_LIBS="`$PKG_CONFIG --libs glib-2.0 `" ++GDIPLUS_CFLAGS="`$PKG_CONFIG --cflags glib-2.0 `" + + CAIRO_REQUIRED_VERSION="1.6.4" + PKG_CHECK_MODULES(CAIRO, cairo >= $CAIRO_REQUIRED_VERSION) +@@ -120,12 +120,6 @@ case "$host" in + ;; + esac + +-# Add xrender here so that we don't fail to find glib if we won't have xrender.pc +-if test "x$no_x" != "xyes"; then +- GDIPLUS_LIBS="$GDIPLUS_LIBS `pkg-config --libs xrender `" +- GDIPLUS_CFLAGS="$GDIPLUS_CFLAGS `pkg-config --cflags xrender `" +-fi +- + # Apparently for BSD special handling needs to happen + # See http://archives/neohapsis.com/archives/openbsd/2001-11/2142.html + # by Miod Vallat +@@ -348,6 +342,44 @@ dnl Test for libpng + GDIPLUS_LIBS="$GDIPLUS_LIBS $LIBPNG" + AC_DEFINE(HAVE_LIBPNG, 1, Define if png support is available. Always defined.) + ++dnl ++dnl Test for X11. Allow compiling without x11 support using the without-x11 ++dnl flag ++dnl ++ ++AC_ARG_WITH(x11, ++ [AC_HELP_STRING([--without-x11], [Disable X11 support])], ++ [disable_x11=yes]) ++ ++if test x$disable_x11 != xyes; then ++ AC_MSG_CHECKING(X11 support) ++ AC_TRY_COMPILE( ++ [#include ], ++ [], ++ [x11_available=yes], ++ [x11_available=no]) ++ ++ if test "x$x11_available" != "xyes"; then ++ AC_MSG_ERROR( [ Failed to compile with X11/Xlib.h include. You must fix your compiler paths ]) ++ else ++ AC_MSG_RESULT(yes) ++ fi ++else ++ x11_available=no ++fi ++ ++AS_IF( ++ [test x$x11_available = xyes], ++ [AC_DEFINE([HAS_X11], [1], [Define X11 support])], ++ [AC_DEFINE([HAS_X11], [0], [Skip X11 support])]) ++AM_CONDITIONAL([HAS_X11], [test x$x11_available = xyes]) ++ ++# Add xrender here so that we don't fail to find glib if we won't have xrender.pc ++if test "x$no_x" != "xyes" && "x$x11_available" = "xyes"; then ++ GDIPLUS_LIBS="$GDIPLUS_LIBS `$PKG_CONFIG --libs xrender `" ++ GDIPLUS_CFLAGS="$GDIPLUS_CFLAGS `$PKG_CONFIG --cflags xrender `" ++fi ++ + dnl Test for libexif + if test x$with_libexif != xno && test -z "$LIBEXIF"; then + PKG_CHECK_MODULES(LIBEXIF, libexif, [libexif_pkgconfig=yes], libexif_pkgconfig=no]) +@@ -363,15 +395,6 @@ else + fi + AM_CONDITIONAL(HAVE_LIBEXIF, test x$libexif_pkgconfig = xyes) + +-dnl +-dnl Produce a diagnostic, to reduce support time +-dnl +-AC_TRY_COMPILE([#include ], +- [],[x11_failed=false],[x11_failed=true]) +-if $x11_failed; then +- AC_ERROR("Failed to compile with X11/Xlib.h include. You must fix your compiler paths") +-fi +- + GDIPLUS_PKG_LIBS="$GDIPLUS_LIBS" + GDIPLUS_PKG_CFLAGS="$GDIPLUS_CFLAGS" + +@@ -396,6 +419,7 @@ echo " * Installation prefix = $prefix + echo " * Cairo = $cairo_info" + echo " * Text = $text_v" + echo " * EXIF tags = $libexif_pkgconfig" ++echo " * X11 = $x11_available" + echo " * Codecs supported:" + echo "" + echo " - TIFF: $tiff_ok" +--- src/gdiplus-private.h.orig 2014-08-27 16:45:05 UTC ++++ src/gdiplus-private.h +@@ -40,7 +40,7 @@ + #if HAVE_VISIBILITY_HIDDEN + #define GDIP_INTERNAL __attribute__((visibility ("hidden"))) + #else +- #define GDIP_INTERNAL ++ #define GDIP_INTERNAL + #endif + + #ifdef USE_INCLUDED_CAIRO +@@ -51,20 +51,27 @@ + #include "cairo-ft.h" + #endif + ++ #if HAS_X11 + #ifdef CAIRO_HAS_XLIB_SURFACE + #include "cairo-xlib.h" + #endif ++ #endif + #else + #include + #ifdef CAIRO_HAS_FT_FONT + #include + #endif ++ ++ #if HAS_X11 + #ifdef CAIRO_HAS_XLIB_SURFACE + #include + #endif ++ #endif + #endif + ++#if HAS_X11 + #include ++#endif + + #include "win32structs.h" + #include "gdipenums.h" +--- src/general.c.orig 2014-08-27 16:45:05 UTC ++++ src/general.c +@@ -23,6 +23,7 @@ + * Alexandre Pigolkine(pigolkine@gmx.de) + * Duncan Mak (duncan@ximian.com) + * Sebastien Pouliot ++ * Frederik Carlier + */ + + #include "general-private.h" +@@ -123,7 +124,6 @@ float + gdip_get_display_dpi () + { + static float dpis = 0; +- Display* display; + + if (dpis == 0) { + #if __APPLE__ +@@ -132,9 +132,10 @@ gdip_get_display_dpi () + + dpis = h_dpi; + return dpis; +-#else ++#elif HAS_X11 && CAIRO_HAS_XLIB_SURFACE + char *val; + ++ Display* display; + display = XOpenDisplay (0); + /* If the display is openable lets try to read dpi from it; otherwise use a default of 96.0f */ + if (display) { +@@ -148,6 +149,8 @@ gdip_get_display_dpi () + } else { + dpis = 96.0f; + } ++#else ++ dpis = 96.0f; + #endif + } + +--- src/graphics-private.h.orig 2014-08-27 16:45:05 UTC ++++ src/graphics-private.h +@@ -24,6 +24,7 @@ + * Geoff Norton (gnorton@customerdna.com) + * Jonathan Gilbert (logic@deltaq.org) + * Sebastien Pouliot ++ * Frederik Carlier + * + * Copyright (C) 2003-2007 Novell, Inc (http://www.novell.com) + */ +@@ -105,8 +106,12 @@ typedef struct _Graphics { + cairo_t *ct; + GpMatrix *copy_of_ctm; + cairo_matrix_t previous_matrix; ++#if HAS_X11 ++#ifdef CAIRO_HAS_XLIB_SURFACE + Display *display; + Drawable drawable; ++#endif ++#endif + void *image; + int type; + GpPen* last_pen; /* caching pen and brush to avoid unnecessary sets */ +--- src/graphics.c.orig 2014-08-27 16:45:05 UTC ++++ src/graphics.c +@@ -23,6 +23,7 @@ + * Alexandre Pigolkine (pigolkine@gmx.de) + * Duncan Mak (duncan@ximian.com) + * Sebastien Pouliot ++ * Frederik Carlier + */ + + #include "graphics-private.h" +@@ -151,8 +152,10 @@ gdip_graphics_common_init (GpGraphics *g + graphics->render_origin_y = 0; + graphics->dpi_x = graphics->dpi_y = 0; + ++#if HAS_X11 && CAIRO_HAS_XLIB_SURFACE + graphics->display = NULL; + graphics->drawable = NULL; ++#endif + + gdip_graphics_reset (graphics); + } +@@ -216,7 +219,6 @@ GdipCreateFromHDC (void *hDC, GpGraphics + cairo_surface_t *surface; + int x, y; + unsigned int w, h, border_w, depth; +- Window root; + + if (!hDC) + return OutOfMemory; +@@ -232,7 +234,8 @@ GdipCreateFromHDC (void *hDC, GpGraphics + if (clone->type == gtMemoryBitmap) + return GdipGetImageGraphicsContext (clone->image, graphics); + +-#ifdef CAIRO_HAS_XLIB_SURFACE ++#if HAS_X11 && CAIRO_HAS_XLIB_SURFACE ++ Window root; + XGetGeometry (clone->display, clone->drawable, &root, + &x, &y, &w, &h, &border_w, &depth); + +@@ -292,7 +295,7 @@ GdipCreateFromContext_macosx (void *ctx, + + #endif + +-#ifdef CAIRO_HAS_XLIB_SURFACE ++#if HAS_X11 && CAIRO_HAS_XLIB_SURFACE + + // coverity[+alloc : arg-*2] + GpStatus +@@ -329,7 +332,7 @@ GdipCreateFromXDrawable_linux(Drawable d + + #endif + +-#ifdef CAIRO_HAS_XLIB_SURFACE ++#if HAS_X11 && CAIRO_HAS_XLIB_SURFACE + static int + ignore_error_handler (Display *dpy, XErrorEvent *event) + { +@@ -360,7 +363,7 @@ GdipDeleteGraphics (GpGraphics *graphics + } + + if (graphics->ct) { +-#ifdef CAIRO_HAS_XLIB_SURFACE ++#if HAS_X11 && CAIRO_HAS_XLIB_SURFACE + int (*old_error_handler)(Display *dpy, XErrorEvent *ev) = NULL; + if (graphics->type == gtX11Drawable) + old_error_handler = XSetErrorHandler (ignore_error_handler); +@@ -369,7 +372,7 @@ GdipDeleteGraphics (GpGraphics *graphics + cairo_destroy (graphics->ct); + graphics->ct = NULL; + +-#ifdef CAIRO_HAS_XLIB_SURFACE ++#if HAS_X11 && CAIRO_HAS_XLIB_SURFACE + if (graphics->type == gtX11Drawable) + XSetErrorHandler (old_error_handler); + #endif +--- tests/Makefile.am.orig 2015-10-29 09:48:39 UTC ++++ tests/Makefile.am +@@ -17,13 +17,18 @@ LDADDS = \ + -lm + + noinst_PROGRAMS = \ +- testgdi testbits testclip testreversepath ++ testbits testclip testreversepath ++ ++if HAS_X11 ++noinst_PROGRAMS = ++ testgdi ${noinst_PROGRAMS} + + testgdi_DEPENDENCIES = $(TEST_DEPS) + testgdi_LDADD = $(LDADDS) + + testgdi_SOURCES = \ + testgdi.c ++endif HAS_X11 + + testbits_DEPENDENCIES = $(TEST_DEPS) + testbits_LDADD = $(LDADDS)