aboutsummaryrefslogtreecommitdiffstats
path: root/main/fts
diff options
context:
space:
mode:
authorWilliam Pitcock <nenolod@dereferenced.org>2011-01-25 20:59:59 -0600
committerWilliam Pitcock <nenolod@dereferenced.org>2011-01-25 20:59:59 -0600
commitdaf268baf10f53258168866f3d169dadf7e3740d (patch)
tree1ab40fe16e28499ed0f032048ac2298d6e47b80e /main/fts
parent91e0b79a67a9fd07431cf36931a33050a58fe8dd (diff)
downloadaports-daf268baf10f53258168866f3d169dadf7e3740d.tar.bz2
aports-daf268baf10f53258168866f3d169dadf7e3740d.tar.xz
testing/fts: promote to main
Diffstat (limited to 'main/fts')
-rw-r--r--main/fts/APKBUILD52
-rw-r--r--main/fts/fts-header-correctness.patch20
-rw-r--r--main/fts/fts-uclibc.patch45
3 files changed, 117 insertions, 0 deletions
diff --git a/main/fts/APKBUILD b/main/fts/APKBUILD
new file mode 100644
index 0000000000..ef76582937
--- /dev/null
+++ b/main/fts/APKBUILD
@@ -0,0 +1,52 @@
+# Contributor: William Pitcock <nenolod@dereferenced.org>
+# Maintainer: William Pitcock <nenolod@dereferenced.org>
+pkgname=fts
+pkgver=0
+pkgrel=2
+pkgdesc="keith bostic's POSIX file tree stream operations library"
+url="http://bostic.com/"
+arch="all"
+license="BSD"
+depends=
+depends_dev=
+makedepends="$depends_dev wget"
+install=""
+subpackages="$pkgname-dev $pkgname-doc"
+source="saveas-https://sites.google.com/a/bostic.com/keithbostic/files/fts.tar.gz?attredirects=0/fts.tar.gz
+ fts-uclibc.patch
+ fts-header-correctness.patch"
+
+_builddir="${srcdir}/${pkgname}"
+prepare() {
+ local i
+ cd "$_builddir"
+ for i in $source; do
+ case $i in
+ *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
+ esac
+ done
+}
+
+build() {
+ cd "$_builddir"
+ gcc -I. -fPIC -shared -o libfts.so -Wl,-soname,libfts.so.${pkgver} fts.c
+}
+
+package() {
+ cd "$_builddir"
+
+ install -d "$pkgdir"/usr/lib
+
+ install -m 755 libfts.so "$pkgdir"/usr/lib/libfts.so.${pkgver}
+ ln -sf libfts.so.${pkgver} "$pkgdir"/usr/lib/libfts.so
+
+ install -d "$pkgdir"/usr/include
+ install -m 644 fts.h "$pkgdir"/usr/include/fts.h
+
+ install -d "$pkgdir"/usr/share/man/man3
+ install -m 644 fts.3 "$pkgdir"/usr/share/man/man3/fts.3
+}
+
+md5sums="120c14715485ec6ced14f494d059d20a fts.tar.gz
+588fead4044bf535ff97298651aaab8f fts-uclibc.patch
+b197744ece4ef9a5fa52692acf9b6666 fts-header-correctness.patch"
diff --git a/main/fts/fts-header-correctness.patch b/main/fts/fts-header-correctness.patch
new file mode 100644
index 0000000000..59061bfc95
--- /dev/null
+++ b/main/fts/fts-header-correctness.patch
@@ -0,0 +1,20 @@
+--- fts.orig/fts.h
++++ fts/fts.h
+@@ -38,6 +38,17 @@
+ #ifndef _FTS_H_
+ #define _FTS_H_
+
++#include <sys/types.h>
++#include <sys/param.h>
++#include <sys/stat.h>
++
++#include <dirent.h>
++#include <errno.h>
++#include <fcntl.h>
++#include <stdlib.h>
++#include <string.h>
++#include <unistd.h>
++
+ typedef struct {
+ struct _ftsent *fts_cur; /* current node */
+ struct _ftsent *fts_child; /* linked list of children */
diff --git a/main/fts/fts-uclibc.patch b/main/fts/fts-uclibc.patch
new file mode 100644
index 0000000000..3593530396
--- /dev/null
+++ b/main/fts/fts-uclibc.patch
@@ -0,0 +1,45 @@
+--- fts.orig/fts.c
++++ fts/fts.c
+@@ -31,6 +31,10 @@
+ * SUCH DAMAGE.
+ */
+
++#define alignof(TYPE) ((int) &((struct { char dummy1; TYPE dummy2; } *) 0)->dummy2)
++#define ALIGNBYTES (alignof(long double) - 1)
++#define ALIGN(p) (((uintptr_t)(p) + ALIGNBYTES) & ~ALIGNBYTES)
++
+ #if defined(LIBC_SCCS) && !defined(lint)
+ static char sccsid[] = "@(#)fts.c 8.6 (Berkeley) 8/14/94";
+ #endif /* LIBC_SCCS and not lint */
+@@ -652,10 +656,10 @@
+ if (!ISSET(FTS_SEEDOT) && ISDOT(dp->d_name))
+ continue;
+
+- if ((p = fts_alloc(sp, dp->d_name, (int)dp->d_namlen)) == NULL)
++ if ((p = fts_alloc(sp, dp->d_name, (int)dp->d_reclen)) == NULL)
+ goto mem1;
+- if (dp->d_namlen > maxlen) {
+- if (fts_palloc(sp, (size_t)dp->d_namlen)) {
++ if (dp->d_reclen > maxlen) {
++ if (fts_palloc(sp, (size_t)dp->d_reclen)) {
+ /*
+ * No more memory for path or structures. Save
+ * errno, free up the current structure and the
+@@ -675,7 +679,7 @@
+ maxlen = sp->fts_pathlen - sp->fts_cur->fts_pathlen - 1;
+ }
+
+- p->fts_pathlen = len + dp->d_namlen + 1;
++ p->fts_pathlen = len + dp->d_reclen + 1;
+ p->fts_parent = sp->fts_cur;
+ p->fts_level = level;
+
+@@ -784,7 +788,7 @@
+ /* If user needs stat info, stat buffer already allocated. */
+ sbp = ISSET(FTS_NOSTAT) ? &sb : p->fts_statp;
+
+-#ifdef DT_WHT
++#ifdef S_IFWHT
+ /*
+ * Whited-out files don't really exist. However, there's stat(2) file
+ * mask for them, so we set it so that programs (i.e., find) don't have