/////////////////////////////////////////////////////////////////////////////   
///
/// BUGS
///

 - Can't deal with uninstalling info files if the dirfile is compressed (not using install-info)
 - (oub@eucmos.sim.ucm.es) Uwe Brauer reports that on SuSE 7.2 without gnome installed, he gets an error on uninstall


//////////////////////////////////////////////////////////////////////////////
///
/// TODO
///

Here's the gig: RED items need to be done soon, and are next on the
list. GREEN items are stuff that needs to be done, but aren't urgent
BLUE items are things that should be done, er, someday. WHITE is where
items that have been done are put - this section is cleared when we release. It makes
writing "what's new" easier :)

WHITE:
	- Sort out environment variables for package metadata (we have about
	  3 different places where they are set with different names)
	- Set default home prefix to follow the XDG_DIRS spec (~/.local?)
	- Link autogenerated docs to website
	- Spec scripts should automatically stop on the first function that fails
	- Split versioning. Plan of attack:
		- Change root names to use : and update function library to parse them.
		- Add support for package numbers, function library support. Update retrieve
		- Update a few skeletons to set the required variables, error out if INTERFACE_VERSION is not set
		- Update require to parse them.
	- Notes section in skeleton files
	- Document new skeletons system, how to write guide
	- Database entry should not be created on fail
	- Doc system should allow gtk-doc style #Hyperlinks
	- Make sure uninstall scripts can get prefix variable
	- Make new module for specs, add mplayer/sdl/dep-walker there
	- package uninstall/verify should have exit code of 1 if they fail
	- Should setupDesktopFile be internal?  <-- No!
	- Add Filips dependancy walker app to CVS, and package it
	- Change "Packager" field in skeleton files to "Skeleton-Author"
	- Rename autopackage-ldd to visual-ldd internally
	- InstallerFile key in specfiles should be removed
	- Make the scripts more resiliant to mistakes in specfiles or skeleton files (ie root name mismatches)
	
RED:

	
GREEN:
	- Create functions for installing GConf schemas	(patch pending merge)
	- Trace logs should go to a file, with output included nicely formatted (patch pending merge)

	- Create a `package system-info` command, which prints out versions of various things.

	- Better error reporting in copyFiles
	- Ensure there are no empty removeDir lines in logfile	
	- Implement package release numbers
	
	- implement requireExactVersion(), requireAtLeastVersion()
	
	- Bug in kde applnk file create (too many actions?)

	- Sections should have more intuitive names
	
	- extraction API should be more sane. Perhaps based on deleting files, rather than extracting them?
	- installExe should verify binaries as they are copied with ldd
	- There should be a [Globals] section where you can setup convenience variables etc	

	- Document that the [Retrieval] section must set RETRIEVAL_VERSIONED_ROOTNAME variable
	- Output of TTYFE should be less gnarly
	- Clean up package query code (reduce duplication etc)
	- Allow `package uninstall` to accept a file
	
	- Make the following skeletons not suck:
	       - libpng
	       - std c++ lib

	- Unit testing framework (failsafe based)
	       
	- Write high-level string handling functions. Sed must die!!!

	- Package Straw, a Gnome2 RSS reader in Python. People frequently bitch about how hard this app is to
	  install, making it easy would be a real coup.

	- output methods for:
	   - progress bars
	   - warnings
	   - notices
	   - altering labels (ie current file etc)

	- interaction methods for:
	   - menus
	   - checklists
	   - notices (present some text, give a choice of options)

	- Allow scripts to save environment variables across prep/install and perhaps uninstall
	- Disk space checking should have a clean way to abort install, tidy up etc
	- Make uninstall and verify FE independant
	- Write GUI front end (probably in GTK or Qt)

	- Support for when SuSE replace the KDE menus with their own
	(write to whichever is being used)

	- Internationalization in spec files

	- Add support for localised metadata
	- Convert makeinstaller to use getopts

	- Alter specfiles into exploded directories

	- Look into RPM/APT integration

	- Allow new menus to be created (not sure if this is a good idea)


BLUE:
	- Implement Solaris-style grouped symbol fixup in the linker,
	(seth cql com) said he'd be willing to help

	- GUI notifications to designated "administrator" users, who can then opt
	  to uninstall the package, or to uninstall it and reinstall it as global.

	- Package metadata containing mime types the program can handle, then
	  hook up to browser/email/files
	
	- Package signing with public keys embedded in the network?

	- Transactions: if we cancel an install, or something goes
	  wrong, reverse what we've done already

	- Create autopackage network

	- Write GUI specfile creator
	
	- Write emacs mode for specfiles

	- Bug reporting tool: ie, "package bugreport foobar" which would
          prompt for a report and send it to the named bug reporting
          email address.

        - "Safe mode" features, so scripts can be prevented from tampering
	  with things they arne't supposed to (LD_PRELOAD?).
