= Relax and Recovery TODO

A list of items that wait for someone to volunteer to fix :)


== Wait for feedback
* write network migration code for all other distributions
  - some work has been done in the meantime, but not sure if it is sufficient enough to cover all
  - waiting on customer feedback

* support dhcp for network migration
  - has been added in 1.9.0
  - waiting on customer feedback


== New features
* add a disklayout.conf-related menu item to modify and recreate diskrestore.sh from it

* add another warning if there is less space on /boot than eg. 10 MB

* Support dhcpcd (SLES11) in addition to dhclient

* avoid disabling selinux during backup
  - add --selinux option to tar and testing
  - rsync -X option tests required

* finalize/Gentoo/i386/17_rebuild_initramfs.sh
  - needs to be written, I have no idea what should be done here (since I don't have Gentoo)

* finalize/Fedora/i386/17_rebuild_initramfs.sh
  - needs to be written, seems like RH builds rich initramfs with all modules included
  - be aware, recent Fedora uses dracut instead of mkinitrd

* add fsadm so 'lvreduce -r' works
  - also add lvresize commands to shell history for convenience

* rewrite '/mnt/local/etc/fstab' so disklayout/diskrestore changes are taken into effect after a reboot
  - without this, a reboot will go into rescue mode because filesystems cannot be mounted

* implement reserved block count in percentage, rather than fixed sizes
  - otherwise changing the container (logical volume/partition) size may cause problems because the reserved block count is too high/not proportional to its new size


== Known issues
* reboot on Ubuntu rescue media broken
  - Probably we miss some script or config for upstart

* on RHEL4 the nbd kernel module is loaded as part of loading all block devices, this results in 128 nbd block devices offered to map to during manual recovery

* running checklayout (eg. every 15 minutes) blocks an mkrescue or format workflow ran at the same time

* we do not support backing up logical volumes that are not mounted/visible.
  - in case of eg. KVM hosts, we fail to back up those disk images that are logical volumes

* we have seen boot-problems where udev seems to wait indefinitely
  - since no USB support has been loaded, USB keyboards are not working to intervene
  - cold-booting this hardware always caused udev to continue (!)


== Documentation
* create official documentation for users and admins


== Packaging/installation
* Implement a Makefile with the following targets:
  - install
  - uninstall
  - dist
  - rpm
  - deb

* Check bash syntax from 'make dist' or 'make install' to prevent syntax errors
  - Maybe even provide a 'make test' target as well

* Check for empty files and/or dangling symlinks and/or files containing subversion symlink info
  - To help detect problems caused be backporting/forwardporting patches using patch/diff
  - As part of the above 'make test' target ?


== Community
* move to github, or something providing similar features to make contributing easier, includes:
  - website/wiki
  - issue-tracker
  - milestone integration
  - providing pull requests
  - decentralized


== Clean up
* unify the extlinux|isolinux configuration code between ISO and USB.
  - ATM this is a copy-paste job
  - probably put the meat into a function or a symlinked script

* 33_find_isolinux.sh
  - currently used also to determine the SYSLINUX_DIR
  - also for OUTPUT=USB
  - finding SYSLINUX_DIR should be a script of its own

* Can we drop the mkvendorrpm workflow?
  - merge the default SPEC file with the Fedora specific SPEC file

* Can we drop the mkdeb, mkdist, mktar, mkrpm workflows

* prep/Linux-ia64/20_getty_or_agetty.sh might be obsolete after the USE_SERIAL_CONSOLE piece has been added and tested successfully
  - ia64 architecture will not support Linux anymore in future? Dropped off the list in RHEL6.

* remove remaining progress code

* get rid of any vol_id dependencies, where possible (eg USE_LAYOUT)

* convert tabs to 4 spaces

* convert test and [ ] constructs to [[ ]] and (( )) constructs

* change filesystem structure into:
  - AUTHORS, ChangeLog, COPYING, README, TODO
  - bin/
  - conf/
  - contrib/
  - doc/
  - lib/
  - man/
  - skel/
  - stages/
  - workflows/
