From 45c6d85825576650dc848aea1d1cb880072f3457 Mon Sep 17 00:00:00 2001 From: Holger Jaekel Date: Fri, 8 May 2020 21:33:33 +0200 Subject: community/libkml: move from testing --- ...taken-use-of-std-cerr-instead-of-std-endl.patch | 72 +++++++++++++++++++ community/libkml/20-fix-python3.patch | 15 ++++ community/libkml/30-fix-python-tests.patch | 72 +++++++++++++++++++ community/libkml/40-dont-bytecompile.patch | 16 +++++ community/libkml/APKBUILD | 83 ++++++++++++++++++++++ 5 files changed, 258 insertions(+) create mode 100644 community/libkml/10-fix-mistaken-use-of-std-cerr-instead-of-std-endl.patch create mode 100644 community/libkml/20-fix-python3.patch create mode 100644 community/libkml/30-fix-python-tests.patch create mode 100644 community/libkml/40-dont-bytecompile.patch create mode 100644 community/libkml/APKBUILD (limited to 'community/libkml') diff --git a/community/libkml/10-fix-mistaken-use-of-std-cerr-instead-of-std-endl.patch b/community/libkml/10-fix-mistaken-use-of-std-cerr-instead-of-std-endl.patch new file mode 100644 index 00000000000..ceb82ce5a25 --- /dev/null +++ b/community/libkml/10-fix-mistaken-use-of-std-cerr-instead-of-std-endl.patch @@ -0,0 +1,72 @@ +From 77cf351a61f3683b74e07857ca77b5580d1cedf0 Mon Sep 17 00:00:00 2001 +From: Sandro Mani +Date: Fri, 8 Apr 2016 23:21:26 +0200 +Subject: [PATCH 2/4] Fix mistaken use of std::cerr instead of std::endl +Source: https://src.fedoraproject.org/rpms/libkml/tree/master + +--- + examples/engine/inlinestyles.cc | 8 ++++---- + examples/engine/splitstyles.cc | 8 ++++---- + 2 files changed, 8 insertions(+), 8 deletions(-) + +diff --git a/examples/engine/inlinestyles.cc b/examples/engine/inlinestyles.cc +index 1cb4755..8ad1f57 100644 +--- a/examples/engine/inlinestyles.cc ++++ b/examples/engine/inlinestyles.cc +@@ -35,20 +35,20 @@ + bool InlineStyles(const char* input_filename, const char* output_filename) { + std::string kml_input; + if (!kmlbase::File::ReadFileToString(input_filename, &kml_input)) { +- std::cerr << "read failed: " << input_filename << std::cerr; ++ std::cerr << "read failed: " << input_filename << std::endl; + return false; + } + std::string errors; + kmldom::ElementPtr root = kmlengine::InlineStyles(kml_input, &errors); + if (!root) { +- std::cerr << "parse failed: " << input_filename << std::cerr; +- std::cerr << "parse failed: " << errors << std::cerr; ++ std::cerr << "parse failed: " << input_filename << std::endl; ++ std::cerr << "parse failed: " << errors << std::endl; + return false; + } + + std::string kml_output = kmldom::SerializePretty(root); + if (!kmlbase::File::WriteStringToFile(kml_output, output_filename)) { +- std::cerr << "write failed: " << output_filename << std::cerr; ++ std::cerr << "write failed: " << output_filename << std::endl; + return false; + } + return true; +diff --git a/examples/engine/splitstyles.cc b/examples/engine/splitstyles.cc +index a3b190a..56203c9 100644 +--- a/examples/engine/splitstyles.cc ++++ b/examples/engine/splitstyles.cc +@@ -35,20 +35,20 @@ + bool SplitStyles(const char* input_filename, const char* output_filename) { + std::string kml_input; + if (!kmlbase::File::ReadFileToString(input_filename, &kml_input)) { +- std::cerr << "read failed: " << input_filename << std::cerr; ++ std::cerr << "read failed: " << input_filename << std::endl; + return false; + } + std::string errors; + kmldom::ElementPtr root = kmlengine::SplitStyles(kml_input, &errors); + if (!root) { +- std::cerr << "parse failed: " << input_filename << std::cerr; +- std::cerr << "parse failed: " << errors << std::cerr; ++ std::cerr << "parse failed: " << input_filename << std::endl; ++ std::cerr << "parse failed: " << errors << std::endl; + return false; + } + + std::string kml_output = kmldom::SerializePretty(root); + if (!kmlbase::File::WriteStringToFile(kml_output, output_filename)) { +- std::cerr << "write failed: " << output_filename << std::cerr; ++ std::cerr << "write failed: " << output_filename << std::endl; + return false; + } + return true; +-- +2.8.1 + diff --git a/community/libkml/20-fix-python3.patch b/community/libkml/20-fix-python3.patch new file mode 100644 index 00000000000..e71cf798fd3 --- /dev/null +++ b/community/libkml/20-fix-python3.patch @@ -0,0 +1,15 @@ +Author: Holger Jaekel +Summary: Fix Python 2 syntax +---- + +--- a/src/swig/CMakeLists.txt ++++ b/src/swig/CMakeLists.txt +@@ -10,7 +10,7 @@ if(WITH_PYTHON) + + if(NOT DEFINED PYTHON_INSTALL_DIR) + execute_process(COMMAND +- ${PYTHON_EXECUTABLE} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(True)" ++ ${PYTHON_EXECUTABLE} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(True))" + OUTPUT_VARIABLE PYTHON_INSTALL_DIR + OUTPUT_STRIP_TRAILING_WHITESPACE ) + endif(NOT DEFINED PYTHON_INSTALL_DIR) diff --git a/community/libkml/30-fix-python-tests.patch b/community/libkml/30-fix-python-tests.patch new file mode 100644 index 00000000000..475dfce682e --- /dev/null +++ b/community/libkml/30-fix-python-tests.patch @@ -0,0 +1,72 @@ +From b728c0815edc06c826fb5be8cd25cbb7f3b816b3 Mon Sep 17 00:00:00 2001 +From: Sandro Mani +Date: Fri, 8 Apr 2016 23:22:12 +0200 +Subject: [PATCH 3/4] Fix python tests +Source: https://src.fedoraproject.org/rpms/libkml/tree/master + +--- + tests/swig/CMakeLists.txt | 6 ++++++ + tests/swig/kmldom_test.py | 2 +- + tests/swig/kmlengine_test.py | 3 ++- + 3 files changed, 9 insertions(+), 2 deletions(-) + +diff --git a/tests/swig/CMakeLists.txt b/tests/swig/CMakeLists.txt +index 52e398e..5ba1cd1 100644 +--- a/tests/swig/CMakeLists.txt ++++ b/tests/swig/CMakeLists.txt +@@ -1,12 +1,18 @@ + if(WITH_PYTHON) + add_test(NAME test_python_kmlbase + COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/kmlbase_test.py) ++set_tests_properties(test_python_kmlbase ++ PROPERTIES ENVIRONMENT "PYTHONPATH=${CMAKE_BINARY_DIR}/src/swig:${CMAKE_BINARY_DIR}/lib") + + add_test(NAME test_python_kmldom + COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/kmldom_test.py) ++set_tests_properties(test_python_kmldom ++ PROPERTIES ENVIRONMENT "PYTHONPATH=${CMAKE_BINARY_DIR}/src/swig:${CMAKE_BINARY_DIR}/lib") + + add_test(NAME test_python_kmlengine + COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/kmlengine_test.py) ++set_tests_properties(test_python_kmlengine ++ PROPERTIES ENVIRONMENT "PYTHONPATH=${CMAKE_BINARY_DIR}/src/swig:${CMAKE_BINARY_DIR}/lib") + endif() + + if(WITH_JAVA) +diff --git a/tests/swig/kmldom_test.py b/tests/swig/kmldom_test.py +index e18c5a7..4762d6e 100644 +--- a/tests/swig/kmldom_test.py ++++ b/tests/swig/kmldom_test.py +@@ -753,7 +753,7 @@ def TestColorStyle(colorstyle): + color = kmlbase.Color32(0xf0f0c80f) + colorstyle.set_color(color) + assert colorstyle.has_color() +- assert color == colorstyle.get_color() ++ assert color.to_string_argb() == colorstyle.get_color().to_string_argb() + # Clear and verify has_ + colorstyle.clear_color() + assert not colorstyle.has_color() +diff --git a/tests/swig/kmlengine_test.py b/tests/swig/kmlengine_test.py +index 8850221..7eb3c09 100644 +--- a/tests/swig/kmlengine_test.py ++++ b/tests/swig/kmlengine_test.py +@@ -32,6 +32,7 @@ This file contains unit tests for the KML Engine Python SWIG bindings. + import unittest + import kmldom + import kmlengine ++import os + + # These VerySimple tests really only verify that the function/class exists. + +@@ -239,7 +240,7 @@ class BasicKmlFileSerializeToStringTestCase(unittest.TestCase): + + class BasicKmzFileTestCase(unittest.TestCase): + def runTest(self): +- kmz_filepath = '../../testdata/kmz/model-macky.kmz' ++ kmz_filepath = os.path.join(os.path.dirname(__file__), '../../testdata/kmz/model-macky.kmz') + kmzfile = kmlengine.KmzFile.OpenFromFile(kmz_filepath) + assert kmzfile + (ok, kml) = kmzfile.ReadKml() +-- +2.8.1 + diff --git a/community/libkml/40-dont-bytecompile.patch b/community/libkml/40-dont-bytecompile.patch new file mode 100644 index 00000000000..8fa4bff45d6 --- /dev/null +++ b/community/libkml/40-dont-bytecompile.patch @@ -0,0 +1,16 @@ +Author: Holger Jaekel +Summary: Don't install bytecompiled python files +---- + +--- a/src/swig/CMakeLists.txt ++++ b/src/swig/CMakeLists.txt +@@ -36,7 +36,6 @@ if(WITH_PYTHON) + + install(FILES + ${CMAKE_CURRENT_BINARY_DIR}/${MODULE_NAME}.py +- ${CMAKE_CURRENT_BINARY_DIR}/${MODULE_NAME}.pyc + DESTINATION ${PYTHON_INSTALL_DIR}) + + endforeach() + + endif(WITH_PYTHON) diff --git a/community/libkml/APKBUILD b/community/libkml/APKBUILD new file mode 100644 index 00000000000..11d26ecee7a --- /dev/null +++ b/community/libkml/APKBUILD @@ -0,0 +1,83 @@ +# Contributor: Holger Jaekel +# Maintainer: Holger Jaekel +pkgname=libkml +pkgver=1.3.0 +pkgrel=4 +_jdkver=11 +pkgdesc="Reference implementation of OGC KML 2.2" +url="https://github.com/libkml/libkml" +arch="all !x86 !armhf !armv7 !s390x !mips !mips64" # openjdk is not yet available on 32 bit arches +license="BSD-3-Clause" +depends_dev=" + boost-dev + expat-dev + zlib-dev + " +makedepends=" + $depends_dev + cmake + curl-dev + minizip-dev + openjdk$_jdkver-jdk + python3-dev + swig + uriparser-dev + " +checkdepends=" + gtest-dev + " +subpackages=" + $pkgname-dev + py3-$pkgname:py + java-$pkgname:java + " +source=" + $pkgname-$pkgver.tar.gz::https://github.com/libkml/libkml/archive/$pkgver.tar.gz + 10-fix-mistaken-use-of-std-cerr-instead-of-std-endl.patch + 20-fix-python3.patch + 30-fix-python-tests.patch + 40-dont-bytecompile.patch + " + +build() { + cmake . \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_BUILD_TYPE=None \ + -DWITH_SWIG=ON \ + -DWITH_PYTHON=ON \ + -DWITH_JAVA=ON \ + -DJava_JAR_EXECUTABLE=/usr/lib/jvm/java-$_jdkver-openjdk/bin/jar \ + -DJava_JAVAC_EXECUTABLE=/usr/lib/jvm/java-$_jdkver-openjdk/bin/javac \ + -DJava_JAVADOC_EXECUTABLE=/usr/lib/jvm/java-$_jdkver-openjdk/bin/javadoc \ + -DJAVA_JVM_LIBRARY=/usr/lib/jvm/java-$_jdkver-openjdk/lib/server/libjvm.so \ + -DBUILD_TESTING=ON \ + -DBUILD_EXAMPLES=OFF + make +} + +py() { + pkgdesc="Python 3 bindings for $pkgname" + mkdir -p $subpkgdir/usr/lib/ + mv $pkgdir/usr/lib/python3.? $subpkgdir/usr/lib/ +} + +java() { + pkgdesc="Java $_jdkver bindings for $pkgname" + mkdir -p $subpkgdir/usr/lib/ + mkdir -p $subpkddir/usr/share/ + mv $pkgdir/usr/lib/jni $subpkgdir/usr/lib/jni + mv $pkgdir/usr/share $subpkgdir/usr/share +} + +package() { + make DESTDIR="$pkgdir" install +} + +check() { + ctest -E test_java_kmlbase +} +sha512sums="aa48158103d3af764bf98c1fb4cf3e1356b9cc6c8e79d80b96850916f0a8ccb1dac3a46427735dd0bf20647daa047d10e722ac3da2a214d4c1559bf6d5d7c853 libkml-1.3.0.tar.gz +8fe7bd1aeee0663ade115cbb7f63b528d4a919db6e04095c0222b1a9e32a9b2b04deacd15f3224d2146b0943086af205c179bf5638c9f5562b0977aad3ba65fe 10-fix-mistaken-use-of-std-cerr-instead-of-std-endl.patch +a588a5f86d31f3eeb47d6d2c2281a7f518730e4247847e9dae093ca7f3006e27a4b4ca4e2e003ce31ef72f83096f5cfee3b3f2fb536934f64987cecb791ce12b 20-fix-python3.patch +c29d1e9e00fe5000a9b0e7e13bf4c196c61c47459724d5c20a22714504c1497175bca6723759d02be24ac314f6381f4ff2f1245bd2e2c2b2b344f959b50a7978 30-fix-python-tests.patch +a81cd6b09041060aff7d999280e0d7ea4bb6c819b510afd210ad097e480f444f0f2c779fe1cb2f5ecf0976f27daf66df62a88825e893bb6126909acfd0d74f65 40-dont-bytecompile.patch" -- cgit v1.2.3