summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarek Szuba <marecki@gentoo.org>2020-12-22 12:47:40 +0000
committerMarek Szuba <marecki@gentoo.org>2020-12-22 12:50:28 +0000
commitde5382db2e3649bced7f3b6b8edcda0a0ca5dee2 (patch)
tree154b4474f7933881f6070f0e1ebb2016bfd20234
parentdev-libs/c-blosc: Bump to 1.21.0 (diff)
downloadgentoo-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>
-rw-r--r--app-text/podofo/files/podofo-0.9.6_p20190928-cmake_lua_version.patch15
-rw-r--r--app-text/podofo/podofo-0.9.6_p20190928-r100.ebuild159
-rw-r--r--profiles/package.mask1
3 files changed, 175 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"
+}
diff --git a/profiles/package.mask b/profiles/package.mask
index 75e5a55f428a..549f1b2c39dc 100644
--- a/profiles/package.mask
+++ b/profiles/package.mask
@@ -457,6 +457,7 @@ kde-apps/kdebase-meta:5
>=app-metrics/nginx-lua-prometheus-0.1_pre20170610-r100
>=app-misc/worker-3.8.3-r100
>=app-text/highlight-3.57-r100
+>=app-text/podofo-0.9.6_p20190928-r100
>=dev-db/redis-6.0.9-r100
>=dev-games/cegui-0.8.7-r100
>=dev-games/openscenegraph-3.6.5-r100