diff options
author | Sam James <sam@gentoo.org> | 2022-09-14 19:20:54 +0100 |
---|---|---|
committer | Sam James <sam@gentoo.org> | 2022-09-14 19:21:04 +0100 |
commit | 3b5c8a7e7e9517ec4919f2948d04bdd5b270df48 (patch) | |
tree | 5913ab90fe8f2482062f61d9f37892cb7a014d0a /media-gfx | |
parent | media-libs/libjxl: version bump to 20220825 snapshot (diff) | |
download | gentoo-3b5c8a7e7e9517ec4919f2948d04bdd5b270df48.tar.gz gentoo-3b5c8a7e7e9517ec4919f2948d04bdd5b270df48.tar.bz2 gentoo-3b5c8a7e7e9517ec4919f2948d04bdd5b270df48.zip |
media-gfx/graphite2: fix build w/o gcc
Closes: https://bugs.gentoo.org/870034
Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'media-gfx')
-rw-r--r-- | media-gfx/graphite2/files/graphite2-1.3.14-fix-nodefaultlibs-deux.patch | 61 | ||||
-rw-r--r-- | media-gfx/graphite2/graphite2-1.3.14_p20210810-r2.ebuild | 124 |
2 files changed, 185 insertions, 0 deletions
diff --git a/media-gfx/graphite2/files/graphite2-1.3.14-fix-nodefaultlibs-deux.patch b/media-gfx/graphite2/files/graphite2-1.3.14-fix-nodefaultlibs-deux.patch new file mode 100644 index 000000000000..815301dd307b --- /dev/null +++ b/media-gfx/graphite2/files/graphite2-1.3.14-fix-nodefaultlibs-deux.patch @@ -0,0 +1,61 @@ +https://bugs.gentoo.org/870034 +https://bugs.gentoo.org/829690 +https://raw.githubusercontent.com/chimera-linux/cports/6d3cabd18bac6f4caaea08eaa928840552711c0c/main/graphite2/patches/clang.patch + +From chimera patch: +"Clang has -nostdlib++, which can be used more effectively than disabling +all and then hardcoding linking against libgcc (which we do not have)" + +Obsoletes graphite2-1.3.14-fix-nodefaultlibs.patch whose description was: +``` +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/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 "-nostdlib++ ${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 "-nostdlib++ ${GRAPHITE_LINK_FLAGS}" + LINKER_LANGUAGE C) + endif() +--- 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 "-nostdlib++ ${GRAPHITE_LINK_FLAGS}" + LINKER_LANGUAGE C) + if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "x86|i.86") + add_definitions(-mfpmath=sse -msse2) +@@ -117,15 +117,7 @@ if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux") + if (${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang") + add_definitions(-Wimplicit-fallthrough -Wshorten-64-to-32) + endif() +- if (${CMAKE_CXX_COMPILER} MATCHES ".*mingw.*") +- target_link_libraries(graphite2 kernel32 msvcr90 mingw32 gcc user32) +- else (${CMAKE_CXX_COMPILER} MATCHES ".*mingw.*") +- target_link_libraries(graphite2 c gcc_s) +- endif() + include(Graphite) +- if (BUILD_SHARED_LIBS) +- nolib_test(stdc++ $<TARGET_SONAME_FILE:graphite2>) +- endif () + set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "") + if (0) + CREATE_LIBTOOL_FILE(graphite2 "/lib${LIB_SUFFIX}") diff --git a/media-gfx/graphite2/graphite2-1.3.14_p20210810-r2.ebuild b/media-gfx/graphite2/graphite2-1.3.14_p20210810-r2.ebuild new file mode 100644 index 000000000000..390f3b02fb00 --- /dev/null +++ b/media-gfx/graphite2/graphite2-1.3.14_p20210810-r2.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 ~loong ~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-deux.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 +} |