diff options
author | pin <pin@pkgsrc.org> | 2022-07-03 20:57:38 +0000 |
---|---|---|
committer | pin <pin@pkgsrc.org> | 2022-07-03 20:57:38 +0000 |
commit | e7a71fb626faecfc3f66888fb76567a5d78c60e0 (patch) | |
tree | 69c20e323eb62fdd4f852e82b122d2850c0c9d90 /shells/ksh93 | |
parent | 5960aab56f1d4e2f83a6e62a6deda183d3b120dd (diff) | |
download | pkgsrc-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/DESCR | 12 | ||||
-rw-r--r-- | shells/ksh93/Makefile | 51 | ||||
-rw-r--r-- | shells/ksh93/PLIST | 3 | ||||
-rw-r--r-- | shells/ksh93/distinfo | 6 | ||||
-rw-r--r-- | shells/ksh93/patches/patch-src_lib_libast_features_syscall | 32 |
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 |