commit: 48d743ff638e142773aa149b99f8d0e65684bc90
Author: Fabian Groffen <grobian <AT> gentoo <DOT> org>
AuthorDate: Sun Feb 14 12:22:03 2016 +0000
Commit: Fabian Groffen <grobian <AT> gentoo <DOT> org>
CommitDate: Sun Feb 14 12:22:35 2016 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=48d743ff
app-portage/portage-utils: fix compilation on Solaris
Package-Manager: portage-2.2.20-prefix
.../files/portage-utils-0.61-solaris.patch | 27 ++++++++++++++++++++++
.../portage-utils/portage-utils-0.61.ebuild | 1 +
2 files changed, 28 insertions(+)
diff --git a/app-portage/portage-utils/files/portage-utils-0.61-solaris.patch
b/app-portage/portage-utils/files/portage-utils-0.61-solaris.patch
new file mode 100644
index 0000000..8bcc9c1
--- /dev/null
+++ b/app-portage/portage-utils/files/portage-utils-0.61-solaris.patch
@@ -0,0 +1,27 @@
+qcache: work around missing d_type/DT_DIR
+
+--- qcache.c
++++ qcache.c
+@@ -750,13 +750,21 @@
+
+ xasprintf(&catpath, "%s/dep/%s", portedb, data->overlay);
+ dir = opendir(catpath);
+- while ((de = readdir(dir)))
++ while ((de = readdir(dir))) {
++#ifndef DT_DIR
++ struct stat s;
++ if (stat(de->d_name, &s))
++ continue;
++ if (S_ISDIR(s.st_mode) && de->d_name[0] != '.') {
++#else
+ if (de->d_type == DT_DIR && de->d_name[0] != '.') {
++#endif
+ bool ok;
+ allcats = add_set_unique(de->d_name, allcats,
&ok);
+ if (ok)
+ ++numcat;
+ }
++ }
+ closedir(dir);
+ free(catpath);
+
diff --git a/app-portage/portage-utils/portage-utils-0.61.ebuild
b/app-portage/portage-utils/portage-utils-0.61.ebuild
index 205874b..1b26679 100644
--- a/app-portage/portage-utils/portage-utils-0.61.ebuild
+++ b/app-portage/portage-utils/portage-utils-0.61.ebuild
@@ -22,6 +22,7 @@ DEPEND="${RDEPEND}
static? ( dev-libs/iniparser:0[static-libs] )"
src_prepare() {
+ epatch "${FILESDIR}"/${P}-solaris.patch
epatch_user
}