#
# "SystemImager"
#
#  Copyright (C) 1999-2002 Brian Elliott Finley <bef@bgsw.net>
#  Copyright (C) 2002 Bald Guy Software 
#                     Brian E. Finley <bef@bgsw.net>
#
#   $Id: RELEASE_STEPS,v 1.59 2002/12/02 15:51:10 brianfinley Exp $
#

3.0 PRE-RELEASE
--------------------------------------------------------------------------------
Pending:
* warn users that we are no longer supporting tarball based installs.  
  Adventurous souls can check out the source from CVS and do a make, but 
  normal users should use a package.
* manual in pdf and html formats online
* SHIP IT!
* Post updated website changes.


Completed:
* add bit to to troubleshooting that describes the case where ETHER_SLEEP 
  should be increased
* devfsd needs to know how to make appropriate symlinks for cciss devices
* pxelinux seems to only work w/ gzipped initrd.imgs - can we move
  to those unilaterally?  Anser: Yes.
* ask Dann about how to build complete docs on Debian
  dannf> cd doc/manual_source ; make html pdf ?
* I'm concerned that rsync is being compiled in such a way that it believes
  that it has access to libraries that will let it do 64-Bit file access, but
  when run on the client against uclibc, it can't (i386 only).  Is there some
  way to compile rsync (in i386) so that it doesn't even try 64-bit file access?
  Or should we include a second copy of rsync in boel_binaries that has the proper
  libraries for 64bit file access, and just use the one in the initrd to get the 
  boel_binaries, and no more?  Or something else...  
  
  This is a question for dannf and sdague primarily.  -BEF-

  Fixed w/Dann's patch.

* double test local.cfg install using vars for IMAGESERVER and IMAGE only.
* e1000 module loading is broken - see #638731
* bcm5700 driver.  Is it in there?  Can we include it as a module?
    Added -> tigon3 & bcm5700 drivers
* e1000 as module
* change "Please send email to: -> systemimager-discuss@"
* grep -r XXX .
* chown -R 0.0 /lib/modules after untarring boel_binaries.tar.gz
* ia64 doesn't boot
* addclients -domainname optional & related bug
* incorporate Common.pm elilo.efi stuff into updateclient
* updateclient lilo portion
* update updateclient documentation (last_root)
* updateclient update portion
* updateclient -a bug: http://sourceforge.net/tracker/index.php?func=detail&aid=610755&group_id=259&atid=100259
* incorporate Common.pm elilo.efi stuff into mk*whatever
* proof-read all README, and similar files
* recommended Debian install method (Going with apt.sources addition for now)
* test using hosts only
* test updateclient -a
* test updateclient -dir
* test updateclient normal
* verify CHANGE.LOG additions
* added a test in addclients for -host-range.  test for numeric value, and for both values



3.0 PRE-FEATURE FREEZE
--------------------------------------------------------------------------------
Pending:
* Nothing!

Completed:
* remove stuff from lsimage listings
* JFS (SD) 
* server.conf -> systemimager.conf (BEF)
* ethersleep 0 -> 35
* combine initrd makefile with the top level (df)
* XML codes instead of \ASCII codes (BEF or SD)
    http://www.w3.org/TR/1998/REC-xml-19980210#sec-predefined-ent
* addclients re-write -> clean up and functionize (BEF)
  (done enough for 3.0 release)
* cramfs (DF)
* move flavors into their own directories (DF)
* add sfdisk to boel binaries tarball. (bef, no! -> sd ;-) )
* uclibc working like we want (DF)
* sfdisk not working in prepareclient (bef)
* remove fs= from disk section.  add optional id= , and code to use sfdisk
  to use it. (bef)
* docs to build on other distros (df)
* add netbootmond (bef)

  Have client grab a bogus file, say "<imageserver>::scripts/finished", at the
  end of an install.  Have a daemon running that changes the pxelinux config
  file for that client based on rules in the systemimager.conf file.  Perhaps
  those rules look like this:

  NET_BOOT_DEFAULT = [ LOCAL | NET ]

  If the default is set to LOCAL, then the daemon automatically creates a 
  symlink to "/etc/systemimager/pxelinux.cfg/syslinux.cfg.noboot" with the hex 
  equiv of the machines IP address, thereby causing the machine to 
  automatically boot from a local device next time.

  If the default is set to NET, then the daemon doesn't start up.

  Perhaps in the future, we can also ranges of hosts with different net boot
  mechanisms so that the same daemon can do the appropriate thing for each 
  range of hosts.  We would then also add a flag to mknetbootable to indicate
  the appropriate boot system, like "-pxe".

* add mkclientnetboot (was mknetbootable) (bef) 

  mknetbootable will accept a host name or IP address as input, and will remove
  the file named with the ip address hex equiv that is preventing it from net 
  booting.

* Add XML::Simple to SystemImager lib install (df or bef)
  No longer necessary.  RPMs were found.
  http://rpmfind.net/linux/rpm2html/search.php?query=perl-XML-Simple
   and
  http://rpm.pbone.net/index.php3/idpl/294219/idpa/294219/stat/4
* remove install_siboot (df)
* Add CCB's ctrl+c catching code to rcS (bef)
* We should tell the user when they run addclients that if they have 
  backwards and forwards dns resolution setup for their clients, that they need
  not add the local hosts entries.  
* add ETHER_SLEEP option
* Fix mkautoinstalldiskette files being truncated. (bef)
* XFS (df)
* LAST_ROOT code (added back -- we'll see if it passes during release 
  candidate testing) (bef)
* mkdhcpserver -- commandlineize and require -dhcp-version 2 or -dhcp-version 3
* Verify DHCP option numbers.
* Variables in dhcpd.conf and local.cfg -> make sure that all
  variables that can be used in either dhcpd.conf or local.cfg
  can be used in both.  (unless it's impossible as Sean noted
  with ETHER_SLEEP ;-)  Add ETHER_SLEEP=35 to local.cfg.
* modules issue
* Get rid of static_dhcp and dynamic_dhcp in favor of simply "dhcp" (and
  don't mess with the hostname at all).

  Add these comments to autoinstallscripts.
  ##################################################################
  #
  # Uncomment the line below to leave your hostname blank.  Certain
  # distributions use this as an indication to take on the hostname
  # provided by a DHCP server.  The default is to have
  # SystemConfigurator assign your clients the hostname that
  # corresponds to the IP address the use during the install.
  #
  #HOSTNAME=""

* Get SSH working again (BEF)  Legality issues?
    
    Misc. Notes
    ----------------------------------------------------------------------------
    o make WITH_SSH=1 all
    o FLAVOR should be set to: standard-ssh
    o SSH_DOWNLOAD_URL should only be URL excluding /systemimager/
        Example: 
                    SITE: http://thefinleys.com/systemimager/boot/i386/standard-ssh/boel_binaries.tar.gz
        SSH_DOWNLOAD_URL: http://thefinleys.com/

    o install will recommend adding the following line to Apache's httpd.conf
        (or manually do something similar for other web server)

        Alias /systemimager/boot/ /usr/share/systemimager/boot/
        <Directory /usr/share/systemimager/boot>
            Options Indexes MultiViews
            AllowOverride None
            Order allow,deny
            Allow from all
        </Directory>
    
    Behavioral Notes
    ----------------------------------------------------------------------------
        if SSH_DOWNLOAD_URL is set
            snarf $SSH_DOWNLOAD_URL/systemimager/boot/${ARCH}/${FLAVOR}/boel_binaries.tar.gz /tmp/boel_binaries.tar.gz
        else
            rsync -av ${IMAGESERVER}::boot/${ARCH}/${FLAVOR}/boel_binaries.tar.gz /tmp/ || shellout
        fi
        ( cd / && tar -xvzf /tmp/boel_binaries.tar.gz ) || shellout

* -ssh-key option in mkautoinstalldiskette must be re-added.
* ssh documentation touch ups (major ssh doc overhaul will happen later).









3.2 stuff
--------------------------------------------------------------------------------
o System Installation Suite HOWTO for linuxdoc.org
o HOWTO Change the Filesystem of an Existing Machine
o consider putting our CREDITS file into the Linux kernel's CREDITS file's 
  format
o update mkdhcpstatic to check DNS in addition to /etc/hosts to reverse resolve
  host names
o pcmcia utils in boel_binaries_tarball
o multiple small function related libraries
o consider making mkautoinstalldiskette and mkautoinstallcd not require root 
    when using -out-file.

o Hey all,

  First off, are we going to try to support local.cfg files on CDs in 3.0?  I
  thought that was on the list (especially with the fact that many boxes are
  floppyless at the moment, and cd-rw are pretty cheap).  It would require
  adding isofs to the kernel, and trying to mount it.

  I also have another request for passing variables, via kernel appends.  On
  the big boxen (iSeries and zSeries) that have virtual linuxes running on top
  of a base OS, there is no floppy boot or such.  You just say "Boot this
  kernel, that ramdisk, and here is your kernel append line."  The kernel
  append options are available from userspace on a running machine via
  /proc/cmdline.  Hence we could even possibly use this in the cd boot case
  instead of isofs support as well.  The autoinstall script would just parse
  off all the cmdline options that were a=b, and add them to the config
  variables.  With this trick you could also theoretically set local.cfg like
  parameters during pxeboot as well.

  Ok, value seems to be 80 bytes.  It is set by a define in
  include/linux/elfcore.h
  
  #define ELF_PRARGSZ     (80)    /* Number of chars for args */

  so hopefully we could just up it and things wouldn't completely fall appart.

  What do you all think?

        -Sean

o Move most of -help output to man pages.
o Standardized format for man pages and for -help output.
* improve dhclient delay wait. (bef or sdague)
* add full -h text to man page for mkautoinstalldiskette.
o Consider rsync's BATCH MODE
o consider lvm support
o parallelize si_install (is mktemp available on all distros)





Other things to consider
--------------------------------------------------------------------------------
o Modular kernel notes:
  o If we go to modular drivers for disk devices, then we no longer have 
    the ability to read a local.cfg file from a local disk.  Possible options
    are:
    1) Only offer local.cfg support by floppy or CD.
    2) Offer local.cfg support by floppy, CD, or disk, but require that the user
       compile the required drivers statically in order to use the local.cfg on
       hard drive option.

o Modify updateclient -autoinstall to use whatever kernel/initrd combo it 
  finds if it only finds one, but to present the user with a choice if it 
  finds more than one flavor.

o make local.cfg work on CD
o include a cerberus test suite option

o NAMESERVER= option for local.cfg

o lsimage on client gives error messages when run without options.
  Give better output at least.

o updateclient -> SERVER_LAST_SYNCED_TO
o autoinstallscript -> SERVER_LAST_SYNCED_TO

o LABEL= with md devices

o re-read contrib emails

o exclude files on server and on client

o create rmclient

o have rmimage,mvimage,cpimage tell the user what it's doing if($verbose)
  Removing rsync entry...done!
  Removing image...done!
  etc...

o test $IMAGENAME stuff
  o IMAGENAME in local.cfg
  o dhcp23.sh
  o dhcp.master

o mkbootserver
  Make a little friendlier, perhaps use locate to produce a list of files 
  so users don't have to go looking for them.  Also, perhaps move to 
  perl?


