UPDATING revision 106022
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 5.0-CURRENT IS SLOW: 8 FreeBSD 5.0-CURRENT 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 2020021024: 21 Old, compatibility slices have been removed in GEOM kernels. This 22 means that you will have to update your /etc/fstab to not use 23 disk devices of the form /dev/ad0a. Instead, you now must 24 specify /dev/ad0s1a, or whatever slice your FreeBSD partition 25 really is on. The old device names have gone away, so if you 26 use them anywhere else, you must also adjust those uses. 27 2820021023: 29 Alphas with kernels from between 20020830 and 20021023 and/or 30 rtld (ld-elf.so.1) older than 20021023 may experience problems 31 with groff while doing a buildworld (kernel: "out of memory", 32 fixed in rev 1.129 of kern/imgact_elf.c; rtld: "too few PT_LOAD 33 segments", fixed in rev 1.8 of libexec/rtld-elf/map_object.c). 34 35 So, to successfully upgrade your Alpha, you must either 36 upgrade your kernel and rtld first (which might be a bit 37 tricky), or avoid running the bootstrapped groff during the 38 "transitional" buildworld. To avoid running groff during the 39 transitional upgrade run make buildworld with -DNOMAN, 40 -DNO_SHAREDOCS, and -DNO_LPR. 41 4220020831: 43 gcc has been upgraded to 3.2. It is not all binary compatible 44 with earlier versions of gcc for c++ programs. All c++ 45 programs and libraries need to be recompiled. 46 47 Also, if you encounter g++ issues, rm /usr/include/g++/* before 48 doing an installworld to make sure that stale files are removed. 49 5020020827: 51 Our /etc/termcap now has all the entries from the XFree86 xterm 52 almost unchanged. This means xterm now supports color by default. 53 If you used TERM=xterm-color in the past you now should use 54 TERM=xterm. (xterm-color will lead to benign warnings). 55 5620020815: 57 A "bug" in gcc(1) that was hiding warning in system headers was 58 fixed. It's probably time to add -DNO_WERROR to your make line 59 again. 60 6120020729: 62 COPY is being deprecated. The 20010530 change was reverted, as 63 it causes far more pain than was expected, and to always compare 64 before installing, please use INSTALL="install -C" again. The 65 -C option is now silently ignored when used with the -d option. 66 6720020702: 68 Problems with libc_r clients like KDE and GNOME have been resolved. 69 There are still some minor problems with some signals but the 70 system is stable enough for general use again. SMP is less so than UP 71 but each can successfully complete multiple buildworlds. 72 Libkvm needs to be recompiled due to KSE. 73 7420020701: 75 Now would be a bad time to upgrade. Something in or near the 76 KSE commit totally broke programs using libc_r like KDE and 77 GNOME. 78 7920020511: 80 The k5su utility installed as part of Kerberos 5 is no longer 81 installed with the set-user-ID bit set by default. Add 82 ENABLE_SUID_K5SU=yes to /etc/make.conf to have it installed 83 with the set-user-ID bit set. 84 8520020510: 86 Gcc 3.1 debugging format (cc -g) has changed from STABS to DWARF2. 87 Unfortunately our native GDB (at version 4.18) does not understand 88 the DWARF2 debugging format. Thus you must use `gcc -gstabs+' to 89 generated debugging information for our native GDB. 90 9120020510: 92 Due to the way CVS works, it may not properly update src/contrib/gcc 93 to the 3.1 sources. The easiest fix is to `rm -rf' src/contrib/gcc 94 and then do a cvs update. 95 9620020421: 97 When exec'ing set[ug]id executables, the kernel now ensures that the 98 stdio file descriptors (0..2) are open. See FreeBSD-SA-02:23.stdio. 99 10020020404: 101 New sendmail startup scripts have been installed to make it 102 easier to use alternative MTAs with FreeBSD. Setting the rc.conf 103 variable sendmail_enable to "NO" no longer prevents any sendmail 104 daemons from starting. Instead, either set sendmail_enable to 105 "NONE" or change mta_start_script to a script for starting 106 an alternative MTA. Setting mta_start_script to "" will 107 also prevent any MTA from being started at boot. 108 10920020403: 110 UCONSOLE is no longer a valid kernel option. 111 11220020315: 113 FreeBSD 5.0 DP-1 was basically branched today. 114 11520020225: 116 Warnings are now errors in the kernel. Unless you are a developer, 117 you should add -DNO_WERROR to your make line. 118 11920020217: 120 sendmail 8.12.2 has been imported. The sendmail binary is no 121 longer a set-user-ID root binary and the infrastructure to support 122 command line mail submission has changed. Be sure to run 123 mergemaster (especially for updating /etc/rc, /etc/defaults/rc.conf, 124 and /etc/mail) and read /etc/mail/README for more details. 125 126 Due to the import of sendmail 8.12.2, a new user and group are 127 required in order for sendmail to run as a set-group-ID 128 binary. A 'make installworld' will use the new user and group 129 to set the owner and group of /var/spool/clientmqueue and will 130 fail if the new user and group do not exist. The 'smmsp' user 131 and group must be merged from src/etc/group and 132 src/etc/master.passwd before using 'make installworld'. 133 'mergemaster -p' will do this. You may need to install 134 mergemaster before this will work if you are updating from a 135 very old version of current. The updating recipe has changed 136 as of this date. 137 13820020112: 139 The preferred configuration method for PAM is now /etc/pam.d/ 140 rather than /etc/pam.conf. If you have an unmodified 141 pam.conf, just delete it after your next mergemaster run. If 142 you have local modifications, you can use 143 /usr/src/etc/pam.d/convert.pl to incorporate them into your 144 /etc/pam.d. 145 146 Please see the following url for more details: 147http://www.freebsd.org/cgi/mid.cgi?db=mid&id=<xzp6667fyoa.fsf@flood.ping.uio.no> 14820011229: 149 If anyone here is already using the new rc.conf(5) variable 150 networkfs_types, please note that it has changed 151http://www.freebsd.org/cgi/mid.cgi?db=mid&id=<9744.1009655556@axl.seasidesoftware.co.za> 152 15320011220: 154 sys/i4b/driver/i4b_ispppsubr.c has been retired. This file 155 started out its life in the ISDN4BSD project as an offspring 156 from sys/net/if_spppsubr.c, which eventually got a life of its 157 own. All the accumulated features and bugfixes of the i4b 158 version have now been merged back into the base system's 159 version now. The only user-visible change resulting from this 160 is that i4b's sppp(4) interfaces are to be managed with 161 spppcontrol(8) again, since ispppcontrol(8) has been retired 162 as well. (There has never been rc file support for 163 ispppcontrol in -current, but only in -stable. That will be 164 reverted by the time the changes are MFCed.) 165 16620011215: 167 The fdc(4) driver has been updated and now automatically 168 recognizes media in `standard' formats (like 1440 KB and 169 720 KB for a 3.5" high-density drive) when accessing the 170 default device node (e. g. /dev/fd0). The old variety of 171 floppy device nodes /dev/fd*.* is no longer present by 172 default, devices can be created (in DEVFS) on demand. They 173 will need to be customized then for `odd' densities using 174 fdcontrol(8). 175 17620011209: 177 The bugs in procfs' debugging support code have been fixed, 178 and truss(1) now works again. 179 18020011207: 181 Daily security checks have been split out to use the periodic(8) 182 scripts. Some change in configuration may be necessary. Please 183 see 184http://www.freebsd.org/cgi/mid.cgi?db=mid&id=<20011207155805.R8975@blossom.cjclark.org> 185 for details. 186 18720011204: 188 sos added VCD/SVCD support to ata driver and that needs the 189 kernel and burncd to be in sync. 190 19120011203: 192 The procfs pseudo-filesystem has now been converted to use the 193 pseudofs framework. If you have 'options PROCFS' in your 194 kernel config, you'll need to add 'options PSEUDOFS' if it's 195 not there already. 196 197 This change temporarily breaks truss(1); use ktrace(1) instead 198 until the issue has been resolved. 199 20020011202: 201 A security hole in OpenSSH involving `UseLogin yes' has been 202 patched. 203 20420011126: 205 You need to remove /usr/obj/.../usr.bin/tip before rebuilding 206 after this date. You need to do this only once. 207 20820011103: 209 Most of the awk issues have been resolved. Some rough 210 edges may be left, but for the most part things should be 211 back to "normal." For CURRENT's usual definition of "normal." 212 21320011030: 214 Awk has been upgraded to the one true awk from bell labs. Expect 215 choppy waves in the upgrade process. 216 21720011030: 218 The asr driver problem has been resolved. 219 22020011027: 221 Due to changes in other parts of the system, the asr driver 222 now causes the system to panic on boot. Do not use it pending 223 correction. Comment it out of any kernel config file that you 224 try to use from this date forward. 225 22620011025: 227 When crossbuilding, use TARGET=xxx where you used to use 228 MACHINE=xxx. You don't need to set TARGET_ARCH and TARGET, 229 unless you are changing both of them. To cross build pc98 on 230 an alpha, for example, you need to set TARGET=pc98 and 231 TARGET_ARCH=i386. 232 23320011001: 234 The kernel interface that burncd depends on has changed. 235 You must recompile both the kernel and userland applications 236 at the same time. 237 23820010929: 239 When crossbuilding, please set TARGET_ARCH rather than 240 MACHINE_ARCH to indicate the target. In the future, one will 241 set TARGET_MACHINE where you set MACHINE now. At the moment, 242 setting MACHINE alone for same MACHINE_ARCH machines works 243 (eg, you can build pc98 on a i386 machine and vice versa). 244 24520010927: 246 Some weird problems result from using ACPI on some machines. 247 To disable ACPI you can add 248 hint.acpi.0.disable="1" 249 to /boot/loader.conf (or by putting set X=Y at the boot 250 loader "ok" prompt). 251 252 Alternatively, you can remove it from /boot/kernel/acpi.ko 253 or use the MODULES_OVERRIDE function in your kernel config 254 file and not list acpi in that list. 255 25620010924: 257 The buildworld has been fixed. You may need to install 258 the 4.x compatibility libraries for some old binaries 259 to work. Add COMPAT4X=true to your /etc/make.conf to 260 get them installed on every installworld, or execute the 261 following to get them installed only once: 262 cd src/lib/compat/compat4x.<arch> 263 make all install 264 You will see ``__stdoutp undefined'' until you do this. 265 26620010919: 267 There's a bug in the world build process. The cross-tools 268 are build with the NEW headers, but the OLD libc.a. This 269 leads to all kinds of problems with the new libc. A temporary 270 workaround is to add 271 CFLAGS="-O -pipe -D_OLD_STDIO" 272 before building world when upgrading from 4.x to current. This 273 can be removed afterwards. 274 275 A proper fix to the buildworld target is needed. 276 27720010918: 278 Peter has committed his new kthread nfs client/server code. 279 NFS may be unstable after this date. 280 28120010912: 282 KSE has hit the tree. Lots of things are now different in 283 the kernel. While a few problems were introduced in the 284 initial commit, most of the major ones have been found and 285 corrected. 286 28720010901: 288 In OLDCARD, CardBus bridges appear to be stable. The work 289 arounds described in the 20010604 entry are now no longer 290 necessary and will be ignored. Most insert/remove problems 291 have been rectified around this date. 292 29320010823: 294 named now runs as user bind and group bind rather than as 295 root. If named_enable is set to YES in /etc/rc.conf, ensure 296 that user bind is available in /etc/passwd (using vipw(8)) 297 and that group bind is available in /etc/group. Also make 298 sure that user or group bind has read (and not write) 299 permission for your name server configuration and that it 300 has read and write permission for your slave zone files and 301 directory. 302 303 If you wish to continue to run named as root (a less secure 304 alternative), add a line to /etc/rc.conf saying 305 306 named_flags= 307 30820010709: 309 The PAM libraries have had an API upgrade that is beyond 310 the ability of the shared library major number to handle. 311 It is manifested by PAM-using ports dumping core. The 312 solution is to rebuild those ports. 313 31420010628: 315 The kernel compile module has moved from src/sys/compile/FOO 316 to src/sys/${MACHINE}/compile/FOO. 317 31820010625: 319 The pccard modem issue from 20010613 has been corrected. 320 OLDCARD support is still a little weak in -current. slot 1 is 321 known not to work on some TI based cardbus bridges. Some 322 cardbus bridges do not properly detect insert/removal events. 323 IRQ configuration needs more safety belts. 324 32520010617: 326 Softupdates problems have been corrected. 327 32820010614: 329 Peter ripped out the linkerset support. You must, as always, 330 rerun config after you cvsup if you are using the traditional 331 kernel building methods. 332 33320010613: 334 pccard modems may not work with current after 20010604 date. Some 335 do, others result in panics. *MAKE*SURE* that you update your 336 config and /etc/rc.conf ala the 20010604 entry, or you will have 337 problems (this issue will be fixed, it just hasn't been yet). 338 33920010613: 340 SOFTUPDATES seem to be broken since the middle of May or so. Do not 341 use them in current. You can disable softupdates on all mounted 342 partitions, or remove SOFTUPDATES the kernel config file. 343 34420010612: 345 After Peter's commits to the hints code, people have been noticing 346 that certain devices are attached (or try to) twice. This is due 347 to having both static hints as well as a /boot/device.hints. To 348 work around this issue, please use only one or the other mechanism 349 until this bug is fixed. 350 351 Please note that a feature of config is that if you have config 352 file FOO and FOO.hints, it automatically adds FOO.hints to the 353 hints.c file, wheather you want it to or not. 354 35520010610: 356 Locale names have changed to match other systems better. 357 35820010604: 359 pccard support for pci cards has been committed. You must change 360 your /etc/pccard.conf irq lines. It must match the irq used by 361 pcic device. Interrupt storms may result if you fail to do this. 362 Interrupt storms look a lot like a hang. 363 364 You must also install a new pccardd, otherwise you will get an 365 interrupt storm at card reset time (just after it tells you what 366 it is). 367 368 pccardd_flags="-I" is necessary for the time being. It tells pccardd 369 not to ask the kernel if the interrupt is really free or not before 370 using it. You can either change the /etc/pccard.conf irq lines to 371 match pcic, or add "-i X" to the pccardd_flags. 372 37320010530: 374 INSTALL=install -C is being deprecated. If you want to do this, 375 use COPY=-C instead. The former method will be supported for only 376 a limited time. If you see 377 378install: warning: the -d and -C options may not be specified together 379 380 in your makeworld, then you need to migrate towards using 381 COPY=-C. 382 38320010525: 384 It appears that vm is now stable enough to use again. However, 385 there may be other problems, so caution is still urged. alpha 386 definitely is in bad shape. 387 38820010521: 389 Minor repo damange has happened. This may cause problems 390 with cvsup of ports. If you get errors, please see 391 http://www.FreeBSD.org/cgi/query-pr.cgi?pr=27495 392 at the bottom for details on a workaround. The error message 393 is 394Updater failed: Cannot delete "/usr/ports/www/jakarta-tomcat/files": Directory not empty 395 39620010520: 397 Vm and/or swapping are busted on -current. Please be patient. 398 39920010519: 400 pccard has had much reorganizational work done to it over 401 the past few days. Everything should still work, but if 402 not, please contact imp@freebsd.org. 403 40420010517: 405 ata ioctl changed. Make sure to recompile both kernel and 406 userland at the same time. 407 40820010517: 409 New ncurses imported. 410 41120010512: 412 DEVFS is now opt out, not opt in. Barring major problems, this 413 will be the only way to go starting July 1. 414 41520010504: 416 OpenSSH has been updated to 2.9. Some defaults are different, 417 including RhostsRSAAuthentication, which changes from yes to no. 418 41920010502: 420 Perl breakage in 20010501 was corrected at 14:18:33 PDT. 421 42220010501: 423 Building perl was broken at 02:25:25 PDT. 424 42520010430: 426 The bug in 20010429 was corrected at 07:35:37 PDT. It is safe to 427 go back in the water. 428 42920010429: 430 A bad bug was committed at 04:48:42 PDT. Don't use kernels after 431 this date, but before the correction date. 432 43320010423: 434 old fsck and new kernel interactions appear to have been fixed. 435 43620010411: 437 fsck and the kernel were changed to handle some optimizations 438 to directory layout. This breaks backward compatibility. 439 Update only if you understand that you must not use the old 440 fsck with the new kernel ever. 441 44220010330: 443 fsck has changed the meaning of the pass column in /etc/fstab. 444 Please see the cvs commit to fsck.8 or the fsck.8 man page for 445 details. It is unclear if changes to /etc/fstab are necessary. 446 44720010319: 448 portmap had changed name to rpcbind for maximum POLA in your 449 current world. /etc/hosts.{allow,deny} needs changes. nfs and 450 other rpc based programs that rely on portmapper will not work 451 without updates to /etc/hosts.{allow,deny} and /etc/netconfig. 452 45320010315: 454 ata subsystem changes. ATA_ENABLE_ATAPI_DMA, ATA_ENABLE_WC 455 and ATA_ENABEL_TAGS are no longer kernel options. They have 456 been replaced by tunables. See ata.4 for details. 457 45820010312: 459 The fxp driver was converted to use miibus. If you compile 460 fxp into your kernel statically, you will need to add miibus. 461 46220010312: 463 The wi device now defaults to BSS (infrastructure) mode 464 instead of ad-hoc. 465 46620010310: 467 /dev/urandom should be a symbolic link to /dev/random now. 468 Users of current not using DEVFS need to run MAKEDEV std. 469 ssh might not work if you don't. 470 47120010303: 472 The ed driver has been updated. It now allows mii attachments, 473 which means that you must include the miibus in your kernel if 474 you use the ed driver. 475 47620010220: 477 The problems with libc have been corrected. It is now mostly 478 safe to go back into the water. 479 48020010211: 481 The size of FILE was changed. This breaks upgrading. If 482 you must upgrade, be prepared for pain. It also breaks almost 483 all binaries that you've compiled on -current. You are warned 484 that before upgrading would be a good time to do a level 0 485 dump of your system. No, really, I mean it this time. 486 487 To get to the new system, you'll need to use the following 488 workaround. Hopefully this can be sorted out so that we 489 don't have to move this to the updating section. 490 491 To get around the installworld problem, do: 492 # cd /usr/src/usr.bin/sed 493 # make install 494 # cd /usr/src 495 # make installworld 496 If that doesn't work, then try: 497 # make -k installworld 498 # make installworld 499 50020010207: 501 DEVFS is now the default. If you use vinum, make sure that you 502 do not include devfs in your kernel as problems result. 503 50420010205: 505 FFS_ROOT and CD9660_ROOT have been removed or deprecated. 506 Remove them from your config. 507 50820010122: 509 ****************************** WARNING ****************************** 510 buildkernel has been changed slightly 511 ****************************** WARNING ****************************** 512 KERNCONF replaces the variable KERNEL for buildkernel. You 513 should update your scripts and make.conf accordingly. 514 51520010119: 516 config has changed to allow DEV_FOO as a replacement for NFOO. 517 This requires a new config to build correctly. 518 51920010116: 520 The kerrnel option I386_CPU is now mutually exclusive with the 521 other cpu types. If you have an i386 system, be sure that it 522 only had this line. Remove it for all other configurations. 523 52420010110: 525 Changes to the kernel require it and burncd be in sync. 526 52720010102: 528 Everyone who has hw.sndunit set to something in 529 /etc/sysctl.conf, it is now hw.snd.unit. 530 53120010101: 532 ex and vi were broken by some changes to sys/queue.h. If you 533 have a bad vi, you will see make buildworld fail with a core 534 dump while building termcap. You can work around this problem 535 by adding -k to your make buildworld. This will cause the 536 build to complete and install a new vi. Once that's done, you 537 can rebuild again without the -k to pick up anything that 538 might have been ignored by the -k option. 539 540 Others have suggested that you can just rebuild libc if your 541 vi/ex is dynamically linked, but I've not received any reports 542 of this working. 543 54420001228: 545 There have been some changes to libcrypt in -current. The 546 libscrypt/libdescrypt symlink sillyness is gone and the installed 547 libcrypt is fully functional. Be aware of this. 548 54920001218: 550 Linksys Fast Ethernet PCCARD cards supported by the ed driver 551 now require the addition of flag 0x80000 to their config line 552 in pccard.conf(5). This flag is not optional. These Linksys 553 cards will not be recognized without it. 554 55520001205: 556 Important new FreeBSD-version stuff: PAM support has been worked 557 in, partially from the "Unix" OpenSSH version. This requires 558 adding the following in pam.conf: 559 560 sshd auth sufficient pam_skey.so 561 sshd auth required pam_unix.so try_first_pass 562 sshd session required pam_permit.so 563 56420001031: 565 cvs updated to 1.11. 566 56720001020: 568 The random device needs more entropy, so you need to make sure 569 that you've run mergemaster to get a /etc/rc which will seed 570 /dev/random. If you don't and the system hangs after ldconfig, 571 then banging on the keyboard randomly until it unhangs is one 572 workaround. 573 57420001010: 575 ****************************** WARNING ****************************** 576 Sendmail has been updated. 577 ****************************** WARNING ****************************** 578 o mail.local(8) is no longer installed as a set-user-id binary. 579 o sendmail(8) is now built with STARTTLS support unless NO_OPENSSL 580 is set. 581 o The default /etc/mail/sendmail.cf disables the SMTP EXPN and VRFY 582 commands. 583 o Now using sendmail's version of vacation(1). 584 o The sendmail cf building tools (contrib/sendmail/cf) are installed 585 in /usr/share/sendmail/cf. 586 o sendmail.cw changed to local-host-names 587 588 More details can be found at 589 http://people.freebsd.org/~imp/UPDATING/sendmail-20001010 590 59120001009: 592 The ports tree's new layout is in place. Be sure to update 593 your entire ports tree, or you will have problems. 594 59520001006: 596 The perl build procedure no longer installs miniperl, nor uses 597 the installed miniperl. It is recommended that you delete 598 /usr/bin/miniperl. 599 60020001005: 601 This weekend the ports tree will be updated to a new layout. 602 It will be in an inconsistent state until noted in the UPDATING 603 file, or with asami-san's message to the relevant mailing 604 lists. With this new layout, you'll need to update the whole 605 tree for anything to work. 606 60720000928: 608 There was a change in the passwd format. Need more information. 609 61020000916: 611 /boot/kernel/kernel.ko -> /boot/kernel/kernel change has taken 612 place. Please update boot loader (not the boot blocks) at the 613 same time as your kernel. 614 61520000914: 616 The new pmtimer device is necessary for laptops. Failure to 617 include the device will cause suspended laptops losing time 618 when they resume. Include 619 device pmtimer 620 in your config file and 621 hint.pmtimer.0.at="isa" 622 to your /boot/device.hints file. 623 62420000911: 625 The random device has been turned into a (pseudo-)device, 626 rather than an option. The supplied kernel config files have 627 been updated. You will need to do something similar in your 628 own kernel config file. 629 Remove: 630 options RANDOMDEV 631 Add: 632 device random 633 If you prefer to load the loadable module, you need to do 634 nothing. 635 63620000909: 637 The random device module has been renamed from randomdev.ko to 638 random.ko. You will need to edit your /boot/loader.conf to 639 reflect this if you load this module at boot time. 640 The line should read: 641 random_load="YES" 642 64320000907: 644 The SMPNG commit has happened. It should work, but if it 645 doesn't, fallback to the PRE_SMPNG CVS tag. There are likely 646 to be a variety of minor issues. Please see 20000905 to make 647 sure you don't have model loading problems which might at 648 first blush appear related to SMP. 649 65020000906: 651 nsswitch has been imported from NetBSD. Among other things, 652 this means that /etc/host.conf is no longer used. See 653 nsswitch.conf(5) instead. Note that at boot time rc.network 654 will attempt to produce a new nsswitch.conf file for you if you 655 don't have one, and you have host.conf. 656 65720000905: 658 The ucred structure changed size. This breaks the interface 659 that mountd uses. Trying to use an older mountd with a newer 660 kernel guarantees a panic. This means that you need to use 661 kernels newer than today only with matching mountd, but you 662 needed to do that anyway with the boot loader changes. 663 66420000905: 665 The boot loader has been updated. The new default kernel is 666 now /boot/kernel/kernel.ko. The new default module location 667 is /boot/kernel. 668 669 You *MUST* upgrade your boot loader and kernel at the same time. 670 The easiest way to do this is to do the buildworld/buildkernel/ 671 installkernel/installworld dance. 672 673 Furthermore, you are urged to delete your old /modules directory 674 before booting the new kernel, since kldload will find stale 675 modules in that directory instead of finding them in the correct 676 path, /boot/kernel. The most common complaint that this cures 677 is that the linux module crashes your machine after the update. 678 679 if [ ! -d /boot/kernel.old ]; then 680 mv /modules.old /boot/kernel.old 681 chflags noschg /kernel.old 682 mv /kernel.old /boot/kernel.old/kernel.ko 683 chflags schg /boot/kernel.old/kernel.ko 684 fi 685 68620000904: 687 A new issue with the sendmail upgrade has come to light. 688 /etc/aliases has moved to /etc/mail/aliases. Mergemaster will 689 incorrectly install the default aliases in /etc/mail rather than 690 move the old one from /etc. So you'll need to manually move the 691 file, create a symbolic link, remove the old /etc/aliases.db and 692 run newaliases. For safety sake, you should stop sendmail 693 while doing this and run the upgrade when locally sourced email 694 is not likely to be generated. 695 69620000825: 697 /boot/device.hints is now required for installkernel to 698 succeed. You should copy GENERIC.hints for your architecture 699 into /boot/device.hints. If and only if you compile hints 700 into your kernel, then this file may be empty. Please note, 701 if you have an empty or missing /boot/device.hints file and 702 you neglected to compile hints into your kernel, no boot 703 messages will appear after the boot loader tries to start the 704 kernel. 705 70620000821: 707 If you do NOT have ``options RANDOMDEV'' in your kernel and 708 you DO want the random device then add randomdev_load="YES" to 709 /boot/loader.conf. 710 71120000812: 712 suidperl is now always built and installed on the system, but 713 with permissions of 511. If you have applications that use 714 this program, you are now required to add ENABLE_SUIDPERL=true 715 to /etc/make.conf. If you forget to do this, 716 chmod 4511 /usr/bin/suidperl 717 will fix this until the next build. 718 71920000812: 720 sendmail has been updated from 8.9.3 to 8.11.0. Some of the more 721 visible changes that may immediately affect your configuration 722 include: 723 - New default file locations from src/contrib/sendmail/cf/README 724 - newaliases limited to root and trusted users 725 - MSA port (587) turned on by default 726 - New queue file naming system so can't go from 8.11 -> 8.9 727 - FEATURE(`rbl') renamed to FEATURE(`dnsbl') 728 - FEATURE(`nullclient') is more full featured 729 - FEATURE(`nouucp') requires an argument: `reject' or `nospecial' 730 - mail.local FreeBSD-only -b option changed to -B 731 - See src/contrib/sendmail/RELEASE_NOTES for more info 732 73320000810: 734 suidperl (aka sperl) is no longer build by default. You must 735 specifically define BUILD_SUIDPERL to "true" for it to be build. 736 Furthermore, we recommend that you remove /usr/bin/sperl* and 737 /usr/bin/suidperl files from your system unless you have a 738 specific use for it. 739 74020000729: 741 Networking defaults have been tightened. Anybody upgrading 742 /etc/defaults/rc.conf needs to add the following lines to 743 /etc/rc.conf if they want to have the same setup 744 afterwards (unless the variables already are set, of course): 745 # Enable network daemons for user convenience. 746 inetd_enable="YES" 747 portmap_enable="YES" 748 sendmail_enable="YES" 749 75020000728: 751 If you have null_load="YES" in your /boot/loader.conf, you 752 will need to change that to nullfs_load="YES". 753 75420000728: 755 The "installkernel" target has changed slightly. Now even if 756 you override KERNEL e.g. 'make installkernel KERNEL=MYKERNEL' 757 it will install the MYKERNEL file (built with the buildkernel 758 target) as /kernel rather than /MYKERNEL. Those who have 759 updated their /boot/loader.conf files to point to /MYKERNEL 760 should remove that entry or perform manual rename of /kernel 761 to /MYKERNEL. 762 76320000711: 764 If you use CVSUP or CTM to get CVS trees, AND you used to get 765 the old crypto files from internat.freebsd.org AND you check 766 out files from the CVS tree with the cvs command, please read 767 http://people.freebsd.org/~imp/internat.txt 768 for details on potential problems that you might have and how 769 to get around them. 770 771 If you are merely a mirror, or don't answer yes to each of the 772 clauses above, you needn't worry. 773 77420000711: 775 /etc/security has been updated to print the inode number of 776 setuid programs that have changed. You will see a large spike 777 in the number of changed programs the first time when you run 778 mergemaster to get a new /etc/security. 779 78020000710: 781 /dev/random now has good entropy collection (from the keyboard 782 and sysmouse drivers). Please ensure that either `options 783 RANDOMDEV' is present in your kernel config file or that 784 `randomdev_load="YES"' is in your /boot/loader.conf. If you do 785 not have the /dev/random driver, OpenSSL (and consequently 786 lots of crypto tools (like SSH)) will fail with strange 787 errors. (see below, 20000624). 788 789 FreeBSD-current is safe again to run Crypto. 790 79120000709: 792 phk made the malloc default options AJ. This may slow things 793 down and uncover other latent bugs in the code. If you need to 794 run at full speed, you can disable this by doing the following: 795 ln -s aj /etc/malloc.conf 796 79720000706: 798 libftpio's version was accidentally bumped a few days ago. This 799 has been corrected. You may need to remove /usr/lib/libftpio.so.6 800 before doing your next buildworld/installworld pair. It certainly 801 won't hurt to remove it before the update procedure. It will 802 break fetch until a new one is built, but ftp can be used in the 803 interim if needed. 804 80520000705: 806 The crypto packages have changed for the cvsup. This has been done 807 in a backward compatible way, but the old packages will go away at 808 some point in the future. Look at /usr/share/examples/cvsup for 809 details. 810 81120000704: 812 With the new sys/modules/sound/drivers/*, you will need to 813 set SYSDIR until you do an installworld after July 7th. 814 81520000704: 816 rc.shutdown and rc will now call the rc.d scripts with start 817 or stop. This may cause some harmless warnings from older 818 rc.d scripts that haven't been updated. 819 82020000630: 821 The libfetch based version of fetch has gone into the tree. 822 Minor problems may result on some of the less popular sites, 823 which should be reported to des@freebsd.org. 824 82520000625: 826 From approximately this date forward, one must have the crypto 827 system installed in order to build the system and kernel. 828 While not technically strictly true, one should treat it as 829 required and grab the crypto bits. If you are grabbing CVS 830 trees, src-all and cvs-crypto should be treated as if they 831 were required. You should check with the latest collections 832 to make sure that these haven't changed. 833 83420000624: 835 Mark Murray just committed the first parts of a cleanup of 836 /dev/zero, et al. This is also cleaning up /dev/random. 837 The entropy is disconnected, so DO NOT USE VERSIONS OF FREEBSD 838 -CURRENT FROM THIS POINT to 2000710 for cryptographic services 839 until Mark can merge in the fixes to this work in progress. 840 openssh and openssl should not be used to generate keys from this 841 date to the completion of the work. 842 843 If you must operate at this reduced level of security, add ' 844 options RANDOMDEV' to your kernel or modload the randomdev 845 module. You may also need to copy a new MAKEDEV to /dev and 846 recreate the random and urandom devices. 847 84820000622: 849 The license on the softupdates is now a standard 2 clause 850 BSD license. You may need to remove your symbolic links 851 that used to be required when updating. 852 85320000621: 854 Scott Flatman <sf@aracnet.com> sent in a decent write-up on 855 the config file update procedure. 856 http://people.freebsd.org/~imp/config-upd.html 857 NOTE: LINT is gone. It has been replaced with NOTES. NOTES 858 isn't buildable. However, you can generate a LINT file. 859 86020000620: 861 Binutils 2.10 have hit the tree, or will shortly. As soon 862 as they do, the problem noted in 20000522 will be resolved and 863 that workaround will no longer be required. 864 86520000615: 866 phk removed the compatibility creation of wd devices in the 867 ad driver. If you haven't done so already, you must update 868 your fstab, etc to use the ad devices instead of the wd 869 devices. 870 871 In addition, you'll need to update your boot blocks to a 872 more modern version, if you haven't already done so. Modern 873 here means 4.0 release or newer (although older releases 874 may work). 875 87620000612: 877 Peter took an axe to config(8). Be sure that you read his mail 878 on the topic before even thinking about updating. You will 879 need to create a /boot/device.hints or add a hints directive 880 to your config file to compile them in statically. The format 881 of the config file has changed as well. Please see GENERIC or 882 NEWCARD for examples of the new format. 883 884 Indirectly, this also breaks USERCONFIG. Unless a newer entry 885 says that it has been fixed, assume that must use the hints mechanism 886 in the loader if you need to use a machine with very old ISA cards 887 in it. 888 88920000522: 890 A new set of binutils went into the tree today. Anybody 891 building a kernel after this point is advised that they need 892 to rebuild their binutils (or better yet do a 893 buildworld/installworld) before building a new kernel. 894 895 Due to bugs in binutils, using malloc options (eg /etc/malloc.conf 896 or MALLOC_OPTIONS env var) J will cause ld to dump core. It 897 is recommended that you don't set this option until the problem 898 is resolved. 899 90020000513: 901 The ethernet drivers were all updated to clean up the BPF handling. 902 90320000510: 904 The problems with boot blocks on the alphas have been corrected. 905 This will require some care in updating alphas. A new libstand 906 is requires for the boot blocks to build properly. 907 90820000503: 909 Recompile all kld modules. Proper version dependency info 910 is now available. 911 91220000502: 913 Modules have been disconnected from the buildworld tree and 914 connected to the kernel building instead. 915 91620000427: 917 You may need to build gperf 918 cd /usr/src/gnu/usr.bin/gperf && make depend all install 919 when upgrading from 4.0 -> current. The build system now uses 920 an option only in -current. 921 92220000417: 923 The method that we brand ELF binaries has changed to be more 924 acceptable to the binutils maintainers. You will need to 925 rebrand your ELF binaries that aren't native. One problem 926 binary is the Linux ldconfig. After your make world, but 927 before you reboot, you'll need to issue: 928 brandelf -t Linux /compat/linux/sbin/ldconfig 929 if you have Linux compatibility enabled on your machine. 930 93120000320: 932 If you have really bad/marginal IDE drives, you may find they 933 don't work well. Use pio mode instead. The easiest way to 934 cope if you have a problem combination is to add: 935 /sbin/sysctl hw.ata.ata_dma=0 936 to the start of /etc/rc.conf. 937 93820000319: 939 The ISA and PCI compatibility shims have been connected to the 940 options COMPAT_OLDISA and COMPAT_OLDPCI. If you are using old 941 style PCI or ISA drivers (i.e. tx, voxware, etc.) you must 942 include the appropriate option in your kernel config. Drivers 943 using the shims should be updated or they won't ship with 944 5.0-RELEASE, targeted for 2001. 945 94620000318: 947 We've entered the traditional post release dumping party. 948 Large kernel changes are being committed and are in the 949 works. It is important to keep the systems' klds and kernel 950 in sync as kernel interfaces and structures are changing. 951 Before reporting kernel panics, make sure that all modules 952 that you are loading are up to date. 953 95420000315: 955 If you are upgrading from an older version of FreeBSD, you 956 need to update your boot blocks as well. 'disklabel -B ad0' 957 will do the trick. This isn't critical until you remove your 958 wd device entries in /dev, at which point your system will not 959 boot. 960 96120000315: 962 4.0 RELEASE shipped. Please see the 4.0 UPDATING file for how 963 to upgrade to 4.0 from 3.x. 964 965COMMON ITEMS: 966 967 General Notes 968 ------------- 969 Avoid using make -j when upgrading. From time to time in the 970 past there have been problems using -j with buildworld and/or 971 installworld. This is especially true when upgrading between 972 "distant" versions (eg one that cross a major release boundary 973 or several minor releases, or when several months have passed 974 on the -current branch). 975 976 Sometimes, obscure build problems are the result of environment 977 poisoning. This can happen because the make utility reads its 978 environment when searching for values for global variables. 979 To run your build attempts in an "environmental clean room", 980 prefix all make commands with 'env -i '. See the env(1) manual 981 page for more details. 982 983 To build a kernel 984 ----------------- 985 If you are updating from a prior version of FreeBSD (even one just 986 a few days old), you should follow this procedure. With a 987 /usr/obj tree with a fresh buildworld, 988 make buildkernel KERNCONF=YOUR_KERNEL_HERE 989 make installkernel KERNCONF=YOUR_KERNEL_HERE 990 991 To just build a kernel when you know that it won't mess you up 992 -------------------------------------------------------------- 993 cd src/sys/{i386,alpha}/conf 994 config KERNEL_NAME_HERE 995 cd ../../compile/KERNEL_NAME_HERE 996 make depend 997 make 998 make install 999 1000 If this fails, go to the "To build a kernel" section. 1001 1002 To rebuild everything and install it on the current system. 1003 ----------------------------------------------------------- 1004 # Note: sometimes if you are running current you gotta do more than 1005 # is listed here if you are upgrading from a really old current. 1006 1007 <make sure you have good level 0 dumps> 1008 <maybe fix /etc/fstab> [7] 1009 make buildworld 1010 make buildkernel KERNCONF=YOUR_KERNEL_HERE 1011 make installkernel KERNCONF=YOUR_KERNEL_HERE 1012 [1] 1013 <reboot in single user> [3] 1014 mergemaster -p [5] 1015 make installworld 1016 mergemaster [4] 1017 <reboot> 1018 1019 1020 To upgrade from 4.x-stable to current 1021 ------------------------------------- 1022 # 5.x uses more space than 4.x. Also, the location of kernel 1023 # modules has changed. If you are installing 5.0 onto a 4.x 1024 # system, you'll need about 30MB of free disk space on your / 1025 # partition. If you have less than this, you may encounter difficult 1026 # to back out of problems with this proceedure. If /tmp is on 1027 # the / partition, you may want to completely remove all its content 1028 # before upgrading, as this can be a common source of shortage of 1029 # space on /. 1030 1031 <make sure you have good level 0 dumps> 1032 <maybe fix /etc/fstab> [7] 1033 make buildworld 1034 make buildkernel KERNCONF=YOUR_KERNEL_HERE [8] 1035 cp src/sys/${MACHINE}/conf/GENERIC.hints /boot/device.hints [2] 1036 make installkernel KERNCONF=YOUR_KERNEL_HERE 1037 cd src/sys/boot ; make install [6] 1038 [1] 1039 <reboot in single user> [3] 1040 mergemaster -p [5] 1041 rm -rf /usr/include/g++ 1042 make installworld 1043 mergemaster [4] 1044 <reboot> 1045 1046 Make sure that you've read the UPDATING file to understand the 1047 tweaks to various things you need. At this point in the life 1048 cycle of current, things change often and you are on your own 1049 to cope. The defaults can also change, so please read ALL of 1050 the UPDATING entries. 1051 1052 Also, if you are tracking -current, you must be subscribed to 1053 freebsd-current@freebsd.org. Make sure that before you update 1054 your sources that you have read and understood all the recent 1055 messages there. If in doubt, please track -stable which has 1056 much fewer pitfalls. 1057 1058 [1] If you have third party modules, such as vmware, you 1059 should disable them at this point so they don't crash your 1060 system on reboot. 1061 1062 [2] If you have legacy ISA devices, you may need to create 1063 your own device.hints to reflect your unique hardware 1064 configuration. 1065 1066 [3] From the bootblocks, boot -s, and then do 1067 fsck -p 1068 mount -u / 1069 mount -a 1070 cd /usr/src 1071 adjkerntz -i # if CMOS is wall time 1072 Also, when doing a major release upgrade, it is required that 1073 you boot into single user mode to do the installworld. 1074 For the 4.x -> 5.0 upgrade, you will also see many messages about 1075 needing to recompile your userland. These are harmless and can 1076 be ignored while you proceed to the next step. 1077 1078 [4] Note: This step is non-optional. Failure to do this step 1079 can result in a significant reduction in the functionality of the 1080 system. Attempting to do it by hand is not recommended and those 1081 that pursue this avenue should read this file carefully, as well 1082 as the archives of freebsd-current and freebsd-hackers mailing lists 1083 for potential gotchas. 1084 1085 [5] Usually this step is a noop. However, from time to time 1086 you may need to do this if you get unknown user in the following 1087 step. It never hurts to do it all the time. You may need to 1088 install a new mergemaster (cd src/usr.sbin/mergemaster && make 1089 install) after the buildworld before this step if you last updated 1090 from current before 20020224 or from -stable before 20020408. 1091 1092 [6] 4.x boot blocks can be used to boot a 5.x system, however 1093 it is difficult to do that at best. If you are concerned 1094 about being able to boot 4.x if the reboot to single user 1095 fails, then you should do something like 1096 mv /boot /boot-4x 1097 mkdir /boot 1098 before this step. You may be able to then boot the 4.x boot 1099 blocks if you catch boot2, and enter /boot-4x/loader rather than 1100 /boot/loader. However, this step hasn't been torture tested. 1101 1102 [7] Before you upgrade, please make sure that you are not using 1103 compatibility slices. These are device names of the form, on i386 1104 and other architectures that use MBR slicing, /dev/ad0a without the 1105 actual slice name. Chances are excellent that these will break. 1106 You generally must update these entries to use the post FreeBSD 1107 2.x form of /dev/ad0s1a. 1108 1109 [8] In order to have a kernel that can run the 4.x binaries 1110 needed to do an installworld, you must include the COMPAT_FREEBSD4 1111 option in your kernel. Failure to do so may leave you with a system 1112 that is hard to boot to recover. 1113 1114FORMAT: 1115 1116This file contains a list, in reverse chronological order, of major 1117breakages in tracking -current. Not all things will be listed here, 1118and it only starts on March 15, 2000. Updating files can found in 1119previous releases if your system is older than this. 1120 1121Copyright information: 1122 1123Copyright 1998, 2002 M. Warner Losh. All Rights Reserved. 1124 1125Redistribution, publication, translation and use, with or without 1126modification, in full or in part, in any form or format of this 1127document are permitted without further permission from the author. 1128 1129THIS DOCUMENT IS PROVIDED BY WARNER LOSH ``AS IS'' AND ANY EXPRESS OR 1130IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 1131WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 1132DISCLAIMED. IN NO EVENT SHALL WARNER LOSH BE LIABLE FOR ANY DIRECT, 1133INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 1134(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 1135SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 1136HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 1137STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 1138IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 1139POSSIBILITY OF SUCH DAMAGE. 1140 1141If you find this document useful, and you want to, you may buy the 1142author a beer. 1143 1144Contact Warner Losh if you have any questions about your use of 1145this document. 1146 1147$FreeBSD: head/UPDATING 106022 2002-10-27 06:31:37Z imp $ 1148