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