modules/generic_stage_target.py: Use 'devpts' as mountmap key.
[catalyst.git] / TODO
diff --git a/TODO b/TODO
index 0fa481bc26b65a9e0ac9f2885c8bd062f229e809..bebdec777faed51ea24a531474327c2de5edb61e 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,24 +1,83 @@
+# $Id$
+
+This file is a rough list of changes that need to be made to catalyst.  If you
+have questions about any of these items, or wish to help with development, send
+them to the gentoo-catalyst@lists.gentoo.org mailing list.  Bug reports should
+be filed at http://tinyurl.com/79slrk (http://bugs.gentoo.org) under the
+Catalyst component.
+
+Global:
 - Remove spec_prefix from all exported variables
-- sign materials automatically
-- create logs
-- send emails
-- add multiple target support
+  - variables without spec_prefix are global and used in all targets
+  - variables with spec_prefix only apply to that target
+- add multiple target support for spec files
+  - target: stage1
+  - targets: stage1 stage2 stage3 stage4 livecd netboot
+- add more validation and checking for code which affects both host and target
+  - setup defaults if host isn't configured
+  - allow configuration globally (catalyst.conf), per-spec, or per-target
+  - ccache
+    - check host settings (size, location, etc) and restore them when done
+  - distcc
+    - check host settings (distcc_hosts, etc) and restore them when done
+  - icecream
+    - check host settings (icecream_hosts, etc) and restore them when done
+- add support for new portage features
+  - Cache backends
+    - metadata_overlay (portage default in 2.1.6)
+       - sqlite
+  - Jobs
+  - Load Average
+  - Dependency checking
+    - Deep checking
+       - Complete Graph
+       - Build-time dependencies
+  - USE changes
+    - newuse versus changed-use
+  - Failure detection
+    - Add --keep-going support
+- detect GCC version in seed stages for supported settings (CFLAGS)
+
+Config:
+- security
+  - sign materials automatically
+- logging
+  - add logging support
+    - file-based
+       - syslog
+  - add notification capabilities
+    - email
+       - snmp trap
 - separate out options that control catalyst versus the package manager
-- add a new livecd/type for livedvd
-  - make livedvd type perform several actions automatically
+  - options key should specify catalyst options
+  - new keys for package managers
+    - portage_features
+       - pkgcore_features
+
+Targets:
+- add support for livedvd
+  - do we use livecd/type or something new
+  - make livedvd type perform several actions automatically, if configured
     - auto-fetch distfiles
        - automatically pull stages
-- check that distcc_hosts is set before enabling distcc
-- allow setting of distcc_hosts in catalyst.conf with override in the specs
-- check ccache settings, such as size, and ensure we don't overwrite them
-- perform user management via a loop in livecd-stage2
-- add portage jobs support
-  - --jobs
-  - --keep-going
-  - --load-average
-- perform GCC version detection in seed stages to determine supported settings
-- build bootloaders for targets on-demand, rather than using pre-built tarballs
-- support for placeholders in spec file, both automatic and user-specifed
-  - %DATESTAMP% could be automatic
-  - %BUILDDIR% would be nice for livecd/iso instead of specifying full path
+         - local disk via absolute or relative path
+         - URI
+- change user creation to be more flexible
+  - stage4 and netboot support
+- build boot software for targets on-demand
+  - removes cdtar requirement
+  - allows one to specify multiple bootloaders
+    - boot/loader: grub elilo
+       - netboot/boot/loader: pxelinux elilo
+       - livecd/boot/loader: isolinux elilo
+  - add ability to specify other "bootables" to build/install, like memtest86+
+       - livecd/boot/image: memtest|/path/to/image
+       - do we also need a way to specify an initrd with this?
+- add variable support for spec files
+  - automatic substitution
+    - %DATESTAMP%
+       - %BUILDDIR%
+  - user-defined
+    - %DISTRIBUTION%
+       - %AUTHOR%