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