Hi,
As Chase mentioned there were some issues using submodules (which is
what we started with), particularly around people not familiar with git.
Main issues were:
1. complaints about build failures due to the missing submodule, with no
clue on how to resolve
2. source code (git archive) releases, which of course do not include
the submodules, or even the .gitmodules files that would allow someone
to actually run a git submodule command after unpacking the tarball.
Of course if a git repo is available, I always prefer to use that, but
it seems I'm mainly in the minority.
But many of the people using CDE just download the source tarball and go
from there.
It would be possible I think to have a check in autogen.sh or configure
to look for and checkout any missing submodules but that's assuming git
is installed to begin with on the users machine.
Personally, I am not opposed to using submodules as long as we can patch
it when needed and we can resolve the #1 and #2 problems above.
Git subtrees seemed to "fix" all of those problems, though they are a
bit different to work with.
-jon
On 6/30/26 18:44, johngrimmreaper via cdesktopenv-devel wrote:
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
--
Jon Trulson
"The less you know, the more you believe."
-- Bono
_______________________________________________
cdesktopenv-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/cdesktopenv-devel