Update the X11 path for the default login.conf.
[dragonfly.git] / UPDATING
index 883d91f..088ee10 100644 (file)
--- a/UPDATING
+++ b/UPDATING
@@ -1,4 +1,4 @@
-$DragonFly: src/UPDATING,v 1.7 2004/04/22 23:24:19 dillon Exp $
+$DragonFly: src/UPDATING,v 1.20 2006/07/02 08:13:07 swildner Exp $
 
 Updating Information for DragonFly users.
 
@@ -10,6 +10,38 @@ mailing list with the details.
 
 ------------------------------------------------------------------------------
 
+> Updating from pre-1.2 systems or FreeBSD 4.x to DragonFly 1.3+ (either
+  PREVIEW or HEAD)
+---------------------
+
+The compatiblity shims for the build environment have been removed, you
+have to update to DragonFly 1.2 release branch first.
+
+The default PAM configuration has moved from /etc/pam.conf to /etc/pam.d/.
+The existing configuration can be converted using /etc/pam.d/convert.sh.
+Entries in /etc/pam.d/ override entries in /etc/pam.conf. In addition
+the pam_skey.so module was retired, you have to remove it manually from
+your configuration, when you convert it.
+
+> Required user and group IDs when upgrading from either FreeBSD or DragonFly
+---------------------
+
+The following users may be missing from your password file.  Use vipw and
+add any that are missing:
+
+smmsp:*:25:25::0:0:Sendmail Submission User:/var/spool/clientmqueue:/sbin/nologin
+_pflogd:*:64:64::0:0:pflogd privsep user:/var/empty:/sbin/nologin
+_ntp:*:65:65::0:0:ntpd privsep user:/var/empty:/sbin/nologin
+
+The following groups may be missing from your group file.  Use vi /etc/group
+and add any that are missing:
+
+smmsp:*:25:
+authpf:*:63:
+_pflogd:*:64:
+_ntp:*:65:
+
+
 > Upgrading to DragonFly from FreeBSD
 ---------------------
 
@@ -19,17 +51,16 @@ FreeBSD.  Note that the DragonFly buildworld target does not try to reuse
 make depend information, it starts from scratch, so no pre-cleaning of the
 object hierarchy is necessary.
 
-       # get the CVS pository (it is placed in /home/dcvs, 500MB).
+       # get the CVS repository (it is placed in /home/dcvs, 500MB).
        # Please use the -h option and a mirror site to pull the 
        # initial repository, but feel free to use the main repository
        # machine to pull updates.
-       cvsup /usr/share/examples/cvsup/DragonFly-supfile
+       cvsup /usr/share/examples/cvsup/DragonFly-cvs-supfile
        # install the source from the CVS hierarchy (remove preexisting
        # FreeBSD src first) (500MB)
        cd /usr
        rm -rf src
-       cvs -R -d /home/dcvs checkout src
-       cvs -R -d /home/dcvs checkout dfports
+       cvs -R -d /home/dcvs checkout -P src
 
        # build it (500MB used in /usr/obj)
        #
@@ -50,17 +81,24 @@ the build steps above.
        make installkernel KERNCONF=<KERNELNAME>
        make installworld
 
-Then you need to upgrade your /etc.  DragonFly's 'make upgrade' target 
+Then you need to upgrade your system.  DragonFly's 'make upgrade' target 
 will unconditionally upgrade the /etc files that sysops do not usually
-mess around with, such as the files in /etc/rc.d.  If you are unsure we 
-recommend that you make a backup of your /etc before applying this step.
-Note that DragonFly's RC system is basically RCNG from FreeBSD-5, but
-there are some differences in the contents of the RC files.
+mess around with, such as the files in /etc/rc.d.  It will also remove any
+obsolete files such as utilities and manpages that have been removed from
+the system since the version you're coming from.  If you are unsure we 
+recommend that you make a backup of at least your /etc before applying
+this step.  Note that DragonFly's RC system is basically RCNG from
+FreeBSD-5, but there are some differences in the contents of the RC files.
 
        make upgrade
 
+NOTE! Never do a 'make upgrade' before 'make installworld' has been run.
+Doing so might leave your system in an unusable state.
+
 Finally we recommend that you do an 'ls -lta BLAH' for /bin, /sbin, /usr/bin,
-/usr/bin, and /usr/lib, and remove any stale files that you find.
+/usr/bin, and /usr/lib, and remove any stale files that you find.  Please
+report these files to the DragonFly developers so that they can be added to
+the 'upgrade' target.
 
 ------------------------------------------------------------------------------
 
@@ -68,23 +106,22 @@ Finally we recommend that you do an 'ls -lta BLAH' for /bin, /sbin, /usr/bin,
 ---------------------
 
 The best way to upgrade DragonFly is to maintain a copy of the DragonFly
-CVS repository via cvsup and to checkout the source base and DragonFly
-ports via this repository.   The repository is stored in /home/dcvs by
-default and requires about 500MB of disk space.  The checked out source
-tree (/usr/src) requires about 500MB of disk space, and the build will
-eat around 500MB of space out of /usr/obj.  To maintain the build you 
-should reserve at least 2GB of disk space, and 3GB if you have the space.
+CVS repository via cvsup and to checkout the source base via this repository.
+The repository is stored in /home/dcvs by default and requires about 800MB
+of disk space.  The checked out source tree (/usr/src) requires about 400MB
+of disk space, and the build will eat around 800MB of space out of /usr/obj.
+To maintain the build you should reserve at least 2.5GB of disk space, and
+3.5GB if you have the space.
 
 Note: most people run cvsup via a root cron job to keep the repository up to
 date.  Please limit such automatic updates to once a day and try to randomize
 the hour and minute in the cron job a bit to avoid pileups.
 
-       # get the CVS pository (it is placed in /home/dcvs)
-       cvsup /usr/share/examples/cvsup/DragonFly-supfile
+       # get the CVS repository (it is placed in /home/dcvs)
+       cvsup /usr/share/examples/cvsup/DragonFly-cvs-supfile
        # install the source from the CVS hierarchy
        cd /usr
-       cvs -R -d /home/dcvs checkout src
-       cvs -R -d /home/dcvs checkout dfports
+       cvs -R -d /home/dcvs checkout -P src
 
 Once you have the repository and broken out sources you can decide whether to
 update your sources from the repository automatically or manually.  Since
@@ -92,7 +129,7 @@ you are tracking changes made to DragonFly, it is usually a good idea to
 update the sources manually:
 
        cd /usr/src
-       cvs update
+       cvs update -dP
 
 To upgrade a DragonFly system from sources you run the following sequence:
 
@@ -102,14 +139,17 @@ To upgrade a DragonFly system from sources you run the following sequence:
        make installkernel KERNCONF=<KERNELNAME>
        make installworld
 
-You will also want to run the 'upgrade' target to upgrade your /etc.  The
-upgrade target is aware of stale files created by older DragonFly 
-installations and should delete them automatically.
+You will also want to run the 'upgrade' target to upgrade your /etc and the
+rest of your system.  The upgrade target is aware of stale files created by
+older DragonFly installations and should delete them automatically.
 
        make upgrade
 
+NOTE! Never do a 'make upgrade' before 'make installworld' has been run.
+Doing so might leave your system in an unusable state.
+
 If you are using 'config' manually from /usr/src/sys/i386/conf/BLAH, note 
-that the build will use the current DragonFly environment rather then
+that the build will use the current DragonFly environment rather than
 the post-build environment from the last buildworld.   For this reason manual
 configs are discouraged.  The proper way to build a kernel is to use the
 'buildkernel' or 'quickkernel' target in /usr/src.
@@ -126,27 +166,26 @@ and buildkernel as shown above, before asking for help.
 Kerberos IV (eBones) was removed from the tree, please consider moving to
 Kerberos 5 (Heimdal).
 
-> FreeBSD and DragonFly ports
------------------------------
+> Package Management System
+---------------------------
+
+Starting with the 1.4 release, DragonFly uses NetBSD's pkgsrc package
+management system.  The necessary tools to build and maintain packages
+are provided in /usr/pkg/bin and /usr/pkg/sbin.  Make sure that these
+directories are in your PATH variable.
 
-DragonFly will eventually have its own package management system but at the
-moment we leverage off of the FreeBSD ports system.  You should maintain
-/usr/ports from the FreeBSD cvs repository via cvsup just like you do now.
+In order to obtain a reasonably current snapshot of the pkgsrc tree, use
+the tarball from NetBSD:
 
-DragonFly has its own 'port overrides' hierarchy in /usr/dfports.  You can
-check this out of the DragonFly cvs repository using:
+       fetch -o /tmp/pkgsrc.tar.gz ftp://ftp.NetBSD.org/pub/NetBSD/packages/pkgsrc.tar.gz
+       cd /usr; tar -xzf /tmp/pkgsrc.tar.gz; chown -R root:wheel pkgsrc
 
-cd /usr
-cvs -R -d /cvs checkout dfports
+This tree can then be kept up to date with cvs update:
 
-You may wish to use a consolidated distfiles directory, in which case you
-should make /usr/dfports/distfiles a softlink to your existing distfiles
-directory (typically /usr/ports/distfiles).
+       cd /usr/pkgsrc; cvs up
 
-Be sure that you have installed 'relpath' from the DragonFly sources
-(/usr/src/usr.bin/relpath) as well as the updated /usr/share/mk files from
-/usr/src/share/mk.  As a test you can cd into /usr/ports/sysutils/cpdup and
-build the port.  Dragonfly should contain an override and you should see a
-warning message that the DragonFly override is being build instead when you
-build it from the FreeBSD ports.
+NOTE! If you upgraded from a pre-1.4 system to 1.4 or later, you need to
+build and install the pkgsrc bootstrap manually:
 
+       cd /usr/pkgsrc/bootstrap
+       ./bootstrap --pkgdbdir /var/db/pkg --prefix /usr/pkg