summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorConrad Kostecki <conikost@gentoo.org>2022-02-09 13:34:38 +0100
committerConrad Kostecki <conikost@gentoo.org>2022-02-09 13:34:38 +0100
commit1d4d614e35253dfa2d748e5386d4040da9ecc0fd (patch)
tree1f336b47107d68affee51cb78812deb47006340c
parentnet-wireless/unifi: add 7.0.21 (diff)
downloadgentoo-1d4d614e35253dfa2d748e5386d4040da9ecc0fd.tar.gz
gentoo-1d4d614e35253dfa2d748e5386d4040da9ecc0fd.tar.bz2
gentoo-1d4d614e35253dfa2d748e5386d4040da9ecc0fd.zip
sys-apps/qdirstat: fix build with musl
Closes: https://bugs.gentoo.org/832904 Signed-off-by: Conrad Kostecki <conikost@gentoo.org>
-rw-r--r--sys-apps/qdirstat/files/qdirstat-1.8-musl.patch102
-rw-r--r--sys-apps/qdirstat/qdirstat-1.8.ebuild4
2 files changed, 105 insertions, 1 deletions
diff --git a/sys-apps/qdirstat/files/qdirstat-1.8-musl.patch b/sys-apps/qdirstat/files/qdirstat-1.8-musl.patch
new file mode 100644
index 000000000000..e730352a8040
--- /dev/null
+++ b/sys-apps/qdirstat/files/qdirstat-1.8-musl.patch
@@ -0,0 +1,102 @@
+From ca2c6c4a0a90ed467af9c4c73b918dd4bf720f2a Mon Sep 17 00:00:00 2001
+From: Stefan Hundhammer <Stefan.Hundhammer@gmx.de>
+Date: Wed, 9 Feb 2022 11:05:31 +0100
+Subject: [PATCH] Fixed GitHub issue #187: ALLPERMS not defined in libc-musl
+
+---
+ src/BrokenLibc.h | 45 +++++++++++++++++++++++++++++++++++++++++++++
+ src/FileInfo.cpp | 1 +
+ src/FormatUtil.cpp | 1 +
+ src/src.pro | 3 ++-
+ 4 files changed, 49 insertions(+), 1 deletion(-)
+ create mode 100644 src/BrokenLibc.h
+
+diff --git a/src/BrokenLibc.h b/src/BrokenLibc.h
+new file mode 100644
+index 00000000..8bdf2a84
+--- /dev/null
++++ b/src/BrokenLibc.h
+@@ -0,0 +1,45 @@
++/*
++ * File name: BrokenLibc.h
++ * Summary: Substitutes for common system-level defines
++ * License: GPL V2 - See file LICENSE for details.
++ *
++ * Author: Stefan Hundhammer <Stefan.Hundhammer@gmx.de>
++ */
++
++#ifndef BrokenLibc_h
++#define BrokenLibc_h
++
++// This contains common #defines that are present on modern systems, but
++// sometimes not on systems that insist to exchange known working subsystems
++// such as glibc with their own version, commonly because of the "not invented
++// here" syndrome.
++
++
++// Make sure the original defines are available regardless of include order
++
++#include <sys/stat.h> // ALLPERMS
++
++
++#ifndef ALLPERMS
++# define ALLPERMS 07777
++
++// Uncomment for debugging:
++// # warning "Using ALLPERMS replacement"
++
++// Not available in musl-libc used on Gentoo:
++//
++// https://github.com/shundhammer/qdirstat/issues/187
++//
++// Original from Linux / glibc /usr/include/x86_64-linux-gnu/sys/stat.h :
++//
++// #define ALLPERMS (S_ISUID|S_ISGID|S_ISVTX|S_IRWXU|S_IRWXG|S_IRWXO)/* 07777 */
++//
++// But that might induce more complaints because any of S_IRWXU, S_IRWXG
++// etc. may also not be defined on such a system. So let's keep it simple.
++// If they also use a different bit pattern for those permissions, that's their
++// problem.
++#endif
++
++
++
++#endif // BrokenLibc_h
+diff --git a/src/FileInfo.cpp b/src/FileInfo.cpp
+index 6be13a8d..d8195819 100644
+--- a/src/FileInfo.cpp
++++ b/src/FileInfo.cpp
+@@ -26,6 +26,7 @@
+ #include "SysUtil.h"
+ #include "Logger.h"
+ #include "Exception.h"
++#include "BrokenLibc.h" // ALLPERMS
+
+ // Some filesystems (NTFS seems to be among them) may handle block fragments
+ // well. Don't report files as "sparse" files if the block size is only a few
+diff --git a/src/FormatUtil.cpp b/src/FormatUtil.cpp
+index 6c755d79..43ca9ec4 100644
+--- a/src/FormatUtil.cpp
++++ b/src/FormatUtil.cpp
+@@ -11,6 +11,7 @@
+ #include <QTextStream>
+
+ #include "FormatUtil.h"
++#include "BrokenLibc.h" // ALLPERMS
+
+ using namespace QDirStat;
+
+diff --git a/src/src.pro b/src/src.pro
+index c9616462..50b51ca4 100644
+--- a/src/src.pro
++++ b/src/src.pro
+@@ -157,7 +157,8 @@ HEADERS = \
+ ActionManager.h \
+ AdaptiveTimer.h \
+ Attic.h \
+- BreadcrumbNavigator.h \
++ BreadcrumbNavigator.h \
++ BrokenLibc.h \
+ BucketsTableModel.h \
+ BusyPopup.h \
+ Cleanup.h \
diff --git a/sys-apps/qdirstat/qdirstat-1.8.ebuild b/sys-apps/qdirstat/qdirstat-1.8.ebuild
index 64ab49423bd4..62fb4a2c928d 100644
--- a/sys-apps/qdirstat/qdirstat-1.8.ebuild
+++ b/sys-apps/qdirstat/qdirstat-1.8.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -26,6 +26,8 @@ RDEPEND="
dev-perl/URI
"
+PATCHES=( "${FILESDIR}/${PN}-1.8-musl.patch" )
+
src_prepare() {
default