Paste correct line of CVE IDs.
[ikiwiki.git] / release60 / index.mdwn
1 # DragonFly BSD 6.0
2
3 * Version 6.0.0 released 05 10 2021
4
5 DragonFly version 6.0 is the next step from the 5.8 release series in 2020.  This version has a revamped VFS caching system, various filesystem updates including HAMMER2, and a long list of userland updates.
6
7 The details of all commits between the 5.8 and 6.0 branches are available in the associated commit messages for [6.0.0rc1](http://lists.dragonflybsd.org/pipermail/commits/2021-April/770415.html) and [6.0.0](https://lists.dragonflybsd.org/pipermail/commits/2021-May/820147.html).  
8
9 ## Big-ticket items
10
11 * Significant work on dsynth, for building packages. 
12 * Many updates of contrib system software.
13 * HAMMER2 work continues, with updates from Tomohiro Kusumi.
14 * Major VM work for extent-based representation.
15 * Due to major changes to the VM system we had to remove the MAP_VPAGETABLE mmap() feature, and this also means that vkernels will not be supported in this release.  Support may be re-added at a later time via HVM (but not in this release).
16
17 ## Details
18
19 ### Checksums
20
21     MD5 (dfly-x86_64-6.0.0_REL.img) = 56747f1b7a0178f46d1298ab2d8c723b
22     MD5 (dfly-x86_64-6.0.0_REL.iso) = 9a10a8935e2a74bffdb5d4a032bed635
23     MD5 (dfly-x86_64-6.0.0_REL.img.bz2) = 92b0f2d0cfcf6951be0e81ee692909d4
24     MD5 (dfly-x86_64-6.0.0_REL.iso.bz2) = 252fc700803dbadce1de928432373bbb
25  
26
27 ### Upgrading
28
29 If you have an existing 5.x system and are running a generic kernel, the normal upgrade process, described below, will work.  
30
31 Change your local `/usr/src` to 6.0:
32
33     cd /usr/src
34     git fetch origin
35     git branch DragonFly_RELEASE_6_0 origin/DragonFly_RELEASE_6_0
36     git checkout DragonFly_RELEASE_6_0
37     git pull
38
39 And then rebuild: (in `/usr/src`)
40
41     make buildworld
42     make buildkernel
43     make installkernel
44     make installworld
45     make upgrade
46
47     (reboot your system)
48
49     make initrd 
50
51 `make initrd` is optional for systems with unencrypted disks, and has been possible for several releases; it's mentioned here for completeness. Look at the [initrd(7)](https://leaf.dragonflybsd.org/cgi/web-man?command=initrd&section=ANY) man page for details on what it does.
52
53 Don't forget to upgrade your existing packages.  6.0 packages have already been built and are immediately available.
54
55     pkg update
56     pkg upgrade
57
58 ## All other changes since prior release
59
60 ### Security Issues
61
62 * CVE-2016-3189 and CVE-2019-12900, fixed with an import of bzip2-1.0.8.
63 * Meltdown hardware is detected during boot on Intel.
64
65 ### Kernel
66
67 * vfs_cache updated.
68 * Memory paging improved.
69 * Callout API rewritten, and callout structure revamped.
70 * Optimizations for code paths, cache lines.
71 * Fix shared spin-lock starvation vs exclusive locks.
72 * refactor kern_kevent(), sysclock_t to 64 bit.
73 * Improved EFI framebuffer support.
74 * acpi_thinkpad updated.
75 * sysmouse has evdev support.
76 * machdep.hack_efifb_probe_early sysctl removed.
77 * clock_nanosleep(2), fexecve(2) added.
78 * Fix mptable search issue triggered by bhyve
79 * uname sysctl fixes (minor stack disclosure).
80 * Add fcntl(F_GETPATH).
81 * Add IP_SENDSRCADDR support
82 * Add SO_PASSCRED.
83 * Introduce kmalloc_obj facility to reduce memory fragmentation
84 * Implement existential locks and type-stable feature to kmalloc_obj
85 * Fix /dev/fd/N to clone the file pointer instead of sharing it, so seeks do not mess up the running process.
86 * Cleanup archaic dup*() code-paths.
87 * vkernel support disabled (see note at top)
88 * Fix an unintended pmap_remove() that caused extra page faults.
89 * Allow XSAVE support without AVX (some VMs do this)
90 * Improve clock_settime() portability.
91 * Fix an unintended memory disclosure in nanosleep().
92 * Fix atime field for PTYs ('w' program idle time reporting).
93 * finger - remove -T option and fix lastlogx logic, widen TTY field.
94 * Misc fstype adjustments.
95 * Fix a serious callout*() structural corruption bug.
96 * Fix an overflow in the non-EFI bootloader code.
97 * Fix a slow memory leak in the resource limit structure.
98 * Fix a bug that could cause excessive VM pageout flushes.
99 * Refactor ifsq_watchdog*() adding features to better-support queue flushes.
100 * Fix atomicy issue in APIC EOI() and enable_icus().
101 * Fix a multitude of rename races, particularly with directories.
102 * Bring amdsmn in from FreeBSD.
103 * Improve open() errno compatibility.
104 * Make the DMAP significantly larger to accomodate EFI frame-bufffers that have been mapped to very high physical addresses (recent intel HP laptops).
105 * Remove P_SWAPPEDOUT flag and non-functioning (non-applicable) code.
106 * Detect fixed Intel meltdown hardware.
107 * Bring in wsp(4) for Wellspring touchpads and Apple laptops.
108 * Adjust devd to automatically recognize wireless network adapters and create wlanX interfaces for them.
109 * Default serial port speed changed from 9600 to 115200.  Long overdue.
110 * Refactor sysclock_t from 32 to 64 bits.
111 * Refactor kern_kevent() and fix a panic.
112 * Fix an efivar panic.
113 * Remove long-deprecated getdomainname(), setdomainname(), and uname() system calls.  libc handles these a different way.
114 * Fix rare vm_map_entry exhaustion panic.
115 * Refactor vfs_timestamp() and change default to TSP_USEC.
116 * Allow the 8254 timer to be forced-on for machines which do not support the LAPIC timer during deep-sleep.
117 * Improve calculations for user/sys/intr/idle times.
118 * Implement sysctl kern.tls_extra to help the userland rtld deal with late library loads.
119 * Fix minor scheduler bugs.
120 * Optimize the system call code path.
121 * Major refactor of the vfs_cache code to improve performance and reliability.
122 * Improve cache_fullpath().
123 * Add raw flame_graph sampling support.
124 * Reduce SMP contention during low-memory stress.
125 * Recode the namecache mount transition cache to improve performance.
126 * Reduce excessive rdrand harveesting that was seriously impacting performance on some CPUs (rdrand is microcoded and concurrent per-cpu use does not fully scale on many CPUs).
127 * Major revamp of jail support and related options.  Restructure the jail.* sysctl tree.  Fix broken port-matching code, fix loopback interface handling.
128 * Major advancement of VM topology.  Primarily change over to an extent-based representation and remove pv_entry's for terminal PTEs.  Not yet extended to pmap_enter().
129 * Create new linker segments for e.g. read-mostly globals and other partitioning.
130
131
132 ### Filesystems
133
134 * HAMMER2 - multiple cleanups and fixes
135 * HAMMER2 - initial multi-volume support (multi-local disk, not networked multi-master)
136 * HAMMER2 - Fix rename over empty directory issue.
137 * HAMMER2 - Volume expansion support (hammer2 growfs directive added).
138 * HAMMER2 - Update ctime upon chmod().
139 * HAMMER2 - Fix a serious de-duplication bug.
140 * TMPFS - Significant performance enhancements.
141 * TMPFS - Fix two directory-entry races.
142 * TMPFS - Fix a file truncation bug.
143 * MSDOSFS: last sector read bug fixed.
144 * non-GPL ext2 filesystem support added.
145 * Refactor VOP_GETATTR_LITE() a bit for performance and portability.
146   
147 ### Networking
148
149 * Support added for newer Intel I219 ethernet controllers.
150 * re(4) updated to Realtek's re-196.04, plus misc fixes.
151 * em/emx(4) updated to Intel's em-7.7.8 with support for I219 LM15~19 and I219 V15~19.
152 * bnx: Support 57764, 57767 and 57787.
153 * bnx: A multitude of fixes made.
154 * Add AF_ARP support.
155 * Fix panic after route purge.
156 * Fix numerous issues related to if_tap and if_tun cloning.
157 * Attempt to fix the TCP ISN generator in the face of very fast port reuse.
158
159 ### Graphics
160
161 * Multiple updates to the i915 driver.
162 * DRM system now matches Linux 4.10.17.
163 * Additional stability fixes to i915.
164
165 ### Driver updates
166
167 * Serial port default speed is changed from 9600 to 115200.
168 * amdsmn, amdtemp added.
169
170 ### Userland
171
172 * autofs - fix absolute path when creating a mountpoint.
173 * calendar - Rewrite to support Chinese and Julian calendars, various enhancements.
174 * cpdup - Now uses lchmod(), lutimes(), and lchflags() when available.
175 * cpdup - Use POSIX-defined timespec fields in a more portable manner.
176 * disklabel - Add -x and -xx label expansion options.
177 * ifconfig - Support filtering output by interface group.
178 * ifconfig - Add -f options
179 * ifconfig - Many miscellaneous enhancements.
180 * pkill(1): Add option -T.
181 * shutdown(8), reboot(8), printf(1), test(1), sh(1) updated to match FreeBSD.
182 * games ching, gomoku, monop, and cgram imported from NetBSD.
183 * Multiple ifconfig updates.
184 * talk and talkd updated.
185 * multiple updates to pciconf, ACPICA, and tzdata.
186 * mounttmpfs - Add utility to help support /tmp and /var/run tmpfs's.
187 * mountd - Turn on SO_REUSEADDR if a specific port is specified.
188 * sh - resynchronize /bin/sh from FreeBSD w/ many fixes.
189 * libefivar, efivar, uefisign synced with FreeBSD.
190 * efidp, efibootmgr imported.
191 * gpt - fix corruption in device_name string which caused gpt to sometimes fail.
192 * gpt - Add 'gpt expand' directive
193 * grdc - Improve scrolling timestamp precision.
194 * pciconf - implement -e and -B options
195 * od - Fix long double and long int format output and alignment.
196 * killall now handles -h and -? properly.
197 * top, vmstat, who, rwhod, uptime - fix uptime calculation.
198 * daemon(8) understands log rotation.
199 * stdbuf(1), getaddrinfo(1) and timeout(1) added.
200
201 ### Libraries
202
203 * pthreads - add support for pthread_getname_np() and other features.
204 * pthreads - reduce type pollution.
205 * pthreads - respect RLIMIT_STACK for the main thread's stack.
206 * c++ - Execute new atexit() destructors during __cxa_finalize()
207 * libaura fixes
208 * libc - typeing fixes for ualarm() and usleep()
209 * libc - Add unlocked versions of stdio functions
210 * libc - Make signal names upper-case (posix compat).
211 * libc - Refactor printf() (from FreeBSD)
212 * libc - Provide __udivti3() for intermediate 128-bit calculations.
213 * libc - Fix serious bug in nmalloc (malloc implementation).
214 * libc - Use a fixed blocksize for the DB hash and btree methods, significantly improving performance.
215 * libstdbuf - Import from FreeBSD
216 * libutil - Add sockaddr_snprintf() from NetBSD
217 * terminfo - Drop repeat-character capability from 'xterm-new'.  Fixes mis-generated output in some situations that can lead to output corruption in nvi.
218
219 ### Miscellaneous
220
221 * Many manual page fixes
222 * Make the initrd subsystem more termcap-friendly
223 * Remove the obsolete dev_mkdb()
224 * Many fixes to the nrelease build.
225 * Allow special characters in passwords created via the installer.
226
227 ### DSynth work
228
229 * dsynth now allows ports-mgmt/pkg to be explicitly specified
230 * dsynth now supports zstd
231 * Report additional information in the build output.
232 * Warn the user if the world and kernel are out of sync.
233 * Set OPSYS according to detection or the profile config.
234 * Now collects and presents meta-node statistics.
235 * Now deletes obsolete packages on 'prepare-system'.
236 * Log the portdir for all bulk-scan errors.
237 * Fix count mismatch issues and binary pkg deletion issues.
238 * dsynth now automatically runs itself at nice 10 by default.
239 * tune max_load and other heuristics to handle a wider range of machine capabilities automatically.
240 * retune the pkg dependency memory target heuristic.
241 * Get ccache support working.
242 * Fix a stack buffer in dequote() that was causing corruption.
243
244 ### Various tools have been upgraded in the base system:
245
246 * awk updated to 20200612.
247 * bmake updated to 20210206.
248 * cgram synced with NetBSD
249 * dhcpcd updated to 9.4.0.
250 * diffutils updated to 3.7.
251 * dma updated to 0.13+.
252 * dialog updated to 1.3-20200327.
253 * dsynth added support for zstd compression.
254 * file updated to 5.39.
255 * grep updated to 3.4.
256 * less updated to 551.
257 * less wrappers added for various compression types. 
258 * ldns/drill updated to 1.7.1.
259 * libressl updated to 3.2.5.
260 * libedit updated to 2019-12-31.
261 * libpcap updated to 1.9.1.
262 * libarchive updated to 3.4.3.
263 * xz updated to 5.2.5.
264 * openssh updated to 8.3p1.
265 * ncurses updated to 6.2-20200212.
266 * nvi2 updated to 2.2.0.
267 * openresolv updated to 3.12.0.
268 * tcplay updated to 3.3.
269 * tcpdump updated to 4.9.3.
270 * tcsh updated to 6.22.02.
271 * uname - remove (never worked) varsym support.
272 * vmstat - make kmalloc zone display more readable (-m)
273 * wpa_supplicant updated to 2.9
274 * zstd 1.4.8 added to base.
275 * Prep work for -fno-common becoming a compiler default.
276
277 ### Compiler status
278
279 * Currently using GCC 8 by default, with GCC 4.7 built but not used as fallback.  
280 * A multitude of header inclusion fixes to improve portability.
281 * Adjust C++ headers to survive -Wsystem-headers option.
282
283 ### Package updates
284
285 * A full set of new binary packages has been built for 6.0, available through the `pkg(8)` tool.