public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Sam James" <sam@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: media-gfx/graphite2/files/, media-gfx/graphite2/
Date: Wed, 14 Sep 2022 18:21:10 +0000 (UTC)	[thread overview]
Message-ID: <1663179664.3b5c8a7e7e9517ec4919f2948d04bdd5b270df48.sam@gentoo> (raw)

commit:     3b5c8a7e7e9517ec4919f2948d04bdd5b270df48
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Wed Sep 14 18:20:54 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Wed Sep 14 18:21:04 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3b5c8a7e

media-gfx/graphite2: fix build w/o gcc

Closes: https://bugs.gentoo.org/870034
Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../graphite2-1.3.14-fix-nodefaultlibs-deux.patch  |  61 ++++++++++
 .../graphite2/graphite2-1.3.14_p20210810-r2.ebuild | 124 +++++++++++++++++++++
 2 files changed, 185 insertions(+)

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
+}


             reply	other threads:[~2022-09-14 18:21 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-14 18:21 Sam James [this message]
  -- strict thread matches above, loose matches on Subject: below --
2025-04-08 21:25 [gentoo-commits] repo/gentoo:master commit in: media-gfx/graphite2/files/, media-gfx/graphite2/ Andreas Sturmlechner
2022-09-16 22:15 Sam James
2021-12-20  0:48 Sam James
2016-11-21 11:54 Lars Wendler
2016-02-16 10:25 Andreas Hüttel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1663179664.3b5c8a7e7e9517ec4919f2948d04bdd5b270df48.sam@gentoo \
    --to=sam@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox