UPDATING revision 285206
1139776SimpUpdating Information for FreeBSD current users 222521Sdyson 322521SdysonThis file is maintained and copyrighted by M. Warner Losh <imp@freebsd.org>. 4164829SrodrigcSee end of file for further details. For commonly done items, please see the 5234867SdaichiCOMMON ITEMS: section later in the file. These instructions assume that you 6234867Sdaichibasically know what you are doing. If not, then please consult the FreeBSD 7164829Srodrigchandbook: 81541Srgrimes 91541Srgrimes http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/makeworld.html 101541Srgrimes 111541SrgrimesItems affecting the ports and packages system can be found in 121541Srgrimes/usr/ports/UPDATING. Please read that file before running portupgrade. 131541Srgrimes 141541SrgrimesNOTE: FreeBSD has switched from gcc to clang. If you have trouble bootstrapping 151541Srgrimesfrom older versions of FreeBSD, try WITHOUT_CLANG to bootstrap to the tip of 161541Srgrimesstable/10, and then rebuild without this option. The bootstrap process from 171541Srgrimesolder version of current is a bit fragile. 181541Srgrimes 191541Srgrimes20150703: 201541Srgrimes The default Unbound configuration now enables remote control 211541Srgrimes using a local socket. Users who have already enabled the 221541Srgrimes local_unbound service should regenerate their configuration 231541Srgrimes by running "service local_unbound setup" as root. 241541Srgrimes 251541Srgrimes20150624: 261541Srgrimes An additional fix for the issue described in the 20150614 sendmail 271541Srgrimes entry below has been been committed in revision 284786. 281541Srgrimes 291541Srgrimes20150615: 301541Srgrimes The fix for the issue described in the 20150614 sendmail entry 311541Srgrimes below has been been committed in revision 284485. The work 321541Srgrimes around described in that entry is no longer needed unless the 331541Srgrimes default setting is overridden by a confDH_PARAMETERS configuration 341541Srgrimes setting of '5' or pointing to a 512 bit DH parameter file. 351541Srgrimes 3622521Sdyson20150614: 3750477Speter The import of openssl to address the FreeBSD-SA-15:10.openssl 38164829Srodrigc security advisory includes a change which rejects handshakes 391541Srgrimes with DH parameters below 768 bits. sendmail releases prior 401541Srgrimes to 8.15.2 (not yet released), defaulted to a 512 bit 411541Srgrimes DH parameter setting for client connections. To work around 421541Srgrimes this interoperability, sendmail can be configured to use a 43164829Srodrigc 2048 bit DH parameter by: 4422594Sbde 45164829Srodrigc 1. Edit /etc/mail/`hostname`.mc 46164829Srodrigc 2. If a setting for confDH_PARAMETERS does not exist or 471541Srgrimes exists and is set to a string beginning with '5', 48164829Srodrigc replace it with '2'. 491541Srgrimes 3. If a setting for confDH_PARAMETERS exists and is set to 5051688Sdillon a file path, create a new file with: 51164829Srodrigc openssl dhparam -out /path/to/file 2048 52164829Srodrigc 4. Rebuild the .cf file: 53164829Srodrigc cd /etc/mail/; make; make install 54164829Srodrigc 5. Restart sendmail: 55164829Srodrigc cd /etc/mail/; make restart 56164829Srodrigc 57164836Srodrigc A sendmail patch is coming, at which time this file will be 58164836Srodrigc updated. 59164829Srodrigc 6077031Sru20150601: 611541Srgrimes chmod, chflags, chown and chgrp now affect symlinks in -R mode as 6251688Sdillon defined in symlink(7); previously symlinks were silently ignored. 63164829Srodrigc 64164829Srodrigc20150430: 6551688Sdillon The const qualifier has been removed from iconv(3) to comply with 661541Srgrimes POSIX. The ports tree is aware of this from r384038 onwards. 67164829Srodrigc 68164829Srodrigc20141215: 69164829Srodrigc At svn r275807, The default linux compat kernel ABI has been adjusted 7051688Sdillon to 2.6.18 in support of the linux-c6 compat ports infrastructure 71164829Srodrigc update. If you wish to continue using the linux-f10 compat ports, 7251688Sdillon add compat.linux.osrelease=2.6.16 to your local sysctl.conf. Users are 7351688Sdillon encouraged to update their linux-compat packages to linux-c6 during 74185283Sdaichi their next update cycle. 75185283Sdaichi 76185283Sdaichi See ports/UPDATING 20141209 and 20141215 on migration to CentOS 6 ports. 77185283Sdaichi 78164829Srodrigc20141205: 79172637Sdaichi pjdfstest has been integrated into kyua as an opt-in test suite. 8051688Sdillon Please see share/doc/pjdfstest/README for a more details on how to 81164829Srodrigc execute it. 82164829Srodrigc 83164829Srodrigc20141118: 84164829Srodrigc 10.1-RELEASE. 85164829Srodrigc 86164829Srodrigc20140904: 87164829Srodrigc The ofwfb driver, used to provide a graphics console on PowerPC when 88164829Srodrigc using vt(4), no longer allows mmap() of all of physical memory. This 89164829Srodrigc will prevent Xorg on PowerPC with some ATI graphics cards from 90164829Srodrigc initializing properly unless x11-servers/xorg-server is updated to 9151688Sdillon 1.12.4_8 or newer. 92164829Srodrigc 93164829Srodrigc20140831: 94164829Srodrigc The libatf-c and libatf-c++ major versions were downgraded to 0 and 95164829Srodrigc 1 respectively to match the upstream numbers. They were out of 96164829Srodrigc sync because, when they were originally added to FreeBSD, the 97164829Srodrigc upstream versions were not respected. These libraries are private 98164829Srodrigc and not yet built by default, so renumbering them should be a 99164829Srodrigc non-issue. However, unclean source trees will yield broken test 100164829Srodrigc programs once the operator executes "make delete-old-libs" after a 101164829Srodrigc "make installworld". 102164829Srodrigc 103164829Srodrigc Additionally, the atf-sh binary was made private by moving it into 104164829Srodrigc /usr/libexec/. Already-built shell test programs will keep the 10551688Sdillon path to the old binary so they will break after "make delete-old" 106164829Srodrigc is run. 10751688Sdillon 108164829Srodrigc If you are using WITH_TESTS=yes (not the default), wipe the object 109164829Srodrigc tree and rebuild from scratch to prevent spurious test failures. 11051688Sdillon This is only needed once: the misnumbered libraries and misplaced 1111541Srgrimes binaries have been added to OptionalObsoleteFiles.inc so they will 112164829Srodrigc be removed during a clean upgrade. 1131541Srgrimes 114164829Srodrigc20140814: 115164829Srodrigc The ixgbe tunables now match their sysctl counterparts, for example: 116164829Srodrigc hw.ixgbe.enable_aim => hw.ix.enable_aim 117164829Srodrigc Anyone using ixgbe tunables should ensure they update /boot/loader.conf. 1181541Srgrimes 11951688Sdillon20140801: 120164829Srodrigc The NFSv4.1 server committed by r269398 changes the internal 12151688Sdillon function call interfaces used between the NFS and krpc modules. 122164829Srodrigc As such, __FreeBSD_version was bumped. 123164829Srodrigc 124164829Srodrigc20140729: 12551688Sdillon The default unbound configuration has been modified to address 126164829Srodrigc issues with reverse lookups on networks that use private 127164829Srodrigc address ranges. If you use the local_unbound service, run 128164829Srodrigc "service local_unbound setup" as root to regenerate your 129234867Sdaichi configuration, then "service local_unbound reload" to load the 130164829Srodrigc new configuration. 131164829Srodrigc 132164829Srodrigc20140717: 13351688Sdillon It is no longer necessary to include the dwarf version in your DEBUG 134164829Srodrigc options in your kernel config file. The bug that required it to be 13551688Sdillon placed in the config file has bene fixed. DEBUG should now just 136164829Srodrigc contain -g. The build system will automatically update things 137234867Sdaichi to do the right thing. 138175202Sattilio 139164829Srodrigc20140715: 1401541Srgrimes Several ABI breaking changes were merged to CTL and new iSCSI code. 141164829Srodrigc All CTL and iSCSI-related tools, such as ctladm, ctld, iscsid and 142164829Srodrigc iscsictl need to be rebuilt to work with a new kernel. 143164829Srodrigc 144164829Srodrigc20140708: 145164829Srodrigc The WITHOUT_VT_SUPPORT kernel config knob has been renamed 146164829Srodrigc WITHOUT_VT. (The other _SUPPORT knobs have a consistent meaning 147164829Srodrigc which differs from the behaviour controlled by this knob.) 148164829Srodrigc 149234867Sdaichi20140608: 150164829Srodrigc On i386 and amd64 systems, the onifconsole flag is now set by default 15151688Sdillon in /etc/ttys for ttyu0. This causes ttyu0 to be automatically enabled 152234867Sdaichi as a login TTY if it is set in the bootloader as an active kernel 153164829Srodrigc console. No changes in behavior should result otherwise. To revert to 154164829Srodrigc the previous behavior, set ttyu0 to "off" in /etc/ttys. 1551541Srgrimes 156164829Srodrigc20140512: 157175202Sattilio Clang and llvm have been upgraded to 3.4.1 release. 158164829Srodrigc 159175202Sattilio20140321: 160175202Sattilio Clang and llvm have been upgraded to 3.4 release. 16151688Sdillon 162175202Sattilio20140306: 163276500Skib If a Makefile in a tests/ directory was auto-generating a Kyuafile 164172637Sdaichi instead of providing an explicit one, this would prevent such 1651541Srgrimes Makefile from providing its own Kyuafile in the future during 166164829Srodrigc NO_CLEAN builds. This has been fixed in the Makefiles but manual 1671541Srgrimes intervention is needed to clean an objdir if you use NO_CLEAN: 168164829Srodrigc # find /usr/obj -name Kyuafile | xargs rm -f 16922521Sdyson 17022521Sdyson20140303: 17151688Sdillon OpenSSH will now ignore errors caused by kernel lacking of Capsicum 172164829Srodrigc capability mode support. Please note that enabling the feature in 17351688Sdillon kernel is still highly recommended. 174164829Srodrigc 175164829Srodrigc20140227: 1761541Srgrimes OpenSSH is now built with sandbox support, and will use sandbox as 177164829Srodrigc the default privilege separation method. This requires Capsicum 178164829Srodrigc capability mode support in kernel. 179164829Srodrigc 180164829Srodrigc20140216: 181164829Srodrigc The nve(4) driver for NVIDIA nForce MCP Ethernet adapters has 1821541Srgrimes been deprecated and will not be part of FreeBSD 11.0 and later 183164829Srodrigc releases. If you use this driver, please consider switching to 18432598Skato the nfe(4) driver instead. 185164829Srodrigc 18651688Sdillon20140120: 187164829Srodrigc 10.0-RELEASE. 188164829Srodrigc 189234867Sdaichi20131216: 1901541Srgrimes The behavior of gss_pseudo_random() for the krb5 mechanism 19151688Sdillon has changed, for applications requesting a longer random string 192164829Srodrigc than produced by the underlying enctype's pseudo-random() function. 193164829Srodrigc In particular, the random string produced from a session key of 194164829Srodrigc enctype aes256-cts-hmac-sha1-96 or aes256-cts-hmac-sha1-96 will 195164829Srodrigc be different at the 17th octet and later, after this change. 196164829Srodrigc The counter used in the PRF+ construction is now encoded as a 197182371Sattilio big-endian integer in accordance with RFC 4402. 198164829Srodrigc __FreeBSD_version is bumped to 1000701. 199164829Srodrigc 200164829Srodrigc20131108: 201164829Srodrigc The WITHOUT_ATF build knob has been removed and its functionality 202164829Srodrigc has been subsumed into the more generic WITHOUT_TESTS. If you were 2031541Srgrimes using the former to disable the build of the ATF libraries, you 2041541Srgrimes should change your settings to use the latter. 2051541Srgrimes 206164829Srodrigc20131031: 2071541Srgrimes The default version of mtree is nmtree which is obtained from 208164829Srodrigc NetBSD. The output is generally the same, but may vary 209164829Srodrigc slightly. If you found you need identical output adding 210164829Srodrigc "-F freebsd9" to the command line should do the trick. For the 211164829Srodrigc time being, the old mtree is available as fmtree. 212164829Srodrigc 21351688Sdillon20131014: 214164829Srodrigc libbsdyml has been renamed to libyaml and moved to /usr/lib/private. 2151541Srgrimes This will break ports-mgmt/pkg. Rebuild the port, or upgrade to pkg 216164829Srodrigc 1.1.4_8 and verify bsdyml not linked in, before running "make 217164829Srodrigc delete-old-libs": 218164829Srodrigc # make -C /usr/ports/ports-mgmt/pkg build deinstall install clean 2191541Srgrimes or 220164829Srodrigc # pkg install pkg; ldd /usr/local/sbin/pkg | grep bsdyml 221164829Srodrigc 222164829Srodrigc20131010: 223164829Srodrigc The rc.d/jail script has been updated to support jail(8) 224164829Srodrigc configuration file. The "jail_<jname>_*" rc.conf(5) variables 225164829Srodrigc for per-jail configuration are automatically converted to 226164829Srodrigc /var/run/jail.<jname>.conf before the jail(8) utility is invoked. 22751688Sdillon This is transparently backward compatible. See below about some 228164829Srodrigc incompatibilities and rc.conf(5) manual page for more details. 22951688Sdillon 230164829Srodrigc These variables are now deprecated in favor of jail(8) configuration 2311541Srgrimes file. One can use "rc.d/jail config <jname>" command to generate 232164829Srodrigc a jail(8) configuration file in /var/run/jail.<jname>.conf without 233234867Sdaichi running the jail(8) utility. The default pathname of the 2341541Srgrimes configuration file is /etc/jail.conf and can be specified by 2351541Srgrimes using $jail_conf or $jail_<jname>_conf variables. 2361541Srgrimes 2371541Srgrimes Please note that jail_devfs_ruleset accepts an integer at 238164829Srodrigc this moment. Please consider to rewrite the ruleset name 2391541Srgrimes with an integer. 240164829Srodrigc 241164829Srodrigc20130930: 242164829Srodrigc BIND has been removed from the base system. If all you need 243164829Srodrigc is a local resolver, simply enable and start the local_unbound 244164829Srodrigc service instead. Otherwise, several versions of BIND are 2451541Srgrimes available in the ports tree. The dns/bind99 port is one example. 246164829Srodrigc 247164829Srodrigc With this change, nslookup(1) and dig(1) are no longer in the base 248164829Srodrigc system. Users should instead use host(1) and drill(1) which are 249164829Srodrigc in the base system. Alternatively, nslookup and dig can 250164829Srodrigc be obtained by installing the dns/bind-tools port. 251164829Srodrigc 2521541Srgrimes20130916: 2531541Srgrimes With the addition of unbound(8), a new unbound user is now 254164829Srodrigc required during installworld. "mergemaster -p" can be used to 255164829Srodrigc add the user prior to installworld, as documented in the handbook. 256164829Srodrigc 257164829Srodrigc20130911: 258164829Srodrigc OpenSSH is now built with DNSSEC support, and will by default 259164829Srodrigc silently trust signed SSHFP records. This can be controlled with 260164829Srodrigc the VerifyHostKeyDNS client configuration setting. DNSSEC support 261164829Srodrigc can be disabled entirely with the WITHOUT_LDNS option in src.conf. 262164829Srodrigc 263164829Srodrigc20130906: 264164829Srodrigc The GNU Compiler Collection and C++ standard library (libstdc++) 265164829Srodrigc are no longer built by default on platforms where clang is the system 266164829Srodrigc compiler. You can enable them with the WITH_GCC and WITH_GNUCXX 267164829Srodrigc options in src.conf. 268234867Sdaichi 269176559Sattilio20130905: 270175202Sattilio The PROCDESC kernel option is now part of the GENERIC kernel 271164829Srodrigc configuration and is required for the rwhod(8) to work. 2721541Srgrimes If you are using custom kernel configuration, you should include 273164829Srodrigc 'options PROCDESC'. 274164829Srodrigc 275164829Srodrigc20130905: 276234867Sdaichi The API and ABI related to the Capsicum framework was modified 277164829Srodrigc in backward incompatible way. The userland libraries and programs 278164829Srodrigc have to be recompiled to work with the new kernel. This includes the 279164829Srodrigc following libraries and programs, but the whole buildworld is 280164829Srodrigc advised: libc, libprocstat, dhclient, tcpdump, hastd, hastctl, 281164829Srodrigc kdump, procstat, rwho, rwhod, uniq. 282164829Srodrigc 283164829Srodrigc20130903: 284164829Srodrigc AES-NI intrinsic support has been added to gcc. The AES-NI module 285164829Srodrigc has been updated to use this support. A new gcc is required to build 286175202Sattilio the aesni module on both i386 and amd64. 2871541Srgrimes 28851688Sdillon20130821: 289164829Srodrigc The PADLOCK_RNG and RDRAND_RNG kernel options are now devices. 29051688Sdillon Thus "device padlock_rng" and "device rdrand_rng" should be 291164829Srodrigc used instead of "options PADLOCK_RNG" & "options RDRAND_RNG". 292164829Srodrigc 293164829Srodrigc20130813: 294164829Srodrigc WITH_ICONV has been split into two feature sets. WITH_ICONV now 295164829Srodrigc enables just the iconv* functionality and is now on by default. 296164829Srodrigc WITH_LIBICONV_COMPAT enables the libiconv api and link time 297164829Srodrigc compatability. Set WITHOUT_ICONV to build the old way. 298185283Sdaichi If you have been using WITH_ICONV before, you will very likely 299185283Sdaichi need to turn on WITH_LIBICONV_COMPAT. 300185283Sdaichi 301185283Sdaichi20130806: 302185283Sdaichi INVARIANTS option now enables DEBUG for code with OpenSolaris and 303185283Sdaichi Illumos origin, including ZFS. If you have INVARIANTS in your 304185283Sdaichi kernel configuration, then there is no need to set DEBUG or ZFS_DEBUG 305185283Sdaichi explicitly. 306185283Sdaichi DEBUG used to enable witness(9) tracking of OpenSolaris (mostly ZFS) 307185283Sdaichi locks if WITNESS option was set. Because that generated a lot of 308185283Sdaichi witness(9) reports and all of them were believed to be false 309185283Sdaichi positives, this is no longer done. New option OPENSOLARIS_WITNESS 310185283Sdaichi can be used to achieve the previous behavior. 311185283Sdaichi 312185283Sdaichi20130806: 313185283Sdaichi Timer values in IPv6 data structures now use time_uptime instead 314185283Sdaichi of time_second. Although this is not a user-visible functional 315185283Sdaichi change, userland utilities which directly use them---ndp(8), 316185283Sdaichi rtadvd(8), and rtsold(8) in the base system---need to be updated 317185283Sdaichi to r253970 or later. 318185283Sdaichi 319164829Srodrigc20130802: 320164829Srodrigc find -delete can now delete the pathnames given as arguments, 321164829Srodrigc instead of only files found below them or if the pathname did 322164829Srodrigc not contain any slashes. Formerly, the following error message 323164829Srodrigc would result: 324164829Srodrigc 325175202Sattilio find: -delete: <path>: relative path potentially not safe 326164829Srodrigc 32751688Sdillon Deleting the pathnames given as arguments can be prevented 328164829Srodrigc without error messages using -mindepth 1 or by changing 3291541Srgrimes directory and passing "." as argument to find. This works in the 330185283Sdaichi old as well as the new version of find. 331172637Sdaichi 332172637Sdaichi20130726: 333164829Srodrigc Behavior of devfs rules path matching has been changed. 334164829Srodrigc Pattern is now always matched against fully qualified devfs 335164829Srodrigc path and slash characters must be explicitly matched by 336164829Srodrigc slashes in pattern (FNM_PATHNAME). Rulesets involving devfs 337164829Srodrigc subdirectories must be reviewed. 3381541Srgrimes 339276500Skib20130716: 340172637Sdaichi The default ARM ABI has changed to the ARM EABI. The old ABI is 341172637Sdaichi incompatible with the ARM EABI and all programs and modules will 342164829Srodrigc need to be rebuilt to work with a new kernel. 34351688Sdillon 344164829Srodrigc To keep using the old ABI ensure the WITHOUT_ARM_EABI knob is set. 345164829Srodrigc 34651688Sdillon NOTE: Support for the old ABI will be removed in the future and 347164829Srodrigc users are advised to upgrade. 348164829Srodrigc 349164829Srodrigc20130709: 350164829Srodrigc pkg_install has been disconnected from the build if you really need it 351164829Srodrigc you should add WITH_PKGTOOLS in your src.conf(5). 352164829Srodrigc 353164829Srodrigc20130709: 354164829Srodrigc Most of network statistics structures were changed to be able 35551688Sdillon keep 64-bits counters. Thus all tools, that work with networking 356164829Srodrigc statistics, must be rebuilt (netstat(1), bsnmpd(1), etc.) 357164829Srodrigc 358185283Sdaichi20130629: 359185283Sdaichi Fix targets that run multiple make's to use && rather than ; 360164829Srodrigc so that subsequent steps depend on success of previous. 361164829Srodrigc 362164829Srodrigc NOTE: if building 'universe' with -j* on stable/8 or stable/9 363164829Srodrigc it would be better to start the build using bmake, to avoid 364164829Srodrigc overloading the machine. 365164829Srodrigc 366185283Sdaichi20130618: 367185283Sdaichi Fix a bug that allowed a tracing process (e.g. gdb) to write 368185283Sdaichi to a memory-mapped file in the traced process's address space 369185283Sdaichi even if neither the traced process nor the tracing process had 370185283Sdaichi write access to that file. 371185283Sdaichi 372185283Sdaichi20130615: 373234867Sdaichi CVS has been removed from the base system. An exact copy 374164829Srodrigc of the code is available from the devel/cvs port. 375175294Sattilio 376164829Srodrigc20130613: 377164829Srodrigc Some people report the following error after the switch to bmake: 37851688Sdillon 37951688Sdillon make: illegal option -- J 380185283Sdaichi usage: make [-BPSXeiknpqrstv] [-C directory] [-D variable] 381164829Srodrigc ... 38251688Sdillon *** [buildworld] Error code 2 383164829Srodrigc 384164829Srodrigc this likely due to an old instance of make in 38551688Sdillon ${MAKEPATH} (${MAKEOBJDIRPREFIX}${.CURDIR}/make.${MACHINE}) 386164829Srodrigc which src/Makefile will use that blindly, if it exists, so if 387164829Srodrigc you see the above error: 388164829Srodrigc 389164829Srodrigc rm -rf `make -V MAKEPATH` 390164829Srodrigc 391164829Srodrigc should resolve it. 392164829Srodrigc 39351688Sdillon20130516: 394164829Srodrigc Use bmake by default. 395164829Srodrigc Whereas before one could choose to build with bmake via 396185283Sdaichi -DWITH_BMAKE one must now use -DWITHOUT_BMAKE to use the old 397185283Sdaichi make. The goal is to remove these knobs for 10-RELEASE. 398164829Srodrigc 399164829Srodrigc It is worth noting that bmake (like gmake) treats the command 400164829Srodrigc line as the unit of failure, rather than statements within the 401164829Srodrigc command line. Thus '(cd some/where && dosomething)' is safer 402164829Srodrigc than 'cd some/where; dosomething'. The '()' allows consistent 403164829Srodrigc behavior in parallel build. 404164829Srodrigc 405164829Srodrigc20130429: 406164829Srodrigc Fix a bug that allows NFS clients to issue READDIR on files. 407164829Srodrigc 408164829Srodrigc20130426: 409164829Srodrigc The WITHOUT_IDEA option has been removed because 410164829Srodrigc the IDEA patent expired. 411164829Srodrigc 412164829Srodrigc20130426: 41328233Skato The sysctl which controls TRIM support under ZFS has been renamed 4141541Srgrimes from vfs.zfs.trim_disable -> vfs.zfs.trim.enabled and has been 4151541Srgrimes enabled by default. 416164829Srodrigc 417164829Srodrigc20130425: 4181541Srgrimes The mergemaster command now uses the default MAKEOBJDIRPREFIX 4191541Srgrimes rather than creating it's own in the temporary directory in 4201541Srgrimes order allow access to bootstrapped versions of tools such as 42125535Skato install and mtree. When upgrading from version of FreeBSD where 422164829Srodrigc the install command does not support -l, you will need to 4231541Srgrimes install a new mergemaster command if mergemaster -p is required. 424164829Srodrigc This can be accomplished with the command (cd src/usr.sbin/mergemaster 425164829Srodrigc && make install). 426164829Srodrigc 427164829Srodrigc20130404: 428164829Srodrigc Legacy ATA stack, disabled and replaced by new CAM-based one since 4291541Srgrimes FreeBSD 9.0, completely removed from the sources. Kernel modules 430164829Srodrigc atadisk and atapi*, user-level tools atacontrol and burncd are 4311541Srgrimes removed. Kernel option `options ATA_CAM` is now permanently enabled 432185283Sdaichi and removed. 433185283Sdaichi 434164829Srodrigc20130319: 435164829Srodrigc SOCK_CLOEXEC and SOCK_NONBLOCK flags have been added to socket(2) 436164829Srodrigc and socketpair(2). Software, in particular Kerberos, may 437164829Srodrigc automatically detect and use these during building. The resulting 438164829Srodrigc binaries will not work on older kernels. 439164829Srodrigc 440185283Sdaichi20130308: 441185283Sdaichi CTL_DISABLE has also been added to the sparc64 GENERIC (for further 442185283Sdaichi information, see the respective 20130304 entry). 443185283Sdaichi 444185283Sdaichi20130304: 445185283Sdaichi Recent commits to callout(9) changed the size of struct callout, 446185283Sdaichi so the KBI is probably heavily disturbed. Also, some functions 447234867Sdaichi in callout(9)/sleep(9)/sleepqueue(9)/condvar(9) KPIs were replaced 448164829Srodrigc by macros. Every kernel module using it won't load, so rebuild 449175294Sattilio is requested. 450164829Srodrigc 45135823Smsmith The ctl device has been re-enabled in GENERIC for i386 and amd64, 4521541Srgrimes but does not initialize by default (because of the new CTL_DISABLE 453164829Srodrigc option) to save memory. To re-enable it, remove the CTL_DISABLE 454185283Sdaichi option from the kernel config file or set kern.cam.ctl.disable=0 455164829Srodrigc in /boot/loader.conf. 456164829Srodrigc 45751688Sdillon20130301: 4581541Srgrimes The ctl device has been disabled in GENERIC for i386 and amd64. 4591541Srgrimes This was done due to the extra memory being allocated at system 46025535Skato initialisation time by the ctl driver which was only used if 461164829Srodrigc a CAM target device was created. This makes a FreeBSD system 46222521Sdyson unusable on 128MB or less of RAM. 463164829Srodrigc 464164829Srodrigc20130208: 465164829Srodrigc A new compression method (lz4) has been merged to -HEAD. Please 466164829Srodrigc refer to zpool-features(7) for more information. 467164829Srodrigc 468164829Srodrigc Please refer to the "ZFS notes" section of this file for information 469164829Srodrigc on upgrading boot ZFS pools. 470164829Srodrigc 47122521Sdyson20130129: 472164829Srodrigc A BSD-licensed patch(1) variant has been added and is installed 473164829Srodrigc as bsdpatch, being the GNU version the default patch. 474185283Sdaichi To inverse the logic and use the BSD-licensed one as default, 475185283Sdaichi while having the GNU version installed as gnupatch, rebuild 476164829Srodrigc and install world with the WITH_BSD_PATCH knob set. 477164829Srodrigc 478164829Srodrigc20130121: 479164829Srodrigc Due to the use of the new -l option to install(1) during build 480164829Srodrigc and install, you must take care not to directly set the INSTALL 481164829Srodrigc make variable in your /etc/make.conf, /etc/src.conf, or on the 482164829Srodrigc command line. If you wish to use the -C flag for all installs 483164829Srodrigc you may be able to add INSTALL+=-C to /etc/make.conf or 484164829Srodrigc /etc/src.conf. 485164829Srodrigc 486164829Srodrigc20130118: 487164829Srodrigc The install(1) option -M has changed meaning and now takes an 488164829Srodrigc argument that is a file or path to append logs to. In the 489164829Srodrigc unlikely event that -M was the last option on the command line 490164829Srodrigc and the command line contained at least two files and a target 491164829Srodrigc directory the first file will have logs appended to it. The -M 492164829Srodrigc option served little practical purpose in the last decade so its 493164829Srodrigc use is expected to be extremely rare. 494164829Srodrigc 495164829Srodrigc20121223: 496164829Srodrigc After switching to Clang as the default compiler some users of ZFS 497164829Srodrigc on i386 systems started to experience stack overflow kernel panics. 498164829Srodrigc Please consider using 'options KSTACK_PAGES=4' in such configurations. 499164829Srodrigc 500164829Srodrigc20121222: 501164829Srodrigc GEOM_LABEL now mangles label names read from file system metadata. 502164829Srodrigc Mangling affect labels containing spaces, non-printable characters, 503164829Srodrigc '%' or '"'. Device names in /etc/fstab and other places may need to 504164829Srodrigc be updated. 505164829Srodrigc 506164829Srodrigc20121217: 507116366Sdas By default, only the 10 most recent kernel dumps will be saved. To 508164829Srodrigc restore the previous behaviour (no limit on the number of kernel dumps 509116366Sdas stored in the dump directory) add the following line to /etc/rc.conf: 510164829Srodrigc 511170152Skib savecore_flags="" 512164829Srodrigc 513164829Srodrigc20121201: 514164829Srodrigc With the addition of auditdistd(8), a new auditdistd user is now 515164829Srodrigc required during installworld. "mergemaster -p" can be used to 516164829Srodrigc add the user prior to installworld, as documented in the handbook. 517170152Skib 518164829Srodrigc20121117: 519164829Srodrigc The sin6_scope_id member variable in struct sockaddr_in6 is now 520164829Srodrigc filled by the kernel before passing the structure to the userland via 521164829Srodrigc sysctl or routing socket. This means the KAME-specific embedded scope 522164829Srodrigc id in sin6_addr.s6_addr[2] is always cleared in userland application. 523164829Srodrigc This behavior can be controlled by net.inet6.ip6.deembed_scopeid. 524164829Srodrigc __FreeBSD_version is bumped to 1000025. 525164829Srodrigc 526164829Srodrigc20121105: 527164829Srodrigc On i386 and amd64 systems WITH_CLANG_IS_CC is now the default. 528164829Srodrigc This means that the world and kernel will be compiled with clang 529164829Srodrigc and that clang will be installed as /usr/bin/cc, /usr/bin/c++, 530164829Srodrigc and /usr/bin/cpp. To disable this behavior and revert to building 531164829Srodrigc with gcc, compile with WITHOUT_CLANG_IS_CC. Really old versions 532164829Srodrigc of current may need to bootstrap WITHOUT_CLANG first if the clang 533164829Srodrigc build fails (its compatibility window doesn't extend to the 9 stable 534164829Srodrigc branch point). 535178491Sdaichi 536164829Srodrigc20121102: 537164829Srodrigc The IPFIREWALL_FORWARD kernel option has been removed. Its 538164829Srodrigc functionality now turned on by default. 539116366Sdas 54022521Sdyson20121023: 54122521Sdyson The ZERO_COPY_SOCKET kernel option has been removed and 54225535Skato split into SOCKET_SEND_COW and SOCKET_RECV_PFLIP. 543164829Srodrigc NB: SOCKET_SEND_COW uses the VM page based copy-on-write 5441541Srgrimes mechanism which is not safe and may result in kernel crashes. 545164829Srodrigc NB: The SOCKET_RECV_PFLIP mechanism is useless as no current 546164829Srodrigc driver supports disposeable external page sized mbuf storage. 547164829Srodrigc Proper replacements for both zero-copy mechanisms are under 548164829Srodrigc consideration and will eventually lead to complete removal 549164829Srodrigc of the two kernel options. 550164829Srodrigc 551234867Sdaichi20121023: 552164829Srodrigc The IPv4 network stack has been converted to network byte 5531541Srgrimes order. The following modules need to be recompiled together 554164829Srodrigc with kernel: carp(4), divert(4), gif(4), siftr(4), gre(4), 555164829Srodrigc pf(4), ipfw(4), ng_ipfw(4), stf(4). 556185283Sdaichi 557185283Sdaichi20121022: 558164829Srodrigc Support for non-MPSAFE filesystems was removed from VFS. The 559234867Sdaichi VFS_VERSION was bumped, all filesystem modules shall be 560234867Sdaichi recompiled. 561164829Srodrigc 562164829Srodrigc20121018: 563164829Srodrigc All the non-MPSAFE filesystems have been disconnected from 564234867Sdaichi the build. The full list includes: codafs, hpfs, ntfs, nwfs, 565234867Sdaichi portalfs, smbfs, xfs. 566234867Sdaichi 567164829Srodrigc20121016: 5681541Srgrimes The interface cloning API and ABI has changed. The following 569164829Srodrigc modules need to be recompiled together with kernel: 5701541Srgrimes ipfw(4), pfsync(4), pflog(4), usb(4), wlan(4), stf(4), 571164829Srodrigc vlan(4), disc(4), edsc(4), if_bridge(4), gif(4), tap(4), 572164829Srodrigc faith(4), epair(4), enc(4), tun(4), if_lagg(4), gre(4). 573164829Srodrigc 574164829Srodrigc20121015: 575164829Srodrigc The sdhci driver was split in two parts: sdhci (generic SD Host 576164829Srodrigc Controller logic) and sdhci_pci (actual hardware driver). 577164829Srodrigc No kernel config modifications are required, but if you 578164829Srodrigc load sdhc as a module you must switch to sdhci_pci instead. 579164829Srodrigc 580164829Srodrigc20121014: 581164829Srodrigc Import the FUSE kernel and userland support into base system. 582164829Srodrigc 58351688Sdillon20121013: 584164829Srodrigc The GNU sort(1) program has been removed since the BSD-licensed 5851541Srgrimes sort(1) has been the default for quite some time and no serious 586164829Srodrigc problems have been reported. The corresponding WITH_GNU_SORT 587164829Srodrigc knob has also gone. 588164829Srodrigc 589234867Sdaichi20121006: 590164829Srodrigc The pfil(9) API/ABI for AF_INET family has been changed. Packet 591164829Srodrigc filtering modules: pf(4), ipfw(4), ipfilter(4) need to be recompiled 592164829Srodrigc with new kernel. 593164829Srodrigc 594164829Srodrigc20121001: 595164829Srodrigc The net80211(4) ABI has been changed to allow for improved driver 596164829Srodrigc PS-POLL and power-save support. All wireless drivers need to be 597164829Srodrigc recompiled to work with the new kernel. 598164829Srodrigc 599164829Srodrigc20120913: 600234867Sdaichi The random(4) support for the VIA hardware random number 6011541Srgrimes generator (`PADLOCK') is no longer enabled unconditionally. 602164829Srodrigc Add the padlock_rng device in the custom kernel config if 603164829Srodrigc needed. The GENERIC kernels on i386 and amd64 do include the 6041541Srgrimes device, so the change only affects the custom kernel 605164829Srodrigc configurations. 606178491Sdaichi 60751688Sdillon20120908: 608164829Srodrigc The pf(4) packet filter ABI has been changed. pfctl(8) and 609234867Sdaichi snmp_pf module need to be recompiled to work with new kernel. 610164829Srodrigc 611164829Srodrigc20120828: 612164829Srodrigc A new ZFS feature flag "com.delphix:empty_bpobj" has been merged 6131541Srgrimes to -HEAD. Pools that have empty_bpobj in active state can not be 6141541Srgrimes imported read-write with ZFS implementations that do not support 6151541Srgrimes this feature. For more information read the zpool-features(5) 61651688Sdillon manual page. 617164829Srodrigc 61851688Sdillon20120727: 61925535Skato The sparc64 ZFS loader has been changed to no longer try to auto- 620184413Strasz detect ZFS providers based on diskN aliases but now requires these 621164829Srodrigc to be explicitly listed in the OFW boot-device environment variable. 622164829Srodrigc 6231541Srgrimes20120712: 624164829Srodrigc The OpenSSL has been upgraded to 1.0.1c. Any binaries requiring 625164829Srodrigc libcrypto.so.6 or libssl.so.6 must be recompiled. Also, there are 626164829Srodrigc configuration changes. Make sure to merge /etc/ssl/openssl.cnf. 627164829Srodrigc 628164829Srodrigc20120712: 6291541Srgrimes The following sysctls and tunables have been renamed for consistency 630164829Srodrigc with other variables: 631164829Srodrigc kern.cam.da.da_send_ordered -> kern.cam.da.send_ordered 632164829Srodrigc kern.cam.ada.ada_send_ordered -> kern.cam.ada.send_ordered 633164829Srodrigc 634164829Srodrigc20120628: 635164829Srodrigc The sort utility has been replaced with BSD sort. For now, GNU sort 636164829Srodrigc is also available as "gnusort" or the default can be set back to 637184413Strasz GNU sort by setting WITH_GNU_SORT. In this case, BSD sort will be 638164829Srodrigc installed as "bsdsort". 639184413Strasz 640164829Srodrigc20120611: 641184413Strasz A new version of ZFS (pool version 5000) has been merged to -HEAD. 642164829Srodrigc Starting with this version the old system of ZFS pool versioning 643164829Srodrigc is superseded by "feature flags". This concept enables forward 6441541Srgrimes compatibility against certain future changes in functionality of ZFS 645164829Srodrigc pools. The first read-only compatible "feature flag" for ZFS pools 646164829Srodrigc is named "com.delphix:async_destroy". For more information 647164829Srodrigc read the new zpool-features(5) manual page. 648194498Sbrooks Please refer to the "ZFS notes" section of this file for information 649194498Sbrooks on upgrading boot ZFS pools. 650194498Sbrooks 651194498Sbrooks20120417: 652194498Sbrooks The malloc(3) implementation embedded in libc now uses sources imported 653194498Sbrooks as contrib/jemalloc. The most disruptive API change is to 654194498Sbrooks /etc/malloc.conf. If your system has an old-style /etc/malloc.conf, 655194498Sbrooks delete it prior to installworld, and optionally re-create it using the 656164829Srodrigc new format after rebooting. See malloc.conf(5) for details 657164829Srodrigc (specifically the TUNING section and the "opt.*" entries in the MALLCTL 658164829Srodrigc NAMESPACE section). 659184413Strasz 660164829Srodrigc20120328: 661184413Strasz Big-endian MIPS TARGET_ARCH values no longer end in "eb". mips64eb 662164829Srodrigc is now spelled mips64. mipsn32eb is now spelled mipsn32. mipseb is 663184413Strasz now spelled mips. This is to aid compatibility with third-party 664164829Srodrigc software that expects this naming scheme in uname(3). Little-endian 665164829Srodrigc settings are unchanged. If you are updating a big-endian mips64 machine 666164829Srodrigc from before this change, you may need to set MACHINE_ARCH=mips64 in 6671541Srgrimes your environment before the new build system will recognize your machine. 6681541Srgrimes 66925535Skato20120306: 670164829Srodrigc Disable by default the option VFS_ALLOW_NONMPSAFE for all supported 6711541Srgrimes platforms. 672164829Srodrigc 673164829Srodrigc20120229: 674164829Srodrigc Now unix domain sockets behave "as expected" on nullfs(5). Previously 675164829Srodrigc nullfs(5) did not pass through all behaviours to the underlying layer, 676164829Srodrigc as a result if we bound to a socket on the lower layer we could connect 677164829Srodrigc only to the lower path; if we bound to the upper layer we could connect 678184413Strasz only to the upper path. The new behavior is one can connect to both the 679164829Srodrigc lower and the upper paths regardless what layer path one binds to. 6801541Srgrimes 681164829Srodrigc20120211: 682164829Srodrigc The getifaddrs upgrade path broken with 20111215 has been restored. 683185283Sdaichi If you have upgraded in between 20111215 and 20120209 you need to 684185283Sdaichi recompile libc again with your kernel. You still need to recompile 685164829Srodrigc world to be able to configure CARP but this restriction already 686164829Srodrigc comes from 20111215. 687164829Srodrigc 688164829Srodrigc20120114: 689164829Srodrigc The set_rcvar() function has been removed from /etc/rc.subr. All 690184413Strasz base and ports rc.d scripts have been updated, so if you have a 691164829Srodrigc port installed with a script in /usr/local/etc/rc.d you can either 692164829Srodrigc hand-edit the rcvar= line, or reinstall the port. 693184413Strasz 69451688Sdillon An easy way to handle the mass-update of /etc/rc.d: 69529084Skato rm /etc/rc.d/* && mergemaster -i 696164829Srodrigc 69743305Sdillon20120109: 69843305Sdillon panic(9) now stops other CPUs in the SMP systems, disables interrupts 69929084Skato on the current CPU and prevents other threads from running. 70043305Sdillon This behavior can be reverted using the kern.stop_scheduler_on_panic 70143305Sdillon tunable/sysctl. 70229084Skato The new behavior can be incompatible with kern.sync_on_panic. 70329084Skato 70451688Sdillon20111215: 705164829Srodrigc The carp(4) facility has been changed significantly. Configuration 706184413Strasz of the CARP protocol via ifconfig(8) has changed, as well as format 7071541Srgrimes of CARP events submitted to devd(8) has changed. See manual pages 708164829Srodrigc for more information. The arpbalance feature of carp(4) is currently 70951688Sdillon not supported anymore. 710164829Srodrigc 711164829Srodrigc Size of struct in_aliasreq, struct in6_aliasreq has changed. User 71251688Sdillon utilities using SIOCAIFADDR, SIOCAIFADDR_IN6, e.g. ifconfig(8), 713164829Srodrigc need to be recompiled. 714184413Strasz 715164829Srodrigc20111122: 716164829Srodrigc The acpi_wmi(4) status device /dev/wmistat has been renamed to 717164829Srodrigc /dev/wmistat0. 718164829Srodrigc 719164829Srodrigc20111108: 720164829Srodrigc The option VFS_ALLOW_NONMPSAFE option has been added in order to 721164829Srodrigc explicitely support non-MPSAFE filesystems. 722164829Srodrigc It is on by default for all supported platform at this present 723164829Srodrigc time. 724164829Srodrigc 725164829Srodrigc20111101: 726164829Srodrigc The broken amd(4) driver has been replaced with esp(4) in the amd64, 727164829Srodrigc i386 and pc98 GENERIC kernel configuration files. 728164829Srodrigc 729164829Srodrigc20110930: 730164829Srodrigc sysinstall has been removed 7311541Srgrimes 732164829Srodrigc20110923: 733184413Strasz The stable/9 branch created in subversion. This corresponds to the 734164829Srodrigc RELENG_9 branch in CVS. 735164829Srodrigc 736164829Srodrigc20110913: 73722521Sdyson This commit modifies vfs_register() so that it uses a hash 738226234Strasz calculation to set vfc_typenum, which is enabled by default. 739184413Strasz The first time a system is booted after this change, the 7401541Srgrimes vfc_typenum values will change for all file systems. The 741184413Strasz main effect of this is a change to the NFS server file handles 7421541Srgrimes for file systems that use vfc_typenum in their fsid, such as ZFS. 743164829Srodrigc It will, however, prevent vfc_typenum from changing when file 744164829Srodrigc systems are loaded in a different order for subsequent reboots. 745164829Srodrigc To disable this, you can set vfs.typenumhash=0 in /boot/loader.conf 746164829Srodrigc until you are ready to remount all NFS clients after a reboot. 7471541Srgrimes 7481541Srgrimes20110828: 74925535Skato Bump the shared library version numbers for libraries that 750164829Srodrigc do not use symbol versioning, have changed the ABI compared 7511541Srgrimes to stable/8 and which shared library version was not bumped. 752164829Srodrigc Done as part of 9.0-RELEASE cycle. 753164829Srodrigc 754164829Srodrigc20110815: 755164829Srodrigc During the merge of Capsicum features, the fget(9) KPI was modified. 756164829Srodrigc This may require the rebuilding of out-of-tree device drivers -- 757164829Srodrigc issues have been reported specifically with the nVidia device driver. 758164829Srodrigc __FreeBSD_version is bumped to 900041. 7591541Srgrimes 760164829Srodrigc Also, there is a period between 20110811 and 20110814 where the 7611541Srgrimes special devices /dev/{stdin,stdout,stderr} did not work correctly. 762185283Sdaichi Building world from a kernel during that window may not work. 763185283Sdaichi 764164829Srodrigc20110628: 765164829Srodrigc The packet filter (pf) code has been updated to OpenBSD 4.5. 766164829Srodrigc You need to update userland tools to be in sync with kernel. 767164829Srodrigc This update breaks backward compatibility with earlier pfsync(4) 768182371Sattilio versions. Care must be taken when updating redundant firewall setups. 7691541Srgrimes 770164829Srodrigc20110608: 771182371Sattilio The following sysctls and tunables are retired on x86 platforms: 772164829Srodrigc machdep.hlt_cpus 7731541Srgrimes machdep.hlt_logical_cpus 774164829Srodrigc The following sysctl is retired: 775164829Srodrigc machdep.hyperthreading_allowed 776164829Srodrigc The sysctls were supposed to provide a way to dynamically offline and 777164829Srodrigc online selected CPUs on x86 platforms, but the implementation has not 778164829Srodrigc been reliable especially with SCHED_ULE scheduler. 7791541Srgrimes machdep.hyperthreading_allowed tunable is still available to ignore 7801541Srgrimes hyperthreading CPUs at OS level. 781182371Sattilio Individual CPUs can be disabled using hint.lapic.X.disabled tunable, 782164829Srodrigc where X is an APIC ID of a CPU. Be advised, though, that disabling 783164829Srodrigc CPUs in non-uniform fashion will result in non-uniform topology and 784164829Srodrigc may lead to sub-optimal system performance with SCHED_ULE, which is 785164829Srodrigc a default scheduler. 786164829Srodrigc 787164829Srodrigc20110607: 788164829Srodrigc cpumask_t type is retired and cpuset_t is used in order to describe 789164829Srodrigc a mask of CPUs. 790164829Srodrigc 7911541Srgrimes20110531: 7921541Srgrimes Changes to ifconfig(8) for dynamic address family detection mandate 793164829Srodrigc that you are running a kernel of 20110525 or later. Make sure to 794136146Stakawata follow the update procedure to boot a new kernel before installing 795136060Stakawata world. 796164829Srodrigc 797164829Srodrigc20110513: 798164829Srodrigc Support for sun4v architecture is officially dropped 799164829Srodrigc 8001541Srgrimes20110503: 8011541Srgrimes Several KPI breaking changes have been committed to the mii(4) layer, 80225535Skato the PHY drivers and consequently some Ethernet drivers using mii(4). 803164829Srodrigc This means that miibus.ko and the modules of the affected Ethernet 8041541Srgrimes drivers need to be recompiled. 805164829Srodrigc 806164829Srodrigc Note to kernel developers: Given that the OUI bit reversion problem 807164829Srodrigc was fixed as part of these changes all mii(4) commits related to OUIs, 808164829Srodrigc i.e. to sys/dev/mii/miidevs, PHY driver probing and vendor specific 809164829Srodrigc handling, no longer can be merged verbatim to stable/8 and previous 810164829Srodrigc branches. 8111541Srgrimes 812164829Srodrigc20110430: 813164829Srodrigc Users of the Atheros AR71xx SoC code now need to add 'device ar71xx_pci' 814185283Sdaichi into their kernel configurations along with 'device pci'. 815185283Sdaichi 816164829Srodrigc20110427: 817164829Srodrigc The default NFS client is now the new NFS client, so fstype "newnfs" 818164829Srodrigc is now "nfs" and the regular/old NFS client is now fstype "oldnfs". 819164829Srodrigc Although mounts via fstype "nfs" will usually work without userland 820182371Sattilio changes, it is recommended that the mount(8) and mount_nfs(8) 821164829Srodrigc commands be rebuilt from sources and that a link to mount_nfs called 822164829Srodrigc mount_oldnfs be created. The new client is compiled into the 82329084Skato kernel with "options NFSCL" and this is needed for diskless root 82451688Sdillon file systems. The GENERIC kernel configs have been changed to use 82551688Sdillon NFSCL and NFSD (the new server) instead of NFSCLIENT and NFSSERVER. 826164829Srodrigc To use the regular/old client, you can "mount -t oldnfs ...". For 82729084Skato a diskless root file system, you must also include a line like: 82829084Skato 829164829Srodrigc vfs.root.mountfrom="oldnfs:" 830164829Srodrigc 831164829Srodrigc in the boot/loader.conf on the root fs on the NFS server to make 832164829Srodrigc a diskless root fs use the old client. 8331541Srgrimes 834164829Srodrigc20110424: 8351541Srgrimes The GENERIC kernels for all architectures now default to the new 8361541Srgrimes CAM-based ATA stack. It means that all legacy ATA drivers were 837164829Srodrigc removed and replaced by respective CAM drivers. If you are using 838182371Sattilio ATA device names in /etc/fstab or other places, make sure to update 839164829Srodrigc them respectively (adX -> adaY, acdX -> cdY, afdX -> daY, astX -> saY, 840164829Srodrigc where 'Y's are the sequential numbers starting from zero for each type 841164829Srodrigc in order of detection, unless configured otherwise with tunables, 8421541Srgrimes see cam(4)). There will be symbolic links created in /dev/ to map 8431541Srgrimes old adX devices to the respective adaY. They should provide basic 8441541Srgrimes compatibility for file systems mounting in most cases, but they do 84525535Skato not support old user-level APIs and do not have respective providers 846164829Srodrigc in GEOM. Consider using updated management tools with new device names. 8471541Srgrimes 848164829Srodrigc It is possible to load devices ahci, ata, siis and mvs as modules, 849164829Srodrigc but option ATA_CAM should remain in kernel configuration to make ata 850164829Srodrigc module work as CAM driver supporting legacy ATA controllers. Device ata 8511541Srgrimes still can be used in modular fashion (atacore + ...). Modules atadisk 852164829Srodrigc and atapi* are not used and won't affect operation in ATA_CAM mode. 8531541Srgrimes Note that to use CAM-based ATA kernel should include CAM devices 854185283Sdaichi scbus, pass, da (or explicitly ada), cd and optionally others. All of 855185283Sdaichi them are parts of the cam module. 856164829Srodrigc 857164829Srodrigc ataraid(4) functionality is now supported by the RAID GEOM class. 85851688Sdillon To use it you can load geom_raid kernel module and use graid(8) tool 859164829Srodrigc for management. Instead of /dev/arX device names, use /dev/raid/rX. 86022521Sdyson 861164829Srodrigc No kernel config options or code have been removed, so if a problem 862164829Srodrigc arises, please report it and optionally revert to the old ATA stack. 8631541Srgrimes In order to do it you can remove from the kernel config: 8641541Srgrimes options ATA_CAM 8651541Srgrimes device ahci 86625535Skato device mvs 867164829Srodrigc device siis 8681541Srgrimes , and instead add back: 869164829Srodrigc device atadisk # ATA disk drives 870164829Srodrigc device ataraid # ATA RAID drives 871164829Srodrigc device atapicd # ATAPI CDROM drives 8721541Srgrimes device atapifd # ATAPI floppy drives 873164829Srodrigc device atapist # ATAPI tape drives 87422521Sdyson 875185283Sdaichi20110423: 876185283Sdaichi The default NFS server has been changed to the new server, which 877164829Srodrigc was referred to as the experimental server. If you need to switch 878164829Srodrigc back to the old NFS server, you must now put the "-o" option on 87951688Sdillon both the mountd and nfsd commands. This can be done using the 880164829Srodrigc mountd_flags and nfs_server_flags rc.conf variables until an 88122521Sdyson update to the rc scripts is committed, which is coming soon. 882164829Srodrigc 883164829Srodrigc20110418: 8841541Srgrimes The GNU Objective-C runtime library (libobjc), and other Objective-C 8851541Srgrimes related components have been removed from the base system. If you 8861541Srgrimes require an Objective-C library, please use one of the available ports. 88725535Skato 888164829Srodrigc20110331: 8891541Srgrimes ath(4) has been split into bus- and device- modules. if_ath contains 890164829Srodrigc the HAL, the TX rate control and the network device code. if_ath_pci 891164829Srodrigc contains the PCI bus glue. For Atheros MIPS embedded systems, if_ath_ahb 892164829Srodrigc contains the AHB glue. Users need to load both if_ath_pci and if_ath 893164829Srodrigc in order to use ath on everything else. 8941541Srgrimes 895164829Srodrigc TO REPEAT: if_ath_ahb is not needed for normal users. Normal users only 896164829Srodrigc need to load if_ath and if_ath_pci for ath(4) operation. 897185283Sdaichi 898185283Sdaichi20110314: 899175202Sattilio As part of the replacement of sysinstall, the process of building 900164829Srodrigc release media has changed significantly. For details, please re-read 901164829Srodrigc release(7), which has been updated to reflect the new build process. 902164829Srodrigc 903178491Sdaichi20110218: 904234867Sdaichi GNU binutils 2.17.50 (as of 2007-07-03) has been merged to -HEAD. This 905164829Srodrigc is the last available version under GPLv2. It brings a number of new 906164829Srodrigc features, such as support for newer x86 CPU's (with SSE-3, SSSE-3, SSE 907164829Srodrigc 4.1 and SSE 4.2), better support for powerpc64, a number of new 908164829Srodrigc directives, and lots of other small improvements. See the ChangeLog 909164829Srodrigc file in contrib/binutils for the full details. 910164829Srodrigc 911164829Srodrigc20110218: 912190888Srwatson IPsec's HMAC_SHA256-512 support has been fixed to be RFC4868 913164829Srodrigc compliant, and will now use half of hash for authentication. 914164829Srodrigc This will break interoperability with all stacks (including all 9151541Srgrimes actual FreeBSD versions) who implement 9161541Srgrimes draft-ietf-ipsec-ciph-sha-256-00 (they use 96 bits of hash for 91725535Skato authentication). 918164829Srodrigc The only workaround with such peers is to use another HMAC 9191541Srgrimes algorithm for IPsec ("phase 2") authentication. 920164829Srodrigc 921164829Srodrigc20110207: 922164829Srodrigc Remove the uio_yield prototype and symbol. This function has 9231541Srgrimes been misnamed since it was introduced and should not be 924185283Sdaichi globally exposed with this name. The equivalent functionality 925185283Sdaichi is now available using kern_yield(curthread->td_user_pri). 926175202Sattilio The function remains undocumented. 927164829Srodrigc 928164829Srodrigc20110112: 929164829Srodrigc A SYSCTL_[ADD_]UQUAD was added for unsigned uint64_t pointers, 930178491Sdaichi symmetric with the existing SYSCTL_[ADD_]QUAD. Type checking 931234867Sdaichi for scalar sysctls is defined but disabled. Code that needs 932164829Srodrigc UQUAD to pass the type checking that must compile on older 933164829Srodrigc systems where the define is not present can check against 934164829Srodrigc __FreeBSD_version >= 900030. 935164829Srodrigc 936164829Srodrigc The system dialog(1) has been replaced with a new version previously 9371541Srgrimes in ports as devel/cdialog. dialog(1) is mostly command-line compatible 9381541Srgrimes with the previous version, but the libdialog associated with it has 93925535Skato a largely incompatible API. As such, the original version of libdialog 940164829Srodrigc will be kept temporarily as libodialog, until its base system consumers 9411541Srgrimes are replaced or updated. Bump __FreeBSD_version to 900030. 942164829Srodrigc 943164829Srodrigc20110103: 944164829Srodrigc If you are trying to run make universe on a -stable system, and you get 9451541Srgrimes the following warning: 946185283Sdaichi "Makefile", line 356: "Target architecture for i386/conf/GENERIC 947185283Sdaichi unknown. config(8) likely too old." 948164829Srodrigc or something similar to it, then you must upgrade your -stable system 949164829Srodrigc to 8.2-Release or newer (really, any time after r210146 7/15/2010 in 950164829Srodrigc stable/8) or build the config from the latest stable/8 branch and 951178491Sdaichi install it on your system. 9521541Srgrimes 953164829Srodrigc Prior to this date, building a current universe on 8-stable system from 954164829Srodrigc between 7/15/2010 and 1/2/2011 would result in a weird shell parsing 955164829Srodrigc error in the first kernel build phase. A new config on those old 956164829Srodrigc systems will fix that problem for older versions of -current. 9571541Srgrimes 9581541Srgrimes20101228: 95925535Skato The TCP stack has been modified to allow Khelp modules to interact with 960164829Srodrigc it via helper hook points and store per-connection data in the TCP 9611541Srgrimes control block. Bump __FreeBSD_version to 900029. User space tools that 962164829Srodrigc rely on the size of struct tcpcb in tcp_var.h (e.g. sockstat) need to 963185283Sdaichi be recompiled. 964164829Srodrigc 965164829Srodrigc20101114: 966172643Sdaichi Generic IEEE 802.3 annex 31B full duplex flow control support has been 967164829Srodrigc added to mii(4) and bge(4), bce(4), msk(4), nfe(4) and stge(4) along 968164829Srodrigc with brgphy(4), e1000phy(4) as well as ip1000phy() have been converted 969164829Srodrigc to take advantage of it instead of using custom implementations. This 970185283Sdaichi means that these drivers now no longer unconditionally advertise 971164829Srodrigc support for flow control but only do so if flow control is a selected 972185283Sdaichi media option. This was implemented in the generic support that way in 973164829Srodrigc order to allow flow control to be switched on and off via ifconfig(8) 9741541Srgrimes with the PHY specific default to typically off in order to protect 975164829Srodrigc from unwanted effects. Consequently, if you used flow control with 97622521Sdyson one of the above mentioned drivers you now need to explicitly enable 977185283Sdaichi it, for example via: 978185283Sdaichi ifconfig bge0 media auto mediaopt flowcontrol 979164829Srodrigc 980164829Srodrigc Along with the above mentioned changes generic support for setting 981164829Srodrigc 1000baseT master mode also has been added and brgphy(4), ciphy(4), 982164829Srodrigc e1000phy(4) as well as ip1000phy(4) have been converted to take 983164829Srodrigc advantage of it. This means that these drivers now no longer take the 984164829Srodrigc link0 parameter for selecting master mode but the master media option 985185283Sdaichi has to be used instead, for example like in the following: 986185283Sdaichi ifconfig bge0 media 1000baseT mediaopt full-duplex,master 987185283Sdaichi 988185283Sdaichi Selection of master mode now is also available with all other PHY 989185283Sdaichi drivers supporting 1000baseT. 990185283Sdaichi 991234867Sdaichi20101111: 992185283Sdaichi The TCP stack has received a significant update to add support for 993185283Sdaichi modularised congestion control and generally improve the clarity of 994185283Sdaichi congestion control decisions. Bump __FreeBSD_version to 900025. User 995185283Sdaichi space tools that rely on the size of struct tcpcb in tcp_var.h (e.g. 996185283Sdaichi sockstat) need to be recompiled. 997185283Sdaichi 998185283Sdaichi20101002: 999185283Sdaichi The man(1) utility has been replaced by a new version that no longer 1000185283Sdaichi uses /etc/manpath.config. Please consult man.conf(5) for how to 1001185283Sdaichi migrate local entries to the new format. 1002185283Sdaichi 1003185283Sdaichi20100928: 1004185283Sdaichi The copyright strings printed by login(1) and sshd(8) at the time of a 1005185283Sdaichi new connection have been removed to follow other operating systems and 1006185283Sdaichi upstream sshd. 1007185283Sdaichi 1008185283Sdaichi20100915: 1009185283Sdaichi A workaround for a fixed ld bug has been removed in kernel code, 1010185283Sdaichi so make sure that your system ld is built from sources after 1011185283Sdaichi revision 210245 from 2010-07-19 (r211583 if building head kernel 1012185283Sdaichi on stable/8, r211584 for stable/7; both from 2010-08-21). 1013185283Sdaichi A symptom of incorrect ld version is different addresses for 1014185283Sdaichi set_pcpu section and __start_set_pcpu symbol in kernel and/or modules. 1015185283Sdaichi 1016185283Sdaichi20100913: 1017185283Sdaichi The $ipv6_prefer variable in rc.conf(5) has been split into 1018185283Sdaichi $ip6addrctl_policy and $ipv6_activate_all_interfaces. 1019185283Sdaichi 1020185283Sdaichi The $ip6addrctl_policy is a variable to choose a pre-defined 1021185283Sdaichi address selection policy set by ip6addrctl(8). A value 1022185283Sdaichi "ipv4_prefer", "ipv6_prefer" or "AUTO" can be specified. The 1023185283Sdaichi default is "AUTO". 1024164829Srodrigc 1025164829Srodrigc The $ipv6_activate_all_interfaces specifies whether IFDISABLED 1026164829Srodrigc flag (see an entry of 20090926) is set on an interface with no 1027164829Srodrigc corresponding $ifconfig_IF_ipv6 line. The default is "NO" for 1028185283Sdaichi security reason. If you want IPv6 link-local address on all 1029185283Sdaichi interfaces by default, set this to "YES". 1030185283Sdaichi 1031185283Sdaichi The old ipv6_prefer="YES" is equivalent to 1032185283Sdaichi ipv6_activate_all_interfaces="YES" and 1033185283Sdaichi ip6addrctl_policy="ipv6_prefer". 1034172643Sdaichi 1035164829Srodrigc20100913: 1036164829Srodrigc DTrace has grown support for userland tracing. Due to this, DTrace is 1037185283Sdaichi now i386 and amd64 only. 1038164829Srodrigc dtruss(1) is now installed by default on those systems and a new 1039164829Srodrigc kernel module is needed for userland tracing: fasttrap. 1040164829Srodrigc No changes to your kernel config file are necessary to enable 10411541Srgrimes userland tracing, but you might consider adding 'STRIP=' and 10421541Srgrimes 'CFLAGS+=-fno-omit-frame-pointer' to your make.conf if you want 10431541Srgrimes to have informative userland stack traces in DTrace (ustack). 104425535Skato 1045164829Srodrigc20100725: 10461541Srgrimes The acpi_aiboost(4) driver has been removed in favor of the new 1047164829Srodrigc aibs(4) driver. You should update your kernel configuration file. 1048164829Srodrigc 1049164829Srodrigc20100722: 1050164829Srodrigc BSD grep has been imported to the base system and it is built by 1051164829Srodrigc default. It is completely BSD licensed, highly GNU-compatible, uses 1052164829Srodrigc less memory than its GNU counterpart and has a small codebase. 1053164829Srodrigc However, it is slower than its GNU counterpart, which is mostly 1054164829Srodrigc noticeable for larger searches, for smaller ones it is measurable 10551541Srgrimes but not significant. The reason is complex, the most important factor 1056164829Srodrigc is that we lack a modern and efficient regex library and GNU 105751688Sdillon overcomes this by optimizing the searches internally. Future work 1058185283Sdaichi on improving the regex performance is planned, for the meantime, 1059185283Sdaichi users that need better performance, can build GNU grep instead by 1060185283Sdaichi setting the WITH_GNU_GREP knob. 1061164829Srodrigc 1062164829Srodrigc20100713: 1063164829Srodrigc Due to the import of powerpc64 support, all existing powerpc kernel 1064164829Srodrigc configuration files must be updated with a machine directive like this: 1065164829Srodrigc machine powerpc powerpc 1066164829Srodrigc 1067164829Srodrigc In addition, an updated config(8) is required to build powerpc kernels 1068164829Srodrigc after this change. 1069164829Srodrigc 1070164829Srodrigc20100713: 1071164829Srodrigc A new version of ZFS (version 15) has been merged to -HEAD. 1072164829Srodrigc This version uses a python library for the following subcommands: 1073164829Srodrigc zfs allow, zfs unallow, zfs groupspace, zfs userspace. 1074164829Srodrigc For full functionality of these commands the following port must 1075164829Srodrigc be installed: sysutils/py-zfs 1076164829Srodrigc 1077164829Srodrigc20100429: 1078164829Srodrigc 'vm_page's are now hashed by physical address to an array of mutexes. 1079164829Srodrigc Currently this is only used to serialize access to hold_count. Over 1080164829Srodrigc time the page queue mutex will be peeled away. This changes the size 1081164829Srodrigc of pmap on every architecture. And requires all callers of vm_page_hold 1082164829Srodrigc and vm_page_unhold to be updated. 1083164829Srodrigc 1084103636Struckman20100402: 1085164829Srodrigc WITH_CTF can now be specified in src.conf (not recommended, there 108622521Sdyson are some problems with static executables), make.conf (would also 1087164829Srodrigc affect ports which do not use GNU make and do not override the 108822521Sdyson compile targets) or in the kernel config (via "makeoptions 10891541Srgrimes WITH_CTF=yes"). 1090164829Srodrigc When WITH_CTF was specified there before this was silently ignored, 1091164829Srodrigc so make sure that WITH_CTF is not used in places which could lead 109222521Sdyson to unwanted behavior. 1093164829Srodrigc 1094164829Srodrigc20100311: 109535823Smsmith The kernel option COMPAT_IA32 has been replaced with COMPAT_FREEBSD32 1096164829Srodrigc to allow 32-bit compatibility on non-x86 platforms. All kernel 109735823Smsmith configurations on amd64 and ia64 platforms using these options must 109835823Smsmith be modified accordingly. 10991541Srgrimes 11001541Srgrimes20100113: 110125535Skato The utmp user accounting database has been replaced with utmpx, 1102164829Srodrigc the user accounting interface standardized by POSIX. 11031541Srgrimes Unfortunately the semantics of utmp and utmpx don't match, 1104164829Srodrigc making it practically impossible to support both interfaces. 1105164829Srodrigc The user accounting database is used by tools like finger(1), 1106164829Srodrigc last(1), talk(1), w(1) and ac(8). 1107164829Srodrigc 1108164829Srodrigc All applications in the base system use utmpx. This means only 1109164829Srodrigc local binaries (e.g. from the ports tree) may still use these 1110164829Srodrigc utmp database files. These applications must be rebuilt to make 1111164829Srodrigc use of utmpx. 1112164829Srodrigc 1113164829Srodrigc After the system has been upgraded, it is safe to remove the old 11141541Srgrimes log files (/var/run/utmp, /var/log/lastlog and /var/log/wtmp*), 1115164829Srodrigc assuming their contents is of no importance anymore. Old wtmp 1116164829Srodrigc databases can only be used by last(1) and ac(8) after they have 1117164829Srodrigc been converted to the new format using wtmpcvt(1). 1118164829Srodrigc 1119164829Srodrigc20100108: 112051688Sdillon Introduce the kernel thread "deadlock resolver" (which can be enabled 1121164829Srodrigc via the DEADLKRES option, see NOTES for more details) and the 1122164829Srodrigc sleepq_type() function for sleepqueues. 1123164829Srodrigc 1124164829Srodrigc20091202: 1125164829Srodrigc The rc.firewall and rc.firewall6 were unified, and 1126164829Srodrigc rc.firewall6 and rc.d/ip6fw were removed. 1127164829Srodrigc According to the removal of rc.d/ip6fw, ipv6_firewall_* rc 1128164829Srodrigc variables are obsoleted. Instead, the following new rc 1129164829Srodrigc variables are added to rc.d/ipfw: 1130164829Srodrigc 1131164829Srodrigc firewall_client_net_ipv6, firewall_simple_iif_ipv6, 1132164829Srodrigc firewall_simple_inet_ipv6, firewall_simple_oif_ipv6, 1133164829Srodrigc firewall_simple_onet_ipv6, firewall_trusted_ipv6 1134164829Srodrigc 1135164829Srodrigc The meanings correspond to the relevant IPv4 variables. 1136164829Srodrigc 1137164829Srodrigc20091125: 1138164829Srodrigc 8.0-RELEASE. 1139164829Srodrigc 1140164829Srodrigc20091113: 1141164829Srodrigc The default terminal emulation for syscons(4) has been changed 1142164829Srodrigc from cons25 to xterm on all platforms except pc98. This means 1143164829Srodrigc that the /etc/ttys file needs to be updated to ensure correct 1144164829Srodrigc operation of applications on the console. 1145164829Srodrigc 1146164829Srodrigc The terminal emulation style can be toggled per window by using 1147164829Srodrigc vidcontrol(1)'s -T flag. The TEKEN_CONS25 kernel configuration 1148164829Srodrigc options can be used to change the compile-time default back to 1149164829Srodrigc cons25. 1150164829Srodrigc 1151185283Sdaichi To prevent graphical artifacts, make sure the TERM environment 1152185283Sdaichi variable is set to match the terminal emulation that is being 1153185283Sdaichi performed by syscons(4). 1154185283Sdaichi 1155164829Srodrigc20091109: 11561541Srgrimes The layout of the structure ieee80211req_scan_result has changed. 11571541Srgrimes Applications that require wireless scan results (e.g. ifconfig(8)) 1158164829Srodrigc from net80211 need to be recompiled. 1159164829Srodrigc 1160164829Srodrigc Applications such as wpa_supplicant(8) may require a full world 1161164829Srodrigc build without using NO_CLEAN in order to get synchronized with the 116251688Sdillon new structure. 1163164829Srodrigc 116451688Sdillon20091025: 116551688Sdillon The iwn(4) driver has been updated to support the 5000 and 5150 series. 1166185283Sdaichi There's one kernel module for each firmware. Adding "device iwnfw" 1167185283Sdaichi to the kernel configuration file means including all three firmware 1168185283Sdaichi images inside the kernel. If you want to include just the one for 1169185283Sdaichi your wireless card, use the devices iwn4965fw, iwn5000fw or 1170185283Sdaichi iwn5150fw. 1171185283Sdaichi 1172164829Srodrigc20090926: 1173164829Srodrigc The rc.d/network_ipv6, IPv6 configuration script has been integrated 1174164829Srodrigc into rc.d/netif. The changes are the following: 117551688Sdillon 1176164829Srodrigc 1. To use IPv6, simply define $ifconfig_IF_ipv6 like $ifconfig_IF 1177164829Srodrigc for IPv4. For aliases, $ifconfig_IF_aliasN should be used. 1178164829Srodrigc Note that both variables need the "inet6" keyword at the head. 1179164829Srodrigc 1180164829Srodrigc Do not set $ipv6_network_interfaces manually if you do not 1181164829Srodrigc understand what you are doing. It is not needed in most cases. 118251688Sdillon 1183164829Srodrigc $ipv6_ifconfig_IF and $ipv6_ifconfig_IF_aliasN still work, but 1184164829Srodrigc they are obsolete. 1185164829Srodrigc 118651688Sdillon 2. $ipv6_enable is obsolete. Use $ipv6_prefer and 1187164829Srodrigc "inet6 accept_rtadv" keyword in ifconfig(8) instead. 1188164829Srodrigc 1189164829Srodrigc If you define $ipv6_enable=YES, it means $ipv6_prefer=YES and 1190164829Srodrigc all configured interfaces have "inet6 accept_rtadv" in the 1191175202Sattilio $ifconfig_IF_ipv6. These are for backward compatibility. 1192164829Srodrigc 1193164829Srodrigc 3. A new variable $ipv6_prefer has been added. If NO, IPv6 1194234867Sdaichi functionality of interfaces with no corresponding 1195164829Srodrigc $ifconfig_IF_ipv6 is disabled by using "inet6 ifdisabled" flag, 1196164829Srodrigc and the default address selection policy of ip6addrctl(8) 1197164829Srodrigc is the IPv4-preferred one (see rc.d/ip6addrctl for more details). 1198164829Srodrigc Note that if you want to configure IPv6 functionality on the 1199175202Sattilio disabled interfaces after boot, first you need to clear the flag by 1200164829Srodrigc using ifconfig(8) like: 1201164829Srodrigc 1202234867Sdaichi ifconfig em0 inet6 -ifdisabled 1203164829Srodrigc 1204164829Srodrigc If YES, the default address selection policy is set as 1205164829Srodrigc IPv6-preferred. 1206164829Srodrigc 1207164829Srodrigc The default value of $ipv6_prefer is NO. 1208164829Srodrigc 12091541Srgrimes 4. If your system need to receive Router Advertisement messages, 12101541Srgrimes define "inet6 accept_rtadv" in $ifconfig_IF_ipv6. The rc(8) 1211164829Srodrigc scripts automatically invoke rtsol(8) when the interface becomes 12121541Srgrimes UP. The Router Advertisement messages are used for SLAAC 12131541Srgrimes (State-Less Address AutoConfiguration). 1214164829Srodrigc 1215164829Srodrigc20090922: 1216164829Srodrigc 802.11s D3.03 support was committed. This is incompatible with the 1217164829Srodrigc previous code, which was based on D3.0. 121851688Sdillon 1219164829Srodrigc20090912: 1220164829Srodrigc A sysctl variable net.inet6.ip6.accept_rtadv now sets the default value 1221164829Srodrigc of a per-interface flag ND6_IFF_ACCEPT_RTADV, not a global knob to 1222164829Srodrigc control whether accepting Router Advertisement messages or not. 1223164829Srodrigc Also, a per-interface flag ND6_IFF_AUTO_LINKLOCAL has been added and 1224164829Srodrigc a sysctl variable net.inet6.ip6.auto_linklocal is its default value. 1225164829Srodrigc The ifconfig(8) utility now supports these flags. 1226164829Srodrigc 1227164829Srodrigc20090910: 1228164829Srodrigc ZFS snapshots are now mounted with MNT_IGNORE flag. Use -v option for 1229164829Srodrigc mount(8) and -a option for df(1) to see them. 123051688Sdillon 1231164829Srodrigc20090825: 1232164829Srodrigc The old tunable hw.bus.devctl_disable has been superseded by 1233164829Srodrigc hw.bus.devctl_queue. hw.bus.devctl_disable=1 in loader.conf should be 1234164829Srodrigc replaced by hw.bus.devctl_queue=0. The default for this new tunable 1235164829Srodrigc is 1000. 1236164829Srodrigc 1237164829Srodrigc20090813: 1238164829Srodrigc Remove the option STOP_NMI. The default action is now to use NMI only 1239164829Srodrigc for KDB via the newly introduced function stop_cpus_hard() and 1240164829Srodrigc maintain stop_cpus() to just use a normal IPI_STOP on ia32 and amd64. 1241164829Srodrigc 1242164829Srodrigc20090803: 1243164829Srodrigc The stable/8 branch created in subversion. This corresponds to the 1244164829Srodrigc RELENG_8 branch in CVS. 1245164829Srodrigc 1246164829Srodrigc20090719: 1247164829Srodrigc Bump the shared library version numbers for all libraries that do not 1248164829Srodrigc use symbol versioning as part of the 8.0-RELEASE cycle. Bump 12491541Srgrimes __FreeBSD_version to 800105. 1250164829Srodrigc 12511541Srgrimes20090714: 1252178484Sdaichi Due to changes in the implementation of virtual network stack support, 1253178484Sdaichi all network-related kernel modules must be recompiled. As this change 1254178484Sdaichi breaks the ABI, bump __FreeBSD_version to 800104. 1255164829Srodrigc 1256175202Sattilio20090713: 1257164829Srodrigc The TOE interface to the TCP syncache has been modified to remove 1258164829Srodrigc struct tcpopt (<netinet/tcp_var.h>) from the ABI of the network stack. 1259234867Sdaichi The cxgb driver is the only TOE consumer affected by this change, and 1260164829Srodrigc needs to be recompiled along with the kernel. As this change breaks 1261164829Srodrigc the ABI, bump __FreeBSD_version to 800103. 1262164829Srodrigc 1263164829Srodrigc20090712: 1264164829Srodrigc Padding has been added to struct tcpcb, sackhint and tcpstat in 1265234867Sdaichi <netinet/tcp_var.h> to facilitate future MFCs and bug fixes whilst 1266164829Srodrigc maintaining the ABI. However, this change breaks the ABI, so bump 1267164829Srodrigc __FreeBSD_version to 800102. User space tools that rely on the size of 1268175202Sattilio any of these structs (e.g. sockstat) need to be recompiled. 1269164829Srodrigc 1270164829Srodrigc20090630: 12711541Srgrimes The NFS_LEGACYRPC option has been removed along with the old kernel 12721541Srgrimes RPC implementation that this option selected. Kernel configurations 1273164829Srodrigc may need to be adjusted. 127451688Sdillon 1275172637Sdaichi20090629: 1276172637Sdaichi The network interface device nodes at /dev/net/<interface> have been 1277172637Sdaichi removed. All ioctl operations can be performed the normal way using 1278172637Sdaichi routing sockets. The kqueue functionality can generally be replaced 1279172637Sdaichi with routing sockets. 1280172637Sdaichi 1281172637Sdaichi20090628: 1282172638Sdaichi The documentation from the FreeBSD Documentation Project (Handbook, 1283234867Sdaichi FAQ, etc.) is now installed via packages by sysinstall(8) and under 1284164829Srodrigc the /usr/local/share/doc/freebsd directory instead of /usr/share/doc. 1285164829Srodrigc 1286172638Sdaichi20090624: 1287234867Sdaichi The ABI of various structures related to the SYSV IPC API have been 1288164829Srodrigc changed. As a result, the COMPAT_FREEBSD[456] and COMPAT_43 kernel 1289164829Srodrigc options now all require COMPAT_FREEBSD7. Bump __FreeBSD_version to 1290164829Srodrigc 800100. 1291164829Srodrigc 1292164829Srodrigc20090622: 12931541Srgrimes Layout of struct vnet has changed as routing related variables were 1294178484Sdaichi moved to their own Vimage module. Modules need to be recompiled. Bump 1295178484Sdaichi __FreeBSD_version to 800099. 1296178484Sdaichi 1297178484Sdaichi20090619: 12981541Srgrimes NGROUPS_MAX and NGROUPS have been increased from 16 to 1023 and 1024 1299164829Srodrigc respectively. As long as no more than 16 groups per process are used, 130051688Sdillon no changes should be visible. When more than 16 groups are used, old 1301164829Srodrigc binaries may fail if they call getgroups() or getgrouplist() with 13021541Srgrimes statically sized storage. Recompiling will work around this, but 1303164829Srodrigc applications should be modified to use dynamically allocated storage 1304178484Sdaichi for group arrays as POSIX.1-2008 does not cap an implementation's 1305164829Srodrigc number of supported groups at NGROUPS_MAX+1 as previous versions did. 1306164829Srodrigc 130751688Sdillon NFS and portalfs mounts may also be affected as the list of groups is 1308164829Srodrigc truncated to 16. Users of NFS who use more than 16 groups, should 130951688Sdillon take care that negative group permissions are not used on the exported 131051688Sdillon file systems as they will not be reliable unless a GSSAPI based 131151688Sdillon authentication method is used. 131251688Sdillon 1313178484Sdaichi20090616: 1314178484Sdaichi The compiling option ADAPTIVE_LOCKMGRS has been introduced. This 1315178484Sdaichi option compiles in the support for adaptive spinning for lockmgrs 1316178484Sdaichi which want to enable it. The lockinit() function now accepts the flag 1317178484Sdaichi LK_ADAPTIVE in order to make the lock object subject to adaptive 1318178484Sdaichi spinning when both held in write and read mode. 1319164829Srodrigc 1320164829Srodrigc20090613: 1321164829Srodrigc The layout of the structure returned by IEEE80211_IOC_STA_INFO has 1322164829Srodrigc changed. User applications that use this ioctl need to be rebuilt. 1323164829Srodrigc 13241541Srgrimes20090611: 13251541Srgrimes The layout of struct thread has changed. Kernel and modules need to 13261541Srgrimes be rebuilt. 132725535Skato 1328164829Srodrigc20090608: 13291541Srgrimes The layout of structs ifnet, domain, protosw and vnet_net has changed. 1330164829Srodrigc Kernel modules need to be rebuilt. Bump __FreeBSD_version to 800097. 1331165785Srodrigc 1332164829Srodrigc20090602: 1333164829Srodrigc window(1) has been removed from the base system. It can now be 1334164829Srodrigc installed from ports. The port is called misc/window. 1335164829Srodrigc 1336164829Srodrigc20090601: 1337164829Srodrigc The way we are storing and accessing `routing table' entries has 13381541Srgrimes changed. Programs reading the FIB, like netstat, need to be 1339164829Srodrigc re-compiled. 13401541Srgrimes 1341185283Sdaichi20090601: 1342185283Sdaichi A new netisr implementation has been added for FreeBSD 8. Network 1343164829Srodrigc file system modules, such as igmp, ipdivert, and others, should be 1344164829Srodrigc rebuilt. 1345164829Srodrigc Bump __FreeBSD_version to 800096. 1346165785Srodrigc 1347164829Srodrigc20090530: 1348164829Srodrigc Remove the tunable/sysctl debug.mpsafevfs as its initial purpose is no 134951688Sdillon more valid. 1350164829Srodrigc 1351164829Srodrigc20090530: 1352164829Srodrigc Add VOP_ACCESSX(9). File system modules need to be rebuilt. 1353182371Sattilio Bump __FreeBSD_version to 800094. 1354164829Srodrigc 1355164829Srodrigc20090529: 1356164829Srodrigc Add mnt_xflag field to 'struct mount'. File system modules need to be 1357164829Srodrigc rebuilt. 135822521Sdyson Bump __FreeBSD_version to 800093. 1359164829Srodrigc 1360164829Srodrigc20090528: 1361234867Sdaichi The compiling option ADAPTIVE_SX has been retired while it has been 1362165785Srodrigc introduced the option NO_ADAPTIVE_SX which handles the reversed logic. 1363164829Srodrigc The KPI for sx_init_flags() changes as accepting flags: 1364164829Srodrigc SX_ADAPTIVESPIN flag has been retired while the SX_NOADAPTIVE flag has 1365165785Srodrigc been introduced in order to handle the reversed logic. 1366164829Srodrigc Bump __FreeBSD_version to 800092. 1367164829Srodrigc 13681541Srgrimes20090527: 1369164829Srodrigc Add support for hierarchical jails. Remove global securelevel. 1370164829Srodrigc Bump __FreeBSD_version to 800091. 1371164829Srodrigc 137251688Sdillon20090523: 13731541Srgrimes The layout of struct vnet_net has changed, therefore modules 13741541Srgrimes need to be rebuilt. 137525535Skato Bump __FreeBSD_version to 800090. 1376164829Srodrigc 13771541Srgrimes20090523: 1378164829Srodrigc The newly imported zic(8) produces a new format in the output. Please 1379164829Srodrigc run tzsetup(8) to install the newly created data to /etc/localtime. 1380164829Srodrigc 1381172643Sdaichi20090520: 1382164829Srodrigc The sysctl tree for the usb stack has renamed from hw.usb2.* to 1383164829Srodrigc hw.usb.* and is now consistent again with previous releases. 1384164829Srodrigc 1385164829Srodrigc20090520: 1386164829Srodrigc 802.11 monitor mode support was revised and driver api's were changed. 13871541Srgrimes Drivers dependent on net80211 now support DLT_IEEE802_11_RADIO instead 1388164829Srodrigc of DLT_IEEE802_11. No user-visible data structures were changed but 138922521Sdyson applications that use DLT_IEEE802_11 may require changes. 1390185283Sdaichi Bump __FreeBSD_version to 800088. 1391185283Sdaichi 1392185283Sdaichi20090430: 1393164829Srodrigc The layout of the following structs has changed: sysctl_oid, 1394164829Srodrigc socket, ifnet, inpcbinfo, tcpcb, syncache_head, vnet_inet, 1395164829Srodrigc vnet_inet6 and vnet_ipfw. Most modules need to be rebuild or 1396164829Srodrigc panics may be experienced. World rebuild is required for 1397164829Srodrigc correctly checking networking state from userland. 1398164829Srodrigc Bump __FreeBSD_version to 800085. 1399164829Srodrigc 1400164829Srodrigc20090429: 1401164829Srodrigc MLDv2 and Source-Specific Multicast (SSM) have been merged 1402164829Srodrigc to the IPv6 stack. VIMAGE hooks are in but not yet used. 1403164829Srodrigc The implementation of SSM within FreeBSD's IPv6 stack closely 1404164829Srodrigc follows the IPv4 implementation. 1405164829Srodrigc 1406164829Srodrigc For kernel developers: 1407164829Srodrigc 1408164829Srodrigc * The most important changes are that the ip6_output() and 1409164829Srodrigc ip6_input() paths no longer take the IN6_MULTI_LOCK, 1410164829Srodrigc and this lock has been downgraded to a non-recursive mutex. 1411164829Srodrigc 1412164829Srodrigc * As with the changes to the IPv4 stack to support SSM, filtering 1413164829Srodrigc of inbound multicast traffic must now be performed by transport 1414172643Sdaichi protocols within the IPv6 stack. This does not apply to TCP and 1415172643Sdaichi SCTP, however, it does apply to UDP in IPv6 and raw IPv6. 1416172643Sdaichi 1417234867Sdaichi * The KPIs used by IPv6 multicast are similar to those used by 1418234867Sdaichi the IPv4 stack, with the following differences: 1419234867Sdaichi * im6o_mc_filter() is analogous to imo_multicast_filter(). 14201541Srgrimes * The legacy KAME entry points in6_joingroup and in6_leavegroup() 1421164829Srodrigc are shimmed to in6_mc_join() and in6_mc_leave() respectively. 1422164829Srodrigc * IN6_LOOKUP_MULTI() has been deprecated and removed. 1423164829Srodrigc * IPv6 relies on MLD for the DAD mechanism. KAME's internal KPIs 1424172637Sdaichi for MLDv1 have an additional 'timer' argument which is used to 1425172637Sdaichi jitter the initial membership report for the solicited-node 1426172637Sdaichi multicast membership on-link. 1427172637Sdaichi * This is not strictly needed for MLDv2, which already jitters 1428172637Sdaichi its report transmissions. However, the 'timer' argument is 1429164829Srodrigc preserved in case MLDv1 is active on the interface. 1430164829Srodrigc 14311541Srgrimes * The KAME linked-list based IPv6 membership implementation has 14321541Srgrimes been refactored to use a vector similar to that used by the IPv4 14331541Srgrimes stack. 143425535Skato Code which maintains a list of its own multicast memberships 1435164829Srodrigc internally, e.g. carp, has been updated to reflect the new 14361541Srgrimes semantics. 1437164829Srodrigc 1438165785Srodrigc * There is a known Lock Order Reversal (LOR) due to in6_setscope() 1439164829Srodrigc acquiring the IF_AFDATA_LOCK and being called within ip6_output(). 1440164829Srodrigc Whilst MLDv2 tries to avoid this otherwise benign LOR, it is an 1441164829Srodrigc implementation constraint which needs to be addressed in HEAD. 1442164829Srodrigc 1443164829Srodrigc For application developers: 14441541Srgrimes 1445164829Srodrigc * The changes are broadly similar to those made for the IPv4 1446164829Srodrigc stack. 1447185283Sdaichi 1448185283Sdaichi * The use of IPv4 and IPv6 multicast socket options on the same 1449164829Srodrigc socket, using mapped addresses, HAS NOT been tested or supported. 1450164829Srodrigc 1451164829Srodrigc * There are a number of issues with the implementation of various 1452165785Srodrigc IPv6 multicast APIs which need to be resolved in the API surface 1453164829Srodrigc before the implementation is fully compatible with KAME userland 1454164829Srodrigc use, and these are mostly to do with interface index treatment. 1455164829Srodrigc 1456164829Srodrigc * The literature available discusses the use of either the delta / ASM 1457164829Srodrigc API with setsockopt(2)/getsockopt(2), or the full-state / ASM API 1458164829Srodrigc using setsourcefilter(3)/getsourcefilter(3). For more information 1459234867Sdaichi please refer to RFC 3768, 'Socket Interface Extensions for 1460165785Srodrigc Multicast Source Filters'. 1461164829Srodrigc 1462164829Srodrigc * Applications which use the published RFC 3678 APIs should be fine. 1463165785Srodrigc 1464164829Srodrigc For systems administrators: 1465164829Srodrigc 14661541Srgrimes * The mtest(8) utility has been refactored to support IPv6, in 1467164829Srodrigc addition to IPv4. Interface addresses are no longer accepted 1468164829Srodrigc as arguments, their names must be used instead. The utility 1469164829Srodrigc will map the interface name to its first IPv4 address as 147051688Sdillon returned by getifaddrs(3). 14711541Srgrimes 14721541Srgrimes * The ifmcstat(8) utility has also been updated to print the MLDv2 147325535Skato endpoint state and source filter lists via sysctl(3). 1474164829Srodrigc 14751541Srgrimes * The net.inet6.ip6.mcast.loop sysctl may be tuned to 0 to disable 1476164829Srodrigc loopback of IPv6 multicast datagrams by default; it defaults to 1 1477164829Srodrigc to preserve the existing behaviour. Disabling multicast loopback is 1478165785Srodrigc recommended for optimal system performance. 1479234867Sdaichi 1480164829Srodrigc * The IPv6 MROUTING code has been changed to examine this sysctl 1481164829Srodrigc instead of attempting to perform a group lookup before looping 1482164829Srodrigc back forwarded datagrams. 1483234867Sdaichi 1484164829Srodrigc Bump __FreeBSD_version to 800084. 1485164829Srodrigc 1486164829Srodrigc20090422: 1487164829Srodrigc Implement low-level Bluetooth HCI API. 14881541Srgrimes Bump __FreeBSD_version to 800083. 1489164829Srodrigc 1490164829Srodrigc20090419: 1491164829Srodrigc The layout of struct malloc_type, used by modules to register new 1492164829Srodrigc memory allocation types, has changed. Most modules will need to 1493164829Srodrigc be rebuilt or panics may be experienced. 1494185283Sdaichi Bump __FreeBSD_version to 800081. 1495185283Sdaichi 1496164829Srodrigc20090415: 1497164829Srodrigc Anticipate overflowing inp_flags - add inp_flags2. 1498165785Srodrigc This changes most offsets in inpcb, so checking v4 connection 1499234867Sdaichi state will require a world rebuild. 1500164829Srodrigc Bump __FreeBSD_version to 800080. 1501234867Sdaichi 1502234867Sdaichi20090415: 1503164829Srodrigc Add an llentry to struct route and struct route_in6. Modules 1504164829Srodrigc embedding a struct route will need to be recompiled. 1505164829Srodrigc Bump __FreeBSD_version to 800079. 1506164829Srodrigc 1507234867Sdaichi20090414: 1508234867Sdaichi The size of rt_metrics_lite and by extension rtentry has changed. 1509164829Srodrigc Networking administration apps will need to be recompiled. 1510164829Srodrigc The route command now supports show as an alias for get, weighting 1511234867Sdaichi of routes, sticky and nostick flags to alter the behavior of stateful 1512234867Sdaichi load balancing. 1513234867Sdaichi Bump __FreeBSD_version to 800078. 1514234867Sdaichi 1515234867Sdaichi20090408: 1516234867Sdaichi Do not use Giant for kbdmux(4) locking. This is wrong and 1517234867Sdaichi apparently causing more problems than it solves. This will 1518234867Sdaichi re-open the issue where interrupt handlers may race with 1519234867Sdaichi kbdmux(4) in polling mode. Typical symptoms include (but 1520234867Sdaichi not limited to) duplicated and/or missing characters when 1521234867Sdaichi low level console functions (such as gets) are used while 1522234867Sdaichi interrupts are enabled (for example geli password prompt, 1523234867Sdaichi mountroot prompt etc.). Disabling kbdmux(4) may help. 1524234867Sdaichi 1525234867Sdaichi20090407: 1526234867Sdaichi The size of structs vnet_net, vnet_inet and vnet_ipfw has changed; 1527234867Sdaichi kernel modules referencing any of the above need to be recompiled. 1528234867Sdaichi Bump __FreeBSD_version to 800075. 1529234867Sdaichi 1530234867Sdaichi20090320: 1531234867Sdaichi GEOM_PART has become the default partition slicer for storage devices, 1532234867Sdaichi replacing GEOM_MBR, GEOM_BSD, GEOM_PC98 and GEOM_GPT slicers. It 1533234867Sdaichi introduces some changes: 1534234867Sdaichi 1535164829Srodrigc MSDOS/EBR: the devices created from MSDOS extended partition entries 1536164829Srodrigc (EBR) can be named differently than with GEOM_MBR and are now symlinks 1537182371Sattilio to devices with offset-based names. fstabs may need to be modified. 1538172636Sdaichi 1539164829Srodrigc BSD: the "geometry does not match label" warning is harmless in most 1540164829Srodrigc cases but it points to problems in file system misalignment with 154151688Sdillon disk geometry. The "c" partition is now implicit, covers the whole 1542164829Srodrigc top-level drive and cannot be (mis)used by users. 1543164829Srodrigc 1544164829Srodrigc General: Kernel dumps are now not allowed to be written to devices 1545172636Sdaichi whose partition types indicate they are meant to be used for file 1546172636Sdaichi systems (or, in case of MSDOS partitions, as something else than 1547172636Sdaichi the "386BSD" type). 1548164829Srodrigc 1549164829Srodrigc Most of these changes date approximately from 200812. 1550164829Srodrigc 1551164829Srodrigc20090319: 1552164829Srodrigc The uscanner(4) driver has been removed from the kernel. This follows 1553164829Srodrigc Linux removing theirs in 2.6 and making libusb the default interface 1554172636Sdaichi (supported by sane). 1555172636Sdaichi 1556172636Sdaichi20090319: 1557164829Srodrigc The multicast forwarding code has been cleaned up. netstat(1) 1558164829Srodrigc only relies on KVM now for printing bandwidth upcall meters. 1559164829Srodrigc The IPv4 and IPv6 modules are split into ip_mroute_mod and 1560164829Srodrigc ip6_mroute_mod respectively. The config(5) options for statically 1561164829Srodrigc compiling this code remain the same, i.e. 'options MROUTING'. 1562164829Srodrigc 1563164829Srodrigc20090315: 1564172640Sdaichi Support for the IFF_NEEDSGIANT network interface flag has been 1565172640Sdaichi removed, which means that non-MPSAFE network device drivers are no 1566164829Srodrigc longer supported. In particular, if_ar, if_sr, and network device 1567164829Srodrigc drivers from the old (legacy) USB stack can no longer be built or 1568164829Srodrigc used. 1569164829Srodrigc 1570164829Srodrigc20090313: 1571164829Srodrigc POSIX.1 Native Language Support (NLS) has been enabled in libc and 1572164829Srodrigc a bunch of new language catalog files have also been added. 1573164829Srodrigc This means that some common libc messages are now localized and 1574172636Sdaichi they depend on the LC_MESSAGES environmental variable. 1575172636Sdaichi 1576164829Srodrigc20090313: 1577164829Srodrigc The k8temp(4) driver has been renamed to amdtemp(4) since 1578164829Srodrigc support for Family 10 and Family 11 CPU families was added. 1579234867Sdaichi 1580164829Srodrigc20090309: 1581164829Srodrigc IGMPv3 and Source-Specific Multicast (SSM) have been merged 1582164829Srodrigc to the IPv4 stack. VIMAGE hooks are in but not yet used. 1583164829Srodrigc 1584172636Sdaichi For kernel developers, the most important changes are that the 1585172636Sdaichi ip_output() and ip_input() paths no longer take the IN_MULTI_LOCK(), 1586164829Srodrigc and this lock has been downgraded to a non-recursive mutex. 1587164829Srodrigc 1588234867Sdaichi Transport protocols (UDP, Raw IP) are now responsible for filtering 1589164829Srodrigc inbound multicast traffic according to group membership and source 1590164829Srodrigc filters. The imo_multicast_filter() KPI exists for this purpose. 1591164829Srodrigc Transports which do not use multicast (SCTP, TCP) already reject 1592164829Srodrigc multicast by default. Forwarding and receive performance may improve 1593164829Srodrigc as a mutex acquisition is no longer needed in the ip_input() 1594164829Srodrigc low-level input path. in_addmulti() and in_delmulti() are shimmed 1595164829Srodrigc to new KPIs which exist to support SSM in-kernel. 1596164829Srodrigc 1597164829Srodrigc For application developers, it is recommended that loopback of 1598164829Srodrigc multicast datagrams be disabled for best performance, as this 1599164829Srodrigc will still cause the lock to be taken for each looped-back 1600164829Srodrigc datagram transmission. The net.inet.ip.mcast.loop sysctl may 1601164829Srodrigc be tuned to 0 to disable loopback by default; it defaults to 1 1602164829Srodrigc to preserve the existing behaviour. 1603164829Srodrigc 1604234867Sdaichi For systems administrators, to obtain best performance with 1605234867Sdaichi multicast reception and multiple groups, it is always recommended 1606234867Sdaichi that a card with a suitably precise hash filter is used. Hash 1607234867Sdaichi collisions will still result in the lock being taken within the 1608234867Sdaichi transport protocol input path to check group membership. 1609164829Srodrigc 1610164829Srodrigc If deploying FreeBSD in an environment with IGMP snooping switches, 1611164829Srodrigc it is recommended that the net.inet.igmp.sendlocal sysctl remain 1612165034Srodrigc enabled; this forces 224.0.0.0/24 group membership to be announced 1613165034Srodrigc via IGMP. 1614165034Srodrigc 1615165034Srodrigc The size of 'struct igmpstat' has changed; netstat needs to be 1616164829Srodrigc recompiled to reflect this. 1617164829Srodrigc Bump __FreeBSD_version to 800070. 1618164829Srodrigc 1619164829Srodrigc20090309: 1620234867Sdaichi libusb20.so.1 is now installed as libusb.so.1 and the ports system 1621234867Sdaichi updated to use it. This requires a buildworld/installworld in order to 1622234867Sdaichi update the library and dependencies (usbconfig, etc). Its advisable to 1623234867Sdaichi rebuild all ports which uses libusb. More specific directions are given 1624234867Sdaichi in the ports collection UPDATING file. Any /etc/libmap.conf entries for 1625234867Sdaichi libusb are no longer required and can be removed. 1626234867Sdaichi 1627234867Sdaichi20090302: 1628234867Sdaichi A workaround is committed to allow the creation of System V shared 1629234867Sdaichi memory segment of size > 2 GB on the 64-bit architectures. 1630234867Sdaichi Due to a limitation of the existing ABI, the shm_segsz member 1631234867Sdaichi of the struct shmid_ds, returned by shmctl(IPC_STAT) call is 1632234867Sdaichi wrong for large segments. Note that limits must be explicitly 1633164829Srodrigc raised to allow such segments to be created. 1634164829Srodrigc 1635164829Srodrigc20090301: 1636164829Srodrigc The layout of struct ifnet has changed, requiring a rebuild of all 1637164829Srodrigc network device driver modules. 1638164829Srodrigc 1639164829Srodrigc20090227: 1640164829Srodrigc The /dev handling for the new USB stack has changed, a 1641164829Srodrigc buildworld/installworld is required for libusb20. 1642164829Srodrigc 1643164829Srodrigc20090223: 1644234944Sdaichi The new USB2 stack has now been permanently moved in and all kernel and 1645164829Srodrigc module names reverted to their previous values (eg, usb, ehci, ohci, 1646164829Srodrigc ums, ...). The old usb stack can be compiled in by prefixing the name 1647164829Srodrigc with the letter 'o', the old usb modules have been removed. 1648164829Srodrigc Updating entry 20090216 for xorg and 20090215 for libmap may still 1649164829Srodrigc apply. 1650164829Srodrigc 1651164829Srodrigc20090217: 1652164829Srodrigc The rc.conf(5) option if_up_delay has been renamed to 1653172636Sdaichi defaultroute_delay to better reflect its purpose. If you have 1654172636Sdaichi customized this setting in /etc/rc.conf you need to update it to 1655172636Sdaichi use the new name. 1656164829Srodrigc 1657164829Srodrigc20090216: 1658164829Srodrigc xorg 7.4 wants to configure its input devices via hald which does not 16591541Srgrimes yet work with USB2. If the keyboard/mouse does not work in xorg then 16601541Srgrimes add 166125535Skato Option "AllowEmptyInput" "off" 1662164829Srodrigc to your ServerLayout section. This will cause X to use the configured 16631541Srgrimes kbd and mouse sections from your xorg.conf. 16641541Srgrimes 1665164829Srodrigc20090215: 1666164829Srodrigc The GENERIC kernels for all architectures now default to the new USB2 16671541Srgrimes stack. No kernel config options or code have been removed so if a 1668164829Srodrigc problem arises please report it and optionally revert to the old USB 166951688Sdillon stack. If you are loading USB kernel modules or have a custom kernel 1670185283Sdaichi that includes GENERIC then ensure that usb names are also changed over, 1671185283Sdaichi eg uftdi -> usb2_serial_ftdi. 1672164829Srodrigc 1673164829Srodrigc Older programs linked against the ports libusb 0.1 need to be 16741541Srgrimes redirected to the new stack's libusb20. /etc/libmap.conf can 1675164829Srodrigc be used for this: 1676164829Srodrigc # Map old usb library to new one for usb2 stack 1677164829Srodrigc libusb-0.1.so.8 libusb20.so.1 1678164829Srodrigc 16791541Srgrimes20090209: 16801541Srgrimes All USB ethernet devices now attach as interfaces under the name ueN 16811541Srgrimes (eg. ue0). This is to provide a predictable name as vendors often 168262976Smckusick change usb chipsets in a product without notice. 1683164829Srodrigc 168462976Smckusick20090203: 1685164829Srodrigc The ichsmb(4) driver has been changed to require SMBus slave 1686164829Srodrigc addresses be left-justified (xxxxxxx0b) rather than right-justified. 1687164829Srodrigc All of the other SMBus controller drivers require left-justified 168862976Smckusick slave addresses, so this change makes all the drivers provide the 1689164829Srodrigc same interface. 1690164829Srodrigc 1691164829Srodrigc20090201: 1692164829Srodrigc INET6 statistics (struct ip6stat) was updated. 1693164829Srodrigc netstat(1) needs to be recompiled. 1694164829Srodrigc 1695164829Srodrigc20090119: 1696164829Srodrigc NTFS has been removed from GENERIC kernel on amd64 to match 1697185283Sdaichi GENERIC on i386. Should not cause any issues since mount_ntfs(8) 1698185283Sdaichi will load ntfs.ko module automatically when NTFS support is 1699164829Srodrigc actually needed, unless ntfs.ko is not installed or security 1700164829Srodrigc level prohibits loading kernel modules. If either is the case, 1701164829Srodrigc "options NTFS" has to be added into kernel config. 1702164829Srodrigc 1703164829Srodrigc20090115: 1704164829Srodrigc TCP Appropriate Byte Counting (RFC 3465) support added to kernel. 1705164829Srodrigc New field in struct tcpcb breaks ABI, so bump __FreeBSD_version to 170676718Sbp 800061. User space tools that rely on the size of struct tcpcb in 1707164829Srodrigc tcp_var.h (e.g. sockstat) need to be recompiled. 1708164829Srodrigc 1709164829Srodrigc20081225: 1710164829Srodrigc ng_tty(4) module updated to match the new TTY subsystem. 171176718Sbp Due to API change, user-level applications must be updated. 171276718Sbp New API support added to mpd5 CVS and expected to be present 1713164829Srodrigc in next mpd5.3 release. 1714164829Srodrigc 1715164829Srodrigc20081219: 1716164829Srodrigc With __FreeBSD_version 800060 the makefs tool is part of 171762976Smckusick the base system (it was a port). 171862976Smckusick 171925535Skato20081216: 1720164829Srodrigc The afdata and ifnet locks have been changed from mutexes to 17211541Srgrimes rwlocks, network modules will need to be re-compiled. 1722172637Sdaichi 1723234607Strasz20081214: 1724164829Srodrigc __FreeBSD_version 800059 incorporates the new arp-v2 rewrite. 1725164829Srodrigc RTF_CLONING, RTF_LLINFO and RTF_WASCLONED flags are eliminated. 172651688Sdillon The new code reduced struct rtentry{} by 16 bytes on 32-bit 1727164829Srodrigc architecture and 40 bytes on 64-bit architecture. The userland 1728164829Srodrigc applications "arp" and "ndp" have been updated accordingly. 1729164829Srodrigc The output from "netstat -r" shows only routing entries and 1730164829Srodrigc none of the L2 information. 173122521Sdyson 1732172637Sdaichi20081130: 1733164829Srodrigc __FreeBSD_version 800057 marks the switchover from the 1734164829Srodrigc binary ath hal to source code. Users must add the line: 1735164829Srodrigc 17361541Srgrimes options AH_SUPPORT_AR5416 17371541Srgrimes 17381541Srgrimes to their kernel config files when specifying: 173925535Skato 1740164829Srodrigc device ath_hal 17411541Srgrimes 1742164829Srodrigc The ath_hal module no longer exists; the code is now compiled 1743164829Srodrigc together with the driver in the ath module. It is now 17441541Srgrimes possible to tailor chip support (i.e. reduce the set of chips 1745164829Srodrigc and thereby the code size); consult ath_hal(4) for details. 1746164829Srodrigc 1747164829Srodrigc20081121: 1748164829Srodrigc __FreeBSD_version 800054 adds memory barriers to 1749164829Srodrigc <machine/atomic.h>, new interfaces to ifnet to facilitate 1750164829Srodrigc multiple hardware transmit queues for cards that support 1751164829Srodrigc them, and a lock-less ring-buffer implementation to 1752164829Srodrigc enable drivers to more efficiently manage queueing of 1753164829Srodrigc packets. 1754164829Srodrigc 1755164829Srodrigc20081117: 1756164829Srodrigc A new version of ZFS (version 13) has been merged to -HEAD. 1757164829Srodrigc This version has zpool attribute "listsnapshots" off by 1758164829Srodrigc default, which means "zfs list" does not show snapshots, 1759164829Srodrigc and is the same as Solaris behavior. 17601541Srgrimes 17611541Srgrimes20081028: 17621541Srgrimes dummynet(4) ABI has changed. ipfw(8) needs to be recompiled. 176376716Sbp 1764234867Sdaichi20081009: 17651541Srgrimes The uhci, ohci, ehci and slhci USB Host controller drivers have 1766234867Sdaichi been put into separate modules. If you load the usb module 17671541Srgrimes separately through loader.conf you will need to load the 1768234867Sdaichi appropriate *hci module as well. E.g. for a UHCI-based USB 2.0 1769234867Sdaichi controller add the following to loader.conf: 1770234867Sdaichi 1771234867Sdaichi uhci_load="YES" 1772234867Sdaichi ehci_load="YES" 1773234867Sdaichi 1774234867Sdaichi20081009: 1775234867Sdaichi The ABI used by the PMC toolset has changed. Please keep 1776234867Sdaichi userland (libpmc(3)) and the kernel module (hwpmc(4)) in 1777234867Sdaichi sync. 1778234867Sdaichi 1779234867Sdaichi20081009: 1780234867Sdaichi atapci kernel module now includes only generic PCI ATA 1781234867Sdaichi driver. AHCI driver moved to ataahci kernel module. 1782234867Sdaichi All vendor-specific code moved into separate kernel modules: 1783234867Sdaichi ataacard, ataacerlabs, ataadaptec, ataamd, ataati, atacenatek, 1784234867Sdaichi atacypress, atacyrix, atahighpoint, ataintel, ataite, atajmicron, 1785234867Sdaichi atamarvell, atamicron, atanational, atanetcell, atanvidia, 1786234867Sdaichi atapromise, ataserverworks, atasiliconimage, atasis, atavia 1787234867Sdaichi 1788234867Sdaichi20080820: 1789234867Sdaichi The TTY subsystem of the kernel has been replaced by a new 1790234867Sdaichi implementation, which provides better scalability and an 1791234867Sdaichi improved driver model. Most common drivers have been migrated to 1792234867Sdaichi the new TTY subsystem, while others have not. The following 1793234867Sdaichi drivers have not yet been ported to the new TTY layer: 1794234867Sdaichi 1795234867Sdaichi PCI/ISA: 1796234867Sdaichi cy, digi, rc, rp, sio 1797234867Sdaichi 1798234867Sdaichi USB: 1799234867Sdaichi ubser, ucycom 1800234867Sdaichi 1801234867Sdaichi Line disciplines: 1802234867Sdaichi ng_h4, ng_tty, ppp, sl, snp 1803234867Sdaichi 1804164829Srodrigc Adding these drivers to your kernel configuration file shall 180522521Sdyson cause compilation to fail. 1806234867Sdaichi 18071541Srgrimes20080818: 18081541Srgrimes ntpd has been upgraded to 4.2.4p5. 1809234867Sdaichi 1810234867Sdaichi20080801: 1811234867Sdaichi OpenSSH has been upgraded to 5.1p1. 1812234867Sdaichi 1813234867Sdaichi For many years, FreeBSD's version of OpenSSH preferred DSA 1814234867Sdaichi over RSA for host and user authentication keys. With this 1815234867Sdaichi upgrade, we've switched to the vendor's default of RSA over 1816234867Sdaichi DSA. This may cause upgraded clients to warn about unknown 1817234867Sdaichi host keys even for previously known hosts. Users should 1818234867Sdaichi follow the usual procedure for verifying host keys before 1819234867Sdaichi accepting the RSA key. 1820234867Sdaichi 1821234867Sdaichi This can be circumvented by setting the "HostKeyAlgorithms" 1822234867Sdaichi option to "ssh-dss,ssh-rsa" in ~/.ssh/config or on the ssh 1823234867Sdaichi command line. 1824234867Sdaichi 1825234867Sdaichi Please note that the sequence of keys offered for 182625535Skato authentication has been changed as well. You may want to 1827169671Skib specify IdentityFile in a different order to revert this 18281541Srgrimes behavior. 1829164829Srodrigc 1830164829Srodrigc20080713: 1831164829Srodrigc The sio(4) driver has been removed from the i386 and amd64 1832234867Sdaichi kernel configuration files. This means uart(4) is now the 1833164829Srodrigc default serial port driver on those platforms as well. 1834172639Sdaichi 1835164829Srodrigc To prevent collisions with the sio(4) driver, the uart(4) driver 1836164829Srodrigc uses different names for its device nodes. This means the 1837164829Srodrigc onboard serial port will now most likely be called "ttyu0" 1838164829Srodrigc instead of "ttyd0". You may need to reconfigure applications to 1839164829Srodrigc use the new device names. 18401541Srgrimes 1841185283Sdaichi When using the serial port as a boot console, be sure to update 1842185283Sdaichi /boot/device.hints and /etc/ttys before booting the new kernel. 1843164829Srodrigc If you forget to do so, you can still manually specify the hints 1844234867Sdaichi at the loader prompt: 1845164829Srodrigc 1846164829Srodrigc set hint.uart.0.at="isa" 1847164829Srodrigc set hint.uart.0.port="0x3F8" 184851688Sdillon set hint.uart.0.flags="0x10" 1849164829Srodrigc set hint.uart.0.irq="4" 1850234867Sdaichi boot -s 18511541Srgrimes 1852172639Sdaichi20080609: 1853164829Srodrigc The gpt(8) utility has been removed. Use gpart(8) to partition 1854164829Srodrigc disks instead. 1855172639Sdaichi 1856172639Sdaichi20080603: 1857172639Sdaichi The version that Linuxulator emulates was changed from 2.4.2 1858172639Sdaichi to 2.6.16. If you experience any problems with Linux binaries 1859172639Sdaichi please try to set sysctl compat.linux.osrelease to 2.4.2 and 1860164829Srodrigc if it fixes the problem contact emulation mailing list. 1861172639Sdaichi 1862164829Srodrigc20080525: 1863164829Srodrigc ISDN4BSD (I4B) was removed from the src tree. You may need to 1864164829Srodrigc update a your kernel configuration and remove relevant entries. 1865164829Srodrigc 1866234867Sdaichi20080509: 1867234867Sdaichi I have checked in code to support multiple routing tables. 1868234867Sdaichi See the man pages setfib(1) and setfib(2). 1869242833Sattilio This is a hopefully backwards compatible version, 1870172639Sdaichi but to make use of it you need to compile your kernel 1871172639Sdaichi with options ROUTETABLES=2 (or more up to 16). 1872164829Srodrigc 1873164829Srodrigc20080420: 1874164829Srodrigc The 802.11 wireless support was redone to enable multi-bss 1875164829Srodrigc operation on devices that are capable. The underlying device 1876164829Srodrigc is no longer used directly but instead wlanX devices are 1877164829Srodrigc cloned with ifconfig. This requires changes to rc.conf files. 1878164829Srodrigc For example, change: 1879164829Srodrigc ifconfig_ath0="WPA DHCP" 1880164829Srodrigc to 1881234867Sdaichi wlans_ath0=wlan0 1882234867Sdaichi ifconfig_wlan0="WPA DHCP" 1883234867Sdaichi see rc.conf(5) for more details. In addition, mergemaster of 1884234867Sdaichi /etc/rc.d is highly recommended. Simultaneous update of userland 1885234867Sdaichi and kernel wouldn't hurt either. 1886234867Sdaichi 1887234867Sdaichi As part of the multi-bss changes the wlan_scan_ap and wlan_scan_sta 1888234867Sdaichi modules were merged into the base wlan module. All references 1889234867Sdaichi to these modules (e.g. in kernel config files) must be removed. 1890234867Sdaichi 1891234867Sdaichi20080408: 1892234867Sdaichi psm(4) has gained write(2) support in native operation level. 1893234867Sdaichi Arbitrary commands can be written to /dev/psm%d and status can 1894234867Sdaichi be read back from it. Therefore, an application is responsible 1895234867Sdaichi for status validation and error recovery. It is a no-op in 1896234867Sdaichi other operation levels. 1897234867Sdaichi 1898164829Srodrigc20080312: 1899164829Srodrigc Support for KSE threading has been removed from the kernel. To 1900164829Srodrigc run legacy applications linked against KSE libmap.conf may 1901164829Srodrigc be used. The following libmap.conf may be used to ensure 1902164829Srodrigc compatibility with any prior release: 1903164829Srodrigc 1904164829Srodrigc libpthread.so.1 libthr.so.1 1905175294Sattilio libpthread.so.2 libthr.so.2 1906164829Srodrigc libkse.so.3 libthr.so.3 1907164829Srodrigc 1908164829Srodrigc20080301: 1909164829Srodrigc The layout of struct vmspace has changed. This affects libkvm 1910234867Sdaichi and any executables that link against libkvm and use the 1911172639Sdaichi kvm_getprocs() function. In particular, but not exclusively, 1912172639Sdaichi it affects ps(1), fstat(1), pkill(1), systat(1), top(1) and w(1). 1913234867Sdaichi The effects are minimal, but it's advisable to upgrade world 1914164829Srodrigc nonetheless. 1915234867Sdaichi 1916234867Sdaichi20080229: 1917164829Srodrigc The latest em driver no longer has support in it for the 1918164829Srodrigc 82575 adapter, this is now moved to the igb driver. The 1919164829Srodrigc split was done to make new features that are incompatible 1920164829Srodrigc with older hardware easier to do. 1921164829Srodrigc 1922234867Sdaichi20080220: 1923234867Sdaichi The new geom_lvm(4) geom class has been renamed to geom_linux_lvm(4), 1924234867Sdaichi likewise the kernel option is now GEOM_LINUX_LVM. 1925234867Sdaichi 1926164829Srodrigc20080211: 1927164829Srodrigc The default NFS mount mode has changed from UDP to TCP for 1928234867Sdaichi increased reliability. If you rely on (insecurely) NFS 1929234867Sdaichi mounting across a firewall you may need to update your 1930234867Sdaichi firewall rules. 1931234867Sdaichi 1932164829Srodrigc20080208: 1933164829Srodrigc Belatedly note the addition of m_collapse for compacting 1934164829Srodrigc mbuf chains. 1935164829Srodrigc 1936175294Sattilio20080126: 1937164829Srodrigc The fts(3) structures have been changed to use adequate 1938164829Srodrigc integer types for their members and so to be able to cope 1939164829Srodrigc with huge file trees. The old fts(3) ABI is preserved 1940164829Srodrigc through symbol versioning in libc, so third-party binaries 1941234867Sdaichi using fts(3) should still work, although they will not take 1942172639Sdaichi advantage of the extended types. At the same time, some 1943234867Sdaichi third-party software might fail to build after this change 1944234867Sdaichi due to unportable assumptions made in its source code about 1945234867Sdaichi fts(3) structure members. Such software should be fixed 1946234867Sdaichi by its vendor or, in the worst case, in the ports tree. 1947234867Sdaichi FreeBSD_version 800015 marks this change for the unlikely 1948234867Sdaichi case that a portable fix is impossible. 1949164829Srodrigc 1950164829Srodrigc20080123: 1951164829Srodrigc To upgrade to -current after this date, you must be running 1952172639Sdaichi FreeBSD not older than 6.0-RELEASE. Upgrading to -current 1953234867Sdaichi from 5.x now requires a stop over at RELENG_6 or RELENG_7 systems. 1954172639Sdaichi 1955234867Sdaichi20071128: 1956234867Sdaichi The ADAPTIVE_GIANT kernel option has been retired because its 1957172639Sdaichi functionality is the default now. 1958164829Srodrigc 1959164829Srodrigc20071118: 1960234867Sdaichi The AT keyboard emulation of sunkbd(4) has been turned on 1961234867Sdaichi by default. In order to make the special symbols of the Sun 1962164829Srodrigc keyboards driven by sunkbd(4) work under X these now have 1963164829Srodrigc to be configured the same way as Sun USB keyboards driven 1964164829Srodrigc by ukbd(4) (which also does AT keyboard emulation), f.e.: 1965164829Srodrigc 1966164829Srodrigc Option "XkbLayout" "us" 19671541Srgrimes Option "XkbRules" "xorg" 1968164829Srodrigc Option "XkbSymbols" "pc(pc105)+sun_vndr/usb(sun_usb)+us" 1969164829Srodrigc 1970164829Srodrigc20071024: 1971164829Srodrigc It has been decided that it is desirable to provide ABI 19721541Srgrimes backwards compatibility to the FreeBSD 4/5/6 versions of the 19731541Srgrimes PCIOCGETCONF, PCIOCREAD and PCIOCWRITE IOCTLs, which was 197425535Skato broken with the introduction of PCI domain support (see the 1975164829Srodrigc 20070930 entry). Unfortunately, this required the ABI of 19761541Srgrimes PCIOCGETCONF to be broken again in order to be able to 1977164829Srodrigc provide backwards compatibility to the old version of that 1978164829Srodrigc IOCTL. Thus consumers of PCIOCGETCONF have to be recompiled 1979164829Srodrigc again. As for prominent ports this affects neither pciutils 1980164829Srodrigc nor xorg-server this time, the hal port needs to be rebuilt 1981164829Srodrigc however. 1982164829Srodrigc 1983164829Srodrigc20071020: 1984164829Srodrigc The misnamed kthread_create() and friends have been renamed 19851541Srgrimes to kproc_create() etc. Many of the callers already 1986185283Sdaichi used kproc_start().. 1987185283Sdaichi I will return kthread_create() and friends in a while 1988164829Srodrigc with implementations that actually create threads, not procs. 1989164829Srodrigc Renaming corresponds with version 800002. 1990164829Srodrigc 1991164829Srodrigc20071010: 1992164829Srodrigc RELENG_7 branched. 1993164829Srodrigc 1994172639SdaichiCOMMON ITEMS: 1995164829Srodrigc 1996164829Srodrigc General Notes 1997164829Srodrigc ------------- 1998164829Srodrigc Avoid using make -j when upgrading. While generally safe, there are 1999164829Srodrigc sometimes problems using -j to upgrade. If your upgrade fails with 2000164829Srodrigc -j, please try again without -j. From time to time in the past there 2001164829Srodrigc have been problems using -j with buildworld and/or installworld. This 2002164829Srodrigc is especially true when upgrading between "distant" versions (eg one 2003164829Srodrigc that cross a major release boundary or several minor releases, or when 2004164829Srodrigc several months have passed on the -current branch). 2005164829Srodrigc 2006164829Srodrigc Sometimes, obscure build problems are the result of environment 2007164829Srodrigc poisoning. This can happen because the make utility reads its 2008164829Srodrigc environment when searching for values for global variables. To run 2009164829Srodrigc your build attempts in an "environmental clean room", prefix all make 2010164829Srodrigc commands with 'env -i '. See the env(1) manual page for more details. 2011164829Srodrigc 2012164829Srodrigc When upgrading from one major version to another it is generally best 2013164829Srodrigc to upgrade to the latest code in the currently installed branch first, 2014164829Srodrigc then do an upgrade to the new branch. This is the best-tested upgrade 2015175294Sattilio path, and has the highest probability of being successful. Please try 2016164829Srodrigc this approach before reporting problems with a major version upgrade. 2017164829Srodrigc 2018164829Srodrigc When upgrading a live system, having a root shell around before 2019164829Srodrigc installing anything can help undo problems. Not having a root shell 2020164829Srodrigc around can lead to problems if pam has changed too much from your 2021164829Srodrigc starting point to allow continued authentication after the upgrade. 2022164829Srodrigc 2023164829Srodrigc ZFS notes 2024164829Srodrigc --------- 2025164829Srodrigc When upgrading the boot ZFS pool to a new version, always follow 2026164829Srodrigc these two steps: 2027164829Srodrigc 2028164829Srodrigc 1.) recompile and reinstall the ZFS boot loader and boot block 2029175294Sattilio (this is part of "make buildworld" and "make installworld") 2030164829Srodrigc 2031164829Srodrigc 2.) update the ZFS boot block on your boot drive 2032164829Srodrigc 2033164829Srodrigc The following example updates the ZFS boot block on the first 2034164829Srodrigc partition (freebsd-boot) of a GPT partitioned drive ad0: 2035164829Srodrigc "gpart bootcode -p /boot/gptzfsboot -i 1 ad0" 2036164829Srodrigc 2037164829Srodrigc Non-boot pools do not need these updates. 2038164829Srodrigc 2039164829Srodrigc To build a kernel 2040164829Srodrigc ----------------- 2041164829Srodrigc If you are updating from a prior version of FreeBSD (even one just 2042164829Srodrigc a few days old), you should follow this procedure. It is the most 2043164829Srodrigc failsafe as it uses a /usr/obj tree with a fresh mini-buildworld, 2044164829Srodrigc 2045164829Srodrigc make kernel-toolchain 2046164829Srodrigc make -DALWAYS_CHECK_MAKE buildkernel KERNCONF=YOUR_KERNEL_HERE 2047164829Srodrigc make -DALWAYS_CHECK_MAKE installkernel KERNCONF=YOUR_KERNEL_HERE 20481541Srgrimes 20491541Srgrimes To test a kernel once 2050164829Srodrigc --------------------- 2051164829Srodrigc If you just want to boot a kernel once (because you are not sure 2052164829Srodrigc if it works, or if you want to boot a known bad kernel to provide 2053164829Srodrigc debugging information) run 2054164829Srodrigc make installkernel KERNCONF=YOUR_KERNEL_HERE KODIR=/boot/testkernel 20551541Srgrimes nextboot -k testkernel 2056185283Sdaichi 2057185283Sdaichi To just build a kernel when you know that it won't mess you up 2058164829Srodrigc -------------------------------------------------------------- 2059164829Srodrigc This assumes you are already running a CURRENT system. Replace 2060164829Srodrigc ${arch} with the architecture of your machine (e.g. "i386", 2061164829Srodrigc "arm", "amd64", "ia64", "pc98", "sparc64", "powerpc", "mips", etc). 2062164829Srodrigc 2063164829Srodrigc cd src/sys/${arch}/conf 206425535Skato config KERNEL_NAME_HERE 2065164829Srodrigc cd ../compile/KERNEL_NAME_HERE 20661541Srgrimes make depend 2067164829Srodrigc make 2068164829Srodrigc make install 2069164829Srodrigc 2070164829Srodrigc If this fails, go to the "To build a kernel" section. 2071164829Srodrigc 2072164829Srodrigc To rebuild everything and install it on the current system. 20731541Srgrimes ----------------------------------------------------------- 2074164829Srodrigc # Note: sometimes if you are running current you gotta do more than 2075164829Srodrigc # is listed here if you are upgrading from a really old current. 2076185283Sdaichi 2077185283Sdaichi <make sure you have good level 0 dumps> 2078164829Srodrigc make buildworld 2079164829Srodrigc make kernel KERNCONF=YOUR_KERNEL_HERE 2080164829Srodrigc [1] 2081175202Sattilio <reboot in single user> [3] 2082164829Srodrigc mergemaster -p [5] 2083164829Srodrigc make installworld 2084164829Srodrigc mergemaster -i [4] 2085164829Srodrigc make delete-old [6] 2086164829Srodrigc <reboot> 2087164829Srodrigc 2088164829Srodrigc To cross-install current onto a separate partition 2089164829Srodrigc -------------------------------------------------- 2090164829Srodrigc # In this approach we use a separate partition to hold 2091164829Srodrigc # current's root, 'usr', and 'var' directories. A partition 2092164829Srodrigc # holding "/", "/usr" and "/var" should be about 2GB in 2093164829Srodrigc # size. 2094164829Srodrigc 2095170152Skib <make sure you have good level 0 dumps> 2096170152Skib <boot into -stable> 2097164829Srodrigc make buildworld 2098164829Srodrigc make buildkernel KERNCONF=YOUR_KERNEL_HERE 2099164829Srodrigc <maybe newfs current's root partition> 2100164829Srodrigc <mount current's root partition on directory ${CURRENT_ROOT}> 2101164829Srodrigc make installworld DESTDIR=${CURRENT_ROOT} 2102172635Sdaichi make distribution DESTDIR=${CURRENT_ROOT} # if newfs'd 2103178491Sdaichi make installkernel KERNCONF=YOUR_KERNEL_HERE DESTDIR=${CURRENT_ROOT} 2104164829Srodrigc cp /etc/fstab ${CURRENT_ROOT}/etc/fstab # if newfs'd 2105164829Srodrigc <edit ${CURRENT_ROOT}/etc/fstab to mount "/" from the correct partition> 2106234867Sdaichi <reboot into current> 2107164829Srodrigc <do a "native" rebuild/install as described in the previous section> 2108164829Srodrigc <maybe install compatibility libraries from ports/misc/compat*> 2109164829Srodrigc <reboot> 2110164829Srodrigc 2111164829Srodrigc 2112164829Srodrigc To upgrade in-place from stable to current 2113164829Srodrigc ---------------------------------------------- 2114164829Srodrigc <make sure you have good level 0 dumps> 2115234867Sdaichi make buildworld [9] 2116164829Srodrigc make kernel KERNCONF=YOUR_KERNEL_HERE [8] 2117164829Srodrigc [1] 2118164829Srodrigc <reboot in single user> [3] 2119164829Srodrigc mergemaster -p [5] 2120164829Srodrigc make installworld 2121164829Srodrigc mergemaster -i [4] 2122164829Srodrigc make delete-old [6] 2123164829Srodrigc <reboot> 2124164829Srodrigc 2125164829Srodrigc Make sure that you've read the UPDATING file to understand the 2126164829Srodrigc tweaks to various things you need. At this point in the life 2127164829Srodrigc cycle of current, things change often and you are on your own 2128185283Sdaichi to cope. The defaults can also change, so please read ALL of 2129185283Sdaichi the UPDATING entries. 2130164829Srodrigc 2131164829Srodrigc Also, if you are tracking -current, you must be subscribed to 2132164829Srodrigc freebsd-current@freebsd.org. Make sure that before you update 21331541Srgrimes your sources that you have read and understood all the recent 2134164829Srodrigc messages there. If in doubt, please track -stable which has 2135164829Srodrigc much fewer pitfalls. 2136164829Srodrigc 2137164829Srodrigc [1] If you have third party modules, such as vmware, you 2138164829Srodrigc should disable them at this point so they don't crash your 21391541Srgrimes system on reboot. 2140164829Srodrigc 2141164829Srodrigc [3] From the bootblocks, boot -s, and then do 21421541Srgrimes fsck -p 21431541Srgrimes mount -u / 2144124090Stjr mount -a 2145164829Srodrigc cd src 2146124090Stjr adjkerntz -i # if CMOS is wall time 2147164829Srodrigc Also, when doing a major release upgrade, it is required that 2148164829Srodrigc you boot into single user mode to do the installworld. 2149164829Srodrigc 2150124090Stjr [4] Note: This step is non-optional. Failure to do this step 2151185283Sdaichi can result in a significant reduction in the functionality of the 2152185283Sdaichi system. Attempting to do it by hand is not recommended and those 2153164829Srodrigc that pursue this avenue should read this file carefully, as well 2154164829Srodrigc as the archives of freebsd-current and freebsd-hackers mailing lists 2155124090Stjr for potential gotchas. The -U option is also useful to consider. 2156164829Srodrigc See mergemaster(8) for more information. 2157164829Srodrigc 2158164829Srodrigc [5] Usually this step is a noop. However, from time to time 2159164829Srodrigc you may need to do this if you get unknown user in the following 2160164829Srodrigc step. It never hurts to do it all the time. You may need to 2161164829Srodrigc install a new mergemaster (cd src/usr.sbin/mergemaster && make 2162124090Stjr install) after the buildworld before this step if you last updated 2163124090Stjr from current before 20130425 or from -stable before 20130430. 2164124090Stjr 2165124090Stjr [6] This only deletes old files and directories. Old libraries 2166164829Srodrigc can be deleted by "make delete-old-libs", but you have to make 2167124090Stjr sure that no program is using those libraries anymore. 2168164829Srodrigc 2169164829Srodrigc [8] In order to have a kernel that can run the 4.x binaries needed to 2170164829Srodrigc do an installworld, you must include the COMPAT_FREEBSD4 option in 2171164829Srodrigc your kernel. Failure to do so may leave you with a system that is 2172164829Srodrigc hard to boot to recover. A similar kernel option COMPAT_FREEBSD5 is 2173124090Stjr required to run the 5.x binaries on more recent kernels. And so on 2174164829Srodrigc for COMPAT_FREEBSD6 and COMPAT_FREEBSD7. 2175124090Stjr 2176185283Sdaichi Make sure that you merge any new devices from GENERIC since the 2177185283Sdaichi last time you updated your kernel config file. 2178164829Srodrigc 2179164829Srodrigc [9] When checking out sources, you must include the -P flag to have 2180164829Srodrigc cvs prune empty directories. 2181164829Srodrigc 2182164829Srodrigc If CPUTYPE is defined in your /etc/make.conf, make sure to use the 2183164829Srodrigc "?=" instead of the "=" assignment operator, so that buildworld can 2184164829Srodrigc override the CPUTYPE if it needs to. 2185164829Srodrigc 2186164829Srodrigc MAKEOBJDIRPREFIX must be defined in an environment variable, and 2187164829Srodrigc not on the command line, or in /etc/make.conf. buildworld will 2188164829Srodrigc warn if it is improperly defined. 2189164829SrodrigcFORMAT: 2190164829Srodrigc 2191164829SrodrigcThis file contains a list, in reverse chronological order, of major 2192164829Srodrigcbreakages in tracking -current. It is not guaranteed to be a complete 2193164829Srodrigclist of such breakages, and only contains entries since October 10, 2007. 2194164829SrodrigcIf you need to see UPDATING entries from before that date, you will need 2195164829Srodrigcto fetch an UPDATING file from an older FreeBSD release. 2196164829Srodrigc 2197164829SrodrigcCopyright information: 2198124090Stjr 2199124090StjrCopyright 1998-2009 M. Warner Losh. All Rights Reserved. 2200124090Stjr 2201124090StjrRedistribution, publication, translation and use, with or without 2202164829Srodrigcmodification, in full or in part, in any form or format of this 2203124090Stjrdocument are permitted without further permission from the author. 2204164829Srodrigc 2205164829SrodrigcTHIS DOCUMENT IS PROVIDED BY WARNER LOSH ``AS IS'' AND ANY EXPRESS OR 2206164829SrodrigcIMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 2207124090StjrWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 2208164829SrodrigcDISCLAIMED. IN NO EVENT SHALL WARNER LOSH BE LIABLE FOR ANY DIRECT, 2209164829SrodrigcINDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 2210185283Sdaichi(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 2211185283SdaichiSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 2212164829SrodrigcHOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 2213164829SrodrigcSTRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 2214164829SrodrigcIN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 2215164829SrodrigcPOSSIBILITY OF SUCH DAMAGE. 2216164829Srodrigc 2217164829SrodrigcContact Warner Losh if you have any questions about your use of 2218164829Srodrigcthis document. 2219164829Srodrigc 2220124090Stjr$FreeBSD: stable/10/UPDATING 285206 2015-07-06 13:23:27Z des $ 2221124090Stjr