This updates ksh93 to the actively maintained development branch at
https://github.com/ksh93/ksh/.  Although it's still labelled as "beta",
it is most definitely an improvement from the nine-year-old AT&T release
we have now, so I'd like to commit the update.

It also fixes the va_args problem seen on powerpc.


Index: Makefile
===================================================================
RCS file: /cvs/ports/shells/ksh93/Makefile,v
retrieving revision 1.12
diff -u -p -r1.12 Makefile
--- Makefile    20 Feb 2021 20:15:29 -0000      1.12
+++ Makefile    21 Dec 2021 19:28:43 -0000
@@ -1,20 +1,16 @@
 # $OpenBSD: Makefile,v 1.12 2021/02/20 20:15:29 cwen Exp $
 
-# error: non-const lvalue reference to type '__builtin_va_list' cannot bind to
-# a temporary of type 'va_list' (aka 'char *')
-BROKEN-powerpc64 =     libast fails to build on hashalloc.c/tokscan.c
-BROKEN-powerpc =       libast fails to build on hashalloc.c/tokscan.c
-
 COMMENT =              AT&T Korn Shell
 
-V =                    2012-08-01
-DISTNAME =             ast-ksh.${V}
-PKGNAME =              ksh93-${V:S/-//g}
-REVISION =             1
+GH_ACCOUNT =           ksh93
+GH_PROJECT =           ksh
+GH_TAGNAME =           v1.0.0-beta.2
+PKGNAME =              ksh93-1.0.0beta2
+EPOCH =                        0
 
 CATEGORIES =           shells
 
-HOMEPAGE =             http://www.kornshell.com/
+HOMEPAGE =             https://github.com/ksh93/ksh
 
 MAINTAINER =           Pascal Stumpf <pas...@stumpf.co>
 
@@ -23,28 +19,18 @@ PERMIT_PACKAGE =    Yes
 
 WANTLIB += c m util
 
-MASTER_SITES =         https://spacehopper.org/mirrors/
-DISTFILES =            ${DISTNAME}${EXTRACT_SUFX} INIT.${V}${EXTRACT_SUFX}
-EXTRACT_SUFX =         .tgz
-DIST_SUBDIR =          ksh93
-
-MAKE_ENV =             CC="${CC}" CCFLAGS="${CFLAGS}" SHELL=/bin/sh \
-                       TMPDIR="${WRKDIR}"
+MAKE_ENV =             CC="${CC}" CCFLAGS="${CFLAGS}" LDFLAGS="-lm" \
+                       SHELL=/bin/sh TMPDIR="${WRKDIR}"
 
 USE_GROFF =            Yes
 
-WRKDIST =              ${WRKDIR}
-.if ${MACHINE_ARCH} == "hppa"
-AST_ARCH =             ${WRKSRC}/arch/openbsd.pa
-.elif ${MACHINE_ARCH} == "powerpc"
-AST_ARCH =             ${WRKSRC}/arch/openbsd.ppc
-.else
-AST_ARCH =             ${WRKSRC}/arch/openbsd.${MACHINE_ARCH}
-.endif
+HOSTTYPE =             openbsd.${MACHINE_ARCH}
+AST_ARCH =             ${WRKSRC}/arch/${HOSTTYPE}
 AST_INC =              ${AST_ARCH}/include/ast
 
 do-build:
-       cd ${WRKSRC} && env -i ${MAKE_ENV} /bin/sh bin/package make
+       cd ${WRKSRC} && env -i ${MAKE_ENV} /bin/sh bin/package make \
+               HOSTTYPE="${HOSTTYPE}"
 
 do-install:
        ${INSTALL_PROGRAM} ${AST_ARCH}/bin/ksh ${PREFIX}/bin/ksh93
Index: distinfo
===================================================================
RCS file: /cvs/ports/shells/ksh93/distinfo,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 distinfo
--- distinfo    13 Oct 2012 15:11:51 -0000      1.1.1.1
+++ distinfo    21 Dec 2021 19:28:43 -0000
@@ -1,4 +1,2 @@
-SHA256 (ksh93/INIT.2012-08-01.tgz) = 
xAz1fpshhicanDYqVgqkpuJbqRGoJYq5MdK7285Ez+U=
-SHA256 (ksh93/ast-ksh.2012-08-01.tgz) = 
5hks+lKmqf0gYYy68/qB8Myf2DUlUAdX6DAXJ16WKFE=
-SIZE (ksh93/INIT.2012-08-01.tgz) = 377769
-SIZE (ksh93/ast-ksh.2012-08-01.tgz) = 2053532
+SHA256 (ksh-1.0.0-beta.2.tar.gz) = 2GeNI8PJYzoD5PyJXmBM3Qry/wBtAmhXmzopvt37hGM=
+SIZE (ksh-1.0.0-beta.2.tar.gz) = 2238224
Index: patches/patch-bin_package
===================================================================
RCS file: patches/patch-bin_package
diff -N patches/patch-bin_package
--- patches/patch-bin_package   13 Oct 2012 15:11:51 -0000      1.1.1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,21 +0,0 @@
-$OpenBSD: patch-bin_package,v 1.1.1.1 2012/10/13 15:11:51 pascal Exp $
---- bin/package.orig   Fri Aug 10 21:22:28 2012
-+++ bin/package        Fri Aug 10 21:23:14 2012
-@@ -2823,7 +2823,7 @@ cat $INITROOT/$i.sh
-                       # check if $CC (full path $cc) is a cross compiler
- 
-                       (
--                              cd /tmp || exit 3
-+                              cd ${TMPDIR:-/tmp} || exit 3
-                               cp $INITROOT/hello.c pkg$$.c || exit 3
-                               $cc -o pkg$$.exe pkg$$.c > pkg$$.e 2>&1 || {
-                                       if $cc -Dnew=old -o pkg$$.exe pkg$$.c > 
/dev/null 2>&1
-@@ -3193,7 +3193,7 @@ cygwin.*)
-               lose=ntsec
-               ;;
-       *ntsec*);;
--      *)      exe=/tmp/pkg$$.exe
-+      *)      exe=${TMPDIR:-/tmp}/pkg$$.exe
-               rm -f $exe
-               : > $exe
-               if      test -x $exe
Index: patches/patch-src_cmd_ksh93_Mamfile
===================================================================
RCS file: patches/patch-src_cmd_ksh93_Mamfile
diff -N patches/patch-src_cmd_ksh93_Mamfile
--- patches/patch-src_cmd_ksh93_Mamfile 1 May 2018 08:37:50 -0000       1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,23 +0,0 @@
-$OpenBSD: patch-src_cmd_ksh93_Mamfile,v 1.1 2018/05/01 08:37:50 pascal Exp $
-
-Index: src/cmd/ksh93/Mamfile
---- src/cmd/ksh93/Mamfile.orig
-+++ src/cmd/ksh93/Mamfile
-@@ -1337,7 +1337,7 @@ prev +ljobs
- prev +li
- prev ${mam_libsocket}
- prev ${mam_libsecdb}
--exec - ${CC} ${CCLDFLAGS} ${mam_cc_FLAGS} ${CCFLAGS} ${LDFLAGS} 
${mam_cc_L+-L.} ${mam_cc_L+-L${INSTALLROOT}/lib} -o ksh pmain.o ${mam_libshell} 
${mam_libnsl} ${mam_libast}
-+exec - ${CC} ${CCLDFLAGS} ${mam_cc_FLAGS} ${CCFLAGS} ${LDFLAGS} 
${mam_cc_L+-L.} ${mam_cc_L+-L${INSTALLROOT}/lib} -o ksh pmain.o ${mam_libshell} 
${mam_libnsl} ${mam_libast} -lm
- done ksh generated
- make shcomp
- make shcomp.o
-@@ -1361,7 +1361,7 @@ prev ${mam_libsocket}
- prev ${mam_libsecdb}
- setv CC.DLL -UCC.DLL
- setv SH_DICT -DSH_DICT="\"libshell\""
--exec - ${CC} ${CCLDFLAGS} ${mam_cc_FLAGS} ${CCFLAGS} ${LDFLAGS} 
${mam_cc_L+-L.} ${mam_cc_L+-L${INSTALLROOT}/lib} -o shcomp shcomp.o 
${mam_libshell} ${mam_libnsl} ${mam_libast}
-+exec - ${CC} ${CCLDFLAGS} ${mam_cc_FLAGS} ${CCFLAGS} ${LDFLAGS} 
${mam_cc_L+-L.} ${mam_cc_L+-L${INSTALLROOT}/lib} -o shcomp shcomp.o 
${mam_libshell} ${mam_libnsl} ${mam_libast} -lm
- done shcomp generated
- make suid_exec
- make suid_exec.o
Index: patches/patch-src_cmd_ksh93_edit_history_c
===================================================================
RCS file: patches/patch-src_cmd_ksh93_edit_history_c
diff -N patches/patch-src_cmd_ksh93_edit_history_c
--- patches/patch-src_cmd_ksh93_edit_history_c  11 Jul 2014 20:55:40 -0000      
1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,12 +0,0 @@
-$OpenBSD: patch-src_cmd_ksh93_edit_history_c,v 1.1 2014/07/11 20:55:40 pascal 
Exp $
---- src/cmd/ksh93/edit/history.c.orig  Fri Jul 11 10:03:31 2014
-+++ src/cmd/ksh93/edit/history.c       Fri Jul 11 10:04:59 2014
-@@ -834,7 +834,7 @@ static int hist_write(Sfio_t *iop,const void *buff,reg
-       if(hp->auditfp)
-       {
-               time_t  t=time((time_t*)0);
--              
sfprintf(hp->auditfp,"%u;%u;%s;%*s%c",sh_isoption(SH_PRIVILEGED)?shgd->euserid:shgd->userid,t,hp->tty,size,buff,0);
-+              
sfprintf(hp->auditfp,"%u;%llu;%s;%*s%c",sh_isoption(SH_PRIVILEGED)?shgd->euserid:shgd->userid,t,hp->tty,size,buff,0);
-               sfsync(hp->auditfp);
-       }
- #endif        /* SHOPT_AUDIT */
Index: patches/patch-src_lib_libast_hash_hashalloc_c
===================================================================
RCS file: patches/patch-src_lib_libast_hash_hashalloc_c
diff -N patches/patch-src_lib_libast_hash_hashalloc_c
--- patches/patch-src_lib_libast_hash_hashalloc_c       11 Aug 2017 12:35:48 
-0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,27 +0,0 @@
-$OpenBSD: patch-src_lib_libast_hash_hashalloc_c,v 1.1 2017/08/11 12:35:48 
sthen Exp $
-
-From libast beta repo, via FreeBSD.
-
-https://github.com/att/ast/blob/beta/src/lib/libast/hash/hashalloc.c
-https://github.com/att/ast/blob/beta/src/lib/libast/string/tokscan.c
-
-Index: src/lib/libast/hash/hashalloc.c
---- src/lib/libast/hash/hashalloc.c.orig
-+++ src/lib/libast/hash/hashalloc.c
-@@ -151,7 +151,16 @@ hashalloc(Hash_table_t* ref, ...)
-                               va_copy(*vp, ap);
-                               vp++;
-                       }
-+#if __clang__ && __SIZEOF_POINTER__ == 4
-+                      {
-+                              va_list         np;
-+
-+                              np = va_listval(va_arg(ap, va_listarg));
-+                              va_copy(ap, np);
-+                      }
-+#else
-                       va_copy(ap, va_listval(va_arg(ap, va_listarg)));
-+#endif
-                       break;
-               case 0:
-                       if (vp > va)
Index: patches/patch-src_lib_libast_string_tokscan_c
===================================================================
RCS file: patches/patch-src_lib_libast_string_tokscan_c
diff -N patches/patch-src_lib_libast_string_tokscan_c
--- patches/patch-src_lib_libast_string_tokscan_c       11 Aug 2017 12:35:48 
-0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,27 +0,0 @@
-$OpenBSD: patch-src_lib_libast_string_tokscan_c,v 1.1 2017/08/11 12:35:48 
sthen Exp $
-
-From libast beta repo, via FreeBSD.
-
-https://github.com/att/ast/blob/beta/src/lib/libast/hash/hashalloc.c
-https://github.com/att/ast/blob/beta/src/lib/libast/string/tokscan.c
-
-Index: src/lib/libast/string/tokscan.c
---- src/lib/libast/string/tokscan.c.orig
-+++ src/lib/libast/string/tokscan.c
-@@ -233,7 +233,16 @@ tokscan(register char* s, char** nxt, const char* fmt,
-                       prv_f = f;
-                       f = va_arg(ap, char*);
-                       va_copy(prv_ap, ap);
-+#if __clang__ && __SIZEOF_POINTER__ == 4
-+                      {
-+                              va_list         np;
-+
-+                              np = va_listval(va_arg(ap, va_listarg));
-+                              va_copy(ap, np);
-+                      }
-+#else
-                       va_copy(ap, va_listval(va_arg(ap, va_listarg)));
-+#endif
-                       continue;
-               case 'c':
-                       p_char = va_arg(ap, char*);
Index: pkg/PLIST
===================================================================
RCS file: /cvs/ports/shells/ksh93/pkg/PLIST,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 PLIST
--- pkg/PLIST   13 Oct 2012 15:11:51 -0000      1.1.1.1
+++ pkg/PLIST   21 Dec 2021 19:28:43 -0000
@@ -43,9 +43,9 @@ include/ast/prototyped.h
 include/ast/sfio.h
 include/ast/sfio_s.h
 include/ast/shell.h
-lib/libast.a
-lib/libcmd.a
-lib/libshell.a
+@static-lib lib/libast.a
+@static-lib lib/libcmd.a
+@static-lib lib/libshell.a
 @man man/man1/ksh93.1
 @man man/man1/rksh93.1
 @man man/man3/shell.3

Reply via email to