------------------------------------------------------------------------
- OpenBSD 7.0 RELEASED -------------------------------------------------
October 14, 2021.
We are pleased to announce the official release of OpenBSD 7.0.
This is our 51st release. We remain proud of OpenBSD's record of more
than twenty years with only two remote holes in the default install.
As in our previous releases, 7.0 provides significant improvements,
including new features, in nearly all areas of the system:
- New/extended platforms:
o Added new riscv64 platform for 64-bit RISC-V systems.
o The arm64 platform support was improved with the following
changes:
- Support for Apple Silicon Macs has improved but is not ready
for general use yet:
# Added support for installing on a disk with a GPT.
# Added apldart(4) support for a DART with two sets of
registers, needed to support the Synopsis DesignWare USB
3 controller.
# Added apldwusb(4), a glue driver for the Synopsys
DesignWare USB 3 controllers found on the Apple M1 SoC.
# Added aplns(4) to provide support for Apple NVME storage
as found in Apple M1 devices.
# Added aplpinctrl(4) driver for the Apple GPIO controller
found on the M1 SoCs.
# Added aplpmu(4), a driver for the Apple "sera" SPMI
power management unit that contains the RTC on Apple M1
systems.
# Added aplspmi(4), a driver for the Apple SPMI
controller.
- Enabled LEDs for the mue(4) LAN7800 chip as found on the
Raspberry Pi 3 Model B+.
- Added rktcphy(4), a driver for the Type-C PHY controller
found on the Rockchip RK3399.
- Implemented multicast support in mvpp(4).
o Changes on other architectures:
- Switched macppc to use ld.lld(1).
- Fixed an issue preventing applications from selecting the
non-ALTIVEC code path on macppc.
- Made amd64 hw.setperf percentages proportional to the
enhanced speed step frequencies on Intel processors. The
default hw.setperf=99 corresponds to the maximum ordinary
speed, and setting it to 100 enables turbo mode.
- Enabled cy(4) on amd64.
- Disabled base-gcc on amd64.
- Prevented crashes on amd64 when TLB entries which should have
been invalidated were used.
- Prevented a kernel panic in sparc64 due to page boundary
misalignment.
- Forced luna88k to use the serial console when no graphics
board is found.
- Made additional free inodes on luna88k bsd.rd by specifying
density=4096.
- Fixed strchr() and strrchr() on mips64.
- Prevented watchdog resets on some i.MX 64-bit machines with a
recent U-Boot and watchdog enabled on boot in imxdog(8).
- Created audio devices on armv7.
- Retired OpenBSD/sgi platform.
- Enabled MSI-X support for powerpc64.
- Fixed __ppc_lock for page faults that recursively grab the
lock on powerpc.
- Increased the maximum data size on powerpc64 to 32GB.
- Disabled global page table mappings when using PCID to
prevent crashes when not flushed from TLB on amd64.
- Added cduart(4) driver for Cadence Universal Asynchronous
Receiver/Transmitter on armv7.
- Added zqclock(4) driver for Xilinx Zynq-7000 clock controller
on armv7.
- Added zqreset(4) driver for Xilinx Zynq-7000 reset controller
on armv7.
- Various kernel improvements:
o Unlocked the top part of the VM fault handler on i386.
o Enabled dt(4) for GENERIC kernels on amd64, arm64, i386, sparc64,
and powerpc64.
o Added kprobes provider for dt(4).
o Implemented < and > operators in btrace(8) filters.
o Added btrace(8) display of time spent in userland when analyzing
the kernel stack in the flame graph tool and fixed a parsing bug.
o Introduced /etc/bsd.re-config(5), which can be used to configure
the kernel using config(8), allowing use of KARL while making
changes to the GENERIC kernel.
o Identify TPM 2.0 devices and perform the 2.0-specific suspend
command, allowing the ThinkPad X1 Carbon Gen 9 and ThinkPad X1
Nano with the latest BIOS (which added S3) to resume.
o Changed the printing of the hibernate image size from bytes to
megabytes.
o Increased hibernate writeout speed.
o Added "machine sysregs" command to ddb(4) on amd64.
o Prevented interleaved stack traces in ddb(4) from multiple CPUs.
o Delayed installation of sensors until a device with battery
support is connected, allowing sensorsd(8) to pick up hotplugged
uhidpp(4) devices.
o Prevented a kernel panic after VFS shutdown.
o Increased the setitimer(2) timer limit to UINT_MAX seconds.
o Serialized the internals of kqueue(2) with a mutex.
o Enabled pool cache on knote(9) pool.
o Fixed futex(2) errno handling to match what Mesa expects and
prevent failure to properly report timeouts.
o Fixed a kernel crash in tty(4).
o Increased the default buffer space on PF_UNIX sockets to 8k and
made the values tuneable via sysctl(2).
o Made kqueue(2) timer re-addition reset an existing timer to use
the new timeout period.
o In the build system, pass make flags to kernel and lib builds,
making hacking on ramdisks/the installer much faster.
- SMP Improvements
o Made pmap_extract() mpsafe on hppa and amd64.
o Introduced CPU_IS_RUNNING() and used it in scheduler-related code
to prevent waiting on non-running CPUs.
o Made anonymous object reference counting independent from the
KERNEL_LOCK().
o Unlocked connect(2).
o Unlocked setrtable(2).
o Introduced per-CPU panic(9) message buffers.
o Used so_lock to protect key management (PF_KEY) sockets.
o Used so_lock to protect routing (PF_ROUTE) sockets.
o Unlocked lseek(2).
o Unlocked the top part of the fault handler.
- Direct Rendering Manager
o Updated drm(4) to Linux 5.10.65
o inteldrm(4): better support for Tiger Lake
o amdgpu(4): support for Navi 12, Navi 21 "Sienna Cichlid", Arcturus
o amdgpu(4): support for Cezanne "Green Sardine" Ryzen 5000 APU
- VMM/VMD improvements
o Added a theoretical limit of 512 to the number of allocated vcpus
in vmm(4).
o Fixed vmm(4) vcpu locking issues.
o Added vmd(8) support for variable length vionet rx descriptor
chains.
o Prevented stack overflow in vmd(8) due to large DHCP packets on
local interfaces.
o Allowed locking of a randomly assigned lladdr in vmd(8).
o Skipped inspecting non-udp packets on local interfaces for vmd(8).
o Prevented guest virtio drivers from causing stack and buffer
overflows in vmd(8).
o Fixed a race condition in vmm(4) relating to incorrect physical
cpu tracking.
o Fixed vmctl(8) client "wait" state corruption in vmd(8) when a
wait is canceled and restarted, allowing multiple waiting clients.
o Added protections against guests with bad virtio drivers to vmd(8)
o Unlocked the kernel in vmm(4) ioctl handlers and introduced vcpu
locks
- Various new userland features:
o Imported timeout(1) utility from NetBSD. timeout(1) can be used to
run commands with a time limit.
o Added include and exclude options to openrsync(1).
o Implemented reporting of supplemental groups in ps(1).
o Added indication of whether an mg(1) function is unsuitable for a
startup file.
o Added "dired-jump" command to mg(1) to open a dired buffer
containing the current buffer's directory location.
- Various bugfixes and tweaks in userland:
o Modified doas(1) to retry up to 3 times on password authentication
failure.
o Made all vi(1) signal handler functions async-signal-safe.
o Changed diff(1) to consider two files sharing the same inode
identical.
o Allowed xenodm(1) login when ~/.Xauthority does not exist.
o Disabled building all of the non-unicode fonts in Xenocara except
for ISO8859-1.
o Altered passwd(1) to use stderr for printer error and
informational messages. This allows easier parsing of what
passwd(1) is doing if spawned from a GUI.
o Fixed iostat(8) per-device values when systat(1) is in boot time
mode ('b'), not normalizing based on the sleep interval.
o Made jot(1) -b, -c and -w mutually exclusive.
o Made cdio(1) discard the current input line when Ctrl-C is used
during line editing and provide a fresh prompt rather than exiting
the program.
o Let el_gets(3) honour the first Ctrl-C typed by the user rather
than ignoring it.
o Corrected awk(1) -F null string behavior to ensure -F '' behaves
consistently with -v FS="".
o Avoided a potential buffer overflow in backslash escaping in
awk(1).
o Disallowed the use of an empty list between "while" and "do" in
ksh(1).
o Changed cwm(1) maximization and full-screen mode toggling to keep
the cursor within the window, preventing focus loss.
o Made rc(8) quietly attempt an early mount of /var/log in case
someone has created it as a separate filesystem to avoid /var
overflow issues.
o Improved fdisk(8) to retain essential partitions on various
platforms.
o Improved fdisk(8) for disks with 4K sectors.
o Cleaned up the fdisk(8) MBR/GPT initialization code, making -g
independent of -i, leaving four mutually exclusive initialization
options (-i, -g, -u and -A) with the last option specified
executed (allowing the existing -i -g to work as intended).
o Relaxed criteria for recognizing GPT formatted media, allowing GPT
disk images added with dd(1) onto larger physical media to be
recognized by fdisk(8) and the kernel.
o Added the ability for fdisk(8) to recognize "BIOS Boot", "APFS",
"APFS ISC", "APFS Recovry" (sic), "HiFive FSBL" and "HiFive BBL"
GPT partitions.
o Ensured the values for fdisk(8) -b and -l are treated as 512-byte
block counts.
o Added an fdisk(8) -A option to initialize a GPT without removing
special boot partitions.
o Made fdisk(8) -b option available to architectures other than
amd64 and i386 and extended the syntax to allow specification of
the boot partition type and offset.
o Adjusted density for partitions on a 4k disk in newfs(8) when
fragsize and density are not passed on the command line to ensure
sufficient inodes to hold a src tree on a 2G fs.
o Fixed disklabel(8) generation on sparc64.
o Fixed overlap check in disklabel(1) autoalloc code.
o Corrected various min/max cluster numbers for FAT12/16/32 in
newfs_msdos(8).
o Added libexecinfo, a library providing backtrace functions.
o Updated C library support for character classification to Unicode
13.0.
o Let wcwidth(3) treat all characters in Unicode private use areas
as single-width, even those in planes 15 and 16.
o Limited the printf(1) \x escape sequence to two characters.
o Corrected the output of date(1) -f %s which was wrongly affected
by the local timezone.
o Turn printing additional information into toggles for systat(1).
- Improved hardware support and driver bugfixes, including:
o Added a workaround to amdgpu(4) for machines where the framebuffer
size reported by the hardware is incorrect.
o In pchgpio(4), worked around a BIOS bug on Lenovo ThinkPads based
on Intel's Tiger Lake platform to properly restore the GPIO pin
used for the touchpad interrupt upon resume.
o Stopped setting the highspeed bit on bcm2835-sdhci sdhc(4)
controllers, fixing bwfm(4) wifi on the Raspberry Pi 3 Model B+.
o Added support for obtaining sense status and source slot of a
media to chio(1) and ch(4).
o Fixed dwiic(4) timeouts requesting data from at least one
touchpad.
o Added ucc(4), a driver for USB HID Consumer Control keyboards.
Often used to expose volume, audio and application launch keys.
Volume keys are handled by the kernel and all other keys are
propagated to X11 and the console through wscons(4).
o Set the uhidpp(4) battery level sensor status to unknown while
charging to handle devices reporting zero during charge,
preventing certain sensorsd.conf(5) actions from triggering
inappropriately.
o Added Tiger Lake LP (INT34C5) support to pchgpio(4).
o Fixed a panic at shutdown relating to azalia(4) on the X1 Extreme
Gen 1.
o Fixed a panic reported in upd(4).
o Fixed display of incorrect patterns on LUNA's wscons(4) with 1bpp
framebuffer when backspace is typed.
o Fixed an attachment problem for dwctwo(4) for certain devices
issuing NAK interrupts during split transactions.
o Added AMD 17h/6xh Root Complex to ksmn(4).
o Ensured the TX FIFO isn't overrun for longer transfers in
dwiic(4).
o Added titmp(4), a driver for the TI TMP451 temperature sensor.
o Ensured a USB mouse will attach if otherwise qualified even if the
usage report does not include X and Y usages.
o Attached unsupported video devices to uvideo(4) but not video(1),
rather than leaving it unmatched.
o Added a -R flag to usbhidctl(1) to dump the raw report descriptor
bytes.
o Added hid_get_report_desc_data() to usbhid(3) to access raw report
descriptor data.
o Fixed overflows when reading multiple bytes from AML over an i2c
bus in acpi(4).
o Fixed uaudio(4) on certain machines such as the RPI4 by adding a
pre-DMA-write barrier after data is stored to memory.
o Worked around x86 machines that advertise the "hardware reduced"
ACPI feature, advertise S4 and S5 support, but fail to populate
the SLEEP_CONTROL_REG and SLEEP_STATUS_REG descriptions in the
FADT. This fixed the ASUS Zenbook 14.
o Added quirk to enable ThinkPad X1 Extreme 1 speakers and Dolby
Atmos in azalia(4).
o Fixed pchgpio(4) issues with dead touchpads after resume.
o Fixed an mbuf leak in xnf(4).
- New or improved network hardware support:
o Fixed ix(4) with older amd64 and current riscv64 hardware if MSI
is not enabled for the device.
o Added the uaq(4) driver for Aquantia AQC111U/AQC112U USB Ethernet
devices.
o Added the aq(4) driver to support Aquantia 1/2.5/5/10Gb/s PCIe
Ethernet adapters.
o Synced dwctwo(4) with the NetBSD-current code base, enabling the
USB on-board Ethernet controller through mue(4), fixing uvideo(4),
and enabling the two USB uhub3 ports on the Raspberry Pi 3 Model
B+.
o Added cad(4), a driver for Cadence GEM.
o Added Broadcom BCM5725 to brgphy(4).
o Added support for RTL8168FP/RTL8111FP/RTL8117 to re(4).
o Fixed ure(4) after a media link change on RTL8153/B devices.
o Fixed bnxt(4) with a single queue in MSI-X mode.
- Added or improved wireless network drivers:
o Zeroed out iwx(4) Tx descriptors of frames which are done to
prevent the device from writing to the former DMA address of a
buffer which has been taken off the Tx ring.
o Fixed a bug in iwx(4) Tx done interrupt processing which could
cause fatal firmware errors under load and memory corruption.
o Changed iwm(4) and iwx(4) to sleep for 1 second while loading
firmware to match what iwn(4) does. This fixes some issues with
suspend/resume.
o Ensured that iwm(4) and iwx(4) will reload firmware from disk on
down/up and not during resume.
o Fixed iwx(4) crystal latency values to match those used by Linux
iwlwifi.
o Fixed an off-by-one error in bwfm(4).
o Changed iwn(4), iwm(4), and iwx(4) devices to hide detailed
firmware error reports by default.
o Prevented a loop when bwfm(4) receives an unsolicited association
status event right after successful association.
o Fixed a leak with wg(4) keepalive.
o Switched iwx(4) to -63 firmware images as shipped in
iwx-firmware-20210512, including fixes addressing fragattacks
vulnerabilities.
o Supported the new iwx(4) firmware session protection command,
required for successful associations with new firmware.
o Stopped asking iwx(4) to send probe requests on passive channels,
fixing firmware going unresponsive after association.
o Fixed an iwx(4) edge case where devices failed to resume after
system suspend.
o Switched iwm(4) to newer firmware images available in
iwm-firmware-20210512. This provides FragAttacks fixes for the
updated devices.
o Fixed iwx(4) against access points using TKIP as the group cipher.
o Prevented athn(4) from calling ieee80211_find_rxnode() on bad
frames in an attempt to prevent creation of bogus node cache
entries.
o Implemented various fixes addressing firmware errors in iwm(4) and
iwx(4).
o Fixed node leaks in iwm(4) and iwx(4) which caused the drivers to
get stuck when roaming between access points.
o Fixed iwx(4) firmware reloading after a failure to parse the
firmware file.
o Avoided "mac clock not ready" panics in iwm(4) and iwx(4).
o Worked around a problem with certain athn(4) hardware that caused
problem when running in HostAP mode with clients that use Tx
aggregation.
o Corrected multicast decryption for iwx(4).
o Added 802.11n Tx aggregation support to iwm(4).
o Made iwn(4), iwm(4) and iwx(4) keep track of beacon parameters at
run-time.
o Implemented support for Rx aggregation offload in iwm(4) and
iwx(4) and re-enabled de-aggregation of A-MSDUs in net80211 for
all drivers capable of 11n mode.
o Changed error reporting for bwfm(4) to use the long version of the
firmware path. This makes it easier to find the correct files to
add to the bwfm-firmware port.
- IEEE 802.11 wireless stack improvements and bugfixes:
o Drop fragmented 802.11 frames.
o Prevent frame injection via forged 802.11n A-MSDUs.
o Tweaked net80211 RA heuristics to avoid picking Tx rate choices
that may be too optimistic.
- Generic network stack improvements and bugfixes:
o Implemented reception of "VLAN 0 priority tagged" packets.
o Fixed an alignment fault observed on an octeon machine while
pppoe(4) negotiated a large MTU.
o Display provider ID for a umb(4) SIM in ifconfig(8).
- Installer and upgrade improvements:
o Checked the installer's /tmp/i/hostname.* files for a configured
IP address so that configurations without a broadcast address are
detected as well.
o Handled "inet autoconf" in the ramdisk.
o Introduced a short wait in rc(8) after netstart(8) finishes until
an IPv4 or IPv6 default route is present before continuing boot.
Fixed setups depending on working network and DNS resolution
during early boot when using autoconfiguration (dhcpleased(8) or
slaacd(8)).
o Made fdisk(8) always create an EFI SYS partition if the -b option
is specified when initializing a GPT.
o Allowed (w)hole disk allocation for GPT disks in arm64, using
fdisk(8) -A when an Apple APFS ISC partition is detected and fdisk
-ig otherwise. Created EFI SYS boot partitions only on ROOTDISK
GPT disks.
o Added installboot(8) "-p" to prepare by creating a new filesystem
on the partition reserved for the bootloader on relevant
architectures.
o Added GPT support to armv7 installboot(8).
o Added the Spleen 12x24 and 16x32 font on amd64's RAMDISK_CD and
RAMDISK kernels.
o Use installboot(8) on arm64 ramdisks.
o Enable dhcpleased(8) on ramdisks, and activate resolvd(8),
replacing dhclient(8).
o Enable slaacd(8) to configure nameservers on ramdisks.
- Security improvements:
o Moved objcopy to base set to allow KARL to work on all installs.
o Added unveil(2) calls to xterm in the case where there are no
exec-formatted or exec-selected resources set.
o Changed usage of %n from a syslog warning to syslog and abort for
printf(3) (and associated variants).
o Made kernel stop all threads when terminating via pledge_fail().
- Routing daemons and other userland network improvements:
o The bgpd(8) daemon saw the following changes:
- Stop processing queued UPDATES when the max-prefix limit was
reached.
- Improved negotiation for route refresh, graceful restart and
multi-protocol capabilities
- Correctly track 'rde evaluate all' and 'export' settings
during reload.
- Properly withdraw prefixes when 'rde evaluate all' is used.
- Fixed MRT handling on initial startup for message dump types.
- Fixed and use non-blocking connect for RTR sessions.
- Fully implemented RFC 6286 by checking for BGP ID collisions.
- Adjusted the 4-byte AS number handling to RFC 6793 by
changing error behaviour from prefix witdraw to attribute
discard.
- In bgpctl(8) print out both the sent "Neighbor capabilities"
and the "Negotiated capabilities" for a session.
- Print timestamps both as a formatted and a pure time in
seconds field in various JSON objects.
- Fixed a bug, where during bgpd(8) config reloads prefixes of
the wrong address family could leak to peers resulting in
session resets.
- Added support for RFC 7313 - Enhanced Route Refresh Disabled
by default, to enable use 'announce enhanced refresh yes'.
- Improved output of Adj-RIB-Out by updating nexthop and ASPATH
before adding the prefix to the RIB. This improves `bgpctl
show rib out` output.
- Added command line option to both bgpd(8) and bgpctl(8) to
show the version.
- Added support for RFC 9072 - Extended Optional Parameters
Length for BGP OPEN Message
- Added support for RFC 8050 - MRT Format with BGP Additional
Path Extensions
- Implemented receive side of RFC 7911 - Advertisement of
Multiple Paths in BGP. OpenBGPD is currently not able to send
multiple paths out.
- Improved checks of VRPs loaded via RTR or from the roa-set
table.
- Allowed optionally specifying an expiry time for roa-set
entries to mitigate BGP route decision making based on
outdated RPKI data. OpenBGPD's companion rpki-client(8)
produces roa-sets with the new 'expires' property
o The pf(4) packet filter and its userland utility:
- Corrected a potential memory leak associated with pfsync(4)
update requests.
- Introduced locks around the global pf(4) state list.
- Fixed a panic due to pfsync(4) deferral timeout handling.
- Added support for pf(4) divert-to on tpmr(4) and veb(4).
- Fixed state key reference underflow when both state keys are
identical in pf(4).
- Only skipped pf(4) once for packets injected by a
divert-packet socket, allowing pf to still act later on a
diverted packet.
o IPSEC support in the kernel and the iked(8) userland daemon:
- Zeroed out potential passwords when freeing memory or
handling parsing errors in iked(8).
- Added client-side support for DNS configuration to iked(8).
- Increased iked(8) default data bytes limit for Child SAs to 4
GB, preventing excessive rekeying and lost data in high
performance setups.
- Fixed an iked(8) bug where no flows are added if a single
address is configured in the config address instead of a
pool.
- Fixed a problem in iked(8) where no flows are loaded when a
single config address without pool is configured.
- Added an experimental post-quantum hybrid key exchange method
based on Streamlined NTRU Prime (coupled with X25519) to
iked(8) as sntrup761x25519.
- Fixed races which were slowing ipsec(4) throughput.
- Fixed ipsec(4) NAT-T to work with pipex(4).
o rpki-client(8) received the following new features and bugfixes:
- Added keep-alive support to the HTTP client code for RRDP.
- Reference-count and delete unused files synced via RRDP, as
far as possible.
- In the JSON output, changed the AS Number from a string
("AS123") to an integer ("123") to make processing of the
output easier,
- Added an 'expires' column to CSV & JSON output, based on
certificate and CRL validity times. The 'expires' value can
be used to avoid route selection based on stale data when
generating VRP sets, when faced with loss of communication
between consumer and validator, or validator and CA
repository.
- Made the runtime timeout (-s option) also trigger in child
processes.
- Improved RRDP support and make RRDP the default protocol for
synchronizing the RPKI repository data, with openrsync(1)
used as secondary.
- At startup, warn if the filesystem containing the cache
directory is probably too small.
- Handle running out of disk space more gracefully, including
cleanup of temporary and old files before exiting.
- Improved the HTTP/1.1 request headers being sent.
- Improved validation checks for ROA and MFT objects.
- Improved the HTTP client code (status code handling, http
proxy support, keep-alive).
- In RRDP, do not access URI with userinfo (@-sign)
- Improved RRDP syncing by considering a notification file
serial jumping backwards as synced repository.
- Made -R (rsync only) also apply to the fetching of TA files.
- Only sync *.{cer,crl,gbr,mft,roa} files via rsync and exclude
all others.
- When producing output for bgpd(8), make use of the 'roa-set
expires' attribute to prevent machines from loading outdated
roa-sets.
- In RRDP, limited the number of deltas to 300 per repo. If
more deltas exist, downloading a full snapshot is faster.
- Limited the validation depth of X.509 certificate chains to
12, double the current depth seen in RPKI.
o traceroute(8) was improved:
- Probe packets are now sent in quick succession and responses
handled asynchronously.
- DNS lookups are performed asynchronously. This speeds up the
time required to display results considerably.
o dhcpleased(8) was made the default program for configuring IPv4
addresses via DHCP. resolvd(8) was activated to handle concurrent
changes to resolv.conf(5) by both dhcpleased(8) and slaacd(8).
Additionally these programs saw the following improvements and
bugfixes:
- Changed dhcpleased(8) client identifier transmission to match
other DHCP client implementations.
- Simplified dhcpleasectl(8) and added syntax to match
dhclient(8) (interface), allowing one to be aliased to the
other.
- Retried broadcast with dhcpleased(8) when the DHCP server is
unreachable via unicast UDP.
- Made resolvd(8) accept DNS proposals for the loopback
addresses.
- Added to dhcpleased.conf(5) the ability to ignore routes or
nameservers from a lease and to ignore servers entirely.
- Made dhclient(8) defer to dhcpleased(8) when the inet
autoconf flag is set. When run, dhclient will signal
dhcpleased to request a new lease rather than requesting one
itself.
- Fixed potential races in slaacd(8) and dhcpleased(8) when two
processes are configuring the same IP.
- Added the possibility to send vendor class identifier and
client identifier using dhcpleased.conf(5).
- Made dhcpleased(8) always configure provided routes,
regardless of whether the address received in the lease is
already configured.
- Used exclusive locks under /dev/ to ensure single instances
of resolvd(8), slaacd(8) and dhcpleased(8).
- Implemented classless static routes DHCP option in
dhcpleased(8).
- Added a new "nameserver" command to route(8), sending
nameserver proposals to resolvd(8) using the DNS proposal
protocol over the route socket. This command is intended be
used to integrate userland triggered nameserver changes, for
example by VPN software.
o Changes to snmp related tools:
- Disable SNMPv1 and SNMPv2c by default in snmpd(8).
- Remove default communities from snmpd(8).
- Switched default seclevel to enc for snmpd(8).
- Changed the default snmp(1) version to -v3 and removed the
default community.
- Switched default snmp(1) auth to hmac-sha1.
- Switched default snmp(1) and snmpd(8) privacy protocol to
AES.
- Added the ability for snmpd(8) to send SNMPv3 traps.
- Allowed "any" to be used as a listen on address in
snmpd.conf(5).
- Allowed setting of the engineid in snmpd(8).
o Other userland network changes:
- Fixed acme-client(1) SAN generation for CSRs.
- Added pledge(2) for ftpd(8) user processes.
- Allowed router solicitations from the unspecified address
(::) in rad(8).
- Altered slowcgi(8) so it no longer sends debug logging to
syslog unless debug logging is requested via the new -v flag.
- Prevented httpd(8) from trying to chunk encode an empty http
body coming from an fcgi upstream.
- Used relative reference URIs in Location header on directory
redirects in httpd(8), adding support for front-ending httpd
with a TLS-terminating gateway that forwards unencrypted http
traffic.
- Prevented a crash on strict alignment architectures of
tcpdump(8) WireGuard printer.
- Made tcpdump(8) split the 802.11 sequence number field into
its sequence number and fragment number components rather
than printing the whole field in decimal.
- Added simple BGP enhanced route refresh message decoding to
tcpdump(8).
- tmux(1) improvements and bug fixes:
o Added a -B flag to tmux(1) to remove borders from popups and added
a menu to popups as well as options to convert a popup into a
pane.
o Added pipe variants of the tmux(1) line copy commands.
o Added basic support for zero width joiners to tmux(1).
o Added client focus hooks to tmux(1).
o Made window-linked and window-unlinked window options in tmux(1).
o Added -F for tmux(1) command-prompt and used it to fix "Rename" on
the window menu.
o Added different tmux(1) command histories for different types of
prompts.
o Fixed tmux(1) problems with xterm in VT340 mode.
o Added an "always" value to the extended-keys option to always
forward those keys to applications inside tmux(1).
- OpenSMTPD 7.0.0
o Fixed incorrect status code for expired mails resulting in a
misleading bounce report in smtpd(8).
o Added TLS options cafile=(path), nosni, noverify and
servername=(name) to smtp(1).
o Allowed specification of TLS ciphers and protocols in smtp(1).
- LibreSSL 3.4.1
o New Features
- Added support for OpenSSL 1.1.1 TLSv1.3 APIs.
- Enabled the new X.509 validator to allow verification of
modern certificate chains.
o Portable Improvements
- Ported continuous integration and test infrastructure to
Github actions.
- Added Universal Windows Platform (UWP) build support.
- Fixed mingw-w64 builds on newer versions with missing SSP
support.
- Added non-executable stack annotations for CMake builds.
o API and Documentation Enhancements
- Added the following APIs from OpenSSL
BN_bn2binpad BN_bn2lebinpad BN_lebin2bn EC_GROUP_get_curve
EC_GROUP_order_bits EC_GROUP_set_curve
EC_POINT_get_affine_coordinates
EC_POINT_set_affine_coordinates
EC_POINT_set_compressed_coordinates EVP_DigestSign
EVP_DigestVerify SSL_CIPHER_find SSL_CTX_get0_privatekey
SSL_CTX_get_max_early_data SSL_CTX_get_ssl_method
SSL_CTX_set_ciphersuites SSL_CTX_set_max_early_data
SSL_CTX_set_post_handshake_auth SSL_SESSION_get0_cipher
SSL_SESSION_get_max_early_data SSL_SESSION_is_resumable
SSL_SESSION_set_max_early_data SSL_get_early_data_status
SSL_get_max_early_data SSL_read_early_data SSL_set0_rbio
SSL_set_ciphersuites SSL_set_max_early_data
SSL_set_post_handshake_auth
SSL_set_psk_use_session_callback
SSL_verify_client_post_handshake SSL_write_early_data
- Added AES-GCM constants from RFC 7714 for SRTP.
o Compatibility Changes
- Implement flushing for TLSv1.3 handshakes behavior, needed
for Apache.
- Call the info callback on connect/accept exit in TLSv1.3,
needed for p5-Net-SSLeay.
- Default to using named curve parameter encoding from
pre-OpenSSL 1.1.0, adding OPENSSL_EC_EXPLICIT_CURVE.
- Do not ignore SSL_TLSEXT_ERR_FATAL from the ALPN callback.
o Testing and Proactive Security
- Added additional state machine test coverage.
- Improved integration test support with ruby/openssl tests.
- Error codes and callback support in new X.509 validator made
compatible with p5-Net_SSLeay tests.
o Internal Improvements
- Numerous fixes and improvements to the new X.509 validator to
ensure compatible error codes and callback support compatible
with the legacy OpenSSL validator.
- OpenSSH 8.8
o Security
- sshd(8): OpenSSH 8.5 introduced the LogVerbose keyword. When
this option was enabled with a set of patterns that activated
logging in code that runs in the low-privilege sandboxed sshd
process, the log messages were constructed in such a way that
printf(3) format strings could effectively be specified the
low-privilege code.
- sshd(8) from OpenSSH 6.2 through 8.7 failed to correctly
initialise supplemental groups when executing an
AuthorizedKeysCommand or AuthorizedPrincipalsCommand, where a
AuthorizedKeysCommandUser or AuthorizedPrincipalsCommandUser
directive has been set to run the command as a different
user.
o Potentially incompatible changes
- A near-future release of OpenSSH will switch scp(1) from
using the legacy scp/rcp protocol to using SFTP by default.
- This release disables RSA signatures using the SHA-1 hash
algorithm by default.
- scp(1): this release changes the behaviour of remote to
remote copies (e.g. "scp host-a:/path host-b:") to transfer
through the local host by default. This was previously
available via the -3 flag. This mode avoids the need to
expose credentials on the origin hop, avoids triplicate
interpretation of filenames by the shell (by the local
system, the copy origin and the destination) and, in
conjunction with the SFTP support for scp(1) mentioned below,
allows use of all authentication methods to the remote hosts
(previously, only non-interactive methods could be used). A
-R flag has been added to select the old behaviour.
- ssh(1)/sshd(8): both the client and server are now using a
stricter configuration file parser. The new parser uses more
shell-like rules for quotes, space and escape characters. It
is also more strict in rejecting configurations that include
options lacking arguments. Previously some options (e.g.
DenyUsers) could appear on a line with no subsequent
arguments. This release will reject such configurations. The
new parser will also reject configurations with unterminated
quotes and multiple '=' characters after the option name.
- ssh(1): when using SSHFP DNS records for host key
verification, ssh(1) will verify all matching records instead
of just those with the specific signature type requested.
This may cause host key verification problems if stale SSHFP
records of a different or legacy signature type exist
alongside other records for a particular host.
- ssh-keygen(1): when generating a FIDO key and specifying an
explicit attestation challenge (using -Ochallenge), the
challenge will now be hashed by the builtin security key
middleware. This removes the (undocumented) requirement that
challenges be exactly 32 bytes in length and matches the
expectations of libfido2.
- sshd(8): environment="..." directives in authorized_keys
files are now first-match-wins and limited to 1024 discrete
environment variable names.
o New features
- scp(1): experimental support for transfers using the SFTP
protocol as a replacement for the venerable SCP/RCP protocol
that it has traditionally used. SFTP offers more predictable
filename handling and does not require expansion of glob(3)
patterns via the shell on the remote side.
- sftp-server(8): add a protocol extension to support expansion
of ~/ and ~user/ prefixed paths. This was added to support
these paths when used by scp(1) while in SFTP mode.
- ssh(1): add a ForkAfterAuthentication ssh_config(5)
counterpart to the ssh(1) -f flag.
- ssh(1): add a StdinNull directive to ssh_config(5) that
allows the config file to do the same thing as -n does on the
ssh(1) command- line.
- ssh(1): add a SessionType directive to ssh_config, allowing
the configuration file to offer equivalent control to the -N
(no session) and -s (subsystem) command-line flags.
- ssh-keygen(1): allowed signers files used by ssh-keygen(1)
signatures now support listing key validity intervals
alongside they key, and ssh-keygen(1) can optionally check
during signature verification whether a specified time falls
inside this interval. This feature is intended for use by git
to support signing and verifying objects using ssh keys.
- ssh-keygen(8): support printing of the full public key in a
sshsig signature via a -Oprint-pubkey flag.
- ssh(1): allow the ssh_config(5) CanonicalizePermittedCNAMEs
directive to accept a "none" argument to specify the default
behaviour.
o Bugfixes
- ssh(1)/ sshd(8): start time-based re-keying exactly on
schedule in the client and server mainloops. Previously the
re-key timeout could expire but re-keying would not start
until a packet was sent or received, causing a spin in
select() if the connection was quiescent.
- ssh-keygen(1): avoid Y2038 problem in printing certificate
validity lifetimes. Dates past 2^31-1 seconds since epoch
were displayed incorrectly on some platforms.
- scp(1): allow spaces to appear in usernames for local to
remote and scp -3 remote to remote copies.
- ssh(1)/ sshd(8): remove references to
ChallengeResponseAuthentication in favour of
KbdInteractiveAuthentication. The former is what was in
SSHv1, the latter is what is in SSHv2 (RFC4256) and they were
treated as somewhat but not entirely equivalent. We retain
the old name as a deprecated alias so configuration files
continue to work as well as a reference in the man page for
people looking for it.
- ssh(1)/ ssh-add(1)/ ssh-keygen(1): fix decoding of X.509
subject name when extracting a key from a PKCS#11
certificate.
- ssh(1): restore blocking status on stdio fds before close.
ssh(1) needs file descriptors in non-blocking mode to operate
but it was not restoring the original state on exit. This
could cause problems with fds shared with other programs via
the shell.
- ssh(1)/ sshd(8): switch both client and server mainloops from
select(3) to pselect(3). Avoids race conditions where a
signal may arrive immediately before select(3) and not be
processed until an event fires.
- ssh(1): sessions started with ControlPersist were incorrectly
executing a shell when the -N (no shell) option was
specified.
- ssh(1): check if IPQoS or TunnelDevice are already set before
overriding. Prevents values in config files from overriding
values supplied on the command line.
- ssh(1): fix debug message when finding a private key to match
a certificate being attempted for user authentication.
Previously it would print the certificate's path, whereas it
was supposed to be showing the private key's path.
- sshd(8): match host certificates against host public keys,
not private keys. Allows use of certificates with private
keys held in a ssh-agent.
- ssh(1): add a workaround for a bug in OpenSSH 7.4 sshd(8),
which allows RSA/SHA2 signatures for public key
authentication but fails to advertise this correctly via
SSH2_MSG_EXT_INFO. This causes clients of these server to
incorrectly match PubkeyAcceptedAlgorithms and potentially
refuse to offer valid keys.
- sftp(1)/ scp(1): degrade gracefully if a sftp-server offers
the limits@openssh.com extension but fails when the client
tries to invoke it.
- ssh(1): allow ssh_config SetEnv to override $TERM, which is
otherwise handled specially by the protocol. Useful in
~/.ssh/config to set TERM to something generic (e.g. "xterm"
instead of "xterm-256color") for destinations that lack
terminfo entries.
- sftp-server(8): the limits@openssh.com extension was
incorrectly marked as an operation that writes to the
filesystem, which made it unavailable in sftp-server
read-only mode.
- ssh(1): fix SEGV in UpdateHostkeys debug() message, triggered
when the update removed more host keys than remain present.
- scp(1): when using the SFTP protocol, continue transferring
files after a transfer error occurs, better matching original
scp/rcp behaviour.
- ssh(1): fixed a number of memory leaks in multiplexing,
- ssh-keygen(1): avoid crash when using the -Y find-principals
command.
- A number of documentation and manual improvements.
- mandoc 1.14.6
o Added a style message about overlong text input lines.
o Made "-W style" check .Xr links along the full manpath to help
validation of non-base manual pages.
o Supported auto-tagging for ".It Va" in mdoc(7) documents.
o Stopped printing two extra blank lines at the top and bottom of
man(7) documents.
o Supported the CB and CI fonts in roff(7) \f font escapes and .ft
font requests.
o Added support for two-character font names (BI, CW, CR, CB, CI) to
the tbl(7) layout font modifier.
o Implemented the tbl(7) layout modifiers "b" (bold) and "i"
(italic) in HTML output mode.
o Completed support for the "nospaces" option in the tbl(7) parser.
o Fixed an infinite loop in the tbl(7) parser for some cases of
horizontally overlapping horizontal spans.
o Added a meta viewport element to "-T html" output.
o Fixed a crash with "-T man" when an input file contains tbl(7) or
eqn(7) input.
o Fixed a crash in makewhatis(8) when a manpath directory contains a
symbolic link that points to a directory.
- Ports and packages:
o Pre-built packages are available for the following architectures on
the day of release:
- aarch64 (arm64): 11034
- amd64: 11325
- i386: 10248
- mips64: 9311
- powerpc64: 9273
- sparc64: 9636
o Packages for the following architectures will be made available as
their builds complete:
- arm
- mips64el
- powerpc
- Some highlights:
o Asterisk 18.6.0 o Mutt 2.1.3 and NeoMutt 20210205
o Audacity 2.4.2 o Node.js 12.22.6
o CMake 3.20.3 o OCaml 4.10.0
o Chromium 93.0.4577.82 o OpenLDAP 2.4.59
o Emacs 27.2 o PHP 7.3.30, 7.4.23 and 8.0.10
o FFmpeg 4.4 o Postfix 3.5.12
o GCC 8.4.0 and 11.2.0 o PostgreSQL 13.4
o GHC 8.10.6 o Python 2.7.18, 3.8.12 and 3.9.7
o GNOME 40.4 o Qt 5.15.2 and 6.0.4
o Go 1.17 o R 4.1.1
o JDK 8u302, 11.0.12 and 16.0.2 o Ruby 2.6.8, 2.7.4 and 3.0.2
o KDE Applications 21.08.1 o Rust 1.55.0
o KDE Frameworks 5.85.0 o SQLite 3.35.5
o Krita 4.4.8 o Shotcut 21.01.29
o LLVM/Clang 11.1.0 o Sudo 1.9.7p2
o LibreOffice 7.2.1.2 o Suricata 6.0.2
o Lua 5.1.5, 5.2.4 and 5.3.6 o Tcl/Tk 8.5.19 and 8.6.8
o MariaDB 10.6.4 o TeX Live 2020
o Mono 6.12.0.122 o Vim 8.2.3394 and Neovim 0.5.0
o Mozilla Firefox 92.0 and o Xfce 4.16
ESR 91.1.0
o Mozilla Thunderbird 91.1.1
- As usual, steady improvements in manual pages and other documentation.
- The system includes the following major components from outside suppliers:
o Xenocara (based on X.Org 7.7 with xserver 1.20.13 + patches,
freetype 2.10.4, fontconfig 2.12.4, Mesa 21.1.8, xterm 367,
xkeyboard-config 2.20, fonttosfnt 1.2.2, and more)
o LLVM/Clang 11.1.0 (+ patches)
o GCC 4.2.1 (+ patches) and 3.3.6 (+ patches)
o Perl 5.32.1 (+ patches)
o NSD 4.3.7
o Unbound 1.13.2
o Ncurses 5.7
o Binutils 2.17 (+ patches)
o Gdb 6.3 (+ patches)
o Awk December 18, 2020 version
o Expat 2.4.1
------------------------------------------------------------------------
- SECURITY AND ERRATA --------------------------------------------------
We provide patches for known security threats and other important
issues discovered after each release. Our continued research into
security means we will find new security problems -- and we always
provide patches as soon as possible. Therefore, we advise regular
visits to
https://www.OpenBSD.org/security.html
and
https://www.OpenBSD.org/errata.html
------------------------------------------------------------------------
- MAILING LISTS AND FAQ ------------------------------------------------
Mailing lists are an important means of communication among users and
developers of OpenBSD. For information on OpenBSD mailing lists, please
see:
https://www.OpenBSD.org/mail.html
You are also encouraged to read the Frequently Asked Questions (FAQ) at:
https://www.OpenBSD.org/faq/
------------------------------------------------------------------------
- DONATIONS ------------------------------------------------------------
The OpenBSD Project is a volunteer-driven software group funded by
donations. Besides OpenBSD itself, we also develop important software
like OpenSSH, LibreSSL, OpenNTPD, OpenSMTPD, the ubiquitous pf packet
filter, the quality work of our ports development process, and many
others. This ecosystem is all handled under the same funding umbrella.
We hope our quality software will result in contributions that maintain
our build/development infrastructure, pay our electrical/internet costs,
and allow us to continue operating very productive developer hackathon
events.
All of our developers strongly urge you to donate and support our future
efforts. Donations to the project are highly appreciated, and are
described in more detail at:
https://www.OpenBSD.org/donations.html
------------------------------------------------------------------------
- OPENBSD FOUNDATION ---------------------------------------------------
For those unable to make their contributions as straightforward gifts,
the OpenBSD Foundation (https://www.openbsdfoundation.org) is a Canadian
not-for-profit corporation that can accept larger contributions and
issue receipts. In some situations, their receipt may qualify as a
business expense write-off, so this is certainly a consideration for
some organizations or businesses.
There may also be exposure benefits since the Foundation may be
interested in participating in press releases. In turn, the Foundation
then uses these contributions to assist OpenBSD's infrastructure needs.
Contact the foundation directors at directors@openbsdfoundation.org for
more information.
------------------------------------------------------------------------
- RELEASE SONG ---------------------------------------------------------
OpenBSD 7.0 comes with the song "The Style Hymn". Lyrics (and an
explanation) of the song may be found at:
https://www.OpenBSD.org/lyrics.html#70
------------------------------------------------------------------------
- HTTPS INSTALLS -------------------------------------------------------
OpenBSD can be easily installed via HTTPS downloads. Typically you need
a single small piece of boot media (e.g., a USB flash drive) and then
the rest of the files can be installed from a number of locations,
including directly off the Internet. Follow this simple set of
instructions to ensure that you find all of the documentation you will
need while performing an install via HTTPS.
1) Read either of the following two files for a list of HTTPS mirrors
which provide OpenBSD, then choose one near you:
https://www.OpenBSD.org/ftp.html
https://ftp.openbsd.org/pub/OpenBSD/ftplist
As of October 14, 2021, the following HTTPS mirror sites have the
7.0 release:
https://cdn.openbsd.org/pub/OpenBSD/7.0/ Global
https://ftp.eu.openbsd.org/pub/OpenBSD/7.0/ Stockholm, Sweden
https://ftp.hostserver.de/pub/OpenBSD/7.0/ Frankfurt, Germany
https://ftp.bytemine.net/pub/OpenBSD/7.0/ Oldenburg, Germany
https://ftp.fr.openbsd.org/pub/OpenBSD/7.0/ Paris, France
https://mirror.aarnet.edu.au/pub/OpenBSD/7.0/ Brisbane, Australia
https://ftp.usa.openbsd.org/pub/OpenBSD/7.0/ CO, USA
https://ftp5.usa.openbsd.org/pub/OpenBSD/7.0/ CA, USA
https://mirror.esc7.net/pub/OpenBSD/7.0/ TX, USA
https://openbsd.cs.toronto.edu/pub/OpenBSD/7.0/ Toronto, Canada
https://cloudflare.cdn.openbsd.org/pub/OpenBSD/7.0/ Global
https://fastly.cdn.openbsd.org/pub/OpenBSD/7.0/ Global
The release is also available at the master site:
https://ftp.openbsd.org/pub/OpenBSD/7.0/ Alberta, Canada
However it is strongly suggested you use a mirror.
Other mirror sites may take a day or two to update.
2) Connect to that HTTPS mirror site and go into the directory
pub/OpenBSD/7.0/ which contains these files and directories.
This is a list of what you will see:
ANNOUNCEMENT armv7/ octeon/ root.mail
README hppa/ openbsd-70-base.pub sparc64/
SHA256 i386/ packages/ src.tar.gz
SHA256.sig landisk/ packages-stable/ sys.tar.gz
alpha/ loongson/ ports.tar.gz xenocara.tar.gz
amd64/ luna88k/ powerpc64/
arm64/ macppc/ riscv64/
It is quite likely that you will want at LEAST the following
files which apply to all the architectures OpenBSD supports.
README - generic README
root.mail - a copy of root's mail at initial login.
(This is really worthwhile reading).
3) Read the README file. It is short, and a quick read will make
sure you understand what else you need to fetch.
4) Next, go into the directory that applies to your architecture,
for example, amd64. This is a list of what you will see:
BOOTIA32.EFI* bsd* floppy70.img pxeboot*
BOOTX64.EFI* bsd.mp* game70.tgz xbase70.tgz
BUILDINFO bsd.rd* index.txt xfont70.tgz
INSTALL.amd64 cd70.iso install70.img xserv70.tgz
SHA256 cdboot* install70.iso xshare70.tgz
SHA256.sig cdbr* man70.tgz
base70.tgz comp70.tgz miniroot70.img
If you are new to OpenBSD, fetch _at least_ the file INSTALL.amd64
and install70.iso. The install70.iso file (roughly 697MB in size)
is a one-step ISO-format install CD image which contains the various
*.tgz files so you do not need to fetch them separately.
If you prefer to use a USB flash drive, fetch install70.img and
follow the instructions in INSTALL.amd64.
5) If you are an expert, follow the instructions in the file called
README; otherwise, use the more complete instructions in the
file called INSTALL.amd64. INSTALL.amd64 may tell you that you
need to fetch other files.
6) Just in case, take a peek at:
https://www.OpenBSD.org/errata.html
This is the page where we talk about the mistakes we made while
creating the 7.0 release, or the significant bugs we fixed
post-release which we think our users should have fixes for.
Patches and workarounds are clearly described there.
------------------------------------------------------------------------
- X.ORG FOR MOST ARCHITECTURES -----------------------------------------
X.Org has been integrated more closely into the system. This release
contains X.Org 7.7. Most of our architectures ship with X.Org, including
amd64, sparc64 and macppc. During installation, you can install X.Org
quite easily using xenodm(1), our simplified X11 display manager forked
from xdm(1).
------------------------------------------------------------------------
- PACKAGES AND PORTS ---------------------------------------------------
Many third party software applications have been ported to OpenBSD and
can be installed as pre-compiled binary packages on the various OpenBSD
architectures. Please see https://www.openbsd.org/faq/faq15.html for
more information on working with packages and ports.
Note: a few popular ports, e.g., NSD, Unbound, and several X
applications, come standard with OpenBSD and do not need to be installed
separately.
------------------------------------------------------------------------
- SYSTEM SOURCE CODE ---------------------------------------------------
The source code for all four subsystems can be found in the
pub/OpenBSD/7.0/ directory:
xenocara.tar.gz ports.tar.gz src.tar.gz sys.tar.gz
The README (https://ftp.OpenBSD.org/pub/OpenBSD/7.0/README) file
explains how to deal with these source files.
------------------------------------------------------------------------
- THANKS ---------------------------------------------------------------
Ports tree and package building by Jasper Lievisse Adriaanse,
Pierre-Emmanuel Andre, Jeremie Courreges-Anglas, Visa Hankala,
Stuart Henderson, Peter Hessler, Kurt Mosiejczuk, Christian Weisgerber,
and Charlene Wendling. Base and X system builds by Kenji Aoyama and
Theo de Raadt. Release art contributed by Natasha Allegri.
We would like to thank all of the people who sent in bug reports, bug
fixes, donation cheques, and hardware that we use. We would also like
to thank those who bought our previous CD sets. Those who did not
support us financially have still helped us with our goal of improving
the quality of the software.
Our developers are:
Aaron Bieber, Adam Wolk, Alexander Bluhm, Alexander Hall,
Alexandr Nedvedicky, Alexandr Shadchin, Alexandre Ratchov,
Andrew Fresh, Anil Madhavapeddy, Anthony J. Bentley,
Antoine Jacoutot, Anton Lindqvist, Asou Masato, Ayaka Koshibe,
Benoit Lecocq, Bjorn Ketelaars, Bob Beck, Brandon Mercer,
Brent Cook, Brian Callahan, Bryan Steele, Can Erkin Acar,
Carlos Cardenas, Charlene Wendling, Charles Longeau,
Chris Cappuccio, Christian Weisgerber, Christopher Zimmermann,
Claudio Jeker, Dale Rahn, Damien Miller, Daniel Dickman,
Daniel Jakots, Darren Tucker, Dave Voutila, David Coppa,
David Gwynne, David Hill, Denis Fondras, Doug Hogan, Edd Barrett,
Elias M. Mariani, Eric Faurot, Florian Obser, Florian Riehm,
Frederic Cambus, George Koehler, Gerhard Roth, Giannis Tsaraias,
Gilles Chehade, Giovanni Bechis, Gleydson Soares,
Gonzalo L. Rodriguez, Greg Steuck, Helg Bredow, Henning Brauer,
Ian Darwin, Ian Sutton, Igor Sobrado, Ingo Feinerer, Ingo Schwarze,
Inoguchi Kinichiro, James Turner, Jan Klemkow, Jason McIntyre,
Jasper Lievisse Adriaanse, Jeremie Courreges-Anglas, Jeremy Evans,
Job Snijders, Joel Sing, Joerg Jung, Jonathan Armani, Jonathan Gray,
Jonathan Matthew, Jordan Hargrave, Joris Vink, Joshua Stein,
Juan Francisco Cantero Hurtado, Kazuya Goda, Kenji Aoyama,
Kenneth R Westerback, Kent R. Spillner, Kevin Lo, Kirill Bychkov,
Klemens Nanni, Kurt Miller, Kurt Mosiejczuk, Landry Breuil,
Lawrence Teo, Marc Espie, Marcus Glocker, Mark Kettenis,
Mark Lumsden, Markus Friedl, Martijn van Duren, Martin Natano,
Martin Pieuchot, Martin Reindl, Martynas Venckus, Mats O Jansson,
Matthew Dempsky, Matthias Kilian, Matthieu Herrb, Michael Mikonos,
Mike Belopuhov, Mike Larkin, Moritz Buhl, Nam Nguyen,
Nayden Markatchev, Nicholas Marriott, Nigel Taylor, Okan Demirmen,
Ori Bernstein, Otto Moerbeek, Paco Esteban, Pamela Mosiejczuk,
Pascal Stumpf, Patrick Wildt, Paul Irofti, Pavel Korovin,
Peter Hessler, Philip Guenther, Pierre-Emmanuel Andre, Pratik Vyas,
Rafael Sadowski, Rafael Zalamena, Raphael Graf, Remi Locherer,
Remi Pointel, Renato Westphal, Ricardo Mestre, Richard Procter,
Rob Pierce, Robert Nagy, Sasano Takayoshi, Scott Soule Cheloha,
Sebastian Benoit, Sebastian Reitenbach, Sebastien Marie,
Solene Rapenne, Stefan Fritsch, Stefan Kempf, Stefan Sperling,
Steven Mestdagh, Stuart Cassoff, Stuart Henderson, Sunil Nimmagadda,
T.J. Townsend, Ted Unangst, Theo Buehler, Theo de Raadt,
Thomas Frohwein, Tim van der Molen, Tobias Heider,
Tobias Stoeckmann, Todd C. Miller, Todd Mortimer, Tom Cosgrove,
Tracey Emery, Ulf Brosziewski, Uwe Stuehler, Vadim Zhukov,
Vincent Gross, Visa Hankala, Vitaliy Makkoveev, Yasuoka Masahiko,
Yojiro Uo
No comments:
Post a Comment