diff options
author | Alfred Persson Forsberg <cat@catcream.org> | 2022-06-21 22:50:33 +0000 |
---|---|---|
committer | Andreas Sturmlechner <asturm@gentoo.org> | 2022-07-14 22:32:06 +0200 |
commit | 1f253042a8653e56b1cc6ae0df2d896d38cd7ecb (patch) | |
tree | 5fd9b9e1e8c5469d2e4f5d602ee9cb68889a72da /kde-apps/filelight | |
parent | dev-python/aiohttp: Stabilize 3.8.1-r1 ppc64, #858077 (diff) | |
download | gentoo-1f253042a8653e56b1cc6ae0df2d896d38cd7ecb.tar.gz gentoo-1f253042a8653e56b1cc6ae0df2d896d38cd7ecb.tar.bz2 gentoo-1f253042a8653e56b1cc6ae0df2d896d38cd7ecb.zip |
kde-apps/filelight: fix build and running on musl
Filelight has two issues with musl. One is a SIGSEGV regarding the
sincos implementation and the other is S_BLKSIZE not being defined.
*1: The SIGSEGV is resolved upstream and with this patch musl will just use the native sincos.
*2: DEV_BSIZE is the exact same thing as S_BLKSIZE, so use that instead.
The DEV_BSIZE issue is PR:ed upstreamed but there are issues with it since Windows does not have sys/param.h.
https://invent.kde.org/utilities/filelight/-/merge_requests/42/
https://invent.kde.org/utilities/filelight/-/merge_requests/39/
Signed-off-by: Alfred Persson Forsberg <cat@catcream.org>
squash
Closes: https://github.com/gentoo/gentoo/pull/26029
Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
Diffstat (limited to 'kde-apps/filelight')
3 files changed, 146 insertions, 0 deletions
diff --git a/kde-apps/filelight/filelight-22.04.3.ebuild b/kde-apps/filelight/filelight-22.04.3.ebuild index f0a32cd6e429..611ae666b1ee 100644 --- a/kde-apps/filelight/filelight-22.04.3.ebuild +++ b/kde-apps/filelight/filelight-22.04.3.ebuild @@ -18,6 +18,11 @@ SLOT="5" KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86" IUSE="" +PATCHES=( + "${FILESDIR}"/${PN}-22.04.3-fix_musl_dev_bsize.patch + "${FILESDIR}"/${PN}-22.04.3-fix_sincos_impl.patch +) + DEPEND=" >=dev-qt/qtgui-${QTMIN}:5 >=dev-qt/qtsvg-${QTMIN}:5 diff --git a/kde-apps/filelight/files/filelight-22.04.3-fix_musl_dev_bsize.patch b/kde-apps/filelight/files/filelight-22.04.3-fix_musl_dev_bsize.patch new file mode 100644 index 000000000000..1b428b0582f5 --- /dev/null +++ b/kde-apps/filelight/files/filelight-22.04.3-fix_musl_dev_bsize.patch @@ -0,0 +1,66 @@ +https://invent.kde.org/utilities/filelight/-/merge_requests/42 +https://invent.kde.org/utilities/filelight/-/merge_requests/42/diffs?commit_id=f35d454513f2fc39fea0a5af7c94977c1ffb37aa + +DEV_BSIZE and S_BLKSIZE represent the same thing, but S_BLKSIZE isn't defined in musl libc, so use DEV_BSIZE instead. +--- + autotests/directoryIteratorTest.cpp | 8 ++++---- + src/posixWalker.cpp | 2 +- + src/posixWalker.h | 1 + + 3 files changed, 6 insertions(+), 5 deletions(-) + +diff --git a/autotests/directoryIteratorTest.cpp b/autotests/directoryIteratorTest.cpp +index d50c32b..fece8dd 100644 +--- a/autotests/directoryIteratorTest.cpp ++++ b/autotests/directoryIteratorTest.cpp +@@ -60,9 +60,9 @@ private Q_SLOTS: + #ifdef Q_OS_WINDOWS + QCOMPARE(file.size, 7682); + #elif defined(Q_OS_FREEBSD) +- QCOMPARE(file.size, 1 * S_BLKSIZE); ++ QCOMPARE(file.size, 1 * DEV_BSIZE); + #else +- QCOMPARE(file.size, 16 * S_BLKSIZE); ++ QCOMPARE(file.size, 16 * DEV_BSIZE); + #endif + + if (withSymlink) { +@@ -83,9 +83,9 @@ private Q_SLOTS: + #ifdef Q_OS_WINDOWS + QCOMPARE(symlink.size, 7682); + #elif defined(Q_OS_FREEBSD) +- QCOMPARE(file.size, 1 * S_BLKSIZE); ++ QCOMPARE(file.size, 1 * DEV_BSIZE); + #else +- QCOMPARE(symlink.size, 16 * S_BLKSIZE); ++ QCOMPARE(symlink.size, 16 * DEV_BSIZE); + #endif + } + } +diff --git a/src/posixWalker.cpp b/src/posixWalker.cpp +index be6935f..6538408 100644 +--- a/src/posixWalker.cpp ++++ b/src/posixWalker.cpp +@@ -99,7 +99,7 @@ void POSIXWalker::next() + S_ISFIFO(statbuf.st_mode) || S_ISSOCK(statbuf.st_mode); + m_entry.isDir = S_ISDIR(statbuf.st_mode); + m_entry.isFile = S_ISREG(statbuf.st_mode); +- m_entry.size = statbuf.st_blocks * S_BLKSIZE; ++ m_entry.size = statbuf.st_blocks * DEV_BSIZE; + break; + } + } +diff --git a/src/posixWalker.h b/src/posixWalker.h +index 4a78d52..ba72a98 100644 +--- a/src/posixWalker.h ++++ b/src/posixWalker.h +@@ -7,6 +7,7 @@ + #include <fcntl.h> + #include <sys/stat.h> + #include <sys/types.h> ++#include <sys/param.h> + #include <unistd.h> + + #include <cerrno> +-- +2.35.1 + diff --git a/kde-apps/filelight/files/filelight-22.04.3-fix_sincos_impl.patch b/kde-apps/filelight/files/filelight-22.04.3-fix_sincos_impl.patch new file mode 100644 index 000000000000..1c33e0d2e234 --- /dev/null +++ b/kde-apps/filelight/files/filelight-22.04.3-fix_sincos_impl.patch @@ -0,0 +1,75 @@ +https://invent.kde.org/utilities/filelight/-/merge_requests/42 +https://invent.kde.org/utilities/filelight/-/commit/861afa5fb0d2a839d7e83f7df644952219b84a3c + +Instead of hardcoding knowledege about glibc versions, check for the +presence of sincos with CMake. + +Commit 93577e2a4927cf1640e8ac7153cd22ff54180bba wrongly added a +SINCOS_H_IMPLEMENTATION macro instead of making it a static inline +function or similar, so remove that as well. +--- + src/CMakeLists.txt | 6 ++++++ + src/radialMap/map.cpp | 1 - + src/radialMap/sincos.h | 10 ++-------- + 3 files changed, 8 insertions(+), 9 deletions(-) + +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 5634ff9..7007297 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -9,6 +9,12 @@ ecm_setup_version(${PROJECT_VERSION} + VARIABLE_PREFIX FILELIGHT + VERSION_HEADER version.h) + ++include(CheckCXXSymbolExists) ++check_cxx_symbol_exists(sincos "math.h" HAVE_SINCOS) ++if (HAVE_SINCOS) ++ add_definitions(-DHAVE_SINCOS) ++endif() ++ + add_library(filelightInternal STATIC fileTree.cpp directoryIterator.cpp) + if (WIN32) + target_sources(filelightInternal PRIVATE windowsWalker.cpp) +diff --git a/src/radialMap/map.cpp b/src/radialMap/map.cpp +index b60d1da..b6bb55b 100644 +--- a/src/radialMap/map.cpp ++++ b/src/radialMap/map.cpp +@@ -20,7 +20,6 @@ + #include "radialMap.h" // defines + + #include "Config.h" +-#define SINCOS_H_IMPLEMENTATION (1) + #include "sincos.h" + #include "widget.h" + +diff --git a/src/radialMap/sincos.h b/src/radialMap/sincos.h +index 142504b..986a899 100644 +--- a/src/radialMap/sincos.h ++++ b/src/radialMap/sincos.h +@@ -10,21 +10,15 @@ + + #include <math.h> + +-#if !defined(__GLIBC__) || (__GLIBC__ < 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 1) ++#ifndef HAVE_SINCOS + + #include <qmath.h> + +-void +-sincos(double angleRadians, double *Sin, double *Cos); +- +-#ifdef SINCOS_H_IMPLEMENTATION +-void +-sincos(double angleRadians, double *Sin, double *Cos) ++static inline void sincos(double angleRadians, double *Sin, double *Cos) + { + *Sin = qSin(angleRadians); + *Cos = qCos(angleRadians); + } +-#endif + + #endif + +-- +2.35.1 + |