Fedora and family don't install patch by default, so we need to specifically 
test for it. Also, apparently distclean crashes when it reaches the JP locale.

On a side note, I am still of the opinion that we should replace tradcpp with 
sed wherever possible, it would be one less program that we would have to 
maintain and build, and some tests I ran show that sed is slightly faster. I 
could do the work to replace it if need be.

Thank you for your time,
-Chase
From a4a354dc44430379bdabdd8291e98101ffc7bbc5 Mon Sep 17 00:00:00 2001
From: Chase <nicetry...@protonmail.ch>
Date: Sun, 31 Jan 2021 10:58:17 -0600
Subject: [PATCH 1/2] dtksh: make it build under autotools

---
 cde/configure.ac                        |   3 +
 cde/programs/Makefile.am                |   4 +-
 cde/programs/dtksh/Makefile.am          |  69 ++++++++--------
 cde/programs/dtksh/examples/Makefile.am | 104 ++++++++++++++++++++++++
 cde/programs/dtksh/ksh93                |   2 +-
 5 files changed, 146 insertions(+), 36 deletions(-)
 create mode 100644 cde/programs/dtksh/examples/Makefile.am

diff --git a/cde/configure.ac b/cde/configure.ac
index 2b0ad349f..8678e3542 100644
--- a/cde/configure.ac
+++ b/cde/configure.ac
@@ -566,6 +566,9 @@ programs/dtspcd/Makefile
 
 programs/dtscreen/Makefile
 
+programs/dtksh/Makefile
+programs/dtksh/examples/Makefile
+
 programs/dtcm/Makefile
 programs/dtcm/libDtCmP/Makefile
 programs/dtcm/server/Makefile
diff --git a/cde/programs/Makefile.am b/cde/programs/Makefile.am
index 74ead60c8..4c3dcd435 100644
--- a/cde/programs/Makefile.am
+++ b/cde/programs/Makefile.am
@@ -2,9 +2,9 @@ MAINTAINERCLEANFILES = Makefile.in
 
 SUBDIRS = backdrops icons dsdm dtmail dtpad dtfile dtwm dtlogin \
         dtsession dthello dtstyle dtexec dtdbcache dticon dtterm dtcalc \
-	dtaction dtspcd dtscreen dtcm dtsearchpath dtappbuilder palettes \
+	dtaction dtspcd dtscreen dtksh dtcm dtsearchpath dtappbuilder palettes \
 	dtappintegrate dtprintegrate dtconfig dtcreate dtprintinfo fontaliases \
 	dtdspmsg dtimsstart dtpdm dtsr dtpdmd types \
 	tttypes util dtopen localized dthelp nsgmls dtdocbook
 
-# NOTYET = dtksh dtinfo ttsnoop
+# NOTYET =dtinfo ttsnoop
diff --git a/cde/programs/dtksh/Makefile.am b/cde/programs/dtksh/Makefile.am
index 001512ae1..aa92483c2 100644
--- a/cde/programs/dtksh/Makefile.am
+++ b/cde/programs/dtksh/Makefile.am
@@ -1,3 +1,9 @@
+MAINTAINERCLEANFILES = Makefile.in
+
+CLEANFILES = init.c FEATURE
+
+SUBDIRS = examples
+
 kshdir = ${libdir}/dtksh
 
 dist_ksh_SCRIPTS = DtFuncs.dtsh
@@ -8,41 +14,39 @@ if SOLARIS
 .NO_PARALLEL:
 endif
 
-SUBDIRS = examples ksh93
-KSH93OBJ = $(KSH93SRC)/ksh93.o
-KSH93LIBSHELL = $(KSH93SRC)/src/cmd/ksh93/libshell.a
+KSH93LIBSHELL = $(KSH93SRC)/lib/libshell.a
 
 bin_PROGRAMS = dtksh
 
 dtksh_CPPFLAGS = -I$(KSH93SRC)/include/ast -I$(KSH93SRC)/src/cmd/ksh93/include \
-	       -I$(KSH93SRC)/src/cmd/ksh93 -I${srcdir}/lib/DtPrint \
-	       -I${srcdir}/lib/DtHelp
-dtksh_LDADD = $(DTHELPLIB) $(DTWIDGETLIB) $(DTSVCLIB) $(DTPRINTLIB) $(TTLIB) \
-	      -lXm $(XTOOLLIB) ${X_LIB} $(KSH93SRC)/lib/libcmd.a  \
-	      $(KSH93SRC)/lib/libast.a -lm
+		 -I$(KSH93SRC)/src/cmd/ksh93 -I${srcdir}/lib/DtPrint \
+		 -I${srcdir}/lib/DtHelp '-DAST_VERSION=20111111' \
+		 -DSHOPT_STATS -DSHOPT_NAMESPACE -DSHOPT_2DMATCH \
+		 -DSHOPT_MULTIBYTE -DSHOPT_BGX -DSHOPT_AUDIT -D_PACKAGE_ast \
+		 -DSHOPT_DYNAMIC -D_BLD_shell -DSHOPT_KIA -DKSHELL \
+		 -DSHOPT_HISTEXPAND -DSHOPT_EDPREDICT -DSHOPT_ESH -DSHOPT_VSH \
+		 -DSHOPT_FIXEDARRAY '-DERROR_CONTEXT_T=Error_context_t' \
+		 -DSHOPT_SUID_EXEC -D_API_ast=20100309 -DSHOPT_BRACEPAT \
+		 -DBUILD_DTKSH
+
+dtksh_LDADD = $(DTCLIENTLIBS) -lXm pmain.o $(XTOOLLIB) ${X_LIB} \
+	      libshell.a $(KSH93SRC)/lib/libcmd.a $(KSH93SRC)/lib/libast.a \
+	      $(KSH93SRC)/lib/libdll.a -lm
 
 if LINUX
 dtksh_LDADD += -ldl
 endif
 
 if SOLARIS
-dtksh_CPPFLAGS += -DDYNLIB
-endif
-
-if HPUX
-dtksh_CFLAGS += -Wl,-E -DHPUX_DYNLIB -Wp,-H12000
-dtksh_LDADD += -lm -ldld
+dtksh_LDADD += -lsecdb -lsocket -lnsl
 endif
 
 if AIX
-dtksh_CPPFLAGS += -DDYNLIB -D_IBMRPC_
-dtksh_LDADD += -bE:dtksh.exp
+dtksh_CPPFLAGS += -D_IBMRPC_
+dtksh_LDFLAGS = -bE:dtksh.exp
 endif
 
-dtksh_SOURCES = \
-                userinit.c \
-                builtins.c \
-                aliases.c \
+dtksh_SOURCES = init.c \
                 widget.c \
                 dtkcvt.c \
                 dtkcmds.c \
@@ -51,23 +55,22 @@ dtksh_SOURCES = \
                 xmcmds.c \
                 xmwidgets.c \
                 extra.c \
-                xmdtksym.c \
                 findsym.c \
                 msgs.c
 
-all:: dtksh
+init.c:
+	cd ksh93; ./bin/package flat make CCFLAGS='$(SUIDEXECDEFINES) -g -D_std_malloc'
+	cp ./ksh93/src/cmd/ksh93/sh/init.c init.c
+	patch --posix init.c -i init.patch
+	./setup.sh
 
-$(KSH93SRC)/ksh93.o:
-        cd $(KSH93SRC); $(MAKE)
 
-# Must replace standard ksh tables of builtins and aliases
-# with our augmented versions.
+libshell.a: $(KSH93SLIBSHELL) dtksh-init.o
+	$(CP) $(KSH93LIBSHELL) libshell.a; \
+	ar d libshell.a init.o; \
+	$(AR) cq libshell.a dtksh-init.o
 
-libshell.a: $(KSH93SLIBSHELL) userinit.o builtins.o aliases.o
-        $(CP) $(KSH93LIBSHELL) libshell.a; \
-        ar d libshell.a userinit.o builtins.o aliases.o ; \
-        $(AR) libshell.a userinit.o builtins.o aliases.o
+clean-local:
+	cd ksh93 && ./bin/package clean
 
-clean::
-        @echo " Cleaning ksh directories"
-        $(SHELL) MakeClean
+DtFuncs.dtsh:
diff --git a/cde/programs/dtksh/examples/Makefile.am b/cde/programs/dtksh/examples/Makefile.am
new file mode 100644
index 000000000..d9a275774
--- /dev/null
+++ b/cde/programs/dtksh/examples/Makefile.am
@@ -0,0 +1,104 @@
+MAINTAINERCLEANFILES = Makefile.in
+
+noinst_SCRIPTS = CallbackTest2 CallDataTest4 crMovesText1 DtCursorTest2 \
+		 DtWsTest1 EventHandlerTest ListBounds1 ListItemPos1 PopupTest \
+		 SelBoxResTest SessionTest TextCutBuf1 TextDisp1 TextFXYPos1 \
+		 TransEventTest TransTest1 WorkProcTest1 XdrawTest
+
+LOCAL_CPP_DEFINES = -DCDE_INSTALLATION_TOP=$(CDE_INSTALLATION_TOP)
+
+BUILT_SOURCES =  CallbackTest2 CallDataTest4 crMovesText1 DtCursorTest2 \
+                 DtWsTest1 EventHandlerTest ListBounds1 ListItemPos1 PopupTest \
+                 SelBoxResTest SessionTest TextCutBuf1 TextDisp1 TextFXYPos1 \
+                 TransEventTest TransTest1 WorkProcTest1 XdrawTest
+
+CLEANFILES = $(BUILT_SOURCES)
+
+CallbackTest2: CallbackTest2.src
+	$(RM) $@
+	$(GENCPP) -P -DXCOMM=# $(LOCAL_CPP_DEFINES) $< > $@
+	chmod +x $@
+
+CallDataTest4: CallDataTest4.src
+	$(RM) $@
+	$(GENCPP) -P -DXCOMM=# $(LOCAL_CPP_DEFINES) $< > $@
+	chmod +x $@
+
+crMovesText1: crMovesText1.src
+	$(RM) $@
+	$(GENCPP) -P -DXCOMM=# $(LOCAL_CPP_DEFINES) $< > $@
+	chmod +x $@
+
+DtCursorTest2: DtCursorTest2.src
+	$(RM) $@
+	$(GENCPP) -P -DXCOMM=# $(LOCAL_CPP_DEFINES) $< > $@
+	chmod +x $@
+
+DtWsTest1: DtWsTest1.src
+	$(RM) $@
+	$(GENCPP) -P -DXCOMM=# $(LOCAL_CPP_DEFINES) $< > $@
+	chmod +x $@
+
+EventHandlerTest: EventHandlerTest.src
+	$(RM) $@
+	$(GENCPP) -P -DXCOMM=# $(LOCAL_CPP_DEFINES) $< > $@
+	chmod +x $@
+
+ListBounds1: ListBounds1.src
+	$(RM) $@
+	$(GENCPP) -P -DXCOMM=# $(LOCAL_CPP_DEFINES) $< > $@
+	chmod +x $@
+
+ListItemPos1: ListItemPos1.src
+	$(RM) $@
+	$(GENCPP) -P -DXCOMM=# $(LOCAL_CPP_DEFINES) $< > $@
+	chmod +x $@
+
+PopupTest: PopupTest.src
+	$(RM) $@
+	$(GENCPP) -P -DXCOMM=# $(LOCAL_CPP_DEFINES) $< > $@
+	chmod +x $@
+
+SelBoxResTest: SelBoxResTest.src
+	$(RM) $@
+	$(GENCPP) -P -DXCOMM=# $(LOCAL_CPP_DEFINES) $< > $@
+
+SessionTest: SessionTest.src
+	$(RM) $@
+	$(GENCPP) -P -DXCOMM=# $(LOCAL_CPP_DEFINES) $< > $@
+	chmod +x $@
+
+TextCutBuf1: TextCutBuf1.src
+	$(RM) $@
+	$(GENCPP) -P -DXCOMM=# $(LOCAL_CPP_DEFINES) $< > $@
+	chmod +x $@
+
+TextDisp1: TextDisp1.src
+	$(RM) $@
+	$(GENCPP) -P -DXCOMM=# $(LOCAL_CPP_DEFINES) $< > $@
+	chmod +x $@
+
+TextFXYPos1: TextFXYPos1.src
+	$(RM) $@
+	$(GENCPP) -P -DXCOMM=# $(LOCAL_CPP_DEFINES) $< > $@
+	chmod +x $@
+
+TransEventTest: TransEventTest.src
+	$(RM) $@
+	$(GENCPP) -P -DXCOMM=# $(LOCAL_CPP_DEFINES) $< > $@
+	chmod +x $@
+
+TransTest1: TransTest1.src
+	$(RM) $@
+	$(GENCPP) -P -DXCOMM=# $(LOCAL_CPP_DEFINES) $< > $@
+	chmod +x $@
+
+WorkProcTest1: WorkProcTest1.src
+	$(RM) $@
+	$(GENCPP) -P -DXCOMM=# $(LOCAL_CPP_DEFINES) $< > $@
+	chmod +x $@
+
+XdrawTest: XdrawTest.src
+	$(RM) $@
+	$(GENCPP) -P -DXCOMM=# $(LOCAL_CPP_DEFINES) $< > $@
+	chmod +x $@
diff --git a/cde/programs/dtksh/ksh93 b/cde/programs/dtksh/ksh93
index 47468f56c..66e1d4464 160000
--- a/cde/programs/dtksh/ksh93
+++ b/cde/programs/dtksh/ksh93
@@ -1 +1 @@
-Subproject commit 47468f56c2d0506045120fb4d0709f3a734693f5
+Subproject commit 66e1d446429543be0f9d47d9364e472932dc53f1
-- 
2.17.1

From 16bda0deb54d392b72321663e23ef97d9ab0b9de Mon Sep 17 00:00:00 2001
From: Chase <nicetry...@protonmail.ch>
Date: Sun, 31 Jan 2021 11:12:30 -0600
Subject: [PATCH 2/2] dtksh: specifically test for patch

---
 cde/configure.ac               | 4 ++++
 cde/programs/dtksh/Makefile.am | 2 +-
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/cde/configure.ac b/cde/configure.ac
index 8678e3542..e292a3eac 100644
--- a/cde/configure.ac
+++ b/cde/configure.ac
@@ -354,6 +354,10 @@ AC_CHECK_PROGS(GENCAT, gencat)
 if test -z "$ac_cv_prog_GENCAT"; then
    MISSING_PROGS="gencat ${MISSING_PROGS}"
 fi
+AC_CHECK_PROGS(PATCH, patch)
+if test -z "$ac_cv_prog_PATCH"; then
+   MISSING_PROGS="patch ${MISSING_PROGS}"
+fi
 
 dnl headers
 AC_HEADER_STDC
diff --git a/cde/programs/dtksh/Makefile.am b/cde/programs/dtksh/Makefile.am
index aa92483c2..9a52eea70 100644
--- a/cde/programs/dtksh/Makefile.am
+++ b/cde/programs/dtksh/Makefile.am
@@ -61,7 +61,7 @@ dtksh_SOURCES = init.c \
 init.c:
 	cd ksh93; ./bin/package flat make CCFLAGS='$(SUIDEXECDEFINES) -g -D_std_malloc'
 	cp ./ksh93/src/cmd/ksh93/sh/init.c init.c
-	patch --posix init.c -i init.patch
+	$(PATCH) --posix init.c -i init.patch
 	./setup.sh
 
 
-- 
2.17.1

_______________________________________________
cdesktopenv-devel mailing list
cdesktopenv-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/cdesktopenv-devel

Reply via email to