Commit | Line | Data |
---|---|---|
d2a0decc MD |
1 | # Updating Information for DragonFly users. |
2 | # | |
3 | # | |
4 | # This file should warn you of any pitfalls which you might need to work around | |
5 | # when trying to update your DragonFly system. The information below is | |
6 | # in reverse-time order, with the latest information at the top. | |
7 | # | |
8 | # If you discover any problem, please contact the bugs@lists.dragonflybsd.org | |
9 | # mailing list with the details. | |
d2a0decc | 10 | |
6100d1de JM |
11 | GCC 4.7 |
12 | ------- | |
13 | ||
14 | DragonFly has switched base compilers. GCC 4.7 is now the default | |
15 | compiler and GCC 4.4 is the alternative compiler. The "NO_GCC47" make | |
16 | variable ceases to work now. | |
17 | ||
18 | Users who wish to build only GCC 4.7 have to use NO_GCC44 in the | |
19 | /etc/make.conf to prohibit GCC 4.4 from building. However, using it is | |
20 | highly discouraged. There are a few packages in pkgsrc that do not build | |
21 | with GCC 4.7 and the new "DPorts" system uses GCC 4.4 by default. At | |
22 | this time, it is recommended to keep both compilers on the base system. | |
23 | ||
640dc18f | 24 | +-----------------------------------------------------------------------+ |
2089bb7c | 25 | + UPGRADING DRAGONFLY FROM 3.2 to later versions + |
640dc18f SZ |
26 | +-----------------------------------------------------------------------+ |
27 | ||
2089bb7c SW |
28 | SMP OPTION REMOVED |
29 | ------------------ | |
30 | ||
31 | The SMP kernel option has been made a no-op. All kernels now feature SMP | |
32 | support. If you have 'options SMP' in your kernel config, you can as well | |
33 | remove it. | |
34 | ||
1c297ed0 SW |
35 | DEVICE_POLLING OPTION REPLACED BY IFPOLL_ENABLE OPTION, KTR_POLLING REMOVED |
36 | --------------------------------------------------------------------------- | |
640dc18f SZ |
37 | |
38 | The DEVICE_POLLING kernel option has been made a no-op and it has been | |
39 | replaced by IFPOLL_ENABLE. If you have 'options DEVICE_POLLING' in your | |
40 | kernel config, you need to change it to IFPOLL_ENABLE. | |
41 | ||
1c297ed0 SW |
42 | Also, the KTR_POLLING kernel option has been removed, so it must be |
43 | removed from kernel configs that have it. | |
44 | ||
558b0a0b SW |
45 | BUSLOGIC, CYCLADES AND STALLION ISA SUPPORT REMOVED |
46 | --------------------------------------------------- | |
850c4634 SW |
47 | |
48 | The bt(4) driver for Buslogic SCSI adapters has been made PCI only. ISA | |
49 | cards will no longer be detected. | |
50 | ||
e6f626a1 SW |
51 | The same has been done for Stallion multiport serial controllers. stli(4) |
52 | has been completely removed (along with the stlload(8) and stlstty(8) | |
558b0a0b SW |
53 | utilities) and stl(4) was changed to support only PCI cards. Similarly, |
54 | ISA support was removed from cy(4) too. All these drivers are i386 only. | |
e6f626a1 | 55 | |
e98bcb27 SW |
56 | COMPAT_OLDISA OPTION GONE |
57 | ------------------------- | |
58 | ||
59 | The i386 specific COMPAT_OLDISA kernel option has been removed, since | |
60 | nothing needs it anymore. | |
61 | ||
c691bb43 SW |
62 | +-----------------------------------------------------------------------+ |
63 | + UPGRADING DRAGONFLY FROM 3.0 to later versions + | |
64 | +-----------------------------------------------------------------------+ | |
65 | ||
66 | APIC_IO OPTION REMOVED | |
67 | ---------------------- | |
68 | ||
69 | The APIC_IO kernel option is no longer accepted after having been without | |
70 | effect for a while. The hw.ioapic_enable tunable now serves its purpose. | |
71 | If you have 'options APIC_IO' in your kernel config, you'll have to | |
72 | remove it. | |
73 | ||
6d488cc3 SW |
74 | WATCHDOG_ENABLE & HW_WDOG OPTIONS REMOVED |
75 | ----------------------------------------- | |
cf03d6cd SW |
76 | |
77 | The wdog framework is now compiled into our kernels by default, so the | |
6d488cc3 | 78 | options are no longer needed. |
cf03d6cd | 79 | |
397ffc5c SW |
80 | DOSCMD(1) REMOVED |
81 | ----------------- | |
82 | ||
83 | doscmd(1) has been removed. It was i386 only. The doscmd(1) specific | |
84 | NO_X make.conf option was removed too. | |
85 | ||
a1404d4f SW |
86 | GCC 4.7 |
87 | ------- | |
88 | ||
89 | GCC 4.7 has been brought in and replaces GCC 4.1 as DragonFly's non- | |
90 | default compiler in base (default is still GCC 4.4). | |
91 | ||
92 | Users who wish to build only GCC 4.4 have to replace NO_GCC41 with | |
93 | NO_GCC47 in /etc/make.conf. | |
94 | ||
2508820f SW |
95 | USB4BSD |
96 | ------- | |
97 | ||
98 | A new USB stack (from FreeBSD) has been brought in. The following | |
99 | modules have been ported so far: usb, uhci, ohci, ehci, xhci, umass, | |
100 | usfs, uether, if_axe, if_udav, ukbd, ums, uep, uhid, usb_quirk, | |
101 | and uaudio. | |
102 | ||
103 | It is not yet the default. To activate it, WANT_USB4BSD=yes has to | |
c7200221 SW |
104 | be put in make.conf and device "usb4bsd" (quotes needed) has to |
105 | replace device usb in the kernel config. After that, a full | |
106 | build/install/upgrade cycle is needed. | |
2508820f SW |
107 | |
108 | Note that this is experimental and incomplete, but we are interested | |
109 | in hearing about issues with it, of course. | |
110 | ||
ae0870a3 SW |
111 | ISA SUPPORT REMOVED FROM AIC-6260/6360 DRIVER |
112 | --------------------------------------------- | |
113 | ||
114 | ISA adapter support was dropped from the aic(4) driver. | |
115 | ||
96386d4b SW |
116 | +-----------------------------------------------------------------------+ |
117 | + UPGRADING DRAGONFLY FROM 2.10 to later versions + | |
118 | +-----------------------------------------------------------------------+ | |
119 | ||
120 | SEVERAL ISA DRIVERS REMOVED | |
121 | --------------------------- | |
122 | ||
123 | The following ISA only drivers have been removed along with a couple of | |
124 | associated userland tools: | |
125 | ||
126 | aha(4) | |
127 | asc(4) & sasc(1) | |
128 | ctx | |
129 | dgb(4) | |
130 | el(4) | |
131 | gpib | |
132 | gsc(4) & sgsc(1) | |
133 | ie(4) | |
134 | labpc(4) | |
135 | le(4) | |
136 | mse(4) | |
137 | rc(4) | |
138 | rdp(4) | |
139 | spigot | |
140 | tw(4) & xten(1) & xtend(8) | |
141 | wl(4) & wlconfig(8) | |
142 | wt(4) | |
143 | ||
144 | Note that two of these drivers (aha(4) and ie(4)) are in our GENERIC | |
145 | config and one (aha(4)) is in our X86_64_GENERIC kernel configuration | |
146 | file. | |
147 | ||
148 | If buildkernel complains about any of these drivers, just remove them | |
149 | from your kernel configuration. | |
150 | ||
919eb219 JM |
151 | BINUTILS 2.20 |
152 | ------------- | |
37c5a0db | 153 | Binutils 2.20 has been removed in favor of Binutils 2.22. The accepted |
e685772e | 154 | values of BINUTILSVERS are now binutils221 and binutils222 (default). |
919eb219 | 155 | |
83bc1e2a SW |
156 | BUILDWORLD/-KERNEL PARALLELIZATION WORK |
157 | --------------------------------------- | |
158 | Due to changes in the way we build with more than one make job, you | |
159 | will have to update install(1) and mkdir(1) prior to buildworld if you | |
160 | want to build with 'make -j': | |
161 | ||
162 | cd /usr/src/usr.bin/xinstall; make; make install; make clean | |
163 | cd /usr/src/bin/mkdir; make; make install; make clean | |
164 | ||
eca86bd9 SW |
165 | DMA(8) UPGRADE |
166 | -------------- | |
167 | dma(8) has been upgraded to v0.7 which no longer supports the | |
168 | /etc/dma/virtusertable. Some of its functionality has been replaced | |
169 | with the MASQUERADE keyword and the EMAIL environment variable (see | |
170 | the dma(8) manual page). | |
171 | ||
a4a39c94 | 172 | +-----------------------------------------------------------------------+ |
2443e96e | 173 | + UPGRADING DRAGONFLY FROM 2.8 to later versions + |
a4a39c94 JS |
174 | +-----------------------------------------------------------------------+ |
175 | ||
b1242318 SW |
176 | GCC 4.4 & BINUTILS 2.21 |
177 | ----------------------- | |
30c91f0c | 178 | |
b1242318 SW |
179 | GCC 4.4 has been made DragonFly's default compiler and Binutils 2.21 has |
180 | been made DragonFly's default Binutils. | |
30c91f0c SW |
181 | |
182 | That means that any settings that set CCVER to 'gcc44' are not needed | |
183 | anymore. Instead, CCVER can be set to 'gcc41' to go back to using | |
184 | GCC 4.1. | |
185 | ||
b1242318 SW |
186 | It also means that 'binutils221' as a value for BINUTILSVER has no |
187 | effect anymore. 2.17 has been removed and 'binutils220' is available | |
188 | as an option. | |
189 | ||
5738210d | 190 | The NO_GCC44 option has been removed and will not affect the build |
30c91f0c SW |
191 | anymore. There is now a NO_GCC41 option that will prevent GCC 4.1 from |
192 | building in a similar fashion. | |
193 | ||
80abb3be | 194 | Note that you must do a full buildworld/buildkernel for upgrading. |
30c91f0c | 195 | |
a4a39c94 | 196 | pkg_radd settings |
c983d16e | 197 | ----------------- |
a4a39c94 JS |
198 | |
199 | The config file for pkg_radd has moved from /etc/settings.conf to | |
200 | /etc/pkg_radd.conf. Save the contents of settings.conf before upgrading | |
201 | if this is needed. This warning only applies if /etc/settings.conf | |
202 | exists. pkg_radd will continue to work with defaults. | |
203 | ||
b79f66dd | 204 | +-----------------------------------------------------------------------+ |
72fe41d3 | 205 | + 20100927 + |
1bb1cc14 | 206 | + UPGRADING DRAGONFLY FROM 2.6 to 2.8 or HEAD + |
b79f66dd JT |
207 | +-----------------------------------------------------------------------+ |
208 | ||
72fe41d3 | 209 | OpenSSL |
c983d16e | 210 | -------- |
72fe41d3 PA |
211 | |
212 | OpenSSL has been upgraded, and SHLIB_MAJOR was bumped for libssh and libcrypto. | |
213 | This shouldn't break any 3rd-party software, but you'll need to recompile your | |
214 | 3rd-party software if you want it to link against the new version of OpenSSL. | |
215 | ||
8eb0b612 | 216 | Loader |
c983d16e | 217 | ------- |
8eb0b612 | 218 | |
b79f66dd JT |
219 | A new loader (dloader) has been added which better handles booting from |
220 | multiple kernel/module versions. | |
221 | ||
222 | To upgrade (Only for this upgrade, for post 2.8 upgrades see GENERAL below) | |
223 | ||
224 | cd /usr/src | |
225 | make buildworld | |
226 | make installworld | |
227 | make upgrade | |
228 | make buildkernel KERNCONF=<KERNELNAME> | |
229 | make installkernel KERNCONF=<KERNELNAME> | |
230 | ||
231 | Note that you must installworld and run the 'upgrade' target before | |
232 | installing the new kernel. | |
233 | ||
8eb0b612 | 234 | BIND |
c983d16e | 235 | ----- |
8eb0b612 JS |
236 | |
237 | BIND has been removed from the base system. The ldns and drill tools have | |
238 | been added for basic functionality. Use 'drill' where you would normally | |
239 | use nslookup or dig, or install BIND from pkgsrc. It's available as | |
240 | net/bind95, net/bind96, or net/bind97 as of this writing. | |
241 | ||
242 | This only affects older systems upgrading to 2.8. New 2.8+ installs | |
243 | include BIND as a pkgsrc package. | |
244 | ||
d2a0decc MD |
245 | +-----------------------------------------------------------------------+ |
246 | + UPGRADING DRAGONFLY ON AN EXISTING DRAGONFLY SYSTEM + | |
247 | + GENERAL + | |
248 | +-----------------------------------------------------------------------+ | |
984263bc | 249 | |
a700883c SW |
250 | Instructions on how to obtain and maintain DragonFly source code using git |
251 | are in the development(7) manual page. | |
d2a0decc MD |
252 | |
253 | To upgrade a DragonFly system from sources you run the following sequence: | |
254 | ||
255 | cd /usr/src | |
256 | make buildworld | |
257 | make buildkernel KERNCONF=<KERNELNAME> | |
258 | make installkernel KERNCONF=<KERNELNAME> | |
259 | make installworld | |
260 | ||
261 | You will also want to run the 'upgrade' target to upgrade your /etc and the | |
262 | rest of your system. The upgrade target is aware of stale files created by | |
263 | older DragonFly installations and should delete them automatically. | |
264 | ||
265 | make upgrade | |
266 | ||
a700883c SW |
267 | See the build(7) manual page for further information. |
268 | ||
d2a0decc MD |
269 | Once you've done a full build of the world and kernel you can do incremental |
270 | upgrades of either by using the 'quickworld' and 'quickkernel' targets | |
271 | instead of 'buildworld' and 'buildkernel'. If you have any problems with | |
a700883c | 272 | the quick targets, try updating your repo first, and then a full buildworld |
d2a0decc | 273 | and buildkernel as shown above, before asking for help. |
4523a2c0 TN |
274 | |
275 | +-----------------------------------------------------------------------+ | |
276 | + UPGRADING FROM DRAGONFLY <= 2.0 TO DRAGONFLY >= 2.1 + | |
277 | +-----------------------------------------------------------------------+ | |
278 | ||
279 | In 2.1 kernel and modules has moved to boot directory. For most cases | |
280 | this is handled automatically by 'make upgrade'. A few cases needs manual | |
281 | intervention: | |
282 | ||
283 | * When installing a kernel without first doing a make buildworld, | |
284 | installworld and upgrade to the same DESTDIR as kernel: | |
285 | make DESTDIR/boot directory and move kernel and modules into this boot | |
286 | directory; also move kernel.old and modules.old. | |
287 | Typical example is vkernel(7), use (no modules used): | |
288 | ||
289 | cd /var/vkernel | |
290 | mkdir boot | |
291 | chflags noschg kernel | |
292 | mv kernel kernel.old boot | |
293 | chflags schg boot/kernel | |
294 | ||
295 | * When using a boot-only partition, /boot/loader.rc needs to be edited: | |
296 | delete occurrences of '/boot/'. | |
297 | These occurences can normally be deleted in any case, see loader(8). | |
d2a0decc MD |
298 | |
299 | +-----------------------------------------------------------------------+ | |
300 | + UPGRADING FROM DRAGONFLY <= 1.8 TO DRAGONFLY >= 1.9 + | |
301 | +-----------------------------------------------------------------------+ | |
302 | ||
303 | In 1.9 major changes to the disk management infrastructure have taken | |
304 | place. make upgrade may not catch all of your disk devices in /dev, | |
305 | so after upgrading be sure to cd /dev; ./MAKEDEV <blah> where <blah> | |
45e80934 MD |
306 | are all of your disk devices. HOWEVER, from late 2.3 on we run devfs |
307 | and MAKEDEV no longer exists. | |
d2a0decc MD |
308 | |
309 | The biggest changes in 1.9 are: | |
310 | ||
311 | (1) That whole-slice devices such as da0s1 no longer share the same device | |
312 | id as partition c devices such as da0s1c. | |
313 | ||
314 | (2) The whole-disk device (e.g. da0) is full raw access to the disk, | |
315 | with no snooping or reserved sectors. Consequently you cannot run | |
316 | disklabel on this device. Instead you must run disklabel on a | |
317 | whole-slice device. | |
318 | ||
319 | (3) The 'compatibility' partitions now use slice 0 in the device name, | |
320 | so instead of da0a you must specify da0s0a. Also, as per (1) above, | |
321 | accessing the disklabel for the compatibility partitions must be | |
322 | done via slice 0 (da0s0). | |
323 | ||
324 | (4) Many device drivers that used to fake up labels, such as CD, ACD, VN, | |
325 | and CCD now run through the disk management layer and are assigned | |
326 | real disk management devices. VN and CCD in particular do not usually | |
327 | use a MBR and disklabels must be accessed through the compatibility | |
328 | slice 0. Your /etc/ccd.conf file still specifies 'ccd0', though, you | |
329 | don't name it 'ccd0s0' in the config file. | |
330 | ||
331 | Generally speaking, you have to get used to running fdisk and disklabel on | |
332 | the correctly specified device names. A lot of the wiggle, such as running | |
333 | disklabel on a partition, has been removed. | |
334 | ||
335 | +-----------------------------------------------------------------------+ | |
336 | + UPGRADING FROM OLDER VERSIONS OF DRAGONFLY OR FREEBSD + | |
337 | +-----------------------------------------------------------------------+ | |
338 | ||
339 | > Kerberos IV | |
340 | ------------- | |
341 | ||
342 | Kerberos IV (eBones) was removed from the tree, please consider moving to | |
343 | Kerberos 5 (Heimdal). | |
344 | ||
345 | > Package Management System | |
346 | --------------------------- | |
347 | ||
348 | Starting with the 1.4 release, DragonFly uses NetBSD's pkgsrc package | |
349 | management system. The necessary tools to build and maintain packages | |
350 | are provided in /usr/pkg/bin and /usr/pkg/sbin. Make sure that these | |
351 | directories are in your PATH variable. | |
352 | ||
353 | In order to obtain a reasonably current snapshot of the pkgsrc tree, use | |
354 | the tarball from NetBSD: | |
355 | ||
356 | fetch -o /tmp/pkgsrc.tar.gz ftp://ftp.NetBSD.org/pub/NetBSD/packages/pkgsrc.tar.gz | |
357 | cd /usr; tar -xzf /tmp/pkgsrc.tar.gz; chown -R root:wheel pkgsrc | |
358 | ||
359 | This tree can then be kept up to date with cvs update: | |
360 | ||
361 | cd /usr/pkgsrc; cvs up | |
362 | ||
363 | NOTE! If you upgraded from a pre-1.4 system to 1.4 or later, you need to | |
364 | build and install the pkgsrc bootstrap manually: | |
365 | ||
366 | cd /usr/pkgsrc/bootstrap | |
367 | ./bootstrap --pkgdbdir /var/db/pkg --prefix /usr/pkg | |
368 | ||
369 | +-----------------------------------------------------------------------+ | |
370 | + UPGRADING DRAGONFLY ON AN EXISTING DRAGONFLY SYSTEM + | |
371 | + UPDATING FROM PRE-1.2 SYSTEMS OR FreeBSD 4.x TO + | |
372 | + DRAGONFLY 1.3+ (EITHER PREVIEW or HEAD) + | |
373 | +-----------------------------------------------------------------------+ | |
58116288 | 374 | |
114580ac | 375 | The compatibility shims for the build environment have been removed, you |
58116288 JS |
376 | have to update to DragonFly 1.2 release branch first. |
377 | ||
1fcc7462 JS |
378 | The default PAM configuration has moved from /etc/pam.conf to /etc/pam.d/. |
379 | The existing configuration can be converted using /etc/pam.d/convert.sh. | |
380 | Entries in /etc/pam.d/ override entries in /etc/pam.conf. In addition | |
381 | the pam_skey.so module was retired, you have to remove it manually from | |
382 | your configuration, when you convert it. | |
58116288 | 383 | |
a3107071 MD |
384 | > Required user and group IDs when upgrading from either FreeBSD or DragonFly |
385 | --------------------- | |
386 | ||
387 | The following users may be missing from your password file. Use vipw and | |
388 | add any that are missing: | |
389 | ||
390 | smmsp:*:25:25::0:0:Sendmail Submission User:/var/spool/clientmqueue:/sbin/nologin | |
dcf85892 | 391 | _pflogd:*:64:64::0:0:pflogd privsep user:/var/empty:/sbin/nologin |
a3107071 MD |
392 | |
393 | The following groups may be missing from your group file. Use vi /etc/group | |
394 | and add any that are missing: | |
395 | ||
396 | smmsp:*:25: | |
397 | authpf:*:63: | |
dcf85892 | 398 | _pflogd:*:64: |
a3107071 MD |
399 | |
400 | ||
f419daca | 401 | > Upgrading to DragonFly from FreeBSD |
5e0ae0d4 | 402 | --------------------- |
984263bc | 403 | |
f419daca MD |
404 | You can build the DragonFly world and DragonFly kernels on a FreeBSD-4.x or |
405 | FreeBSD-5.x machine and then install DragonFly over FreeBSD, replacing | |
406 | FreeBSD. Note that the DragonFly buildworld target does not try to reuse | |
407 | make depend information, it starts from scratch, so no pre-cleaning of the | |
408 | object hierarchy is necessary. | |
409 | ||
466bbc10 | 410 | # get the CVS repository (it is placed in /home/dcvs, 500MB). |
f419daca MD |
411 | # Please use the -h option and a mirror site to pull the |
412 | # initial repository, but feel free to use the main repository | |
413 | # machine to pull updates. | |
5010eeb3 | 414 | cvsup /usr/share/examples/cvsup/DragonFly-cvs-supfile |
f419daca MD |
415 | # install the source from the CVS hierarchy (remove preexisting |
416 | # FreeBSD src first) (500MB) | |
417 | cd /usr | |
418 | rm -rf src | |
50172b1c | 419 | cvs -R -d /home/dcvs checkout -P src |
f419daca MD |
420 | |
421 | # build it (500MB used in /usr/obj) | |
422 | # | |
423 | cd /usr/src | |
424 | make buildworld | |
425 | make buildkernel KERNCONF=<KERNELNAME> | |
984263bc | 426 | |
f419daca MD |
427 | Once you have built DragonFly you have to install it over FreeBSD. Since |
428 | DragonFly does not track changes made by FreeBSD to its include file | |
429 | hierarchy and include file pollution can cause all sorts of unexpected | |
430 | compilation issues to come up, it is best to wipe your include hierarchy | |
431 | prior to installing DragonFly. Note that you should not wipe any installed | |
432 | FreeBSD header files or binaries until after you have successfully completed | |
433 | the build steps above. | |
fb12f484 | 434 | |
f419daca MD |
435 | rm -rf /usr/include |
436 | mkdir /usr/include | |
437 | make installkernel KERNCONF=<KERNELNAME> | |
438 | make installworld | |
fb12f484 | 439 | |
b8cbf045 | 440 | Then you need to upgrade your system. DragonFly's 'make upgrade' target |
f419daca | 441 | will unconditionally upgrade the /etc files that sysops do not usually |
b8cbf045 SW |
442 | mess around with, such as the files in /etc/rc.d. It will also remove any |
443 | obsolete files such as utilities and manpages that have been removed from | |
444 | the system since the version you're coming from. If you are unsure we | |
445 | recommend that you make a backup of at least your /etc before applying | |
446 | this step. Note that DragonFly's RC system is basically RCNG from | |
447 | FreeBSD-5, but there are some differences in the contents of the RC files. | |
f419daca MD |
448 | |
449 | make upgrade | |
450 | ||
b8cbf045 SW |
451 | NOTE! Never do a 'make upgrade' before 'make installworld' has been run. |
452 | Doing so might leave your system in an unusable state. | |
453 | ||
f419daca | 454 | Finally we recommend that you do an 'ls -lta BLAH' for /bin, /sbin, /usr/bin, |
b8cbf045 SW |
455 | /usr/bin, and /usr/lib, and remove any stale files that you find. Please |
456 | report these files to the DragonFly developers so that they can be added to | |
457 | the 'upgrade' target. | |
f419daca | 458 |