diff options
author | Thomas Deutschmann <whissi@gentoo.org> | 2016-12-04 22:09:14 +0100 |
---|---|---|
committer | Thomas Deutschmann <whissi@gentoo.org> | 2016-12-05 15:16:54 +0100 |
commit | e748080fd04e9196cfb3146e6f341f06f3be6813 (patch) | |
tree | c3b2fe771e860b6acd7b5da548b322e12499503c /sci-libs/gdal/files | |
parent | dev-java/jackcess: New package (diff) | |
download | gentoo-e748080fd04e9196cfb3146e6f341f06f3be6813.tar.gz gentoo-e748080fd04e9196cfb3146e6f341f06f3be6813.tar.bz2 gentoo-e748080fd04e9196cfb3146e6f341f06f3be6813.zip |
sci-libs/gdal: Bump to v2.0.3
- Version bump to new upstream release v2.0.3.
- Bumped to EAPI=6.
- Enabled python3_5 support.
- "oracle" USE flag added (Fixes Gentoo-Bug #585156).
- Fixes a build issue when using "java" USE flag and you have a JRE
installed (patch for gdal provided by James Le Cuirot, thanks!).
- MDB driver now uses new dev-java/jackcess pack (patch for gdal provided
by James Le Cuirot, thanks!)
- Switched JPEG-2000 provider from media-libs/jasper to
media-libs/openjpeg:2 because JasPer is unmaintained and vulnerable.
Gentoo-Bug: https://bugs.gentoo.org/585156
Closes: https://github.com/gentoo/gentoo/pull/2106
Package-Manager: portage-2.3.2
Diffstat (limited to 'sci-libs/gdal/files')
-rw-r--r-- | sci-libs/gdal/files/gdal-1.5.0-soname-r1.patch | 13 | ||||
-rw-r--r-- | sci-libs/gdal/files/gdal-2.0.3-add-dlopen-support-for-jvm.patch | 232 | ||||
-rw-r--r-- | sci-libs/gdal/files/gdal-2.0.3-install_name.patch | 49 |
3 files changed, 294 insertions, 0 deletions
diff --git a/sci-libs/gdal/files/gdal-1.5.0-soname-r1.patch b/sci-libs/gdal/files/gdal-1.5.0-soname-r1.patch new file mode 100644 index 000000000000..ec35018868dd --- /dev/null +++ b/sci-libs/gdal/files/gdal-1.5.0-soname-r1.patch @@ -0,0 +1,13 @@ +--- old/GDALmake.opt.in.orig 2008-02-02 18:25:48.000000000 -0800 ++++ new/GDALmake.opt.in 2008-02-02 18:54:53.000000000 -0800 +@@ -97,6 +97,10 @@ + GDAL_SLIB = $(GDAL_ROOT)/libgdal.$(SO_EXT) + GDAL_SLIB_LINK = -L$(GDAL_ROOT) -lgdal + ++# for building without libtool ++GDAL_SLIB_SO_VER = $(GDAL_VERSION_MAJOR).$(LIBGDAL_CURRENT).$(LIBGDAL_REVISION) ++GDAL_SLIB_SONAME = -Wl,-soname,libgdal.$(SO_EXT).$(GDAL_VERSION_MAJOR) ++ + # Mac OS X Framework definition + MACOSX_FRAMEWORK = @MACOSX_FRAMEWORK@ + diff --git a/sci-libs/gdal/files/gdal-2.0.3-add-dlopen-support-for-jvm.patch b/sci-libs/gdal/files/gdal-2.0.3-add-dlopen-support-for-jvm.patch new file mode 100644 index 000000000000..7c35d1cb1242 --- /dev/null +++ b/sci-libs/gdal/files/gdal-2.0.3-add-dlopen-support-for-jvm.patch @@ -0,0 +1,232 @@ +From baba2c213770972e79be6be4902716278f351fb4 Mon Sep 17 00:00:00 2001 +From: James Le Cuirot <chewi@gentoo.org> +Date: Wed, 24 Aug 2016 23:32:13 +0100 +Subject: [PATCH 1/2] Allow libjvm.so to be dlopen'd with --with-jvm-lib=dlopen + +Having to set LD_LIBRARY_PATH is a pain and relying on the rpath can +be problematic when libjvm.so lives in a versioned directory. Some +distributions even allow per-user JVM selection so checking the value +of JAVA_HOME at runtime allows this choice to be respected. + +libjvm.so's location is hard to predict (amd64 vs i386, jre or not?) +so ${JAVA_HOME}/bin/java -XshowSettings is executed to find its +location. If JAVA_HOME is not set then java is executed from the PATH +instead. +--- + gdal/configure | 11 +++++- + gdal/configure.in | 7 +++- + gdal/ogr/ogrsf_frmts/mdb/ogrmdbjackcess.cpp | 57 +++++++++++++++++++++++++++-- + gdal/port/cpl_config.h.in | 3 ++ + 4 files changed, 71 insertions(+), 7 deletions(-) + +diff --git a/configure b/configure +index 75e4e279de..acdfa439de 100755 +--- a/configure ++++ b/configure +@@ -1753,7 +1753,7 @@ Optional Packages: + --with-python=ARG Enable python bindings (ARG=yes, no, or path to python binary) + --with-java Include Java support (ARG=yes, no or JDK home path) [default=no] + --with-mdb Include MDB driver +- --with-jvm-lib=ARG ARG points to Java libjvm path ++ --with-jvm-lib=ARG ARG is dlopen or points to Java libjvm path + --with-jvm-lib-add-rpath Add the libjvm path to the RPATH (no by default) + --with-rasdaman=DIR Include rasdaman support (DIR is rasdaman's install dir). + --with-armadillo=ARG Include Armadillo support for faster TPS transform computation (ARG=yes/no/path to armadillo install root) [default=no] +@@ -29491,7 +29491,14 @@ if test "${with_jvm_lib_add_rpath+set}" = set; then : + fi + + +- if test "x$with_jvm_lib" != "x"; then ++ if test "x$with_jvm_lib" = "xdlopen"; then ++ ++cat >>confdefs.h <<_ACEOF ++#define JVM_LIB_DLOPEN 1 ++_ACEOF ++ ++ JVM_LIB="-ldl" ++ elif test "x$with_jvm_lib" != "x"; then + if test -d "$with_jvm_lib"; then + saved_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -L$with_jvm_lib" +diff --git a/configure.in b/configure.in +index 91efa5a32a..546ff04049 100644 +--- a/configure.in ++++ b/configure.in +@@ -4213,11 +4213,14 @@ if test "$with_mdb" = "yes" ; then + AC_MSG_ERROR("--with-java must be specified.") + fi + +- AC_ARG_WITH(jvm-lib, [ --with-jvm-lib=[ARG] ARG points to Java libjvm path],,) ++ AC_ARG_WITH(jvm-lib, [ --with-jvm-lib=[ARG] ARG is dlopen or points to Java libjvm path],,) + + AC_ARG_WITH(jvm-lib-add-rpath,[ --with-jvm-lib-add-rpath Add the libjvm path to the RPATH (no by default)],,) + +- if test "x$with_jvm_lib" != "x"; then ++ if test "x$with_jvm_lib" = "xdlopen"; then ++ AC_DEFINE_UNQUOTED(JVM_LIB_DLOPEN, 1, [Define to 1 if libjvm.so should be dlopen'd]) ++ JVM_LIB="-ldl" ++ elif test "x$with_jvm_lib" != "x"; then + if test -d "$with_jvm_lib"; then + saved_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -L$with_jvm_lib" +diff --git a/ogr/ogrsf_frmts/mdb/ogrmdbjackcess.cpp b/ogr/ogrsf_frmts/mdb/ogrmdbjackcess.cpp +index b068adf777..bc54a115df 100644 +--- a/ogr/ogrsf_frmts/mdb/ogrmdbjackcess.cpp ++++ b/ogr/ogrsf_frmts/mdb/ogrmdbjackcess.cpp +@@ -29,6 +29,11 @@ + + #include "ogr_mdb.h" + ++#if JVM_LIB_DLOPEN ++#include <limits.h> ++#include <stdio.h> ++#endif ++ + CPL_CVSID("$Id: ogrmdbjackcess.cpp 27044 2014-03-16 23:41:27Z rouault $"); + + static JavaVM *jvm_static = NULL; +@@ -161,9 +166,41 @@ int OGRMDBJavaEnv::Init() + { + JavaVM* vmBuf[1]; + jsize nVMs; ++ int ret = 0; ++ ++#if JVM_LIB_DLOPEN ++ const char *jvmLibPtr = "libjvm.so"; ++ char jvmLib[PATH_MAX]; ++ ++ FILE *javaCmd = popen("\"${JAVA_HOME}${JAVA_HOME:+/bin/}java\" -XshowSettings 2>&1 | sed -n '/\\bsun\\.boot\\.library\\.path =/s:.* = \\(.*\\):\\1/server/libjvm.so:p'", "r"); ++ ++ if (javaCmd != NULL) ++ { ++ size_t javaCmdRead = fread(jvmLib, 1, PATH_MAX, javaCmd); ++ ret = pclose(javaCmd); ++ ++ if (ret == 0 && javaCmdRead >= 2) ++ { ++ /* Chomp the new line */ ++ jvmLib[javaCmdRead - 1] = '\0'; ++ jvmLibPtr = jvmLib; ++ } ++ } ++ ++ jint (*pfnJNI_GetCreatedJavaVMs)(JavaVM **, jsize, jsize *); ++ pfnJNI_GetCreatedJavaVMs = (jint (*)(JavaVM **, jsize, jsize *)) ++ CPLGetSymbol(jvmLibPtr, "JNI_GetCreatedJavaVMs"); ++ ++ if (pfnJNI_GetCreatedJavaVMs == NULL) ++ return FALSE; ++ else ++ ret = pfnJNI_GetCreatedJavaVMs(vmBuf, 1, &nVMs); ++#else ++ ret = JNI_GetCreatedJavaVMs(vmBuf, 1, &nVMs); ++#endif + + /* Are we already called from Java ? */ +- if (JNI_GetCreatedJavaVMs(vmBuf, 1, &nVMs) == JNI_OK && nVMs == 1) ++ if (ret == JNI_OK && nVMs == 1) + { + jvm = vmBuf[0]; + if (jvm->GetEnv((void **)&env, JNI_VERSION_1_2) == JNI_OK) +@@ -194,8 +231,22 @@ int OGRMDBJavaEnv::Init() + args.nOptions = 0; + args.ignoreUnrecognized = JNI_FALSE; + +- int ret = JNI_CreateJavaVM(&jvm, (void **)&env, &args); +- if (ret != 0 || jvm == NULL || env == NULL) ++#if JVM_LIB_DLOPEN ++ jint (*pfnJNI_CreateJavaVM)(JavaVM **, void **, void *); ++ pfnJNI_CreateJavaVM = (jint (*)(JavaVM **, void **, void *)) ++ CPLGetSymbol(jvmLibPtr, "JNI_CreateJavaVM"); ++ ++ if (pfnJNI_CreateJavaVM == NULL) ++ return FALSE; ++ else ++ ret = pfnJNI_CreateJavaVM(&jvm, (void **)&env, &args); ++#else ++ ret = JNI_CreateJavaVM(&jvm, (void **)&env, &args); ++#endif ++ ++ CPLFree(pszClassPathOption); ++ ++ if (ret != JNI_OK || jvm == NULL || env == NULL) + { + CPLError(CE_Failure, CPLE_AppDefined, "JNI_CreateJavaVM failed (%d)", ret); + return FALSE; +diff --git a/port/cpl_config.h.in b/port/cpl_config.h.in +index 313729fd3e..e8fa21140a 100644 +--- a/port/cpl_config.h.in ++++ b/port/cpl_config.h.in +@@ -161,6 +161,9 @@ + /* For .cpp files, define as const if the declaration of iconv() needs const. */ + #undef ICONV_CPP_CONST + ++/* Define to 1 if libjvm.so should be dlopen'd */ ++#undef JVM_LIB_DLOPEN ++ + /* Define to the sub-directory in which libtool stores uninstalled libraries. + */ + #undef LT_OBJDIR +-- +2.11.0 + + +From cd6bbb60ced62b6176482e86c54ab618e2592ac8 Mon Sep 17 00:00:00 2001 +From: James Le Cuirot <chewi@gentoo.org> +Date: Thu, 25 Aug 2016 21:26:20 +0100 +Subject: [PATCH 2/2] Fetch jackcess classpath using java-config instead of + using CLASSPATH + +--- + gdal/ogr/ogrsf_frmts/mdb/ogrmdbjackcess.cpp | 26 ++++++++++++++++++++++---- + 1 file changed, 22 insertions(+), 4 deletions(-) + +diff --git a/ogr/ogrsf_frmts/mdb/ogrmdbjackcess.cpp b/ogr/ogrsf_frmts/mdb/ogrmdbjackcess.cpp +index bc54a115df..5b0972677e 100644 +--- a/ogr/ogrsf_frmts/mdb/ogrmdbjackcess.cpp ++++ b/ogr/ogrsf_frmts/mdb/ogrmdbjackcess.cpp +@@ -218,19 +218,37 @@ int OGRMDBJavaEnv::Init() + JavaVMInitArgs args; + JavaVMOption options[1]; + args.version = JNI_VERSION_1_2; +- const char* pszClassPath = CPLGetConfigOption("CLASSPATH", NULL); +- CPLString osClassPathOption; ++ ++ FILE *javaCmd = popen("java-config --with-dependencies --classpath=jackcess-1", "r"); ++ ++ const char* pszClassPath = NULL; ++ if (javaCmd != NULL) ++ { ++ pszClassPath = CPLReadLine(javaCmd); ++ ret = pclose(javaCmd); ++ ++ if (ret != 0) ++ pszClassPath = NULL; ++ } ++ ++ if (pszClassPath == NULL) ++ pszClassPath = CPLGetConfigOption("CLASSPATH", NULL); ++ ++ char* pszClassPathOption = NULL; + if (pszClassPath) + { + args.nOptions = 1; +- osClassPathOption.Printf("-Djava.class.path=%s", pszClassPath); +- options[0].optionString = (char*) osClassPathOption.c_str(); ++ pszClassPathOption = CPLStrdup(CPLSPrintf("-Djava.class.path=%s", pszClassPath)); ++ options[0].optionString = pszClassPathOption; + args.options = options; + } + else + args.nOptions = 0; + args.ignoreUnrecognized = JNI_FALSE; + ++ if (javaCmd != NULL) ++ CPLReadLine(NULL); ++ + #if JVM_LIB_DLOPEN + jint (*pfnJNI_CreateJavaVM)(JavaVM **, void **, void *); + pfnJNI_CreateJavaVM = (jint (*)(JavaVM **, void **, void *)) +-- +2.11.0 + diff --git a/sci-libs/gdal/files/gdal-2.0.3-install_name.patch b/sci-libs/gdal/files/gdal-2.0.3-install_name.patch new file mode 100644 index 000000000000..1e83d55ecf7d --- /dev/null +++ b/sci-libs/gdal/files/gdal-2.0.3-install_name.patch @@ -0,0 +1,49 @@ +Unbreak compilation on Darwin + +Author: Fabian Groffen <grobian@gentoo.org> + +--- gdal-2.0.3.old/GDALmake.opt.in ++++ gdal-2.0.3/GDALmake.opt.in +@@ -104,6 +104,10 @@ GDAL_LIB = $(GDAL_ROOT)/libgdal.a + GDAL_SLIB = $(GDAL_ROOT)/libgdal.$(SO_EXT) + GDAL_SLIB_LINK = -L$(GDAL_ROOT) -lgdal + ++# for building without libtool ++GDAL_SLIB_SO_VER = $(GDAL_VERSION_MAJOR).$(LIBGDAL_CURRENT).$(LIBGDAL_REVISION) ++GDAL_SLIB_SONAME = -install_name $(INST_LIB)/libgdal.$(GDAL_VERSION_MAJOR).$(SO_EXT) ++ + # Mac OS X Framework definition + MACOSX_FRAMEWORK = @MACOSX_FRAMEWORK@ + +--- gdal-2.0.3.old/GNUmakefile ++++ gdal-2.0.3/GNUmakefile +@@ -208,7 +208,7 @@ else + + ifeq ($(HAVE_LD_SHARED),yes) + +-GDAL_SLIB_B = $(notdir $(GDAL_SLIB)) ++GDAL_SLIB_B = libgdal + + install-lib: + +@@ -216,14 +216,14 @@ install-lib: + ifeq ($(MACOSX_FRAMEWORK),yes) + $(INSTALL_LIB) $(GDAL_SLIB) $(DESTDIR)$(INST_LIB)/GDAL + else +- rm -f $(DESTDIR)$(INST_LIB)/$(GDAL_SLIB_B) +- rm -f $(DESTDIR)$(INST_LIB)/$(GDAL_SLIB_B).$(GDAL_VERSION_MAJOR) +- rm -f $(DESTDIR)$(INST_LIB)/$(GDAL_SLIB_B).$(GDAL_VER) +- $(INSTALL_LIB) $(GDAL_SLIB) $(DESTDIR)$(INST_LIB)/$(GDAL_SLIB_B).$(GDAL_VER) ++ rm -f $(DESTDIR)$(INST_LIB)/$(GDAL_SLIB_B).dylib ++ rm -f $(DESTDIR)$(INST_LIB)/$(GDAL_SLIB_B).$(GDAL_VERSION_MAJOR).dylib ++ rm -f $(DESTDIR)$(INST_LIB)/$(GDAL_SLIB_B).$(GDAL_VER).dylib ++ $(INSTALL_LIB) $(GDAL_SLIB) $(DESTDIR)$(INST_LIB)/$(GDAL_SLIB_B).$(GDAL_VER).dylib + (cd $(DESTDIR)$(INST_LIB) ; \ +- ln -s $(GDAL_SLIB_B).$(GDAL_VER) $(GDAL_SLIB_B).$(GDAL_VERSION_MAJOR)) ++ ln -s $(GDAL_SLIB_B).$(GDAL_VER).dylib $(GDAL_SLIB_B).$(GDAL_VERSION_MAJOR).dylib) + (cd $(DESTDIR)$(INST_LIB) ; \ +- ln -s $(GDAL_SLIB_B).$(GDAL_VERSION_MAJOR) $(GDAL_SLIB_B)) ++ ln -s $(GDAL_SLIB_B).$(GDAL_VERSION_MAJOR).dylib $(GDAL_SLIB_B).dylib) + $(INSTALL_DIR) $(DESTDIR)$(INST_LIB)/gdalplugins + endif + |