From daf268baf10f53258168866f3d169dadf7e3740d Mon Sep 17 00:00:00 2001 From: William Pitcock Date: Tue, 25 Jan 2011 20:59:59 -0600 Subject: testing/fts: promote to main --- main/fts/APKBUILD | 52 +++++++++++++++++++++++++++++++++++ main/fts/fts-header-correctness.patch | 20 ++++++++++++++ main/fts/fts-uclibc.patch | 45 ++++++++++++++++++++++++++++++ 3 files changed, 117 insertions(+) create mode 100644 main/fts/APKBUILD create mode 100644 main/fts/fts-header-correctness.patch create mode 100644 main/fts/fts-uclibc.patch (limited to 'main/fts') 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 +# Maintainer: William Pitcock +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 ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ + 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 -- cgit v1.2.3