diff --git a/groups.d/211.native_packages_cmdline.d/tcsh.package b/groups.d/211.native_packages_cmdline.d/tcsh.package
index 4a62602..58663c3 100644
--- a/groups.d/211.native_packages_cmdline.d/tcsh.package
+++ b/groups.d/211.native_packages_cmdline.d/tcsh.package
@@ -1,6 +1,6 @@
 : ${PKG_TCSH_DEPENDS:="ncurses libiconv"};
-: ${PKG_TCSH_SHA256SUM:=e3270ce9667fd5bd2a046687659fcf5fd6a6781326f806ebd724f1e1c9cd4185};
-: ${PKG_TCSH_VERSION:=6.24.12};
+: ${PKG_TCSH_SHA256SUM:=36880f258a63fc11fe72a65098b585ebc4ecdee24388b8ebec97e6ae8e485318};
+: ${PKG_TCSH_VERSION:=6.24.14};
 : ${PKG_TCSH_URL:=https://ftp.osuosl.org/pub/blfs/conglomeration/tcsh/tcsh-${PKG_TCSH_VERSION}.tar.gz};
 
 ex_pkg_register "tcsh" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
diff --git a/patches/tcsh-6.24.12.local.patch b/patches/tcsh-6.24.12.local.patch
deleted file mode 100644
index 2e9fbd2..0000000
--- a/patches/tcsh-6.24.12.local.patch
+++ /dev/null
@@ -1,225 +0,0 @@
-diff -ru tcsh-6.24.07.orig/configure tcsh-6.24.07/configure
---- tcsh-6.24.07.orig/configure 2022-12-21 20:44:53.000000000 +0100
-+++ tcsh-6.24.07/configure      2022-12-27 12:27:29.897963800 +0100
-@@ -6171,6 +6171,10 @@
-   *-qnx6*) :
-         tcsh_config_file=qnx6
-    ;; #(
-+  ## Midipix
-+  *-midipix*) :
-+        tcsh_config_file=midipix
-+   ;; #(
-   *) :
-     as_fn_error $? "Tcsh can't guess the configuration file name
- for \`${host}' systems.
---- tcsh-6.24.10/Makefile.in.orig	2023-04-14 13:52:38.000000000 +0200
-+++ tcsh-6.24.10/Makefile.in	2024-01-13 10:48:11.122576967 +0100
-@@ -431,6 +431,7 @@
- #CC=	cc	-h0,ansi,novector,float0
- #CC=	lcc	-wa 
- CC_FOR_GETHOST = @CC_FOR_GETHOST@
-+CPPFLAGS_FOR_GETHOST=-I. -I$(srcdir)
- ED=	ed
- AS=	as
- RM=	rm
-@@ -506,11 +507,11 @@
- #	emxbind tcsh
- 
- gethost.${SUF}: gethost.c sh.err.h tc.const.h sh.h
--	${CC_FOR_GETHOST} ${CF} ${CPPFLAGS} ${CFLAGS} $(srcdir)/gethost.c
-+	${CC_FOR_GETHOST} ${CF} ${CPPFLAGS_FOR_GETHOST} ${CFLAGS_FOR_GETHOST} $(srcdir)/gethost.c
- 
- gethost:  gethost.${SUF}
- 	rm -f gethost
--	${CC_FOR_GETHOST} -o gethost ${CPPFLAGS} ${CFLAGS} ${LDFLAGS} gethost.${SUF}
-+	${CC_FOR_GETHOST} -o gethost ${CPPFLAGS_FOR_GETHOST} ${CFLAGS_FOR_GETHOST} ${LDFLAGS_FOR_GETHOST} gethost.${SUF}
- 
- tc.defs.c:	gethost host.defs
- 	@rm -f $@.tmp
-@@ -595,7 +596,7 @@
- 	@echo '/* Do not edit this file, make creates it. */' > $@.tmp
- 	@echo '#ifndef _h_tc_const' >> $@.tmp
- 	@echo '#define _h_tc_const' >> $@.tmp
--	${CPP} $(CPPFLAGS) ${DFLAGS} ${EXTRAFLAGS} -D_h_tc_const\
-+	${CPP} $(CFLAGS) $(CPPFLAGS) ${DFLAGS} ${EXTRAFLAGS} -D_h_tc_const\
- 	    $(srcdir)/tc.const.c | \
- 	    sed -n -e 's/^\(Char STR[a-zA-Z0-9_]*\) *\[ *\].*/extern \1[];/p' | \
- 	    LC_COLLATE=C sort >> $@.tmp
-diff -ru tcsh-6.23.02.orig/config_f.h tcsh-6.23.02/config_f.h
---- tcsh-6.23.02.orig/config_f.h        2022-01-03 09:03:03.000000000 +0100
-+++ tcsh-6.23.02/config_f.h     2022-02-01 11:36:23.327968800 +0100
-@@ -149,7 +149,7 @@
-  *             This can be much slower and no memory statistics will be
-  *             provided.
-  */
--#if defined(__MACHTEN__) || defined(PURIFY) || defined(MALLOC_TRACE) || defined(_OSD_POSIX) || defined(__MVS__) || defined (__CYGWIN__) || defined(__GLIBC__) || defined(__OpenBSD__) || defined(__APPLE__) || defined (__ANDROID__) || defined(__NetBSD__) || !defined(HAVE_WORKING_SBRK)
-+#if defined(__MACHTEN__) || defined(PURIFY) || defined(MALLOC_TRACE) || defined(_OSD_POSIX) || defined(__MVS__) || defined (__CYGWIN__) || defined(__GLIBC__) || defined(__OpenBSD__) || defined(__APPLE__) || defined (__ANDROID__) || defined(__NetBSD__) || defined(__midipix__) || !defined(HAVE_WORKING_SBRK)
- # define SYSMALLOC
- #else
- # undef SYSMALLOC
-diff -Nru tcsh-6.22.00.orig/config/midipix tcsh-6.22.00/config/midipix
---- tcsh-6.22.00.orig/system/midipix	1970-01-01 01:00:00.000000000 +0100
-+++ tcsh-6.22.00/system/midipix	2020-08-21 19:12:56.066600827 +0200
-@@ -0,0 +1,138 @@
-+/*
-+ * config.h -- configure various defines for tcsh
-+ *
-+ * All source files should #include this FIRST.
-+ *
-+ * This is the config file for midipix systems
-+ */
-+
-+#ifndef _h_config
-+#define _h_config
-+/****************** System dependant compilation flags ****************/
-+/*
-+ * POSIX	This system supports IEEE Std 1003.1-1988 (POSIX).
-+ */
-+#define POSIX
-+
-+/*
-+ * POSIXJOBS	This system supports the optional IEEE Std 1003.1-1988 (POSIX)
-+ *		job control facilities.
-+ */
-+#define POSIXJOBS
-+
-+/*
-+ * VFORK	This machine has a vfork().  
-+ *		It used to be that for job control to work, this define
-+ *		was mandatory. This is not the case any more.
-+ *		If you think you still need it, but you don't have vfork, 
-+ *		define this anyway and then do #define vfork fork.  
-+ *		I do this anyway on a Sun because of yellow pages brain damage,
-+ *		[should not be needed under 4.1]
-+ *		and on the iris4d cause	SGI's fork is sufficiently "virtual" 
-+ *		that vfork isn't necessary.  (Besides, SGI's vfork is weird).
-+ *		Note that some machines eg. rs6000 have a vfork, but not
-+ *		with the berkeley semantics, so we cannot use it there either.
-+ */
-+#undef VFORK
-+
-+/*
-+ * BSDJOBS	You have BSD-style job control (both process groups and
-+ *		a tty that deals correctly
-+ */
-+#define BSDJOBS
-+
-+/*
-+ * BSDTIMES	You have BSD-style process time stuff (like rusage)
-+ *		This may or may not be true.  For example, Apple Unix
-+ *		(OREO) has BSDJOBS but not BSDTIMES.
-+ */
-+#define BSDTIMES
-+
-+/*
-+ * BSDLIMIT	You have BSD-style resource limit stuff (getrlimit/setrlimit)
-+ */
-+#define BSDLIMIT
-+
-+/*
-+ * TERMIO	You have struct termio instead of struct sgttyb.
-+ * 		This is usually the case for SVID systems, where
-+ *		BSD uses sgttyb. POSIX systems should define this
-+ *		anyway, even though they use struct termios.
-+ */
-+#define TERMIO
-+
-+/*
-+ * SYSVREL	Your machine is SYSV based (HPUX, A/UX)
-+ *		NOTE: don't do this if you are on a Pyramid -- tcsh is
-+ *		built in a BSD universe.
-+ *		Set SYSVREL to 1, 2, 3, or 4, depending the version of System V
-+ *		you are running. Or set it to 0 if you are not SYSV based
-+ *
-+ *		Note: Linux should work with any SYSVREL < 3.
-+ */
-+#define SYSVREL	2
-+
-+/*
-+ * YPBUGS	Work around Sun YP bugs that cause expansion of ~username
-+ *		to send command output to /dev/null
-+ */
-+#undef YPBUGS
-+
-+/*
-+ * Get the name space we want.
-+ *
-+ * The more recent defaults for gcc (e.g. on Red Hat 7.0)
-+ * also define _POSIX_C_SOURCE, which throws our code off.
-+ */
-+
-+#define __STRICT_ANSI__
-+#ifndef _BSD_SOURCE
-+# define _BSD_SOURCE
-+#endif
-+#ifndef _SVID_SOURCE
-+# define _SVID_SOURCE
-+#endif
-+#ifndef _POSIX_SOURCE
-+# define _POSIX_SOURCE
-+#endif
-+#ifndef _XOPEN_SOURCE
-+# define _XOPEN_SOURCE 500
-+#endif
-+#ifndef _GNU_SOURCE
-+# define _GNU_SOURCE
-+#endif
-+
-+/*
-+ * Large file support from <features.h>
-+ */
-+
-+#ifndef _LARGEFILE_SOURCE
-+# define _LARGEFILE_SOURCE
-+#endif
-+#ifndef _LARGEFILE64_SOURCE
-+# define _LARGEFILE64_SOURCE
-+#endif
-+#ifndef _FILE_OFFSET_BITS
-+# define _FILE_OFFSET_BITS 64
-+#endif
-+
-+/****************** local defines *********************/
-+#ifndef _PATH_TCSHELL
-+#define _PATH_TCSHELL "/bin/tcsh"
-+#endif
-+#define ECHO_STYLE      BOTH_ECHO
-+
-+#if !defined(SYSMALLOC)
-+# define SYSMALLOC
-+#endif
-+#if !defined(NISPLUS)
-+# define NISPLUS
-+#endif
-+#if !defined(POSIX)
-+# define POSIX
-+#endif
-+
-+/* midipix allows paths prepended with double slashes (network paths). */
-+#define HAVE_SLASHSLASH 1
-+
-+#endif /* _h_config */
-diff -Nru tcsh-6.22.00.orig/ed.inputl.c tcsh-6.22.00/ed.inputl.c
---- tcsh-6.22.00.orig/ed.inputl.c	2019-11-28 17:00:05.000000000 +0100
-+++ tcsh-6.22.00/ed.inputl.c	2020-08-21 19:22:12.899460169 +0200
-@@ -34,6 +34,8 @@
- #include "ed.defns.h"		/* for the function names */
- #include "tw.h"			/* for twenex stuff */
- 
-+#include <wchar.h>
-+
- #define OKCMD INT_MAX
- 
- /* ed.inputl -- routines to get a single line from the input. */
-diff -Nru tcsh-6.22.00.orig/sh.h tcsh-6.22.00/sh.h
---- tcsh-6.22.00.orig/sh.h	2019-11-28 17:00:05.000000000 +0100
-+++ tcsh-6.22.00/sh.h	2020-08-21 19:10:44.030604961 +0200
-@@ -337,7 +337,7 @@
- #endif /* POSIX && !WINNT_NATIVE */
- #include <limits.h>
- 
--#if SYSVREL > 0 || defined(_IBMR2) || defined(_MINIX) || defined(__linux__) || defined(__GNU__) || defined(__GLIBC__)
-+#if SYSVREL > 0 || defined(_IBMR2) || defined(_MINIX) || defined(__linux__) || defined(__GNU__) || defined(__GLIBC__) || defined(__midipix__)
- # if !defined(pyr) && !defined(stellar)
- #  include <time.h>
- #  ifdef _MINIX
diff --git a/patches/tcsh-6.24.14.local.patch b/patches/tcsh-6.24.14.local.patch
new file mode 100644
index 0000000..bc8b173
--- /dev/null
+++ b/patches/tcsh-6.24.14.local.patch
@@ -0,0 +1,213 @@
+diff -Nru tcsh-6.24.14.orig/config_f.h tcsh-6.24.14/config_f.h
+--- tcsh-6.24.14.orig/config_f.h	2024-11-26 19:31:51.000000000 +0100
++++ tcsh-6.24.14/config_f.h	2024-12-22 19:13:25.290832110 +0100
+@@ -147,7 +147,7 @@
+  *		This can be much slower and no memory statistics will be
+  *		provided.
+  */
+-#if defined(__MACHTEN__) || defined(PURIFY) || defined(MALLOC_TRACE) || defined(_OSD_POSIX) || defined(__MVS__) || defined (__CYGWIN__) || defined(__GLIBC__) || defined(__OpenBSD__) || defined(__APPLE__) || defined (__ANDROID__) || defined(__NetBSD__) || !defined(HAVE_WORKING_SBRK)
++#if defined(__MACHTEN__) || defined(PURIFY) || defined(MALLOC_TRACE) || defined(_OSD_POSIX) || defined(__MVS__) || defined (__CYGWIN__) || defined(__GLIBC__) || defined(__OpenBSD__) || defined(__APPLE__) || defined (__ANDROID__) || defined(__NetBSD__) || defined(__midipix__) || !defined(HAVE_WORKING_SBRK)
+ # define SYSMALLOC
+ #else
+ # undef SYSMALLOC
+diff -Nru tcsh-6.24.14.orig/configure tcsh-6.24.14/configure
+--- tcsh-6.24.14.orig/configure	2024-11-26 19:31:51.000000000 +0100
++++ tcsh-6.24.14/configure	2024-12-22 19:13:25.290832110 +0100
+@@ -6089,6 +6089,10 @@
+   *-qnx6*) :
+         tcsh_config_file=qnx6
+    ;; #(
++  ## Midipix
++  *-midipix*) :
++        tcsh_config_file=midipix
++   ;; #(
+   *) :
+     as_fn_error $? "Tcsh can't guess the configuration file name
+ for \`${host}' systems.
+diff -Nru tcsh-6.24.14.orig/ed.inputl.c tcsh-6.24.14/ed.inputl.c
+--- tcsh-6.24.14.orig/ed.inputl.c	2024-11-26 19:31:51.000000000 +0100
++++ tcsh-6.24.14/ed.inputl.c	2024-12-22 19:13:25.290832110 +0100
+@@ -34,6 +34,8 @@
+ #include "ed.defns.h"		/* for the function names */
+ #include "tw.h"			/* for twenex stuff */
+ 
++#include <wchar.h>
++
+ #define OKCMD INT_MAX
+ 
+ /* ed.inputl -- routines to get a single line from the input. */
+diff -Nru tcsh-6.24.14.orig/Makefile.in tcsh-6.24.14/Makefile.in
+--- tcsh-6.24.14.orig/Makefile.in	2024-11-26 19:31:51.000000000 +0100
++++ tcsh-6.24.14/Makefile.in	2024-12-22 19:16:54.096716085 +0100
+@@ -432,7 +432,7 @@
+ #CC=	lcc	-wa 
+ CC_FOR_GETHOST = @CC_FOR_GETHOST@
+ CFLAGS_FOR_BUILD = @CFLAGS_FOR_BUILD@
+-CPPFLAGS_FOR_BUILD = @CPPFLAGS_FOR_BUILD@
++CPPFLAGS_FOR_BUILD = @CPPFLAGS_FOR_BUILD@ -I. -I$(srcdir)
+ LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@
+ ED=	ed
+ AS=	as
+@@ -598,7 +598,7 @@
+ 	@echo '/* Do not edit this file, make creates it. */' > $@.tmp
+ 	@echo '#ifndef _h_tc_const' >> $@.tmp
+ 	@echo '#define _h_tc_const' >> $@.tmp
+-	${CPP} $(CPPFLAGS) ${DFLAGS} ${EXTRAFLAGS} -D_h_tc_const\
++	${CPP} $(CFLAGS) $(CPPFLAGS) ${DFLAGS} ${EXTRAFLAGS} -D_h_tc_const\
+ 	    $(srcdir)/tc.const.c | \
+ 	    sed -n -e 's/^\(Char STR[a-zA-Z0-9_]*\) *\[ *\].*/extern \1[];/p' | \
+ 	    LC_ALL=C sort >> $@.tmp
+diff -Nru tcsh-6.24.14.orig/sh.h tcsh-6.24.14/sh.h
+--- tcsh-6.24.14.orig/sh.h	2024-11-26 19:31:51.000000000 +0100
++++ tcsh-6.24.14/sh.h	2024-12-22 19:13:25.290832110 +0100
+@@ -341,7 +341,7 @@
+ #endif /* POSIX && !WINNT_NATIVE */
+ #include <limits.h>
+ 
+-#if SYSVREL > 0 || defined(_IBMR2) || defined(_MINIX) || defined(__linux__) || defined(__GNU__) || defined(__GLIBC__)
++#if SYSVREL > 0 || defined(_IBMR2) || defined(_MINIX) || defined(__linux__) || defined(__GNU__) || defined(__GLIBC__) || defined(__midipix__)
+ # if !defined(pyr) && !defined(stellar)
+ #  include <time.h>
+ #  ifdef _MINIX
+diff -Nru tcsh-6.24.14.orig/system/midipix tcsh-6.24.14/system/midipix
+--- tcsh-6.24.14.orig/system/midipix	1970-01-01 01:00:00.000000000 +0100
++++ tcsh-6.24.14/system/midipix	2024-12-22 19:13:25.290832110 +0100
+@@ -0,0 +1,138 @@
++/*
++ * config.h -- configure various defines for tcsh
++ *
++ * All source files should #include this FIRST.
++ *
++ * This is the config file for midipix systems
++ */
++
++#ifndef _h_config
++#define _h_config
++/****************** System dependant compilation flags ****************/
++/*
++ * POSIX	This system supports IEEE Std 1003.1-1988 (POSIX).
++ */
++#define POSIX
++
++/*
++ * POSIXJOBS	This system supports the optional IEEE Std 1003.1-1988 (POSIX)
++ *		job control facilities.
++ */
++#define POSIXJOBS
++
++/*
++ * VFORK	This machine has a vfork().  
++ *		It used to be that for job control to work, this define
++ *		was mandatory. This is not the case any more.
++ *		If you think you still need it, but you don't have vfork, 
++ *		define this anyway and then do #define vfork fork.  
++ *		I do this anyway on a Sun because of yellow pages brain damage,
++ *		[should not be needed under 4.1]
++ *		and on the iris4d cause	SGI's fork is sufficiently "virtual" 
++ *		that vfork isn't necessary.  (Besides, SGI's vfork is weird).
++ *		Note that some machines eg. rs6000 have a vfork, but not
++ *		with the berkeley semantics, so we cannot use it there either.
++ */
++#undef VFORK
++
++/*
++ * BSDJOBS	You have BSD-style job control (both process groups and
++ *		a tty that deals correctly
++ */
++#define BSDJOBS
++
++/*
++ * BSDTIMES	You have BSD-style process time stuff (like rusage)
++ *		This may or may not be true.  For example, Apple Unix
++ *		(OREO) has BSDJOBS but not BSDTIMES.
++ */
++#define BSDTIMES
++
++/*
++ * BSDLIMIT	You have BSD-style resource limit stuff (getrlimit/setrlimit)
++ */
++#define BSDLIMIT
++
++/*
++ * TERMIO	You have struct termio instead of struct sgttyb.
++ * 		This is usually the case for SVID systems, where
++ *		BSD uses sgttyb. POSIX systems should define this
++ *		anyway, even though they use struct termios.
++ */
++#define TERMIO
++
++/*
++ * SYSVREL	Your machine is SYSV based (HPUX, A/UX)
++ *		NOTE: don't do this if you are on a Pyramid -- tcsh is
++ *		built in a BSD universe.
++ *		Set SYSVREL to 1, 2, 3, or 4, depending the version of System V
++ *		you are running. Or set it to 0 if you are not SYSV based
++ *
++ *		Note: Linux should work with any SYSVREL < 3.
++ */
++#define SYSVREL	2
++
++/*
++ * YPBUGS	Work around Sun YP bugs that cause expansion of ~username
++ *		to send command output to /dev/null
++ */
++#undef YPBUGS
++
++/*
++ * Get the name space we want.
++ *
++ * The more recent defaults for gcc (e.g. on Red Hat 7.0)
++ * also define _POSIX_C_SOURCE, which throws our code off.
++ */
++
++#define __STRICT_ANSI__
++#ifndef _BSD_SOURCE
++# define _BSD_SOURCE
++#endif
++#ifndef _SVID_SOURCE
++# define _SVID_SOURCE
++#endif
++#ifndef _POSIX_SOURCE
++# define _POSIX_SOURCE
++#endif
++#ifndef _XOPEN_SOURCE
++# define _XOPEN_SOURCE 500
++#endif
++#ifndef _GNU_SOURCE
++# define _GNU_SOURCE
++#endif
++
++/*
++ * Large file support from <features.h>
++ */
++
++#ifndef _LARGEFILE_SOURCE
++# define _LARGEFILE_SOURCE
++#endif
++#ifndef _LARGEFILE64_SOURCE
++# define _LARGEFILE64_SOURCE
++#endif
++#ifndef _FILE_OFFSET_BITS
++# define _FILE_OFFSET_BITS 64
++#endif
++
++/****************** local defines *********************/
++#ifndef _PATH_TCSHELL
++#define _PATH_TCSHELL "/bin/tcsh"
++#endif
++#define ECHO_STYLE      BOTH_ECHO
++
++#if !defined(SYSMALLOC)
++# define SYSMALLOC
++#endif
++#if !defined(NISPLUS)
++# define NISPLUS
++#endif
++#if !defined(POSIX)
++# define POSIX
++#endif
++
++/* midipix allows paths prepended with double slashes (network paths). */
++#define HAVE_SLASHSLASH 1
++
++#endif /* _h_config */