diff options
author | Sam James <sam@gentoo.org> | 2022-01-29 18:48:37 +0000 |
---|---|---|
committer | Sam James <sam@gentoo.org> | 2022-01-29 18:49:03 +0000 |
commit | d63c5a3a1240352d4200582d7fd68ae3afb8a5d7 (patch) | |
tree | eb8ebf0c5ea5939b56a092244e557cfde33d2605 /media-gfx/graphite2 | |
parent | dev-perl/XML-Parser: Stabilize 2.460.0-r2 ppc, #832308 (diff) | |
download | gentoo-d63c5a3a1240352d4200582d7fd68ae3afb8a5d7.tar.gz gentoo-d63c5a3a1240352d4200582d7fd68ae3afb8a5d7.tar.bz2 gentoo-d63c5a3a1240352d4200582d7fd68ae3afb8a5d7.zip |
media-gfx/graphite2: drop -nodefaultlibs
Breaks build on at least x86/musl. See patch for details.
Closes: https://bugs.gentoo.org/829690
Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'media-gfx/graphite2')
-rw-r--r-- | media-gfx/graphite2/files/graphite2-1.3.14-fix-nodefaultlibs.patch | 45 | ||||
-rw-r--r-- | media-gfx/graphite2/graphite2-1.3.14_p20210810-r1.ebuild | 124 |
2 files changed, 169 insertions, 0 deletions
diff --git a/media-gfx/graphite2/files/graphite2-1.3.14-fix-nodefaultlibs.patch b/media-gfx/graphite2/files/graphite2-1.3.14-fix-nodefaultlibs.patch new file mode 100644 index 000000000000..a7e5804319d7 --- /dev/null +++ b/media-gfx/graphite2/files/graphite2-1.3.14-fix-nodefaultlibs.patch @@ -0,0 +1,45 @@ +https://bugs.gentoo.org/829690 + +See https://github.com/silnrsi/graphite/pull/44. + +Drop -nodefaultlibs: +- graphite is written in C++ which makes avoiding libstdc++ (or libc++) a dubious + goal; +- this ends up breaking e.g. x86/musl because we need to inject -lssp_nonshared, + but it wouldn't be surprising if it broke other exotic targets too. +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -105,7 +105,7 @@ set_target_properties(graphite2 PROPERTIES PUBLIC_HEADER "${GRAPHITE_HEADERS}" + if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux") + set_target_properties(graphite2 PROPERTIES + COMPILE_FLAGS "-Wall -Wextra -Wno-unknown-pragmas -Wendif-labels -Wshadow -Wctor-dtor-privacy -Wnon-virtual-dtor -fno-rtti -fno-exceptions -fvisibility=hidden -fvisibility-inlines-hidden" +- LINK_FLAGS "-nodefaultlibs ${GRAPHITE_LINK_FLAGS}" ++ LINK_FLAGS "${GRAPHITE_LINK_FLAGS}" + LINKER_LANGUAGE C) + if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "x86|i.86") + add_definitions(-mfpmath=sse -msse2) +@@ -135,7 +135,6 @@ endif() + if (${CMAKE_SYSTEM_NAME} STREQUAL "Darwin") + set_target_properties(graphite2 PROPERTIES + COMPILE_FLAGS "-Wall -Wextra -Wno-unknown-pragmas -Wimplicit-fallthrough -Wendif-labels -Wshadow -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -fno-rtti -fno-exceptions -fvisibility=hidden -fvisibility-inlines-hidden" +- LINK_FLAGS "-nodefaultlibs" + LINKER_LANGUAGE C) + if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "x86|i.86") + add_definitions(-mfpmath=sse -msse2) +--- a/tests/CMakeLists.txt ++++ b/tests/CMakeLists.txt +@@ -47,12 +47,12 @@ else (${CMAKE_SYSTEM_NAME} STREQUAL "Windows") + set_target_properties(graphite2-base PROPERTIES + COMPILE_FLAGS "-Wall -Wextra -Wno-class-memaccess -fno-rtti -fno-exceptions" + COMPILE_DEFINITIONS "GRAPHITE2_NTRACING" +- LINK_FLAGS "-nodefaultlibs ${GRAPHITE_LINK_FLAGS}" ++ LINK_FLAGS "${GRAPHITE_LINK_FLAGS}" + LINKER_LANGUAGE C) + set_target_properties(graphite2-file PROPERTIES + COMPILE_FLAGS "-Wall -Wextra -Wno-class-memaccess -fno-rtti -fno-exceptions" + COMPILE_DEFINITIONS "GRAPHITE2_NTRACING${TELEMETRY}" +- LINK_FLAGS "-nodefaultlibs ${GRAPHITE_LINK_FLAGS}" ++ LINK_FLAGS "${GRAPHITE_LINK_FLAGS}" + LINKER_LANGUAGE C) + endif() + diff --git a/media-gfx/graphite2/graphite2-1.3.14_p20210810-r1.ebuild b/media-gfx/graphite2/graphite2-1.3.14_p20210810-r1.ebuild new file mode 100644 index 000000000000..cdccddf64039 --- /dev/null +++ b/media-gfx/graphite2/graphite2-1.3.14_p20210810-r1.ebuild @@ -0,0 +1,124 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +COMMIT=80c52493ef42e6fe605a69dcddd2a691cd8a1380 +GENTOO_DEPEND_ON_PERL="no" +PYTHON_COMPAT=( python3_{8..10} ) +inherit perl-module python-any-r1 cmake-multilib + +DESCRIPTION="Library providing rendering capabilities for complex non-Roman writing systems" +HOMEPAGE="https://scripts.sil.org/cms/scripts/page.php?site_id=projects&item_id=graphite_home" +SRC_URI="https://github.com/silnrsi/graphite/archive/${COMMIT}.tar.gz -> ${P}.tar.gz" +S="${WORKDIR}/graphite-${COMMIT}" + +LICENSE="LGPL-2.1" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" +IUSE="perl test" +RESTRICT="!test? ( test )" + +RDEPEND="perl? ( dev-lang/perl:= )" +DEPEND="${RDEPEND} + test? ( dev-libs/glib:2 ) +" +BDEPEND=" + perl? ( + dev-lang/perl + dev-perl/Locale-Maketext-Lexicon + dev-perl/Module-Build + ) + test? ( + ${PYTHON_DEPS} + $(python_gen_any_dep 'dev-python/fonttools[${PYTHON_USEDEP}]') + media-libs/fontconfig + perl? ( virtual/perl-Test-Simple ) + ) +" + +PATCHES=( + "${FILESDIR}/${PN}-1.3.5-includes-libs-perl.patch" + "${FILESDIR}/${PN}-1.35-fix-gcc-linking.patch" + "${FILESDIR}/${PN}-1.3.14-fix-cmake-files-libdir.patch" + "${FILESDIR}/${PN}-1.3.14-no-libtool-file.patch" + "${FILESDIR}/${PN}-1.3.14-fix-nodefaultlibs.patch" +) + +pkg_setup() { + use perl && perl_set_version + use test && python-any-r1_pkg_setup +} + +python_check_deps() { + has_version -b "dev-python/fonttools[${PYTHON_USEDEP}]" +} + +src_prepare() { + cmake_src_prepare + use test || cmake_comment_add_subdirectory tests +} + +multilib_src_configure() { + local mycmakeargs=( + # Renamed VM_MACHINE_TYPE to GRAPHITE2_VM_TYPE + -DGRAPHITE2_VM_TYPE=direct + ) + # https://sourceforge.net/p/silgraphite/bugs/49/ + [[ ${CHOST} == powerpc*-apple* ]] && mycmakeargs+=( + -DGRAPHITE2_NSEGCACHE:BOOL=ON + ) + + if use elibc_musl ; then + # bug #829690 + if use ppc || use x86 ; then + sed -e 's:${GRAPHITE_LINK_FLAGS}:-lssp_nonshared &:' \ + -i "${S}"/src/CMakeLists.txt || die + fi + fi + + cmake_src_configure + + # fix perl linking + if multilib_is_native_abi && use perl; then + # we rely on the fact that cmake_src_configure sets BUILD_DIR + sed -e "s:@BUILD_DIR@:\"${BUILD_DIR}/src\":" \ + -i "${S}"/contrib/perl/Build.PL || die + fi +} + +src_compile() { + cmake-multilib_src_compile + if use perl; then + cd contrib/perl || die + perl-module_src_configure + perl-module_src_compile + fi +} + +multilib_src_test() { + if multilib_is_native_abi; then + cmake_src_test + else + einfo "Cannot test since python is not multilib." + fi +} + +src_test() { + cmake-multilib_src_test + if use perl; then + # Perl tests fail due to missing POD coverage... + perl_rm_files "contrib/perl/t/pod.t" "contrib/perl/t/pod-coverage.t" + cd contrib/perl || die + perl-module_src_test + fi +} + +src_install() { + cmake-multilib_src_install + if use perl; then + cd contrib/perl || die + perl-module_src_install + perl_delete_localpod + fi +} |