+++ /dev/null
-From f5da3b4d9e35a2df272f2f4056c3647454eaea95 Mon Sep 17 00:00:00 2001
-From: Zac Medico <zmedico@gmail.com>
-Date: Sun, 15 Oct 2017 23:04:57 -0700
-Subject: [PATCH] podofosign: fix compile errors with openssl-1.1.0f
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-https://sourceforge.net/p/podofo/mailman/message/36077904/
-
-This fixes the following compile errors with openssl-1.1.0f:
-
-tools/podofosign/podofosign.cpp:877:32: error: ‘OpenSSL_add_all_algorithms’ was not declared in this scope
- OpenSSL_add_all_algorithms();
- ^
-tools/podofosign/podofosign.cpp:878:29: error: ‘ERR_load_crypto_strings’ was not declared in this scope
- ERR_load_crypto_strings();
- ^
-tools/podofosign/podofosign.cpp:1085:22: error: ‘ERR_free_strings’ was not declared in this scope
- ERR_free_strings();
- ^
-
-This patch has been tested on Linux with openssl-1.0.2l and
-openssl-1.1.0f.
-
-Bug: https://bugs.gentoo.org/614756
----
- CMakeLists.txt | 12 ++++++++++--
- tools/podofosign/podofosign.cpp | 7 +++++++
- 2 files changed, 17 insertions(+), 2 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 0c9a2ce..b4f7b3c 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -325,6 +325,14 @@ ENDIF(CMAKE_COMPILER_IS_GNUCXX)
- FIND_PACKAGE(ZLIB REQUIRED)
- MESSAGE("Found zlib headers in ${ZLIB_INCLUDE_DIR}, library at ${ZLIB_LIBRARIES}")
-
-+FIND_PACKAGE(OpenSSL)
-+if(OpenSSL_FOUND)
-+ SET(PODOFO_HAVE_OPENSSL TRUE)
-+ INCLUDE_DIRECTORIES(${OPENSSL_INCLUDE_DIRS})
-+ LINK_DIRECTORIES(${OPENSSL_LIBRARIES})
-+ MESSAGE(STATUS "Using OpenSSL ${OPENSSL_VERSION}")
-+ MESSAGE("Found OpenSSL ${OPENSSL_VERSION} headers in ${OPENSSL_INCLUDE_DIRS}, library at ${OPENSSL_LIBRARIES}")
-+ELSE(OpenSSL_FOUND)
- FIND_PACKAGE(LIBCRYPTO)
-
- IF(LIBCRYPTO_FOUND)
-@@ -334,6 +342,7 @@ IF(LIBCRYPTO_FOUND)
- ELSE(LIBCRYPTO_FOUND)
- MESSAGE("OpenSSL's libCrypto not found. Encryption support will be disabled")
- ENDIF(LIBCRYPTO_FOUND)
-+ENDIF(OpenSSL_FOUND)
-
- FIND_PACKAGE(LIBIDN)
-
-@@ -393,8 +402,6 @@ ENDIF(CppUnit_FOUND)
-
- ENDIF(NOT PODOFO_BUILD_LIB_ONLY)
-
--FIND_PACKAGE(OpenSSL)
--
- FIND_PACKAGE(FREETYPE REQUIRED)
- MESSAGE("Found freetype library at ${FREETYPE_LIBRARIES}, headers ${FREETYPE_INCLUDE_DIR}")
-
-@@ -499,6 +506,7 @@ SET(PODOFO_LIB_DEPENDS
- ${LIBCRYPTO_LDFLAGS}
- ${LIBCRYPTO_LIBRARIES}
- ${LIBJPEG_LIBRARIES}
-+ ${OPENSSL_LIBRARIES}
- ${PLATFORM_SYSTEM_LIBRARIES}
- ${stlport_libraries_if_use_stlport}
- ${FREETYPE_LIBRARIES}
-diff --git a/tools/podofosign/podofosign.cpp b/tools/podofosign/podofosign.cpp
-index b8f5f61..a7be1e5 100644
---- a/tools/podofosign/podofosign.cpp
-+++ b/tools/podofosign/podofosign.cpp
-@@ -27,6 +27,7 @@
- #include <openssl/evp.h>
- #include <openssl/err.h>
- #include <openssl/pem.h>
-+#include <openssl/ssl.h>
- #include <openssl/x509.h>
-
- #if defined(_WIN64)
-@@ -874,11 +875,15 @@ int main( int argc, char* argv[] )
- outputfile = NULL;
- }
-
-+#ifdef PODOFO_HAVE_OPENSSL_1_1
-+ OPENSSL_init_ssl(0, NULL);
-+#else
- OpenSSL_add_all_algorithms();
- ERR_load_crypto_strings();
- ERR_load_PEM_strings();
- ERR_load_ASN1_strings();
- ERR_load_EVP_strings();
-+#endif
-
- X509* cert = NULL;
- EVP_PKEY* pkey = NULL;
-@@ -1082,7 +1087,9 @@ int main( int argc, char* argv[] )
- result = e.GetError();
- }
-
-+#ifndef PODOFO_HAVE_OPENSSL_1_1
- ERR_free_strings();
-+#endif
-
- if( pSignField )
- delete pSignField;
---
+++ /dev/null
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-inherit cmake-utils flag-o-matic multilib toolchain-funcs
-
-DESCRIPTION="PoDoFo is a C++ library to work with the PDF file format"
-HOMEPAGE="https://sourceforge.net/projects/podofo/"
-SRC_URI="mirror://gentoo/${P}.tar.xz"
-
-LICENSE="GPL-2 LGPL-2.1"
-SLOT="0/${PV}"
-KEYWORDS="~amd64 ~arm ~hppa ~ppc ~ppc64 ~sparc ~x86"
-IUSE="+boost idn libressl debug test +tools"
-REQUIRED_USE="test? ( tools )"
-
-RDEPEND="dev-lang/lua:=
- 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 )"
-
-DOCS="AUTHORS ChangeLog TODO"
-PATCHES=(
- "${FILESDIR}/${P}-openssl-1.1.patch"
-)
-
-src_prepare() {
- cmake-utils_src_prepare
- local x sed_args
-
- # The 0.9.6 ABI is not necessarily stable, so make PODOFO_SOVERSION
- # equal to ${PV}.
- sed -e 's|${PODOFO_VERSION_PATCH}|\0_'${PV##*_}'|' -i CMakeLists.txt || die
-
- # 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
- if has_version '>=dev-lang/lua-5.2' ; then
- sed -e 's: lua_open(: luaL_newstate(:' \
- -e 's: luaL_getn(: lua_rawlen(:' -i \
- tools/podofocolor/luaconverter.cpp \
- tools/podofoimpose/planreader_lua.cpp || die
- fi
-}
-
-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"
- -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-utils_src_configure
-}
-
-src_test() {
- cd "${CMAKE_BUILD_DIR}"/test/unit
- ./podofo-test --selftest || die "self test failed"
-}