|
|
Athena Linux Differences: Variant Packages Detail
Many Athena packages are modifications of existing Red Hat
packages. Variant packages are created for one or more of the
following reasons:
- To make crucial functionality work (bug fixes).
- To integrate the subsystem into the MIT environment (configuration).
- To create uniform behavior across multiple UNIX platforms
and versions.
- To provide continuity with legacy services so as to minimize the user
disruption across an OS, application, or service update.
The Athena Variations on pre-existing packages are presented here
organized by functional area:
Libraries and Infrastructure
Files | Variant File Locations |
Athena puts essentially all of its new and variant binaries,
libraries, config files, etc. in non-standard locations to avoid
conflicting with the base operating system.
Athena introduced:
- /usr/athena as the usual root of athena-specific files.
- /usr/athena/bin for Athena variant binaries.
- /usr/athena/include for Athena variant includes.
- /usr/athena/lib for Athena variant libraries.
- /usr/athena/etc to hold administrative utilities that these days
are typically found in /usr/sbin.
- /bin/athena to hold a subset of binaries on local disk back when
Athena kept the system packs in a remote filesystem.
- /etc/athena originally for binaries and config files on systems
that kept the majority of files on a remote filesystem. Now used for
config files we expect system owners will customize.
Users compiling applications may need to edit build scripts and
Makefiles to work with these alternate locations.
Note: Binaries originally put in /bin/athena and /etc/athena when
there were remote system packs have not been moved out because we
didn't want to break things that were built assuming the original
locations.
|
GNOME |
GUI Infrastructure and Application Suite |
By itself, GNOME is responsible for a third of all differences
introduced by Athena. The decision to build the entirety of GNOME as
a variant was not undertaken lightly -- and not without the eventual
goal being to treat it as third party software. However, it provides
Athena with a user friendly interface and fully integrated the
emerging standard GUI toolkit and infrastructure.
There was one major issue with GNOME on Athena: GNOME assumes an
unshared home directory. Athena stores the user home directory in a
remote filesystem that can, and often is, accessed simultaneously by
multiple machines/logins -- sometimes even utilizing different
operating systems.
GConf, the database used to store and update user configuration
information assumed it had unshared access to the user's home
directory. To resolve this issue, Athena GConf creates a lock
specific to the users login session rather than the user's home
directory.
The esd demon was originally conceived as a demon process that
would be started by a user and keep running after they logged out.
Athena systems support login by different users, so esound was
modified to be started and killed by a process, dustbuster, on a per
user basis. Other subsystems are also managed by dustbuster.
The original goal was to modify as small a subset as possible of
GNOME, and to install the vendor-supplied binaries for the rest.
Unfortunately, a number of packages expect to have all of GNOME data
files living in one place. Other unusual behaviors were also resolved
by building all of GNOME as a unit. Given these issues and the
benefit of being able to distribute GNOME to Athena Linux users with
debugging turned on, the Athena Release Team created an Athena variant
build of the entirety of GNOME.
RPMs: athena-GConf, athena-GConf2, athena-ORBit,
athena-ORBit2, athena-bonobo, athena-bonobo-activation,
athena-bonobo-conf, athena-control-center, athena-esound, athena-gal,
athena-gal2, athena-gdk-pixbuf, athena-glib, athena-glib2,
athena-gnome-applets, athena-gnome-audio, athena-gnome-desktop,
athena-gnome-icon-theme, athena-gnome-libs, athena-gnome-mime-data,
athena-gnome-panel, athena-gnome-print, athena-gnome-spell,
athena-gnome-terminal, athena-gnome-themes, athena-gnome-utils,
athena-gnome-vfs, athena-gnome-vfs2, athena-gnome2-user-docs,
athena-gtk, athena-gtk-engines, athena-gtk-thinice-engine,
athena-gtk2, athena-gtkhtml, athena-gtkhtml3, athena-imlib,
athena-libbonobo, athena-libbonoboui, athena-libglade,
athena-libgnome, athena-libgnomecanvas, athena-libgnomeui,
athena-libgsf, athena-librep, athena-libxml, athena-metacity,
athena-nautilus, athena-nautilus-media, athena-oaf, athena-rep-gtk,
athena-sawfish, athena-zenity.
See also: the "gnome" and "dustbuster" man pages.
|
kerberos |
Kerberos
Authentication |
Kerberos was invented for Athena, so there is strong temptation
and history of keeping a local version with the subtlest of configuration
adjustments. For the most part, Athena builds kerberos from the source
distributed by the Kerberos team rather than using the native OS
kerberos.
The Athena kerberos RPM also includes integration of the Athena single sign on
and access control functionality into login ftpd and other network
services. Most of this work is done with a new library, the Athena
Login Library, libal.
The Athena kerberos variation includes enhancements to make a graceful
transition from kerberos version 4 to version 5. Many applications
developed for Athena never got follow-on funding to convert to version
5, so there is demand for strong version 4 compatibility.
RPM: athena-krb5.
See also: the Remote
Access section of the Private Athena
Workstation Owner's guide and the "kerberos" man page.
|
Hesiod |
Name to Name
Translation/Association
|
Information about user names, directories and system resources is
distributed via an Athena-invented enhancement, now part of the
standard BIND system, called Hesiod. Long before there were "Roaming
Profiles" or an "Active Directory", Athena provided similar
functionality by modifying system programs to fetch information from
the Hesiod service.
Athena is still the upstream provider of the Hesiod code to the world,
so there is no effort saved in using the binaries that come stock with
Red Hat.
RPMs: athena-hesiod.
See also: the "hesinfo" man page.
|
|
Berkeley Internet
Name Demon.
|
Athena adopted its own code base for the bind utilities and library
for consistency across platforms.
RPM: athena-bind.
See also: the "bind" man page.
Athena added a friendlier interface, 'hostinfo', to the BIND
'host' utility.
RPM: athena-hostinfo.
See also: the "hostinfo" man page.
|
|
Lightweight
Program to Spawn Login Connections
|
The Athena approach to spawning login connections evolved in a
different direction from what became standard. Athena has its
own console login program that utilizes libal to control access. (See
Remote Access
Control.) The program that controls login connections is getty
under some versions of UNIX and mingetty under most versions of Linux.
Stock mingetty does not support calling alternate login programs.
Red Hat 7 stopped shipping the full getty so we introduced our own
local variant of mingetty that did what we needed: interface to Athena
login with single sign on, provide standard Linux virtual terminal
access, and provide users with the option of the old style Athena
console.
Red Hat Enterprise 3 now ships a mingetty with the ability to
support an alternate login program. Switching to standard
mingetty and getting rid of our local version is scheduled for Athena
9.4.
RPM: athena-mingetty.
See also: the "mingetty" man page.
|
Other Libraries |
|
Berkeley db |
Athena contains a version of Berkeley DB, which is used in
Kerberos and the rpm update system. Red Hat Enterprise ships with an
RPM, compat-db that apparently also provides Berkeley DB. Athena
adopted its version for compatibility across platforms. It is
possible that compat-db would be an acceptable substitute, but it's
unclear if it's worth the effort to do the required testing.
RPM: athena-db.
See also: the "db" man page.
|
|
com_err / libet |
The error table library, now a standard part of Linux, originally came
from Athena. As with many libraries, the effort to confirm the
standard offering is a fully functional replacement seems unjustified.
RPM: athena-libet.
See also: the "com_err" man page.
|
|
libss |
The command table subsystem library, now a standard part of Linux
originally came from Athena. As with many libraries, the effort to
confirm the standard offering is a fully functional replacement seems
unjustified.
RPM: athena-libss.
|
[Back to top]
User Services
Athena began with a notion of platform independent "coherence" for the
user experience. This gave rise to a long standing aesthetic to
tightly integrate different aspects of the user experience, and to
customize things so that platform differences were minimized, and
user-visible changes across updates of OS and applications were also
minimized.
Reading, Writing, and Managing Email
|
|
|
The standard mail reader on the Athena desktop is Evolution, one of
the core applications of the standard GNOME desktop.
RPM: athena-evolution.
See also: the "evolution" man page.
|
|
|
For users who need or prefer a non-graphical email client, Pine was
integrated into Athena and MIT IMAP.
RPM: athena-pine.
See also: the "pine" man page.
|
|
|
Before Evolution and pine were adopted as the standard, mh and xmh
were. These legacy applications are kept around for those users
unwilling to change email clients.
In order to handle the repeated upgrades of the mail system, a program
was built for Athena to announce that the default mail reader had
changed and allow the user to chose whether he or she wanted to
upgrade or to remain with the legacy application.
RPMs: athena-nmh, athena-xmh, athena-mail-dialog.
See also: the "mh" and "xmh" man pages.
|
|
|
Athena originally adopted its own version of sendmail because
different platforms had versions that were unpleasantly different from
each other. The goal was to have one set of sendmail configuration
files and one approach to managing sendmail issues across all
platforms. Recently, since we already had our own sendmail, we chose
to add Kerberos authenticated SMTP protocol support. It is hoped that
standard sendmail will eventually converge on one version with a
Kerberos authenticated sending option.
RPM: athena-sendmail
See also: the "sendmail" man page.
|
|
|
A few other useful command-line tools were created:
- from: prints out mail header lines in incoming mail to show
who the mail is from. Useful for a quick email check without having
to start up a more elaborate client.
- mailquota: Display post office resource usage and
limits.
- mailusage: Display size of mail folders on a post office
server.
RPMs: athena-from, athena-mailquota, athena-mailusage.
See also: the "from", "mailquota", and "mailusage" man pages.
|
Mozilla |
Web Browsing with Mozilla |
Mozilla is the standard web browsing tool for Athena. Athena had
for a number of years customized a standard browser for ease of use at
MIT. Mozilla received a fair bit of customization in order to
gracefully fit with that legacy.
The details of the difference between Athena and stock Mozilla were
documented in a Stock
Answer
Mozilla was absorbed into the Athena release when the crucial
requirement of putting the cache directory on the local disk rather
than the user's AFS home directory required source-code level changes.
Source level changes were also required to deal with byte-ordering and
access control issues when the profile directory lived in a user's AFS
home directory. Building the whole subsystem and making the few
required changes turned out to be the most cost-effective way to
manage the software.
Athena also provides gurlview, a GNOME utility useful for
displaying a URL in a new browser window.
RPMs: athena-mozilla, athena-gurlview.
See also: the "mozilla", and "gurlview" man pages.
|
Text Editing and Formatting |
|
|
Emacs is the recommended standard text editing program on Athena.
While there are few changes to the Emacs code, the site-start.el file
is extensively customized to activate Emacs features such as printing
and email, which require configuration on a site-by-site basis.
Some subtle user interface changes were made to fit MIT tastes and
provide a standard experience across platforms/versions. Auto-save
was adjusted to make it less likely that users would lose data.
RPM: athena-emacs.
See also: the "emacs" man page.
|
|
|
Red Hat chose to incorporate a limited function port of vi.
Experienced vi users, used to the full version on Athena, would have
found it insufficient. So Athena incorporated nex/nvi, a freely
redistributable implementation of the ex/vi text editors originally
distributed as part of the Fourth Berkeley Software Distribution
(4BSD).
RPM: athena-nvi.
See also: the "vi", "ex" man pages.
|
|
|
The most current version of TeX, the typesetting system and support
utility for Athena, was not included with Red Hat Linux (nor on
Solaris). As MIT users push the cutting edge of TeX typesetting,
Athena packaged a more current version to meet demand.
RPM: athena-tetex.
See also: the "tex" man page.
|
|
|
To provide commonality across platforms, Athena standardized upon
its own version of:
- ispell: an interactive spelling checker.
- texinfo: a documentation system that can produce both
online information and printed output from a single source file. The
GNU Project uses the Texinfo file format for most of its
documentation.
- intlfonts: the international fonts for many languages
suitable for use in Emacs and elsewhere.
RPMs: athena-ispell, athena-texinfo, athena-intlfonts.
See also: the "ispell", "tex", and "texinfo" man pages.
|
| LPRng |
Printing Infrastructure and Commands |
Athena has adopted various printing infrastructures over the years.
The present one is an early adoption of LPRng which has become a
standard open source printing subsystem. Athena's LPRng contains code
to support both secure and insecure printing on a printer labeled as
kerberized. The stock version requires choosing one to the exclusion
of the other.
RPM: athena-lprng, athena-lprng-misc, athena-ifhp.
See also: the "lpr", "lpq", "lprm", "lpc", "lpd", and
"ifhp" man pages.
|
|
|
OpenSSH |
OpenSSH allows secure connections for login sessions and file transfer
via the ssh protocol. The version shipped by Red Hat does not link
against the GSSAPI library Athena uses to enable forwardable kerberos
ticket support.
Because sshd does not use an external call to login,
the changes made to krb5 login had to be made to sshd: use of libal
so that /etc/athena/access would control login authorization and
fetching user information via Hesiod, etc.
Athena includes a third-party, x11-based tool for popping up a window
to ask for a pass phrase. We keep xss-ssh-askpass around to keep the
same appearance across platforms.
RPMs: athena-openssh, athena-x11-ssh-askpass.
See also: the "ssh", and "scp" man pages.
|
|
OpenSSL |
This open source toolkit implements the Secure Sockets Layer (SSL
v2/v3) and Transport Layer Security (TLS v1) protocols as well as a
full-strength general purpose cryptography library.
We began building openssl to have a common source base on both Solaris
and Linux. This permits users to put certificates for trusted
Certifying Authorities in the same place on both platforms
(/usr/athena/ssl).
RPM: athena-openssl.
See also: the "ssl" man page.
|
|
Cyrus SASL |
The cyrus-sasl package contains the Cyrus implementation of SASL
from Carnegie Mellon University. SASL, the Simple Authentication
and Security Layer, adds authentication support to connection-based
protocols. The Athena version contains bug fixes that enable mitmail to work.
RPM: athena-cyrus-sasl.
See also: the "sasl" man page.
|
|
x3270 |
Allows connection to remote hosts emulating an IBM 3270 terminal under X.
Adopted by Athena in advance of becoming a standard tool. Originally
contained bug fixes, and kept common across multiple platforms.
Now not widely enough used to be worth testing to see if the standard
version meets all present requirements.
RPM: athena-x3270.
See also: the "x3270" man page.
|
|
kermit |
Kermit is a ubiquitous and convenient interface for terminal login
sessions and simple file transfers. Red Hat offers a ckermit RPM.
Athena installs this version instead of ckermit to keep
compatibility across platforms.
RPM: athena-kermit.
See also: the "kermit" man page.
|
[Back to top]
Other Tools, Applications, and Services
perl |
Programming Language and Libraries
|
Athena adopted its own version of the perl programming language and libraries to have a common version across
platforms. Without a common version, differences caused cross-platform scripts to break.
RPM: athena-perl.
See also: the "perl" man page. |
python |
Programming Language and Libraries
|
As with perl, Athena adopted its own version of the python programming language and libraries for commonality
across platforms. Without a common version, differences were breaking programs that needed to work on all platforms.
RPM: athena-python.
See also: the "python" man page. |
Command Shells |
Originally, the Athena versions of command shells contained bug fixes and enhancements. All but one of the enhancements
became standard with the stock versions. When one types ~username to refer to the user's home directory, the
shell will look up the directory in Hesiod, Athena's name service. More generally, ~locker can be used to access
the top-level directory of any locker. For example:
ls ~acro
would list the files in the "acro" locker.
RPMs: athena-tcsh, athena-bash.
See also: the "tcsh", and "bash" man pages.
|
xscreensaver |
For security and to meet user expectations, xscreensaver has been modified for suitability in general use
clusters as follows:
- to remove all modules that show the screen.
- to only unlock the screen and return to the desktop after entering a password.
- to interface with the kerberos login to handle expired kerberos tickets appropriately.
- to add a button to the locked screen that allows another user to log out the original user from an abandoned the workstation.
- to provide a convenient desktop button for screen locking.
RPM: athena-xscreensaver.
See also: the "xscreensaver" man page. |
finger |
Finger has been modified for Athena to allow users to easily look up other users of the Athena system as
well as remote users.
RPM: athena-finger.
See also: the "finger" man page. |
[Back to top] |