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 7Items affecting the ports and packages system can be found in 8/usr/ports/UPDATING. Please read that file before running 9portupgrade. Important recent entries: 20040724 (default X changes). 10 11[[ The UPDATING file will be trimmed to 20040814 on or about Oct 1, 2004 ]] 12 13NOTE TO PEOPLE WHO THINK THAT FreeBSD 6.x IS SLOW: 14 FreeBSD 6.x has many debugging features turned on, in 15 both the kernel and userland. These features attempt to detect 16 incorrect use of system primitives, and encourage loud failure 17 through extra sanity checking and fail stop semantics. They 18 also substantially impact system performance. If you want to 19 do performance measurement, benchmarking, and optimization, 20 you'll want to turn them off. This includes various WITNESS- 21 related kernel options, INVARIANTS, malloc debugging flags 22 in userland, and various verbose features in the kernel. Many 23 developers choose to disable these features on build machines 24 to maximize performance. 25 2620041116: 27 Support for systems with an 80386 CPU has been removed. Please 28 use FreeBSD 5.x or earlier on systems with an 80386. 29 3020041110: 31 We have had a hack which would mount the root filesystem 32 R/W if the device were named 'md*'. As part of the vnode 33 work I'm doing I have had to remove this hack. People 34 building systems which use preloaded MD root filesystems 35 may need to insert a "/sbin/mount -u -o rw /dev/md0 /" in 36 their /etc/rc scripts. 37 3820041102: 39 The size of struct tcpcb has changed again due to the removal 40 of RFC1644 T/TCP. You have to recompile userland programs that 41 read kmem for tcp sockets directly (netstat, sockstat, etc.) 42 4320041022: 44 The size of struct tcpcb has changed. You have to recompile 45 userland programs that read kmem for tcp sockets directly 46 (netstat, sockstat, etc.) 47 4820041018: 49 A major sweep over the tty drivers to elimnate approx 3100 50 lines of copy&pasted code have been performed. As a part of 51 this change some tty devices have changed names: 52 sio devices are now named: {tty,cua}d%d[.init,.lock] 53 ucom devices are now named: {tty,cua}U%d[.init,.lock] 54 For other drivers see the commit logs. 55 5620041007: 57 The FreeBSD keyword is no longer a requirement for a valid 58 rc.d script. The rc(8) and rc.shutdown(8) scripts no longer check 59 for the existence of this keyword when ordering rc.d scripts. 60 This change touches most of the file in /etc/rc.d; therefore, 61 if you have not modified any files in that directory it may 62 be easier to rm -rf /etc/rc.d and then use the -i switch with 63 mergemaster(8). 64 6520041007: 66 One of the syscalls the 1:1 threading library libthr uses has 67 changed, thus breaking ABI compatibility. Make sure you rebuild 68 this library with the kernel. 69 7020041001: 71 The following libraries had their version number bumped up: 72 /lib/libm.so.2 -> libm.so.3 73 /lib/libreadline.so.4 -> libreadline.so.5 74 /usr/lib/libhistory.so.4 -> libhistory.so.5 75 /usr/lib/libopie.so.2 -> libopie.so.3 76 /usr/lib/libpcap.so.2 -> libpcap.so.3 77 FreeBSD 4.10 versions of these libraries will be added to the 78 compat4x collection. If you expect to be able to run old 4.X 79 executables you will need to remove the old versions of these 80 libraries. However note that any 5.X executables you have built 81 will stop working once you remove those old libraries. You should 82 have all your ports/packages rebuilt before removing the old 83 libraries. 84 8520040929: 86 The pfil API has gained an additional argument to pass an inpcb. 87 You should rebuild all pfil consuming modules: ipfw, ipfilter 88 and pf. 89 9020040928: 91 If named is enabled, the default is now to run it in a chroot 92 "sandbox." For users with existing configurations in 93 /etc/namedb the migration should be simple. Upgrade your 94 world as usual, then after installworld but before 95 mergemaster do the following: 96 97 If named is running: /etc/rc.d/named stop 98 cd /etc 99 mv namedb namedb.bak 100 mkdir -p /var/named/etc/namedb 101 cp -Rp namedb.bak/* /var/named/etc/namedb/ 102 mergemaster (with your usual options) 103 If using the generated localhost* files: 104 cd /var/named/etc/namedb 105 /bin/sh make-localhost 106 rm -f localhost-v6.rev localhost.rev 107 /etc/rc.d/syslogd restart 108 /etc/rc.d/named start 109 110 If you are using a custom configuration, or if you have 111 customised the named_* variables in /etc/rc.conf[.local] 112 then you may have to adjust the instructions accordingly. 113 It is suggested that you carefully examine the new named 114 variables in /etc/defaults/rc.conf and the options in 115 /var/named/etc/namedb/named.conf to see if they might 116 now be more suitable. 117 11820040925: 119 BIND 9 has been imported into the base, and is now fully 120 functional. BIND 8 has now been removed. There are numerous 121 differences between BIND 8 and 9, and users with critical 122 named installations should read the migration documentation 123 in /usr/share/doc/bind9/misc/migration. There is also a 124 new instruction manual in /usr/share/doc/bind9/arm. 125 126 The key differences that most users will experience are in 127 how picky BIND 9 is about zone file format. If you are using 128 named as a resolving (caching) name server, you will likely 129 not have trouble. 130 131 The following files are part of the old BIND 8 installation 132 and should be removed: 133 /usr/bin/dnskeygen /usr/bin/dnsquery /usr/libexec/named-xfer 134 /usr/sbin/named.restart /usr/sbin/ndc 135 136 The following files have moved to /usr/bin, and should be 137 removed from their old locations: 138 /usr/sbin/nslookup /usr/sbin/nsupdate 139 14020040914: 141 The format of the pflogd(8) logfile "/var/log/pflog" has changed for 142 architectures that have a 64 bit long type to make it compatible to 143 the standard pcap format. In order to prevent corruption move away 144 any old logfile before using a new pflogd(8). 145 14620040906: 147 debug.witness_* has been renamed to debug.witness.*. There are 148 compatibility tunables left in for a few days. Update loader.conf 149 as necessary. 150 15120040902: 152 The ifi_epoch change has been reverted because the ABI breakage 153 was too extensive. If you are running with a kernel/userland 154 containing the initial change (20040830), you should heed the 155 warning about ifconfig incompatibility when upgrading again. 156 With this change, 5.3 and 6.0 ifconfigs and kernels are once 157 again interoperable. 158 15920040830: 160 A new variable, ifi_epoch, has been added to struct if_data 161 which is part if struct ifnet. This means all network drivers 162 and network monitoring applications need to be recompiled. 163 164 WARNING WARNING WARNING WARNING WARNING WARNING WARNING 165 166 This also breaks ifconfig compatibility. An old ifconfig will 167 not work with the new kernel and a new ifconfig will not work 168 with the old. It is strongly recommended that you make a copy 169 of your old ifconfig before installworld. If you are installing 170 remotely, you must copy over a new ifconfig before rebooting in 171 to the new kernel. 172 17320040828: 174 The default configuration for the network stack has been changed 175 such that it now runs without the Giant lock unless configured 176 otherwise. If you experience network-related instability, you 177 may wish to try setting "debug.mpsafenet=0" or compiling the 178 kernel with "options NET_WITH_GIANT". Details on the netperf 179 project may be found at: 180 181 http://www.watson.org/~robert/freebsd/netperf/ 182 183 Including the 20040828 announcement of configuration change 184 details. 185 18620040827: 187 PFIL_HOOKS are a fixed part of the network stack now and do not 188 need to be specified in the kernel configuration file anymore. 189 19020040819: 191 Netgraph changed its message format slightly to align the data 192 portion well on 64 bit machines. 193 Netgraph using utilities (e.g. ngctl, nghook, ppp, mpd, 194 pppoed, bluetooth, ATM) should be recompiled when a new kernel 195 is installed. 196 19720040817: 198 IPFW has been converted to use pfil(9). This change is 199 transparent to userland and preserves the ipfw ABI. The ipfw 200 core packet inspection and filtering functions have not been 201 changed, only how ipfw is invoked is different. 202 20320040814: 204 The RANDOM_IP_ID option has been replaced by the sysctl 205 net.inet.ip.random_id. If you had RANDOM_IP_ID in your kernel then 206 you may want to add "net.inet.ip.random_id=1" to /etc/sysctl.conf. 207 20820040807: 209 The size of 'struct ifnet' has changed due to the addition of the 210 if_carp placeholder. All kernel modules implementing network 211 interfaces must be recompiled as a result. 212 21320040806: 214 Module loading has been fixed. Some older installations will 215 drop proper module_path initialization and modules will fail to 216 load properly. If you have a line in /boot/loader.rc that says: 217 "initialize drop", do (i386 only): 218 cp /usr/src/sys/boot/i386/loader/loader.rc /boot/loader.rc 219 chown root:wheel /boot/loader.rc 220 chmod 444 /boot/loader.rc 221 22220040802: 223 making /dev/(null|zero) into a module proved to be too unpopular, 224 so this bit has been revoked from the previous (20040801) entry. 225 22620040801: 227 The /dev/mem, /dev/io /dev/(null/zero) devices are now modules, 228 so you may wish to add them to your kernel config file. See 229 GENERIC for examples. 230 23120040728: 232 System compiler has been upgraded to GCC 3.4.2-pre. As with any major 233 compiler upgrade, there are several issues to be aware of. GCC 3.4.x 234 has broken C++ ABI compatibility with previous releases yet again 235 and users will have to rebuild all their C++ programs with the new 236 compiler. If you are getting run-time error such as 237 /libexec/ld-elf.so.1: Undefined symbol "_ZNSs20_S_empty_rep_storageE" 238 This entry does apply to you. 239 240 A new unit-at-a-time optimization mode, which is default in this 241 compiler release, is more aggressive in removing unused static 242 symbols. This is the likely cause of 'make buildworld' breakages 243 with non-default CFLAGS where optimization level is set to -O2 244 or higher. 245 246 With the upgrade of the system compiler, the kernel has been upgraded 247 to match the new system compiler. This makes it impossible to build 248 a new kernel with the old compiler. Upgrade your system via 249 make buildworld and make kernel (see below) to fix this problem. 250 25120040727: 252 The size of 'struct ifnet' has changed due to the addition of 253 the IFF_NEEDSGIANT flag (and what it implies). All kernel 254 modules implementing network interfaces must be recompiled as 255 a result. 256 25720040716: 258 The sound device drivers are renamed. `sound' is always required, 259 while `snd_*' should be configured accordingly to your hardware. 260 Refer to NOTES for the detail of the drivers. 261 26220040710: 263 __FreeBSD_version bumped to 502122. 264 26520040710: 266 The console initialization on Alpha has been reworked and is now 267 identical to other platforms. This means that the hardcoding of 268 the serial console and the debug port has been removed. As such, 269 hints are now required for the sio(4) driver to become a console 270 or debug port. The NO_SIO option has been decommissioned because 271 of this. 272 27320040710: 274 A revamp of the debugging code in the kernel with some visible 275 changes beyond just the debugging experience: 276 o The DDB option is now specific to the DDB debugger backend 277 and should not be used any more for conditional compilation 278 of debugging code for when debugging is enabled. Use the KDB 279 option for this. 280 o The WITNESS_DDB, DDB_TRACE and DDB_UNATTENDED options have 281 been renamed to WITNESS_KDB, KDB_TRACE and KDB_UNATTENDED 282 respectively. This is in line with the first bullet. 283 o The remote GDB support has been untangled from DDB and needs 284 to be enabled separately now. Use the GDB option for this. 285 o The GDB_REMOTE_CHAT option has been removed. Support for this 286 homegrown feature is discontinued. The GDB remote protocol 287 supports console output and it makes sense to use that. 288 o The DDB_NOKLDSYM option has been removed. The DDB debugger 289 now supports both direct symbol table lookups as well as KLD 290 symbol lookups through the linker. 291 29220040708: 293 Bluetooth code has been marked as non-i386 specific. 294 __FreeBSD_version has been bumped to 502121 to mark this change. 295 29620040702: 297 The native preemption has been added to the kernel scheduler. 298 There is some report that the ULE scheduler was broken in some 299 machines and we encourage users using the ULE scheduler either 300 stick with a known good kernel, or temporarily switch to the 4BSD 301 scheduler as a workaround. 302 30320040630: 304 The netgraph ABI version number has been incremented to indicate 305 an incompatible change in the ABI. Old netgraph nodes will refuse 306 to attach until recompiled. Netgraph now uses mbuf tags to move 307 metadata and this commit removes its home-grown metadata facility. 308 Nodes should just recompile, unless they use metadata, in which 309 case the changes are simple; the file ng_ksocket.c serves as an 310 example of such changes. 311 312 This also broke i4b, although the compile problem has been papered 313 over. 314 31520040630: 316 ACPI has been updated to disable known-bad BIOS revisions. A message 317 will be printed on the console indicating that ACPI has been disabled 318 automatically and that the user should use a newer BIOS, if possible. 319 If you think ACPI does work on your system and want to override 320 this (i.e., for testing), set hint.acpi.0.disabled="0" at the 321 loader prompt. 322 32320040623: 324 pf was updated to OpenBSD-stable 3.5 and pflogd(8) is privilege 325 separated now. It uses the newly created "_pflogd" user/group 326 combination. If you plan to use pflogd(8) make sure to run 327 mergemaster -p or install the "_pflogd" user and group manually. 328 32920040622: 330 Network interface cloning has been overhauled. This change will 331 require a recompile of modules using cloning and modification of 332 external ones to the new API. __FreeBSD_version has been bumped 333 to 502119 to mark this change. Additionally, users creating 334 stf(4) interfaces via "ifconfig stf" will need to update their 335 scripts as this will create an interface named "stf" instead of 336 "stf0" and ifconfig will not print "stf0" to stdout. 337 33820040621: 339 On 20040524, the /etc/rc.d/nsswitch script was modified to 340 automatically create /etc/nsswitch.conf on startup if it did 341 not already exist. Unfortunately, an error in the man page 342 was carried over to the script, resulting in incorrect 343 nsswitch settings. The simplest remedy is to remove both 344 /etc/nsswitch.conf and /etc/host.conf; they will be recreated 345 during the next reboot. 346 34720040614: 348 The return value of sema_timedwait(9) has been changed to 349 make it consistent with cv_timedwait(9). Be sure to recompile 350 the ips module and any third-party modules which call 351 sema_timedwait. 352 35320040613: 354 ALTQ is now linked to the build. This breaks ABI for struct ifnet. 355 Make sure to recompile modules and any userland that makes use of 356 sizeof(struct ifnet). In order to get the altq headers in place 357 please recompile and reinstall world. 358 35920040607: 360 Splitting kern_thread.c into 2 files (adding kern_kse.c) 361 requires that you re-run config after updating your tree. 362 36320040601: 364 The MIDI drivers have been removed. Until the new module-friendly 365 ones are merged, remove or comment out midi and seq from your 366 kernel configuration. 367 36820040423: 369 Due to a new option in ipfw (versrcreach) the ipfw(8) command 370 needs to be recompiled. Normal accept/reject rules without 371 options are not affected but those with options may break until 372 ipfw(8) is recompiled. 373 37420040420: 375 Due to changes in the callout ABI, kernels compiled after this 376 date may be incompatible with kernel modules compiled prior to 377 20040406. 378 37920040414: 380 The PCI bus power state stuff has been turned on. If this causes 381 problems for your system, please disable it using the tunable 382 hw.pci.do_powerstate=0. 383 38420040412: 385 The bulk of the pci problems have been fixed, although the floppy 386 drive is still broken. 387 38820040410: 389 A substantial update to the pci bus resource and power management 390 have been committed. Expect a bumpy ride for a few days until 391 the unanticipated problems have been resolved. 392 39320040409: 394 Due to changes in the the Yarrow initialization process, 395 /dev/random needs to be fed before operations requiring 396 temp files can succeed in single user mode. This includes 397 running "make installworld". /dev/random may be fed by running 398 "/etc/rc.d/initrandom start" or with 20040415 source by running 399 "/etc/rc.d/preseedrandom". 400 40120040322: 402 The debug.mpsafenet tunable controls whether the kernel Giant 403 lock is held across the lower levels of the network stack, and 404 by default is turned off. In the few days following 20040322, 405 the behavior of debug.mpsafenet will change such that this 406 tunable controls Giant over all levels of the network stack. 407 If you are currently setting debug.mpsafenet to 1, you should 408 set it back to 0 (the default) again during the change-over. 409 An additional note will be added to UPDATING when sufficient 410 locking is merged to permit this to take place. 411 41220040310: 413 The FreeBSD/sparc64 platform is changing time_t from 32-bits to 414 64-bits. This is a very major incompatible change, so people 415 using FreeBSD/sparc64 *must* read the UPDATING.64BTT file for 416 detailed instructions on how to make this upgrade. People 417 upgrading FreeBSD on other platforms can ignore this event. 418 41920040308: 420 The packet filter (pf) is now installed with the base system. Make 421 sure to run mergemaster -p before installworld to create required 422 user account ("proxy"). If you do not want to build pf with your 423 system you can use the NO_PF knob in make.conf. 424 The pf system consists of the following three devices: 425 device pf # required 426 device pflog # optional 427 device pfsync # optional 428 42920040303: 430 If you are having trouble with the libc_r -> libpthread transition 431 (see the 20040130 entry), place the following lines at the top of 432 /etc/libmap.conf: 433 434 libc_r.so.5 libpthread.so.1 435 libc_r.so libpthread.so 436 437 This will cause all programs and libraries linked against libc_r 438 to use libpthread instead. 439 44020040226: 441 Some sshd configuration defaults have changed: protocol version 1 442 is no longer enabled by default, and password authentication is 443 disabled by default if PAM is enabled (which it is by default). 444 OpenSSH clients should not be affected by this; other clients may 445 have to be reconfigured, upgraded or replaced. 446 44720040225: 448 The ABIs defined in <resolv.h> and <netdb.h> have been updated 449 to support improved reentrancy. Multi-threaded programs that 450 reference the "_res" or "h_errno" symbols may experience some 451 problems if they are not recompiled. Single-threaded programs 452 should remain unaffected. 453 45420040225: 455 routed has been updated in the base system from the vendor 456 sources, routed v2.27, from rhyolite.com. This change means that 457 for users who use RIP's MD5 authentication feature, FreeBSD 458 -CURRENT's routed is now incompatible with previous versions 459 of FreeBSD; however it is now compatible with implementations 460 from Sun, Cisco and other vendors. 461 46220040224: 463 The tcpcb structure has changed and makes a recompile of libkvm 464 and related userland network utilities necessary. 465 46620040222: 467 The cdevsw structure has changed in two externally visible ways. 468 First, the sense of the D_GIANT flag has changed to D_NEEDSGIANT. 469 Second, the d_version field must be filled in with D_VERSION. 470 Drivers outside the tree will need to be updated. 471 47220040207: 473 The /etc/rc.d/ttys script has been removed. It is no longer 474 necessary since devfs has been mandatory for some time. 475 47620040130: 477 libkse has been renamed back to libpthread and is now the 478 default threads library. The gcc -pthread option has also 479 been changed to link to libpthread instead of libc_r. For 480 alpha and sparc64 machines, libkse is not renamed and links 481 are installed so that libpthread points to libc_r. Until 482 the ports system is updated to handle this change, it is 483 recommended that folks install an /etc/libmap.conf(5) that 484 maps libc_r to libpthread. If you have any binaries or 485 libraries linked to libkse, then it is also recommended 486 that you map libkse to libpthread. Anyone that is using 487 nvidia supplied drivers and libraries should use a libmap.conf 488 that maps libpthread to libc_r since their drivers/libraries 489 do not work with libpthread. 490 49120040125: 492 ULE has entered into its probationary period as the default scheduler 493 in GENERIC. For the average user, interactivity is reported to be 494 better in many cases. On SMP machines ULE will be able to make more 495 efficient use of the available parallel resources. If you are not 496 running it now, please switch over, replacing the kernel option 497 SCHED_4BSD with SCHED_ULE. 498 49920040125: 500 Move LongRun support out of identcpu.c, where it hardly 501 belongs, into its own file and make it opt-in, not mandatory, 502 depending on CPU_ENABLE_LONGRUN config(8) option. 503 50420031213: 505 src/lib/libc/gen/initgroups.c:1.8 now causes logins to fail 506 if the login process is unable to successfully set the 507 process credentials to include all groups defined for the 508 user. The current kernel limit is 16 groups; administrators 509 may wish to check that users do not have over 16 groups 510 defined, or they will be unable to log in. 511 51220031203: 513 The ACPI module has been reactivated. It is no longer required 514 to compile ACPI support into kernels statically. 515 51620031112: 517 The statfs structure has been updated with 64-bit fields to 518 allow accurate reporting of multi-terabyte filesystem 519 sizes. You should build world, then build and boot the new kernel 520 BEFORE doing a `installworld' as the new kernel will know about 521 binaries using the old statfs structure, but an old kernel will 522 not know about the new system calls that support the new statfs 523 structure. 524 Note that the backwards compatibility is only present when the 525 kernel is configured with the COMPAT_FREEBSD4 option. Since 526 even /bin/sh will not run with a new kernel without said option 527 you're pretty much dead in the water without it. Make sure you 528 have COMPAT_FREEBSD4! 529 Running an old kernel after a `make world' will cause programs 530 such as `df' that do a statfs system call to fail with a bad 531 system call. Marco Wertejuk <wertejuk@mwcis.com> also reports 532 that cfsd (ports/security/cfs) needs to be recompiled after 533 these changes are installed. 534 535 ****************************DANGER******************************* 536 537 DO NOT make installworld after the buildworld w/o building and 538 installing a new kernel FIRST. You will be unable to build a 539 new kernel otherwise on a system with new binaries and an old 540 kernel. 541 54220031112: 543 Some netgraph string length constants have been changed. This 544 change requires the netgraph kernel modules and all netgraph 545 userland components to be in sync. Especially users who require 546 netgraph to boot need to make sure to have world and kernel in 547 sync before rebooting. 548 54920031111: 550 Hyperthreading logical CPU's are no longer probed by default 551 when using the MP Table. If ACPI is being used, then logical 552 CPUs will be probed if hyperthreading is enabled in the BIOS. 553 If ACPI is not being used and hyperthreading is enabled in the 554 BIOS, logical CPUs can be enabled by building a custom kernel 555 with the option MPTABLE_FORCE_HTT enabled. 556 55720031103: 558 The i386 APIC_IO kernel option has been replaced by 559 'device apic'. The ACPI module has also been temporarily 560 disabled, so ACPI must be statically compiled into your 561 kernel using 'device acpi' if you wish to use the ACPI driver. 562 56320031031: 564 The API and ABI of struct ifnet have been changed by removing 565 the if_name and if_unit members and replacing them with 566 if_xname, if_dname, and if_dunit. All network drivers and most 567 userland programs which include net/if_var.h must be updated 568 and recompiled. __FreeBSD_version has been bumped to 501113 to 569 reflect this change. 570 57120030928: 572 Changes to the cdevsw default functions have been made to remove 573 the need to specify nullopen() and nullclose() explicitly. 574 __FreeBSD_version bumped to 501110. 575 57620030926: 577 kiconv(3) has been added. mount_msdosfs(8), mount_ntfs(8) and 578 mount_cd9660(8) need to be in sync with kernel. 579 58020030923: 581 Fix a bug in arplookup(), whereby a hostile party on a locally 582 attached network could exhaust kernel memory, and cause a system 583 panic, by sending a flood of spoofed ARP requests. See 584 FreeBSD-SA-03:14.arp. 585 58620030915: 587 A change to /etc/defaults/rc.conf now causes inetd to be started 588 with `-C 60' if it is not overridden in /etc/rc.conf. This 589 causes inetd to stop accepting connections from an IP address 590 that exceeds the rate of 60 connections per minute. 591 59220030829: 593 The following rc.d scripts have been removed and should be 594 deleted from your installation: atm2.sh atm3.sh devdb 595 localdaemons network1 network2 network3. Depending on when 596 you last updated world and used mergemaster(8) you may or 597 may not have problems during the rc boot sequence. The simplest 598 solution is an 'rm -rf /etc/rc.d/*' and then 'mergemaster -i'. 599 The atm2.sh atm3.sh and devdb scripts were removed some time 600 ago, so depending on when you installed -CURRENT these scripts 601 may or may not exist on your system. 602 60320030824: 604 ATAng has been committed. You need to build world as sys/ata.h 605 has changed, and userland atacontrol depends on it. 606 If you use ATA SW raids you need "device ataraid" in your 607 kernel config file, as it is no longer pulled in automatically. 608 60920030819: 610 The OFW_NEWPCI option has been turned on in the Sparc64 GENERIC kernel. 611 Among other things, this changes the device enumeration to be 612 closer to Solaris. Be aware that, this can even cause the machine 613 to not boot without manual intervention before the fstab is adjusted. 614 61520030728: 616 All current USB and Firewire quirks in da(4) have been deprecated 617 and will be removed for 5.2. If this causes failure for your 618 umass(4) devices, enable "options DA_OLD_QUIRKS" in your kernel 619 and send the output of "camcontrol inquiry da0" to scsi@freebsd.org 620 so the quirk can be re-enabled. 621 62220030724: 623 Problems with entry 20030714 have been corrected and no known issues 624 with /rescue and -j exist for host systems after this point in time. 625 62620030722: 627 FPU-less support has been removed from FreeBSD. Chances are you won't 628 notice. 386+387 support should still work after this change, but 629 it is now a minimum requirement for the i386 port that you have real 630 FPU hardware. 631 63220030714: 633 Some people are having problems with changes related to /rescue. 634 If you are building -j N, you will need to define NO_RESCUE. Others 635 will need to define it if /rescue has issues with their environment. 636 People should report those issues to current@. 637 63820030711: 639 gcc was upgraded to 3.3. You are advised to not build -DNOCLEAN 640 across this point. Further, it might be a good idea to remove 641 /usr/obj. 642 64320030610: 644 Remove deprecated locale names and transition period code 645 for them, finishing switching to the new scheme. Check your 646 LANG environment variable. 647 64820030609: 649 CCD has been changed to be a fully GEOMified class. Kernel 650 and ccdconfig(8) needs to be in sync, this is particularly 651 important to remember beforehand if your source tree is on 652 a ccd device. Consider making a copy of the old ccdconfig 653 into /boot/kernel.good or wherever you keep your backup 654 kernel. 655 65620030605: 657 There was a small window in which sed(1) was broken. If you 658 happen to have sed(1) installed during that window, which is 659 evidenced by an inability to build world with the failure 660 given below, you need to manually build and install sed(1) 661 (and only sed(1)) before doing anything else. This is a one- 662 time snafu. Typical failure mode: 663 664 In file included from /usr/src/contrib/binutils/bfd/targets.c:1092: 665 targmatch.h:7:1: null character(s) ignored 666 targmatch.h:12:1: null character(s) ignored 667 targmatch.h:16:1: null character(s) ignored 668 : 669 670 The window of "sed(1)-uction" is from Wed Jun 4 15:31:55 2003 UTC 671 to Thu Jun 5 12:10:19 2003 UTC (from rev 1.30 to rev 1.31 of 672 usr.bin/sed/process.c). 673 67420030505: 675 Kerberos 5 (Heimdal) is now built by default. Setting 676 MAKE_KERBEROS5 no longer has any effect. If you do NOT 677 want the "base" Kerberos 5, you need to set NO_KERBEROS. 678 67920030502: 680 groff has been updated. If you try to do a buildworld and 681 get an infinite loop in troff, update to May 4th or newer. If you 682 have a newer kernel than userland, you may need to set the OSRELDATE 683 to 500110 in your environment before starting a buildworld. 684 68520030501: 686 The old rc system has been removed. Please report any problems 687 to freebsd-rc@yahoogroups.com, and/or freebsd-current@freebsd.org. 688 Your personal versions of these files will not be removed, so you can 689 continue to use them. However, you should take great care when updating, 690 especially when using mergemaster, since the compatibility code that 691 utilizes these old scripts has also been removed. 692 69320030423: 694 A bug has been fixed in /dev/devctl which would cause devd 695 to hang on boot, were it not for a workaround in devd. The 696 work around in devd will be removed around 20030507. You 697 have until then to upgrade your kernel before updating 698 userland. In general, you should have a userland and 699 kernel that's in sync with each other. However, given the 700 effects of this bug (hang on boot when starting devd), some 701 allowances are made. 702 70320030329: 704 Alphas with libc from between 20030312 and 20030329 exhibit 705 floating point exceptions (FPEs), most notably in awk(1) 706 while upgrading the system through a buildworld. 707 708 So, to successfully upgrade your Alpha, you must either 709 downgrade your libc.so to a pre-20030312 version, or update 710 /usr/share/mk/bsd.cpu.mk to revision 1.26 which adds -mieee 711 to CFLAGS, then forcibly rebuild and install libc: 712 713 cd /usr/src/lib/libc && \ 714 make cleandir && make obj && \ 715 make -DNOMAN -DNOPROFILE all && \ 716 make -DNOMAN -DNOPROFILE install 717 71820030208: 719 sendmail 8.12.7 has been imported. It has one important 720 change for IPv6 users. The default submit.mc now uses 721 '[127.0.0.1]' instead of 'localhost' meaning only IPv4 is 722 used to connect to the MTA. Users on IPv6-only machines 723 will need to edit /etc/mail/submit.mc appropriately. 724 72520030128: 726 NODEVFS option has been removed and DEVFS thereby made standard. 727 This makes all references to MAKEDEV obsolete, and they should 728 be removed when convenient. 729 73020030126: 731 The name of the device for the ofw console has changed, sparc64 users 732 must run mergemaster to update their installed /etc/ttys. 733 73420030125: 735 The scheduler framework has grown a second scheduler and consequently 736 you must specify one and only one scheduler in your kernel config. 737 The cvs config files have been updated to use the old scheduler 738 which may be selected via 'options SCHED_4BSD'. If you would like 739 to try the new, much more experimental, scheduler please try 740 'options SCHED_ULE' and contribute to the arch@ discussion. 741 74220030115: 743 A new version of the wi driver has been imported into the tree. 744 One now must have device wlan in the config file for it to operate 745 properly. 746 747 In addition, there have been some changes to how wi devices are 748 configured for point to point links to bring it more in line 749 with the former way of doing things, as well as compatibility 750 with NetBSD. 751 75220021222: 753 For a period after the GCC 3.2.1 import (from 12/04 to 12/22), GCC 754 used an incompatible form of ABI for returning structures and unions 755 which FreeBSD's GCC maintainers were not aware of relative to previous 756 versions of FreeBSD. We have gone back to the ABI for now, and any 757 code compiled which is required to interoperate with other code (not 758 built at the same time) returning structs or unions should be 759 rebuilt. 760 76120021216: 762 A name change in /etc/netconfig has been reverted to stay 763 compatible with suns TIRPC and also with NetBSD. You need 764 to run mergemaster after make world. A new libc does still work 765 with an outdated /etc/netconfig for some time, but you'll get 766 a warning. This warning will be removed in 20030301. 767 76820021202: 769 The recent binutils upgrade marks a kernel flag day on 770 sparc64: modules built with the old binutils will not work 771 with new kernels and vice versa. Mismatches will result in 772 panics. Make sure your kernel and modules are in sync. 773 77420021029: 775 The value of IPPROTO_DIVERT has changed. Make sure to keep 776 your kernel, netstat, natd and any third-party DIVERT 777 consumers in sync. 778 77920021024: 780 Old, compatibility slices have been removed in GEOM kernels. 781 This means that you will have to update your /etc/fstab to 782 not use disk devices of the form /dev/ad0a. Instead, you 783 now must specify /dev/ad0s1a, or whatever slice your FreeBSD 784 partition really is on. The old device names have gone 785 away, so if you use them anywhere else, you must also adjust 786 those uses. (This doesn't affect the disks formatted in 787 the ``dangerously-dedicated'' mode.) 788 78920021023: 790 Alphas with kernels from between 20020830 and 20021023 and/or 791 rtld (ld-elf.so.1) older than 20021023 may experience problems 792 with groff while doing a buildworld (kernel: "out of memory", 793 fixed in rev 1.129 of kern/imgact_elf.c; rtld: "too few PT_LOAD 794 segments", fixed in rev 1.8 of libexec/rtld-elf/map_object.c). 795 796 So, to successfully upgrade your Alpha, you must either 797 upgrade your kernel and rtld first (which might be a bit 798 tricky), or avoid running the bootstrapped groff during the 799 "transitional" buildworld. To avoid running groff during the 800 transitional upgrade run make buildworld with -DNOMAN, 801 -DNO_SHAREDOCS, and -DNO_LPR. 802 80320020831: 804 gcc has been upgraded to 3.2. It is not all binary compatible 805 with earlier versions of gcc for c++ programs. All c++ 806 programs and libraries need to be recompiled. 807 808 Also, if you encounter g++ issues, rm /usr/include/g++/* before 809 doing an installworld to make sure that stale files are removed. 810 81120020827: 812 Our /etc/termcap now has all the entries from the XFree86 xterm 813 almost unchanged. This means xterm now supports color by default. 814 If you used TERM=xterm-color in the past you now should use 815 TERM=xterm. (xterm-color will lead to benign warnings). 816 81720020815: 818 A "bug" in gcc(1) that was hiding warning in system headers was 819 fixed. It's probably time to add -DNO_WERROR to your make line 820 again. 821 82220020729: 823 COPY is being deprecated. The 20010530 change was reverted, as 824 it causes far more pain than was expected, and to always compare 825 before installing, please use INSTALL="install -C" again. The 826 -C option is now silently ignored when used with the -d option. 827 82820020702: 829 Problems with libc_r clients like KDE and GNOME have been resolved. 830 There are still some minor problems with some signals but the 831 system is stable enough for general use again. SMP is less so than UP 832 but each can successfully complete multiple buildworlds. 833 Libkvm needs to be recompiled due to KSE. 834 83520020701: 836 Now would be a bad time to upgrade. Something in or near the 837 KSE commit totally broke programs using libc_r like KDE and 838 GNOME. 839 84020020511: 841 The k5su utility installed as part of Kerberos 5 is no longer 842 installed with the set-user-ID bit set by default. Add 843 ENABLE_SUID_K5SU=yes to /etc/make.conf to have it installed 844 with the set-user-ID bit set. 845 84620020510: 847 Gcc 3.1 debugging format (cc -g) has changed from STABS to DWARF2. 848 Unfortunately our native GDB (at version 4.18) does not understand 849 the DWARF2 debugging format. Thus you must use `gcc -gstabs+' to 850 generated debugging information for our native GDB. 851 85220020510: 853 Due to the way CVS works, it may not properly update src/contrib/gcc 854 to the 3.1 sources. The easiest fix is to `rm -rf' src/contrib/gcc 855 and then do a cvs update. 856 85720020421: 858 When exec'ing set[ug]id executables, the kernel now ensures that the 859 stdio file descriptors (0..2) are open. See FreeBSD-SA-02:23.stdio. 860 86120020404: 862 New sendmail startup scripts have been installed to make it 863 easier to use alternative MTAs with FreeBSD. Setting the rc.conf 864 variable sendmail_enable to "NO" no longer prevents any sendmail 865 daemons from starting. Instead, either set sendmail_enable to 866 "NONE" or change mta_start_script to a script for starting 867 an alternative MTA. Setting mta_start_script to "" will 868 also prevent any MTA from being started at boot. 869 87020020403: 871 UCONSOLE is no longer a valid kernel option. 872 87320020315: 874 FreeBSD 5.0 DP-1 was basically branched today. 875 87620020225: 877 Warnings are now errors in the kernel. Unless you are a developer, 878 you should add -DNO_WERROR to your make line. 879 88020020217: 881 sendmail 8.12.2 has been imported. The sendmail binary is no 882 longer a set-user-ID root binary and the infrastructure to support 883 command line mail submission has changed. Be sure to run 884 mergemaster (especially for updating /etc/rc, /etc/defaults/rc.conf, 885 and /etc/mail) and read /etc/mail/README for more details. 886 887 Due to the import of sendmail 8.12.2, a new user and group are 888 required in order for sendmail to run as a set-group-ID 889 binary. A 'make installworld' will use the new user and group 890 to set the owner and group of /var/spool/clientmqueue and will 891 fail if the new user and group do not exist. The 'smmsp' user 892 and group must be merged from src/etc/group and 893 src/etc/master.passwd before using 'make installworld'. 894 'mergemaster -p' will do this. You may need to install 895 mergemaster before this will work if you are updating from a 896 very old version of current. The updating recipe has changed 897 as of this date. 898 89920020112: 900 The preferred configuration method for PAM is now /etc/pam.d/ 901 rather than /etc/pam.conf. If you have an unmodified 902 pam.conf, just delete it after your next mergemaster run. If 903 you have local modifications, you can use 904 /usr/src/etc/pam.d/convert.pl to incorporate them into your 905 /etc/pam.d. 906 907 Please see the following url for more details: 908http://www.freebsd.org/cgi/mid.cgi?db=mid&id=<xzp6667fyoa.fsf@flood.ping.uio.no> 90920011229: 910 If anyone here is already using the new rc.conf(5) variable 911 networkfs_types, please note that it has changed 912http://www.freebsd.org/cgi/mid.cgi?db=mid&id=<9744.1009655556@axl.seasidesoftware.co.za> 913 91420011220: 915 sys/i4b/driver/i4b_ispppsubr.c has been retired. This file 916 started out its life in the ISDN4BSD project as an offspring 917 from sys/net/if_spppsubr.c, which eventually got a life of its 918 own. All the accumulated features and bug fixes of the i4b 919 version have now been merged back into the base system's 920 version now. The only user-visible change resulting from this 921 is that i4b's sppp(4) interfaces are to be managed with 922 spppcontrol(8) again, since ispppcontrol(8) has been retired 923 as well. (There has never been rc file support for 924 ispppcontrol in -current, but only in -stable. That will be 925 reverted by the time the changes are MFCed.) 926 92720011215: 928 The fdc(4) driver has been updated and now automatically 929 recognizes media in `standard' formats (like 1440 KB and 930 720 KB for a 3.5" high-density drive) when accessing the 931 default device node (e. g. /dev/fd0). The old variety of 932 floppy device nodes /dev/fd*.* is no longer present by 933 default, devices can be created (in DEVFS) on demand. They 934 will need to be customized then for `odd' densities using 935 fdcontrol(8). 936 93720011209: 938 The bugs in procfs' debugging support code have been fixed, 939 and truss(1) now works again. 940 94120011207: 942 Daily security checks have been split out to use the periodic(8) 943 scripts. Some change in configuration may be necessary. Please 944 see 945http://www.freebsd.org/cgi/mid.cgi?db=mid&id=<20011207155805.R8975@blossom.cjclark.org> 946 for details. 947 94820011204: 949 sos added VCD/SVCD support to ata driver and that needs the 950 kernel and burncd to be in sync. 951 95220011203: 953 The procfs pseudo-filesystem has now been converted to use the 954 pseudofs framework. If you have 'options PROCFS' in your 955 kernel config, you'll need to add 'options PSEUDOFS' if it's 956 not there already. 957 958 This change temporarily breaks truss(1); use ktrace(1) instead 959 until the issue has been resolved. 960 96120011202: 962 A security hole in OpenSSH involving `UseLogin yes' has been 963 patched. 964 96520011126: 966 You need to remove /usr/obj/.../usr.bin/tip before rebuilding 967 after this date. You need to do this only once. 968 96920011103: 970 Most of the awk issues have been resolved. Some rough 971 edges may be left, but for the most part things should be 972 back to "normal." For CURRENT's usual definition of "normal." 973 97420011030: 975 Awk has been upgraded to the one true awk from bell labs. Expect 976 choppy waves in the upgrade process. 977 97820011030: 979 The asr driver problem has been resolved. 980 98120011027: 982 Due to changes in other parts of the system, the asr driver 983 now causes the system to panic on boot. Do not use it pending 984 correction. Comment it out of any kernel config file that you 985 try to use from this date forward. 986 98720011025: 988 When crossbuilding, use TARGET=xxx where you used to use 989 MACHINE=xxx. You don't need to set TARGET_ARCH and TARGET, 990 unless you are changing both of them. To cross build pc98 on 991 an alpha, for example, you need to set TARGET=pc98 and 992 TARGET_ARCH=i386. 993 99420011001: 995 The kernel interface that burncd depends on has changed. 996 You must recompile both the kernel and userland applications 997 at the same time. 998 99920010929: 1000 When crossbuilding, please set TARGET_ARCH rather than 1001 MACHINE_ARCH to indicate the target. In the future, one will 1002 set TARGET_MACHINE where you set MACHINE now. At the moment, 1003 setting MACHINE alone for same MACHINE_ARCH machines works 1004 (eg, you can build pc98 on an i386 machine and vice versa). 1005 100620010927: 1007 Some weird problems result from using ACPI on some machines. 1008 To disable ACPI you can add 1009 hint.acpi.0.disabled="1" 1010 to /boot/loader.conf (or by putting set X=Y at the boot 1011 loader "ok" prompt). 1012 1013 Alternatively, you can remove it from /boot/kernel/acpi.ko 1014 or use the MODULES_OVERRIDE function in your kernel config 1015 file and not list acpi in that list. 1016 101720010924: 1018 The buildworld has been fixed. You may need to install 1019 the 4.x compatibility libraries for some old binaries 1020 to work. Add COMPAT4X=true to your /etc/make.conf to 1021 get them installed on every installworld, or execute the 1022 following to get them installed only once: 1023 cd src/lib/compat/compat4x.<arch> 1024 make all install 1025 You will see ``__stdoutp undefined'' until you do this. 1026 102720010919: 1028 There's a bug in the world build process. The cross-tools 1029 are build with the NEW headers, but the OLD libc.a. This 1030 leads to all kinds of problems with the new libc. A temporary 1031 workaround is to add 1032 CFLAGS="-O -pipe -D_OLD_STDIO" 1033 before building world when upgrading from 4.x to current. This 1034 can be removed afterwards. 1035 1036 A proper fix to the buildworld target is needed. 1037 103820010918: 1039 Peter has committed his new kthread nfs client/server code. 1040 NFS may be unstable after this date. 1041 104220010912: 1043 KSE has hit the tree. Lots of things are now different in 1044 the kernel. While a few problems were introduced in the 1045 initial commit, most of the major ones have been found and 1046 corrected. 1047 104820010901: 1049 In OLDCARD, CardBus bridges appear to be stable. The work 1050 arounds described in the 20010604 entry are now no longer 1051 necessary and will be ignored. Most insert/remove problems 1052 have been rectified around this date. 1053 105420010823: 1055 named now runs as user bind and group bind rather than as 1056 root. If named_enable is set to YES in /etc/rc.conf, ensure 1057 that user bind is available in /etc/passwd (using vipw(8)) 1058 and that group bind is available in /etc/group. Also make 1059 sure that user or group bind has read (and not write) 1060 permission for your name server configuration and that it 1061 has read and write permission for your slave zone files and 1062 directory. 1063 1064 If you wish to continue to run named as root (a less secure 1065 alternative), add a line to /etc/rc.conf saying 1066 1067 named_flags= 1068 106920010709: 1070 The PAM libraries have had an API upgrade that is beyond 1071 the ability of the shared library major number to handle. 1072 It is manifested by PAM-using ports dumping core. The 1073 solution is to rebuild those ports. 1074 107520010628: 1076 The kernel compile module has moved from src/sys/compile/FOO 1077 to src/sys/${MACHINE}/compile/FOO. 1078 107920010625: 1080 The pccard modem issue from 20010613 has been corrected. 1081 OLDCARD support is still a little weak in -current. slot 1 is 1082 known not to work on some TI based cardbus bridges. Some 1083 cardbus bridges do not properly detect insert/removal events. 1084 IRQ configuration needs more safety belts. 1085 108620010617: 1087 Softupdates problems have been corrected. 1088 108920010614: 1090 Peter ripped out the linkerset support. You must, as always, 1091 rerun config after you cvsup if you are using the traditional 1092 kernel building methods. 1093 109420010613: 1095 pccard modems may not work with current after 20010604 date. Some 1096 do, others result in panics. *MAKE*SURE* that you update your 1097 config and /etc/rc.conf ala the 20010604 entry, or you will have 1098 problems (this issue will be fixed, it just hasn't been yet). 1099 110020010613: 1101 SOFTUPDATES seem to be broken since the middle of May or so. Do not 1102 use them in current. You can disable softupdates on all mounted 1103 partitions, or remove SOFTUPDATES the kernel config file. 1104 110520010612: 1106 After Peter's commits to the hints code, people have been noticing 1107 that certain devices are attached (or try to) twice. This is due 1108 to having both static hints as well as a /boot/device.hints. To 1109 work around this issue, please use only one or the other mechanism 1110 until this bug is fixed. 1111 1112 Please note that a feature of config is that if you have config 1113 file FOO and FOO.hints, it automatically adds FOO.hints to the 1114 hints.c file, whether you want it to or not. 1115 111620010610: 1117 Locale names have changed to match other systems better. 1118 111920010604: 1120 pccard support for pci cards has been committed. You must change 1121 your /etc/pccard.conf irq lines. It must match the irq used by 1122 pcic device. Interrupt storms may result if you fail to do this. 1123 Interrupt storms look a lot like a hang. 1124 1125 You must also install a new pccardd, otherwise you will get an 1126 interrupt storm at card reset time (just after it tells you what 1127 it is). 1128 1129 pccardd_flags="-I" is necessary for the time being. It tells pccardd 1130 not to ask the kernel if the interrupt is really free or not before 1131 using it. You can either change the /etc/pccard.conf irq lines to 1132 match pcic, or add "-i X" to the pccardd_flags. 1133 113420010530: 1135 INSTALL=install -C is being deprecated. If you want to do this, 1136 use COPY=-C instead. The former method will be supported for only 1137 a limited time. If you see 1138 1139install: warning: the -d and -C options may not be specified together 1140 1141 in your makeworld, then you need to migrate towards using 1142 COPY=-C. 1143 114420010525: 1145 It appears that vm is now stable enough to use again. However, 1146 there may be other problems, so caution is still urged. alpha 1147 definitely is in bad shape. 1148 114920010521: 1150 Minor repo damage has happened. This may cause problems 1151 with cvsup of ports. If you get errors, please see 1152 http://www.FreeBSD.org/cgi/query-pr.cgi?pr=27495 1153 at the bottom for details on a workaround. The error message 1154 is 1155Updater failed: Cannot delete "/usr/ports/www/jakarta-tomcat/files": Directory not empty 1156 115720010520: 1158 Vm and/or swapping are busted on -current. Please be patient. 1159 116020010519: 1161 pccard has had much reorganizational work done to it over 1162 the past few days. Everything should still work, but if 1163 not, please contact imp@freebsd.org. 1164 116520010517: 1166 ata ioctl changed. Make sure to recompile both kernel and 1167 userland at the same time. 1168 116920010517: 1170 New ncurses imported. 1171 117220010512: 1173 DEVFS is now opt out, not opt in. Barring major problems, this 1174 will be the only way to go starting July 1. 1175 117620010504: 1177 OpenSSH has been updated to 2.9. Some defaults are different, 1178 including RhostsRSAAuthentication, which changes from yes to no. 1179 118020010502: 1181 Perl breakage in 20010501 was corrected at 14:18:33 PDT. 1182 118320010501: 1184 Building perl was broken at 02:25:25 PDT. 1185 118620010430: 1187 The bug in 20010429 was corrected at 07:35:37 PDT. It is safe to 1188 go back in the water. 1189 119020010429: 1191 A bad bug was committed at 04:48:42 PDT. Don't use kernels after 1192 this date, but before the correction date. 1193 119420010423: 1195 old fsck and new kernel interactions appear to have been fixed. 1196 119720010411: 1198 fsck and the kernel were changed to handle some optimizations 1199 to directory layout. This breaks backward compatibility. 1200 Update only if you understand that you must not use the old 1201 fsck with the new kernel ever. 1202 120320010330: 1204 fsck has changed the meaning of the pass column in /etc/fstab. 1205 Please see the cvs commit to fsck.8 or the fsck.8 man page for 1206 details. It is unclear if changes to /etc/fstab are necessary. 1207 120820010319: 1209 portmap had changed name to rpcbind for maximum POLA in your 1210 current world. /etc/hosts.{allow,deny} needs changes. nfs and 1211 other rpc based programs that rely on portmapper will not work 1212 without updates to /etc/hosts.{allow,deny} and /etc/netconfig. 1213 121420010315: 1215 ata subsystem changes. ATA_ENABLE_ATAPI_DMA, ATA_ENABLE_WC 1216 and ATA_ENABLE_TAGS are no longer kernel options. They have 1217 been replaced by tunables. See ata.4 for details. 1218 121920010312: 1220 The fxp driver was converted to use miibus. If you compile 1221 fxp into your kernel statically, you will need to add miibus. 1222 122320010312: 1224 The wi device now defaults to BSS (infrastructure) mode 1225 instead of ad-hoc. 1226 122720010310: 1228 /dev/urandom should be a symbolic link to /dev/random now. 1229 Users of current not using DEVFS need to run MAKEDEV std. 1230 ssh might not work if you don't. 1231 123220010303: 1233 The ed driver has been updated. It now allows mii attachments, 1234 which means that you must include the miibus in your kernel if 1235 you use the ed driver. 1236 123720010220: 1238 The problems with libc have been corrected. It is now mostly 1239 safe to go back into the water. 1240 124120010211: 1242 The size of FILE was changed. This breaks upgrading. If 1243 you must upgrade, be prepared for pain. It also breaks almost 1244 all binaries that you've compiled on -current. You are warned 1245 that before upgrading would be a good time to do a level 0 1246 dump of your system. No, really, I mean it this time. 1247 1248 To get to the new system, you'll need to use the following 1249 workaround. Hopefully this can be sorted out so that we 1250 don't have to move this to the updating section. 1251 1252 To get around the installworld problem, do: 1253 # cd /usr/src/usr.bin/sed 1254 # make install 1255 # cd /usr/src 1256 # make installworld 1257 If that doesn't work, then try: 1258 # make -k installworld 1259 # make installworld 1260 126120010207: 1262 DEVFS is now the default. If you use vinum, make sure that you 1263 do not include devfs in your kernel as problems result. 1264 126520010205: 1266 FFS_ROOT and CD9660_ROOT have been removed or deprecated. 1267 Remove them from your config. 1268 126920010122: 1270 ****************************** WARNING ****************************** 1271 buildkernel has been changed slightly 1272 ****************************** WARNING ****************************** 1273 KERNCONF replaces the variable KERNEL for buildkernel. You 1274 should update your scripts and make.conf accordingly. 1275 127620010119: 1277 config has changed to allow DEV_FOO as a replacement for NFOO. 1278 This requires a new config to build correctly. 1279 128020010116: 1281 The kernel option I386_CPU is now mutually exclusive with the 1282 other cpu types. If you have an i386 system, be sure that it 1283 only had this line. Remove it for all other configurations. 1284 128520010110: 1286 Changes to the kernel require it and burncd be in sync. 1287 128820010102: 1289 Everyone who has hw.sndunit set to something in 1290 /etc/sysctl.conf, it is now hw.snd.unit. 1291 129220010101: 1293 ex and vi were broken by some changes to sys/queue.h. If you 1294 have a bad vi, you will see make buildworld fail with a core 1295 dump while building termcap. You can work around this problem 1296 by adding -k to your make buildworld. This will cause the 1297 build to complete and install a new vi. Once that's done, you 1298 can rebuild again without the -k to pick up anything that 1299 might have been ignored by the -k option. 1300 1301 Others have suggested that you can just rebuild libc if your 1302 vi/ex is dynamically linked, but I've not received any reports 1303 of this working. 1304 130520001228: 1306 There have been some changes to libcrypt in -current. The 1307 libscrypt/libdescrypt symlink silliness is gone and the installed 1308 libcrypt is fully functional. Be aware of this. 1309 131020001218: 1311 Linksys Fast Ethernet PCCARD cards supported by the ed driver 1312 now require the addition of flag 0x80000 to their config line 1313 in pccard.conf(5). This flag is not optional. These Linksys 1314 cards will not be recognized without it. 1315 131620001205: 1317 Important new FreeBSD-version stuff: PAM support has been worked 1318 in, partially from the "Unix" OpenSSH version. This requires 1319 adding the following in pam.conf: 1320 1321 sshd auth sufficient pam_skey.so 1322 sshd auth required pam_unix.so try_first_pass 1323 sshd session required pam_permit.so 1324 132520001031: 1326 cvs updated to 1.11. 1327 132820001020: 1329 The random device needs more entropy, so you need to make sure 1330 that you've run mergemaster to get a /etc/rc which will seed 1331 /dev/random. If you don't and the system hangs after ldconfig, 1332 then banging on the keyboard randomly until it unhangs is one 1333 workaround. 1334 133520001010: 1336 ****************************** WARNING ****************************** 1337 Sendmail has been updated. 1338 ****************************** WARNING ****************************** 1339 o mail.local(8) is no longer installed as a set-user-id binary. 1340 o sendmail(8) is now built with STARTTLS support unless NO_OPENSSL 1341 is set. 1342 o The default /etc/mail/sendmail.cf disables the SMTP EXPN and VRFY 1343 commands. 1344 o Now using sendmail's version of vacation(1). 1345 o The sendmail cf building tools (contrib/sendmail/cf) are installed 1346 in /usr/share/sendmail/cf. 1347 o sendmail.cw changed to local-host-names 1348 1349 More details can be found at 1350 http://people.freebsd.org/~imp/UPDATING/sendmail-20001010 1351 135220001009: 1353 The ports tree's new layout is in place. Be sure to update 1354 your entire ports tree, or you will have problems. 1355 135620001006: 1357 The perl build procedure no longer installs miniperl, nor uses 1358 the installed miniperl. It is recommended that you delete 1359 /usr/bin/miniperl. 1360 136120001005: 1362 This weekend the ports tree will be updated to a new layout. 1363 It will be in an inconsistent state until noted in the UPDATING 1364 file, or with asami-san's message to the relevant mailing 1365 lists. With this new layout, you'll need to update the whole 1366 tree for anything to work. 1367 136820000928: 1369 There was a change in the passwd format. Need more information. 1370 137120000916: 1372 /boot/kernel/kernel.ko -> /boot/kernel/kernel change has taken 1373 place. Please update boot loader (not the boot blocks) at the 1374 same time as your kernel. 1375 137620000914: 1377 The new pmtimer device is necessary for laptops. Failure to 1378 include the device will cause suspended laptops losing time 1379 when they resume. Include 1380 device pmtimer 1381 in your config file and 1382 hint.pmtimer.0.at="isa" 1383 to your /boot/device.hints file. 1384 138520000911: 1386 The random device has been turned into a (pseudo-)device, 1387 rather than an option. The supplied kernel config files have 1388 been updated. You will need to do something similar in your 1389 own kernel config file. 1390 Remove: 1391 options RANDOMDEV 1392 Add: 1393 device random 1394 If you prefer to load the loadable module, you need to do 1395 nothing. 1396 139720000909: 1398 The random device module has been renamed from randomdev.ko to 1399 random.ko. You will need to edit your /boot/loader.conf to 1400 reflect this if you load this module at boot time. 1401 The line should read: 1402 random_load="YES" 1403 140420000907: 1405 The SMPNG commit has happened. It should work, but if it 1406 doesn't, fallback to the PRE_SMPNG CVS tag. There are likely 1407 to be a variety of minor issues. Please see 20000905 to make 1408 sure you don't have model loading problems which might at 1409 first blush appear related to SMP. 1410 141120000906: 1412 nsswitch has been imported from NetBSD. Among other things, 1413 this means that /etc/host.conf is no longer used. See 1414 nsswitch.conf(5) instead. Note that at boot time rc.network 1415 will attempt to produce a new nsswitch.conf file for you if you 1416 don't have one, and you have host.conf. 1417 141820000905: 1419 The ucred structure changed size. This breaks the interface 1420 that mountd uses. Trying to use an older mountd with a newer 1421 kernel guarantees a panic. This means that you need to use 1422 kernels newer than today only with matching mountd, but you 1423 needed to do that anyway with the boot loader changes. 1424 142520000905: 1426 The boot loader has been updated. The new default kernel is 1427 now /boot/kernel/kernel.ko. The new default module location 1428 is /boot/kernel. 1429 1430 You *MUST* upgrade your boot loader and kernel at the same time. 1431 The easiest way to do this is to do the buildworld/buildkernel/ 1432 installkernel/installworld dance. 1433 1434 Furthermore, you are urged to delete your old /modules directory 1435 before booting the new kernel, since kldload will find stale 1436 modules in that directory instead of finding them in the correct 1437 path, /boot/kernel. The most common complaint that this cures 1438 is that the linux module crashes your machine after the update. 1439 1440 if [ ! -d /boot/kernel.old ]; then 1441 mv /modules.old /boot/kernel.old 1442 chflags noschg /kernel.old 1443 mv /kernel.old /boot/kernel.old/kernel.ko 1444 chflags schg /boot/kernel.old/kernel.ko 1445 fi 1446 144720000904: 1448 A new issue with the sendmail upgrade has come to light. 1449 /etc/aliases has moved to /etc/mail/aliases. Mergemaster will 1450 incorrectly install the default aliases in /etc/mail rather than 1451 move the old one from /etc. So you'll need to manually move the 1452 file, create a symbolic link, remove the old /etc/aliases.db and 1453 run newaliases. For safety sake, you should stop sendmail 1454 while doing this and run the upgrade when locally sourced email 1455 is not likely to be generated. 1456 145720000825: 1458 /boot/device.hints is now required for installkernel to 1459 succeed. You should copy GENERIC.hints for your architecture 1460 into /boot/device.hints. If and only if you compile hints 1461 into your kernel, then this file may be empty. Please note, 1462 if you have an empty or missing /boot/device.hints file and 1463 you neglected to compile hints into your kernel, no boot 1464 messages will appear after the boot loader tries to start the 1465 kernel. 1466 146720000821: 1468 If you do NOT have ``options RANDOMDEV'' in your kernel and 1469 you DO want the random device then add randomdev_load="YES" to 1470 /boot/loader.conf. 1471 147220000812: 1473 suidperl is now always built and installed on the system, but 1474 with permissions of 511. If you have applications that use 1475 this program, you are now required to add ENABLE_SUIDPERL=true 1476 to /etc/make.conf. If you forget to do this, 1477 chmod 4511 /usr/bin/suidperl 1478 will fix this until the next build. 1479 148020000812: 1481 sendmail has been updated from 8.9.3 to 8.11.0. Some of the more 1482 visible changes that may immediately affect your configuration 1483 include: 1484 - New default file locations from src/contrib/sendmail/cf/README 1485 - newaliases limited to root and trusted users 1486 - MSA port (587) turned on by default 1487 - New queue file naming system so can't go from 8.11 -> 8.9 1488 - FEATURE(`rbl') renamed to FEATURE(`dnsbl') 1489 - FEATURE(`nullclient') is more full featured 1490 - FEATURE(`nouucp') requires an argument: `reject' or `nospecial' 1491 - mail.local FreeBSD-only -b option changed to -B 1492 - See src/contrib/sendmail/RELEASE_NOTES for more info 1493 149420000810: 1495 suidperl (aka sperl) is no longer build by default. You must 1496 specifically define BUILD_SUIDPERL to "true" for it to be build. 1497 Furthermore, we recommend that you remove /usr/bin/sperl* and 1498 /usr/bin/suidperl files from your system unless you have a 1499 specific use for it. 1500 150120000729: 1502 Networking defaults have been tightened. Anybody upgrading 1503 /etc/defaults/rc.conf needs to add the following lines to 1504 /etc/rc.conf if they want to have the same setup 1505 afterwards (unless the variables already are set, of course): 1506 # Enable network daemons for user convenience. 1507 inetd_enable="YES" 1508 portmap_enable="YES" 1509 sendmail_enable="YES" 1510 151120000728: 1512 If you have null_load="YES" in your /boot/loader.conf, you 1513 will need to change that to nullfs_load="YES". 1514 151520000728: 1516 The "installkernel" target has changed slightly. Now even if 1517 you override KERNEL e.g. 'make installkernel KERNEL=MYKERNEL' 1518 it will install the MYKERNEL file (built with the buildkernel 1519 target) as /kernel rather than /MYKERNEL. Those who have 1520 updated their /boot/loader.conf files to point to /MYKERNEL 1521 should remove that entry or perform manual rename of /kernel 1522 to /MYKERNEL. 1523 152420000711: 1525 If you use CVSUP or CTM to get CVS trees, AND you used to get 1526 the old crypto files from internat.freebsd.org AND you check 1527 out files from the CVS tree with the cvs command, please read 1528 http://people.freebsd.org/~imp/internat.txt 1529 for details on potential problems that you might have and how 1530 to get around them. 1531 1532 If you are merely a mirror, or don't answer yes to each of the 1533 clauses above, you needn't worry. 1534 153520000711: 1536 /etc/security has been updated to print the inode number of 1537 setuid programs that have changed. You will see a large spike 1538 in the number of changed programs the first time when you run 1539 mergemaster to get a new /etc/security. 1540 154120000710: 1542 /dev/random now has good entropy collection (from the keyboard 1543 and sysmouse drivers). Please ensure that either `options 1544 RANDOMDEV' is present in your kernel config file or that 1545 `randomdev_load="YES"' is in your /boot/loader.conf. If you do 1546 not have the /dev/random driver, OpenSSL (and consequently 1547 lots of crypto tools (like SSH)) will fail with strange 1548 errors. (see below, 20000624). 1549 1550 FreeBSD-current is safe again to run Crypto. 1551 155220000709: 1553 phk made the malloc default options AJ. This may slow things 1554 down and uncover other latent bugs in the code. If you need to 1555 run at full speed, you can disable this by doing the following: 1556 ln -s aj /etc/malloc.conf 1557 155820000706: 1559 libftpio's version was accidentally bumped a few days ago. This 1560 has been corrected. You may need to remove /usr/lib/libftpio.so.6 1561 before doing your next buildworld/installworld pair. It certainly 1562 won't hurt to remove it before the update procedure. It will 1563 break fetch until a new one is built, but ftp can be used in the 1564 interim if needed. 1565 156620000705: 1567 The crypto packages have changed for the cvsup. This has been done 1568 in a backward compatible way, but the old packages will go away at 1569 some point in the future. Look at /usr/share/examples/cvsup for 1570 details. 1571 157220000704: 1573 With the new sys/modules/sound/drivers/*, you will need to 1574 set SYSDIR until you do an installworld after July 7th. 1575 157620000704: 1577 rc.shutdown and rc will now call the rc.d scripts with start 1578 or stop. This may cause some harmless warnings from older 1579 rc.d scripts that haven't been updated. 1580 158120000630: 1582 The libfetch based version of fetch has gone into the tree. 1583 Minor problems may result on some of the less popular sites, 1584 which should be reported to des@freebsd.org. 1585 158620000625: 1587 From approximately this date forward, one must have the crypto 1588 system installed in order to build the system and kernel. 1589 While not technically strictly true, one should treat it as 1590 required and grab the crypto bits. If you are grabbing CVS 1591 trees, src-all and cvs-crypto should be treated as if they 1592 were required. You should check with the latest collections 1593 to make sure that these haven't changed. 1594 159520000624: 1596 Mark Murray just committed the first parts of a cleanup of 1597 /dev/zero, et al. This is also cleaning up /dev/random. 1598 The entropy is disconnected, so DO NOT USE VERSIONS OF FREEBSD 1599 -CURRENT FROM THIS POINT to 2000710 for cryptographic services 1600 until Mark can merge in the fixes to this work in progress. 1601 openssh and openssl should not be used to generate keys from this 1602 date to the completion of the work. 1603 1604 If you must operate at this reduced level of security, add ' 1605 options RANDOMDEV' to your kernel or modload the randomdev 1606 module. You may also need to copy a new MAKEDEV to /dev and 1607 recreate the random and urandom devices. 1608 160920000622: 1610 The license on the softupdates is now a standard 2 clause 1611 BSD license. You may need to remove your symbolic links 1612 that used to be required when updating. 1613 161420000621: 1615 Scott Flatman <sf@aracnet.com> sent in a decent write-up on 1616 the config file update procedure. 1617 http://people.freebsd.org/~imp/config-upd.html 1618 NOTE: LINT is gone. It has been replaced with NOTES. NOTES 1619 isn't buildable. However, you can generate a LINT file: 1620 cd /sys/<ARCH>/conf && make LINT 1621 162220000620: 1623 Binutils 2.10 have hit the tree, or will shortly. As soon 1624 as they do, the problem noted in 20000522 will be resolved and 1625 that workaround will no longer be required. 1626 162720000615: 1628 phk removed the compatibility creation of wd devices in the 1629 ad driver. If you haven't done so already, you must update 1630 your fstab, etc to use the ad devices instead of the wd 1631 devices. 1632 1633 In addition, you'll need to update your boot blocks to a 1634 more modern version, if you haven't already done so. Modern 1635 here means 4.0 release or newer (although older releases 1636 may work). 1637 163820000612: 1639 Peter took an axe to config(8). Be sure that you read his mail 1640 on the topic before even thinking about updating. You will 1641 need to create a /boot/device.hints or add a hints directive 1642 to your config file to compile them in statically. The format 1643 of the config file has changed as well. Please see GENERIC or 1644 NEWCARD for examples of the new format. 1645 1646 Indirectly, this also breaks USERCONFIG. Unless a newer entry 1647 says that it has been fixed, assume that must use the hints mechanism 1648 in the loader if you need to use a machine with very old ISA cards 1649 in it. 1650 165120000522: 1652 A new set of binutils went into the tree today. Anybody 1653 building a kernel after this point is advised that they need 1654 to rebuild their binutils (or better yet do a 1655 buildworld/installworld) before building a new kernel. 1656 1657 Due to bugs in binutils, using malloc options (eg /etc/malloc.conf 1658 or MALLOC_OPTIONS env var) J will cause ld to dump core. It 1659 is recommended that you don't set this option until the problem 1660 is resolved. 1661 166220000513: 1663 The ethernet drivers were all updated to clean up the BPF handling. 1664 166520000510: 1666 The problems with boot blocks on the alphas have been corrected. 1667 This will require some care in updating alphas. A new libstand 1668 is requires for the boot blocks to build properly. 1669 167020000503: 1671 Recompile all kld modules. Proper version dependency info 1672 is now available. 1673 167420000502: 1675 Modules have been disconnected from the buildworld tree and 1676 connected to the kernel building instead. 1677 167820000427: 1679 You may need to build gperf 1680 cd /usr/src/gnu/usr.bin/gperf && make depend all install 1681 when upgrading from 4.0 -> current. The build system now uses 1682 an option only in -current. 1683 168420000417: 1685 The method that we brand ELF binaries has changed to be more 1686 acceptable to the binutils maintainers. You will need to 1687 rebrand your ELF binaries that aren't native. One problem 1688 binary is the Linux ldconfig. After your make world, but 1689 before you reboot, you'll need to issue: 1690 brandelf -t Linux /compat/linux/sbin/ldconfig 1691 if you have Linux compatibility enabled on your machine. 1692 169320000320: 1694 If you have really bad/marginal IDE drives, you may find they 1695 don't work well. Use pio mode instead. The easiest way to 1696 cope if you have a problem combination is to add: 1697 /sbin/sysctl hw.ata.ata_dma=0 1698 to the start of /etc/rc.conf. 1699 170020000319: 1701 The ISA and PCI compatibility shims have been connected to the 1702 options COMPAT_OLDISA and COMPAT_OLDPCI. If you are using old 1703 style PCI or ISA drivers (i.e. tx, voxware, etc.) you must 1704 include the appropriate option in your kernel config. Drivers 1705 using the shims should be updated or they won't ship with 1706 5.0-RELEASE, targeted for 2001. 1707 170820000318: 1709 We've entered the traditional post release dumping party. 1710 Large kernel changes are being committed and are in the 1711 works. It is important to keep the systems' klds and kernel 1712 in sync as kernel interfaces and structures are changing. 1713 Before reporting kernel panics, make sure that all modules 1714 that you are loading are up to date. 1715 171620000315: 1717 If you are upgrading from an older version of FreeBSD, you 1718 need to update your boot blocks as well. 'disklabel -B ad0' 1719 will do the trick. This isn't critical until you remove your 1720 wd device entries in /dev, at which point your system will not 1721 boot. 1722 172320000315: 1724 4.0 RELEASE shipped. Please see the 4.0 UPDATING file for how 1725 to upgrade to 4.0 from 3.x. 1726 1727COMMON ITEMS: 1728 1729 # NOTE: 5.x below applies to 6.0-currrent as well, for the 1730 # momemnt. 4.any -> 5.any upgrade support will remain in 1731 # place for 6.0 current, but after 5.3 RELEASE, the 4.any -> 1732 # 6.0-current upgrade path will require moving through 5.3 1733 # RELEASE or newer. 1734 1735 General Notes 1736 ------------- 1737 Avoid using make -j when upgrading. From time to time in the 1738 past there have been problems using -j with buildworld and/or 1739 installworld. This is especially true when upgrading between 1740 "distant" versions (eg one that cross a major release boundary 1741 or several minor releases, or when several months have passed 1742 on the -current branch). 1743 1744 Sometimes, obscure build problems are the result of environment 1745 poisoning. This can happen because the make utility reads its 1746 environment when searching for values for global variables. 1747 To run your build attempts in an "environmental clean room", 1748 prefix all make commands with 'env -i '. See the env(1) manual 1749 page for more details. 1750 1751 To build a kernel 1752 ----------------- 1753 If you are updating from a prior version of FreeBSD (even one just 1754 a few days old), you should follow this procedure. With a 1755 /usr/obj tree with a fresh buildworld, 1756 make -DALWAYS_CHECK_MAKE buildkernel KERNCONF=YOUR_KERNEL_HERE 1757 make -DALWAYS_CHECK_MAKE installkernel KERNCONF=YOUR_KERNEL_HERE 1758 1759 To just build a kernel when you know that it won't mess you up 1760 -------------------------------------------------------------- 1761 This assumes you are already running a 5.X system. Replace 1762 ${arch} with the architecture of your machine (e.g. "i386", 1763 "alpha", "amd64", "ia64", "pc98", "sparc64", etc). 1764 1765 cd src/sys/${arch}/conf 1766 config KERNEL_NAME_HERE 1767 cd ../compile/KERNEL_NAME_HERE 1768 make depend 1769 make 1770 make install 1771 1772 If this fails, go to the "To build a kernel" section. 1773 1774 To rebuild everything and install it on the current system. 1775 ----------------------------------------------------------- 1776 # Note: sometimes if you are running current you gotta do more than 1777 # is listed here if you are upgrading from a really old current. 1778 1779 <make sure you have good level 0 dumps> 1780 <maybe fix /etc/fstab> [7] 1781 make buildworld 1782 make kernel KERNCONF=YOUR_KERNEL_HERE 1783 [1] 1784 <reboot in single user> [3] 1785 src/etc/rc.d/preseedrandom [10] 1786 mergemaster -p [5] 1787 make installworld 1788 mergemaster [4] 1789 <reboot> 1790 1791 1792 To cross-install current onto a separate partition 1793 -------------------------------------------------- 1794 # In this approach we use a separate partition to hold 1795 # current's root, 'usr', and 'var' directories. A partition 1796 # holding "/", "/usr" and "/var" should be about 2GB in 1797 # size. 1798 1799 <make sure you have good level 0 dumps> 1800 <boot into -stable> 1801 make buildworld 1802 <maybe newfs current's root partition> 1803 <mount current's root partition on directory ${CURRENT_ROOT}> 1804 make installworld DESTDIR=${CURRENT_ROOT} 1805 make buildkernel KERNCONF=YOUR_KERNEL_HERE 1806 cp src/sys/${ARCH}/conf/GENERIC.hints \ 1807 ${CURRENT_ROOT}/boot/device.hints # as needed 1808 make installkernel KERNCONF=YOUR_KERNEL_HERE DESTDIR=${CURRENT_ROOT} 1809 cd src/etc; make distribution DESTDIR=${CURRENT_ROOT} # if newfs'd 1810 cp /etc/fstab ${CURRENT_ROOT}/etc/fstab # if newfs'd 1811 <edit ${CURRENT_ROOT}/etc/fstab to mount "/" from the correct partition> 1812 <reboot into current> 1813 <do a "native" rebuild/install as described in the previous section> 1814 <maybe install compatibility libraries from src/lib/compat> 1815 <reboot> 1816 1817 1818 To upgrade in-place from 4.x-stable to current 1819 ---------------------------------------------- 1820 # 5.x uses more space than 4.x. Also, the location of kernel 1821 # modules has changed. If you are installing 5.x onto a 4.x 1822 # system, you'll need about 30MB of free disk space on your / 1823 # partition. If you have less than this, you may encounter difficult 1824 # to back out of problems with this procedure. If /tmp is on 1825 # the / partition, you may want to completely remove all its content 1826 # before upgrading, as this can be a common source of shortage of 1827 # space on /. 1828 1829 <make sure you have good level 0 dumps> 1830 <maybe fix /etc/fstab> [7] 1831 make buildworld [9] 1832 cp sys/${MACHINE}/conf/GENERIC.hints /boot/device.hints [2] 1833 make kernel KERNCONF=YOUR_KERNEL_HERE [8] 1834 cd sys/boot ; make STRIP="" install [6] 1835 [1] 1836 <reboot in single user> [3] 1837 src/etc/rc.d/preseedrandom [10] 1838 mergemaster -p [5] 1839 rm -rf /usr/include/g++ 1840 make installworld 1841 mergemaster -i [4] 1842 <reboot> 1843 1844 Make sure that you've read the UPDATING file to understand the 1845 tweaks to various things you need. At this point in the life 1846 cycle of current, things change often and you are on your own 1847 to cope. The defaults can also change, so please read ALL of 1848 the UPDATING entries. 1849 1850 Also, if you are tracking -current, you must be subscribed to 1851 freebsd-current@freebsd.org. Make sure that before you update 1852 your sources that you have read and understood all the recent 1853 messages there. If in doubt, please track -stable which has 1854 much fewer pitfalls. 1855 1856 [1] If you have third party modules, such as vmware, you 1857 should disable them at this point so they don't crash your 1858 system on reboot. 1859 1860 [2] If you have legacy ISA devices, you may need to create 1861 your own device.hints to reflect your unique hardware 1862 configuration. 1863 1864 [3] From the bootblocks, boot -s, and then do 1865 fsck -p 1866 mount -u / 1867 mount -a 1868 cd src 1869 adjkerntz -i # if CMOS is wall time 1870 Also, when doing a major release upgrade, it is required that 1871 you boot into single user mode to do the installworld. 1872 For the 4.x -> 5.x upgrade, you will also see many messages about 1873 needing to recompile your userland. These are harmless and can 1874 be ignored while you proceed to the next step. 1875 1876 [4] Note: This step is non-optional. Failure to do this step 1877 can result in a significant reduction in the functionality of the 1878 system. Attempting to do it by hand is not recommended and those 1879 that pursue this avenue should read this file carefully, as well 1880 as the archives of freebsd-current and freebsd-hackers mailing lists 1881 for potential gotchas. 1882 1883 [5] Usually this step is a noop. However, from time to time 1884 you may need to do this if you get unknown user in the following 1885 step. It never hurts to do it all the time. You may need to 1886 install a new mergemaster (cd src/usr.sbin/mergemaster && make 1887 install) after the buildworld before this step if you last updated 1888 from current before 20020224 or from -stable before 20020408. 1889 1890 [6] 4.x boot loader can be used to boot a 5.x system, however 1891 it is difficult to do that at best. If you wish to try, then 1892 you should interrupt the boot and at the ok prompt type: 1893 ok unload 1894 ok boot /boot/kernel/kernel 1895 If this fails to work, you must install a new boot loader as 1896 described here. 1897 1898 [7] Before you upgrade, please make sure that you are not using 1899 compatibility slices. These are device names of the form /dev/ad0a 1900 without the actual slice name. These will break with 5.x and newer. 1901 You generally must update these entries to use the post FreeBSD 1902 2.x form of /dev/ad0s1a. i386 and pc98 are affected, while alpha 1903 is not. 1904 1905 [8] In order to have a kernel that can run the 4.x binaries 1906 needed to do an installworld, you must include the COMPAT_FREEBSD4 1907 option in your kernel. Failure to do so may leave you with a system 1908 that is hard to boot to recover. 1909 1910 Make sure that you merge any new devices from GENERIC since the 1911 last time you updated your kernel config file. 1912 1913 [9] When checking out sources, you must include the -P flag to have 1914 cvs prune empty directories. 1915 1916 If CPUTYPE is defined in your /etc/make.conf, make sure to use the 1917 "?=" instead of the "=" assignment operator, so that buildworld can 1918 override the CPUTYPE if it needs to. 1919 1920 MAKEOBJDIRPREFIX must be defined in an environment variable, and 1921 not on the command line, or in /etc/make.conf. buildworld will 1922 warn if it is improperly defined. 1923 1924 In case you would like to avoid installing new packages of everything, 1925 you might want to uncomment the "COMPAT4X= YES" entry, so that 4.x 1926 compatibility libraries are built which should allow you to continue 1927 using your existing software for a while. Alternatively, you can 1928 install the misc/compat4x port. 1929 1930 [10] In order to create temporary files, /dev/random must be 1931 initialized by feeding data into it. src/etc/rc.d/preseedrandom 1932 takes care of this. 1933FORMAT: 1934 1935This file contains a list, in reverse chronological order, of major 1936breakages in tracking -current. Not all things will be listed here, 1937and it only starts on March 15, 2000. Updating files can found in 1938previous releases if your system is older than this. 1939 1940Copyright information: 1941 1942Copyright 1998-2004 M. Warner Losh. All Rights Reserved. 1943 1944Redistribution, publication, translation and use, with or without 1945modification, in full or in part, in any form or format of this 1946document are permitted without further permission from the author. 1947 1948THIS DOCUMENT IS PROVIDED BY WARNER LOSH ``AS IS'' AND ANY EXPRESS OR 1949IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 1950WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 1951DISCLAIMED. IN NO EVENT SHALL WARNER LOSH BE LIABLE FOR ANY DIRECT, 1952INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 1953(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 1954SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 1955HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 1956STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 1957IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 1958POSSIBILITY OF SUCH DAMAGE. 1959 1960If you find this document useful, and you want to, you may buy the 1961author a beer. 1962 1963Contact Warner Losh if you have any questions about your use of 1964this document. 1965 1966$FreeBSD$ 1967