Sun Jul 3 20:57:38 2022 UTC ()
shells/ksh93: import package

Packaged in wip by Paolo Vincenzo Olivo.

Between 2017 and 2020 there was an ultimately unsuccessful attempt to breathe
new life into the KornShell by extensively refactoring the last unstable AST
beta version (93v-). While that ksh2020 effort is now abandoned and still has
many critical bugs, it also had a lot of bugs fixed. More importantly, the AST
issue tracker now contains a lot of documentation on how to fix those bugs,
which made it possible to backport many of them to the last stable release
instead. This ksh 93u+m reboot now incorporates many of these bugfixes, plus
patches from OpenSUSE, Red Hat, and Solaris, as well as many new fixes from the
community (1, 2). Though there are many bugs left to fix, we are confident at
this point that 93u+m is already the least buggy version of ksh93 ever
released. As of late 2021, distributions such as Debian and Slackware have
begun to package it as their default version of ksh93.


(pin)
diff -r0 -r1.1 pkgsrc/shells/ksh93/DESCR
diff -r0 -r1.1 pkgsrc/shells/ksh93/Makefile
diff -r0 -r1.1 pkgsrc/shells/ksh93/PLIST
diff -r0 -r1.1 pkgsrc/shells/ksh93/distinfo
diff -r0 -r1.1 pkgsrc/shells/ksh93/patches/patch-src_lib_libast_features_syscall

File Added: pkgsrc/shells/ksh93/DESCR
Between 2017 and 2020 there was an ultimately unsuccessful attempt to breathe
new life into the KornShell by extensively refactoring the last unstable AST
beta version (93v-). While that ksh2020 effort is now abandoned and still has
many critical bugs, it also had a lot of bugs fixed. More importantly, the AST
issue tracker now contains a lot of documentation on how to fix those bugs,
which made it possible to backport many of them to the last stable release
instead. This ksh 93u+m reboot now incorporates many of these bugfixes, plus
patches from OpenSUSE, Red Hat, and Solaris, as well as many new fixes from the
community (1, 2). Though there are many bugs left to fix, we are confident at
this point that 93u+m is already the least buggy version of ksh93 ever
released. As of late 2021, distributions such as Debian and Slackware have
begun to package it as their default version of ksh93.

File Added: pkgsrc/shells/ksh93/Makefile
# $NetBSD: Makefile,v 1.1 2022/07/03 20:57:38 pin Exp $

DISTNAME=	v1.0.0-beta.2
PKGVER=		${DISTNAME:S,^v,,:S,-beta,,}
PKGNAME=	${GITHUB_PROJECT}93-${PKGVER}
CATEGORIES=	shells
MASTER_SITES=	${MASTER_SITE_GITHUB:=ksh93/}
GITHUB_PROJECT=	ksh
GITHUB_TAG=	${DISTNAME}

MAINTAINER=	vms@retrobsd.ddns.net
HOMEPAGE=	https://github.com/ksh93/ksh/
COMMENT=	Actively developed fork of AT&T KornShell 93u+
LICENSE=	epl-v1.0

CONFLICTS+=		ast-ksh-[0-9]* static-ast-ksh-[0-9]*

USE_LANGUAGES=		c
FORTIFY_SUPPORTED=	no

KSH=	${TOOLS_PATH.ksh:Q}

MAKEFLAGS+=		CC=${CC:Q} SHELL=${KSH}
MAKEFLAGS+=		CCFLAGS=${CFLAGS:M*:Q}

CFLAGS.SunOS+=	-std=c11 -D__EXTENSIONS__

PKG_SHELL=		bin/ksh93

INSTALLATION_DIRS=	bin ${PKGMANDIR}/man1

WRKSRC=	${WRKDIR}/ksh-${DISTNAME:S,^v,,}

do-build:
	cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} 				\
		${KSH} ./bin/package make ${MAKEFLAGS}

do-install:
	set -e;								\
	arch=`${WRKSRC}/bin/package host`;                              \
	${INSTALL_PROGRAM} ${WRKSRC}/arch/"$${arch}"/bin/ksh 		\
		${DESTDIR}${PREFIX}/bin/ksh93

	${INSTALL_MAN} ${WRKSRC}/src/cmd/ksh93/sh.1 			\
		${DESTDIR}${PREFIX}/${PKGMANDIR}/man1/ksh93.1

do-test:
	cd ${WRKSRC} && ${SETENV} SHELL=${KSH}				\
		${KSH} ./bin/package test

.include "../../mk/bsd.pkg.mk"

File Added: pkgsrc/shells/ksh93/PLIST
@comment $NetBSD: PLIST,v 1.1 2022/07/03 20:57:38 pin Exp $
bin/ksh93
man/man1/ksh93.1

File Added: pkgsrc/shells/ksh93/distinfo
$NetBSD: distinfo,v 1.1 2022/07/03 20:57:38 pin Exp $

BLAKE2s (v1.0.0-beta.2.tar.gz) = 1852a7f7963978ea6b80d47a915fe0da868bb91f8d9830056dfc6ea1b3303165
SHA512 (v1.0.0-beta.2.tar.gz) = c2cd5a4b442bcff1dd2c1c054ee79c4cb131dce28d811dcd3476164d6cb7e88e6b317a094b16f227564a1266708ef0cfeca2af0929c00a19497cf1b67c647cf2
Size (v1.0.0-beta.2.tar.gz) = 2238224 bytes
SHA1 (patch-src_lib_libast_features_syscall) = 725fead538810678e808c6fdfd543fa1a0415645

File Added: pkgsrc/shells/ksh93/patches/patch-src_lib_libast_features_syscall
$NetBSD: patch-src_lib_libast_features_syscall,v 1.1 2022/07/03 20:57:38 pin Exp $

On NetBSD, use `SYS___getcwd' to get the getcwd(2) syscall. 

--- src/lib/libast/features/syscall.orig	2021-12-17 03:20:04.000000000 +0000
+++ src/lib/libast/features/syscall
@@ -1,9 +1,13 @@
-lib	sysgetcwd note{ syscall(SYS_getcwd,buf,len) implemented }end link{
+lib    sysgetcwd note{ syscall(SYS_getcwd/SYS___getcwd,buf,len) implemented }end link{
 	#include <sys/syscall.h>
 	int main()
 	{
 		char	buf[256];
+	#ifdef __NetBSD__
+		return syscall(SYS___getcwd, buf, sizeof(buf)) < 0;
+	#else
 		return syscall(SYS_getcwd, buf, sizeof(buf)) < 0;
+	#endif
 	}
 }end
 
@@ -13,6 +17,10 @@ if	( _lib_sysgetcwd ) {
 endif
 
 if	( _lib_sysgetcwd ) {
+	#ifdef __NetBSD__
+	#define SYSGETCWD(a,b)		syscall(SYS___getcwd,a,b)
+	#else
 	#define SYSGETCWD(a,b)		syscall(SYS_getcwd,a,b)
+	#endif
 }
 endif