| 1 |
Updating Information for FreeBSD current users. |
| 2 |
|
| 3 |
This file is maintained and copyrighted by M. Warner Losh <imp@freebsd.org>. |
| 4 |
See end of file for further details. For commonly done items, please see the |
| 5 |
COMMON ITEMS: section later in the file. These instructions assume that you |
| 6 |
basically know what you are doing. If not, then please consult the FreeBSD |
| 7 |
handbook: |
| 8 |
|
| 9 |
https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/makeworld.html |
| 10 |
|
| 11 |
Items affecting the ports and packages system can be found in |
| 12 |
/usr/ports/UPDATING. Please read that file before running portupgrade. |
| 13 |
|
| 14 |
NOTE TO PEOPLE WHO THINK THAT FreeBSD 13.x IS SLOW: |
| 15 |
FreeBSD 13.x has many debugging features turned on, in both the kernel |
| 16 |
and userland. These features attempt to detect incorrect use of |
| 17 |
system primitives, and encourage loud failure through extra sanity |
| 18 |
checking and fail stop semantics. They also substantially impact |
| 19 |
system performance. If you want to do performance measurement, |
| 20 |
benchmarking, and optimization, you'll want to turn them off. This |
| 21 |
includes various WITNESS- related kernel options, INVARIANTS, malloc |
| 22 |
debugging flags in userland, and various verbose features in the |
| 23 |
kernel. Many developers choose to disable these features on build |
| 24 |
machines to maximize performance. (To completely disable malloc |
| 25 |
debugging, define WITH_MALLOC_PRODUCTION in /etc/src.conf and rebuild |
| 26 |
world, or to merely disable the most expensive debugging functionality |
| 27 |
at runtime, run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) |
| 28 |
|
| 29 |
20201216: |
| 30 |
The services database has been updated to cover more of the basic |
| 31 |
services expected in a modern system. The database is big enough |
| 32 |
that it will cause issues in mergemaster in Releases previous to |
| 33 |
12.2 and 11.3, or in very old current systems from before r358154. |
| 34 |
|
| 35 |
20201215: |
| 36 |
Obsolete in-tree GDB 6.1.1 has been removed. GDB (including kgdb) |
| 37 |
may be installed from ports or packages. |
| 38 |
|
| 39 |
20201124: |
| 40 |
ping6 has been merged into ping. It can now be called as "ping -6". |
| 41 |
See ping(8) for details. |
| 42 |
|
| 43 |
20201108: |
| 44 |
Default value of net.add_addr_allfibs has been changed to 0. |
| 45 |
If you have multi-fib configuration and rely on existence of all |
| 46 |
interface routes in every fib, you need to set the above sysctl to 1. |
| 47 |
20201030: |
| 48 |
The internal pre-processor in the calendar(1) program has been |
| 49 |
extended to support more C pre-processor commands (e.g. #ifdef, #else, |
| 50 |
and #undef) and to detect unbalanced conditional statements. |
| 51 |
Error messages have been extended to include the filename and line |
| 52 |
number if processing stops to help fixing malformed data files. |
| 53 |
|
| 54 |
20201026: |
| 55 |
All the data files for the calendar(1) program, except calendar.freebsd, |
| 56 |
have been moved to the deskutils/calendar-data port, much like the |
| 57 |
jewish calendar entries were moved to deskutils/hebcal years ago. After |
| 58 |
make delete-old-files, you need to install it to retain full |
| 59 |
functionality. calendar(1) will issue a reminder for files it can't |
| 60 |
find. |
| 61 |
|
| 62 |
20200923: |
| 63 |
LINT files are no longer generated. We now include the relevant NOTES |
| 64 |
files. Note: This may cause conflicts with updating in some cases. |
| 65 |
find sys -name LINT\* -delete |
| 66 |
is suggested across this commit to remove the generated LINT files. |
| 67 |
|
| 68 |
If you have tried to update with generated files there, the svn |
| 69 |
command you want to un-auger the tree is |
| 70 |
cd sys/amd64/conf |
| 71 |
svn revert -R . |
| 72 |
and then do the above find from the top level. Substitute 'amd64' |
| 73 |
above with where the error message indicates a conflict. |
| 74 |
|
| 75 |
20200824: |
| 76 |
OpenZFS support has been integrated. Do not upgrade root pools until |
| 77 |
the loader is updated to support zstd. Furthermore, we caution against |
| 78 |
'zpool upgrade' for the next few weeks. The change should be transparent |
| 79 |
unless you want to use new features. |
| 80 |
|
| 81 |
Not all "NO_CLEAN" build scenarios work across these changes. Many |
| 82 |
scenarios have been tested and fixed, but rebuilding kernels without |
| 83 |
rebuilding world may fail. |
| 84 |
|
| 85 |
The ZFS cache file has moved from /boot to /etc to match the OpenZFS |
| 86 |
upstream default. A fallback to /boot has been added for mountroot. |
| 87 |
|
| 88 |
Pool auto import behavior at boot has been moved from the kernel module |
| 89 |
to an explicit "zpool import -a" in one of the rc scripts enabled by |
| 90 |
zfs_enable=YES. This means your non-root zpools won't auto import until |
| 91 |
you upgrade your /etc/rc.d files. |
| 92 |
|
| 93 |
20200824: |
| 94 |
The resume code now notifies devd with the 'kernel' system |
| 95 |
rather than the old 'kern' subsystem to be consistent with |
| 96 |
other use. The old notification will be created as well, but |
| 97 |
will be removed prior to FreeBSD 14.0. |
| 98 |
|
| 99 |
20200821: |
| 100 |
r362275 changed the internal API between the kernel RPC and the |
| 101 |
NFS modules. As such, all the modules must be recompiled from |
| 102 |
sources. |
| 103 |
|
| 104 |
20200817: |
| 105 |
r364330 modified the internal API used between the NFS modules. |
| 106 |
As such, all the NFS modules must be re-compiled from sources. |
| 107 |
|
| 108 |
20200816: |
| 109 |
Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have |
| 110 |
been upgraded to 11.0.0. Please see the 20141231 entry below for |
| 111 |
information about prerequisites and upgrading, if you are not already |
| 112 |
using clang 3.5.0 or higher. |
| 113 |
|
| 114 |
20200810: |
| 115 |
r364092 modified the internal ABI used between the kernel NFS |
| 116 |
modules. As such, all of these modules need to be rebuilt |
| 117 |
from sources, so a version bump was done. |
| 118 |
|
| 119 |
20200807: |
| 120 |
Makefile.inc has been updated to work around the issue documented in |
| 121 |
20200729. It was a case where the optimization of using symbolic links |
| 122 |
to point to binaries created a situation where we'd run new binaries |
| 123 |
with old libraries starting midway through the installworld process. |
| 124 |
|
| 125 |
20200729: |
| 126 |
r363679 has redefined some undefined behavior in regcomp(3); notably, |
| 127 |
extraneous escapes of most ordinary characters will no longer be |
| 128 |
accepted. An exp-run has identified all of the problems with this in |
| 129 |
ports, but other non-ports software may need extra escapes removed to |
| 130 |
continue to function. |
| 131 |
|
| 132 |
Because of this change, installworld may encounter the following error |
| 133 |
from rtld: Undefined symbol "regcomp@FBSD_1.6" -- It is imperative that |
| 134 |
you do not halt installworld. Instead, let it run to completion (whether |
| 135 |
successful or not) and run installworld once more. |
| 136 |
|
| 137 |
20200627: |
| 138 |
A new implementation of bc and dc has been imported in r362681. This |
| 139 |
implementation corrects non-conformant behavior of the previous bc |
| 140 |
and adds GNU bc compatible options. It offers a number of extensions, |
| 141 |
is much faster on large values, and has support for message catalogs |
| 142 |
(a number of languages are already supported, contributions of further |
| 143 |
languages welcome). The option WITHOUT_GH_BC can be used to build the |
| 144 |
world with the previous versions of bc and dc. |
| 145 |
|
| 146 |
20200625: |
| 147 |
r362639 changed the internal API used between the NFS kernel modules. |
| 148 |
As such, they all need to be rebuilt from sources. |
| 149 |
|
| 150 |
20200613: |
| 151 |
r362158 changed the arguments for VFS_CHECKEXP(). As such, any |
| 152 |
out of tree file systems need to be modified and rebuilt. |
| 153 |
Also, any file systems that are modules must be rebuilt. |
| 154 |
|
| 155 |
20200604: |
| 156 |
read(2) of a directory fd is now rejected by default. root may |
| 157 |
re-enable it for system root only on non-ZFS filesystems with the |
| 158 |
security.bsd.allow_read_dir sysctl(8) MIB if |
| 159 |
security.bsd.suser_enabled=1. |
| 160 |
|
| 161 |
It may be advised to setup aliases for grep to default to `-d skip` if |
| 162 |
commonly non-recursively grepping a list that includes directories and |
| 163 |
the potential for the resulting stderr output is not tolerable. Example |
| 164 |
aliases are now installed, commented out, in /root/.cshrc and |
| 165 |
/root/.shrc. |
| 166 |
|
| 167 |
20200523: |
| 168 |
Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have |
| 169 |
been upgraded to 10.0.1. Please see the 20141231 entry below for |
| 170 |
information about prerequisites and upgrading, if you are not already |
| 171 |
using clang 3.5.0 or higher. |
| 172 |
|
| 173 |
20200512: |
| 174 |
Support for obsolete compilers has been removed from the build system. |
| 175 |
Clang 6 and GCC 6.4 are the minimum supported versions. |
| 176 |
|
| 177 |
20200424: |
| 178 |
closefrom(2) has been moved under COMPAT12, and replaced in libc with a |
| 179 |
stub that calls close_range(2). If using a custom kernel configuration, |
| 180 |
you may want to ensure that the COMPAT_FREEBSD12 option is included, as |
| 181 |
a slightly older -CURRENT userland and older FreeBSD userlands may not |
| 182 |
be functional without closefrom(2). |
| 183 |
|
| 184 |
20200414: |
| 185 |
Upstream DTS from Linux 5.6 was merged and they now have the SID |
| 186 |
and THS (Secure ID controller and THermal Sensor) node present. |
| 187 |
The DTB overlays have now been removed from the tree for the H3/H5 and |
| 188 |
A64 SoCs and the aw_sid and aw_thermal driver have been updated to |
| 189 |
deal with upstream DTS. If you are using those overlays you need to |
| 190 |
remove them from loader.conf and update the DTBs on the FAT partition. |
| 191 |
|
| 192 |
20200310: |
| 193 |
Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have |
| 194 |
been upgraded to 10.0.0. Please see the 20141231 entry below for |
| 195 |
information about prerequisites and upgrading, if you are not already |
| 196 |
using clang 3.5.0 or higher. |
| 197 |
|
| 198 |
20200309: |
| 199 |
The amd(8) automount daemon has been removed from the source tree. |
| 200 |
As of FreeBSD 10.1 autofs(5) is the preferred tool for automounting. |
| 201 |
amd is still available in the sysutils/am-utils port. |
| 202 |
|
| 203 |
20200301: |
| 204 |
Removed brooktree driver (bktr.4) from the tree. |
| 205 |
|
| 206 |
20200229: |
| 207 |
The WITH_GPL_DTC option has been removed. The BSD-licenced device tree |
| 208 |
compiler in usr.bin/dtc is used on all architectures which use dtc, and |
| 209 |
the GPL dtc is available (if needed) from the sysutils/dtc port. |
| 210 |
|
| 211 |
20200229: |
| 212 |
The WITHOUT_LLVM_LIBUNWIND option has been removed. LLVM's libunwind |
| 213 |
is used by all supported CPU architectures. |
| 214 |
|
| 215 |
20200229: |
| 216 |
GCC 4.2.1 has been removed from the tree. The WITH_GCC, |
| 217 |
WITH_GCC_BOOTSTRAP, and WITH_GNUCXX options are no longer available. |
| 218 |
Users who wish to build FreeBSD with GCC must use the external toolchain |
| 219 |
ports or packages. |
| 220 |
|
| 221 |
20200220: |
| 222 |
ncurses has been updated to a newer version (6.2-20200215). Given the ABI |
| 223 |
has changed, users will have to rebuild all the ports that are linked to |
| 224 |
ncurses. |
| 225 |
|
| 226 |
20200217: |
| 227 |
The size of struct vnet and the magic cookie have changed. |
| 228 |
Users need to recompile libkvm and all modules using VIMAGE |
| 229 |
together with their new kernel. |
| 230 |
|
| 231 |
20200212: |
| 232 |
Defining the long deprecated NO_CTF, NO_DEBUG_FILES, NO_INSTALLLIB, |
| 233 |
NO_MAN, NO_PROFILE, and NO_WARNS variables is now an error. Update |
| 234 |
your Makefiles and scripts to define MK_<var>=no instead as required. |
| 235 |
|
| 236 |
One exception to this is that program or library Makefiles should |
| 237 |
define MAN to empty rather than setting MK_MAN=no. |
| 238 |
|
| 239 |
20200108: |
| 240 |
Clang/LLVM is now the default compiler and LLD the default |
| 241 |
linker for riscv64. |
| 242 |
|
| 243 |
20200107: |
| 244 |
make universe no longer uses GCC 4.2.1 on any architectures. |
| 245 |
Architectures not supported by in-tree Clang/LLVM require an |
| 246 |
external toolchain package. |
| 247 |
|
| 248 |
20200104: |
| 249 |
GCC 4.2.1 is now not built by default, as part of the GCC 4.2.1 |
| 250 |
retirement plan. Specifically, the GCC, GCC_BOOTSTRAP, and GNUCXX |
| 251 |
options default to off for all supported CPU architectures. As a |
| 252 |
short-term transition aid they may be enabled via WITH_* options. |
| 253 |
GCC 4.2.1 is expected to be removed from the tree on 2020-03-31. |
| 254 |
|
| 255 |
20200102: |
| 256 |
Support for armv5 has been disconnected and is being removed. The |
| 257 |
machine combination MACHINE=arm MACHINE_ARCH=arm is no longer valid. |
| 258 |
You must now use a MACHINE_ARCH of armv6 or armv7. The default |
| 259 |
MACHINE_ARCH for MACHINE=arm is now armv7. |
| 260 |
|
| 261 |
20191226: |
| 262 |
Clang/LLVM is now the default compiler for all powerpc architectures. |
| 263 |
LLD is now the default linker for powerpc64. The change for powerpc64 |
| 264 |
also includes a change to the ELFv2 ABI, incompatible with the existing |
| 265 |
ABI. |
| 266 |
|
| 267 |
20191226: |
| 268 |
Kernel-loadable random(4) modules are no longer unloadable. |
| 269 |
|
| 270 |
20191222: |
| 271 |
Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have |
| 272 |
been upgraded to 9.0.1. Please see the 20141231 entry below for |
| 273 |
information about prerequisites and upgrading, if you are not already |
| 274 |
using clang 3.5.0 or higher. |
| 275 |
|
| 276 |
20191212: |
| 277 |
r355677 has modified the internal interface used between the |
| 278 |
NFS modules in the kernel. As such, they must all be upgraded |
| 279 |
simultaneously. I will do a version bump for this. |
| 280 |
|
| 281 |
20191205: |
| 282 |
The root certificates of the Mozilla CA Certificate Store have been |
| 283 |
imported into the base system and can be managed with the certctl(8) |
| 284 |
utility. If you have installed the security/ca_root_nss port or package |
| 285 |
with the ETCSYMLINK option (the default), be advised that there may be |
| 286 |
differences between those included in the port and those included in |
| 287 |
base due to differences in nss branch used as well as general update |
| 288 |
frequency. Note also that certctl(8) cannot manage certs in the |
| 289 |
format used by the security/ca_root_nss port. |
| 290 |
|
| 291 |
20191120: |
| 292 |
The amd(8) automount daemon has been disabled by default, and will be |
| 293 |
removed in the future. As of FreeBSD 10.1 the autofs(5) is available |
| 294 |
for automounting. |
| 295 |
|
| 296 |
20191107: |
| 297 |
The nctgpio and wbwd drivers have been moved to the superio bus. |
| 298 |
If you have one of these drivers in a kernel configuration, then |
| 299 |
you should add device superio to it. If you use one of these drivers |
| 300 |
as a module and you compile a custom set of modules, then you should |
| 301 |
add superio to the set. |
| 302 |
|
| 303 |
20191021: |
| 304 |
KPIs for network drivers to access interface addresses have changed. |
| 305 |
Users need to recompile NIC driver modules together with kernel. |
| 306 |
|
| 307 |
20191021: |
| 308 |
The net.link.tap.user_open sysctl no longer prevents user opening of |
| 309 |
already created /dev/tapNN devices. Access is still controlled by |
| 310 |
node permissions, just like tun devices. The net.link.tap.user_open |
| 311 |
sysctl is now used only to allow users to perform devfs cloning of |
| 312 |
tap devices, and the subsequent open may not succeed if the user is not |
| 313 |
in the appropriate group. This sysctl may be deprecated/removed |
| 314 |
completely in the future. |
| 315 |
|
| 316 |
20191009: |
| 317 |
mips, powerpc, and sparc64 are no longer built as part of |
| 318 |
universe / tinderbox unless MAKE_OBSOLETE_GCC is defined. If |
| 319 |
not defined, mips, powerpc, and sparc64 builds will look for |
| 320 |
the xtoolchain binaries and if installed use them for universe |
| 321 |
builds. As llvm 9.0 becomes vetted for these architectures, they |
| 322 |
will be removed from the list. |
| 323 |
|
| 324 |
20191009: |
| 325 |
Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have |
| 326 |
been upgraded to 9.0.0. Please see the 20141231 entry below for |
| 327 |
information about prerequisites and upgrading, if you are not already |
| 328 |
using clang 3.5.0 or higher. |
| 329 |
|
| 330 |
20191003: |
| 331 |
The hpt27xx, hptmv, hptnr, and hptrr drivers have been removed from |
| 332 |
GENERIC. They are available as modules and can be loaded by adding |
| 333 |
to /boot/loader.conf hpt27xx_load="YES", hptmv_load="YES", |
| 334 |
hptnr_load="YES", or hptrr_load="YES", respectively. |
| 335 |
|
| 336 |
20190913: |
| 337 |
ntpd no longer by default locks its pages in memory, allowing them |
| 338 |
to be paged out by the kernel. Use rlimit memlock to restore |
| 339 |
historic BSD behaviour. For example, add "rlimit memlock 32" |
| 340 |
to ntp.conf to lock up to 32 MB of ntpd address space in memory. |
| 341 |
|
| 342 |
20190823: |
| 343 |
Several of ping6's options have been renamed for better consistency |
| 344 |
with ping. If you use any of -ARWXaghmrtwx, you must update your |
| 345 |
scripts. See ping6(8) for details. |
| 346 |
|
| 347 |
20190727: |
| 348 |
The vfs.fusefs.sync_unmount and vfs.fusefs.init_backgrounded sysctls |
| 349 |
and the "-o sync_unmount" and "-o init_backgrounded" mount options have |
| 350 |
been removed from mount_fusefs(8). You can safely remove them from |
| 351 |
your scripts, because they had no effect. |
| 352 |
|
| 353 |
The vfs.fusefs.fix_broken_io, vfs.fusefs.sync_resize, |
| 354 |
vfs.fusefs.refresh_size, vfs.fusefs.mmap_enable, |
| 355 |
vfs.fusefs.reclaim_revoked, and vfs.fusefs.data_cache_invalidate |
| 356 |
sysctls have been removed. If you felt the need to set any of them to |
| 357 |
a non-default value, please tell asomers@FreeBSD.org why. |
| 358 |
|
| 359 |
20190713: |
| 360 |
Default permissions on the /var/account/acct file (and copies of it |
| 361 |
rotated by periodic daily scripts) are changed from 0644 to 0640 |
| 362 |
because the file contains sensitive information that should not be |
| 363 |
world-readable. If the /var/account directory must be created by |
| 364 |
rc.d/accounting, the mode used is now 0750. Admins who use the |
| 365 |
accounting feature are encouraged to change the mode of an existing |
| 366 |
/var/account directory to 0750 or 0700. |
| 367 |
|
| 368 |
20190620: |
| 369 |
Entropy collection and the /dev/random device are no longer optional |
| 370 |
components. The "device random" option has been removed. |
| 371 |
Implementations of distilling algorithms can still be made loadable |
| 372 |
with "options RANDOM_LOADABLE" (e.g., random_fortuna.ko). |
| 373 |
|
| 374 |
20190612: |
| 375 |
Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have |
| 376 |
been upgraded to 8.0.1. Please see the 20141231 entry below for |
| 377 |
information about prerequisites and upgrading, if you are not already |
| 378 |
using clang 3.5.0 or higher. |
| 379 |
|
| 380 |
20190608: |
| 381 |
A fix was applied to i386 kernel modules to avoid panics with |
| 382 |
dpcpu or vnet. Users need to recompile i386 kernel modules |
| 383 |
having pcpu or vnet sections or they will refuse to load. |
| 384 |
|
| 385 |
20190513: |
| 386 |
User-wired pages now have their own counter, |
| 387 |
vm.stats.vm.v_user_wire_count. The vm.max_wired sysctl was renamed |
| 388 |
to vm.max_user_wired and changed from an unsigned int to an unsigned |
| 389 |
long. bhyve VMs wired with the -S are now subject to the user |
| 390 |
wiring limit; the vm.max_user_wired sysctl may need to be tuned to |
| 391 |
avoid running into the limit. |
| 392 |
|
| 393 |
20190507: |
| 394 |
The IPSEC option has been removed from GENERIC. Users requiring |
| 395 |
ipsec(4) must now load the ipsec(4) kernel module. |
| 396 |
|
| 397 |
20190507: |
| 398 |
The tap(4) driver has been folded into tun(4), and the module has been |
| 399 |
renamed to tuntap. You should update any kld_list="if_tap" or |
| 400 |
kld_list="if_tun" entries in /etc/rc.conf, if_tap_load="YES" or |
| 401 |
if_tun_load="YES" entries in /boot/loader.conf to load the if_tuntap |
| 402 |
module instead, and "device tap" or "device tun" entries in kernel |
| 403 |
config files to select the tuntap device instead. |
| 404 |
|
| 405 |
20190418: |
| 406 |
The following knobs have been added related to tradeoffs between |
| 407 |
safe use of the random device and availability in the absence of |
| 408 |
entropy: |
| 409 |
|
| 410 |
kern.random.initial_seeding.bypass_before_seeding: tunable; set |
| 411 |
non-zero to bypass the random device prior to seeding, or zero to |
| 412 |
block random requests until the random device is initially seeded. |
| 413 |
For now, set to 1 (unsafe) by default to restore pre-r346250 boot |
| 414 |
availability properties. |
| 415 |
|
| 416 |
kern.random.initial_seeding.read_random_bypassed_before_seeding: |
| 417 |
read-only diagnostic sysctl that is set when bypass is enabled and |
| 418 |
read_random(9) is bypassed, to enable programmatic handling of this |
| 419 |
initial condition, if desired. |
| 420 |
|
| 421 |
kern.random.initial_seeding.arc4random_bypassed_before_seeding: |
| 422 |
Similar to the above, but for for arc4random(9) initial seeding. |
| 423 |
|
| 424 |
kern.random.initial_seeding.disable_bypass_warnings: tunable; set |
| 425 |
non-zero to disable warnings in dmesg when the same conditions are |
| 426 |
met as for the diagnostic sysctls above. Defaults to zero, i.e., |
| 427 |
produce warnings in dmesg when the conditions are met. |
| 428 |
|
| 429 |
20190416: |
| 430 |
The loadable random module KPI has changed; the random_infra_init() |
| 431 |
routine now requires a 3rd function pointer for a bool (*)(void) |
| 432 |
method that returns true if the random device is seeded (and |
| 433 |
therefore unblocked). |
| 434 |
|
| 435 |
20190404: |
| 436 |
r345895 reverts r320698. This implies that an nfsuserd(8) daemon |
| 437 |
built from head sources between r320757 (July 6, 2017) and |
| 438 |
r338192 (Aug. 22, 2018) will not work unless the "-use-udpsock" |
| 439 |
is added to the command line. |
| 440 |
nfsuserd daemons built from head sources that are post-r338192 are |
| 441 |
not affected and should continue to work. |
| 442 |
|
| 443 |
20190320: |
| 444 |
The fuse(4) module has been renamed to fusefs(4) for consistency with |
| 445 |
other filesystems. You should update any kld_load="fuse" entries in |
| 446 |
/etc/rc.conf, fuse_load="YES" entries in /boot/loader.conf, and |
| 447 |
"options FUSE" entries in kernel config files. |
| 448 |
|
| 449 |
20190304: |
| 450 |
Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to |
| 451 |
8.0.0. Please see the 20141231 entry below for information about |
| 452 |
prerequisites and upgrading, if you are not already using clang 3.5.0 |
| 453 |
or higher. |
| 454 |
|
| 455 |
20190226: |
| 456 |
geom_uzip(4) depends on the new module xz. If geom_uzip is statically |
| 457 |
compiled into your custom kernel, add 'device xz' statement to the |
| 458 |
kernel config. |
| 459 |
|
| 460 |
20190219: |
| 461 |
drm and drm2 have been removed from the tree. Please see |
| 462 |
https://wiki.freebsd.org/Graphics for the latest information on |
| 463 |
migrating to the drm ports. |
| 464 |
|
| 465 |
20190131: |
| 466 |
Iflib is no longer unconditionally compiled into the kernel. Drivers |
| 467 |
using iflib and statically compiled into the kernel, now require |
| 468 |
the 'device iflib' config option. For the same drivers loaded as |
| 469 |
modules on kernels not having 'device iflib', the iflib.ko module |
| 470 |
is loaded automatically. |
| 471 |
|
| 472 |
20190125: |
| 473 |
The IEEE80211_AMPDU_AGE and AH_SUPPORT_AR5416 kernel configuration |
| 474 |
options no longer exist since r343219 and r343427 respectively; |
| 475 |
nothing uses them, so they should be just removed from custom |
| 476 |
kernel config files. |
| 477 |
|
| 478 |
20181230: |
| 479 |
r342635 changes the way efibootmgr(8) works by requiring users to add |
| 480 |
the -b (bootnum) parameter for commands where the bootnum was previously |
| 481 |
specified with each option. For example 'efibootmgr -B 0001' is now |
| 482 |
'efibootmgr -B -b 0001'. |
| 483 |
|
| 484 |
20181220: |
| 485 |
r342286 modifies the NFSv4 server so that it obeys vfs.nfsd.nfs_privport |
| 486 |
in the same as it is applied to NFSv2 and 3. This implies that NFSv4 |
| 487 |
servers that have vfs.nfsd.nfs_privport set will only allow mounts |
| 488 |
from clients using a reserved port#. Since both the FreeBSD and Linux |
| 489 |
NFSv4 clients use reserved port#s by default, this should not affect |
| 490 |
most NFSv4 mounts. |
| 491 |
|
| 492 |
20181219: |
| 493 |
The XLP config has been removed. We can't support 64-bit atomics in this |
| 494 |
kernel because it is running in 32-bit mode. XLP users must transition |
| 495 |
to running a 64-bit kernel (XLP64 or XLPN32). |
| 496 |
|
| 497 |
The mips GXEMUL support has been removed from FreeBSD. MALTA* + qemu is |
| 498 |
the preferred emulator today and we don't need two different ones. |
| 499 |
|
| 500 |
The old sibyte / swarm / Broadcom BCM1250 support has been |
| 501 |
removed from the mips port. |
| 502 |
|
| 503 |
20181211: |
| 504 |
Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to |
| 505 |
7.0.1. Please see the 20141231 entry below for information about |
| 506 |
prerequisites and upgrading, if you are not already using clang 3.5.0 |
| 507 |
or higher. |
| 508 |
|
| 509 |
20181211: |
| 510 |
Remove the timed and netdate programs from the base tree. Setting |
| 511 |
the time with these daemons has been obsolete for over a decade. |
| 512 |
|
| 513 |
20181126: |
| 514 |
On amd64, arm64 and armv7 (architectures that install LLVM's ld.lld |
| 515 |
linker as /usr/bin/ld) GNU ld is no longer installed as ld.bfd, as |
| 516 |
it produces broken binaries when ifuncs are in use. Users needing |
| 517 |
GNU ld should install the binutils port or package. |
| 518 |
|
| 519 |
20181123: |
| 520 |
The BSD crtbegin and crtend code has been enabled by default. It has |
| 521 |
had extensive testing on amd64, arm64, and i386. It can be disabled |
| 522 |
by building a world with -DWITHOUT_BSD_CRTBEGIN. |
| 523 |
|
| 524 |
20181115: |
| 525 |
The set of CTM commands (ctm, ctm_smail, ctm_rmail, ctm_dequeue) |
| 526 |
has been converted to a port (misc/ctm) and will be removed from |
| 527 |
FreeBSD-13. It is available as a package (ctm) for all supported |
| 528 |
FreeBSD versions. |
| 529 |
|
| 530 |
20181110: |
| 531 |
The default newsyslog.conf(5) file has been changed to only include |
| 532 |
files in /etc/newsyslog.conf.d/ and /usr/local/etc/newsyslog.conf.d/ if |
| 533 |
the filenames end in '.conf' and do not begin with a '.'. |
| 534 |
|
| 535 |
You should check the configuration files in these two directories match |
| 536 |
this naming convention. You can verify which configuration files are |
| 537 |
being included using the command: |
| 538 |
$ newsyslog -Nrv |
| 539 |
|
| 540 |
20181015: |
| 541 |
Ports for the DRM modules have been simplified. Now, amd64 users should |
| 542 |
just install the drm-kmod port. All others should install |
| 543 |
drm-legacy-kmod. |
| 544 |
|
| 545 |
Graphics hardware that's newer than about 2010 usually works with |
| 546 |
drm-kmod. For hardware older than 2013, however, some users will need |
| 547 |
to use drm-legacy-kmod if drm-kmod doesn't work for them. Hardware older |
| 548 |
than 2008 usually only works in drm-legacy-kmod. The graphics team can |
| 549 |
only commit to hardware made since 2013 due to the complexity of the |
| 550 |
market and difficulty to test all the older cards effectively. If you |
| 551 |
have hardware supported by drm-kmod, you are strongly encouraged to use |
| 552 |
that as you will get better support. |
| 553 |
|
| 554 |
Other than KPI chasing, drm-legacy-kmod will not be updated. As outlined |
| 555 |
elsewhere, the drm and drm2 modules will be eliminated from the src base |
| 556 |
soon (with a limited exception for arm). Please update to the package |
| 557 |
asap and report any issues to x11@freebsd.org. |
| 558 |
|
| 559 |
Generally, anybody using the drm*-kmod packages should add |
| 560 |
WITHOUT_DRM_MODULE=t and WITHOUT_DRM2_MODULE=t to avoid nasty |
| 561 |
cross-threading surprises, especially with automatic driver |
| 562 |
loading from X11 startup. These will become the defaults in 13-current |
| 563 |
shortly. |
| 564 |
|
| 565 |
20181012: |
| 566 |
The ixlv(4) driver has been renamed to iavf(4). As a consequence, |
| 567 |
custom kernel and module loading configuration files must be updated |
| 568 |
accordingly. Moreover, interfaces previous presented as ixlvN to the |
| 569 |
system are now exposed as iavfN and network configuration files must |
| 570 |
be adjusted as necessary. |
| 571 |
|
| 572 |
20181009: |
| 573 |
OpenSSL has been updated to version 1.1.1. This update included |
| 574 |
additional various API changes throughout the base system. It is |
| 575 |
important to rebuild third-party software after upgrading. The value |
| 576 |
of __FreeBSD_version has been bumped accordingly. |
| 577 |
|
| 578 |
20181006: |
| 579 |
The legacy DRM modules and drivers have now been added to the loader's |
| 580 |
module blacklist, in favor of loading them with kld_list in rc.conf(5). |
| 581 |
The module blacklist may be overridden with the loader.conf(5) |
| 582 |
'module_blacklist' variable, but loading them via rc.conf(5) is strongly |
| 583 |
encouraged. |
| 584 |
|
| 585 |
20181002: |
| 586 |
The cam(4) based nda(4) driver will be used over nvd(4) by default on |
| 587 |
powerpc64. You may set 'options NVME_USE_NVD=1' in your kernel conf or |
| 588 |
loader tunable 'hw.nvme.use_nvd=1' if you wish to use the existing |
| 589 |
driver. Make sure to edit /boot/etc/kboot.conf and fstab to use the |
| 590 |
nda device name. |
| 591 |
|
| 592 |
20180913: |
| 593 |
Reproducible build mode is now on by default, in preparation for |
| 594 |
FreeBSD 12.0. This eliminates build metadata such as the user, |
| 595 |
host, and time from the kernel (and uname), unless the working tree |
| 596 |
corresponds to a modified checkout from a version control system. |
| 597 |
The previous behavior can be obtained by setting the /etc/src.conf |
| 598 |
knob WITHOUT_REPRODUCIBLE_BUILD. |
| 599 |
|
| 600 |
20180826: |
| 601 |
The Yarrow CSPRNG has been removed from the kernel as it has not been |
| 602 |
supported by its designers since at least 2003. Fortuna has been the |
| 603 |
default since FreeBSD-11. |
| 604 |
|
| 605 |
20180822: |
| 606 |
devctl freeze/thaw have gone into the tree, the rc scripts have been |
| 607 |
updated to use them and devmatch has been changed. You should update |
| 608 |
kernel, userland and rc scripts all at the same time. |
| 609 |
|
| 610 |
20180818: |
| 611 |
The default interpreter has been switched from 4th to Lua. |
| 612 |
LOADER_DEFAULT_INTERP, documented in build(7), will override the default |
| 613 |
interpreter. If you have custom FORTH code you will need to set |
| 614 |
LOADER_DEFAULT_INTERP=4th (valid values are 4th, lua or simp) in |
| 615 |
src.conf for the build. This will create default hard links between |
| 616 |
loader and loader_4th instead of loader and loader_lua, the new default. |
| 617 |
If you are using UEFI it will create the proper hard link to loader.efi. |
| 618 |
|
| 619 |
bhyve uses userboot.so. It remains 4th-only until some issues are solved |
| 620 |
regarding coexisting with multiple versions of FreeBSD are resolved. |
| 621 |
|
| 622 |
20180815: |
| 623 |
ls(1) now respects the COLORTERM environment variable used in other |
| 624 |
systems and software to indicate that a colored terminal is both |
| 625 |
supported and desired. If ls(1) is suddenly emitting colors, they may |
| 626 |
be disabled again by either removing the unwanted COLORTERM from your |
| 627 |
environment, or using `ls --color=never`. The ls(1) specific CLICOLOR |
| 628 |
may not be observed in a future release. |
| 629 |
|
| 630 |
20180808: |
| 631 |
The default pager for most commands has been changed to "less". To |
| 632 |
restore the old behavior, set PAGER="more" and MANPAGER="more -s" in |
| 633 |
your environment. |
| 634 |
|
| 635 |
20180731: |
| 636 |
The jedec_ts(4) driver has been removed. A superset of its functionality |
| 637 |
is available in the jedec_dimm(4) driver, and the manpage for that |
| 638 |
driver includes migration instructions. If you have "device jedec_ts" |
| 639 |
in your kernel configuration file, it must be removed. |
| 640 |
|
| 641 |
20180730: |
| 642 |
amd64/GENERIC now has EFI runtime services, EFIRT, enabled by default. |
| 643 |
This should have no effect if the kernel is booted via BIOS/legacy boot. |
| 644 |
EFIRT may be disabled via a loader tunable, efi.rt.disabled, if a system |
| 645 |
has a buggy firmware that prevents a successful boot due to use of |
| 646 |
runtime services. |
| 647 |
|
| 648 |
20180727: |
| 649 |
Atmel AT91RM9200 and AT91SAM9, Cavium CNS 11xx and XScale |
| 650 |
support has been removed from the tree. These ports were |
| 651 |
obsolete and/or known to be broken for many years. |
| 652 |
|
| 653 |
20180723: |
| 654 |
loader.efi has been augmented to participate more fully in the |
| 655 |
UEFI boot manager protocol. loader.efi will now look at the |
| 656 |
BootXXXX environment variable to determine if a specific kernel |
| 657 |
or root partition was specified. XXXX is derived from BootCurrent. |
| 658 |
efibootmgr(8) manages these standard UEFI variables. |
| 659 |
|
| 660 |
20180720: |
| 661 |
zfsloader's functionality has now been folded into loader. |
| 662 |
zfsloader is no longer necessary once you've updated your |
| 663 |
boot blocks. For a transition period, we will install a |
| 664 |
hardlink for zfsloader to loader to allow a smooth transition |
| 665 |
until the boot blocks can be updated (hard link because old |
| 666 |
zfs boot blocks don't understand symlinks). |
| 667 |
|
| 668 |
20180719: |
| 669 |
ARM64 now have efifb support, if you want to have serial console |
| 670 |
on your arm64 board when an screen is connected and the bootloader |
| 671 |
setup a frame buffer for us to use, just add : |
| 672 |
boot_serial=YES |
| 673 |
boot_multicons=YES |
| 674 |
in /boot/loader.conf |
| 675 |
For Raspberry Pi 3 (RPI) users, this is needed even if you don't have |
| 676 |
an screen connected as the firmware will setup a frame buffer are that |
| 677 |
u-boot will expose as an EFI frame buffer. |
| 678 |
|
| 679 |
20180719: |
| 680 |
New uid:gid added, ntpd:ntpd (123:123). Be sure to run mergemaster |
| 681 |
or take steps to update /etc/passwd before doing installworld on |
| 682 |
existing systems. Do not skip the "mergemaster -Fp" step before |
| 683 |
installworld, as described in the update procedures near the bottom |
| 684 |
of this document. Also, rc.d/ntpd now starts ntpd(8) as user ntpd |
| 685 |
if the new mac_ntpd(4) policy is available, unless ntpd_flags or |
| 686 |
the ntp config file contain options that change file/dir locations. |
| 687 |
When such options (e.g., "statsdir" or "crypto") are used, ntpd can |
| 688 |
still be run as non-root by setting ntpd_user=ntpd in rc.conf, after |
| 689 |
taking steps to ensure that all required files/dirs are accessible |
| 690 |
by the ntpd user. |
| 691 |
|
| 692 |
20180717: |
| 693 |
Big endian arm support has been removed. |
| 694 |
|
| 695 |
20180711: |
| 696 |
The static environment setup in kernel configs is no longer mutually |
| 697 |
exclusive with the loader(8) environment by default. In order to |
| 698 |
restore the previous default behavior of disabling the loader(8) |
| 699 |
environment if a static environment is present, you must specify |
| 700 |
loader_env.disabled=1 in the static environment. |
| 701 |
|
| 702 |
20180705: |
| 703 |
The ABI of syscalls used by management tools like sockstat and |
| 704 |
netstat has been broken to allow 32-bit binaries to work on |
| 705 |
64-bit kernels without modification. These programs will need |
| 706 |
to match the kernel in order to function. External programs may |
| 707 |
require minor modifications to accommodate a change of type in |
| 708 |
structures from pointers to 64-bit virtual addresses. |
| 709 |
|
| 710 |
20180702: |
| 711 |
On i386 and amd64 atomics are now inlined. Out of tree modules using |
| 712 |
atomics will need to be rebuilt. |
| 713 |
|
| 714 |
20180701: |
| 715 |
The '%I' format in the kern.corefile sysctl limits the number of |
| 716 |
core files that a process can generate to the number stored in the |
| 717 |
debug.ncores sysctl. The '%I' format is replaced by the single digit |
| 718 |
index. Previously, if all indexes were taken the kernel would overwrite |
| 719 |
only a core file with the highest index in a filename. |
| 720 |
Currently the system will create a new core file if there is a free |
| 721 |
index or if all slots are taken it will overwrite the oldest one. |
| 722 |
|
| 723 |
20180630: |
| 724 |
Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to |
| 725 |
6.0.1. Please see the 20141231 entry below for information about |
| 726 |
prerequisites and upgrading, if you are not already using clang 3.5.0 |
| 727 |
or higher. |
| 728 |
|
| 729 |
20180628: |
| 730 |
r335753 introduced a new quoting method. However, etc/devd/devmatch.conf |
| 731 |
needed to be changed to work with it. This change was made with r335763 |
| 732 |
and requires a mergemaster / etcupdate / etc to update the installed |
| 733 |
file. |
| 734 |
|
| 735 |
20180612: |
| 736 |
r334930 changed the interface between the NFS modules, so they all |
| 737 |
need to be rebuilt. r335018 did a __FreeBSD_version bump for this. |
| 738 |
|
| 739 |
20180530: |
| 740 |
As of r334391 lld is the default amd64 system linker; it is installed |
| 741 |
as /usr/bin/ld. Kernel build workarounds (see 20180510 entry) are no |
| 742 |
longer necessary. |
| 743 |
|
| 744 |
20180530: |
| 745 |
The kernel / userland interface for devinfo changed, so you'll |
| 746 |
need a new kernel and userland as a pair for it to work (rebuilding |
| 747 |
lib/libdevinfo is all that's required). devinfo and devmatch will |
| 748 |
not work, but everything else will when there's a mismatch. |
| 749 |
|
| 750 |
20180523: |
| 751 |
The on-disk format for hwpmc callchain records has changed to include |
| 752 |
threadid corresponding to a given record. This changes the field offsets |
| 753 |
and thus requires that libpmcstat be rebuilt before using a kernel |
| 754 |
later than r334108. |
| 755 |
|
| 756 |
20180517: |
| 757 |
The vxge(4) driver has been removed. This driver was introduced into |
| 758 |
HEAD one week before the Exar left the Ethernet market and is not |
| 759 |
known to be used. If you have device vxge in your kernel config file |
| 760 |
it must be removed. |
| 761 |
|
| 762 |
20180510: |
| 763 |
The amd64 kernel now requires a ld that supports ifunc to produce a |
| 764 |
working kernel, either lld or a newer binutils. lld is built by default |
| 765 |
on amd64, and the 'buildkernel' target uses it automatically. However, |
| 766 |
it is not the default linker, so building the kernel the traditional |
| 767 |
way requires LD=ld.lld on the command line (or LD=/usr/local/bin/ld for |
| 768 |
binutils port/package). lld will soon be default, and this requirement |
| 769 |
will go away. |
| 770 |
|
| 771 |
NOTE: As of r334391 lld is the default system linker on amd64, and no |
| 772 |
workaround is necessary. |
| 773 |
|
| 774 |
20180508: |
| 775 |
The nxge(4) driver has been removed. This driver was for PCI-X 10g |
| 776 |
cards made by s2io/Neterion. The company was acquired by Exar and |
| 777 |
no longer sells or supports Ethernet products. If you have device |
| 778 |
nxge in your kernel config file it must be removed. |
| 779 |
|
| 780 |
20180504: |
| 781 |
The tz database (tzdb) has been updated to 2018e. This version more |
| 782 |
correctly models time stamps in time zones with negative DST such as |
| 783 |
Europe/Dublin (from 1971 on), Europe/Prague (1946/7), and |
| 784 |
Africa/Windhoek (1994/2017). This does not affect the UT offsets, only |
| 785 |
time zone abbreviations and the tm_isdst flag. |
| 786 |
|
| 787 |
20180502: |
| 788 |
The ixgb(4) driver has been removed. This driver was for an early and |
| 789 |
uncommon legacy PCI 10GbE for a single ASIC, Intel 82597EX. Intel |
| 790 |
quickly shifted to the long lived ixgbe family. If you have device |
| 791 |
ixgb in your kernel config file it must be removed. |
| 792 |
|
| 793 |
20180501: |
| 794 |
The lmc(4) driver has been removed. This was a WAN interface |
| 795 |
card that was already reportedly rare in 2003, and had an ambiguous |
| 796 |
license. If you have device lmc in your kernel config file it must |
| 797 |
be removed. |
| 798 |
|
| 799 |
20180413: |
| 800 |
Support for Arcnet networks has been removed. If you have device |
| 801 |
arcnet or device cm in your kernel config file they must be |
| 802 |
removed. |
| 803 |
|
| 804 |
20180411: |
| 805 |
Support for FDDI networks has been removed. If you have device |
| 806 |
fddi or device fpa in your kernel config file they must be |
| 807 |
removed. |
| 808 |
|
| 809 |
20180406: |
| 810 |
In addition to supporting RFC 3164 formatted messages, the |
| 811 |
syslogd(8) service is now capable of parsing RFC 5424 formatted |
| 812 |
log messages. The main benefit of using RFC 5424 is that clients |
| 813 |
may now send log messages with timestamps containing year numbers, |
| 814 |
microseconds and time zone offsets. |
| 815 |
|
| 816 |
Similarly, the syslog(3) C library function has been altered to |
| 817 |
send RFC 5424 formatted messages to the local system logging |
| 818 |
daemon. On systems using syslogd(8), this change should have no |
| 819 |
negative impact, as long as syslogd(8) and the C library are |
| 820 |
updated at the same time. On systems using a different system |
| 821 |
logging daemon, it may be necessary to make configuration |
| 822 |
adjustments, depending on the software used. |
| 823 |
|
| 824 |
When using syslog-ng, add the 'syslog-protocol' flag to local |
| 825 |
input sources to enable parsing of RFC 5424 formatted messages: |
| 826 |
|
| 827 |
source src { |
| 828 |
unix-dgram("/var/run/log" flags(syslog-protocol)); |
| 829 |
} |
| 830 |
|
| 831 |
When using rsyslog, disable the 'SysSock.UseSpecialParser' option |
| 832 |
of the 'imuxsock' module to let messages be processed by the |
| 833 |
regular RFC 3164/5424 parsing pipeline: |
| 834 |
|
| 835 |
module(load="imuxsock" SysSock.UseSpecialParser="off") |
| 836 |
|
| 837 |
Do note that these changes only affect communication between local |
| 838 |
applications and syslogd(8). The format that syslogd(8) uses to |
| 839 |
store messages on disk or forward messages to other systems |
| 840 |
remains unchanged. syslogd(8) still uses RFC 3164 for these |
| 841 |
purposes. Options to customize this behaviour will be added in the |
| 842 |
future. Utilities that process log files stored in /var/log are |
| 843 |
thus expected to continue to function as before. |
| 844 |
|
| 845 |
__FreeBSD_version has been incremented to 1200061 to denote this |
| 846 |
change. |
| 847 |
|
| 848 |
20180328: |
| 849 |
Support for token ring networks has been removed. If you |
| 850 |
have "device token" in your kernel config you should remove |
| 851 |
it. No device drivers supported token ring. |
| 852 |
|
| 853 |
20180323: |
| 854 |
makefs was modified to be able to tag ISO9660 El Torito boot catalog |
| 855 |
entries as EFI instead of overloading the i386 tag as done previously. |
| 856 |
The amd64 mkisoimages.sh script used to build amd64 ISO images for |
| 857 |
release was updated to use this. This may mean that makefs must be |
| 858 |
updated before "make cdrom" can be run in the release directory. This |
| 859 |
should be as simple as: |
| 860 |
|
| 861 |
$ cd $SRCDIR/usr.sbin/makefs |
| 862 |
$ make depend all install |
| 863 |
|
| 864 |
20180212: |
| 865 |
FreeBSD boot loader enhanced with Lua scripting. It's purely opt-in for |
| 866 |
now by building WITH_LOADER_LUA and WITHOUT_FORTH in /etc/src.conf. |
| 867 |
Co-existence for the transition period will come shortly. Booting is a |
| 868 |
complex environment and test coverage for Lua-enabled loaders has been |
| 869 |
thin, so it would be prudent to assume it might not work and make |
| 870 |
provisions for backup boot methods. |
| 871 |
|
| 872 |
20180211: |
| 873 |
devmatch functionality has been turned on in devd. It will automatically |
| 874 |
load drivers for unattached devices. This may cause unexpected drivers |
| 875 |
to be loaded. Please report any problems to current@ and |
| 876 |
imp@freebsd.org. |
| 877 |
|
| 878 |
20180114: |
| 879 |
Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to |
| 880 |
6.0.0. Please see the 20141231 entry below for information about |
| 881 |
prerequisites and upgrading, if you are not already using clang 3.5.0 |
| 882 |
or higher. |
| 883 |
|
| 884 |
20180110: |
| 885 |
LLVM's lld linker is now used as the FreeBSD/amd64 bootstrap linker. |
| 886 |
This means it is used to link the kernel and userland libraries and |
| 887 |
executables, but is not yet installed as /usr/bin/ld by default. |
| 888 |
|
| 889 |
To revert to ld.bfd as the bootstrap linker, in /etc/src.conf set |
| 890 |
WITHOUT_LLD_BOOTSTRAP=yes |
| 891 |
|
| 892 |
20180110: |
| 893 |
On i386, pmtimer has been removed. Its functionality has been folded |
| 894 |
into apm. It was a no-op on ACPI in current for a while now (but was |
| 895 |
still needed on i386 in FreeBSD 11 and earlier). Users may need to |
| 896 |
remove it from kernel config files. |
| 897 |
|
| 898 |
20180104: |
| 899 |
The use of RSS hash from the network card aka flowid has been |
| 900 |
disabled by default for lagg(4) as it's currently incompatible with |
| 901 |
the lacp and loadbalance protocols. |
| 902 |
|
| 903 |
This can be re-enabled by setting the following in loader.conf: |
| 904 |
net.link.lagg.default_use_flowid="1" |
| 905 |
|
| 906 |
20180102: |
| 907 |
The SW_WATCHDOG option is no longer necessary to enable the |
| 908 |
hardclock-based software watchdog if no hardware watchdog is |
| 909 |
configured. As before, SW_WATCHDOG will cause the software |
| 910 |
watchdog to be enabled even if a hardware watchdog is configured. |
| 911 |
|
| 912 |
20171215: |
| 913 |
r326887 fixes the issue described in the 20171214 UPDATING entry. |
| 914 |
r326888 flips the switch back to building GELI support always. |
| 915 |
|
| 916 |
20171214: |
| 917 |
r362593 broke ZFS + GELI support for reasons unknown. However, |
| 918 |
it also broke ZFS support generally, so GELI has been turned off |
| 919 |
by default as the lesser evil in r326857. If you boot off ZFS and/or |
| 920 |
GELI, it might not be a good time to update. |
| 921 |
|
| 922 |
20171125: |
| 923 |
PowerPC users must update loader(8) by rebuilding world before |
| 924 |
installing a new kernel, as the protocol connecting them has |
| 925 |
changed. Without the update, loader metadata will not be passed |
| 926 |
successfully to the kernel and users will have to enter their |
| 927 |
root partition at the kernel mountroot prompt to continue booting. |
| 928 |
Newer versions of loader can boot old kernels without issue. |
| 929 |
|
| 930 |
20171110: |
| 931 |
The LOADER_FIREWIRE_SUPPORT build variable as been renamed to |
| 932 |
WITH/OUT_LOADER_FIREWIRE. LOADER_{NO_,}GELI_SUPPORT has been renamed |
| 933 |
to WITH/OUT_LOADER_GELI. |
| 934 |
|
| 935 |
20171106: |
| 936 |
The naive and non-compliant support of posix_fallocate(2) in ZFS |
| 937 |
has been removed as of r325320. The system call now returns EINVAL |
| 938 |
when used on a ZFS file. Although the new behavior complies with the |
| 939 |
standard, some consumers are not prepared to cope with it. |
| 940 |
One known victim is lld prior to r325420. |
| 941 |
|
| 942 |
20171102: |
| 943 |
Building in a FreeBSD src checkout will automatically create object |
| 944 |
directories now rather than store files in the current directory if |
| 945 |
'make obj' was not ran. Calling 'make obj' is no longer necessary. |
| 946 |
This feature can be disabled by setting WITHOUT_AUTO_OBJ=yes in |
| 947 |
/etc/src-env.conf (not /etc/src.conf), or passing the option in the |
| 948 |
environment. |
| 949 |
|
| 950 |
20171101: |
| 951 |
The default MAKEOBJDIR has changed from /usr/obj/<srcdir> for native |
| 952 |
builds, and /usr/obj/<arch>/<srcdir> for cross-builds, to a unified |
| 953 |
/usr/obj/<srcdir>/<arch>. This behavior can be changed to the old |
| 954 |
format by setting WITHOUT_UNIFIED_OBJDIR=yes in /etc/src-env.conf, |
| 955 |
the environment, or with -DWITHOUT_UNIFIED_OBJDIR when building. |
| 956 |
The UNIFIED_OBJDIR option is a transitional feature that will be |
| 957 |
removed for 12.0 release; please migrate to the new format for any |
| 958 |
tools by looking up the OBJDIR used by 'make -V .OBJDIR' means rather |
| 959 |
than hardcoding paths. |
| 960 |
|
| 961 |
20171028: |
| 962 |
The native-xtools target no longer installs the files by default to the |
| 963 |
OBJDIR. Use the native-xtools-install target with a DESTDIR to install |
| 964 |
to ${DESTDIR}/${NXTP} where NXTP defaults to /nxb-bin. |
| 965 |
|
| 966 |
20171021: |
| 967 |
As part of the boot loader infrastructure cleanup, LOADER_*_SUPPORT |
| 968 |
options are changing from controlling the build if defined / undefined |
| 969 |
to controlling the build with explicit 'yes' or 'no' values. They will |
| 970 |
shift to WITH/WITHOUT options to match other options in the system. |
| 971 |
|
| 972 |
20171010: |
| 973 |
libstand has turned into a private library for sys/boot use only. |
| 974 |
It is no longer supported as a public interface outside of sys/boot. |
| 975 |
|
| 976 |
20171005: |
| 977 |
The arm port has split armv6 into armv6 and armv7. armv7 is now |
| 978 |
a valid TARGET_ARCH/MACHINE_ARCH setting. If you have an armv7 system |
| 979 |
and are running a kernel from before r324363, you will need to add |
| 980 |
MACHINE_ARCH=armv7 to 'make buildworld' to do a native build. |
| 981 |
|
| 982 |
20171003: |
| 983 |
When building multiple kernels using KERNCONF, non-existent KERNCONF |
| 984 |
files will produce an error and buildkernel will fail. Previously |
| 985 |
missing KERNCONF files silently failed giving no indication as to |
| 986 |
why, only to subsequently discover during installkernel that the |
| 987 |
desired kernel was never built in the first place. |
| 988 |
|
| 989 |
20170912: |
| 990 |
The default serial number format for CTL LUNs has changed. This will |
| 991 |
affect users who use /dev/diskid/* device nodes, or whose FibreChannel |
| 992 |
or iSCSI clients care about their LUNs' serial numbers. Users who |
| 993 |
require serial number stability should hardcode serial numbers in |
| 994 |
/etc/ctl.conf . |
| 995 |
|
| 996 |
20170912: |
| 997 |
For 32-bit arm compiled for hard-float support, soft-floating point |
| 998 |
binaries now always get their shared libraries from |
| 999 |
LD_SOFT_LIBRARY_PATH (in the past, this was only used if |
| 1000 |
/usr/libsoft also existed). Only users with a hard-float ld.so, but |
| 1001 |
soft-float everything else should be affected. |
| 1002 |
|
| 1003 |
20170826: |
| 1004 |
The geli password typed at boot is now hidden. To restore the previous |
| 1005 |
behavior, see geli(8) for configuration options. |
| 1006 |
|
| 1007 |
20170825: |
| 1008 |
Move PMTUD blackhole counters to TCPSTATS and remove them from bare |
| 1009 |
sysctl values. Minor nit, but requires a rebuild of both world/kernel |
| 1010 |
to complete. |
| 1011 |
|
| 1012 |
20170814: |
| 1013 |
"make check" behavior (made in ^/head@r295380) has been changed to |
| 1014 |
execute from a limited sandbox, as opposed to executing from |
| 1015 |
${TESTSDIR}. |
| 1016 |
|
| 1017 |
Behavioral changes: |
| 1018 |
- The "beforecheck" and "aftercheck" targets are now specified. |
| 1019 |
- ${CHECKDIR} (added in commit noted above) has been removed. |
| 1020 |
- Legacy behavior can be enabled by setting |
| 1021 |
WITHOUT_MAKE_CHECK_USE_SANDBOX in src.conf(5) or the environment. |
| 1022 |
|
| 1023 |
If the limited sandbox mode is enabled, "make check" will execute |
| 1024 |
"make distribution", then install, execute the tests, and clean up the |
| 1025 |
sandbox if successful. |
| 1026 |
|
| 1027 |
The "make distribution" and "make install" targets are typically run as |
| 1028 |
root to set appropriate permissions and ownership at installation time. |
| 1029 |
The end-user should set "WITH_INSTALL_AS_USER" in src.conf(5) or the |
| 1030 |
environment if executing "make check" with limited sandbox mode using |
| 1031 |
an unprivileged user. |
| 1032 |
|
| 1033 |
20170808: |
| 1034 |
Since the switch to GPT disk labels, fsck for UFS/FFS has been |
| 1035 |
unable to automatically find alternate superblocks. As of r322297, |
| 1036 |
the information needed to find alternate superblocks has been |
| 1037 |
moved to the end of the area reserved for the boot block. |
| 1038 |
Filesystems created with a newfs of this vintage or later |
| 1039 |
will create the recovery information. If you have a filesystem |
| 1040 |
created prior to this change and wish to have a recovery block |
| 1041 |
created for your filesystem, you can do so by running fsck in |
| 1042 |
foreground mode (i.e., do not use the -p or -y options). As it |
| 1043 |
starts, fsck will ask ``SAVE DATA TO FIND ALTERNATE SUPERBLOCKS'' |
| 1044 |
to which you should answer yes. |
| 1045 |
|
| 1046 |
20170728: |
| 1047 |
As of r321665, an NFSv4 server configuration that services |
| 1048 |
Kerberos mounts or clients that do not support the uid/gid in |
| 1049 |
owner/owner_group string capability, must explicitly enable |
| 1050 |
the nfsuserd daemon by adding nfsuserd_enable="YES" to the |
| 1051 |
machine's /etc/rc.conf file. |
| 1052 |
|
| 1053 |
20170722: |
| 1054 |
Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 5.0.0. |
| 1055 |
Please see the 20141231 entry below for information about prerequisites |
| 1056 |
and upgrading, if you are not already using clang 3.5.0 or higher. |
| 1057 |
|
| 1058 |
20170701: |
| 1059 |
WITHOUT_RCMDS is now the default. Set WITH_RCMDS if you need the |
| 1060 |
r-commands (rlogin, rsh, etc.) to be built with the base system. |
| 1061 |
|
| 1062 |
20170625: |
| 1063 |
The FreeBSD/powerpc platform now uses a 64-bit type for time_t. This is |
| 1064 |
a very major ABI incompatible change, so users of FreeBSD/powerpc must |
| 1065 |
be careful when performing source upgrades. It is best to run |
| 1066 |
'make installworld' from an alternate root system, either a live |
| 1067 |
CD/memory stick, or a temporary root partition. Additionally, all ports |
| 1068 |
must be recompiled. powerpc64 is largely unaffected, except in the case |
| 1069 |
of 32-bit compatibility. All 32-bit binaries will be affected. |
| 1070 |
|
| 1071 |
20170623: |
| 1072 |
Forward compatibility for the "ino64" project have been committed. This |
| 1073 |
will allow most new binaries to run on older kernels in a limited |
| 1074 |
fashion. This prevents many of the common foot-shooting actions in the |
| 1075 |
upgrade as well as the limited ability to roll back the kernel across |
| 1076 |
the ino64 upgrade. Complicated use cases may not work properly, though |
| 1077 |
enough simpler ones work to allow recovery in most situations. |
| 1078 |
|
| 1079 |
20170620: |
| 1080 |
Switch back to the BSDL dtc (Device Tree Compiler). Set WITH_GPL_DTC |
| 1081 |
if you require the GPL compiler. |
| 1082 |
|
| 1083 |
20170618: |
| 1084 |
The internal ABI used for communication between the NFS kernel modules |
| 1085 |
was changed by r320085, so __FreeBSD_version was bumped to |
| 1086 |
ensure all the NFS related modules are updated together. |
| 1087 |
|
| 1088 |
20170617: |
| 1089 |
The ABI of struct event was changed by extending the data |
| 1090 |
member to 64bit and adding ext fields. For upgrade, same |
| 1091 |
precautions as for the entry 20170523 "ino64" must be |
| 1092 |
followed. |
| 1093 |
|
| 1094 |
20170531: |
| 1095 |
The GNU roff toolchain has been removed from base. To render manpages |
| 1096 |
which are not supported by mandoc(1), man(1) can fallback on GNU roff |
| 1097 |
from ports (and recommends to install it). |
| 1098 |
To render roff(7) documents, consider using GNU roff from ports or the |
| 1099 |
heirloom doctools roff toolchain from ports via pkg install groff or |
| 1100 |
via pkg install heirloom-doctools. |
| 1101 |
|
| 1102 |
20170524: |
| 1103 |
The ath(4) and ath_hal(4) modules now build piecemeal to allow for |
| 1104 |
smaller runtime footprint builds. This is useful for embedded systems |
| 1105 |
which only require one chipset support. |
| 1106 |
|
| 1107 |
If you load it as a module, make sure this is in /boot/loader.conf: |
| 1108 |
|
| 1109 |
if_ath_load="YES" |
| 1110 |
|
| 1111 |
This will load the HAL, all chip/RF backends and if_ath_pci. |
| 1112 |
If you have if_ath_pci in /boot/loader.conf, ensure it is after |
| 1113 |
if_ath or it will not load any HAL chipset support. |
| 1114 |
|
| 1115 |
If you want to selectively load things (eg on ye cheape ARM/MIPS |
| 1116 |
platforms where RAM is at a premium) you should: |
| 1117 |
|
| 1118 |
* load ath_hal |
| 1119 |
* load the chip modules in question |
| 1120 |
* load ath_rate, ath_dfs |
| 1121 |
* load ath_main |
| 1122 |
* load if_ath_pci and/or if_ath_ahb depending upon your particular |
| 1123 |
bus bind type - this is where probe/attach is done. |
| 1124 |
|
| 1125 |
For further comments/feedback, poke adrian@ . |
| 1126 |
|
| 1127 |
20170523: |
| 1128 |
The "ino64" 64-bit inode project has been committed, which extends |
| 1129 |
a number of types to 64 bits. Upgrading in place requires care and |
| 1130 |
adherence to the documented upgrade procedure. |
| 1131 |
|
| 1132 |
If using a custom kernel configuration ensure that the |
| 1133 |
COMPAT_FREEBSD11 option is included (as during the upgrade the |
| 1134 |
system will be running the ino64 kernel with the existing world). |
| 1135 |
|
| 1136 |
For the safest in-place upgrade begin by removing previous build |
| 1137 |
artifacts via "rm -rf /usr/obj/*". Then, carefully follow the full |
| 1138 |
procedure documented below under the heading "To rebuild everything and |
| 1139 |
install it on the current system." Specifically, a reboot is required |
| 1140 |
after installing the new kernel before installing world. While an |
| 1141 |
installworld normally works by accident from multiuser after rebooting |
| 1142 |
the proper kernel, there are many cases where this will fail across this |
| 1143 |
upgrade and installworld from single user is required. |
| 1144 |
|
| 1145 |
20170424: |
| 1146 |
The NATM framework including the en(4), fatm(4), hatm(4), and |
| 1147 |
patm(4) devices has been removed. Consumers should plan a |
| 1148 |
migration before the end-of-life date for FreeBSD 11. |
| 1149 |
|
| 1150 |
20170420: |
| 1151 |
GNU diff has been replaced by a BSD licensed diff. Some features of GNU |
| 1152 |
diff has not been implemented, if those are needed a newer version of |
| 1153 |
GNU diff is available via the diffutils package under the gdiff name. |
| 1154 |
|
| 1155 |
20170413: |
| 1156 |
As of r316810 for ipfilter, keep frags is no longer assumed when |
| 1157 |
keep state is specified in a rule. r316810 aligns ipfilter with |
| 1158 |
documentation in man pages separating keep frags from keep state. |
| 1159 |
This allows keep state to be specified without forcing keep frags |
| 1160 |
and allows keep frags to be specified independently of keep state. |
| 1161 |
To maintain previous behaviour, also specify keep frags with |
| 1162 |
keep state (as documented in ipf.conf.5). |
| 1163 |
|
| 1164 |
20170407: |
| 1165 |
arm64 builds now use the base system LLD 4.0.0 linker by default, |
| 1166 |
instead of requiring that the aarch64-binutils port or package be |
| 1167 |
installed. To continue using aarch64-binutils, set |
| 1168 |
CROSS_BINUTILS_PREFIX=/usr/local/aarch64-freebsd/bin . |
| 1169 |
|
| 1170 |
20170405: |
| 1171 |
The UDP optimization in entry 20160818 that added the sysctl |
| 1172 |
net.inet.udp.require_l2_bcast has been reverted. L2 broadcast |
| 1173 |
packets will no longer be treated as L3 broadcast packets. |
| 1174 |
|
| 1175 |
20170331: |
| 1176 |
Binds and sends to the loopback addresses, IPv6 and IPv4, will now |
| 1177 |
use any explicitly assigned loopback address available in the jail |
| 1178 |
instead of using the first assigned address of the jail. |
| 1179 |
|
| 1180 |
20170329: |
| 1181 |
The ctl.ko module no longer implements the iSCSI target frontend: |
| 1182 |
cfiscsi.ko does instead. |
| 1183 |
|
| 1184 |
If building cfiscsi.ko as a kernel module, the module can be loaded |
| 1185 |
via one of the following methods: |
| 1186 |
- `cfiscsi_load="YES"` in loader.conf(5). |
| 1187 |
- Add `cfiscsi` to `$kld_list` in rc.conf(5). |
| 1188 |
- ctladm(8)/ctld(8), when compiled with iSCSI support |
| 1189 |
(`WITH_ISCSI=yes` in src.conf(5)) |
| 1190 |
|
| 1191 |
Please see cfiscsi(4) for more details. |
| 1192 |
|
| 1193 |
20170316: |
| 1194 |
The mmcsd.ko module now additionally depends on geom_flashmap.ko. |
| 1195 |
Also, mmc.ko and mmcsd.ko need to be a matching pair built from the |
| 1196 |
same source (previously, the dependency of mmcsd.ko on mmc.ko was |
| 1197 |
missing, but mmcsd.ko now will refuse to load if it is incompatible |
| 1198 |
with mmc.ko). |
| 1199 |
|
| 1200 |
20170315: |
| 1201 |
The syntax of ipfw(8) named states was changed to avoid ambiguity. |
| 1202 |
If you have used named states in the firewall rules, you need to modify |
| 1203 |
them after installworld and before rebooting. Now named states must |
| 1204 |
be prefixed with colon. |
| 1205 |
|
| 1206 |
20170311: |
| 1207 |
The old drm (sys/dev/drm/) drivers for i915 and radeon have been |
| 1208 |
removed as the userland we provide cannot use them. The KMS version |
| 1209 |
(sys/dev/drm2) supports the same hardware. |
| 1210 |
|
| 1211 |
20170302: |
| 1212 |
Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 4.0.0. |
| 1213 |
Please see the 20141231 entry below for information about prerequisites |
| 1214 |
and upgrading, if you are not already using clang 3.5.0 or higher. |
| 1215 |
|
| 1216 |
20170221: |
| 1217 |
The code that provides support for ZFS .zfs/ directory functionality |
| 1218 |
has been reimplemented. It's not possible now to create a snapshot |
| 1219 |
by mkdir under .zfs/snapshot/. That should be the only user visible |
| 1220 |
change. |
| 1221 |
|
| 1222 |
20170216: |
| 1223 |
EISA bus support has been removed. The WITH_EISA option is no longer |
| 1224 |
valid. |
| 1225 |
|
| 1226 |
20170215: |
| 1227 |
MCA bus support has been removed. |
| 1228 |
|
| 1229 |
20170127: |
| 1230 |
The WITH_LLD_AS_LD / WITHOUT_LLD_AS_LD build knobs have been renamed |
| 1231 |
WITH_LLD_IS_LD / WITHOUT_LLD_IS_LD, for consistency with CLANG_IS_CC. |
| 1232 |
|
| 1233 |
20170112: |
| 1234 |
The EM_MULTIQUEUE kernel configuration option is deprecated now that |
| 1235 |
the em(4) driver conforms to iflib specifications. |
| 1236 |
|
| 1237 |
20170109: |
| 1238 |
The igb(4), em(4) and lem(4) ethernet drivers are now implemented via |
| 1239 |
IFLIB. If you have a custom kernel configuration that excludes em(4) |
| 1240 |
but you use igb(4), you need to re-add em(4) to your custom |
| 1241 |
configuration. |
| 1242 |
|
| 1243 |
20161217: |
| 1244 |
Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 3.9.1. |
| 1245 |
Please see the 20141231 entry below for information about prerequisites |
| 1246 |
and upgrading, if you are not already using clang 3.5.0 or higher. |
| 1247 |
|
| 1248 |
20161124: |
| 1249 |
Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 3.9.0. |
| 1250 |
Please see the 20141231 entry below for information about prerequisites |
| 1251 |
and upgrading, if you are not already using clang 3.5.0 or higher. |
| 1252 |
|
| 1253 |
20161119: |
| 1254 |
The layout of the pmap structure has changed for powerpc to put the pmap |
| 1255 |
statistics at the front for all CPU variations. libkvm(3) and all tools |
| 1256 |
that link against it need to be recompiled. |
| 1257 |
|
| 1258 |
20161030: |
| 1259 |
isl(4) and cyapa(4) drivers now require a new driver, |
| 1260 |
chromebook_platform(4), to work properly on Chromebook-class hardware. |
| 1261 |
On other types of hardware the drivers may need to be configured using |
| 1262 |
device hints. Please see the corresponding manual pages for details. |
| 1263 |
|
| 1264 |
20161017: |
| 1265 |
The urtwn(4) driver was merged into rtwn(4) and now consists of |
| 1266 |
rtwn(4) main module + rtwn_usb(4) and rtwn_pci(4) bus-specific |
| 1267 |
parts. |
| 1268 |
Also, firmware for RTL8188CE was renamed due to possible name |
| 1269 |
conflict (rtwnrtl8192cU(B) -> rtwnrtl8192cE(B)) |
| 1270 |
|
| 1271 |
20161015: |
| 1272 |
GNU rcs has been removed from base. It is available as packages: |
| 1273 |
- rcs: Latest GPLv3 GNU rcs version. |
| 1274 |
- rcs57: Copy of the latest version of GNU rcs (GPLv2) before it was |
| 1275 |
removed from base. |
| 1276 |
|
| 1277 |
20161008: |
| 1278 |
Use of the cc_cdg, cc_chd, cc_hd, or cc_vegas congestion control |
| 1279 |
modules now requires that the kernel configuration contain the |
| 1280 |
TCP_HHOOK option. (This option is included in the GENERIC kernel.) |
| 1281 |
|
| 1282 |
20161003: |
| 1283 |
The WITHOUT_ELFCOPY_AS_OBJCOPY src.conf(5) knob has been retired. |
| 1284 |
ELF Tool Chain's elfcopy is always installed as /usr/bin/objcopy. |
| 1285 |
|
| 1286 |
20160924: |
| 1287 |
Relocatable object files with the extension of .So have been renamed |
| 1288 |
to use an extension of .pico instead. The purpose of this change is |
| 1289 |
to avoid a name clash with shared libraries on case-insensitive file |
| 1290 |
systems. On those file systems, foo.So is the same file as foo.so. |
| 1291 |
|
| 1292 |
20160918: |
| 1293 |
GNU rcs has been turned off by default. It can (temporarily) be built |
| 1294 |
again by adding WITH_RCS knob in src.conf. |
| 1295 |
Otherwise, GNU rcs is available from packages: |
| 1296 |
- rcs: Latest GPLv3 GNU rcs version. |
| 1297 |
- rcs57: Copy of the latest version of GNU rcs (GPLv2) from base. |
| 1298 |
|
| 1299 |
20160918: |
| 1300 |
The backup_uses_rcs functionality has been removed from rc.subr. |
| 1301 |
|
| 1302 |
20160908: |
| 1303 |
The queue(3) debugging macro, QUEUE_MACRO_DEBUG, has been split into |
| 1304 |
two separate components, QUEUE_MACRO_DEBUG_TRACE and |
| 1305 |
QUEUE_MACRO_DEBUG_TRASH. Define both for the original |
| 1306 |
QUEUE_MACRO_DEBUG behavior. |
| 1307 |
|
| 1308 |
20160824: |
| 1309 |
r304787 changed some ioctl interfaces between the iSCSI userspace |
| 1310 |
programs and the kernel. ctladm, ctld, iscsictl, and iscsid must be |
| 1311 |
rebuilt to work with new kernels. __FreeBSD_version has been bumped |
| 1312 |
to 1200005. |
| 1313 |
|
| 1314 |
20160818: |
| 1315 |
The UDP receive code has been updated to only treat incoming UDP |
| 1316 |
packets that were addressed to an L2 broadcast address as L3 |
| 1317 |
broadcast packets. It is not expected that this will affect any |
| 1318 |
standards-conforming UDP application. The new behaviour can be |
| 1319 |
disabled by setting the sysctl net.inet.udp.require_l2_bcast to |
| 1320 |
0. |
| 1321 |
|
| 1322 |
20160818: |
| 1323 |
Remove the openbsd_poll system call. |
| 1324 |
__FreeBSD_version has been bumped because of this. |
| 1325 |
|
| 1326 |
20160708: |
| 1327 |
The stable/11 branch has been created from head@r302406. |
| 1328 |
|
| 1329 |
20160622: |
| 1330 |
The libc stub for the pipe(2) system call has been replaced with |
| 1331 |
a wrapper that calls the pipe2(2) system call and the pipe(2) |
| 1332 |
system call is now only implemented by the kernels that include |
| 1333 |
"options COMPAT_FREEBSD10" in their config file (this is the |
| 1334 |
default). Users should ensure that this option is enabled in |
| 1335 |
their kernel or upgrade userspace to r302092 before upgrading their |
| 1336 |
kernel. |
| 1337 |
|
| 1338 |
20160527: |
| 1339 |
CAM will now strip leading spaces from SCSI disks' serial numbers. |
| 1340 |
This will affect users who create UFS filesystems on SCSI disks using |
| 1341 |
those disk's diskid device nodes. For example, if /etc/fstab |
| 1342 |
previously contained a line like |
| 1343 |
"/dev/diskid/DISK-%20%20%20%20%20%20%20ABCDEFG0123456", you should |
| 1344 |
change it to "/dev/diskid/DISK-ABCDEFG0123456". Users of geom |
| 1345 |
transforms like gmirror may also be affected. ZFS users should |
| 1346 |
generally be fine. |
| 1347 |
|
| 1348 |
20160523: |
| 1349 |
The bitstring(3) API has been updated with new functionality and |
| 1350 |
improved performance. But it is binary-incompatible with the old API. |
| 1351 |
Objects built with the new headers may not be linked against objects |
| 1352 |
built with the old headers. |
| 1353 |
|
| 1354 |
20160520: |
| 1355 |
The brk and sbrk functions have been removed from libc on arm64. |
| 1356 |
Binutils from ports has been updated to not link to these |
| 1357 |
functions and should be updated to the latest version before |
| 1358 |
installing a new libc. |
| 1359 |
|
| 1360 |
20160517: |
| 1361 |
The armv6 port now defaults to hard float ABI. Limited support |
| 1362 |
for running both hardfloat and soft float on the same system |
| 1363 |
is available using the libraries installed with -DWITH_LIBSOFT. |
| 1364 |
This has only been tested as an upgrade path for installworld |
| 1365 |
and packages may fail or need manual intervention to run. New |
| 1366 |
packages will be needed. |
| 1367 |
|
| 1368 |
To update an existing self-hosted armv6hf system, you must add |
| 1369 |
TARGET_ARCH=armv6 on the make command line for both the build |
| 1370 |
and the install steps. |
| 1371 |
|
| 1372 |
20160510: |
| 1373 |
Kernel modules compiled outside of a kernel build now default to |
| 1374 |
installing to /boot/modules instead of /boot/kernel. Many kernel |
| 1375 |
modules built this way (such as those in ports) already overrode |
| 1376 |
KMODDIR explicitly to install into /boot/modules. However, |
| 1377 |
manually building and installing a module from /sys/modules will |
| 1378 |
now install to /boot/modules instead of /boot/kernel. |
| 1379 |
|
| 1380 |
20160414: |
| 1381 |
The CAM I/O scheduler has been committed to the kernel. There should be |
| 1382 |
no user visible impact. This does enable NCQ Trim on ada SSDs. While the |
| 1383 |
list of known rogues that claim support for this but actually corrupt |
| 1384 |
data is believed to be complete, be on the lookout for data |
| 1385 |
corruption. The known rogue list is believed to be complete: |
| 1386 |
|
| 1387 |
o Crucial MX100, M550 drives with MU01 firmware. |
| 1388 |
o Micron M510 and M550 drives with MU01 firmware. |
| 1389 |
o Micron M500 prior to MU07 firmware |
| 1390 |
o Samsung 830, 840, and 850 all firmwares |
| 1391 |
o FCCT M500 all firmwares |
| 1392 |
|
| 1393 |
Crucial has firmware http://www.crucial.com/usa/en/support-ssd-firmware |
| 1394 |
with working NCQ TRIM. For Micron branded drives, see your sales rep for |
| 1395 |
updated firmware. Black listed drives will work correctly because these |
| 1396 |
drives work correctly so long as no NCQ TRIMs are sent to them. Given |
| 1397 |
this list is the same as found in Linux, it's believed there are no |
| 1398 |
other rogues in the market place. All other models from the above |
| 1399 |
vendors work. |
| 1400 |
|
| 1401 |
To be safe, if you are at all concerned, you can quirk each of your |
| 1402 |
drives to prevent NCQ from being sent by setting: |
| 1403 |
kern.cam.ada.X.quirks="0x2" |
| 1404 |
in loader.conf. If the drive requires the 4k sector quirk, set the |
| 1405 |
quirks entry to 0x3. |
| 1406 |
|
| 1407 |
20160330: |
| 1408 |
The FAST_DEPEND build option has been removed and its functionality is |
| 1409 |
now the one true way. The old mkdep(1) style of 'make depend' has |
| 1410 |
been removed. See 20160311 for further details. |
| 1411 |
|
| 1412 |
20160317: |
| 1413 |
Resource range types have grown from unsigned long to uintmax_t. All |
| 1414 |
drivers, and anything using libdevinfo, need to be recompiled. |
| 1415 |
|
| 1416 |
20160311: |
| 1417 |
WITH_FAST_DEPEND is now enabled by default for in-tree and out-of-tree |
| 1418 |
builds. It no longer runs mkdep(1) during 'make depend', and the |
| 1419 |
'make depend' stage can safely be skipped now as it is auto ran |
| 1420 |
when building 'make all' and will generate all SRCS and DPSRCS before |
| 1421 |
building anything else. Dependencies are gathered at compile time with |
| 1422 |
-MF flags kept in separate .depend files per object file. Users should |
| 1423 |
run 'make cleandepend' once if using -DNO_CLEAN to clean out older |
| 1424 |
stale .depend files. |
| 1425 |
|
| 1426 |
20160306: |
| 1427 |
On amd64, clang 3.8.0 can now insert sections of type AMD64_UNWIND into |
| 1428 |
kernel modules. Therefore, if you load any kernel modules at boot time, |
| 1429 |
please install the boot loaders after you install the kernel, but before |
| 1430 |
rebooting, e.g.: |
| 1431 |
|
| 1432 |
make buildworld |
| 1433 |
make buildkernel KERNCONF=YOUR_KERNEL_HERE |
| 1434 |
make installkernel KERNCONF=YOUR_KERNEL_HERE |
| 1435 |
make -C sys/boot install |
| 1436 |
<reboot in single user> |
| 1437 |
|
| 1438 |
Then follow the usual steps, described in the General Notes section, |
| 1439 |
below. |
| 1440 |
|
| 1441 |
20160305: |
| 1442 |
Clang, llvm, lldb and compiler-rt have been upgraded to 3.8.0. Please |
| 1443 |
see the 20141231 entry below for information about prerequisites and |
| 1444 |
upgrading, if you are not already using clang 3.5.0 or higher. |
| 1445 |
|
| 1446 |
20160301: |
| 1447 |
The AIO subsystem is now a standard part of the kernel. The |
| 1448 |
VFS_AIO kernel option and aio.ko kernel module have been removed. |
| 1449 |
Due to stability concerns, asynchronous I/O requests are only |
| 1450 |
permitted on sockets and raw disks by default. To enable |
| 1451 |
asynchronous I/O requests on all file types, set the |
| 1452 |
vfs.aio.enable_unsafe sysctl to a non-zero value. |
| 1453 |
|
| 1454 |
20160226: |
| 1455 |
The ELF object manipulation tool objcopy is now provided by the |
| 1456 |
ELF Tool Chain project rather than by GNU binutils. It should be a |
| 1457 |
drop-in replacement, with the addition of arm64 support. The |
| 1458 |
(temporary) src.conf knob WITHOUT_ELFCOPY_AS_OBJCOPY knob may be set |
| 1459 |
to obtain the GNU version if necessary. |
| 1460 |
|
| 1461 |
20160129: |
| 1462 |
Building ZFS pools on top of zvols is prohibited by default. That |
| 1463 |
feature has never worked safely; it's always been prone to deadlocks. |
| 1464 |
Using a zvol as the backing store for a VM guest's virtual disk will |
| 1465 |
still work, even if the guest is using ZFS. Legacy behavior can be |
| 1466 |
restored by setting vfs.zfs.vol.recursive=1. |
| 1467 |
|
| 1468 |
20160119: |
| 1469 |
The NONE and HPN patches has been removed from OpenSSH. They are |
| 1470 |
still available in the security/openssh-portable port. |
| 1471 |
|
| 1472 |
20160113: |
| 1473 |
With the addition of ypldap(8), a new _ypldap user is now required |
| 1474 |
during installworld. "mergemaster -p" can be used to add the user |
| 1475 |
prior to installworld, as documented in the handbook. |
| 1476 |
|
| 1477 |
20151216: |
| 1478 |
The tftp loader (pxeboot) now uses the option root-path directive. As a |
| 1479 |
consequence it no longer looks for a pxeboot.4th file on the tftp |
| 1480 |
server. Instead it uses the regular /boot infrastructure as with the |
| 1481 |
other loaders. |
| 1482 |
|
| 1483 |
20151211: |
| 1484 |
The code to start recording plug and play data into the modules has |
| 1485 |
been committed. While the old tools will properly build a new kernel, |
| 1486 |
a number of warnings about "unknown metadata record 4" will be produced |
| 1487 |
for an older kldxref. To avoid such warnings, make sure to rebuild |
| 1488 |
the kernel toolchain (or world). Make sure that you have r292078 or |
| 1489 |
later when trying to build 292077 or later before rebuilding. |
| 1490 |
|
| 1491 |
20151207: |
| 1492 |
Debug data files are now built by default with 'make buildworld' and |
| 1493 |
installed with 'make installworld'. This facilitates debugging but |
| 1494 |
requires more disk space both during the build and for the installed |
| 1495 |
world. Debug files may be disabled by setting WITHOUT_DEBUG_FILES=yes |
| 1496 |
in src.conf(5). |
| 1497 |
|
| 1498 |
20151130: |
| 1499 |
r291527 changed the internal interface between the nfsd.ko and |
| 1500 |
nfscommon.ko modules. As such, they must both be upgraded to-gether. |
| 1501 |
__FreeBSD_version has been bumped because of this. |
| 1502 |
|
| 1503 |
20151108: |
| 1504 |
Add support for unicode collation strings leads to a change of |
| 1505 |
order of files listed by ls(1) for example. To get back to the old |
| 1506 |
behaviour, set LC_COLLATE environment variable to "C". |
| 1507 |
|
| 1508 |
Databases administrators will need to reindex their databases given |
| 1509 |
collation results will be different. |
| 1510 |
|
| 1511 |
Due to a bug in install(1) it is recommended to remove the ancient |
| 1512 |
locales before running make installworld. |
| 1513 |
|
| 1514 |
rm -rf /usr/share/locale/* |
| 1515 |
|
| 1516 |
20151030: |
| 1517 |
The OpenSSL has been upgraded to 1.0.2d. Any binaries requiring |
| 1518 |
libcrypto.so.7 or libssl.so.7 must be recompiled. |
| 1519 |
|
| 1520 |
20151020: |
| 1521 |
Qlogic 24xx/25xx firmware images were updated from 5.5.0 to 7.3.0. |
| 1522 |
Kernel modules isp_2400_multi and isp_2500_multi were removed and |
| 1523 |
should be replaced with isp_2400 and isp_2500 modules respectively. |
| 1524 |
|
| 1525 |
20151017: |
| 1526 |
The build previously allowed using 'make -n' to not recurse into |
| 1527 |
sub-directories while showing what commands would be executed, and |
| 1528 |
'make -n -n' to recursively show commands. Now 'make -n' will recurse |
| 1529 |
and 'make -N' will not. |
| 1530 |
|
| 1531 |
20151012: |
| 1532 |
If you specify SENDMAIL_MC or SENDMAIL_CF in make.conf, mergemaster |
| 1533 |
and etcupdate will now use this file. A custom sendmail.cf is now |
| 1534 |
updated via this mechanism rather than via installworld. If you had |
| 1535 |
excluded sendmail.cf in mergemaster.rc or etcupdate.conf, you may |
| 1536 |
want to remove the exclusion or change it to "always install". |
| 1537 |
/etc/mail/sendmail.cf is now managed the same way regardless of |
| 1538 |
whether SENDMAIL_MC/SENDMAIL_CF is used. If you are not using |
| 1539 |
SENDMAIL_MC/SENDMAIL_CF there should be no change in behavior. |
| 1540 |
|
| 1541 |
20151011: |
| 1542 |
Compatibility shims for legacy ATA device names have been removed. |
| 1543 |
It includes ATA_STATIC_ID kernel option, kern.cam.ada.legacy_aliases |
| 1544 |
and kern.geom.raid.legacy_aliases loader tunables, kern.devalias.* |
| 1545 |
environment variables, /dev/ad* and /dev/ar* symbolic links. |
| 1546 |
|
| 1547 |
20151006: |
| 1548 |
Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 3.7.0. |
| 1549 |
Please see the 20141231 entry below for information about prerequisites |
| 1550 |
and upgrading, if you are not already using clang 3.5.0 or higher. |
| 1551 |
|
| 1552 |
20150924: |
| 1553 |
Kernel debug files have been moved to /usr/lib/debug/boot/kernel/, |
| 1554 |
and renamed from .symbols to .debug. This reduces the size requirements |
| 1555 |
on the boot partition or file system and provides consistency with |
| 1556 |
userland debug files. |
| 1557 |
|
| 1558 |
When using the supported kernel installation method the |
| 1559 |
/usr/lib/debug/boot/kernel directory will be renamed (to kernel.old) |
| 1560 |
as is done with /boot/kernel. |
| 1561 |
|
| 1562 |
Developers wishing to maintain the historical behavior of installing |
| 1563 |
debug files in /boot/kernel/ can set KERN_DEBUGDIR="" in src.conf(5). |
| 1564 |
|
| 1565 |
20150827: |
| 1566 |
The wireless drivers had undergone changes that remove the 'parent |
| 1567 |
interface' from the ifconfig -l output. The rc.d network scripts |
| 1568 |
used to check presence of a parent interface in the list, so old |
| 1569 |
scripts would fail to start wireless networking. Thus, etcupdate(3) |
| 1570 |
or mergemaster(8) run is required after kernel update, to update your |
| 1571 |
rc.d scripts in /etc. |
| 1572 |
|
| 1573 |
20150827: |
| 1574 |
pf no longer supports 'scrub fragment crop' or 'scrub fragment drop-ovl' |
| 1575 |
These configurations are now automatically interpreted as |
| 1576 |
'scrub fragment reassemble'. |
| 1577 |
|
| 1578 |
20150817: |
| 1579 |
Kernel-loadable modules for the random(4) device are back. To use |
| 1580 |
them, the kernel must have |
| 1581 |
|
| 1582 |
device random |
| 1583 |
options RANDOM_LOADABLE |
| 1584 |
|
| 1585 |
kldload(8) can then be used to load random_fortuna.ko |
| 1586 |
or random_yarrow.ko. Please note that due to the indirect |
| 1587 |
function calls that the loadable modules need to provide, |
| 1588 |
the build-in variants will be slightly more efficient. |
| 1589 |
|
| 1590 |
The random(4) kernel option RANDOM_DUMMY has been retired due to |
| 1591 |
unpopularity. It was not all that useful anyway. |
| 1592 |
|
| 1593 |
20150813: |
| 1594 |
The WITHOUT_ELFTOOLCHAIN_TOOLS src.conf(5) knob has been retired. |
| 1595 |
Control over building the ELF Tool Chain tools is now provided by |
| 1596 |
the WITHOUT_TOOLCHAIN knob. |
| 1597 |
|
| 1598 |
20150810: |
| 1599 |
The polarity of Pulse Per Second (PPS) capture events with the |
| 1600 |
uart(4) driver has been corrected. Prior to this change the PPS |
| 1601 |
"assert" event corresponded to the trailing edge of a positive PPS |
| 1602 |
pulse and the "clear" event was the leading edge of the next pulse. |
| 1603 |
|
| 1604 |
As the width of a PPS pulse in a typical GPS receiver is on the |
| 1605 |
order of 1 millisecond, most users will not notice any significant |
| 1606 |
difference with this change. |
| 1607 |
|
| 1608 |
Anyone who has compensated for the historical polarity reversal by |
| 1609 |
configuring a negative offset equal to the pulse width will need to |
| 1610 |
remove that workaround. |
| 1611 |
|
| 1612 |
20150809: |
| 1613 |
The default group assigned to /dev/dri entries has been changed |
| 1614 |
from 'wheel' to 'video' with the id of '44'. If you want to have |
| 1615 |
access to the dri devices please add yourself to the video group |
| 1616 |
with: |
| 1617 |
|
| 1618 |
# pw groupmod video -m $USER |
| 1619 |
|
| 1620 |
20150806: |
| 1621 |
The menu.rc and loader.rc files will now be replaced during |
| 1622 |
upgrades. Please migrate local changes to menu.rc.local and |
| 1623 |
loader.rc.local instead. |
| 1624 |
|
| 1625 |
20150805: |
| 1626 |
GNU Binutils versions of addr2line, c++filt, nm, readelf, size, |
| 1627 |
strings and strip have been removed. The src.conf(5) knob |
| 1628 |
WITHOUT_ELFTOOLCHAIN_TOOLS no longer provides the binutils tools. |
| 1629 |
|
| 1630 |
20150728: |
| 1631 |
As ZFS requires more kernel stack pages than is the default on some |
| 1632 |
architectures e.g. i386, it now warns if KSTACK_PAGES is less than |
| 1633 |
ZFS_MIN_KSTACK_PAGES (which is 4 at the time of writing). |
| 1634 |
|
| 1635 |
Please consider using 'options KSTACK_PAGES=X' where X is greater |
| 1636 |
than or equal to ZFS_MIN_KSTACK_PAGES i.e. 4 in such configurations. |
| 1637 |
|
| 1638 |
20150706: |
| 1639 |
sendmail has been updated to 8.15.2. Starting with FreeBSD 11.0 |
| 1640 |
and sendmail 8.15, sendmail uses uncompressed IPv6 addresses by |
| 1641 |
default, i.e., they will not contain "::". For example, instead |
| 1642 |
of ::1, it will be 0:0:0:0:0:0:0:1. This permits a zero subnet |
| 1643 |
to have a more specific match, such as different map entries for |
| 1644 |
IPv6:0:0 vs IPv6:0. This change requires that configuration |
| 1645 |
data (including maps, files, classes, custom ruleset, etc.) must |
| 1646 |
use the same format, so make certain such configuration data is |
| 1647 |
upgrading. As a very simple check search for patterns like |
| 1648 |
'IPv6:[0-9a-fA-F:]*::' and 'IPv6::'. To return to the old |
| 1649 |
behavior, set the m4 option confUSE_COMPRESSED_IPV6_ADDRESSES or |
| 1650 |
the cf option UseCompressedIPv6Addresses. |
| 1651 |
|
| 1652 |
20150630: |
| 1653 |
The default kernel entropy-processing algorithm is now |
| 1654 |
Fortuna, replacing Yarrow. |
| 1655 |
|
| 1656 |
Assuming you have 'device random' in your kernel config |
| 1657 |
file, the configurations allow a kernel option to override |
| 1658 |
this default. You may choose *ONE* of: |
| 1659 |
|
| 1660 |
options RANDOM_YARROW # Legacy /dev/random algorithm. |
| 1661 |
options RANDOM_DUMMY # Blocking-only driver. |
| 1662 |
|
| 1663 |
If you have neither, you get Fortuna. For most people, |
| 1664 |
read no further, Fortuna will give a /dev/random that works |
| 1665 |
like it always used to, and the difference will be irrelevant. |
| 1666 |
|
| 1667 |
If you remove 'device random', you get *NO* kernel-processed |
| 1668 |
entropy at all. This may be acceptable to folks building |
| 1669 |
embedded systems, but has complications. Carry on reading, |
| 1670 |
and it is assumed you know what you need. |
| 1671 |
|
| 1672 |
*PLEASE* read random(4) and random(9) if you are in the |
| 1673 |
habit of tweaking kernel configs, and/or if you are a member |
| 1674 |
of the embedded community, wanting specific and not-usual |
| 1675 |
behaviour from your security subsystems. |
| 1676 |
|
| 1677 |
NOTE!! If you use RANDOM_DUMMY and/or have no 'device |
| 1678 |
random', you will NOT have a functioning /dev/random, and |
| 1679 |
many cryptographic features will not work, including SSH. |
| 1680 |
You may also find strange behaviour from the random(3) set |
| 1681 |
of library functions, in particular sranddev(3), srandomdev(3) |
| 1682 |
and arc4random(3). The reason for this is that the KERN_ARND |
| 1683 |
sysctl only returns entropy if it thinks it has some to |
| 1684 |
share, and with RANDOM_DUMMY or no 'device random' this |
| 1685 |
will never happen. |
| 1686 |
|
| 1687 |
20150623: |
| 1688 |
An additional fix for the issue described in the 20150614 sendmail |
| 1689 |
entry below has been committed in revision 284717. |
| 1690 |
|
| 1691 |
20150616: |
| 1692 |
FreeBSD's old make (fmake) has been removed from the system. It is |
| 1693 |
available as the devel/fmake port or via pkg install fmake. |
| 1694 |
|
| 1695 |
20150615: |
| 1696 |
The fix for the issue described in the 20150614 sendmail entry |
| 1697 |
below has been committed in revision 284436. The work |
| 1698 |
around described in that entry is no longer needed unless the |
| 1699 |
default setting is overridden by a confDH_PARAMETERS configuration |
| 1700 |
setting of '5' or pointing to a 512 bit DH parameter file. |
| 1701 |
|
| 1702 |
20150614: |
| 1703 |
ALLOW_DEPRECATED_ATF_TOOLS/ATFFILE support has been removed from |
| 1704 |
atf.test.mk (included from bsd.test.mk). Please upgrade devel/atf |
| 1705 |
and devel/kyua to version 0.20+ and adjust any calling code to work |
| 1706 |
with Kyuafile and kyua. |
| 1707 |
|
| 1708 |
20150614: |
| 1709 |
The import of openssl to address the FreeBSD-SA-15:10.openssl |
| 1710 |
security advisory includes a change which rejects handshakes |
| 1711 |
with DH parameters below 768 bits. sendmail releases prior |
| 1712 |
to 8.15.2 (not yet released), defaulted to a 512 bit |
| 1713 |
DH parameter setting for client connections. To work around |
| 1714 |
this interoperability, sendmail can be configured to use a |
| 1715 |
2048 bit DH parameter by: |
| 1716 |
|
| 1717 |
1. Edit /etc/mail/`hostname`.mc |
| 1718 |
2. If a setting for confDH_PARAMETERS does not exist or |
| 1719 |
exists and is set to a string beginning with '5', |
| 1720 |
replace it with '2'. |
| 1721 |
3. If a setting for confDH_PARAMETERS exists and is set to |
| 1722 |
a file path, create a new file with: |
| 1723 |
openssl dhparam -out /path/to/file 2048 |
| 1724 |
4. Rebuild the .cf file: |
| 1725 |
cd /etc/mail/; make; make install |
| 1726 |
5. Restart sendmail: |
| 1727 |
cd /etc/mail/; make restart |
| 1728 |
|
| 1729 |
A sendmail patch is coming, at which time this file will be |
| 1730 |
updated. |
| 1731 |
|
| 1732 |
20150604: |
| 1733 |
Generation of legacy formatted entries have been disabled by default |
| 1734 |
in pwd_mkdb(8), as all base system consumers of the legacy formatted |
| 1735 |
entries were converted to use the new format by default when the new, |
| 1736 |
machine independent format have been added and supported since FreeBSD |
| 1737 |
5.x. |
| 1738 |
|
| 1739 |
Please see the pwd_mkdb(8) manual page for further details. |
| 1740 |
|
| 1741 |
20150525: |
| 1742 |
Clang and llvm have been upgraded to 3.6.1 release. Please see the |
| 1743 |
20141231 entry below for information about prerequisites and upgrading, |
| 1744 |
if you are not already using 3.5.0 or higher. |
| 1745 |
|
| 1746 |
20150521: |
| 1747 |
TI platform code switched to using vendor DTS files and this update |
| 1748 |
may break existing systems running on Beaglebone, Beaglebone Black, |
| 1749 |
and Pandaboard: |
| 1750 |
|
| 1751 |
- dtb files should be regenerated/reinstalled. Filenames are the |
| 1752 |
same but content is different now |
| 1753 |
- GPIO addressing was changed, now each GPIO bank (32 pins per bank) |
| 1754 |
has its own /dev/gpiocX device, e.g. pin 121 on /dev/gpioc0 in old |
| 1755 |
addressing scheme is now pin 25 on /dev/gpioc3. |
| 1756 |
- Pandaboard: /etc/ttys should be updated, serial console device is |
| 1757 |
now /dev/ttyu2, not /dev/ttyu0 |
| 1758 |
|
| 1759 |
20150501: |
| 1760 |
soelim(1) from gnu/usr.bin/groff has been replaced by usr.bin/soelim. |
| 1761 |
If you need the GNU extension from groff soelim(1), install groff |
| 1762 |
from package: pkg install groff, or via ports: textproc/groff. |
| 1763 |
|
| 1764 |
20150423: |
| 1765 |
chmod, chflags, chown and chgrp now affect symlinks in -R mode as |
| 1766 |
defined in symlink(7); previously symlinks were silently ignored. |
| 1767 |
|
| 1768 |
20150415: |
| 1769 |
The const qualifier has been removed from iconv(3) to comply with |
| 1770 |
POSIX. The ports tree is aware of this from r384038 onwards. |
| 1771 |
|
| 1772 |
20150416: |
| 1773 |
Libraries specified by LIBADD in Makefiles must have a corresponding |
| 1774 |
DPADD_<lib> variable to ensure correct dependencies. This is now |
| 1775 |
enforced in src.libnames.mk. |
| 1776 |
|
| 1777 |
20150324: |
| 1778 |
From legacy ata(4) driver was removed support for SATA controllers |
| 1779 |
supported by more functional drivers ahci(4), siis(4) and mvs(4). |
| 1780 |
Kernel modules ataahci and ataadaptec were removed completely, |
| 1781 |
replaced by ahci and mvs modules respectively. |
| 1782 |
|
| 1783 |
20150315: |
| 1784 |
Clang, llvm and lldb have been upgraded to 3.6.0 release. Please see |
| 1785 |
the 20141231 entry below for information about prerequisites and |
| 1786 |
upgrading, if you are not already using 3.5.0 or higher. |
| 1787 |
|
| 1788 |
20150307: |
| 1789 |
The 32-bit PowerPC kernel has been changed to a position-independent |
| 1790 |
executable. This can only be booted with a version of loader(8) |
| 1791 |
newer than January 31, 2015, so make sure to update both world and |
| 1792 |
kernel before rebooting. |
| 1793 |
|
| 1794 |
20150217: |
| 1795 |
If you are running a -CURRENT kernel since r273872 (Oct 30th, 2014), |
| 1796 |
but before r278950, the RNG was not seeded properly. Immediately |
| 1797 |
upgrade the kernel to r278950 or later and regenerate any keys (e.g. |
| 1798 |
ssh keys or openssl keys) that were generated w/ a kernel from that |
| 1799 |
range. This does not affect programs that directly used /dev/random |
| 1800 |
or /dev/urandom. All userland uses of arc4random(3) are affected. |
| 1801 |
|
| 1802 |
20150210: |
| 1803 |
The autofs(4) ABI was changed in order to restore binary compatibility |
| 1804 |
with 10.1-RELEASE. The automountd(8) daemon needs to be rebuilt to work |
| 1805 |
with the new kernel. |
| 1806 |
|
| 1807 |
20150131: |
| 1808 |
The powerpc64 kernel has been changed to a position-independent |
| 1809 |
executable. This can only be booted with a new version of loader(8), |
| 1810 |
so make sure to update both world and kernel before rebooting. |
| 1811 |
|
| 1812 |
20150118: |
| 1813 |
Clang and llvm have been upgraded to 3.5.1 release. This is a bugfix |
| 1814 |
only release, no new features have been added. Please see the 20141231 |
| 1815 |
entry below for information about prerequisites and upgrading, if you |
| 1816 |
are not already using 3.5.0. |
| 1817 |
|
| 1818 |
20150107: |
| 1819 |
ELF tools addr2line, elfcopy (strip), nm, size, and strings are now |
| 1820 |
taken from the ELF Tool Chain project rather than GNU binutils. They |
| 1821 |
should be drop-in replacements, with the addition of arm64 support. |
| 1822 |
The WITHOUT_ELFTOOLCHAIN_TOOLS= knob may be used to obtain the |
| 1823 |
binutils tools, if necessary. See 20150805 for updated information. |
| 1824 |
|
| 1825 |
20150105: |
| 1826 |
The default Unbound configuration now enables remote control |
| 1827 |
using a local socket. Users who have already enabled the |
| 1828 |
local_unbound service should regenerate their configuration |
| 1829 |
by running "service local_unbound setup" as root. |
| 1830 |
|
| 1831 |
20150102: |
| 1832 |
The GNU texinfo and GNU info pages have been removed. |
| 1833 |
To be able to view GNU info pages please install texinfo from ports. |
| 1834 |
|
| 1835 |
20141231: |
| 1836 |
Clang, llvm and lldb have been upgraded to 3.5.0 release. |
| 1837 |
|
| 1838 |
As of this release, a prerequisite for building clang, llvm and lldb is |
| 1839 |
a C++11 capable compiler and C++11 standard library. This means that to |
| 1840 |
be able to successfully build the cross-tools stage of buildworld, with |
| 1841 |
clang as the bootstrap compiler, your system compiler or cross compiler |
| 1842 |
should either be clang 3.3 or later, or gcc 4.8 or later, and your |
| 1843 |
system C++ library should be libc++, or libdstdc++ from gcc 4.8 or |
| 1844 |
later. |
| 1845 |
|
| 1846 |
On any standard FreeBSD 10.x or 11.x installation, where clang and |
| 1847 |
libc++ are on by default (that is, on x86 or arm), this should work out |
| 1848 |
of the box. |
| 1849 |
|
| 1850 |
On 9.x installations where clang is enabled by default, e.g. on x86 and |
| 1851 |
powerpc, libc++ will not be enabled by default, so libc++ should be |
| 1852 |
built (with clang) and installed first. If both clang and libc++ are |
| 1853 |
missing, build clang first, then use it to build libc++. |
| 1854 |
|
| 1855 |
On 8.x and earlier installations, upgrade to 9.x first, and then follow |
| 1856 |
the instructions for 9.x above. |
| 1857 |
|
| 1858 |
Sparc64 and mips users are unaffected, as they still use gcc 4.2.1 by |
| 1859 |
default, and do not build clang. |
| 1860 |
|
| 1861 |
Many embedded systems are resource constrained, and will not be able to |
| 1862 |
build clang in a reasonable time, or in some cases at all. In those |
| 1863 |
cases, cross building bootable systems on amd64 is a workaround. |
| 1864 |
|
| 1865 |
This new version of clang introduces a number of new warnings, of which |
| 1866 |
the following are most likely to appear: |
| 1867 |
|
| 1868 |
-Wabsolute-value |
| 1869 |
|
| 1870 |
This warns in two cases, for both C and C++: |
| 1871 |
* When the code is trying to take the absolute value of an unsigned |
| 1872 |
quantity, which is effectively a no-op, and almost never what was |
| 1873 |
intended. The code should be fixed, if at all possible. If you are |
| 1874 |
sure that the unsigned quantity can be safely cast to signed, without |
| 1875 |
loss of information or undefined behavior, you can add an explicit |
| 1876 |
cast, or disable the warning. |
| 1877 |
|
| 1878 |
* When the code is trying to take an absolute value, but the called |
| 1879 |
abs() variant is for the wrong type, which can lead to truncation. |
| 1880 |
If you want to disable the warning instead of fixing the code, please |
| 1881 |
make sure that truncation will not occur, or it might lead to unwanted |
| 1882 |
side-effects. |
| 1883 |
|
| 1884 |
-Wtautological-undefined-compare and |
| 1885 |
-Wundefined-bool-conversion |
| 1886 |
|
| 1887 |
These warn when C++ code is trying to compare 'this' against NULL, while |
| 1888 |
'this' should never be NULL in well-defined C++ code. However, there is |
| 1889 |
some legacy (pre C++11) code out there, which actively abuses this |
| 1890 |
feature, which was less strictly defined in previous C++ versions. |
| 1891 |
|
| 1892 |
Squid and openjdk do this, for example. The warning can be turned off |
| 1893 |
for C++98 and earlier, but compiling the code in C++11 mode might result |
| 1894 |
in unexpected behavior; for example, the parts of the program that are |
| 1895 |
unreachable could be optimized away. |
| 1896 |
|
| 1897 |
20141222: |
| 1898 |
The old NFS client and server (kernel options NFSCLIENT, NFSSERVER) |
| 1899 |
kernel sources have been removed. The .h files remain, since some |
| 1900 |
utilities include them. This will need to be fixed later. |
| 1901 |
If "mount -t oldnfs ..." is attempted, it will fail. |
| 1902 |
If the "-o" option on mountd(8), nfsd(8) or nfsstat(1) is used, |
| 1903 |
the utilities will report errors. |
| 1904 |
|
| 1905 |
20141121: |
| 1906 |
The handling of LOCAL_LIB_DIRS has been altered to skip addition of |
| 1907 |
directories to top level SUBDIR variable when their parent |
| 1908 |
directory is included in LOCAL_DIRS. Users with build systems with |
| 1909 |
such hierarchies and without SUBDIR entries in the parent |
| 1910 |
directory Makefiles should add them or add the directories to |
| 1911 |
LOCAL_DIRS. |
| 1912 |
|
| 1913 |
20141109: |
| 1914 |
faith(4) and faithd(8) have been removed from the base system. Faith |
| 1915 |
has been obsolete for a very long time. |
| 1916 |
|
| 1917 |
20141104: |
| 1918 |
vt(4), the new console driver, is enabled by default. It brings |
| 1919 |
support for Unicode and double-width characters, as well as |
| 1920 |
support for UEFI and integration with the KMS kernel video |
| 1921 |
drivers. |
| 1922 |
|
| 1923 |
You may need to update your console settings in /etc/rc.conf, |
| 1924 |
most probably the keymap. During boot, /etc/rc.d/syscons will |
| 1925 |
indicate what you need to do. |
| 1926 |
|
| 1927 |
vt(4) still has issues and lacks some features compared to |
| 1928 |
syscons(4). See the wiki for up-to-date information: |
| 1929 |
https://wiki.freebsd.org/Newcons |
| 1930 |
|
| 1931 |
If you want to keep using syscons(4), you can do so by adding |
| 1932 |
the following line to /boot/loader.conf: |
| 1933 |
kern.vty=sc |
| 1934 |
|
| 1935 |
20141102: |
| 1936 |
pjdfstest has been integrated into kyua as an opt-in test suite. |
| 1937 |
Please see share/doc/pjdfstest/README for more details on how to |
| 1938 |
execute it. |
| 1939 |
|
| 1940 |
20141009: |
| 1941 |
gperf has been removed from the base system for architectures |
| 1942 |
that use clang. Ports that require gperf will obtain it from the |
| 1943 |
devel/gperf port. |
| 1944 |
|
| 1945 |
20140923: |
| 1946 |
pjdfstest has been moved from tools/regression/pjdfstest to |
| 1947 |
contrib/pjdfstest . |
| 1948 |
|
| 1949 |
20140922: |
| 1950 |
At svn r271982, The default linux compat kernel ABI has been adjusted |
| 1951 |
to 2.6.18 in support of the linux-c6 compat ports infrastructure |
| 1952 |
update. If you wish to continue using the linux-f10 compat ports, |
| 1953 |
add compat.linux.osrelease=2.6.16 to your local sysctl.conf. Users are |
| 1954 |
encouraged to update their linux-compat packages to linux-c6 during |
| 1955 |
their next update cycle. |
| 1956 |
|
| 1957 |
20140729: |
| 1958 |
The ofwfb driver, used to provide a graphics console on PowerPC when |
| 1959 |
using vt(4), no longer allows mmap() of all physical memory. This |
| 1960 |
will prevent Xorg on PowerPC with some ATI graphics cards from |
| 1961 |
initializing properly unless x11-servers/xorg-server is updated to |
| 1962 |
1.12.4_8 or newer. |
| 1963 |
|
| 1964 |
20140723: |
| 1965 |
The xdev targets have been converted to using TARGET and |
| 1966 |
TARGET_ARCH instead of XDEV and XDEV_ARCH. |
| 1967 |
|
| 1968 |
20140719: |
| 1969 |
The default unbound configuration has been modified to address |
| 1970 |
issues with reverse lookups on networks that use private |
| 1971 |
address ranges. If you use the local_unbound service, run |
| 1972 |
"service local_unbound setup" as root to regenerate your |
| 1973 |
configuration, then "service local_unbound reload" to load the |
| 1974 |
new configuration. |
| 1975 |
|
| 1976 |
20140709: |
| 1977 |
The GNU texinfo and GNU info pages are not built and installed |
| 1978 |
anymore, WITH_INFO knob has been added to allow to built and install |
| 1979 |
them again. |
| 1980 |
UPDATE: see 20150102 entry on texinfo's removal |
| 1981 |
|
| 1982 |
20140708: |
| 1983 |
The GNU readline library is now an INTERNALLIB - that is, it is |
| 1984 |
statically linked into consumers (GDB and variants) in the base |
| 1985 |
system, and the shared library is no longer installed. The |
| 1986 |
devel/readline port is available for third party software that |
| 1987 |
requires readline. |
| 1988 |
|
| 1989 |
20140702: |
| 1990 |
The Itanium architecture (ia64) has been removed from the list of |
| 1991 |
known architectures. This is the first step in the removal of the |
| 1992 |
architecture. |
| 1993 |
|
| 1994 |
20140701: |
| 1995 |
Commit r268115 has added NFSv4.1 server support, merged from |
| 1996 |
projects/nfsv4.1-server. Since this includes changes to the |
| 1997 |
internal interfaces between the NFS related modules, a full |
| 1998 |
build of the kernel and modules will be necessary. |
| 1999 |
__FreeBSD_version has been bumped. |
| 2000 |
|
| 2001 |
20140629: |
| 2002 |
The WITHOUT_VT_SUPPORT kernel config knob has been renamed |
| 2003 |
WITHOUT_VT. (The other _SUPPORT knobs have a consistent meaning |
| 2004 |
which differs from the behaviour controlled by this knob.) |
| 2005 |
|
| 2006 |
20140619: |
| 2007 |
Maximal length of the serial number in CTL was increased from 16 to |
| 2008 |
64 chars, that breaks ABI. All CTL-related tools, such as ctladm |
| 2009 |
and ctld, need to be rebuilt to work with a new kernel. |
| 2010 |
|
| 2011 |
20140606: |
| 2012 |
The libatf-c and libatf-c++ major versions were downgraded to 0 and |
| 2013 |
1 respectively to match the upstream numbers. They were out of |
| 2014 |
sync because, when they were originally added to FreeBSD, the |
| 2015 |
upstream versions were not respected. These libraries are private |
| 2016 |
and not yet built by default, so renumbering them should be a |
| 2017 |
non-issue. However, unclean source trees will yield broken test |
| 2018 |
programs once the operator executes "make delete-old-libs" after a |
| 2019 |
"make installworld". |
| 2020 |
|
| 2021 |
Additionally, the atf-sh binary was made private by moving it into |
| 2022 |
/usr/libexec/. Already-built shell test programs will keep the |
| 2023 |
path to the old binary so they will break after "make delete-old" |
| 2024 |
is run. |
| 2025 |
|
| 2026 |
If you are using WITH_TESTS=yes (not the default), wipe the object |
| 2027 |
tree and rebuild from scratch to prevent spurious test failures. |
| 2028 |
This is only needed once: the misnumbered libraries and misplaced |
| 2029 |
binaries have been added to OptionalObsoleteFiles.inc so they will |
| 2030 |
be removed during a clean upgrade. |
| 2031 |
|
| 2032 |
20140512: |
| 2033 |
Clang and llvm have been upgraded to 3.4.1 release. |
| 2034 |
|
| 2035 |
20140508: |
| 2036 |
We bogusly installed src.opts.mk in /usr/share/mk. This file should |
| 2037 |
be removed to avoid issues in the future (and has been added to |
| 2038 |
ObsoleteFiles.inc). |
| 2039 |
|
| 2040 |
20140505: |
| 2041 |
/etc/src.conf now affects only builds of the FreeBSD src tree. In the |
| 2042 |
past, it affected all builds that used the bsd.*.mk files. The old |
| 2043 |
behavior was a bug, but people may have relied upon it. To get this |
| 2044 |
behavior back, you can .include /etc/src.conf from /etc/make.conf |
| 2045 |
(which is still global and isn't changed). This also changes the |
| 2046 |
behavior of incremental builds inside the tree of individual |
| 2047 |
directories. Set MAKESYSPATH to ".../share/mk" to do that. |
| 2048 |
Although this has survived make universe and some upgrade scenarios, |
| 2049 |
other upgrade scenarios may have broken. At least one form of |
| 2050 |
temporary breakage was fixed with MAKESYSPATH settings for buildworld |
| 2051 |
as well... In cases where MAKESYSPATH isn't working with this |
| 2052 |
setting, you'll need to set it to the full path to your tree. |
| 2053 |
|
| 2054 |
One side effect of all this cleaning up is that bsd.compiler.mk |
| 2055 |
is no longer implicitly included by bsd.own.mk. If you wish to |
| 2056 |
use COMPILER_TYPE, you must now explicitly include bsd.compiler.mk |
| 2057 |
as well. |
| 2058 |
|
| 2059 |
20140430: |
| 2060 |
The lindev device has been removed since /dev/full has been made a |
| 2061 |
standard device. __FreeBSD_version has been bumped. |
| 2062 |
|
| 2063 |
20140424: |
| 2064 |
The knob WITHOUT_VI was added to the base system, which controls |
| 2065 |
building ex(1), vi(1), etc. Older releases of FreeBSD required ex(1) |
| 2066 |
in order to reorder files share/termcap and didn't build ex(1) as a |
| 2067 |
build tool, so building/installing with WITH_VI is highly advised for |
| 2068 |
build hosts for older releases. |
| 2069 |
|
| 2070 |
This issue has been fixed in stable/9 and stable/10 in r277022 and |
| 2071 |
r276991, respectively. |
| 2072 |
|
| 2073 |
20140418: |
| 2074 |
The YES_HESIOD knob has been removed. It has been obsolete for |
| 2075 |
a decade. Please move to using WITH_HESIOD instead or your builds |
| 2076 |
will silently lack HESIOD. |
| 2077 |
|
| 2078 |
20140405: |
| 2079 |
The uart(4) driver has been changed with respect to its handling |
| 2080 |
of the low-level console. Previously the uart(4) driver prevented |
| 2081 |
any process from changing the baudrate or the CLOCAL and HUPCL |
| 2082 |
control flags. By removing the restrictions, operators can make |
| 2083 |
changes to the serial console port without having to reboot. |
| 2084 |
However, when getty(8) is started on the serial device that is |
| 2085 |
associated with the low-level console, a misconfigured terminal |
| 2086 |
line in /etc/ttys will now have a real impact. |
| 2087 |
Before upgrading the kernel, make sure that /etc/ttys has the |
| 2088 |
serial console device configured as 3wire without baudrate to |
| 2089 |
preserve the previous behaviour. E.g: |
| 2090 |
ttyu0 "/usr/libexec/getty 3wire" vt100 on secure |
| 2091 |
|
| 2092 |
20140306: |
| 2093 |
Support for libwrap (TCP wrappers) in rpcbind was disabled by default |
| 2094 |
to improve performance. To re-enable it, if needed, run rpcbind |
| 2095 |
with command line option -W. |
| 2096 |
|
| 2097 |
20140226: |
| 2098 |
Switched back to the GPL dtc compiler due to updates in the upstream |
| 2099 |
dts files not being supported by the BSDL dtc compiler. You will need |
| 2100 |
to rebuild your kernel toolchain to pick up the new compiler. Core dumps |
| 2101 |
may result while building dtb files during a kernel build if you fail |
| 2102 |
to do so. Set WITHOUT_GPL_DTC if you require the BSDL compiler. |
| 2103 |
|
| 2104 |
20140216: |
| 2105 |
Clang and llvm have been upgraded to 3.4 release. |
| 2106 |
|
| 2107 |
20140216: |
| 2108 |
The nve(4) driver has been removed. Please use the nfe(4) driver |
| 2109 |
for NVIDIA nForce MCP Ethernet adapters instead. |
| 2110 |
|
| 2111 |
20140212: |
| 2112 |
An ABI incompatibility crept into the libc++ 3.4 import in r261283. |
| 2113 |
This could cause certain C++ applications using shared libraries built |
| 2114 |
against the previous version of libc++ to crash. The incompatibility |
| 2115 |
has now been fixed, but any C++ applications or shared libraries built |
| 2116 |
between r261283 and r261801 should be recompiled. |
| 2117 |
|
| 2118 |
20140204: |
| 2119 |
OpenSSH will now ignore errors caused by kernel lacking of Capsicum |
| 2120 |
capability mode support. Please note that enabling the feature in |
| 2121 |
kernel is still highly recommended. |
| 2122 |
|
| 2123 |
20140131: |
| 2124 |
OpenSSH is now built with sandbox support, and will use sandbox as |
| 2125 |
the default privilege separation method. This requires Capsicum |
| 2126 |
capability mode support in kernel. |
| 2127 |
|
| 2128 |
20140128: |
| 2129 |
The libelf and libdwarf libraries have been updated to newer |
| 2130 |
versions from upstream. Shared library version numbers for |
| 2131 |
these two libraries were bumped. Any ports or binaries |
| 2132 |
requiring these two libraries should be recompiled. |
| 2133 |
__FreeBSD_version is bumped to 1100006. |
| 2134 |
|
| 2135 |
20140110: |
| 2136 |
If a Makefile in a tests/ directory was auto-generating a Kyuafile |
| 2137 |
instead of providing an explicit one, this would prevent such |
| 2138 |
Makefile from providing its own Kyuafile in the future during |
| 2139 |
NO_CLEAN builds. This has been fixed in the Makefiles but manual |
| 2140 |
intervention is needed to clean an objdir if you use NO_CLEAN: |
| 2141 |
# find /usr/obj -name Kyuafile | xargs rm -f |
| 2142 |
|
| 2143 |
20131213: |
| 2144 |
The behavior of gss_pseudo_random() for the krb5 mechanism |
| 2145 |
has changed, for applications requesting a longer random string |
| 2146 |
than produced by the underlying enctype's pseudo-random() function. |
| 2147 |
In particular, the random string produced from a session key of |
| 2148 |
enctype aes256-cts-hmac-sha1-96 or aes256-cts-hmac-sha1-96 will |
| 2149 |
be different at the 17th octet and later, after this change. |
| 2150 |
The counter used in the PRF+ construction is now encoded as a |
| 2151 |
big-endian integer in accordance with RFC 4402. |
| 2152 |
__FreeBSD_version is bumped to 1100004. |
| 2153 |
|
| 2154 |
20131108: |
| 2155 |
The WITHOUT_ATF build knob has been removed and its functionality |
| 2156 |
has been subsumed into the more generic WITHOUT_TESTS. If you were |
| 2157 |
using the former to disable the build of the ATF libraries, you |
| 2158 |
should change your settings to use the latter. |
| 2159 |
|
| 2160 |
20131025: |
| 2161 |
The default version of mtree is nmtree which is obtained from |
| 2162 |
NetBSD. The output is generally the same, but may vary |
| 2163 |
slightly. If you found you need identical output adding |
| 2164 |
"-F freebsd9" to the command line should do the trick. For the |
| 2165 |
time being, the old mtree is available as fmtree. |
| 2166 |
|
| 2167 |
20131014: |
| 2168 |
libbsdyml has been renamed to libyaml and moved to /usr/lib/private. |
| 2169 |
This will break ports-mgmt/pkg. Rebuild the port, or upgrade to pkg |
| 2170 |
1.1.4_8 and verify bsdyml not linked in, before running "make |
| 2171 |
delete-old-libs": |
| 2172 |
# make -C /usr/ports/ports-mgmt/pkg build deinstall install clean |
| 2173 |
or |
| 2174 |
# pkg install pkg; ldd /usr/local/sbin/pkg | grep bsdyml |
| 2175 |
|
| 2176 |
20131010: |
| 2177 |
The stable/10 branch has been created in subversion from head |
| 2178 |
revision r256279. |
| 2179 |
|
| 2180 |
COMMON ITEMS: |
| 2181 |
|
| 2182 |
General Notes |
| 2183 |
------------- |
| 2184 |
Sometimes, obscure build problems are the result of environment |
| 2185 |
poisoning. This can happen because the make utility reads its |
| 2186 |
environment when searching for values for global variables. To run |
| 2187 |
your build attempts in an "environmental clean room", prefix all make |
| 2188 |
commands with 'env -i '. See the env(1) manual page for more details. |
| 2189 |
Occasionally a build failure will occur with "make -j" due to a race |
| 2190 |
condition. If this happens try building again without -j, and please |
| 2191 |
report a bug if it happens consistently. |
| 2192 |
|
| 2193 |
When upgrading from one major version to another it is generally best to |
| 2194 |
upgrade to the latest code in the currently installed branch first, then |
| 2195 |
do an upgrade to the new branch. This is the best-tested upgrade path, |
| 2196 |
and has the highest probability of being successful. Please try this |
| 2197 |
approach if you encounter problems with a major version upgrade. Since |
| 2198 |
the stable 4.x branch point, one has generally been able to upgrade from |
| 2199 |
anywhere in the most recent stable branch to head / current (or even the |
| 2200 |
last couple of stable branches). See the top of this file when there's |
| 2201 |
an exception. |
| 2202 |
|
| 2203 |
The update process will emit an error on an attempt to perform a build |
| 2204 |
or install from a FreeBSD version below the earliest supported version. |
| 2205 |
When updating from an older version the update should be performed one |
| 2206 |
major release at a time, including running `make delete-old` at each |
| 2207 |
step. |
| 2208 |
|
| 2209 |
When upgrading a live system, having a root shell around before |
| 2210 |
installing anything can help undo problems. Not having a root shell |
| 2211 |
around can lead to problems if pam has changed too much from your |
| 2212 |
starting point to allow continued authentication after the upgrade. |
| 2213 |
|
| 2214 |
This file should be read as a log of events. When a later event changes |
| 2215 |
information of a prior event, the prior event should not be deleted. |
| 2216 |
Instead, a pointer to the entry with the new information should be |
| 2217 |
placed in the old entry. Readers of this file should also sanity check |
| 2218 |
older entries before relying on them blindly. Authors of new entries |
| 2219 |
should write them with this in mind. |
| 2220 |
|
| 2221 |
ZFS notes |
| 2222 |
--------- |
| 2223 |
When upgrading the boot ZFS pool to a new version, always follow |
| 2224 |
these two steps: |
| 2225 |
|
| 2226 |
1.) recompile and reinstall the ZFS boot loader and boot block |
| 2227 |
(this is part of "make buildworld" and "make installworld") |
| 2228 |
|
| 2229 |
2.) update the ZFS boot block on your boot drive |
| 2230 |
|
| 2231 |
The following example updates the ZFS boot block on the |
| 2232 |
freebsd-boot partition of a GPT partitioned drive ada0: |
| 2233 |
"gpart bootcode -p /boot/gptzfsboot -i $N ada0" |
| 2234 |
The value $N will typically be 1 (if booting from BIOS) or 2 (if |
| 2235 |
booting from EFI). |
| 2236 |
|
| 2237 |
Non-boot pools do not need these updates. |
| 2238 |
|
| 2239 |
To build a kernel |
| 2240 |
----------------- |
| 2241 |
If you are updating from a prior version of FreeBSD (even one just |
| 2242 |
a few days old), you should follow this procedure. It is the most |
| 2243 |
failsafe as it uses a /usr/obj tree with a fresh mini-buildworld, |
| 2244 |
|
| 2245 |
make kernel-toolchain |
| 2246 |
make -DALWAYS_CHECK_MAKE buildkernel KERNCONF=YOUR_KERNEL_HERE |
| 2247 |
make -DALWAYS_CHECK_MAKE installkernel KERNCONF=YOUR_KERNEL_HERE |
| 2248 |
|
| 2249 |
To test a kernel once |
| 2250 |
--------------------- |
| 2251 |
If you just want to boot a kernel once (because you are not sure |
| 2252 |
if it works, or if you want to boot a known bad kernel to provide |
| 2253 |
debugging information) run |
| 2254 |
make installkernel KERNCONF=YOUR_KERNEL_HERE KODIR=/boot/testkernel |
| 2255 |
nextboot -k testkernel |
| 2256 |
|
| 2257 |
To rebuild everything and install it on the current system. |
| 2258 |
----------------------------------------------------------- |
| 2259 |
# Note: sometimes if you are running current you gotta do more than |
| 2260 |
# is listed here if you are upgrading from a really old current. |
| 2261 |
|
| 2262 |
<make sure you have good level 0 dumps> |
| 2263 |
make buildworld |
| 2264 |
make buildkernel KERNCONF=YOUR_KERNEL_HERE |
| 2265 |
make installkernel KERNCONF=YOUR_KERNEL_HERE |
| 2266 |
[1] |
| 2267 |
<reboot in single user> [3] |
| 2268 |
mergemaster -Fp [5] |
| 2269 |
make installworld |
| 2270 |
mergemaster -Fi [4] |
| 2271 |
make delete-old [6] |
| 2272 |
<reboot> |
| 2273 |
|
| 2274 |
To cross-install current onto a separate partition |
| 2275 |
-------------------------------------------------- |
| 2276 |
# In this approach we use a separate partition to hold |
| 2277 |
# current's root, 'usr', and 'var' directories. A partition |
| 2278 |
# holding "/", "/usr" and "/var" should be about 2GB in |
| 2279 |
# size. |
| 2280 |
|
| 2281 |
<make sure you have good level 0 dumps> |
| 2282 |
<boot into -stable> |
| 2283 |
make buildworld |
| 2284 |
make buildkernel KERNCONF=YOUR_KERNEL_HERE |
| 2285 |
<maybe newfs current's root partition> |
| 2286 |
<mount current's root partition on directory ${CURRENT_ROOT}> |
| 2287 |
make installworld DESTDIR=${CURRENT_ROOT} -DDB_FROM_SRC |
| 2288 |
make distribution DESTDIR=${CURRENT_ROOT} # if newfs'd |
| 2289 |
make installkernel KERNCONF=YOUR_KERNEL_HERE DESTDIR=${CURRENT_ROOT} |
| 2290 |
cp /etc/fstab ${CURRENT_ROOT}/etc/fstab # if newfs'd |
| 2291 |
<edit ${CURRENT_ROOT}/etc/fstab to mount "/" from the correct partition> |
| 2292 |
<reboot into current> |
| 2293 |
<do a "native" rebuild/install as described in the previous section> |
| 2294 |
<maybe install compatibility libraries from ports/misc/compat*> |
| 2295 |
<reboot> |
| 2296 |
|
| 2297 |
|
| 2298 |
To upgrade in-place from stable to current |
| 2299 |
---------------------------------------------- |
| 2300 |
<make sure you have good level 0 dumps> |
| 2301 |
make buildworld [9] |
| 2302 |
make buildkernel KERNCONF=YOUR_KERNEL_HERE [8] |
| 2303 |
make installkernel KERNCONF=YOUR_KERNEL_HERE |
| 2304 |
[1] |
| 2305 |
<reboot in single user> [3] |
| 2306 |
mergemaster -Fp [5] |
| 2307 |
make installworld |
| 2308 |
mergemaster -Fi [4] |
| 2309 |
make delete-old [6] |
| 2310 |
<reboot> |
| 2311 |
|
| 2312 |
Make sure that you've read the UPDATING file to understand the |
| 2313 |
tweaks to various things you need. At this point in the life |
| 2314 |
cycle of current, things change often and you are on your own |
| 2315 |
to cope. The defaults can also change, so please read ALL of |
| 2316 |
the UPDATING entries. |
| 2317 |
|
| 2318 |
Also, if you are tracking -current, you must be subscribed to |
| 2319 |
freebsd-current@freebsd.org. Make sure that before you update |
| 2320 |
your sources that you have read and understood all the recent |
| 2321 |
messages there. If in doubt, please track -stable which has |
| 2322 |
much fewer pitfalls. |
| 2323 |
|
| 2324 |
[1] If you have third party modules, such as vmware, you should disable |
| 2325 |
them at this point so they don't crash your system on |
| 2326 |
reboot. Alternatively, you should rebuild all the modules you have in |
| 2327 |
your system and install them as well. If you are running -current, you |
| 2328 |
should seriously consider placing all sources to all the modules for |
| 2329 |
your system (or symlinks to them) in /usr/local/sys/modules so this |
| 2330 |
happens automatically. If all your modules come from ports, then adding |
| 2331 |
the port origin directories to PORTS_MODULES instead is also automatic |
| 2332 |
and effective, eg: |
| 2333 |
PORTS_MODULES+=x11/nvidia-driver |
| 2334 |
|
| 2335 |
[3] From the bootblocks, boot -s, and then do |
| 2336 |
fsck -p |
| 2337 |
mount -u / |
| 2338 |
mount -a |
| 2339 |
sh /etc/rc.d/zfs start # mount zfs filesystem, if needed |
| 2340 |
cd src # full path to source |
| 2341 |
adjkerntz -i # if CMOS is wall time |
| 2342 |
Also, when doing a major release upgrade, it is required that you boot |
| 2343 |
into single user mode to do the installworld. |
| 2344 |
|
| 2345 |
[4] Note: This step is non-optional. Failure to do this step |
| 2346 |
can result in a significant reduction in the functionality of the |
| 2347 |
system. Attempting to do it by hand is not recommended and those |
| 2348 |
that pursue this avenue should read this file carefully, as well |
| 2349 |
as the archives of freebsd-current and freebsd-hackers mailing lists |
| 2350 |
for potential gotchas. The -U option is also useful to consider. |
| 2351 |
See mergemaster(8) for more information. |
| 2352 |
|
| 2353 |
[5] Usually this step is a no-op. However, from time to time |
| 2354 |
you may need to do this if you get unknown user in the following |
| 2355 |
step. It never hurts to do it all the time. You may need to |
| 2356 |
install a new mergemaster (cd src/usr.sbin/mergemaster && make |
| 2357 |
install) after the buildworld before this step if you last updated |
| 2358 |
from current before 20130425 or from -stable before 20130430. |
| 2359 |
|
| 2360 |
[6] This only deletes old files and directories. Old libraries |
| 2361 |
can be deleted by "make delete-old-libs", but you have to make |
| 2362 |
sure that no program is using those libraries anymore. |
| 2363 |
|
| 2364 |
[8] The new kernel must be able to run existing binaries used by an |
| 2365 |
installworld. When upgrading across major versions, the new kernel's |
| 2366 |
configuration must include the correct COMPAT_FREEBSD<n> option for |
| 2367 |
existing binaries (e.g. COMPAT_FREEBSD11 to run 11.x binaries). Failure |
| 2368 |
to do so may leave you with a system that is hard to boot to recover. A |
| 2369 |
GENERIC kernel will include suitable compatibility options to run |
| 2370 |
binaries from older branches. Note that the ability to run binaries |
| 2371 |
from unsupported branches is not guaranteed. |
| 2372 |
|
| 2373 |
Make sure that you merge any new devices from GENERIC since the |
| 2374 |
last time you updated your kernel config file. Options also |
| 2375 |
change over time, so you may need to adjust your custom kernels |
| 2376 |
for these as well. |
| 2377 |
|
| 2378 |
[9] If CPUTYPE is defined in your /etc/make.conf, make sure to use the |
| 2379 |
"?=" instead of the "=" assignment operator, so that buildworld can |
| 2380 |
override the CPUTYPE if it needs to. |
| 2381 |
|
| 2382 |
MAKEOBJDIRPREFIX must be defined in an environment variable, and |
| 2383 |
not on the command line, or in /etc/make.conf. buildworld will |
| 2384 |
warn if it is improperly defined. |
| 2385 |
FORMAT: |
| 2386 |
|
| 2387 |
This file contains a list, in reverse chronological order, of major |
| 2388 |
breakages in tracking -current. It is not guaranteed to be a complete |
| 2389 |
list of such breakages, and only contains entries since September 23, 2011. |
| 2390 |
If you need to see UPDATING entries from before that date, you will need |
| 2391 |
to fetch an UPDATING file from an older FreeBSD release. |
| 2392 |
|
| 2393 |
Copyright information: |
| 2394 |
|
| 2395 |
Copyright 1998-2009 M. Warner Losh <imp@FreeBSD.org> |
| 2396 |
|
| 2397 |
Redistribution, publication, translation and use, with or without |
| 2398 |
modification, in full or in part, in any form or format of this |
| 2399 |
document are permitted without further permission from the author. |
| 2400 |
|
| 2401 |
THIS DOCUMENT IS PROVIDED BY WARNER LOSH ``AS IS'' AND ANY EXPRESS OR |
| 2402 |
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
| 2403 |
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
| 2404 |
DISCLAIMED. IN NO EVENT SHALL WARNER LOSH BE LIABLE FOR ANY DIRECT, |
| 2405 |
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
| 2406 |
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR |
| 2407 |
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
| 2408 |
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, |
| 2409 |
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING |
| 2410 |
IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
| 2411 |
POSSIBILITY OF SUCH DAMAGE. |
| 2412 |
|
| 2413 |
Contact Warner Losh if you have any questions about your use of |
| 2414 |
this document. |
| 2415 |
|
| 2416 |
$FreeBSD$ |