aboutsummaryrefslogtreecommitdiff
path: root/UPDATING
diff options
context:
space:
mode:
Diffstat (limited to 'UPDATING')
-rw-r--r--UPDATING2094
1 files changed, 2094 insertions, 0 deletions
diff --git a/UPDATING b/UPDATING
new file mode 100644
index 000000000000..3d01ba60370a
--- /dev/null
+++ b/UPDATING
@@ -0,0 +1,2094 @@
+Updating Information for FreeBSD current users
+
+This file is maintained and copyrighted by M. Warner Losh <imp@freebsd.org>.
+See end of file for further details. For commonly done items, please see the
+COMMON ITEMS: section later in the file. These instructions assume that you
+basically know what you are doing. If not, then please consult the FreeBSD
+handbook:
+
+ http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/makeworld.html
+
+Items affecting the ports and packages system can be found in
+/usr/ports/UPDATING. Please read that file before running portupgrade.
+
+NOTE: FreeBSD has switched from gcc to clang. If you have trouble bootstrapping
+from older versions of FreeBSD, try WITHOUT_CLANG to bootstrap to the tip of
+head, and then rebuild without this option. The bootstrap process from
+older version of current is a bit fragile.
+
+NOTE TO PEOPLE WHO THINK THAT FreeBSD 11.x IS SLOW:
+ FreeBSD 11.x has many debugging features turned on, in both the kernel
+ and userland. These features attempt to detect incorrect use of
+ system primitives, and encourage loud failure through extra sanity
+ checking and fail stop semantics. They also substantially impact
+ system performance. If you want to do performance measurement,
+ benchmarking, and optimization, you'll want to turn them off. This
+ includes various WITNESS- related kernel options, INVARIANTS, malloc
+ debugging flags in userland, and various verbose features in the
+ kernel. Many developers choose to disable these features on build
+ machines to maximize performance. (To completely disable malloc
+ debugging, define MALLOC_PRODUCTION in /etc/make.conf, or to merely
+ disable the most expensive debugging functionality run
+ "ln -s 'abort:false,junk:false' /etc/malloc.conf".)
+
+20140216:
+ Clang and llvm have been upgraded to 3.4 release.
+
+20140216:
+ The nve(4) driver has been removed. Please use the nfe(4) driver
+ for NVIDIA nForce MCP Ethernet adapters instead.
+
+20140212:
+ An ABI incompatibility crept into the libc++ 3.4 import in r261283.
+ This could cause certain C++ applications using shared libraries built
+ against the previous version of libc++ to crash. The incompatibility
+ has now been fixed, but any C++ applications or shared libraries built
+ between r261283 and r261801 should be recompiled.
+
+20140128:
+ The libelf and libdwarf libraries have been updated to newer
+ versions from upstream. Shared library version numbers for
+ these two libraries were bumped. Any ports or binaries
+ requiring these two libraries should be recompiled.
+ __FreeBSD_version is bumped to 1100006.
+
+20140110:
+ If a Makefile in a tests/ directory was auto-generating a Kyuafile
+ instead of providing an explicit one, this would prevent such
+ Makefile from providing its own Kyuafile in the future during
+ NO_CLEAN builds. This has been fixed in the Makefiles but manual
+ intervention is needed to clean an objdir if you use NO_CLEAN:
+ # find /usr/obj -name Kyuafile | xargs rm -f
+
+20131213:
+ The behavior of gss_pseudo_random() for the krb5 mechanism
+ has changed, for applications requesting a longer random string
+ than produced by the underlying enctype's pseudo-random() function.
+ In particular, the random string produced from a session key of
+ enctype aes256-cts-hmac-sha1-96 or aes256-cts-hmac-sha1-96 will
+ be different at the 17th octet and later, after this change.
+ The counter used in the PRF+ construction is now encoded as a
+ big-endian integer in accordance with RFC 4402.
+ __FreeBSD_version is bumped to 1100004.
+
+20131108:
+ The WITHOUT_ATF build knob has been removed and its functionality
+ has been subsumed into the more generic WITHOUT_TESTS. If you were
+ using the former to disable the build of the ATF libraries, you
+ should change your settings to use the latter.
+
+20131025:
+ The default version of mtree is nmtree which is obtained from
+ NetBSD. The output is generally the same, but may vary
+ slightly. If you found you need identical output adding
+ "-F freebsd9" to the command line should do the trick. For the
+ time being, the old mtree is available as fmtree.
+
+20131014:
+ libbsdyml has been renamed to libyaml and moved to /usr/lib/private.
+ This will break ports-mgmt/pkg. Rebuild the port, or upgrade to pkg
+ 1.1.4_8 and verify bsdyml not linked in, before running "make
+ delete-old-libs":
+ # make -C /usr/ports/ports-mgmt/pkg build deinstall install clean
+ or
+ # pkg install pkg; ldd /usr/local/sbin/pkg | grep bsdyml
+
+20131010:
+ The rc.d/jail script has been updated to support jail(8)
+ configuration file. The "jail_<jname>_*" rc.conf(5) variables
+ for per-jail configuration are automatically converted to
+ /var/run/jail.<jname>.conf before the jail(8) utility is invoked.
+ This is transparently backward compatible. See below about some
+ incompatibilities and rc.conf(5) manual page for more details.
+
+ These variables are now deprecated in favor of jail(8) configuration
+ file. One can use "rc.d/jail config <jname>" command to generate
+ a jail(8) configuration file in /var/run/jail.<jname>.conf without
+ running the jail(8) utility. The default pathname of the
+ configuration file is /etc/jail.conf and can be specified by
+ using $jail_conf or $jail_<jname>_conf variables.
+
+ Please note that jail_devfs_ruleset accepts an integer at
+ this moment. Please consider to rewrite the ruleset name
+ with an integer.
+
+20130930:
+ BIND has been removed from the base system. If all you need
+ is a local resolver, simply enable and start the local_unbound
+ service instead. Otherwise, several versions of BIND are
+ available in the ports tree. The dns/bind99 port is one example.
+
+ With this change, nslookup(1) and dig(1) are no longer in the base
+ system. Users should instead use host(1) and drill(1) which are
+ in the base system. Alternatively, nslookup and dig can
+ be obtained by installing the dns/bind-tools port.
+
+20130916:
+ With the addition of unbound(8), a new unbound user is now
+ required during installworld. "mergemaster -p" can be used to
+ add the user prior to installworld, as documented in the handbook.
+
+20130911:
+ OpenSSH is now built with DNSSEC support, and will by default
+ silently trust signed SSHFP records. This can be controlled with
+ the VerifyHostKeyDNS client configuration setting. DNSSEC support
+ can be disabled entirely with the WITHOUT_LDNS option in src.conf.
+
+20130906:
+ The GNU Compiler Collection and C++ standard library (libstdc++)
+ are no longer built by default on platforms where clang is the system
+ compiler. You can enable them with the WITH_GCC and WITH_GNUCXX
+ options in src.conf.
+
+20130905:
+ The PROCDESC kernel option is now part of the GENERIC kernel
+ configuration and is required for the rwhod(8) to work.
+ If you are using custom kernel configuration, you should include
+ 'options PROCDESC'.
+
+20130905:
+ The API and ABI related to the Capsicum framework was modified
+ in backward incompatible way. The userland libraries and programs
+ have to be recompiled to work with the new kernel. This includes the
+ following libraries and programs, but the whole buildworld is
+ advised: libc, libprocstat, dhclient, tcpdump, hastd, hastctl,
+ kdump, procstat, rwho, rwhod, uniq.
+
+20130903:
+ AES-NI intrinsic support has been added to gcc. The AES-NI module
+ has been updated to use this support. A new gcc is required to build
+ the aesni module on both i386 and amd64.
+
+20130821:
+ The PADLOCK_RNG and RDRAND_RNG kernel options are now devices.
+ Thus "device padlock_rng" and "device rdrand_rng" should be
+ used instead of "options PADLOCK_RNG" & "options RDRAND_RNG".
+
+20130813:
+ WITH_ICONV has been split into two feature sets. WITH_ICONV now
+ enables just the iconv* functionality and is now on by default.
+ WITH_LIBICONV_COMPAT enables the libiconv api and link time
+ compatability. Set WITHOUT_ICONV to build the old way.
+ If you have been using WITH_ICONV before, you will very likely
+ need to turn on WITH_LIBICONV_COMPAT.
+
+20130806:
+ INVARIANTS option now enables DEBUG for code with OpenSolaris and
+ Illumos origin, including ZFS. If you have INVARIANTS in your
+ kernel configuration, then there is no need to set DEBUG or ZFS_DEBUG
+ explicitly.
+ DEBUG used to enable witness(9) tracking of OpenSolaris (mostly ZFS)
+ locks if WITNESS option was set. Because that generated a lot of
+ witness(9) reports and all of them were believed to be false
+ positives, this is no longer done. New option OPENSOLARIS_WITNESS
+ can be used to achieve the previous behavior.
+
+20130806:
+ Timer values in IPv6 data structures now use time_uptime instead
+ of time_second. Although this is not a user-visible functional
+ change, userland utilities which directly use them---ndp(8),
+ rtadvd(8), and rtsold(8) in the base system---need to be updated
+ to r253970 or later.
+
+20130802:
+ find -delete can now delete the pathnames given as arguments,
+ instead of only files found below them or if the pathname did
+ not contain any slashes. Formerly, the following error message
+ would result:
+
+ find: -delete: <path>: relative path potentially not safe
+
+ Deleting the pathnames given as arguments can be prevented
+ without error messages using -mindepth 1 or by changing
+ directory and passing "." as argument to find. This works in the
+ old as well as the new version of find.
+
+20130726:
+ Behavior of devfs rules path matching has been changed.
+ Pattern is now always matched against fully qualified devfs
+ path and slash characters must be explicitly matched by
+ slashes in pattern (FNM_PATHNAME). Rulesets involving devfs
+ subdirectories must be reviewed.
+
+20130716:
+ The default ARM ABI has changed to the ARM EABI. The old ABI is
+ incompatible with the ARM EABI and all programs and modules will
+ need to be rebuilt to work with a new kernel.
+
+ To keep using the old ABI ensure the WITHOUT_ARM_EABI knob is set.
+
+ NOTE: Support for the old ABI will be removed in the future and
+ users are advised to upgrade.
+
+20130709:
+ pkg_install has been disconnected from the build if you really need it
+ you should add WITH_PKGTOOLS in your src.conf(5).
+
+20130709:
+ Most of network statistics structures were changed to be able
+ keep 64-bits counters. Thus all tools, that work with networking
+ statistics, must be rebuilt (netstat(1), bsnmpd(1), etc.)
+
+20130629:
+ Fix targets that run multiple make's to use && rather than ;
+ so that subsequent steps depend on success of previous.
+
+ NOTE: if building 'universe' with -j* on stable/8 or stable/9
+ it would be better to start the build using bmake, to avoid
+ overloading the machine.
+
+20130618:
+ Fix a bug that allowed a tracing process (e.g. gdb) to write
+ to a memory-mapped file in the traced process's address space
+ even if neither the traced process nor the tracing process had
+ write access to that file.
+
+20130615:
+ CVS has been removed from the base system. An exact copy
+ of the code is available from the devel/cvs port.
+
+20130613:
+ Some people report the following error after the switch to bmake:
+
+ make: illegal option -- J
+ usage: make [-BPSXeiknpqrstv] [-C directory] [-D variable]
+ ...
+ *** [buildworld] Error code 2
+
+ this likely due to an old instance of make in
+ ${MAKEPATH} (${MAKEOBJDIRPREFIX}${.CURDIR}/make.${MACHINE})
+ which src/Makefile will use that blindly, if it exists, so if
+ you see the above error:
+
+ rm -rf `make -V MAKEPATH`
+
+ should resolve it.
+
+20130516:
+ Use bmake by default.
+ Whereas before one could choose to build with bmake via
+ -DWITH_BMAKE one must now use -DWITHOUT_BMAKE to use the old
+ make. The goal is to remove these knobs for 10-RELEASE.
+
+ It is worth noting that bmake (like gmake) treats the command
+ line as the unit of failure, rather than statements within the
+ command line. Thus '(cd some/where && dosomething)' is safer
+ than 'cd some/where; dosomething'. The '()' allows consistent
+ behavior in parallel build.
+
+20130429:
+ Fix a bug that allows NFS clients to issue READDIR on files.
+
+20130426:
+ The WITHOUT_IDEA option has been removed because
+ the IDEA patent expired.
+
+20130426:
+ The sysctl which controls TRIM support under ZFS has been renamed
+ from vfs.zfs.trim_disable -> vfs.zfs.trim.enabled and has been
+ enabled by default.
+
+20130425:
+ The mergemaster command now uses the default MAKEOBJDIRPREFIX
+ rather than creating it's own in the temporary directory in
+ order allow access to bootstrapped versions of tools such as
+ install and mtree. When upgrading from version of FreeBSD where
+ the install command does not support -l, you will need to
+ install a new mergemaster command if mergemaster -p is required.
+ This can be accomplished with the command (cd src/usr.sbin/mergemaster
+ && make install).
+
+20130404:
+ Legacy ATA stack, disabled and replaced by new CAM-based one since
+ FreeBSD 9.0, completely removed from the sources. Kernel modules
+ atadisk and atapi*, user-level tools atacontrol and burncd are
+ removed. Kernel option `options ATA_CAM` is now permanently enabled
+ and removed.
+
+20130319:
+ SOCK_CLOEXEC and SOCK_NONBLOCK flags have been added to socket(2)
+ and socketpair(2). Software, in particular Kerberos, may
+ automatically detect and use these during building. The resulting
+ binaries will not work on older kernels.
+
+20130308:
+ CTL_DISABLE has also been added to the sparc64 GENERIC (for further
+ information, see the respective 20130304 entry).
+
+20130304:
+ Recent commits to callout(9) changed the size of struct callout,
+ so the KBI is probably heavily disturbed. Also, some functions
+ in callout(9)/sleep(9)/sleepqueue(9)/condvar(9) KPIs were replaced
+ by macros. Every kernel module using it won't load, so rebuild
+ is requested.
+
+ The ctl device has been re-enabled in GENERIC for i386 and amd64,
+ but does not initialize by default (because of the new CTL_DISABLE
+ option) to save memory. To re-enable it, remove the CTL_DISABLE
+ option from the kernel config file or set kern.cam.ctl.disable=0
+ in /boot/loader.conf.
+
+20130301:
+ The ctl device has been disabled in GENERIC for i386 and amd64.
+ This was done due to the extra memory being allocated at system
+ initialisation time by the ctl driver which was only used if
+ a CAM target device was created. This makes a FreeBSD system
+ unusable on 128MB or less of RAM.
+
+20130208:
+ A new compression method (lz4) has been merged to -HEAD. Please
+ refer to zpool-features(7) for more information.
+
+ Please refer to the "ZFS notes" section of this file for information
+ on upgrading boot ZFS pools.
+
+20130129:
+ A BSD-licensed patch(1) variant has been added and is installed
+ as bsdpatch, being the GNU version the default patch.
+ To inverse the logic and use the BSD-licensed one as default,
+ while having the GNU version installed as gnupatch, rebuild
+ and install world with the WITH_BSD_PATCH knob set.
+
+20130121:
+ Due to the use of the new -l option to install(1) during build
+ and install, you must take care not to directly set the INSTALL
+ make variable in your /etc/make.conf, /etc/src.conf, or on the
+ command line. If you wish to use the -C flag for all installs
+ you may be able to add INSTALL+=-C to /etc/make.conf or
+ /etc/src.conf.
+
+20130118:
+ The install(1) option -M has changed meaning and now takes an
+ argument that is a file or path to append logs to. In the
+ unlikely event that -M was the last option on the command line
+ and the command line contained at least two files and a target
+ directory the first file will have logs appended to it. The -M
+ option served little practical purpose in the last decade so its
+ use is expected to be extremely rare.
+
+20121223:
+ After switching to Clang as the default compiler some users of ZFS
+ on i386 systems started to experience stack overflow kernel panics.
+ Please consider using 'options KSTACK_PAGES=4' in such configurations.
+
+20121222:
+ GEOM_LABEL now mangles label names read from file system metadata.
+ Mangling affect labels containing spaces, non-printable characters,
+ '%' or '"'. Device names in /etc/fstab and other places may need to
+ be updated.
+
+20121217:
+ By default, only the 10 most recent kernel dumps will be saved. To
+ restore the previous behaviour (no limit on the number of kernel dumps
+ stored in the dump directory) add the following line to /etc/rc.conf:
+
+ savecore_flags=""
+
+20121201:
+ With the addition of auditdistd(8), a new auditdistd user is now
+ required during installworld. "mergemaster -p" can be used to
+ add the user prior to installworld, as documented in the handbook.
+
+20121117:
+ The sin6_scope_id member variable in struct sockaddr_in6 is now
+ filled by the kernel before passing the structure to the userland via
+ sysctl or routing socket. This means the KAME-specific embedded scope
+ id in sin6_addr.s6_addr[2] is always cleared in userland application.
+ This behavior can be controlled by net.inet6.ip6.deembed_scopeid.
+ __FreeBSD_version is bumped to 1000025.
+
+20121105:
+ On i386 and amd64 systems WITH_CLANG_IS_CC is now the default.
+ This means that the world and kernel will be compiled with clang
+ and that clang will be installed as /usr/bin/cc, /usr/bin/c++,
+ and /usr/bin/cpp. To disable this behavior and revert to building
+ with gcc, compile with WITHOUT_CLANG_IS_CC. Really old versions
+ of current may need to bootstrap WITHOUT_CLANG first if the clang
+ build fails (its compatibility window doesn't extend to the 9 stable
+ branch point).
+
+20121102:
+ The IPFIREWALL_FORWARD kernel option has been removed. Its
+ functionality now turned on by default.
+
+20121023:
+ The ZERO_COPY_SOCKET kernel option has been removed and
+ split into SOCKET_SEND_COW and SOCKET_RECV_PFLIP.
+ NB: SOCKET_SEND_COW uses the VM page based copy-on-write
+ mechanism which is not safe and may result in kernel crashes.
+ NB: The SOCKET_RECV_PFLIP mechanism is useless as no current
+ driver supports disposeable external page sized mbuf storage.
+ Proper replacements for both zero-copy mechanisms are under
+ consideration and will eventually lead to complete removal
+ of the two kernel options.
+
+20121023:
+ The IPv4 network stack has been converted to network byte
+ order. The following modules need to be recompiled together
+ with kernel: carp(4), divert(4), gif(4), siftr(4), gre(4),
+ pf(4), ipfw(4), ng_ipfw(4), stf(4).
+
+20121022:
+ Support for non-MPSAFE filesystems was removed from VFS. The
+ VFS_VERSION was bumped, all filesystem modules shall be
+ recompiled.
+
+20121018:
+ All the non-MPSAFE filesystems have been disconnected from
+ the build. The full list includes: codafs, hpfs, ntfs, nwfs,
+ portalfs, smbfs, xfs.
+
+20121016:
+ The interface cloning API and ABI has changed. The following
+ modules need to be recompiled together with kernel:
+ ipfw(4), pfsync(4), pflog(4), usb(4), wlan(4), stf(4),
+ vlan(4), disc(4), edsc(4), if_bridge(4), gif(4), tap(4),
+ faith(4), epair(4), enc(4), tun(4), if_lagg(4), gre(4).
+
+20121015:
+ The sdhci driver was split in two parts: sdhci (generic SD Host
+ Controller logic) and sdhci_pci (actual hardware driver).
+ No kernel config modifications are required, but if you
+ load sdhc as a module you must switch to sdhci_pci instead.
+
+20121014:
+ Import the FUSE kernel and userland support into base system.
+
+20121013:
+ The GNU sort(1) program has been removed since the BSD-licensed
+ sort(1) has been the default for quite some time and no serious
+ problems have been reported. The corresponding WITH_GNU_SORT
+ knob has also gone.
+
+20121006:
+ The pfil(9) API/ABI for AF_INET family has been changed. Packet
+ filtering modules: pf(4), ipfw(4), ipfilter(4) need to be recompiled
+ with new kernel.
+
+20121001:
+ The net80211(4) ABI has been changed to allow for improved driver
+ PS-POLL and power-save support. All wireless drivers need to be
+ recompiled to work with the new kernel.
+
+20120913:
+ The random(4) support for the VIA hardware random number
+ generator (`PADLOCK') is no longer enabled unconditionally.
+ Add the padlock_rng device in the custom kernel config if
+ needed. The GENERIC kernels on i386 and amd64 do include the
+ device, so the change only affects the custom kernel
+ configurations.
+
+20120908:
+ The pf(4) packet filter ABI has been changed. pfctl(8) and
+ snmp_pf module need to be recompiled to work with new kernel.
+
+20120828:
+ A new ZFS feature flag "com.delphix:empty_bpobj" has been merged
+ to -HEAD. Pools that have empty_bpobj in active state can not be
+ imported read-write with ZFS implementations that do not support
+ this feature. For more information read the zpool-features(5)
+ manual page.
+
+20120727:
+ The sparc64 ZFS loader has been changed to no longer try to auto-
+ detect ZFS providers based on diskN aliases but now requires these
+ to be explicitly listed in the OFW boot-device environment variable.
+
+20120712:
+ The OpenSSL has been upgraded to 1.0.1c. Any binaries requiring
+ libcrypto.so.6 or libssl.so.6 must be recompiled. Also, there are
+ configuration changes. Make sure to merge /etc/ssl/openssl.cnf.
+
+20120712:
+ The following sysctls and tunables have been renamed for consistency
+ with other variables:
+ kern.cam.da.da_send_ordered -> kern.cam.da.send_ordered
+ kern.cam.ada.ada_send_ordered -> kern.cam.ada.send_ordered
+
+20120628:
+ The sort utility has been replaced with BSD sort. For now, GNU sort
+ is also available as "gnusort" or the default can be set back to
+ GNU sort by setting WITH_GNU_SORT. In this case, BSD sort will be
+ installed as "bsdsort".
+
+20120611:
+ A new version of ZFS (pool version 5000) has been merged to -HEAD.
+ Starting with this version the old system of ZFS pool versioning
+ is superseded by "feature flags". This concept enables forward
+ compatibility against certain future changes in functionality of ZFS
+ pools. The first read-only compatible "feature flag" for ZFS pools
+ is named "com.delphix:async_destroy". For more information
+ read the new zpool-features(5) manual page.
+ Please refer to the "ZFS notes" section of this file for information
+ on upgrading boot ZFS pools.
+
+20120417:
+ The malloc(3) implementation embedded in libc now uses sources imported
+ as contrib/jemalloc. The most disruptive API change is to
+ /etc/malloc.conf. If your system has an old-style /etc/malloc.conf,
+ delete it prior to installworld, and optionally re-create it using the
+ new format after rebooting. See malloc.conf(5) for details
+ (specifically the TUNING section and the "opt.*" entries in the MALLCTL
+ NAMESPACE section).
+
+20120328:
+ Big-endian MIPS TARGET_ARCH values no longer end in "eb". mips64eb
+ is now spelled mips64. mipsn32eb is now spelled mipsn32. mipseb is
+ now spelled mips. This is to aid compatibility with third-party
+ software that expects this naming scheme in uname(3). Little-endian
+ settings are unchanged. If you are updating a big-endian mips64 machine
+ from before this change, you may need to set MACHINE_ARCH=mips64 in
+ your environment before the new build system will recognize your machine.
+
+20120306:
+ Disable by default the option VFS_ALLOW_NONMPSAFE for all supported
+ platforms.
+
+20120229:
+ Now unix domain sockets behave "as expected" on nullfs(5). Previously
+ nullfs(5) did not pass through all behaviours to the underlying layer,
+ as a result if we bound to a socket on the lower layer we could connect
+ only to the lower path; if we bound to the upper layer we could connect
+ only to the upper path. The new behavior is one can connect to both the
+ lower and the upper paths regardless what layer path one binds to.
+
+20120211:
+ The getifaddrs upgrade path broken with 20111215 has been restored.
+ If you have upgraded in between 20111215 and 20120209 you need to
+ recompile libc again with your kernel. You still need to recompile
+ world to be able to configure CARP but this restriction already
+ comes from 20111215.
+
+20120114:
+ The set_rcvar() function has been removed from /etc/rc.subr. All
+ base and ports rc.d scripts have been updated, so if you have a
+ port installed with a script in /usr/local/etc/rc.d you can either
+ hand-edit the rcvar= line, or reinstall the port.
+
+ An easy way to handle the mass-update of /etc/rc.d:
+ rm /etc/rc.d/* && mergemaster -i
+
+20120109:
+ panic(9) now stops other CPUs in the SMP systems, disables interrupts
+ on the current CPU and prevents other threads from running.
+ This behavior can be reverted using the kern.stop_scheduler_on_panic
+ tunable/sysctl.
+ The new behavior can be incompatible with kern.sync_on_panic.
+
+20111215:
+ The carp(4) facility has been changed significantly. Configuration
+ of the CARP protocol via ifconfig(8) has changed, as well as format
+ of CARP events submitted to devd(8) has changed. See manual pages
+ for more information. The arpbalance feature of carp(4) is currently
+ not supported anymore.
+
+ Size of struct in_aliasreq, struct in6_aliasreq has changed. User
+ utilities using SIOCAIFADDR, SIOCAIFADDR_IN6, e.g. ifconfig(8),
+ need to be recompiled.
+
+20111122:
+ The acpi_wmi(4) status device /dev/wmistat has been renamed to
+ /dev/wmistat0.
+
+20111108:
+ The option VFS_ALLOW_NONMPSAFE option has been added in order to
+ explicitely support non-MPSAFE filesystems.
+ It is on by default for all supported platform at this present
+ time.
+
+20111101:
+ The broken amd(4) driver has been replaced with esp(4) in the amd64,
+ i386 and pc98 GENERIC kernel configuration files.
+
+20110930:
+ sysinstall has been removed
+
+20110923:
+ The stable/9 branch created in subversion. This corresponds to the
+ RELENG_9 branch in CVS.
+
+20110913:
+ This commit modifies vfs_register() so that it uses a hash
+ calculation to set vfc_typenum, which is enabled by default.
+ The first time a system is booted after this change, the
+ vfc_typenum values will change for all file systems. The
+ main effect of this is a change to the NFS server file handles
+ for file systems that use vfc_typenum in their fsid, such as ZFS.
+ It will, however, prevent vfc_typenum from changing when file
+ systems are loaded in a different order for subsequent reboots.
+ To disable this, you can set vfs.typenumhash=0 in /boot/loader.conf
+ until you are ready to remount all NFS clients after a reboot.
+
+20110828:
+ Bump the shared library version numbers for libraries that
+ do not use symbol versioning, have changed the ABI compared
+ to stable/8 and which shared library version was not bumped.
+ Done as part of 9.0-RELEASE cycle.
+
+20110815:
+ During the merge of Capsicum features, the fget(9) KPI was modified.
+ This may require the rebuilding of out-of-tree device drivers --
+ issues have been reported specifically with the nVidia device driver.
+ __FreeBSD_version is bumped to 900041.
+
+ Also, there is a period between 20110811 and 20110814 where the
+ special devices /dev/{stdin,stdout,stderr} did not work correctly.
+ Building world from a kernel during that window may not work.
+
+20110628:
+ The packet filter (pf) code has been updated to OpenBSD 4.5.
+ You need to update userland tools to be in sync with kernel.
+ This update breaks backward compatibility with earlier pfsync(4)
+ versions. Care must be taken when updating redundant firewall setups.
+
+20110608:
+ The following sysctls and tunables are retired on x86 platforms:
+ machdep.hlt_cpus
+ machdep.hlt_logical_cpus
+ The following sysctl is retired:
+ machdep.hyperthreading_allowed
+ The sysctls were supposed to provide a way to dynamically offline and
+ online selected CPUs on x86 platforms, but the implementation has not
+ been reliable especially with SCHED_ULE scheduler.
+ machdep.hyperthreading_allowed tunable is still available to ignore
+ hyperthreading CPUs at OS level.
+ Individual CPUs can be disabled using hint.lapic.X.disabled tunable,
+ where X is an APIC ID of a CPU. Be advised, though, that disabling
+ CPUs in non-uniform fashion will result in non-uniform topology and
+ may lead to sub-optimal system performance with SCHED_ULE, which is
+ a default scheduler.
+
+20110607:
+ cpumask_t type is retired and cpuset_t is used in order to describe
+ a mask of CPUs.
+
+20110531:
+ Changes to ifconfig(8) for dynamic address family detection mandate
+ that you are running a kernel of 20110525 or later. Make sure to
+ follow the update procedure to boot a new kernel before installing
+ world.
+
+20110513:
+ Support for sun4v architecture is officially dropped
+
+20110503:
+ Several KPI breaking changes have been committed to the mii(4) layer,
+ the PHY drivers and consequently some Ethernet drivers using mii(4).
+ This means that miibus.ko and the modules of the affected Ethernet
+ drivers need to be recompiled.
+
+ Note to kernel developers: Given that the OUI bit reversion problem
+ was fixed as part of these changes all mii(4) commits related to OUIs,
+ i.e. to sys/dev/mii/miidevs, PHY driver probing and vendor specific
+ handling, no longer can be merged verbatim to stable/8 and previous
+ branches.
+
+20110430:
+ Users of the Atheros AR71xx SoC code now need to add 'device ar71xx_pci'
+ into their kernel configurations along with 'device pci'.
+
+20110427:
+ The default NFS client is now the new NFS client, so fstype "newnfs"
+ is now "nfs" and the regular/old NFS client is now fstype "oldnfs".
+ Although mounts via fstype "nfs" will usually work without userland
+ changes, it is recommended that the mount(8) and mount_nfs(8)
+ commands be rebuilt from sources and that a link to mount_nfs called
+ mount_oldnfs be created. The new client is compiled into the
+ kernel with "options NFSCL" and this is needed for diskless root
+ file systems. The GENERIC kernel configs have been changed to use
+ NFSCL and NFSD (the new server) instead of NFSCLIENT and NFSSERVER.
+ To use the regular/old client, you can "mount -t oldnfs ...". For
+ a diskless root file system, you must also include a line like:
+
+ vfs.root.mountfrom="oldnfs:"
+
+ in the boot/loader.conf on the root fs on the NFS server to make
+ a diskless root fs use the old client.
+
+20110424:
+ The GENERIC kernels for all architectures now default to the new
+ CAM-based ATA stack. It means that all legacy ATA drivers were
+ removed and replaced by respective CAM drivers. If you are using
+ ATA device names in /etc/fstab or other places, make sure to update
+ them respectively (adX -> adaY, acdX -> cdY, afdX -> daY, astX -> saY,
+ where 'Y's are the sequential numbers starting from zero for each type
+ in order of detection, unless configured otherwise with tunables,
+ see cam(4)). There will be symbolic links created in /dev/ to map
+ old adX devices to the respective adaY. They should provide basic
+ compatibility for file systems mounting in most cases, but they do
+ not support old user-level APIs and do not have respective providers
+ in GEOM. Consider using updated management tools with new device names.
+
+ It is possible to load devices ahci, ata, siis and mvs as modules,
+ but option ATA_CAM should remain in kernel configuration to make ata
+ module work as CAM driver supporting legacy ATA controllers. Device ata
+ still can be used in modular fashion (atacore + ...). Modules atadisk
+ and atapi* are not used and won't affect operation in ATA_CAM mode.
+ Note that to use CAM-based ATA kernel should include CAM devices
+ scbus, pass, da (or explicitly ada), cd and optionally others. All of
+ them are parts of the cam module.
+
+ ataraid(4) functionality is now supported by the RAID GEOM class.
+ To use it you can load geom_raid kernel module and use graid(8) tool
+ for management. Instead of /dev/arX device names, use /dev/raid/rX.
+
+ No kernel config options or code have been removed, so if a problem
+ arises, please report it and optionally revert to the old ATA stack.
+ In order to do it you can remove from the kernel config:
+ options ATA_CAM
+ device ahci
+ device mvs
+ device siis
+ , and instead add back:
+ device atadisk # ATA disk drives
+ device ataraid # ATA RAID drives
+ device atapicd # ATAPI CDROM drives
+ device atapifd # ATAPI floppy drives
+ device atapist # ATAPI tape drives
+
+20110423:
+ The default NFS server has been changed to the new server, which
+ was referred to as the experimental server. If you need to switch
+ back to the old NFS server, you must now put the "-o" option on
+ both the mountd and nfsd commands. This can be done using the
+ mountd_flags and nfs_server_flags rc.conf variables until an
+ update to the rc scripts is committed, which is coming soon.
+
+20110418:
+ The GNU Objective-C runtime library (libobjc), and other Objective-C
+ related components have been removed from the base system. If you
+ require an Objective-C library, please use one of the available ports.
+
+20110331:
+ ath(4) has been split into bus- and device- modules. if_ath contains
+ the HAL, the TX rate control and the network device code. if_ath_pci
+ contains the PCI bus glue. For Atheros MIPS embedded systems, if_ath_ahb
+ contains the AHB glue. Users need to load both if_ath_pci and if_ath
+ in order to use ath on everything else.
+
+ TO REPEAT: if_ath_ahb is not needed for normal users. Normal users only
+ need to load if_ath and if_ath_pci for ath(4) operation.
+
+20110314:
+ As part of the replacement of sysinstall, the process of building
+ release media has changed significantly. For details, please re-read
+ release(7), which has been updated to reflect the new build process.
+
+20110218:
+ GNU binutils 2.17.50 (as of 2007-07-03) has been merged to -HEAD. This
+ is the last available version under GPLv2. It brings a number of new
+ features, such as support for newer x86 CPU's (with SSE-3, SSSE-3, SSE
+ 4.1 and SSE 4.2), better support for powerpc64, a number of new
+ directives, and lots of other small improvements. See the ChangeLog
+ file in contrib/binutils for the full details.
+
+20110218:
+ IPsec's HMAC_SHA256-512 support has been fixed to be RFC4868
+ compliant, and will now use half of hash for authentication.
+ This will break interoperability with all stacks (including all
+ actual FreeBSD versions) who implement
+ draft-ietf-ipsec-ciph-sha-256-00 (they use 96 bits of hash for
+ authentication).
+ The only workaround with such peers is to use another HMAC
+ algorithm for IPsec ("phase 2") authentication.
+
+20110207:
+ Remove the uio_yield prototype and symbol. This function has
+ been misnamed since it was introduced and should not be
+ globally exposed with this name. The equivalent functionality
+ is now available using kern_yield(curthread->td_user_pri).
+ The function remains undocumented.
+
+20110112:
+ A SYSCTL_[ADD_]UQUAD was added for unsigned uint64_t pointers,
+ symmetric with the existing SYSCTL_[ADD_]QUAD. Type checking
+ for scalar sysctls is defined but disabled. Code that needs
+ UQUAD to pass the type checking that must compile on older
+ systems where the define is not present can check against
+ __FreeBSD_version >= 900030.
+
+ The system dialog(1) has been replaced with a new version previously
+ in ports as devel/cdialog. dialog(1) is mostly command-line compatible
+ with the previous version, but the libdialog associated with it has
+ a largely incompatible API. As such, the original version of libdialog
+ will be kept temporarily as libodialog, until its base system consumers
+ are replaced or updated. Bump __FreeBSD_version to 900030.
+
+20110103:
+ If you are trying to run make universe on a -stable system, and you get
+ the following warning:
+ "Makefile", line 356: "Target architecture for i386/conf/GENERIC
+ unknown. config(8) likely too old."
+ or something similar to it, then you must upgrade your -stable system
+ to 8.2-Release or newer (really, any time after r210146 7/15/2010 in
+ stable/8) or build the config from the latest stable/8 branch and
+ install it on your system.
+
+ Prior to this date, building a current universe on 8-stable system from
+ between 7/15/2010 and 1/2/2011 would result in a weird shell parsing
+ error in the first kernel build phase. A new config on those old
+ systems will fix that problem for older versions of -current.
+
+20101228:
+ The TCP stack has been modified to allow Khelp modules to interact with
+ it via helper hook points and store per-connection data in the TCP
+ control block. Bump __FreeBSD_version to 900029. User space tools that
+ rely on the size of struct tcpcb in tcp_var.h (e.g. sockstat) need to
+ be recompiled.
+
+20101114:
+ Generic IEEE 802.3 annex 31B full duplex flow control support has been
+ added to mii(4) and bge(4), bce(4), msk(4), nfe(4) and stge(4) along
+ with brgphy(4), e1000phy(4) as well as ip1000phy() have been converted
+ to take advantage of it instead of using custom implementations. This
+ means that these drivers now no longer unconditionally advertise
+ support for flow control but only do so if flow control is a selected
+ media option. This was implemented in the generic support that way in
+ order to allow flow control to be switched on and off via ifconfig(8)
+ with the PHY specific default to typically off in order to protect
+ from unwanted effects. Consequently, if you used flow control with
+ one of the above mentioned drivers you now need to explicitly enable
+ it, for example via:
+ ifconfig bge0 media auto mediaopt flowcontrol
+
+ Along with the above mentioned changes generic support for setting
+ 1000baseT master mode also has been added and brgphy(4), ciphy(4),
+ e1000phy(4) as well as ip1000phy(4) have been converted to take
+ advantage of it. This means that these drivers now no longer take the
+ link0 parameter for selecting master mode but the master media option
+ has to be used instead, for example like in the following:
+ ifconfig bge0 media 1000baseT mediaopt full-duplex,master
+
+ Selection of master mode now is also available with all other PHY
+ drivers supporting 1000baseT.
+
+20101111:
+ The TCP stack has received a significant update to add support for
+ modularised congestion control and generally improve the clarity of
+ congestion control decisions. Bump __FreeBSD_version to 900025. User
+ space tools that rely on the size of struct tcpcb in tcp_var.h (e.g.
+ sockstat) need to be recompiled.
+
+20101002:
+ The man(1) utility has been replaced by a new version that no longer
+ uses /etc/manpath.config. Please consult man.conf(5) for how to
+ migrate local entries to the new format.
+
+20100928:
+ The copyright strings printed by login(1) and sshd(8) at the time of a
+ new connection have been removed to follow other operating systems and
+ upstream sshd.
+
+20100915:
+ A workaround for a fixed ld bug has been removed in kernel code,
+ so make sure that your system ld is built from sources after
+ revision 210245 from 2010-07-19 (r211583 if building head kernel
+ on stable/8, r211584 for stable/7; both from 2010-08-21).
+ A symptom of incorrect ld version is different addresses for
+ set_pcpu section and __start_set_pcpu symbol in kernel and/or modules.
+
+20100913:
+ The $ipv6_prefer variable in rc.conf(5) has been split into
+ $ip6addrctl_policy and $ipv6_activate_all_interfaces.
+
+ The $ip6addrctl_policy is a variable to choose a pre-defined
+ address selection policy set by ip6addrctl(8). A value
+ "ipv4_prefer", "ipv6_prefer" or "AUTO" can be specified. The
+ default is "AUTO".
+
+ The $ipv6_activate_all_interfaces specifies whether IFDISABLED
+ flag (see an entry of 20090926) is set on an interface with no
+ corresponding $ifconfig_IF_ipv6 line. The default is "NO" for
+ security reason. If you want IPv6 link-local address on all
+ interfaces by default, set this to "YES".
+
+ The old ipv6_prefer="YES" is equivalent to
+ ipv6_activate_all_interfaces="YES" and
+ ip6addrctl_policy="ipv6_prefer".
+
+20100913:
+ DTrace has grown support for userland tracing. Due to this, DTrace is
+ now i386 and amd64 only.
+ dtruss(1) is now installed by default on those systems and a new
+ kernel module is needed for userland tracing: fasttrap.
+ No changes to your kernel config file are necessary to enable
+ userland tracing, but you might consider adding 'STRIP=' and
+ 'CFLAGS+=-fno-omit-frame-pointer' to your make.conf if you want
+ to have informative userland stack traces in DTrace (ustack).
+
+20100725:
+ The acpi_aiboost(4) driver has been removed in favor of the new
+ aibs(4) driver. You should update your kernel configuration file.
+
+20100722:
+ BSD grep has been imported to the base system and it is built by
+ default. It is completely BSD licensed, highly GNU-compatible, uses
+ less memory than its GNU counterpart and has a small codebase.
+ However, it is slower than its GNU counterpart, which is mostly
+ noticeable for larger searches, for smaller ones it is measurable
+ but not significant. The reason is complex, the most important factor
+ is that we lack a modern and efficient regex library and GNU
+ overcomes this by optimizing the searches internally. Future work
+ on improving the regex performance is planned, for the meantime,
+ users that need better performance, can build GNU grep instead by
+ setting the WITH_GNU_GREP knob.
+
+20100713:
+ Due to the import of powerpc64 support, all existing powerpc kernel
+ configuration files must be updated with a machine directive like this:
+ machine powerpc powerpc
+
+ In addition, an updated config(8) is required to build powerpc kernels
+ after this change.
+
+20100713:
+ A new version of ZFS (version 15) has been merged to -HEAD.
+ This version uses a python library for the following subcommands:
+ zfs allow, zfs unallow, zfs groupspace, zfs userspace.
+ For full functionality of these commands the following port must
+ be installed: sysutils/py-zfs
+
+20100429:
+ 'vm_page's are now hashed by physical address to an array of mutexes.
+ Currently this is only used to serialize access to hold_count. Over
+ time the page queue mutex will be peeled away. This changes the size
+ of pmap on every architecture. And requires all callers of vm_page_hold
+ and vm_page_unhold to be updated.
+
+20100402:
+ WITH_CTF can now be specified in src.conf (not recommended, there
+ are some problems with static executables), make.conf (would also
+ affect ports which do not use GNU make and do not override the
+ compile targets) or in the kernel config (via "makeoptions
+ WITH_CTF=yes").
+ When WITH_CTF was specified there before this was silently ignored,
+ so make sure that WITH_CTF is not used in places which could lead
+ to unwanted behavior.
+
+20100311:
+ The kernel option COMPAT_IA32 has been replaced with COMPAT_FREEBSD32
+ to allow 32-bit compatibility on non-x86 platforms. All kernel
+ configurations on amd64 and ia64 platforms using these options must
+ be modified accordingly.
+
+20100113:
+ The utmp user accounting database has been replaced with utmpx,
+ the user accounting interface standardized by POSIX.
+ Unfortunately the semantics of utmp and utmpx don't match,
+ making it practically impossible to support both interfaces.
+ The user accounting database is used by tools like finger(1),
+ last(1), talk(1), w(1) and ac(8).
+
+ All applications in the base system use utmpx. This means only
+ local binaries (e.g. from the ports tree) may still use these
+ utmp database files. These applications must be rebuilt to make
+ use of utmpx.
+
+ After the system has been upgraded, it is safe to remove the old
+ log files (/var/run/utmp, /var/log/lastlog and /var/log/wtmp*),
+ assuming their contents is of no importance anymore. Old wtmp
+ databases can only be used by last(1) and ac(8) after they have
+ been converted to the new format using wtmpcvt(1).
+
+20100108:
+ Introduce the kernel thread "deadlock resolver" (which can be enabled
+ via the DEADLKRES option, see NOTES for more details) and the
+ sleepq_type() function for sleepqueues.
+
+20091202:
+ The rc.firewall and rc.firewall6 were unified, and
+ rc.firewall6 and rc.d/ip6fw were removed.
+ According to the removal of rc.d/ip6fw, ipv6_firewall_* rc
+ variables are obsoleted. Instead, the following new rc
+ variables are added to rc.d/ipfw:
+
+ firewall_client_net_ipv6, firewall_simple_iif_ipv6,
+ firewall_simple_inet_ipv6, firewall_simple_oif_ipv6,
+ firewall_simple_onet_ipv6, firewall_trusted_ipv6
+
+ The meanings correspond to the relevant IPv4 variables.
+
+20091125:
+ 8.0-RELEASE.
+
+20091113:
+ The default terminal emulation for syscons(4) has been changed
+ from cons25 to xterm on all platforms except pc98. This means
+ that the /etc/ttys file needs to be updated to ensure correct
+ operation of applications on the console.
+
+ The terminal emulation style can be toggled per window by using
+ vidcontrol(1)'s -T flag. The TEKEN_CONS25 kernel configuration
+ options can be used to change the compile-time default back to
+ cons25.
+
+ To prevent graphical artifacts, make sure the TERM environment
+ variable is set to match the terminal emulation that is being
+ performed by syscons(4).
+
+20091109:
+ The layout of the structure ieee80211req_scan_result has changed.
+ Applications that require wireless scan results (e.g. ifconfig(8))
+ from net80211 need to be recompiled.
+
+ Applications such as wpa_supplicant(8) may require a full world
+ build without using NO_CLEAN in order to get synchronized with the
+ new structure.
+
+20091025:
+ The iwn(4) driver has been updated to support the 5000 and 5150 series.
+ There's one kernel module for each firmware. Adding "device iwnfw"
+ to the kernel configuration file means including all three firmware
+ images inside the kernel. If you want to include just the one for
+ your wireless card, use the devices iwn4965fw, iwn5000fw or
+ iwn5150fw.
+
+20090926:
+ The rc.d/network_ipv6, IPv6 configuration script has been integrated
+ into rc.d/netif. The changes are the following:
+
+ 1. To use IPv6, simply define $ifconfig_IF_ipv6 like $ifconfig_IF
+ for IPv4. For aliases, $ifconfig_IF_aliasN should be used.
+ Note that both variables need the "inet6" keyword at the head.
+
+ Do not set $ipv6_network_interfaces manually if you do not
+ understand what you are doing. It is not needed in most cases.
+
+ $ipv6_ifconfig_IF and $ipv6_ifconfig_IF_aliasN still work, but
+ they are obsolete.
+
+ 2. $ipv6_enable is obsolete. Use $ipv6_prefer and
+ "inet6 accept_rtadv" keyword in ifconfig(8) instead.
+
+ If you define $ipv6_enable=YES, it means $ipv6_prefer=YES and
+ all configured interfaces have "inet6 accept_rtadv" in the
+ $ifconfig_IF_ipv6. These are for backward compatibility.
+
+ 3. A new variable $ipv6_prefer has been added. If NO, IPv6
+ functionality of interfaces with no corresponding
+ $ifconfig_IF_ipv6 is disabled by using "inet6 ifdisabled" flag,
+ and the default address selection policy of ip6addrctl(8)
+ is the IPv4-preferred one (see rc.d/ip6addrctl for more details).
+ Note that if you want to configure IPv6 functionality on the
+ disabled interfaces after boot, first you need to clear the flag by
+ using ifconfig(8) like:
+
+ ifconfig em0 inet6 -ifdisabled
+
+ If YES, the default address selection policy is set as
+ IPv6-preferred.
+
+ The default value of $ipv6_prefer is NO.
+
+ 4. If your system need to receive Router Advertisement messages,
+ define "inet6 accept_rtadv" in $ifconfig_IF_ipv6. The rc(8)
+ scripts automatically invoke rtsol(8) when the interface becomes
+ UP. The Router Advertisement messages are used for SLAAC
+ (State-Less Address AutoConfiguration).
+
+20090922:
+ 802.11s D3.03 support was committed. This is incompatible with the
+ previous code, which was based on D3.0.
+
+20090912:
+ A sysctl variable net.inet6.ip6.accept_rtadv now sets the default value
+ of a per-interface flag ND6_IFF_ACCEPT_RTADV, not a global knob to
+ control whether accepting Router Advertisement messages or not.
+ Also, a per-interface flag ND6_IFF_AUTO_LINKLOCAL has been added and
+ a sysctl variable net.inet6.ip6.auto_linklocal is its default value.
+ The ifconfig(8) utility now supports these flags.
+
+20090910:
+ ZFS snapshots are now mounted with MNT_IGNORE flag. Use -v option for
+ mount(8) and -a option for df(1) to see them.
+
+20090825:
+ The old tunable hw.bus.devctl_disable has been superseded by
+ hw.bus.devctl_queue. hw.bus.devctl_disable=1 in loader.conf should be
+ replaced by hw.bus.devctl_queue=0. The default for this new tunable
+ is 1000.
+
+20090813:
+ Remove the option STOP_NMI. The default action is now to use NMI only
+ for KDB via the newly introduced function stop_cpus_hard() and
+ maintain stop_cpus() to just use a normal IPI_STOP on ia32 and amd64.
+
+20090803:
+ The stable/8 branch created in subversion. This corresponds to the
+ RELENG_8 branch in CVS.
+
+20090719:
+ Bump the shared library version numbers for all libraries that do not
+ use symbol versioning as part of the 8.0-RELEASE cycle. Bump
+ __FreeBSD_version to 800105.
+
+20090714:
+ Due to changes in the implementation of virtual network stack support,
+ all network-related kernel modules must be recompiled. As this change
+ breaks the ABI, bump __FreeBSD_version to 800104.
+
+20090713:
+ The TOE interface to the TCP syncache has been modified to remove
+ struct tcpopt (<netinet/tcp_var.h>) from the ABI of the network stack.
+ The cxgb driver is the only TOE consumer affected by this change, and
+ needs to be recompiled along with the kernel. As this change breaks
+ the ABI, bump __FreeBSD_version to 800103.
+
+20090712:
+ Padding has been added to struct tcpcb, sackhint and tcpstat in
+ <netinet/tcp_var.h> to facilitate future MFCs and bug fixes whilst
+ maintaining the ABI. However, this change breaks the ABI, so bump
+ __FreeBSD_version to 800102. User space tools that rely on the size of
+ any of these structs (e.g. sockstat) need to be recompiled.
+
+20090630:
+ The NFS_LEGACYRPC option has been removed along with the old kernel
+ RPC implementation that this option selected. Kernel configurations
+ may need to be adjusted.
+
+20090629:
+ The network interface device nodes at /dev/net/<interface> have been
+ removed. All ioctl operations can be performed the normal way using
+ routing sockets. The kqueue functionality can generally be replaced
+ with routing sockets.
+
+20090628:
+ The documentation from the FreeBSD Documentation Project (Handbook,
+ FAQ, etc.) is now installed via packages by sysinstall(8) and under
+ the /usr/local/share/doc/freebsd directory instead of /usr/share/doc.
+
+20090624:
+ The ABI of various structures related to the SYSV IPC API have been
+ changed. As a result, the COMPAT_FREEBSD[456] and COMPAT_43 kernel
+ options now all require COMPAT_FREEBSD7. Bump __FreeBSD_version to
+ 800100.
+
+20090622:
+ Layout of struct vnet has changed as routing related variables were
+ moved to their own Vimage module. Modules need to be recompiled. Bump
+ __FreeBSD_version to 800099.
+
+20090619:
+ NGROUPS_MAX and NGROUPS have been increased from 16 to 1023 and 1024
+ respectively. As long as no more than 16 groups per process are used,
+ no changes should be visible. When more than 16 groups are used, old
+ binaries may fail if they call getgroups() or getgrouplist() with
+ statically sized storage. Recompiling will work around this, but
+ applications should be modified to use dynamically allocated storage
+ for group arrays as POSIX.1-2008 does not cap an implementation's
+ number of supported groups at NGROUPS_MAX+1 as previous versions did.
+
+ NFS and portalfs mounts may also be affected as the list of groups is
+ truncated to 16. Users of NFS who use more than 16 groups, should
+ take care that negative group permissions are not used on the exported
+ file systems as they will not be reliable unless a GSSAPI based
+ authentication method is used.
+
+20090616:
+ The compiling option ADAPTIVE_LOCKMGRS has been introduced. This
+ option compiles in the support for adaptive spinning for lockmgrs
+ which want to enable it. The lockinit() function now accepts the flag
+ LK_ADAPTIVE in order to make the lock object subject to adaptive
+ spinning when both held in write and read mode.
+
+20090613:
+ The layout of the structure returned by IEEE80211_IOC_STA_INFO has
+ changed. User applications that use this ioctl need to be rebuilt.
+
+20090611:
+ The layout of struct thread has changed. Kernel and modules need to
+ be rebuilt.
+
+20090608:
+ The layout of structs ifnet, domain, protosw and vnet_net has changed.
+ Kernel modules need to be rebuilt. Bump __FreeBSD_version to 800097.
+
+20090602:
+ window(1) has been removed from the base system. It can now be
+ installed from ports. The port is called misc/window.
+
+20090601:
+ The way we are storing and accessing `routing table' entries has
+ changed. Programs reading the FIB, like netstat, need to be
+ re-compiled.
+
+20090601:
+ A new netisr implementation has been added for FreeBSD 8. Network
+ file system modules, such as igmp, ipdivert, and others, should be
+ rebuilt.
+ Bump __FreeBSD_version to 800096.
+
+20090530:
+ Remove the tunable/sysctl debug.mpsafevfs as its initial purpose is no
+ more valid.
+
+20090530:
+ Add VOP_ACCESSX(9). File system modules need to be rebuilt.
+ Bump __FreeBSD_version to 800094.
+
+20090529:
+ Add mnt_xflag field to 'struct mount'. File system modules need to be
+ rebuilt.
+ Bump __FreeBSD_version to 800093.
+
+20090528:
+ The compiling option ADAPTIVE_SX has been retired while it has been
+ introduced the option NO_ADAPTIVE_SX which handles the reversed logic.
+ The KPI for sx_init_flags() changes as accepting flags:
+ SX_ADAPTIVESPIN flag has been retired while the SX_NOADAPTIVE flag has
+ been introduced in order to handle the reversed logic.
+ Bump __FreeBSD_version to 800092.
+
+20090527:
+ Add support for hierarchical jails. Remove global securelevel.
+ Bump __FreeBSD_version to 800091.
+
+20090523:
+ The layout of struct vnet_net has changed, therefore modules
+ need to be rebuilt.
+ Bump __FreeBSD_version to 800090.
+
+20090523:
+ The newly imported zic(8) produces a new format in the output. Please
+ run tzsetup(8) to install the newly created data to /etc/localtime.
+
+20090520:
+ The sysctl tree for the usb stack has renamed from hw.usb2.* to
+ hw.usb.* and is now consistent again with previous releases.
+
+20090520:
+ 802.11 monitor mode support was revised and driver api's were changed.
+ Drivers dependent on net80211 now support DLT_IEEE802_11_RADIO instead
+ of DLT_IEEE802_11. No user-visible data structures were changed but
+ applications that use DLT_IEEE802_11 may require changes.
+ Bump __FreeBSD_version to 800088.
+
+20090430:
+ The layout of the following structs has changed: sysctl_oid,
+ socket, ifnet, inpcbinfo, tcpcb, syncache_head, vnet_inet,
+ vnet_inet6 and vnet_ipfw. Most modules need to be rebuild or
+ panics may be experienced. World rebuild is required for
+ correctly checking networking state from userland.
+ Bump __FreeBSD_version to 800085.
+
+20090429:
+ MLDv2 and Source-Specific Multicast (SSM) have been merged
+ to the IPv6 stack. VIMAGE hooks are in but not yet used.
+ The implementation of SSM within FreeBSD's IPv6 stack closely
+ follows the IPv4 implementation.
+
+ For kernel developers:
+
+ * The most important changes are that the ip6_output() and
+ ip6_input() paths no longer take the IN6_MULTI_LOCK,
+ and this lock has been downgraded to a non-recursive mutex.
+
+ * As with the changes to the IPv4 stack to support SSM, filtering
+ of inbound multicast traffic must now be performed by transport
+ protocols within the IPv6 stack. This does not apply to TCP and
+ SCTP, however, it does apply to UDP in IPv6 and raw IPv6.
+
+ * The KPIs used by IPv6 multicast are similar to those used by
+ the IPv4 stack, with the following differences:
+ * im6o_mc_filter() is analogous to imo_multicast_filter().
+ * The legacy KAME entry points in6_joingroup and in6_leavegroup()
+ are shimmed to in6_mc_join() and in6_mc_leave() respectively.
+ * IN6_LOOKUP_MULTI() has been deprecated and removed.
+ * IPv6 relies on MLD for the DAD mechanism. KAME's internal KPIs
+ for MLDv1 have an additional 'timer' argument which is used to
+ jitter the initial membership report for the solicited-node
+ multicast membership on-link.
+ * This is not strictly needed for MLDv2, which already jitters
+ its report transmissions. However, the 'timer' argument is
+ preserved in case MLDv1 is active on the interface.
+
+ * The KAME linked-list based IPv6 membership implementation has
+ been refactored to use a vector similar to that used by the IPv4
+ stack.
+ Code which maintains a list of its own multicast memberships
+ internally, e.g. carp, has been updated to reflect the new
+ semantics.
+
+ * There is a known Lock Order Reversal (LOR) due to in6_setscope()
+ acquiring the IF_AFDATA_LOCK and being called within ip6_output().
+ Whilst MLDv2 tries to avoid this otherwise benign LOR, it is an
+ implementation constraint which needs to be addressed in HEAD.
+
+ For application developers:
+
+ * The changes are broadly similar to those made for the IPv4
+ stack.
+
+ * The use of IPv4 and IPv6 multicast socket options on the same
+ socket, using mapped addresses, HAS NOT been tested or supported.
+
+ * There are a number of issues with the implementation of various
+ IPv6 multicast APIs which need to be resolved in the API surface
+ before the implementation is fully compatible with KAME userland
+ use, and these are mostly to do with interface index treatment.
+
+ * The literature available discusses the use of either the delta / ASM
+ API with setsockopt(2)/getsockopt(2), or the full-state / ASM API
+ using setsourcefilter(3)/getsourcefilter(3). For more information
+ please refer to RFC 3768, 'Socket Interface Extensions for
+ Multicast Source Filters'.
+
+ * Applications which use the published RFC 3678 APIs should be fine.
+
+ For systems administrators:
+
+ * The mtest(8) utility has been refactored to support IPv6, in
+ addition to IPv4. Interface addresses are no longer accepted
+ as arguments, their names must be used instead. The utility
+ will map the interface name to its first IPv4 address as
+ returned by getifaddrs(3).
+
+ * The ifmcstat(8) utility has also been updated to print the MLDv2
+ endpoint state and source filter lists via sysctl(3).
+
+ * The net.inet6.ip6.mcast.loop sysctl may be tuned to 0 to disable
+ loopback of IPv6 multicast datagrams by default; it defaults to 1
+ to preserve the existing behaviour. Disabling multicast loopback is
+ recommended for optimal system performance.
+
+ * The IPv6 MROUTING code has been changed to examine this sysctl
+ instead of attempting to perform a group lookup before looping
+ back forwarded datagrams.
+
+ Bump __FreeBSD_version to 800084.
+
+20090422:
+ Implement low-level Bluetooth HCI API.
+ Bump __FreeBSD_version to 800083.
+
+20090419:
+ The layout of struct malloc_type, used by modules to register new
+ memory allocation types, has changed. Most modules will need to
+ be rebuilt or panics may be experienced.
+ Bump __FreeBSD_version to 800081.
+
+20090415:
+ Anticipate overflowing inp_flags - add inp_flags2.
+ This changes most offsets in inpcb, so checking v4 connection
+ state will require a world rebuild.
+ Bump __FreeBSD_version to 800080.
+
+20090415:
+ Add an llentry to struct route and struct route_in6. Modules
+ embedding a struct route will need to be recompiled.
+ Bump __FreeBSD_version to 800079.
+
+20090414:
+ The size of rt_metrics_lite and by extension rtentry has changed.
+ Networking administration apps will need to be recompiled.
+ The route command now supports show as an alias for get, weighting
+ of routes, sticky and nostick flags to alter the behavior of stateful
+ load balancing.
+ Bump __FreeBSD_version to 800078.
+
+20090408:
+ Do not use Giant for kbdmux(4) locking. This is wrong and
+ apparently causing more problems than it solves. This will
+ re-open the issue where interrupt handlers may race with
+ kbdmux(4) in polling mode. Typical symptoms include (but
+ not limited to) duplicated and/or missing characters when
+ low level console functions (such as gets) are used while
+ interrupts are enabled (for example geli password prompt,
+ mountroot prompt etc.). Disabling kbdmux(4) may help.
+
+20090407:
+ The size of structs vnet_net, vnet_inet and vnet_ipfw has changed;
+ kernel modules referencing any of the above need to be recompiled.
+ Bump __FreeBSD_version to 800075.
+
+20090320:
+ GEOM_PART has become the default partition slicer for storage devices,
+ replacing GEOM_MBR, GEOM_BSD, GEOM_PC98 and GEOM_GPT slicers. It
+ introduces some changes:
+
+ MSDOS/EBR: the devices created from MSDOS extended partition entries
+ (EBR) can be named differently than with GEOM_MBR and are now symlinks
+ to devices with offset-based names. fstabs may need to be modified.
+
+ BSD: the "geometry does not match label" warning is harmless in most
+ cases but it points to problems in file system misalignment with
+ disk geometry. The "c" partition is now implicit, covers the whole
+ top-level drive and cannot be (mis)used by users.
+
+ General: Kernel dumps are now not allowed to be written to devices
+ whose partition types indicate they are meant to be used for file
+ systems (or, in case of MSDOS partitions, as something else than
+ the "386BSD" type).
+
+ Most of these changes date approximately from 200812.
+
+20090319:
+ The uscanner(4) driver has been removed from the kernel. This follows
+ Linux removing theirs in 2.6 and making libusb the default interface
+ (supported by sane).
+
+20090319:
+ The multicast forwarding code has been cleaned up. netstat(1)
+ only relies on KVM now for printing bandwidth upcall meters.
+ The IPv4 and IPv6 modules are split into ip_mroute_mod and
+ ip6_mroute_mod respectively. The config(5) options for statically
+ compiling this code remain the same, i.e. 'options MROUTING'.
+
+20090315:
+ Support for the IFF_NEEDSGIANT network interface flag has been
+ removed, which means that non-MPSAFE network device drivers are no
+ longer supported. In particular, if_ar, if_sr, and network device
+ drivers from the old (legacy) USB stack can no longer be built or
+ used.
+
+20090313:
+ POSIX.1 Native Language Support (NLS) has been enabled in libc and
+ a bunch of new language catalog files have also been added.
+ This means that some common libc messages are now localized and
+ they depend on the LC_MESSAGES environmental variable.
+
+20090313:
+ The k8temp(4) driver has been renamed to amdtemp(4) since
+ support for Family 10 and Family 11 CPU families was added.
+
+20090309:
+ IGMPv3 and Source-Specific Multicast (SSM) have been merged
+ to the IPv4 stack. VIMAGE hooks are in but not yet used.
+
+ For kernel developers, the most important changes are that the
+ ip_output() and ip_input() paths no longer take the IN_MULTI_LOCK(),
+ and this lock has been downgraded to a non-recursive mutex.
+
+ Transport protocols (UDP, Raw IP) are now responsible for filtering
+ inbound multicast traffic according to group membership and source
+ filters. The imo_multicast_filter() KPI exists for this purpose.
+ Transports which do not use multicast (SCTP, TCP) already reject
+ multicast by default. Forwarding and receive performance may improve
+ as a mutex acquisition is no longer needed in the ip_input()
+ low-level input path. in_addmulti() and in_delmulti() are shimmed
+ to new KPIs which exist to support SSM in-kernel.
+
+ For application developers, it is recommended that loopback of
+ multicast datagrams be disabled for best performance, as this
+ will still cause the lock to be taken for each looped-back
+ datagram transmission. The net.inet.ip.mcast.loop sysctl may
+ be tuned to 0 to disable loopback by default; it defaults to 1
+ to preserve the existing behaviour.
+
+ For systems administrators, to obtain best performance with
+ multicast reception and multiple groups, it is always recommended
+ that a card with a suitably precise hash filter is used. Hash
+ collisions will still result in the lock being taken within the
+ transport protocol input path to check group membership.
+
+ If deploying FreeBSD in an environment with IGMP snooping switches,
+ it is recommended that the net.inet.igmp.sendlocal sysctl remain
+ enabled; this forces 224.0.0.0/24 group membership to be announced
+ via IGMP.
+
+ The size of 'struct igmpstat' has changed; netstat needs to be
+ recompiled to reflect this.
+ Bump __FreeBSD_version to 800070.
+
+20090309:
+ libusb20.so.1 is now installed as libusb.so.1 and the ports system
+ updated to use it. This requires a buildworld/installworld in order to
+ update the library and dependencies (usbconfig, etc). Its advisable to
+ rebuild all ports which uses libusb. More specific directions are given
+ in the ports collection UPDATING file. Any /etc/libmap.conf entries for
+ libusb are no longer required and can be removed.
+
+20090302:
+ A workaround is committed to allow the creation of System V shared
+ memory segment of size > 2 GB on the 64-bit architectures.
+ Due to a limitation of the existing ABI, the shm_segsz member
+ of the struct shmid_ds, returned by shmctl(IPC_STAT) call is
+ wrong for large segments. Note that limits must be explicitly
+ raised to allow such segments to be created.
+
+20090301:
+ The layout of struct ifnet has changed, requiring a rebuild of all
+ network device driver modules.
+
+20090227:
+ The /dev handling for the new USB stack has changed, a
+ buildworld/installworld is required for libusb20.
+
+20090223:
+ The new USB2 stack has now been permanently moved in and all kernel and
+ module names reverted to their previous values (eg, usb, ehci, ohci,
+ ums, ...). The old usb stack can be compiled in by prefixing the name
+ with the letter 'o', the old usb modules have been removed.
+ Updating entry 20090216 for xorg and 20090215 for libmap may still
+ apply.
+
+20090217:
+ The rc.conf(5) option if_up_delay has been renamed to
+ defaultroute_delay to better reflect its purpose. If you have
+ customized this setting in /etc/rc.conf you need to update it to
+ use the new name.
+
+20090216:
+ xorg 7.4 wants to configure its input devices via hald which does not
+ yet work with USB2. If the keyboard/mouse does not work in xorg then
+ add
+ Option "AllowEmptyInput" "off"
+ to your ServerLayout section. This will cause X to use the configured
+ kbd and mouse sections from your xorg.conf.
+
+20090215:
+ The GENERIC kernels for all architectures now default to the new USB2
+ stack. No kernel config options or code have been removed so if a
+ problem arises please report it and optionally revert to the old USB
+ stack. If you are loading USB kernel modules or have a custom kernel
+ that includes GENERIC then ensure that usb names are also changed over,
+ eg uftdi -> usb2_serial_ftdi.
+
+ Older programs linked against the ports libusb 0.1 need to be
+ redirected to the new stack's libusb20. /etc/libmap.conf can
+ be used for this:
+ # Map old usb library to new one for usb2 stack
+ libusb-0.1.so.8 libusb20.so.1
+
+20090209:
+ All USB ethernet devices now attach as interfaces under the name ueN
+ (eg. ue0). This is to provide a predictable name as vendors often
+ change usb chipsets in a product without notice.
+
+20090203:
+ The ichsmb(4) driver has been changed to require SMBus slave
+ addresses be left-justified (xxxxxxx0b) rather than right-justified.
+ All of the other SMBus controller drivers require left-justified
+ slave addresses, so this change makes all the drivers provide the
+ same interface.
+
+20090201:
+ INET6 statistics (struct ip6stat) was updated.
+ netstat(1) needs to be recompiled.
+
+20090119:
+ NTFS has been removed from GENERIC kernel on amd64 to match
+ GENERIC on i386. Should not cause any issues since mount_ntfs(8)
+ will load ntfs.ko module automatically when NTFS support is
+ actually needed, unless ntfs.ko is not installed or security
+ level prohibits loading kernel modules. If either is the case,
+ "options NTFS" has to be added into kernel config.
+
+20090115:
+ TCP Appropriate Byte Counting (RFC 3465) support added to kernel.
+ New field in struct tcpcb breaks ABI, so bump __FreeBSD_version to
+ 800061. User space tools that rely on the size of struct tcpcb in
+ tcp_var.h (e.g. sockstat) need to be recompiled.
+
+20081225:
+ ng_tty(4) module updated to match the new TTY subsystem.
+ Due to API change, user-level applications must be updated.
+ New API support added to mpd5 CVS and expected to be present
+ in next mpd5.3 release.
+
+20081219:
+ With __FreeBSD_version 800060 the makefs tool is part of
+ the base system (it was a port).
+
+20081216:
+ The afdata and ifnet locks have been changed from mutexes to
+ rwlocks, network modules will need to be re-compiled.
+
+20081214:
+ __FreeBSD_version 800059 incorporates the new arp-v2 rewrite.
+ RTF_CLONING, RTF_LLINFO and RTF_WASCLONED flags are eliminated.
+ The new code reduced struct rtentry{} by 16 bytes on 32-bit
+ architecture and 40 bytes on 64-bit architecture. The userland
+ applications "arp" and "ndp" have been updated accordingly.
+ The output from "netstat -r" shows only routing entries and
+ none of the L2 information.
+
+20081130:
+ __FreeBSD_version 800057 marks the switchover from the
+ binary ath hal to source code. Users must add the line:
+
+ options AH_SUPPORT_AR5416
+
+ to their kernel config files when specifying:
+
+ device ath_hal
+
+ The ath_hal module no longer exists; the code is now compiled
+ together with the driver in the ath module. It is now
+ possible to tailor chip support (i.e. reduce the set of chips
+ and thereby the code size); consult ath_hal(4) for details.
+
+20081121:
+ __FreeBSD_version 800054 adds memory barriers to
+ <machine/atomic.h>, new interfaces to ifnet to facilitate
+ multiple hardware transmit queues for cards that support
+ them, and a lock-less ring-buffer implementation to
+ enable drivers to more efficiently manage queueing of
+ packets.
+
+20081117:
+ A new version of ZFS (version 13) has been merged to -HEAD.
+ This version has zpool attribute "listsnapshots" off by
+ default, which means "zfs list" does not show snapshots,
+ and is the same as Solaris behavior.
+
+20081028:
+ dummynet(4) ABI has changed. ipfw(8) needs to be recompiled.
+
+20081009:
+ The uhci, ohci, ehci and slhci USB Host controller drivers have
+ been put into separate modules. If you load the usb module
+ separately through loader.conf you will need to load the
+ appropriate *hci module as well. E.g. for a UHCI-based USB 2.0
+ controller add the following to loader.conf:
+
+ uhci_load="YES"
+ ehci_load="YES"
+
+20081009:
+ The ABI used by the PMC toolset has changed. Please keep
+ userland (libpmc(3)) and the kernel module (hwpmc(4)) in
+ sync.
+
+20081009:
+ atapci kernel module now includes only generic PCI ATA
+ driver. AHCI driver moved to ataahci kernel module.
+ All vendor-specific code moved into separate kernel modules:
+ ataacard, ataacerlabs, ataadaptec, ataamd, ataati, atacenatek,
+ atacypress, atacyrix, atahighpoint, ataintel, ataite, atajmicron,
+ atamarvell, atamicron, atanational, atanetcell, atanvidia,
+ atapromise, ataserverworks, atasiliconimage, atasis, atavia
+
+20080820:
+ The TTY subsystem of the kernel has been replaced by a new
+ implementation, which provides better scalability and an
+ improved driver model. Most common drivers have been migrated to
+ the new TTY subsystem, while others have not. The following
+ drivers have not yet been ported to the new TTY layer:
+
+ PCI/ISA:
+ cy, digi, rc, rp, sio
+
+ USB:
+ ubser, ucycom
+
+ Line disciplines:
+ ng_h4, ng_tty, ppp, sl, snp
+
+ Adding these drivers to your kernel configuration file shall
+ cause compilation to fail.
+
+20080818:
+ ntpd has been upgraded to 4.2.4p5.
+
+20080801:
+ OpenSSH has been upgraded to 5.1p1.
+
+ For many years, FreeBSD's version of OpenSSH preferred DSA
+ over RSA for host and user authentication keys. With this
+ upgrade, we've switched to the vendor's default of RSA over
+ DSA. This may cause upgraded clients to warn about unknown
+ host keys even for previously known hosts. Users should
+ follow the usual procedure for verifying host keys before
+ accepting the RSA key.
+
+ This can be circumvented by setting the "HostKeyAlgorithms"
+ option to "ssh-dss,ssh-rsa" in ~/.ssh/config or on the ssh
+ command line.
+
+ Please note that the sequence of keys offered for
+ authentication has been changed as well. You may want to
+ specify IdentityFile in a different order to revert this
+ behavior.
+
+20080713:
+ The sio(4) driver has been removed from the i386 and amd64
+ kernel configuration files. This means uart(4) is now the
+ default serial port driver on those platforms as well.
+
+ To prevent collisions with the sio(4) driver, the uart(4) driver
+ uses different names for its device nodes. This means the
+ onboard serial port will now most likely be called "ttyu0"
+ instead of "ttyd0". You may need to reconfigure applications to
+ use the new device names.
+
+ When using the serial port as a boot console, be sure to update
+ /boot/device.hints and /etc/ttys before booting the new kernel.
+ If you forget to do so, you can still manually specify the hints
+ at the loader prompt:
+
+ set hint.uart.0.at="isa"
+ set hint.uart.0.port="0x3F8"
+ set hint.uart.0.flags="0x10"
+ set hint.uart.0.irq="4"
+ boot -s
+
+20080609:
+ The gpt(8) utility has been removed. Use gpart(8) to partition
+ disks instead.
+
+20080603:
+ The version that Linuxulator emulates was changed from 2.4.2
+ to 2.6.16. If you experience any problems with Linux binaries
+ please try to set sysctl compat.linux.osrelease to 2.4.2 and
+ if it fixes the problem contact emulation mailing list.
+
+20080525:
+ ISDN4BSD (I4B) was removed from the src tree. You may need to
+ update a your kernel configuration and remove relevant entries.
+
+20080509:
+ I have checked in code to support multiple routing tables.
+ See the man pages setfib(1) and setfib(2).
+ This is a hopefully backwards compatible version,
+ but to make use of it you need to compile your kernel
+ with options ROUTETABLES=2 (or more up to 16).
+
+20080420:
+ The 802.11 wireless support was redone to enable multi-bss
+ operation on devices that are capable. The underlying device
+ is no longer used directly but instead wlanX devices are
+ cloned with ifconfig. This requires changes to rc.conf files.
+ For example, change:
+ ifconfig_ath0="WPA DHCP"
+ to
+ wlans_ath0=wlan0
+ ifconfig_wlan0="WPA DHCP"
+ see rc.conf(5) for more details. In addition, mergemaster of
+ /etc/rc.d is highly recommended. Simultaneous update of userland
+ and kernel wouldn't hurt either.
+
+ As part of the multi-bss changes the wlan_scan_ap and wlan_scan_sta
+ modules were merged into the base wlan module. All references
+ to these modules (e.g. in kernel config files) must be removed.
+
+20080408:
+ psm(4) has gained write(2) support in native operation level.
+ Arbitrary commands can be written to /dev/psm%d and status can
+ be read back from it. Therefore, an application is responsible
+ for status validation and error recovery. It is a no-op in
+ other operation levels.
+
+20080312:
+ Support for KSE threading has been removed from the kernel. To
+ run legacy applications linked against KSE libmap.conf may
+ be used. The following libmap.conf may be used to ensure
+ compatibility with any prior release:
+
+ libpthread.so.1 libthr.so.1
+ libpthread.so.2 libthr.so.2
+ libkse.so.3 libthr.so.3
+
+20080301:
+ The layout of struct vmspace has changed. This affects libkvm
+ and any executables that link against libkvm and use the
+ kvm_getprocs() function. In particular, but not exclusively,
+ it affects ps(1), fstat(1), pkill(1), systat(1), top(1) and w(1).
+ The effects are minimal, but it's advisable to upgrade world
+ nonetheless.
+
+20080229:
+ The latest em driver no longer has support in it for the
+ 82575 adapter, this is now moved to the igb driver. The
+ split was done to make new features that are incompatible
+ with older hardware easier to do.
+
+20080220:
+ The new geom_lvm(4) geom class has been renamed to geom_linux_lvm(4),
+ likewise the kernel option is now GEOM_LINUX_LVM.
+
+20080211:
+ The default NFS mount mode has changed from UDP to TCP for
+ increased reliability. If you rely on (insecurely) NFS
+ mounting across a firewall you may need to update your
+ firewall rules.
+
+20080208:
+ Belatedly note the addition of m_collapse for compacting
+ mbuf chains.
+
+20080126:
+ The fts(3) structures have been changed to use adequate
+ integer types for their members and so to be able to cope
+ with huge file trees. The old fts(3) ABI is preserved
+ through symbol versioning in libc, so third-party binaries
+ using fts(3) should still work, although they will not take
+ advantage of the extended types. At the same time, some
+ third-party software might fail to build after this change
+ due to unportable assumptions made in its source code about
+ fts(3) structure members. Such software should be fixed
+ by its vendor or, in the worst case, in the ports tree.
+ FreeBSD_version 800015 marks this change for the unlikely
+ case that a portable fix is impossible.
+
+20080123:
+ To upgrade to -current after this date, you must be running
+ FreeBSD not older than 6.0-RELEASE. Upgrading to -current
+ from 5.x now requires a stop over at RELENG_6 or RELENG_7 systems.
+
+20071128:
+ The ADAPTIVE_GIANT kernel option has been retired because its
+ functionality is the default now.
+
+20071118:
+ The AT keyboard emulation of sunkbd(4) has been turned on
+ by default. In order to make the special symbols of the Sun
+ keyboards driven by sunkbd(4) work under X these now have
+ to be configured the same way as Sun USB keyboards driven
+ by ukbd(4) (which also does AT keyboard emulation), f.e.:
+
+ Option "XkbLayout" "us"
+ Option "XkbRules" "xorg"
+ Option "XkbSymbols" "pc(pc105)+sun_vndr/usb(sun_usb)+us"
+
+20071024:
+ It has been decided that it is desirable to provide ABI
+ backwards compatibility to the FreeBSD 4/5/6 versions of the
+ PCIOCGETCONF, PCIOCREAD and PCIOCWRITE IOCTLs, which was
+ broken with the introduction of PCI domain support (see the
+ 20070930 entry). Unfortunately, this required the ABI of
+ PCIOCGETCONF to be broken again in order to be able to
+ provide backwards compatibility to the old version of that
+ IOCTL. Thus consumers of PCIOCGETCONF have to be recompiled
+ again. As for prominent ports this affects neither pciutils
+ nor xorg-server this time, the hal port needs to be rebuilt
+ however.
+
+20071020:
+ The misnamed kthread_create() and friends have been renamed
+ to kproc_create() etc. Many of the callers already
+ used kproc_start()..
+ I will return kthread_create() and friends in a while
+ with implementations that actually create threads, not procs.
+ Renaming corresponds with version 800002.
+
+20071010:
+ RELENG_7 branched.
+
+COMMON ITEMS:
+
+ General Notes
+ -------------
+ Avoid using make -j when upgrading. While generally safe, there are
+ sometimes problems using -j to upgrade. If your upgrade fails with
+ -j, please try again without -j. From time to time in the past there
+ have been problems using -j with buildworld and/or installworld. This
+ is especially true when upgrading between "distant" versions (eg one
+ that cross a major release boundary or several minor releases, or when
+ several months have passed on the -current branch).
+
+ Sometimes, obscure build problems are the result of environment
+ poisoning. This can happen because the make utility reads its
+ environment when searching for values for global variables. To run
+ your build attempts in an "environmental clean room", prefix all make
+ commands with 'env -i '. See the env(1) manual page for more details.
+
+ When upgrading from one major version to another it is generally best
+ to upgrade to the latest code in the currently installed branch first,
+ then do an upgrade to the new branch. This is the best-tested upgrade
+ path, and has the highest probability of being successful. Please try
+ this approach before reporting problems with a major version upgrade.
+
+ When upgrading a live system, having a root shell around before
+ installing anything can help undo problems. Not having a root shell
+ around can lead to problems if pam has changed too much from your
+ starting point to allow continued authentication after the upgrade.
+
+ ZFS notes
+ ---------
+ When upgrading the boot ZFS pool to a new version, always follow
+ these two steps:
+
+ 1.) recompile and reinstall the ZFS boot loader and boot block
+ (this is part of "make buildworld" and "make installworld")
+
+ 2.) update the ZFS boot block on your boot drive
+
+ The following example updates the ZFS boot block on the first
+ partition (freebsd-boot) of a GPT partitioned drive ad0:
+ "gpart bootcode -p /boot/gptzfsboot -i 1 ad0"
+
+ Non-boot pools do not need these updates.
+
+ To build a kernel
+ -----------------
+ If you are updating from a prior version of FreeBSD (even one just
+ a few days old), you should follow this procedure. It is the most
+ failsafe as it uses a /usr/obj tree with a fresh mini-buildworld,
+
+ make kernel-toolchain
+ make -DALWAYS_CHECK_MAKE buildkernel KERNCONF=YOUR_KERNEL_HERE
+ make -DALWAYS_CHECK_MAKE installkernel KERNCONF=YOUR_KERNEL_HERE
+
+ To test a kernel once
+ ---------------------
+ If you just want to boot a kernel once (because you are not sure
+ if it works, or if you want to boot a known bad kernel to provide
+ debugging information) run
+ make installkernel KERNCONF=YOUR_KERNEL_HERE KODIR=/boot/testkernel
+ nextboot -k testkernel
+
+ To just build a kernel when you know that it won't mess you up
+ --------------------------------------------------------------
+ This assumes you are already running a CURRENT system. Replace
+ ${arch} with the architecture of your machine (e.g. "i386",
+ "arm", "amd64", "ia64", "pc98", "sparc64", "powerpc", "mips", etc).
+
+ cd src/sys/${arch}/conf
+ config KERNEL_NAME_HERE
+ cd ../compile/KERNEL_NAME_HERE
+ make depend
+ make
+ make install
+
+ If this fails, go to the "To build a kernel" section.
+
+ To rebuild everything and install it on the current system.
+ -----------------------------------------------------------
+ # Note: sometimes if you are running current you gotta do more than
+ # is listed here if you are upgrading from a really old current.
+
+ <make sure you have good level 0 dumps>
+ make buildworld
+ make kernel KERNCONF=YOUR_KERNEL_HERE
+ [1]
+ <reboot in single user> [3]
+ mergemaster -p [5]
+ make installworld
+ mergemaster -i [4]
+ make delete-old [6]
+ <reboot>
+
+ To cross-install current onto a separate partition
+ --------------------------------------------------
+ # In this approach we use a separate partition to hold
+ # current's root, 'usr', and 'var' directories. A partition
+ # holding "/", "/usr" and "/var" should be about 2GB in
+ # size.
+
+ <make sure you have good level 0 dumps>
+ <boot into -stable>
+ make buildworld
+ make buildkernel KERNCONF=YOUR_KERNEL_HERE
+ <maybe newfs current's root partition>
+ <mount current's root partition on directory ${CURRENT_ROOT}>
+ make installworld DESTDIR=${CURRENT_ROOT} -DDB_FROM_SRC
+ make distribution DESTDIR=${CURRENT_ROOT} # if newfs'd
+ make installkernel KERNCONF=YOUR_KERNEL_HERE DESTDIR=${CURRENT_ROOT}
+ cp /etc/fstab ${CURRENT_ROOT}/etc/fstab # if newfs'd
+ <edit ${CURRENT_ROOT}/etc/fstab to mount "/" from the correct partition>
+ <reboot into current>
+ <do a "native" rebuild/install as described in the previous section>
+ <maybe install compatibility libraries from ports/misc/compat*>
+ <reboot>
+
+
+ To upgrade in-place from stable to current
+ ----------------------------------------------
+ <make sure you have good level 0 dumps>
+ make buildworld [9]
+ make kernel KERNCONF=YOUR_KERNEL_HERE [8]
+ [1]
+ <reboot in single user> [3]
+ mergemaster -p [5]
+ make installworld
+ mergemaster -i [4]
+ make delete-old [6]
+ <reboot>
+
+ Make sure that you've read the UPDATING file to understand the
+ tweaks to various things you need. At this point in the life
+ cycle of current, things change often and you are on your own
+ to cope. The defaults can also change, so please read ALL of
+ the UPDATING entries.
+
+ Also, if you are tracking -current, you must be subscribed to
+ freebsd-current@freebsd.org. Make sure that before you update
+ your sources that you have read and understood all the recent
+ messages there. If in doubt, please track -stable which has
+ much fewer pitfalls.
+
+ [1] If you have third party modules, such as vmware, you
+ should disable them at this point so they don't crash your
+ system on reboot.
+
+ [3] From the bootblocks, boot -s, and then do
+ fsck -p
+ mount -u /
+ mount -a
+ cd src
+ adjkerntz -i # if CMOS is wall time
+ Also, when doing a major release upgrade, it is required that
+ you boot into single user mode to do the installworld.
+
+ [4] Note: This step is non-optional. Failure to do this step
+ can result in a significant reduction in the functionality of the
+ system. Attempting to do it by hand is not recommended and those
+ that pursue this avenue should read this file carefully, as well
+ as the archives of freebsd-current and freebsd-hackers mailing lists
+ for potential gotchas. The -U option is also useful to consider.
+ See mergemaster(8) for more information.
+
+ [5] Usually this step is a noop. However, from time to time
+ you may need to do this if you get unknown user in the following
+ step. It never hurts to do it all the time. You may need to
+ install a new mergemaster (cd src/usr.sbin/mergemaster && make
+ install) after the buildworld before this step if you last updated
+ from current before 20130425 or from -stable before 20130430.
+
+ [6] This only deletes old files and directories. Old libraries
+ can be deleted by "make delete-old-libs", but you have to make
+ sure that no program is using those libraries anymore.
+
+ [8] In order to have a kernel that can run the 4.x binaries needed to
+ do an installworld, you must include the COMPAT_FREEBSD4 option in
+ your kernel. Failure to do so may leave you with a system that is
+ hard to boot to recover. A similar kernel option COMPAT_FREEBSD5 is
+ required to run the 5.x binaries on more recent kernels. And so on
+ for COMPAT_FREEBSD6 and COMPAT_FREEBSD7.
+
+ Make sure that you merge any new devices from GENERIC since the
+ last time you updated your kernel config file.
+
+ [9] When checking out sources, you must include the -P flag to have
+ cvs prune empty directories.
+
+ If CPUTYPE is defined in your /etc/make.conf, make sure to use the
+ "?=" instead of the "=" assignment operator, so that buildworld can
+ override the CPUTYPE if it needs to.
+
+ MAKEOBJDIRPREFIX must be defined in an environment variable, and
+ not on the command line, or in /etc/make.conf. buildworld will
+ warn if it is improperly defined.
+FORMAT:
+
+This file contains a list, in reverse chronological order, of major
+breakages in tracking -current. It is not guaranteed to be a complete
+list of such breakages, and only contains entries since October 10, 2007.
+If you need to see UPDATING entries from before that date, you will need
+to fetch an UPDATING file from an older FreeBSD release.
+
+Copyright information:
+
+Copyright 1998-2009 M. Warner Losh. All Rights Reserved.
+
+Redistribution, publication, translation and use, with or without
+modification, in full or in part, in any form or format of this
+document are permitted without further permission from the author.
+
+THIS DOCUMENT IS PROVIDED BY WARNER LOSH ``AS IS'' AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL WARNER LOSH BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+
+Contact Warner Losh if you have any questions about your use of
+this document.
+
+$FreeBSD$