UPDATING revision 121242
1Updating Information for FreeBSD current users 2 3This file is maintained and copyrighted by M. Warner Losh 4<imp@village.org>. See end of file for further details. For commonly 5done items, please see the COMMON ITEMS: section later in the file. 6 7NOTE TO PEOPLE WHO THINK THAT FreeBSD 5.x IS SLOW: 8 FreeBSD 5.x has many debugging features turned on, in 9 both the kernel and userland. These features attempt to detect 10 incorrect use of system primitives, and encourage loud failure 11 through extra sanity checking and fail stop semantics. They 12 also substantially impact system performance. If you want to 13 do performance measurement, benchmarking, and optimization, 14 you'll want to turn them off. This includes various WITNESS- 15 related kernel options, INVARIANTS, malloc debugging flags 16 in userland, and various verbose features in the kernel. Many 17 developers choose to disable these features on build machines 18 to maximize performance. 19 2020030928: 21 Changes to the cdevsw default functions have been made to remove 22 the need to specify nullopen() and nullclose() explicitly. 23 __FreeBSD_version bumpted to 501110. 24 2520030926: 26 kiconv(3) has been added. mount_msdosfs(8), mount_ntfs(8) and 27 mount_cd9660(8) need to be in sync with kernel. 28 2920030925: 30 Configuring a system to use IPFILTER now requires that PFIL_HOOKS 31 also be explicitly configured. Previously this dependency was 32 magically handled through some cruft in net/pfil.h; but that has 33 been removed. Building a kernel with IPFILTER but not PFIL_HOOKS 34 will fail with obtuse errors in ip_fil.c. 35 3620030923: 37 Fix a bug in arplookup(), whereby a hostile party on a locally 38 attached network could exhaust kernel memory, and cause a system 39 panic, by sending a flood of spoofed ARP requests. See 40 FreeBSD-SA-03:14.arp. 41 4220030915: 43 A change to /etc/defaults/rc.conf now causes inetd to be started 44 with `-C 60' if it is not overridden in /etc/rc.conf. This 45 causes inetd to stop accepting connections from an IP address 46 that exceeds the rate of 60 connections per minute. 47 4820030829: 49 The following rc.d scripts have been removed and should be 50 deleted from your installation: atm2.sh atm3.sh devdb 51 localdaemons network1 network2 network3. Depending on when 52 you last updated world and used mergemaster(8) you may or 53 may not have problems during the rc boot sequence. The simplest 54 solution is an 'rm -rf /etc/rc.d/*' and then 'mergemaster -i'. 55 The atm2.sh atm3.sh and devdb scripts were removed some time 56 ago, so depending on when you installed -CURRENT these scripts 57 may or may not exist on your system. 58 5920030824: 60 ATAng has been committed. You need to build world as sys/ata.h 61 has changed, and userland atacontrol depends on it. 62 If you use ATA SW raids you need "device ataraid" in your 63 kernel config file, as it is no longer pulled in automatically. 64 6520030819: 66 The OFW_NEWPCI option has been turned on in the Sparc64 GENERIC kernel. 67 Among other things, this changes the device enumeration to be 68 closer to Solaris. Be aware that, this can even cause the machine 69 to not boot without manual intervention before the fstab is adjusted. 70 7120030728: 72 All current USB and Firewire quirks in da(4) have been deprecated 73 and will be removed for 5.2. If this causes failure for your 74 umass(4) devices, enable "options DA_OLD_QUIRKS" in your kernel 75 and send the output of "camcontrol inquiry da0" to scsi@freebsd.org 76 so the quirk can be re-enabled. 77 7820030722: 79 FPU-less support has been removed from FreeBSD. Chances are you won't 80 notice. 386+387 support should still work after this change, but 81 it is now a minimum requirement for the i386 port that you have real 82 FPU hardware. 83 8420030714: 85 Some people are having problems with changes related to /rescue. 86 If you are building -j N, you will need to define NO_RESCUE. Others 87 will need to define it if /rescue has issues with their environment. 88 People should report those issues to current@. 89 9020030711: 91 gcc was upgraded to 3.3. You are advised to not build -DNOCLEAN 92 across this point. Further, it might be a good idea to remove 93 /usr/obj. 94 9520030613: [retrospective] 96 There was a small window in which sed(1) was broken. If you 97 happen to have sed(1) installed during that window, which is 98 evidenced by an inability to build world with the failure 99 given below, you need to manually build and install sed(1) 100 (and only sed(1)) before doing anything else. This is a one- 101 time snafu. Typical failure mode: 102 103 In file included from /usr/src/contrib/binutils/bfd/targets.c:1092: 104 targmatch.h:7:1: null character(s) ignored 105 targmatch.h:12:1: null character(s) ignored 106 targmatch.h:16:1: null character(s) ignored 107 : 108 109 The window of "sed(1)-uction" is from Wed Jun 4 15:31:55 2003 UTC 110 to Thu Jun 5 12:10:19 2003 UTC (from rev 1.30 to rev 1.31 of 111 usr.bin/sed/process.c). 112 11320030610: 114 Remove deprecated locale names and transition period code 115 for them, finishing switching to the new scheme. Check your 116 LANG environment variable. 117 11820030609: 119 CCD has been changed to be a fully GEOMified class. Kernel 120 and ccdconfig(8) needs to be in sync, this is particularly 121 important to remember beforehand if your source tree is on 122 a ccd device. Consider making a copy of the old ccdconfig 123 into /boot/kernel.good or wherever you keep your backup 124 kernel. 125 12620030505: 127 Kerberos 5 (Heimdal) is now built by default. Setting 128 MAKE_KERBEROS5 no longer has any effect. If you do NOT 129 want the "base" Kerberos 5, you need to set NO_KERBEROS. 130 13120030502: 132 groff has been updated. If you try to do a buildworld and 133 get an infinite loop in troff, update to May 4th or newer. If you 134 have a newer kernel than userland, you may need to set the OSRELDATE 135 to 500110 in your environment before starting a buildworld. 136 13720030501: 138 The old rc system has been removed. Please report any problems 139 to freebsd-rc@yahoogroups.com, and/or freebsd-current@freebsd.org. 140 Your personal versions of these files will not be removed, so you can 141 continue to use them. However, you should take great care when updating, 142 especially when using mergemaster, since the compatibility code that 143 utilizes these old scripts has also been removed. 144 14520030423: 146 A bug has been fixed in /dev/devctl which would cause devd 147 to hang on boot, were it not for a workaround in devd. The 148 work around in devd will be removed around 20030507. You 149 have until then to upgrade your kernel before updating 150 userland. In general, you should have a userland and 151 kernel that's in sync with each other. However, given the 152 effects of this bug (hang on boot when starting devd), some 153 allowances are made. 154 15520030329: 156 Alphas with libc from between 20030312 and 20030329 exhibit 157 floating point exceptions (FPEs), most notably in awk(1) 158 while upgrading the system through a buildworld. 159 160 So, to successfully upgrade your Alpha, you must either 161 downgrade your libc.so to a pre-20030312 version, or update 162 /usr/share/mk/bsd.cpu.mk to revision 1.26 which adds -mieee 163 to CFLAGS, then forcibly rebuild and install libc: 164 165 cd /usr/src/lib/libc && \ 166 make cleandir && make obj && \ 167 make -DNOMAN -DNOPROFILE all && \ 168 make -DNOMAN -DNOPROFILE install 169 17020030208: 171 sendmail 8.12.7 has been imported. It has one important 172 change for IPv6 users. The default submit.mc now uses 173 '[127.0.0.1]' instead of 'localhost' meaning only IPv4 is 174 used to connect to the MTA. Users on IPv6-only machines 175 will need to edit /etc/mail/submit.mc appropriately. 176 17720030128: 178 NODEVFS option has been removed and DEVFS thereby made standard. 179 This makes all references to MAKEDEV obsolete, and they should 180 be removed when convenient. 181 18220030126: 183 The name of the device for the ofw console has changed, sparc64 users 184 must run mergemaster to update their installed /etc/ttys. 185 18620030125: 187 The scheduler framework has grown a second scheduler and consequently 188 you must specify one and only one scheduler in your kernel config. 189 The cvs config files have been updated to use the old scheduler 190 which may be selected via 'options SCHED_4BSD'. If you would like 191 to try the new, much more experimental, scheduler please try 192 'options SCHED_ULE' and contribute to the arch@ discussion. 193 19420030115: 195 A new version of the wi driver has been imported into the tree. 196 One now must have device wlan in the config file for it to operate 197 properly. 198 199 In addition, there have been some changes to how wi devices are 200 configured for point to point links to bring it more in line 201 with the former way of doing things, as well as compatibility 202 with NetBSD. 203 20420021222: 205 For a period after the GCC 3.2.1 import (from 12/04 to 12/22), GCC 206 used an incompatible form of ABI for returning structures and unions 207 which FreeBSD's GCC maintainers were not aware of relative to previous 208 versions of FreeBSD. We have gone back to the ABI for now, and any 209 code compiled which is required to interoperate with other code (not 210 built at the same time) returning structs or unions should be 211 rebuilt. 212 21320021216: 214 A name change in /etc/netconfig has been reverted to stay 215 compatible with suns TIRPC and also with NetBSD. You need 216 to run mergemaster after make world. A new libc does still work 217 with an outdated /etc/netconfig for some time, but you'll get 218 a warning. This warning will be removed in 20030301. 219 22020021202: 221 The recent binutils upgrade marks a kernel flag day on 222 sparc64: modules built with the old binutils will not work 223 with new kernels and vice versa. Mismatches will result in 224 panics. Make sure your kernel and modules are in sync. 225 22620021029: 227 The value of IPPROTO_DIVERT has changed. Make sure to keep 228 your kernel, netstat, natd and any third-party DIVERT 229 consumers in sync. 230 23120021024: 232 Old, compatibility slices have been removed in GEOM kernels. 233 This means that you will have to update your /etc/fstab to 234 not use disk devices of the form /dev/ad0a. Instead, you 235 now must specify /dev/ad0s1a, or whatever slice your FreeBSD 236 partition really is on. The old device names have gone 237 away, so if you use them anywhere else, you must also adjust 238 those uses. (This doesn't affect the disks formatted in 239 the ``dangerously-dedicated'' mode.) 240 24120021023: 242 Alphas with kernels from between 20020830 and 20021023 and/or 243 rtld (ld-elf.so.1) older than 20021023 may experience problems 244 with groff while doing a buildworld (kernel: "out of memory", 245 fixed in rev 1.129 of kern/imgact_elf.c; rtld: "too few PT_LOAD 246 segments", fixed in rev 1.8 of libexec/rtld-elf/map_object.c). 247 248 So, to successfully upgrade your Alpha, you must either 249 upgrade your kernel and rtld first (which might be a bit 250 tricky), or avoid running the bootstrapped groff during the 251 "transitional" buildworld. To avoid running groff during the 252 transitional upgrade run make buildworld with -DNOMAN, 253 -DNO_SHAREDOCS, and -DNO_LPR. 254 25520020831: 256 gcc has been upgraded to 3.2. It is not all binary compatible 257 with earlier versions of gcc for c++ programs. All c++ 258 programs and libraries need to be recompiled. 259 260 Also, if you encounter g++ issues, rm /usr/include/g++/* before 261 doing an installworld to make sure that stale files are removed. 262 26320020827: 264 Our /etc/termcap now has all the entries from the XFree86 xterm 265 almost unchanged. This means xterm now supports color by default. 266 If you used TERM=xterm-color in the past you now should use 267 TERM=xterm. (xterm-color will lead to benign warnings). 268 26920020815: 270 A "bug" in gcc(1) that was hiding warning in system headers was 271 fixed. It's probably time to add -DNO_WERROR to your make line 272 again. 273 27420020729: 275 COPY is being deprecated. The 20010530 change was reverted, as 276 it causes far more pain than was expected, and to always compare 277 before installing, please use INSTALL="install -C" again. The 278 -C option is now silently ignored when used with the -d option. 279 28020020702: 281 Problems with libc_r clients like KDE and GNOME have been resolved. 282 There are still some minor problems with some signals but the 283 system is stable enough for general use again. SMP is less so than UP 284 but each can successfully complete multiple buildworlds. 285 Libkvm needs to be recompiled due to KSE. 286 28720020701: 288 Now would be a bad time to upgrade. Something in or near the 289 KSE commit totally broke programs using libc_r like KDE and 290 GNOME. 291 29220020511: 293 The k5su utility installed as part of Kerberos 5 is no longer 294 installed with the set-user-ID bit set by default. Add 295 ENABLE_SUID_K5SU=yes to /etc/make.conf to have it installed 296 with the set-user-ID bit set. 297 29820020510: 299 Gcc 3.1 debugging format (cc -g) has changed from STABS to DWARF2. 300 Unfortunately our native GDB (at version 4.18) does not understand 301 the DWARF2 debugging format. Thus you must use `gcc -gstabs+' to 302 generated debugging information for our native GDB. 303 30420020510: 305 Due to the way CVS works, it may not properly update src/contrib/gcc 306 to the 3.1 sources. The easiest fix is to `rm -rf' src/contrib/gcc 307 and then do a cvs update. 308 30920020421: 310 When exec'ing set[ug]id executables, the kernel now ensures that the 311 stdio file descriptors (0..2) are open. See FreeBSD-SA-02:23.stdio. 312 31320020404: 314 New sendmail startup scripts have been installed to make it 315 easier to use alternative MTAs with FreeBSD. Setting the rc.conf 316 variable sendmail_enable to "NO" no longer prevents any sendmail 317 daemons from starting. Instead, either set sendmail_enable to 318 "NONE" or change mta_start_script to a script for starting 319 an alternative MTA. Setting mta_start_script to "" will 320 also prevent any MTA from being started at boot. 321 32220020403: 323 UCONSOLE is no longer a valid kernel option. 324 32520020315: 326 FreeBSD 5.0 DP-1 was basically branched today. 327 32820020225: 329 Warnings are now errors in the kernel. Unless you are a developer, 330 you should add -DNO_WERROR to your make line. 331 33220020217: 333 sendmail 8.12.2 has been imported. The sendmail binary is no 334 longer a set-user-ID root binary and the infrastructure to support 335 command line mail submission has changed. Be sure to run 336 mergemaster (especially for updating /etc/rc, /etc/defaults/rc.conf, 337 and /etc/mail) and read /etc/mail/README for more details. 338 339 Due to the import of sendmail 8.12.2, a new user and group are 340 required in order for sendmail to run as a set-group-ID 341 binary. A 'make installworld' will use the new user and group 342 to set the owner and group of /var/spool/clientmqueue and will 343 fail if the new user and group do not exist. The 'smmsp' user 344 and group must be merged from src/etc/group and 345 src/etc/master.passwd before using 'make installworld'. 346 'mergemaster -p' will do this. You may need to install 347 mergemaster before this will work if you are updating from a 348 very old version of current. The updating recipe has changed 349 as of this date. 350 35120020112: 352 The preferred configuration method for PAM is now /etc/pam.d/ 353 rather than /etc/pam.conf. If you have an unmodified 354 pam.conf, just delete it after your next mergemaster run. If 355 you have local modifications, you can use 356 /usr/src/etc/pam.d/convert.pl to incorporate them into your 357 /etc/pam.d. 358 359 Please see the following url for more details: 360http://www.freebsd.org/cgi/mid.cgi?db=mid&id=<xzp6667fyoa.fsf@flood.ping.uio.no> 36120011229: 362 If anyone here is already using the new rc.conf(5) variable 363 networkfs_types, please note that it has changed 364http://www.freebsd.org/cgi/mid.cgi?db=mid&id=<9744.1009655556@axl.seasidesoftware.co.za> 365 36620011220: 367 sys/i4b/driver/i4b_ispppsubr.c has been retired. This file 368 started out its life in the ISDN4BSD project as an offspring 369 from sys/net/if_spppsubr.c, which eventually got a life of its 370 own. All the accumulated features and bugfixes of the i4b 371 version have now been merged back into the base system's 372 version now. The only user-visible change resulting from this 373 is that i4b's sppp(4) interfaces are to be managed with 374 spppcontrol(8) again, since ispppcontrol(8) has been retired 375 as well. (There has never been rc file support for 376 ispppcontrol in -current, but only in -stable. That will be 377 reverted by the time the changes are MFCed.) 378 37920011215: 380 The fdc(4) driver has been updated and now automatically 381 recognizes media in `standard' formats (like 1440 KB and 382 720 KB for a 3.5" high-density drive) when accessing the 383 default device node (e. g. /dev/fd0). The old variety of 384 floppy device nodes /dev/fd*.* is no longer present by 385 default, devices can be created (in DEVFS) on demand. They 386 will need to be customized then for `odd' densities using 387 fdcontrol(8). 388 38920011209: 390 The bugs in procfs' debugging support code have been fixed, 391 and truss(1) now works again. 392 39320011207: 394 Daily security checks have been split out to use the periodic(8) 395 scripts. Some change in configuration may be necessary. Please 396 see 397http://www.freebsd.org/cgi/mid.cgi?db=mid&id=<20011207155805.R8975@blossom.cjclark.org> 398 for details. 399 40020011204: 401 sos added VCD/SVCD support to ata driver and that needs the 402 kernel and burncd to be in sync. 403 40420011203: 405 The procfs pseudo-filesystem has now been converted to use the 406 pseudofs framework. If you have 'options PROCFS' in your 407 kernel config, you'll need to add 'options PSEUDOFS' if it's 408 not there already. 409 410 This change temporarily breaks truss(1); use ktrace(1) instead 411 until the issue has been resolved. 412 41320011202: 414 A security hole in OpenSSH involving `UseLogin yes' has been 415 patched. 416 41720011126: 418 You need to remove /usr/obj/.../usr.bin/tip before rebuilding 419 after this date. You need to do this only once. 420 42120011103: 422 Most of the awk issues have been resolved. Some rough 423 edges may be left, but for the most part things should be 424 back to "normal." For CURRENT's usual definition of "normal." 425 42620011030: 427 Awk has been upgraded to the one true awk from bell labs. Expect 428 choppy waves in the upgrade process. 429 43020011030: 431 The asr driver problem has been resolved. 432 43320011027: 434 Due to changes in other parts of the system, the asr driver 435 now causes the system to panic on boot. Do not use it pending 436 correction. Comment it out of any kernel config file that you 437 try to use from this date forward. 438 43920011025: 440 When crossbuilding, use TARGET=xxx where you used to use 441 MACHINE=xxx. You don't need to set TARGET_ARCH and TARGET, 442 unless you are changing both of them. To cross build pc98 on 443 an alpha, for example, you need to set TARGET=pc98 and 444 TARGET_ARCH=i386. 445 44620011001: 447 The kernel interface that burncd depends on has changed. 448 You must recompile both the kernel and userland applications 449 at the same time. 450 45120010929: 452 When crossbuilding, please set TARGET_ARCH rather than 453 MACHINE_ARCH to indicate the target. In the future, one will 454 set TARGET_MACHINE where you set MACHINE now. At the moment, 455 setting MACHINE alone for same MACHINE_ARCH machines works 456 (eg, you can build pc98 on an i386 machine and vice versa). 457 45820010927: 459 Some weird problems result from using ACPI on some machines. 460 To disable ACPI you can add 461 hint.acpi.0.disabled="1" 462 to /boot/loader.conf (or by putting set X=Y at the boot 463 loader "ok" prompt). 464 465 Alternatively, you can remove it from /boot/kernel/acpi.ko 466 or use the MODULES_OVERRIDE function in your kernel config 467 file and not list acpi in that list. 468 46920010924: 470 The buildworld has been fixed. You may need to install 471 the 4.x compatibility libraries for some old binaries 472 to work. Add COMPAT4X=true to your /etc/make.conf to 473 get them installed on every installworld, or execute the 474 following to get them installed only once: 475 cd src/lib/compat/compat4x.<arch> 476 make all install 477 You will see ``__stdoutp undefined'' until you do this. 478 47920010919: 480 There's a bug in the world build process. The cross-tools 481 are build with the NEW headers, but the OLD libc.a. This 482 leads to all kinds of problems with the new libc. A temporary 483 workaround is to add 484 CFLAGS="-O -pipe -D_OLD_STDIO" 485 before building world when upgrading from 4.x to current. This 486 can be removed afterwards. 487 488 A proper fix to the buildworld target is needed. 489 49020010918: 491 Peter has committed his new kthread nfs client/server code. 492 NFS may be unstable after this date. 493 49420010912: 495 KSE has hit the tree. Lots of things are now different in 496 the kernel. While a few problems were introduced in the 497 initial commit, most of the major ones have been found and 498 corrected. 499 50020010901: 501 In OLDCARD, CardBus bridges appear to be stable. The work 502 arounds described in the 20010604 entry are now no longer 503 necessary and will be ignored. Most insert/remove problems 504 have been rectified around this date. 505 50620010823: 507 named now runs as user bind and group bind rather than as 508 root. If named_enable is set to YES in /etc/rc.conf, ensure 509 that user bind is available in /etc/passwd (using vipw(8)) 510 and that group bind is available in /etc/group. Also make 511 sure that user or group bind has read (and not write) 512 permission for your name server configuration and that it 513 has read and write permission for your slave zone files and 514 directory. 515 516 If you wish to continue to run named as root (a less secure 517 alternative), add a line to /etc/rc.conf saying 518 519 named_flags= 520 52120010709: 522 The PAM libraries have had an API upgrade that is beyond 523 the ability of the shared library major number to handle. 524 It is manifested by PAM-using ports dumping core. The 525 solution is to rebuild those ports. 526 52720010628: 528 The kernel compile module has moved from src/sys/compile/FOO 529 to src/sys/${MACHINE}/compile/FOO. 530 53120010625: 532 The pccard modem issue from 20010613 has been corrected. 533 OLDCARD support is still a little weak in -current. slot 1 is 534 known not to work on some TI based cardbus bridges. Some 535 cardbus bridges do not properly detect insert/removal events. 536 IRQ configuration needs more safety belts. 537 53820010617: 539 Softupdates problems have been corrected. 540 54120010614: 542 Peter ripped out the linkerset support. You must, as always, 543 rerun config after you cvsup if you are using the traditional 544 kernel building methods. 545 54620010613: 547 pccard modems may not work with current after 20010604 date. Some 548 do, others result in panics. *MAKE*SURE* that you update your 549 config and /etc/rc.conf ala the 20010604 entry, or you will have 550 problems (this issue will be fixed, it just hasn't been yet). 551 55220010613: 553 SOFTUPDATES seem to be broken since the middle of May or so. Do not 554 use them in current. You can disable softupdates on all mounted 555 partitions, or remove SOFTUPDATES the kernel config file. 556 55720010612: 558 After Peter's commits to the hints code, people have been noticing 559 that certain devices are attached (or try to) twice. This is due 560 to having both static hints as well as a /boot/device.hints. To 561 work around this issue, please use only one or the other mechanism 562 until this bug is fixed. 563 564 Please note that a feature of config is that if you have config 565 file FOO and FOO.hints, it automatically adds FOO.hints to the 566 hints.c file, whether you want it to or not. 567 56820010610: 569 Locale names have changed to match other systems better. 570 57120010604: 572 pccard support for pci cards has been committed. You must change 573 your /etc/pccard.conf irq lines. It must match the irq used by 574 pcic device. Interrupt storms may result if you fail to do this. 575 Interrupt storms look a lot like a hang. 576 577 You must also install a new pccardd, otherwise you will get an 578 interrupt storm at card reset time (just after it tells you what 579 it is). 580 581 pccardd_flags="-I" is necessary for the time being. It tells pccardd 582 not to ask the kernel if the interrupt is really free or not before 583 using it. You can either change the /etc/pccard.conf irq lines to 584 match pcic, or add "-i X" to the pccardd_flags. 585 58620010530: 587 INSTALL=install -C is being deprecated. If you want to do this, 588 use COPY=-C instead. The former method will be supported for only 589 a limited time. If you see 590 591install: warning: the -d and -C options may not be specified together 592 593 in your makeworld, then you need to migrate towards using 594 COPY=-C. 595 59620010525: 597 It appears that vm is now stable enough to use again. However, 598 there may be other problems, so caution is still urged. alpha 599 definitely is in bad shape. 600 60120010521: 602 Minor repo damage has happened. This may cause problems 603 with cvsup of ports. If you get errors, please see 604 http://www.FreeBSD.org/cgi/query-pr.cgi?pr=27495 605 at the bottom for details on a workaround. The error message 606 is 607Updater failed: Cannot delete "/usr/ports/www/jakarta-tomcat/files": Directory not empty 608 60920010520: 610 Vm and/or swapping are busted on -current. Please be patient. 611 61220010519: 613 pccard has had much reorganizational work done to it over 614 the past few days. Everything should still work, but if 615 not, please contact imp@freebsd.org. 616 61720010517: 618 ata ioctl changed. Make sure to recompile both kernel and 619 userland at the same time. 620 62120010517: 622 New ncurses imported. 623 62420010512: 625 DEVFS is now opt out, not opt in. Barring major problems, this 626 will be the only way to go starting July 1. 627 62820010504: 629 OpenSSH has been updated to 2.9. Some defaults are different, 630 including RhostsRSAAuthentication, which changes from yes to no. 631 63220010502: 633 Perl breakage in 20010501 was corrected at 14:18:33 PDT. 634 63520010501: 636 Building perl was broken at 02:25:25 PDT. 637 63820010430: 639 The bug in 20010429 was corrected at 07:35:37 PDT. It is safe to 640 go back in the water. 641 64220010429: 643 A bad bug was committed at 04:48:42 PDT. Don't use kernels after 644 this date, but before the correction date. 645 64620010423: 647 old fsck and new kernel interactions appear to have been fixed. 648 64920010411: 650 fsck and the kernel were changed to handle some optimizations 651 to directory layout. This breaks backward compatibility. 652 Update only if you understand that you must not use the old 653 fsck with the new kernel ever. 654 65520010330: 656 fsck has changed the meaning of the pass column in /etc/fstab. 657 Please see the cvs commit to fsck.8 or the fsck.8 man page for 658 details. It is unclear if changes to /etc/fstab are necessary. 659 66020010319: 661 portmap had changed name to rpcbind for maximum POLA in your 662 current world. /etc/hosts.{allow,deny} needs changes. nfs and 663 other rpc based programs that rely on portmapper will not work 664 without updates to /etc/hosts.{allow,deny} and /etc/netconfig. 665 66620010315: 667 ata subsystem changes. ATA_ENABLE_ATAPI_DMA, ATA_ENABLE_WC 668 and ATA_ENABLE_TAGS are no longer kernel options. They have 669 been replaced by tunables. See ata.4 for details. 670 67120010312: 672 The fxp driver was converted to use miibus. If you compile 673 fxp into your kernel statically, you will need to add miibus. 674 67520010312: 676 The wi device now defaults to BSS (infrastructure) mode 677 instead of ad-hoc. 678 67920010310: 680 /dev/urandom should be a symbolic link to /dev/random now. 681 Users of current not using DEVFS need to run MAKEDEV std. 682 ssh might not work if you don't. 683 68420010303: 685 The ed driver has been updated. It now allows mii attachments, 686 which means that you must include the miibus in your kernel if 687 you use the ed driver. 688 68920010220: 690 The problems with libc have been corrected. It is now mostly 691 safe to go back into the water. 692 69320010211: 694 The size of FILE was changed. This breaks upgrading. If 695 you must upgrade, be prepared for pain. It also breaks almost 696 all binaries that you've compiled on -current. You are warned 697 that before upgrading would be a good time to do a level 0 698 dump of your system. No, really, I mean it this time. 699 700 To get to the new system, you'll need to use the following 701 workaround. Hopefully this can be sorted out so that we 702 don't have to move this to the updating section. 703 704 To get around the installworld problem, do: 705 # cd /usr/src/usr.bin/sed 706 # make install 707 # cd /usr/src 708 # make installworld 709 If that doesn't work, then try: 710 # make -k installworld 711 # make installworld 712 71320010207: 714 DEVFS is now the default. If you use vinum, make sure that you 715 do not include devfs in your kernel as problems result. 716 71720010205: 718 FFS_ROOT and CD9660_ROOT have been removed or deprecated. 719 Remove them from your config. 720 72120010122: 722 ****************************** WARNING ****************************** 723 buildkernel has been changed slightly 724 ****************************** WARNING ****************************** 725 KERNCONF replaces the variable KERNEL for buildkernel. You 726 should update your scripts and make.conf accordingly. 727 72820010119: 729 config has changed to allow DEV_FOO as a replacement for NFOO. 730 This requires a new config to build correctly. 731 73220010116: 733 The kernel option I386_CPU is now mutually exclusive with the 734 other cpu types. If you have an i386 system, be sure that it 735 only had this line. Remove it for all other configurations. 736 73720010110: 738 Changes to the kernel require it and burncd be in sync. 739 74020010102: 741 Everyone who has hw.sndunit set to something in 742 /etc/sysctl.conf, it is now hw.snd.unit. 743 74420010101: 745 ex and vi were broken by some changes to sys/queue.h. If you 746 have a bad vi, you will see make buildworld fail with a core 747 dump while building termcap. You can work around this problem 748 by adding -k to your make buildworld. This will cause the 749 build to complete and install a new vi. Once that's done, you 750 can rebuild again without the -k to pick up anything that 751 might have been ignored by the -k option. 752 753 Others have suggested that you can just rebuild libc if your 754 vi/ex is dynamically linked, but I've not received any reports 755 of this working. 756 75720001228: 758 There have been some changes to libcrypt in -current. The 759 libscrypt/libdescrypt symlink silliness is gone and the installed 760 libcrypt is fully functional. Be aware of this. 761 76220001218: 763 Linksys Fast Ethernet PCCARD cards supported by the ed driver 764 now require the addition of flag 0x80000 to their config line 765 in pccard.conf(5). This flag is not optional. These Linksys 766 cards will not be recognized without it. 767 76820001205: 769 Important new FreeBSD-version stuff: PAM support has been worked 770 in, partially from the "Unix" OpenSSH version. This requires 771 adding the following in pam.conf: 772 773 sshd auth sufficient pam_skey.so 774 sshd auth required pam_unix.so try_first_pass 775 sshd session required pam_permit.so 776 77720001031: 778 cvs updated to 1.11. 779 78020001020: 781 The random device needs more entropy, so you need to make sure 782 that you've run mergemaster to get a /etc/rc which will seed 783 /dev/random. If you don't and the system hangs after ldconfig, 784 then banging on the keyboard randomly until it unhangs is one 785 workaround. 786 78720001010: 788 ****************************** WARNING ****************************** 789 Sendmail has been updated. 790 ****************************** WARNING ****************************** 791 o mail.local(8) is no longer installed as a set-user-id binary. 792 o sendmail(8) is now built with STARTTLS support unless NO_OPENSSL 793 is set. 794 o The default /etc/mail/sendmail.cf disables the SMTP EXPN and VRFY 795 commands. 796 o Now using sendmail's version of vacation(1). 797 o The sendmail cf building tools (contrib/sendmail/cf) are installed 798 in /usr/share/sendmail/cf. 799 o sendmail.cw changed to local-host-names 800 801 More details can be found at 802 http://people.freebsd.org/~imp/UPDATING/sendmail-20001010 803 80420001009: 805 The ports tree's new layout is in place. Be sure to update 806 your entire ports tree, or you will have problems. 807 80820001006: 809 The perl build procedure no longer installs miniperl, nor uses 810 the installed miniperl. It is recommended that you delete 811 /usr/bin/miniperl. 812 81320001005: 814 This weekend the ports tree will be updated to a new layout. 815 It will be in an inconsistent state until noted in the UPDATING 816 file, or with asami-san's message to the relevant mailing 817 lists. With this new layout, you'll need to update the whole 818 tree for anything to work. 819 82020000928: 821 There was a change in the passwd format. Need more information. 822 82320000916: 824 /boot/kernel/kernel.ko -> /boot/kernel/kernel change has taken 825 place. Please update boot loader (not the boot blocks) at the 826 same time as your kernel. 827 82820000914: 829 The new pmtimer device is necessary for laptops. Failure to 830 include the device will cause suspended laptops losing time 831 when they resume. Include 832 device pmtimer 833 in your config file and 834 hint.pmtimer.0.at="isa" 835 to your /boot/device.hints file. 836 83720000911: 838 The random device has been turned into a (pseudo-)device, 839 rather than an option. The supplied kernel config files have 840 been updated. You will need to do something similar in your 841 own kernel config file. 842 Remove: 843 options RANDOMDEV 844 Add: 845 device random 846 If you prefer to load the loadable module, you need to do 847 nothing. 848 84920000909: 850 The random device module has been renamed from randomdev.ko to 851 random.ko. You will need to edit your /boot/loader.conf to 852 reflect this if you load this module at boot time. 853 The line should read: 854 random_load="YES" 855 85620000907: 857 The SMPNG commit has happened. It should work, but if it 858 doesn't, fallback to the PRE_SMPNG CVS tag. There are likely 859 to be a variety of minor issues. Please see 20000905 to make 860 sure you don't have model loading problems which might at 861 first blush appear related to SMP. 862 86320000906: 864 nsswitch has been imported from NetBSD. Among other things, 865 this means that /etc/host.conf is no longer used. See 866 nsswitch.conf(5) instead. Note that at boot time rc.network 867 will attempt to produce a new nsswitch.conf file for you if you 868 don't have one, and you have host.conf. 869 87020000905: 871 The ucred structure changed size. This breaks the interface 872 that mountd uses. Trying to use an older mountd with a newer 873 kernel guarantees a panic. This means that you need to use 874 kernels newer than today only with matching mountd, but you 875 needed to do that anyway with the boot loader changes. 876 87720000905: 878 The boot loader has been updated. The new default kernel is 879 now /boot/kernel/kernel.ko. The new default module location 880 is /boot/kernel. 881 882 You *MUST* upgrade your boot loader and kernel at the same time. 883 The easiest way to do this is to do the buildworld/buildkernel/ 884 installkernel/installworld dance. 885 886 Furthermore, you are urged to delete your old /modules directory 887 before booting the new kernel, since kldload will find stale 888 modules in that directory instead of finding them in the correct 889 path, /boot/kernel. The most common complaint that this cures 890 is that the linux module crashes your machine after the update. 891 892 if [ ! -d /boot/kernel.old ]; then 893 mv /modules.old /boot/kernel.old 894 chflags noschg /kernel.old 895 mv /kernel.old /boot/kernel.old/kernel.ko 896 chflags schg /boot/kernel.old/kernel.ko 897 fi 898 89920000904: 900 A new issue with the sendmail upgrade has come to light. 901 /etc/aliases has moved to /etc/mail/aliases. Mergemaster will 902 incorrectly install the default aliases in /etc/mail rather than 903 move the old one from /etc. So you'll need to manually move the 904 file, create a symbolic link, remove the old /etc/aliases.db and 905 run newaliases. For safety sake, you should stop sendmail 906 while doing this and run the upgrade when locally sourced email 907 is not likely to be generated. 908 90920000825: 910 /boot/device.hints is now required for installkernel to 911 succeed. You should copy GENERIC.hints for your architecture 912 into /boot/device.hints. If and only if you compile hints 913 into your kernel, then this file may be empty. Please note, 914 if you have an empty or missing /boot/device.hints file and 915 you neglected to compile hints into your kernel, no boot 916 messages will appear after the boot loader tries to start the 917 kernel. 918 91920000821: 920 If you do NOT have ``options RANDOMDEV'' in your kernel and 921 you DO want the random device then add randomdev_load="YES" to 922 /boot/loader.conf. 923 92420000812: 925 suidperl is now always built and installed on the system, but 926 with permissions of 511. If you have applications that use 927 this program, you are now required to add ENABLE_SUIDPERL=true 928 to /etc/make.conf. If you forget to do this, 929 chmod 4511 /usr/bin/suidperl 930 will fix this until the next build. 931 93220000812: 933 sendmail has been updated from 8.9.3 to 8.11.0. Some of the more 934 visible changes that may immediately affect your configuration 935 include: 936 - New default file locations from src/contrib/sendmail/cf/README 937 - newaliases limited to root and trusted users 938 - MSA port (587) turned on by default 939 - New queue file naming system so can't go from 8.11 -> 8.9 940 - FEATURE(`rbl') renamed to FEATURE(`dnsbl') 941 - FEATURE(`nullclient') is more full featured 942 - FEATURE(`nouucp') requires an argument: `reject' or `nospecial' 943 - mail.local FreeBSD-only -b option changed to -B 944 - See src/contrib/sendmail/RELEASE_NOTES for more info 945 94620000810: 947 suidperl (aka sperl) is no longer build by default. You must 948 specifically define BUILD_SUIDPERL to "true" for it to be build. 949 Furthermore, we recommend that you remove /usr/bin/sperl* and 950 /usr/bin/suidperl files from your system unless you have a 951 specific use for it. 952 95320000729: 954 Networking defaults have been tightened. Anybody upgrading 955 /etc/defaults/rc.conf needs to add the following lines to 956 /etc/rc.conf if they want to have the same setup 957 afterwards (unless the variables already are set, of course): 958 # Enable network daemons for user convenience. 959 inetd_enable="YES" 960 portmap_enable="YES" 961 sendmail_enable="YES" 962 96320000728: 964 If you have null_load="YES" in your /boot/loader.conf, you 965 will need to change that to nullfs_load="YES". 966 96720000728: 968 The "installkernel" target has changed slightly. Now even if 969 you override KERNEL e.g. 'make installkernel KERNEL=MYKERNEL' 970 it will install the MYKERNEL file (built with the buildkernel 971 target) as /kernel rather than /MYKERNEL. Those who have 972 updated their /boot/loader.conf files to point to /MYKERNEL 973 should remove that entry or perform manual rename of /kernel 974 to /MYKERNEL. 975 97620000711: 977 If you use CVSUP or CTM to get CVS trees, AND you used to get 978 the old crypto files from internat.freebsd.org AND you check 979 out files from the CVS tree with the cvs command, please read 980 http://people.freebsd.org/~imp/internat.txt 981 for details on potential problems that you might have and how 982 to get around them. 983 984 If you are merely a mirror, or don't answer yes to each of the 985 clauses above, you needn't worry. 986 98720000711: 988 /etc/security has been updated to print the inode number of 989 setuid programs that have changed. You will see a large spike 990 in the number of changed programs the first time when you run 991 mergemaster to get a new /etc/security. 992 99320000710: 994 /dev/random now has good entropy collection (from the keyboard 995 and sysmouse drivers). Please ensure that either `options 996 RANDOMDEV' is present in your kernel config file or that 997 `randomdev_load="YES"' is in your /boot/loader.conf. If you do 998 not have the /dev/random driver, OpenSSL (and consequently 999 lots of crypto tools (like SSH)) will fail with strange 1000 errors. (see below, 20000624). 1001 1002 FreeBSD-current is safe again to run Crypto. 1003 100420000709: 1005 phk made the malloc default options AJ. This may slow things 1006 down and uncover other latent bugs in the code. If you need to 1007 run at full speed, you can disable this by doing the following: 1008 ln -s aj /etc/malloc.conf 1009 101020000706: 1011 libftpio's version was accidentally bumped a few days ago. This 1012 has been corrected. You may need to remove /usr/lib/libftpio.so.6 1013 before doing your next buildworld/installworld pair. It certainly 1014 won't hurt to remove it before the update procedure. It will 1015 break fetch until a new one is built, but ftp can be used in the 1016 interim if needed. 1017 101820000705: 1019 The crypto packages have changed for the cvsup. This has been done 1020 in a backward compatible way, but the old packages will go away at 1021 some point in the future. Look at /usr/share/examples/cvsup for 1022 details. 1023 102420000704: 1025 With the new sys/modules/sound/drivers/*, you will need to 1026 set SYSDIR until you do an installworld after July 7th. 1027 102820000704: 1029 rc.shutdown and rc will now call the rc.d scripts with start 1030 or stop. This may cause some harmless warnings from older 1031 rc.d scripts that haven't been updated. 1032 103320000630: 1034 The libfetch based version of fetch has gone into the tree. 1035 Minor problems may result on some of the less popular sites, 1036 which should be reported to des@freebsd.org. 1037 103820000625: 1039 From approximately this date forward, one must have the crypto 1040 system installed in order to build the system and kernel. 1041 While not technically strictly true, one should treat it as 1042 required and grab the crypto bits. If you are grabbing CVS 1043 trees, src-all and cvs-crypto should be treated as if they 1044 were required. You should check with the latest collections 1045 to make sure that these haven't changed. 1046 104720000624: 1048 Mark Murray just committed the first parts of a cleanup of 1049 /dev/zero, et al. This is also cleaning up /dev/random. 1050 The entropy is disconnected, so DO NOT USE VERSIONS OF FREEBSD 1051 -CURRENT FROM THIS POINT to 2000710 for cryptographic services 1052 until Mark can merge in the fixes to this work in progress. 1053 openssh and openssl should not be used to generate keys from this 1054 date to the completion of the work. 1055 1056 If you must operate at this reduced level of security, add ' 1057 options RANDOMDEV' to your kernel or modload the randomdev 1058 module. You may also need to copy a new MAKEDEV to /dev and 1059 recreate the random and urandom devices. 1060 106120000622: 1062 The license on the softupdates is now a standard 2 clause 1063 BSD license. You may need to remove your symbolic links 1064 that used to be required when updating. 1065 106620000621: 1067 Scott Flatman <sf@aracnet.com> sent in a decent write-up on 1068 the config file update procedure. 1069 http://people.freebsd.org/~imp/config-upd.html 1070 NOTE: LINT is gone. It has been replaced with NOTES. NOTES 1071 isn't buildable. However, you can generate a LINT file: 1072 cd /sys/<ARCH>/conf && make LINT 1073 107420000620: 1075 Binutils 2.10 have hit the tree, or will shortly. As soon 1076 as they do, the problem noted in 20000522 will be resolved and 1077 that workaround will no longer be required. 1078 107920000615: 1080 phk removed the compatibility creation of wd devices in the 1081 ad driver. If you haven't done so already, you must update 1082 your fstab, etc to use the ad devices instead of the wd 1083 devices. 1084 1085 In addition, you'll need to update your boot blocks to a 1086 more modern version, if you haven't already done so. Modern 1087 here means 4.0 release or newer (although older releases 1088 may work). 1089 109020000612: 1091 Peter took an axe to config(8). Be sure that you read his mail 1092 on the topic before even thinking about updating. You will 1093 need to create a /boot/device.hints or add a hints directive 1094 to your config file to compile them in statically. The format 1095 of the config file has changed as well. Please see GENERIC or 1096 NEWCARD for examples of the new format. 1097 1098 Indirectly, this also breaks USERCONFIG. Unless a newer entry 1099 says that it has been fixed, assume that must use the hints mechanism 1100 in the loader if you need to use a machine with very old ISA cards 1101 in it. 1102 110320000522: 1104 A new set of binutils went into the tree today. Anybody 1105 building a kernel after this point is advised that they need 1106 to rebuild their binutils (or better yet do a 1107 buildworld/installworld) before building a new kernel. 1108 1109 Due to bugs in binutils, using malloc options (eg /etc/malloc.conf 1110 or MALLOC_OPTIONS env var) J will cause ld to dump core. It 1111 is recommended that you don't set this option until the problem 1112 is resolved. 1113 111420000513: 1115 The ethernet drivers were all updated to clean up the BPF handling. 1116 111720000510: 1118 The problems with boot blocks on the alphas have been corrected. 1119 This will require some care in updating alphas. A new libstand 1120 is requires for the boot blocks to build properly. 1121 112220000503: 1123 Recompile all kld modules. Proper version dependency info 1124 is now available. 1125 112620000502: 1127 Modules have been disconnected from the buildworld tree and 1128 connected to the kernel building instead. 1129 113020000427: 1131 You may need to build gperf 1132 cd /usr/src/gnu/usr.bin/gperf && make depend all install 1133 when upgrading from 4.0 -> current. The build system now uses 1134 an option only in -current. 1135 113620000417: 1137 The method that we brand ELF binaries has changed to be more 1138 acceptable to the binutils maintainers. You will need to 1139 rebrand your ELF binaries that aren't native. One problem 1140 binary is the Linux ldconfig. After your make world, but 1141 before you reboot, you'll need to issue: 1142 brandelf -t Linux /compat/linux/sbin/ldconfig 1143 if you have Linux compatibility enabled on your machine. 1144 114520000320: 1146 If you have really bad/marginal IDE drives, you may find they 1147 don't work well. Use pio mode instead. The easiest way to 1148 cope if you have a problem combination is to add: 1149 /sbin/sysctl hw.ata.ata_dma=0 1150 to the start of /etc/rc.conf. 1151 115220000319: 1153 The ISA and PCI compatibility shims have been connected to the 1154 options COMPAT_OLDISA and COMPAT_OLDPCI. If you are using old 1155 style PCI or ISA drivers (i.e. tx, voxware, etc.) you must 1156 include the appropriate option in your kernel config. Drivers 1157 using the shims should be updated or they won't ship with 1158 5.0-RELEASE, targeted for 2001. 1159 116020000318: 1161 We've entered the traditional post release dumping party. 1162 Large kernel changes are being committed and are in the 1163 works. It is important to keep the systems' klds and kernel 1164 in sync as kernel interfaces and structures are changing. 1165 Before reporting kernel panics, make sure that all modules 1166 that you are loading are up to date. 1167 116820000315: 1169 If you are upgrading from an older version of FreeBSD, you 1170 need to update your boot blocks as well. 'disklabel -B ad0' 1171 will do the trick. This isn't critical until you remove your 1172 wd device entries in /dev, at which point your system will not 1173 boot. 1174 117520000315: 1176 4.0 RELEASE shipped. Please see the 4.0 UPDATING file for how 1177 to upgrade to 4.0 from 3.x. 1178 1179COMMON ITEMS: 1180 1181 General Notes 1182 ------------- 1183 Avoid using make -j when upgrading. From time to time in the 1184 past there have been problems using -j with buildworld and/or 1185 installworld. This is especially true when upgrading between 1186 "distant" versions (eg one that cross a major release boundary 1187 or several minor releases, or when several months have passed 1188 on the -current branch). 1189 1190 Sometimes, obscure build problems are the result of environment 1191 poisoning. This can happen because the make utility reads its 1192 environment when searching for values for global variables. 1193 To run your build attempts in an "environmental clean room", 1194 prefix all make commands with 'env -i '. See the env(1) manual 1195 page for more details. 1196 1197 To build a kernel 1198 ----------------- 1199 If you are updating from a prior version of FreeBSD (even one just 1200 a few days old), you should follow this procedure. With a 1201 /usr/obj tree with a fresh buildworld, 1202 make -DALWAYS_CHECK_MAKE buildkernel KERNCONF=YOUR_KERNEL_HERE 1203 make -DALWAYS_CHECK_MAKE installkernel KERNCONF=YOUR_KERNEL_HERE 1204 1205 To just build a kernel when you know that it won't mess you up 1206 -------------------------------------------------------------- 1207 cd src/sys/{i386,alpha}/conf 1208 config KERNEL_NAME_HERE 1209 cd ../../compile/KERNEL_NAME_HERE 1210 make depend 1211 make 1212 make install 1213 1214 If this fails, go to the "To build a kernel" section. 1215 1216 To rebuild everything and install it on the current system. 1217 ----------------------------------------------------------- 1218 # Note: sometimes if you are running current you gotta do more than 1219 # is listed here if you are upgrading from a really old current. 1220 1221 <make sure you have good level 0 dumps> 1222 <maybe fix /etc/fstab> [7] 1223 make buildworld 1224 make buildkernel KERNCONF=YOUR_KERNEL_HERE 1225 make installkernel KERNCONF=YOUR_KERNEL_HERE 1226 [1] 1227 <reboot in single user> [3] 1228 mergemaster -p [5] 1229 make installworld 1230 mergemaster [4] 1231 <reboot> 1232 1233 1234 To cross-install current onto a separate partition 1235 -------------------------------------------------- 1236 # In this approach we use a separate partition to hold 1237 # current's root, 'usr', and 'var' directories. A partition 1238 # holding "/", "/usr" and "/var" should be about 2GB in 1239 # size. 1240 1241 <make sure you have good level 0 dumps> 1242 <boot into -stable> 1243 make buildworld 1244 <maybe newfs current's root partition> 1245 <mount current's root partition on directory ${CURRENT_ROOT}> 1246 make installworld DESTDIR=${CURRENT_ROOT} 1247 make buildkernel KERNCONF=YOUR_KERNEL_HERE 1248 cp /usr/src/sys/${ARCH}/conf/GENERIC.hints \ 1249 ${CURRENT_ROOT}/boot/device.hints # as needed 1250 make installkernel KERNCONF=YOUR_KERNEL_HERE DESTDIR=${CURRENT_ROOT} 1251 cd /usr/src/etc; make distribution DESTDIR=${CURRENT_ROOT} # if newfs'd 1252 cp /etc/fstab ${CURRENT_ROOT}/etc/fstab # if newfs'd 1253 <edit ${CURRENT_ROOT}/etc/fstab to mount "/" from the correct partition> 1254 <reboot into current> 1255 <do a "native" rebuild/install as described in the previous section> 1256 <maybe install compatibility libraries from /usr/src/lib/compat> 1257 <reboot> 1258 1259 1260 To upgrade in-place from 4.x-stable to current 1261 ---------------------------------------------- 1262 # 5.x uses more space than 4.x. Also, the location of kernel 1263 # modules has changed. If you are installing 5.0 onto a 4.x 1264 # system, you'll need about 30MB of free disk space on your / 1265 # partition. If you have less than this, you may encounter difficult 1266 # to back out of problems with this procedure. If /tmp is on 1267 # the / partition, you may want to completely remove all its content 1268 # before upgrading, as this can be a common source of shortage of 1269 # space on /. 1270 1271 <make sure you have good level 0 dumps> 1272 <maybe fix /etc/fstab> [7] 1273 make buildworld [9] 1274 make buildkernel KERNCONF=YOUR_KERNEL_HERE [8] 1275 cp src/sys/${MACHINE}/conf/GENERIC.hints /boot/device.hints [2] 1276 make installkernel KERNCONF=YOUR_KERNEL_HERE 1277 cd src/sys/boot ; make install [6] 1278 [1] 1279 <reboot in single user> [3] 1280 mergemaster -p [5] 1281 rm -rf /usr/include/g++ 1282 make installworld 1283 mergemaster [4] 1284 <reboot> 1285 1286 Make sure that you've read the UPDATING file to understand the 1287 tweaks to various things you need. At this point in the life 1288 cycle of current, things change often and you are on your own 1289 to cope. The defaults can also change, so please read ALL of 1290 the UPDATING entries. 1291 1292 Also, if you are tracking -current, you must be subscribed to 1293 freebsd-current@freebsd.org. Make sure that before you update 1294 your sources that you have read and understood all the recent 1295 messages there. If in doubt, please track -stable which has 1296 much fewer pitfalls. 1297 1298 [1] If you have third party modules, such as vmware, you 1299 should disable them at this point so they don't crash your 1300 system on reboot. 1301 1302 [2] If you have legacy ISA devices, you may need to create 1303 your own device.hints to reflect your unique hardware 1304 configuration. 1305 1306 [3] From the bootblocks, boot -s, and then do 1307 fsck -p 1308 mount -u / 1309 mount -a 1310 cd /usr/src 1311 adjkerntz -i # if CMOS is wall time 1312 Also, when doing a major release upgrade, it is required that 1313 you boot into single user mode to do the installworld. 1314 For the 4.x -> 5.0 upgrade, you will also see many messages about 1315 needing to recompile your userland. These are harmless and can 1316 be ignored while you proceed to the next step. 1317 1318 [4] Note: This step is non-optional. Failure to do this step 1319 can result in a significant reduction in the functionality of the 1320 system. Attempting to do it by hand is not recommended and those 1321 that pursue this avenue should read this file carefully, as well 1322 as the archives of freebsd-current and freebsd-hackers mailing lists 1323 for potential gotchas. 1324 1325 [5] Usually this step is a noop. However, from time to time 1326 you may need to do this if you get unknown user in the following 1327 step. It never hurts to do it all the time. You may need to 1328 install a new mergemaster (cd src/usr.sbin/mergemaster && make 1329 install) after the buildworld before this step if you last updated 1330 from current before 20020224 or from -stable before 20020408. 1331 1332 [6] 4.x boot loader can be used to boot a 5.x system, however 1333 it is difficult to do that at best. If you wish to try, then 1334 you should interrupt the boot and at the ok prompt type: 1335 ok unload 1336 ok boot /boot/kernel/kernel 1337 If this fails to work, you must install a new boot loader as 1338 described here. 1339 1340 [7] Before you upgrade, please make sure that you are not using 1341 compatibility slices. These are device names of the form, on i386 1342 and other architectures that use MBR slicing, /dev/ad0a without the 1343 actual slice name. Chances are excellent that these will break. 1344 You generally must update these entries to use the post FreeBSD 1345 2.x form of /dev/ad0s1a. 1346 1347 [8] In order to have a kernel that can run the 4.x binaries 1348 needed to do an installworld, you must include the COMPAT_FREEBSD4 1349 option in your kernel. Failure to do so may leave you with a system 1350 that is hard to boot to recover. 1351 1352 [9] When checking out sources, you must include the -P flag to have 1353 cvs prune empty directories. 1354FORMAT: 1355 1356This file contains a list, in reverse chronological order, of major 1357breakages in tracking -current. Not all things will be listed here, 1358and it only starts on March 15, 2000. Updating files can found in 1359previous releases if your system is older than this. 1360 1361Copyright information: 1362 1363Copyright 1998, 2002 M. Warner Losh. All Rights Reserved. 1364 1365Redistribution, publication, translation and use, with or without 1366modification, in full or in part, in any form or format of this 1367document are permitted without further permission from the author. 1368 1369THIS DOCUMENT IS PROVIDED BY WARNER LOSH ``AS IS'' AND ANY EXPRESS OR 1370IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 1371WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 1372DISCLAIMED. IN NO EVENT SHALL WARNER LOSH BE LIABLE FOR ANY DIRECT, 1373INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 1374(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 1375SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 1376HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 1377STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 1378IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 1379POSSIBILITY OF SUCH DAMAGE. 1380 1381If you find this document useful, and you want to, you may buy the 1382author a beer. 1383 1384Contact Warner Losh if you have any questions about your use of 1385this document. 1386 1387$FreeBSD: head/UPDATING 121242 2003-10-19 10:24:59Z phk $ 1388