| 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§ion=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§ion=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 |