Subject: [PATCH] testing/9base: new aport

From: Joshua Haase <[email-masked]>
Date: Sun, 6 Oct 2019 01:39:56 -0500

Closes #10855
---
 testing/9base/APKBUILD         | 50 ++++++++++++++++++++++++++++++++++
 testing/9base/config.mk.x86    | 24 ++++++++++++++++
 testing/9base/config.mk.x86_64 | 24 ++++++++++++++++
 testing/9base/dirread.patch    | 17 ++++++++++++
 4 files changed, 115 insertions(+)
 create mode 100644 testing/9base/APKBUILD
 create mode 100644 testing/9base/config.mk.x86
 create mode 100644 testing/9base/config.mk.x86_64
 create mode 100644 testing/9base/dirread.patch

diff --git a/testing/9base/APKBUILD b/testing/9base/APKBUILD
new file mode 100644
index 0000000000..525dae7bc6
--- /dev/null
+++ b/testing/9base/APKBUILD
@@ -0,0 +1,50 @@
+# Contributor: Joshua Haase <[email-masked]>
+# Maintainer: Joshua Haase <[email-masked]>
+pkgname="9base"
+pkgver="6"
+pkgrel=0
+pkgdesc="A port of various Plan 9 tools for Unix."
+url="https://tools.suckless.org/9base/"
+arch="all"
+license="MIT"
+depends=""
+makedepends="libucontext-dev linux-headers"
+install=""
+subpackages="$pkgname-doc $pkgname-troff"
+source="https://dl.suckless.org/tools/$pkgname-$pkgver.tar.gz config.mk.x86_64 config.mk.x86 dirread.patch"
+builddir="$srcdir/$pkgname-$pkgver"
+
+prepare() {
+	default_prepare
+	cp "$srcdir/config.mk.$(uname -m)" "$builddir/config.mk"
+}
+
+build() {
+	cd "$builddir"
+	make DESTDIR="$pkgdir" all
+}
+
+package() {
+	cd "$builddir"
+	install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
+	make DESTDIR="$pkgdir" install
+}
+
+doc() {
+	default_doc
+	mkdir -p "$subpkgdir/usr/lib/9base/share"
+	mv "$pkgdir/usr/lib/9base/share/man" "$subpkgdir/usr/lib/9base/share"
+}
+
+troff() {
+	cd "$pkgdir"
+	mkdir -p "$subpkgdir/usr/lib/9base/bin"
+	mv "$pkgdir/usr/lib/9base/bin/troff" "$subpkgdir/usr/lib/9base/bin/troff"
+	mkdir -p "$subpkgdir/usr/lib/9base/lib/troff"
+	mv "$pkgdir/usr/lib/9base/lib/troff" "$subpkgdir/usr/lib/9base/lib/troff"
+}
+
+sha512sums="38108a94118b56c6f3982e692beb1068c52f9aecd74447d6b552b77fae5e365eab72b4781bdf07d9696ac89d54371c1cae8cc0363de510b53988302acef50dba  9base-6.tar.gz
+3a30955d59ad78c1bc4e2fbd0f511eb85624ed48b0aeceef436e3456f685690e064eb1f171a2080a34a0fcb40d874277a282864c720c9e612eca3ad848dec35e  config.mk.x86_64
+7a58d4762c5ec9a0191f2cce15b23b2e60ec9445c357dc2e3925a5b4d5dec1c5eed6fb3565be07a25616c0c2b0768c21737b2d35082deb17bfc7a7f5f0c0d2a6  config.mk.x86
+5b47647245366e786059a28747fe9a36fd87d9df2e1a7f68e9a41f4adb7ec96f230a9abe94acbe5f82d62f4f85b061ff7ab7356d32072dd9ef7f677379f456f5  dirread.patch"
diff --git a/testing/9base/config.mk.x86 b/testing/9base/config.mk.x86
new file mode 100644
index 0000000000..9279f21262
--- /dev/null
+++ b/testing/9base/config.mk.x86
@@ -0,0 +1,24 @@
+# Customize to fit your system
+
+# paths
+PREFIX      = /usr/lib/9base
+MANPREFIX   = ${PREFIX}/share/man
+
+VERSION     = 6
+OBJTYPE     = 386
+#OBJTYPE     = arm
+#OBJTYPE     = x86_64
+
+# Linux/BSD
+#CFLAGS      += -Wall -Wno-missing-braces -Wno-parentheses -Wno-switch -c -I. -DPREFIX="\"${PREFIX}\""
+CFLAGS      += -c -I. -DPREFIX="\"${PREFIX}\""
+LDFLAGS     += -static
+
+# Solaris
+#CFLAGS      = -fast -xtarget=ultra -D__sun__ -c -I. -DPREFIX="\"${PREFIX}\""
+#LDFLAGS     = -dn
+
+# compiler
+AR          = ar rc
+CC          = cc
+YACC        = ../yacc/9yacc
diff --git a/testing/9base/config.mk.x86_64 b/testing/9base/config.mk.x86_64
new file mode 100644
index 0000000000..51ce200eb0
--- /dev/null
+++ b/testing/9base/config.mk.x86_64
@@ -0,0 +1,24 @@
+# Customize to fit your system
+
+# paths
+PREFIX      = /usr/lib/9base
+MANPREFIX   = ${PREFIX}/share/man
+
+VERSION     = 6
+#OBJTYPE     = 386
+#OBJTYPE     = arm
+OBJTYPE     = x86_64
+
+# Linux/BSD
+#CFLAGS      += -Wall -Wno-missing-braces -Wno-parentheses -Wno-switch -c -I. -DPREFIX="\"${PREFIX}\""
+CFLAGS      += -c -I. -DPREFIX="\"${PREFIX}\""
+LDFLAGS     += -static
+
+# Solaris
+#CFLAGS      = -fast -xtarget=ultra -D__sun__ -c -I. -DPREFIX="\"${PREFIX}\""
+#LDFLAGS     = -dn
+
+# compiler
+AR          = ar rc
+CC          = cc
+YACC        = ../yacc/9yacc
diff --git a/testing/9base/dirread.patch b/testing/9base/dirread.patch
new file mode 100644
index 0000000000..daf60c6311
--- /dev/null
+++ b/testing/9base/dirread.patch
@@ -0,0 +1,17 @@
+--- 9base-6/lib9/dirread.c
++++ 9base-6/lib9/dirread.c
+@@ -10,13 +10,7 @@
+ static int
+ mygetdents(int fd, struct dirent *buf, int n)
+ {
+-	off_t off;
+-	int nn;
+-
+-	/* This doesn't match the man page, but it works in Debian with a 2.2 kernel */
+-	off = p9seek(fd, 0, 1);
+-	nn = getdirentries(fd, (void*)buf, n, &off);
+-	return nn;
++	return getdents(fd, buf, n);
+ }
+ #elif defined(__APPLE__) || defined(__FreeBSD__) || defined(__OpenBSD__)
+ static int
-- 
2.17.1

---

From: Joshua Haase <[email-masked]>
Date: Mon, 7 Oct 2019 17:33:41 -0500

Closes #10855, see !299

The port for s390x is as recommended on https://plan9port-review.googlesource.com/1030
---

  - Fixed lint problems.
  - Added config.mk for all architectures, and a patch for s390x.
  - Passed tests on https://gitlab.alpinelinux.org/alpine/aports/merge_requests/299

 testing/9base/APKBUILD          | 48 +++++++++++++++++++++++++++++++++
 testing/9base/config.mk.i686    | 24 +++++++++++++++++
 testing/9base/config.mk.ppc64le | 22 +++++++++++++++
 testing/9base/config.mk.s390x   | 22 +++++++++++++++
 testing/9base/config.mk.x86_64  | 24 +++++++++++++++++
 testing/9base/dirread.patch     | 17 ++++++++++++
 testing/9base/s390x.patch       | 10 +++++++
 7 files changed, 167 insertions(+)
 create mode 100644 testing/9base/APKBUILD
 create mode 100644 testing/9base/config.mk.i686
 create mode 100644 testing/9base/config.mk.ppc64le
 create mode 100644 testing/9base/config.mk.s390x
 create mode 100644 testing/9base/config.mk.x86_64
 create mode 100644 testing/9base/dirread.patch
 create mode 100644 testing/9base/s390x.patch

diff --git a/testing/9base/APKBUILD b/testing/9base/APKBUILD
new file mode 100644
index 0000000000..ddecc8c6b1
--- /dev/null
+++ b/testing/9base/APKBUILD
@@ -0,0 +1,48 @@
+# Contributor: Joshua Haase <[email-masked]>
+# Maintainer: Joshua Haase <[email-masked]>
+pkgname="9base"
+pkgver=6
+pkgrel=0
+pkgdesc="A port of various Plan 9 tools for Unix."
+url="https://tools.suckless.org/9base/"
+arch="all"
+license="MIT"
+makedepends="libucontext-dev linux-headers"
+subpackages="$pkgname-doc $pkgname-troff"
+source="https://dl.suckless.org/tools/9base-$pkgver.tar.gz config.mk.x86_64 config.mk.i686 config.mk.s390x config.mk.ppc64le dirread.patch s390x.patch"
+
+prepare() {
+	default_prepare
+	cp "$srcdir/config.mk.$(uname -m)" "$builddir/config.mk"
+}
+
+build() {
+	make DESTDIR="$pkgdir" all
+}
+
+package() {
+	install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
+	make DESTDIR="$pkgdir" install
+}
+
+doc() {
+	default_doc
+	mkdir -p "$subpkgdir/usr/lib/9base/share"
+	mv "$pkgdir/usr/lib/9base/share/man" "$subpkgdir/usr/lib/9base/share"
+}
+
+troff() {
+	cd "$pkgdir"
+	mkdir -p "$subpkgdir/usr/lib/9base/bin"
+	mv "$pkgdir/usr/lib/9base/bin/troff" "$subpkgdir/usr/lib/9base/bin/troff"
+	mkdir -p "$subpkgdir/usr/lib/9base/lib/troff"
+	mv "$pkgdir/usr/lib/9base/lib/troff" "$subpkgdir/usr/lib/9base/lib/troff"
+}
+
+sha512sums="38108a94118b56c6f3982e692beb1068c52f9aecd74447d6b552b77fae5e365eab72b4781bdf07d9696ac89d54371c1cae8cc0363de510b53988302acef50dba  9base-6.tar.gz
+3a30955d59ad78c1bc4e2fbd0f511eb85624ed48b0aeceef436e3456f685690e064eb1f171a2080a34a0fcb40d874277a282864c720c9e612eca3ad848dec35e  config.mk.x86_64
+7a58d4762c5ec9a0191f2cce15b23b2e60ec9445c357dc2e3925a5b4d5dec1c5eed6fb3565be07a25616c0c2b0768c21737b2d35082deb17bfc7a7f5f0c0d2a6  config.mk.i686
+61e67a22abf8f7d3dbfadda92cf0836e8726ae8225939318d0bf34dc05b47a12dd41de895f7b5df515ba5cd783dae368cce98706366cc28360a1987b4e7c652c  config.mk.s390x
+dd0f9ff55e103fd16f689f01e41769cf6bc6370201e790bf64236570cda2d0e6ef2954f1b5798feb4ebd65fc1a0563ce71c8a9b7fb05166a8ff28ac8be472dfe  config.mk.ppc64le
+5b47647245366e786059a28747fe9a36fd87d9df2e1a7f68e9a41f4adb7ec96f230a9abe94acbe5f82d62f4f85b061ff7ab7356d32072dd9ef7f677379f456f5  dirread.patch
+f1f05e2a6081f2a451256de9af669e1ff1e82b6603b376677825421c11bd6ef22a8ab0eb89c15b0589252bada71b58214b6306127bdd379952203105f14e49e9  s390x.patch"
diff --git a/testing/9base/config.mk.i686 b/testing/9base/config.mk.i686
new file mode 100644
index 0000000000..9279f21262
--- /dev/null
+++ b/testing/9base/config.mk.i686
@@ -0,0 +1,24 @@
+# Customize to fit your system
+
+# paths
+PREFIX      = /usr/lib/9base
+MANPREFIX   = ${PREFIX}/share/man
+
+VERSION     = 6
+OBJTYPE     = 386
+#OBJTYPE     = arm
+#OBJTYPE     = x86_64
+
+# Linux/BSD
+#CFLAGS      += -Wall -Wno-missing-braces -Wno-parentheses -Wno-switch -c -I. -DPREFIX="\"${PREFIX}\""
+CFLAGS      += -c -I. -DPREFIX="\"${PREFIX}\""
+LDFLAGS     += -static
+
+# Solaris
+#CFLAGS      = -fast -xtarget=ultra -D__sun__ -c -I. -DPREFIX="\"${PREFIX}\""
+#LDFLAGS     = -dn
+
+# compiler
+AR          = ar rc
+CC          = cc
+YACC        = ../yacc/9yacc
diff --git a/testing/9base/config.mk.ppc64le b/testing/9base/config.mk.ppc64le
new file mode 100644
index 0000000000..4b4a4d9629
--- /dev/null
+++ b/testing/9base/config.mk.ppc64le
@@ -0,0 +1,22 @@
+# Customize to fit your system
+
+# paths
+PREFIX      = /usr/lib/9base
+MANPREFIX   = ${PREFIX}/share/man
+
+VERSION     = 6
+OBJTYPE     = power
+
+# Linux/BSD
+#CFLAGS      += -Wall -Wno-missing-braces -Wno-parentheses -Wno-switch -c -I. -DPREFIX="\"${PREFIX}\""
+CFLAGS      += -c -I. -DPREFIX="\"${PREFIX}\""
+LDFLAGS     += -static
+
+# Solaris
+#CFLAGS      = -fast -xtarget=ultra -D__sun__ -c -I. -DPREFIX="\"${PREFIX}\""
+#LDFLAGS     = -dn
+
+# compiler
+AR          = ar rc
+CC          = cc
+YACC        = ../yacc/9yacc
diff --git a/testing/9base/config.mk.s390x b/testing/9base/config.mk.s390x
new file mode 100644
index 0000000000..3efca66629
--- /dev/null
+++ b/testing/9base/config.mk.s390x
@@ -0,0 +1,22 @@
+# Customize to fit your system
+
+# paths
+PREFIX      = /usr/lib/9base
+MANPREFIX   = ${PREFIX}/share/man
+
+VERSION     = 6
+OBJTYPE     = s390x
+
+# Linux/BSD
+#CFLAGS      += -Wall -Wno-missing-braces -Wno-parentheses -Wno-switch -c -I. -DPREFIX="\"${PREFIX}\""
+CFLAGS      += -c -I. -DPREFIX="\"${PREFIX}\""
+LDFLAGS     += -static
+
+# Solaris
+#CFLAGS      = -fast -xtarget=ultra -D__sun__ -c -I. -DPREFIX="\"${PREFIX}\""
+#LDFLAGS     = -dn
+
+# compiler
+AR          = ar rc
+CC          = cc
+YACC        = ../yacc/9yacc
diff --git a/testing/9base/config.mk.x86_64 b/testing/9base/config.mk.x86_64
new file mode 100644
index 0000000000..51ce200eb0
--- /dev/null
+++ b/testing/9base/config.mk.x86_64
@@ -0,0 +1,24 @@
+# Customize to fit your system
+
+# paths
+PREFIX      = /usr/lib/9base
+MANPREFIX   = ${PREFIX}/share/man
+
+VERSION     = 6
+#OBJTYPE     = 386
+#OBJTYPE     = arm
+OBJTYPE     = x86_64
+
+# Linux/BSD
+#CFLAGS      += -Wall -Wno-missing-braces -Wno-parentheses -Wno-switch -c -I. -DPREFIX="\"${PREFIX}\""
+CFLAGS      += -c -I. -DPREFIX="\"${PREFIX}\""
+LDFLAGS     += -static
+
+# Solaris
+#CFLAGS      = -fast -xtarget=ultra -D__sun__ -c -I. -DPREFIX="\"${PREFIX}\""
+#LDFLAGS     = -dn
+
+# compiler
+AR          = ar rc
+CC          = cc
+YACC        = ../yacc/9yacc
diff --git a/testing/9base/dirread.patch b/testing/9base/dirread.patch
new file mode 100644
index 0000000000..daf60c6311
--- /dev/null
+++ b/testing/9base/dirread.patch
@@ -0,0 +1,17 @@
+--- 9base-6/lib9/dirread.c
++++ 9base-6/lib9/dirread.c
+@@ -10,13 +10,7 @@
+ static int
+ mygetdents(int fd, struct dirent *buf, int n)
+ {
+-	off_t off;
+-	int nn;
+-
+-	/* This doesn't match the man page, but it works in Debian with a 2.2 kernel */
+-	off = p9seek(fd, 0, 1);
+-	nn = getdirentries(fd, (void*)buf, n, &off);
+-	return nn;
++	return getdents(fd, buf, n);
+ }
+ #elif defined(__APPLE__) || defined(__FreeBSD__) || defined(__OpenBSD__)
+ static int
diff --git a/testing/9base/s390x.patch b/testing/9base/s390x.patch
new file mode 100644
index 0000000000..49a24eed7d
--- /dev/null
+++ b/testing/9base/s390x.patch
@@ -0,0 +1,10 @@
+--- /dev/null
++++ 9base-6/lib9/getcallerpc-s390x.c
+@@ -0,0 +1,7 @@
++#include <lib9.h>
++
++ulong
++getcallerpc(void *x)
++{
++	__builtin_return_address(0);
++}
-- 
2.17.1