aboutsummaryrefslogtreecommitdiffstats
path: root/package
Commit message (Collapse)AuthorAgeFilesLines
* wireguard: version bump to 0.0.20171101Kevin Darbyshire-Bryant2017-11-041-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Update wireguard to latest snapshot: 9fc5daf version: bump snapshot 748ca6b compat: unbreak unloading on kernels 4.6 through 4.9 7be9894 timers: switch to kees' new timer_list functions 6be9a66 wg-quick: save all hooks on save 752e7af version: bump snapshot 2cd9642 wg-quick: fsync the temporary file before renaming b139499 wg-quick: allow for saving existing interface 582c201 contrib: add reresolve-dns 8e04be1 tools: correct type for CTRL_ATTR_FAMILY_ID c138276 wg-quick: allow for the hatchet, but not by default d03f2a0 global: use fewer BUG_ONs 6d681ce timers: guard entire setting in block 4bf32ca curve25519: only enable int128 if compiler support is sound 86e06a3 device: expand scope of destruct lock e3661ab global: get rid of useless forward declarations bedc77a device: only take reference if netns is different 7c07e22 wg-quick: remember to rewind DNS settings on failure 2352ec0 wg-quick: allow specifiying multiple hooks 573cb19 qemu: test using four cores e09ec4d global: style nits 4d3deae qemu: work around ccache bugs 7491cd4 global: infuriating kernel iterator style 78e079c peer: store total number of peers instead of iterating d4e2752 peer: get rid of peer_for_each magic 6cf12d1 compat: be sure to include header before testing 3ea08d8 qemu: allow for cross compilation d467551 crypto/avx: make sure we can actually use ymm registers c786c46 blake2: include headers for macros 328e386 global: accept decent check_patch.pl suggestions a473592 compat: fix up stat calculation for udp tunnel 9d930f5 stats: more robust accounting 311ca62 selftest: initialize mutex in routingtable selftest 8a9a6d3 netns: use time-based test instead of quantity-based e480068 netns: use read built-in instead of ncat hack for dmesg Compile-tested-for: ar71xx Run-tested-on: ar71xx Archer C7 v2 Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
* ath9k: unset the default LED pin if used by platform buttonsMathias Kresin2017-11-041-4/+7
| | | | | | | | | | Unset the default LED gpio pin if the same gpio pin is used by a button defined via platform button. It prevents the change of the GPIO value on wireless up/down or wireless traffic. Fixes: FS#1129 Signed-off-by: Mathias Kresin <dev@kresin.me>
* base-files: add interval option to netdev LED trigger configurationEdmunt Pienkowsky2017-11-032-1/+2
| | | | | | Add an uci option to set the interval parameter of the netdev trigger. Signed-off-by: Edmunt Pienkowsky <roed@onet.eu>
* uboot-kirkwood: update to 2017.09Paul Wassi2017-11-039-101/+160
| | | | | | | | | | Upgrade uboot-kirkwood to upstream release 2017.09 Catch up with upstream and move configuration options from simple defines to Kconfig, as otherwise dependencies would not be resolved and code would not compile. Tested-by: Alberto Bursi <alberto.bursi@outlook.it> Signed-off-by: Paul Wassi <p.wassi@gmx.at>
* ltq-atm: add missing dependency to kmod-ltq-adsl-*-meiMathias Kresin2017-11-031-2/+2
| | | | | | | | | | | | | Commit 2e496876c60 fixed the generation of the depends line for external kernel modules which makes it possible for the build system to automatically detect this missing dependency. This fixes the packaging of kmod-ltq-atm for the ar9, xway and xway-legacy subtarget. Fixes: FS#1124 Signed-off-by: Mathias Kresin <dev@kresin.me>
* uclient: update to the latest version, fixes fetch of multiple filesFelix Fietkau2017-11-021-3/+3
| | | | | | 4b87d83 uclient-fetch: fix overloading of output_file variable Signed-off-by: Felix Fietkau <nbd@nbd.name>
* netifd: fix dns and domain variables pollution in dhcp.scriptTero Jänkä2017-11-022-5/+7
| | | | | | | Unmodified dns and domain variables could be needed in user script (/etc/udhcpc.user). Signed-off-by: Tero Jänkä <tero.janka@gmail.com> Signed-off-by: Hans Dedecker <dedeckeh@gmail.com> (cleanup)
* nghttp2: switch to release tarballHans Dedecker2017-11-011-7/+5
| | | | | | | Switch from git to xz release tarball as there's no good reason to keep using git when release tarballs are provided. Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
* openssl: Enable assembler optimizations for aarch64Baptiste Jonglez2017-10-312-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | OpenSSL is built with the generic linux settings for most targets, including aarch64. These generic settings are designed for 32-bit CPU and provide no assembler optmization: this is widely suboptimal for aarch64. This patch simply switches to the aarch64 settings that are already available in OpenSSL. Here is the output of "openssl speed" before the optimization, with "(...)" representing build flags that didn't change: OpenSSL 1.0.2l 25 May 2017 options:bn(64,32) rc4(ptr,char) des(idx,cisc,2,int) aes(partial) blowfish(ptr) compiler: aarch64-openwrt-linux-musl-gcc (...) And after this patch, OpenSSL uses 64 bit mode and assembler optimizations: OpenSSL 1.0.2l 25 May 2017 options:bn(64,64) rc4(ptr,char) des(idx,cisc,2,int) aes(partial) blowfish(ptr) compiler: aarch64-openwrt-linux-musl-gcc (...) -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM Here are some benchmarks on a pine64+ running latest LEDE master r5142-20d363aed3: before# openssl speed sha aes blowfish The 'numbers' are in 1000s of bytes per second processed. type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes sha1 3918.89k 9982.43k 19148.03k 24933.03k 27325.78k sha256 4604.51k 10240.64k 17472.51k 21355.18k 22801.07k sha512 3662.19k 14539.41k 21443.16k 29544.11k 33177.60k blowfish cbc 16266.63k 16940.86k 17176.92k 17237.33k 17252.35k aes-128 cbc 19712.95k 21447.40k 22091.09k 22258.35k 22304.09k aes-192 cbc 17680.12k 19064.47k 19572.14k 19703.13k 19737.26k aes-256 cbc 15986.67k 17132.48k 17537.28k 17657.17k 17689.26k after# openssl speed sha aes blowfish type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes sha1 6770.87k 26172.80k 86878.38k 205649.58k 345978.20k sha256 20913.93k 74663.85k 184658.18k 290891.09k 351032.66k sha512 7633.10k 30110.14k 50083.24k 71883.43k 82485.25k blowfish cbc 16224.93k 16933.55k 17173.76k 17234.94k 17252.35k aes-128 cbc 19425.74k 21193.31k 22065.74k 22304.77k 22380.54k aes-192 cbc 17452.29k 18883.84k 19536.90k 19741.70k 19800.06k aes-256 cbc 15815.89k 17003.01k 17530.03k 17695.40k 17746.60k For some reason AES and blowfish do not benefit, but SHA performance improves between 1.7x and 15x. SHA256 clearly benefits the most from the optimization (4.5x on small blocks, 15x on large blocks!). When using EVP (with "openssl speed -evp <algo>"): # Before, EVP mode type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes sha1 3824.46k 10049.66k 19170.56k 24947.03k 27325.78k sha256 3368.33k 8511.15k 16061.44k 20772.52k 22721.88k sha512 2845.23k 11381.57k 19467.69k 28512.26k 33008.30k bf-cbc 15146.74k 16623.83k 17092.01k 17211.39k 17249.62k aes-128-cbc 17873.03k 20870.61k 21933.65k 22216.36k 22301.35k aes-192-cbc 16184.18k 18607.15k 19447.13k 19670.02k 19737.26k aes-256-cbc 14774.06k 16757.25k 17457.58k 17639.42k 17686.53k # After, EVP mode type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes sha1 7056.97k 27142.10k 89515.86k 209155.41k 347419.99k sha256 7745.70k 29750.06k 95341.48k 211001.69k 332376.75k sha512 4550.47k 18086.06k 39997.10k 65880.75k 81431.21k bf-cbc 15129.20k 16619.03k 17090.56k 17212.76k 17246.89k aes-128-cbc 99619.74k 269032.34k 450214.23k 567353.00k 613933.06k aes-192-cbc 93180.74k 231017.79k 361766.66k 433671.51k 461731.16k aes-256-cbc 89343.23k 209858.58k 310160.04k 362234.88k 380878.85k Blowfish does not seem to have assembler optimization at all, and SHA still benefits (between 1.6x and 14.5x) but is generally slower than in non-EVP mode. However, AES performance is improved between 5.5x and 27.5x, which is really impressive! For aes-128-cbc on large blocks, a core i7-6600U @2.60GHz is only twice as fast... Signed-off-by: Baptiste Jonglez <git@bitsofnetworks.org>
* acx-mac80211: allow compilation on 4.9Jonas Gorski2017-10-291-1/+1
| | | | | | acx-mac80211 compiles fine with 4.9, so no reason to not allow it. Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
* ar7-atm: fix function signatures with expected onesJonas Gorski2017-10-292-0/+126
| | | | | | | Newer kernels treat differing signatures an error, not just a warning, so fix the signatures to match. Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
* ar7-atm: fixup proc fixesJonas Gorski2017-10-296-24/+90
| | | | | | | They were incomplete, so fix them to properly update the function signatures to what is expected. Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
* ar7-atm: drop LINUX_VERSION testsJonas Gorski2017-10-2914-339/+199
| | | | | | | | | Minimum supported kernel is 3.18, so we don't need to test for anything older. In addition, the API hasn't changed since then, so we don't need to check for any kernel version at all. This helps to keeps the amount of changes more managable. Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
* curl: bump to 7.56.1Hans Dedecker2017-10-293-41/+5
| | | | | | | | | | | Refresh patches Remove 320-curl-confopts.m4-fix-disable-threaded-resolver.patch as integrated upstream See https://curl.haxx.se/changes.html for the bugfixes in 7.56.0 and 7.56.1 Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
* nghttp2: bump to 1.27.0Hans Dedecker2017-10-291-3/+3
| | | | | | | | | | | | Changes in v1.27.0 : build: Fixed accidental compiler flags concatenation for MSVC (Patch from LazyHamster) (GH-1029) build: Reduce libxml2 version requirement to 2.6.26 (Patch from Mike Lothian) (GH-1020) asio: Support for Windows / MinGW (Patch from Daniel Evers) (GH-1027) h2load: Print out h2 header fields with --verbose option (GH-1015) nghttpx: Send non-final response to HTTP/1.1 or HTTP/2 client only (GH-1016) Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
* ltq-atm: Add missing dependency to kmod-ltq-adsl-ase-meiHauke Mehrtens2017-10-291-1/+1
| | | | | | | | | Commit 2e496876c60 fixed the generation of the depends line for external kernel modules which makes it possible for the build system to automatically detect this missing dependency. This fixes the build bot build of the lantiq/aes target. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* build: use KERNEL_MAKE_FLAGS for kernel file compilationsKarl Vogel2017-10-2919-40/+20
| | | | | | | The build system already defines KERNEL_CROSS which defaults to TARGET_CROSS. Make use of this variable for kernel makefiles. Signed-off-by: Karl Vogel <karl.vogel@gmail.com>
* adb: fix package descriptionMatt Mets2017-10-291-1/+1
| | | | Signed-off-by: Matt Mets <matt@blinkinlabs.com>
* mwlwifi: switch to AutoProbeJonas Gorski2017-10-271-1/+1
| | | | | | | Now that we have working module dependency generation, we can switch to AutoProbe and let modprobe handle loading required modules. Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
* mt76: switch to AutoProbeJonas Gorski2017-10-271-3/+2
| | | | | | | Now that we have working module dependency generation, we can switch to AutoProbe and let modprobe handle loading required modules. Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
* mac80211: ath10k: switch to AutoProbeJonas Gorski2017-10-271-1/+1
| | | | | | | Now that we have working module dependency generation, we can switch to AutoProbe and let modprobe handle loading required modules. Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
* broadcom-wl: switch to AutoProbeJonas Gorski2017-10-271-1/+1
| | | | | | | Now that we have working module dependency generation, we can switch to AutoProbe and let modprobe handle loading required modules. Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
* broadcom-wl: reorder kmod build and pass EXTRA_VERSIONSJonas Gorski2017-10-271-5/+7
| | | | | | | | | Reoder the build to build the glue module first and pass the glue module's Module.symvers to the wl driver builds. This allows modpost to properly store a wl_glue dependency in the driver. Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
* broadcom-wl: define module directoriesJonas Gorski2017-10-271-0/+2
| | | | | | | Define the module subdirs so our build system properly picks up the Module.symvers. Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
* ath10k-ct: switch to AutoProbeJonas Gorski2017-10-271-1/+1
| | | | | | | Now that we have working module dependency generation, we can switch to AutoProbe and let modprobe handle loading required modules. Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
* ath10k-ct: define module directoriesJonas Gorski2017-10-271-0/+1
| | | | | | | Define the module subdir so our buildsystem properly picks up the Module.symvers. Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
* acx-mac80211: drop PKG_BUILD_DEPENDSJonas Gorski2017-10-271-1/+0
| | | | | | | We already have a DEPENDS on mac80211, which should be enough to ensure headers are available before build. Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
* acx-mac80211: switch to AutoProbeJonas Gorski2017-10-271-1/+1
| | | | | | | Now that we have working module dependency generation, we can switch to AutoProbe and let modprobe handle loading required modules. Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
* Revert "wpa_supplicant: log to syslog instead of stdout"Jo-Philipp Wich2017-10-272-2/+2
| | | | | | | | | | | | | | This reverts commit e7373e489d8a215402d6b0c408a26188342c7c17. Support of "-s" depends on the CONFIG_DEBUG_SYSLOG compile time flag which is not enabled for all build variants. Revert the change for now until we can properly examine the size impact of CONFIG_DEBUG_SYSLOG. Fixes FS#1117. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* mdadm: fix parameter quotingJo-Philipp Wich2017-10-271-8/+12
| | | | | | | Ensure that path defines are passed quoted to the compiler in order to avoid cpp syntax errors. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* mdadm: Fix config generationRosen Penev2017-10-272-11/+9
| | | | | | | | | | | | | | | | | The init script generated something like "DEVICE=/dev/sda" when it should have been generating "DEVICE /dev/sda". mdadm errors on this. Patch by jow. Also changed the default sendmail path to /usr/sbin/sendmail. No package in LEDE provides /sbin/sendmail. msmtp provides /usr/sbin/sendmail so use that. Also add a patch to fix file paths for mdadm runtime files. mdadm currently errors on them since /run is missing. Once /run is added to stock LEDE, this patch can be removed. Signed-off-by: Rosen Penev <rosenp@gmail.com> [rewrap commit message] Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* iptables: Fix target TRACE issueMartin Wetterwald2017-10-271-0/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | The package kmod-ipt-debug builds the module xt_TRACE, which allows users to use '-j TRACE' as target in the chain PREROUTING of the table raw in iptables. The kernel compilation flag NETFILTER_XT_TARGET_TRACE is also enabled so that this feature which is implemented deep inside the linux IP stack (for example in sk_buff) is compiled. But a strace of iptables -t raw -I PREROUTING -p icmp -j TRACE reveals that an attempt is made to read /usr/lib/iptables/libxt_TRACE.so, which fails as this dynamic library is not present on the system. I created the package iptables-mod-trace which takes care of that, and target TRACE now works! https://dev.openwrt.org/ticket/16694 https://dev.openwrt.org/ticket/19661 Signed-off-by: Martin Wetterwald <martin.wetterwald@corp.ovh.com> [Jo-Philipp Wich: also remove trace extension from builtin extension list and depend on kmod-ipt-raw since its required for rules] Signed-off-by: Jo-Philipp Wich <jo@mein.io> Tested-by: Enrico Mioso <mrkiko.rs@gmail.com>
* ath10k-firmware: qca9888 firmware: remove board.binHenryk Heisig2017-10-271-3/+0
| | | | Signed-off-by: Henryk Heisig <hyniu@o2.pl>
* mac80211: backport fixes for fix for CVE-2017-13080Jonas Gorski2017-10-262-0/+106
| | | | | | | Backport two fixes for the fix of CVE-2017-13080, preventing side channel attacks and making it work for TKIP. Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
* hostapd: fix up ubus supportJohn Crispin2017-10-252-23/+45
| | | | Signed-off-by: John Crispin <john@phrozen.org>
* ltq-xdsl-app: script style nitKevin Darbyshire-Bryant2017-10-252-2/+2
| | | | | | Fix missing space style nit. Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
* ltq-adsl-app: add more script notificationsMathias Kresin2017-10-252-1/+43
| | | | | | | | Backport HANDSHAKE and TRAINING notification from ltq-vdsl-app. It unifies the dsl led blinking pattern accross all subtargets and allows to get the current line status from the dsl led. Signed-off-by: Mathias Kresin <dev@kresin.me>
* ltq-atm: remove xrx200 special handlingMathias Kresin2017-10-251-5/+1
| | | | | | | | The lantiq ATM driver is load for all subtargets on demand now. There is not need to handle the xrx200 ATM driver in a special way any longer. Signed-off-by: Mathias Kresin <dev@kresin.me>
* lantiq: xway: rename nas0/ptm0 to dsl0Mathias Kresin2017-10-252-3/+11
| | | | | | | | | | | This change makes it possible to configure the wan/dsl ppp interface settings independantly from the used TC-Layer (ATM/PTM). By using dsl0 as interface name as for the xrx200 we can get rid of a few conditionals which were introduced because of the different default TC-Layer in xway and xrx200. Signed-off-by: Mathias Kresin <dev@kresin.me>
* ltq-adsl-app: use notification based ATM/PTM driver loadMathias Kresin2017-10-254-6/+65
| | | | | | | This patch removes the fixed atm/ptm driver loading and switches to notification based driver loading. Signed-off-by: Mathias Kresin <dev@kresin.me>
* ltq-adsl-app: convert init script to procdMathias Kresin2017-10-251-6/+11
| | | | | | Use the procd features for the init script. Signed-off-by: Mathias Kresin <dev@kresin.me>
* libs/lzo: Reenable unaligned access on ARM, PPC, ...Stefan Oberhumer2017-10-241-4/+0
| | | | | | | | | | | | Due a compiler bug on ARM targets ( https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64516 ) unaligned access was disabled on all targets other than i386 and x86_64 with commit 061319ec3dfe9b6d14af1286a1d9979db56048d7 . A fix has been added to lzo-2.09 so it is not necessary to disable unaligned access within the Makefile anymore. Signed-off-by: Stefan Oberhumer <stefan@obssys.com>
* uboot-sunxi: Backport fix for stale CONFIG_SUNXIG_GMAC referencesFlorian Fainelli2017-10-235-28/+84
| | | | | | | | | | This backports the upstream commit fixing stale references to CONFIG_SUNXI_GMAC which have been later replaced by CONFIG_SUN7I_GMAC. This fixes the designware MAC pinmuxing on e.g: Lamobo R1. Refresh patches while we are at it. Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
* kernel: add kmod-iio-bmp280Stijn Tintel2017-10-231-0/+48
| | | | | | | | | | This driver supports the Bosch Sensortec BMP180/BMP280 pressure and temperature sensors. It also supports the BME280 sensors with an additional humidity channel. Tested I2C and SPI modes with a BME280 sensor on a Raspberry Pi Zero W. Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
* kernel: move IIO modules to iio.mkStijn Tintel2017-10-232-65/+72
| | | | Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
* netifd: bump to git HEAD version (FS#1037)Hans Dedecker2017-10-191-3/+3
| | | | | | | 0f96606 proto: add point-to-point IPv4 address config support (FS#1037) 1ee788d ubus: display the point-to-point IPv4 address Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
* uboot-envtools: add support for Nokia WI2A-AC200iFelix Fietkau2017-10-191-0/+3
| | | | Signed-off-by: Felix Fietkau <nbd@nbd.name>
* broadcom-wl: fix compile with kernel 4.9Hauke Mehrtens2017-10-181-4/+5
| | | | | | | ENOENT could not be found by the compiler when compiling again kernel 4.9. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* hostapd: bump PKG_RELEASEStijn Tintel2017-10-181-1/+1
| | | | | | | | | | The previous commit did not adjust PKG_RELEASE, therefore the hostapd/wpad/wpa_supplicant packages containing the AP-side workaround for KRACK do not appear as opkg update. Bump the PKG_RELEASE to signify upgrades to downstream users. Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
* wireguard: version bump to 0.0.20171017Jason A. Donenfeld2017-10-171-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a simple version bump. Changes: * noise: handshake constants can be read-only after init * noise: no need to take the RCU lock if we're not dereferencing * send: improve dead packet control flow * receive: improve control flow * socket: eliminate dead code * device: our use of queues means this check is worthless * device: no need to take lock for integer comparison * blake2s: modernize API and have faster _final * compat: support READ_ONCE * compat: just make ro_after_init read_mostly Assorted cleanups to the module, including nice things like marking our precomputations as const. * Makefile: even prettier output * Makefile: do not clean before cloc * selftest: better test index for rate limiter * netns: disable accept_dad for all interfaces Fixes in our testing and build infrastructure. Now works on the 4.14 rc series. * qemu: add build-only target * qemu: work on ubuntu toolchain * qemu: add more debugging options to main makefile * qemu: simplify shutdown * qemu: open /dev/console if we're started early * qemu: phase out bitbanging * qemu: always create directory before untarring * qemu: newer packages * qemu: put hvc directive into configuration This is the beginning of working out a cross building test suite, so we do several tricks to be less platform independent. * tools: encoding: be more paranoid * tools: retry resolution except when fatal * tools: don't insist on having a private key * tools: add pass example to wg-quick man page * tools: style * tools: newline after warning * tools: account for padding being in zero attribute Several important tools fixes, one of which suppresses a needless warning. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>