Changes made between OpenBSD 3.6 and OpenBSD-current
This is a partial list of the major machine-independent changes
(i.e., these are the changes people ask about most often). Port
specific changes have also been made, and are sometimes mentioned
in the pages for the specific platforms.
Changes to the ports collection are documented
here.
Note: Problems for which patches exist are marked in red.
We are working on OpenBSD-current.
The following list sums up (almost) all the changes made up to October 31.
- Compatibility tweaks to ugen(4) and uhid(4) from NetBSD.
- Some ehci(4) fixes from NetBSD.
- Add BCM5705K and BCM5750/5751 support to bge(4). From FreeBSD.
- Handle more gracefully corrupt keys in ssh(1) authorised_keys files.
- Fix SIGWINCH handling for multiplexed ssh(1) connections.
- Switch powerpc to use GCC 3.x.
- Import and merge heimdal-0.6.3.
- A couple of reliability fixes for dc(4). From FreeBSD.
- Give carp(4) interfaces their own type, IFT_CARP.
- Pass the right type to snprintf(3) in asctime(3) (PR#3970).
- Modulate the TCP timestamp by a random value for each connection.
- Remove assumption that a destination is on-link if the default router list is empty (RFC2461 §5.2).
- Updates and fixes to ipw(4) and iwi(4).
- Add DWARF-based exception handling support for shlibs and dynamic executables in gcc(1).
- Add support for setre[gu]id(2) under Linux emulation.
- Use clock_getres(2) to calculate the precision in ntpd(8), and fill in the precision field when sending server-mode responses.
- In crtbegin, make __register_frame_info() a weak symbol.
- In bgpctl(8), try to show the peer description instead of the IP address in 'show summary' view. Revert to IPs with new -n option.
- More work on mpt(4).
- In the ffs code, don't assume a block is allocated if bread(9) or cg_chkmagic() fails.
- Change the new getproto*_r(3) and getserv*_r(3) functions' return value to match the IBM/Digital API.
- Allow rdate(8) to accept replies with an NTP version less than 4.
- Minimise the delta with FreeBSD for aic(4), ahc(4) and ahd(4).
- Start work on update support in pkg_add(1).
- Correct some missing braces after an 'if' statement in xl(4).
- Have ntpd(8) server mode return the stratum of the currently preferred peer plus one.
- Add neighbor solicitation/advertisement messages into/out of the default IPv6 pf(4) rulebase loaded by rc(8).
- Backout the change of amd(8) from select(2) to poll(2) due to problems.
- Backport some fixes from lynx-2.8.6dev.7b preventing crashes due to memory exhaustion.
- Make the xdm(1) greeter able to use non-default login classes (X.Org bugzilla #1676).
- Change all the route(8) commands in netstart(8) to use -qn and so not do DNS lookups.
- Memleak fixes and cleanup in isakmpd(8).
- Merge changes from mod_ssl 2.8.20, fixing CAN-2004-0885.
[Applied to stable]
- New ipw(4) and iwi(4) drivers, and ipwcontrol(8) and iwicontrol(8) tools, supporting Intel 2100/2200BG/2915ABG wireless devices. Disabled and non-operational due to silly distribution restrictions on the device firmware files.
- Support interrupt transfers on USB 2 controllers, allowing the use of USB 2 hubs with USB 2 hardware.
- Disconnect ssh(1) sessions on out-of-range message types.
- Pretty up bgpd(8)'s display of groups.
- Allow bgpd(8) neighbor definitions to be dependent on interface state. If used with a carp(4) interface, for example, this can be used to reduce failover time.
- Add suspend/resume support to ehci(4).
- Add -e command-line expression support to bc(1).
- Only set up the default IPv6 pf(4) rules on IPv6-enabled systems.
- Update timezone data to tz(code|data)2004e from ftp://elsie.nci.nih.gov/.
- Add a progress meter to pkg_add(1).
- Reduce the amount of information pkg_add(1) displays by default.
- Add -e option to dc(1) to evaluate expressions on the command line.
- Defer the IP TTL decrement so that an ICMP error with the IP header embedded doesn't have a bad checksum.
- Add strnunvis(3), a bounded version of strunvis(3).
- Add reentrant getproto*_r(3) and getserv*_r(3) functions. Adapted from NetBSD.
- Much cleanup in pciide(4), and some SATA fixups.
- Only delete users and groups with -c in pkg_delete(1).
- Implement -q and tidy up ICMP support in tcpdump(8).
- In ld.so(1), better handle current directory searches listed in LD_LIBRARY_PATH.
- Add support for the HTTP proxy CONNECT method to nc(1).
- In st(4), fix bogus 'Tape block size...' errors from restore(8) and look for the SDEV_OPEN flag in the right place.
- In netstat(1) -r, show only 0.0.0.0/0 as the default route, i.e. stop ignoring the netmask.
- In df(1), don't display the header line if no usage lines are shown.
- Display the ip_len field in tcpdump(8) with the -v option.
- Support some new device types in bktr(4). From FreeBSD and NetBSD.
- Only use IPTOS_LOWDELAY on IPv4 sockets in ntpd(8).
- Parse pf(4) anchor names in tables the same way as anchor names in rules.
- Use the arch-dependent MAXSSIZ instead of an arbitrary fixed value as the upper limit for sysctl(8) kern.stackgap_random.
- Performance fixes to dc(4). From FreeBSD.
- Handle gracefully a missing EEPROM in an sk(4) device.
- Fix a missing brace following an 'if' statement in named(8)'s libdns (ISC #1744).
- Use IPTOS_LOWDELAY in ntpd(8).
- Allow newfs(8) to create valid filesystems with any legal combination of block and fragment sizes.
- Print the expire route metric as a signed value in route(8).
- Let cardbus RealTek 8138 devices attach to rl(4). More work to do.
- New @sysctl keyword for packing lists.
- Set the rootdelay in ntpd(8) server replies.
- Improve ntpd(8)'s compatiblity with NTP v3 and earlier.
- A number of fixes in ntpd(8).
- Sync the installer's install-from-tape code with reality, add a few user interface and error-checking enhancements.
- Change dhcrelay(8) to use a UDP socket for communication with the DHCP servers. The old bpf(4) method was forwarding packets out of the wrong interface.
- Defer display of MESSAGE files until all packages have been installed.
- Many fixes and cleanups in the package tools.
- Add support for an 'UNMESSAGE' file to the package tools, used to show the information a package would display on uninstallation without actually uninstalling it.
- Rewrite interface groups code, placing all groups on a tail queue, and internally referring to a group by pointer instead of by name.
- Remove obsolete -P, -C options and the unimplemented mtree options from the package tools.
- Add support for DWARF2 exception handling to libc.
- Work around an 'overlapped command' issue on ahd(4)-attached devices slower than Ultra-320.
- Inform the softdep code when the mode of an inode(5)'s mode changes. From FreeBSD.
- Fix a busted API call when opening a midi(4) sequencer device.
- Allow nm(1) to work on cross targets of different sizes as well as endianness.
- Don't use 64-bit tests on 32-bit values when testing for void PCI memory regions.
- Add another 500 microseconds of delay after a PHY reset, the DP83840A needs it.
- Add 1000base*X autonegotiation and 1000baseT master-mode support. From NetBSD.
- Update the tail pointer correctly when the hotplug(4) queue is full.
- Remove a null dereference in bgpd(8).
- Fix a couple of buffer overruns in kbd(8).
- Don't ever increment past the end of a message in ipsecadm(8)'s monitor command.
- Add a generic driver, gentbi(4), for Gigabit Ethernet ten-bit interfaces. From NetBSD.
- Add constants to mii.h for 1000base*X autonegotiation, and a constant for 1000baseT nic-to-nic master mode to if_media.h.
- In ssh-agent(1), don't unlink the agent socket if bind(2) fails.
- New -p option and 'p' command to top(1), to show just a single process.
- On Intel-chipped dc(4) devices, share the bus evenly between receive and transmit, improving forwarding performance under heavy load.
- Set the TCP congestion window to two segments instead of one, matching the window size when entering the ESTABLISHED state.
- Unshadow a variable and unbreak tcpdump(8) on carp(4) interfaces.
- Call vsyslog(3) with a priority, not a facility in ifstated(8).
- Drop the spamd(8) default passtime to 25 minutes, so that mailers with a quadratic retry schedule that causes a retry at 26 minutes are allowed through.
- Lots of work on the package tools' new object system.
- Don't reset the chip when attaching an it(4) hardware monitor, stopping the fans going into jet engine mode.
- When sending carp(4) advertisements, protect the call to ip_output() with splsoftnet(9).
- Change the default return code from the spamd(8) greylister from 450 to 451. The latter code works better with mailer clusters, making them more likely to retry from the same IP address the next time.
- Fix a buffer overflow in tput(1) with the -S option.
- Don't allow a peer ID of zero in bgpd(8).
- Handle connection failures more gracefully in the ntpd(8) client.
- New udav(4) driver for Davicom USB DM960-based Ethernet devices. From NetBSD.
- Change the doff_t field in struct iso_dnode to u_quad_t, so that DVDs and other ISO filesystems larger than 2GB can be read.
- Stacks of manpage cleanup.
- Switch amd(8) from select(2) to poll(2).
- Allow for an additional character in the disklabel(8) fstype, so that type ISO9660 isn't truncated.
- Reorganise pkg_add(1) etc.'s packing list items code into a basic class hierarchy.
- In ntpd(8), take the median value for the offset instead of taking an average.
- New nvram(4) driver for i386, read-only for now.
- Remove a marginal mmap(2) optimisation from grep(1) that was causing some newline problems (PR#3940, PR#3941).
- Have diff(1) continually retry getdirentries(2) until our buffer is large enough to store it all.
- Unbust <stdbool.h> for newer gcc(1) versions.
- fseek(3)/ftell(3) and other cleanup in msgs(1).
- Fix an off-by-one when calculating IO space for em(4).
- Don't die in bgpd(8) if socket(2) fails with ENOPROTOSUPPORT for a default listener.
- Fix memory corruption in libdb hash(3) when the cursor page becomes the LRU page.
- Check for accept(2) errors before fork(2)ing the child process in ftpd(8). From FreeBSD.
- Fix a segfault and an off-by-one in lpc(8).
- Get the rl(4) MAC address right on big-endian architectures.
- Add bus_dma(9) magic to rl(4).
- Helpfully display the bogus netmask that pfctl(8) is busy choking on.
- If the YP marker is present in the master.passwd(5) file, have adduser(8) insert new users before it (PR#3727).
- Ethernet autonegotiation fixes to rl(4). From FreeBSD.
- Add ECONNREFUSED to the list of recvfrom(2) errors that don't kill ntpd(8)'s client dispatch function, now that connect(2) is used on the client socket.
- Don't pretend to have an ifmedia structure in le(4), fixing some panics (PR#3407, PR#3661).
- Add back some snprintf(3) string cleaning lost in the BIND 9.3.0 merge.
- Correct a missing NULLification in pf(4), stopping pflog(4) incorrectly attributing states to anchors, and fixing state counter display for pfctl -vvs[nr].
- Some refactoring and shrinkage in the installer.
- Fix a buffer overrun in xman(1) when reading the search string (X.Org bugzilla #1481).
- Clean up disklabel(8) output for modern large disks (based on PR#3847).
- Import and merge ISC BIND 9.3.0, keeping local changes.
- Fix memory leaks in a few lpr(1) error paths.
- Update sudo(8) to version 1.6.8p1.
- Add login_tis(8), supporting TIS Firewall Toolkit authentication.
- Add 'prepend-neighbor' feature to bgpd(8).
- Fix unaligned accesses in rl(4) that were crashing on alphas (PR#3795).
- Let gem(4) handle vlan(4)-sized frames.
- Reorganise mii(4) to use a structure of standard entry points instead of separate function pointers, and add a 'reset' entry point. From NetBSD.
- Remove kx(1) from the tree.
- Nicer buffer size allocation for file(1) (PR#3924).
- Add X support for OpenBSD/sgi.
- Correct an off-by-one in vfprintf(3).
- Fix a crash on free(3) in which(1).
- Add Path MTU Discovery support for ipsec(4)-in-UDP.
- Pass the TCP segment size up to userland for trpt(8) to use.
- Do a connect(2) on client-side sockets in ntpd(8).
- Don't process NAT-T keepalives in isakmpd(8).
[Applied to stable]
- Round off package tools @newuser/@newgroup support by making pkg_delete(1) delete the user/group if no longer needed.
- Drop osi and mask keywords from route(8).
- Change sysctl(3) KERN_INTRCNT_CNT to return a quad instead of an int.
- Add some read(2) and write(2) error checks to route(8).
- Fix ssh(1)'s handling of the -n option in multiplex client mode.
- Have bpf(4)'s kqueue(2) code fill in kn_data with the number of available bytes, like FreeBSD and NetBSD.
- Make sure bgpd(8) and ntpd(8) never send signals to their child processes after handling a SIGCHLD for them.
- Allow midi(4) UARTs that don't support interrupts on output to write blocks larger than MIDI_MAXWRITE.
- Add code (#ifdef'd out by default) to allow 32-bit code using libsa to print 64-bit int values.
- Allow for the link-layer header when deciding whether or not to allocate a cluster in the syncache.
- Add libexpat 1.95.6, an XML parser library, to the tree.
- Remove source-routing support from route(8).
- Initial support for @newuser and @newgroup packing elements in pkg_create(1) and friends.
- If X is running, stop the wsdisplay(4) screen blanker firing when its settings are changed.
- Add 'no-scrub' pf.conf(5) keyword, allowing specific traffic to bypass the normaliser.
- Iconify xconsole(1) in the standard xinit(1) rc file.
- Display route labels with route(8)'s show command.
- Get parameters to m_gethdr(9) the right way round in IPX-in-IP code.
- Fix the no-route pf(4) keyword for IPv6.
- In gzip(1), look for the last instead of the first dot in a filename before tacking on a '.gz' extension, so foo.bar.gz is tried if foo.bar is given on the command line but doesn't exist.
- splx(9) later in brelse(9) to protect flags being set on the buffer.
- Disable dynamic standby on 82550-based fxp(4) cards.
- New vnode(9)-related manual pages for vflushbuf(9) and vwakeup(9).
- Check for waitpid(2) errors in disklabel(8).
- Fix an off-by-one in awi(4)'s WEP algorithm selection code.
- Install PostScript docs for yacc(1).
- Set NOLINT for GNU code, there's just no way it's ever going to work.
- In ntpd(8) with -s, only call settimeofday(2) if the offset is larger than 180 seconds. Otherwise, adjtime(2) can cope with the offset sensibly.
- Move the ntpd(8) startup earlier in /etc/rc(8), and use the -s flag unconditionally.
- New -s flag for ntpd(8), which sets the time using settimeofday(2) before daemonizing. This removes the need to run rdate(8) early in /etc/rc(8).
- In libpthread, allow a thread in the FD[RW]_WAIT states to be suspended.
- Fix the build process for the ahc(4) microcode.
- New %z and %t modifiers to *printf(3) for displaying size_t and ptrdiff_t respectively.
- Add a framework in the package tools to distinguish packages added manually by the user from those added as dependencies for other packages.
- Enable @shell keyword in pkg_add(1) etc., adding and removing an /etc/shells(5) entry as required.
- Make spamlogd(8) respect the -I option, and change its bpf(4) filter so that it only looks at TCP S/SA packets. From PR#3914.
- Update sendmail(8) to version 8.13.1.
- More pcmcia(4) CIS fixes. From NetBSD.
- Set the keyboard encoding earlier in /etc/rc(8).
- Clean up state creation and destruction reference counting in pf(4) and pfsync(4), fixing problems with adaptive timeouts, max-states limits and rule leaks.
- Fix a segfault in hack(6) (PR#3923).
- Reset MINCLSIZE back to the old value so that clusters are created as soon as the packet is bigger than the standard header size. This is a conservative measure for this release.
- More signal flag race fixes, in isakmpd(8) this time.
- Don't ignore next-payload type NAT-OA in isakmpd(8).
- Have pkg_add(1) etc. warn about use of the deprecated @dirrm keyword.
- Handle route labels in RTM_CHANGE messages.
- In the installer, set the console device speed before selecting it as the console, unbreaking Soekris boxes when booted without a cable attached.
- Stop dhcpd(8) calling inet_ntoa(3) twice per log message.
- Handle '%ll' with positional arguments correctly in *printf(3).
- Don't remove a cloned peer immediately when it goes back to IDLE, keep it around for a while. That way, if it went away because a capabilities negotiation failed, it doesn't come back later with the same (incompatible) capabilities and so fail again.
- Unbreak MD5FileChunk(3) when passed a zero length, and so make MD5File(3) work again.
- Have tcpdump(8) print the th_seq field from truncated TCP headers, e.g. in an icmp frag-needed-but-DF-set error.
- Give TCP some extra smarts (SS_ISSENDING) so that it doesn't send partial segments when the socket layer is still busy sending to it. Inspired by FreeBSD and NetBSD.
- New '-T tcp' button for tcpdump(8) to force interpretation as TCP.
- Teach tcpdump(8) about NFSv3.
- Correct an off-by-one in fmt_scaled(3), allowing it to show 1099512676352 == 2.0T properly.
- Fix more signal flag races, this time in comsat(8) and rpc.rstatd(8).
- Drop the 'fallback interface' code from dhcpd(8), and store enough state to send a relayed request back to the right place.
- Fix an off_t->int truncation in rwhod(8), found by lint(1).
- Add some additional pcmcia(4) CIS sanity checks.
- Several manual page fixes.
- Fix a stack of compiler warnings in libkvm.
- Restore hotplugd(8)'s ability to handle events queued before the daemon starts.
- New -Dvar=value option for pkg_create(1).
- Don't use a double where an int will do in sshd(8).
- Add a negative index check in the hardware sensor sysctl(3) handler.
- Have mount(8) dump attribute caching parameters in verbose mode.
- Fix races on the signal flags in bgpd(8) and inetd(8).
- Have mount_nfs(8)'s noac option turn attribute caching off instead of on.
- Let rdate(8) accept NTP responses with stratum 0.
- A bunch of lint(1)-inspired cleanup in ntpd(8).
- Teach pkg_add(1) etc. about GNU info directories.
- Remove all use of system() in favour of System()/VSystem() in the package tools.
- Fix a file descriptor leak in df(1).
- Have pkg_add(1) complain when configuration files can't be installed.
- In pkg_add(1) etc., use the uid/gid cache module and perl(1)'s own chown() function instead of system('chown',...).
- Change arg 4 of kvm_openfiles(3) to unsigned so that KVM_NO_FILES is in range.
- Add mtree and uid/gid cache modules and an error wrapper to pkg_add(1) etc.
- Remove a gcc-specific constructs from bgpd(8), inetd(8) and syslogd(8).
- In bgpd(8), treat ENOBUFS from sendmsg(2) like EAGAIN and retry later.
- Add support for mtree(8) to the pkg_add(1) framework.
- A bunch of delint(1)ing, especially signal handlers with unused signo, and other unused variables.
- 3.6 -> 3.6-current.
This list mentions mostly platform-independent changes. For a list of changes
made in a particular platform, please check the page for that platform. If you
find them not listed there, the changes are either (1) not being documented or
(2) are documented here.
www@openbsd.org
$OpenBSD: plus.html,v 1.938 2005/02/01 15:08:48 jmc Exp $