summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorLucio Andrés Illanes Albornoz (arab, vxp) <lucio@lucioillanes.de>2018-04-14 18:51:26 +0000
committerLucio Andrés Illanes Albornoz (arab, vxp) <lucio@lucioillanes.de>2018-04-14 18:51:26 +0000
commit98bbb0767ace5ef4335c93dfc394dfcc8d429083 (patch)
tree765a705186a2a0f51b4b76109515c0c01bebe03e
parentad95e4e18e8e430d4d50a03c59030876837f2b30 (diff)
downloadmidipix_build-98bbb0767ace5ef4335c93dfc394dfcc8d429083.tar.bz2
midipix_build-98bbb0767ace5ef4335c93dfc394dfcc8d429083.tar.xz
vars/build.vars:native_packages_cmdline: adds ksh_openbsd v20180115 (via Redfoxmoon.)
vars/build.vars:native_packages_deps: adds musl_compat & libbsd v0.8.7 (via Redfoxmoon.) patches/ksh_openbsd-20180115.local.patch: via Redfoxmoon. patches/libbsd-0.8.7.local.patch: via Redfoxmoon.
-rw-r--r--patches/ksh_openbsd-20180115.local.patch63
-rw-r--r--patches/libbsd-0.8.7.local.patch509
-rw-r--r--vars/build.vars16
3 files changed, 586 insertions, 2 deletions
diff --git a/patches/ksh_openbsd-20180115.local.patch b/patches/ksh_openbsd-20180115.local.patch
new file mode 100644
index 00000000..63430646
--- /dev/null
+++ b/patches/ksh_openbsd-20180115.local.patch
@@ -0,0 +1,63 @@
+diff -ru ksh-openbsd-20180115.orig/history.c ksh-openbsd-20180115/history.c
+--- ksh-openbsd-20180115.orig/history.c 2018-01-15 23:04:15.000000000 +0100
++++ ksh-openbsd-20180115/history.c 2018-04-14 15:31:50.346308024 +0200
+@@ -28,6 +28,10 @@
+ #include "vis.h"
+ #include "sh.h"
+
++#ifndef F_EXLCK
++#define F_EXLCK 4
++#endif
++
+ #define timespeccmp(tsp, usp, cmp) \
+ (((tsp)->tv_sec == (usp)->tv_sec) ? \
+ ((tsp)->tv_nsec cmp (usp)->tv_nsec) : \
+diff -ru ksh-openbsd-20180115.orig/Makefile ksh-openbsd-20180115/Makefile
+--- ksh-openbsd-20180115.orig/Makefile 2018-01-15 23:04:15.000000000 +0100
++++ ksh-openbsd-20180115/Makefile 2018-04-14 16:03:43.040414391 +0200
+@@ -22,12 +22,12 @@
+ CDIAGFLAGS+= -Wshadow
+ CDIAGFLAGS+= -Wdeclaration-after-statement
+
+-CFLAGS += $(CDIAGFLAGS) `getconf LFS_CFLAGS` -DEMACS -DVI
++CFLAGS += $(CDIAGFLAGS) `getconf LFS_CFLAGS` -D_GNU_SOURCE -DEMACS -DVI
+ LDADD += -lbsd
+
+ $(PROG): $(OBJS)
+- $(CC) -o $(PROG) $(CFLAGS) $(LDADD) \
+- $(OBJS)
++ $(CC) -o $(PROG) $(CFLAGS) \
++ $(OBJS) $(LDADD)
+
+ all: $(PROG)
+
+@@ -37,7 +37,7 @@
+
+ install:
+ install -m755 -d $(BINDIR)
+- install -m755 --strip --no-target-directory ksh $(BINDIR)/pdksh
++ install -m755 --no-target-directory ksh $(BINDIR)/pdksh
+ install -m755 -d $(MANDIR)/man1
+ install -m644 --no-target-directory ksh.1 $(MANDIR)/man1/pdksh.1
+ install -m644 --no-target-directory sh.1 $(MANDIR)/man1/pdksh-sh.1
+diff -ru ksh-openbsd-20180115.orig/vis.c ksh-openbsd-20180115/vis.c
+--- ksh-openbsd-20180115.orig/vis.c 2018-01-15 23:04:15.000000000 +0100
++++ ksh-openbsd-20180115/vis.c 2018-04-14 15:38:41.605684906 +0200
+@@ -139,7 +139,7 @@
+ *dst = '\0';
+ return (dst);
+ }
+-DEF_WEAK(vis);
++//DEF_WEAK(vis);
+
+ /*
+ * strvis, strnvis, strvisx - visually encode characters from src into dst
+@@ -165,7 +165,7 @@
+ *dst = '\0';
+ return (dst - start);
+ }
+-DEF_WEAK(strvis);
++//DEF_WEAK(strvis);
+
+ int
+ strnvis(char *dst, const char *src, size_t siz, int flag)
diff --git a/patches/libbsd-0.8.7.local.patch b/patches/libbsd-0.8.7.local.patch
new file mode 100644
index 00000000..a36f018a
--- /dev/null
+++ b/patches/libbsd-0.8.7.local.patch
@@ -0,0 +1,509 @@
+diff -Nru libbsd-0.8.7.orig/include/bsd/err.h libbsd-0.8.7/include/bsd/err.h
+--- libbsd-0.8.7.orig/include/bsd/err.h 2017-06-06 04:21:05.000000000 +0200
++++ libbsd-0.8.7/include/bsd/err.h 2018-04-14 13:38:44.795802502 +0200
+@@ -42,7 +42,10 @@
+
+ #include <stdarg.h>
+
+-__BEGIN_DECLS
++/* __BEGIN_DECLS */
++#ifdef __cplusplus
++extern "C" {
++#endif
+ void warnc(int code, const char *format, ...)
+ __printflike(2, 3);
+ void vwarnc(int code, const char *format, va_list ap)
+@@ -51,6 +54,9 @@
+ __printflike(3, 4);
+ void verrc(int status, int code, const char *format, va_list ap)
+ __printflike(3, 0);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
++/* __END_DECLS */
+
+ #endif
+diff -Nru libbsd-0.8.7.orig/include/bsd/libutil.h libbsd-0.8.7/include/bsd/libutil.h
+--- libbsd-0.8.7.orig/include/bsd/libutil.h 2017-06-19 03:17:21.000000000 +0200
++++ libbsd-0.8.7/include/bsd/libutil.h 2018-04-14 13:38:44.795802502 +0200
+@@ -53,7 +53,10 @@
+ ino_t pf_ino;
+ };
+
+-__BEGIN_DECLS
++/* __BEGIN_DECLS */
++#ifdef __cplusplus
++extern "C" {
++#endif
+ int humanize_number(char *buf, size_t len, int64_t bytes,
+ const char *suffix, int scale, int flags);
+ int expand_number(const char *_buf, uint64_t *_num);
+@@ -66,7 +69,10 @@
+ int pidfile_remove(struct pidfh *pfh);
+
+ char *fparseln(FILE *, size_t *, size_t *, const char[3], int);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
++/* __END_DECLS */
+
+ /* humanize_number(3) */
+ #define HN_DECIMAL 0x01
+diff -Nru libbsd-0.8.7.orig/include/bsd/md5.h libbsd-0.8.7/include/bsd/md5.h
+--- libbsd-0.8.7.orig/include/bsd/md5.h 2017-06-19 03:17:21.000000000 +0200
++++ libbsd-0.8.7/include/bsd/md5.h 2018-04-14 13:38:44.795802502 +0200
+@@ -30,7 +30,10 @@
+ #include <sys/cdefs.h>
+ #include <sys/types.h>
+
+-__BEGIN_DECLS
++/* __BEGIN_DECLS */
++#ifdef __cplusplus
++extern "C" {
++#endif
+ void MD5Init(MD5_CTX *);
+ void MD5Update(MD5_CTX *, const uint8_t *, size_t)
+ __attribute__((__bounded__(__string__,2,3)));
+@@ -49,6 +52,9 @@
+ char *MD5Data(const uint8_t *, size_t, char *)
+ __attribute__((__bounded__(__string__,1,2)))
+ __attribute__((__bounded__(__minbytes__,3,MD5_DIGEST_STRING_LENGTH)));
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
++/* __END_DECLS */
+
+ #endif /* LIBBSD_MD5_H */
+diff -Nru libbsd-0.8.7.orig/include/bsd/nlist.h libbsd-0.8.7/include/bsd/nlist.h
+--- libbsd-0.8.7.orig/include/bsd/nlist.h 2017-06-19 03:17:21.000000000 +0200
++++ libbsd-0.8.7/include/bsd/nlist.h 2018-04-14 13:38:44.795802502 +0200
+@@ -88,8 +88,14 @@
+
+ #define N_FORMAT "%08x" /* namelist value format; XXX */
+
+-__BEGIN_DECLS
++/* __BEGIN_DECLS */
++#ifdef __cplusplus
++extern "C" {
++#endif
+ extern int nlist(const char *filename, struct nlist *list);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
++/* __END_DECLS */
+
+ #endif
+diff -Nru libbsd-0.8.7.orig/include/bsd/readpassphrase.h libbsd-0.8.7/include/bsd/readpassphrase.h
+--- libbsd-0.8.7.orig/include/bsd/readpassphrase.h 2017-06-19 03:17:21.000000000 +0200
++++ libbsd-0.8.7/include/bsd/readpassphrase.h 2018-04-14 13:38:44.795802502 +0200
+@@ -34,8 +34,14 @@
+ #include <sys/cdefs.h>
+ #include <sys/types.h>
+
+-__BEGIN_DECLS
++/* __BEGIN_DECLS */
++#ifdef __cplusplus
++extern "C" {
++#endif
+ char * readpassphrase(const char *, char *, size_t, int);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
++/* __END_DECLS */
+
+ #endif /* !LIBBSD_READPASSPHRASE_H */
+diff -Nru libbsd-0.8.7.orig/include/bsd/stdio.h libbsd-0.8.7/include/bsd/stdio.h
+--- libbsd-0.8.7.orig/include/bsd/stdio.h 2017-06-06 04:21:05.000000000 +0200
++++ libbsd-0.8.7/include/bsd/stdio.h 2018-04-14 13:38:44.795802502 +0200
+@@ -45,7 +45,10 @@
+ #endif
+ #include <sys/types.h>
+
+-__BEGIN_DECLS
++/* __BEGIN_DECLS */
++#ifdef __cplusplus
++extern "C" {
++#endif
+ const char *fmtcheck(const char *, const char *);
+
+ /* XXX: The function requires cooperation from the system libc to store the
+@@ -73,7 +76,10 @@
+ #define fwopen(cookie, fn) funopen(cookie, NULL, fn, NULL, NULL)
+
+ int fpurge(FILE *fp);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
++/* __END_DECLS */
+
+ #endif
+ #endif
+diff -Nru libbsd-0.8.7.orig/include/bsd/stdlib.h libbsd-0.8.7/include/bsd/stdlib.h
+--- libbsd-0.8.7.orig/include/bsd/stdlib.h 2017-08-05 13:20:00.000000000 +0200
++++ libbsd-0.8.7/include/bsd/stdlib.h 2018-04-14 13:58:02.519913671 +0200
+@@ -46,7 +46,10 @@
+ #include <sys/stat.h>
+ #include <stdint.h>
+
+-__BEGIN_DECLS
++/* __BEGIN_DECLS */
++#ifdef __cplusplus
++extern "C" {
++#endif
+ uint32_t arc4random(void);
+ void arc4random_stir(void);
+ void arc4random_addrandom(unsigned char *dat, int datlen);
+@@ -67,7 +70,7 @@
+ const unsigned char *table, unsigned endbyte);
+
+ void *reallocf(void *ptr, size_t size);
+-#if defined(_GNU_SOURCE) && defined(__GLIBC__) && !__GLIBC_PREREQ(2, 26)
++#if defined(_GNU_SOURCE)
+ void *reallocarray(void *ptr, size_t nmemb, size_t size);
+ #endif
+
+@@ -75,6 +78,9 @@
+ const char **errstr);
+
+ char *getbsize(int *headerlenp, long *blocksizep);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
++/* __END_DECLS */
+
+ #endif
+diff -Nru libbsd-0.8.7.orig/include/bsd/string.h libbsd-0.8.7/include/bsd/string.h
+--- libbsd-0.8.7.orig/include/bsd/string.h 2017-08-05 13:20:54.000000000 +0200
++++ libbsd-0.8.7/include/bsd/string.h 2018-04-14 13:57:51.871985815 +0200
+@@ -36,15 +36,21 @@
+ #include <sys/cdefs.h>
+ #include <sys/types.h>
+
+-__BEGIN_DECLS
++/* __BEGIN_DECLS */
++#ifdef __cplusplus
++extern "C" {
++#endif
+ size_t strlcpy(char *dst, const char *src, size_t siz);
+ size_t strlcat(char *dst, const char *src, size_t siz);
+ char *strnstr(const char *str, const char *find, size_t str_len);
+ void strmode(mode_t mode, char *str);
+
+-#if defined(_GNU_SOURCE) && defined(__GLIBC__) && !__GLIBC_PREREQ(2, 25)
++#if defined(_GNU_SOURCE)
+ void explicit_bzero(void *buf, size_t len);
+ #endif
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
++/* __END_DECLS */
+
+ #endif
+diff -Nru libbsd-0.8.7.orig/include/bsd/stringlist.h libbsd-0.8.7/include/bsd/stringlist.h
+--- libbsd-0.8.7.orig/include/bsd/stringlist.h 2017-06-19 03:17:21.000000000 +0200
++++ libbsd-0.8.7/include/bsd/stringlist.h 2018-04-14 13:38:44.795802502 +0200
+@@ -43,12 +43,18 @@
+ size_t sl_cur;
+ } StringList;
+
+-__BEGIN_DECLS
++/* __BEGIN_DECLS */
++#ifdef __cplusplus
++extern "C" {
++#endif
+ StringList *sl_init(void);
+ int sl_add(StringList *, char *);
+ void sl_free(StringList *, int);
+ char *sl_find(StringList *, const char *);
+ int sl_delete(StringList *, const char *, int);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
++/* __END_DECLS */
+
+ #endif /* LIBBSD_STRINGLIST_H */
+diff -Nru libbsd-0.8.7.orig/include/bsd/unistd.h libbsd-0.8.7/include/bsd/unistd.h
+--- libbsd-0.8.7.orig/include/bsd/unistd.h 2017-06-06 04:22:22.000000000 +0200
++++ libbsd-0.8.7/include/bsd/unistd.h 2018-04-14 13:38:44.795802502 +0200
+@@ -45,7 +45,10 @@
+ #define S_ISTXT S_ISVTX
+ #endif
+
+-__BEGIN_DECLS
++/* __BEGIN_DECLS */
++#ifdef __cplusplus
++extern "C" {
++#endif
+ extern int optreset;
+
+ #ifdef LIBBSD_OVERLAY
+@@ -68,6 +71,9 @@
+ __printflike(1, 2);
+
+ int getpeereid(int s, uid_t *euid, gid_t *egid);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
++/* __END_DECLS */
+
+ #endif
+diff -Nru libbsd-0.8.7.orig/include/bsd/vis.h libbsd-0.8.7/include/bsd/vis.h
+--- libbsd-0.8.7.orig/include/bsd/vis.h 2017-06-19 03:17:21.000000000 +0200
++++ libbsd-0.8.7/include/bsd/vis.h 2018-04-14 13:38:44.799802474 +0200
+@@ -74,7 +74,10 @@
+
+ #include <sys/cdefs.h>
+
+-__BEGIN_DECLS
++/* __BEGIN_DECLS */
++#ifdef __cplusplus
++extern "C" {
++#endif
+ char *vis(char *, int, int, int);
+ int strvis(char *, const char *, int);
+ int strvisx(char *, const char *, size_t, int);
+@@ -83,6 +86,9 @@
+ int strunvisx(char *, const char *, int);
+ ssize_t strnunvis(char *, const char *, size_t);
+ int unvis(char *, int, int *, int);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
++/* __END_DECLS */
+
+ #endif /* !LIBBSD_VIS_H */
+diff -Nru libbsd-0.8.7.orig/include/bsd/wchar.h libbsd-0.8.7/include/bsd/wchar.h
+--- libbsd-0.8.7.orig/include/bsd/wchar.h 2017-06-06 04:06:45.000000000 +0200
++++ libbsd-0.8.7/include/bsd/wchar.h 2018-04-14 13:38:44.799802474 +0200
+@@ -43,12 +43,18 @@
+ #include <sys/cdefs.h>
+ #include <sys/types.h>
+
+-__BEGIN_DECLS
++/* __BEGIN_DECLS */
++#ifdef __cplusplus
++extern "C" {
++#endif
+ wchar_t *fgetwln(FILE *stream, size_t *len);
+
+ size_t wcslcat(wchar_t *dst, const wchar_t *src, size_t size);
+ size_t wcslcpy(wchar_t *dst, const wchar_t *src, size_t size);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
++/* __END_DECLS */
+
+ #endif
+ #endif
+diff -Nru libbsd-0.8.7.orig/src/funopen.c libbsd-0.8.7/src/funopen.c
+--- libbsd-0.8.7.orig/src/funopen.c 2017-06-06 04:21:05.000000000 +0200
++++ libbsd-0.8.7/src/funopen.c 2018-04-14 14:00:26.386939154 +0200
+@@ -137,7 +137,7 @@
+
+ return fopencookie(cookiewrap, mode, funcswrap);
+ }
+-#elif defined(__MUSL__)
++#elif defined(__MUSL__) || defined(__midipix__) /* remove this when we've updated to 1.16 */
+ /*
+ * This is unimplementable on musl based systems, and upstream has stated
+ * they will not add the needed support to implement it. Just ignore this
+diff -Nru libbsd-0.8.7.orig/src/getentropy.c libbsd-0.8.7/src/getentropy.c
+--- libbsd-0.8.7.orig/src/getentropy.c 2017-06-06 04:21:24.000000000 +0200
++++ libbsd-0.8.7/src/getentropy.c 2018-04-14 14:17:41.264344594 +0200
+@@ -40,6 +40,8 @@
+ #include "getentropy_aix.c"
+ #elif defined(__hpux)
+ #include "getentropy_hpux.c"
++#elif defined(__midipix__)
++#include "getentropy_midipix.c"
+ #else
+ #error "No getentropy hooks defined for this platform."
+ #endif
+diff -Nru libbsd-0.8.7.orig/src/getentropy_midipix.c libbsd-0.8.7/src/getentropy_midipix.c
+--- libbsd-0.8.7.orig/src/getentropy_midipix.c 1970-01-01 01:00:00.000000000 +0100
++++ libbsd-0.8.7/src/getentropy_midipix.c 2018-04-14 14:19:03.568979997 +0200
+@@ -0,0 +1,118 @@
++/* Temporary copy-paste from getentropy_linux.c until we get a native getentropy() implementation */
++
++
++#define _POSIX_C_SOURCE 199309L
++#define _GNU_SOURCE 1
++#include <sys/types.h>
++#include <sys/param.h>
++#include <sys/ioctl.h>
++#include <sys/resource.h>
++#include <sys/syscall.h>
++#include <sys/statvfs.h>
++#include <sys/socket.h>
++#include <sys/mount.h>
++#include <sys/mman.h>
++#include <sys/stat.h>
++#include <sys/time.h>
++#include <stdlib.h>
++#include <stdint.h>
++#include <stdio.h>
++#include <link.h>
++#include <termios.h>
++#include <fcntl.h>
++#include <signal.h>
++#include <string.h>
++#include <errno.h>
++#include <unistd.h>
++#include <time.h>
++
++int getentropy(void *buf, size_t len);
++
++static int gotdata(char *buf, size_t len);
++static int getentropy_urandom(void *buf, size_t len);
++
++int
++getentropy(void *buf, size_t len)
++{
++ int ret = -1;
++
++ if (len > 256) {
++ errno = EIO;
++ return (-1);
++ }
++
++ ret = getentropy_urandom(buf, len);
++ if (ret != -1)
++ return (ret);
++
++ /* Oh well! */
++ raise(SIGKILL);
++ return -1;
++}
++
++static int
++gotdata(char *buf, size_t len)
++{
++ char any_set = 0;
++ size_t i;
++
++ for (i = 0; i < len; ++i)
++ any_set |= buf[i];
++ if (any_set == 0)
++ return (-1);
++ return (0);
++}
++
++static int
++getentropy_urandom(void *buf, size_t len)
++{
++ struct stat st;
++ size_t i;
++ int fd, cnt, flags;
++ int save_errno = errno;
++
++start:
++
++ flags = O_RDONLY;
++#ifdef O_NOFOLLOW
++ flags |= O_NOFOLLOW;
++#endif
++#ifdef O_CLOEXEC
++ flags |= O_CLOEXEC;
++#endif
++ fd = open("/dev/urandom", flags, 0);
++ if (fd == -1) {
++ if (errno == EINTR)
++ goto start;
++ goto nodevrandom;
++ }
++#ifndef O_CLOEXEC
++ fcntl(fd, F_SETFD, fcntl(fd, F_GETFD) | FD_CLOEXEC);
++#endif
++
++ /* Lightly verify that the device node looks sane */
++ if (fstat(fd, &st) == -1 || !S_ISCHR(st.st_mode)) {
++ close(fd);
++ goto nodevrandom;
++ }
++ for (i = 0; i < len; ) {
++ size_t wanted = len - i;
++ ssize_t ret = read(fd, (char *)buf + i, wanted);
++
++ if (ret == -1) {
++ if (errno == EAGAIN || errno == EINTR)
++ continue;
++ close(fd);
++ goto nodevrandom;
++ }
++ i += ret;
++ }
++ close(fd);
++ if (gotdata(buf, len) == 0) {
++ errno = save_errno;
++ return (0); /* satisfied */
++ }
++nodevrandom:
++ errno = EIO;
++ return (-1);
++}
+diff -Nru libbsd-0.8.7.orig/src/getpeereid.c libbsd-0.8.7/src/getpeereid.c
+--- libbsd-0.8.7.orig/src/getpeereid.c 2017-06-06 04:06:45.000000000 +0200
++++ libbsd-0.8.7/src/getpeereid.c 2018-04-14 14:01:46.514396572 +0200
+@@ -40,7 +40,7 @@
+ getpeereid(int s, uid_t *euid, gid_t *egid)
+ {
+ /* XXX: This should be autodetected at build time instead. */
+-#if defined(__linux__)
++#if defined(__linux__) || defined(__midipix__)
+ struct ucred cred;
+ #elif defined(__OpenBSD__)
+ struct sockpeercred cred;
+diff -Nru libbsd-0.8.7.orig/src/hash/sha512.h libbsd-0.8.7/src/hash/sha512.h
+--- libbsd-0.8.7.orig/src/hash/sha512.h 2017-06-06 04:21:05.000000000 +0200
++++ libbsd-0.8.7/src/hash/sha512.h 2018-04-14 13:38:44.799802474 +0200
+@@ -39,7 +39,10 @@
+ unsigned char buf[128];
+ } SHA512_CTX;
+
+-__BEGIN_DECLS
++/* __BEGIN_DECLS */
++#ifdef __cplusplus
++extern "C" {
++#endif
+
+ void SHA512_Init(SHA512_CTX *);
+ void SHA512_Update(SHA512_CTX *, const void *, size_t);
+@@ -48,6 +51,9 @@
+ char *SHA512_File(const char *, char *);
+ char *SHA512_FileChunk(const char *, char *, off_t, off_t);
+ char *SHA512_Data(const void *, unsigned int, char *);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
++/* __END_DECLS */
+
+ #endif /* !_SHA512_H_ */
+diff -Nru libbsd-0.8.7.orig/src/setproctitle.c libbsd-0.8.7/src/setproctitle.c
+--- libbsd-0.8.7.orig/src/setproctitle.c 2017-07-17 00:47:19.000000000 +0200
++++ libbsd-0.8.7/src/setproctitle.c 2018-04-14 14:05:35.448846935 +0200
+@@ -280,6 +280,7 @@
+ *++nul = '\0';
+ }
+ }
++#ifndef __midipix__
+ __asm__(".symver setproctitle_impl,setproctitle@@LIBBSD_0.5");
+
+ /* The original function introduced in 0.2 was a stub, it only got implemented
+@@ -293,3 +294,4 @@
+ __attribute__((alias("setproctitle_impl")));
+ #endif
+ __asm__(".symver setproctitle_stub,setproctitle@LIBBSD_0.2");
++#endif
diff --git a/vars/build.vars b/vars/build.vars
index a0f28650..96ec5f93 100644
--- a/vars/build.vars
+++ b/vars/build.vars
@@ -345,7 +345,7 @@ NATIVE_PACKAGES_DEPS_MAKEFLAGS_INSTALL="PREFIX= prefix=";
NATIVE_PACKAGES_DEPS_PACKAGES="
expat libxml2 alsa_lib apr apr_util bzip2 libdmtx libressl curl libz lmdb libpng
libjpeg_turbo tiff giflib libffi gdbm geoip pcre glib gzip libarchive
-libatomic_ops libpipeline libevent libfetch libogg libvorbis libgpg_error libassuan libfirm
+libatomic_ops musl_compat libbsd libpipeline libevent libfetch libogg libvorbis libgpg_error libassuan libfirm
libgcrypt libksba libudns lua ncurses ncursestw ncursesw libnettle gnutls libreadline npth
popt shared_mime_info sqlite3 w32api w32lib xz cmake qrencode util_linux";
NATIVE_PACKAGES_DEPS_PREFIX="${PREFIX_NATIVE}";
@@ -439,6 +439,11 @@ NATIVE_PACKAGES_DEPS_PYTHON="${PREFIX}/bin/python";
: ${PKG_LIBARCHIVE_CONFIGURE_ARGS_EXTRA:=--without-xml2};
: ${PKG_LIBARCHIVE_LDFLAGS_CONFIGURE_EXTRA:=-L${PREFIX_NATIVE}/lib};
: ${PKG_LIBATOMIC_OPS_URLS_GIT:="libatomic_ops=https://github.com/ivmai/libatomic_ops@master"};
+: ${PKG_MUSL_COMPAT_URLS_GIT:=musl_compat=https://github.com/somasis/musl-compat.git@master};
+: ${PKG_MUSL_COMPAT_BUILD_DIR:=musl_compat};
+: ${PKG_LIBBSD_SHA256SUM:=f548f10e5af5a08b1e22889ce84315b1ebe41505b015c9596bad03fd13a12b31};
+: ${PKG_LIBBSD_VERSION:=0.8.7};
+: ${PKG_LIBBSD_URL:=https://libbsd.freedesktop.org/releases/libbsd-${PKG_LIBBSD_VERSION}.tar.xz};
: ${PKG_LIBPIPELINE_SHA256SUM:=da46d7b20163aadb9db2faae483f734e9096a7550c84b94029abeab62dd1b9ee};
: ${PKG_LIBPIPELINE_VERSION:=1.4.1};
: ${PKG_LIBPIPELINE_URL:=http://download.savannah.gnu.org/releases/libpipeline/libpipeline-${PKG_LIBPIPELINE_VERSION}.tar.gz};
@@ -742,7 +747,7 @@ DEV_PACKAGES_PYTHON="${PREFIX}/bin/python";
# Packages list native_packages_cmdline
NATIVE_PACKAGES_CMDLINE_PACKAGES="
bash bc coreutils dash datamash dos2unix ed figlet file findutils gawk grep
-mksh sbase sed tar tcsh the_silver_searcher toilet ubase which zsh";
+mksh ksh_openbsd sbase sed tar tcsh the_silver_searcher toilet ubase which zsh";
: ${PKG_BASH_SHA256SUM:=d86b3392c1202e8ff5a423b302e6284db7f8f435ea9f39b5b1b20fd3ac36dfcb};
: ${PKG_BASH_VERSION:=4.4};
: ${PKG_BASH_URL:=https://ftp.gnu.org/gnu/bash/bash-${PKG_BASH_VERSION}.tar.gz};
@@ -797,6 +802,13 @@ mksh sbase sed tar tcsh the_silver_searcher toilet ubase which zsh";
: ${PKG_MKSH_IN_TREE:=1};
: ${PKG_MKSH_INSTALL_FILES:="../mksh/mksh=bin/ /=share/doc/mksh/examples ../mksh/dot.mkshrc=share/doc/mksh/examples/ ../mksh/mksh.1=share/man/man1/"};
: ${PKG_MKSH_SUBDIR:=mksh};
+: ${PKG_KSH_OPENBSD_VERSION:=20180115};
+: ${PKG_KSH_OPENBSD_URL:=https://github.com/levaidaniel/ksh-openbsd/archive/${PKG_KSH_OPENBSD_VERSION}.tar.gz};
+: ${PKG_KSH_OPENBSD_CFLAGS_BUILD_EXTRA:="-D_GNU_SOURCE -DVI -I${PREFIX_NATIVE}/include"};
+: ${PKG_KSH_OPENBSD_MAKEFLAGS_INSTALL_EXTRA:="DESTDIR=${PREFIX_NATIVE} PREFIX="};
+: ${PKG_KSH_OPENBSD_ENV_VARS_EXTRA:="LDADD=-L${PREFIX_NATIVE}/lib"};
+: ${PKG_KSH_OPENBSD_SUBDIR:=ksh-openbsd-${PKG_KSH_OPENBSD_VERSION}};
+: ${PKG_KSH_OPENBSD_BUILD_DIR:=ksh-openbsd-${PKG_KSH_OPENBSD_VERSION}};
: ${PKG_SBASE_URLS_GIT:="sbase=http://git.suckless.org/sbase@master"};
: ${PKG_SBASE_IN_TREE:=1};
: ${PKG_SBASE_MAKE_INSTALL_VNAME:=PREFIX};