[5366] in Release_7.7_team
Projects for reducing maintenance cost of current Athena
daemon@ATHENA.MIT.EDU (Greg Hudson)
Wed Nov 30 12:11:56 2005
Date: Wed, 30 Nov 2005 12:11:36 -0500
Message-Id: <200511301711.jAUHBatE025407@egyptian-gods.mit.edu>
From: Greg Hudson <ghudson@MIT.EDU>
To: release-team@MIT.EDU
X-Spam-Score: 1.217
X-Spam-Level: * (1.217)
X-Spam-Flag: NO
It's not clear when we'll know what direction Athena is going in. In
the mean time, we can try to identify work which benefits both the
conservative approach (reduce maintenance costs) and the ambitious
approach (new component-oriented system targeted at personal
machines).
To that end, here is a list of mini-project ideas oriented towards
reducing the maintenance cost of the current Athena model. By
comparing this list to release-77 [5354] and applying some common
sense, we can try to identify work we can do without an overall
direction.
* Test stock GNOME build in Athena environment
We have historically had our own GNOME built partly for platform
parity, but also to solve problems associated with AFS homedirs.
I believe some key problems (particularly GConf locking) have been
resolved upstream, but we have done no comprehensive testing or
analysis to see how well a stock GNOME build could work for the
Athena environment.
The mini-project here is to:
- Inventory our local mods to GNOME libraries and identify which
problems they were created to solve.
- Create a straw-man Athena release which replaces the Athena
GNOME packages with the RHEL4 ones.
- Test the straw-man release to see which problems are
encountered.
- Identify potential workarounds for remaining problems which
don't involve rebuilding the GNOME world.
* Create an Athena session manager
A number of our problems integrating GNOME into the Athena
environment stem from not having a session manager, which means we
don't gracefully terminate GNOME programs at logout. We don't use
the GNOME session manager because its session saving and
restoration doesn't work well in a distributed environment
(particularly a multi-platform one).
The mini-project here is to strip down the GNOME session manager
into a minimal one which only handles graceful termination, and
integrate that with our session scripts.
* Identify packages we build only for platform parity
We build some packages on both platforms because we needed them
for Solaris and it was simply easier to have them at the same
version and in the same place on both platforms. But for a
Linux-only release, we probably don't need our own build of, say,
OpenSSL.
The mini-project here is to look over the list of third-party
packages we build, check for relevant local modifications, and
make a list of packages we could probably eliminate for the 9.5
release. In addition, we could build and test a straw-man release
which does not include those packages.
(Bill's difference document does this, but I think we would need
to do a bunch of re-checking in order to actually decommission
those packages from the release.)
* Rework the Athena build system
The current Athena build system is designed around a past model
where the output of the build was a srvd, not a collection of
packages. As a result, the files for a given packages are often
scattered between third/packagename and various directories under
packs. There are also aspects of do.sh which are pretty clunky,
resulting in stilted Makefile.athena files.
In source-developers [640] I outlined a new build system design.
The mini-project would be to implement this design.