-$DragonFly: src/UPDATING,v 1.10 2004/11/23 02:20:40 hmp Exp $
+$DragonFly: src/UPDATING,v 1.20 2006/07/02 08:13:07 swildner Exp $
Updating Information for DragonFly users.
------------------------------------------------------------------------------
+> 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
---------------------
# 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)
#
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.
------------------------------------------------------------------------------
---------------------
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 repository (it is placed in /home/dcvs)
- cvsup /usr/share/examples/cvsup/DragonFly-supfile
+ 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
update the sources manually:
cd /usr/src
- cvs update
+ cvs update -dP
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.
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