commit:     0dd48a6c618b027df31c495c2351ef9b77fa1432
Author:     A. Wilcox <AWilcox <AT> Wilcox-Tech <DOT> com>
AuthorDate: Wed Jul 10 09:10:14 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Wed Jul 10 09:20:53 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0dd48a6c

dev-libs/tlsh: ensure symbol visibility on BE

[sam: Revbump to fix installed library.]

Bug: https://bugs.gentoo.org/934445
Signed-off-by: A. Wilcox <AWilcox <AT> Wilcox-Tech.com>
Closes: https://github.com/gentoo/gentoo/pull/37509
Signed-off-by: Sam James <sam <AT> gentoo.org>

 dev-libs/tlsh/files/tlsh-4.8.2-big-endian.patch | 15 ++++++++++
 dev-libs/tlsh/tlsh-4.8.2-r2.ebuild              | 40 +++++++++++++++++++++++++
 2 files changed, 55 insertions(+)

diff --git a/dev-libs/tlsh/files/tlsh-4.8.2-big-endian.patch 
b/dev-libs/tlsh/files/tlsh-4.8.2-big-endian.patch
new file mode 100644
index 000000000000..0c9b859f2a34
--- /dev/null
+++ b/dev-libs/tlsh/files/tlsh-4.8.2-big-endian.patch
@@ -0,0 +1,15 @@
+__SPARC is defined on big endian platforms to fix bug 861710, but upstream
+disables use of default linkage visibility on SPARC systems.  This causes
+symbols to not be exported, causing issues such as bug 934445.
+
+--- tlsh-4.8.2/include/tlsh.h.old      2021-09-09 05:56:28.000000000 +0000
++++ tlsh-4.8.2/include/tlsh.h  2024-06-17 05:48:17.206665205 +0000
+@@ -110,7 +110,7 @@
+ // #include <WinFunctions.h>
+       #define TLSH_API
+ #else 
+-      #if defined(__SPARC) || defined(_AS_MK_OS_RH73)
++      #if defined(_AS_MK_OS_RH73)
+          #define TLSH_API
+       #else
+          #define TLSH_API __attribute__ ((visibility("default")))

diff --git a/dev-libs/tlsh/tlsh-4.8.2-r2.ebuild 
b/dev-libs/tlsh/tlsh-4.8.2-r2.ebuild
new file mode 100644
index 000000000000..a6fbd70ae4c4
--- /dev/null
+++ b/dev-libs/tlsh/tlsh-4.8.2-r2.ebuild
@@ -0,0 +1,40 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CMAKE_IN_SOURCE_BUILD=1
+inherit cmake toolchain-funcs flag-o-matic
+
+DESCRIPTION="Fuzzy matching library"
+HOMEPAGE="https://github.com/trendmicro/tlsh";
+SRC_URI="https://github.com/trendmicro/${PN}/archive/${PV}.tar.gz -> 
${P}.tar.gz"
+
+LICENSE="|| ( Apache-2.0 BSD )"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~x86"
+
+PATCHES=(
+       "${FILESDIR}"/${P}-big-endian.patch
+       "${FILESDIR}"/${P}-gnuinstalldirs.patch
+       "${FILESDIR}"/${P}-respect-flags.patch
+)
+
+src_prepare() {
+       # https://github.com/trendmicro/tlsh/issues/131
+       [[ "$(tc-endian)" == "big" ]] && append-flags "-D__SPARC"
+       cmake_src_prepare
+}
+
+src_configure() {
+       local mycmakeargs=(
+               -DTLSH_CHECKSUM_1B=1
+               -DTLSH_SHARED_LIBRARY=1
+       )
+       cmake_src_configure
+}
+
+src_install() {
+       cmake_src_install
+       find "${ED}" -name '*.a' -delete || die # Remove the static lib
+}

Reply via email to