Hi Chase,

Thank you for explaining the history. I understand the concern better now, especially if submodules caused confusion for people building CDE in the past.

I still think it is worth reconsidering for ksh93 specifically. I updated the branch so the submodule workflow is documented explicitly, including the clone and update commands for fetching the KornShell submodule.

My main concern is future maintenance. CDE depends on KornShell, and upstream ksh has continued to fix real bugs after the version currently imported into CDE. Some of those fixes matter for portability and non-Intel architectures, which is important to me right now because I am working on the ARM 32-bit side of CDE packaging.

At the moment, KornShell-related issues are blocking my work on newer Ubuntu releases. I can still build CDE for ARM 32-bit on Ubuntu 24.04, but I cannot yet get it building properly for Ubuntu 26.04 ARM 32-bit. Ubuntu 24.04 still gives me time, but I would like to address this now so that, in the future, I can upgrade the Raspberry Pi systems where I have deployed CDE. I do not want to spend time debugging KornShell issues that upstream has already solved.

I also wanted to respond to Marco's earlier question on the list about whether there are still people in IBM using or interested in CDE. I am not an IBM employee anymore, but I did work there years ago, and IBM was actually the second job where I had contact with CDE. I used CDE before the source was opened, on HP-UX, AIX, and Solaris systems. After CDE became open source around the end of 2012, I started using it on RHEL, Ubuntu, and Debian systems. I even built a CDE RPM package for RHEL 6 back then, which was the stable Linux environment I used at IBM during that time.

So I can answer Marco's question by saying that yes, there are people in IBM who still know and appreciate CDE. Of course, there is usually very little room to customize or install unofficial software on customer systems, but spare machines and internal development environments do exist. With the right approval, people can still experiment.

I also currently have an AIX 7.2 virtual machine, so in the future I would be interested in helping with proper AIX packaging too, whether that means installp/BFF packaging, AIX Toolbox-style RPM packaging, or whatever workflow makes the most sense for CDE on AIX. Once there is a clean community AIX package, we would have something concrete to show. At that point, it may be worth trying to contact people around the IBM AIX development side to see whether they would consider a newer CDE package in the future.

For me, this is not a random packaging experiment. I have a long-term interest in CDE both as a user and as a maintainer. I am now deploying CDE on industrial Raspberry Pi setups, and I would like to keep helping the project move forward on Linux, ARM 32-bit cheap boards, and eventually AIX as well.

From my own experience, KornShell is still very important in IBM environments, especially around AIX, IBM Zlinux on mainframe, and server administration work. Of course, CDE's bundled KornShell would not be used for production batch jobs or system scripts, but keeping CDE's KornShell base easier to update would still make the project more credible and maintainable for people who care about CDE in the IBM hardware ecosystem. It would also send a strong signal that the project wants to keep its bundled KornShell version current and maintainable.

For now, though, my immediate goal is to unblock the Linux and ARM packaging work. I do not think CDE should blindly follow upstream or track a moving branch. The submodule should remain pinned to a specific upstream release or commit, and every future ksh update should still go through normal review.

The benefit is that updating ksh becomes easier and more auditable. A subtree makes ksh look like CDE-owned code; a submodule makes it clear that CDE is pinning a known upstream ksh release, with local CDE deltas kept as reviewable patches.

So I understand why the previous attempt was changed to a subtree. I am only asking whether we can revisit the idea with a conservative policy: pinned upstream ksh releases, explicit CDE patches, normal review for every bump, and clear documentation for builders. That would reduce the effort and time required to upgrade KornShell inside CDE in the future.

Best regards,
Reaper

On 2026-06-30 15:58, Chase wrote:

When I originally updated ksh93 from our very out of date in house version of the ksh93u+m version, I added it as a submodule. People found this too confusing and it was decided it would be made into a subtree despite me advocating against it, and I thus stepped out of maintaining this program. Thus, I don't think this will be merged any time soon.

Thank you for your time,
-Chase

On Monday, June 29th, 2026 at 8:28 PM, johngrimmreaper via cdesktopenv-devel <[email protected]> wrote:

Greetings.

First, thank you again for the positive feedback and review on the recent Ubuntu/Debian packaging merge. I really appreciate the time and attention from the CDE developers, and I am happy that the packaging work was useful to the project.

I have now opened another merge request:

https://sourceforge.net/p/cdesktopenv/code/merge-requests/86/

This MR replaces the vendored dtksh ksh93 source tree with the official upstream ksh93/ksh repository as a Git submodule.

I want to make one important point very clear: this does not upgrade or change the ksh93 version used by CDE.

The submodule is pinned to the same ksh93u+m v1.0.4 commit that CDE had already imported:

d4503c15572dd6b6b2cdd57c61583fbda27571a4

So this is not a KornShell version bump. It is only a provenance and maintainability change: instead of carrying a copied source tree inside CDE, the same upstream version is referenced directly through Git history.

But off course, this will allow us to quickly install and benefit from upstream korn shell project updates on the future.

Before opening the MR, I audited CDE's embedded ksh93 tree against the official upstream v1.0.4 tag. Out of 1152 compared files, 1149 were identical.

The only substantive local CDE delta was in:

src/lib/libast/features/aso

That change has been preserved as a CDE-side patch:

programs/dtksh/ksh93-patches/0001-backport-upstream-asocasptr-fix.patch

The patch is a small backport of the upstream _aso_casptr() fix associated with ksh93/ksh issue #697. The build system applies it before building dtksh and reverses it during clean.

There were two other differences found during the audit, but I did not preserve them as patches:

- src/cmd/ksh93/sh/xec.c had a local NULL comparison simplification.
- src/cmd/ksh93/tests/libcmd.sh had whitespace-only differences.

I left those out intentionally. The xec.c change did not correspond to an upstream commit that I could identify, and it appeared to be only a local simplification rather than a required CDE functional change. The libcmd.sh difference was whitespace-only. I thought it would be better to keep the submodule as close as possible to the official upstream v1.0.4 tree and preserve only the real functional delta.

I also tested the MR locally:

- verified the submodule is pinned to official upstream ksh93/ksh v1.0.4
- verified the CDE-side patch applies cleanly
- built a local Debian binary package with dpkg-buildpackage -b -us -uc
- installed the generated cde-desktop_2.5.3-1_amd64.deb
- confirmed /usr/bin/dtksh runs successfully
- confirmed dtksh reports:

Version AJM 93u+m/1.0.4+d4503c15/MOD 2022-10-22

For anyone testing the branch:
https://sourceforge.net/u/johngrimmreaper/cdesktopenv/ci/experiment/ksh93-submodule-v1.0.4-audit/~/

the submodule can be initialized with:

git submodule update --init --recursive

The goal of this merge request is to make future KornShell maintenance easier and auditable, while preserving the current CDE behavior and the exact same ksh93 version.

Thank you again for your work on CDE.

Best regards,
Reaper
_______________________________________________
cdesktopenv-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/cdesktopenv-devel

Reply via email to