Subject: [PATCH] testing/cosmopolitan: new aport

From: Sebastian <[email-masked]>
Date: Sun, 9 Jan 2022 17:02:53 -0500

https://justine.lol/cosmopolitan/
Build-once run-anywhere C library

Signed-off-by: Sebastian <[email-masked]>
---
 testing/cosmopolitan/APKBUILD            | 50 ++++++++++++++++++++++++
 testing/cosmopolitan/no-clang-test.patch | 12 ++++++
 2 files changed, 62 insertions(+)
 create mode 100644 testing/cosmopolitan/APKBUILD
 create mode 100644 testing/cosmopolitan/no-clang-test.patch

diff --git a/testing/cosmopolitan/APKBUILD b/testing/cosmopolitan/APKBUILD
new file mode 100644
index 00000000..d03b0318
--- /dev/null
+++ b/testing/cosmopolitan/APKBUILD
@@ -0,0 +1,50 @@
+# Contributor: Sebastian Hudak <[email-masked]>
+# Maintainer: Sebastian Hudak <[email-masked]>
+pkgname=cosmopolitan
+pkgver=1.0
+pkgrel=0
+pkgdesc="Build-once run-anywhere C library"
+url="https://justine.lol/cosmopolitan/"
+arch="x86_64"
+license="ISC"
+# From CONTRIBUTING.md[1]: Build Config "Must not depend on system
+# commands (exception: sh, make, gzip, zip)"
+# [1]: https://github.com/jart/cosmopolitan/blob/master/CONTRIBUTING.md
+makedepends="gzip zip"
+subpackages="$pkgname-doc"
+source="https://justine.lol/cosmopolitan/cosmopolitan-$pkgver.tar.gz
+	no-clang-test.patch"
+builddir="$srcdir/cosmopolitan"
+_mode=rel
+
+build() {
+	# Build doesn't work with custom *FLAGS.
+	# This is due to the nature of Cosmpolitan and APE binaries and
+	# probably can't be worked around.
+	make CFLAGS= CXXFLAGS= CPPFLAGS= LDFLAGS= MODE="$_mode" \
+		o/cosmopolitan.h \
+		o/cosmopolitan.html \
+		o/"$_mode"/ape \
+		o/"$_mode"/cosmopolitan.a \
+		o/"$_mode"/libc
+}
+
+check() {
+	make CFLAGS= CXXFLAGS= CPPFLAGS= LDFLAGS= MODE="$_mode" \
+		o/"$_mode"/test/libc
+}
+
+package() {
+	install -Dm644 o/cosmopolitan.h "$pkgdir"/usr/include/cosmopolitan.h
+	install -Dm644 o/cosmopolitan.html \
+		"$pkgdir"/usr/share/doc/cosmopolitan.html
+	mkdir -p "$pkgdir"/usr/lib/
+	install -m644 o/"$_mode"/ape/* "$pkgdir"/usr/lib/
+	install -m644 o/"$_mode"/cosmopolitan.a "$pkgdir"/usr/lib/cosmopolitan.a
+	install -m644 o/"$_mode"/libc/crt/crt.o "$pkgdir"/usr/lib/crt.o
+}
+
+sha512sums="
+1fb01ad95d5d0908e608febd191545ca2ed06d37ff64715c3241528be2f36f656b68103178c925a8d0a985a9fd40f8f62e034a05ed719d682c5b1c336ff25c8d  cosmopolitan-1.0.tar.gz
+b6d892a8ecc0a50a8cae49a0ba4ef9940316ee4ff9c36f247bda521c2ffb853062c56716bd8226144348760b581bc2cf5c65a06775162c362b4e966ac413409a  no-clang-test.patch
+"
diff --git a/testing/cosmopolitan/no-clang-test.patch b/testing/cosmopolitan/no-clang-test.patch
new file mode 100644
index 00000000..1f6623bb
--- /dev/null
+++ b/testing/cosmopolitan/no-clang-test.patch
@@ -0,0 +1,12 @@
+Clang test segfaults.
+See https://groups.google.com/g/cosmopolitan-libc/c/COPYVF7sE-Y
+
+--- cosmopolitan/test/libc/release/test.mk	2021-05-17 03:35:10.000000000 +0000
++++ cosmopolitan-alpine/test/libc/release/test.mk	2022-01-07 02:47:16.666693677 +0000
+@@ -147,6 +137,5 @@
+ 		o/$(MODE)/test/libc/release/smokecxx.com.runs	\
+ 		o/$(MODE)/test/libc/release/smokeansi.com	\
+ 		o/$(MODE)/test/libc/release/smokeansi.com.runs	\
+-		o/$(MODE)/test/libc/release/clang.ok		\
+ 		o/$(MODE)/test/libc/release/emulate.ok		\
+ 		o/$(MODE)/test/libc/release/metal.ok
-- 
2.34.1