Copyright (C) 1999 Florian La Roche


programs to change jurix to the new format:
===========================================
/usr/sbin/jur-pack	packs a subdirectory into a jurix package
/usr/sbin/jur-index	generate an index of all jurix packages
/usr/sbin/jur-change	shell script that changes the complete
			jurix distribution into the new format


programs that update a jurix installation:
==========================================
/sbin/jur-unpack	unpack a jurix installation (like rpm)
/sbin/jur-update	shell script that calls /sbin/jur-unpack


To get started:
===============
- change all jurix packages into the new format with "jur-change"
- go into a new subdirectory (should be at the start of a new
  partition if you want to boot it...) where an installation should
  be done
- "jur-unpack" must be called at the root of the new installation or
  from "/" if you update a running system
- mkdir -p var/jurix/{packages,unchanged}
- cp /usr/doc/packages/jurix/config.sample var/jurix/config
- vi var/jurix/config
- vi /sbin/jur-update
- /sbin/jur-update
- var/jurix/backup contains a list of all changed files
- var/jurix/not_in_package contains a list of all files that are
  not in one of the packages
- use "ci -l backup" to safe the contents. you can see the differences
  after the next run of jur-update with "rcsdiff -u backup" and then
  call "ci -l backup" again to make this the current version...
  (do the same for not_in_package...)
- var/jurix/unchanged/ contains all original files that were changed in
  your system
- var/jurix/packages/ contains an index for each package you install
  that can be used for update/uninstall purposes by jur-unpack


Binary package format:
======================
just the same as a normal tar archive. regular files are compressed and
have their md5sum included. all files/dirs have an additional flag:
- IGN_UGID: ignore user/group changes
- IGN_PERM: ignore permission changes
- IGN_TIME: ignore changes of the modification time
- NO_BACKUP: if the file is changed and written to the backup file,
  add a special mark. this file can then be excluded from a backup
  of all changed files.
- NO_DIFF: if the file is changed and written to the backup file,
  all files containing a '\0' and all files marked NO_DIFF can be
  excluded from an automated "diff" to all changed files.
  the result should be a diff of all changed config files.
- IS_DOCU: all files/dirs that are belong to the docu. they can be
  excluded from your system with a config option.
- IS_DEVEL: all files/dirs that are needed for development. they can
  be excluded from your system with a config option. note that packages
  like "gdb" have not all files marked as IS_DEVEL. this is currently just
  used to exclude libraries and compiler include files.
- RUN_INSTALL: run this file after installing this package
- RUN_UNINSTALL: start this prog before uninstalling the package
- HAS_NUL: this regular file contains a '\0' byte

The config file can override all flag settings and jur-unpack will
store these new values in /var/jurix/packages/.

You can have to ways of excluding files/dirs:
- "skip" will act like that it was never included in the binary package.
  you can e.g. include a special directory once and then mark it as "skip"
  to have complete control over the files on your own.
  (/local used to be a typical example for the jurix distribution. I used
  to upgrade everything else automatically and look at /local by hand.)
- "del" will delete the files if they are unchanged from the original files
  in the binary package und only leave changed files on your system.
- "skip" and "del" are used for files and "skip_dir" and "del_dir" are used
  for directories.

All file and directory names are given without a leading "/". The root
directory has the name ".". (example file names: ./README.ps etc/mtab)
All file/dir names can make use of globbing characters.

To update files: Only from the binary package unchanged files are deleted
or updated. A file is changed if it is a regular file and the md5sum is
not the same as in the binary package.
if the option "paranoid" is not given, we will only look at the
filesize and the timestamp to find all unchanged files.
As all non-regular files contain no data, they are always changed back
to the settings in the binary package. If you need to change non-regular
files, either add the changes to the config file or mark them as skipped.


