UPDATING revision 267017
1123474SwpaulUpdating Information for FreeBSD current users 2123474Swpaul 3123474SwpaulThis file is maintained and copyrighted by M. Warner Losh <imp@freebsd.org>. 4123474SwpaulSee end of file for further details. For commonly done items, please see the 5123474SwpaulCOMMON ITEMS: section later in the file. These instructions assume that you 6123474Swpaulbasically know what you are doing. If not, then please consult the FreeBSD 7123474Swpaulhandbook: 8123474Swpaul 9123474Swpaul http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/makeworld.html 10123474Swpaul 11123474SwpaulItems affecting the ports and packages system can be found in 12123474Swpaul/usr/ports/UPDATING. Please read that file before running portupgrade. 13123474Swpaul 14123474SwpaulNOTE: FreeBSD has switched from gcc to clang. If you have trouble bootstrapping 15123474Swpaulfrom older versions of FreeBSD, try WITHOUT_CLANG to bootstrap to the tip of 16123474Swpaulstable/10, and then rebuild without this option. The bootstrap process from 17123474Swpaulolder version of current is a bit fragile. 18123474Swpaul 19123474Swpaul20140603: p4 FreeBSD-SA-14:11.sendmail 20123474Swpaul FreeBSD-SA-14:13.pam 21123474Swpaul FreeBSD-EN-14:06.exec 22123474Swpaul 23123474Swpaul Fix sendmail improper close-on-exec flag handling. [SA-14:11] 24123474Swpaul 25123474Swpaul Fix incorrect error handling in PAM policy parser. [SA-14:13] 26123474Swpaul 27123474Swpaul Fix triple-fault when executing from a threaded process. 28123474Swpaul [EN-14:06] 29123474Swpaul 30123474Swpaul20140513: p3 FreeBSD-SA-14:10.openssl 31123474Swpaul FreeBSD-EN-14:05.ciss 32123474Swpaul 33123474Swpaul Fix OpenSSL NULL pointer deference vulnerability. [SA-14:10] 34123474Swpaul 35123474Swpaul Fix data corruption with ciss(4). [EN-14:05] 36123474Swpaul 37123474Swpaul20140430: p2 FreeBSD-SA-14:07.devfs 38123474Swpaul FreeBSD-SA-14:08.tcp 39123474Swpaul FreeBSD-SA-14:09.openssl 40123474Swpaul 41123474Swpaul Fix devfs rules not applied by default for jails. [SA-14:07] 42123474Swpaul 43123474Swpaul Fix TCP reassembly vulnerability. [SA-14:08] 44123474Swpaul 45123474Swpaul Fix OpenSSL use-after-free vulnerability. [SA-14:09] 46123474Swpaul 47123474Swpaul20140408: p1 FreeBSD-SA-14:05.nfsserver 48123474Swpaul FreeBSD-SA-14:06.openssl 49123474Swpaul Fix deadlock in the NFS server. [SA-14:05] 50123474Swpaul 51123474Swpaul Fix multiple vulnerabilities in OpenSSL. [SA-14:06] 52123474Swpaul 53123474Swpaul20131223: 54123474Swpaul The behavior of gss_pseudo_random() for the krb5 mechanism 55123474Swpaul has changed, for applications requesting a longer random string 56123474Swpaul than produced by the underlying enctype's pseudo-random() function. 57123474Swpaul In particular, the random string produced from a session key of 58123474Swpaul enctype aes256-cts-hmac-sha1-96 or aes256-cts-hmac-sha1-96 will 59123474Swpaul be different at the 17th octet and later, after this change. 60123474Swpaul The counter used in the PRF+ construction is now encoded as a 61123474Swpaul big-endian integer in accordance with RFC 4402. 62123474Swpaul 63123474Swpaul20131031: 64123504Swpaul The default version of mtree is nmtree which is obtained from 65123848Swpaul NetBSD. The output is generally the same, but may vary 66124122Swpaul slightly. If you found you need identical output adding 67124272Swpaul "-F freebsd9" to the command line should do the trick. For the 68124272Swpaul time being, the old mtree is available as fmtree. 69124272Swpaul 70124272Swpaul20131014: 71123474Swpaul libbsdyml has been renamed to libyaml and moved to /usr/lib/private. 72123474Swpaul This will break ports-mgmt/pkg. Rebuild the port, or upgrade to pkg 73123474Swpaul 1.1.4_8 and verify bsdyml not linked in, before running "make 74123474Swpaul delete-old-libs": 75123474Swpaul # make -C /usr/ports/ports-mgmt/pkg build deinstall install clean 76123474Swpaul or 77123474Swpaul # pkg install pkg; ldd /usr/local/sbin/pkg | grep bsdyml 78124203Swpaul 79123474Swpaul20131010: 80123474Swpaul The rc.d/jail script has been updated to support jail(8) 81123474Swpaul configuration file. The "jail_<jname>_*" rc.conf(5) variables 82123474Swpaul for per-jail configuration are automatically converted to 83123474Swpaul /var/run/jail.<jname>.conf before the jail(8) utility is invoked. 84123474Swpaul This is transparently backward compatible. See below about some 85123474Swpaul incompatibilities and rc.conf(5) manual page for more details. 86123474Swpaul 87123474Swpaul These variables are now deprecated in favor of jail(8) configuration 88123474Swpaul file. One can use "rc.d/jail config <jname>" command to generate 89123695Swpaul a jail(8) configuration file in /var/run/jail.<jname>.conf without 90123695Swpaul running the jail(8) utility. The default pathname of the 91123695Swpaul configuration file is /etc/jail.conf and can be specified by 92123474Swpaul using $jail_conf or $jail_<jname>_conf variables. 93123474Swpaul 94123474Swpaul Please note that jail_devfs_ruleset accepts an integer at 95123474Swpaul this moment. Please consider to rewrite the ruleset name 96123474Swpaul with an integer. 97123512Swpaul 98123474Swpaul20130930: 99123474Swpaul BIND has been removed from the base system. If all you need 100123474Swpaul is a local resolver, simply enable and start the local_unbound 101123474Swpaul service instead. Otherwise, several versions of BIND are 102123474Swpaul available in the ports tree. The dns/bind99 port is one example. 103123474Swpaul 104124409Swpaul With this change, nslookup(1) and dig(1) are no longer in the base 105124272Swpaul system. Users should instead use host(1) and drill(1) which are 106124409Swpaul in the base system. Alternatively, nslookup and dig can 107125057Swpaul be obtained by installing the dns/bind-tools port. 108123474Swpaul 109124272Swpaul20130916: 110124272Swpaul With the addition of unbound(8), a new unbound user is now 111124272Swpaul required during installworld. "mergemaster -p" can be used to 112123474Swpaul add the user prior to installworld, as documented in the handbook. 113123474Swpaul 114123474Swpaul20130911: 115123474Swpaul OpenSSH is now built with DNSSEC support, and will by default 116123474Swpaul silently trust signed SSHFP records. This can be controlled with 117123474Swpaul the VerifyHostKeyDNS client configuration setting. DNSSEC support 118123474Swpaul can be disabled entirely with the WITHOUT_LDNS option in src.conf. 119123474Swpaul 120123474Swpaul20130906: 121123474Swpaul The GNU Compiler Collection and C++ standard library (libstdc++) 122123474Swpaul are no longer built by default on platforms where clang is the system 123123526Swpaul compiler. You can enable them with the WITH_GCC and WITH_GNUCXX 124123526Swpaul options in src.conf. 125123526Swpaul 126123526Swpaul20130905: 127123474Swpaul The PROCDESC kernel option is now part of the GENERIC kernel 128123474Swpaul configuration and is required for the rwhod(8) to work. 129123526Swpaul If you are using custom kernel configuration, you should include 130123526Swpaul 'options PROCDESC'. 131123474Swpaul 132123474Swpaul20130905: 133123526Swpaul The API and ABI related to the Capsicum framework was modified 134123526Swpaul in backward incompatible way. The userland libraries and programs 135123474Swpaul have to be recompiled to work with the new kernel. This includes the 136123474Swpaul following libraries and programs, but the whole buildworld is 137123474Swpaul advised: libc, libprocstat, dhclient, tcpdump, hastd, hastctl, 138123474Swpaul kdump, procstat, rwho, rwhod, uniq. 139123474Swpaul 140123474Swpaul20130903: 141123474Swpaul AES-NI intrinsic support has been added to gcc. The AES-NI module 142123474Swpaul has been updated to use this support. A new gcc is required to build 143123474Swpaul the aesni module on both i386 and amd64. 144123474Swpaul 145123474Swpaul20130821: 146123474Swpaul The PADLOCK_RNG and RDRAND_RNG kernel options are now devices. 147123474Swpaul Thus "device padlock_rng" and "device rdrand_rng" should be 148123474Swpaul used instead of "options PADLOCK_RNG" & "options RDRAND_RNG". 149123474Swpaul 150123474Swpaul20130813: 151125057Swpaul WITH_ICONV has been split into two feature sets. WITH_ICONV now 152125057Swpaul enables just the iconv* functionality and is now on by default. 153123474Swpaul WITH_LIBICONV_COMPAT enables the libiconv api and link time 154123474Swpaul compatability. Set WITHOUT_ICONV to build the old way. 155123474Swpaul If you have been using WITH_ICONV before, you will very likely 156123474Swpaul need to turn on WITH_LIBICONV_COMPAT. 157123474Swpaul 158123474Swpaul20130806: 159123474Swpaul INVARIANTS option now enables DEBUG for code with OpenSolaris and 160123474Swpaul Illumos origin, including ZFS. If you have INVARIANTS in your 161123474Swpaul kernel configuration, then there is no need to set DEBUG or ZFS_DEBUG 162123474Swpaul explicitly. 163123474Swpaul DEBUG used to enable witness(9) tracking of OpenSolaris (mostly ZFS) 164123474Swpaul locks if WITNESS option was set. Because that generated a lot of 165123474Swpaul witness(9) reports and all of them were believed to be false 166123848Swpaul positives, this is no longer done. New option OPENSOLARIS_WITNESS 167123474Swpaul can be used to achieve the previous behavior. 168123474Swpaul 169123474Swpaul20130806: 170123474Swpaul Timer values in IPv6 data structures now use time_uptime instead 171123474Swpaul of time_second. Although this is not a user-visible functional 172123474Swpaul change, userland utilities which directly use them---ndp(8), 173123474Swpaul rtadvd(8), and rtsold(8) in the base system---need to be updated 174123474Swpaul to r253970 or later. 175123474Swpaul 176123474Swpaul20130802: 177123474Swpaul find -delete can now delete the pathnames given as arguments, 178123474Swpaul instead of only files found below them or if the pathname did 179123474Swpaul not contain any slashes. Formerly, the following error message 180123474Swpaul would result: 181123474Swpaul 182123474Swpaul find: -delete: <path>: relative path potentially not safe 183123474Swpaul 184123474Swpaul Deleting the pathnames given as arguments can be prevented 185123474Swpaul without error messages using -mindepth 1 or by changing 186123474Swpaul directory and passing "." as argument to find. This works in the 187123474Swpaul old as well as the new version of find. 188123474Swpaul 189123474Swpaul20130726: 190123474Swpaul Behavior of devfs rules path matching has been changed. 191123474Swpaul Pattern is now always matched against fully qualified devfs 192123474Swpaul path and slash characters must be explicitly matched by 193123474Swpaul slashes in pattern (FNM_PATHNAME). Rulesets involving devfs 194123721Swpaul subdirectories must be reviewed. 195123474Swpaul 196123474Swpaul20130716: 197123474Swpaul The default ARM ABI has changed to the ARM EABI. The old ABI is 198123474Swpaul incompatible with the ARM EABI and all programs and modules will 199123474Swpaul need to be rebuilt to work with a new kernel. 200123474Swpaul 201124100Swpaul To keep using the old ABI ensure the WITHOUT_ARM_EABI knob is set. 202123474Swpaul 203123474Swpaul NOTE: Support for the old ABI will be removed in the future and 204123474Swpaul users are advised to upgrade. 205125069Swpaul 206125069Swpaul20130709: 207123474Swpaul pkg_install has been disconnected from the build if you really need it 208123474Swpaul you should add WITH_PKGTOOLS in your src.conf(5). 209123474Swpaul 210123474Swpaul20130709: 211123474Swpaul Most of network statistics structures were changed to be able 212123474Swpaul keep 64-bits counters. Thus all tools, that work with networking 213123474Swpaul statistics, must be rebuilt (netstat(1), bsnmpd(1), etc.) 214123474Swpaul 215123474Swpaul20130629: 216123526Swpaul Fix targets that run multiple make's to use && rather than ; 217123526Swpaul so that subsequent steps depend on success of previous. 218123474Swpaul 219123474Swpaul NOTE: if building 'universe' with -j* on stable/8 or stable/9 220123474Swpaul it would be better to start the build using bmake, to avoid 221123474Swpaul overloading the machine. 222123474Swpaul 223123474Swpaul20130618: 224123474Swpaul Fix a bug that allowed a tracing process (e.g. gdb) to write 225123474Swpaul to a memory-mapped file in the traced process's address space 226123474Swpaul even if neither the traced process nor the tracing process had 227123474Swpaul write access to that file. 228123573Swpaul 229123474Swpaul20130615: 230123474Swpaul CVS has been removed from the base system. An exact copy 231123474Swpaul of the code is available from the devel/cvs port. 232123474Swpaul 233123474Swpaul20130613: 234123474Swpaul Some people report the following error after the switch to bmake: 235123474Swpaul 236123474Swpaul make: illegal option -- J 237123474Swpaul usage: make [-BPSXeiknpqrstv] [-C directory] [-D variable] 238123474Swpaul ... 239123474Swpaul *** [buildworld] Error code 2 240123474Swpaul 241123474Swpaul this likely due to an old instance of make in 242123474Swpaul ${MAKEPATH} (${MAKEOBJDIRPREFIX}${.CURDIR}/make.${MACHINE}) 243123474Swpaul which src/Makefile will use that blindly, if it exists, so if 244123504Swpaul you see the above error: 245123822Swpaul 246124100Swpaul rm -rf `make -V MAKEPATH` 247123526Swpaul 248123941Swpaul should resolve it. 249123941Swpaul 250123507Swpaul20130516: 251123507Swpaul Use bmake by default. 252123526Swpaul Whereas before one could choose to build with bmake via 253123526Swpaul -DWITH_BMAKE one must now use -DWITHOUT_BMAKE to use the old 254123526Swpaul make. The goal is to remove these knobs for 10-RELEASE. 255123721Swpaul 256123721Swpaul It is worth noting that bmake (like gmake) treats the command 257123721Swpaul line as the unit of failure, rather than statements within the 258123721Swpaul command line. Thus '(cd some/where && dosomething)' is safer 259123822Swpaul than 'cd some/where; dosomething'. The '()' allows consistent 260123822Swpaul behavior in parallel build. 261123822Swpaul 262123822Swpaul20130429: 263123822Swpaul Fix a bug that allows NFS clients to issue READDIR on files. 264123848Swpaul 265124116Swpaul20130426: 266124116Swpaul The WITHOUT_IDEA option has been removed because 267124116Swpaul the IDEA patent expired. 268124697Swpaul 269124122Swpaul20130426: 270124541Swpaul The sysctl which controls TRIM support under ZFS has been renamed 271124541Swpaul from vfs.zfs.trim_disable -> vfs.zfs.trim.enabled and has been 272124541Swpaul enabled by default. 273124541Swpaul 274125057Swpaul20130425: 275125057Swpaul The mergemaster command now uses the default MAKEOBJDIRPREFIX 276125057Swpaul rather than creating it's own in the temporary directory in 277125057Swpaul order allow access to bootstrapped versions of tools such as 278123474Swpaul install and mtree. When upgrading from version of FreeBSD where 279123474Swpaul the install command does not support -l, you will need to 280124116Swpaul install a new mergemaster command if mergemaster -p is required. 281124116Swpaul This can be accomplished with the command (cd src/usr.sbin/mergemaster 282124116Swpaul && make install). 283124116Swpaul 284124116Swpaul20130404: 285124116Swpaul Legacy ATA stack, disabled and replaced by new CAM-based one since 286124116Swpaul FreeBSD 9.0, completely removed from the sources. Kernel modules 287124116Swpaul atadisk and atapi*, user-level tools atacontrol and burncd are 288124116Swpaul removed. Kernel option `options ATA_CAM` is now permanently enabled 289123474Swpaul and removed. 290123474Swpaul 291123474Swpaul20130319: 292123474Swpaul SOCK_CLOEXEC and SOCK_NONBLOCK flags have been added to socket(2) 293124272Swpaul and socketpair(2). Software, in particular Kerberos, may 294124409Swpaul automatically detect and use these during building. The resulting 295124409Swpaul binaries will not work on older kernels. 296124409Swpaul 297123474Swpaul20130308: 298123474Swpaul CTL_DISABLE has also been added to the sparc64 GENERIC (for further 299123474Swpaul information, see the respective 20130304 entry). 300123474Swpaul 301123474Swpaul20130304: 302123474Swpaul Recent commits to callout(9) changed the size of struct callout, 303124409Swpaul so the KBI is probably heavily disturbed. Also, some functions 304123474Swpaul in callout(9)/sleep(9)/sleepqueue(9)/condvar(9) KPIs were replaced 305123474Swpaul by macros. Every kernel module using it won't load, so rebuild 306123474Swpaul is requested. 307123474Swpaul 308123474Swpaul The ctl device has been re-enabled in GENERIC for i386 and amd64, 309123474Swpaul but does not initialize by default (because of the new CTL_DISABLE 310123474Swpaul option) to save memory. To re-enable it, remove the CTL_DISABLE 311123474Swpaul option from the kernel config file or set kern.cam.ctl.disable=0 312123474Swpaul in /boot/loader.conf. 313123474Swpaul 314123474Swpaul20130301: 315123474Swpaul The ctl device has been disabled in GENERIC for i386 and amd64. 316123474Swpaul This was done due to the extra memory being allocated at system 317123474Swpaul initialisation time by the ctl driver which was only used if 318123474Swpaul a CAM target device was created. This makes a FreeBSD system 319123474Swpaul unusable on 128MB or less of RAM. 320123474Swpaul 321123474Swpaul20130208: 322123474Swpaul A new compression method (lz4) has been merged to -HEAD. Please 323123474Swpaul refer to zpool-features(7) for more information. 324123474Swpaul 325123474Swpaul Please refer to the "ZFS notes" section of this file for information 326123474Swpaul on upgrading boot ZFS pools. 327123474Swpaul 328123474Swpaul20130129: 329123474Swpaul A BSD-licensed patch(1) variant has been added and is installed 330123474Swpaul as bsdpatch, being the GNU version the default patch. 331123474Swpaul To inverse the logic and use the BSD-licensed one as default, 332123474Swpaul while having the GNU version installed as gnupatch, rebuild 333123474Swpaul and install world with the WITH_BSD_PATCH knob set. 334123474Swpaul 335123474Swpaul20130121: 336123474Swpaul Due to the use of the new -l option to install(1) during build 337123474Swpaul and install, you must take care not to directly set the INSTALL 338123474Swpaul make variable in your /etc/make.conf, /etc/src.conf, or on the 339123474Swpaul command line. If you wish to use the -C flag for all installs 340123474Swpaul you may be able to add INSTALL+=-C to /etc/make.conf or 341123474Swpaul /etc/src.conf. 342123474Swpaul 343123474Swpaul20130118: 344123474Swpaul The install(1) option -M has changed meaning and now takes an 345123474Swpaul argument that is a file or path to append logs to. In the 346124100Swpaul unlikely event that -M was the last option on the command line 347123474Swpaul and the command line contained at least two files and a target 348123474Swpaul directory the first file will have logs appended to it. The -M 349123474Swpaul option served little practical purpose in the last decade so its 350124100Swpaul use is expected to be extremely rare. 351123474Swpaul 352123474Swpaul20121223: 353123474Swpaul After switching to Clang as the default compiler some users of ZFS 354123474Swpaul on i386 systems started to experience stack overflow kernel panics. 355123474Swpaul Please consider using 'options KSTACK_PAGES=4' in such configurations. 356123474Swpaul 357123474Swpaul20121222: 358123474Swpaul GEOM_LABEL now mangles label names read from file system metadata. 359123474Swpaul Mangling affect labels containing spaces, non-printable characters, 360123474Swpaul '%' or '"'. Device names in /etc/fstab and other places may need to 361123474Swpaul be updated. 362123474Swpaul 363123474Swpaul20121217: 364123474Swpaul By default, only the 10 most recent kernel dumps will be saved. To 365123474Swpaul restore the previous behaviour (no limit on the number of kernel dumps 366123474Swpaul stored in the dump directory) add the following line to /etc/rc.conf: 367123474Swpaul 368123474Swpaul savecore_flags="" 369123474Swpaul 370123474Swpaul20121201: 371123474Swpaul With the addition of auditdistd(8), a new auditdistd user is now 372123474Swpaul required during installworld. "mergemaster -p" can be used to 373123526Swpaul add the user prior to installworld, as documented in the handbook. 374123526Swpaul 375123526Swpaul20121117: 376123526Swpaul The sin6_scope_id member variable in struct sockaddr_in6 is now 377123526Swpaul filled by the kernel before passing the structure to the userland via 378123526Swpaul sysctl or routing socket. This means the KAME-specific embedded scope 379123526Swpaul id in sin6_addr.s6_addr[2] is always cleared in userland application. 380123526Swpaul This behavior can be controlled by net.inet6.ip6.deembed_scopeid. 381123474Swpaul __FreeBSD_version is bumped to 1000025. 382123474Swpaul 383123474Swpaul20121105: 384123474Swpaul On i386 and amd64 systems WITH_CLANG_IS_CC is now the default. 385123474Swpaul This means that the world and kernel will be compiled with clang 386123474Swpaul and that clang will be installed as /usr/bin/cc, /usr/bin/c++, 387123474Swpaul and /usr/bin/cpp. To disable this behavior and revert to building 388123474Swpaul with gcc, compile with WITHOUT_CLANG_IS_CC. Really old versions 389123474Swpaul of current may need to bootstrap WITHOUT_CLANG first if the clang 390123474Swpaul build fails (its compatibility window doesn't extend to the 9 stable 391123474Swpaul branch point). 392123474Swpaul 393123474Swpaul20121102: 394123474Swpaul The IPFIREWALL_FORWARD kernel option has been removed. Its 395123474Swpaul functionality now turned on by default. 396123474Swpaul 397123474Swpaul20121023: 398123474Swpaul The ZERO_COPY_SOCKET kernel option has been removed and 399123474Swpaul split into SOCKET_SEND_COW and SOCKET_RECV_PFLIP. 400123474Swpaul NB: SOCKET_SEND_COW uses the VM page based copy-on-write 401123474Swpaul mechanism which is not safe and may result in kernel crashes. 402123474Swpaul NB: The SOCKET_RECV_PFLIP mechanism is useless as no current 403123474Swpaul driver supports disposeable external page sized mbuf storage. 404123474Swpaul Proper replacements for both zero-copy mechanisms are under 405123474Swpaul consideration and will eventually lead to complete removal 406123474Swpaul of the two kernel options. 407123474Swpaul 408123474Swpaul20121023: 409123474Swpaul The IPv4 network stack has been converted to network byte 410123474Swpaul order. The following modules need to be recompiled together 411123474Swpaul with kernel: carp(4), divert(4), gif(4), siftr(4), gre(4), 412123474Swpaul pf(4), ipfw(4), ng_ipfw(4), stf(4). 413123474Swpaul 414123474Swpaul20121022: 415123474Swpaul Support for non-MPSAFE filesystems was removed from VFS. The 416123474Swpaul VFS_VERSION was bumped, all filesystem modules shall be 417123474Swpaul recompiled. 418123474Swpaul 419123474Swpaul20121018: 420123474Swpaul All the non-MPSAFE filesystems have been disconnected from 421123474Swpaul the build. The full list includes: codafs, hpfs, ntfs, nwfs, 422123474Swpaul portalfs, smbfs, xfs. 423123474Swpaul 424123474Swpaul20121016: 425123474Swpaul The interface cloning API and ABI has changed. The following 426123474Swpaul modules need to be recompiled together with kernel: 427123474Swpaul ipfw(4), pfsync(4), pflog(4), usb(4), wlan(4), stf(4), 428123474Swpaul vlan(4), disc(4), edsc(4), if_bridge(4), gif(4), tap(4), 429123474Swpaul faith(4), epair(4), enc(4), tun(4), if_lagg(4), gre(4). 430123474Swpaul 431123474Swpaul20121015: 432123474Swpaul The sdhci driver was split in two parts: sdhci (generic SD Host 433123474Swpaul Controller logic) and sdhci_pci (actual hardware driver). 434123474Swpaul No kernel config modifications are required, but if you 435123474Swpaul load sdhc as a module you must switch to sdhci_pci instead. 436123474Swpaul 437123474Swpaul20121014: 438123474Swpaul Import the FUSE kernel and userland support into base system. 439123474Swpaul 440123474Swpaul20121013: 441123474Swpaul The GNU sort(1) program has been removed since the BSD-licensed 442123474Swpaul sort(1) has been the default for quite some time and no serious 443123474Swpaul problems have been reported. The corresponding WITH_GNU_SORT 444123474Swpaul knob has also gone. 445123474Swpaul 446123474Swpaul20121006: 447123474Swpaul The pfil(9) API/ABI for AF_INET family has been changed. Packet 448123474Swpaul filtering modules: pf(4), ipfw(4), ipfilter(4) need to be recompiled 449123474Swpaul with new kernel. 450123474Swpaul 451123474Swpaul20121001: 452123474Swpaul The net80211(4) ABI has been changed to allow for improved driver 453123474Swpaul PS-POLL and power-save support. All wireless drivers need to be 454123474Swpaul recompiled to work with the new kernel. 455123474Swpaul 456123474Swpaul20120913: 457123474Swpaul The random(4) support for the VIA hardware random number 458123474Swpaul generator (`PADLOCK') is no longer enabled unconditionally. 459123474Swpaul Add the padlock_rng device in the custom kernel config if 460123474Swpaul needed. The GENERIC kernels on i386 and amd64 do include the 461123474Swpaul device, so the change only affects the custom kernel 462123474Swpaul configurations. 463123474Swpaul 464123474Swpaul20120908: 465123474Swpaul The pf(4) packet filter ABI has been changed. pfctl(8) and 466123474Swpaul snmp_pf module need to be recompiled to work with new kernel. 467123474Swpaul 468123474Swpaul20120828: 469123474Swpaul A new ZFS feature flag "com.delphix:empty_bpobj" has been merged 470123474Swpaul to -HEAD. Pools that have empty_bpobj in active state can not be 471123474Swpaul imported read-write with ZFS implementations that do not support 472123474Swpaul this feature. For more information read the zpool-features(5) 473123526Swpaul manual page. 474123526Swpaul 475123526Swpaul20120727: 476123526Swpaul The sparc64 ZFS loader has been changed to no longer try to auto- 477123526Swpaul detect ZFS providers based on diskN aliases but now requires these 478123526Swpaul to be explicitly listed in the OFW boot-device environment variable. 479123526Swpaul 480123526Swpaul20120712: 481123526Swpaul The OpenSSL has been upgraded to 1.0.1c. Any binaries requiring 482123526Swpaul libcrypto.so.6 or libssl.so.6 must be recompiled. Also, there are 483123526Swpaul configuration changes. Make sure to merge /etc/ssl/openssl.cnf. 484123526Swpaul 485123526Swpaul20120712: 486123526Swpaul The following sysctls and tunables have been renamed for consistency 487123526Swpaul with other variables: 488123526Swpaul kern.cam.da.da_send_ordered -> kern.cam.da.send_ordered 489123526Swpaul kern.cam.ada.ada_send_ordered -> kern.cam.ada.send_ordered 490123526Swpaul 491123526Swpaul20120628: 492123526Swpaul The sort utility has been replaced with BSD sort. For now, GNU sort 493123526Swpaul is also available as "gnusort" or the default can be set back to 494123526Swpaul GNU sort by setting WITH_GNU_SORT. In this case, BSD sort will be 495123526Swpaul installed as "bsdsort". 496123526Swpaul 497123474Swpaul20120611: 498123474Swpaul A new version of ZFS (pool version 5000) has been merged to -HEAD. 499123474Swpaul Starting with this version the old system of ZFS pool versioning 500123474Swpaul is superseded by "feature flags". This concept enables forward 501123474Swpaul compatibility against certain future changes in functionality of ZFS 502123474Swpaul pools. The first read-only compatible "feature flag" for ZFS pools 503123474Swpaul is named "com.delphix:async_destroy". For more information 504123474Swpaul read the new zpool-features(5) manual page. 505123474Swpaul Please refer to the "ZFS notes" section of this file for information 506123474Swpaul on upgrading boot ZFS pools. 507123474Swpaul 508123474Swpaul20120417: 509123474Swpaul The malloc(3) implementation embedded in libc now uses sources imported 510123474Swpaul as contrib/jemalloc. The most disruptive API change is to 511123474Swpaul /etc/malloc.conf. If your system has an old-style /etc/malloc.conf, 512123474Swpaul delete it prior to installworld, and optionally re-create it using the 513123474Swpaul new format after rebooting. See malloc.conf(5) for details 514123474Swpaul (specifically the TUNING section and the "opt.*" entries in the MALLCTL 515123474Swpaul NAMESPACE section). 516123474Swpaul 517123474Swpaul20120328: 518123474Swpaul Big-endian MIPS TARGET_ARCH values no longer end in "eb". mips64eb 519123474Swpaul is now spelled mips64. mipsn32eb is now spelled mipsn32. mipseb is 520123474Swpaul now spelled mips. This is to aid compatibility with third-party 521123474Swpaul software that expects this naming scheme in uname(3). Little-endian 522123474Swpaul settings are unchanged. If you are updating a big-endian mips64 machine 523123474Swpaul from before this change, you may need to set MACHINE_ARCH=mips64 in 524123474Swpaul your environment before the new build system will recognize your machine. 525123474Swpaul 526123474Swpaul20120306: 527123474Swpaul Disable by default the option VFS_ALLOW_NONMPSAFE for all supported 528123474Swpaul platforms. 529123474Swpaul 530123474Swpaul20120229: 531123474Swpaul Now unix domain sockets behave "as expected" on nullfs(5). Previously 532123474Swpaul nullfs(5) did not pass through all behaviours to the underlying layer, 533123474Swpaul as a result if we bound to a socket on the lower layer we could connect 534123474Swpaul only to the lower path; if we bound to the upper layer we could connect 535123474Swpaul only to the upper path. The new behavior is one can connect to both the 536123474Swpaul lower and the upper paths regardless what layer path one binds to. 537123474Swpaul 538123474Swpaul20120211: 539123474Swpaul The getifaddrs upgrade path broken with 20111215 has been restored. 540123474Swpaul If you have upgraded in between 20111215 and 20120209 you need to 541123474Swpaul recompile libc again with your kernel. You still need to recompile 542123474Swpaul world to be able to configure CARP but this restriction already 543123474Swpaul comes from 20111215. 544123474Swpaul 545123474Swpaul20120114: 546123474Swpaul The set_rcvar() function has been removed from /etc/rc.subr. All 547123474Swpaul base and ports rc.d scripts have been updated, so if you have a 548123474Swpaul port installed with a script in /usr/local/etc/rc.d you can either 549123474Swpaul hand-edit the rcvar= line, or reinstall the port. 550123474Swpaul 551123474Swpaul An easy way to handle the mass-update of /etc/rc.d: 552123474Swpaul rm /etc/rc.d/* && mergemaster -i 553124100Swpaul 554124100Swpaul20120109: 555124100Swpaul panic(9) now stops other CPUs in the SMP systems, disables interrupts 556124100Swpaul on the current CPU and prevents other threads from running. 557124100Swpaul This behavior can be reverted using the kern.stop_scheduler_on_panic 558123474Swpaul tunable/sysctl. 559123474Swpaul The new behavior can be incompatible with kern.sync_on_panic. 560123474Swpaul 561123474Swpaul20111215: 562123474Swpaul The carp(4) facility has been changed significantly. Configuration 563123474Swpaul of the CARP protocol via ifconfig(8) has changed, as well as format 564123474Swpaul of CARP events submitted to devd(8) has changed. See manual pages 565123474Swpaul for more information. The arpbalance feature of carp(4) is currently 566123474Swpaul not supported anymore. 567123474Swpaul 568123474Swpaul Size of struct in_aliasreq, struct in6_aliasreq has changed. User 569123474Swpaul utilities using SIOCAIFADDR, SIOCAIFADDR_IN6, e.g. ifconfig(8), 570123474Swpaul need to be recompiled. 571123488Swpaul 572123488Swpaul20111122: 573123488Swpaul The acpi_wmi(4) status device /dev/wmistat has been renamed to 574123488Swpaul /dev/wmistat0. 575123488Swpaul 576123474Swpaul20111108: 577123474Swpaul The option VFS_ALLOW_NONMPSAFE option has been added in order to 578123474Swpaul explicitely support non-MPSAFE filesystems. 579123474Swpaul It is on by default for all supported platform at this present 580123474Swpaul time. 581123474Swpaul 582123474Swpaul20111101: 583123474Swpaul The broken amd(4) driver has been replaced with esp(4) in the amd64, 584123474Swpaul i386 and pc98 GENERIC kernel configuration files. 585123474Swpaul 586123474Swpaul20110930: 587123474Swpaul sysinstall has been removed 588123474Swpaul 589123474Swpaul20110923: 590123474Swpaul The stable/9 branch created in subversion. This corresponds to the 591123474Swpaul RELENG_9 branch in CVS. 592123474Swpaul 593123474Swpaul20110913: 594123474Swpaul This commit modifies vfs_register() so that it uses a hash 595123488Swpaul calculation to set vfc_typenum, which is enabled by default. 596123488Swpaul The first time a system is booted after this change, the 597123474Swpaul vfc_typenum values will change for all file systems. The 598123488Swpaul main effect of this is a change to the NFS server file handles 599123488Swpaul for file systems that use vfc_typenum in their fsid, such as ZFS. 600123474Swpaul It will, however, prevent vfc_typenum from changing when file 601123474Swpaul systems are loaded in a different order for subsequent reboots. 602123474Swpaul To disable this, you can set vfs.typenumhash=0 in /boot/loader.conf 603123474Swpaul until you are ready to remount all NFS clients after a reboot. 604123474Swpaul 605123474Swpaul20110828: 606123526Swpaul Bump the shared library version numbers for libraries that 607123526Swpaul do not use symbol versioning, have changed the ABI compared 608123526Swpaul to stable/8 and which shared library version was not bumped. 609123526Swpaul Done as part of 9.0-RELEASE cycle. 610123526Swpaul 611123526Swpaul20110815: 612123526Swpaul During the merge of Capsicum features, the fget(9) KPI was modified. 613124697Swpaul This may require the rebuilding of out-of-tree device drivers -- 614123526Swpaul issues have been reported specifically with the nVidia device driver. 615123526Swpaul __FreeBSD_version is bumped to 900041. 616123526Swpaul 617123526Swpaul Also, there is a period between 20110811 and 20110814 where the 618124697Swpaul special devices /dev/{stdin,stdout,stderr} did not work correctly. 619124697Swpaul Building world from a kernel during that window may not work. 620124697Swpaul 621123526Swpaul20110628: 622123526Swpaul The packet filter (pf) code has been updated to OpenBSD 4.5. 623124697Swpaul You need to update userland tools to be in sync with kernel. 624123526Swpaul This update breaks backward compatibility with earlier pfsync(4) 625123526Swpaul versions. Care must be taken when updating redundant firewall setups. 626123526Swpaul 627123526Swpaul20110608: 628123526Swpaul The following sysctls and tunables are retired on x86 platforms: 629123526Swpaul machdep.hlt_cpus 630123526Swpaul machdep.hlt_logical_cpus 631123526Swpaul The following sysctl is retired: 632123526Swpaul machdep.hyperthreading_allowed 633123526Swpaul The sysctls were supposed to provide a way to dynamically offline and 634123526Swpaul online selected CPUs on x86 platforms, but the implementation has not 635123474Swpaul been reliable especially with SCHED_ULE scheduler. 636123526Swpaul machdep.hyperthreading_allowed tunable is still available to ignore 637123526Swpaul hyperthreading CPUs at OS level. 638123526Swpaul Individual CPUs can be disabled using hint.lapic.X.disabled tunable, 639123526Swpaul where X is an APIC ID of a CPU. Be advised, though, that disabling 640123526Swpaul CPUs in non-uniform fashion will result in non-uniform topology and 641123526Swpaul may lead to sub-optimal system performance with SCHED_ULE, which is 642123526Swpaul a default scheduler. 643123526Swpaul 644123526Swpaul20110607: 645123526Swpaul cpumask_t type is retired and cpuset_t is used in order to describe 646123526Swpaul a mask of CPUs. 647123526Swpaul 648123526Swpaul20110531: 649123526Swpaul Changes to ifconfig(8) for dynamic address family detection mandate 650123526Swpaul that you are running a kernel of 20110525 or later. Make sure to 651123526Swpaul follow the update procedure to boot a new kernel before installing 652123526Swpaul world. 653123526Swpaul 654123526Swpaul20110513: 655124697Swpaul Support for sun4v architecture is officially dropped 656123526Swpaul 657123526Swpaul20110503: 658123526Swpaul Several KPI breaking changes have been committed to the mii(4) layer, 659123526Swpaul the PHY drivers and consequently some Ethernet drivers using mii(4). 660123526Swpaul This means that miibus.ko and the modules of the affected Ethernet 661123526Swpaul drivers need to be recompiled. 662123526Swpaul 663123526Swpaul Note to kernel developers: Given that the OUI bit reversion problem 664123526Swpaul was fixed as part of these changes all mii(4) commits related to OUIs, 665123526Swpaul i.e. to sys/dev/mii/miidevs, PHY driver probing and vendor specific 666123526Swpaul handling, no longer can be merged verbatim to stable/8 and previous 667123526Swpaul branches. 668123526Swpaul 669123526Swpaul20110430: 670123526Swpaul Users of the Atheros AR71xx SoC code now need to add 'device ar71xx_pci' 671123526Swpaul into their kernel configurations along with 'device pci'. 672123526Swpaul 673123526Swpaul20110427: 674123526Swpaul The default NFS client is now the new NFS client, so fstype "newnfs" 675123526Swpaul is now "nfs" and the regular/old NFS client is now fstype "oldnfs". 676123526Swpaul Although mounts via fstype "nfs" will usually work without userland 677123526Swpaul changes, it is recommended that the mount(8) and mount_nfs(8) 678123526Swpaul commands be rebuilt from sources and that a link to mount_nfs called 679123526Swpaul mount_oldnfs be created. The new client is compiled into the 680123526Swpaul kernel with "options NFSCL" and this is needed for diskless root 681123526Swpaul file systems. The GENERIC kernel configs have been changed to use 682123526Swpaul NFSCL and NFSD (the new server) instead of NFSCLIENT and NFSSERVER. 683123526Swpaul To use the regular/old client, you can "mount -t oldnfs ...". For 684123474Swpaul a diskless root file system, you must also include a line like: 685123474Swpaul 686123474Swpaul vfs.root.mountfrom="oldnfs:" 687123474Swpaul 688123474Swpaul in the boot/loader.conf on the root fs on the NFS server to make 689123474Swpaul a diskless root fs use the old client. 690123474Swpaul 691123474Swpaul20110424: 692123474Swpaul The GENERIC kernels for all architectures now default to the new 693123474Swpaul CAM-based ATA stack. It means that all legacy ATA drivers were 694124409Swpaul removed and replaced by respective CAM drivers. If you are using 695123474Swpaul ATA device names in /etc/fstab or other places, make sure to update 696123474Swpaul them respectively (adX -> adaY, acdX -> cdY, afdX -> daY, astX -> saY, 697123474Swpaul where 'Y's are the sequential numbers starting from zero for each type 698123474Swpaul in order of detection, unless configured otherwise with tunables, 699123474Swpaul see cam(4)). There will be symbolic links created in /dev/ to map 700123474Swpaul old adX devices to the respective adaY. They should provide basic 701123474Swpaul compatibility for file systems mounting in most cases, but they do 702124409Swpaul not support old user-level APIs and do not have respective providers 703123474Swpaul in GEOM. Consider using updated management tools with new device names. 704123474Swpaul 705123474Swpaul It is possible to load devices ahci, ata, siis and mvs as modules, 706123474Swpaul but option ATA_CAM should remain in kernel configuration to make ata 707123474Swpaul module work as CAM driver supporting legacy ATA controllers. Device ata 708123474Swpaul still can be used in modular fashion (atacore + ...). Modules atadisk 709123474Swpaul and atapi* are not used and won't affect operation in ATA_CAM mode. 710124409Swpaul Note that to use CAM-based ATA kernel should include CAM devices 711123474Swpaul scbus, pass, da (or explicitly ada), cd and optionally others. All of 712123474Swpaul them are parts of the cam module. 713123474Swpaul 714123474Swpaul ataraid(4) functionality is now supported by the RAID GEOM class. 715123474Swpaul To use it you can load geom_raid kernel module and use graid(8) tool 716123474Swpaul for management. Instead of /dev/arX device names, use /dev/raid/rX. 717123474Swpaul 718124409Swpaul No kernel config options or code have been removed, so if a problem 719123474Swpaul arises, please report it and optionally revert to the old ATA stack. 720123474Swpaul In order to do it you can remove from the kernel config: 721123474Swpaul options ATA_CAM 722123474Swpaul device ahci 723123474Swpaul device mvs 724123474Swpaul device siis 725123474Swpaul , and instead add back: 726123474Swpaul device atadisk # ATA disk drives 727123474Swpaul device ataraid # ATA RAID drives 728123474Swpaul device atapicd # ATAPI CDROM drives 729123474Swpaul device atapifd # ATAPI floppy drives 730123474Swpaul device atapist # ATAPI tape drives 731123474Swpaul 732123474Swpaul20110423: 733123474Swpaul The default NFS server has been changed to the new server, which 734123474Swpaul was referred to as the experimental server. If you need to switch 735123474Swpaul back to the old NFS server, you must now put the "-o" option on 736123474Swpaul both the mountd and nfsd commands. This can be done using the 737123474Swpaul mountd_flags and nfs_server_flags rc.conf variables until an 738123474Swpaul update to the rc scripts is committed, which is coming soon. 739123474Swpaul 740123474Swpaul20110418: 741123474Swpaul The GNU Objective-C runtime library (libobjc), and other Objective-C 742123474Swpaul related components have been removed from the base system. If you 743123474Swpaul require an Objective-C library, please use one of the available ports. 744123474Swpaul 745123474Swpaul20110331: 746123474Swpaul ath(4) has been split into bus- and device- modules. if_ath contains 747123474Swpaul the HAL, the TX rate control and the network device code. if_ath_pci 748123474Swpaul contains the PCI bus glue. For Atheros MIPS embedded systems, if_ath_ahb 749123474Swpaul contains the AHB glue. Users need to load both if_ath_pci and if_ath 750123474Swpaul in order to use ath on everything else. 751123474Swpaul 752123474Swpaul TO REPEAT: if_ath_ahb is not needed for normal users. Normal users only 753123474Swpaul need to load if_ath and if_ath_pci for ath(4) operation. 754123474Swpaul 755123474Swpaul20110314: 756123474Swpaul As part of the replacement of sysinstall, the process of building 757123474Swpaul release media has changed significantly. For details, please re-read 758123474Swpaul release(7), which has been updated to reflect the new build process. 759123474Swpaul 760123474Swpaul20110218: 761123474Swpaul GNU binutils 2.17.50 (as of 2007-07-03) has been merged to -HEAD. This 762123474Swpaul is the last available version under GPLv2. It brings a number of new 763123474Swpaul features, such as support for newer x86 CPU's (with SSE-3, SSSE-3, SSE 764123474Swpaul 4.1 and SSE 4.2), better support for powerpc64, a number of new 765123474Swpaul directives, and lots of other small improvements. See the ChangeLog 766123474Swpaul file in contrib/binutils for the full details. 767123474Swpaul 768123474Swpaul20110218: 769123474Swpaul IPsec's HMAC_SHA256-512 support has been fixed to be RFC4868 770123474Swpaul compliant, and will now use half of hash for authentication. 771123474Swpaul This will break interoperability with all stacks (including all 772123474Swpaul actual FreeBSD versions) who implement 773124228Swpaul draft-ietf-ipsec-ciph-sha-256-00 (they use 96 bits of hash for 774123474Swpaul authentication). 775123474Swpaul The only workaround with such peers is to use another HMAC 776123474Swpaul algorithm for IPsec ("phase 2") authentication. 777123474Swpaul 778123474Swpaul20110207: 779123474Swpaul Remove the uio_yield prototype and symbol. This function has 780124173Swpaul been misnamed since it was introduced and should not be 781124173Swpaul globally exposed with this name. The equivalent functionality 782124173Swpaul is now available using kern_yield(curthread->td_user_pri). 783124228Swpaul The function remains undocumented. 784123474Swpaul 785123474Swpaul20110112: 786123474Swpaul A SYSCTL_[ADD_]UQUAD was added for unsigned uint64_t pointers, 787124173Swpaul symmetric with the existing SYSCTL_[ADD_]QUAD. Type checking 788124173Swpaul for scalar sysctls is defined but disabled. Code that needs 789124228Swpaul UQUAD to pass the type checking that must compile on older 790124228Swpaul systems where the define is not present can check against 791124228Swpaul __FreeBSD_version >= 900030. 792124173Swpaul 793124173Swpaul The system dialog(1) has been replaced with a new version previously 794124165Swpaul in ports as devel/cdialog. dialog(1) is mostly command-line compatible 795124165Swpaul with the previous version, but the libdialog associated with it has 796124060Swpaul a largely incompatible API. As such, the original version of libdialog 797123474Swpaul will be kept temporarily as libodialog, until its base system consumers 798123474Swpaul are replaced or updated. Bump __FreeBSD_version to 900030. 799123474Swpaul 800124060Swpaul20110103: 801124060Swpaul If you are trying to run make universe on a -stable system, and you get 802123474Swpaul the following warning: 803123474Swpaul "Makefile", line 356: "Target architecture for i386/conf/GENERIC 804123474Swpaul unknown. config(8) likely too old." 805123474Swpaul or something similar to it, then you must upgrade your -stable system 806123474Swpaul to 8.2-Release or newer (really, any time after r210146 7/15/2010 in 807123474Swpaul stable/8) or build the config from the latest stable/8 branch and 808123474Swpaul install it on your system. 809123474Swpaul 810123474Swpaul Prior to this date, building a current universe on 8-stable system from 811123474Swpaul between 7/15/2010 and 1/2/2011 would result in a weird shell parsing 812123474Swpaul error in the first kernel build phase. A new config on those old 813123474Swpaul systems will fix that problem for older versions of -current. 814123474Swpaul 815123474Swpaul20101228: 816123474Swpaul The TCP stack has been modified to allow Khelp modules to interact with 817123474Swpaul it via helper hook points and store per-connection data in the TCP 818123474Swpaul control block. Bump __FreeBSD_version to 900029. User space tools that 819123474Swpaul rely on the size of struct tcpcb in tcp_var.h (e.g. sockstat) need to 820123474Swpaul be recompiled. 821123474Swpaul 822123474Swpaul20101114: 823123474Swpaul Generic IEEE 802.3 annex 31B full duplex flow control support has been 824123474Swpaul added to mii(4) and bge(4), bce(4), msk(4), nfe(4) and stge(4) along 825123474Swpaul with brgphy(4), e1000phy(4) as well as ip1000phy() have been converted 826123474Swpaul to take advantage of it instead of using custom implementations. This 827123474Swpaul means that these drivers now no longer unconditionally advertise 828123474Swpaul support for flow control but only do so if flow control is a selected 829123474Swpaul media option. This was implemented in the generic support that way in 830123474Swpaul order to allow flow control to be switched on and off via ifconfig(8) 831123474Swpaul with the PHY specific default to typically off in order to protect 832123474Swpaul from unwanted effects. Consequently, if you used flow control with 833123474Swpaul one of the above mentioned drivers you now need to explicitly enable 834123474Swpaul it, for example via: 835123474Swpaul ifconfig bge0 media auto mediaopt flowcontrol 836123474Swpaul 837123474Swpaul Along with the above mentioned changes generic support for setting 838123474Swpaul 1000baseT master mode also has been added and brgphy(4), ciphy(4), 839123474Swpaul e1000phy(4) as well as ip1000phy(4) have been converted to take 840123474Swpaul advantage of it. This means that these drivers now no longer take the 841123474Swpaul link0 parameter for selecting master mode but the master media option 842123474Swpaul has to be used instead, for example like in the following: 843123474Swpaul ifconfig bge0 media 1000baseT mediaopt full-duplex,master 844123474Swpaul 845123474Swpaul Selection of master mode now is also available with all other PHY 846123474Swpaul drivers supporting 1000baseT. 847123474Swpaul 848123474Swpaul20101111: 849123474Swpaul The TCP stack has received a significant update to add support for 850123474Swpaul modularised congestion control and generally improve the clarity of 851123474Swpaul congestion control decisions. Bump __FreeBSD_version to 900025. User 852123474Swpaul space tools that rely on the size of struct tcpcb in tcp_var.h (e.g. 853123474Swpaul sockstat) need to be recompiled. 854123474Swpaul 855123474Swpaul20101002: 856123474Swpaul The man(1) utility has been replaced by a new version that no longer 857123474Swpaul uses /etc/manpath.config. Please consult man.conf(5) for how to 858123474Swpaul migrate local entries to the new format. 859123474Swpaul 860123757Swpaul20100928: 861123474Swpaul The copyright strings printed by login(1) and sshd(8) at the time of a 862123474Swpaul new connection have been removed to follow other operating systems and 863123474Swpaul upstream sshd. 864123474Swpaul 865123474Swpaul20100915: 866123474Swpaul A workaround for a fixed ld bug has been removed in kernel code, 867123474Swpaul so make sure that your system ld is built from sources after 868123474Swpaul revision 210245 from 2010-07-19 (r211583 if building head kernel 869123474Swpaul on stable/8, r211584 for stable/7; both from 2010-08-21). 870123474Swpaul A symptom of incorrect ld version is different addresses for 871123474Swpaul set_pcpu section and __start_set_pcpu symbol in kernel and/or modules. 872123474Swpaul 873123474Swpaul20100913: 874123474Swpaul The $ipv6_prefer variable in rc.conf(5) has been split into 875123474Swpaul $ip6addrctl_policy and $ipv6_activate_all_interfaces. 876123474Swpaul 877123474Swpaul The $ip6addrctl_policy is a variable to choose a pre-defined 878123474Swpaul address selection policy set by ip6addrctl(8). A value 879123474Swpaul "ipv4_prefer", "ipv6_prefer" or "AUTO" can be specified. The 880123474Swpaul default is "AUTO". 881123474Swpaul 882123474Swpaul The $ipv6_activate_all_interfaces specifies whether IFDISABLED 883123474Swpaul flag (see an entry of 20090926) is set on an interface with no 884123474Swpaul corresponding $ifconfig_IF_ipv6 line. The default is "NO" for 885123474Swpaul security reason. If you want IPv6 link-local address on all 886123474Swpaul interfaces by default, set this to "YES". 887123474Swpaul 888123474Swpaul The old ipv6_prefer="YES" is equivalent to 889123474Swpaul ipv6_activate_all_interfaces="YES" and 890123474Swpaul ip6addrctl_policy="ipv6_prefer". 891123474Swpaul 892123474Swpaul20100913: 893123474Swpaul DTrace has grown support for userland tracing. Due to this, DTrace is 894123474Swpaul now i386 and amd64 only. 895123474Swpaul dtruss(1) is now installed by default on those systems and a new 896123474Swpaul kernel module is needed for userland tracing: fasttrap. 897123474Swpaul No changes to your kernel config file are necessary to enable 898123474Swpaul userland tracing, but you might consider adding 'STRIP=' and 899123474Swpaul 'CFLAGS+=-fno-omit-frame-pointer' to your make.conf if you want 900123474Swpaul to have informative userland stack traces in DTrace (ustack). 901123474Swpaul 902123474Swpaul20100725: 903125057Swpaul The acpi_aiboost(4) driver has been removed in favor of the new 904125057Swpaul aibs(4) driver. You should update your kernel configuration file. 905125057Swpaul 906125057Swpaul20100722: 907125057Swpaul BSD grep has been imported to the base system and it is built by 908125057Swpaul default. It is completely BSD licensed, highly GNU-compatible, uses 909125057Swpaul less memory than its GNU counterpart and has a small codebase. 910125057Swpaul However, it is slower than its GNU counterpart, which is mostly 911125057Swpaul noticeable for larger searches, for smaller ones it is measurable 912125057Swpaul but not significant. The reason is complex, the most important factor 913125057Swpaul is that we lack a modern and efficient regex library and GNU 914125057Swpaul overcomes this by optimizing the searches internally. Future work 915123474Swpaul on improving the regex performance is planned, for the meantime, 916125057Swpaul users that need better performance, can build GNU grep instead by 917125057Swpaul setting the WITH_GNU_GREP knob. 918125057Swpaul 919125057Swpaul20100713: 920125057Swpaul Due to the import of powerpc64 support, all existing powerpc kernel 921125057Swpaul configuration files must be updated with a machine directive like this: 922125057Swpaul machine powerpc powerpc 923125057Swpaul 924125057Swpaul In addition, an updated config(8) is required to build powerpc kernels 925125057Swpaul after this change. 926125057Swpaul 927125057Swpaul20100713: 928125057Swpaul A new version of ZFS (version 15) has been merged to -HEAD. 929125057Swpaul This version uses a python library for the following subcommands: 930125057Swpaul zfs allow, zfs unallow, zfs groupspace, zfs userspace. 931125057Swpaul For full functionality of these commands the following port must 932125057Swpaul be installed: sysutils/py-zfs 933125057Swpaul 934125057Swpaul20100429: 935125057Swpaul 'vm_page's are now hashed by physical address to an array of mutexes. 936125057Swpaul Currently this is only used to serialize access to hold_count. Over 937125057Swpaul time the page queue mutex will be peeled away. This changes the size 938125057Swpaul of pmap on every architecture. And requires all callers of vm_page_hold 939125057Swpaul and vm_page_unhold to be updated. 940125057Swpaul 941125057Swpaul20100402: 942125057Swpaul WITH_CTF can now be specified in src.conf (not recommended, there 943125057Swpaul are some problems with static executables), make.conf (would also 944125057Swpaul affect ports which do not use GNU make and do not override the 945125057Swpaul compile targets) or in the kernel config (via "makeoptions 946125057Swpaul WITH_CTF=yes"). 947123474Swpaul When WITH_CTF was specified there before this was silently ignored, 948123474Swpaul so make sure that WITH_CTF is not used in places which could lead 949123474Swpaul to unwanted behavior. 950123474Swpaul 951123474Swpaul20100311: 952123474Swpaul The kernel option COMPAT_IA32 has been replaced with COMPAT_FREEBSD32 953123821Swpaul to allow 32-bit compatibility on non-x86 platforms. All kernel 954123821Swpaul configurations on amd64 and ia64 platforms using these options must 955123821Swpaul be modified accordingly. 956123474Swpaul 957123821Swpaul20100113: 958123832Swpaul The utmp user accounting database has been replaced with utmpx, 959123821Swpaul the user accounting interface standardized by POSIX. 960123821Swpaul Unfortunately the semantics of utmp and utmpx don't match, 961123821Swpaul making it practically impossible to support both interfaces. 962123821Swpaul The user accounting database is used by tools like finger(1), 963125057Swpaul last(1), talk(1), w(1) and ac(8). 964125057Swpaul 965125057Swpaul All applications in the base system use utmpx. This means only 966123474Swpaul local binaries (e.g. from the ports tree) may still use these 967123474Swpaul utmp database files. These applications must be rebuilt to make 968123474Swpaul use of utmpx. 969123474Swpaul 970123474Swpaul After the system has been upgraded, it is safe to remove the old 971123474Swpaul log files (/var/run/utmp, /var/log/lastlog and /var/log/wtmp*), 972123474Swpaul assuming their contents is of no importance anymore. Old wtmp 973123474Swpaul databases can only be used by last(1) and ac(8) after they have 974123474Swpaul been converted to the new format using wtmpcvt(1). 975123474Swpaul 976123474Swpaul20100108: 977123474Swpaul Introduce the kernel thread "deadlock resolver" (which can be enabled 978123474Swpaul via the DEADLKRES option, see NOTES for more details) and the 979123474Swpaul sleepq_type() function for sleepqueues. 980123474Swpaul 981123474Swpaul20091202: 982123474Swpaul The rc.firewall and rc.firewall6 were unified, and 983123474Swpaul rc.firewall6 and rc.d/ip6fw were removed. 984123821Swpaul According to the removal of rc.d/ip6fw, ipv6_firewall_* rc 985125057Swpaul variables are obsoleted. Instead, the following new rc 986125057Swpaul variables are added to rc.d/ipfw: 987123474Swpaul 988123474Swpaul firewall_client_net_ipv6, firewall_simple_iif_ipv6, 989123474Swpaul firewall_simple_inet_ipv6, firewall_simple_oif_ipv6, 990123474Swpaul firewall_simple_onet_ipv6, firewall_trusted_ipv6 991123474Swpaul 992123474Swpaul The meanings correspond to the relevant IPv4 variables. 993123474Swpaul 994123474Swpaul20091125: 995123474Swpaul 8.0-RELEASE. 996123474Swpaul 997123474Swpaul20091113: 998123474Swpaul The default terminal emulation for syscons(4) has been changed 999123474Swpaul from cons25 to xterm on all platforms except pc98. This means 1000123474Swpaul that the /etc/ttys file needs to be updated to ensure correct 1001123474Swpaul operation of applications on the console. 1002123832Swpaul 1003123474Swpaul The terminal emulation style can be toggled per window by using 1004123474Swpaul vidcontrol(1)'s -T flag. The TEKEN_CONS25 kernel configuration 1005123474Swpaul options can be used to change the compile-time default back to 1006123474Swpaul cons25. 1007123474Swpaul 1008125057Swpaul To prevent graphical artifacts, make sure the TERM environment 1009123474Swpaul variable is set to match the terminal emulation that is being 1010123821Swpaul performed by syscons(4). 1011123832Swpaul 1012123474Swpaul20091109: 1013123474Swpaul The layout of the structure ieee80211req_scan_result has changed. 1014123474Swpaul Applications that require wireless scan results (e.g. ifconfig(8)) 1015123474Swpaul from net80211 need to be recompiled. 1016123474Swpaul 1017123474Swpaul Applications such as wpa_supplicant(8) may require a full world 1018123474Swpaul build without using NO_CLEAN in order to get synchronized with the 1019123474Swpaul new structure. 1020123474Swpaul 1021123832Swpaul20091025: 1022123474Swpaul The iwn(4) driver has been updated to support the 5000 and 5150 series. 1023123474Swpaul There's one kernel module for each firmware. Adding "device iwnfw" 1024123474Swpaul to the kernel configuration file means including all three firmware 1025123474Swpaul images inside the kernel. If you want to include just the one for 1026123474Swpaul your wireless card, use the devices iwn4965fw, iwn5000fw or 1027123821Swpaul iwn5150fw. 1028125057Swpaul 1029125057Swpaul20090926: 1030123474Swpaul The rc.d/network_ipv6, IPv6 configuration script has been integrated 1031123474Swpaul into rc.d/netif. The changes are the following: 1032123474Swpaul 1033123474Swpaul 1. To use IPv6, simply define $ifconfig_IF_ipv6 like $ifconfig_IF 1034123474Swpaul for IPv4. For aliases, $ifconfig_IF_aliasN should be used. 1035125057Swpaul Note that both variables need the "inet6" keyword at the head. 1036123821Swpaul 1037123474Swpaul Do not set $ipv6_network_interfaces manually if you do not 1038123832Swpaul understand what you are doing. It is not needed in most cases. 1039123474Swpaul 1040123474Swpaul $ipv6_ifconfig_IF and $ipv6_ifconfig_IF_aliasN still work, but 1041123474Swpaul they are obsolete. 1042123474Swpaul 1043123474Swpaul 2. $ipv6_enable is obsolete. Use $ipv6_prefer and 1044123474Swpaul "inet6 accept_rtadv" keyword in ifconfig(8) instead. 1045123474Swpaul 1046123474Swpaul If you define $ipv6_enable=YES, it means $ipv6_prefer=YES and 1047123474Swpaul all configured interfaces have "inet6 accept_rtadv" in the 1048123832Swpaul $ifconfig_IF_ipv6. These are for backward compatibility. 1049123474Swpaul 1050123474Swpaul 3. A new variable $ipv6_prefer has been added. If NO, IPv6 1051123474Swpaul functionality of interfaces with no corresponding 1052123474Swpaul $ifconfig_IF_ipv6 is disabled by using "inet6 ifdisabled" flag, 1053123474Swpaul and the default address selection policy of ip6addrctl(8) 1054123474Swpaul is the IPv4-preferred one (see rc.d/ip6addrctl for more details). 1055125057Swpaul Note that if you want to configure IPv6 functionality on the 1056123474Swpaul disabled interfaces after boot, first you need to clear the flag by 1057123821Swpaul using ifconfig(8) like: 1058123832Swpaul 1059123474Swpaul ifconfig em0 inet6 -ifdisabled 1060123474Swpaul 1061123474Swpaul If YES, the default address selection policy is set as 1062123474Swpaul IPv6-preferred. 1063123474Swpaul 1064123474Swpaul The default value of $ipv6_prefer is NO. 1065123474Swpaul 1066123474Swpaul 4. If your system need to receive Router Advertisement messages, 1067123474Swpaul define "inet6 accept_rtadv" in $ifconfig_IF_ipv6. The rc(8) 1068123832Swpaul scripts automatically invoke rtsol(8) when the interface becomes 1069123474Swpaul UP. The Router Advertisement messages are used for SLAAC 1070124097Swpaul (State-Less Address AutoConfiguration). 1071124097Swpaul 1072125057Swpaul20090922: 1073124097Swpaul 802.11s D3.03 support was committed. This is incompatible with the 1074124097Swpaul previous code, which was based on D3.0. 1075123832Swpaul 1076123821Swpaul20090912: 1077123474Swpaul A sysctl variable net.inet6.ip6.accept_rtadv now sets the default value 1078123474Swpaul of a per-interface flag ND6_IFF_ACCEPT_RTADV, not a global knob to 1079123474Swpaul control whether accepting Router Advertisement messages or not. 1080123474Swpaul Also, a per-interface flag ND6_IFF_AUTO_LINKLOCAL has been added and 1081123474Swpaul a sysctl variable net.inet6.ip6.auto_linklocal is its default value. 1082123474Swpaul The ifconfig(8) utility now supports these flags. 1083123474Swpaul 1084123474Swpaul20090910: 1085123474Swpaul ZFS snapshots are now mounted with MNT_IGNORE flag. Use -v option for 1086123474Swpaul mount(8) and -a option for df(1) to see them. 1087123474Swpaul 1088123474Swpaul20090825: 1089123474Swpaul The old tunable hw.bus.devctl_disable has been superseded by 1090124094Swpaul hw.bus.devctl_queue. hw.bus.devctl_disable=1 in loader.conf should be 1091123474Swpaul replaced by hw.bus.devctl_queue=0. The default for this new tunable 1092123474Swpaul is 1000. 1093123474Swpaul 1094124094Swpaul20090813: 1095124094Swpaul Remove the option STOP_NMI. The default action is now to use NMI only 1096123474Swpaul for KDB via the newly introduced function stop_cpus_hard() and 1097124094Swpaul maintain stop_cpus() to just use a normal IPI_STOP on ia32 and amd64. 1098124094Swpaul 1099124094Swpaul20090803: 1100124094Swpaul The stable/8 branch created in subversion. This corresponds to the 1101124094Swpaul RELENG_8 branch in CVS. 1102123474Swpaul 1103123474Swpaul20090719: 1104123474Swpaul Bump the shared library version numbers for all libraries that do not 1105123474Swpaul use symbol versioning as part of the 8.0-RELEASE cycle. Bump 1106123474Swpaul __FreeBSD_version to 800105. 1107123474Swpaul 1108123474Swpaul20090714: 1109123474Swpaul Due to changes in the implementation of virtual network stack support, 1110123474Swpaul all network-related kernel modules must be recompiled. As this change 1111123474Swpaul breaks the ABI, bump __FreeBSD_version to 800104. 1112123474Swpaul 1113123474Swpaul20090713: 1114123474Swpaul The TOE interface to the TCP syncache has been modified to remove 1115123474Swpaul struct tcpopt (<netinet/tcp_var.h>) from the ABI of the network stack. 1116123474Swpaul The cxgb driver is the only TOE consumer affected by this change, and 1117123474Swpaul needs to be recompiled along with the kernel. As this change breaks 1118123474Swpaul the ABI, bump __FreeBSD_version to 800103. 1119123474Swpaul 1120123474Swpaul20090712: 1121123474Swpaul Padding has been added to struct tcpcb, sackhint and tcpstat in 1122123474Swpaul <netinet/tcp_var.h> to facilitate future MFCs and bug fixes whilst 1123123474Swpaul maintaining the ABI. However, this change breaks the ABI, so bump 1124123474Swpaul __FreeBSD_version to 800102. User space tools that rely on the size of 1125123474Swpaul any of these structs (e.g. sockstat) need to be recompiled. 1126123474Swpaul 1127124454Swpaul20090630: 1128124454Swpaul The NFS_LEGACYRPC option has been removed along with the old kernel 1129123474Swpaul RPC implementation that this option selected. Kernel configurations 1130123474Swpaul may need to be adjusted. 1131123474Swpaul 1132123474Swpaul20090629: 1133123474Swpaul The network interface device nodes at /dev/net/<interface> have been 1134123474Swpaul removed. All ioctl operations can be performed the normal way using 1135123474Swpaul routing sockets. The kqueue functionality can generally be replaced 1136123474Swpaul with routing sockets. 1137123474Swpaul 1138123474Swpaul20090628: 1139123474Swpaul The documentation from the FreeBSD Documentation Project (Handbook, 1140123474Swpaul FAQ, etc.) is now installed via packages by sysinstall(8) and under 1141123474Swpaul the /usr/local/share/doc/freebsd directory instead of /usr/share/doc. 1142123474Swpaul 1143123474Swpaul20090624: 1144123474Swpaul The ABI of various structures related to the SYSV IPC API have been 1145123474Swpaul changed. As a result, the COMPAT_FREEBSD[456] and COMPAT_43 kernel 1146123474Swpaul options now all require COMPAT_FREEBSD7. Bump __FreeBSD_version to 1147123474Swpaul 800100. 1148123474Swpaul 1149123474Swpaul20090622: 1150123474Swpaul Layout of struct vnet has changed as routing related variables were 1151123474Swpaul moved to their own Vimage module. Modules need to be recompiled. Bump 1152123474Swpaul __FreeBSD_version to 800099. 1153123474Swpaul 1154123474Swpaul20090619: 1155123474Swpaul NGROUPS_MAX and NGROUPS have been increased from 16 to 1023 and 1024 1156123474Swpaul respectively. As long as no more than 16 groups per process are used, 1157123474Swpaul no changes should be visible. When more than 16 groups are used, old 1158123474Swpaul binaries may fail if they call getgroups() or getgrouplist() with 1159123474Swpaul statically sized storage. Recompiling will work around this, but 1160123474Swpaul applications should be modified to use dynamically allocated storage 1161123474Swpaul for group arrays as POSIX.1-2008 does not cap an implementation's 1162123474Swpaul number of supported groups at NGROUPS_MAX+1 as previous versions did. 1163123474Swpaul 1164123474Swpaul NFS and portalfs mounts may also be affected as the list of groups is 1165123474Swpaul truncated to 16. Users of NFS who use more than 16 groups, should 1166123474Swpaul take care that negative group permissions are not used on the exported 1167123474Swpaul file systems as they will not be reliable unless a GSSAPI based 1168123474Swpaul authentication method is used. 1169123474Swpaul 1170123474Swpaul20090616: 1171123474Swpaul The compiling option ADAPTIVE_LOCKMGRS has been introduced. This 1172123848Swpaul option compiles in the support for adaptive spinning for lockmgrs 1173123848Swpaul which want to enable it. The lockinit() function now accepts the flag 1174123848Swpaul LK_ADAPTIVE in order to make the lock object subject to adaptive 1175123848Swpaul spinning when both held in write and read mode. 1176124097Swpaul 1177123848Swpaul20090613: 1178123848Swpaul The layout of the structure returned by IEEE80211_IOC_STA_INFO has 1179123848Swpaul changed. User applications that use this ioctl need to be rebuilt. 1180123848Swpaul 1181123474Swpaul20090611: 1182123474Swpaul The layout of struct thread has changed. Kernel and modules need to 1183123474Swpaul be rebuilt. 1184123474Swpaul 1185123474Swpaul20090608: 1186123474Swpaul The layout of structs ifnet, domain, protosw and vnet_net has changed. 1187123474Swpaul Kernel modules need to be rebuilt. Bump __FreeBSD_version to 800097. 1188123474Swpaul 1189123474Swpaul20090602: 1190123474Swpaul window(1) has been removed from the base system. It can now be 1191123474Swpaul installed from ports. The port is called misc/window. 1192123474Swpaul 1193123474Swpaul20090601: 1194123474Swpaul The way we are storing and accessing `routing table' entries has 1195123474Swpaul changed. Programs reading the FIB, like netstat, need to be 1196123474Swpaul re-compiled. 1197123474Swpaul 1198123474Swpaul20090601: 1199123474Swpaul A new netisr implementation has been added for FreeBSD 8. Network 1200123474Swpaul file system modules, such as igmp, ipdivert, and others, should be 1201123474Swpaul rebuilt. 1202123474Swpaul Bump __FreeBSD_version to 800096. 1203123474Swpaul 1204123474Swpaul20090530: 1205123474Swpaul Remove the tunable/sysctl debug.mpsafevfs as its initial purpose is no 1206123474Swpaul more valid. 1207123474Swpaul 1208123474Swpaul20090530: 1209123474Swpaul Add VOP_ACCESSX(9). File system modules need to be rebuilt. 1210123474Swpaul Bump __FreeBSD_version to 800094. 1211123474Swpaul 1212123474Swpaul20090529: 1213123474Swpaul Add mnt_xflag field to 'struct mount'. File system modules need to be 1214123474Swpaul rebuilt. 1215123474Swpaul Bump __FreeBSD_version to 800093. 1216123474Swpaul 1217123474Swpaul20090528: 1218123474Swpaul The compiling option ADAPTIVE_SX has been retired while it has been 1219123474Swpaul introduced the option NO_ADAPTIVE_SX which handles the reversed logic. 1220123474Swpaul The KPI for sx_init_flags() changes as accepting flags: 1221123474Swpaul SX_ADAPTIVESPIN flag has been retired while the SX_NOADAPTIVE flag has 1222123474Swpaul been introduced in order to handle the reversed logic. 1223123474Swpaul Bump __FreeBSD_version to 800092. 1224123474Swpaul 1225123474Swpaul20090527: 1226123474Swpaul Add support for hierarchical jails. Remove global securelevel. 1227123474Swpaul Bump __FreeBSD_version to 800091. 1228123474Swpaul 1229123474Swpaul20090523: 1230123474Swpaul The layout of struct vnet_net has changed, therefore modules 1231123474Swpaul need to be rebuilt. 1232123474Swpaul Bump __FreeBSD_version to 800090. 1233123474Swpaul 1234123474Swpaul20090523: 1235123474Swpaul The newly imported zic(8) produces a new format in the output. Please 1236123474Swpaul run tzsetup(8) to install the newly created data to /etc/localtime. 1237123474Swpaul 1238123474Swpaul20090520: 1239123474Swpaul The sysctl tree for the usb stack has renamed from hw.usb2.* to 1240123474Swpaul hw.usb.* and is now consistent again with previous releases. 1241123474Swpaul 1242123474Swpaul20090520: 1243123474Swpaul 802.11 monitor mode support was revised and driver api's were changed. 1244123474Swpaul Drivers dependent on net80211 now support DLT_IEEE802_11_RADIO instead 1245123474Swpaul of DLT_IEEE802_11. No user-visible data structures were changed but 1246123474Swpaul applications that use DLT_IEEE802_11 may require changes. 1247123474Swpaul Bump __FreeBSD_version to 800088. 1248123474Swpaul 1249123474Swpaul20090430: 1250123474Swpaul The layout of the following structs has changed: sysctl_oid, 1251123474Swpaul socket, ifnet, inpcbinfo, tcpcb, syncache_head, vnet_inet, 1252123474Swpaul vnet_inet6 and vnet_ipfw. Most modules need to be rebuild or 1253123474Swpaul panics may be experienced. World rebuild is required for 1254123474Swpaul correctly checking networking state from userland. 1255123474Swpaul Bump __FreeBSD_version to 800085. 1256123474Swpaul 1257123474Swpaul20090429: 1258123474Swpaul MLDv2 and Source-Specific Multicast (SSM) have been merged 1259123474Swpaul to the IPv6 stack. VIMAGE hooks are in but not yet used. 1260123474Swpaul The implementation of SSM within FreeBSD's IPv6 stack closely 1261123474Swpaul follows the IPv4 implementation. 1262123474Swpaul 1263123474Swpaul For kernel developers: 1264123474Swpaul 1265123474Swpaul * The most important changes are that the ip6_output() and 1266123474Swpaul ip6_input() paths no longer take the IN6_MULTI_LOCK, 1267123474Swpaul and this lock has been downgraded to a non-recursive mutex. 1268123474Swpaul 1269123474Swpaul * As with the changes to the IPv4 stack to support SSM, filtering 1270123474Swpaul of inbound multicast traffic must now be performed by transport 1271123474Swpaul protocols within the IPv6 stack. This does not apply to TCP and 1272123474Swpaul SCTP, however, it does apply to UDP in IPv6 and raw IPv6. 1273123474Swpaul 1274123474Swpaul * The KPIs used by IPv6 multicast are similar to those used by 1275123474Swpaul the IPv4 stack, with the following differences: 1276123474Swpaul * im6o_mc_filter() is analogous to imo_multicast_filter(). 1277123474Swpaul * The legacy KAME entry points in6_joingroup and in6_leavegroup() 1278123474Swpaul are shimmed to in6_mc_join() and in6_mc_leave() respectively. 1279123474Swpaul * IN6_LOOKUP_MULTI() has been deprecated and removed. 1280123474Swpaul * IPv6 relies on MLD for the DAD mechanism. KAME's internal KPIs 1281123474Swpaul for MLDv1 have an additional 'timer' argument which is used to 1282123474Swpaul jitter the initial membership report for the solicited-node 1283123474Swpaul multicast membership on-link. 1284123474Swpaul * This is not strictly needed for MLDv2, which already jitters 1285123474Swpaul its report transmissions. However, the 'timer' argument is 1286123474Swpaul preserved in case MLDv1 is active on the interface. 1287123474Swpaul 1288123474Swpaul * The KAME linked-list based IPv6 membership implementation has 1289123474Swpaul been refactored to use a vector similar to that used by the IPv4 1290123474Swpaul stack. 1291123474Swpaul Code which maintains a list of its own multicast memberships 1292123474Swpaul internally, e.g. carp, has been updated to reflect the new 1293123474Swpaul semantics. 1294123474Swpaul 1295123474Swpaul * There is a known Lock Order Reversal (LOR) due to in6_setscope() 1296123474Swpaul acquiring the IF_AFDATA_LOCK and being called within ip6_output(). 1297123474Swpaul Whilst MLDv2 tries to avoid this otherwise benign LOR, it is an 1298123474Swpaul implementation constraint which needs to be addressed in HEAD. 1299123474Swpaul 1300123474Swpaul For application developers: 1301123474Swpaul 1302123474Swpaul * The changes are broadly similar to those made for the IPv4 1303123474Swpaul stack. 1304123474Swpaul 1305123474Swpaul * The use of IPv4 and IPv6 multicast socket options on the same 1306123474Swpaul socket, using mapped addresses, HAS NOT been tested or supported. 1307123474Swpaul 1308123474Swpaul * There are a number of issues with the implementation of various 1309123474Swpaul IPv6 multicast APIs which need to be resolved in the API surface 1310123474Swpaul before the implementation is fully compatible with KAME userland 1311123474Swpaul use, and these are mostly to do with interface index treatment. 1312123474Swpaul 1313123474Swpaul * The literature available discusses the use of either the delta / ASM 1314123474Swpaul API with setsockopt(2)/getsockopt(2), or the full-state / ASM API 1315123474Swpaul using setsourcefilter(3)/getsourcefilter(3). For more information 1316123474Swpaul please refer to RFC 3768, 'Socket Interface Extensions for 1317123474Swpaul Multicast Source Filters'. 1318123474Swpaul 1319123474Swpaul * Applications which use the published RFC 3678 APIs should be fine. 1320123474Swpaul 1321123474Swpaul For systems administrators: 1322123474Swpaul 1323123474Swpaul * The mtest(8) utility has been refactored to support IPv6, in 1324123474Swpaul addition to IPv4. Interface addresses are no longer accepted 1325123474Swpaul as arguments, their names must be used instead. The utility 1326123474Swpaul will map the interface name to its first IPv4 address as 1327123474Swpaul returned by getifaddrs(3). 1328123474Swpaul 1329123474Swpaul * The ifmcstat(8) utility has also been updated to print the MLDv2 1330123474Swpaul endpoint state and source filter lists via sysctl(3). 1331123474Swpaul 1332123474Swpaul * The net.inet6.ip6.mcast.loop sysctl may be tuned to 0 to disable 1333123474Swpaul loopback of IPv6 multicast datagrams by default; it defaults to 1 1334123474Swpaul to preserve the existing behaviour. Disabling multicast loopback is 1335123474Swpaul recommended for optimal system performance. 1336123474Swpaul 1337123474Swpaul * The IPv6 MROUTING code has been changed to examine this sysctl 1338123474Swpaul instead of attempting to perform a group lookup before looping 1339123474Swpaul back forwarded datagrams. 1340123474Swpaul 1341123474Swpaul Bump __FreeBSD_version to 800084. 1342123474Swpaul 1343123474Swpaul20090422: 1344123474Swpaul Implement low-level Bluetooth HCI API. 1345123474Swpaul Bump __FreeBSD_version to 800083. 1346123474Swpaul 1347123474Swpaul20090419: 1348123474Swpaul The layout of struct malloc_type, used by modules to register new 1349123474Swpaul memory allocation types, has changed. Most modules will need to 1350123474Swpaul be rebuilt or panics may be experienced. 1351123474Swpaul Bump __FreeBSD_version to 800081. 1352123474Swpaul 1353123474Swpaul20090415: 1354123474Swpaul Anticipate overflowing inp_flags - add inp_flags2. 1355123474Swpaul This changes most offsets in inpcb, so checking v4 connection 1356123474Swpaul state will require a world rebuild. 1357123474Swpaul Bump __FreeBSD_version to 800080. 1358123474Swpaul 1359123474Swpaul20090415: 1360123474Swpaul Add an llentry to struct route and struct route_in6. Modules 1361123474Swpaul embedding a struct route will need to be recompiled. 1362123474Swpaul Bump __FreeBSD_version to 800079. 1363123474Swpaul 1364123474Swpaul20090414: 1365123474Swpaul The size of rt_metrics_lite and by extension rtentry has changed. 1366123474Swpaul Networking administration apps will need to be recompiled. 1367123474Swpaul The route command now supports show as an alias for get, weighting 1368123474Swpaul of routes, sticky and nostick flags to alter the behavior of stateful 1369123474Swpaul load balancing. 1370123474Swpaul Bump __FreeBSD_version to 800078. 1371123474Swpaul 1372123474Swpaul20090408: 1373123474Swpaul Do not use Giant for kbdmux(4) locking. This is wrong and 1374123474Swpaul apparently causing more problems than it solves. This will 1375123474Swpaul re-open the issue where interrupt handlers may race with 1376123474Swpaul kbdmux(4) in polling mode. Typical symptoms include (but 1377123474Swpaul not limited to) duplicated and/or missing characters when 1378123474Swpaul low level console functions (such as gets) are used while 1379123474Swpaul interrupts are enabled (for example geli password prompt, 1380123474Swpaul mountroot prompt etc.). Disabling kbdmux(4) may help. 1381123474Swpaul 1382123474Swpaul20090407: 1383123474Swpaul The size of structs vnet_net, vnet_inet and vnet_ipfw has changed; 1384123474Swpaul kernel modules referencing any of the above need to be recompiled. 1385123474Swpaul Bump __FreeBSD_version to 800075. 1386123474Swpaul 1387123474Swpaul20090320: 1388123474Swpaul GEOM_PART has become the default partition slicer for storage devices, 1389123474Swpaul replacing GEOM_MBR, GEOM_BSD, GEOM_PC98 and GEOM_GPT slicers. It 1390123474Swpaul introduces some changes: 1391123474Swpaul 1392123474Swpaul MSDOS/EBR: the devices created from MSDOS extended partition entries 1393123474Swpaul (EBR) can be named differently than with GEOM_MBR and are now symlinks 1394123474Swpaul to devices with offset-based names. fstabs may need to be modified. 1395123474Swpaul 1396123474Swpaul BSD: the "geometry does not match label" warning is harmless in most 1397123474Swpaul cases but it points to problems in file system misalignment with 1398123474Swpaul disk geometry. The "c" partition is now implicit, covers the whole 1399123474Swpaul top-level drive and cannot be (mis)used by users. 1400123474Swpaul 1401123474Swpaul General: Kernel dumps are now not allowed to be written to devices 1402123474Swpaul whose partition types indicate they are meant to be used for file 1403123474Swpaul systems (or, in case of MSDOS partitions, as something else than 1404123474Swpaul the "386BSD" type). 1405123474Swpaul 1406123474Swpaul Most of these changes date approximately from 200812. 1407123474Swpaul 1408123474Swpaul20090319: 1409123474Swpaul The uscanner(4) driver has been removed from the kernel. This follows 1410123474Swpaul Linux removing theirs in 2.6 and making libusb the default interface 1411123474Swpaul (supported by sane). 1412123474Swpaul 1413123474Swpaul20090319: 1414123474Swpaul The multicast forwarding code has been cleaned up. netstat(1) 1415123474Swpaul only relies on KVM now for printing bandwidth upcall meters. 1416123474Swpaul The IPv4 and IPv6 modules are split into ip_mroute_mod and 1417123474Swpaul ip6_mroute_mod respectively. The config(5) options for statically 1418123474Swpaul compiling this code remain the same, i.e. 'options MROUTING'. 1419123474Swpaul 1420123474Swpaul20090315: 1421123474Swpaul Support for the IFF_NEEDSGIANT network interface flag has been 1422123474Swpaul removed, which means that non-MPSAFE network device drivers are no 1423123474Swpaul longer supported. In particular, if_ar, if_sr, and network device 1424123474Swpaul drivers from the old (legacy) USB stack can no longer be built or 1425123474Swpaul used. 1426123474Swpaul 1427123474Swpaul20090313: 1428123474Swpaul POSIX.1 Native Language Support (NLS) has been enabled in libc and 1429123474Swpaul a bunch of new language catalog files have also been added. 1430123474Swpaul This means that some common libc messages are now localized and 1431123474Swpaul they depend on the LC_MESSAGES environmental variable. 1432123474Swpaul 1433123474Swpaul20090313: 1434123474Swpaul The k8temp(4) driver has been renamed to amdtemp(4) since 1435123474Swpaul support for Family 10 and Family 11 CPU families was added. 1436123474Swpaul 1437123474Swpaul20090309: 1438123474Swpaul IGMPv3 and Source-Specific Multicast (SSM) have been merged 1439123474Swpaul to the IPv4 stack. VIMAGE hooks are in but not yet used. 1440123474Swpaul 1441123474Swpaul For kernel developers, the most important changes are that the 1442123474Swpaul ip_output() and ip_input() paths no longer take the IN_MULTI_LOCK(), 1443123474Swpaul and this lock has been downgraded to a non-recursive mutex. 1444123474Swpaul 1445123474Swpaul Transport protocols (UDP, Raw IP) are now responsible for filtering 1446123474Swpaul inbound multicast traffic according to group membership and source 1447123474Swpaul filters. The imo_multicast_filter() KPI exists for this purpose. 1448123474Swpaul Transports which do not use multicast (SCTP, TCP) already reject 1449123474Swpaul multicast by default. Forwarding and receive performance may improve 1450123474Swpaul as a mutex acquisition is no longer needed in the ip_input() 1451123474Swpaul low-level input path. in_addmulti() and in_delmulti() are shimmed 1452123474Swpaul to new KPIs which exist to support SSM in-kernel. 1453123474Swpaul 1454123474Swpaul For application developers, it is recommended that loopback of 1455123474Swpaul multicast datagrams be disabled for best performance, as this 1456123474Swpaul will still cause the lock to be taken for each looped-back 1457123474Swpaul datagram transmission. The net.inet.ip.mcast.loop sysctl may 1458123474Swpaul be tuned to 0 to disable loopback by default; it defaults to 1 1459123474Swpaul to preserve the existing behaviour. 1460123474Swpaul 1461123474Swpaul For systems administrators, to obtain best performance with 1462123474Swpaul multicast reception and multiple groups, it is always recommended 1463123474Swpaul that a card with a suitably precise hash filter is used. Hash 1464123474Swpaul collisions will still result in the lock being taken within the 1465123474Swpaul transport protocol input path to check group membership. 1466123474Swpaul 1467123474Swpaul If deploying FreeBSD in an environment with IGMP snooping switches, 1468123474Swpaul it is recommended that the net.inet.igmp.sendlocal sysctl remain 1469123474Swpaul enabled; this forces 224.0.0.0/24 group membership to be announced 1470123474Swpaul via IGMP. 1471123474Swpaul 1472123474Swpaul The size of 'struct igmpstat' has changed; netstat needs to be 1473123474Swpaul recompiled to reflect this. 1474123474Swpaul Bump __FreeBSD_version to 800070. 1475123474Swpaul 1476123474Swpaul20090309: 1477123474Swpaul libusb20.so.1 is now installed as libusb.so.1 and the ports system 1478123474Swpaul updated to use it. This requires a buildworld/installworld in order to 1479123474Swpaul update the library and dependencies (usbconfig, etc). Its advisable to 1480123474Swpaul rebuild all ports which uses libusb. More specific directions are given 1481123474Swpaul in the ports collection UPDATING file. Any /etc/libmap.conf entries for 1482123474Swpaul libusb are no longer required and can be removed. 1483124116Swpaul 1484124116Swpaul20090302: 1485123474Swpaul A workaround is committed to allow the creation of System V shared 1486123474Swpaul memory segment of size > 2 GB on the 64-bit architectures. 1487123474Swpaul Due to a limitation of the existing ABI, the shm_segsz member 1488123474Swpaul of the struct shmid_ds, returned by shmctl(IPC_STAT) call is 1489123474Swpaul wrong for large segments. Note that limits must be explicitly 1490123474Swpaul raised to allow such segments to be created. 1491123474Swpaul 1492123474Swpaul20090301: 1493123474Swpaul The layout of struct ifnet has changed, requiring a rebuild of all 1494124116Swpaul network device driver modules. 1495123474Swpaul 1496123474Swpaul20090227: 1497123474Swpaul The /dev handling for the new USB stack has changed, a 1498123474Swpaul buildworld/installworld is required for libusb20. 1499123474Swpaul 1500123474Swpaul20090223: 1501123474Swpaul The new USB2 stack has now been permanently moved in and all kernel and 1502123474Swpaul module names reverted to their previous values (eg, usb, ehci, ohci, 1503123474Swpaul ums, ...). The old usb stack can be compiled in by prefixing the name 1504123474Swpaul with the letter 'o', the old usb modules have been removed. 1505123474Swpaul Updating entry 20090216 for xorg and 20090215 for libmap may still 1506123474Swpaul apply. 1507123474Swpaul 1508123474Swpaul20090217: 1509123474Swpaul The rc.conf(5) option if_up_delay has been renamed to 1510123474Swpaul defaultroute_delay to better reflect its purpose. If you have 1511123474Swpaul customized this setting in /etc/rc.conf you need to update it to 1512123474Swpaul use the new name. 1513123474Swpaul 1514123474Swpaul20090216: 1515123474Swpaul xorg 7.4 wants to configure its input devices via hald which does not 1516123474Swpaul yet work with USB2. If the keyboard/mouse does not work in xorg then 1517123474Swpaul add 1518123474Swpaul Option "AllowEmptyInput" "off" 1519123474Swpaul to your ServerLayout section. This will cause X to use the configured 1520123474Swpaul kbd and mouse sections from your xorg.conf. 1521123474Swpaul 1522123474Swpaul20090215: 1523123474Swpaul The GENERIC kernels for all architectures now default to the new USB2 1524123474Swpaul stack. No kernel config options or code have been removed so if a 1525123474Swpaul problem arises please report it and optionally revert to the old USB 1526123474Swpaul stack. If you are loading USB kernel modules or have a custom kernel 1527123474Swpaul that includes GENERIC then ensure that usb names are also changed over, 1528123474Swpaul eg uftdi -> usb2_serial_ftdi. 1529123474Swpaul 1530123474Swpaul Older programs linked against the ports libusb 0.1 need to be 1531123474Swpaul redirected to the new stack's libusb20. /etc/libmap.conf can 1532123474Swpaul be used for this: 1533123474Swpaul # Map old usb library to new one for usb2 stack 1534123474Swpaul libusb-0.1.so.8 libusb20.so.1 1535123474Swpaul 1536123474Swpaul20090209: 1537123474Swpaul All USB ethernet devices now attach as interfaces under the name ueN 1538123474Swpaul (eg. ue0). This is to provide a predictable name as vendors often 1539123474Swpaul change usb chipsets in a product without notice. 1540123474Swpaul 1541123474Swpaul20090203: 1542123474Swpaul The ichsmb(4) driver has been changed to require SMBus slave 1543123474Swpaul addresses be left-justified (xxxxxxx0b) rather than right-justified. 1544123474Swpaul All of the other SMBus controller drivers require left-justified 1545123474Swpaul slave addresses, so this change makes all the drivers provide the 1546123474Swpaul same interface. 1547123474Swpaul 1548123474Swpaul20090201: 1549123474Swpaul INET6 statistics (struct ip6stat) was updated. 1550123474Swpaul netstat(1) needs to be recompiled. 1551123474Swpaul 1552123474Swpaul20090119: 1553123474Swpaul NTFS has been removed from GENERIC kernel on amd64 to match 1554123474Swpaul GENERIC on i386. Should not cause any issues since mount_ntfs(8) 1555123474Swpaul will load ntfs.ko module automatically when NTFS support is 1556123474Swpaul actually needed, unless ntfs.ko is not installed or security 1557123474Swpaul level prohibits loading kernel modules. If either is the case, 1558123474Swpaul "options NTFS" has to be added into kernel config. 1559123474Swpaul 1560123474Swpaul20090115: 1561123474Swpaul TCP Appropriate Byte Counting (RFC 3465) support added to kernel. 1562123474Swpaul New field in struct tcpcb breaks ABI, so bump __FreeBSD_version to 1563123474Swpaul 800061. User space tools that rely on the size of struct tcpcb in 1564123474Swpaul tcp_var.h (e.g. sockstat) need to be recompiled. 1565123474Swpaul 1566124278Swpaul20081225: 1567124278Swpaul ng_tty(4) module updated to match the new TTY subsystem. 1568124278Swpaul Due to API change, user-level applications must be updated. 1569124278Swpaul New API support added to mpd5 CVS and expected to be present 1570124278Swpaul in next mpd5.3 release. 1571124278Swpaul 1572124278Swpaul20081219: 1573123474Swpaul With __FreeBSD_version 800060 the makefs tool is part of 1574123474Swpaul the base system (it was a port). 1575123474Swpaul 1576123474Swpaul20081216: 1577123474Swpaul The afdata and ifnet locks have been changed from mutexes to 1578123474Swpaul rwlocks, network modules will need to be re-compiled. 1579123474Swpaul 1580123848Swpaul20081214: 1581123848Swpaul __FreeBSD_version 800059 incorporates the new arp-v2 rewrite. 1582123474Swpaul RTF_CLONING, RTF_LLINFO and RTF_WASCLONED flags are eliminated. 1583123474Swpaul The new code reduced struct rtentry{} by 16 bytes on 32-bit 1584123474Swpaul architecture and 40 bytes on 64-bit architecture. The userland 1585123474Swpaul applications "arp" and "ndp" have been updated accordingly. 1586123474Swpaul The output from "netstat -r" shows only routing entries and 1587123474Swpaul none of the L2 information. 1588123474Swpaul 1589123474Swpaul20081130: 1590123474Swpaul __FreeBSD_version 800057 marks the switchover from the 1591123474Swpaul binary ath hal to source code. Users must add the line: 1592123474Swpaul 1593123474Swpaul options AH_SUPPORT_AR5416 1594123474Swpaul 1595123474Swpaul to their kernel config files when specifying: 1596123474Swpaul 1597123474Swpaul device ath_hal 1598123474Swpaul 1599123474Swpaul The ath_hal module no longer exists; the code is now compiled 1600123474Swpaul together with the driver in the ath module. It is now 1601123474Swpaul possible to tailor chip support (i.e. reduce the set of chips 1602123474Swpaul and thereby the code size); consult ath_hal(4) for details. 1603123474Swpaul 1604123474Swpaul20081121: 1605123474Swpaul __FreeBSD_version 800054 adds memory barriers to 1606123474Swpaul <machine/atomic.h>, new interfaces to ifnet to facilitate 1607123474Swpaul multiple hardware transmit queues for cards that support 1608123474Swpaul them, and a lock-less ring-buffer implementation to 1609123474Swpaul enable drivers to more efficiently manage queueing of 1610123474Swpaul packets. 1611123474Swpaul 1612123474Swpaul20081117: 1613123474Swpaul A new version of ZFS (version 13) has been merged to -HEAD. 1614123474Swpaul This version has zpool attribute "listsnapshots" off by 1615123474Swpaul default, which means "zfs list" does not show snapshots, 1616123474Swpaul and is the same as Solaris behavior. 1617123474Swpaul 1618123474Swpaul20081028: 1619123474Swpaul dummynet(4) ABI has changed. ipfw(8) needs to be recompiled. 1620123474Swpaul 1621123474Swpaul20081009: 1622123474Swpaul The uhci, ohci, ehci and slhci USB Host controller drivers have 1623123474Swpaul been put into separate modules. If you load the usb module 1624123474Swpaul separately through loader.conf you will need to load the 1625123721Swpaul appropriate *hci module as well. E.g. for a UHCI-based USB 2.0 1626123721Swpaul controller add the following to loader.conf: 1627123721Swpaul 1628123721Swpaul uhci_load="YES" 1629123721Swpaul ehci_load="YES" 1630123721Swpaul 1631123721Swpaul20081009: 1632123721Swpaul The ABI used by the PMC toolset has changed. Please keep 1633123721Swpaul userland (libpmc(3)) and the kernel module (hwpmc(4)) in 1634123721Swpaul sync. 1635123721Swpaul 1636123721Swpaul20081009: 1637123721Swpaul atapci kernel module now includes only generic PCI ATA 1638123721Swpaul driver. AHCI driver moved to ataahci kernel module. 1639123721Swpaul All vendor-specific code moved into separate kernel modules: 1640123721Swpaul ataacard, ataacerlabs, ataadaptec, ataamd, ataati, atacenatek, 1641123721Swpaul atacypress, atacyrix, atahighpoint, ataintel, ataite, atajmicron, 1642123721Swpaul atamarvell, atamicron, atanational, atanetcell, atanvidia, 1643123721Swpaul atapromise, ataserverworks, atasiliconimage, atasis, atavia 1644123721Swpaul 1645123721Swpaul20080820: 1646123721Swpaul The TTY subsystem of the kernel has been replaced by a new 1647123721Swpaul implementation, which provides better scalability and an 1648123721Swpaul improved driver model. Most common drivers have been migrated to 1649123721Swpaul the new TTY subsystem, while others have not. The following 1650123721Swpaul drivers have not yet been ported to the new TTY layer: 1651123721Swpaul 1652123721Swpaul PCI/ISA: 1653123721Swpaul cy, digi, rc, rp, sio 1654123721Swpaul 1655123474Swpaul USB: 1656123474Swpaul ubser, ucycom 1657123474Swpaul 1658123474Swpaul Line disciplines: 1659123474Swpaul ng_h4, ng_tty, ppp, sl, snp 1660123474Swpaul 1661123474Swpaul Adding these drivers to your kernel configuration file shall 1662123474Swpaul cause compilation to fail. 1663123474Swpaul 1664123474Swpaul20080818: 1665123474Swpaul ntpd has been upgraded to 4.2.4p5. 1666123474Swpaul 1667123474Swpaul20080801: 1668123474Swpaul OpenSSH has been upgraded to 5.1p1. 1669123474Swpaul 1670123474Swpaul For many years, FreeBSD's version of OpenSSH preferred DSA 1671123474Swpaul over RSA for host and user authentication keys. With this 1672123474Swpaul upgrade, we've switched to the vendor's default of RSA over 1673124116Swpaul DSA. This may cause upgraded clients to warn about unknown 1674124116Swpaul host keys even for previously known hosts. Users should 1675123474Swpaul follow the usual procedure for verifying host keys before 1676123474Swpaul accepting the RSA key. 1677123474Swpaul 1678123474Swpaul This can be circumvented by setting the "HostKeyAlgorithms" 1679123474Swpaul option to "ssh-dss,ssh-rsa" in ~/.ssh/config or on the ssh 1680123474Swpaul command line. 1681123474Swpaul 1682123474Swpaul Please note that the sequence of keys offered for 1683123474Swpaul authentication has been changed as well. You may want to 1684124116Swpaul specify IdentityFile in a different order to revert this 1685123474Swpaul behavior. 1686123474Swpaul 1687123474Swpaul20080713: 1688123474Swpaul The sio(4) driver has been removed from the i386 and amd64 1689123474Swpaul kernel configuration files. This means uart(4) is now the 1690123474Swpaul default serial port driver on those platforms as well. 1691123474Swpaul 1692123474Swpaul To prevent collisions with the sio(4) driver, the uart(4) driver 1693123474Swpaul uses different names for its device nodes. This means the 1694123474Swpaul onboard serial port will now most likely be called "ttyu0" 1695123474Swpaul instead of "ttyd0". You may need to reconfigure applications to 1696123474Swpaul use the new device names. 1697123474Swpaul 1698123474Swpaul When using the serial port as a boot console, be sure to update 1699123474Swpaul /boot/device.hints and /etc/ttys before booting the new kernel. 1700123474Swpaul If you forget to do so, you can still manually specify the hints 1701123474Swpaul at the loader prompt: 1702123474Swpaul 1703123474Swpaul set hint.uart.0.at="isa" 1704123474Swpaul set hint.uart.0.port="0x3F8" 1705123474Swpaul set hint.uart.0.flags="0x10" 1706123474Swpaul set hint.uart.0.irq="4" 1707123474Swpaul boot -s 1708123474Swpaul 1709123474Swpaul20080609: 1710123474Swpaul The gpt(8) utility has been removed. Use gpart(8) to partition 1711123474Swpaul disks instead. 1712123474Swpaul 1713123474Swpaul20080603: 1714123474Swpaul The version that Linuxulator emulates was changed from 2.4.2 1715123474Swpaul to 2.6.16. If you experience any problems with Linux binaries 1716123474Swpaul please try to set sysctl compat.linux.osrelease to 2.4.2 and 1717123474Swpaul if it fixes the problem contact emulation mailing list. 1718123474Swpaul 1719123474Swpaul20080525: 1720123474Swpaul ISDN4BSD (I4B) was removed from the src tree. You may need to 1721123474Swpaul update a your kernel configuration and remove relevant entries. 1722123474Swpaul 1723123474Swpaul20080509: 1724123474Swpaul I have checked in code to support multiple routing tables. 1725123474Swpaul See the man pages setfib(1) and setfib(2). 1726123474Swpaul This is a hopefully backwards compatible version, 1727123474Swpaul but to make use of it you need to compile your kernel 1728123474Swpaul with options ROUTETABLES=2 (or more up to 16). 1729123474Swpaul 1730123474Swpaul20080420: 1731123474Swpaul The 802.11 wireless support was redone to enable multi-bss 1732123757Swpaul operation on devices that are capable. The underlying device 1733123474Swpaul is no longer used directly but instead wlanX devices are 1734123474Swpaul cloned with ifconfig. This requires changes to rc.conf files. 1735123474Swpaul For example, change: 1736123474Swpaul ifconfig_ath0="WPA DHCP" 1737123474Swpaul to 1738123474Swpaul wlans_ath0=wlan0 1739123474Swpaul ifconfig_wlan0="WPA DHCP" 1740123848Swpaul see rc.conf(5) for more details. In addition, mergemaster of 1741123848Swpaul /etc/rc.d is highly recommended. Simultaneous update of userland 1742123474Swpaul and kernel wouldn't hurt either. 1743123474Swpaul 1744123474Swpaul As part of the multi-bss changes the wlan_scan_ap and wlan_scan_sta 1745123474Swpaul modules were merged into the base wlan module. All references 1746123474Swpaul to these modules (e.g. in kernel config files) must be removed. 1747123474Swpaul 1748123474Swpaul20080408: 1749123474Swpaul psm(4) has gained write(2) support in native operation level. 1750123474Swpaul Arbitrary commands can be written to /dev/psm%d and status can 1751123474Swpaul be read back from it. Therefore, an application is responsible 1752123474Swpaul for status validation and error recovery. It is a no-op in 1753123474Swpaul other operation levels. 1754123474Swpaul 1755123474Swpaul20080312: 1756123474Swpaul Support for KSE threading has been removed from the kernel. To 1757123474Swpaul run legacy applications linked against KSE libmap.conf may 1758123474Swpaul be used. The following libmap.conf may be used to ensure 1759123474Swpaul compatibility with any prior release: 1760124100Swpaul 1761124100Swpaul libpthread.so.1 libthr.so.1 1762124100Swpaul libpthread.so.2 libthr.so.2 1763124100Swpaul libkse.so.3 libthr.so.3 1764124100Swpaul 1765124100Swpaul20080301: 1766124100Swpaul The layout of struct vmspace has changed. This affects libkvm 1767124100Swpaul and any executables that link against libkvm and use the 1768124100Swpaul kvm_getprocs() function. In particular, but not exclusively, 1769123723Swpaul it affects ps(1), fstat(1), pkill(1), systat(1), top(1) and w(1). 1770123723Swpaul The effects are minimal, but it's advisable to upgrade world 1771123723Swpaul nonetheless. 1772123723Swpaul 1773123474Swpaul20080229: 1774123474Swpaul The latest em driver no longer has support in it for the 1775123474Swpaul 82575 adapter, this is now moved to the igb driver. The 1776123474Swpaul split was done to make new features that are incompatible 1777123474Swpaul with older hardware easier to do. 1778123474Swpaul 1779123474Swpaul20080220: 1780123723Swpaul The new geom_lvm(4) geom class has been renamed to geom_linux_lvm(4), 1781123757Swpaul likewise the kernel option is now GEOM_LINUX_LVM. 1782123474Swpaul 1783123474Swpaul20080211: 1784123474Swpaul The default NFS mount mode has changed from UDP to TCP for 1785123474Swpaul increased reliability. If you rely on (insecurely) NFS 1786123474Swpaul mounting across a firewall you may need to update your 1787123474Swpaul firewall rules. 1788123474Swpaul 1789123474Swpaul20080208: 1790123474Swpaul Belatedly note the addition of m_collapse for compacting 1791123474Swpaul mbuf chains. 1792123474Swpaul 1793123474Swpaul20080126: 1794123474Swpaul The fts(3) structures have been changed to use adequate 1795123474Swpaul integer types for their members and so to be able to cope 1796123723Swpaul with huge file trees. The old fts(3) ABI is preserved 1797123757Swpaul through symbol versioning in libc, so third-party binaries 1798123474Swpaul using fts(3) should still work, although they will not take 1799123474Swpaul advantage of the extended types. At the same time, some 1800123474Swpaul third-party software might fail to build after this change 1801123474Swpaul due to unportable assumptions made in its source code about 1802123474Swpaul fts(3) structure members. Such software should be fixed 1803125069Swpaul by its vendor or, in the worst case, in the ports tree. 1804125069Swpaul FreeBSD_version 800015 marks this change for the unlikely 1805125069Swpaul case that a portable fix is impossible. 1806125069Swpaul 1807125069Swpaul20080123: 1808125069Swpaul To upgrade to -current after this date, you must be running 1809125069Swpaul FreeBSD not older than 6.0-RELEASE. Upgrading to -current 1810125069Swpaul from 5.x now requires a stop over at RELENG_6 or RELENG_7 systems. 1811125069Swpaul 1812125069Swpaul20071128: 1813125069Swpaul The ADAPTIVE_GIANT kernel option has been retired because its 1814125069Swpaul functionality is the default now. 1815125069Swpaul 1816125069Swpaul20071118: 1817125069Swpaul The AT keyboard emulation of sunkbd(4) has been turned on 1818125069Swpaul by default. In order to make the special symbols of the Sun 1819125069Swpaul keyboards driven by sunkbd(4) work under X these now have 1820123474Swpaul to be configured the same way as Sun USB keyboards driven 1821123474Swpaul by ukbd(4) (which also does AT keyboard emulation), f.e.: 1822123474Swpaul 1823123474Swpaul Option "XkbLayout" "us" 1824123474Swpaul Option "XkbRules" "xorg" 1825123474Swpaul Option "XkbSymbols" "pc(pc105)+sun_vndr/usb(sun_usb)+us" 1826123474Swpaul 1827123474Swpaul20071024: 1828123474Swpaul It has been decided that it is desirable to provide ABI 1829123474Swpaul backwards compatibility to the FreeBSD 4/5/6 versions of the 1830123474Swpaul PCIOCGETCONF, PCIOCREAD and PCIOCWRITE IOCTLs, which was 1831123474Swpaul broken with the introduction of PCI domain support (see the 1832123474Swpaul 20070930 entry). Unfortunately, this required the ABI of 1833123474Swpaul PCIOCGETCONF to be broken again in order to be able to 1834124203Swpaul provide backwards compatibility to the old version of that 1835123474Swpaul IOCTL. Thus consumers of PCIOCGETCONF have to be recompiled 1836123474Swpaul again. As for prominent ports this affects neither pciutils 1837123474Swpaul nor xorg-server this time, the hal port needs to be rebuilt 1838123474Swpaul however. 1839123474Swpaul 1840123474Swpaul20071020: 1841123474Swpaul The misnamed kthread_create() and friends have been renamed 1842124203Swpaul to kproc_create() etc. Many of the callers already 1843123474Swpaul used kproc_start().. 1844123474Swpaul I will return kthread_create() and friends in a while 1845123474Swpaul with implementations that actually create threads, not procs. 1846123474Swpaul Renaming corresponds with version 800002. 1847123474Swpaul 1848123474Swpaul20071010: 1849123474Swpaul RELENG_7 branched. 1850123474Swpaul 1851123474SwpaulCOMMON ITEMS: 1852123474Swpaul 1853123474Swpaul General Notes 1854123474Swpaul ------------- 1855123474Swpaul Avoid using make -j when upgrading. While generally safe, there are 1856123474Swpaul sometimes problems using -j to upgrade. If your upgrade fails with 1857123474Swpaul -j, please try again without -j. From time to time in the past there 1858123474Swpaul have been problems using -j with buildworld and/or installworld. This 1859123474Swpaul is especially true when upgrading between "distant" versions (eg one 1860123474Swpaul that cross a major release boundary or several minor releases, or when 1861123474Swpaul several months have passed on the -current branch). 1862123474Swpaul 1863123474Swpaul Sometimes, obscure build problems are the result of environment 1864123474Swpaul poisoning. This can happen because the make utility reads its 1865123474Swpaul environment when searching for values for global variables. To run 1866123474Swpaul your build attempts in an "environmental clean room", prefix all make 1867123474Swpaul commands with 'env -i '. See the env(1) manual page for more details. 1868123474Swpaul 1869123474Swpaul When upgrading from one major version to another it is generally best 1870123474Swpaul to upgrade to the latest code in the currently installed branch first, 1871123474Swpaul then do an upgrade to the new branch. This is the best-tested upgrade 1872123474Swpaul path, and has the highest probability of being successful. Please try 1873123474Swpaul this approach before reporting problems with a major version upgrade. 1874123474Swpaul 1875123474Swpaul When upgrading a live system, having a root shell around before 1876123474Swpaul installing anything can help undo problems. Not having a root shell 1877123474Swpaul around can lead to problems if pam has changed too much from your 1878123474Swpaul starting point to allow continued authentication after the upgrade. 1879123474Swpaul 1880123474Swpaul ZFS notes 1881123474Swpaul --------- 1882123474Swpaul When upgrading the boot ZFS pool to a new version, always follow 1883123474Swpaul these two steps: 1884123474Swpaul 1885123474Swpaul 1.) recompile and reinstall the ZFS boot loader and boot block 1886123474Swpaul (this is part of "make buildworld" and "make installworld") 1887123474Swpaul 1888123474Swpaul 2.) update the ZFS boot block on your boot drive 1889123474Swpaul 1890123474Swpaul The following example updates the ZFS boot block on the first 1891123474Swpaul partition (freebsd-boot) of a GPT partitioned drive ad0: 1892123474Swpaul "gpart bootcode -p /boot/gptzfsboot -i 1 ad0" 1893123526Swpaul 1894123526Swpaul Non-boot pools do not need these updates. 1895123474Swpaul 1896123526Swpaul To build a kernel 1897123526Swpaul ----------------- 1898123526Swpaul If you are updating from a prior version of FreeBSD (even one just 1899123526Swpaul a few days old), you should follow this procedure. It is the most 1900123526Swpaul failsafe as it uses a /usr/obj tree with a fresh mini-buildworld, 1901123526Swpaul 1902123474Swpaul make kernel-toolchain 1903123474Swpaul make -DALWAYS_CHECK_MAKE buildkernel KERNCONF=YOUR_KERNEL_HERE 1904123474Swpaul make -DALWAYS_CHECK_MAKE installkernel KERNCONF=YOUR_KERNEL_HERE 1905123474Swpaul 1906123526Swpaul To test a kernel once 1907123526Swpaul --------------------- 1908123526Swpaul If you just want to boot a kernel once (because you are not sure 1909123526Swpaul if it works, or if you want to boot a known bad kernel to provide 1910123526Swpaul debugging information) run 1911123526Swpaul make installkernel KERNCONF=YOUR_KERNEL_HERE KODIR=/boot/testkernel 1912123526Swpaul nextboot -k testkernel 1913123526Swpaul 1914123526Swpaul To just build a kernel when you know that it won't mess you up 1915123526Swpaul -------------------------------------------------------------- 1916123526Swpaul This assumes you are already running a CURRENT system. Replace 1917123526Swpaul ${arch} with the architecture of your machine (e.g. "i386", 1918123526Swpaul "arm", "amd64", "ia64", "pc98", "sparc64", "powerpc", "mips", etc). 1919123526Swpaul 1920123526Swpaul cd src/sys/${arch}/conf 1921123526Swpaul config KERNEL_NAME_HERE 1922123526Swpaul cd ../compile/KERNEL_NAME_HERE 1923123526Swpaul make depend 1924123526Swpaul make 1925123526Swpaul make install 1926123526Swpaul 1927123526Swpaul If this fails, go to the "To build a kernel" section. 1928123474Swpaul 1929123474Swpaul To rebuild everything and install it on the current system. 1930123474Swpaul ----------------------------------------------------------- 1931123474Swpaul # Note: sometimes if you are running current you gotta do more than 1932123474Swpaul # is listed here if you are upgrading from a really old current. 1933123474Swpaul 1934123474Swpaul <make sure you have good level 0 dumps> 1935123474Swpaul make buildworld 1936123474Swpaul make kernel KERNCONF=YOUR_KERNEL_HERE 1937123474Swpaul [1] 1938123474Swpaul <reboot in single user> [3] 1939123474Swpaul mergemaster -p [5] 1940123474Swpaul make installworld 1941123474Swpaul mergemaster -i [4] 1942123474Swpaul make delete-old [6] 1943123474Swpaul <reboot> 1944123474Swpaul 1945123474Swpaul To cross-install current onto a separate partition 1946123474Swpaul -------------------------------------------------- 1947123474Swpaul # In this approach we use a separate partition to hold 1948123474Swpaul # current's root, 'usr', and 'var' directories. A partition 1949123474Swpaul # holding "/", "/usr" and "/var" should be about 2GB in 1950123474Swpaul # size. 1951123474Swpaul 1952123474Swpaul <make sure you have good level 0 dumps> 1953123474Swpaul <boot into -stable> 1954124165Swpaul make buildworld 1955124165Swpaul make buildkernel KERNCONF=YOUR_KERNEL_HERE 1956124165Swpaul <maybe newfs current's root partition> 1957124165Swpaul <mount current's root partition on directory ${CURRENT_ROOT}> 1958124135Swpaul make installworld DESTDIR=${CURRENT_ROOT} 1959124165Swpaul make distribution DESTDIR=${CURRENT_ROOT} # if newfs'd 1960124165Swpaul make installkernel KERNCONF=YOUR_KERNEL_HERE DESTDIR=${CURRENT_ROOT} 1961124165Swpaul cp /etc/fstab ${CURRENT_ROOT}/etc/fstab # if newfs'd 1962123474Swpaul <edit ${CURRENT_ROOT}/etc/fstab to mount "/" from the correct partition> 1963123474Swpaul <reboot into current> 1964123474Swpaul <do a "native" rebuild/install as described in the previous section> 1965123474Swpaul <maybe install compatibility libraries from ports/misc/compat*> 1966123474Swpaul <reboot> 1967123474Swpaul 1968123474Swpaul 1969123474Swpaul To upgrade in-place from stable to current 1970123474Swpaul ---------------------------------------------- 1971123474Swpaul <make sure you have good level 0 dumps> 1972123474Swpaul make buildworld [9] 1973123474Swpaul make kernel KERNCONF=YOUR_KERNEL_HERE [8] 1974123474Swpaul [1] 1975123474Swpaul <reboot in single user> [3] 1976123474Swpaul mergemaster -p [5] 1977123474Swpaul make installworld 1978123474Swpaul mergemaster -i [4] 1979123474Swpaul make delete-old [6] 1980123474Swpaul <reboot> 1981123474Swpaul 1982123474Swpaul Make sure that you've read the UPDATING file to understand the 1983123474Swpaul tweaks to various things you need. At this point in the life 1984123474Swpaul cycle of current, things change often and you are on your own 1985123474Swpaul to cope. The defaults can also change, so please read ALL of 1986123474Swpaul the UPDATING entries. 1987123474Swpaul 1988123474Swpaul Also, if you are tracking -current, you must be subscribed to 1989123474Swpaul freebsd-current@freebsd.org. Make sure that before you update 1990123474Swpaul your sources that you have read and understood all the recent 1991123474Swpaul messages there. If in doubt, please track -stable which has 1992123474Swpaul much fewer pitfalls. 1993123474Swpaul 1994123474Swpaul [1] If you have third party modules, such as vmware, you 1995123474Swpaul should disable them at this point so they don't crash your 1996123474Swpaul system on reboot. 1997123474Swpaul 1998123474Swpaul [3] From the bootblocks, boot -s, and then do 1999123474Swpaul fsck -p 2000123474Swpaul mount -u / 2001123474Swpaul mount -a 2002123474Swpaul cd src 2003123474Swpaul adjkerntz -i # if CMOS is wall time 2004123474Swpaul Also, when doing a major release upgrade, it is required that 2005123474Swpaul you boot into single user mode to do the installworld. 2006123474Swpaul 2007123474Swpaul [4] Note: This step is non-optional. Failure to do this step 2008123474Swpaul can result in a significant reduction in the functionality of the 2009123474Swpaul system. Attempting to do it by hand is not recommended and those 2010123474Swpaul that pursue this avenue should read this file carefully, as well 2011123474Swpaul as the archives of freebsd-current and freebsd-hackers mailing lists 2012123474Swpaul for potential gotchas. The -U option is also useful to consider. 2013123474Swpaul See mergemaster(8) for more information. 2014123474Swpaul 2015123474Swpaul [5] Usually this step is a noop. However, from time to time 2016123474Swpaul you may need to do this if you get unknown user in the following 2017123474Swpaul step. It never hurts to do it all the time. You may need to 2018123474Swpaul install a new mergemaster (cd src/usr.sbin/mergemaster && make 2019123474Swpaul install) after the buildworld before this step if you last updated 2020123757Swpaul from current before 20130425 or from -stable before 20130430. 2021123757Swpaul 2022123512Swpaul [6] This only deletes old files and directories. Old libraries 2023123512Swpaul can be deleted by "make delete-old-libs", but you have to make 2024123757Swpaul sure that no program is using those libraries anymore. 2025123474Swpaul 2026123474Swpaul [8] In order to have a kernel that can run the 4.x binaries needed to 2027123474Swpaul do an installworld, you must include the COMPAT_FREEBSD4 option in 2028123573Swpaul your kernel. Failure to do so may leave you with a system that is 2029123573Swpaul hard to boot to recover. A similar kernel option COMPAT_FREEBSD5 is 2030123573Swpaul required to run the 5.x binaries on more recent kernels. And so on 2031123573Swpaul for COMPAT_FREEBSD6 and COMPAT_FREEBSD7. 2032123757Swpaul 2033123757Swpaul Make sure that you merge any new devices from GENERIC since the 2034123757Swpaul last time you updated your kernel config file. 2035123573Swpaul 2036123573Swpaul [9] When checking out sources, you must include the -P flag to have 2037123573Swpaul cvs prune empty directories. 2038123573Swpaul 2039123573Swpaul If CPUTYPE is defined in your /etc/make.conf, make sure to use the 2040123474Swpaul "?=" instead of the "=" assignment operator, so that buildworld can 2041123474Swpaul override the CPUTYPE if it needs to. 2042123474Swpaul 2043123474Swpaul MAKEOBJDIRPREFIX must be defined in an environment variable, and 2044123474Swpaul not on the command line, or in /etc/make.conf. buildworld will 2045123757Swpaul warn if it is improperly defined. 2046123757SwpaulFORMAT: 2047123757Swpaul 2048123757SwpaulThis file contains a list, in reverse chronological order, of major 2049123474Swpaulbreakages in tracking -current. It is not guaranteed to be a complete 2050123474Swpaullist of such breakages, and only contains entries since October 10, 2007. 2051123474SwpaulIf you need to see UPDATING entries from before that date, you will need 2052123474Swpaulto fetch an UPDATING file from an older FreeBSD release. 2053123474Swpaul 2054123474SwpaulCopyright information: 2055123474Swpaul 2056123474SwpaulCopyright 1998-2009 M. Warner Losh. All Rights Reserved. 2057123474Swpaul 2058123474SwpaulRedistribution, publication, translation and use, with or without 2059123474Swpaulmodification, in full or in part, in any form or format of this 2060123474Swpauldocument are permitted without further permission from the author. 2061123474Swpaul 2062123474SwpaulTHIS DOCUMENT IS PROVIDED BY WARNER LOSH ``AS IS'' AND ANY EXPRESS OR 2063123474SwpaulIMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 2064123474SwpaulWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 2065124100SwpaulDISCLAIMED. IN NO EVENT SHALL WARNER LOSH BE LIABLE FOR ANY DIRECT, 2066123474SwpaulINDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 2067123474Swpaul(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 2068123474SwpaulSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 2069123474SwpaulHOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 2070123474SwpaulSTRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 2071123474SwpaulIN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 2072123474SwpaulPOSSIBILITY OF SUCH DAMAGE. 2073123474Swpaul 2074123474SwpaulContact Warner Losh if you have any questions about your use of 2075123474Swpaulthis document. 2076123474Swpaul 2077123474Swpaul$FreeBSD: releng/10.0/UPDATING 267017 2014-06-03 19:02:52Z delphij $ 2078123474Swpaul