Brian J. Watson
2003-05-21 19:39:04 UTC
To the CI and OpenSSI communities-
The CI and OpenSSI user-mode code has been thrown together in an ad hoc
fashion since the beginning of these projects. It has been lumped
together into one RPM, source release, and CVS module that supports two
projects, two Linux distros, and three architectures. Its structure is
inconsistent and confusing to novice users and developers, forbids the
replacement of commands owned by base RPMs, and encumbers the production
of releases.
I propose the following changes to clean-up things:
Binary release changes
----------------------
* roughly separate cluster-tools into its CI and OpenSSI components
* roll just the CI part as the cluster-tools RPM
* spin off the OpenSSI part as an openssi-tools RPM and a set of
enhanced base RPMs, such as mount (util-linux), devfsd, nfs-utils, and
ipvsadm (ha-lvs)
* include kernel-openssi, cluster-tools, openssi-tools, the enhanced
base packages, documentation, and a simple installation script in a new
OpenSSI binary release
* eventually roll a CI binary release containing kernel-ci and cluster-tools
* libcluster should retain OpenSSI support in the reduced cluster-tools,
since it's not worth the effort to separate this code
Source release changes
----------------------
* combine the stripped-down cluster-tools with the CI kernel code to
make a new CI source release
* continue to include combined CI and OpenSSI code in OpenSSI releases
* eliminate Cluster Tools as a separate source release
* organize the CI and OpenSSI source trees to reflect the binary packages
* organize the large number of commands for openssi-tools into
functional groups
CVS repository changes
----------------------
* reorganize the repository to match the new source trees
* adjust the system of Makefiles to reflect the new source organization
* exclusively adopt Aneesh's GNU build system, so that only one set of
Makefiles needs to be reorg'd
* use a consistent system for supporting multiple distributions and
architectures
* write scripts for automatically producing source and binary releases
This is how I propose laying out the CI repository:
ci
|-- AUTHORS (was in cluster-tools)
|-- COPYING
|-- ChangeLog
|-- Makefile (rules for rolling releases)
|-- Makefile.am (rules for building and installing)
|-- NEWS (was in cluster-tools)
|-- README
|-- cluster-tools
| |-- Makefile.am
| |-- cmd/ (moved some commands to openssi-tools)
| |-- libcluster/
| `-- man/ (moved some pages to openssi-tools)
|-- configure.ac (was in cluster-tools)
|-- doc/
|-- kernel/ (was ci-linux/ci-kernel)
|-- kernel.configs
| `-- config.i586 (was in ci-linux/ci-kernel)
|-- kernel.patches (was ci-linux/3rd-party)
| |-- common/
| `-- i386/
`-- specs
|-- cluster-tools.spec (was in binary/rh7.3)
`-- kernel.spec
This is how I propose laying out the OpenSSI repository:
openssi
|-- AUTHORS
|-- COPYING
|-- ChangeLog
|-- Makefile (rules for rolling releases)
|-- Makefile.am (rules for building and installing)
|-- NEWS
|-- README
|-- configure.ac
|-- devfsd/ (was in cluster-tools/ssi)
|-- distro-pkgs (distro-specific packages)
| |-- debian (?? not sure about Debian pkg names ??)
| | |-- init-scripts (was cluster-tools/debian-init-scripts)
| | | |-- S01devfsd
| | | |-- S10checkroot.sh
| | | |-- S35mountall.sh
| | | |-- hostname.sh
| | | |-- install-deb-initscripts (was in cluster-tools)
| | | `-- rcSSI
| | `-- specs
| | `-- init-scripts.spec
| `-- redhat
| `-- specs/
|-- doc
| |-- INSTALL (was in binary/rh7.3)
| |-- INSTALL.cvs
| |-- INSTALL.gfs
| |-- INSTALL.ia64
| |-- INSTALL.pxe (was in cluster-tools)
| |-- INSTALL.source (was ssic-linux/doc/INSTALL)
| |-- README-CI
| |-- README-mosixll
| |-- README.cfs
| |-- README.hardmounts
| `-- cdsl
|-- ipvsadm/ (was cluster-tools/ha-lvs)
|-- kernel/ (was ssic-linux/ssi-kernel)
|-- kernel.configs
| |-- config.alpha (was in ssic-linux/ssi-kernel)
| |-- config.i586 (was in ssic-linux/ssi-kernel)
| |-- config.ia64 (was in ssic-linux/ssi-kernel)
| |-- config.ia642 (was in ssic-linux/ssi-kernel)
| |-- config.uml (was in ssic-linux/ssi-kernel)
| `-- kernel-2.4.18-i586-ssi.config (was in binary/rh7.3)
|-- kernel.patches (was ssic-linux/3rd-party)
| |-- common/
| |-- i386/
| `-- ia64/
|-- nfs-utils/ (patched by cluster-tools/ssi/nfslock.patch)
|-- openssi-tools
| |-- Makefile.am
| |-- arch
| | |-- Makefile.am
| | |-- alpha
| | | |-- Makefile.am
| | | `-- ssi_arch.pm (was cluster-tools/ssi/ssi_alpha.pm)
| | |-- i386
| | | |-- Makefile.am
| | | `-- ssi_arch.pm (was cluster-tools/ssi/ssi_i386.pm)
| | |-- ia64
| | | |-- Makefile.am
| | | `-- ssi_arch.pm (was cluster-tools/ssi/ssi_ia64.pm)
| | `-- uml
| | | |-- Makefile.am
| | |-- clustertab (was in cluster-tools/ssi)
| | `-- fstab (was in cluster-tools/ssi)
| |-- distro
| | |-- Makefile.am
| | |-- debian
| | | |-- Makefile.am
| | | |-- inittab.ssi (was cluster-tools/ssi/inittab.ssi.debian)
| | | `-- ssi_distro.pm (was cluster-tools/ssi/ssi_debian.pm)
| | `-- redhat
| | |-- Makefile.am
| | |-- inittab.ssi (was cluster-tools/ssi/inittab.ssi.redhat)
| | `-- ssi_distro.pm (was cluster-tools/ssi/ssi_redhat.pm)
| |-- fs
| | |-- Makefile.am
| | |-- cfs_mount.c (was in cluster-tools/cmd)
| | |-- cfs_remount.c (was in cluster-tools/cmd)
| | |-- cfs_setroot.c (was in cluster-tools/cmd)
| | |-- ckroot.ssi (was in cluster-tools/cmd)
| | |-- cmount.c (was in cluster-tools/cmd)
| | |-- gfscf.cf (was in cluster-tools/ssi)
| | |-- mount_remote_root.c (was in cluster-tools/cmd)
| | |-- pool0.cf (was in cluster-tools/ssi)
| | `-- pool0cidev.cf (was in cluster-tools/ssi)
| |-- init.ssi/ (was cluster-tools/ssi/init)
| |-- initscripts
| | |-- Makefile.am
| | |-- rc.modules (was in cluster-tools/ssi)
| | |-- rc.nodedown (was in cluster-tools/ssi)
| | |-- rc.nodeup (was in cluster-tools/ssi)
| | |-- rc.sysinit.nodeup (was in cluster-tools/ssi)
| | `-- rc.sysrecover (was in cluster-tools/ssi)
| |-- keepalive/ (was in cluster-tools/ssi)
| |-- man
| | |-- Makefile.am
| | |-- keepalive.1M.html (was in cluster-tools/man)
| | `-- spawndaemon.1M.html (was in cluster-tools/man)
| |-- net
| | |-- Makefile.am
| | |-- node_hostname.c (was in cluster-tools/cmd)
| | `-- setport_weight.c (was in cluster-tools/cmd)
| |-- proc
| | |-- Makefile.am
| | |-- load_level_com.h (was in cluster-tools/cmd)
| | |-- loadlevel.c (was in cluster-tools/cmd)
| | |-- loads.c (was in cluster-tools/cmd)
| | |-- migrate.c (was in cluster-tools/ssi/migrate)
| | |-- onall.c (was in cluster-tools/cmd)
| | |-- onnode.c (was in cluster-tools/cmd)
| | `-- where_pid.c (was in cluster-tools/cmd)
| `-- sysadmin
| |-- Clustertab.pm (was in cluster-tools/ssi)
| |-- Makefile.am
| |-- addnode (was in cluster-tools/ssi)
| |-- addnode.dev (was in cluster-tools/ssi)
| |-- addnode.pm (was in cluster-tools/ssi)
| |-- chnode (was in cluster-tools/ssi)
| |-- cluster_lilo (was in cluster-tools/ssi)
| |-- cluster_mkinitrd (was in cluster-tools/ssi)
| |-- mkdhcpd.conf (was in cluster-tools/ssi)
| |-- openssi_addnode (was in cluster-tools/ssi)
| `-- openssi_cluster_create (was in cluster-tools/ssi)
|-- specs
| |-- devfsd.spec
| |-- ipvsadm.spec
| |-- kernel.spec (was binary/rh7.3/kernel-2.4.spec)
| |-- nfs-utils.spec
| |-- openssi-tools.spec
| `-- util-linux.spec
`-- util-linux/ (was in cluster-tools/ssi)
Let me know what you think,
Brian
The CI and OpenSSI user-mode code has been thrown together in an ad hoc
fashion since the beginning of these projects. It has been lumped
together into one RPM, source release, and CVS module that supports two
projects, two Linux distros, and three architectures. Its structure is
inconsistent and confusing to novice users and developers, forbids the
replacement of commands owned by base RPMs, and encumbers the production
of releases.
I propose the following changes to clean-up things:
Binary release changes
----------------------
* roughly separate cluster-tools into its CI and OpenSSI components
* roll just the CI part as the cluster-tools RPM
* spin off the OpenSSI part as an openssi-tools RPM and a set of
enhanced base RPMs, such as mount (util-linux), devfsd, nfs-utils, and
ipvsadm (ha-lvs)
* include kernel-openssi, cluster-tools, openssi-tools, the enhanced
base packages, documentation, and a simple installation script in a new
OpenSSI binary release
* eventually roll a CI binary release containing kernel-ci and cluster-tools
* libcluster should retain OpenSSI support in the reduced cluster-tools,
since it's not worth the effort to separate this code
Source release changes
----------------------
* combine the stripped-down cluster-tools with the CI kernel code to
make a new CI source release
* continue to include combined CI and OpenSSI code in OpenSSI releases
* eliminate Cluster Tools as a separate source release
* organize the CI and OpenSSI source trees to reflect the binary packages
* organize the large number of commands for openssi-tools into
functional groups
CVS repository changes
----------------------
* reorganize the repository to match the new source trees
* adjust the system of Makefiles to reflect the new source organization
* exclusively adopt Aneesh's GNU build system, so that only one set of
Makefiles needs to be reorg'd
* use a consistent system for supporting multiple distributions and
architectures
* write scripts for automatically producing source and binary releases
This is how I propose laying out the CI repository:
ci
|-- AUTHORS (was in cluster-tools)
|-- COPYING
|-- ChangeLog
|-- Makefile (rules for rolling releases)
|-- Makefile.am (rules for building and installing)
|-- NEWS (was in cluster-tools)
|-- README
|-- cluster-tools
| |-- Makefile.am
| |-- cmd/ (moved some commands to openssi-tools)
| |-- libcluster/
| `-- man/ (moved some pages to openssi-tools)
|-- configure.ac (was in cluster-tools)
|-- doc/
|-- kernel/ (was ci-linux/ci-kernel)
|-- kernel.configs
| `-- config.i586 (was in ci-linux/ci-kernel)
|-- kernel.patches (was ci-linux/3rd-party)
| |-- common/
| `-- i386/
`-- specs
|-- cluster-tools.spec (was in binary/rh7.3)
`-- kernel.spec
This is how I propose laying out the OpenSSI repository:
openssi
|-- AUTHORS
|-- COPYING
|-- ChangeLog
|-- Makefile (rules for rolling releases)
|-- Makefile.am (rules for building and installing)
|-- NEWS
|-- README
|-- configure.ac
|-- devfsd/ (was in cluster-tools/ssi)
|-- distro-pkgs (distro-specific packages)
| |-- debian (?? not sure about Debian pkg names ??)
| | |-- init-scripts (was cluster-tools/debian-init-scripts)
| | | |-- S01devfsd
| | | |-- S10checkroot.sh
| | | |-- S35mountall.sh
| | | |-- hostname.sh
| | | |-- install-deb-initscripts (was in cluster-tools)
| | | `-- rcSSI
| | `-- specs
| | `-- init-scripts.spec
| `-- redhat
| `-- specs/
|-- doc
| |-- INSTALL (was in binary/rh7.3)
| |-- INSTALL.cvs
| |-- INSTALL.gfs
| |-- INSTALL.ia64
| |-- INSTALL.pxe (was in cluster-tools)
| |-- INSTALL.source (was ssic-linux/doc/INSTALL)
| |-- README-CI
| |-- README-mosixll
| |-- README.cfs
| |-- README.hardmounts
| `-- cdsl
|-- ipvsadm/ (was cluster-tools/ha-lvs)
|-- kernel/ (was ssic-linux/ssi-kernel)
|-- kernel.configs
| |-- config.alpha (was in ssic-linux/ssi-kernel)
| |-- config.i586 (was in ssic-linux/ssi-kernel)
| |-- config.ia64 (was in ssic-linux/ssi-kernel)
| |-- config.ia642 (was in ssic-linux/ssi-kernel)
| |-- config.uml (was in ssic-linux/ssi-kernel)
| `-- kernel-2.4.18-i586-ssi.config (was in binary/rh7.3)
|-- kernel.patches (was ssic-linux/3rd-party)
| |-- common/
| |-- i386/
| `-- ia64/
|-- nfs-utils/ (patched by cluster-tools/ssi/nfslock.patch)
|-- openssi-tools
| |-- Makefile.am
| |-- arch
| | |-- Makefile.am
| | |-- alpha
| | | |-- Makefile.am
| | | `-- ssi_arch.pm (was cluster-tools/ssi/ssi_alpha.pm)
| | |-- i386
| | | |-- Makefile.am
| | | `-- ssi_arch.pm (was cluster-tools/ssi/ssi_i386.pm)
| | |-- ia64
| | | |-- Makefile.am
| | | `-- ssi_arch.pm (was cluster-tools/ssi/ssi_ia64.pm)
| | `-- uml
| | | |-- Makefile.am
| | |-- clustertab (was in cluster-tools/ssi)
| | `-- fstab (was in cluster-tools/ssi)
| |-- distro
| | |-- Makefile.am
| | |-- debian
| | | |-- Makefile.am
| | | |-- inittab.ssi (was cluster-tools/ssi/inittab.ssi.debian)
| | | `-- ssi_distro.pm (was cluster-tools/ssi/ssi_debian.pm)
| | `-- redhat
| | |-- Makefile.am
| | |-- inittab.ssi (was cluster-tools/ssi/inittab.ssi.redhat)
| | `-- ssi_distro.pm (was cluster-tools/ssi/ssi_redhat.pm)
| |-- fs
| | |-- Makefile.am
| | |-- cfs_mount.c (was in cluster-tools/cmd)
| | |-- cfs_remount.c (was in cluster-tools/cmd)
| | |-- cfs_setroot.c (was in cluster-tools/cmd)
| | |-- ckroot.ssi (was in cluster-tools/cmd)
| | |-- cmount.c (was in cluster-tools/cmd)
| | |-- gfscf.cf (was in cluster-tools/ssi)
| | |-- mount_remote_root.c (was in cluster-tools/cmd)
| | |-- pool0.cf (was in cluster-tools/ssi)
| | `-- pool0cidev.cf (was in cluster-tools/ssi)
| |-- init.ssi/ (was cluster-tools/ssi/init)
| |-- initscripts
| | |-- Makefile.am
| | |-- rc.modules (was in cluster-tools/ssi)
| | |-- rc.nodedown (was in cluster-tools/ssi)
| | |-- rc.nodeup (was in cluster-tools/ssi)
| | |-- rc.sysinit.nodeup (was in cluster-tools/ssi)
| | `-- rc.sysrecover (was in cluster-tools/ssi)
| |-- keepalive/ (was in cluster-tools/ssi)
| |-- man
| | |-- Makefile.am
| | |-- keepalive.1M.html (was in cluster-tools/man)
| | `-- spawndaemon.1M.html (was in cluster-tools/man)
| |-- net
| | |-- Makefile.am
| | |-- node_hostname.c (was in cluster-tools/cmd)
| | `-- setport_weight.c (was in cluster-tools/cmd)
| |-- proc
| | |-- Makefile.am
| | |-- load_level_com.h (was in cluster-tools/cmd)
| | |-- loadlevel.c (was in cluster-tools/cmd)
| | |-- loads.c (was in cluster-tools/cmd)
| | |-- migrate.c (was in cluster-tools/ssi/migrate)
| | |-- onall.c (was in cluster-tools/cmd)
| | |-- onnode.c (was in cluster-tools/cmd)
| | `-- where_pid.c (was in cluster-tools/cmd)
| `-- sysadmin
| |-- Clustertab.pm (was in cluster-tools/ssi)
| |-- Makefile.am
| |-- addnode (was in cluster-tools/ssi)
| |-- addnode.dev (was in cluster-tools/ssi)
| |-- addnode.pm (was in cluster-tools/ssi)
| |-- chnode (was in cluster-tools/ssi)
| |-- cluster_lilo (was in cluster-tools/ssi)
| |-- cluster_mkinitrd (was in cluster-tools/ssi)
| |-- mkdhcpd.conf (was in cluster-tools/ssi)
| |-- openssi_addnode (was in cluster-tools/ssi)
| `-- openssi_cluster_create (was in cluster-tools/ssi)
|-- specs
| |-- devfsd.spec
| |-- ipvsadm.spec
| |-- kernel.spec (was binary/rh7.3/kernel-2.4.spec)
| |-- nfs-utils.spec
| |-- openssi-tools.spec
| `-- util-linux.spec
`-- util-linux/ (was in cluster-tools/ssi)
Let me know what you think,
Brian