summaryrefslogtreecommitdiff
path: root/shells/ksh93
diff options
context:
space:
mode:
authorpin <pin@pkgsrc.org>2022-07-03 20:57:38 +0000
committerpin <pin@pkgsrc.org>2022-07-03 20:57:38 +0000
commite7a71fb626faecfc3f66888fb76567a5d78c60e0 (patch)
tree69c20e323eb62fdd4f852e82b122d2850c0c9d90 /shells/ksh93
parent5960aab56f1d4e2f83a6e62a6deda183d3b120dd (diff)
downloadpkgsrc-e7a71fb626faecfc3f66888fb76567a5d78c60e0.tar.gz
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.
Diffstat (limited to 'shells/ksh93')
-rw-r--r--shells/ksh93/DESCR12
-rw-r--r--shells/ksh93/Makefile51
-rw-r--r--shells/ksh93/PLIST3
-rw-r--r--shells/ksh93/distinfo6
-rw-r--r--shells/ksh93/patches/patch-src_lib_libast_features_syscall32
5 files changed, 104 insertions, 0 deletions
diff --git a/shells/ksh93/DESCR b/shells/ksh93/DESCR
new file mode 100644
index 00000000000..8a3d1562610
--- /dev/null
+++ b/shells/ksh93/DESCR
@@ -0,0 +1,12 @@
+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.
diff --git a/shells/ksh93/Makefile b/shells/ksh93/Makefile
new file mode 100644
index 00000000000..73c0e18bcee
--- /dev/null
+++ b/shells/ksh93/Makefile
@@ -0,0 +1,51 @@
+# $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"
diff --git a/shells/ksh93/PLIST b/shells/ksh93/PLIST
new file mode 100644
index 00000000000..10dd1313725
--- /dev/null
+++ b/shells/ksh93/PLIST
@@ -0,0 +1,3 @@
+@comment $NetBSD: PLIST,v 1.1 2022/07/03 20:57:38 pin Exp $
+bin/ksh93
+man/man1/ksh93.1
diff --git a/shells/ksh93/distinfo b/shells/ksh93/distinfo
new file mode 100644
index 00000000000..8b7466aebf2
--- /dev/null
+++ b/shells/ksh93/distinfo
@@ -0,0 +1,6 @@
+$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
diff --git a/shells/ksh93/patches/patch-src_lib_libast_features_syscall b/shells/ksh93/patches/patch-src_lib_libast_features_syscall
new file mode 100644
index 00000000000..3db5b15f8cf
--- /dev/null
+++ b/shells/ksh93/patches/patch-src_lib_libast_features_syscall
@@ -0,0 +1,32 @@
+$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