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