1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440 |
- Updating Information for FreeBSD current users.
- This file is maintained and copyrighted by M. Warner Losh <imp@freebsd.org>.
- See end of file for further details. For commonly done items, please see the
- COMMON ITEMS: section later in the file. These instructions assume that you
- basically know what you are doing. If not, then please consult the FreeBSD
- handbook:
- https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/makeworld.html
- Items affecting the ports and packages system can be found in
- /usr/ports/UPDATING. Please read that file before running portupgrade.
- NOTE TO PEOPLE WHO THINK THAT FreeBSD 14.x IS SLOW:
- FreeBSD 14.x has many debugging features turned on, in both the kernel
- and userland. These features attempt to detect incorrect use of
- system primitives, and encourage loud failure through extra sanity
- checking and fail stop semantics. They also substantially impact
- system performance. If you want to do performance measurement,
- benchmarking, and optimization, you'll want to turn them off. This
- includes various WITNESS- related kernel options, INVARIANTS, malloc
- debugging flags in userland, and various verbose features in the
- kernel. Many developers choose to disable these features on build
- machines to maximize performance. (To completely disable malloc
- debugging, define WITH_MALLOC_PRODUCTION in /etc/src.conf and rebuild
- world, or to merely disable the most expensive debugging functionality
- at runtime, run "ln -s 'abort:false,junk:false' /etc/malloc.conf".)
- 20210108:
- PC Card attachments for all devices have been removed. In the case of
- wi and cmx, the entire drivers were removed because they were only
- PC Card devices. FreeBSD_version 1300134 should be used for this
- since it was bumped so recently.
- 20210107:
- Transport-independent parts of HID support have been split off the USB
- code in to separate subsystem. Kernel configs which include one of
- ums, ukbd, uhid, atp, wsp, wmt, uaudio, ugold or ucycom drivers should
- be updated with adding of "device hid" line.
- 20210105:
- ncurses installation has been modified to only keep the widechar
- enabled version. Incremental build is broken for that change, so it
- requires a clean build.
- 20201223:
- The FreeBSD project has migrated from Subversion to Git. Temporary
- instructions can be found at
- https://github.com/bsdimp/freebsd-git-docs/blob/main/src-cvt.md
- and other documents in that repo.
- 20201216:
- The services database has been updated to cover more of the basic
- services expected in a modern system. The database is big enough
- that it will cause issues in mergemaster in Releases previous to
- 12.2 and 11.3, or in very old current systems from before r358154.
- 20201215:
- Obsolete in-tree GDB 6.1.1 has been removed. GDB (including kgdb)
- may be installed from ports or packages.
- 20201124:
- ping6 has been merged into ping. It can now be called as "ping -6".
- See ping(8) for details.
- 20201108:
- Default value of net.add_addr_allfibs has been changed to 0.
- If you have multi-fib configuration and rely on existence of all
- interface routes in every fib, you need to set the above sysctl to 1.
- 20201030:
- The internal pre-processor in the calendar(1) program has been
- extended to support more C pre-processor commands (e.g. #ifdef, #else,
- and #undef) and to detect unbalanced conditional statements.
- Error messages have been extended to include the filename and line
- number if processing stops to help fixing malformed data files.
- 20201026:
- All the data files for the calendar(1) program, except calendar.freebsd,
- have been moved to the deskutils/calendar-data port, much like the
- jewish calendar entries were moved to deskutils/hebcal years ago. After
- make delete-old-files, you need to install it to retain full
- functionality. calendar(1) will issue a reminder for files it can't
- find.
- 20200923:
- LINT files are no longer generated. We now include the relevant NOTES
- files. Note: This may cause conflicts with updating in some cases.
- find sys -name LINT\* -delete
- is suggested across this commit to remove the generated LINT files.
- If you have tried to update with generated files there, the svn
- command you want to un-auger the tree is
- cd sys/amd64/conf
- svn revert -R .
- and then do the above find from the top level. Substitute 'amd64'
- above with where the error message indicates a conflict.
- 20200824:
- OpenZFS support has been integrated. Do not upgrade root pools until
- the loader is updated to support zstd. Furthermore, we caution against
- 'zpool upgrade' for the next few weeks. The change should be transparent
- unless you want to use new features.
- Not all "NO_CLEAN" build scenarios work across these changes. Many
- scenarios have been tested and fixed, but rebuilding kernels without
- rebuilding world may fail.
- The ZFS cache file has moved from /boot to /etc to match the OpenZFS
- upstream default. A fallback to /boot has been added for mountroot.
- Pool auto import behavior at boot has been moved from the kernel module
- to an explicit "zpool import -a" in one of the rc scripts enabled by
- zfs_enable=YES. This means your non-root zpools won't auto import until
- you upgrade your /etc/rc.d files.
- 20200824:
- The resume code now notifies devd with the 'kernel' system
- rather than the old 'kern' subsystem to be consistent with
- other use. The old notification will be created as well, but
- will be removed prior to FreeBSD 14.0.
- 20200821:
- r362275 changed the internal API between the kernel RPC and the
- NFS modules. As such, all the modules must be recompiled from
- sources.
- 20200817:
- r364330 modified the internal API used between the NFS modules.
- As such, all the NFS modules must be re-compiled from sources.
- 20200816:
- Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have
- been upgraded to 11.0.0. Please see the 20141231 entry below for
- information about prerequisites and upgrading, if you are not already
- using clang 3.5.0 or higher.
- 20200810:
- r364092 modified the internal ABI used between the kernel NFS
- modules. As such, all of these modules need to be rebuilt
- from sources, so a version bump was done.
- 20200807:
- Makefile.inc has been updated to work around the issue documented in
- 20200729. It was a case where the optimization of using symbolic links
- to point to binaries created a situation where we'd run new binaries
- with old libraries starting midway through the installworld process.
- 20200729:
- r363679 has redefined some undefined behavior in regcomp(3); notably,
- extraneous escapes of most ordinary characters will no longer be
- accepted. An exp-run has identified all of the problems with this in
- ports, but other non-ports software may need extra escapes removed to
- continue to function.
- Because of this change, installworld may encounter the following error
- from rtld: Undefined symbol "regcomp@FBSD_1.6" -- It is imperative that
- you do not halt installworld. Instead, let it run to completion (whether
- successful or not) and run installworld once more.
- 20200627:
- A new implementation of bc and dc has been imported in r362681. This
- implementation corrects non-conformant behavior of the previous bc
- and adds GNU bc compatible options. It offers a number of extensions,
- is much faster on large values, and has support for message catalogs
- (a number of languages are already supported, contributions of further
- languages welcome). The option WITHOUT_GH_BC can be used to build the
- world with the previous versions of bc and dc.
- 20200625:
- r362639 changed the internal API used between the NFS kernel modules.
- As such, they all need to be rebuilt from sources.
- 20200613:
- r362158 changed the arguments for VFS_CHECKEXP(). As such, any
- out of tree file systems need to be modified and rebuilt.
- Also, any file systems that are modules must be rebuilt.
- 20200604:
- read(2) of a directory fd is now rejected by default. root may
- re-enable it for system root only on non-ZFS filesystems with the
- security.bsd.allow_read_dir sysctl(8) MIB if
- security.bsd.suser_enabled=1.
- It may be advised to setup aliases for grep to default to `-d skip` if
- commonly non-recursively grepping a list that includes directories and
- the potential for the resulting stderr output is not tolerable. Example
- aliases are now installed, commented out, in /root/.cshrc and
- /root/.shrc.
- 20200523:
- Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have
- been upgraded to 10.0.1. Please see the 20141231 entry below for
- information about prerequisites and upgrading, if you are not already
- using clang 3.5.0 or higher.
- 20200512:
- Support for obsolete compilers has been removed from the build system.
- Clang 6 and GCC 6.4 are the minimum supported versions.
- 20200424:
- closefrom(2) has been moved under COMPAT12, and replaced in libc with a
- stub that calls close_range(2). If using a custom kernel configuration,
- you may want to ensure that the COMPAT_FREEBSD12 option is included, as
- a slightly older -CURRENT userland and older FreeBSD userlands may not
- be functional without closefrom(2).
- 20200414:
- Upstream DTS from Linux 5.6 was merged and they now have the SID
- and THS (Secure ID controller and THermal Sensor) node present.
- The DTB overlays have now been removed from the tree for the H3/H5 and
- A64 SoCs and the aw_sid and aw_thermal driver have been updated to
- deal with upstream DTS. If you are using those overlays you need to
- remove them from loader.conf and update the DTBs on the FAT partition.
- 20200310:
- Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have
- been upgraded to 10.0.0. Please see the 20141231 entry below for
- information about prerequisites and upgrading, if you are not already
- using clang 3.5.0 or higher.
- 20200309:
- The amd(8) automount daemon has been removed from the source tree.
- As of FreeBSD 10.1 autofs(5) is the preferred tool for automounting.
- amd is still available in the sysutils/am-utils port.
- 20200301:
- Removed brooktree driver (bktr.4) from the tree.
- 20200229:
- The WITH_GPL_DTC option has been removed. The BSD-licenced device tree
- compiler in usr.bin/dtc is used on all architectures which use dtc, and
- the GPL dtc is available (if needed) from the sysutils/dtc port.
- 20200229:
- The WITHOUT_LLVM_LIBUNWIND option has been removed. LLVM's libunwind
- is used by all supported CPU architectures.
- 20200229:
- GCC 4.2.1 has been removed from the tree. The WITH_GCC,
- WITH_GCC_BOOTSTRAP, and WITH_GNUCXX options are no longer available.
- Users who wish to build FreeBSD with GCC must use the external toolchain
- ports or packages.
- 20200220:
- ncurses has been updated to a newer version (6.2-20200215). Given the ABI
- has changed, users will have to rebuild all the ports that are linked to
- ncurses.
- 20200217:
- The size of struct vnet and the magic cookie have changed.
- Users need to recompile libkvm and all modules using VIMAGE
- together with their new kernel.
- 20200212:
- Defining the long deprecated NO_CTF, NO_DEBUG_FILES, NO_INSTALLLIB,
- NO_MAN, NO_PROFILE, and NO_WARNS variables is now an error. Update
- your Makefiles and scripts to define MK_<var>=no instead as required.
- One exception to this is that program or library Makefiles should
- define MAN to empty rather than setting MK_MAN=no.
- 20200108:
- Clang/LLVM is now the default compiler and LLD the default
- linker for riscv64.
- 20200107:
- make universe no longer uses GCC 4.2.1 on any architectures.
- Architectures not supported by in-tree Clang/LLVM require an
- external toolchain package.
- 20200104:
- GCC 4.2.1 is now not built by default, as part of the GCC 4.2.1
- retirement plan. Specifically, the GCC, GCC_BOOTSTRAP, and GNUCXX
- options default to off for all supported CPU architectures. As a
- short-term transition aid they may be enabled via WITH_* options.
- GCC 4.2.1 is expected to be removed from the tree on 2020-03-31.
- 20200102:
- Support for armv5 has been disconnected and is being removed. The
- machine combination MACHINE=arm MACHINE_ARCH=arm is no longer valid.
- You must now use a MACHINE_ARCH of armv6 or armv7. The default
- MACHINE_ARCH for MACHINE=arm is now armv7.
- 20191226:
- Clang/LLVM is now the default compiler for all powerpc architectures.
- LLD is now the default linker for powerpc64. The change for powerpc64
- also includes a change to the ELFv2 ABI, incompatible with the existing
- ABI.
- 20191226:
- Kernel-loadable random(4) modules are no longer unloadable.
- 20191222:
- Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have
- been upgraded to 9.0.1. Please see the 20141231 entry below for
- information about prerequisites and upgrading, if you are not already
- using clang 3.5.0 or higher.
- 20191212:
- r355677 has modified the internal interface used between the
- NFS modules in the kernel. As such, they must all be upgraded
- simultaneously. I will do a version bump for this.
- 20191205:
- The root certificates of the Mozilla CA Certificate Store have been
- imported into the base system and can be managed with the certctl(8)
- utility. If you have installed the security/ca_root_nss port or package
- with the ETCSYMLINK option (the default), be advised that there may be
- differences between those included in the port and those included in
- base due to differences in nss branch used as well as general update
- frequency. Note also that certctl(8) cannot manage certs in the
- format used by the security/ca_root_nss port.
- 20191120:
- The amd(8) automount daemon has been disabled by default, and will be
- removed in the future. As of FreeBSD 10.1 the autofs(5) is available
- for automounting.
- 20191107:
- The nctgpio and wbwd drivers have been moved to the superio bus.
- If you have one of these drivers in a kernel configuration, then
- you should add device superio to it. If you use one of these drivers
- as a module and you compile a custom set of modules, then you should
- add superio to the set.
- 20191021:
- KPIs for network drivers to access interface addresses have changed.
- Users need to recompile NIC driver modules together with kernel.
- 20191021:
- The net.link.tap.user_open sysctl no longer prevents user opening of
- already created /dev/tapNN devices. Access is still controlled by
- node permissions, just like tun devices. The net.link.tap.user_open
- sysctl is now used only to allow users to perform devfs cloning of
- tap devices, and the subsequent open may not succeed if the user is not
- in the appropriate group. This sysctl may be deprecated/removed
- completely in the future.
- 20191009:
- mips, powerpc, and sparc64 are no longer built as part of
- universe / tinderbox unless MAKE_OBSOLETE_GCC is defined. If
- not defined, mips, powerpc, and sparc64 builds will look for
- the xtoolchain binaries and if installed use them for universe
- builds. As llvm 9.0 becomes vetted for these architectures, they
- will be removed from the list.
- 20191009:
- Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have
- been upgraded to 9.0.0. Please see the 20141231 entry below for
- information about prerequisites and upgrading, if you are not already
- using clang 3.5.0 or higher.
- 20191003:
- The hpt27xx, hptmv, hptnr, and hptrr drivers have been removed from
- GENERIC. They are available as modules and can be loaded by adding
- to /boot/loader.conf hpt27xx_load="YES", hptmv_load="YES",
- hptnr_load="YES", or hptrr_load="YES", respectively.
- 20190913:
- ntpd no longer by default locks its pages in memory, allowing them
- to be paged out by the kernel. Use rlimit memlock to restore
- historic BSD behaviour. For example, add "rlimit memlock 32"
- to ntp.conf to lock up to 32 MB of ntpd address space in memory.
- 20190823:
- Several of ping6's options have been renamed for better consistency
- with ping. If you use any of -ARWXaghmrtwx, you must update your
- scripts. See ping6(8) for details.
- 20190727:
- The vfs.fusefs.sync_unmount and vfs.fusefs.init_backgrounded sysctls
- and the "-o sync_unmount" and "-o init_backgrounded" mount options have
- been removed from mount_fusefs(8). You can safely remove them from
- your scripts, because they had no effect.
- The vfs.fusefs.fix_broken_io, vfs.fusefs.sync_resize,
- vfs.fusefs.refresh_size, vfs.fusefs.mmap_enable,
- vfs.fusefs.reclaim_revoked, and vfs.fusefs.data_cache_invalidate
- sysctls have been removed. If you felt the need to set any of them to
- a non-default value, please tell asomers@FreeBSD.org why.
- 20190713:
- Default permissions on the /var/account/acct file (and copies of it
- rotated by periodic daily scripts) are changed from 0644 to 0640
- because the file contains sensitive information that should not be
- world-readable. If the /var/account directory must be created by
- rc.d/accounting, the mode used is now 0750. Admins who use the
- accounting feature are encouraged to change the mode of an existing
- /var/account directory to 0750 or 0700.
- 20190620:
- Entropy collection and the /dev/random device are no longer optional
- components. The "device random" option has been removed.
- Implementations of distilling algorithms can still be made loadable
- with "options RANDOM_LOADABLE" (e.g., random_fortuna.ko).
- 20190612:
- Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have
- been upgraded to 8.0.1. Please see the 20141231 entry below for
- information about prerequisites and upgrading, if you are not already
- using clang 3.5.0 or higher.
- 20190608:
- A fix was applied to i386 kernel modules to avoid panics with
- dpcpu or vnet. Users need to recompile i386 kernel modules
- having pcpu or vnet sections or they will refuse to load.
- 20190513:
- User-wired pages now have their own counter,
- vm.stats.vm.v_user_wire_count. The vm.max_wired sysctl was renamed
- to vm.max_user_wired and changed from an unsigned int to an unsigned
- long. bhyve VMs wired with the -S are now subject to the user
- wiring limit; the vm.max_user_wired sysctl may need to be tuned to
- avoid running into the limit.
- 20190507:
- The IPSEC option has been removed from GENERIC. Users requiring
- ipsec(4) must now load the ipsec(4) kernel module.
- 20190507:
- The tap(4) driver has been folded into tun(4), and the module has been
- renamed to tuntap. You should update any kld_list="if_tap" or
- kld_list="if_tun" entries in /etc/rc.conf, if_tap_load="YES" or
- if_tun_load="YES" entries in /boot/loader.conf to load the if_tuntap
- module instead, and "device tap" or "device tun" entries in kernel
- config files to select the tuntap device instead.
- 20190418:
- The following knobs have been added related to tradeoffs between
- safe use of the random device and availability in the absence of
- entropy:
- kern.random.initial_seeding.bypass_before_seeding: tunable; set
- non-zero to bypass the random device prior to seeding, or zero to
- block random requests until the random device is initially seeded.
- For now, set to 1 (unsafe) by default to restore pre-r346250 boot
- availability properties.
- kern.random.initial_seeding.read_random_bypassed_before_seeding:
- read-only diagnostic sysctl that is set when bypass is enabled and
- read_random(9) is bypassed, to enable programmatic handling of this
- initial condition, if desired.
- kern.random.initial_seeding.arc4random_bypassed_before_seeding:
- Similar to the above, but for for arc4random(9) initial seeding.
- kern.random.initial_seeding.disable_bypass_warnings: tunable; set
- non-zero to disable warnings in dmesg when the same conditions are
- met as for the diagnostic sysctls above. Defaults to zero, i.e.,
- produce warnings in dmesg when the conditions are met.
- 20190416:
- The loadable random module KPI has changed; the random_infra_init()
- routine now requires a 3rd function pointer for a bool (*)(void)
- method that returns true if the random device is seeded (and
- therefore unblocked).
- 20190404:
- r345895 reverts r320698. This implies that an nfsuserd(8) daemon
- built from head sources between r320757 (July 6, 2017) and
- r338192 (Aug. 22, 2018) will not work unless the "-use-udpsock"
- is added to the command line.
- nfsuserd daemons built from head sources that are post-r338192 are
- not affected and should continue to work.
- 20190320:
- The fuse(4) module has been renamed to fusefs(4) for consistency with
- other filesystems. You should update any kld_load="fuse" entries in
- /etc/rc.conf, fuse_load="YES" entries in /boot/loader.conf, and
- "options FUSE" entries in kernel config files.
- 20190304:
- Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to
- 8.0.0. Please see the 20141231 entry below for information about
- prerequisites and upgrading, if you are not already using clang 3.5.0
- or higher.
- 20190226:
- geom_uzip(4) depends on the new module xz. If geom_uzip is statically
- compiled into your custom kernel, add 'device xz' statement to the
- kernel config.
- 20190219:
- drm and drm2 have been removed from the tree. Please see
- https://wiki.freebsd.org/Graphics for the latest information on
- migrating to the drm ports.
- 20190131:
- Iflib is no longer unconditionally compiled into the kernel. Drivers
- using iflib and statically compiled into the kernel, now require
- the 'device iflib' config option. For the same drivers loaded as
- modules on kernels not having 'device iflib', the iflib.ko module
- is loaded automatically.
- 20190125:
- The IEEE80211_AMPDU_AGE and AH_SUPPORT_AR5416 kernel configuration
- options no longer exist since r343219 and r343427 respectively;
- nothing uses them, so they should be just removed from custom
- kernel config files.
- 20181230:
- r342635 changes the way efibootmgr(8) works by requiring users to add
- the -b (bootnum) parameter for commands where the bootnum was previously
- specified with each option. For example 'efibootmgr -B 0001' is now
- 'efibootmgr -B -b 0001'.
- 20181220:
- r342286 modifies the NFSv4 server so that it obeys vfs.nfsd.nfs_privport
- in the same as it is applied to NFSv2 and 3. This implies that NFSv4
- servers that have vfs.nfsd.nfs_privport set will only allow mounts
- from clients using a reserved port#. Since both the FreeBSD and Linux
- NFSv4 clients use reserved port#s by default, this should not affect
- most NFSv4 mounts.
- 20181219:
- The XLP config has been removed. We can't support 64-bit atomics in this
- kernel because it is running in 32-bit mode. XLP users must transition
- to running a 64-bit kernel (XLP64 or XLPN32).
- The mips GXEMUL support has been removed from FreeBSD. MALTA* + qemu is
- the preferred emulator today and we don't need two different ones.
- The old sibyte / swarm / Broadcom BCM1250 support has been
- removed from the mips port.
- 20181211:
- Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to
- 7.0.1. Please see the 20141231 entry below for information about
- prerequisites and upgrading, if you are not already using clang 3.5.0
- or higher.
- 20181211:
- Remove the timed and netdate programs from the base tree. Setting
- the time with these daemons has been obsolete for over a decade.
- 20181126:
- On amd64, arm64 and armv7 (architectures that install LLVM's ld.lld
- linker as /usr/bin/ld) GNU ld is no longer installed as ld.bfd, as
- it produces broken binaries when ifuncs are in use. Users needing
- GNU ld should install the binutils port or package.
- 20181123:
- The BSD crtbegin and crtend code has been enabled by default. It has
- had extensive testing on amd64, arm64, and i386. It can be disabled
- by building a world with -DWITHOUT_BSD_CRTBEGIN.
- 20181115:
- The set of CTM commands (ctm, ctm_smail, ctm_rmail, ctm_dequeue)
- has been converted to a port (misc/ctm) and will be removed from
- FreeBSD-13. It is available as a package (ctm) for all supported
- FreeBSD versions.
- 20181110:
- The default newsyslog.conf(5) file has been changed to only include
- files in /etc/newsyslog.conf.d/ and /usr/local/etc/newsyslog.conf.d/ if
- the filenames end in '.conf' and do not begin with a '.'.
- You should check the configuration files in these two directories match
- this naming convention. You can verify which configuration files are
- being included using the command:
- $ newsyslog -Nrv
- 20181015:
- Ports for the DRM modules have been simplified. Now, amd64 users should
- just install the drm-kmod port. All others should install
- drm-legacy-kmod.
- Graphics hardware that's newer than about 2010 usually works with
- drm-kmod. For hardware older than 2013, however, some users will need
- to use drm-legacy-kmod if drm-kmod doesn't work for them. Hardware older
- than 2008 usually only works in drm-legacy-kmod. The graphics team can
- only commit to hardware made since 2013 due to the complexity of the
- market and difficulty to test all the older cards effectively. If you
- have hardware supported by drm-kmod, you are strongly encouraged to use
- that as you will get better support.
- Other than KPI chasing, drm-legacy-kmod will not be updated. As outlined
- elsewhere, the drm and drm2 modules will be eliminated from the src base
- soon (with a limited exception for arm). Please update to the package
- asap and report any issues to x11@freebsd.org.
- Generally, anybody using the drm*-kmod packages should add
- WITHOUT_DRM_MODULE=t and WITHOUT_DRM2_MODULE=t to avoid nasty
- cross-threading surprises, especially with automatic driver
- loading from X11 startup. These will become the defaults in 13-current
- shortly.
- 20181012:
- The ixlv(4) driver has been renamed to iavf(4). As a consequence,
- custom kernel and module loading configuration files must be updated
- accordingly. Moreover, interfaces previous presented as ixlvN to the
- system are now exposed as iavfN and network configuration files must
- be adjusted as necessary.
- 20181009:
- OpenSSL has been updated to version 1.1.1. This update included
- additional various API changes throughout the base system. It is
- important to rebuild third-party software after upgrading. The value
- of __FreeBSD_version has been bumped accordingly.
- 20181006:
- The legacy DRM modules and drivers have now been added to the loader's
- module blacklist, in favor of loading them with kld_list in rc.conf(5).
- The module blacklist may be overridden with the loader.conf(5)
- 'module_blacklist' variable, but loading them via rc.conf(5) is strongly
- encouraged.
- 20181002:
- The cam(4) based nda(4) driver will be used over nvd(4) by default on
- powerpc64. You may set 'options NVME_USE_NVD=1' in your kernel conf or
- loader tunable 'hw.nvme.use_nvd=1' if you wish to use the existing
- driver. Make sure to edit /boot/etc/kboot.conf and fstab to use the
- nda device name.
- 20180913:
- Reproducible build mode is now on by default, in preparation for
- FreeBSD 12.0. This eliminates build metadata such as the user,
- host, and time from the kernel (and uname), unless the working tree
- corresponds to a modified checkout from a version control system.
- The previous behavior can be obtained by setting the /etc/src.conf
- knob WITHOUT_REPRODUCIBLE_BUILD.
- 20180826:
- The Yarrow CSPRNG has been removed from the kernel as it has not been
- supported by its designers since at least 2003. Fortuna has been the
- default since FreeBSD-11.
- 20180822:
- devctl freeze/thaw have gone into the tree, the rc scripts have been
- updated to use them and devmatch has been changed. You should update
- kernel, userland and rc scripts all at the same time.
- 20180818:
- The default interpreter has been switched from 4th to Lua.
- LOADER_DEFAULT_INTERP, documented in build(7), will override the default
- interpreter. If you have custom FORTH code you will need to set
- LOADER_DEFAULT_INTERP=4th (valid values are 4th, lua or simp) in
- src.conf for the build. This will create default hard links between
- loader and loader_4th instead of loader and loader_lua, the new default.
- If you are using UEFI it will create the proper hard link to loader.efi.
- bhyve uses userboot.so. It remains 4th-only until some issues are solved
- regarding coexisting with multiple versions of FreeBSD are resolved.
- 20180815:
- ls(1) now respects the COLORTERM environment variable used in other
- systems and software to indicate that a colored terminal is both
- supported and desired. If ls(1) is suddenly emitting colors, they may
- be disabled again by either removing the unwanted COLORTERM from your
- environment, or using `ls --color=never`. The ls(1) specific CLICOLOR
- may not be observed in a future release.
- 20180808:
- The default pager for most commands has been changed to "less". To
- restore the old behavior, set PAGER="more" and MANPAGER="more -s" in
- your environment.
- 20180731:
- The jedec_ts(4) driver has been removed. A superset of its functionality
- is available in the jedec_dimm(4) driver, and the manpage for that
- driver includes migration instructions. If you have "device jedec_ts"
- in your kernel configuration file, it must be removed.
- 20180730:
- amd64/GENERIC now has EFI runtime services, EFIRT, enabled by default.
- This should have no effect if the kernel is booted via BIOS/legacy boot.
- EFIRT may be disabled via a loader tunable, efi.rt.disabled, if a system
- has a buggy firmware that prevents a successful boot due to use of
- runtime services.
- 20180727:
- Atmel AT91RM9200 and AT91SAM9, Cavium CNS 11xx and XScale
- support has been removed from the tree. These ports were
- obsolete and/or known to be broken for many years.
- 20180723:
- loader.efi has been augmented to participate more fully in the
- UEFI boot manager protocol. loader.efi will now look at the
- BootXXXX environment variable to determine if a specific kernel
- or root partition was specified. XXXX is derived from BootCurrent.
- efibootmgr(8) manages these standard UEFI variables.
- 20180720:
- zfsloader's functionality has now been folded into loader.
- zfsloader is no longer necessary once you've updated your
- boot blocks. For a transition period, we will install a
- hardlink for zfsloader to loader to allow a smooth transition
- until the boot blocks can be updated (hard link because old
- zfs boot blocks don't understand symlinks).
- 20180719:
- ARM64 now have efifb support, if you want to have serial console
- on your arm64 board when an screen is connected and the bootloader
- setup a frame buffer for us to use, just add :
- boot_serial=YES
- boot_multicons=YES
- in /boot/loader.conf
- For Raspberry Pi 3 (RPI) users, this is needed even if you don't have
- an screen connected as the firmware will setup a frame buffer are that
- u-boot will expose as an EFI frame buffer.
- 20180719:
- New uid:gid added, ntpd:ntpd (123:123). Be sure to run mergemaster
- or take steps to update /etc/passwd before doing installworld on
- existing systems. Do not skip the "mergemaster -Fp" step before
- installworld, as described in the update procedures near the bottom
- of this document. Also, rc.d/ntpd now starts ntpd(8) as user ntpd
- if the new mac_ntpd(4) policy is available, unless ntpd_flags or
- the ntp config file contain options that change file/dir locations.
- When such options (e.g., "statsdir" or "crypto") are used, ntpd can
- still be run as non-root by setting ntpd_user=ntpd in rc.conf, after
- taking steps to ensure that all required files/dirs are accessible
- by the ntpd user.
- 20180717:
- Big endian arm support has been removed.
- 20180711:
- The static environment setup in kernel configs is no longer mutually
- exclusive with the loader(8) environment by default. In order to
- restore the previous default behavior of disabling the loader(8)
- environment if a static environment is present, you must specify
- loader_env.disabled=1 in the static environment.
- 20180705:
- The ABI of syscalls used by management tools like sockstat and
- netstat has been broken to allow 32-bit binaries to work on
- 64-bit kernels without modification. These programs will need
- to match the kernel in order to function. External programs may
- require minor modifications to accommodate a change of type in
- structures from pointers to 64-bit virtual addresses.
- 20180702:
- On i386 and amd64 atomics are now inlined. Out of tree modules using
- atomics will need to be rebuilt.
- 20180701:
- The '%I' format in the kern.corefile sysctl limits the number of
- core files that a process can generate to the number stored in the
- debug.ncores sysctl. The '%I' format is replaced by the single digit
- index. Previously, if all indexes were taken the kernel would overwrite
- only a core file with the highest index in a filename.
- Currently the system will create a new core file if there is a free
- index or if all slots are taken it will overwrite the oldest one.
- 20180630:
- Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to
- 6.0.1. Please see the 20141231 entry below for information about
- prerequisites and upgrading, if you are not already using clang 3.5.0
- or higher.
- 20180628:
- r335753 introduced a new quoting method. However, etc/devd/devmatch.conf
- needed to be changed to work with it. This change was made with r335763
- and requires a mergemaster / etcupdate / etc to update the installed
- file.
- 20180612:
- r334930 changed the interface between the NFS modules, so they all
- need to be rebuilt. r335018 did a __FreeBSD_version bump for this.
- 20180530:
- As of r334391 lld is the default amd64 system linker; it is installed
- as /usr/bin/ld. Kernel build workarounds (see 20180510 entry) are no
- longer necessary.
- 20180530:
- The kernel / userland interface for devinfo changed, so you'll
- need a new kernel and userland as a pair for it to work (rebuilding
- lib/libdevinfo is all that's required). devinfo and devmatch will
- not work, but everything else will when there's a mismatch.
- 20180523:
- The on-disk format for hwpmc callchain records has changed to include
- threadid corresponding to a given record. This changes the field offsets
- and thus requires that libpmcstat be rebuilt before using a kernel
- later than r334108.
- 20180517:
- The vxge(4) driver has been removed. This driver was introduced into
- HEAD one week before the Exar left the Ethernet market and is not
- known to be used. If you have device vxge in your kernel config file
- it must be removed.
- 20180510:
- The amd64 kernel now requires a ld that supports ifunc to produce a
- working kernel, either lld or a newer binutils. lld is built by default
- on amd64, and the 'buildkernel' target uses it automatically. However,
- it is not the default linker, so building the kernel the traditional
- way requires LD=ld.lld on the command line (or LD=/usr/local/bin/ld for
- binutils port/package). lld will soon be default, and this requirement
- will go away.
- NOTE: As of r334391 lld is the default system linker on amd64, and no
- workaround is necessary.
- 20180508:
- The nxge(4) driver has been removed. This driver was for PCI-X 10g
- cards made by s2io/Neterion. The company was acquired by Exar and
- no longer sells or supports Ethernet products. If you have device
- nxge in your kernel config file it must be removed.
- 20180504:
- The tz database (tzdb) has been updated to 2018e. This version more
- correctly models time stamps in time zones with negative DST such as
- Europe/Dublin (from 1971 on), Europe/Prague (1946/7), and
- Africa/Windhoek (1994/2017). This does not affect the UT offsets, only
- time zone abbreviations and the tm_isdst flag.
- 20180502:
- The ixgb(4) driver has been removed. This driver was for an early and
- uncommon legacy PCI 10GbE for a single ASIC, Intel 82597EX. Intel
- quickly shifted to the long lived ixgbe family. If you have device
- ixgb in your kernel config file it must be removed.
- 20180501:
- The lmc(4) driver has been removed. This was a WAN interface
- card that was already reportedly rare in 2003, and had an ambiguous
- license. If you have device lmc in your kernel config file it must
- be removed.
- 20180413:
- Support for Arcnet networks has been removed. If you have device
- arcnet or device cm in your kernel config file they must be
- removed.
- 20180411:
- Support for FDDI networks has been removed. If you have device
- fddi or device fpa in your kernel config file they must be
- removed.
- 20180406:
- In addition to supporting RFC 3164 formatted messages, the
- syslogd(8) service is now capable of parsing RFC 5424 formatted
- log messages. The main benefit of using RFC 5424 is that clients
- may now send log messages with timestamps containing year numbers,
- microseconds and time zone offsets.
- Similarly, the syslog(3) C library function has been altered to
- send RFC 5424 formatted messages to the local system logging
- daemon. On systems using syslogd(8), this change should have no
- negative impact, as long as syslogd(8) and the C library are
- updated at the same time. On systems using a different system
- logging daemon, it may be necessary to make configuration
- adjustments, depending on the software used.
- When using syslog-ng, add the 'syslog-protocol' flag to local
- input sources to enable parsing of RFC 5424 formatted messages:
- source src {
- unix-dgram("/var/run/log" flags(syslog-protocol));
- }
- When using rsyslog, disable the 'SysSock.UseSpecialParser' option
- of the 'imuxsock' module to let messages be processed by the
- regular RFC 3164/5424 parsing pipeline:
- module(load="imuxsock" SysSock.UseSpecialParser="off")
- Do note that these changes only affect communication between local
- applications and syslogd(8). The format that syslogd(8) uses to
- store messages on disk or forward messages to other systems
- remains unchanged. syslogd(8) still uses RFC 3164 for these
- purposes. Options to customize this behaviour will be added in the
- future. Utilities that process log files stored in /var/log are
- thus expected to continue to function as before.
- __FreeBSD_version has been incremented to 1200061 to denote this
- change.
- 20180328:
- Support for token ring networks has been removed. If you
- have "device token" in your kernel config you should remove
- it. No device drivers supported token ring.
- 20180323:
- makefs was modified to be able to tag ISO9660 El Torito boot catalog
- entries as EFI instead of overloading the i386 tag as done previously.
- The amd64 mkisoimages.sh script used to build amd64 ISO images for
- release was updated to use this. This may mean that makefs must be
- updated before "make cdrom" can be run in the release directory. This
- should be as simple as:
- $ cd $SRCDIR/usr.sbin/makefs
- $ make depend all install
- 20180212:
- FreeBSD boot loader enhanced with Lua scripting. It's purely opt-in for
- now by building WITH_LOADER_LUA and WITHOUT_FORTH in /etc/src.conf.
- Co-existence for the transition period will come shortly. Booting is a
- complex environment and test coverage for Lua-enabled loaders has been
- thin, so it would be prudent to assume it might not work and make
- provisions for backup boot methods.
- 20180211:
- devmatch functionality has been turned on in devd. It will automatically
- load drivers for unattached devices. This may cause unexpected drivers
- to be loaded. Please report any problems to current@ and
- imp@freebsd.org.
- 20180114:
- Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to
- 6.0.0. Please see the 20141231 entry below for information about
- prerequisites and upgrading, if you are not already using clang 3.5.0
- or higher.
- 20180110:
- LLVM's lld linker is now used as the FreeBSD/amd64 bootstrap linker.
- This means it is used to link the kernel and userland libraries and
- executables, but is not yet installed as /usr/bin/ld by default.
- To revert to ld.bfd as the bootstrap linker, in /etc/src.conf set
- WITHOUT_LLD_BOOTSTRAP=yes
- 20180110:
- On i386, pmtimer has been removed. Its functionality has been folded
- into apm. It was a no-op on ACPI in current for a while now (but was
- still needed on i386 in FreeBSD 11 and earlier). Users may need to
- remove it from kernel config files.
- 20180104:
- The use of RSS hash from the network card aka flowid has been
- disabled by default for lagg(4) as it's currently incompatible with
- the lacp and loadbalance protocols.
- This can be re-enabled by setting the following in loader.conf:
- net.link.lagg.default_use_flowid="1"
- 20180102:
- The SW_WATCHDOG option is no longer necessary to enable the
- hardclock-based software watchdog if no hardware watchdog is
- configured. As before, SW_WATCHDOG will cause the software
- watchdog to be enabled even if a hardware watchdog is configured.
- 20171215:
- r326887 fixes the issue described in the 20171214 UPDATING entry.
- r326888 flips the switch back to building GELI support always.
- 20171214:
- r362593 broke ZFS + GELI support for reasons unknown. However,
- it also broke ZFS support generally, so GELI has been turned off
- by default as the lesser evil in r326857. If you boot off ZFS and/or
- GELI, it might not be a good time to update.
- 20171125:
- PowerPC users must update loader(8) by rebuilding world before
- installing a new kernel, as the protocol connecting them has
- changed. Without the update, loader metadata will not be passed
- successfully to the kernel and users will have to enter their
- root partition at the kernel mountroot prompt to continue booting.
- Newer versions of loader can boot old kernels without issue.
- 20171110:
- The LOADER_FIREWIRE_SUPPORT build variable as been renamed to
- WITH/OUT_LOADER_FIREWIRE. LOADER_{NO_,}GELI_SUPPORT has been renamed
- to WITH/OUT_LOADER_GELI.
- 20171106:
- The naive and non-compliant support of posix_fallocate(2) in ZFS
- has been removed as of r325320. The system call now returns EINVAL
- when used on a ZFS file. Although the new behavior complies with the
- standard, some consumers are not prepared to cope with it.
- One known victim is lld prior to r325420.
- 20171102:
- Building in a FreeBSD src checkout will automatically create object
- directories now rather than store files in the current directory if
- 'make obj' was not ran. Calling 'make obj' is no longer necessary.
- This feature can be disabled by setting WITHOUT_AUTO_OBJ=yes in
- /etc/src-env.conf (not /etc/src.conf), or passing the option in the
- environment.
- 20171101:
- The default MAKEOBJDIR has changed from /usr/obj/<srcdir> for native
- builds, and /usr/obj/<arch>/<srcdir> for cross-builds, to a unified
- /usr/obj/<srcdir>/<arch>. This behavior can be changed to the old
- format by setting WITHOUT_UNIFIED_OBJDIR=yes in /etc/src-env.conf,
- the environment, or with -DWITHOUT_UNIFIED_OBJDIR when building.
- The UNIFIED_OBJDIR option is a transitional feature that will be
- removed for 12.0 release; please migrate to the new format for any
- tools by looking up the OBJDIR used by 'make -V .OBJDIR' means rather
- than hardcoding paths.
- 20171028:
- The native-xtools target no longer installs the files by default to the
- OBJDIR. Use the native-xtools-install target with a DESTDIR to install
- to ${DESTDIR}/${NXTP} where NXTP defaults to /nxb-bin.
- 20171021:
- As part of the boot loader infrastructure cleanup, LOADER_*_SUPPORT
- options are changing from controlling the build if defined / undefined
- to controlling the build with explicit 'yes' or 'no' values. They will
- shift to WITH/WITHOUT options to match other options in the system.
- 20171010:
- libstand has turned into a private library for sys/boot use only.
- It is no longer supported as a public interface outside of sys/boot.
- 20171005:
- The arm port has split armv6 into armv6 and armv7. armv7 is now
- a valid TARGET_ARCH/MACHINE_ARCH setting. If you have an armv7 system
- and are running a kernel from before r324363, you will need to add
- MACHINE_ARCH=armv7 to 'make buildworld' to do a native build.
- 20171003:
- When building multiple kernels using KERNCONF, non-existent KERNCONF
- files will produce an error and buildkernel will fail. Previously
- missing KERNCONF files silently failed giving no indication as to
- why, only to subsequently discover during installkernel that the
- desired kernel was never built in the first place.
- 20170912:
- The default serial number format for CTL LUNs has changed. This will
- affect users who use /dev/diskid/* device nodes, or whose FibreChannel
- or iSCSI clients care about their LUNs' serial numbers. Users who
- require serial number stability should hardcode serial numbers in
- /etc/ctl.conf .
- 20170912:
- For 32-bit arm compiled for hard-float support, soft-floating point
- binaries now always get their shared libraries from
- LD_SOFT_LIBRARY_PATH (in the past, this was only used if
- /usr/libsoft also existed). Only users with a hard-float ld.so, but
- soft-float everything else should be affected.
- 20170826:
- The geli password typed at boot is now hidden. To restore the previous
- behavior, see geli(8) for configuration options.
- 20170825:
- Move PMTUD blackhole counters to TCPSTATS and remove them from bare
- sysctl values. Minor nit, but requires a rebuild of both world/kernel
- to complete.
- 20170814:
- "make check" behavior (made in ^/head@r295380) has been changed to
- execute from a limited sandbox, as opposed to executing from
- ${TESTSDIR}.
- Behavioral changes:
- - The "beforecheck" and "aftercheck" targets are now specified.
- - ${CHECKDIR} (added in commit noted above) has been removed.
- - Legacy behavior can be enabled by setting
- WITHOUT_MAKE_CHECK_USE_SANDBOX in src.conf(5) or the environment.
- If the limited sandbox mode is enabled, "make check" will execute
- "make distribution", then install, execute the tests, and clean up the
- sandbox if successful.
- The "make distribution" and "make install" targets are typically run as
- root to set appropriate permissions and ownership at installation time.
- The end-user should set "WITH_INSTALL_AS_USER" in src.conf(5) or the
- environment if executing "make check" with limited sandbox mode using
- an unprivileged user.
- 20170808:
- Since the switch to GPT disk labels, fsck for UFS/FFS has been
- unable to automatically find alternate superblocks. As of r322297,
- the information needed to find alternate superblocks has been
- moved to the end of the area reserved for the boot block.
- Filesystems created with a newfs of this vintage or later
- will create the recovery information. If you have a filesystem
- created prior to this change and wish to have a recovery block
- created for your filesystem, you can do so by running fsck in
- foreground mode (i.e., do not use the -p or -y options). As it
- starts, fsck will ask ``SAVE DATA TO FIND ALTERNATE SUPERBLOCKS''
- to which you should answer yes.
- 20170728:
- As of r321665, an NFSv4 server configuration that services
- Kerberos mounts or clients that do not support the uid/gid in
- owner/owner_group string capability, must explicitly enable
- the nfsuserd daemon by adding nfsuserd_enable="YES" to the
- machine's /etc/rc.conf file.
- 20170722:
- Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 5.0.0.
- Please see the 20141231 entry below for information about prerequisites
- and upgrading, if you are not already using clang 3.5.0 or higher.
- 20170701:
- WITHOUT_RCMDS is now the default. Set WITH_RCMDS if you need the
- r-commands (rlogin, rsh, etc.) to be built with the base system.
- 20170625:
- The FreeBSD/powerpc platform now uses a 64-bit type for time_t. This is
- a very major ABI incompatible change, so users of FreeBSD/powerpc must
- be careful when performing source upgrades. It is best to run
- 'make installworld' from an alternate root system, either a live
- CD/memory stick, or a temporary root partition. Additionally, all ports
- must be recompiled. powerpc64 is largely unaffected, except in the case
- of 32-bit compatibility. All 32-bit binaries will be affected.
- 20170623:
- Forward compatibility for the "ino64" project have been committed. This
- will allow most new binaries to run on older kernels in a limited
- fashion. This prevents many of the common foot-shooting actions in the
- upgrade as well as the limited ability to roll back the kernel across
- the ino64 upgrade. Complicated use cases may not work properly, though
- enough simpler ones work to allow recovery in most situations.
- 20170620:
- Switch back to the BSDL dtc (Device Tree Compiler). Set WITH_GPL_DTC
- if you require the GPL compiler.
- 20170618:
- The internal ABI used for communication between the NFS kernel modules
- was changed by r320085, so __FreeBSD_version was bumped to
- ensure all the NFS related modules are updated together.
- 20170617:
- The ABI of struct event was changed by extending the data
- member to 64bit and adding ext fields. For upgrade, same
- precautions as for the entry 20170523 "ino64" must be
- followed.
- 20170531:
- The GNU roff toolchain has been removed from base. To render manpages
- which are not supported by mandoc(1), man(1) can fallback on GNU roff
- from ports (and recommends to install it).
- To render roff(7) documents, consider using GNU roff from ports or the
- heirloom doctools roff toolchain from ports via pkg install groff or
- via pkg install heirloom-doctools.
- 20170524:
- The ath(4) and ath_hal(4) modules now build piecemeal to allow for
- smaller runtime footprint builds. This is useful for embedded systems
- which only require one chipset support.
- If you load it as a module, make sure this is in /boot/loader.conf:
- if_ath_load="YES"
- This will load the HAL, all chip/RF backends and if_ath_pci.
- If you have if_ath_pci in /boot/loader.conf, ensure it is after
- if_ath or it will not load any HAL chipset support.
- If you want to selectively load things (eg on ye cheape ARM/MIPS
- platforms where RAM is at a premium) you should:
- * load ath_hal
- * load the chip modules in question
- * load ath_rate, ath_dfs
- * load ath_main
- * load if_ath_pci and/or if_ath_ahb depending upon your particular
- bus bind type - this is where probe/attach is done.
- For further comments/feedback, poke adrian@ .
- 20170523:
- The "ino64" 64-bit inode project has been committed, which extends
- a number of types to 64 bits. Upgrading in place requires care and
- adherence to the documented upgrade procedure.
- If using a custom kernel configuration ensure that the
- COMPAT_FREEBSD11 option is included (as during the upgrade the
- system will be running the ino64 kernel with the existing world).
- For the safest in-place upgrade begin by removing previous build
- artifacts via "rm -rf /usr/obj/*". Then, carefully follow the full
- procedure documented below under the heading "To rebuild everything and
- install it on the current system." Specifically, a reboot is required
- after installing the new kernel before installing world. While an
- installworld normally works by accident from multiuser after rebooting
- the proper kernel, there are many cases where this will fail across this
- upgrade and installworld from single user is required.
- 20170424:
- The NATM framework including the en(4), fatm(4), hatm(4), and
- patm(4) devices has been removed. Consumers should plan a
- migration before the end-of-life date for FreeBSD 11.
- 20170420:
- GNU diff has been replaced by a BSD licensed diff. Some features of GNU
- diff has not been implemented, if those are needed a newer version of
- GNU diff is available via the diffutils package under the gdiff name.
- 20170413:
- As of r316810 for ipfilter, keep frags is no longer assumed when
- keep state is specified in a rule. r316810 aligns ipfilter with
- documentation in man pages separating keep frags from keep state.
- This allows keep state to be specified without forcing keep frags
- and allows keep frags to be specified independently of keep state.
- To maintain previous behaviour, also specify keep frags with
- keep state (as documented in ipf.conf.5).
- 20170407:
- arm64 builds now use the base system LLD 4.0.0 linker by default,
- instead of requiring that the aarch64-binutils port or package be
- installed. To continue using aarch64-binutils, set
- CROSS_BINUTILS_PREFIX=/usr/local/aarch64-freebsd/bin .
- 20170405:
- The UDP optimization in entry 20160818 that added the sysctl
- net.inet.udp.require_l2_bcast has been reverted. L2 broadcast
- packets will no longer be treated as L3 broadcast packets.
- 20170331:
- Binds and sends to the loopback addresses, IPv6 and IPv4, will now
- use any explicitly assigned loopback address available in the jail
- instead of using the first assigned address of the jail.
- 20170329:
- The ctl.ko module no longer implements the iSCSI target frontend:
- cfiscsi.ko does instead.
- If building cfiscsi.ko as a kernel module, the module can be loaded
- via one of the following methods:
- - `cfiscsi_load="YES"` in loader.conf(5).
- - Add `cfiscsi` to `$kld_list` in rc.conf(5).
- - ctladm(8)/ctld(8), when compiled with iSCSI support
- (`WITH_ISCSI=yes` in src.conf(5))
- Please see cfiscsi(4) for more details.
- 20170316:
- The mmcsd.ko module now additionally depends on geom_flashmap.ko.
- Also, mmc.ko and mmcsd.ko need to be a matching pair built from the
- same source (previously, the dependency of mmcsd.ko on mmc.ko was
- missing, but mmcsd.ko now will refuse to load if it is incompatible
- with mmc.ko).
- 20170315:
- The syntax of ipfw(8) named states was changed to avoid ambiguity.
- If you have used named states in the firewall rules, you need to modify
- them after installworld and before rebooting. Now named states must
- be prefixed with colon.
- 20170311:
- The old drm (sys/dev/drm/) drivers for i915 and radeon have been
- removed as the userland we provide cannot use them. The KMS version
- (sys/dev/drm2) supports the same hardware.
- 20170302:
- Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 4.0.0.
- Please see the 20141231 entry below for information about prerequisites
- and upgrading, if you are not already using clang 3.5.0 or higher.
- 20170221:
- The code that provides support for ZFS .zfs/ directory functionality
- has been reimplemented. It's not possible now to create a snapshot
- by mkdir under .zfs/snapshot/. That should be the only user visible
- change.
- 20170216:
- EISA bus support has been removed. The WITH_EISA option is no longer
- valid.
- 20170215:
- MCA bus support has been removed.
- 20170127:
- The WITH_LLD_AS_LD / WITHOUT_LLD_AS_LD build knobs have been renamed
- WITH_LLD_IS_LD / WITHOUT_LLD_IS_LD, for consistency with CLANG_IS_CC.
- 20170112:
- The EM_MULTIQUEUE kernel configuration option is deprecated now that
- the em(4) driver conforms to iflib specifications.
- 20170109:
- The igb(4), em(4) and lem(4) ethernet drivers are now implemented via
- IFLIB. If you have a custom kernel configuration that excludes em(4)
- but you use igb(4), you need to re-add em(4) to your custom
- configuration.
- 20161217:
- Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 3.9.1.
- Please see the 20141231 entry below for information about prerequisites
- and upgrading, if you are not already using clang 3.5.0 or higher.
- 20161124:
- Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 3.9.0.
- Please see the 20141231 entry below for information about prerequisites
- and upgrading, if you are not already using clang 3.5.0 or higher.
- 20161119:
- The layout of the pmap structure has changed for powerpc to put the pmap
- statistics at the front for all CPU variations. libkvm(3) and all tools
- that link against it need to be recompiled.
- 20161030:
- isl(4) and cyapa(4) drivers now require a new driver,
- chromebook_platform(4), to work properly on Chromebook-class hardware.
- On other types of hardware the drivers may need to be configured using
- device hints. Please see the corresponding manual pages for details.
- 20161017:
- The urtwn(4) driver was merged into rtwn(4) and now consists of
- rtwn(4) main module + rtwn_usb(4) and rtwn_pci(4) bus-specific
- parts.
- Also, firmware for RTL8188CE was renamed due to possible name
- conflict (rtwnrtl8192cU(B) -> rtwnrtl8192cE(B))
- 20161015:
- GNU rcs has been removed from base. It is available as packages:
- - rcs: Latest GPLv3 GNU rcs version.
- - rcs57: Copy of the latest version of GNU rcs (GPLv2) before it was
- removed from base.
- 20161008:
- Use of the cc_cdg, cc_chd, cc_hd, or cc_vegas congestion control
- modules now requires that the kernel configuration contain the
- TCP_HHOOK option. (This option is included in the GENERIC kernel.)
- 20161003:
- The WITHOUT_ELFCOPY_AS_OBJCOPY src.conf(5) knob has been retired.
- ELF Tool Chain's elfcopy is always installed as /usr/bin/objcopy.
- 20160924:
- Relocatable object files with the extension of .So have been renamed
- to use an extension of .pico instead. The purpose of this change is
- to avoid a name clash with shared libraries on case-insensitive file
- systems. On those file systems, foo.So is the same file as foo.so.
- 20160918:
- GNU rcs has been turned off by default. It can (temporarily) be built
- again by adding WITH_RCS knob in src.conf.
- Otherwise, GNU rcs is available from packages:
- - rcs: Latest GPLv3 GNU rcs version.
- - rcs57: Copy of the latest version of GNU rcs (GPLv2) from base.
- 20160918:
- The backup_uses_rcs functionality has been removed from rc.subr.
- 20160908:
- The queue(3) debugging macro, QUEUE_MACRO_DEBUG, has been split into
- two separate components, QUEUE_MACRO_DEBUG_TRACE and
- QUEUE_MACRO_DEBUG_TRASH. Define both for the original
- QUEUE_MACRO_DEBUG behavior.
- 20160824:
- r304787 changed some ioctl interfaces between the iSCSI userspace
- programs and the kernel. ctladm, ctld, iscsictl, and iscsid must be
- rebuilt to work with new kernels. __FreeBSD_version has been bumped
- to 1200005.
- 20160818:
- The UDP receive code has been updated to only treat incoming UDP
- packets that were addressed to an L2 broadcast address as L3
- broadcast packets. It is not expected that this will affect any
- standards-conforming UDP application. The new behaviour can be
- disabled by setting the sysctl net.inet.udp.require_l2_bcast to
- 0.
- 20160818:
- Remove the openbsd_poll system call.
- __FreeBSD_version has been bumped because of this.
- 20160708:
- The stable/11 branch has been created from head@r302406.
- 20160622:
- The libc stub for the pipe(2) system call has been replaced with
- a wrapper that calls the pipe2(2) system call and the pipe(2)
- system call is now only implemented by the kernels that include
- "options COMPAT_FREEBSD10" in their config file (this is the
- default). Users should ensure that this option is enabled in
- their kernel or upgrade userspace to r302092 before upgrading their
- kernel.
- 20160527:
- CAM will now strip leading spaces from SCSI disks' serial numbers.
- This will affect users who create UFS filesystems on SCSI disks using
- those disk's diskid device nodes. For example, if /etc/fstab
- previously contained a line like
- "/dev/diskid/DISK-%20%20%20%20%20%20%20ABCDEFG0123456", you should
- change it to "/dev/diskid/DISK-ABCDEFG0123456". Users of geom
- transforms like gmirror may also be affected. ZFS users should
- generally be fine.
- 20160523:
- The bitstring(3) API has been updated with new functionality and
- improved performance. But it is binary-incompatible with the old API.
- Objects built with the new headers may not be linked against objects
- built with the old headers.
- 20160520:
- The brk and sbrk functions have been removed from libc on arm64.
- Binutils from ports has been updated to not link to these
- functions and should be updated to the latest version before
- installing a new libc.
- 20160517:
- The armv6 port now defaults to hard float ABI. Limited support
- for running both hardfloat and soft float on the same system
- is available using the libraries installed with -DWITH_LIBSOFT.
- This has only been tested as an upgrade path for installworld
- and packages may fail or need manual intervention to run. New
- packages will be needed.
- To update an existing self-hosted armv6hf system, you must add
- TARGET_ARCH=armv6 on the make command line for both the build
- and the install steps.
- 20160510:
- Kernel modules compiled outside of a kernel build now default to
- installing to /boot/modules instead of /boot/kernel. Many kernel
- modules built this way (such as those in ports) already overrode
- KMODDIR explicitly to install into /boot/modules. However,
- manually building and installing a module from /sys/modules will
- now install to /boot/modules instead of /boot/kernel.
- 20160414:
- The CAM I/O scheduler has been committed to the kernel. There should be
- no user visible impact. This does enable NCQ Trim on ada SSDs. While the
- list of known rogues that claim support for this but actually corrupt
- data is believed to be complete, be on the lookout for data
- corruption. The known rogue list is believed to be complete:
- o Crucial MX100, M550 drives with MU01 firmware.
- o Micron M510 and M550 drives with MU01 firmware.
- o Micron M500 prior to MU07 firmware
- o Samsung 830, 840, and 850 all firmwares
- o FCCT M500 all firmwares
- Crucial has firmware http://www.crucial.com/usa/en/support-ssd-firmware
- with working NCQ TRIM. For Micron branded drives, see your sales rep for
- updated firmware. Black listed drives will work correctly because these
- drives work correctly so long as no NCQ TRIMs are sent to them. Given
- this list is the same as found in Linux, it's believed there are no
- other rogues in the market place. All other models from the above
- vendors work.
- To be safe, if you are at all concerned, you can quirk each of your
- drives to prevent NCQ from being sent by setting:
- kern.cam.ada.X.quirks="0x2"
- in loader.conf. If the drive requires the 4k sector quirk, set the
- quirks entry to 0x3.
- 20160330:
- The FAST_DEPEND build option has been removed and its functionality is
- now the one true way. The old mkdep(1) style of 'make depend' has
- been removed. See 20160311 for further details.
- 20160317:
- Resource range types have grown from unsigned long to uintmax_t. All
- drivers, and anything using libdevinfo, need to be recompiled.
- 20160311:
- WITH_FAST_DEPEND is now enabled by default for in-tree and out-of-tree
- builds. It no longer runs mkdep(1) during 'make depend', and the
- 'make depend' stage can safely be skipped now as it is auto ran
- when building 'make all' and will generate all SRCS and DPSRCS before
- building anything else. Dependencies are gathered at compile time with
- -MF flags kept in separate .depend files per object file. Users should
- run 'make cleandepend' once if using -DNO_CLEAN to clean out older
- stale .depend files.
- 20160306:
- On amd64, clang 3.8.0 can now insert sections of type AMD64_UNWIND into
- kernel modules. Therefore, if you load any kernel modules at boot time,
- please install the boot loaders after you install the kernel, but before
- rebooting, e.g.:
- make buildworld
- make buildkernel KERNCONF=YOUR_KERNEL_HERE
- make installkernel KERNCONF=YOUR_KERNEL_HERE
- make -C sys/boot install
- <reboot in single user>
- Then follow the usual steps, described in the General Notes section,
- below.
- 20160305:
- Clang, llvm, lldb and compiler-rt have been upgraded to 3.8.0. Please
- see the 20141231 entry below for information about prerequisites and
- upgrading, if you are not already using clang 3.5.0 or higher.
- 20160301:
- The AIO subsystem is now a standard part of the kernel. The
- VFS_AIO kernel option and aio.ko kernel module have been removed.
- Due to stability concerns, asynchronous I/O requests are only
- permitted on sockets and raw disks by default. To enable
- asynchronous I/O requests on all file types, set the
- vfs.aio.enable_unsafe sysctl to a non-zero value.
- 20160226:
- The ELF object manipulation tool objcopy is now provided by the
- ELF Tool Chain project rather than by GNU binutils. It should be a
- drop-in replacement, with the addition of arm64 support. The
- (temporary) src.conf knob WITHOUT_ELFCOPY_AS_OBJCOPY knob may be set
- to obtain the GNU version if necessary.
- 20160129:
- Building ZFS pools on top of zvols is prohibited by default. That
- feature has never worked safely; it's always been prone to deadlocks.
- Using a zvol as the backing store for a VM guest's virtual disk will
- still work, even if the guest is using ZFS. Legacy behavior can be
- restored by setting vfs.zfs.vol.recursive=1.
- 20160119:
- The NONE and HPN patches has been removed from OpenSSH. They are
- still available in the security/openssh-portable port.
- 20160113:
- With the addition of ypldap(8), a new _ypldap user is now required
- during installworld. "mergemaster -p" can be used to add the user
- prior to installworld, as documented in the handbook.
- 20151216:
- The tftp loader (pxeboot) now uses the option root-path directive. As a
- consequence it no longer looks for a pxeboot.4th file on the tftp
- server. Instead it uses the regular /boot infrastructure as with the
- other loaders.
- 20151211:
- The code to start recording plug and play data into the modules has
- been committed. While the old tools will properly build a new kernel,
- a number of warnings about "unknown metadata record 4" will be produced
- for an older kldxref. To avoid such warnings, make sure to rebuild
- the kernel toolchain (or world). Make sure that you have r292078 or
- later when trying to build 292077 or later before rebuilding.
- 20151207:
- Debug data files are now built by default with 'make buildworld' and
- installed with 'make installworld'. This facilitates debugging but
- requires more disk space both during the build and for the installed
- world. Debug files may be disabled by setting WITHOUT_DEBUG_FILES=yes
- in src.conf(5).
- 20151130:
- r291527 changed the internal interface between the nfsd.ko and
- nfscommon.ko modules. As such, they must both be upgraded to-gether.
- __FreeBSD_version has been bumped because of this.
- 20151108:
- Add support for unicode collation strings leads to a change of
- order of files listed by ls(1) for example. To get back to the old
- behaviour, set LC_COLLATE environment variable to "C".
- Databases administrators will need to reindex their databases given
- collation results will be different.
- Due to a bug in install(1) it is recommended to remove the ancient
- locales before running make installworld.
- rm -rf /usr/share/locale/*
- 20151030:
- The OpenSSL has been upgraded to 1.0.2d. Any binaries requiring
- libcrypto.so.7 or libssl.so.7 must be recompiled.
- 20151020:
- Qlogic 24xx/25xx firmware images were updated from 5.5.0 to 7.3.0.
- Kernel modules isp_2400_multi and isp_2500_multi were removed and
- should be replaced with isp_2400 and isp_2500 modules respectively.
- 20151017:
- The build previously allowed using 'make -n' to not recurse into
- sub-directories while showing what commands would be executed, and
- 'make -n -n' to recursively show commands. Now 'make -n' will recurse
- and 'make -N' will not.
- 20151012:
- If you specify SENDMAIL_MC or SENDMAIL_CF in make.conf, mergemaster
- and etcupdate will now use this file. A custom sendmail.cf is now
- updated via this mechanism rather than via installworld. If you had
- excluded sendmail.cf in mergemaster.rc or etcupdate.conf, you may
- want to remove the exclusion or change it to "always install".
- /etc/mail/sendmail.cf is now managed the same way regardless of
- whether SENDMAIL_MC/SENDMAIL_CF is used. If you are not using
- SENDMAIL_MC/SENDMAIL_CF there should be no change in behavior.
- 20151011:
- Compatibility shims for legacy ATA device names have been removed.
- It includes ATA_STATIC_ID kernel option, kern.cam.ada.legacy_aliases
- and kern.geom.raid.legacy_aliases loader tunables, kern.devalias.*
- environment variables, /dev/ad* and /dev/ar* symbolic links.
- 20151006:
- Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 3.7.0.
- Please see the 20141231 entry below for information about prerequisites
- and upgrading, if you are not already using clang 3.5.0 or higher.
- 20150924:
- Kernel debug files have been moved to /usr/lib/debug/boot/kernel/,
- and renamed from .symbols to .debug. This reduces the size requirements
- on the boot partition or file system and provides consistency with
- userland debug files.
- When using the supported kernel installation method the
- /usr/lib/debug/boot/kernel directory will be renamed (to kernel.old)
- as is done with /boot/kernel.
- Developers wishing to maintain the historical behavior of installing
- debug files in /boot/kernel/ can set KERN_DEBUGDIR="" in src.conf(5).
- 20150827:
- The wireless drivers had undergone changes that remove the 'parent
- interface' from the ifconfig -l output. The rc.d network scripts
- used to check presence of a parent interface in the list, so old
- scripts would fail to start wireless networking. Thus, etcupdate(3)
- or mergemaster(8) run is required after kernel update, to update your
- rc.d scripts in /etc.
- 20150827:
- pf no longer supports 'scrub fragment crop' or 'scrub fragment drop-ovl'
- These configurations are now automatically interpreted as
- 'scrub fragment reassemble'.
- 20150817:
- Kernel-loadable modules for the random(4) device are back. To use
- them, the kernel must have
- device random
- options RANDOM_LOADABLE
- kldload(8) can then be used to load random_fortuna.ko
- or random_yarrow.ko. Please note that due to the indirect
- function calls that the loadable modules need to provide,
- the build-in variants will be slightly more efficient.
- The random(4) kernel option RANDOM_DUMMY has been retired due to
- unpopularity. It was not all that useful anyway.
- 20150813:
- The WITHOUT_ELFTOOLCHAIN_TOOLS src.conf(5) knob has been retired.
- Control over building the ELF Tool Chain tools is now provided by
- the WITHOUT_TOOLCHAIN knob.
- 20150810:
- The polarity of Pulse Per Second (PPS) capture events with the
- uart(4) driver has been corrected. Prior to this change the PPS
- "assert" event corresponded to the trailing edge of a positive PPS
- pulse and the "clear" event was the leading edge of the next pulse.
- As the width of a PPS pulse in a typical GPS receiver is on the
- order of 1 millisecond, most users will not notice any significant
- difference with this change.
- Anyone who has compensated for the historical polarity reversal by
- configuring a negative offset equal to the pulse width will need to
- remove that workaround.
- 20150809:
- The default group assigned to /dev/dri entries has been changed
- from 'wheel' to 'video' with the id of '44'. If you want to have
- access to the dri devices please add yourself to the video group
- with:
- # pw groupmod video -m $USER
- 20150806:
- The menu.rc and loader.rc files will now be replaced during
- upgrades. Please migrate local changes to menu.rc.local and
- loader.rc.local instead.
- 20150805:
- GNU Binutils versions of addr2line, c++filt, nm, readelf, size,
- strings and strip have been removed. The src.conf(5) knob
- WITHOUT_ELFTOOLCHAIN_TOOLS no longer provides the binutils tools.
- 20150728:
- As ZFS requires more kernel stack pages than is the default on some
- architectures e.g. i386, it now warns if KSTACK_PAGES is less than
- ZFS_MIN_KSTACK_PAGES (which is 4 at the time of writing).
- Please consider using 'options KSTACK_PAGES=X' where X is greater
- than or equal to ZFS_MIN_KSTACK_PAGES i.e. 4 in such configurations.
- 20150706:
- sendmail has been updated to 8.15.2. Starting with FreeBSD 11.0
- and sendmail 8.15, sendmail uses uncompressed IPv6 addresses by
- default, i.e., they will not contain "::". For example, instead
- of ::1, it will be 0:0:0:0:0:0:0:1. This permits a zero subnet
- to have a more specific match, such as different map entries for
- IPv6:0:0 vs IPv6:0. This change requires that configuration
- data (including maps, files, classes, custom ruleset, etc.) must
- use the same format, so make certain such configuration data is
- upgrading. As a very simple check search for patterns like
- 'IPv6:[0-9a-fA-F:]*::' and 'IPv6::'. To return to the old
- behavior, set the m4 option confUSE_COMPRESSED_IPV6_ADDRESSES or
- the cf option UseCompressedIPv6Addresses.
- 20150630:
- The default kernel entropy-processing algorithm is now
- Fortuna, replacing Yarrow.
- Assuming you have 'device random' in your kernel config
- file, the configurations allow a kernel option to override
- this default. You may choose *ONE* of:
- options RANDOM_YARROW # Legacy /dev/random algorithm.
- options RANDOM_DUMMY # Blocking-only driver.
- If you have neither, you get Fortuna. For most people,
- read no further, Fortuna will give a /dev/random that works
- like it always used to, and the difference will be irrelevant.
- If you remove 'device random', you get *NO* kernel-processed
- entropy at all. This may be acceptable to folks building
- embedded systems, but has complications. Carry on reading,
- and it is assumed you know what you need.
- *PLEASE* read random(4) and random(9) if you are in the
- habit of tweaking kernel configs, and/or if you are a member
- of the embedded community, wanting specific and not-usual
- behaviour from your security subsystems.
- NOTE!! If you use RANDOM_DUMMY and/or have no 'device
- random', you will NOT have a functioning /dev/random, and
- many cryptographic features will not work, including SSH.
- You may also find strange behaviour from the random(3) set
- of library functions, in particular sranddev(3), srandomdev(3)
- and arc4random(3). The reason for this is that the KERN_ARND
- sysctl only returns entropy if it thinks it has some to
- share, and with RANDOM_DUMMY or no 'device random' this
- will never happen.
- 20150623:
- An additional fix for the issue described in the 20150614 sendmail
- entry below has been committed in revision 284717.
- 20150616:
- FreeBSD's old make (fmake) has been removed from the system. It is
- available as the devel/fmake port or via pkg install fmake.
- 20150615:
- The fix for the issue described in the 20150614 sendmail entry
- below has been committed in revision 284436. The work
- around described in that entry is no longer needed unless the
- default setting is overridden by a confDH_PARAMETERS configuration
- setting of '5' or pointing to a 512 bit DH parameter file.
- 20150614:
- ALLOW_DEPRECATED_ATF_TOOLS/ATFFILE support has been removed from
- atf.test.mk (included from bsd.test.mk). Please upgrade devel/atf
- and devel/kyua to version 0.20+ and adjust any calling code to work
- with Kyuafile and kyua.
- 20150614:
- The import of openssl to address the FreeBSD-SA-15:10.openssl
- security advisory includes a change which rejects handshakes
- with DH parameters below 768 bits. sendmail releases prior
- to 8.15.2 (not yet released), defaulted to a 512 bit
- DH parameter setting for client connections. To work around
- this interoperability, sendmail can be configured to use a
- 2048 bit DH parameter by:
- 1. Edit /etc/mail/`hostname`.mc
- 2. If a setting for confDH_PARAMETERS does not exist or
- exists and is set to a string beginning with '5',
- replace it with '2'.
- 3. If a setting for confDH_PARAMETERS exists and is set to
- a file path, create a new file with:
- openssl dhparam -out /path/to/file 2048
- 4. Rebuild the .cf file:
- cd /etc/mail/; make; make install
- 5. Restart sendmail:
- cd /etc/mail/; make restart
- A sendmail patch is coming, at which time this file will be
- updated.
- 20150604:
- Generation of legacy formatted entries have been disabled by default
- in pwd_mkdb(8), as all base system consumers of the legacy formatted
- entries were converted to use the new format by default when the new,
- machine independent format have been added and supported since FreeBSD
- 5.x.
- Please see the pwd_mkdb(8) manual page for further details.
- 20150525:
- Clang and llvm have been upgraded to 3.6.1 release. Please see the
- 20141231 entry below for information about prerequisites and upgrading,
- if you are not already using 3.5.0 or higher.
- 20150521:
- TI platform code switched to using vendor DTS files and this update
- may break existing systems running on Beaglebone, Beaglebone Black,
- and Pandaboard:
- - dtb files should be regenerated/reinstalled. Filenames are the
- same but content is different now
- - GPIO addressing was changed, now each GPIO bank (32 pins per bank)
- has its own /dev/gpiocX device, e.g. pin 121 on /dev/gpioc0 in old
- addressing scheme is now pin 25 on /dev/gpioc3.
- - Pandaboard: /etc/ttys should be updated, serial console device is
- now /dev/ttyu2, not /dev/ttyu0
- 20150501:
- soelim(1) from gnu/usr.bin/groff has been replaced by usr.bin/soelim.
- If you need the GNU extension from groff soelim(1), install groff
- from package: pkg install groff, or via ports: textproc/groff.
- 20150423:
- chmod, chflags, chown and chgrp now affect symlinks in -R mode as
- defined in symlink(7); previously symlinks were silently ignored.
- 20150415:
- The const qualifier has been removed from iconv(3) to comply with
- POSIX. The ports tree is aware of this from r384038 onwards.
- 20150416:
- Libraries specified by LIBADD in Makefiles must have a corresponding
- DPADD_<lib> variable to ensure correct dependencies. This is now
- enforced in src.libnames.mk.
- 20150324:
- From legacy ata(4) driver was removed support for SATA controllers
- supported by more functional drivers ahci(4), siis(4) and mvs(4).
- Kernel modules ataahci and ataadaptec were removed completely,
- replaced by ahci and mvs modules respectively.
- 20150315:
- Clang, llvm and lldb have been upgraded to 3.6.0 release. Please see
- the 20141231 entry below for information about prerequisites and
- upgrading, if you are not already using 3.5.0 or higher.
- 20150307:
- The 32-bit PowerPC kernel has been changed to a position-independent
- executable. This can only be booted with a version of loader(8)
- newer than January 31, 2015, so make sure to update both world and
- kernel before rebooting.
- 20150217:
- If you are running a -CURRENT kernel since r273872 (Oct 30th, 2014),
- but before r278950, the RNG was not seeded properly. Immediately
- upgrade the kernel to r278950 or later and regenerate any keys (e.g.
- ssh keys or openssl keys) that were generated w/ a kernel from that
- range. This does not affect programs that directly used /dev/random
- or /dev/urandom. All userland uses of arc4random(3) are affected.
- 20150210:
- The autofs(4) ABI was changed in order to restore binary compatibility
- with 10.1-RELEASE. The automountd(8) daemon needs to be rebuilt to work
- with the new kernel.
- 20150131:
- The powerpc64 kernel has been changed to a position-independent
- executable. This can only be booted with a new version of loader(8),
- so make sure to update both world and kernel before rebooting.
- 20150118:
- Clang and llvm have been upgraded to 3.5.1 release. This is a bugfix
- only release, no new features have been added. Please see the 20141231
- entry below for information about prerequisites and upgrading, if you
- are not already using 3.5.0.
- 20150107:
- ELF tools addr2line, elfcopy (strip), nm, size, and strings are now
- taken from the ELF Tool Chain project rather than GNU binutils. They
- should be drop-in replacements, with the addition of arm64 support.
- The WITHOUT_ELFTOOLCHAIN_TOOLS= knob may be used to obtain the
- binutils tools, if necessary. See 20150805 for updated information.
- 20150105:
- The default Unbound configuration now enables remote control
- using a local socket. Users who have already enabled the
- local_unbound service should regenerate their configuration
- by running "service local_unbound setup" as root.
- 20150102:
- The GNU texinfo and GNU info pages have been removed.
- To be able to view GNU info pages please install texinfo from ports.
- 20141231:
- Clang, llvm and lldb have been upgraded to 3.5.0 release.
- As of this release, a prerequisite for building clang, llvm and lldb is
- a C++11 capable compiler and C++11 standard library. This means that to
- be able to successfully build the cross-tools stage of buildworld, with
- clang as the bootstrap compiler, your system compiler or cross compiler
- should either be clang 3.3 or later, or gcc 4.8 or later, and your
- system C++ library should be libc++, or libdstdc++ from gcc 4.8 or
- later.
- On any standard FreeBSD 10.x or 11.x installation, where clang and
- libc++ are on by default (that is, on x86 or arm), this should work out
- of the box.
- On 9.x installations where clang is enabled by default, e.g. on x86 and
- powerpc, libc++ will not be enabled by default, so libc++ should be
- built (with clang) and installed first. If both clang and libc++ are
- missing, build clang first, then use it to build libc++.
- On 8.x and earlier installations, upgrade to 9.x first, and then follow
- the instructions for 9.x above.
- Sparc64 and mips users are unaffected, as they still use gcc 4.2.1 by
- default, and do not build clang.
- Many embedded systems are resource constrained, and will not be able to
- build clang in a reasonable time, or in some cases at all. In those
- cases, cross building bootable systems on amd64 is a workaround.
- This new version of clang introduces a number of new warnings, of which
- the following are most likely to appear:
- -Wabsolute-value
- This warns in two cases, for both C and C++:
- * When the code is trying to take the absolute value of an unsigned
- quantity, which is effectively a no-op, and almost never what was
- intended. The code should be fixed, if at all possible. If you are
- sure that the unsigned quantity can be safely cast to signed, without
- loss of information or undefined behavior, you can add an explicit
- cast, or disable the warning.
- * When the code is trying to take an absolute value, but the called
- abs() variant is for the wrong type, which can lead to truncation.
- If you want to disable the warning instead of fixing the code, please
- make sure that truncation will not occur, or it might lead to unwanted
- side-effects.
- -Wtautological-undefined-compare and
- -Wundefined-bool-conversion
- These warn when C++ code is trying to compare 'this' against NULL, while
- 'this' should never be NULL in well-defined C++ code. However, there is
- some legacy (pre C++11) code out there, which actively abuses this
- feature, which was less strictly defined in previous C++ versions.
- Squid and openjdk do this, for example. The warning can be turned off
- for C++98 and earlier, but compiling the code in C++11 mode might result
- in unexpected behavior; for example, the parts of the program that are
- unreachable could be optimized away.
- 20141222:
- The old NFS client and server (kernel options NFSCLIENT, NFSSERVER)
- kernel sources have been removed. The .h files remain, since some
- utilities include them. This will need to be fixed later.
- If "mount -t oldnfs ..." is attempted, it will fail.
- If the "-o" option on mountd(8), nfsd(8) or nfsstat(1) is used,
- the utilities will report errors.
- 20141121:
- The handling of LOCAL_LIB_DIRS has been altered to skip addition of
- directories to top level SUBDIR variable when their parent
- directory is included in LOCAL_DIRS. Users with build systems with
- such hierarchies and without SUBDIR entries in the parent
- directory Makefiles should add them or add the directories to
- LOCAL_DIRS.
- 20141109:
- faith(4) and faithd(8) have been removed from the base system. Faith
- has been obsolete for a very long time.
- 20141104:
- vt(4), the new console driver, is enabled by default. It brings
- support for Unicode and double-width characters, as well as
- support for UEFI and integration with the KMS kernel video
- drivers.
- You may need to update your console settings in /etc/rc.conf,
- most probably the keymap. During boot, /etc/rc.d/syscons will
- indicate what you need to do.
- vt(4) still has issues and lacks some features compared to
- syscons(4). See the wiki for up-to-date information:
- https://wiki.freebsd.org/Newcons
- If you want to keep using syscons(4), you can do so by adding
- the following line to /boot/loader.conf:
- kern.vty=sc
- 20141102:
- pjdfstest has been integrated into kyua as an opt-in test suite.
- Please see share/doc/pjdfstest/README for more details on how to
- execute it.
- 20141009:
- gperf has been removed from the base system for architectures
- that use clang. Ports that require gperf will obtain it from the
- devel/gperf port.
- 20140923:
- pjdfstest has been moved from tools/regression/pjdfstest to
- contrib/pjdfstest .
- 20140922:
- At svn r271982, The default linux compat kernel ABI has been adjusted
- to 2.6.18 in support of the linux-c6 compat ports infrastructure
- update. If you wish to continue using the linux-f10 compat ports,
- add compat.linux.osrelease=2.6.16 to your local sysctl.conf. Users are
- encouraged to update their linux-compat packages to linux-c6 during
- their next update cycle.
- 20140729:
- The ofwfb driver, used to provide a graphics console on PowerPC when
- using vt(4), no longer allows mmap() of all physical memory. This
- will prevent Xorg on PowerPC with some ATI graphics cards from
- initializing properly unless x11-servers/xorg-server is updated to
- 1.12.4_8 or newer.
- 20140723:
- The xdev targets have been converted to using TARGET and
- TARGET_ARCH instead of XDEV and XDEV_ARCH.
- 20140719:
- The default unbound configuration has been modified to address
- issues with reverse lookups on networks that use private
- address ranges. If you use the local_unbound service, run
- "service local_unbound setup" as root to regenerate your
- configuration, then "service local_unbound reload" to load the
- new configuration.
- 20140709:
- The GNU texinfo and GNU info pages are not built and installed
- anymore, WITH_INFO knob has been added to allow to built and install
- them again.
- UPDATE: see 20150102 entry on texinfo's removal
- 20140708:
- The GNU readline library is now an INTERNALLIB - that is, it is
- statically linked into consumers (GDB and variants) in the base
- system, and the shared library is no longer installed. The
- devel/readline port is available for third party software that
- requires readline.
- 20140702:
- The Itanium architecture (ia64) has been removed from the list of
- known architectures. This is the first step in the removal of the
- architecture.
- 20140701:
- Commit r268115 has added NFSv4.1 server support, merged from
- projects/nfsv4.1-server. Since this includes changes to the
- internal interfaces between the NFS related modules, a full
- build of the kernel and modules will be necessary.
- __FreeBSD_version has been bumped.
- 20140629:
- The WITHOUT_VT_SUPPORT kernel config knob has been renamed
- WITHOUT_VT. (The other _SUPPORT knobs have a consistent meaning
- which differs from the behaviour controlled by this knob.)
- 20140619:
- Maximal length of the serial number in CTL was increased from 16 to
- 64 chars, that breaks ABI. All CTL-related tools, such as ctladm
- and ctld, need to be rebuilt to work with a new kernel.
- 20140606:
- The libatf-c and libatf-c++ major versions were downgraded to 0 and
- 1 respectively to match the upstream numbers. They were out of
- sync because, when they were originally added to FreeBSD, the
- upstream versions were not respected. These libraries are private
- and not yet built by default, so renumbering them should be a
- non-issue. However, unclean source trees will yield broken test
- programs once the operator executes "make delete-old-libs" after a
- "make installworld".
- Additionally, the atf-sh binary was made private by moving it into
- /usr/libexec/. Already-built shell test programs will keep the
- path to the old binary so they will break after "make delete-old"
- is run.
- If you are using WITH_TESTS=yes (not the default), wipe the object
- tree and rebuild from scratch to prevent spurious test failures.
- This is only needed once: the misnumbered libraries and misplaced
- binaries have been added to OptionalObsoleteFiles.inc so they will
- be removed during a clean upgrade.
- 20140512:
- Clang and llvm have been upgraded to 3.4.1 release.
- 20140508:
- We bogusly installed src.opts.mk in /usr/share/mk. This file should
- be removed to avoid issues in the future (and has been added to
- ObsoleteFiles.inc).
- 20140505:
- /etc/src.conf now affects only builds of the FreeBSD src tree. In the
- past, it affected all builds that used the bsd.*.mk files. The old
- behavior was a bug, but people may have relied upon it. To get this
- behavior back, you can .include /etc/src.conf from /etc/make.conf
- (which is still global and isn't changed). This also changes the
- behavior of incremental builds inside the tree of individual
- directories. Set MAKESYSPATH to ".../share/mk" to do that.
- Although this has survived make universe and some upgrade scenarios,
- other upgrade scenarios may have broken. At least one form of
- temporary breakage was fixed with MAKESYSPATH settings for buildworld
- as well... In cases where MAKESYSPATH isn't working with this
- setting, you'll need to set it to the full path to your tree.
- One side effect of all this cleaning up is that bsd.compiler.mk
- is no longer implicitly included by bsd.own.mk. If you wish to
- use COMPILER_TYPE, you must now explicitly include bsd.compiler.mk
- as well.
- 20140430:
- The lindev device has been removed since /dev/full has been made a
- standard device. __FreeBSD_version has been bumped.
- 20140424:
- The knob WITHOUT_VI was added to the base system, which controls
- building ex(1), vi(1), etc. Older releases of FreeBSD required ex(1)
- in order to reorder files share/termcap and didn't build ex(1) as a
- build tool, so building/installing with WITH_VI is highly advised for
- build hosts for older releases.
- This issue has been fixed in stable/9 and stable/10 in r277022 and
- r276991, respectively.
- 20140418:
- The YES_HESIOD knob has been removed. It has been obsolete for
- a decade. Please move to using WITH_HESIOD instead or your builds
- will silently lack HESIOD.
- 20140405:
- The uart(4) driver has been changed with respect to its handling
- of the low-level console. Previously the uart(4) driver prevented
- any process from changing the baudrate or the CLOCAL and HUPCL
- control flags. By removing the restrictions, operators can make
- changes to the serial console port without having to reboot.
- However, when getty(8) is started on the serial device that is
- associated with the low-level console, a misconfigured terminal
- line in /etc/ttys will now have a real impact.
- Before upgrading the kernel, make sure that /etc/ttys has the
- serial console device configured as 3wire without baudrate to
- preserve the previous behaviour. E.g:
- ttyu0 "/usr/libexec/getty 3wire" vt100 on secure
- 20140306:
- Support for libwrap (TCP wrappers) in rpcbind was disabled by default
- to improve performance. To re-enable it, if needed, run rpcbind
- with command line option -W.
- 20140226:
- Switched back to the GPL dtc compiler due to updates in the upstream
- dts files not being supported by the BSDL dtc compiler. You will need
- to rebuild your kernel toolchain to pick up the new compiler. Core dumps
- may result while building dtb files during a kernel build if you fail
- to do so. Set WITHOUT_GPL_DTC if you require the BSDL compiler.
- 20140216:
- Clang and llvm have been upgraded to 3.4 release.
- 20140216:
- The nve(4) driver has been removed. Please use the nfe(4) driver
- for NVIDIA nForce MCP Ethernet adapters instead.
- 20140212:
- An ABI incompatibility crept into the libc++ 3.4 import in r261283.
- This could cause certain C++ applications using shared libraries built
- against the previous version of libc++ to crash. The incompatibility
- has now been fixed, but any C++ applications or shared libraries built
- between r261283 and r261801 should be recompiled.
- 20140204:
- OpenSSH will now ignore errors caused by kernel lacking of Capsicum
- capability mode support. Please note that enabling the feature in
- kernel is still highly recommended.
- 20140131:
- OpenSSH is now built with sandbox support, and will use sandbox as
- the default privilege separation method. This requires Capsicum
- capability mode support in kernel.
- 20140128:
- The libelf and libdwarf libraries have been updated to newer
- versions from upstream. Shared library version numbers for
- these two libraries were bumped. Any ports or binaries
- requiring these two libraries should be recompiled.
- __FreeBSD_version is bumped to 1100006.
- 20140110:
- If a Makefile in a tests/ directory was auto-generating a Kyuafile
- instead of providing an explicit one, this would prevent such
- Makefile from providing its own Kyuafile in the future during
- NO_CLEAN builds. This has been fixed in the Makefiles but manual
- intervention is needed to clean an objdir if you use NO_CLEAN:
- # find /usr/obj -name Kyuafile | xargs rm -f
- 20131213:
- The behavior of gss_pseudo_random() for the krb5 mechanism
- has changed, for applications requesting a longer random string
- than produced by the underlying enctype's pseudo-random() function.
- In particular, the random string produced from a session key of
- enctype aes256-cts-hmac-sha1-96 or aes256-cts-hmac-sha1-96 will
- be different at the 17th octet and later, after this change.
- The counter used in the PRF+ construction is now encoded as a
- big-endian integer in accordance with RFC 4402.
- __FreeBSD_version is bumped to 1100004.
- 20131108:
- The WITHOUT_ATF build knob has been removed and its functionality
- has been subsumed into the more generic WITHOUT_TESTS. If you were
- using the former to disable the build of the ATF libraries, you
- should change your settings to use the latter.
- 20131025:
- The default version of mtree is nmtree which is obtained from
- NetBSD. The output is generally the same, but may vary
- slightly. If you found you need identical output adding
- "-F freebsd9" to the command line should do the trick. For the
- time being, the old mtree is available as fmtree.
- 20131014:
- libbsdyml has been renamed to libyaml and moved to /usr/lib/private.
- This will break ports-mgmt/pkg. Rebuild the port, or upgrade to pkg
- 1.1.4_8 and verify bsdyml not linked in, before running "make
- delete-old-libs":
- # make -C /usr/ports/ports-mgmt/pkg build deinstall install clean
- or
- # pkg install pkg; ldd /usr/local/sbin/pkg | grep bsdyml
- 20131010:
- The stable/10 branch has been created in subversion from head
- revision r256279.
- COMMON ITEMS:
- General Notes
- -------------
- Sometimes, obscure build problems are the result of environment
- poisoning. This can happen because the make utility reads its
- environment when searching for values for global variables. To run
- your build attempts in an "environmental clean room", prefix all make
- commands with 'env -i '. See the env(1) manual page for more details.
- Occasionally a build failure will occur with "make -j" due to a race
- condition. If this happens try building again without -j, and please
- report a bug if it happens consistently.
- When upgrading from one major version to another it is generally best to
- upgrade to the latest code in the currently installed branch first, then
- do an upgrade to the new branch. This is the best-tested upgrade path,
- and has the highest probability of being successful. Please try this
- approach if you encounter problems with a major version upgrade. Since
- the stable 4.x branch point, one has generally been able to upgrade from
- anywhere in the most recent stable branch to head / current (or even the
- last couple of stable branches). See the top of this file when there's
- an exception.
- The update process will emit an error on an attempt to perform a build
- or install from a FreeBSD version below the earliest supported version.
- When updating from an older version the update should be performed one
- major release at a time, including running `make delete-old` at each
- step.
- When upgrading a live system, having a root shell around before
- installing anything can help undo problems. Not having a root shell
- around can lead to problems if pam has changed too much from your
- starting point to allow continued authentication after the upgrade.
- This file should be read as a log of events. When a later event changes
- information of a prior event, the prior event should not be deleted.
- Instead, a pointer to the entry with the new information should be
- placed in the old entry. Readers of this file should also sanity check
- older entries before relying on them blindly. Authors of new entries
- should write them with this in mind.
- ZFS notes
- ---------
- When upgrading the boot ZFS pool to a new version, always follow
- these two steps:
- 1.) recompile and reinstall the ZFS boot loader and boot block
- (this is part of "make buildworld" and "make installworld")
- 2.) update the ZFS boot block on your boot drive
- The following example updates the ZFS boot block on the
- freebsd-boot partition of a GPT partitioned drive ada0:
- "gpart bootcode -p /boot/gptzfsboot -i $N ada0"
- The value $N will typically be 1 (if booting from BIOS) or 2 (if
- booting from EFI).
- Non-boot pools do not need these updates.
- To build a kernel
- -----------------
- If you are updating from a prior version of FreeBSD (even one just
- a few days old), you should follow this procedure. It is the most
- failsafe as it uses a /usr/obj tree with a fresh mini-buildworld,
- make kernel-toolchain
- make -DALWAYS_CHECK_MAKE buildkernel KERNCONF=YOUR_KERNEL_HERE
- make -DALWAYS_CHECK_MAKE installkernel KERNCONF=YOUR_KERNEL_HERE
- To test a kernel once
- ---------------------
- If you just want to boot a kernel once (because you are not sure
- if it works, or if you want to boot a known bad kernel to provide
- debugging information) run
- make installkernel KERNCONF=YOUR_KERNEL_HERE KODIR=/boot/testkernel
- nextboot -k testkernel
- To rebuild everything and install it on the current system.
- -----------------------------------------------------------
- # Note: sometimes if you are running current you gotta do more than
- # is listed here if you are upgrading from a really old current.
- <make sure you have good level 0 dumps>
- make buildworld
- make buildkernel KERNCONF=YOUR_KERNEL_HERE
- make installkernel KERNCONF=YOUR_KERNEL_HERE
- [1]
- <reboot in single user> [3]
- mergemaster -Fp [5]
- make installworld
- mergemaster -Fi [4]
- make delete-old [6]
- <reboot>
- To cross-install current onto a separate partition
- --------------------------------------------------
- # In this approach we use a separate partition to hold
- # current's root, 'usr', and 'var' directories. A partition
- # holding "/", "/usr" and "/var" should be about 2GB in
- # size.
- <make sure you have good level 0 dumps>
- <boot into -stable>
- make buildworld
- make buildkernel KERNCONF=YOUR_KERNEL_HERE
- <maybe newfs current's root partition>
- <mount current's root partition on directory ${CURRENT_ROOT}>
- make installworld DESTDIR=${CURRENT_ROOT} -DDB_FROM_SRC
- make distribution DESTDIR=${CURRENT_ROOT} # if newfs'd
- make installkernel KERNCONF=YOUR_KERNEL_HERE DESTDIR=${CURRENT_ROOT}
- cp /etc/fstab ${CURRENT_ROOT}/etc/fstab # if newfs'd
- <edit ${CURRENT_ROOT}/etc/fstab to mount "/" from the correct partition>
- <reboot into current>
- <do a "native" rebuild/install as described in the previous section>
- <maybe install compatibility libraries from ports/misc/compat*>
- <reboot>
- To upgrade in-place from stable to current
- ----------------------------------------------
- <make sure you have good level 0 dumps>
- make buildworld [9]
- make buildkernel KERNCONF=YOUR_KERNEL_HERE [8]
- make installkernel KERNCONF=YOUR_KERNEL_HERE
- [1]
- <reboot in single user> [3]
- mergemaster -Fp [5]
- make installworld
- mergemaster -Fi [4]
- make delete-old [6]
- <reboot>
- Make sure that you've read the UPDATING file to understand the
- tweaks to various things you need. At this point in the life
- cycle of current, things change often and you are on your own
- to cope. The defaults can also change, so please read ALL of
- the UPDATING entries.
- Also, if you are tracking -current, you must be subscribed to
- freebsd-current@freebsd.org. Make sure that before you update
- your sources that you have read and understood all the recent
- messages there. If in doubt, please track -stable which has
- much fewer pitfalls.
- [1] If you have third party modules, such as vmware, you should disable
- them at this point so they don't crash your system on
- reboot. Alternatively, you should rebuild all the modules you have in
- your system and install them as well. If you are running -current, you
- should seriously consider placing all sources to all the modules for
- your system (or symlinks to them) in /usr/local/sys/modules so this
- happens automatically. If all your modules come from ports, then adding
- the port origin directories to PORTS_MODULES instead is also automatic
- and effective, eg:
- PORTS_MODULES+=x11/nvidia-driver
- [3] From the bootblocks, boot -s, and then do
- fsck -p
- mount -u /
- mount -a
- sh /etc/rc.d/zfs start # mount zfs filesystem, if needed
- cd src # full path to source
- adjkerntz -i # if CMOS is wall time
- Also, when doing a major release upgrade, it is required that you boot
- into single user mode to do the installworld.
- [4] Note: This step is non-optional. Failure to do this step
- can result in a significant reduction in the functionality of the
- system. Attempting to do it by hand is not recommended and those
- that pursue this avenue should read this file carefully, as well
- as the archives of freebsd-current and freebsd-hackers mailing lists
- for potential gotchas. The -U option is also useful to consider.
- See mergemaster(8) for more information.
- [5] Usually this step is a no-op. However, from time to time
- you may need to do this if you get unknown user in the following
- step. It never hurts to do it all the time. You may need to
- install a new mergemaster (cd src/usr.sbin/mergemaster && make
- install) after the buildworld before this step if you last updated
- from current before 20130425 or from -stable before 20130430.
- [6] This only deletes old files and directories. Old libraries
- can be deleted by "make delete-old-libs", but you have to make
- sure that no program is using those libraries anymore.
- [8] The new kernel must be able to run existing binaries used by an
- installworld. When upgrading across major versions, the new kernel's
- configuration must include the correct COMPAT_FREEBSD<n> option for
- existing binaries (e.g. COMPAT_FREEBSD11 to run 11.x binaries). Failure
- to do so may leave you with a system that is hard to boot to recover. A
- GENERIC kernel will include suitable compatibility options to run
- binaries from older branches. Note that the ability to run binaries
- from unsupported branches is not guaranteed.
- Make sure that you merge any new devices from GENERIC since the
- last time you updated your kernel config file. Options also
- change over time, so you may need to adjust your custom kernels
- for these as well.
- [9] If CPUTYPE is defined in your /etc/make.conf, make sure to use the
- "?=" instead of the "=" assignment operator, so that buildworld can
- override the CPUTYPE if it needs to.
- MAKEOBJDIRPREFIX must be defined in an environment variable, and
- not on the command line, or in /etc/make.conf. buildworld will
- warn if it is improperly defined.
- FORMAT:
- This file contains a list, in reverse chronological order, of major
- breakages in tracking -current. It is not guaranteed to be a complete
- list of such breakages, and only contains entries since September 23, 2011.
- If you need to see UPDATING entries from before that date, you will need
- to fetch an UPDATING file from an older FreeBSD release.
- Copyright information:
- Copyright 1998-2009 M. Warner Losh <imp@FreeBSD.org>
- Redistribution, publication, translation and use, with or without
- modification, in full or in part, in any form or format of this
- document are permitted without further permission from the author.
- THIS DOCUMENT IS PROVIDED BY WARNER LOSH ``AS IS'' AND ANY EXPRESS OR
- IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- DISCLAIMED. IN NO EVENT SHALL WARNER LOSH BE LIABLE FOR ANY DIRECT,
- INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE.
- Contact Warner Losh if you have any questions about your use of
- this document.
- $FreeBSD$
|