# DragonFly Release 2.4 - XXX $date The DragonFly 2.4 release is here! XXX release text here 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). 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 pkgsrc support in this release. ## Availability 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. ### MD5 sums * XXX ### pkgsrc packages 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`. 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: # pkg_search -d ## DragonFly 2.4.0 Release Notes ##THE ORDER OF THE FOLLOWING ITEMS IS (MOSTLY) ALPHABETICAL. PLEASE TRY TO KEEP THE ORDER IF POSSIBLE! ### Release Improvements > ### Kernel changes * acpi(4): Import acpica-unix-20090521. * acpi(4): Improved power & frequency management for cpus. * acpi(4): Significantly improved APIC support. * buf/bio: New read-prioritizing bioq sort algorithm. The new algorithm does a much better job prioritizing reads over writes and also contains features to avoid starving-out writes. It works best with CAM based drivers but NATA uses some of its functionality too. * buf/bio: Make biowait(), getpbuf(), and most other buf/bio functions MPSAFE. * buffer-cache: Improved pipe-lining for writes. * devfs(5): Replaced the static /dev directory with a dynamic device file system written by Alex Hornung during the Google Summer of Code 2009. * All block devices now auto-probe their slices and partitions. * All block devices now auto-probe serial numbers and may be mounted and otherwise referenced by serial number. * loader.conf now supports specifying the root device by serial number. * Autocloning support for cloning devices such as VN. * ddb(4): Fix an IPI messaging lockup which can occur while in ddb(4). * disklabel64(5): Add UFS + HAMMER boot support (was previously just HAMMER boot support). * drm(4): Sync code with latest from FreeBSD. * ext2fs: Support variable inode size (from FreeBSD). * mountctl/mount -v: New infrastructure for reporting mount flags. * NFS * Rewrite the client-side RPC code. The kernel now creates two kernel threads for each NFS mount, one handles reading from the socket and the other handles writing to the socket. A virtually unlimited number of RPCs may be in-flight at any given moment. * Use TCP mounts by default as the new RPC mechanics can now trivally blow out UDP sockbufs. * Hugely improved client-side performance. * Fix fsx test regressions. * Fix linux compatibility issues (fix bugs in readdirplus) * msdos(5): Fixed a number of bugs. * pci(4): Sync code with FreeBSD 7.2. * pipe(2): Pipes are now 100% MPSAFE. * Add new cred/privilege infrastructure for jail and general use. * Consolidate VOP access tests in vop_helper_access(). * usched_set: Add USCHED_CPU_GET for retrieving the current CPU. * revoke(2): Reimplemented the revoke code. * pty: Add Unix98 ptys (/dev/ptmx and /dev/pts/*). * sound: add autocloning support for dsp devices. * tcp: Fix a reestablishment bug for TCP connections if one side reboots without closing the connection. A port pair could wind up becoming unusable for upwards of an hour or longer. * tcp: Improve performance by implementing an automatic high-water mark when it is not otherwise specified, allowing hysteresis between the kernel and the tcp protocol stack. * tsleep: New tsleep interlock mechanics implemented to fix races. * vkernel(7) * Fix entry into ddb(4) when running a SMP vkernel. Fixes stop/cont. * Fix startup race with I/O cothread support. * Fix some issues - enable ithread preemption, races, and more. * Fix races in stopsig() and ipisig(). * libkvm now understands live vkernels. * libkvm: Add support for accessing a running vkernel's memory by reading its `/proc/$pid/mem` file. * vn(4): Add autocloning support * Fix permissions check for utimes() - owner can call even if u-w. * Replace the old BSD malloc code with a port of our slab allocator. * Fix various clang compile issues * Add HPET cputimer. * Add lapic timer and enable it by default. * Add kernel-layer support for chflags checks, remove (most) from the VFS layer. > ### HAMMER changes * Return shorter-form softlinks "@@-1:%05d" when appropriate. * Add a B-Tree rebalancing feature (hammer rebalance). * Fix improper cred checks for utimes(). * Fix edge case in mirroring code. * Fix nohistory mounts and a rare lost inode issue. * Fix sticky bit directory handling for deletions. * Break-up initial mirroring batch so restarts do not start from scratch. * Better CRC handling, bad-file handling. * Refactor merged search function to try to avoid missed entries. * Limit recursion for long directory chains, update mtime/ctime. * Improve performance for large write loads. * Improve directory layout (in-place upgrade to version 2). * Allow hammer -b to specify bytes per second if no suffix is supplied. * Extract PFS null mounts from anywhere in the filesystem, instead of just from the `/pfs` subdirectory. * Add hammer info directive which prints useful info about a hammer filesystem. > ### Hardware changes (non-networking) * ath(4): Add open source HAL code (from FreeBSD) and make it possible to build it into the kernel. * cxm(4): Add new driver for Hauppauge PVR-250/350 video capture cards (from FreeBSD). * kbdmux(4): Add multiple keyboards on the console via keyboard multiplexer (from FreeBSD). * mpi(4): Sync the driver with the latest version from FreeBSD. * mpt(4): Sync the driver with the latest version from FreeBSD. * ahci(4): Implement a native AHCI driver with full hot-plug and port multiplier support. Also implement ATA pass-through. Uses CAM. * sili(4): Implement a native Silicon Image 3132 driver with full hot-plug and port multiplier support. Also implement ATA pass-through. Uses CAM. > ### Hardware changes (networking) * ae(4): Add driver for Attansic/Atheros L2 FastEthernet (from FreeBSD). * bpf(4): Add autocloning support * em(4): Synced with Intel's em-6.9.6 (from FreeBSD). * emx(4): Copy of em(4) which supports only 8257{1,2,3} parts. * iwi(4): Upgrade to use 3.0 firmware and use firmware(9) API to load firmware. * mxge(4): Add driver for mxge 10GigE (from FreeBSD + minor adjustments) * tap(4): Add ifclone support and autoclone support. * vke(4): Convert from kqueue API to cothread API. * Turn on adaptive MPSAFE for network threads, and MPSAFE for IP and ARP. * RSS: Add Toeplitz hash function. * Split ifnet serializer. * Add ifpoll, which support hardware TX/RX queues based polling. > ### Userland changes * Fix a huge number of compiler warnings for various userland utilities. * battd(8): Fix some errors and improve the man page * compilers.conf(5): This file allows to configure ''external'' compilers (e.g. LLVM/clang) for usage with the DragonFly build(7) system. * cpdup(1): Allow uid/gid/flags changes to fail if running as user. * env(1): unbreak build of 2.2 release branch under HEAD. * expr(1): Add support for -- as required by POSIX. * fetch(1): Synced with FreeBSD. * devtab: As devfs(5) support access to devices via serial numbers, `/etc/devtab` can be used to map serial number to human readable labels. * devfsctl(1): New utility to add/remove/control devfs(5) rules. * dma(1): The DragonFly Mail Agent is now more robust and reliable. * ifconfig(8): Add static ARP support. * installer: Fix the bug when used from console with the LiveDVD. * installer: Fixed various bugs and cleaned the code. * libc * Synced various parts with FreeBSD and NetBSD. * Add some new system calls. * Add locale support for static binaries. * Apply FreeBSD-SA-09:07.libc - fix information leak in db(3). * libfetch(3): Synced with FreeBSD. * libiconv: Add support for static binaries. * libm * Imported complex arithmetic functions from {Net,Free}BSD. * Imported maximum, minimum, and positive difference functions from FreeBSD. * magic(3): Fix program name extraction from core dumps. * mount_msdos(8): Add UTF8 support. * mount_ntfs(8): Add UTF8 support. * ncal(1): Highlight current day (from FreeBSD). * pax(1): Add a -O option: force one volume (from NetBSD). * pkgsrc: pkgsrc GIT repo now shipped instead of CVS repo. * telnetd(8): Apply FreeBSD-SA-09:05.telnet - fix environment based code execution vulnerability. * window(1): Synced with NetBSD. * vkentd(8): Add features, allow IP address to be set in unsecure mode, allow address 0. * smbfs(8): Add UTF8 support. * syslogd(8): Sync with FreeBSD. * telnet(1): Autologin is now disabled by default. * undo(1) * Fix @@ formatting used by undo -ad and fix duplicate test * Use a Red-Black tree to track HAMMER transaction IDs. * It can now detect all prior replacements of a file. * Add an indexing feature to the -t option. * unix98 ptys * Implement posix_openpt, ptsname, grantpt, unlockpt * Change openpty(3) to use unix98 ptys by default and let it fall back to bsd ptys if any problem occurs. * vinum(8): Support for geometries larger than 2 TB was added. > ### amd64 related changes * From Jordan Gordeev's Google Summer of Code 2009 project. * Kernel can now map 512G if KVA space. * Kernel now supports the entire user VM space. * Signal stacks, handlers, dynamic binaries, compiler warnings, etc. * Misc fixes for cross-building amd64. * Add a build system for amd64 build/test environments. * Both cross-build and native world/kernel builds work. * Pkgsrc builds are ramping up. * Load testing using parallel pkgsrc bulk builds succeeded! * SMP now works! > ### Removals * GNU cpio(1) was removed. The BSD licensed rewrite based on libarchive(3) is now default. * GNU GCC 3.4 was removed. GCC 4.1.2 and 4.4.1 remain in base. * Kerberos/heimdal was removed. Use the version from pkgsrc (`security/heimdal`). * iwicontrol(8) was removed. The iwi(4) firmware is now loaded automatically. > ### Contributed Software * Update file to version 5.03. * GCC 4.4.1 was added to base, but is not enabled by default. * Update less to version 429. * Update OpenSSH to version 5.2p1. * Update OpenSSL to version 0.9.8k. * Sync zoneinfo database with tzdata2009l.