Fix a seg-fault if -l is used without a /dev prefix, e.g. cu -l cuaa0. Of
[dragonfly.git] / UPDATING
CommitLineData
f419daca 1$DragonFly: src/UPDATING,v 1.7 2004/04/22 23:24:19 dillon Exp $
984263bc 2
5e0ae0d4 3Updating Information for DragonFly users.
984263bc 4
5e0ae0d4
JR
5This file should warn you of any pitfalls which you might need to work around
6when trying to update your DragonFly system.
984263bc 7
5e0ae0d4
JR
8If you discover any problem, please contact the bugs@lists.dragonflybsd.org
9mailing list with the details.
984263bc 10
5e0ae0d4 11------------------------------------------------------------------------------
984263bc 12
f419daca 13> Upgrading to DragonFly from FreeBSD
5e0ae0d4 14---------------------
984263bc 15
f419daca
MD
16You can build the DragonFly world and DragonFly kernels on a FreeBSD-4.x or
17FreeBSD-5.x machine and then install DragonFly over FreeBSD, replacing
18FreeBSD. Note that the DragonFly buildworld target does not try to reuse
19make depend information, it starts from scratch, so no pre-cleaning of the
20object hierarchy is necessary.
21
22 # get the CVS pository (it is placed in /home/dcvs, 500MB).
23 # Please use the -h option and a mirror site to pull the
24 # initial repository, but feel free to use the main repository
25 # machine to pull updates.
26 cvsup /usr/share/examples/cvsup/DragonFly-supfile
27 # install the source from the CVS hierarchy (remove preexisting
28 # FreeBSD src first) (500MB)
29 cd /usr
30 rm -rf src
31 cvs -R -d /home/dcvs checkout src
32 cvs -R -d /home/dcvs checkout dfports
33
34 # build it (500MB used in /usr/obj)
35 #
36 cd /usr/src
37 make buildworld
38 make buildkernel KERNCONF=<KERNELNAME>
984263bc 39
f419daca
MD
40Once you have built DragonFly you have to install it over FreeBSD. Since
41DragonFly does not track changes made by FreeBSD to its include file
42hierarchy and include file pollution can cause all sorts of unexpected
43compilation issues to come up, it is best to wipe your include hierarchy
44prior to installing DragonFly. Note that you should not wipe any installed
45FreeBSD header files or binaries until after you have successfully completed
46the build steps above.
fb12f484 47
f419daca
MD
48 rm -rf /usr/include
49 mkdir /usr/include
50 make installkernel KERNCONF=<KERNELNAME>
51 make installworld
fb12f484 52
f419daca
MD
53Then you need to upgrade your /etc. DragonFly's 'make upgrade' target
54will unconditionally upgrade the /etc files that sysops do not usually
55mess around with, such as the files in /etc/rc.d. If you are unsure we
56recommend that you make a backup of your /etc before applying this step.
57Note that DragonFly's RC system is basically RCNG from FreeBSD-5, but
58there are some differences in the contents of the RC files.
59
60 make upgrade
61
62Finally we recommend that you do an 'ls -lta BLAH' for /bin, /sbin, /usr/bin,
63/usr/bin, and /usr/lib, and remove any stale files that you find.
64
65------------------------------------------------------------------------------
66
67> Upgrading DragonFly on an existing DragonFly system.
68---------------------
69
70The best way to upgrade DragonFly is to maintain a copy of the DragonFly
71CVS repository via cvsup and to checkout the source base and DragonFly
72ports via this repository. The repository is stored in /home/dcvs by
73default and requires about 500MB of disk space. The checked out source
74tree (/usr/src) requires about 500MB of disk space, and the build will
75eat around 500MB of space out of /usr/obj. To maintain the build you
76should reserve at least 2GB of disk space, and 3GB if you have the space.
77
78Note: most people run cvsup via a root cron job to keep the repository up to
79date. Please limit such automatic updates to once a day and try to randomize
80the hour and minute in the cron job a bit to avoid pileups.
81
82 # get the CVS pository (it is placed in /home/dcvs)
83 cvsup /usr/share/examples/cvsup/DragonFly-supfile
84 # install the source from the CVS hierarchy
85 cd /usr
86 cvs -R -d /home/dcvs checkout src
87 cvs -R -d /home/dcvs checkout dfports
88
89Once you have the repository and broken out sources you can decide whether to
90update your sources from the repository automatically or manually. Since
91you are tracking changes made to DragonFly, it is usually a good idea to
92update the sources manually:
fb12f484 93
fb12f484 94 cd /usr/src
f419daca 95 cvs update
fb12f484 96
f419daca 97To upgrade a DragonFly system from sources you run the following sequence:
fb12f484 98
fb12f484 99 cd /usr/src
fb12f484 100 make buildworld
f419daca
MD
101 make buildkernel KERNCONF=<KERNELNAME>
102 make installkernel KERNCONF=<KERNELNAME>
fb12f484
MD
103 make installworld
104
f419daca
MD
105You will also want to run the 'upgrade' target to upgrade your /etc. The
106upgrade target is aware of stale files created by older DragonFly
107installations and should delete them automatically.
108
109 make upgrade
110
111If you are using 'config' manually from /usr/src/sys/i386/conf/BLAH, note
112that the build will use the current DragonFly environment rather then
113the post-build environment from the last buildworld. For this reason manual
114configs are discouraged. The proper way to build a kernel is to use the
115'buildkernel' or 'quickkernel' target in /usr/src.
116
117Once you've done a full build of the world and kernel you can do incremental
118upgrades of either by using the 'quickworld' and 'quickkernel' targets
119instead of 'buildworld' and 'buildkernel'. If you have any problems with
120the quick targets, try doing a cvsup, cvs update, and then a full buildworld
121and buildkernel as shown above, before asking for help.
984263bc 122
5e0ae0d4
JR
123> Kerberos IV
124-------------
984263bc 125
5e0ae0d4
JR
126Kerberos IV (eBones) was removed from the tree, please consider moving to
127Kerberos 5 (Heimdal).
984263bc 128
892096eb
MD
129> FreeBSD and DragonFly ports
130-----------------------------
131
132DragonFly will eventually have its own package management system but at the
133moment we leverage off of the FreeBSD ports system. You should maintain
134/usr/ports from the FreeBSD cvs repository via cvsup just like you do now.
135
a7dd4e91 136DragonFly has its own 'port overrides' hierarchy in /usr/dfports. You can
892096eb
MD
137check this out of the DragonFly cvs repository using:
138
139cd /usr
a7dd4e91 140cvs -R -d /cvs checkout dfports
892096eb
MD
141
142You may wish to use a consolidated distfiles directory, in which case you
a7dd4e91 143should make /usr/dfports/distfiles a softlink to your existing distfiles
892096eb
MD
144directory (typically /usr/ports/distfiles).
145
146Be sure that you have installed 'relpath' from the DragonFly sources
147(/usr/src/usr.bin/relpath) as well as the updated /usr/share/mk files from
148/usr/src/share/mk. As a test you can cd into /usr/ports/sysutils/cpdup and
149build the port. Dragonfly should contain an override and you should see a
150warning message that the DragonFly override is being build instead when you
151build it from the FreeBSD ports.
984263bc 152