summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-libs/9libs')
-rw-r--r--dev-libs/9libs/9libs-1.0-r2.ebuild48
-rw-r--r--dev-libs/9libs/Manifest1
-rw-r--r--dev-libs/9libs/files/9libs-va_list.patch115
-rw-r--r--dev-libs/9libs/metadata.xml7
4 files changed, 171 insertions, 0 deletions
diff --git a/dev-libs/9libs/9libs-1.0-r2.ebuild b/dev-libs/9libs/9libs-1.0-r2.ebuild
new file mode 100644
index 000000000000..2649caebac2f
--- /dev/null
+++ b/dev-libs/9libs/9libs-1.0-r2.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+
+inherit eutils toolchain-funcs
+
+DESCRIPTION="A package of Plan 9 compatibility libraries"
+HOMEPAGE="http://www.netlib.org/research/9libs/9libs-1.0.README"
+SRC_URI="ftp://www.netlib.org/research/9libs/${P}.tar.bz2"
+
+LICENSE="PLAN9"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND=">=x11-proto/xproto-7.0.4
+ >=x11-libs/libX11-1.0.0
+ >=x11-libs/libXt-1.0.0"
+
+RDEPEND="${DEPEND}"
+
+src_prepare() {
+ # Bug 385387
+ epatch "${FILESDIR}/${PN}-va_list.patch"
+}
+
+src_configure() {
+ econf \
+ --includedir=/usr/include/9libs \
+ --enable-shared
+}
+
+src_compile() {
+ emake CC="$(tc-getCC)"
+}
+
+src_install() {
+ make install DESTDIR="${D}"
+ dodoc README
+
+ # rename some man pages to avoid collisions with dev-libs/libevent
+ local f
+ for f in add balloc bitblt cachechars event frame graphics rgbpix; do
+ mv "${D}"/usr/share/man/man3/${f}.{3,3g} || die
+ done
+}
diff --git a/dev-libs/9libs/Manifest b/dev-libs/9libs/Manifest
new file mode 100644
index 000000000000..094a09f2dee3
--- /dev/null
+++ b/dev-libs/9libs/Manifest
@@ -0,0 +1 @@
+DIST 9libs-1.0.tar.bz2 163744 SHA256 1d14f945782c8c5b0f97d5026181a105041f8c3e374d7f80bd53a87315ea54f6 SHA512 35fdd874dbf9aca07e681d7c3f707d22a45cc8cadb2c273a1fbc5f8303886a6b512eb16fc1b81d64d7f665b16a3b19a8d678a540cd4ad453de853b90905d98d2 WHIRLPOOL d3dac0f7302eb477a7a6160fc2e711084151f54dcb6e94c203ffac62a7a47617c8e644917f49be92028c7730253b95475de5c2312979f5704721bf0466d68f6e
diff --git a/dev-libs/9libs/files/9libs-va_list.patch b/dev-libs/9libs/files/9libs-va_list.patch
new file mode 100644
index 000000000000..eb8da368de3a
--- /dev/null
+++ b/dev-libs/9libs/files/9libs-va_list.patch
@@ -0,0 +1,115 @@
+diff -ru 9libs-1.0/include/libc.h 9libs-1.0-fixed/include/libc.h
+--- 9libs-1.0/include/libc.h 1998-11-10 22:35:27.000000000 +0000
++++ 9libs-1.0-fixed/include/libc.h 2011-10-02 13:27:38.000000000 +0100
+@@ -57,14 +57,14 @@
+ extern int fprint(int, char *, ...);
+ extern int sprint(char *, char *, ...);
+ extern int snprint(char *, int, char *, ...);
+-extern int fmtinstall(int, int (*)(void *, Fconv *));
++extern int fmtinstall(int, int (*)(va_list, Fconv *));
+ extern void strconv(char *, Fconv *);
+ #if defined(PRINT_RUNES)
+ extern void Strconv(Rune *, Fconv *);
+ #endif
+-extern int numbconv(void *, Fconv *);
++extern int numbconv(va_list, Fconv *);
+ extern int fltconv(double, Fconv *);
+-extern char * doprint(char *, char *, char *, void *);
++extern char * doprint(char *, char *, char *, va_list);
+
+ /*
+ * argument parsing - lifted from tcs
+diff -ru 9libs-1.0/libplan9c/doprint.c 9libs-1.0-fixed/libplan9c/doprint.c
+--- 9libs-1.0/libplan9c/doprint.c 1998-11-10 22:35:28.000000000 +0000
++++ 9libs-1.0-fixed/libplan9c/doprint.c 2011-10-02 13:30:25.000000000 +0100
+@@ -73,12 +73,12 @@
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ };
+
+-static int (*fmtfns[16])(void *, Fconv *) = {
++static int (*fmtfns[16])(va_list, Fconv *) = {
+ numbconv,
+ };
+
+ int
+-fmtinstall(int c, int (*f)(void *, Fconv *))
++fmtinstall(int c, int (*f)(va_list, Fconv *))
+ {
+ int i;
+
+@@ -95,9 +95,8 @@
+ }
+
+ char *
+-doprint(char *s, char *es, char *format, void *argp)
++doprint(char *s, char *es, char *format, va_list ap)
+ {
+- va_list ap = argp;
+ int c;
+ int percent = 0;
+ int dot = 0;
+@@ -218,7 +217,6 @@
+ if (r < 0)
+ f.f3 |= ~r;
+ else {
+- ap += r;
+ s = f.out;
+ percent = 0;
+ }
+@@ -287,13 +285,12 @@
+ #endif
+
+ int
+-numbconv(void *o, Fconv *fp)
++numbconv(va_list ap, Fconv *fp)
+ {
+ static char digits[16] = "0123456789abcdef";
+ char buf[80]; /* arbitrary limit. enough digits, but no limit on f2 */
+ char *s = buf+sizeof(buf)-1;
+ char sign = 0;
+- va_list ap = o;
+ int uc = 0;
+ unsigned long u;
+
+@@ -362,5 +359,5 @@
+ break;
+ }
+ strconv(s, fp);
+- return ap-(va_list)o;
++ return 0;
+ }
+diff -ru 9libs-1.0/libplan9c/tdp.c 9libs-1.0-fixed/libplan9c/tdp.c
+--- 9libs-1.0/libplan9c/tdp.c 1998-11-10 22:35:28.000000000 +0000
++++ 9libs-1.0-fixed/libplan9c/tdp.c 2011-10-02 13:31:58.000000000 +0100
+@@ -122,27 +122,25 @@
+ } Rectangle;
+
+ int
+-Pconv(void *v, Fconv *fp)
++Pconv(va_list ap, Fconv *fp)
+ {
+ char str[50];
+- va_list ap = v;
+ Point *p = va_arg(ap, Point *);
+
+ sprint(str, "(%d,%d)", p->x, p->y);
+ strconv(str, fp);
+- return ap-(va_list)v;
++ return 0;
+ }
+
+ int
+-Rconv(void *v, Fconv *fp)
++Rconv(va_list ap, Fconv *fp)
+ {
+ char str[50];
+- va_list ap = v;
+ Rectangle *r = va_arg(ap, Rectangle *);
+
+ sprint(str, "(%P,%P)", &r->min, &r->max);
+ strconv(str, fp);
+- return ap-(va_list)v;
++ return 0;
+ }
+
+ int
diff --git a/dev-libs/9libs/metadata.xml b/dev-libs/9libs/metadata.xml
new file mode 100644
index 000000000000..d9cd2cad66c2
--- /dev/null
+++ b/dev-libs/9libs/metadata.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer>
+<email>maintainer-needed@gentoo.org</email>
+</maintainer>
+</pkgmetadata>