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
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.
# $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"
@comment $NetBSD: PLIST,v 1.1 2022/07/03 20:57:38 pin Exp $
bin/ksh93
man/man1/ksh93.1
$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
$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