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