modules/tinderbox_target.py: Use 'portdir' instead of hard-coding '/usr/portage'
[catalyst.git] / TODO
diff --git a/TODO b/TODO
index 7e1197debdeadad61965e001a15c4d7a65c80f62..bebdec777faed51ea24a531474327c2de5edb61e 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,8 +1,83 @@
-Add support for ~x86, etc builds
+# $Id$
 
-Add basic tinderbox support
+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.
 
-Add distcc support
+Global:
+- Remove spec_prefix from all exported variables
+  - 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
+  - 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
+         - 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%
 
-Make sure to turn off grsec chroot restrictions before starting the build
-(hint: echo 0 > /proc/sys/kernel/grsecurity/chroot_*)