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