X-Git-Url: https://gitweb.dragonflybsd.org/~nant/dragonfly.git/blobdiff_plain/354de5978f06fdc88a435d9c8a722e202c7d00e2..02096bc2ac33cea8c8fe268a8f306f5bf27c6d95:/UPDATING diff --git a/UPDATING b/UPDATING index 883d91fe61..088ee10b7e 100644 --- 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= 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= 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