Commit | Line | Data |
---|---|---|
b8cbf045 | 1 | $DragonFly: src/UPDATING,v 1.16 2005/11/24 16:33:03 swildner Exp $ |
984263bc | 2 | |
5e0ae0d4 | 3 | Updating Information for DragonFly users. |
984263bc | 4 | |
5e0ae0d4 JR |
5 | This file should warn you of any pitfalls which you might need to work around |
6 | when trying to update your DragonFly system. | |
984263bc | 7 | |
5e0ae0d4 JR |
8 | If you discover any problem, please contact the bugs@lists.dragonflybsd.org |
9 | mailing list with the details. | |
984263bc | 10 | |
5e0ae0d4 | 11 | ------------------------------------------------------------------------------ |
984263bc | 12 | |
58116288 JS |
13 | > Updating from pre-1.2 systems or FreeBSD 4.x to DragonFly 1.3+ (either |
14 | PREVIEW or HEAD) | |
15 | --------------------- | |
16 | ||
17 | The compatiblity shims for the build environment have been removed, you | |
18 | have to update to DragonFly 1.2 release branch first. | |
19 | ||
1fcc7462 JS |
20 | The default PAM configuration has moved from /etc/pam.conf to /etc/pam.d/. |
21 | The existing configuration can be converted using /etc/pam.d/convert.sh. | |
22 | Entries in /etc/pam.d/ override entries in /etc/pam.conf. In addition | |
23 | the pam_skey.so module was retired, you have to remove it manually from | |
24 | your configuration, when you convert it. | |
58116288 | 25 | |
a3107071 MD |
26 | > Required user and group IDs when upgrading from either FreeBSD or DragonFly |
27 | --------------------- | |
28 | ||
29 | The following users may be missing from your password file. Use vipw and | |
30 | add any that are missing: | |
31 | ||
32 | smmsp:*:25:25::0:0:Sendmail Submission User:/var/spool/clientmqueue:/sbin/nologin | |
dcf85892 JS |
33 | _pflogd:*:64:64::0:0:pflogd privsep user:/var/empty:/sbin/nologin |
34 | _ntp:*:65:65::0:0:ntpd privsep user:/var/empty:/sbin/nologin | |
a3107071 MD |
35 | |
36 | The following groups may be missing from your group file. Use vi /etc/group | |
37 | and add any that are missing: | |
38 | ||
39 | smmsp:*:25: | |
40 | authpf:*:63: | |
dcf85892 JS |
41 | _pflogd:*:64: |
42 | _ntp:*:65: | |
a3107071 MD |
43 | |
44 | ||
f419daca | 45 | > Upgrading to DragonFly from FreeBSD |
5e0ae0d4 | 46 | --------------------- |
984263bc | 47 | |
f419daca MD |
48 | You can build the DragonFly world and DragonFly kernels on a FreeBSD-4.x or |
49 | FreeBSD-5.x machine and then install DragonFly over FreeBSD, replacing | |
50 | FreeBSD. Note that the DragonFly buildworld target does not try to reuse | |
51 | make depend information, it starts from scratch, so no pre-cleaning of the | |
52 | object hierarchy is necessary. | |
53 | ||
466bbc10 | 54 | # get the CVS repository (it is placed in /home/dcvs, 500MB). |
f419daca MD |
55 | # Please use the -h option and a mirror site to pull the |
56 | # initial repository, but feel free to use the main repository | |
57 | # machine to pull updates. | |
5010eeb3 | 58 | cvsup /usr/share/examples/cvsup/DragonFly-cvs-supfile |
f419daca MD |
59 | # install the source from the CVS hierarchy (remove preexisting |
60 | # FreeBSD src first) (500MB) | |
61 | cd /usr | |
62 | rm -rf src | |
63 | cvs -R -d /home/dcvs checkout src | |
64 | cvs -R -d /home/dcvs checkout dfports | |
65 | ||
66 | # build it (500MB used in /usr/obj) | |
67 | # | |
68 | cd /usr/src | |
69 | make buildworld | |
70 | make buildkernel KERNCONF=<KERNELNAME> | |
984263bc | 71 | |
f419daca MD |
72 | Once you have built DragonFly you have to install it over FreeBSD. Since |
73 | DragonFly does not track changes made by FreeBSD to its include file | |
74 | hierarchy and include file pollution can cause all sorts of unexpected | |
75 | compilation issues to come up, it is best to wipe your include hierarchy | |
76 | prior to installing DragonFly. Note that you should not wipe any installed | |
77 | FreeBSD header files or binaries until after you have successfully completed | |
78 | the build steps above. | |
fb12f484 | 79 | |
f419daca MD |
80 | rm -rf /usr/include |
81 | mkdir /usr/include | |
82 | make installkernel KERNCONF=<KERNELNAME> | |
83 | make installworld | |
fb12f484 | 84 | |
b8cbf045 | 85 | Then you need to upgrade your system. DragonFly's 'make upgrade' target |
f419daca | 86 | will unconditionally upgrade the /etc files that sysops do not usually |
b8cbf045 SW |
87 | mess around with, such as the files in /etc/rc.d. It will also remove any |
88 | obsolete files such as utilities and manpages that have been removed from | |
89 | the system since the version you're coming from. If you are unsure we | |
90 | recommend that you make a backup of at least your /etc before applying | |
91 | this step. Note that DragonFly's RC system is basically RCNG from | |
92 | FreeBSD-5, but there are some differences in the contents of the RC files. | |
f419daca MD |
93 | |
94 | make upgrade | |
95 | ||
b8cbf045 SW |
96 | NOTE! Never do a 'make upgrade' before 'make installworld' has been run. |
97 | Doing so might leave your system in an unusable state. | |
98 | ||
f419daca | 99 | Finally we recommend that you do an 'ls -lta BLAH' for /bin, /sbin, /usr/bin, |
b8cbf045 SW |
100 | /usr/bin, and /usr/lib, and remove any stale files that you find. Please |
101 | report these files to the DragonFly developers so that they can be added to | |
102 | the 'upgrade' target. | |
f419daca MD |
103 | |
104 | ------------------------------------------------------------------------------ | |
105 | ||
106 | > Upgrading DragonFly on an existing DragonFly system. | |
107 | --------------------- | |
108 | ||
109 | The best way to upgrade DragonFly is to maintain a copy of the DragonFly | |
110 | CVS repository via cvsup and to checkout the source base and DragonFly | |
111 | ports via this repository. The repository is stored in /home/dcvs by | |
112 | default and requires about 500MB of disk space. The checked out source | |
113 | tree (/usr/src) requires about 500MB of disk space, and the build will | |
114 | eat around 500MB of space out of /usr/obj. To maintain the build you | |
115 | should reserve at least 2GB of disk space, and 3GB if you have the space. | |
116 | ||
117 | Note: most people run cvsup via a root cron job to keep the repository up to | |
118 | date. Please limit such automatic updates to once a day and try to randomize | |
119 | the hour and minute in the cron job a bit to avoid pileups. | |
120 | ||
466bbc10 | 121 | # get the CVS repository (it is placed in /home/dcvs) |
5010eeb3 | 122 | cvsup /usr/share/examples/cvsup/DragonFly-cvs-supfile |
f419daca MD |
123 | # install the source from the CVS hierarchy |
124 | cd /usr | |
3eb4a8b6 JS |
125 | cvs -R -d /home/dcvs checkout -P src |
126 | cvs -R -d /home/dcvs checkout -P dfports | |
f419daca MD |
127 | |
128 | Once you have the repository and broken out sources you can decide whether to | |
129 | update your sources from the repository automatically or manually. Since | |
130 | you are tracking changes made to DragonFly, it is usually a good idea to | |
131 | update the sources manually: | |
fb12f484 | 132 | |
fb12f484 | 133 | cd /usr/src |
3eb4a8b6 | 134 | cvs update -dP |
fb12f484 | 135 | |
f419daca | 136 | To upgrade a DragonFly system from sources you run the following sequence: |
fb12f484 | 137 | |
fb12f484 | 138 | cd /usr/src |
fb12f484 | 139 | make buildworld |
f419daca MD |
140 | make buildkernel KERNCONF=<KERNELNAME> |
141 | make installkernel KERNCONF=<KERNELNAME> | |
fb12f484 MD |
142 | make installworld |
143 | ||
b8cbf045 SW |
144 | You will also want to run the 'upgrade' target to upgrade your /etc and the |
145 | rest of your system. The upgrade target is aware of stale files created by | |
146 | older DragonFly installations and should delete them automatically. | |
f419daca MD |
147 | |
148 | make upgrade | |
149 | ||
b8cbf045 SW |
150 | NOTE! Never do a 'make upgrade' before 'make installworld' has been run. |
151 | Doing so might leave your system in an unusable state. | |
152 | ||
f419daca MD |
153 | If you are using 'config' manually from /usr/src/sys/i386/conf/BLAH, note |
154 | that the build will use the current DragonFly environment rather then | |
155 | the post-build environment from the last buildworld. For this reason manual | |
156 | configs are discouraged. The proper way to build a kernel is to use the | |
157 | 'buildkernel' or 'quickkernel' target in /usr/src. | |
158 | ||
159 | Once you've done a full build of the world and kernel you can do incremental | |
160 | upgrades of either by using the 'quickworld' and 'quickkernel' targets | |
161 | instead of 'buildworld' and 'buildkernel'. If you have any problems with | |
162 | the quick targets, try doing a cvsup, cvs update, and then a full buildworld | |
163 | and buildkernel as shown above, before asking for help. | |
984263bc | 164 | |
5e0ae0d4 JR |
165 | > Kerberos IV |
166 | ------------- | |
984263bc | 167 | |
5e0ae0d4 JR |
168 | Kerberos IV (eBones) was removed from the tree, please consider moving to |
169 | Kerberos 5 (Heimdal). | |
984263bc | 170 | |
892096eb MD |
171 | > FreeBSD and DragonFly ports |
172 | ----------------------------- | |
173 | ||
174 | DragonFly will eventually have its own package management system but at the | |
175 | moment we leverage off of the FreeBSD ports system. You should maintain | |
176 | /usr/ports from the FreeBSD cvs repository via cvsup just like you do now. | |
177 | ||
a7dd4e91 | 178 | DragonFly has its own 'port overrides' hierarchy in /usr/dfports. You can |
892096eb MD |
179 | check this out of the DragonFly cvs repository using: |
180 | ||
181 | cd /usr | |
6d459e1e | 182 | cvs -R -d /home/dcvs checkout -P dfports |
892096eb MD |
183 | |
184 | Be sure that you have installed 'relpath' from the DragonFly sources | |
185 | (/usr/src/usr.bin/relpath) as well as the updated /usr/share/mk files from | |
186 | /usr/src/share/mk. As a test you can cd into /usr/ports/sysutils/cpdup and | |
187 | build the port. Dragonfly should contain an override and you should see a | |
188 | warning message that the DragonFly override is being build instead when you | |
189 | build it from the FreeBSD ports. | |
984263bc | 190 |