diff options
author | Marek Szuba <marecki@gentoo.org> | 2020-12-22 12:47:40 +0000 |
---|---|---|
committer | Marek Szuba <marecki@gentoo.org> | 2020-12-22 12:50:28 +0000 |
commit | de5382db2e3649bced7f3b6b8edcda0a0ca5dee2 (patch) | |
tree | 154b4474f7933881f6070f0e1ebb2016bfd20234 /app-text | |
parent | dev-libs/c-blosc: Bump to 1.21.0 (diff) | |
download | gentoo-de5382db2e3649bced7f3b6b8edcda0a0ca5dee2.tar.gz gentoo-de5382db2e3649bced7f3b6b8edcda0a0ca5dee2.tar.bz2 gentoo-de5382db2e3649bced7f3b6b8edcda0a0ca5dee2.zip |
app-text/podofo: migrate to lua-single.eclass
CMake-based => the usual treatment.
Compatibility - upstream officially supports only lua5.1 but it turns out
that with the 5.2 fix which was already included in the unmigrated ebuild,
it builds and installs fine even against 5.4.
Closes: https://bugs.gentoo.org/752567
Signed-off-by: Marek Szuba <marecki@gentoo.org>
Diffstat (limited to 'app-text')
-rw-r--r-- | app-text/podofo/files/podofo-0.9.6_p20190928-cmake_lua_version.patch | 15 | ||||
-rw-r--r-- | app-text/podofo/podofo-0.9.6_p20190928-r100.ebuild | 159 |
2 files changed, 174 insertions, 0 deletions
diff --git a/app-text/podofo/files/podofo-0.9.6_p20190928-cmake_lua_version.patch b/app-text/podofo/files/podofo-0.9.6_p20190928-cmake_lua_version.patch new file mode 100644 index 000000000000..f178ae2a6c0c --- /dev/null +++ b/app-text/podofo/files/podofo-0.9.6_p20190928-cmake_lua_version.patch @@ -0,0 +1,15 @@ +Switch from the non-standard upstream CMake Lua module to the one bundled +with CMake, use only the Lua version requested by the ebuild, and do not +semi-quietly ignore the absence of Lua. + +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -433,7 +433,7 @@ + ENDIF(WANT_FONTCONFIG) + + IF(NOT PODOFO_BUILD_LIB_ONLY) +-FIND_PACKAGE(LUA) ++FIND_PACKAGE(Lua ${LUA_VERSION} EXACT REQUIRED) + IF(LUA_FOUND) + # If we have lua, we can build podofoimpose. + MESSAGE("Lua found - PoDoFoImpose and PoDoFoColor will be built with Lua support") diff --git a/app-text/podofo/podofo-0.9.6_p20190928-r100.ebuild b/app-text/podofo/podofo-0.9.6_p20190928-r100.ebuild new file mode 100644 index 000000000000..cf6bcc0de02b --- /dev/null +++ b/app-text/podofo/podofo-0.9.6_p20190928-r100.ebuild @@ -0,0 +1,159 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +LUA_COMPAT=( lua5-{1..4} ) + +inherit cmake flag-o-matic lua-single toolchain-funcs + +DESCRIPTION="PoDoFo is a C++ library to work with the PDF file format" +HOMEPAGE="https://sourceforge.net/projects/podofo/" +SRC_URI="https://dev.gentoo.org/~zmedico/dist/${P}.tar.xz" + +LICENSE="GPL-2 LGPL-2.1" +SLOT="0/${PV%_*}" +KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~sparc ~x86" +IUSE="+boost idn libressl debug test +tools" +RESTRICT="!test? ( test )" +REQUIRED_USE="${LUA_REQUIRED_USE} + test? ( tools )" + +RDEPEND="${LUA_DEPS} + idn? ( net-dns/libidn:= ) + !libressl? ( dev-libs/openssl:0= ) + libressl? ( dev-libs/libressl:0= ) + media-libs/fontconfig:= + media-libs/freetype:2= + virtual/jpeg:0= + media-libs/libpng:0= + media-libs/tiff:0= + sys-libs/zlib:=" +DEPEND="${RDEPEND} + virtual/pkgconfig + boost? ( dev-util/boost-build ) + test? ( dev-util/cppunit )" + +PATCHES=( + "${FILESDIR}"/${PN}-0.9.6_p20190928-cmake_lua_version.patch +) + +DOCS="AUTHORS ChangeLog TODO" + +src_prepare() { + cmake_src_prepare + local x sed_args + + if use libressl; then + sed -e 's:^#ifdef PODOFO_HAVE_OPENSSL_1_1$:#ifndef PODOFO_HAVE_OPENSSL_1_1:' \ + -i tools/podofosign/podofosign.cpp || die #663602 + fi + + # bug 620934 - Disable linking with cppunit when possible, since it + # triggers errors with some older compilers. + use test || sed -e 's:^FIND_PACKAGE(CppUnit):#\0:' -i CMakeLists.txt || die + + # bug 556962 + sed -i -e 's|Decrypt( pEncryptedBuffer, nOutputLen, pDecryptedBuffer, m_lLen );|Decrypt( pEncryptedBuffer, (pdf_long)nOutputLen, pDecryptedBuffer, (pdf_long\&)m_lLen );|' \ + test/unit/EncryptTest.cpp || die + + sed -i \ + -e "s:LIBDIRNAME \"lib\":LIBDIRNAME \"$(get_libdir)\":" \ + -e "s:LIBIDN_FOUND:HAVE_LIBIDN:g" \ + CMakeLists.txt || die + + # Use pkg-config to find headers for bug #459404. + sed_args= + for x in $($(tc-getPKG_CONFIG) --cflags freetype2) ; do + [[ ${x} == -I* ]] || continue + x=${x#-I} + if [[ -f ${x}/ft2build.h ]] ; then + sed_args+=" -e s:/usr/include/\\r\$:${x}:" + elif [[ -f ${x}/freetype/config/ftheader.h ]] ; then + sed_args+=" -e s:/usr/include/freetype2\\r\$:${x}:" + fi + done + [[ -n ${sed_args} ]] && \ + { sed -i ${sed_args} cmake/modules/FindFREETYPE.cmake || die; } + + # Bug #439784: Add missing unistd include for close() and unlink(). + sed -i 's:^#include <stdio.h>$:#include <unistd.h>\n\0:' -i \ + test/unit/TestUtils.cpp || die + + # TODO: fix these test cases + # ColorTest.cpp:62:Assertion + # Test name: ColorTest::testDefaultConstructor + # expected exception not thrown + # - Expected: PdfError + sed -e 's:CPPUNIT_TEST( testDefaultConstructor ://\0:' \ + -e 's:CPPUNIT_TEST( testGreyConstructor ://\0:' \ + -e 's:CPPUNIT_TEST( testRGBConstructor ://\0:' \ + -e 's:CPPUNIT_TEST( testCMYKConstructor ://\0:' \ + -e 's:CPPUNIT_TEST( testColorSeparationAllConstructor ://\0:' \ + -e 's:CPPUNIT_TEST( testColorSeparationNoneConstructor ://\0:' \ + -e 's:CPPUNIT_TEST( testColorSeparationConstructor ://\0:' \ + -e 's:CPPUNIT_TEST( testColorCieLabConstructor ://\0:' \ + -i test/unit/ColorTest.h || die + + # ColorTest.cpp:42:Assertion + # Test name: ColorTest::testHexNames + # assertion failed + # - Expression: static_cast<int>(rgb.GetGreen() * 255.0) == 0x0A + sed -e 's:CPPUNIT_TEST( testHexNames ://\0:' \ + -i test/unit/ColorTest.h || die + + # Bug #352125: test failure, depending on installed fonts + # ##Failure Location unknown## : Error + # Test name: FontTest::testFonts + # uncaught exception of type PoDoFo::PdfError + # - ePdfError_UnsupportedFontFormat + sed -e 's:CPPUNIT_TEST( testFonts ://\0:' \ + -i test/unit/FontTest.h || die + + # Test name: EncodingTest::testDifferencesEncoding + # equality assertion failed + # - Expected: 1 + # - Actual : 0 + sed -e 's:CPPUNIT_TEST( testDifferencesEncoding ://\0:' \ + -i test/unit/EncodingTest.h || die + + # Bug #407015: fix to compile with Lua 5.2+ + case "${ELUA}" in + lua5-1|luajit) + ;; + *) + sed -e 's: lua_open(: luaL_newstate(:' \ + -e 's: luaL_getn(: lua_rawlen(:' -i \ + tools/podofocolor/luaconverter.cpp \ + tools/podofoimpose/planreader_lua.cpp || die + ;; + esac +} + +src_configure() { + + # Bug #381359: undefined reference to `PoDoFo::PdfVariant::DelayedLoadImpl()' + filter-flags -fvisibility-inlines-hidden + + mycmakeargs+=( + "-DPODOFO_BUILD_SHARED=1" + "-DPODOFO_HAVE_JPEG_LIB=1" + "-DPODOFO_HAVE_PNG_LIB=1" + "-DPODOFO_HAVE_TIFF_LIB=1" + "-DWANT_FONTCONFIG=1" + "-DUSE_STLPORT=0" + -DLUA_VERSION="$(lua_get_version)" + -DWANT_BOOST=$(usex boost ON OFF) + -DHAVE_LIBIDN=$(usex idn ON OFF) + -DPODOFO_HAVE_CPPUNIT=$(usex test ON OFF) + -DPODOFO_BUILD_LIB_ONLY=$(usex tools OFF ON) + ) + + cmake_src_configure + mkdir -p "${S}/test/TokenizerTest/objects" || die +} + +src_test() { + cd "${BUILD_DIR}"/test/unit || die + ./podofo-test --selftest || die "self test failed" +} |