diff --git a/shells/ksh-devel/Makefile b/shells/ksh-devel/Makefile index e298cfb5a242..4936afe19d81 100644 --- a/shells/ksh-devel/Makefile +++ b/shells/ksh-devel/Makefile @@ -1,84 +1,85 @@ # Make sure that your configuration DOES NOT set ANY gcc-related # variables. ksh93 will not compile if you set even the seemingly # most unrelated variable related to gcc configuration. This means # especially any flag which attempts to set the cputype. Setting the # cputype does absolutely nothing except cause systems to fail in # horrible ways. For any modern processor, setting the cputype only # serves to expose gcc bugs and does nothing to speed up any known # program. If you are really unconvinced, go ahead but do not # complain to me about it. PORTNAME= ksh PORTVERSION= ${AST_COMMIT_DATE} +PORTREVISION= 1 CATEGORIES= shells PKGNAMESUFFIX= -devel MAINTAINER= cy@FreeBSD.org -COMMENT= Development branch of AT&T KornShell 93 +COMMENT= ksh93u+m is the development branch ksh93 based on AT&T ksh93u+ (stable) WWW= http://www.kornshell.com/ LICENSE= EPL BROKEN_aarch64= Fails to link: missing sbrk BROKEN_riscv64= Fails to link: missing sbrk BROKEN_FreeBSD_12= exit code 139 making lib/libcmd HASH= 72d895d8 AST_COMMIT_DATE= 2023.03.17 USES= compiler:c11 USE_GITHUB= yes GH_ACCOUNT= ksh93 GH_PROJECT= ksh GH_TAGNAME= ${HASH} # IMPORTANT: Disabling conflicts, i.e. -DDISABLE_CONFLICTS will result in # arcane build failures due to already installed ksh/ksh93 in # $PATH. KSH_CONFLICTS= pdksh KSH93_CONFLICTS= ksh93 ast-ksh KSH93D_CONFLICTS= ksh93 ast-ksh OPTIONS_DEFAULT= KSH93 EXAMPLES OPTIONS_DEFINE= EXAMPLES STATIC OPTIONS_SINGLE= BIN_KSH OPTIONS_SINGLE_BIN_KSH= KSH KSH93 KSH93D KSH_DESC= Install to ${PREFIX}/bin/ksh KSH93_DESC= Install to ${PREFIX}/bin/ksh93 KSH93D_DESC= Install to ${PREFIX}/bin/ksh93d (development) CFLAGS+= -DMAP_TYPE LDFLAGS+= -lm MAKE_ENV= CCFLAGS="-Wno-unused-value -Wno-parentheses -Wno-logical-op-parentheses" CFLAGS="${CFLAGS}" STATIC_MAKE_ENV= LDFLAGS+=-static KSH_PLIST_SUB= 93="" KSH93_PLIST_SUB= 93="93" KSH93D_PLIST_SUB= 93="93d" .include .if ${PORT_OPTIONS:MKSH93D} PSUFFIX= 93d .elif ${PORT_OPTIONS:MKSH93} PSUFFIX= 93 .endif post-patch: @${REINPLACE_CMD} -e 's|SF_FLAGS|SFIO_FLAGS|g' ${WRKSRC}/src/lib/libast/include/sfio*.h ${WRKSRC}/src/lib/libast/sfio/*.c do-build: @cd ${WRKSRC}/ && ${SETENV} -i ${MAKE_ENV} ${SH} bin/package flat make do-install: ${INSTALL_PROGRAM} ${WRKSRC}/bin/ksh ${STAGEDIR}${PREFIX}/bin/ksh${PSUFFIX} ${INSTALL_MAN} ${WRKSRC}/man/man1/sh.1 ${STAGEDIR}${MAN1PREFIX}/man/man1/ksh${PSUFFIX}.1 ${MKDIR} ${STAGEDIR}${EXAMPLESDIR}${PSUFFIX}/ cd ${WRKSRC}/fun/ && ${INSTALL_SCRIPT} dirs popd pushd ${STAGEDIR}${EXAMPLESDIR}${PSUFFIX}/ do-test: cd ${WRKSRC}/src/cmd/ksh93/tests/ && ${SETENV} SHELL=${WRKSRC}/bin/ksh ${WRKSRC}/bin/ksh shtests .include diff --git a/shells/ksh-devel/pkg-descr b/shells/ksh-devel/pkg-descr index 9daad3daf523..d732cc4a29f0 100644 --- a/shells/ksh-devel/pkg-descr +++ b/shells/ksh-devel/pkg-descr @@ -1,11 +1,15 @@ -KSH-93 is the most recent version of the KornShell Language described -in "The KornShell Command and Programming Language," by Morris -Bolsky and David Korn of AT&T Bell Laboratories. The KornShell is -a shell programming language, which is upward compatible with "sh" -(the Bourne Shell), and is intended to conform to the IEEE P1003.2/ISO -9945.2 Shell and Utilities standard. KSH-93 provides an enhanced -programming environment in addition to the major command-entry -features of the BSD shell "csh". With KSH-93, medium-sized programming -tasks can be performed at shell-level without a significant loss -in performance. In addition, "sh" scripts can be run on KSH-93 -without modification. +ksh93u+m is the ksh93 reboot aims to develop bugfixes to the last +stable release (93u+ 2012-08-01) of ksh93, formerly developed by +AT&T Software Technology (AST). 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. + +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. + +The shells/ksh-devel port tracks the develpment branch. diff --git a/shells/ksh/Makefile b/shells/ksh/Makefile index dd37fa96e3ca..8069330dcc2d 100644 --- a/shells/ksh/Makefile +++ b/shells/ksh/Makefile @@ -1,78 +1,78 @@ # Make sure that your configuration DOES NOT set ANY gcc-related # variables. ksh93 will not compile if you set even the seemingly # most unrelated variable related to gcc configuration. This means # especially any flag which attempts to set the cputype. Setting the # cputype does absolutely nothing except cause systems to fail in # horrible ways. For any modern processor, setting the cputype only # serves to expose gcc bugs and does nothing to speed up any known # program. If you are really unconvinced, go ahead but do not # complain to me about it. DISTVERSIONPREFIX= v PORTNAME= ksh PORTVERSION= 1.0.4 CATEGORIES= shells MAINTAINER= cy@FreeBSD.org -COMMENT= Development branch of AT&T KornShell 93 +COMMENT= ksh93u+m is the renewed development of ksh93 based on AT&T ksh93u+m (stable) WWW= http://www.kornshell.com/ LICENSE= EPL BROKEN_aarch64= Fails to link: missing sbrk BROKEN_riscv64= Fails to link: missing sbrk USES= compiler:c11 USE_GITHUB= yes GH_ACCOUNT= ksh93 GH_PROJECT= ksh # IMPORTANT: Disabling conflicts, i.e. -DDISABLE_CONFLICTS will result in # arcane build failures due to already installed ksh/ksh93 in # $PATH. KSH_CONFLICTS= pdksh KSH93_CONFLICTS= ksh93 ast-ksh ksh-devel OPTIONS_DEFAULT= KSH93 EXAMPLES OPTIONS_DEFINE= EXAMPLES STATIC OPTIONS_SINGLE= BIN_KSH OPTIONS_SINGLE_BIN_KSH= KSH KSH93 KSH93N KSH_DESC= Install to ${PREFIX}/bin/ksh KSH93_DESC= Install to ${PREFIX}/bin/ksh93 KSH93N_DESC= Install to ${PREFIX}/bin/ksh93n (new) CFLAGS+= -DMAP_TYPE LDFLAGS+= -lm MAKE_ENV= CCFLAGS="-Wno-unused-value -Wno-parentheses -Wno-logical-op-parentheses" CFLAGS="${CFLAGS}" STATIC_MAKE_ENV= LDFLAGS+=-static KSH_PLIST_SUB= 93="" KSH93_PLIST_SUB= 93="93" KSH93N_PLIST_SUB= 93="93n" .include .if ${PORT_OPTIONS:MKSH93N} PSUFFIX= 93n .elif ${PORT_OPTIONS:MKSH93} PSUFFIX= 93 .endif post-patch: @${REINPLACE_CMD} -e 's|SF_FLAGS|SFIO_FLAGS|g' ${WRKSRC}/src/lib/libast/include/sfio*.h ${WRKSRC}/src/lib/libast/sfio/*.c do-build: @cd ${WRKSRC}/ && ${SETENV} -i ${MAKE_ENV} ${SH} bin/package flat make do-install: ${INSTALL_PROGRAM} ${WRKSRC}/bin/ksh ${STAGEDIR}${PREFIX}/bin/ksh${PSUFFIX} ${INSTALL_MAN} ${WRKSRC}/man/man1/sh.1 ${STAGEDIR}${MAN1PREFIX}/man/man1/ksh${PSUFFIX}.1 ${MKDIR} ${STAGEDIR}${EXAMPLESDIR}${PSUFFIX}/ cd ${WRKSRC}/fun/ && ${INSTALL_SCRIPT} dirs popd pushd ${STAGEDIR}${EXAMPLESDIR}${PSUFFIX}/ do-test: cd ${WRKSRC}/src/cmd/ksh93/tests/ && ${SETENV} SHELL=${WRKSRC}/bin/ksh ${WRKSRC}/bin/ksh shtests .include diff --git a/shells/ksh/pkg-descr b/shells/ksh/pkg-descr index 9daad3daf523..aeb680f71aab 100644 --- a/shells/ksh/pkg-descr +++ b/shells/ksh/pkg-descr @@ -1,11 +1,15 @@ -KSH-93 is the most recent version of the KornShell Language described -in "The KornShell Command and Programming Language," by Morris -Bolsky and David Korn of AT&T Bell Laboratories. The KornShell is -a shell programming language, which is upward compatible with "sh" -(the Bourne Shell), and is intended to conform to the IEEE P1003.2/ISO -9945.2 Shell and Utilities standard. KSH-93 provides an enhanced -programming environment in addition to the major command-entry -features of the BSD shell "csh". With KSH-93, medium-sized programming -tasks can be performed at shell-level without a significant loss -in performance. In addition, "sh" scripts can be run on KSH-93 -without modification. +ksh93u+m is the ksh93 reboot aims to develop bugfixes to the last +stable release (93u+ 2012-08-01) of ksh93, formerly developed by +AT&T Software Technology (AST). 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. + +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. + +The shells/ksh port tracks releases. diff --git a/shells/ksh93/Makefile b/shells/ksh93/Makefile index 99f597269aee..58c4e51f88a2 100644 --- a/shells/ksh93/Makefile +++ b/shells/ksh93/Makefile @@ -1,85 +1,85 @@ # Make sure that your configuration DOES NOT set ANY gcc-related # variables. ksh93 will not compile if you set even the seemingly # most unrelated variable related to gcc configuration. This means # especially any flag which attempts to set the cputype. Setting the # cputype does absolutely nothing except cause systems to fail in # horrible ways. For any modern processor, setting the cputype only # serves to expose gcc bugs and does nothing to speed up any known # program. If you are really unconvinced, go ahead but do not # complain to me about it. # Do not update this port to 93v. 93v was an abandoned beta when # David Korn left the project. It was subsequently reverted to 93u. # https://github.com/att/ast/issues/1466#issuecomment-589942449 PORTNAME= ksh93 DISTVERSION= 93u -PORTREVISION= 2 +PORTREVISION= 3 PORTEPOCH= 2 CATEGORIES= shells DIST_SUBDIR= ksh93 MAINTAINER= cy@FreeBSD.org -COMMENT= AT&T KornShell 93 +COMMENT= AT&T KornShell ksh93u+ 2012-08-01 (stable) version WWW= http://www.kornshell.com/ LICENSE= EPL USES= compiler:c11 USE_GITHUB= yes GH_ACCOUNT= att GH_PROJECT= ast KSH_CONFLICTS= pdksh KSH93_CONFLICTS= ksh93-devel ast-ksh OPTIONS_DEFAULT= KSH93 EXAMPLES OPTIONS_DEFINE= EXAMPLES STATIC OPTIONS_SINGLE= BIN_KSH OPTIONS_SINGLE_BIN_KSH= KSH KSH93 KSH93L KSH_DESC= Install to ${PREFIX}/bin/ksh KSH93_DESC= Install to ${PREFIX}/bin/ksh93 KSH93L_DESC= Install to ${PREFIX}/bin/ksh93l (legacy) CFLAGS+= -DMAP_TYPE LDFLAGS+= -lm MAKE_ENV= CCFLAGS="-Wno-unused-value -Wno-parentheses -Wno-logical-op-parentheses -Wno-int-conversion" CFLAGS="${CFLAGS}" STATIC_MAKE_ENV= LDFLAGS+=-static KSH_PLIST_SUB= 93="" KSH93_PLIST_SUB= 93="93" KSH93L_PLIST_SUB= 93="93l" .include .if ${CHOSEN_COMPILER_TYPE} == gcc && ${COMPILER_VERSION} >= 90 BROKEN= GCC 9.1 changes the output of `gcc -E` which breaks the conf.sh script, fixed in shells/ksh93-devel .endif .if ${PORT_OPTIONS:MKSH93L} PNAME= ksh93l PSUFFIX= l .elif ${PORT_OPTIONS:MKSH93} PNAME= ksh93 .else PNAME= ksh .endif post-patch: @${REINPLACE_CMD} -e 's|SF_FLAGS|SFIO_FLAGS|g' ${WRKSRC}/src/lib/libast/include/sfio*.h ${WRKSRC}/src/lib/libast/sfio/*.c do-build: @cd ${WRKSRC}/ && ${SETENV} -i ${MAKE_ENV} ${SH} bin/package flat make ksh93 do-install: ${INSTALL_PROGRAM} ${WRKSRC}/bin/ksh ${STAGEDIR}${PREFIX}/bin/${PNAME} ${INSTALL_MAN} ${WRKSRC}/man/man1/sh.1 ${STAGEDIR}${MAN1PREFIX}/man/man1/${PNAME}.1 ${MKDIR} ${STAGEDIR}${EXAMPLESDIR}${PSUFFIX}/ cd ${WRKSRC}/fun/ && ${INSTALL_SCRIPT} dirs popd pushd ${STAGEDIR}${EXAMPLESDIR}${PSUFFIX}/ do-test: cd ${WRKSRC}/src/cmd/ksh93/tests/ && ${SETENV} SHELL=${WRKSRC}/bin/ksh ${WRKSRC}/bin/ksh shtests .include diff --git a/shells/ksh93/pkg-descr b/shells/ksh93/pkg-descr index 9daad3daf523..8bb878750577 100644 --- a/shells/ksh93/pkg-descr +++ b/shells/ksh93/pkg-descr @@ -1,11 +1,11 @@ -KSH-93 is the most recent version of the KornShell Language described -in "The KornShell Command and Programming Language," by Morris -Bolsky and David Korn of AT&T Bell Laboratories. The KornShell is -a shell programming language, which is upward compatible with "sh" +ksh93u+ is the 2012-08-01 (stable) version of the KornShell Language +described in "The KornShell Command and Programming Language," by +Morris Bolsky and David Korn of AT&T Bell Laboratories. The KornShell +is a shell programming language, which is upward compatible with "sh" (the Bourne Shell), and is intended to conform to the IEEE P1003.2/ISO -9945.2 Shell and Utilities standard. KSH-93 provides an enhanced +9945.2 Shell and Utilities standard. ksh93u+ provides an enhanced programming environment in addition to the major command-entry -features of the BSD shell "csh". With KSH-93, medium-sized programming +features of the BSD shell "csh". With ksh93u+, medium-sized programming tasks can be performed at shell-level without a significant loss -in performance. In addition, "sh" scripts can be run on KSH-93 +in performance. In addition, "sh" scripts can be run on ksh93u+ without modification.