Here's an update for shells/tcsh to 6.21.00, which came out in May. People who actually use tcsh--I don't--might want to give it a try.
A number of regression tests used to fail because the built-in echo in our sh always interprets backslash sequences. The switch to the latest autoconf has fixed those tests. The remaining failures are a kernel issue regarding execve(2), see tech@, and two that are due to the lack of a home directory in the test environment. Setting HOME=${WRKDIR} in TEST_FLAGS would work around this for one test, but the other one still stumbles over the discrepancy between $HOME and getpwent(), so I've left it as is. The existing port installs a number of message catalogs for translated error messages. The directory names, such as fr_FR.ISO_8859-1, suggest encodings that OpenBSD no longer supports. This is doubly wrong. It turns out that the actual files have switched to UTF-8 encoding at some point in the past, but apparently nobody noticed. Eliciting translated error messages from tcsh proves to be difficult. The code uses the POSIX catopen(3) interface. This does not have a default path for the catalogs. The user MUST set a search path by way of the NLSPATH variable. Since this is not part of the default OpenBSD environment, the chance of users actually managing to enable the translations are slim. I had to look at the POSIX standard and the libc source to figure it out. I've consulted schwarze@, and since catopen(3) is terrible and only used by three crufty ports, he suggested that we should simply stop installing those message catalogs. Obviously nobody has missed them in years, if ever, and the patch below drops them. Comments, OKs, preferably from people who use tcsh? Index: Makefile =================================================================== RCS file: /cvs/ports/shells/tcsh/Makefile,v retrieving revision 1.60 diff -u -p -r1.60 Makefile --- Makefile 12 Jul 2019 20:49:38 -0000 1.60 +++ Makefile 1 Dec 2019 16:18:39 -0000 @@ -2,8 +2,7 @@ COMMENT= extended C-shell with many useful features -DISTNAME= tcsh-6.20.00 -REVISION= 1 +DISTNAME= tcsh-6.21.00 CATEGORIES= shells HOMEPAGE= http://www.tcsh.org/ @@ -23,34 +22,15 @@ CONFIGURE_ENV= LDFLAGS="${STATIC}" .endif CONFIGURE_STYLE=gnu +# obsolete catopen(3) message catalogs +CONFIGURE_ARGS+=--disable-nls-catalogs -AUTOCONF_VERSION=2.59 +AUTOCONF_VERSION=2.69 TEST_DEPENDS= ${MODGNU_AUTOCONF_DEPENDS} TEST_FLAGS= AUTOCONF_VERSION=${AUTOCONF_VERSION} do-install: ${INSTALL_PROGRAM} ${WRKSRC}/tcsh ${PREFIX}/bin/tcsh ${INSTALL_MAN} ${WRKSRC}/tcsh.man ${PREFIX}/man/man1/tcsh.1 -.for S D in \ - C C \ - et et_EE.ISO-8859-1 \ - finnish fi_FI.ISO_8859-1 \ - french fr_BE.ISO_8859-1 \ - french fr_CA.ISO_8859-1 \ - french fr_CH.ISO_8859-1 \ - french fr_FR.ISO_8859-1 \ - german de_AT.ISO_8859-1 \ - german de_CH.ISO_8859-1 \ - german de_DE.ISO_8859-1 \ - greek el_GR.ISO_8859-7 \ - italian it_CH.ISO_8859-1 \ - italian it_IT.ISO_8859-1 \ - ja ja_JP.EUC \ - pl pl_PL.ISO_8859-2 \ - russian ru_RU.KOI8-R \ - spanish es_ES.ISO_8859-1 \ - ukrainian uk_UA.KOI8-U - ${INSTALL_DATA} ${WRKSRC}/nls/$S.cat ${PREFIX}/share/nls/$D/tcsh.cat -.endfor .include <bsd.port.mk> Index: distinfo =================================================================== RCS file: /cvs/ports/shells/tcsh/distinfo,v retrieving revision 1.12 diff -u -p -r1.12 distinfo --- distinfo 17 Feb 2018 08:42:08 -0000 1.12 +++ distinfo 1 Dec 2019 16:18:39 -0000 @@ -1,2 +1,2 @@ -SHA256 (tcsh-6.20.00.tar.gz) = uJ3nBkq1TaxFSiZs/l2L9mlAy17QSNDDBnTqYufs750= -SIZE (tcsh-6.20.00.tar.gz) = 1001696 +SHA256 (tcsh-6.21.00.tar.gz) = xDgyVEg3H1mxKkyTv9P2mC5vefjFrvS8g6rI9idm6XI= +SIZE (tcsh-6.21.00.tar.gz) = 1001909 Index: patches/patch-sh_func_c =================================================================== RCS file: patches/patch-sh_func_c diff -N patches/patch-sh_func_c --- patches/patch-sh_func_c 10 Sep 2018 16:23:27 -0000 1.3 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,33 +0,0 @@ -$OpenBSD: patch-sh_func_c,v 1.3 2018/09/10 16:23:27 sthen Exp $ - -From d8b47bd1934d1d9cb603e562b149bba2816d90ca Mon Sep 17 00:00:00 2001 -From: Christos Zoulas <chris...@zoulas.com> -Date: Mon, 28 Nov 2016 17:14:20 +0000 -Subject: [PATCH] Fix type of read in prompt confirmation (eg. rmstar) (David - Kaspar) - -Index: sh.func.c ---- sh.func.c.orig -+++ sh.func.c -@@ -2734,16 +2734,18 @@ nlsclose(void) - int - getYN(const char *prompt) - { -- int doit, c; -+ int doit; -+ char c; -+ - xprintf("%s", prompt); - flush(); -- (void) force_read(SHIN, &c, 1); -+ (void) force_read(SHIN, &c, sizeof(c)); - /* - * Perhaps we should use the yesexpr from the - * actual locale - */ - doit = (strchr(CGETS(22, 14, "Yy"), c) != NULL); -- while (c != '\n' && force_read(SHIN, &c, 1) == 1) -+ while (c != '\n' && force_read(SHIN, &c, sizeof(c)) == sizeof(c)) - continue; - return doit; - } Index: pkg/PLIST =================================================================== RCS file: /cvs/ports/shells/tcsh/pkg/PLIST,v retrieving revision 1.13 diff -u -p -r1.13 PLIST --- pkg/PLIST 31 May 2016 12:11:34 -0000 1.13 +++ pkg/PLIST 1 Dec 2019 16:18:39 -0000 @@ -1,21 +1,3 @@ @comment $OpenBSD: PLIST,v 1.13 2016/05/31 12:11:34 sthen Exp $ @shell bin/tcsh @man man/man1/tcsh.1 -share/nls/C/tcsh.cat -share/nls/de_AT.ISO_8859-1/tcsh.cat -share/nls/de_CH.ISO_8859-1/tcsh.cat -share/nls/de_DE.ISO_8859-1/tcsh.cat -share/nls/el_GR.ISO_8859-7/tcsh.cat -share/nls/es_ES.ISO_8859-1/tcsh.cat -share/nls/et_EE.ISO-8859-1/tcsh.cat -share/nls/fi_FI.ISO_8859-1/tcsh.cat -share/nls/fr_BE.ISO_8859-1/tcsh.cat -share/nls/fr_CA.ISO_8859-1/tcsh.cat -share/nls/fr_CH.ISO_8859-1/tcsh.cat -share/nls/fr_FR.ISO_8859-1/tcsh.cat -share/nls/it_CH.ISO_8859-1/tcsh.cat -share/nls/it_IT.ISO_8859-1/tcsh.cat -share/nls/ja_JP.EUC/tcsh.cat -share/nls/pl_PL.ISO_8859-2/tcsh.cat -share/nls/ru_RU.KOI8-R/tcsh.cat -share/nls/uk_UA.KOI8-U/tcsh.cat -- Christian "naddy" Weisgerber na...@mips.inka.de