(no commit message)
[ikiwiki.git] / release24 / index.mdwn
1 # DragonFly Release 2.4 - XXX $date
2
3 The DragonFly 2.4 release is here! XXX release text here
4
5 Three release options are now available:  Our bare-bones CD ISO, a DVD ISO which includes a fully operational X environment, and a bare-bones bootable USB disk-key image (less than 512 M).
6
7 In addition we will for the first time be shipping a 64-bit ISO and USB disk-key image.  64-bit support is stable but there will only be limited
8 pkgsrc support in this release.
9
10 ## Availability
11
12 The release ISO images should be available on most of the [[mirrors|mirrors]]. If the ISO is not available on a certain mirror, please try another one or download it from the DragonFly FTP server.
13
14 ### MD5 sums
15
16 * MD5 (dfly-2.4.0_REL.img.gz) = d879282c1ed9d1b36282c4b55aa13b83
17 * MD5 (dfly-2.4.0_REL.iso.gz) = 1a7d1980671e96564d74e9c128d80009
18 * MD5 (dfly-amd64-2.4.0_REL.iso.gz) = 226139fe8127b406d1bf8239eef420eb
19 * MD5 (dfly-gui-2.4.0_REL.iso.gz) = 219eb1f640d2b8034b685a74645fef23
20 * MD5 (dfly-2.4.0_REL.img) = 2ac933f712a9138af1fba712c21cc80a
21 * MD5 (dfly-2.4.0_REL.iso) = 495183dfe161af066935f6ffa8093556
22 * MD5 (dfly-amd64-2.4.0_REL.iso) = f06135a066ef8e5b8d413d65371d98c8
23 * MD5 (dfly-gui-2.4.0_REL.iso) = 191fc66f6822af04eff9b3fd0693dbfc
24
25 ### pkgsrc packages
26
27 We offer over 6000 pre-built [pkgsrc](http://www.pkgsrc.org) packages for this release.   The [pkg_radd(1)](http://leaf.dragonflybsd.org/cgi/web-man?command=pkg_radd&section=ANY) utility may be used to download pre-built binary packages.  By default this script will query the main package site for a random redirect to one of our mirrors.  The path can be overridden by setting BINPKG_SITES in `/etc/settings.conf`.
28
29 To get a list of all packages, let [pkg_search(1)](http://leaf.dragonflybsd.org/cgi/web-man?command=pkg_search&section=ANY) download the summary file for that release:
30
31     # pkg_search -d
32
33 ## DragonFly 2.4.0 Special Installation and Upgrade Notes
34
35 2.4.0 is a bigger release than normal.  The single most invasive change is the introduction of DEVFS.
36 The /dev filesystem is now mounted by the kernel after it mounts the root filesystem.  All major and
37 minor numbers have changed and the old /dev is no longer meaningful.  People who use jails or chroots
38 will need to adjust their scripts to either mount_null /dev into their jails and chroots or to make
39 independent DEVFS mounts via mount_devfs into their jails and chroots.
40
41 Within DEVFS the entire tty/pty scheme has changed.  Users upgrading from 2.2 need to be absolutely
42 sure to upgrade their world and kernel at the same time or fireworks may ensue.
43
44 With this release the libc major number has also been bumpedfrom 6 to 7.  Applications should remain
45 fairly compatible across the upgrade but we recommend that all applications be recompiled and/or
46 fresh binary packages be loaded from pkgsrc.
47
48 With this release our new native AHCI driver is now standard.  If your system is AHCI-capable and
49 AHCI-enabled the new driver will take over from NATA and drives may wind up being renamed due to
50 this. For example, ad6 might become da0.  Any legacy ATA ports will continue to be probed by the NATA
51 driver but their drives may be named differently.  USB mass storage devices will also be numbered starting
52 at 8, for example da8, to avoid conflicting with lower-numbered da* devices.
53
54 DEVFS now probes serial numbers.  The serial numbers for all ATA, SATA, and SCSI devices will be
55 recorded by DEVFS in /dev/serno/<SERIALNUMBER>.  USB mass storage devices are more problematic
56 as the on-device controllers typically do not implement serial number reporting.  Users are
57 encouraged to use /dev/serno/<SERIALNUMBER> paths in their /etc/fstab and /etc/rc.conf, and
58 to even specify the root mount in /boot/loader.conf using a devfs-relative serial number
59 path such as: vfs.root.mountfrom="hammer:serno/AB34394.s1d".  The use of serial numbers to
60 specify the location of mass storage devices allows you to attach those devices in virtually any
61 manner without confusing the system.  This is particularly important as SATA Port Multiplier
62 enclosures and systems with large numbers of SATA and E-SATA connectors become prevalent.
63
64 So upgrading to 2.4.x will certainly be a bit painful for users of 2.2.x or earlier releases.  We
65 believe the pain will be well worth the effort.
66
67 ## DragonFly 2.4.0 Release Notes
68
69 ### Release Improvements
70
71 > ### Kernel changes
72
73  * acpi(4): Import acpica-unix-20090521.
74  * acpi(4): Improved power & frequency management for cpus.
75  * acpi(4): Significantly improved APIC support.
76  * buf/bio: New read-prioritizing bioq sort algorithm.  The new algorithm does a much better job
77    prioritizing reads over writes and also contains features to avoid starving-out writes.  It
78    works best with CAM based drivers but NATA uses some of its functionality too.
79  * buf/bio: Make biowait(), getpbuf(), and most other buf/bio functions MPSAFE.
80  * buffer-cache: Improved pipe-lining for writes.
81  * devfs(5): Replaced the static /dev directory with a dynamic device file system written by Alex Hornung during the Google Summer of Code 2009.
82   * All block devices now auto-probe their slices and partitions.
83   * All block devices now auto-probe serial numbers and may be mounted and otherwise referenced by serial number.
84   * loader.conf now supports specifying the root device by serial number.
85   * Autocloning support for cloning devices such as VN.
86  * ddb(4): Fix an IPI messaging lockup which can occur while in ddb(4).
87  * disklabel64(5): Add UFS + HAMMER boot support (was previously just HAMMER boot support).
88  * drm(4): Sync code with latest from FreeBSD.
89  * ext2fs: Support variable inode size (from FreeBSD).
90  * mountctl/mount -v: New infrastructure for reporting mount flags.
91  * NFS
92   * Rewrite the client-side RPC code.  The kernel now creates two kernel threads
93     for each NFS mount, one handles reading from the socket and the other handles
94     writing to the socket.  A virtually unlimited number of RPCs may be in-flight
95     at any given moment.
96   * Use TCP mounts by default as the new RPC mechanics can now trivally blow
97     out UDP sockbufs.
98   * Hugely improved client-side performance.
99   * Fix fsx test regressions.
100   * Fix linux compatibility issues (fix bugs in readdirplus)
101  * msdos(5): Fixed a number of bugs.
102  * pci(4): Sync code with FreeBSD 7.2.
103  * pipe(2): Pipes are now 100% MPSAFE.
104  * Add new cred/privilege infrastructure for jail and general use.
105  * Consolidate VOP access tests in vop_helper_access().
106  * usched_set: Add USCHED_CPU_GET for retrieving the current CPU.
107  * revoke(2): Reimplemented the revoke code.
108  * pty: Add Unix98 ptys (/dev/ptmx and /dev/pts/*).
109  * sound: add autocloning support for dsp devices.
110  * tcp: Fix a reestablishment bug for TCP connections if one side reboots without
111    closing the connection.  A port pair could wind up becoming unusable for
112    upwards of an hour or longer.
113  * tcp: Improve performance by implementing an automatic high-water mark when
114    it is not otherwise specified, allowing hysteresis between the kernel and
115    the tcp protocol stack.
116  * tsleep: New tsleep interlock mechanics implemented to fix races.
117  * vkernel(7)
118   * Fix entry into ddb(4) when running a SMP vkernel.  Fixes stop/cont.
119   * Fix startup race with I/O cothread support.
120   * Fix some issues - enable ithread preemption, races, and more.
121   * Fix races in stopsig() and ipisig().
122   * libkvm now understands live vkernels.
123   * libkvm: Add support for accessing a running vkernel's memory by reading its `/proc/$pid/mem` file.
124  * vn(4): Add autocloning support
125  * Fix permissions check for utimes() - owner can call even if u-w.
126  * Replace the old BSD malloc code with a port of our slab allocator.
127  * Fix various clang compile issues
128  * Add HPET cputimer.
129  * Add lapic timer and enable it by default.
130  * Add kernel-layer support for chflags checks, remove (most) from the VFS layer.
131
132 > ### HAMMER changes
133
134  * Return shorter-form softlinks "@@-1:%05d" when appropriate.
135  * Add a B-Tree rebalancing feature (hammer rebalance).
136  * Fix improper cred checks for utimes().
137  * Fix edge case in mirroring code.
138  * Fix nohistory mounts and a rare lost inode issue.
139  * Fix sticky bit directory handling for deletions.
140  * Break-up initial mirroring batch so restarts do not start from scratch.
141  * Better CRC handling, bad-file handling.
142  * Refactor merged search function to try to avoid missed entries.
143  * Limit recursion for long directory chains, update mtime/ctime.
144  * Improve performance for large write loads.
145  * Improve directory layout (in-place upgrade to version 2).
146  * Allow hammer -b to specify bytes per second if no suffix is supplied.
147  * Extract PFS null mounts from anywhere in the filesystem, instead of just from the `/pfs` subdirectory.
148  * Add hammer info directive which prints useful info about a hammer filesystem.
149
150 > ### Hardware changes (non-networking)
151
152  * ath(4): Add open source HAL code (from FreeBSD) and make it possible to build it into the kernel.
153  * cxm(4): Add new driver for Hauppauge PVR-250/350 video capture cards (from FreeBSD).
154  * kbdmux(4): Add multiple keyboards on the console via keyboard multiplexer (from FreeBSD).
155  * mpi(4): Sync the driver with the latest version from FreeBSD.
156  * mpt(4): Sync the driver with the latest version from FreeBSD.
157  * ahci(4): Implement a native AHCI driver with full hot-plug and port multiplier support.
158    Also implement ATA pass-through.  Uses CAM.
159  * sili(4): Implement a native Silicon Image 3132 driver with full hot-plug and port multiplier support.
160    Also implement ATA pass-through.  Uses CAM.
161
162 > ### Hardware changes (networking)
163
164  * ae(4): Add driver for Attansic/Atheros L2 FastEthernet (from FreeBSD).
165  * bpf(4): Add autocloning support
166  * em(4): Synced with Intel's em-6.9.6 (from FreeBSD).
167  * emx(4): Copy of em(4) which supports only 8257{1,2,3} parts.
168  * iwi(4): Upgrade to use 3.0 firmware and use firmware(9) API to load firmware.
169  * mxge(4): Add driver for mxge 10GigE (from FreeBSD + minor adjustments)
170  * tap(4): Add ifclone support and autoclone support.
171  * vke(4): Convert from kqueue API to cothread API.
172  * Turn on adaptive MPSAFE for network threads, and MPSAFE for IP and ARP.
173  * RSS: Add Toeplitz hash function.
174  * Split ifnet serializer.
175  * Add ifpoll, which support hardware TX/RX queues based polling.
176
177 > ### Userland changes
178
179  * Fix a huge number of compiler warnings for various userland utilities.
180  * battd(8): Fix some errors and improve the man page
181  * compilers.conf(5): This file allows to configure ''external'' compilers (e.g. LLVM/clang) for usage with the DragonFly build(7) system.
182  * cpdup(1): Allow uid/gid/flags changes to fail if running as user.
183  * env(1): unbreak build of 2.2 release branch under HEAD.
184  * expr(1): Add support for -- as required by POSIX.
185  * fetch(1): Synced with FreeBSD.
186  * devtab: As devfs(5) support access to devices via serial numbers, `/etc/devtab` can be used to map serial number to human readable labels.
187  * devfsctl(1): New utility to add/remove/control devfs(5) rules.
188  * dma(1): The DragonFly Mail Agent is now more robust and reliable.
189  * ifconfig(8): Add static ARP support.
190  * installer: Fix the bug when used from console with the LiveDVD.
191  * installer: Fixed various bugs and cleaned the code.
192  * libc
193   * Synced various parts with FreeBSD and NetBSD.
194   * Add some new system calls.
195   * Add locale support for static binaries.
196   * Apply FreeBSD-SA-09:07.libc - fix information leak in db(3).
197  * libfetch(3): Synced with FreeBSD.
198  * libiconv: Add support for static binaries.
199  * libm
200   * Imported complex arithmetic functions from {Net,Free}BSD.
201   * Imported maximum, minimum, and positive difference functions from FreeBSD.
202  * magic(3): Fix program name extraction from core dumps.
203  * mount_msdos(8): Add UTF8 support.
204  * mount_ntfs(8): Add UTF8 support.
205  * ncal(1): Highlight current day (from FreeBSD).
206  * pax(1): Add a -O option: force one volume (from NetBSD).
207  * pkgsrc: pkgsrc GIT repo now shipped instead of CVS repo.
208  * telnetd(8): Apply FreeBSD-SA-09:05.telnet - fix environment based code execution vulnerability.
209  * window(1): Synced with NetBSD.
210  * vkentd(8): Add features, allow IP address to be set in unsecure mode, allow address 0.
211  * smbfs(8): Add UTF8 support.
212  * syslogd(8): Sync with FreeBSD.
213  * telnet(1): Autologin is now disabled by default.
214  * undo(1)
215   * Fix @@ formatting used by undo -ad and fix duplicate test
216   * Use a Red-Black tree to track HAMMER transaction IDs.
217   * It can now detect all prior replacements of a file.
218   * Add an indexing feature to the -t option.
219  * unix98 ptys
220   * Implement posix_openpt, ptsname, grantpt, unlockpt
221   * Change openpty(3) to use unix98 ptys by default and let it fall back to bsd ptys if any problem occurs.
222  * vinum(8): Support for geometries larger than 2 TB was added.
223
224 > ### amd64 related changes
225
226  * From Jordan Gordeev's Google Summer of Code 2009 project.
227  * Kernel can now map 512G if KVA space.
228  * Kernel now supports the entire user VM space.
229  * Signal stacks, handlers, dynamic binaries, compiler warnings, etc.
230  * Misc fixes for cross-building amd64.
231  * Add a build system for amd64 build/test environments.
232  * Both cross-build and native world/kernel builds work.
233  * Pkgsrc builds are ramping up.
234  * Load testing using parallel pkgsrc bulk builds succeeded!
235  * SMP now works!
236
237 > ### Removals
238
239  * GNU cpio(1) was removed. The BSD licensed rewrite based on libarchive(3) is now default.
240  * GNU GCC 3.4 was removed. GCC 4.1.2 and 4.4.1 remain in base.
241  * Kerberos/heimdal was removed. Use the version from pkgsrc (`security/heimdal`).
242  * iwicontrol(8) was removed. The iwi(4) firmware is now loaded automatically.
243
244 > ### Contributed Software
245
246  * Update file to version 5.03.
247  * GCC 4.4.1 was added to base, but is not enabled by default.
248  * Update less to version 429.
249  * Update OpenSSH to version 5.2p1.
250  * Update OpenSSL to version 0.9.8k.
251  * Sync zoneinfo database with tzdata2009l.