<?xml version="1.0" encoding="UTF-8"?>



<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <atom:link href="http://9front.org:80/releases/index.rss" rel="self" type="application/rss+xml" />
        <title><![CDATA[9FRONT.ORG]]></title>
        <link>http://9front.org:80/releases/index.rss</link>
        <description><![CDATA[]]></description>
        <language>en-us</language>
        <generator><![CDATA[Tom Duff's rc, and Kris Maglione's clever hackery]]></generator>
<lastBuildDate>Tue, 01 Nov 2022 16:04:24 -0400</lastBuildDate>

        <item>
            <title><![CDATA[9FRONT "THE GOLDEN AGE OF BALLOONING" RELEASED]]></title>
            <author><![CDATA[sl@noreply.cat-v.org (sl)]]></author>
            <link>http://9front.org:80/releases/2022/10/31/0/</link>
            <guid isPermaLink="true">http://9front.org:80/releases/2022/10/31/0/</guid>
            <pubDate>Mon, 31 Oct 2022 23:02:29 -0400</pubDate>
            <description> &lt;p&gt;&lt;img src="http://9front.org/img/goldenageofballooning.front.png" alt="front" /&gt;&lt;/p&gt;

&lt;p&gt;Notable changes in this release:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://helpful.cat-v.org/Blog/2022/07/12/0/"&gt;MNT Reform laptop&lt;/a&gt; is a first class citizen&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;added
&lt;a href="http://man.9front.org/1/bar"&gt;bar(1)&lt;/a&gt;,
&lt;a href="http://man.9front.org/1/ktrans"&gt;ktrans(1)&lt;/a&gt;, and
&lt;a href="http://man.9front.org/1/riow"&gt;riow(1)&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;now includes free &lt;a href="http://man.9front.org/1/games"&gt;doom(1)&lt;/a&gt; wad&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;scroll down for more&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;DOWNLOAD&lt;/h2&gt;

&lt;p&gt;Multiple installation media are provided for PC, Raspberry Pi, and MNT Reform.
For PC, burn an .iso file to CD, or dd it directly to USB media.  For
Raspberry Pi or MNT Reform, dd an .img file directly to sdcard.&lt;/p&gt;

&lt;p&gt;The pi.img file can be used for Raspberry Pi 1, 2, and 3.  The pi3.img
file can be used for Raspberry Pi 3 and 4.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-9442.0e66f87316e571f7edf5274369ec69a5905507aa.386.iso.gz.torrent"&gt;http://9front.org/iso/9front-9442.0e66f87316e571f7edf5274369ec69a5905507aa.386.iso.gz.torrent&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-9442.0e66f87316e571f7edf5274369ec69a5905507aa.amd64.iso.gz.torrent"&gt;http://9front.org/iso/9front-9442.0e66f87316e571f7edf5274369ec69a5905507aa.amd64.iso.gz.torrent&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-9442.0e66f87316e571f7edf5274369ec69a5905507aa.pi.img.gz.torrent"&gt;http://9front.org/iso/9front-9442.0e66f87316e571f7edf5274369ec69a5905507aa.pi.img.gz.torrent&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-9442.0e66f87316e571f7edf5274369ec69a5905507aa.pi3.img.gz.torrent"&gt;http://9front.org/iso/9front-9442.0e66f87316e571f7edf5274369ec69a5905507aa.pi3.img.gz.torrent&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-9442.0e66f87316e571f7edf5274369ec69a5905507aa.reform.img.gz.torrent"&gt;http://9front.org/iso/9front-9442.0e66f87316e571f7edf5274369ec69a5905507aa.reform.img.gz.torrent&lt;/a&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;   ; sha1sum -2 256 9front-9442*gz
   dd67daad1bf2397c19543eeeb4aa6e2642febdcce3100556bf4b1af7cb38e252      9front-9442.0e66f87316e571f7edf5274369ec69a5905507aa.386.iso.gz
   c577bdd3190211fd0e9b46c1afada712b9a9ee460a4d5a4c679e522f5f72eda6      9front-9442.0e66f87316e571f7edf5274369ec69a5905507aa.amd64.iso.gz
   012812e745e642b1c8d27fc58b001a34f0ab4f605660c89cbded41ca20cce503      9front-9442.0e66f87316e571f7edf5274369ec69a5905507aa.pi.img.gz
   6313e1d028380a11228613c2a78f76f28685a119f1ab8c6aae5393dedc17db02      9front-9442.0e66f87316e571f7edf5274369ec69a5905507aa.pi3.img.gz
   83b1dd8acaacd0dcb9bed188cbf33f3a410486d1724d15bcef4646c0288bec95      9front-9442.0e66f87316e571f7edf5274369ec69a5905507aa.reform.img.gz
&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;MIRRORS&lt;/h2&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/"&gt;http://9front.org/iso/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://r-36.net/9front/"&gt;http://r-36.net/9front/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://lux.felloff.net/usr/cinap_lenrek/9front/"&gt;http://lux.felloff.net/usr/cinap_lenrek/9front/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://ftp.cc.uoc.gr/mirrors/9front/"&gt;https://ftp.cc.uoc.gr/mirrors/9front/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;GIT REPOSITORY&lt;/h2&gt;

&lt;p&gt;&lt;a href="http://git.9front.org/plan9front/plan9front/HEAD/info.html"&gt;http://git.9front.org/plan9front/plan9front/HEAD/info.html&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;DASH 1 MANUAL&lt;/h2&gt;

&lt;p&gt;&lt;a href="http://fqa.9front.org/dash1.goldenageofballooning.pdf"&gt;http://fqa.9front.org/dash1.goldenageofballooning.pdf&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;dash 1 manual: &lt;a href="http://9front.org/propaganda/books"&gt;http://9front.org/propaganda/books&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;SONGS&lt;/h2&gt;

&lt;p&gt;by cinap&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/mp3/fal4.mp3"&gt;http://9front.org/mp3/fal4.mp3&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;THANKS&lt;/h2&gt;

&lt;p&gt;&lt;img src="http://9front.org/img/Wizard-of-Oz-Balloon.png" alt="Oz" /&gt;&lt;/p&gt;

&lt;p&gt;Oscar Zoroaster Phadrig Isaac Norman Henkle Emmannuel Ambroise Diggs&lt;/p&gt;

&lt;h2&gt;KERNEL AND DRIVERS&lt;/h2&gt;

&lt;p&gt;&lt;img src="http://9front.org/img/sticker1.jpg" alt="sticker1" /&gt;&lt;/p&gt;

&lt;p&gt;acpi: /mnt/acpi → /mnt/pm&lt;/p&gt;

&lt;p&gt;aux/acpi, aux/imx8pm: stats(1) expects two numbers for each cputemp reading&lt;/p&gt;

&lt;p&gt;aux/acpi: fix division by zero (thanks umbraticus)&lt;/p&gt;

&lt;p&gt;aux/acpi: mount -a on /dev instead of /mnt/pm; ctl → pmctl&lt;/p&gt;

&lt;p&gt;aux/acpi: simplify/rework; support &amp;ldquo;power off&amp;rdquo; via pmctl&lt;/p&gt;

&lt;p&gt;aux/imx8pm: add core/gpu/vpu temp read support (kernel counterpart is TBD)&lt;/p&gt;

&lt;p&gt;aux/imx8pm: add relative brightness setting (-+N), useful for key bindings&lt;/p&gt;

&lt;p&gt;aux/imx8pm: calibrate per documentation (but with questionable values)&lt;/p&gt;

&lt;p&gt;aux/imx8pm: hide gpu and vpu from cputemp&lt;/p&gt;

&lt;p&gt;aux/kbdfs, nusb/kb: add basic media keys support; add /dev/hidNctl to change repeat/delay; fix a race condition&lt;/p&gt;

&lt;p&gt;aux/kbdfs: correct comment regarding 0x79 and 0x7b codes.&lt;/p&gt;

&lt;p&gt;aux/vga: misc. igfx fixes for displayport&lt;/p&gt;

&lt;p&gt;aux/wm8960: audio controls fs for MNT Reform&lt;/p&gt;

&lt;p&gt;aux/wm8960: disable speaker boost to avoid clipping&lt;/p&gt;

&lt;p&gt;aux/wm8960: do the math&lt;/p&gt;

&lt;p&gt;aux/wm8960: expose 3d stereo controls&lt;/p&gt;

&lt;p&gt;aux/wm8960: fix chopped audio on the speakers with high volume&lt;/p&gt;

&lt;p&gt;aux/wm8960: make jack detect work; enable thermal shutdown; fix fractional div part&lt;/p&gt;

&lt;p&gt;aux/wm8960: provide hardcoded &amp;ldquo;speed&amp;rdquo; in volume file&lt;/p&gt;

&lt;p&gt;aux/wm8960: reduce popping, clean up&lt;/p&gt;

&lt;p&gt;aux/wm8960: relative volume adjustment through the fs interface&lt;/p&gt;

&lt;p&gt;aux/wm8960: run as master and provide more precise clock; add oneshot mode (no fs)&lt;/p&gt;

&lt;p&gt;aux/wm8960: support 48kHz via &amp;ldquo;speed&amp;rdquo; verb&lt;/p&gt;

&lt;p&gt;bind, mount: stop returning mount id&lt;/p&gt;

&lt;p&gt;devarch: add name for VIA C7 Eden&lt;/p&gt;

&lt;p&gt;devi2c: add generic i2c bus driver&lt;/p&gt;

&lt;p&gt;devip: arp: don&amp;rsquo;t leak data in the padding of arp replies&lt;/p&gt;

&lt;p&gt;devip: arp: make sure arpresolve() only returns single packet&lt;/p&gt;

&lt;p&gt;devip: arp: move arp expire logic into own function&lt;/p&gt;

&lt;p&gt;devip: do tcp mss clamping when forwarding packets&lt;/p&gt;

&lt;p&gt;devip: fix ipv6 mss clamping&lt;/p&gt;

&lt;p&gt;devip: get rid of Ipifc.mintu&lt;/p&gt;

&lt;p&gt;devip: less stupid hnputs_csum()&lt;/p&gt;

&lt;p&gt;devip: make Rproxy flag explicit&lt;/p&gt;

&lt;p&gt;devip: replicate the nat-flag (Rtrans) when superceding interface route&lt;/p&gt;

&lt;p&gt;devip: use port/netif.h constants for ethermedium&lt;/p&gt;

&lt;p&gt;devpci: provide a #$ device for PCI config access&lt;/p&gt;

&lt;p&gt;devvga: fix race condition between writes to vgactl&lt;/p&gt;

&lt;p&gt;ether8169: support for RTL8168EP chips&lt;/p&gt;

&lt;p&gt;etherimx: fix link negotiation&lt;/p&gt;

&lt;p&gt;etherimx: set iomux pad configiguration&lt;/p&gt;

&lt;p&gt;etheriwl: add 7265 device id&lt;/p&gt;

&lt;p&gt;ethervgbe: enable auto-negotiation and ipv6 (thanks arne)&lt;/p&gt;

&lt;p&gt;igfx: Add support for Xeon E3-1200v3&lt;/p&gt;

&lt;p&gt;imx8/gpio: add interrupt handlers support&lt;/p&gt;

&lt;p&gt;imx8/gpio: allow 0 as &amp;ldquo;no-op&amp;rdquo; gpio pin&lt;/p&gt;

&lt;p&gt;imx8/gpio: missed change in the previous commit&lt;/p&gt;

&lt;p&gt;imx8/gpio: use u32int for bit mask&lt;/p&gt;

&lt;p&gt;imx8/lcd: disable the bridge output on blank&lt;/p&gt;

&lt;p&gt;imx8/lcd: reduce flicker&lt;/p&gt;

&lt;p&gt;imx8/lcd: rework screen blanking&lt;/p&gt;

&lt;p&gt;imx8/lcd: set iomux pad configuration&lt;/p&gt;

&lt;p&gt;imx8/lcd: silly work around for display instability&lt;/p&gt;

&lt;p&gt;imx8/lcd: toggle lcdif on blankscreen&lt;/p&gt;

&lt;p&gt;imx8/pm: provide acpi(1)-compatible battery readings&lt;/p&gt;

&lt;p&gt;imx8/sai, aux/wm8960: expose jack detect status in #A/audiostat&lt;/p&gt;

&lt;p&gt;imx8/sai: do not strangle the core with interrupts on underruns&lt;/p&gt;

&lt;p&gt;imx8/sai: double the delay; set clock explicitly&lt;/p&gt;

&lt;p&gt;imx8/sai: flush the ring on close to avoid garbage leftovers on restarts&lt;/p&gt;

&lt;p&gt;imx8/sai: increase watermark, run in slave mode, continue on fifo errors&lt;/p&gt;

&lt;p&gt;imx8/sai: reduce watermark; use the fifo size reported by the platform; remove useless stuff&lt;/p&gt;

&lt;p&gt;imx8/usbxhci: bring usb out of reset&lt;/p&gt;

&lt;p&gt;imx8/usbxhciimx: fix a set and not used warning&lt;/p&gt;

&lt;p&gt;imx8/usdhc: cleanup, set pad configuration&lt;/p&gt;

&lt;p&gt;imx8/usdhc: implement highspeed mode (50Mhz)&lt;/p&gt;

&lt;p&gt;imx8/usdhc: work around broken multi-write for now&lt;/p&gt;

&lt;p&gt;imx8: add a semi-working SAI2 audio driver&lt;/p&gt;

&lt;p&gt;imx8: add aux/imx8pm with lcd brightness control&lt;/p&gt;

&lt;p&gt;imx8: add gpio helper gpioout()/gpioin()&lt;/p&gt;

&lt;p&gt;imx8: add i2c bus driver&lt;/p&gt;

&lt;p&gt;imx8: add iomuxpad() helper for pad and mux control&lt;/p&gt;

&lt;p&gt;imx8: add simple i2c rtc driver for NXP PCF8523&lt;/p&gt;

&lt;p&gt;imx8: add work in progress i.MX8MQ kernel for the mntreform2 laptop&lt;/p&gt;

&lt;p&gt;imx8: add xhci driver for the soc&lt;/p&gt;

&lt;p&gt;imx8: better syntax for iomuxpad() options using ~ for negation&lt;/p&gt;

&lt;p&gt;imx8: ccm: fix sai copy-paste typos&lt;/p&gt;

&lt;p&gt;imx8: cleanup mem.h&lt;/p&gt;

&lt;p&gt;imx8: detect cpu lcycles() frequency&lt;/p&gt;

&lt;p&gt;imx8: enable/expose tmu&lt;/p&gt;

&lt;p&gt;imx8: fix install target&lt;/p&gt;

&lt;p&gt;imx8: fix reduced lcdif pix clk workaround by enabling underflow recovery&lt;/p&gt;

&lt;p&gt;imx8: get mac address from OTP rom&lt;/p&gt;

&lt;p&gt;imx8: gic: irqenable → intrenable&lt;/p&gt;

&lt;p&gt;imx8: 1.6Ghz turbo&lt;/p&gt;

&lt;p&gt;imx8: implement /dev/reboot support&lt;/p&gt;

&lt;p&gt;imx8: implement psci calls for system reset and multicore startup&lt;/p&gt;

&lt;p&gt;imx8: invalidate l2 cache as well (fixes not fully cleared BSS on cold boot)&lt;/p&gt;

&lt;p&gt;imx8: less stupid pci interrupt handler&lt;/p&gt;

&lt;p&gt;imx8: load a plan9.ini at CONFADDR 0x40010000&lt;/p&gt;

&lt;p&gt;imx8: mainscreen turn on!&lt;/p&gt;

&lt;p&gt;imx8: make gpc functionality available with a powerup() function&lt;/p&gt;

&lt;p&gt;imx8: pcie and nvme support&lt;/p&gt;

&lt;p&gt;imx8: port usdhc driver (from bcm/sdhc) for external sdcard&lt;/p&gt;

&lt;p&gt;imx8: provide iomuxgpr() function to access iomuxc&amp;rsquo;s gpr&amp;rsquo;s&lt;/p&gt;

&lt;p&gt;imx8: qos magic to avoid interference between pcie and lcdif&lt;/p&gt;

&lt;p&gt;imx8: reset lcdif and sn65sdi86 bridge before init&lt;/p&gt;

&lt;p&gt;imx8: set virtual timer offset to zero for all cores&lt;/p&gt;

&lt;p&gt;imx8: turn backlight off when blanking&lt;/p&gt;

&lt;p&gt;kernel: add /rc to devroot&lt;/p&gt;

&lt;p&gt;kernel: add chdev command to devcons&lt;/p&gt;

&lt;p&gt;kernel: add dev dtracy provider.&lt;/p&gt;

&lt;p&gt;kernel: add devskel for pc and pc64&lt;/p&gt;

&lt;p&gt;kernel: allocate notes in heap&lt;/p&gt;

&lt;p&gt;kernel: allow kiloprocs &amp;ndash; allocate procs lazily&lt;/p&gt;

&lt;p&gt;kernel: be more careful about argc for /dev/drivers writes&lt;/p&gt;

&lt;p&gt;kernel: bootrc: add bootloop=&lt;/p&gt;

&lt;p&gt;kernel: cleanup unused fields from devpipe&lt;/p&gt;

&lt;p&gt;kernel: compute available kernel pages using sizeof(Proc*)&lt;/p&gt;

&lt;p&gt;kernel: consistently add devbridge and netdevmedium to kernel configs&lt;/p&gt;

&lt;p&gt;kernel: devskel: use RWlock&lt;/p&gt;

&lt;p&gt;kernel: devwalk: correct debug print&lt;/p&gt;

&lt;p&gt;kernel: disable wstat for devpipe&lt;/p&gt;

&lt;p&gt;kernel: exclude ppc kernels from all target&lt;/p&gt;

&lt;p&gt;kernel: fix freeb() for custom pools&lt;/p&gt;

&lt;p&gt;kernel: fix noteid change race condition from devproc while forking (thanks joe7)&lt;/p&gt;

&lt;p&gt;kernel: get rid of Proc.kstack&lt;/p&gt;

&lt;p&gt;kernel: half NERR, refcount Note&amp;rsquo;s to avoid excessive allocations for postnotepg()&lt;/p&gt;

&lt;p&gt;kernel: remove dead case from devpipe&lt;/p&gt;

&lt;p&gt;kernel: simplify notify() adding common popnote() function&lt;/p&gt;

&lt;p&gt;kernel: use 64 bits for mountids&lt;/p&gt;

&lt;p&gt;mkdevc: fix dtracy-disabled builds (thanks ori)&lt;/p&gt;

&lt;p&gt;nusb/disk: always allow raw scsi request (even without media present)&lt;/p&gt;

&lt;p&gt;nusb/disk: fix interactions with libdisk&lt;/p&gt;

&lt;p&gt;nusb/kb, aux/kbdfs: add brightness down/up media keys&lt;/p&gt;

&lt;p&gt;nusb/kb: add &amp;ldquo;rawon&amp;rdquo;/&amp;ldquo;rawoff&amp;rdquo; to switch ctl fid into raw report output mode&lt;/p&gt;

&lt;p&gt;nusb/kb: fix scancode for right ctl&lt;/p&gt;

&lt;p&gt;nusb/kb: support 無変換, 変換, and &amp;lsquo;ひらがな / カタカナ&amp;rsquo; keys&lt;/p&gt;

&lt;p&gt;nusb/ptp: increase payload&lt;/p&gt;

&lt;p&gt;nusb/usbd: retry opendevtata() a few times on attach (work around mnt-reform trackball)&lt;/p&gt;

&lt;p&gt;pc/rtc: make sure string is NUL terminates for rtc write&lt;/p&gt;

&lt;p&gt;pc64: half KSTACK to 8k.&lt;/p&gt;

&lt;p&gt;reform/audio: remove DAC vol limit; discharge HP caps on init&lt;/p&gt;

&lt;p&gt;reform/audio: remove HP caps discharge; faster hp/spk switch and (un)mute response&lt;/p&gt;

&lt;p&gt;reform/audio: use soft-mute to toggle DAC&lt;/p&gt;

&lt;p&gt;reform/pm: add keyboard light level controlling to /dev/light&lt;/p&gt;

&lt;p&gt;reform/pm: calculate time to full (dis)charge; low→warn capacity; endless loop protection&lt;/p&gt;

&lt;p&gt;reform/pm: kbdoled: allow any size/depth of uncompressed image - convert ourselves&lt;/p&gt;

&lt;p&gt;reform/pm: kbdoled: clear the OLED on zero-length write&lt;/p&gt;

&lt;p&gt;reform/pm: lpc comms: increase delays to 80ms&lt;/p&gt;

&lt;p&gt;reform/pm: lpccall: read as much as possible after the command; clean up&lt;/p&gt;

&lt;p&gt;reform/pm: measure CPU temperature only when requested, disable monitoring right away&lt;/p&gt;

&lt;p&gt;reform/pm: oops. do not invert&lt;/p&gt;

&lt;p&gt;reform/pm: power off via the keyboard first&lt;/p&gt;

&lt;p&gt;reform/pm: provide /dev/kbdoled to display a 126x32x1 bitmap on the keyboard OLED&lt;/p&gt;

&lt;p&gt;reform/pm: serve lpc readouts over a queue to avoid lockups on other requests&lt;/p&gt;

&lt;p&gt;reform/shortcuts: change to use available media keys via Hyper&lt;/p&gt;

&lt;p&gt;reform/shortcuts: negative step values&lt;/p&gt;

&lt;p&gt;reform/shortcuts: use Kmod4+esc to (un)mute the audio&lt;/p&gt;

&lt;p&gt;reform/shortcuts: use media keys for LCD brightness control&lt;/p&gt;

&lt;p&gt;reform: add pmctl to read more info and to turn power rails off; manpages&lt;/p&gt;

&lt;p&gt;reform: add reform/shortcuts&lt;/p&gt;

&lt;p&gt;reform: only override console=0 when no plan9.ini is passed&lt;/p&gt;

&lt;p&gt;reform: tweak manpage and reform/audio a bit&lt;/p&gt;

&lt;p&gt;sdnvme: add dmaflush() instructions, move to port/&lt;/p&gt;

&lt;p&gt;sdnvme: avoid &amp;ldquo;empty if body&amp;rdquo; warning&lt;/p&gt;

&lt;p&gt;sdnvme: correct mode/serial/firmware string lengths&lt;/p&gt;

&lt;p&gt;sdnvme: fix missing unlock() in submit queue full case&lt;/p&gt;

&lt;p&gt;sysproc: raise limit on #! lines, and allow quoted args&lt;/p&gt;

&lt;p&gt;tcpmssclamp: only check the first ipv4 fragment for tcp header&lt;/p&gt;

&lt;p&gt;tcpmssclamp: pass correct size tcpmssclamp()&lt;/p&gt;

&lt;p&gt;uartimx: fix interrupts&lt;/p&gt;

&lt;p&gt;usb: fix ehci isochronous &amp;ldquo;in&amp;rdquo; split transactions&lt;/p&gt;

&lt;p&gt;usbsdmux: Add program to control usb-sd-mux device&lt;/p&gt;

&lt;p&gt;usbxhci: eliminate &amp;ldquo;set but not used&amp;rdquo; warning&lt;/p&gt;

&lt;p&gt;usbxhciimx: set iomux pad configuration&lt;/p&gt;

&lt;p&gt;zynq: correctly specify dolock flag to postnote()&lt;/p&gt;

&lt;h2&gt;COMPILERS AND DEBUGGERS&lt;/h2&gt;

&lt;p&gt;&lt;img src="http://9front.org/img/sticker2.jpg" alt="sticker2" /&gt;&lt;/p&gt;

&lt;p&gt;ar: print output to stdout (thanks uramekus)&lt;/p&gt;

&lt;p&gt;cc: take our pickle out of the peephole&lt;/p&gt;

&lt;p&gt;dtracy: correctly look up aggregate keys&lt;/p&gt;

&lt;p&gt;dtracy: make timer probes run in interrupt context&lt;/p&gt;

&lt;h2&gt;LIBRARIES&lt;/h2&gt;

&lt;p&gt;&lt;img src="http://9front.org/img/sticker3.jpg" alt="sticker3" /&gt;&lt;/p&gt;

&lt;p&gt;ape/bsd/bind.c, ape/bsd/listen.c: Set local IP.&lt;/p&gt;

&lt;p&gt;ape/bsd/bind.c, ape/bsd/listen.c: Use _syserrno.&lt;/p&gt;

&lt;p&gt;ape/bsd/bind.c: Do not issue &amp;ldquo;bind *&amp;rdquo;.&lt;/p&gt;

&lt;p&gt;ape/bsd/bind.c: Do not pretend that the port could be negative.&lt;/p&gt;

&lt;p&gt;ape/bsd/listen.c: Do not try to issue &amp;ldquo;announce *&amp;rdquo;.&lt;/p&gt;

&lt;p&gt;ape/bsd/listen.c: Drop &amp;ldquo;bind 0&amp;rdquo;.&lt;/p&gt;

&lt;p&gt;ape: fix warning building mkstemp&lt;/p&gt;

&lt;p&gt;lib9p: double the buffer for /srv/$service&lt;/p&gt;

&lt;p&gt;libFLAC: update 1.3.4 → 1.4.0&lt;/p&gt;

&lt;p&gt;libc: shorten strchr and runestrchr&lt;/p&gt;

&lt;p&gt;libc: tmdate: provide better parse errors&lt;/p&gt;

&lt;p&gt;libc: tmparse: remove incorrect isalpha definition&lt;/p&gt;

&lt;p&gt;libdraw: bikeshed formatting&lt;/p&gt;

&lt;p&gt;libdtracy: fix wrong key size comparsion in dtarecord()&lt;/p&gt;

&lt;p&gt;libflac: work around kencc running out of registers on arm&lt;/p&gt;

&lt;p&gt;libndb: increase buffer size to allow longer lines&lt;/p&gt;

&lt;p&gt;libtags: opus/vorbis: make sure to get to the last frame to have the full duration&lt;/p&gt;

&lt;p&gt;libtags: pick R128 gain&lt;/p&gt;

&lt;p&gt;libtags: try other formats after id3v2 is found&lt;/p&gt;

&lt;p&gt;libtags: vorbis, opus: ignore tags past the ogg page&lt;/p&gt;

&lt;h2&gt;PROGRAMS&lt;/h2&gt;

&lt;p&gt;&lt;img src="http://9front.org/img/sticker4.jpg" alt="sticker4" /&gt;&lt;/p&gt;

&lt;p&gt;audio/flacdec: don&amp;rsquo;t run pcmconv on s16r44100c2&lt;/p&gt;

&lt;p&gt;audio/mkplist: don&amp;rsquo;t fail entirely if a directory is not accessible&lt;/p&gt;

&lt;p&gt;audio/mkplist: leverage parallelism&lt;/p&gt;

&lt;p&gt;audio/zuke: &amp;ldquo;r&amp;rdquo; key - &amp;ldquo;repeat one&amp;rdquo; mode, based on the patch from qwx (thanks)&lt;/p&gt;

&lt;p&gt;audio/zuke: add slow scrolling&lt;/p&gt;

&lt;p&gt;audio/zuke: basic replay gain support&lt;/p&gt;

&lt;p&gt;audio/zuke: clear out enter() prompt image if search failed&lt;/p&gt;

&lt;p&gt;audio/zuke: clip scrolling to the edges&lt;/p&gt;

&lt;p&gt;audio/zuke: display currently enabled modes when stopped&lt;/p&gt;

&lt;p&gt;audio/zuke: don&amp;rsquo;t blink the mouse pointer while idling&lt;/p&gt;

&lt;p&gt;audio/zuke: don&amp;rsquo;t fall into the rathole&lt;/p&gt;

&lt;p&gt;audio/zuke: faster redraw without flashing - XRGB32 with backing image&lt;/p&gt;

&lt;p&gt;audio/zuke: fix newly introduced bugs&lt;/p&gt;

&lt;p&gt;audio/zuke: fix off-by-one in playlist loading; initialize scrolling to avoid jump on first track&lt;/p&gt;

&lt;p&gt;audio/zuke: fix playlist plumbing while in shuffled mode&lt;/p&gt;

&lt;p&gt;audio/zuke: fix repeat and replay gain modes not showing when playing network streams&lt;/p&gt;

&lt;p&gt;audio/zuke: fix seeking with mouse&lt;/p&gt;

&lt;p&gt;audio/zuke: fix wrong string width of playback position calculated on network streams&lt;/p&gt;

&lt;p&gt;audio/zuke: fix/enable playlist loading via plumber &amp;ldquo;audio&amp;rdquo; port&lt;/p&gt;

&lt;p&gt;audio/zuke: kill off decoders; use more OCEXEC&lt;/p&gt;

&lt;p&gt;audio/zuke: less garbage dereferencing, stop interrupting decoders&lt;/p&gt;

&lt;p&gt;audio/zuke: properly report empty playlist error&lt;/p&gt;

&lt;p&gt;audio/zuke: put the search input on its own window&lt;/p&gt;

&lt;p&gt;audio/zuke: redraw as soon as search input is enter (not only cancelled); more chance for non-blocking redraw&lt;/p&gt;

&lt;p&gt;audio/zuke: redraw in a separate thread - no audio dropouts on scrolling, more responsive&lt;/p&gt;

&lt;p&gt;audio/zuke: rewrite rendering logic&lt;/p&gt;

&lt;p&gt;audio/zuke: seekto: vlong, unsigned doesn&amp;rsquo;t work well for negative numbers&amp;hellip;&lt;/p&gt;

&lt;p&gt;audio/zuke: update ICY title from the stream metadata while playing&lt;/p&gt;

&lt;p&gt;audio/zuke: use digits to enter exact seek position&lt;/p&gt;

&lt;p&gt;audio/zuke: use percentile to calculate relative widths of columns&lt;/p&gt;

&lt;p&gt;auth/acmed: remove obsolete ip/acmed.c&lt;/p&gt;

&lt;p&gt;auth/box: -s, -. flags&lt;/p&gt;

&lt;p&gt;auth/box: bind in the binary by default&lt;/p&gt;

&lt;p&gt;auth/box: build restricted namespaces using components from the parent.&lt;/p&gt;

&lt;p&gt;auth/box: don&amp;rsquo;t bother switching to none&lt;/p&gt;

&lt;p&gt;auth/box: preserve cwd name, but clear it out&lt;/p&gt;

&lt;p&gt;auth/newns: add chdev command&lt;/p&gt;

&lt;p&gt;aux/9pcon: add support for Rerror in assert mode&lt;/p&gt;

&lt;p&gt;aux/9pcon: add assert flag&lt;/p&gt;

&lt;p&gt;aux/9pcon: style&lt;/p&gt;

&lt;p&gt;aux/aout2uimage: fix text section size rounding (for data section alignment)&lt;/p&gt;

&lt;p&gt;aux/listen: Allow per service namespace files&lt;/p&gt;

&lt;p&gt;aux/listen: remove Service struct&lt;/p&gt;

&lt;p&gt;aux/listen: remove argument clutter&lt;/p&gt;

&lt;p&gt;aux/listen: remove special cases for depreciated datakit&lt;/p&gt;

&lt;p&gt;aux/listen: remove unused cpu global&lt;/p&gt;

&lt;p&gt;aux/txt2uimage: helper for generating uimage script files&lt;/p&gt;

&lt;p&gt;awk: correct incoherent cell in assignment (thanks smj, mpinjr)&lt;/p&gt;

&lt;p&gt;awk: initialize records fully in recinit()&lt;/p&gt;

&lt;p&gt;bar: a status bar program&lt;/p&gt;

&lt;p&gt;bar: leave last aux on screen on eof&lt;/p&gt;

&lt;p&gt;cdfs: handle block sizes correctly&lt;/p&gt;

&lt;p&gt;chdev: change kernel driver access&lt;/p&gt;

&lt;p&gt;chdev: dont pollute environment&lt;/p&gt;

&lt;p&gt;cwfs: fix iounit negotiation&lt;/p&gt;

&lt;p&gt;delkey: stop being clever about which factotum to use&lt;/p&gt;

&lt;p&gt;diff: avoid empty hunks when there are no changes&lt;/p&gt;

&lt;p&gt;diff: clean up some comments&lt;/p&gt;

&lt;p&gt;diff: fix style&lt;/p&gt;

&lt;p&gt;diff: retain original file names&lt;/p&gt;

&lt;p&gt;disk/mkext: fix nil dereference in arg parsing&lt;/p&gt;

&lt;p&gt;exportfs: fix clunk of first attach with -S&lt;/p&gt;

&lt;p&gt;fshalt: allow passing a kernel to &amp;lsquo;fshalt -r&amp;rsquo;&lt;/p&gt;

&lt;p&gt;fshalt: optionally use /dev/pmctl to shut down the machine&lt;/p&gt;

&lt;p&gt;fshalt: remove unused variable&lt;/p&gt;

&lt;p&gt;fshalt: shut up about #P not being present&lt;/p&gt;

&lt;p&gt;fshalt: support relative paths to the new kernel&lt;/p&gt;

&lt;p&gt;g: add .ha (Hare)&lt;/p&gt;

&lt;p&gt;games/dmid: don&amp;rsquo;t buffer output&lt;/p&gt;

&lt;p&gt;games/doom: add &amp;ldquo;m_forward&amp;rdquo; cvar to disable vertical motion move; actually implement use_mouse&lt;/p&gt;

&lt;p&gt;games/doom: add optional autorun&lt;/p&gt;

&lt;p&gt;games/doom: fix glitchy mouse movement&lt;/p&gt;

&lt;p&gt;games/doom: raise max scale factor for 4k&lt;/p&gt;

&lt;p&gt;games/doom: raise static limits&lt;/p&gt;

&lt;p&gt;games/doom: rename mouse use key for what it is and remove double click&lt;/p&gt;

&lt;p&gt;git/commit: fix typo in if statement&lt;/p&gt;

&lt;p&gt;git/commit: user better defaults for username&lt;/p&gt;

&lt;p&gt;git/common.rc: create required directories&lt;/p&gt;

&lt;p&gt;git/compat: expand to cover go bootstrap&lt;/p&gt;

&lt;p&gt;git/compat: fix &amp;lsquo;git init &amp;ndash;bare&amp;rsquo; and &amp;lsquo;git ls-remote&amp;rsquo; (thanks floren)&lt;/p&gt;

&lt;p&gt;git/compat: fix init&lt;/p&gt;

&lt;p&gt;git/export: use native diff&lt;/p&gt;

&lt;p&gt;git/get: keep sending what we have until we get an ack&lt;/p&gt;

&lt;p&gt;git/hist: add command to show history of files&lt;/p&gt;

&lt;p&gt;git/hist: fix with repository other than /&lt;/p&gt;

&lt;p&gt;git/hist: make it work in subdirectories&lt;/p&gt;

&lt;p&gt;git/import: fix handling relative paths&lt;/p&gt;

&lt;p&gt;git/import: remove removed files from index after commit&lt;/p&gt;

&lt;p&gt;git/import: squash leading/trailing/consecutive blanks and strip trailing space&lt;/p&gt;

&lt;p&gt;git/import: use patch(1)&lt;/p&gt;

&lt;p&gt;git/log: fix log count&lt;/p&gt;

&lt;p&gt;git/log: only count the messages we show when limiting counts&lt;/p&gt;

&lt;p&gt;git/log: support -n option to restrict log counts&lt;/p&gt;

&lt;p&gt;git/merge: correctly preserve permissions when merging&lt;/p&gt;

&lt;p&gt;git/merge: preserve exec bit correctly&lt;/p&gt;

&lt;p&gt;git/pack: add support for skipping ssh signatures&lt;/p&gt;

&lt;p&gt;git/pull: fetch all branches (please test)&lt;/p&gt;

&lt;p&gt;git/pull: remove &amp;lsquo;-b&amp;rsquo; and &amp;lsquo;-a&amp;rsquo; option&lt;/p&gt;

&lt;p&gt;git/query: implement range using paint()&lt;/p&gt;

&lt;p&gt;git/rebase: allow rebase without a clean tree&lt;/p&gt;

&lt;p&gt;git/rebase: remove unnecessary use of @ operator&lt;/p&gt;

&lt;p&gt;git/send: fill in &amp;lsquo;theirs&amp;rsquo; object, even if we miss it&lt;/p&gt;

&lt;p&gt;git/serve: log correct error message&lt;/p&gt;

&lt;p&gt;git/walk: don&amp;rsquo;t list untracked files after removal&lt;/p&gt;

&lt;p&gt;git: clear status on whoami success&lt;/p&gt;

&lt;p&gt;git: improve error on short read&lt;/p&gt;

&lt;p&gt;git: performance enhancements&lt;/p&gt;

&lt;p&gt;git: rename internal &amp;lsquo;git/fetch&amp;rsquo; plumbing to &amp;lsquo;git/get&amp;rsquo;&lt;/p&gt;

&lt;p&gt;history: Rewrite history 9front was first&lt;/p&gt;

&lt;p&gt;hjfs: do not truncate lines on /adm/users write&lt;/p&gt;

&lt;p&gt;icanhasvmx: our vmx requires unrestricted guest too&lt;/p&gt;

&lt;p&gt;ip/dhcpd: properly skip past ipv6 addresses in addrsopt&lt;/p&gt;

&lt;p&gt;ip/dhcpd: quiet up syslog&lt;/p&gt;

&lt;p&gt;ip/ftpd: use chdev in /lib/namespace.ftp&lt;/p&gt;

&lt;p&gt;ip/ipconfig: refactor plan9 vendor parsing&lt;/p&gt;

&lt;p&gt;ip/ipconfig: we do not want icmp advice errors on our dhcp connection&lt;/p&gt;

&lt;p&gt;ip/sol: handle timeout on password entry for digest auth&lt;/p&gt;

&lt;p&gt;ip/tinc: fix ping pong racing causing recalcs and deleting nodes&lt;/p&gt;

&lt;p&gt;ip/torrent: fix silly readn() error check (thanks pr)&lt;/p&gt;

&lt;p&gt;ktrans: cast switch statement for arm&lt;/p&gt;

&lt;p&gt;ktrans: clean headers&lt;/p&gt;

&lt;p&gt;ktrans: don&amp;rsquo;t leak on conflicting jisho lines&lt;/p&gt;

&lt;p&gt;ktrans: gui and man page rework&lt;/p&gt;

&lt;p&gt;ktrans: listen on lang port for plumber&lt;/p&gt;

&lt;p&gt;ktrans: revisit grammer handling and do some spring cleaning&lt;/p&gt;

&lt;p&gt;ktrans: tow inside the environment&lt;/p&gt;

&lt;p&gt;ktrans: use stdio by default&lt;/p&gt;

&lt;p&gt;ktrans: xin chào&lt;/p&gt;

&lt;p&gt;ktrans: こんにちは!&lt;/p&gt;

&lt;p&gt;ktrans: 你好&lt;/p&gt;

&lt;p&gt;ktrans: 新しい降り&lt;/p&gt;

&lt;p&gt;make: command&amp;rsquo;s output plumbable&lt;/p&gt;

&lt;p&gt;man: turn on troff -mnihongo if JP font is used&lt;/p&gt;

&lt;p&gt;mothra: enable mousewheel scrolling in history list&lt;/p&gt;

&lt;p&gt;mothra: get rid of soft hyphens&lt;/p&gt;

&lt;p&gt;mothra: make scrollbar style consistent with other applications&lt;/p&gt;

&lt;p&gt;patch: apply patches atomically&lt;/p&gt;

&lt;p&gt;patch: fix bounds check for hunk scan in forward direction&lt;/p&gt;

&lt;p&gt;patch: fix consecutive deletions&lt;/p&gt;

&lt;p&gt;patch: fix deletion of files&lt;/p&gt;

&lt;p&gt;patch: fix line bounds check when searching for hunk&lt;/p&gt;

&lt;p&gt;patch: fix line calculation to avoid redundant searches&lt;/p&gt;

&lt;p&gt;patch: fix uninitialized Fbuf during dry run&lt;/p&gt;

&lt;p&gt;patch: handle stripped/empty lines mid-hunk&lt;/p&gt;

&lt;p&gt;patch: implement a new, simpler patch program to replace ape/patch&lt;/p&gt;

&lt;p&gt;patch: improve hunk search&lt;/p&gt;

&lt;p&gt;patch: make slurp() return void&lt;/p&gt;

&lt;p&gt;pc: remove -n option and check if stdin is cons instead&lt;/p&gt;

&lt;p&gt;plot: fix disc and circle operations&lt;/p&gt;

&lt;p&gt;rc: squelch &amp;lsquo;Write error&amp;rsquo; warning&lt;/p&gt;

&lt;p&gt;rcpu: show error when we auth but don&amp;rsquo;t connect&lt;/p&gt;

&lt;p&gt;rio: /dev/label should just ignore offset&lt;/p&gt;

&lt;p&gt;rio: add &amp;lsquo;none&amp;rsquo; attach option to wsys&lt;/p&gt;

&lt;p&gt;rio: add /dev/kbdtap&lt;/p&gt;

&lt;p&gt;rio: close the display on the way out&lt;/p&gt;

&lt;p&gt;rio: correct error message&lt;/p&gt;

&lt;p&gt;rio: correct tap code&lt;/p&gt;

&lt;p&gt;rio: ensure single reader and single writer for kbdtap&lt;/p&gt;

&lt;p&gt;rio: kbdtap deadlocks are verboden&lt;/p&gt;

&lt;p&gt;rio: kbdtap style tweak&lt;/p&gt;

&lt;p&gt;rio: make it harder to deadlock from kbdtap&lt;/p&gt;

&lt;p&gt;rio: more pointy edges with none attach&lt;/p&gt;

&lt;p&gt;rio: prevent some more keyboard lockups&lt;/p&gt;

&lt;p&gt;rio: require a confirmation for Exit&lt;/p&gt;

&lt;p&gt;rio: return &amp;lsquo;global&amp;rsquo; size for none /dev/wctl read (thanks umbraticus)&lt;/p&gt;

&lt;p&gt;rio: show Exit in subrios&lt;/p&gt;

&lt;p&gt;riow: fix uninitialized field&lt;/p&gt;

&lt;p&gt;riow: handle ckKz properly (thanks qwx); better sticky mode (label-dependent)&lt;/p&gt;

&lt;p&gt;riow: keyboard-controller for rio&lt;/p&gt;

&lt;p&gt;sam: ignore autoindent in cmd window&lt;/p&gt;

&lt;p&gt;skelfs: dont mount if not asked to&lt;/p&gt;

&lt;p&gt;snoopy: add &amp;ldquo;ippkt&amp;rdquo; protocol to demux ip packet interfaces without media header.&lt;/p&gt;

&lt;p&gt;spf: limit recursion depth to prevent ddos (thanks tijay, iashiq5)&lt;/p&gt;

&lt;p&gt;splitmbox: split a mailbox into mdir format (thanks, umbraticus)&lt;/p&gt;

&lt;p&gt;src: &amp;lsquo;test -x&amp;rsquo; instead of &amp;lsquo;test -f&amp;rsquo;&lt;/p&gt;

&lt;p&gt;src: search for binaries in path, not random places&lt;/p&gt;

&lt;p&gt;ssh: send interrupts even when we&amp;rsquo;re not in raw mode&lt;/p&gt;

&lt;p&gt;togif: fix a typo - don&amp;rsquo;t free the same image we&amp;rsquo;re going to use&lt;/p&gt;

&lt;p&gt;upas/Mail: check if plumb attrs are nil&lt;/p&gt;

&lt;p&gt;upas/dkim: dkim signing for upas&lt;/p&gt;

&lt;p&gt;upas/fs/imap.c: additional sanity checking during &lt;code&gt;Expunge&lt;/code&gt; to avoid suicide&lt;/p&gt;

&lt;p&gt;upas/fs: clear errstr after chkunix&lt;/p&gt;

&lt;p&gt;upas/fs: support date format used in RFC 4155 mbox files&lt;/p&gt;

&lt;p&gt;vncv: allow the use of the Mod4 (Super) key&lt;/p&gt;

&lt;p&gt;vt: fix home/end sequences in xterm mode&lt;/p&gt;

&lt;p&gt;vt: increase buffer size&lt;/p&gt;

&lt;p&gt;vt: quote special characters in command arguments&lt;/p&gt;

&lt;p&gt;walk: include qid version in deduplication&lt;/p&gt;

&lt;p&gt;window: add wsys &amp;lsquo;none&amp;rsquo; attach to attempted wctl search&lt;/p&gt;

&lt;p&gt;window: fix regression w.r.t subrios&lt;/p&gt;

&lt;h2&gt;DOCUMENTATION&lt;/h2&gt;

&lt;p&gt;&lt;img src="http://9front.org/img/sticker6.jpg" alt="sticker6" /&gt;&lt;/p&gt;

&lt;p&gt;9pqueue(2): fix typo&lt;/p&gt;

&lt;p&gt;auth(8): bugs have been squashed&lt;/p&gt;

&lt;p&gt;auth(8): specify what gets put into the environemnt with &amp;lsquo;-s&amp;rsquo;&lt;/p&gt;

&lt;p&gt;auth(8): sync usage messages for auth/box&lt;/p&gt;

&lt;p&gt;camv(1), nusb(4): add more details on camera operation&lt;/p&gt;

&lt;p&gt;cpu(1): why did we have an empty file? (thanks llamaa)&lt;/p&gt;

&lt;p&gt;fork(2): Document RFNOMNT edge cases.&lt;/p&gt;

&lt;p&gt;fork(2): fix commas in RFNOMNT references&lt;/p&gt;

&lt;p&gt;fork(2): fix parens in RFNOMNT references (thanks Amavect)&lt;/p&gt;

&lt;p&gt;fshalt(8): document -r kernelpath feature&lt;/p&gt;

&lt;p&gt;git(1), gitfs(4): fix style and typos (thanks schwindl)&lt;/p&gt;

&lt;p&gt;git(1): remove documentation for deleted &amp;lsquo;-b&amp;rsquo; option (thanks llamaa)&lt;/p&gt;

&lt;p&gt;i2c(3): Add documentation for kernels devi2c&lt;/p&gt;

&lt;p&gt;i2c(3): fix typos, thanks quinq&lt;/p&gt;

&lt;p&gt;import(4), oexportfs(4): more empty files removed.&lt;/p&gt;

&lt;p&gt;imx8pm(8): add manpage&lt;/p&gt;

&lt;p&gt;ip(3): Discuss local IP addresses for &amp;ldquo;announce&amp;rdquo; and &amp;ldquo;bind&amp;rdquo;.&lt;/p&gt;

&lt;p&gt;ktrans(1): added a history section (thanks moody!)&lt;/p&gt;

&lt;p&gt;ktrans(1): documented $jisho and made some improvements. (thanks to Kenji Okamoto, cinap, BurnZez, romi and Aaron for your work on ktrans!)&lt;/p&gt;

&lt;p&gt;ktrans(1): remove README files&lt;/p&gt;

&lt;p&gt;ktrans(1): typo&lt;/p&gt;

&lt;p&gt;ls(1): Make man page synopsis consistent with usage output&lt;/p&gt;

&lt;p&gt;mpc(1): fix typo&lt;/p&gt;

&lt;p&gt;nusb(4), camv(1): add nusb/cam description, introduce camv manpage&lt;/p&gt;

&lt;p&gt;paqfs(4): fix paqfs manpage&lt;/p&gt;

&lt;p&gt;patch(1): add the manpage&lt;/p&gt;

&lt;p&gt;patch(1): remove bell labs patch scripts&lt;/p&gt;

&lt;p&gt;patch(1): remove options that don&amp;rsquo;t exist&lt;/p&gt;

&lt;p&gt;reform(1): add a note about battery readings&lt;/p&gt;

&lt;p&gt;rio(4): talk about kbdtap&lt;/p&gt;

&lt;p&gt;riow(1): remove the filter warning as it passes unknown keys now&lt;/p&gt;

&lt;p&gt;rsa(2): fix X509reqtoRSApub(…) signature&lt;/p&gt;

&lt;p&gt;sam(1): clarify &amp;ldquo;&lt;rio&gt;&amp;rdquo; works on dot just like &amp;ldquo;look&amp;rdquo;&lt;/p&gt;

&lt;p&gt;skel(3): → skelfs(4)&lt;/p&gt;

&lt;p&gt;sol(8): fix example (vncv vs vnc)&lt;/p&gt;

&lt;p&gt;tlssrv(8): update example path to imap4d&lt;/p&gt;

&lt;p&gt;wm8960(8): add manpage&lt;/p&gt;

&lt;p&gt;wm8960(8): fix wrong source and see also&lt;/p&gt;

&lt;p&gt;zuke(1): document current track printout on stdout&lt;/p&gt;

&lt;h2&gt;OTHER&lt;/h2&gt;

&lt;p&gt;&lt;img src="http://9front.org/img/sticker5.jpg" alt="sticker5" /&gt;&lt;/p&gt;

&lt;p&gt;/lib/font/bit/pelm: use Korean fonts&lt;/p&gt;

&lt;p&gt;/lib/font/bit/terminus: remove duplicate OFL license and refer to /lib/legal&lt;/p&gt;

&lt;p&gt;/lib/font/bit: add Adobe Source Hangul Sans&lt;/p&gt;

&lt;p&gt;/lib/ktrans: added tools to fetch skk dicts and convert them to ktrans jishos&lt;/p&gt;

&lt;p&gt;/lib/rob: I told this anecdote in an internal talk at Google. You might have seen it then.&lt;/p&gt;

&lt;p&gt;/lib/rob: Sockets are just so unpleasant&lt;/p&gt;

&lt;p&gt;/lib/theo: I want to say more.&lt;/p&gt;

&lt;p&gt;/lib/theo: Isn&amp;rsquo;t that bad?&lt;/p&gt;

&lt;p&gt;/lib/theo: The man page says &amp;ldquo;don&amp;rsquo;t do that&amp;rdquo;.&lt;/p&gt;

&lt;p&gt;/lib/theo: This is a bug in a diff I put into snapshots.&lt;/p&gt;

&lt;p&gt;/lib/troll: 9 is not nginx-level scale&lt;/p&gt;

&lt;p&gt;/lib/troll: Plan&lt;/p&gt;

&lt;p&gt;/lib/troll: [9fans] Power mac support&lt;/p&gt;

&lt;p&gt;/lib/troll: plan9 secret society&lt;/p&gt;

&lt;p&gt;/rc/bin/9fs: case 9front: restore extra/ and iso/&lt;/p&gt;

&lt;p&gt;/rc/bin/9fs: fix case 9config for new contrib.9front.org server.&lt;/p&gt;

&lt;p&gt;/rc/bin: amend usage misdirections (thanks umbraticus)&lt;/p&gt;

&lt;p&gt;/sys/games/lib/fortunes: Use a client written in Go? &amp;ndash; Skip Tavakkolian&lt;/p&gt;

&lt;p&gt;/sys/lib/dist/mkfile: add target for mnt-reform image&lt;/p&gt;

&lt;p&gt;/sys/lib/dist/mkfile: create a default plan9.ini for reform image&lt;/p&gt;

&lt;p&gt;/sys/lib/kbmap/jp: correct Zenkaku control character&lt;/p&gt;

&lt;p&gt;/sys/man/8/smtp: document missing flags (thanks, chris)&lt;/p&gt;

&lt;p&gt;/sys/man: fix minor complaints from checkman&lt;/p&gt;

&lt;p&gt;/sys/src/boot/reform/mkfile: download official u-boot for the mnt-reform&lt;/p&gt;

&lt;p&gt;/sys/src/boot/reform: generate boot.scr&lt;/p&gt;

&lt;p&gt;/sys/src/cmd/mkfile: append to $NOMK so user can provide their own&lt;/p&gt;

&lt;p&gt;florenate: not funny&lt;/p&gt;

&lt;p&gt;fontsel: Japanese sample text&lt;/p&gt;

&lt;p&gt;fontsel: a font selector program&lt;/p&gt;

&lt;p&gt;fontsel: sample Korean text&lt;/p&gt;

&lt;p&gt;inst/prepdisk: fix invocations of test(1)&lt;/p&gt;

&lt;p&gt;inst: make bootsetup work for on pc architectures&lt;/p&gt;

&lt;p&gt;kbmap: add latin american keymap (thanks ssf)&lt;/p&gt;

&lt;p&gt;move and rename MNT Reform 2 support utilies, cat manpages into one&lt;/p&gt;

&lt;p&gt;remove empty /sys/src/cmd/cpu.c&lt;/p&gt;

&lt;p&gt;update /lib/pci&lt;/p&gt;

&lt;p&gt;valley, feminize: these jokes suck.&lt;/p&gt;

&lt;p&gt;vga font: add 23ed-23ef, 23f4-23fa, some of which are used in bar(1) manpage&lt;/p&gt;

&lt;p&gt;&lt;img src="http://9front.org/img/goldenageofballooning.back.png" alt="back" /&gt;&lt;/p&gt;
 </description>
        </item>

        <item>
            <title><![CDATA[9FRONT "SURVIVAL EVASION AND ESCAPE" RELEASED]]></title>
            <author><![CDATA[sl@noreply.cat-v.org (sl)]]></author>
            <link>http://9front.org:80/releases/2022/04/13/0/</link>
            <guid isPermaLink="true">http://9front.org:80/releases/2022/04/13/0/</guid>
            <pubDate>Wed, 13 Apr 2022 14:28:30 -0400</pubDate>
            <description> &lt;p&gt;&lt;img src="http://9front.org/img/survivalevasionandescape.front.png" alt="front" /&gt;&lt;/p&gt;

&lt;p&gt;Main changes of this release:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;acmed, x509 certificate renewal automation&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;rc, supporting better error reporting, here documents (big rewrite)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;vlan support in devbridge&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;source address translation nat support in devip&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;ip/sol, intel amt serial-over-lan console&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;removal of ssl, cpu and import&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;fix auth/as, thanks 4chan, th4nks.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;DOWNLOAD&lt;/h2&gt;

&lt;p&gt;Multiple installation media are provided for PC and Raspberry Pi. For
PC, burn an .iso file to CD, or dd it directly to USB media.  For
Raspberry Pi, dd an .img file directly to sdcard.&lt;/p&gt;

&lt;p&gt;The pi.img file can be used for Raspberry Pi 1, 2, and 3.  The pi3.img
file can be used for Raspberry Pi 3 and 4.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-8963.f84cf1e60427675514fb056cc1723e45da01e043.386.iso.gz.torrent"&gt;http://9front.org/iso/9front-8963.f84cf1e60427675514fb056cc1723e45da01e043.386.iso.gz.torrent&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-8963.f84cf1e60427675514fb056cc1723e45da01e043.amd64.iso.gz.torrent"&gt;http://9front.org/iso/9front-8963.f84cf1e60427675514fb056cc1723e45da01e043.amd64.iso.gz.torrent&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-8963.f84cf1e60427675514fb056cc1723e45da01e043.pi.img.gz.torrent"&gt;http://9front.org/iso/9front-8963.f84cf1e60427675514fb056cc1723e45da01e043.pi.img.gz.torrent&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-8963.f84cf1e60427675514fb056cc1723e45da01e043.pi3.img.gz.torrent"&gt;http://9front.org/iso/9front-8963.f84cf1e60427675514fb056cc1723e45da01e043.pi3.img.gz.torrent&lt;/a&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;   ; sha1sum -2 256 9front-8963*gz
   7104645614dccc60332009bf1524850e87ae31379d44a9634b90a9effff48287      9front-8963.f84cf1e60427675514fb056cc1723e45da01e043.386.iso.gz
   ee0fda9ba816b81b43e785882bb7cbd19213f06984adeb8bb54d5ea6b2769506      9front-8963.f84cf1e60427675514fb056cc1723e45da01e043.amd64.iso.gz
   4b308ecdb6bef642669406e3adf2992b3f21d529dc4114a14ef9c649f7d79aaf      9front-8963.f84cf1e60427675514fb056cc1723e45da01e043.pi.img.gz
   475540ecb6fd4ae29ef88c3f7eef0cab6e3a054d219d6938b5ac27f15168f10a      9front-8963.f84cf1e60427675514fb056cc1723e45da01e043.pi3.img.gz
&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;MIRRORS&lt;/h2&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/"&gt;http://9front.org/iso/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://r-36.net/9front/"&gt;http://r-36.net/9front/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://lux.felloff.net/usr/cinap_lenrek/9front/"&gt;http://lux.felloff.net/usr/cinap_lenrek/9front/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://ftp.cc.uoc.gr/mirrors/9front/"&gt;https://ftp.cc.uoc.gr/mirrors/9front/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;GIT REPOSITORY&lt;/h2&gt;

&lt;p&gt;&lt;a href="http://git.9front.org/plan9front/plan9front/HEAD/info.html"&gt;http://git.9front.org/plan9front/plan9front/HEAD/info.html&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;DASH 1 MANUAL&lt;/h2&gt;

&lt;p&gt;&lt;a href="http://fqa.9front.org/dash1.survivalevasionandescape.pdf"&gt;http://fqa.9front.org/dash1.survivalevasionandescape.pdf&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;dash 1 manual: &lt;a href="http://9front.org/propaganda/books"&gt;http://9front.org/propaganda/books&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;SONGS&lt;/h2&gt;

&lt;p&gt;by sl&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/mp3/war_with_rome.mp3"&gt;http://9front.org/mp3/war_with_rome.mp3&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;THANKS&lt;/h2&gt;

&lt;p&gt;igor (fast reaction)&lt;/p&gt;

&lt;h2&gt;KERNEL AND DRIVERS&lt;/h2&gt;

&lt;p&gt;9boot: fix isowalk() for directories spanning multiple sectors&lt;/p&gt;

&lt;p&gt;archacpi: leave acpi enabled with *acpi=&lt;/p&gt;

&lt;p&gt;arm64: use generic timer virtual counter for cycles()&lt;/p&gt;

&lt;p&gt;audiohda: Add DID for Intel 200 Series PCH HD Audio&lt;/p&gt;

&lt;p&gt;audiohda: add support for intel cannon point-lp (t490s)&lt;/p&gt;

&lt;p&gt;audiohda: add support for intel comet lake-s, fix typo&lt;/p&gt;

&lt;p&gt;audiohda: add ztom z36&lt;em&gt;/z37&lt;/em&gt; device id&lt;/p&gt;

&lt;p&gt;audiohda: fix syntax error&lt;/p&gt;

&lt;p&gt;aux/wacom: fix race in read queue&lt;/p&gt;

&lt;p&gt;bcm: fix rebootcode linkage&lt;/p&gt;

&lt;p&gt;bcm/emmc: remove unused cardr wakeup(), use MACHP(0) as tick reference&lt;/p&gt;

&lt;p&gt;bcm64/sdhc: add *emmc2bus kernel parameter to set dma dram bus address&lt;/p&gt;

&lt;p&gt;bcm64: make the kernel use virtual timer counter register for cycles()&lt;/p&gt;

&lt;p&gt;bcm64: parse the emmc2bus/dma-ranges device-tree property and provide *emmc2bus kernel parameter&lt;/p&gt;

&lt;p&gt;devbridge: fix vlan range parsing&lt;/p&gt;

&lt;p&gt;devbridge: implement experimental vlan support&lt;/p&gt;

&lt;p&gt;devbridge: improve locking, unbind ports automatically on read error and more&amp;hellip;&lt;/p&gt;

&lt;p&gt;devdraw: printmesg: implement &amp;ldquo;z&amp;rdquo; fmt arg (safe since printmesg is disabled)&lt;/p&gt;

&lt;p&gt;devenv: allow environment total size of up to 1MB&lt;/p&gt;

&lt;p&gt;devgpio: make reading ctl file return 0 bytes&lt;/p&gt;

&lt;p&gt;devip: add comment to ip.h explaining Routehint struct&lt;/p&gt;

&lt;p&gt;devip: allow setting the &amp;ldquo;trans&amp;rdquo; flag on a logical interface&lt;/p&gt;

&lt;p&gt;devip: cache arp entry in Routehint&lt;/p&gt;

&lt;p&gt;devip: dont hold ifc wlock during medium bind/unbind&lt;/p&gt;

&lt;p&gt;devip: implement ipv4 arp timeout with icmp host unreachable notification&lt;/p&gt;

&lt;p&gt;devip: implement network address translation routes&lt;/p&gt;

&lt;p&gt;devip: improve tcp error handling for ipoput&lt;/p&gt;

&lt;p&gt;devip: properly rlock() the routelock for v4lookup() and v6lookup()&lt;/p&gt;

&lt;p&gt;devip: use better hashipa() macro, use RWlock for arp cache&lt;/p&gt;

&lt;p&gt;devip: use top bit (type) | subnet-id for V6H() route hash macro&lt;/p&gt;

&lt;p&gt;devsd: cache SDunit pointer in Chan.aux, improve error handling&lt;/p&gt;

&lt;p&gt;devssl, cpu, import, oexportfs: delete&lt;/p&gt;

&lt;p&gt;devswap: improve setswapchan()&lt;/p&gt;

&lt;p&gt;devtls: fix bwrite memory leak when channel stops being open&lt;/p&gt;

&lt;p&gt;devtls: implement &amp;ldquo;hangup&amp;rdquo; ctl message&lt;/p&gt;

&lt;p&gt;devtls: reject zero length records (thanks sigrid)&lt;/p&gt;

&lt;p&gt;devuart: allow serial console on late detected uarts&lt;/p&gt;

&lt;p&gt;devvmx: skip tsc offset writing if CPU doesn&amp;rsquo;t support it&lt;/p&gt;

&lt;p&gt;ether8169: support rtl8402 variant&lt;/p&gt;

&lt;p&gt;ether82563: add 0x15bd i219-lm variant (thanks crab1)&lt;/p&gt;

&lt;p&gt;ether82563: add pci id for ethernet on dell optiplex 7090 micro (thanks leimy)&lt;/p&gt;

&lt;p&gt;ether82563: add pci id for i219-v on t490s&lt;/p&gt;

&lt;p&gt;ether82598: add pci device id for ixgbe i52899 (thanks izaki)&lt;/p&gt;

&lt;p&gt;etheriwl: add did for Intel Centrino Advanced-N + WiMAX 6250 (thanks Nessa)&lt;/p&gt;

&lt;p&gt;etheriwl: add support for wireless ac 7260 (thanks kemal!)&lt;/p&gt;

&lt;p&gt;etheriwl: fix botched merge&amp;hellip;&lt;/p&gt;

&lt;p&gt;etheriwl: fixes for 7260 ac&lt;/p&gt;

&lt;p&gt;igfx: add TypeILK, since it differs slightly from SNB&lt;/p&gt;

&lt;p&gt;igfx: add x1 carbon 3rd gen (broadwell)&lt;/p&gt;

&lt;p&gt;igfx: fix FDI link training on ironlake&lt;/p&gt;

&lt;p&gt;igfx: fix some typos in comments&lt;/p&gt;

&lt;p&gt;igfx: maintain single/double-channel LVDS mode from BIOS&lt;/p&gt;

&lt;p&gt;igfx: Support for igfx on Celeron&amp;reg; 2957U (thanks Lorenzo Bivens)&lt;/p&gt;

&lt;p&gt;igfx: add x1 carbon 3rd gen&lt;/p&gt;

&lt;p&gt;igfx: add missing pci did&amp;rsquo;s for hwblank for known mobile models&lt;/p&gt;

&lt;p&gt;kernel/rdb: need to reenable polling mode on the uart, remove cruft&lt;/p&gt;

&lt;p&gt;kernel: add extra negative and power-of-two check to pcibarsize()&lt;/p&gt;

&lt;p&gt;kernel: call freebroken() for kproc() when out of processes&lt;/p&gt;

&lt;p&gt;kernel: dont block allocating kstack for new processes&lt;/p&gt;

&lt;p&gt;kernel: ensure that all accesses to Mhead.mount is done with Mhead.lock acquired&lt;/p&gt;

&lt;p&gt;kernel: fix off by one for $cputype buffer (thanks anthony martin)&lt;/p&gt;

&lt;p&gt;kernel: fix stat bugs&lt;/p&gt;

&lt;p&gt;kernel: increase bootfs.paq compression level and blocksize&lt;/p&gt;

&lt;p&gt;kernel: make Page.txtflush into an array&lt;/p&gt;

&lt;p&gt;kernel: make growfd(), findfreefd() and newfd2() static&lt;/p&gt;

&lt;p&gt;kernel: move waserror() macro to port/portfns.h&lt;/p&gt;

&lt;p&gt;kernel: page counts a ulong, not usize&lt;/p&gt;

&lt;p&gt;kernel: return error from sysrfork instead of waiting and retrying&lt;/p&gt;

&lt;p&gt;kernel: simplify /boot/boot: 28K down to less than 4K.&lt;/p&gt;

&lt;p&gt;kernel: support large 64-bit pci membars, increase pc64 VMAPSIZE to 1TB&lt;/p&gt;

&lt;p&gt;kbdfs: allow X and x to be used not just for hex composition&lt;/p&gt;

&lt;p&gt;nusb: Fix handling of interface altsetting.&lt;/p&gt;

&lt;p&gt;nusb/audio: use setalt(), make sure endpoint has right direction.&lt;/p&gt;

&lt;p&gt;nusb/cam: fix mistake (nil vs -1)&lt;/p&gt;

&lt;p&gt;nusb/cam: use setalt()&lt;/p&gt;

&lt;p&gt;nusb/disk: use setalt(), print argv0 in prints instead of &amp;ldquo;disk:&amp;rdquo;&lt;/p&gt;

&lt;p&gt;nusb/ether: remove csp check for rndis, already done in nusbrc&lt;/p&gt;

&lt;p&gt;nusb/ether: use setalt()&lt;/p&gt;

&lt;p&gt;nusb/lib: provide a setalt() function to set the interface to its altsetting&lt;/p&gt;

&lt;p&gt;nusb/serial: fix pl2303 usbcmd error checks&lt;/p&gt;

&lt;p&gt;nusb/usbd: use per hname collision counter instead of device address to resolve collisions&lt;/p&gt;

&lt;p&gt;nusbrc: fix FTDI detection&lt;/p&gt;

&lt;p&gt;sdide: add pci id for AMT IDE-r controller on x230&lt;/p&gt;

&lt;p&gt;sdmmc: do card init in a background process after the first try&lt;/p&gt;

&lt;p&gt;uartpci: AMT SOL Redirection interface (x200s)&lt;/p&gt;

&lt;p&gt;uartpci: add serial-over-lan uart from x230/AMT&lt;/p&gt;

&lt;p&gt;usbxhci: endpoint address needs to be masked with Epmax from endpoint number&lt;/p&gt;

&lt;p&gt;usbxhci: xhcirecover proc does not need to check status every 10ms&lt;/p&gt;

&lt;p&gt;vga: add eeepc1005ha graphics (thanks Andrew Eggenberger)&lt;/p&gt;

&lt;p&gt;vga: return modes according to EDID timing priority order&lt;/p&gt;

&lt;p&gt;vga: use vlong for pci bar size&lt;/p&gt;

&lt;p&gt;vgadb: add 3rd gen intel hd graphics did (thanks mora)&lt;/p&gt;

&lt;p&gt;vgadb: add cyber938x bios offset for cyber 9525 (thanks lyndsay)&lt;/p&gt;

&lt;h2&gt;COMPILERS AND DEBUGGERS&lt;/h2&gt;

&lt;p&gt;/sys/lib/acid/pool: format addresses using A format, instead of X (32 bit)&lt;/p&gt;

&lt;p&gt;6c: extern registers must be considered used on return&lt;/p&gt;

&lt;p&gt;cc: do not expand function-like macros for non-function invocations&lt;/p&gt;

&lt;p&gt;cc: fix incorrect octal range condition in mpatov&lt;/p&gt;

&lt;p&gt;reduce: use if() to test for exit status of pipeline&lt;/p&gt;

&lt;h2&gt;LIBRARIES&lt;/h2&gt;

&lt;p&gt;ape: add missing idn2utf, utf2idn to lib9&lt;/p&gt;

&lt;p&gt;ape: allow exporting rc functions in environ[]&lt;/p&gt;

&lt;p&gt;ape: export mktemp() in &amp;lt;stdlib.h&gt; when _BSD_SOURCE is set&lt;/p&gt;

&lt;p&gt;ape: fix wrong write size for _assert()&lt;/p&gt;

&lt;p&gt;libFLAC: update to 1.3.4&lt;/p&gt;

&lt;p&gt;libaml: implement ObjectType instruction (thanks sigrid)&lt;/p&gt;

&lt;p&gt;libaml: implement ToString instruction&lt;/p&gt;

&lt;p&gt;libaml: resolve refs in ObjectType instruction&lt;/p&gt;

&lt;p&gt;libc: change usize to 64-bit for amd64 and arm64, make memory(2) functions use usize&lt;/p&gt;

&lt;p&gt;libc: fix overflow of domain component rune buffer for idn2utf()&lt;/p&gt;

&lt;p&gt;libc: idn2utf()/utf2idn(): check for &amp;lt; 1 buffer, can&amp;rsquo;t insert terminating NUL.&lt;/p&gt;

&lt;p&gt;libc: use usize for sbrk() increment&lt;/p&gt;

&lt;p&gt;libc: qsort: allow usize-sized arrays.&lt;/p&gt;

&lt;p&gt;libndb: move mkptrname() into libndb to avoid duplication&lt;/p&gt;

&lt;p&gt;libpanel: rename to match clean rule&lt;/p&gt;

&lt;p&gt;libsec: decode international domain names in certificat subject, fix overflow botch&lt;/p&gt;

&lt;p&gt;libsec: fix bugs in tls extension handling (thanks kemal)&lt;/p&gt;

&lt;p&gt;libsec: fix operator precedence bugs (thanks kemal)&lt;/p&gt;

&lt;p&gt;libsec: fix wrong assert condition (introduced in 775a4bea4386c12067057de0e56dd8baa34f43ec)&lt;/p&gt;

&lt;p&gt;libsec: fix wrong tls1.0 prf regression&lt;/p&gt;

&lt;p&gt;libsec: handle international domain names in certificate request&lt;/p&gt;

&lt;p&gt;libsec: no point in checking for &amp;ldquo;xn&amp;ndash;&amp;rdquo; marker, just call idn2utf().&lt;/p&gt;

&lt;p&gt;libtags: flac: check sample rate before dividing by zero; also check number of channels&lt;/p&gt;

&lt;p&gt;libtags: id3v2: make sure extra id3 tag does not cause infinite loop&lt;/p&gt;

&lt;p&gt;libtags: m4a: do not div by zero&lt;/p&gt;

&lt;p&gt;libtags: no tags is still fine if format is known&lt;/p&gt;

&lt;p&gt;libtags: opus: fix duration on truncated files&lt;/p&gt;

&lt;p&gt;libtags: wav: do not div by zero&lt;/p&gt;

&lt;p&gt;libthread: deal with &lt;em&gt;schedfork() and &lt;/em&gt;schedexec() returning -1&lt;/p&gt;

&lt;p&gt;libthread: fix debug prints, simplify&lt;/p&gt;

&lt;p&gt;libthread: remove more garbage: &lt;em&gt;threadnotefd, &lt;/em&gt;threadpasserpid.&lt;/p&gt;

&lt;p&gt;libthread: remove unused _workerdata() prototype from threadimpl.h&lt;/p&gt;

&lt;p&gt;libthread: remove unused skip() function&lt;/p&gt;

&lt;h2&gt;PROGRAMS&lt;/h2&gt;

&lt;p&gt;9fs: 9front.org files now live on port 9000.&lt;/p&gt;

&lt;p&gt;9fs: remove case 9bugs (defunct)&lt;/p&gt;

&lt;p&gt;9fs: update case 9contrib for new server&lt;/p&gt;

&lt;p&gt;9fs: update case 9front&lt;/p&gt;

&lt;p&gt;acme: don&amp;rsquo;t let tag button draw over tag border.&lt;/p&gt;

&lt;p&gt;acme: fix hiding of top windows when loading a dump file (thanks Xiao-Yong)&lt;/p&gt;

&lt;p&gt;acme: fix leaking memory allocated by getenv(&amp;ldquo;font&amp;rdquo;)&lt;/p&gt;

&lt;p&gt;acme: fix plumb message leaks (thanks igor)&lt;/p&gt;

&lt;p&gt;acme: fix window and scrollbar display glitches at bottom fringe of column&lt;/p&gt;

&lt;p&gt;acme: remove superfluous print arguments (patch from plan9port)&lt;/p&gt;

&lt;p&gt;acmed: add external command flag -e, improvements, bugs&lt;/p&gt;

&lt;p&gt;acmed: handle international domain names&lt;/p&gt;

&lt;p&gt;acmed: import acme (RFC8555) client&lt;/p&gt;

&lt;p&gt;acmed: move from ip/ to auth/&lt;/p&gt;

&lt;p&gt;acmed: pass original utf8 subject domain to challengefn, simplify&lt;/p&gt;

&lt;p&gt;acmed: reject -t flag when -e is given, dup stderr to stdout of -e cmd&lt;/p&gt;

&lt;p&gt;acmed: remove unused define&lt;/p&gt;

&lt;p&gt;acmed: tokenize domains from subject also with spaces (fixed multidom cert)&lt;/p&gt;

&lt;p&gt;acne/Mail: fix double-free (Bterm() in mesgshow())&lt;/p&gt;

&lt;p&gt;aescbc: flush before exit and report an error (if any)&lt;/p&gt;

&lt;p&gt;ape/mkstemp: better options&lt;/p&gt;

&lt;p&gt;ape/psh: provide /dev/fd&lt;/p&gt;

&lt;p&gt;audio/flacdec: handle read errors properly to avoid endless looping saturating cpu&lt;/p&gt;

&lt;p&gt;auth/as: fix wrong filesystem permissions due to wrong factotum being attached&lt;/p&gt;

&lt;p&gt;auth/rsa2jwk: add code to produce jwk rsa keys&lt;/p&gt;

&lt;p&gt;aux/cddb: include album name and correct track number key&lt;/p&gt;

&lt;p&gt;awk: fix off-by-one string buffer overflow from gsub&lt;/p&gt;

&lt;p&gt;cat: remove stupid long cast&lt;/p&gt;

&lt;p&gt;cmd/mkfile: major cleanup&lt;/p&gt;

&lt;p&gt;date: remove &amp;lsquo;-m&amp;rsquo; flag&lt;/p&gt;

&lt;p&gt;diff: fix -u when comparing identical files&lt;/p&gt;

&lt;p&gt;diff: revert last change, this breaks git/diff&lt;/p&gt;

&lt;p&gt;exportfs, oexportfs, iostats: make -d log to stderr&lt;/p&gt;

&lt;p&gt;exportfs: make -d log to stderr&lt;/p&gt;

&lt;p&gt;exportfs: revert e524e8d65a7573c46d7beb49e77bfc2d55a5563d&lt;/p&gt;

&lt;p&gt;flacdec: do not loop forever on write/decode errors&lt;/p&gt;

&lt;p&gt;g: fix duplicate files with directory argument&lt;/p&gt;

&lt;p&gt;g: show all file names when grepping&lt;/p&gt;

&lt;p&gt;g: use xargs instead of finding complete file list before greping&lt;/p&gt;

&lt;p&gt;games/gb: minor style fixes&lt;/p&gt;

&lt;p&gt;games/gb: various RTC fixes&lt;/p&gt;

&lt;p&gt;gba: fix flash chip id for 128k and add setting&lt;/p&gt;

&lt;p&gt;git/branch: fix order of operations (thanks qwx)&lt;/p&gt;

&lt;p&gt;git/branch: fix typo in error message&lt;/p&gt;

&lt;p&gt;git/branch: make &amp;lsquo;-n&amp;rsquo; use HEAD when &amp;lsquo;-b&amp;rsquo; unspecified&lt;/p&gt;

&lt;p&gt;git/branch: remove duplicate assignment of dirtypaths&lt;/p&gt;

&lt;p&gt;git/commit: remove trailing &amp;lsquo;subst -g&amp;rsquo;&lt;/p&gt;

&lt;p&gt;git/commit: squelch error when run outside repository&lt;/p&gt;

&lt;p&gt;git/compat: add support for ls-remote [-d]&lt;/p&gt;

&lt;p&gt;git/diff: clean up diffs&lt;/p&gt;

&lt;p&gt;git/export: use &amp;lsquo;date -f&amp;rsquo; instead of &amp;lsquo;date -m&amp;rsquo;&lt;/p&gt;

&lt;p&gt;git/fetch: be more robust&lt;/p&gt;

&lt;p&gt;git/fetch: fix overly eager &amp;rsquo;s/pack/idx/g' in refactor&lt;/p&gt;

&lt;p&gt;git/fetch: improve detection of dumb http protocol&lt;/p&gt;

&lt;p&gt;git/fetch: use read for reading packfiles instead of readn&lt;/p&gt;

&lt;p&gt;git/fs: remove trailing null bytes from parent file (thanks mcf)&lt;/p&gt;

&lt;p&gt;git/pack: check pf-&gt;pack for nil before Bterming it&lt;/p&gt;

&lt;p&gt;git/query: fix spurious merge requests&lt;/p&gt;

&lt;p&gt;git/query: leave range commits in topological order&lt;/p&gt;

&lt;p&gt;git/query: refactor graph painting algorithm (findtwixt, lca)&lt;/p&gt;

&lt;p&gt;git/revert: fix empty invocation&lt;/p&gt;

&lt;p&gt;git/revert: update modification time on revert&lt;/p&gt;

&lt;p&gt;git/save: leave submodules unmangled&lt;/p&gt;

&lt;p&gt;git/serve: add a &amp;lsquo;\n&amp;rsquo; after HEAD&lt;/p&gt;

&lt;p&gt;git/serve: don&amp;rsquo;t show progress when not interactive&lt;/p&gt;

&lt;p&gt;git/serve: one more silencing of non-interactive prints&lt;/p&gt;

&lt;p&gt;git/{diff,import}: make it easier to handle manually-asembled patch emails&lt;/p&gt;

&lt;p&gt;git: better handling of absolute paths, regex metachars&lt;/p&gt;

&lt;p&gt;git: fetch all branches by default.&lt;/p&gt;

&lt;p&gt;git: fix non-interruptible temporary warning&lt;/p&gt;

&lt;p&gt;git: fix typo in git/log output&lt;/p&gt;

&lt;p&gt;git: fully init objq&lt;/p&gt;

&lt;p&gt;git: improve pack cache heuristics&lt;/p&gt;

&lt;p&gt;git: revert c947bf808 &amp;ndash; it triggers a bug.&lt;/p&gt;

&lt;p&gt;git: separate author and committer&lt;/p&gt;

&lt;p&gt;git: size cache in bytes, not objects&lt;/p&gt;

&lt;p&gt;git: use commit date as traversal hint instead of author date&lt;/p&gt;

&lt;p&gt;git: when stealing from the old packs list, keep what we stole.&lt;/p&gt;

&lt;p&gt;gzip, bzip2: add -n flag to suppress modification timestamp&lt;/p&gt;

&lt;p&gt;hjfs: fix group ownership of home dirs created by newuser command&lt;/p&gt;

&lt;p&gt;iostats: bind /srv into the namespace, its magic&lt;/p&gt;

&lt;p&gt;ip/dhcpd: ignore icmp advice&lt;/p&gt;

&lt;p&gt;ip/dhcpd: ignore ipv6 addresses when looking up static binding&lt;/p&gt;

&lt;p&gt;ip/sol: add intel AMT serial-over-lan console program&lt;/p&gt;

&lt;p&gt;ip/sol: use httpdigest authentication&lt;/p&gt;

&lt;p&gt;ip/sol: kvm (vnc) redirect, bring back plain authentication as a fallback (when unsupported)&lt;/p&gt;

&lt;p&gt;ip/tftpd: add -m argument for name substitution using regular expressions&lt;/p&gt;

&lt;p&gt;joy: joystick script for all emulators, and docs&lt;/p&gt;

&lt;p&gt;mixfs: add reading (audio loopback)&lt;/p&gt;

&lt;p&gt;mklatin: fix compose sequences starting with a space char (␣ and ı)&lt;/p&gt;

&lt;p&gt;mkplist: add -s option to enable &amp;ldquo;simple&amp;rdquo; sort (thanks qwx)&lt;/p&gt;

&lt;p&gt;mothra: fix rendering of &lt;samp&gt; tag&lt;/p&gt;

&lt;p&gt;ndb/dns: fix ndb serialization of RR*&lt;/p&gt;

&lt;p&gt;ndb/dns: fix wrong ndb attribute &amp;ldquo;txtrr&amp;rdquo; vs. &amp;ldquo;txt&amp;rdquo; for caching server&lt;/p&gt;

&lt;p&gt;ndb/dns: handle txt rr strings as binary, remove nullrr ndb code&lt;/p&gt;

&lt;p&gt;ndb/dns: implement caa record type in ndb&lt;/p&gt;

&lt;p&gt;ndb/dns: make dblookup() consistent with cachedb operation, bring back txtrr for compatibility&lt;/p&gt;

&lt;p&gt;ndb/dns: use correct attribute when serializing caa record in ndb format&lt;/p&gt;

&lt;p&gt;ndb/dns: use decimal encoding for txt rr string escapes&lt;/p&gt;

&lt;p&gt;ndb/dnsdebug: dont duplicate rrfmt()&lt;/p&gt;

&lt;p&gt;ndb/dnsdebug: make usage flags consistent&lt;/p&gt;

&lt;p&gt;ndb/dnsquery: make ! bang work with reverse lookups, document in ndb(8)&lt;/p&gt;

&lt;p&gt;netaudit: fix auth check, can have multiple auth servers!&lt;/p&gt;

&lt;p&gt;netaudit, ndb(6): the dom= attribute in ndb should be specified without the trailing period&lt;/p&gt;

&lt;p&gt;netaudit: check for sys= attribute to be free of periods&lt;/p&gt;

&lt;p&gt;netaudit: simplify&lt;/p&gt;

&lt;p&gt;page: performance fixes&lt;/p&gt;

&lt;p&gt;pc: do not access out of bounds array element&lt;/p&gt;

&lt;p&gt;plumber: remove $plumbsrv, add optional srvname, usage check&lt;/p&gt;

&lt;p&gt;rc-httpd: fold two sed calls into one when computing location&lt;/p&gt;

&lt;p&gt;rc-httpd/handlers/error: restore fn 400 (thanks, qeed)&lt;/p&gt;

&lt;p&gt;rc-httpd/handlers/{dir-index, serve-static}: commit the correct files this time (thanks, igor)&lt;/p&gt;

&lt;p&gt;rc-httpd/handlers/{dir-index, serve-static}: fix directory traversal bug (thanks, igor)&lt;/p&gt;

&lt;p&gt;rc-httpd/{rc-httpd, handlers/error}: do some minimal sanitization on $SERVER_NAME before handing it off to select-handler.&lt;/p&gt;

&lt;p&gt;rc: Xerror is not a instruction, remove from pfnc&lt;/p&gt;

&lt;p&gt;rc: add Xhereq instruction to trace&lt;/p&gt;

&lt;p&gt;rc: add err != nil check for early exit&lt;/p&gt;

&lt;p&gt;rc: fix everything&lt;/p&gt;

&lt;p&gt;rc: fix globbing with lists (thanks qwx)&lt;/p&gt;

&lt;p&gt;rc: fix here document handling with quoted end-marker (thanks sigrid)&lt;/p&gt;

&lt;p&gt;rc: fix leaking runq-&gt;cmdfile&lt;/p&gt;

&lt;p&gt;rc: fix pwrd() regression, forgot &amp;lt;= &amp;lsquo; &amp;rsquo; case from needsrcquote()&amp;hellip; sorry :(&lt;/p&gt;

&lt;p&gt;rc: make it portable (for UNIX)&lt;/p&gt;

&lt;p&gt;rc: only have single instance of a symbol, extern in header (thanks mcf)&lt;/p&gt;

&lt;p&gt;rc: read heredoc when receiving &amp;lsquo;\n&amp;rsquo; (thanks Eckard Brauer)&lt;/p&gt;

&lt;p&gt;rc: rstr() shouldnt skip trailing NUL bytes (thanks ori)&lt;/p&gt;

&lt;p&gt;rc: simplify Makefile, use yacc default rule (thanks k0ga)&lt;/p&gt;

&lt;p&gt;rc: remove useless exit $staus at the end of rcmain&lt;/p&gt;

&lt;p&gt;realemu: fix typo in usage message.&lt;/p&gt;

&lt;p&gt;rio: allow spaces in working directory path (-cd) when creating a new window via wctl&lt;/p&gt;

&lt;p&gt;rio: fix parsing of directory path (-cd) when creating a new window via wctl&lt;/p&gt;

&lt;p&gt;sam: fix spurious overwrite message (patch from plan9port)&lt;/p&gt;

&lt;p&gt;screenlock: don&amp;rsquo;t poll to top window (thanks Stuart Morrow)&lt;/p&gt;

&lt;p&gt;snoopy: &amp;hellip; and fix the memory leak for new dns rr types&lt;/p&gt;

&lt;p&gt;snoopy: add vlan protocol (802.1q)&lt;/p&gt;

&lt;p&gt;snoopy: adjust for new dns txt rr format&lt;/p&gt;

&lt;p&gt;snoopy: dns: add caa record type, fix rrtypestr()&lt;/p&gt;

&lt;p&gt;snoopy: fix dns nil pointer crashes when formating dns packets (thanks sl)&lt;/p&gt;

&lt;p&gt;ssh: fix typo (thanks izaki)&lt;/p&gt;

&lt;p&gt;ssh: use RSA/SHA-256 instead of RSA/SHA-1 as the public key algorithm&lt;/p&gt;

&lt;p&gt;sshfs: prefer error codes over error strings&lt;/p&gt;

&lt;p&gt;tinc: fix spelling and update manpage (thanks unobe)&lt;/p&gt;

&lt;p&gt;tinc: fix typo in unknown host error message&lt;/p&gt;

&lt;p&gt;troff: we are not htmlroff&lt;/p&gt;

&lt;p&gt;tweak: add missing return to fix double close(…) on file descriptor…&lt;/p&gt;

&lt;p&gt;upas/fs: add missing newline to a debug print&lt;/p&gt;

&lt;p&gt;venti: fix fprint format string&lt;/p&gt;

&lt;p&gt;venti: fix memory layers&lt;/p&gt;

&lt;p&gt;vmx: fix PCI ID for virtio block devices&lt;/p&gt;

&lt;p&gt;vmx: update openbsd kernel heuristics&lt;/p&gt;

&lt;p&gt;vncv: enable connecting to Darwin hosts&lt;/p&gt;

&lt;p&gt;vncv: some fixes to work with intel amt kvm&lt;/p&gt;

&lt;p&gt;webfs: do not reuse digest Authorization headers&lt;/p&gt;

&lt;p&gt;webfs: implement RFC2617 qop extension for http digest authentication&lt;/p&gt;

&lt;p&gt;x509: encode empty sequence as constructed&lt;/p&gt;

&lt;p&gt;zuke: do not change volume with delta == 0&lt;/p&gt;

&lt;p&gt;zuke: fix search function ignoring matching artist name&lt;/p&gt;

&lt;p&gt;zuke: reset before tokenize, increase player thread stack&lt;/p&gt;

&lt;p&gt;zuke: simplify volume control logic&lt;/p&gt;

&lt;p&gt;zuke: support other volume handles, update volume when /dev/audio is opened&lt;/p&gt;

&lt;h2&gt;DOCUMENTATION&lt;/h2&gt;

&lt;p&gt;0intro(1), acme(1), con(1), rcpu(1), rio(1), namespace(4), authsrv(6), aan(8): cpu -&gt; rcpu&lt;/p&gt;

&lt;p&gt;9p(2): fix a typo (thanks humm)&lt;/p&gt;

&lt;p&gt;acme(1): fix reference to 9front default acme font&lt;/p&gt;

&lt;p&gt;acmed(8), rsa(8): add role=client attribute to rsa keys&lt;/p&gt;

&lt;p&gt;acmed(8): add bugs section&lt;/p&gt;

&lt;p&gt;acmed(8): fix typo&lt;/p&gt;

&lt;p&gt;acmed(8): fix typos, formatting, and missed name change.&lt;/p&gt;

&lt;p&gt;acmed(8): ip =&gt; auth: missed a reference to the old name&lt;/p&gt;

&lt;p&gt;acmed(8): missed a spot&lt;/p&gt;

&lt;p&gt;acmed(8): more improvements&lt;/p&gt;

&lt;p&gt;acmed(8): typo&amp;hellip;&lt;/p&gt;

&lt;p&gt;addpt(2): fix inconsistency in description&lt;/p&gt;

&lt;p&gt;audio(1): replace references to juke(7) and playlistfs(7) with zuke(1) (thanks unobe)&lt;/p&gt;

&lt;p&gt;brk(2): &amp;hellip;. we define lowest addres not used by the program above, so use that instead&lt;/p&gt;

&lt;p&gt;brk(2): sbrk(0) returns end address, not the base&lt;/p&gt;

&lt;p&gt;consolefs(4): import -&gt; rimport&lt;/p&gt;

&lt;p&gt;date(1): sync with reality&lt;/p&gt;

&lt;p&gt;dial(2): dial returns an open data file, not a ctl one. also fixed little typo.&lt;/p&gt;

&lt;p&gt;draw(3): .IR on memlorigin(2), fix wrong &amp;ldquo;t&amp;rdquo; param name (should be &amp;ldquo;top&amp;rdquo;)&lt;/p&gt;

&lt;p&gt;draw(3): add a missing .br&lt;/p&gt;

&lt;p&gt;fork(2): document new error behaviour when out of resources&lt;/p&gt;

&lt;p&gt;ftpfs(4): import -&gt; rimport&lt;/p&gt;

&lt;p&gt;git(1): &amp;ldquo;see also&amp;rdquo; consistency (thanks sirjofri)&lt;/p&gt;

&lt;p&gt;git(1): fix git/add -r spacing and wording in BUGS section&lt;/p&gt;

&lt;p&gt;git(1): fix quotes in git/conf example&lt;/p&gt;

&lt;p&gt;git(1): fix typo in git/push section&lt;/p&gt;

&lt;p&gt;ip(3): document the trans argument for add/try.&lt;/p&gt;

&lt;p&gt;ip(3): use flags instead of tag for 8 column route add/remove&lt;/p&gt;

&lt;p&gt;ipconfig(8): add -t flag to enable source address translation&lt;/p&gt;

&lt;p&gt;joy(1): fix typo (thanks lyndon)&lt;/p&gt;

&lt;p&gt;leak(1): document how to generate pool.$objtype.acid&lt;/p&gt;

&lt;p&gt;listen(8): get rid of old ports&lt;/p&gt;

&lt;p&gt;listen(8): remove old cpu, exportfs and rexec listeners&lt;/p&gt;

&lt;p&gt;man(1): reference /rc/bin/sig in SOURCE section&lt;/p&gt;

&lt;p&gt;ndb(2): document txt and txtrr attributes.&lt;/p&gt;

&lt;p&gt;ndb(6): add caa&lt;/p&gt;

&lt;p&gt;nusbrc(8): fix typo in BUGS section&lt;/p&gt;

&lt;p&gt;prep(8): fix typos, wording, and formating&lt;/p&gt;

&lt;p&gt;rc(1): fix synopsis&lt;/p&gt;

&lt;p&gt;rc-httpd(8): document how to use HTTP basic authentication&lt;/p&gt;

&lt;p&gt;rsa(8): document rsa2jwk&lt;/p&gt;

&lt;p&gt;rsa(8): fix spelling and adjust macros to fix formating&lt;/p&gt;

&lt;p&gt;sam(1): fix description of ctrl+g&lt;/p&gt;

&lt;p&gt;sega(1): fix typo&lt;/p&gt;

&lt;p&gt;snap(4): remove non-existent -s from snapfs&lt;/p&gt;

&lt;p&gt;pushssl(2): remove&lt;/p&gt;

&lt;p&gt;ssl(3): remove&lt;/p&gt;

&lt;p&gt;venti(8): change documented behavior to match actual&lt;/p&gt;

&lt;h2&gt;OTHER&lt;/h2&gt;

&lt;p&gt;/lib/ndb/local: add dnschallenge ndb file for acmed(8) by default&lt;/p&gt;

&lt;p&gt;/lib/theo: Once you understand the mechanism you&amp;rsquo;ll realize it will never work.&lt;/p&gt;

&lt;p&gt;/lib/theo: We don&amp;rsquo;t need to make statements people perceive as promises.&lt;/p&gt;

&lt;p&gt;/lib/theo: You obviously don&amp;rsquo;t know what you are doing, and I think you don&amp;rsquo;t deserve help.&lt;/p&gt;

&lt;p&gt;/sys/doc/troff.ms: give correct path for -m flag (thanks kyle)&lt;/p&gt;

&lt;p&gt;/sys/games/lib/fortunes: GPU.js&lt;/p&gt;

&lt;p&gt;/sys/lib/newuser: fix wsys botch, crate bin/arm64&lt;/p&gt;

&lt;p&gt;/sys/src/9/mkfile: add bcm64 (thanks stuart morrow)&lt;/p&gt;

&lt;p&gt;fortunes: MY NAME IS BEING USED IN A PHISHING ATTACK.  DO NOT RESPOND TO MAIL OFFERING MONEY FOR UNDERGRAD RESEARCH ASSISTANTS.  &amp;ndash; bwk&lt;/p&gt;

&lt;p&gt;keyboard: ++ = ⧺&lt;/p&gt;

&lt;p&gt;keyboard: add ∵ (because) and ∷ (proportion)&lt;/p&gt;

&lt;p&gt;keyboard: complete double-struck capital set; change SS → Ss for §&lt;/p&gt;

&lt;p&gt;rootstub: create /sys/lib/tls/acmed directory&lt;/p&gt;

&lt;p&gt;&lt;img src="http://9front.org/img/survivalevasionandescape.back.png" alt="back" /&gt;&lt;/p&gt;
 </description>
        </item>

        <item>
            <title><![CDATA[9FRONT "COMMUNITY VS INFRASTRUCTURE" RELEASED]]></title>
            <author><![CDATA[sl@noreply.cat-v.org (sl)]]></author>
            <link>http://9front.org:80/releases/2021/07/18/0/</link>
            <guid isPermaLink="true">http://9front.org:80/releases/2021/07/18/0/</guid>
            <pubDate>Wed, 06 Apr 2022 17:16:52 -0400</pubDate>
            <description> &lt;p&gt;&lt;img src="http://9front.org/img/communityvsinfrastructure.front.png" alt="front" /&gt;&lt;/p&gt;

&lt;h2&gt;RELEASE&lt;/h2&gt;

&lt;p&gt;This is the first official release after the migration from
mercurial distributed version control system to ori&amp;rsquo;s git9.&lt;/p&gt;

&lt;p&gt;Mercurial and Python have been removed from the distribution,
but can still be installed from the snakeoil repository:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://git.9front.org/plan9front/pyhg/HEAD/info.html"&gt;http://git.9front.org/plan9front/pyhg/HEAD/info.html&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;DOWNLOAD&lt;/h2&gt;

&lt;p&gt;Multiple installation media are provided for PC and Raspberry Pi. For
PC, burn an .iso file to CD, or dd it directly to USB media.  For
Raspberry Pi, dd an .img file directly to sdcard.&lt;/p&gt;

&lt;p&gt;The pi.img file can be used for Raspberry Pi 1, 2, and 3.  The pi3.img
file can be used for Raspberry Pi 3 and 4.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-8593.acc504c319a4b4188479cfa602e40cb6851c0528.386.iso.gz.torrent"&gt;http://9front.org/iso/9front-8593.acc504c319a4b4188479cfa602e40cb6851c0528.386.iso.gz.torrent&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-8593.acc504c319a4b4188479cfa602e40cb6851c0528.amd64.iso.gz.torrent"&gt;http://9front.org/iso/9front-8593.acc504c319a4b4188479cfa602e40cb6851c0528.amd64.iso.gz.torrent&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-8593.acc504c319a4b4188479cfa602e40cb6851c0528.pi.img.gz.torrent"&gt;http://9front.org/iso/9front-8593.acc504c319a4b4188479cfa602e40cb6851c0528.pi.img.gz.torrent&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-8593.acc504c319a4b4188479cfa602e40cb6851c0528.pi3.img.gz.torrent"&gt;http://9front.org/iso/9front-8593.acc504c319a4b4188479cfa602e40cb6851c0528.pi3.img.gz.torrent&lt;/a&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;   cpu% sha1sum -2 256 9front-8593*.gz
   5673ba7f7a0e42d500b923ad8861e5032eae2f990b546d82a307e4184e4113f7      9front-8593.acc504c319a4b4188479cfa602e40cb6851c0528.386.iso.gz
   af6dfae894dcb1e43f1e7e3d085b50f6d1dcf396e09a37d23c174ea94d8bf244      9front-8593.acc504c319a4b4188479cfa602e40cb6851c0528.amd64.iso.gz
   d0a5127c4ab531668232271359054107b884aeb43aec99eecadc7441f4380e97      9front-8593.acc504c319a4b4188479cfa602e40cb6851c0528.pi.img.gz
   07563f2d76061753614dac9b9b256e3b35932465ecc47844e651c5cc82087930      9front-8593.acc504c319a4b4188479cfa602e40cb6851c0528.pi3.img.gz
&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;MIRRORS&lt;/h2&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/"&gt;http://9front.org/iso/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://r-36.net/9front/"&gt;http://r-36.net/9front/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://lux.felloff.net/usr/cinap_lenrek/9front/"&gt;http://lux.felloff.net/usr/cinap_lenrek/9front/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://ftp.cc.uoc.gr/mirrors/9front/"&gt;https://ftp.cc.uoc.gr/mirrors/9front/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://fulton.software/9front/"&gt;http://fulton.software/9front/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;GIT REPOSITORY&lt;/h2&gt;

&lt;p&gt;&lt;a href="http://git.9front.org/plan9front/plan9front/HEAD/info.html"&gt;http://git.9front.org/plan9front/plan9front/HEAD/info.html&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;DASH 1 MANUAL&lt;/h2&gt;

&lt;p&gt;&lt;a href="http://fqa.9front.org/dash1.communityvsinfrastructure.pdf"&gt;http://fqa.9front.org/dash1.communityvsinfrastructure.pdf&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;dash 1 manual: &lt;a href="http://9front.org/propaganda/books"&gt;http://9front.org/propaganda/books&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;SONGS&lt;/h2&gt;

&lt;p&gt;by cinap_lenrek&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/mp3/snakes.mp3"&gt;http://9front.org/mp3/snakes.mp3&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/mp3/manual3.mp3"&gt;http://9front.org/mp3/manual3.mp3&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;THANKS&lt;/h2&gt;

&lt;p&gt;khm (propaganda assist)&lt;/p&gt;

&lt;h2&gt;KERNEL AND DRIVERS&lt;/h2&gt;

&lt;p&gt;archacpi: make *acpi=1 the default&lt;/p&gt;

&lt;p&gt;bcm: try ATAGS/DTB pointer from R2 on entry&lt;/p&gt;

&lt;p&gt;devloopback: fix wrong device character (thanks romano)&lt;/p&gt;

&lt;p&gt;devmouse: default to no blanking instead of 30 minute blank timeout&lt;/p&gt;

&lt;p&gt;devvmx: remove unncessary locking in gotcmd() sleep test function&lt;/p&gt;

&lt;p&gt;ether82563: add pci id for i219-LM from ThinkPad P17 Gen1 Professional Mobile Workstation (thanks tschak909)&lt;/p&gt;

&lt;p&gt;kernel: clean up Mach structure&lt;/p&gt;

&lt;p&gt;kernel: export pcienumcaps() for custom capability enumeration in drivers (virtio)&lt;/p&gt;

&lt;p&gt;kernel: use 64-bit virtual entry point for expanded header, document behaviour in a.out(6)&lt;/p&gt;

&lt;p&gt;nusb/ether: rndis: add standard class code (tested by jmi2k with OnePlus 8)&lt;/p&gt;

&lt;p&gt;nusbrc: ignore rndis ethernet in /rc/bin/nusbed, handled by /sys/src/9/boot/nusbrc (thanks romano)&lt;/p&gt;

&lt;p&gt;nusbrc: rndis with csp 0104ef&lt;/p&gt;

&lt;p&gt;pc, pc64: increase confmem slots to 64&lt;/p&gt;

&lt;p&gt;pc64: avoid getcr3() in mmuflushtlb()&lt;/p&gt;

&lt;p&gt;sdvirtio: accept multi-queue devices&lt;/p&gt;

&lt;p&gt;virtio: add non-legacy virtio 1.0 drivers for disk and ethernet&lt;/p&gt;

&lt;p&gt;virtio: set FeaturesOk flag after feature negotiation, and enable queues before DriverOk flag&lt;/p&gt;

&lt;h2&gt;COMPILER AND DEBUGGER&lt;/h2&gt;

&lt;p&gt;cc: create .$O files with DMTMP&lt;/p&gt;

&lt;p&gt;lex: fix uninitialized fds (thanks きゐ)&lt;/p&gt;

&lt;h2&gt;LIBRARIES&lt;/h2&gt;

&lt;p&gt;lib9p: add auth* functions to man page&lt;/p&gt;

&lt;p&gt;lib9p: expose Srv.forker handler and srvforker(), threadsrvforker() and threadsrv() functions&lt;/p&gt;

&lt;p&gt;lib9p: remove Srv.srvfd, make postsrv() and threadpostsrv() return the mountable file descriptor, update documentation&lt;/p&gt;

&lt;p&gt;lib9p: remove unneccesary headers&lt;/p&gt;

&lt;p&gt;libaml: fix gc bug, need to amltake()/amldrop() temporary buffer&lt;/p&gt;

&lt;p&gt;libc: add encode(2) variants for custom alphabets&lt;/p&gt;

&lt;p&gt;libpanel: fix text sliding around in libpanel text entry widgets.&lt;/p&gt;

&lt;p&gt;libsec: add X509reqtoRSApub() function and return subject alt names in X509to*pub() name buffer&lt;/p&gt;

&lt;p&gt;libsec: emulate openssl asn1 when generating x509 csr&lt;/p&gt;

&lt;p&gt;libsec: move zero check to curve25519_dh_finish()&lt;/p&gt;

&lt;p&gt;libsec: take just the CN part of Distinguished Name in subjectAltName&lt;/p&gt;

&lt;p&gt;libsec: various changes to tls&lt;/p&gt;

&lt;p&gt;libtags, zuke: add *.mod support (thanks kemal)&lt;/p&gt;

&lt;p&gt;libtags: modules: ignore empty title&lt;/p&gt;

&lt;p&gt;libtags: trim text tags and ignore empty values&lt;/p&gt;

&lt;p&gt;libtags: upstream updates&lt;/p&gt;

&lt;p&gt;libtags: use CP437 as the default encoding for module formats&lt;/p&gt;

&lt;p&gt;libtags: use nelem&lt;/p&gt;

&lt;p&gt;libthread: generate correct acid files&lt;/p&gt;

&lt;p&gt;thread.h: threadnonotes does not exist&lt;/p&gt;

&lt;p&gt;threadimpl.h: remove Printsize as well (unused)&lt;/p&gt;

&lt;p&gt;threadimpl.h: remove unused fields from Proc struct&lt;/p&gt;

&lt;h2&gt;PROGRAMS&lt;/h2&gt;

&lt;p&gt;B, sam: remove sam srv file&lt;/p&gt;

&lt;p&gt;B: expand path when plumbing files&lt;/p&gt;

&lt;p&gt;Mail: correctly track the number of messages (thanks igor)&lt;/p&gt;

&lt;p&gt;Mail: remove impliicit headers (thanks unobe)&lt;/p&gt;

&lt;p&gt;Mail: remove message about cyclic threads&lt;/p&gt;

&lt;p&gt;acme: fix border size, autoindent undo: imported from plan9port (thanks jxy)&lt;/p&gt;

&lt;p&gt;walk: properly format permissions&lt;/p&gt;

&lt;p&gt;aux/cddb: freedb.org is dead, use gnudb.org&lt;/p&gt;

&lt;p&gt;aux/cddb: Provide -e option to print commands to rip audio with tags.&lt;/p&gt;

&lt;p&gt;cal: fix days of week alignment for year view (thanks igor@9lab.org)&lt;/p&gt;

&lt;p&gt;cpu: properly handle end of file in readstr()&lt;/p&gt;

&lt;p&gt;crop: allow no-ops for pipelines&lt;/p&gt;

&lt;p&gt;disk/fdisk: add OpenBSD partition type&lt;/p&gt;

&lt;p&gt;file: detect webp files (thanks kemal)&lt;/p&gt;

&lt;p&gt;file: recognize executable scripts, etc.&lt;/p&gt;

&lt;p&gt;g: add lua, mk, ml, mli, myr, and sh suffixes&lt;/p&gt;

&lt;p&gt;games/opl3: don&amp;rsquo;t buffer output and simplify (thanks umbraticus)&lt;/p&gt;

&lt;p&gt;games/opl3: use correct sampling rate&lt;/p&gt;

&lt;p&gt;git/add: clear qid cache as side effect&lt;/p&gt;

&lt;p&gt;git/branch: diff clean and dirty lists correctly&lt;/p&gt;

&lt;p&gt;git/branch: mark files we couldn&amp;rsquo;t update as dirty&lt;/p&gt;

&lt;p&gt;git/branch: merge correct set of files&lt;/p&gt;

&lt;p&gt;git/branch: preserve checked in permissions on branch update&lt;/p&gt;

&lt;p&gt;git/branch: reduce execs to sync working dir&lt;/p&gt;

&lt;p&gt;git/branch: resolve implicit branch switch before using it&lt;/p&gt;

&lt;p&gt;git/branch: somewhere in the syncing, the fix for junk files was lost&lt;/p&gt;

&lt;p&gt;git/commit: allow passing absolute paths&lt;/p&gt;

&lt;p&gt;git/conf: check in /sys/lib/git/config as a fallback to user-wide config&lt;/p&gt;

&lt;p&gt;git/export: make output pipable to /bin/mail&lt;/p&gt;

&lt;p&gt;git/fetch: ensure we clean packfiles on failure&lt;/p&gt;

&lt;p&gt;git/fetch: fix overly eager &amp;rsquo;s/pack/idx/g' in refactor&lt;/p&gt;

&lt;p&gt;git/fs: move mount point to $repo/.git/fs&lt;/p&gt;

&lt;p&gt;git/fs: use a better heuristic for permissions.&lt;/p&gt;

&lt;p&gt;git/import: handle mails with line wrapping and mime&lt;/p&gt;

&lt;p&gt;git/init: create fs dir&lt;/p&gt;

&lt;p&gt;git/log: handle absolute paths gracefully.&lt;/p&gt;

&lt;p&gt;git/log: show first commit as file change&lt;/p&gt;

&lt;p&gt;git/push, git/send: get better about erroring out early&lt;/p&gt;

&lt;p&gt;git/revert: fork the namespace before running git/fs&lt;/p&gt;

&lt;p&gt;git/revert: handle absolute paths gracefully (thanks deuteron)&lt;/p&gt;

&lt;p&gt;git/send: allow the remote to have refs that we don&amp;rsquo;t&lt;/p&gt;

&lt;p&gt;git/send: pick minimal delta set correctly (thanks igor)&lt;/p&gt;

&lt;p&gt;git/serve: remove undocumented -n namespace option and -r /usr/git default&lt;/p&gt;

&lt;p&gt;git/{branch,pull}: merge files correctly&lt;/p&gt;

&lt;p&gt;git: add missing file&lt;/p&gt;

&lt;p&gt;git: allow local repository directories as remote uri&amp;rsquo;s&lt;/p&gt;

&lt;p&gt;git: avoid uninterruptible temporary warning&lt;/p&gt;

&lt;p&gt;git: create .git/objects/ on git/init&lt;/p&gt;

&lt;p&gt;git: got git?&lt;/p&gt;

&lt;p&gt;git: handle absolute paths better&lt;/p&gt;

&lt;p&gt;ip/dhcpd: work around raspberry pi pxe firmware by providing dhcp option 66&lt;/p&gt;

&lt;p&gt;ip/ftpd: Add explict and implicit FTPS support.&lt;/p&gt;

&lt;p&gt;ip/ipconfig: ODtftpserver (dhcp option 66) is of type string&lt;/p&gt;

&lt;p&gt;ip/tftpd: add a syslog message about what error we return to the client on a NAK&lt;/p&gt;

&lt;p&gt;ircrc: freenode -&gt; oftc&lt;/p&gt;

&lt;p&gt;iwhois: add some improvements (thanks gall0ws)&lt;/p&gt;

&lt;p&gt;kbdfs: allow to escape ctlr-alt-del with shift for vmx and vnc.&lt;/p&gt;

&lt;p&gt;mkpaqfs: allow setting compression level&lt;/p&gt;

&lt;p&gt;mothra: read the content-type header over file(1) to determine type (thanks james palmer)&lt;/p&gt;

&lt;p&gt;page: fix for kerTeX dvi&lt;/p&gt;

&lt;p&gt;patch for imap when imap fails&lt;/p&gt;

&lt;p&gt;plumber: fix substrings in match rules&lt;/p&gt;

&lt;p&gt;printfont: load all fonts for &lt;code&gt;printfont all&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;python, hg: tow outside the environment.&lt;/p&gt;

&lt;p&gt;rc: add subshell-function syntax&lt;/p&gt;

&lt;p&gt;rc: correct line numbers&lt;/p&gt;

&lt;p&gt;rc: skip arguments to Xsrcline, Xsrcfile in codefree&lt;/p&gt;

&lt;p&gt;juke: remove (use play or zuke instead)&lt;/p&gt;

&lt;p&gt;remove old, broken scripts: fedex, u(s)ps, weather (thanks fulton)&lt;/p&gt;

&lt;p&gt;resample: improve performance (thanks José Miguel Sánchez García)&lt;/p&gt;

&lt;p&gt;rio: avoid re-triggering clicks on resize/hide/unhide and send wctl when focus is lost&lt;/p&gt;

&lt;p&gt;rio: match background screen color format (thanks noam)&lt;/p&gt;

&lt;p&gt;sam: remove refrence to /srv file in man page&lt;/p&gt;

&lt;p&gt;troff: fix mangled fonts and character files&lt;/p&gt;

&lt;p&gt;trofftable.rc: make work&lt;/p&gt;

&lt;p&gt;upas/Mail: avoid showing empty To: and CC: lines in compose windows&lt;/p&gt;

&lt;p&gt;upas/Mail: fix CC addresses in &amp;ldquo;Reply All&amp;rdquo; compose windows&lt;/p&gt;

&lt;p&gt;upas/Mail: fix bug where Redraw must be executed twice to have an effect&lt;/p&gt;

&lt;p&gt;vac: add -t flag to exclude temporary files and directories (thanks foura)&lt;/p&gt;

&lt;p&gt;venti: fix detection of available RAM (fixes -m)&lt;/p&gt;

&lt;p&gt;venti: inform user when reducing memory consumption&lt;/p&gt;

&lt;p&gt;venti: make error messages consistent, remove duplicate messages.&lt;/p&gt;

&lt;p&gt;venti: warn when opening /dev/swap fails&lt;/p&gt;

&lt;p&gt;vmx: avoid strdup() register names for register cache&lt;/p&gt;

&lt;p&gt;vmx: emulate ps/2 intellimouse scrolling&lt;/p&gt;

&lt;p&gt;vmx: fix 9p debug server and make it compatible to /proc&lt;/p&gt;

&lt;p&gt;vmx: implement long mode page table translation&lt;/p&gt;

&lt;p&gt;vmx: reset virtio queue state on device reset&lt;/p&gt;

&lt;p&gt;vt, ssh: don&amp;rsquo;t send interrupts on window resize&lt;/p&gt;

&lt;p&gt;vt: allow scrolling with the mouse.&lt;/p&gt;

&lt;p&gt;zuke: add mkplist, readtags&lt;/p&gt;

&lt;p&gt;zuke: fix middle-click restarting playback if held while mouse pointer is moving&lt;/p&gt;

&lt;p&gt;zuke: fix position formatter using a wrong type&lt;/p&gt;

&lt;p&gt;zuke: fix seeking in paused mode&lt;/p&gt;

&lt;p&gt;zuke: include libtags in CFLAGS&lt;/p&gt;

&lt;p&gt;zuke: remove -G option (old playlists not supported anymore)&lt;/p&gt;

&lt;p&gt;zuke: treat toggle as play in stopped state&lt;/p&gt;

&lt;h2&gt;DOCUMENTATION&lt;/h2&gt;

&lt;p&gt;9pfid(2): document Srv* in Req (thanks kjn)&lt;/p&gt;

&lt;p&gt;Remove ap(1)&lt;/p&gt;

&lt;p&gt;a.out(1): update manpage to be 64 bit inclusive&lt;/p&gt;

&lt;p&gt;acme(4): document rdsel, wrsel (thanks foura)&lt;/p&gt;

&lt;p&gt;add zuke(1) manpage (thanks kemal &amp;amp; humm)&lt;/p&gt;

&lt;p&gt;/sys/man/mkfile: drop reference to non-existent realtime(3)&lt;/p&gt;

&lt;p&gt;/sys/man/mkfile: run eqn(1) for usb(3) section of book&lt;/p&gt;

&lt;p&gt;date(1): document &amp;lsquo;-f&amp;rsquo; option&lt;/p&gt;

&lt;p&gt;date(1): list all option characters in SYNOPSIS&lt;/p&gt;

&lt;p&gt;fs(4): describe the noauth toggle better (thanks izaki)&lt;/p&gt;

&lt;p&gt;git(1): we have rebase&lt;/p&gt;

&lt;p&gt;graphics(2): fix typo&lt;/p&gt;

&lt;p&gt;memory(2): mention tsmemcmp (thanks kemal)&lt;/p&gt;

&lt;p&gt;mouse(3): mousein is NOT exclusive, see 30907f1d00a7646ccbb420a18f60ccb0bf36e740&lt;/p&gt;

&lt;p&gt;nusbrc(8): fix typo (thanks igor@9lab.org)&lt;/p&gt;

&lt;p&gt;opl3(1), exec(2): fix manpage typos (thanks umbraticus)&lt;/p&gt;

&lt;p&gt;pic(1): restore example section&lt;/p&gt;

&lt;p&gt;rsa(8): document auth/x5092pub, fix usage lines&lt;/p&gt;

&lt;p&gt;sched(9): replace &amp;lsquo;–&amp;rsquo; with &amp;lsquo;-&amp;rsquo; in NAME section&lt;/p&gt;

&lt;p&gt;segment(3): restore missing phrase&lt;/p&gt;

&lt;p&gt;strcat(2): 0 → nil in manpage in refrence to pointers&lt;/p&gt;

&lt;p&gt;sysinfo(1): we don&amp;rsquo;t do &amp;lsquo;-i&amp;rsquo; for sysupdate any more.&lt;/p&gt;

&lt;p&gt;sysinfo(1): we&amp;rsquo;re on git now.&lt;/p&gt;

&lt;p&gt;tmdate(2): &amp;ldquo;ttt&amp;rdquo; is a valid format too, mention it&lt;/p&gt;

&lt;p&gt;webfs(4): fix typos&lt;/p&gt;

&lt;p&gt;zuke(1): engrish (thanks qwx)&lt;/p&gt;

&lt;p&gt;zuke(1): more fixes (thanks humm)&lt;/p&gt;

&lt;h2&gt;OTHER&lt;/h2&gt;

&lt;p&gt;/sys/lib/dist/mkfile: test for .git directory&lt;/p&gt;

&lt;p&gt;/sys/lib/kbmap/colemak: map capslock to backspace (thanks jacob wb)&lt;/p&gt;

&lt;p&gt;/sys/src: add arm64 to installall list&lt;/p&gt;

&lt;p&gt;vga: Add U+29FA DOUBLE PLUS (thanks jmi2k)&lt;/p&gt;

&lt;p&gt;distproto: remove .hgnore and .hg and add .git directory&lt;/p&gt;

&lt;p&gt;distproto: sync with hg&lt;/p&gt;

&lt;p&gt;fortunes: revision: allow pseudo options after &amp;ndash;end-of-options&lt;/p&gt;

&lt;p&gt;fortunes: unremove&lt;/p&gt;

&lt;p&gt;homespool: remove obsolete lp config tool&lt;/p&gt;

&lt;p&gt;legal: mercurial -&gt; git&lt;/p&gt;

&lt;p&gt;legal: remove references to python and mercurial&lt;/p&gt;

&lt;p&gt;manual: don&amp;rsquo;t match nonexistent file while preprocessing&lt;/p&gt;

&lt;p&gt;sysupdate: clean up transitional code&lt;/p&gt;

&lt;p&gt;sysupdate: insert tombstone&lt;/p&gt;

&lt;p&gt;termrc, cpurc: silence /net/ether* error message when there are no ethernet devices&lt;/p&gt;

&lt;p&gt;&lt;img src="http://9front.org/img/communityvsinfrastructure.back.png" alt="back" /&gt;&lt;/p&gt;
 </description>
        </item>

        <item>
            <title><![CDATA[9FRONT "MIT FRUCHTGESCHMACK" RELEASED]]></title>
            <author><![CDATA[sl@noreply.cat-v.org (sl)]]></author>
            <link>http://9front.org:80/releases/2021/04/03/0/</link>
            <guid isPermaLink="true">http://9front.org:80/releases/2021/04/03/0/</guid>
            <pubDate>Wed, 06 Apr 2022 17:16:33 -0400</pubDate>
            <description> &lt;p&gt;&lt;img src="http://9front.org/img/mitfruchtgeschmack.front.png" alt="front" /&gt;&lt;/p&gt;

&lt;h2&gt;HERUNTERLADEN&lt;/h2&gt;

&lt;p&gt;F�r PC und Raspberry PI sind mehrere Installationsmedien bereitgestellt. Brennen Sie f�r PC eine .iso-Datei in CD, oder dd direkt an USB-Medien. F�r Raspberry Pi, DD eine .img-Datei direkt an SDCARD.&lt;/p&gt;

&lt;p&gt;Die PI.IMG-Datei kann f�r Raspberry Pi 1, 2 und 3. Die Datei PI3.IMG kann f�r Raspberry Pi 3 und 4 verwendet werden.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-8392.16c5ead832f2.386.iso.gz.torrent"&gt;http://9front.org/iso/9front-8392.16c5ead832f2.386.iso.gz.torrent&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-8392.16c5ead832f2.amd64.iso.gz.torrent"&gt;http://9front.org/iso/9front-8392.16c5ead832f2.amd64.iso.gz.torrent&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-8392.16c5ead832f2.pi.img.gz.torrent"&gt;http://9front.org/iso/9front-8392.16c5ead832f2.pi.img.gz.torrent&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-8392.16c5ead832f2.pi3.img.gz.torrent"&gt;http://9front.org/iso/9front-8392.16c5ead832f2.pi3.img.gz.torrent&lt;/a&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;   cpu% sha1sum -2 256 9front-8392*.gz
   59888dc6ca47461c4267d3c0d3bbe6869d90894607d42590d9a9ef3b52904dce      9front-8392.16c5ead832f2.386.iso.gz
   8b309dad3b1fd1a88bc79082d0b1b45bcc8f1a645cb575e4d727fe2a852067bb      9front-8392.16c5ead832f2.amd64.iso.gz
   4476afc5c5b9589b3d401df8319b1240849ab11708f253c3f4686336fb280efd      9front-8392.16c5ead832f2.pi.img.gz
   9dd26386b3358f5560e3e55ee2a630cc312e38e3550d08747455800387b7a13d      9front-8392.16c5ead832f2.pi3.img.gz
&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;SPIEGEL&lt;/h2&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/"&gt;http://9front.org/iso/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://r-36.net/9front/"&gt;http://r-36.net/9front/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://lux.felloff.net/usr/cinap_lenrek/9front/"&gt;http://lux.felloff.net/usr/cinap_lenrek/9front/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://ftp.cc.uoc.gr/mirrors/9front/"&gt;https://ftp.cc.uoc.gr/mirrors/9front/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://fulton.software/9front/"&gt;http://fulton.software/9front/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;MERCURIAL REPOSITORY&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://code.9front.org/hg/plan9front"&gt;https://code.9front.org/hg/plan9front&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;DASH 1 HANDBUCH&lt;/h2&gt;

&lt;p&gt;&lt;a href="http://fqa.9front.org/dash1.mitfruchtgeschmack.pdf"&gt;http://fqa.9front.org/dash1.mitfruchtgeschmack.pdf&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;dash 1 und die mannseiten im druck : &lt;a href="http://9front.org/propaganda/books"&gt;http://9front.org/propaganda/books&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;DANKE&lt;/h2&gt;

&lt;p&gt;&lt;a href="http://p9f.org"&gt;p9f.org&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;KERN UND TREIBER&lt;/h2&gt;

&lt;p&gt;9boot: Automatische LÃ¤nge fÃ¼r 64-Bit-Werte in hexfmt() fÃ¼r Framebuffer-Adresse verarbeiten(danke Michael Forney)&lt;/p&gt;

&lt;p&gt;9boot: Markieren Sie die efi-Boot- und Laufzeitdienstregionen als reserviert&lt;/p&gt;

&lt;p&gt;9boot: bevorzuge plan9.ini von ESP, von dem wir geladen haben&lt;/p&gt;

&lt;p&gt;audiohda: PCI-ID fÃ¼r Intel C610/X99 hinzufÃ¼gen&lt;/p&gt;

&lt;p&gt;amd64, vmx: unterstÃ¼tzt avx/avx2 fÃ¼r Host/Gast; Verwenden Sie * noavx = in plan9.ini, um es zu deaktivieren&lt;/p&gt;

&lt;p&gt;amd64: FP: Verwenden Sie immer genÃ¼gend Speicher, um den AVX-Status anzupassen und auf 64 Byte auszurichten&lt;/p&gt;

&lt;p&gt;audiohda: AMD Starship/Matisse HD Audio Controller hinzufÃ¼gen(danke uramekus)&lt;/p&gt;

&lt;p&gt;audiohda: Interrupts nicht aktivieren, bevor intrenable()&lt;/p&gt;

&lt;p&gt;audiohda: lass es mit qemu funktionieren(danke Unfug)&lt;/p&gt;

&lt;p&gt;audiohda: setze irbsts Bits in hdainterrupt() zurÃ¼ck(danke LordCreepity)&lt;/p&gt;

&lt;p&gt;aux/acpi: Leere Dateien nicht verfÃ¼gbar machen&lt;/p&gt;

&lt;p&gt;aux/kbdfs, kbmaps: Aktivieren Sie Kmod4 fÃ¼r andere Layouts, nicht nur fÃ¼r neo2&lt;/p&gt;

&lt;p&gt;aux/kbdfs: benutze getuser() von libc&lt;/p&gt;

&lt;p&gt;aux/kbdfs: Fehler beheben, Ã¼brig gebliebene statische Benutzervariable entfernen(danke umbraticus und igor)&lt;/p&gt;

&lt;p&gt;aux/realemu: Verwenden Sie # $/pci/B.D.Fraw, um auf den PCI-Konfigurationsbereich zuzugreifen&lt;/p&gt;

&lt;p&gt;aux/vga: Schwenken entfernen, BildschirmneigungsunterstÃ¼tzung hinzufÃ¼gen&lt;/p&gt;

&lt;p&gt;ether2114x: Stellen Sie sicher, dass pci bar0 E/A ist&lt;/p&gt;

&lt;p&gt;ether2114x: ÃœberprÃ¼fung des Treibers auf pc64&lt;/p&gt;

&lt;p&gt;ether8169: Interrupt-Panik vor Init beheben, Initialisierung bis zum AnhÃ¤ngen verschieben&lt;/p&gt;

&lt;p&gt;ether82563: PCI-ID fÃ¼r i219-LM auf thinkcenter hinzufÃ¼gen(easypeasy, danke hiro)&lt;/p&gt;

&lt;p&gt;etheriwl: Bringt die Wiederherstellung nach dem Flushq-Timeout zurÃ¼ck&lt;/p&gt;

&lt;p&gt;etherm10g: Doppelte PCI-FÃ¤higkeitsaufzÃ¤hlung entfernen&lt;/p&gt;

&lt;p&gt;bcm64: Ruft die Basisadresse des eingehenden und ausgehenden PCI-Fensters aus dem GerÃ¤tebaum ab&lt;/p&gt;

&lt;p&gt;bcm: Farbwechsel auf RGB24 Ã¤ndern(danke p.kosyh)&lt;/p&gt;

&lt;p&gt;bcm: dtb-Dateien fÃ¼r rpi-400 und rpi-cm4 herunterladen&lt;/p&gt;

&lt;p&gt;devfs: Sperren korrigieren und undokumentierte Konfigurationssignatur &amp;ldquo;fsdev:\n&amp;rdquo; ignorieren&lt;/p&gt;

&lt;p&gt;devmouse: Redundante PrÃ¼fung entfernen&lt;/p&gt;

&lt;p&gt;devpccard, pci: pccard-UnterstÃ¼tzung korrigieren und pci-Erweiterungs-ROMs handhaben&lt;/p&gt;

&lt;p&gt;devproc: Erlaube jedem, den Benutzer seiner eigenen Prozesse in &amp;ldquo;keine&amp;rdquo; zu Ã¤ndern.&lt;/p&gt;

&lt;p&gt;devsons: entferne # c/pgrpid&lt;/p&gt;

&lt;p&gt;devvga: Bildschirmneigung implementieren, Schwenken und Ãœberlagerungen entfernen&lt;/p&gt;

&lt;p&gt;Kernel: Portable pcimsienable()/pcimsidisable() hinzufÃ¼gen, MSI/MSI-X auf pcidisable()/pcireset() deaktivieren&lt;/p&gt;

&lt;p&gt;Kernel: Palloc Lock wÃ¤hrend mmurelease vermeiden()&lt;/p&gt;

&lt;p&gt;Kernel: Handle tos und pro Prozess Pcycle Counter in Port /&lt;/p&gt;

&lt;p&gt;Kernel: Implementiere das OCEXEC-Flag pro Dateideskriptor, lehne ORCLOSE ab, wenn du/fd,/srv und/shr Ã¶ffnest&lt;/p&gt;

&lt;p&gt;Kernel: Addbroken() statisch machen, irrefÃ¼hrendes Proc * -Argument entfernen&lt;/p&gt;

&lt;p&gt;Kernel: Entfernen Sie das Proc * -Argument aus der Funktion procsetuser()&lt;/p&gt;

&lt;p&gt;Kernel: ucalloc.c-Duplikate entfernen&lt;/p&gt;

&lt;p&gt;Kernel: Nicht verwendete Funktion pcinextcap() entfernen&lt;/p&gt;

&lt;p&gt;Kernel: Update procsave() Kommentar, wir halten nicht mehr auf-&gt; rlock&lt;/p&gt;

&lt;p&gt;Kernel: Verwenden Sie eine 64-Bit-Maske, um eine Compiler-Warnung in port/pci.c zu vermeiden&lt;/p&gt;

&lt;p&gt;Kernel: Befreien Sie sich von der physischen Seite Bank-Array und verwenden Sie stattdessen conf.mem[]&lt;/p&gt;

&lt;p&gt;kw: benutze ethermii.c von port/(danke stuart)&lt;/p&gt;

&lt;p&gt;mtx: PCI-Zugriffsroutinen korrigieren(siehe Ã„nderungssatz 8012: 78891f472fbf)&lt;/p&gt;

&lt;p&gt;nusb/cam: nicht videoclose(), wenn das Ã–ffnen fehlgeschlagen ist&lt;/p&gt;

&lt;p&gt;nusb/ether: Verbesserung von -t rndis (danke romano)&lt;/p&gt;

&lt;p&gt;nusb/kb, nusb/joy: Versuchen Sie nicht, das Protokoll auf Nicht-Boot-GerÃ¤ten festzulegen&lt;/p&gt;

&lt;p&gt;nusb/kb: korrekter Mod4-Scancode(125 â†’ 91, passend zu dem, was kbdfs hat)&lt;/p&gt;

&lt;p&gt;nusb/kb: SchaltflÃ¤chenstatus aktualisieren, wenn das Ereignis tatsÃ¤chlich empfangen wurde, Tippfehler korrigieren(danke umbraticus)&lt;/p&gt;

&lt;p&gt;nusb: Erstelle keine rw iso Endpunkte(von Michael Forney)&lt;/p&gt;

&lt;p&gt;nusbrc: delect lenovo kamera&lt;/p&gt;

&lt;p&gt;pc, pc64, xen: Interrupt-Behandlungscode neu schreiben&lt;/p&gt;

&lt;p&gt;pc, pc64: add * nomtrr = Kernel-Parameter&lt;/p&gt;

&lt;p&gt;pc, pc64: FÃ¼gen Sie einen minimalen HPET-Treiber hinzu, um die LAPIC- und TSC-Frequenzen zu messen&lt;/p&gt;

&lt;p&gt;pc, pc64: ordne dma bounce buffer direkt nach xinit() zu&lt;/p&gt;

&lt;p&gt;pc, pc64: Weisen Sie E/A-Port-Speicherplatz fÃ¼r nicht zugewiesene PCI-Balken zu und verschieben Sie ioalloc() nach port/iomap.c&lt;/p&gt;

&lt;p&gt;pc, pc64: Bereinigung cpuidentify() und einige Kommentare&lt;/p&gt;

&lt;p&gt;pc, pc64: Deaktiviere alle PCI-GerÃ¤te fÃ¼r/dev/reboot&lt;/p&gt;

&lt;p&gt;pc, pc64: Deaktiviere alle PCI-GerÃ¤te in pcicfginit()&lt;/p&gt;

&lt;p&gt;pc, pc64: Speicherbereiche mit ungewÃ¶hnlichen MTRR-Cache-Attributen ausschlieÃŸen&lt;/p&gt;

&lt;p&gt;pc, pc64: grub multiboot reparieren&lt;/p&gt;

&lt;p&gt;pc, pc64: MTRRs ignorieren, wenn MTRRCap.vcnt und MTRRCap.fix Null sind&lt;/p&gt;

&lt;p&gt;pc, pc64: Deaktivieren Sie die Deaktivierung von MSI-Interrupts&lt;/p&gt;

&lt;p&gt;pc, pc64: idt frÃ¼h in trapinit0 laden()&lt;/p&gt;

&lt;p&gt;pc, pc64: Stellen Sie sicher, dass die Schreibkombination in MTRRs unterstÃ¼tzt wird, bevor Sie sie einstellen&lt;/p&gt;

&lt;p&gt;pc, pc64: Verschieben Sie den gesamten fpu-spezifischen Code von main.c nach fpu.c.&lt;/p&gt;

&lt;p&gt;pc, pc64: Verschieben Sie den allgemeinen IRQ-Handhabungscode aus trap.c&lt;/p&gt;

&lt;p&gt;pc, pc64: neuer MTRR-Code, der AMD TOM2 MSR und feste mtrr-Bereiche unterstÃ¼tzt&lt;/p&gt;

&lt;p&gt;pc, pc64: HinzufÃ¼gen des Aufrufs von pcireset() zu pcicfginit() rÃ¼ckgÃ¤ngig machen&lt;/p&gt;

&lt;p&gt;pc, pc64: Warnung bei fehlenden conf.mem [] -EintrÃ¤gen in meminit()&lt;/p&gt;

&lt;p&gt;pc, pc64: Umgehung aller nicht zwischengespeicherten MTRRs&lt;/p&gt;

&lt;p&gt;pc, xen: fpu setup/fork/save/restore handler auf pc/fpu.c verschieben&lt;/p&gt;

&lt;p&gt;pc/devarch: benutze m-&gt; cpumhz anstatt es neu zu berechnen&lt;/p&gt;

&lt;p&gt;pc/dma, pc/sdide: Verwenden Sie uintptr fÃ¼r die physikalische Adresse anstelle von ulong&lt;/p&gt;

&lt;p&gt;pc/l.s: Laden Sie den virtuellen GDT-Zeiger nach dem MMU-Schalter&lt;/p&gt;

&lt;p&gt;pc/l.s: Entfernen Sie nicht verwendete m0gdtptr/m0idtptr-Strukturen&lt;/p&gt;

&lt;p&gt;pc/pc64: fpc, pc64: ix fehlerhafte mtrr slot wiederverwendung(danke Fulton)&lt;/p&gt;

&lt;p&gt;pc64: AMD64 fordert SSE-UnterstÃ¼tzung an, entfernen Sie die PrÃ¼fung in fpuinit()&lt;/p&gt;

&lt;p&gt;pc64: weise fpsave/fprestore nur einmal in fpuinit() zu&lt;/p&gt;

&lt;p&gt;pc64: reservierte Bits in CR0/CR4 fÃ¼r amd64 in mtrr setstate() beibehalten&lt;/p&gt;

&lt;p&gt;pc: Anzahl der Conf.mem [] -EintrÃ¤ge von 4 auf 16 erhÃ¶hen&lt;/p&gt;

&lt;p&gt;pc: Verschiebe den Prototyp ldmxcsr() nach fpu.c.&lt;/p&gt;

&lt;p&gt;sdiahci: 64-Bit-PCIWADDR() annehmen&lt;/p&gt;

&lt;p&gt;sdiahci: aktiviere pci busmaster vor ahciconfigdrive()(behebe qemu Absturz)&lt;/p&gt;

&lt;p&gt;usbehci: 64-Bit-Basisadresse verwenden, resetlck entfernen, scanpci() vereinfachen&lt;/p&gt;

&lt;p&gt;usbohci: 64-Bit-Io-Basisadresse verwenden, Interrupts vor dem ZurÃ¼cksetzen deaktivieren, rresetlck entfernen&lt;/p&gt;

&lt;p&gt;usbuhci: resetlk entfernen, scanpci vereinfachen()&lt;/p&gt;

&lt;p&gt;vesa: Nicht unterstÃ¼tzte Funktion nicht fehlerhaft machen, RÃ¼ckgabestatus setzen&lt;/p&gt;

&lt;p&gt;xen: Fix fÃ¼r die letzten avx-Ã„nderungen&lt;/p&gt;

&lt;p&gt;xen: benutze pc/fpu.c&lt;/p&gt;

&lt;h2&gt;COMPILER UND DEBUGGER&lt;/h2&gt;

&lt;p&gt;SÃ¤ure: Hash-GrÃ¶ÃŸe erhÃ¶hen(danke jonas.amoson)&lt;/p&gt;

&lt;p&gt;5c, 6c, 7c, 8c, kc, qc, vc: Verwenden Sie explizite gmove(&amp;hellip;, nn) â€‹â€‹in cgen() fÃ¼r das Ergebnis von OAS *, OPREINC, OPOSTINC&lt;/p&gt;

&lt;p&gt;5l: Verschiebungen um Null korrigieren&lt;/p&gt;

&lt;p&gt;cc: Vergleichswarnung mit konstanter LHS korrigieren&lt;/p&gt;

&lt;p&gt;cc: Entfernen Sie unnÃ¶tige 128-Bit-Add-Funktionen&lt;/p&gt;

&lt;p&gt;cc: FÃ¼gen Sie den Kommentaren zu Flags einige Anmerkungen hinzu&lt;/p&gt;

&lt;p&gt;cc: mk clean sollte cc.a $ O lÃ¶schen&lt;/p&gt;

&lt;p&gt;[12kq] l: Unix-kompatiblen Code fÃ¼r cputime() entfernen&lt;/p&gt;

&lt;h2&gt;BIBLIOTHEKEN&lt;/h2&gt;

&lt;p&gt;Affe: Entfernen Sie den _SUSV2_SOURCE-Schutz aus inttypes.h&lt;/p&gt;

&lt;p&gt;Affe: fÃ¼ge fehlende isnan() und isinf() Makros fÃ¼r 386 hinzu(danke Jonas)&lt;/p&gt;

&lt;p&gt;Affe: wende unendliche rekursion in fmod() fix an(danke jxy und ality)&lt;/p&gt;

&lt;p&gt;Affe: Implementiere getlogin() erneut, indem du/proc/$ pid/status angibst&lt;/p&gt;

&lt;p&gt;Affe: synchronisiere flaot.h makros mit u.h.&lt;/p&gt;

&lt;p&gt;Affe: vereinige math.h kopien&lt;/p&gt;

&lt;p&gt;Affe: implementiere log2 in libc&lt;/p&gt;

&lt;p&gt;Affe: Exponieren Sie fd2path(danke phil9)&lt;/p&gt;

&lt;p&gt;Affe: sync arm getfcr.s Implementierung&lt;/p&gt;

&lt;p&gt;Affe: fix _startbuf, Ã¼berprÃ¼fe rfork return(danke pixelherodev)&lt;/p&gt;

&lt;p&gt;Affe: libap: fÃ¼ge strndup hinzu&lt;/p&gt;

&lt;p&gt;lib9p: Verbesserung von reqqueuecreate()&lt;/p&gt;

&lt;p&gt;lib9p: open/mnt/factotum/rpc mit OCEXEC-Flag in auth9p()&lt;/p&gt;

&lt;p&gt;lib9p: Interner Dateideskriptor mit OCEXEC-Flag in getremotesys() Ã¶ffnen&lt;/p&gt;

&lt;p&gt;libFLAC/mkfile: Version aktualisieren und mit -DNDEBUG erstellen&lt;/p&gt;

&lt;p&gt;libaml: add(nop) &amp;ldquo;signal&amp;rdquo; op&lt;/p&gt;

&lt;p&gt;libaml: IndexField- und BankField-Implementierungen korrigieren(danke Michael Forney)&lt;/p&gt;

&lt;p&gt;libauth: FÃ¼gen Sie die Funktion procsetuser() hinzu, um die Benutzer-ID des aufrufenden Prozesses zu Ã¤ndern&lt;/p&gt;

&lt;p&gt;libauth: Ã„ndern Sie die Programme, um die neue Funktion procsetuser() zu verwenden&lt;/p&gt;

&lt;p&gt;libauth: Ã–ffnen Sie interne Dateideskriptoren mit dem OCEXEC-Flag&lt;/p&gt;

&lt;p&gt;libauth: Implementieren Sie procsetuser() erneut, um/proc anstelle von # c/user zu verwenden&lt;/p&gt;

&lt;p&gt;libauthsrv: Ã–ffnen Sie interne Dateideskriptoren mit dem OCEXEC-Flag&lt;/p&gt;

&lt;p&gt;libbio: fÃ¼ge aux pointer zu bio hinzu&lt;/p&gt;

&lt;p&gt;libc/arm: Ã–ffnen Sie die Datei # c/sysstat mit OCEXEC(interner Dateideskriptor).&lt;/p&gt;

&lt;p&gt;libc: Implementiere getppid() und lese/proc/$ pid/ppid anstelle von/dev/ppid&lt;/p&gt;

&lt;p&gt;libc: Ã–ffnen Sie den internen Dateideskriptor mit dem OCEXEC-Flag&lt;/p&gt;

&lt;p&gt;libc: Implementieren Sie getuser() erneut, indem Sie/proc/$ pid/status angeben&lt;/p&gt;

&lt;p&gt;libc: Rekurs auf kleinere HÃ¤lfte des Arrays&lt;/p&gt;

&lt;p&gt;libcomplete: Ã–ffnen Sie den internen Dateideskriptor mit dem OCEXEC-Flag&lt;/p&gt;

&lt;p&gt;libdraw: Bezierpts hinzufÃ¼gen&lt;/p&gt;

&lt;p&gt;libdraw: Erzwinge Flushimage() nicht auf Freescreen()&lt;/p&gt;

&lt;p&gt;libdraw: enter/eenter: Fix Kleft fÃ¼r Nicht-ASCII-Text&lt;/p&gt;

&lt;p&gt;libdraw: enter/eenter: fix ^ W Entfernen des Textes auf der rechten Seite des HÃ¤kchens&lt;/p&gt;

&lt;p&gt;libdraw: Ã–ffnen Sie den Dateideskriptor mit dem OCEXEC-Flag in readcolmap()&lt;/p&gt;

&lt;p&gt;libdraw: Ã–ffnen Sie interne Dateideskriptoren mit dem OCEXEC-Flag&lt;/p&gt;

&lt;p&gt;libdraw: Nicht verwendete Fehlerbezeichnung in freescreen() entfernen&lt;/p&gt;

&lt;p&gt;libndb: Ã–ffnen Sie interne Dateideskriptoren mit dem OCEXEC-Flag&lt;/p&gt;

&lt;p&gt;libndb: Entfernen Sie die GrÃ¶ÃŸenbeschrÃ¤nkung fÃ¼r DB-Dateien&lt;/p&gt;

&lt;p&gt;libsec: Ã–ffnen Sie interne Dateideskriptoren mit dem OCEXEC-Flag&lt;/p&gt;

&lt;p&gt;libstdio: Synchronisiere Bits von vfprintf von Affe&lt;/p&gt;

&lt;p&gt;libsunrpc: Umgehung des Arm64-Compiler-Fehlers in sunStringUnpack()&lt;/p&gt;

&lt;p&gt;libthread: Reduzieren Sie die StAffelverwendung fÃ¼r ioprocs, Ã¶ffnen Sie/proc/n/ctl mit dem OCEXEC-Flag&lt;/p&gt;

&lt;p&gt;libthread: Reduziert die StAffelverwendung von threadkill *(), open/proc/n/ctl mit dem OCEXEC-Flag&lt;/p&gt;

&lt;p&gt;libthread: Nicht verwendete _times() -Funktion entfernen&lt;/p&gt;

&lt;p&gt;libthread: vereinfache threadsetname()&lt;/p&gt;

&lt;p&gt;libvorbis: 1.3.5 â†’ 1.3.7(behebt eine Reihe von CVE und anderen kleinen Problemen)&lt;/p&gt;

&lt;p&gt;libvorbis: fix free() hat einen falschen Zeiger aufgerufen&lt;/p&gt;

&lt;p&gt;stdio: Entfernen Sie fehlerhafte Behauptungen in dtoa&lt;/p&gt;

&lt;p&gt;strndup: gehe nicht davon aus, dass der Puffer beendet ist&lt;/p&gt;

&lt;h2&gt;PROGRAMME&lt;/h2&gt;

&lt;p&gt;9fs: Bell Labs ist sehr tot&lt;/p&gt;

&lt;p&gt;B, Bfn: Aufruf mit mehreren Dateien korrigieren, Handbuchseite verbessern&lt;/p&gt;

&lt;p&gt;B: Verschmutzen Sie nicht die Umwelt&lt;/p&gt;

&lt;p&gt;TÃ¶ten: Umwelt nicht verschmutzen&lt;/p&gt;

&lt;p&gt;tÃ¶ten, tÃ¶ten, pleite: Umwelt nicht verschmutzen, $ user verwenden&lt;/p&gt;

&lt;p&gt;Mail: Richtiges Rendern verschachtelter mehrteiliger Nachrichten&lt;/p&gt;

&lt;p&gt;Mail: Endlos-LÃ¶schschleife korrigieren&lt;/p&gt;

&lt;p&gt;Mail: Invertierte Antwort-All-Bedingung behoben&lt;/p&gt;

&lt;p&gt;Mail: Nur bei Ã„nderung gepflegte Flaggen lÃ¶schen(danke deuteron)&lt;/p&gt;

&lt;p&gt;Mail: Separates LÃ¶schen vom erneuten VerknÃ¼pfen von Nachrichten&lt;/p&gt;

&lt;p&gt;acme: fix use nach free in warning() call(danke igor)&lt;/p&gt;

&lt;p&gt;acme: benutze getuser() in fsinit()&lt;/p&gt;

&lt;p&gt;acme: Verwenden Sie anstelle von getuser() eine globale Benutzerzeichenfolgenvariable.&lt;/p&gt;

&lt;p&gt;acme: Fixieren Sie den Selbstmord * und * Ressorcen-Leck in ECMD.C (danke igor)&lt;/p&gt;

&lt;p&gt;aout2uimage: Fehlende \ n im Verwendungsdruck korrigieren(danke James)&lt;/p&gt;

&lt;p&gt;Audio/Flacenc: FehlerprÃ¼fung fÃ¼r fseeko behoben&lt;/p&gt;

&lt;p&gt;Audio/Flacenc: Verwendung korrigieren&lt;/p&gt;

&lt;p&gt;Audio/Flacenc: Ein Argument in fprintf() wurde verpasst.&lt;/p&gt;

&lt;p&gt;Audio/WAVDEC: Option -s hinzufÃ¼gen&lt;/p&gt;

&lt;p&gt;diff: Ã„nderungsmarkierung fÃ¼r -c-Modus korrigieren&lt;/p&gt;

&lt;p&gt;dpost Prolog: Update/Radikalex zur Korrektur der quadratischen Verschiebung(danke umbraticus und Ethan)&lt;/p&gt;

&lt;p&gt;Gesichter: Option -c hinzufÃ¼gen, um Gesichter mit Knopfdruck 1 zu entfernen(danke sirjofri)&lt;/p&gt;

&lt;p&gt;fax, psfax, vwhois: Verwenden Sie $ user anstelle von/dev/user&lt;/p&gt;

&lt;p&gt;Datei: ftyp mp4 * ist auch Video/mp4&lt;/p&gt;

&lt;p&gt;Mimetyp: Eintrag fÃ¼r .patch-Erweiterung hinzufÃ¼gen&lt;/p&gt;

&lt;p&gt;aux/cpuid: Blatt 7 dekodieren; Dekodierung von Blatt 13 verlÃ¤ngern&lt;/p&gt;

&lt;p&gt;aux/cpuid: korrigiere die letzte neue Zeile auf printbits()&lt;/p&gt;

&lt;p&gt;aux/cpuid: Korrigieren Sie die Null-Terminierung nacheinander.&lt;/p&gt;

&lt;p&gt;aux/status ^(bar msg): einige kleine Korrekturen(danke umbraticus)&lt;/p&gt;

&lt;p&gt;awk: abgeschnittene Eingabe nach fflush korrigieren&lt;/p&gt;

&lt;p&gt;cal: Option add -s, um den Starttag der Woche anzugeben&lt;/p&gt;

&lt;p&gt;cal: fix -s 7&lt;/p&gt;

&lt;p&gt;cal: Verwenden Sie in jedem Fall Sa/Su, vereinfachen Sie auch den Code&lt;/p&gt;

&lt;p&gt;cwfs: Interpretation des Startdump-Arguments korrigiert&lt;/p&gt;

&lt;p&gt;dc: fix AbstÃ¼rze mit: operator(danke istvan bak)&lt;/p&gt;

&lt;p&gt;dd: Fehler mit ungÃ¼ltigen GrÃ¶ÃŸensuffixen, fÃ¼ge &amp;rsquo;m' hinzu&lt;/p&gt;

&lt;p&gt;fplot: fÃ¼ge abs und hyperbolische Funktionen hinzu&lt;/p&gt;

&lt;p&gt;g: Verzeichnisargumente filtern&lt;/p&gt;

&lt;p&gt;g: Dateien initialisieren env var&lt;/p&gt;

&lt;p&gt;Spiele/GB: fix umgekehrte AudiokanÃ¤le&lt;/p&gt;

&lt;p&gt;Spiele/gb: Timer-Teiler fÃ¼r Eingangstakt 0 korrigieren&lt;/p&gt;

&lt;p&gt;Spiele/gb: verschiedene HDMA-Korrekturen&lt;/p&gt;

&lt;p&gt;Spiele/Mix: SLAX- und SRAX-Anweisungen korrigieren(danke nicolagi)&lt;/p&gt;

&lt;p&gt;Spiele/Mix: Korrektur der Dekodierung von Schichtanweisungen&lt;/p&gt;

&lt;p&gt;Spiele/mix: Implementierung der MOVE-Anweisung korrigiert(danke nicolagi)&lt;/p&gt;

&lt;p&gt;Spiele/Snes: BRR-Dekodierung mit den Filtern 2 und 3 korrigieren&lt;/p&gt;

&lt;p&gt;Spiele/Snes: DSP-Echo implementieren&lt;/p&gt;

&lt;p&gt;Spiele/Snes: Implementieren Sie DSP-Rauschen&lt;/p&gt;

&lt;p&gt;Spiele/Snes: Verwenden Sie zum Resampling die 4-Punkt-Einsiedlerinterpolation&lt;/p&gt;

&lt;p&gt;Spiele/Snes: Verwenden Sie anstelle ihrer Werte die Enum-Konstanten KON und ENDX&lt;/p&gt;

&lt;p&gt;Spiele/glendy: Ihre Komplikation hatte eine Komplikation (god damn it kemal)&lt;/p&gt;

&lt;p&gt;hpost: Verwendungstext korrigieren&lt;/p&gt;

&lt;p&gt;hpost: unterstÃ¼tze benutzerdefinierte Header(danke julienxx)&lt;/p&gt;

&lt;p&gt;html2ms: 0xFFFD â†’ Runenfehler&lt;/p&gt;

&lt;p&gt;ico: Vermeiden Sie mÃ¶gliche Null-Zeiger-Dereferenzen&lt;/p&gt;

&lt;p&gt;ico: Interpretation von 0 Breiten/HÃ¶hen korrigieren&lt;/p&gt;

&lt;p&gt;imap4d: imap4date sollte Zeit und Zeitzone ignorieren(RFC3501, 6.4.4)&lt;/p&gt;

&lt;p&gt;iostats: dup 9p Pipe zu fd 0 und fd 1 fÃ¼r exportfs&lt;/p&gt;

&lt;p&gt;ip/cifsd: Fehlender int-RÃ¼ckgabetyp fÃ¼r vpack() behoben(danke pr)&lt;/p&gt;

&lt;p&gt;ip/tftpd: fÃ¼ge -n Namespace-Dateiflag hinzu(danke sam-d)&lt;/p&gt;

&lt;p&gt;ip/tftpd: Verwenden Sie procsetuser(), anstatt # c/user zu schreiben&lt;/p&gt;

&lt;p&gt;ip/tinc: Fix Reportedge()&lt;/p&gt;

&lt;p&gt;jpg: behandle EOF als EOI-Marker&lt;/p&gt;

&lt;p&gt;mothra: &amp;ldquo;d&amp;rdquo;: Lite-Version verwenden, Umleitung deaktivieren&lt;/p&gt;

&lt;p&gt;mothra: fÃ¼ge den Befehl &amp;ldquo;d&amp;rdquo; hinzu, um im Internet nach einem Text zu suchen(mit duckduckgo)&lt;/p&gt;

&lt;p&gt;mothra: fÃ¼ge nach div keinen Zeilenumbruch ein(danke phil9)&lt;/p&gt;

&lt;p&gt;mothra: verknÃ¼pfe Text beginnend mit gemini: // und ftp: //&lt;/p&gt;

&lt;p&gt;mothra: URLs mit mittlerem Klick auflÃ¶sen. hilft beim SchnÃ¼ffeln von relativen URLs&lt;/p&gt;

&lt;p&gt;mothra: Optimieren Sie die Eingabesteuerungslogik fÃ¼r eine einfachere Textbearbeitung&lt;/p&gt;

&lt;p&gt;Marschall: Debug-Junk entfernen.&lt;/p&gt;

&lt;p&gt;mklib, upas/common: bereinige libcommon richtig(danke mikan)&lt;/p&gt;

&lt;p&gt;ndb/dns: behandle dnskey RRs(danke launisch)&lt;/p&gt;

&lt;p&gt;ndb/dns: Implementieren Sie den Berechtigungsdatensatztyp der RFC6844-Zertifizierungsstelle&lt;/p&gt;

&lt;p&gt;news: mach -a und -n miteinander aus(danke lyndon)&lt;/p&gt;

&lt;p&gt;Molch: fn f entfernen, durch walk ersetzen&lt;/p&gt;

&lt;p&gt;pc: Exit-Status abhÃ¤ngig von Fehlern einstellen&lt;/p&gt;

&lt;p&gt;pc: Behandle EOF anmutig und erlaube so eine einfachere Verwendung in der Befehlssprache sam&lt;/p&gt;

&lt;p&gt;Lot: Fehler beim Klicken auf falsche Klickattribute korrigieren(danke umbraticus)&lt;/p&gt;

&lt;p&gt;Klempner: Lecken Sie den srvfd-Dateideskriptor nicht in Unterprozesse&lt;/p&gt;

&lt;p&gt;Klempner: Ã–ffnen Sie Regeldateien als OCEXEC, um zu vermeiden, dass sie an Unterbefehle weitergegeben werden&lt;/p&gt;

&lt;p&gt;Beweis: Verwechseln Sie nicht &amp;ldquo;&amp;rdquo;(1)(danke Stuart Morrow)&lt;/p&gt;

&lt;p&gt;ptrap: fehlgeschlagen, wenn ohne Argumente aufgerufen wird&lt;/p&gt;

&lt;p&gt;ptrap: Filterung nach Lotattributen implementieren&lt;/p&gt;

&lt;p&gt;qr: Beenden Sie den Exit-Status&lt;/p&gt;

&lt;p&gt;ramfs: truncfile() fÃ¼r nicht ein Vielfaches der ErweiterungsgrÃ¶ÃŸe(64k) korrigieren&lt;/p&gt;

&lt;p&gt;rc: Zeilennummern bei Fehler anzeigen&lt;/p&gt;

&lt;p&gt;rio: Erlaube Fenster, die so klein wie eine Textzeile sind und dennoch gescrollt werden kÃ¶nnen&lt;/p&gt;

&lt;p&gt;rio: Vermeiden Sie das Neuzeichnen von Fenstertext beim Ã„ndern der GrÃ¶ÃŸe fÃ¼r Programme, die libdraw verwenden&lt;/p&gt;

&lt;p&gt;rio: formatiere pid&amp;rsquo;s als ulongs&lt;/p&gt;

&lt;p&gt;rio: goodrect: klÃ¤re die minimale HÃ¶he und verwende tatsÃ¤chlich den kleinsten vernÃ¼nftigen Wert&lt;/p&gt;

&lt;p&gt;rio: FensterfokusÃ¤nderungen deterministisch vornehmen, Wind bereinigen.c&lt;/p&gt;

&lt;p&gt;rio: open/dev/snarf mit OCEXEC-Flag beim Schreiben&lt;/p&gt;

&lt;p&gt;rio: Stellen Sie den Windows-Inhalt unter/dev/mouse close ordnungsgemÃ¤ÃŸ wieder her&lt;/p&gt;

&lt;p&gt;rio: schreibe eine bessere Funktion von portion() um&lt;/p&gt;

&lt;p&gt;rio: vereinfache filsysinit() mit getuser() und formatiere pids als ulongs&lt;/p&gt;

&lt;p&gt;rio: benutze libdraws badrect() um einige extreme FÃ¤lle in goodrect() auszuschlieÃŸen&lt;/p&gt;

&lt;p&gt;sam/{address.c, sam.h}: STRSIZE auf 512 MB erhÃ¶hen(danke, Ori_B)&lt;/p&gt;

&lt;p&gt;screenlock: benutze initdisplay(2), Ã¶ffne das fenster(danke stuart morrow)&lt;/p&gt;

&lt;p&gt;Sekunden: Entfernen Sie Junk aus der Verwendung&lt;/p&gt;

&lt;p&gt;sort: Speicherleck beheben(danke Igor Boehm)&lt;/p&gt;

&lt;p&gt;src: arbeite auch an awk-skripten, siehe &amp;ldquo;src tal&amp;rdquo;(danke phil9)&lt;/p&gt;

&lt;p&gt;start, stop: Vermeiden Sie eine Nullliste in der Verkettung ohne Argumente. Verwenden Sie $ user&lt;/p&gt;

&lt;p&gt;Statistik: Fragen Sie Batterie und Temperatur nicht so oft ab, wenn Sie acpi verwenden&lt;/p&gt;

&lt;p&gt;syscall: verlass dich nicht auf. auf dem Weg sein(danke Silas)&lt;/p&gt;

&lt;p&gt;Test: Ausdruck Parser korrigieren&lt;/p&gt;

&lt;p&gt;text2post: ÃœberprÃ¼fen Sie den Schriftindex auf einen Bereich auÃŸerhalb des Bereichs&lt;/p&gt;

&lt;p&gt;Tweak: UnterstÃ¼tzung Showdata Plumb Action(danke Sirjofri)&lt;/p&gt;

&lt;p&gt;upas/*: bereinige mkfiles(danke amavect)&lt;/p&gt;

&lt;p&gt;upas/*: mkfile Probleme behoben(danke amavect)&lt;/p&gt;

&lt;p&gt;upas/common: Bibliothek auf &amp;lsquo;mk clean&amp;rsquo; lÃ¶schen&lt;/p&gt;

&lt;p&gt;upas/fs/mbox.c: Behebung eines kosmetischen Tippfehlers&lt;/p&gt;

&lt;p&gt;upas/fs: vertauschtes Argument, toter Code behoben&lt;/p&gt;

&lt;p&gt;upas/marshal: fÃ¼ge -S saveto hinzu, um ausgehende E-Mails zu speichern, behebe -F&lt;/p&gt;

&lt;p&gt;upas/marshal: nicht vorhandenen Speicherordner korrekt behandeln(danke sirjofri)&lt;/p&gt;

&lt;p&gt;upas/marshal: benutze login anstelle von user(danke sirjofri)&lt;/p&gt;

&lt;p&gt;upas/ml: BerÃ¼hren Sie das Bildmaterial&lt;/p&gt;

&lt;p&gt;upas/runq: bring -a zurÃ¼ck&lt;/p&gt;

&lt;p&gt;upas/runq: Tippfehler behoben&lt;/p&gt;

&lt;p&gt;upas/runq: UnterstÃ¼tzt die parallele Warteschlangenverarbeitung, drop -a&lt;/p&gt;

&lt;p&gt;upas/runq: Code bereinigen, Fehlerbehandlung beheben.&lt;/p&gt;

&lt;p&gt;upas/send: fÃ¼ge \ n zum Fehler in verweigern() hinzu(danke josuah)&lt;/p&gt;

&lt;p&gt;upas/vf: MIME-Grenze von temporÃ¤ren Anhangsdateien ausschlieÃŸen&lt;/p&gt;

&lt;p&gt;upas/vf: Installiere den Formatbezeichner% Ï„&lt;/p&gt;

&lt;p&gt;upas/vf: Debugging-Druckanweisungen entfernen&lt;/p&gt;

&lt;p&gt;upas: mk nuke reparieren&lt;/p&gt;

&lt;p&gt;upas: mache &amp;lsquo;all&amp;rsquo; zum Standardziel&lt;/p&gt;

&lt;p&gt;vmx: Allokationslecks beheben&lt;/p&gt;

&lt;p&gt;vmx: Option -D hinzufÃ¼gen, um Debug-Meldungen zu aktivieren. Verwenden Sie vmdebug fÃ¼r nicht schwerwiegende &amp;ldquo;Fehler&amp;rdquo;.&lt;/p&gt;

&lt;p&gt;vmx: FÃ¼gen Sie das Flag -v | -w hinzu, um das Verhalten beim Erstellen von Fenstern zu steuern&lt;/p&gt;

&lt;p&gt;vmx: FÃ¼ge fmt-ÃœberprÃ¼fung hinzu, behebe fmt-Fehler, entferne Duplikate fÃ¼r vmdebug&lt;/p&gt;

&lt;p&gt;vmx: bereinige mksegment, memset nur wenn segment vorhanden ist(devsegment lÃ¶scht neue)&lt;/p&gt;

&lt;p&gt;vmx: Maskiert die Bits 0: 2 und 24:30 von pci CONFIG_ADDRESS beim Lesen&lt;/p&gt;

&lt;p&gt;vmx: nanosec(): Nicht unterbrechbare temporÃ¤re Fehler beheben, fasthz nur einmal nach xstart zuweisen&lt;/p&gt;

&lt;p&gt;vmx: Reduzieren Sie die CPU-Last, indem Sie die NOP-Schleife entfernen&lt;/p&gt;

&lt;p&gt;vnc: Ich mag dein Gesicht nicht.&lt;/p&gt;

&lt;p&gt;vncv: Wenn Sie frÃ¼here Ã„nderungen rÃ¼ckgÃ¤ngig machen, ist eine weitere Ãœberarbeitung erforderlich&lt;/p&gt;

&lt;p&gt;vncv: ordne Kaltgr NICHT Meta zu, fÃ¼ge Mod4(Super) als Extra-SchlÃ¼ssel, der stattdessen verwendet werden soll&lt;/p&gt;

&lt;p&gt;vncv: WÃ¤hlen Sie einen von uns unterstÃ¼tzten Authentifizierungstyp aus&lt;/p&gt;

&lt;p&gt;vt: Verbessern Sie das Chording-Verhalten&lt;/p&gt;

&lt;p&gt;vt: rfork Umgebungsvariablen(danke fshahriar)&lt;/p&gt;

&lt;p&gt;Webcookies: Entfernen Sie den umstÃ¤ndlichen benutzerdefinierten Datums-Parser&lt;/p&gt;

&lt;p&gt;WHOIS: UnterdrÃ¼cken Sie fehende Deteifehler (danke kivik)&lt;/p&gt;

&lt;p&gt;winwatch: immer reflow wenn mÃ¶glich(danke telephil9)&lt;/p&gt;

&lt;h2&gt;DOKUMENTATION&lt;/h2&gt;

&lt;p&gt;acme(1): Verweise auf entsprechende Manpages hinzufÃ¼gen&lt;/p&gt;

&lt;p&gt;acmemail(1): Nail =&gt; Mail&lt;/p&gt;

&lt;p&gt;Audio(1): Behebung eines kleinen Tippfehlers.&lt;/p&gt;

&lt;p&gt;Audio(1): Es ist jetzt 2021&lt;/p&gt;

&lt;p&gt;CPU(1): Siehe oexportfs(4)&lt;/p&gt;

&lt;p&gt;ctime(2): fÃ¼ge tmdate(2) zu &amp;ldquo;see also&amp;rdquo; hinzu&lt;/p&gt;

&lt;p&gt;dd(1): Manpage aktualisieren, um sie an das Programm anzupassen&lt;/p&gt;

&lt;p&gt;mothra(1): eu-vorschriften verlangen, dass wir offenlegen, dass wir suchanfragen an duckduckgo senden.&lt;/p&gt;

&lt;p&gt;9boot(8): Aktualisieren Sie das Handbuch, um Ã„nderungen in der Suchreihenfolge des Efi Loader widerzuspiegeln&lt;/p&gt;

&lt;p&gt;9pfid(2): document struct Qid(danke sirjofri)&lt;/p&gt;

&lt;p&gt;fplot(1): benutze abs()&lt;/p&gt;

&lt;p&gt;import(4): siehe oexportfs(4)&lt;/p&gt;

&lt;p&gt;vmx(3): Behebung eines kleinen Tippfehlers&lt;/p&gt;

&lt;p&gt;nusb(4): Tippfehler korrigieren&lt;/p&gt;

&lt;p&gt;Marschall(1): Fixbeispiel: upas/mail -&gt; mail(danke fulton)&lt;/p&gt;

&lt;p&gt;Maus(3): Dokument &amp;ldquo;scrollswap&amp;rdquo; ctl Nachricht, Stil ein wenig korrigieren(danke umbraticus)&lt;/p&gt;

&lt;p&gt;mp(2): korrekte Dokumentation der Fehlerbehandlung(danke LordCreepity)&lt;/p&gt;

&lt;p&gt;nan(2): Dokument isInf(x, 0) stimmt mit + âˆž und -âˆž Ã¼berein&lt;/p&gt;

&lt;p&gt;newuser(8): Verweis auf falschen Dateiserver-Konsolenbefehl korrigiert&lt;/p&gt;

&lt;p&gt;plan9.ini(8): document * nohpet = option&lt;/p&gt;

&lt;p&gt;plan9.ini(8): document * nomtrr = und ordne die Tabelle&lt;/p&gt;

&lt;p&gt;pop3(1): Schreiboptionen konsistent&lt;/p&gt;

&lt;p&gt;rio(4): listet die FensterzustÃ¤nde in der richtigen Reihenfolge auf(danke umbracticus)&lt;/p&gt;

&lt;p&gt;Sega(1): SchlÃ¼ssel reparieren(danke Bigato)&lt;/p&gt;

&lt;p&gt;tmdate(2): korrektes Beispiel in der Manpage&lt;/p&gt;

&lt;p&gt;tmdate(2): Fehler beim(p) ass&lt;/p&gt;

&lt;p&gt;tmdate(2): LÃ¼ge entfernen&lt;/p&gt;

&lt;p&gt;troff2png(1): Manpage hinzufÃ¼gen&lt;/p&gt;

&lt;p&gt;upasfs(4): kleine Tippfehler beheben(danke igor)&lt;/p&gt;

&lt;p&gt;vmx(1): vmxgdb standardmÃ¤ÃŸig erstellen, ebenfalls bereinigen&lt;/p&gt;

&lt;p&gt;vt(1): optionales Befehlsargument dokumentieren(danke sl)&lt;/p&gt;

&lt;p&gt;zerotrunc(8): Manpage hinzufÃ¼gen&lt;/p&gt;

&lt;h2&gt;ANDERE&lt;/h2&gt;

&lt;p&gt;legal: mit neuer lizenz: mit&lt;/p&gt;

&lt;p&gt;/lib/keyboard: AnfÃ¼hrungszeichen unter(danke sirjofri)&lt;/p&gt;

&lt;p&gt;/lib/keyboard: fÃ¼ge Finger und weitere Pfeile hinzu(danke umbraticus)&lt;/p&gt;

&lt;p&gt;Schriftart/Terminus: Sie kÃ¶nnen keine Schriftart ausfÃ¼hren, dumm&lt;/p&gt;

&lt;p&gt;VermÃ¶gen: SATAN&lt;/p&gt;

&lt;p&gt;VermÃ¶gen: Das hÃ¤ngt davon ab, wie Sie native definieren. - Andre Garzia&lt;/p&gt;

&lt;p&gt;kbmap: UnterstÃ¼tzung fÃ¼r neo2 kbmak hinzufÃ¼gen(danke jstsmthrgk)&lt;/p&gt;

&lt;p&gt;kbmap: fÃ¼ge einen fehlenden SchlÃ¼ssel zur tÃ¼rkischen Keymap hinzu(danke kemal)&lt;/p&gt;

&lt;p&gt;kbmap: tÃ¼rkische Keymap hinzufÃ¼gen(danke Kemal)&lt;/p&gt;

&lt;p&gt;kbmap: kroatische kbmap hinzufÃ¼gen(danke skerbergs)&lt;/p&gt;

&lt;p&gt;kbmap: lettische keymap hinzufÃ¼gen(danke freddy)&lt;/p&gt;

&lt;p&gt;kbmap: Vermeiden Sie die Division durch Null, wenn das Fenster zu klein wird&lt;/p&gt;

&lt;p&gt;kbmap: Finnische kbmap aktualisieren: Â¤ auf Shift + 4 korrigieren und weitere AltGr-Varianten hinzufÃ¼gen&lt;/p&gt;

&lt;p&gt;Klempner/Basic: Griff Tga, WAV, Au, Mid und Mus&lt;/p&gt;

&lt;p&gt;Profil: Erstellen Sie kein $ wsys, wenn es nicht vorhanden ist&lt;/p&gt;

&lt;p&gt;theo: falsch.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://9front.org/img/mitfruchtgeschmack.back.png" alt="back" /&gt;&lt;/p&gt;
 </description>
        </item>

        <item>
            <title><![CDATA[9FRONT "EMAILSCHADEN" RELEASED]]></title>
            <author><![CDATA[sl@noreply.cat-v.org (sl)]]></author>
            <link>http://9front.org:80/releases/2020/10/19/0/</link>
            <guid isPermaLink="true">http://9front.org:80/releases/2020/10/19/0/</guid>
            <pubDate>Wed, 06 Apr 2022 17:15:37 -0400</pubDate>
            <description> &lt;p&gt;&lt;img src="http://9front.org/img/emailschaden.front.png" alt="front 9FRONT &amp;quot;EMAILSCHADEN&amp;quot; front" /&gt;&lt;/p&gt;

&lt;h2&gt;DOWNLOAD&lt;/h2&gt;

&lt;p&gt;Multiple installation media are provided for PC and Raspberry Pi. For
PC, burn an .iso file to CD, or dd it directly to USB media.  For
Raspberry Pi, dd an .img file directly to sdcard.&lt;/p&gt;

&lt;p&gt;The pi.img file can be used for Raspberry Pi 1, 2, and 3.  The pi3.img
file can be used for Raspberry Pi 3 and 4.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-8013.d9e940a768d1.386.iso.gz.torrent"&gt;http://9front.org/iso/9front-8013.d9e940a768d1.386.iso.gz.torrent&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-8013.d9e940a768d1.amd64.iso.gz.torrent"&gt;http://9front.org/iso/9front-8013.d9e940a768d1.amd64.iso.gz.torrent&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-8013.d9e940a768d1.pi.img.gz.torrent"&gt;http://9front.org/iso/9front-8013.d9e940a768d1.pi.img.gz.torrent&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-8013.d9e940a768d1.pi3.img.gz.torrent"&gt;http://9front.org/iso/9front-8013.d9e940a768d1.pi3.img.gz.torrent&lt;/a&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;   cpu% sha1sum -2 256 9front-8013*.gz
   e8a224a8220e472593dd17a2479ba5a9497f6790cac23de2522400930a4dd626      9front-8013.d9e940a768d1.386.iso.gz
   7771be88148560a8e59283a93c98b9ecc37172e7a2acff356f12e64aac9e5c77      9front-8013.d9e940a768d1.amd64.iso.gz
   a63a87272258b17fdd24f2807252134aee311af243ec8274f715f8dcf1b86f1f      9front-8013.d9e940a768d1.pi.img.gz
   5b5baa5c3fd0b69a71aaa7bca867508210fac25d8ad17d76b97d8aece1c9f3dd      9front-8013.d9e940a768d1.pi3.img.gz
&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;MIRRORS&lt;/h2&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/"&gt;http://9front.org/iso/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://r-36.net/9front/"&gt;http://r-36.net/9front/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://lux.felloff.net/usr/cinap_lenrek/9front/"&gt;http://lux.felloff.net/usr/cinap_lenrek/9front/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;MERCURIAL REPOSITORY&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://code.9front.org/hg/plan9front"&gt;https://code.9front.org/hg/plan9front&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;DASH 1 MANUAL&lt;/h2&gt;

&lt;p&gt;&lt;a href="http://fqa.9front.org/dash1.emailschaden.pdf"&gt;http://fqa.9front.org/dash1.emailschaden.pdf&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;dash 1 and man pages in print: &lt;a href="http://9front.org/propaganda/books"&gt;http://9front.org/propaganda/books&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;THANKS&lt;/h2&gt;

&lt;p&gt;presotto&lt;/p&gt;

&lt;h2&gt;NEW IN THIS RELEASE&lt;/h2&gt;

&lt;p&gt;New date/time formaring/parsing API in libc&lt;/p&gt;

&lt;p&gt;Kernel updates for Raspberry PI4 8GB model&lt;/p&gt;

&lt;p&gt;Intel wireless driver now supports 8000 and 9000 family cards&lt;/p&gt;

&lt;p&gt;New Thinkpads now fully supported: T480, T495&lt;/p&gt;

&lt;p&gt;Big kernel PCI code overhaul&lt;/p&gt;

&lt;h2&gt;KERNEL AND DRIVERS&lt;/h2&gt;

&lt;p&gt;archacpi: use 64-bit uvlong for physical addresses&lt;/p&gt;

&lt;p&gt;audioac97: use 64-bit physical addresses&lt;/p&gt;

&lt;p&gt;audiohda: use 64-bit physical addresses, check pci membar types&lt;/p&gt;

&lt;p&gt;audiohda: use PCIWADDR() instead of PADDR(), handle 64-bit dma addresses&lt;/p&gt;

&lt;p&gt;audiosb16: cleanup audioprobe(), cast ISAConf.port to ulong&lt;/p&gt;

&lt;p&gt;aux/acpi: connect EC region handler, fixes battery status on eeepc 1000px (thanks Peter Kosyh)&lt;/p&gt;

&lt;p&gt;aux/acpi: forgot to commit -p option&lt;/p&gt;

&lt;p&gt;aux/acpi: write a man page, fix usage, call threadexits&lt;/p&gt;

&lt;p&gt;aux/vga: eepc igfx support (thanks p.kosyh)&lt;/p&gt;

&lt;p&gt;aux/vga: use 64-bit physical addresses for pci membar&lt;/p&gt;

&lt;p&gt;bcm64: bring pci code in line with the pc/pc64&lt;/p&gt;

&lt;p&gt;bcm64: fix usb xhci controller on pi4 8GB variant (thanks richard miller)&lt;/p&gt;

&lt;p&gt;bcm64: handle 8GB of physical memory for raspberry pi4&lt;/p&gt;

&lt;p&gt;bcm64: increase maximum segment size to 8GB&lt;/p&gt;

&lt;p&gt;bcm64: use 64-bit uvlong physical address in vmap()&lt;/p&gt;

&lt;p&gt;bcm64: use uvlong for ISAConf.port&lt;/p&gt;

&lt;p&gt;bootrc: allow kbmap to be set via plan9.ini (thanks Aaron Bieber)&lt;/p&gt;

&lt;p&gt;devether: print Ether.port as 64-bit uvlong&lt;/p&gt;

&lt;p&gt;devip: fix parseipmask() prototype in ip.h&lt;/p&gt;

&lt;p&gt;devip: implement ipv6 support in ipmux packet filter&lt;/p&gt;

&lt;p&gt;devip: pick less surprising interface address in header for incoming UDP packets&lt;/p&gt;

&lt;p&gt;devlml: use 64-bit physical addresses&lt;/p&gt;

&lt;p&gt;devmnt: print chanpath for unexpected reply tag&lt;/p&gt;

&lt;p&gt;devpccard: use 64-bit physical addresses&lt;/p&gt;

&lt;p&gt;devpnp, devether, devusb: cast ISAConf.port to uvlong (for 32-bit implementations)&lt;/p&gt;

&lt;p&gt;devpnp: print pci membar as 64-bit uvlong&lt;/p&gt;

&lt;p&gt;devusb: keep isochronous ep-&gt;hz consistent with maxpkt, ntds and pollival&lt;/p&gt;

&lt;p&gt;devusb: print Hci.port as 64-bit uvlong&lt;/p&gt;

&lt;p&gt;devvga: use 64-bit physical addresses for framebuffer&lt;/p&gt;

&lt;p&gt;etherbcm: handle 64-bit host addresses, use PCIWADDR() instead of PADDR()&lt;/p&gt;

&lt;p&gt;etheriwl: add Wireless 8260 card&lt;/p&gt;

&lt;p&gt;etheriwl: add for Intel Wireless-AC 9260&lt;/p&gt;

&lt;p&gt;etheriwl: add support for Intel Wireless AC 8265&lt;/p&gt;

&lt;p&gt;etheriwl: delay before crystal calibration&lt;/p&gt;

&lt;p&gt;etheriwl: don&amp;rsquo;t break controller on command flush timeout&lt;/p&gt;

&lt;p&gt;etheriwl: remove stations &lt;em&gt;after&lt;/em&gt; disabling binding quotas, drain all queues in rxoff7000()&lt;/p&gt;

&lt;p&gt;kbdfs: add a compose sequence to type ⑨&lt;/p&gt;

&lt;p&gt;kbdfs: allow &gt;16 bit runes in /lib/keyboard&lt;/p&gt;

&lt;p&gt;kernel: don&amp;rsquo;t strip binaries in bootfs.paq&lt;/p&gt;

&lt;p&gt;kernel: fix Abind cyclic reference and mounthead leaks (thanks Alex Musolino)&lt;/p&gt;

&lt;p&gt;kernel: get rid of unused ucallocb&lt;/p&gt;

&lt;p&gt;kernel: make segments non-executable when icache is not maintained&lt;/p&gt;

&lt;p&gt;kernel: massive pci code rewrite&lt;/p&gt;

&lt;p&gt;kernel: remove unused segment argument in freepte()&lt;/p&gt;

&lt;p&gt;kernel: segflush() needs to flush tlb of other processes&lt;/p&gt;

&lt;p&gt;nusb/lib: use fmtprint for the entire dump to be printed out&lt;/p&gt;

&lt;p&gt;nusb/serial: add ids for FT230X (thanks mischief)&lt;/p&gt;

&lt;p&gt;pc, pc64: implement 64-bit pci membar support&lt;/p&gt;

&lt;p&gt;pc, pc64: remove mystery &amp;ldquo;type&amp;rdquo; bits in pcicfgrw*raw() (fixes qemu, thanks mischief)&lt;/p&gt;

&lt;p&gt;pc, pc64: use 64-bit physical addresses for ISAConf.port&lt;/p&gt;

&lt;p&gt;pc, pc64: use 64-bit physical addresses for vmap() and upaalloc()&lt;/p&gt;

&lt;p&gt;pc, xen: make PAT support optional (for xen)&lt;/p&gt;

&lt;p&gt;pc64: disable interrupts in mmuwalk() for checkmmu()&lt;/p&gt;

&lt;p&gt;pc/ether*: use 64-bit physical addresses and check pci membar types and sizes&lt;/p&gt;

&lt;p&gt;pc/pcmciamodem: cast i/o port to ulong&lt;/p&gt;

&lt;p&gt;pc/pmmc: check pci membar type&lt;/p&gt;

&lt;p&gt;pc/vga*: use 64-bit physical addresses and check pci membar types and sizes&lt;/p&gt;

&lt;p&gt;pc/wavelan: print Ether.port as 64-bit value&lt;/p&gt;

&lt;p&gt;sd53c8xx: use 64-bit physical addresses&lt;/p&gt;

&lt;p&gt;sdiahci: use 64-bit physical addresses&lt;/p&gt;

&lt;p&gt;sdiahci: accept AHCI controllers from ASMedia vendor id (thanks mischief)&lt;/p&gt;

&lt;p&gt;sdmv50xx: use 64-bit physical addresses and check pci membar type&lt;/p&gt;

&lt;p&gt;sdnvme: handle machines with more cpu&amp;rsquo;s than submit queues (thanks mischief)&lt;/p&gt;

&lt;p&gt;sdnvme: make sure pci membar type is memory&lt;/p&gt;

&lt;p&gt;sdnvme: use PCIWADDR() instead of PADDR()&lt;/p&gt;

&lt;p&gt;sdodin: use 64-bit physical addresses and check pci membar type&lt;/p&gt;

&lt;p&gt;uartaxp: use 64-bit physical addresses and check pci membar types&lt;/p&gt;

&lt;p&gt;usbehcipc: use 64-bit physical addresses and check pci membar type&lt;/p&gt;

&lt;p&gt;usbuhci: make sure pci membar type is i/o&lt;/p&gt;

&lt;p&gt;usbxhci: implement isochronous in transfers (for webcam, audio recording)&lt;/p&gt;

&lt;p&gt;usbxhci: use 64-bit physical addresses&lt;/p&gt;

&lt;p&gt;wifi: add packet timestamping support&lt;/p&gt;

&lt;h2&gt;COMPILERS AND DEBUGGERS&lt;/h2&gt;

&lt;p&gt;7c: fix wrong type on OASxxx operations&lt;/p&gt;

&lt;p&gt;cc: promote integer constants according to c99 spec.&lt;/p&gt;

&lt;p&gt;cpp: fix mutually recursive macros&lt;/p&gt;

&lt;h2&gt;LIBRARIES&lt;/h2&gt;

&lt;p&gt;ape/ctype.h: add isblank, fix functions (thanks staalmannen)&lt;/p&gt;

&lt;p&gt;ape/libdraw: add missing eenter (thanks phil9)&lt;/p&gt;

&lt;p&gt;ape/limits.h: fix typo in (U)LLONG_MAX&lt;/p&gt;

&lt;p&gt;ape: add missing rerrstr.c&lt;/p&gt;

&lt;p&gt;ape: make libplumb available under ape.&lt;/p&gt;

&lt;p&gt;ape: simplify mkfile (thanks amavect)&lt;/p&gt;

&lt;p&gt;ape: stdio.h: correct return type of putc&lt;/p&gt;

&lt;p&gt;ape: stdio: fix warnings, make code more standard&lt;/p&gt;

&lt;p&gt;libaml: fix fault when the second operand of comparison cannot be converted&lt;/p&gt;

&lt;p&gt;libc: introduce new time and date apis.&lt;/p&gt;

&lt;p&gt;libc: ignore &amp;lsquo;?&amp;rsquo; in date format strings&lt;/p&gt;

&lt;p&gt;libc: make yday 0-based, as docs suggest&lt;/p&gt;

&lt;p&gt;libc: tmparse: should ignore leading whitespace&lt;/p&gt;

&lt;p&gt;libc: tmparse: put in local timezone hack&lt;/p&gt;

&lt;p&gt;libc: tm2sec: clear new fields in tm&lt;/p&gt;

&lt;p&gt;libndb: order subnets by prefix length for ndbipinfo() lookups&lt;/p&gt;

&lt;p&gt;libplumb: add missing mkfile&lt;/p&gt;

&lt;p&gt;libttf: check directory() result&lt;/p&gt;

&lt;p&gt;libttf: fix cmap subtable offset type and rank UCS-4 higher (more codepoints). fixes runes &gt; 0xffff&lt;/p&gt;

&lt;h2&gt;PROGRAMS&lt;/h2&gt;

&lt;p&gt;abaco: add fonts.h to HFILES in mkfile (thanks eekee)&lt;/p&gt;

&lt;p&gt;acme/win: add trailing space to window tag&lt;/p&gt;

&lt;p&gt;acme/win: fix window recreation command&lt;/p&gt;

&lt;p&gt;acme: add missing logf.c&lt;/p&gt;

&lt;p&gt;acme: implement &amp;lsquo;scratch&amp;rsquo; ctl command (thanks Drew DeVault)&lt;/p&gt;

&lt;p&gt;acme: implement position-dependent scroll-wheel scrolling&lt;/p&gt;

&lt;p&gt;acme: import changes from plan9port (thanks jxy)&lt;/p&gt;

&lt;p&gt;acme: import event log from plan9port (thanks fshahriar)&lt;/p&gt;

&lt;p&gt;audio/flacdec: add -s SECONDS option to seek before decoding&lt;/p&gt;

&lt;p&gt;audio/mp3dec: add -s SECONDS option&lt;/p&gt;

&lt;p&gt;audio/mp3dec: mad timer duration is all wrong, use samples instead&lt;/p&gt;

&lt;p&gt;audio/oggdec: add -s SECONDS option to seek before decoding&lt;/p&gt;

&lt;p&gt;audio/oggdec: allow -s 0&lt;/p&gt;

&lt;p&gt;audio/oggdec: give it enough chance to seek from the start, where first seek might be still too close to the beginning of the file&lt;/p&gt;

&lt;p&gt;aux/cpuid: flush instruction cache of after patching trampoline&lt;/p&gt;

&lt;p&gt;aux/getflags: fix named rune arguments.&lt;/p&gt;

&lt;p&gt;aux/ms2, aux/na: fix warnings&lt;/p&gt;

&lt;p&gt;aux/trampoline: Implement inactivity timeout (-t option)&lt;/p&gt;

&lt;p&gt;cwfs: update mtime and qid.vers for directory on rename&lt;/p&gt;

&lt;p&gt;date: use new libc date apis.&lt;/p&gt;

&lt;p&gt;dc: increase exponent limit (thanks unboe, lyndon)&lt;/p&gt;

&lt;p&gt;deroff: fix out-of-bounds access if runes above 0X80 are inside EQ clauses (thanks mmnmnnmnmm, via plan9port)&lt;/p&gt;

&lt;p&gt;diff: support unified diff via -u&lt;/p&gt;

&lt;p&gt;faces: remove log support&lt;/p&gt;

&lt;p&gt;g: add &amp;lsquo;.hs&amp;rsquo; and &amp;lsquo;mkfile&amp;rsquo; to the walk. (thanks joe9)&lt;/p&gt;

&lt;p&gt;games/4s: increase thread size (thanks majiru)&lt;/p&gt;

&lt;p&gt;games/nes: workaround for truncated chr&lt;/p&gt;

&lt;p&gt;hjfs: update mtime and qid.vers for directory on rename&lt;/p&gt;

&lt;p&gt;htmlroff: fix out of bounds access (thanks Rei-sen, via plan9port)&lt;/p&gt;

&lt;p&gt;imap4d: fix missing return in %δ format of Dfmt()&lt;/p&gt;

&lt;p&gt;imap4d: fix mkfile to have the correct default target&lt;/p&gt;

&lt;p&gt;imap4d: get rid of unixdate/unixfrom handling&lt;/p&gt;

&lt;p&gt;imap4d: reject invalid month in date2tm()&lt;/p&gt;

&lt;p&gt;imap4d: respect errors from read(), remove debug prints&lt;/p&gt;

&lt;p&gt;ip/6in4: request ipv4 packets only in ipmux filter&lt;/p&gt;

&lt;p&gt;ip/cifsd: add FIND_FIRST2 SMB_FIND_FILE_FULL_DIRECTORY_INFO info level&lt;/p&gt;

&lt;p&gt;ip/ftpd: handle &amp;ldquo;allo&amp;rdquo; command by treating it as a no-op&lt;/p&gt;

&lt;p&gt;ip/httpd: fix &amp;lsquo;mk nuke&amp;rsquo;&lt;/p&gt;

&lt;p&gt;ip/tinc: run script sub-shell in its own environment&lt;/p&gt;

&lt;p&gt;ip/torrent: fix size check in 64-bit &amp;ldquo;v&amp;rdquo; unpack (thanks pr)&lt;/p&gt;

&lt;p&gt;ip/torrent: try harder allocating ports&lt;/p&gt;

&lt;p&gt;ndb/dns: allow multiple txt, nullrr, cert, key and sig records (thanks kvik)&lt;/p&gt;

&lt;p&gt;ndb/dns: mark ns record authoritative when in our area for delegation&lt;/p&gt;

&lt;p&gt;ndb/dnsdebug: add -c flag to debug caching dns server behaviour&lt;/p&gt;

&lt;p&gt;nedmail: don&amp;rsquo;t try to shoot down subcommand on interrupt&lt;/p&gt;

&lt;p&gt;png: remove bogus chanlen warning&lt;/p&gt;

&lt;p&gt;pre-lib9p servers: fix incorrect Tversion handling&lt;/p&gt;

&lt;p&gt;ptrap: fix /env/status always being set on main process exit&lt;/p&gt;

&lt;p&gt;qball: remove unused #include &amp;lt;stdio.h&gt;&lt;/p&gt;

&lt;p&gt;ramfs: make Elocked[] more consistent (thanks fazlul)&lt;/p&gt;

&lt;p&gt;rc-httpd: fix invalid test(1) invocation in dir-index&lt;/p&gt;

&lt;p&gt;rc: avoid forking for final command that has variable assignments (to get $apid right)&lt;/p&gt;

&lt;p&gt;rc: avoid stat calls for directory globbing&lt;/p&gt;

&lt;p&gt;replica: fix mkfile script installation (thanks Amavect)&lt;/p&gt;

&lt;p&gt;rio: move the code for &amp;lsquo;send&amp;rsquo; into a function&lt;/p&gt;

&lt;p&gt;seconds: use new libc date api&lt;/p&gt;

&lt;p&gt;seconds: tolerate trailing whitespace in dates&lt;/p&gt;

&lt;p&gt;snoopy: add ipmux pseudo protocol&lt;/p&gt;

&lt;p&gt;sshfs: update usage text to match man page&lt;/p&gt;

&lt;p&gt;sshnet: prevent ssh process from keeping the mount alive&lt;/p&gt;

&lt;p&gt;syscall: utility overhaul&lt;/p&gt;

&lt;p&gt;syscall: don&amp;rsquo;t append &amp;lsquo;\n&amp;rsquo; to the output&lt;/p&gt;

&lt;p&gt;syscall: fix build problem caused by stale tab.h&lt;/p&gt;

&lt;p&gt;upas/fs: extract proper date from unix header&lt;/p&gt;

&lt;p&gt;upas/fs: fix handing of multi-line header fields (thanks theinicke)&lt;/p&gt;

&lt;p&gt;upas/fs: fix memory leak in ref822()&lt;/p&gt;

&lt;p&gt;upas/fs: fix truncation of plumb date&lt;/p&gt;

&lt;p&gt;upas/fs: fix wrong nparts field index (changed in previous commit)&lt;/p&gt;

&lt;p&gt;upas/fs: move unixheader handling to parseheaders()&lt;/p&gt;

&lt;p&gt;upas/fs: port date parsing to libc apis&lt;/p&gt;

&lt;p&gt;upas/fs: put date822 into the index, fix from and replyto handling&lt;/p&gt;

&lt;p&gt;upas/fs: remove now unused Mtrunc mimeflags constant&lt;/p&gt;

&lt;p&gt;upas/fs: remove unused function date822tounix&lt;/p&gt;

&lt;p&gt;upas/fs: use memchr() instead of strchr() in hdrlen()&lt;/p&gt;

&lt;p&gt;upas/fs: wait until the index becomes unlocked&lt;/p&gt;

&lt;p&gt;upas/fs: make imap debug logging less noisy&lt;/p&gt;

&lt;p&gt;upas/marshal: make attachment failure fatal&lt;/p&gt;

&lt;p&gt;upas: appendfolder(): don&amp;rsquo;t be picky about the timezone of ctime()&lt;/p&gt;

&lt;p&gt;upas: appendfolder(): skip the address from unix header before date&lt;/p&gt;

&lt;p&gt;upas: convert to tmdate, change timezone format&lt;/p&gt;

&lt;p&gt;upas: fix appendfolder timestamps (thanks umbraticus)&lt;/p&gt;

&lt;p&gt;window: fix error exit with the -m flag&lt;/p&gt;

&lt;p&gt;vmx: add Kmod4 key&lt;/p&gt;

&lt;p&gt;vmx: does not do well with certain fb widths, so restrict it&lt;/p&gt;

&lt;p&gt;vmx: set xstart to either nsec or cycles depending on what is available&lt;/p&gt;

&lt;p&gt;vmx: use &lt;em&gt;actual&lt;/em&gt; system kbmap&lt;/p&gt;

&lt;p&gt;vmx: use _tos-&gt;cyclefreq (thanks cinap)&lt;/p&gt;

&lt;p&gt;vmx: use cycles() instead of nsec() when possible&lt;/p&gt;

&lt;p&gt;vncv: implement rfb 3.8 protocol (thanks Iruatã)&lt;/p&gt;

&lt;h2&gt;DOCUMENTATION&lt;/h2&gt;

&lt;p&gt;9p(2): fix typo&lt;/p&gt;

&lt;p&gt;acme(1): document log file in manpage&lt;/p&gt;

&lt;p&gt;audio(1): add new -s SECONDS option&lt;/p&gt;

&lt;p&gt;ctime(2), tmdate(2): document ctime/tmparse incompatibility&lt;/p&gt;

&lt;p&gt;chdir(2): add reference to getwd(2) in SEE ALSO section&lt;/p&gt;

&lt;p&gt;cifsd(8): fix typo (thanks senthil)&lt;/p&gt;

&lt;p&gt;faces(1): remove bespoke date parser&lt;/p&gt;

&lt;p&gt;getwd(2): add reference to chdir(2) in SEE ALSO section&lt;/p&gt;

&lt;p&gt;graphics(2): fix typo&lt;/p&gt;

&lt;p&gt;ip(3): fix typo in manpage (thanks jstsmthrgk)&lt;/p&gt;

&lt;p&gt;mk9660(8): fix reference to proto file format&lt;/p&gt;

&lt;p&gt;tmdate(2): document tz field&lt;/p&gt;

&lt;p&gt;tmdate(2): fix missing arg, fix formatting (thanks joe9)&lt;/p&gt;

&lt;p&gt;tmdate(2): fix examples, stale references (thanks deuteron)&lt;/p&gt;

&lt;p&gt;tmdate(2): fix mistakes in prototype (thanks moody)&lt;/p&gt;

&lt;p&gt;tmdate(2): fix name of tm struct&lt;/p&gt;

&lt;p&gt;tmdate(2): fix typo (thanks mveety)&lt;/p&gt;

&lt;p&gt;torrent(1): update url in examples section&lt;/p&gt;

&lt;p&gt;walk(1): clarify how -n argument works (thanks umbraticus)&lt;/p&gt;

&lt;p&gt;walk(1): improve wording, formatting&lt;/p&gt;

&lt;p&gt;walk(1): fix typos&lt;/p&gt;

&lt;h2&gt;OTHER&lt;/h2&gt;

&lt;p&gt;/lib/rob, /lib/rsc, /lib/theo: So it sounds like everyone is in favor of the entire generics proposal and all the semantics, and all we have left to hammer out is the bracket characters? Do I have that right?&lt;/p&gt;

&lt;p&gt;bullshit: decentralized ActivityPub&lt;/p&gt;

&lt;p&gt;&lt;img src="http://9front.org/img/emailschaden.back.png" alt="back" /&gt;&lt;/p&gt;
 </description>
        </item>

        <item>
            <title><![CDATA[9FRONT "PLAN9-HATERS" RELEASED]]></title>
            <author><![CDATA[sl@noreply.cat-v.org (sl)]]></author>
            <link>http://9front.org:80/releases/2020/05/28/0/</link>
            <guid isPermaLink="true">http://9front.org:80/releases/2020/05/28/0/</guid>
            <pubDate>Wed, 06 Apr 2022 17:15:25 -0400</pubDate>
            <description> &lt;p&gt;&lt;img src="http://9front.org/img/plan9haters.front.png" alt="front 9FRONT &amp;quot;PLAN9-HATERS front" /&gt;&lt;/p&gt;

&lt;h2&gt;DOWNLOAD&lt;/h2&gt;

&lt;p&gt;Multiple installation media are provided for PC and Raspberry Pi. For
PC, burn an .iso file to CD, or dd it directly to USB media.
For Raspberry Pi, dd an .img file
directly to sdcard.&lt;/p&gt;

&lt;p&gt;The pi.img file can be used for Raspberry Pi 1, 2, and 3.  The pi3.img
file can be used for Raspberry Pi 3 and 4.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-7781.38dcaeaa222c.386.iso.gz"&gt;http://9front.org/iso/9front-7781.38dcaeaa222c.386.iso.gz&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-7781.38dcaeaa222c.386.iso.gz.torrent"&gt;http://9front.org/iso/9front-7781.38dcaeaa222c.386.iso.gz.torrent&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-7781.38dcaeaa222c.amd64.iso.gz"&gt;http://9front.org/iso/9front-7781.38dcaeaa222c.amd64.iso.gz&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-7781.38dcaeaa222c.amd64.iso.gz.torrent"&gt;http://9front.org/iso/9front-7781.38dcaeaa222c.amd64.iso.gz.torrent&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-7781.38dcaeaa222c.pi.img.gz"&gt;http://9front.org/iso/9front-7781.38dcaeaa222c.pi.img.gz&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-7781.38dcaeaa222c.pi.img.gz.torrent"&gt;http://9front.org/iso/9front-7781.38dcaeaa222c.pi.img.gz.torrent&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-7781.38dcaeaa222c.pi3.img.gz"&gt;http://9front.org/iso/9front-7781.38dcaeaa222c.pi3.img.gz&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-7781.38dcaeaa222c.pi3.img.gz.torrent"&gt;http://9front.org/iso/9front-7781.38dcaeaa222c.pi3.img.gz.torrent&lt;/a&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;   cpu% sha1sum 9front-7781*.gz
   3c20a32558536f751673215d7f543f8e9b1946ed  9front-7781.38dcaeaa222c.386.iso.gz
   e58a3f7d67e3937593ae0bf8b8c0dc7ed47c7535  9front-7781.38dcaeaa222c.amd64.iso.gz
   038a7c343dcbe687b4aec4e7ad84daea9f304b8d  9front-7781.38dcaeaa222c.pi.img.gz
   eed089e5be64a34e668cc4cd376b7c96524d035a  9front-7781.38dcaeaa222c.pi3.img.gz
&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;MIRRORS&lt;/h2&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/"&gt;http://9front.org/iso/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://r-36.net/9front/"&gt;http://r-36.net/9front/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://felloff.net/usr/cinap_lenrek/9front.torrent"&gt;http://felloff.net/usr/cinap_lenrek/9front.torrent&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;MERCURIAL REPOSITORY&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://code.9front.org/hg/plan9front"&gt;https://code.9front.org/hg/plan9front&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;DASH 1 MANUAL&lt;/h2&gt;

&lt;p&gt;&lt;a href="http://fqa.9front.org/dash1.plan9haters.pdf"&gt;http://fqa.9front.org/dash1.plan9haters.pdf&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;dash 1 and man pages in print: &lt;a href="http://9front.org/propaganda/books"&gt;http://9front.org/propaganda/books&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;THANKS&lt;/h2&gt;

&lt;p&gt;qwx&lt;/p&gt;

&lt;h2&gt;NEW&lt;/h2&gt;

&lt;p&gt;*.386.iso    386    pc (more drivers)&lt;/p&gt;

&lt;p&gt;*.amd64.iso  amd64  pc (less drivers)&lt;/p&gt;

&lt;p&gt;*.pi.img     arm    paspberry pi 1, 2 and 3&lt;/p&gt;

&lt;p&gt;*.pi3.img    arm64  raspberry pi 3 and 4&lt;/p&gt;

&lt;h2&gt;KERNEL AND DRIVERS&lt;/h2&gt;

&lt;p&gt;9bootpxe: continues the war against random DHCPv6 DUIDs&lt;/p&gt;

&lt;p&gt;audiohda: add pci vid/did for AMD Raven HD Audio Controller (T495)&lt;/p&gt;

&lt;p&gt;aux/acpi, aux/apm: remove nopipe -i flag&lt;/p&gt;

&lt;p&gt;bcm: change ARGB32 to XRGB32 for framebuffer to avoid slow drawing&lt;/p&gt;

&lt;p&gt;bcm: fix software cursor avoidance for loadimage() case (thanks bitmapper)&lt;/p&gt;

&lt;p&gt;bcm: use extended small pages so XN bit can work&lt;/p&gt;

&lt;p&gt;bcm, bcm64: dancing to the drum of the linux clowns for device tree memory size detection (thanks kenji)&lt;/p&gt;

&lt;p&gt;bcm64: fix kernels cmpswap() function&lt;/p&gt;

&lt;p&gt;bootrc: fix wrong redirections after &amp;amp;&lt;/p&gt;

&lt;p&gt;bootrc: suppress error from grep if ethernet ifstats file is not found&lt;/p&gt;

&lt;p&gt;bootrc: fix comment typo (thanks Robert Ransom)&lt;/p&gt;

&lt;p&gt;bootrc: for wireless netbooting, set the WPA/WPA2 preshard key with wpapsk=password boot parameter&lt;/p&gt;

&lt;p&gt;cycv: a cyclone v kernel: fpga support, fix CONFADDR &lt;em&gt;NEW&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;cycv: add cycv kernel&lt;/p&gt;

&lt;p&gt;cycv: support for registers&lt;/p&gt;

&lt;p&gt;devcons: fix permissions for reboot and sysstat&lt;/p&gt;

&lt;p&gt;devcons: fix write length of writebintime() (thanks BurnZeZ)&lt;/p&gt;

&lt;p&gt;devdraw: fix topnwindows() panic when images are not windows (thanks aiju)&lt;/p&gt;

&lt;p&gt;devip: fix ifc recursive rlock() deadlock&lt;/p&gt;

&lt;p&gt;devip: fix packet loss when interface is wlocked&lt;/p&gt;

&lt;p&gt;devip: use the routing table for local source ip address selection&lt;/p&gt;

&lt;p&gt;devproc: cleanup procwrite size checks&lt;/p&gt;

&lt;p&gt;devproc: don&amp;rsquo;t allow /proc/$pid/ctl to be opens for reading&lt;/p&gt;

&lt;p&gt;devproc: fix syscalltrace read for ratrace&lt;/p&gt;

&lt;p&gt;devproc: make sure writewatchpt() doesnt overflow the watchpoint array&lt;/p&gt;

&lt;p&gt;devproc: return process id when reading /proc/n/ctl file&lt;/p&gt;

&lt;p&gt;devshr: unmount service on #σc/share/mount removal&lt;/p&gt;

&lt;p&gt;devswap: dont assume Proc* structures returned from proctab() are continuous&lt;/p&gt;

&lt;p&gt;ether8003: use physical addresses for ISAConfig ether-&gt;mem&lt;/p&gt;

&lt;p&gt;ether82543gc, ether82557, ethervirtio: do kproc() call ouside of spinlock&lt;/p&gt;

&lt;p&gt;ether82563: fix multicast for i210&lt;/p&gt;

&lt;p&gt;ether8390: remove unused variables&lt;/p&gt;

&lt;p&gt;ethercycv: add cycv ethernet driver&lt;/p&gt;

&lt;p&gt;ethercycv: dont spin on MDIO&lt;/p&gt;

&lt;p&gt;kernel: add missing FPillegal definition for kw and omap kernels&lt;/p&gt;

&lt;p&gt;kernel: add portable memory map code (port/memmap.c)&lt;/p&gt;

&lt;p&gt;kernel: avoid selecting the boot process in killbig()&lt;/p&gt;

&lt;p&gt;kernel: avoid useless mmu flushes, implement better wait condition for procflushmmu()&lt;/p&gt;

&lt;p&gt;kernel: cleanup makefile for $CONF.$O target&lt;/p&gt;

&lt;p&gt;kernel: cleanup the software mouse cursor mess&lt;/p&gt;

&lt;p&gt;kernel: fix checkpages() and segflush() on SG_PHYSICAL type segments&lt;/p&gt;

&lt;p&gt;kernel: fix multiple devproc bugs and pid reuse issues&lt;/p&gt;

&lt;p&gt;kernel: implement portable userinit() and simplify process creation&lt;/p&gt;

&lt;p&gt;kernel: improve diagnostics by reversing the roles of Proc.parentpid and Proc.parent&lt;/p&gt;

&lt;p&gt;kernel: improve page reclaimation strategy and locking&lt;/p&gt;

&lt;p&gt;kernel: make sure we wont run into the tos when copying exec() arguments&lt;/p&gt;

&lt;p&gt;kernel: remove relics of CPU &amp;lsquo;load balancing&amp;rsquo; policy in scheduler (thanks Robert Ransom)&lt;/p&gt;

&lt;p&gt;kernel: remove scheddump() comment for delay() in */fns.h&lt;/p&gt;

&lt;p&gt;kernel: remove unused mem2bl() prototype&lt;/p&gt;

&lt;p&gt;kernel: remove unused macro from chan.c&lt;/p&gt;

&lt;p&gt;kernel: simplify exec()&lt;/p&gt;

&lt;p&gt;pc, pc64: clear debug watchpoint registers on exec and exit&lt;/p&gt;

&lt;p&gt;pc, pc64: do page attribute table (PAT) init early in cpuidentify()&lt;/p&gt;

&lt;p&gt;pc, pc64: fix cputemp decimal handling in amd10temprd (thanks Robert Ransom)&lt;/p&gt;

&lt;p&gt;pc, pc64: fix wrong mtrr physmask() for machines without extended address size msr&lt;/p&gt;

&lt;p&gt;pc, pc64: ignore the 64-bit bar flag when reserving membar&lt;/p&gt;

&lt;p&gt;pc, pc64: add new memory map code&lt;/p&gt;

&lt;p&gt;pc, pc64: remove &amp;ldquo;got unassigned irq&amp;rdquo; prints&lt;/p&gt;

&lt;p&gt;pc, pc64: use softscreen double buffering for *bootscreen= framebuffer&lt;/p&gt;

&lt;p&gt;pc: fix ldt memory leak in procsetup()&lt;/p&gt;

&lt;p&gt;pc: fix mp boot regression due mistake in mkfile&lt;/p&gt;

&lt;p&gt;pc: replace duplicated and broken mmu flush code in vunmap()&lt;/p&gt;

&lt;p&gt;pc: zero rampage() memory (thanks LordCreepity)&lt;/p&gt;

&lt;p&gt;pc64: adapt vgaradeon driver to 64-bit (thanks Robert Ransom)&lt;/p&gt;

&lt;p&gt;pc64: enable uartpci (thanks taw9 for testing)&lt;/p&gt;

&lt;p&gt;pc64: remove rampage() nil check&lt;/p&gt;

&lt;p&gt;ppc: remove old duplicate of devtls.c&lt;/p&gt;

&lt;p&gt;mtx, ppc: use proctab() to index into process table&lt;/p&gt;

&lt;p&gt;sd53c8xx: fix the driver for amd64, fix alignment/padding issues, fix freechain handling&lt;/p&gt;

&lt;p&gt;sdiahci, sdodin: avoid calling kproc() while holding ilock()&lt;/p&gt;

&lt;p&gt;sdiahci: force Hudson SATA Controller to AHCI mode&lt;/p&gt;

&lt;p&gt;sdiahci: implement reset timeout for ahciencreset(), make blink() never block, fix map[] access in ledkproc()&lt;/p&gt;

&lt;p&gt;usbehci: avoid kproc() while holding poll lock&lt;/p&gt;

&lt;p&gt;usbehci: release ctlr ilock before calling pollcheck()&lt;/p&gt;

&lt;p&gt;usbxhci: fix wrong control endpoint 0 output device context address&lt;/p&gt;

&lt;p&gt;vgai81x: remove unused mach0 variable&lt;/p&gt;

&lt;p&gt;xen: fix rebootcode linkage&lt;/p&gt;

&lt;p&gt;nusb/audio: set frequency only when supported&lt;/p&gt;

&lt;p&gt;nusb/kb: add quirks for Elecom HUGE trackball&lt;/p&gt;

&lt;p&gt;nusb/usbd: cleanup processes on unmount&lt;/p&gt;

&lt;p&gt;nusb/usbd: fix /env/usbbusy bug&lt;/p&gt;

&lt;p&gt;nusb/usbd: fix portreset error handling&lt;/p&gt;

&lt;h2&gt;COMPILERS AND DEBUGGERS&lt;/h2&gt;

&lt;p&gt;ape/cc: stop spamming arguments that are only needed once&lt;/p&gt;

&lt;p&gt;cc, ?[acl]: fix gethunk() and move common memory allocator code to cc/compat&lt;/p&gt;

&lt;p&gt;cc, ?a, ?l: change thunk type to uintptr&lt;/p&gt;

&lt;p&gt;cc, ?l: fix gethunk() to actually grow allocation&lt;/p&gt;

&lt;p&gt;cc: dont export gethunk(), hunk, nhunk and thunk&lt;/p&gt;

&lt;p&gt;cc: get rid of hunk pointer fiddling and just use alloc()&lt;/p&gt;

&lt;p&gt;cc: get rid of sprint() and temporary buffer for type conversion fuction&lt;/p&gt;

&lt;p&gt;cc: remove mysbrk(), exponentially increase gethunk() allocation delta&lt;/p&gt;

&lt;p&gt;cc: simplify macexpand() and off-by-one error&lt;/p&gt;

&lt;p&gt;cc: fix ccom idempotency&lt;/p&gt;

&lt;p&gt;cc: fix special case for null pointer constants in cond expressions&lt;/p&gt;

&lt;p&gt;cpp: Improve the posix preprocessor.&lt;/p&gt;

&lt;p&gt;cpp: Make priority array max size explicit.&lt;/p&gt;

&lt;p&gt;cpp: copy all the tokens from the tokenrows with a paste.&lt;/p&gt;

&lt;p&gt;cpp: dont overflow the stack&lt;/p&gt;

&lt;p&gt;cpp: evaluate #if expressions using vlong&lt;/p&gt;

&lt;p&gt;cpp: fix operator associativity&lt;/p&gt;

&lt;p&gt;cpp: missing headers rate a FATAL.&lt;/p&gt;

&lt;p&gt;6c: conserve registers for floating point operations&lt;/p&gt;

&lt;p&gt;6c: remove mystery sys.c file&lt;/p&gt;

&lt;p&gt;7l, ql: dont assume . is in the path for running mkcname (thanks sam-d)&lt;/p&gt;

&lt;p&gt;7l: handle dupok flag in TEXT/GLOBL data&lt;/p&gt;

&lt;p&gt;?a, ?c: fix macro debug prints&lt;/p&gt;

&lt;p&gt;?a, cc: fix buffer overflows in built-in preprocessor (macbody)&lt;/p&gt;

&lt;p&gt;?a: catch symb[NSYMB] buffer overflow in lexer, cleanup, assume thechar is a rune&lt;/p&gt;

&lt;p&gt;?c: fix Bconv() misusage of strncat()&lt;/p&gt;

&lt;p&gt;?c: get rid of sprint(), strcpy() and strcat()/strncat(), cleanup&lt;/p&gt;

&lt;p&gt;?l: remove direct hunk manipulation from linkers, just call malloc()&lt;/p&gt;

&lt;p&gt;[257]l: cleanup fmt routines, replace sprint()&lt;/p&gt;

&lt;p&gt;qa: remove ALLOC() and ALLOCN() macros&lt;/p&gt;

&lt;p&gt;vl: remove unused mysbrk() prototype&lt;/p&gt;

&lt;p&gt;yacc: normalize error messages, stop writing to closed fd.&lt;/p&gt;

&lt;p&gt;yacc: fix crash with absolute paths&lt;/p&gt;

&lt;p&gt;yacc: stop fiddling with path construction.&lt;/p&gt;

&lt;h2&gt;LIBRARIES&lt;/h2&gt;

&lt;p&gt;ape: #pragma ref no longer exists&lt;/p&gt;

&lt;p&gt;ape: Add stdbool.h to ape&lt;/p&gt;

&lt;p&gt;ape: Fix scanf scans of more than one character in %[]&lt;/p&gt;

&lt;p&gt;ape: add intmax_t/uintmax_t as required by c99 7.18.1.5&lt;/p&gt;

&lt;p&gt;ape: add missing conversion flags for scanf&lt;/p&gt;

&lt;p&gt;ape: add va_copy macro, conforming to c99 7.15.1.2&lt;/p&gt;

&lt;p&gt;ape: bring stdint.h closer to spec&lt;/p&gt;

&lt;p&gt;ape: fix alignment in malloc()&lt;/p&gt;

&lt;p&gt;ape: fix name clash, have to use _SLEEP syscall instead of ape sleep in plan9 code (thanks jamos)&lt;/p&gt;

&lt;p&gt;ape: fix scanf &amp;lsquo;%[]&amp;rsquo; specifiers and &amp;lsquo;%n&amp;rsquo; (thanks phil9)&lt;/p&gt;

&lt;p&gt;ape: remove C99_SPRINTF_EXTENSION define.&lt;/p&gt;

&lt;p&gt;ape: turn ptrdiff_t into a 64 bit type&lt;/p&gt;

&lt;p&gt;ape: use #error when missing define&lt;/p&gt;

&lt;p&gt;lib9p: fix re-use of root Qid when using createfile(); remove unused dirqidgen&lt;/p&gt;

&lt;p&gt;lib9p: fix typo&lt;/p&gt;

&lt;p&gt;lib9p: get rid of Srv.nopipe and Srv.leavefdsopen hacks&lt;/p&gt;

&lt;p&gt;lib9p: implement automatic remove-on-close cleanup in postsharesrv(), remove postfd() and sharefd() functions&lt;/p&gt;

&lt;p&gt;lib9p: reject reads on closed fids and writes on directories&lt;/p&gt;

&lt;p&gt;lib9p: zero out per connection state in Srv template for listensrv()&lt;/p&gt;

&lt;p&gt;libFLAC: 1.3.1 -&gt; 1.3.3&lt;/p&gt;

&lt;p&gt;libaml: implement ToDecimalString and ToHexString operations&lt;/p&gt;

&lt;p&gt;libc: always zero initialize Tm structure for tm2sec()&lt;/p&gt;

&lt;p&gt;libc/arm64: work around linker bug for cas()&lt;/p&gt;

&lt;p&gt;libdraw: fix mount() error handling in newwindow()&lt;/p&gt;

&lt;p&gt;libmemdraw: remove inexistent build targets&lt;/p&gt;

&lt;p&gt;libsec/base58enc: null-terminate the result&lt;/p&gt;

&lt;p&gt;libsec: move AES XTS function prototypes to AES definition section in the header file&lt;/p&gt;

&lt;p&gt;libsec: remove hash pickle functions, document ripemd160, cleanup sechash(2) manpage&lt;/p&gt;

&lt;h2&gt;PROGRAMS&lt;/h2&gt;

&lt;p&gt;9fs: replace dead plan9.bell-labs.com with 9p.io server&lt;/p&gt;

&lt;p&gt;&amp;ldquo;&amp;rdquo;: output previous action to stderr&lt;/p&gt;

&lt;p&gt;acme, sam: handle &gt;1GB files correctly&lt;/p&gt;

&lt;p&gt;acme/Mail: show and update flags&lt;/p&gt;

&lt;p&gt;acme/win: exit winfs once acme shuts down the window&lt;/p&gt;

&lt;p&gt;acme/win: pass on flags to winfs (fix undocumented -e flag)&lt;/p&gt;

&lt;p&gt;acme: Apply each -/+ only once (#156)&lt;/p&gt;

&lt;p&gt;acme: Apply http://www.9paste.net/qrstuv/patch/acme-movetodelmesg/&lt;/p&gt;

&lt;p&gt;acme: Reset click count on mouse motion.&lt;/p&gt;

&lt;p&gt;acme: Restore call to movetodel() in colclose&lt;/p&gt;

&lt;p&gt;acme: add missed error checks&lt;/p&gt;

&lt;p&gt;acme: avoid division by zero when resizing col (#189)&lt;/p&gt;

&lt;p&gt;acme: fix double free&lt;/p&gt;

&lt;p&gt;acme: fix off by one in colclose(), make dellist() code consistent&lt;/p&gt;

&lt;p&gt;acme: fix some memory leaks&lt;/p&gt;

&lt;p&gt;acme: fix typo: mouse-&gt;xy, not w-&gt;mc.xy&lt;/p&gt;

&lt;p&gt;acme: split win into winfs and rc script, get rid of lib9p leavefdsopen hack&lt;/p&gt;

&lt;p&gt;acme: triple click selection&lt;/p&gt;

&lt;p&gt;auth/disable, auth/enable, auth/status: add usage messages&lt;/p&gt;

&lt;p&gt;aux/aout2uimage: Add a.out to uImage converter &lt;em&gt;NEW&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;aux/getflags: improve flagfmt parser&lt;/p&gt;

&lt;p&gt;aux/getflags: remove rogue debug print&lt;/p&gt;

&lt;p&gt;aux/getflags: support named flags&lt;/p&gt;

&lt;p&gt;aux/kbdfs: fix kbmapread() not accounting for reads smaller than the size of the line&lt;/p&gt;

&lt;p&gt;aux/kbdfs: Changes to allow support for neo2 keyboard layout&lt;/p&gt;

&lt;p&gt;aux/realemu: fix exit code&lt;/p&gt;

&lt;p&gt;aux/realemu: run cpuproc in same fd group as fileserver&lt;/p&gt;

&lt;p&gt;aux/timesync: open /proc/n/ctl with OWRITE, not ORDWR&lt;/p&gt;

&lt;p&gt;awk: fix race condition with sub-mk in mkfile&lt;/p&gt;

&lt;p&gt;awk: make empty FS unicodely-correct.&lt;/p&gt;

&lt;p&gt;backup: Set execution bits in backup scripts&lt;/p&gt;

&lt;p&gt;date: make ISO 8601 time output compatible to RFC3339&lt;/p&gt;

&lt;p&gt;doctype: fix -T option&lt;/p&gt;

&lt;p&gt;dossrv, 9660srv, hjfs: stop &lt;em&gt;READING&lt;/em&gt; standard &lt;em&gt;OUTPUT&lt;/em&gt; with -s flag&lt;/p&gt;

&lt;p&gt;dossrv: fix falloc() for &gt;31 bit sector numbers (thanks sl)&lt;/p&gt;

&lt;p&gt;dossrv: output iotrack error message to stderr&lt;/p&gt;

&lt;p&gt;dtracy: show line numbers in errors&lt;/p&gt;

&lt;p&gt;file: add (very) basic support for detecting mpeg4 formats&lt;/p&gt;

&lt;p&gt;file: try ismp4() before ismp3()&lt;/p&gt;

&lt;p&gt;file: fix filetype detecton by suffix so that multiple dots dont confuse it. (thanks kvik)&lt;/p&gt;

&lt;p&gt;g: walk arguments&lt;/p&gt;

&lt;p&gt;games/playlistfs: open /proc/n/ctl OWRITE, not ORDWR&lt;/p&gt;

&lt;p&gt;games/turtle: do exit instead of crash in redraw() when there where no lines drawn&lt;/p&gt;

&lt;p&gt;games/linden: &lt;em&gt;NEW&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;games/turtle: &lt;em&gt;NEW&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;games/v8e: &lt;em&gt;NEW&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;grep: error if sbrk fails&lt;/p&gt;

&lt;p&gt;grep: fix handling of -b flag&lt;/p&gt;

&lt;p&gt;hgfs: fix loadrevinfo() breakage on long lines using libbio (thanks deuterion)&lt;/p&gt;

&lt;p&gt;hgfs: fix loadrevinfo() for empty log bug&lt;/p&gt;

&lt;p&gt;hoc: don&amp;rsquo;t nest calls to follow() when lexing ++/+= and &amp;ndash;/-= (#287)&lt;/p&gt;

&lt;p&gt;ip/cifsd: implement SMB_SET_FILE_UNIX_BASIC for wstat&lt;/p&gt;

&lt;p&gt;ip/cifsd: implement primitive per-share unix id mapping for wstat()&lt;/p&gt;

&lt;p&gt;ip/dhcp6d: work around non-ethernet based client duid&lt;/p&gt;

&lt;p&gt;ip/dhcpd: prevent client from increasing max reply size beyond the reply buffer capacity&lt;/p&gt;

&lt;p&gt;ip/ipconfig: ignore default routes targeting ourselfs&lt;/p&gt;

&lt;p&gt;ip/ipconfig: keep on sending router solicitation after initial RA&lt;/p&gt;

&lt;p&gt;ip/ipconfig: resolve ipgw to an ip address as neccesary (thanks k0ga)&lt;/p&gt;

&lt;p&gt;ip/tinc: accept udp connection from any udp source port&lt;/p&gt;

&lt;p&gt;mothra: add Plumb menu item, and update man page. sl&amp;rsquo;s original changes sanity-checked by Ori_B.&lt;/p&gt;

&lt;p&gt;mothra: (facelift) flat ui is in.&lt;/p&gt;

&lt;p&gt;mothra: fix a few errors in previous patch&lt;/p&gt;

&lt;p&gt;mothra: make user interface monochrome&lt;/p&gt;

&lt;p&gt;mothra: remove extraneous lines and decoration (fake 3d). patch extracted from sl&amp;rsquo;s forked mess by Ori_B.&lt;/p&gt;

&lt;p&gt;mothra: restore original fonts. dejavusans was sl&amp;rsquo;s change, sl&amp;rsquo;s fault. it never looked right outside of drawterm on osx (mea culpa). this is easy to change for anyone who prefers something else, but it&amp;rsquo;s difficult to imagine native users preferring our very fuzzy dejavusans to anything else.&lt;/p&gt;

&lt;p&gt;ndb/dns: handle empty $DNSSERVER&lt;/p&gt;

&lt;p&gt;paint: change colors in the palette with button 3&lt;/p&gt;

&lt;p&gt;ramfs: don&amp;rsquo;t use Srv.nopipe&lt;/p&gt;

&lt;p&gt;rc-httpd: append carriage return to content-length header&lt;/p&gt;

&lt;p&gt;rc: fix code serialization for PIPEFD (thanks BurnZeZ)&lt;/p&gt;

&lt;p&gt;rc: fix heredoc crash&lt;/p&gt;

&lt;p&gt;rio, kbdfs: increase read buffer for high latency kbdfs support&lt;/p&gt;

&lt;p&gt;rio: fix bug causing short reads of wctl files&lt;/p&gt;

&lt;p&gt;rio: fix goodrect() bug (thanks mike)&lt;/p&gt;

&lt;p&gt;rio: pad window status strings in wctl files&lt;/p&gt;

&lt;p&gt;rio: triple click selection, reset click count on mouse motion.&lt;/p&gt;

&lt;p&gt;sam: ^ does not need current file&lt;/p&gt;

&lt;p&gt;sam: add $%dot (thanks kvik)&lt;/p&gt;

&lt;p&gt;sam: Bump protocol version for Ttclick&lt;/p&gt;

&lt;p&gt;sam: triple click selection&lt;/p&gt;

&lt;p&gt;samterm: don&amp;rsquo;t scroll invisible (command) window (thanks umbraticus)&lt;/p&gt;

&lt;p&gt;samterm: Make ctrl+g focus text windows and cycle zeroxed copies (thanks kvik)&lt;/p&gt;

&lt;p&gt;samterm: fix typos in time calculation&lt;/p&gt;

&lt;p&gt;seconds: hack around timezone issues.&lt;/p&gt;

&lt;p&gt;sed: accept and ignore -E and -r flags for unix compatibility&lt;/p&gt;

&lt;p&gt;sed: allow whitespace after ! negation (thanks k0ga)&lt;/p&gt;

&lt;p&gt;sshfs: fix dir2attrib() memory leak in wstat error case (thanks BurnZeZ)&lt;/p&gt;

&lt;p&gt;sshfs: fix race condition between sendproc() and recvproc()&lt;/p&gt;

&lt;p&gt;sshnet: fix fork race conditions&lt;/p&gt;

&lt;p&gt;tar: Add pax extended header support&lt;/p&gt;

&lt;p&gt;tar: fix memory corruption in extract1 (thanks petter)&lt;/p&gt;

&lt;p&gt;tar: Fix directory heuristic for long file names.&lt;/p&gt;

&lt;p&gt;tar: Parse global pax header in the right place.&lt;/p&gt;

&lt;p&gt;upas/fs: Fetch IMAP flags from server. This makes us sync read/answered/&amp;hellip; flags with unix.&lt;/p&gt;

&lt;p&gt;upas/fs: fix handling of numeric timezone offsets in strtotm&lt;/p&gt;

&lt;p&gt;upas/fs: fix sending of &amp;ldquo;delete&amp;rdquo; plumb messages&lt;/p&gt;

&lt;p&gt;upas/fs: imap fixes and improvements&lt;/p&gt;

&lt;p&gt;upas/fs: only ensurecache() on doplumb().&lt;/p&gt;

&lt;p&gt;upas/fs: plumb flag changes.&lt;/p&gt;

&lt;p&gt;upas/fs: plumb modify messages for self-changed flags&lt;/p&gt;

&lt;p&gt;upas/fs: remove useless loop in rf822()&lt;/p&gt;

&lt;p&gt;upas/fs: Check if &amp;rsquo;m' is null when updating messages.&lt;/p&gt;

&lt;p&gt;upas/fs: fix ref882 reference parsing.&lt;/p&gt;

&lt;p&gt;upas/fs: fix typo: we don&amp;rsquo;t have cache insurance.&lt;/p&gt;

&lt;p&gt;upas/fs: simplify flag parsing.&lt;/p&gt;

&lt;p&gt;upas/marshal: fix printinreplyto function&lt;/p&gt;

&lt;p&gt;vt: triple-click to select non-whitespace segment&lt;/p&gt;

&lt;p&gt;walk: add D and T fmt characters (fileserver device/type)&lt;/p&gt;

&lt;p&gt;walk: remove superfluous newline&lt;/p&gt;

&lt;p&gt;Mail: Remove reply print.&lt;/p&gt;

&lt;p&gt;Mail: delete obsolete comments (replies are flagged elsewhere)&lt;/p&gt;

&lt;p&gt;Mail: show urls in html messages.&lt;/p&gt;

&lt;h2&gt;DOCUMENTATION&lt;/h2&gt;

&lt;p&gt;acme(1): fix scrolling when swiping text at the top or bottom of a frame&lt;/p&gt;

&lt;p&gt;atari(1), nintendo(1), sega(1): document common emulator keys&lt;/p&gt;

&lt;p&gt;crop(1): remove duplicate -b option in synopsis&lt;/p&gt;

&lt;p&gt;listen(1): implement one-shot mode flag for listen1 (thanks kivik)&lt;/p&gt;

&lt;p&gt;mail(1): fix typo&lt;/p&gt;

&lt;p&gt;mothra(1): add description of Plumb menu item.&lt;/p&gt;

&lt;p&gt;os(1): add c implementation of inferno os command and cmd(3) device manpages&lt;/p&gt;

&lt;p&gt;page(1): fix troff manual example&lt;/p&gt;

&lt;p&gt;sam(1): document $% and $%dot&lt;/p&gt;

&lt;p&gt;seconds(1): add SOURCE section&lt;/p&gt;

&lt;p&gt;tar(1): document &amp;rsquo;T' flag misbehavior (thanks rgl)&lt;/p&gt;

&lt;p&gt;vac(1): assimilate manpage additions from plan9port and complete usage lines (thanks joe9)&lt;/p&gt;

&lt;p&gt;walk(1): formatting/corrections&lt;/p&gt;

&lt;p&gt;dial(2): we prefer nil over 0, make the example show it.&lt;/p&gt;

&lt;p&gt;draw(2): fix manpage typo (thanks rgl)&lt;/p&gt;

&lt;p&gt;flate(2): fix typos (thanks rgl)&lt;/p&gt;

&lt;p&gt;9p(2): document all the effective rfork flags for postmountsrv()&lt;/p&gt;

&lt;p&gt;9p(2): document the filedescriptor sharing behaviour of postmountsrv()&lt;/p&gt;

&lt;p&gt;9p(2): fix sentence for wstat function (thanks jsmoody)&lt;/p&gt;

&lt;p&gt;notify(2): fix typo&lt;/p&gt;

&lt;p&gt;thread(2): fix description of when/why procexec(l) functions return&lt;/p&gt;

&lt;p&gt;thread(2): fix manpage typos (thanks rgl)&lt;/p&gt;

&lt;p&gt;cmd(3): fix typo, Close -&gt; Closed (thanks kivik)&lt;/p&gt;

&lt;p&gt;draw(3): typo dp&lt;/p&gt;

&lt;p&gt;ip(3): document special null-address hack for accepting all incoming connections&lt;/p&gt;

&lt;p&gt;ip(3): remove outdated maximum ipstack number limit.&lt;/p&gt;

&lt;p&gt;kbd(3): fix a typo (thanks Alex Musolino)&lt;/p&gt;

&lt;p&gt;rio(4): fix bad cross-reference format&lt;/p&gt;

&lt;p&gt;rio(4): update description of wctl file format&lt;/p&gt;

&lt;p&gt;upasfs(4): fix manpage typo (thanks rgl)&lt;/p&gt;

&lt;p&gt;image(6): fix typo&lt;/p&gt;

&lt;p&gt;9boot(8): Document 9bootfat limitation.&lt;/p&gt;

&lt;p&gt;boot(8): Specifiy the restrictions on 9boot file names more clearly.&lt;/p&gt;

&lt;p&gt;console(8): add console command and manpage&lt;/p&gt;

&lt;p&gt;man(9): add start of section 9 manpages (thanks rgl) &lt;em&gt;NEW&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;delay(9): improve language&lt;/p&gt;

&lt;p&gt;kproc(9) and sleep(9) corrections&lt;/p&gt;

&lt;p&gt;sleep(9): recover comment with the right reference&lt;/p&gt;

&lt;h2&gt;OTHER&lt;/h2&gt;

&lt;p&gt;/lib/face: add .dict entries for andrew.1 face files&lt;/p&gt;

&lt;p&gt;/sys/lib/kbmap: update 0xf860 to Kshift value, fix fake shifts on esc1&lt;/p&gt;

&lt;p&gt;/sys/lib/kbmap/colemak: add colemak keymap (thanks Silas McCroskey)&lt;/p&gt;

&lt;p&gt;/sys/lib/kbmap/sg: add swiss german kbmap (thanks mike)&lt;/p&gt;

&lt;p&gt;/sys/lib/plumb/basic: open nedmail windows with -noscroll&lt;/p&gt;

&lt;p&gt;/sys/lib/plumb/basic: include section 9 in manpage plumb rules.&lt;/p&gt;

&lt;p&gt;fortunes: As much as I&amp;rsquo;d love to I feel I have to let it go &amp;ndash; rminnich&lt;/p&gt;

&lt;p&gt;hgignore: ignore section 9 manpage indices, ignore init, kernels and bootloader binaries&lt;/p&gt;

&lt;p&gt;riostart: when system uses serial console, provide a system shell on it&lt;/p&gt;

&lt;p&gt;timezones: change DST timezone string for South Australia&lt;/p&gt;

&lt;p&gt;tmac.eai: wrapper around -me: auto indexing sections, .TC macro (thanks sirjofri)&lt;/p&gt;

&lt;p&gt;troff: add missing /sys/lib/tmac/me files (thanks sirjofri)&lt;/p&gt;

&lt;p&gt;words: transgender&lt;/p&gt;

&lt;p&gt;&lt;img src="http://9front.org/img/plan9haters.back.png" alt="back" /&gt;&lt;/p&gt;
 </description>
        </item>

        <item>
            <title><![CDATA[9FRONT "NO THINKPAD" RELEASED]]></title>
            <author><![CDATA[sl@noreply.cat-v.org (sl)]]></author>
            <link>http://9front.org:80/releases/2019/10/08/0/</link>
            <guid isPermaLink="true">http://9front.org:80/releases/2019/10/08/0/</guid>
            <pubDate>Wed, 06 Apr 2022 17:16:18 -0400</pubDate>
            <description> &lt;p&gt;&lt;img src="http://9front.org/img/nothinkpad.front.png" alt="front (v1)" /&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://bell-labs.co/9front/iso/9front-7408.1d345066125a.386.iso.gz.torrent"&gt;http://bell-labs.co/9front/iso/9front-7408.1d345066125a.386.iso.gz.torrent&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://bell-labs.co/9front/iso/9front-7408.1d345066125a.pi.img.gz.torrent"&gt;http://bell-labs.co/9front/iso/9front-7408.1d345066125a.pi.img.gz.torrent&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://bell-labs.co/9front/iso/9front-7408.1d345066125a.pi3.img.gz.torrent"&gt;http://bell-labs.co/9front/iso/9front-7408.1d345066125a.pi3.img.gz.torrent&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;DASH 1 MANUAL&lt;/h2&gt;

&lt;p&gt;&lt;a href="http://fqa.9front.org/dash1.nothinkpad.pdf"&gt;http://fqa.9front.org/dash1.nothinkpad.pdf&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;dash 1 and man pages in print: &lt;a href="http://9front.org/propaganda/books"&gt;http://9front.org/propaganda/books&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;THANKS: momus&lt;/p&gt;

&lt;h2&gt;KERNEL AND DRIVERS&lt;/h2&gt;

&lt;p&gt;kernel: catch execution read fault on SG_NOEXEC segment&lt;/p&gt;

&lt;p&gt;kernel: clear FPillegal in pexit() and before pprint()&lt;/p&gt;

&lt;p&gt;kernel: expose no execute bit to portable mmu code as SG_NOEXEC / PTENOEXEC, add PTECACHED bits&lt;/p&gt;

&lt;p&gt;kernel: get rid of tmperrbuf and use syserrstr swapping instead in namec()&lt;/p&gt;

&lt;p&gt;kernel: make exec clear errstr, stop side-channels and truncate on utf8 boundary&lt;/p&gt;

&lt;p&gt;kernel: make user stack segment non-executable&lt;/p&gt;

&lt;p&gt;kernel: move common ethermii to port/&lt;/p&gt;

&lt;p&gt;kernel: prohibit changing cache attributes (SG_CACHED|SG_DEVICE) in segattach(), set SG_RONLY in data2txt()&lt;/p&gt;

&lt;p&gt;kernel: simplify pgrpnote(); moving the note string copying to procwrite()&lt;/p&gt;

&lt;p&gt;bcm, kw, omap, teg2: implement setregisters()&lt;/p&gt;

&lt;p&gt;bcm: add cache invalidate before accessing prop buffer&lt;/p&gt;

&lt;p&gt;bcm: fix typo in gpio.c on unused AFedge0 constant&lt;/p&gt;

&lt;p&gt;bcm: flush out early boot messages on uart and screen initialization&lt;/p&gt;

&lt;p&gt;bcm: invalidate cache on Fbinfo after firmware completion&lt;/p&gt;

&lt;p&gt;bcm: set XN bits for kernel device mappings&lt;/p&gt;

&lt;p&gt;bcm64: add addarchfile() prototype to fns.h (for qeed)&lt;/p&gt;

&lt;p&gt;bcm64: add config for raspberry pi 4&lt;/p&gt;

&lt;p&gt;bcm64: add driver for emmc2 controller&lt;/p&gt;

&lt;p&gt;bcm64: add gic interrupt controller driver for raspberry pi 4&lt;/p&gt;

&lt;p&gt;bcm64: add gisb arbiter driver to catch bus timeouts&lt;/p&gt;

&lt;p&gt;bcm64: add pci express driver for raspberry pi 4&lt;/p&gt;

&lt;p&gt;bcm64: add support for more than 1GB of ram (untested)&lt;/p&gt;

&lt;p&gt;bcm64: deal with discontinuous memory regions, avoid virtual memory aliasing, implement vmap() proper&lt;/p&gt;

&lt;p&gt;bcm64: do not use OTP_BOOTMODE_REG to determine OSC frequency (thanks richard miller)&lt;/p&gt;

&lt;p&gt;bcm64: enable devgpio in kernel configuration (thanks qeed)&lt;/p&gt;

&lt;p&gt;bcm64: enter page tables in mmutop &lt;em&gt;AFTER&lt;/em&gt; switching asid in mmuswitch()&lt;/p&gt;

&lt;p&gt;bcm64: fix mmu0clear() mistake from previous commit&lt;/p&gt;

&lt;p&gt;bcm64: fix wrong prescaler for generic timer on rpi4&lt;/p&gt;

&lt;p&gt;bcm64: generalize mmu code&lt;/p&gt;

&lt;p&gt;bcm64: implement dtracy support&lt;/p&gt;

&lt;p&gt;bcm64: implement reboot support&lt;/p&gt;

&lt;p&gt;bcm64: no need to flush instruction cache when switching TTBR0&lt;/p&gt;

&lt;p&gt;bcm64: poll gisb arbiter for asynchronous bus errors&lt;/p&gt;

&lt;p&gt;bcm64: remove unneccesary tlb flush on mmuidmap()&lt;/p&gt;

&lt;p&gt;bcm64: reorganize virtual memory map for rapberry pi4&lt;/p&gt;

&lt;p&gt;bcm64: replace emmc2 driver with richard millers sdhc driver&lt;/p&gt;

&lt;p&gt;bcm64: set XN bits for kernel device mappings&lt;/p&gt;

&lt;p&gt;bcm64: strip debug symbols to make sure .img file is multiple of 4 bytes&lt;/p&gt;

&lt;p&gt;bcm64: switch to 64k page size&lt;/p&gt;

&lt;p&gt;bcm64: update io.h for pci express and raspberry pi 4&lt;/p&gt;

&lt;p&gt;bcm64: work in progress genet ethernet driver for raspberry pi 4&lt;/p&gt;

&lt;p&gt;bcm, bcm64: add BCM2711 support for gpiopull(), fix gpiomeminit(), cleanup&lt;/p&gt;

&lt;p&gt;bcm, bcm64: add dmaflush() function and make virtio size and virtual address configurable in Soc.virtio and Soc.iosize&lt;/p&gt;

&lt;p&gt;bcm, bcm64: add support for device tree parameter passing&lt;/p&gt;

&lt;p&gt;bcm, bcm64: add vcore support for raspberry pi 3 GPIO expander&lt;/p&gt;

&lt;p&gt;bcm, bcm64: clean dma destination buffer before issuing dma in case of non cache-line-size aligned buffer&lt;/p&gt;

&lt;p&gt;bcm, bcm64: fix cache operations for dma and emmc&lt;/p&gt;

&lt;p&gt;bcm, bcm64: make irq.$O optional and add intrdisable(), use intrenable()&lt;/p&gt;

&lt;p&gt;bcm, bcm64: preserve memsize across reboots, avoid trashing atags while parsing cmdline&lt;/p&gt;

&lt;p&gt;devdtracy: make machlocks and dtktab static&lt;/p&gt;

&lt;p&gt;devip: fix permission checking&lt;/p&gt;

&lt;p&gt;devip: if the server does not support TCP ws option, disable window scaling (thanks joe9)&lt;/p&gt;

&lt;p&gt;devproc: fix fishy locking in proctext(), check proc validity, static functions&lt;/p&gt;

&lt;p&gt;devproc: move proctab() call after Qnotepg special case in procwrite()&lt;/p&gt;

&lt;p&gt;devproc: restore psstate info string in procstopwait()&lt;/p&gt;

&lt;p&gt;devuart: make sure uart is enabled in uartkick()&lt;/p&gt;

&lt;p&gt;ethergenet: fix flow control negotiation&lt;/p&gt;

&lt;p&gt;ethergenet: remove debugging&lt;/p&gt;

&lt;p&gt;emmc: 50MHz highspeed support (from richard miller)&lt;/p&gt;

&lt;p&gt;pc: move low-level allocation details out of mmu.c into memory.c rampage() function&lt;/p&gt;

&lt;p&gt;pc64: fix compiler warning in rebootjump() entry calculation&lt;/p&gt;

&lt;p&gt;pc64: implement NX bit discovery, map kernel mappings no-execute&lt;/p&gt;

&lt;p&gt;pc64: map kernel text readonly and everything else no-execute&lt;/p&gt;

&lt;p&gt;pc64: preallocate mmupool page tables&lt;/p&gt;

&lt;p&gt;sdide: silence compiler warning in atadebug()&lt;/p&gt;

&lt;p&gt;usbehci: introduce dmaflush() function to handle portable cache invalidation for device drivers&lt;/p&gt;

&lt;p&gt;usbehci: silence &amp;ldquo;param declared but not used&amp;rdquo; compiler warning in itdinit()/sitdinit()&lt;/p&gt;

&lt;p&gt;usbxhci: fix mysterious ENABLESLOT failures (update to XHCI spec revision 1.2 (2019))&lt;/p&gt;

&lt;p&gt;usbxhci: implement portable dma flush operations and move to port/&lt;/p&gt;

&lt;p&gt;usbxhci: fix endpoint stall recovery, handle Ep.clrhalt flag&lt;/p&gt;

&lt;p&gt;vgai81x: use vmap() for uncached access to cursor data instead of manipulating kernel page table&lt;/p&gt;

&lt;h2&gt;COMPILERS AND DEBUGGERS&lt;/h2&gt;

&lt;p&gt;7l: don&amp;rsquo;t hardcode 4k pagesize, use INITRND&lt;/p&gt;

&lt;p&gt;8c, 6c: LEA x, R; MOV &amp;reg;, R -&gt; MOV x, R&lt;/p&gt;

&lt;p&gt;8c, 6c: avoid allocating index registers when we don&amp;rsquo;t have to&lt;/p&gt;

&lt;p&gt;8c, 6c: fix INDEX node #reg calculation&lt;/p&gt;

&lt;p&gt;8c: skip 64-bit regpair allocation for OINDEX nodes in cgen64()&lt;/p&gt;

&lt;p&gt;8l, 6l: fix &amp;ldquo;unknown relation: TEXT&amp;rdquo; xfol() bug (thanks mischief)&lt;/p&gt;

&lt;p&gt;cc: fix void cast crash&lt;/p&gt;

&lt;p&gt;cc: remove nullwarn() from OCAST codegen, zap void casts&lt;/p&gt;

&lt;p&gt;cc: use 7 octal digits for 21 bit runes&lt;/p&gt;

&lt;p&gt;cc: Allow address expressions in ?c after int casts.&lt;/p&gt;

&lt;p&gt;cc: Import compiler warnings and bugfixes from Charles.&lt;/p&gt;

&lt;p&gt;acid/kernel: fix procstk() for arm64, set kdir for arm/arm64 to bcm/bcm64&lt;/p&gt;

&lt;p&gt;acid/kernel: for stacktraces, try to use context from error stack when process is not sleeping&lt;/p&gt;

&lt;h2&gt;LIBRARIES&lt;/h2&gt;

&lt;p&gt;ape: Add mkstemp to /sys/src/ape/lib/ap/gen/mkfile&lt;/p&gt;

&lt;p&gt;ape: don&amp;rsquo;t hardcode list of ape library directories in /sys/src/ape/lib/mkfile&lt;/p&gt;

&lt;p&gt;ape: fix stdio putc() macro, avoiding &amp;ldquo;result of operation not used&amp;rdquo; warning&lt;/p&gt;

&lt;p&gt;ape: reimplement rename() - fixing compiler warnings and handling more error cases&lt;/p&gt;

&lt;p&gt;ape: revert rename() change&lt;/p&gt;

&lt;p&gt;ape: Include integer limits from generic stdint.h in system-specific stdint.h&lt;/p&gt;

&lt;p&gt;ape: Add missing UINTsz_MIN defines to ape stdint.h&lt;/p&gt;

&lt;p&gt;ape: Add test for pow.c&lt;/p&gt;

&lt;p&gt;ape: Add toascii()&lt;/p&gt;

&lt;p&gt;ape: Handle NaN and Inf edge cases as specified by posix, instead of barfing.&lt;/p&gt;

&lt;p&gt;ape: Turn on warnings when building libap.&lt;/p&gt;

&lt;p&gt;ape: Add mkstemp to stdlib.h&lt;/p&gt;

&lt;p&gt;lib9p: fix listensrv() filedescriptor leaks&lt;/p&gt;

&lt;p&gt;libauth: do not set errstr in auth_rpc() for ARdone result (thanks majiru)&lt;/p&gt;

&lt;p&gt;libflac: Tell it that we have stdint.h so it finds SIZE_MAX&lt;/p&gt;

&lt;p&gt;libstdio: fix putc(), plan9 version&lt;/p&gt;

&lt;p&gt;libventi: define VtEntryNoArchive constant&lt;/p&gt;

&lt;p&gt;libventi: implement vtreconn and vtredial functions&lt;/p&gt;

&lt;p&gt;libventi: implement vtsha1 and vtsha1check functions&lt;/p&gt;

&lt;h2&gt;PROGRAMS&lt;/h2&gt;

&lt;p&gt;ape/cc: Add arm64 and remove alpha, add spim&lt;/p&gt;

&lt;p&gt;awk: no need to call getargv() twice to get the value for FILENAME&lt;/p&gt;

&lt;p&gt;cwfs: fix listen filedescriptor leaks&lt;/p&gt;

&lt;p&gt;date: Add RFC2822 (email style) formatted dates&lt;/p&gt;

&lt;p&gt;g: Make it grep recursively by default.&lt;/p&gt;

&lt;p&gt;auth/rsa2asn1: implement private key export with -a flag (thanks kvik)&lt;/p&gt;

&lt;p&gt;snoopy: add support for dhcp classless static routes option&lt;/p&gt;

&lt;p&gt;snoopy: avoid extra spaces in dhcp filter output&lt;/p&gt;

&lt;p&gt;snoopy: include dhcp.h instead of replicating bootp/dhcp options enum&lt;/p&gt;

&lt;p&gt;ssh: work around github.com&amp;rsquo;s broken cipher negotiation code (thanks Ori_B)&lt;/p&gt;

&lt;p&gt;cmd/ip/*: chown the network connection after authentication&lt;/p&gt;

&lt;p&gt;cwfs: fix root access time qid path comparison&lt;/p&gt;

&lt;p&gt;cwfs: properly handle 64 bit qid path&lt;/p&gt;

&lt;p&gt;cwfs: remove old some assert() debugging&lt;/p&gt;

&lt;p&gt;cwfs: remove orphaned lrand.c&lt;/p&gt;

&lt;p&gt;disk/format: implement long name support&lt;/p&gt;

&lt;p&gt;file: recognise unified diff output&lt;/p&gt;

&lt;p&gt;gs: apply fixes for CVE-2018-16509 (thanks jsmoody)&lt;/p&gt;

&lt;p&gt;gs: apply mitigations against CVE-2017-8291 (thanks jsmoody)&lt;/p&gt;

&lt;p&gt;gs: fix missing type check in ztype (thanks jsmoody)&lt;/p&gt;

&lt;p&gt;ip/cifsd: add basic support for UNIX extensions&lt;/p&gt;

&lt;p&gt;ip/cifsd: dont return garbage in upper 32 bit of unix extension stat fields&lt;/p&gt;

&lt;p&gt;ip/cifsd: exit to close connection when we get malformed smb header (fixes linux mount hang)&lt;/p&gt;

&lt;p&gt;ip/ipconfig: don&amp;rsquo;t leave behind null address when dhcp gets interrupted&lt;/p&gt;

&lt;p&gt;ndb/dnsquery, ndb/csquery: write &amp;ldquo;&gt;&amp;rdquo; prompt to stderr (thanks kvik)&lt;/p&gt;

&lt;p&gt;pcc: Always turn on the -+ flag in cpp&lt;/p&gt;

&lt;p&gt;plumber: loop will go out of bounds when *++s == &amp;lsquo;\0&amp;rsquo;; replace with strstr&lt;/p&gt;

&lt;p&gt;rc-httpd: avoid duplicate log output in dir-index handler&lt;/p&gt;

&lt;p&gt;rc-httpd: only emit charset option for text/plain content type&lt;/p&gt;

&lt;p&gt;rc-httpd: serve markdown with text/plain content-type&lt;/p&gt;

&lt;p&gt;rc-httpd: set charset=utf-8 for all text/* content types&lt;/p&gt;

&lt;p&gt;sshfs: use threadexits() instead of exits()&lt;/p&gt;

&lt;p&gt;upas/fs: remove read timeout via alarm(2) in pop3resp&lt;/p&gt;

&lt;p&gt;upas/fs: speedup mtree and henter()&lt;/p&gt;

&lt;p&gt;upas/smtp: handle temporary authentication failures&lt;/p&gt;

&lt;p&gt;vmx: handle build arch exclude in /sys/src/cmd/mkfile&lt;/p&gt;

&lt;p&gt;vncv: fix snarf buffer realloc memory corruption&lt;/p&gt;

&lt;h2&gt;DOCUMENTATION&lt;/h2&gt;

&lt;p&gt;2c(1): document 7c (arm64)&lt;/p&gt;

&lt;p&gt;draw(3): memlorigin&lt;/p&gt;

&lt;p&gt;nusb(2): remove startdevs() reference, document getdev() (thanks BurnZeZ)&lt;/p&gt;

&lt;p&gt;rsa(2): document asn1encodeRSApriv() and asn1encodeRSApub() functions&lt;/p&gt;

&lt;p&gt;rune(2): complete source references&lt;/p&gt;

&lt;p&gt;sshnet(4): &amp;hellip; and incoming TCP calls&lt;/p&gt;

&lt;p&gt;tinc(8): add history section&lt;/p&gt;

&lt;p&gt;vmx(1): update BUGS&lt;/p&gt;

&lt;p&gt;walk(1): add history section&lt;/p&gt;

&lt;h2&gt;OTHER&lt;/h2&gt;

&lt;p&gt;/sys/lib/dist/mkfile: adjust 2GB for pi3 and zynq img&lt;/p&gt;

&lt;p&gt;/sys/lib/dist/mkfile: storage vendors idea of 2GB is deflating&lt;/p&gt;

&lt;p&gt;/sys/src/cmd/mkfile: fix PCONLY exclude (thanks stefan)&lt;/p&gt;

&lt;p&gt;/sys/src/boot/bcm/mkfile: add missing device tree file for raspberry pi 4&lt;/p&gt;

&lt;p&gt;/sys/src/boot/bcm/mkfile: add raspberry pi 4 kernel and bootloader to pi3.img target&lt;/p&gt;

&lt;p&gt;bootrc: remount devip after /dev/hostowner has been written by factotum&lt;/p&gt;

&lt;p&gt;bootrc: unmount devip &lt;em&gt;before&lt;/em&gt; starting factotum&lt;/p&gt;

&lt;p&gt;mkone: fix man target (thanks Amavect)&lt;/p&gt;

&lt;p&gt;&lt;img src="http://9front.org/img/nothinkpad.back.png" alt="back" /&gt;&lt;/p&gt;
 </description>
        </item>

        <item>
            <title><![CDATA[9FRONT RETURNS TO PRINT WITH STUNNING NINE VOLUME SERIES]]></title>
            <author><![CDATA[sl@noreply.cat-v.org (sl)]]></author>
            <link>http://9front.org:80/releases/2019/06/23/0/</link>
            <guid isPermaLink="true">http://9front.org:80/releases/2019/06/23/0/</guid>
            <pubDate>Wed, 06 Apr 2022 17:15:52 -0400</pubDate>
            <description> &lt;p&gt;Stun a burglar by hurling one volume after another at the unsuspecting intruder. Stun yourself by actually learning something. Sell them later at a profit.&lt;/p&gt;

&lt;h2&gt;DASH 1&lt;/h2&gt;

&lt;p&gt;&lt;img src="http://9front.org/img/skinofevil.front.png" alt="DASH 1" /&gt;&lt;/p&gt;

&lt;p&gt;The usual suspect. An overview of what the fuck just happened today, Re: 9front.&lt;/p&gt;

&lt;p&gt;Online: &lt;a href="http://fqa.9front.org"&gt;http://fqa.9front.org&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Print: &lt;a href="https://amzn.to/2Qg0v92"&gt;https://amzn.to/2Qg0v92&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;PROGRAMMER&amp;rsquo;S MANUAL&lt;/h1&gt;

&lt;p&gt;&lt;img src="http://9front.org/img/programmersmanual.v1.front.png" alt="9FRONT PROGRAMMER'S MANUAL V1" /&gt;&lt;/p&gt;

&lt;p&gt;The standard, venerable man pages, divided into eight sections. The rainbow books, each with a different color border drawn from the paint(1) palette. Verified complete. It&amp;rsquo;s a good idea to read them all.&lt;/p&gt;

&lt;p&gt;Online: &lt;a href="http://man.9front.org"&gt;http://man.9front.org&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Print:&lt;/p&gt;

&lt;p&gt;V1: &lt;a href="https://amzn.to/2YgpRqc"&gt;https://amzn.to/2YgpRqc&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;V2: &lt;a href="https://amzn.to/2J46iuV"&gt;https://amzn.to/2J46iuV&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;V3: &lt;a href="https://amzn.to/2XoGmna"&gt;https://amzn.to/2XoGmna&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;V4: &lt;a href="https://amzn.to/2J6mTyx"&gt;https://amzn.to/2J6mTyx&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;V5: &lt;a href="https://amzn.to/2WW2RQO"&gt;https://amzn.to/2WW2RQO&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;V6: &lt;a href="https://amzn.to/2WYgSxm"&gt;https://amzn.to/2WYgSxm&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;V7: &lt;a href="https://amzn.to/2xagwEQ"&gt;https://amzn.to/2xagwEQ&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;V8: &lt;a href="https://amzn.to/2XBY7j7"&gt;https://amzn.to/2XBY7j7&lt;/a&gt;&lt;/p&gt;
 </description>
        </item>

        <item>
            <title><![CDATA[9FRONT "SKIN OF EVIL" RELEASED]]></title>
            <author><![CDATA[sl@noreply.cat-v.org (sl)]]></author>
            <link>http://9front.org:80/releases/2019/05/16/0/</link>
            <guid isPermaLink="true">http://9front.org:80/releases/2019/05/16/0/</guid>
            <pubDate>Wed, 06 Apr 2022 17:15:47 -0400</pubDate>
            <description> &lt;p&gt;&lt;img src="http://9front.org/img/skinofevil.front.png" alt="front (v1)" /&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://gabe.felloff.net/usr/cinap_lenrek/9front/9front-7233.24d21d7c0868.iso.gz.torrent"&gt;http://gabe.felloff.net/usr/cinap_lenrek/9front/9front-7233.24d21d7c0868.iso.gz.torrent&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;DASH 1 MANUAL&lt;/h2&gt;

&lt;p&gt;Online: &lt;a href="http://fqa.9front.org/dash1.skinofevil.pdf"&gt;http://fqa.9front.org/dash1.skinofevil.pdf&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Print: &lt;a href="http://9front.org/propaganda/books"&gt;http://9front.org/propaganda/books&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;THANKS: miron lukyanov&lt;/p&gt;

&lt;h2&gt;KERNEL AND DRIVERS&lt;/h2&gt;

&lt;p&gt;bootrc: add nora6= option to disable automatic ipv6 configuration&lt;/p&gt;

&lt;p&gt;bootrc: handle automatic ip configuration on gbe media&lt;/p&gt;

&lt;p&gt;bootrc: fix $rootdir and $rootspec handling (thanks lucio)&lt;/p&gt;

&lt;p&gt;kernel: exec support for arm64 binaries&lt;/p&gt;

&lt;p&gt;kernel: export freepages() function so it can be used in mmurelease()&lt;/p&gt;

&lt;p&gt;kernel: get rid of TSTKTOP, USTKTOP is the end of user address space&lt;/p&gt;

&lt;p&gt;kernel: get rid of KSTKSIZE alias for KSTACK&lt;/p&gt;

&lt;p&gt;kernel: get rid of PTR2UINT() and UINT2PTR() macros&lt;/p&gt;

&lt;p&gt;kernel: get rid of checkpagerefs() debugging&lt;/p&gt;

&lt;p&gt;kernel: include lock pointer in error report, stop spamming lockloop
prints when we are panicing&lt;/p&gt;

&lt;p&gt;kernel: insert memory barrier in the scheduler before setting up-&gt;mach
= nil&lt;/p&gt;

&lt;p&gt;kernel: remove ptclbsum dependencies from configs&lt;/p&gt;

&lt;p&gt;ktrace: arm64 support&lt;/p&gt;

&lt;p&gt;qio: handle common case in trimblock()&lt;/p&gt;

&lt;p&gt;bcm: add pl011 uart driver, dont touch line control while uart is
enabled&lt;/p&gt;

&lt;p&gt;bcm: don&amp;rsquo;t call nil on PADDR() in dmaaddr(), return busdram dummy
address&lt;/p&gt;

&lt;p&gt;bcm: don&amp;rsquo;t use PADDR() to convert bus address to physical in vcore&lt;/p&gt;

&lt;p&gt;bcm: dont assume PHYSDRAM 0 in dmaaddr(), fix dmaioaddr()&lt;/p&gt;

&lt;p&gt;bcm: include sdmmc in pi kernel configuration&lt;/p&gt;

&lt;p&gt;bcm: list devswap only once in devtab array&lt;/p&gt;

&lt;p&gt;bcm: move CONFADDR parsing into bootargs.c, simplify initcode start()
args handling&lt;/p&gt;

&lt;p&gt;bcm: move fiq saved pc adjust into lexception.s so it can be shared
with arm64&lt;/p&gt;

&lt;p&gt;bcm: move interrupt handling out of trap.c into irq.c, add irq.c to
mkfile&lt;/p&gt;

&lt;p&gt;bcm: move okay() from uartmini.c to devarch.c&lt;/p&gt;

&lt;p&gt;bcm: make sure fiq is on enabled on cpu0&lt;/p&gt;

&lt;p&gt;bcm64: add experimental work in progress arm64 kernel for raspberry pi
3&lt;/p&gt;

&lt;p&gt;bcm64: get rid of usb workaround delay&lt;/p&gt;

&lt;p&gt;bcm64: map framebuffer write-through to allow unaligned access&lt;/p&gt;

&lt;p&gt;bcm64: provide idlehands() function&lt;/p&gt;

&lt;p&gt;bcm64: use MOVP instruction for saving and restoring registers&lt;/p&gt;

&lt;p&gt;bcm64: use exclusive monitor on nrdy to wake up idlehands()&lt;/p&gt;

&lt;p&gt;pc, pc64: fix %.*s format in multibootargs&lt;/p&gt;

&lt;p&gt;pc, pc64: properly track dependencies for mem.h on autogenerated
apbootstrap.h and reboot.h targets&lt;/p&gt;

&lt;p&gt;pc, pc64: pci: add AMD FCH LPC bridge to southbridges&lt;/p&gt;

&lt;p&gt;pc, pc64: devarch: recognize AMD Ryzen model&lt;/p&gt;

&lt;p&gt;pc64: properly handle faulterror in faultamd64()&lt;/p&gt;

&lt;p&gt;devdraw: get rid of softscreen==0xa110c hack and make attachscreen()
return Memdata*&lt;/p&gt;

&lt;p&gt;devdraw: simplify drawgen()&lt;/p&gt;

&lt;p&gt;devip: fix block list handling for icmp/icmp6, use proper MinAdvise
for icmp6&lt;/p&gt;

&lt;p&gt;devip: fix fragment forwarding&lt;/p&gt;

&lt;p&gt;devip: fix ip fragmentation handling issues with header options&lt;/p&gt;

&lt;p&gt;devip: handle packet too big advise for icmp6, remove fragment header&lt;/p&gt;

&lt;p&gt;devip: ignore icmp advise about laggard fragments&lt;/p&gt;

&lt;p&gt;devip: ignore reserved fragment offset bits&lt;/p&gt;

&lt;p&gt;devip: ignore the evil bit in fragment info field&lt;/p&gt;

&lt;p&gt;devip: ipv6 loopback ::1 has link-local scope&lt;/p&gt;

&lt;p&gt;devip: reject bad numeric ports (such as 9fs -&gt; 9)&lt;/p&gt;

&lt;p&gt;devip: remove unused eipconvtet.c and ptclbsum.c files&lt;/p&gt;

&lt;p&gt;devip: simplify ip reassembly functions, getting rid of Ipfrag.hlen&lt;/p&gt;

&lt;p&gt;devip: tcp: Don&amp;rsquo;t respond to FIN-less ACKs during TIME-WAIT (thanks
Barret Rhoden)&lt;/p&gt;

&lt;p&gt;devip: use common code in icmp for handling advise&lt;/p&gt;

&lt;p&gt;devip: use parseipandmask() for ipifc and route control message
parsing&lt;/p&gt;

&lt;p&gt;devip: zero fragment offset after reassembly, remove tos magic,
cleanup&lt;/p&gt;

&lt;p&gt;devip: avoid media bind/unbind kproc reader startup race, simplify
etherbind&lt;/p&gt;

&lt;p&gt;devip: do not lock selftab in ipselftabread(), remove unused fields
from Ipself&lt;/p&gt;

&lt;p&gt;devip: make sure ifc is bound in add6 ctl command&lt;/p&gt;

&lt;p&gt;devip: remove unused c-&gt;car qlock, avoid potential deadlock in
ipifcregisterproxy()&lt;/p&gt;

&lt;p&gt;devip: reset speed and delay on bind, adjust burst on mtu change,
ifc-&gt;m nil check, consistent error strings&lt;/p&gt;

&lt;p&gt;devsd: fix panic when using &amp;ldquo;delpart&amp;rdquo; to remove a partition that was
already removed&lt;/p&gt;

&lt;p&gt;devswap: simplify, don&amp;rsquo;t panic when writing swapfile fails&lt;/p&gt;

&lt;p&gt;devtls: remove static &amp;ldquo;already&amp;rdquo; flag in tlsinit().  this function is
only run once.&lt;/p&gt;

&lt;p&gt;audiohda: add support for Gemini-Lake audio in Intel NUC nuc7pjyh
(thanks sam-d)&lt;/p&gt;

&lt;p&gt;audiohda: recognize AMD Family 17h hd audio controller&lt;/p&gt;

&lt;p&gt;ether8169: fix thinkpad A485 ethernet (thanks mischief)&lt;/p&gt;

&lt;p&gt;ether82563, ether82598, etherx550: round rbsz to multiple of 1K&lt;/p&gt;

&lt;p&gt;ether82563: fix bogus FCA write and link detection for i217&lt;/p&gt;

&lt;p&gt;ether82563: use 9018 byte mtu from datasheet for i217, i218, i219&lt;/p&gt;

&lt;p&gt;ether82563: work around spurious jumbo packets on i217 (thanks k0ga)&lt;/p&gt;

&lt;p&gt;ether82598: fix multicast filter (thanks aiju, joe9)&lt;/p&gt;

&lt;p&gt;etherx550: add intel 10GB ethernet controlller x550 driver (thanks
joe9)&lt;/p&gt;

&lt;p&gt;igfx: add support for 915gm&lt;/p&gt;

&lt;p&gt;nusb/audio: fix %.*s format usage&lt;/p&gt;

&lt;p&gt;nusb/disk: implement 64 bit lba read/write commands (16 byte commands)&lt;/p&gt;

&lt;p&gt;nusb/disk: don&amp;rsquo;t unnecessarily unstall devices.&lt;/p&gt;

&lt;p&gt;nusb/kb: fix continuous scrollwheel delta not being reported (thanks
sam-d)&lt;/p&gt;

&lt;p&gt;nusb/usbd: fix dump %U formatter&lt;/p&gt;

&lt;p&gt;nusb/usbd: stop sending port enable commands&lt;/p&gt;

&lt;p&gt;nusb/usbd: work around devices that ignore the high byte of wLength in
control transfer reads&lt;/p&gt;

&lt;p&gt;nusbrc: detect &amp;ldquo;keyboardio model 01&amp;rdquo;, appears as multifunction device
with IAD csp(0102EF) (thanks sam-d)&lt;/p&gt;

&lt;p&gt;usbdwc: enable Slowbuilkin workarround, improve split transaction
timing, handle erroring sleep(), debugging&lt;/p&gt;

&lt;p&gt;usbxhci: make stuck usb transactions interruptible.&lt;/p&gt;

&lt;p&gt;wifi: fix %.*s format in wifictl&lt;/p&gt;

&lt;h2&gt;COMPILERS AND DEBUGGERS&lt;/h2&gt;

&lt;p&gt;7c: add arm64 c compiler and assembler (thanks Charles Forsyth)&lt;/p&gt;

&lt;p&gt;7a: fix indexreg operations, fix post increment operands&lt;/p&gt;

&lt;p&gt;7c: don&amp;rsquo;t emit SXTW for non-register source operand&lt;/p&gt;

&lt;p&gt;7c: fix long to vlong/pointer conversion, avoid negative immediate
offsets&lt;/p&gt;

&lt;p&gt;7c: fix registerization of vlong constants&lt;/p&gt;

&lt;p&gt;7l: add arm64 linker from Charles Forsyth (initial sync)&lt;/p&gt;

&lt;p&gt;7l: add missing AFMOVD with EXT/AUTO/LOREG operands to optab&lt;/p&gt;

&lt;p&gt;7l: deal with huge (negative or &gt; 24bit) register offsets, fix LACON,
avoid DWORD in constant pool when we can sign extend&lt;/p&gt;

&lt;p&gt;7l: fix bitcon instruction selection and encoding&lt;/p&gt;

&lt;p&gt;7l: fix vlong constants in literal pool for non-MOV instructions&lt;/p&gt;

&lt;p&gt;7l: there&amp;rsquo;s no BIC* $bimm variant&lt;/p&gt;

&lt;p&gt;7l: implement MOVP instruction&lt;/p&gt;

&lt;p&gt;5c: dont substitute (destination) registers contained in MOVM reglist&lt;/p&gt;

&lt;p&gt;[5678vq]c: fix .safe node type for &lt;em&gt;FUNC() = &lt;/em&gt;FUNC() sugen&lt;/p&gt;

&lt;p&gt;cc: fix %.*s format usage in lexer &amp;ldquo;token too long&amp;rdquo; error&lt;/p&gt;

&lt;p&gt;acid: add arm64 support&lt;/p&gt;

&lt;p&gt;dtracy: avoid dmachlock() race&lt;/p&gt;

&lt;p&gt;dtracy: avoid pointer to integer truncation warning on amd64&lt;/p&gt;

&lt;p&gt;dtracy: fix &amp;amp;&amp;amp;&lt;/p&gt;

&lt;p&gt;dtracy: fix conditional branch generation&lt;/p&gt;

&lt;h2&gt;LIBRARIES&lt;/h2&gt;

&lt;p&gt;ape: initial support for arm64&lt;/p&gt;

&lt;p&gt;ape: fix malloc to deal with more than 4GB of memory on 64 bit systems&lt;/p&gt;

&lt;p&gt;lib9p: fix zero msize abort() due to unknown version (thanks kvik)&lt;/p&gt;

&lt;p&gt;libauthsrv: authdial smprint() out of memory autism&lt;/p&gt;

&lt;p&gt;libc: Sand edges down on GBIT64()/PBIT64() macros.&lt;/p&gt;

&lt;p&gt;libc: initial arm64 support&lt;/p&gt;

&lt;p&gt;libc: fix NaN check precedence bug in modf() (thanks BurnZeZ)&lt;/p&gt;

&lt;p&gt;libc: provide arm64 assembly versions for memmove() and memset()&lt;/p&gt;

&lt;p&gt;libc: use MOVP instruction for arm64 memmove() and memset()&lt;/p&gt;

&lt;p&gt;libip: don&amp;rsquo;t reject ipmask in v6 form for v4 address&lt;/p&gt;

&lt;p&gt;libip: move optimized 386 assembly version of ptclbsum() from kernel
to libip&lt;/p&gt;

&lt;p&gt;libip: prefer v4 over v6 for myipaddr()&lt;/p&gt;

&lt;p&gt;libip: replace v4parsecidr() with new parseipandmask()&lt;/p&gt;

&lt;p&gt;libip: return -1 in parseipmask() and parseipandmask() when mask is
not ipv4 and v4 argument was set&lt;/p&gt;

&lt;p&gt;libmach: initial arm64 support&lt;/p&gt;

&lt;p&gt;libmach: support for MOVP instruction disassembly for arm64&lt;/p&gt;

&lt;p&gt;libmemdraw: handle memarc() phi == 0 and phi &amp;lt;= -360, keep alpha in
bounds&lt;/p&gt;

&lt;p&gt;libmemdraw: remove static Point p00 and use ZP instead&lt;/p&gt;

&lt;p&gt;libmp: add dummy mkfile for arm64&lt;/p&gt;

&lt;p&gt;libndb: provide parseipmask() v4 argument in subnet(), use snprint()
instead of sprint()&lt;/p&gt;

&lt;p&gt;libpanel: fix %.*s format in pl_snarfentry()&lt;/p&gt;

&lt;p&gt;libsec: dummy mkfile for arm64&lt;/p&gt;

&lt;p&gt;libthread: initial support for arm64&lt;/p&gt;

&lt;h2&gt;PROGRAMS&lt;/h2&gt;

&lt;p&gt;abaco: fix %.*s format in findctype()&lt;/p&gt;

&lt;p&gt;atazz: fix %.*s format in special command processing&lt;/p&gt;

&lt;p&gt;aux/depend: fix %.*s format in path concatenation&lt;/p&gt;

&lt;p&gt;aux/statusmsg: fix %.*s format&lt;/p&gt;

&lt;p&gt;aux/wpa: fix %.*s format in debug prints&lt;/p&gt;

&lt;p&gt;awk: fix nextfile crash (thanks leetspete)&lt;/p&gt;

&lt;p&gt;cifs: fix pruning of . and ..  directory entries (thanks steve simon)&lt;/p&gt;

&lt;p&gt;cwfs: fix %.*s format in cmd_printconf()&lt;/p&gt;

&lt;p&gt;dossrv: make GLONG() return ulong, handle getsect() error in dostat()&lt;/p&gt;

&lt;p&gt;dossrv: use 64 bit vlong for sectors&lt;/p&gt;

&lt;p&gt;gs: arm64 support&lt;/p&gt;

&lt;p&gt;gs: avoid stupid shifts by casting to uint64_t&lt;/p&gt;

&lt;p&gt;hgfs: fix %.*s usage in walk&lt;/p&gt;

&lt;p&gt;ip/6in4: use parseipandmask(), use ipvmp() instead of equivip6()&lt;/p&gt;

&lt;p&gt;ip/ayiya: use parseipandmask(), use ipvmp() instead of equivip6()&lt;/p&gt;

&lt;p&gt;ip/cifsd: fix %.*s format xdirflush() path&lt;/p&gt;

&lt;p&gt;ip/dhcpd: add rootserverip read in lookupip() (thanks k0ga)&lt;/p&gt;

&lt;p&gt;ip/dhcpd: change swap to rootserver (thanks k0ga)&lt;/p&gt;

&lt;p&gt;ip/dhcpd: provide v4 argument for parseipmask()&lt;/p&gt;

&lt;p&gt;ip/dhcpd: remove undocumented dhcpgroup mechanism, group related ndb
attributes together&lt;/p&gt;

&lt;p&gt;ip/dhcpd: send vendor ndb attribute if available (thanks k0ga)&lt;/p&gt;

&lt;p&gt;ip/ipconfig, ndb/dns, libndb: handle parseipmask() errors&lt;/p&gt;

&lt;p&gt;ip/ipconfig: format ipmask with %M instead of %I&lt;/p&gt;

&lt;p&gt;ip/ipconfig: use defaults for loopback&lt;/p&gt;

&lt;p&gt;ip/ipconfig: use ewrite() to enable routing command for sendra&lt;/p&gt;

&lt;p&gt;ip/ipconfig: use new parseipandmask() function&lt;/p&gt;

&lt;p&gt;ip/ppp: fix %.*s format in debug print&lt;/p&gt;

&lt;p&gt;ip/pppoe: fix %.*s format in debug prints&lt;/p&gt;

&lt;p&gt;ip/rip: use new parseipandmask() function&lt;/p&gt;

&lt;p&gt;ip/socksd: fix %.*s format in dialstring&lt;/p&gt;

&lt;p&gt;ip/tftpd: fix %.*s format for homedir path&lt;/p&gt;

&lt;p&gt;ip/tinc: 4096 bit RSA, (passive) pmtu discovery, fix udpfd close()
race, cleanup&lt;/p&gt;

&lt;p&gt;ip/tinc: fix mistake from previous commit&lt;/p&gt;

&lt;p&gt;ip/tinc: honor TcpOnly and IndirectData settings, script support,
prefer incoming udp connections&lt;/p&gt;

&lt;p&gt;ip/tinc: use new parseipandmask() to parse subnets, use
ipcmp()/ipmove(), remove prefixlen&lt;/p&gt;

&lt;p&gt;ip/torrent: fix %.*s format in dialstring&lt;/p&gt;

&lt;p&gt;ip/torrent: avoid trying to fetch blocks past file&lt;/p&gt;

&lt;p&gt;mk: fix closing random fd from uninitialized stack variable (thanks
BurnZeZ, mycroftiv)&lt;/p&gt;

&lt;p&gt;ndb/dns: provide v4 argument to parseipmask(), use snprint() instead
of sprint()&lt;/p&gt;

&lt;p&gt;postscript: use PI&lt;/p&gt;

&lt;p&gt;python: arm64 support&lt;/p&gt;

&lt;p&gt;python: clean and nuke pgen and libpython.a for all $CPUS&lt;/p&gt;

&lt;p&gt;python: remove /$objtype/lib/ape/libpython.a, track graminit.h
dependencies, remove graminit.c&lt;/p&gt;

&lt;p&gt;ratfs: implement ipv6 support, replace v4parsecidr() with
parseipandmask()&lt;/p&gt;

&lt;p&gt;rc: clear out redirections on &amp;ldquo;rfork F&amp;rdquo; (RFCFDG)&lt;/p&gt;

&lt;p&gt;ssh: add experimental mux mode&lt;/p&gt;

&lt;p&gt;ssh: don&amp;rsquo;t assume error messages are ASCII.  format number of complete
runes, not bytes.&lt;/p&gt;

&lt;p&gt;ssh: implement -W option for making remote tcp connections&lt;/p&gt;

&lt;p&gt;ssh: print usage for unknown flags, cleanup&lt;/p&gt;

&lt;p&gt;sshnet: actually make sure ssh established connection before exiting
main proc&lt;/p&gt;

&lt;p&gt;sshnet: allow 0 port&lt;/p&gt;

&lt;p&gt;sshnet: bring back sshnet using ssh(1) mux mode&lt;/p&gt;

&lt;p&gt;sshnet: don&amp;rsquo;t leak &amp;ldquo;Dialing&amp;rdquo; connections when &amp;ldquo;connect&amp;rdquo; ctl write gets
interrupted&lt;/p&gt;

&lt;p&gt;sshnet: don&amp;rsquo;t leak error string&lt;/p&gt;

&lt;p&gt;sshnet: fix eof and close handling, use proper packet size, cleanup&lt;/p&gt;

&lt;p&gt;sshnet: fix memory leak&lt;/p&gt;

&lt;p&gt;sshnet: fix write count for ctl message writes&lt;/p&gt;

&lt;p&gt;sshnet: get rid of Announced state, simplify&lt;/p&gt;

&lt;p&gt;sshnet: implement listen (port forwarding)&lt;/p&gt;

&lt;p&gt;sshnet: pass on open failure error message, simplify&lt;/p&gt;

&lt;p&gt;sshnet: reduce memory consumption by lowering stack sizes&lt;/p&gt;

&lt;p&gt;tcs: clean up old port code, and avoid writing 0 to stdout&lt;/p&gt;

&lt;p&gt;troff: fix -ms mug (thanks aksr)&lt;/p&gt;

&lt;p&gt;upas/fs: don&amp;rsquo;t put messages on the lru that cannot be uncached&lt;/p&gt;

&lt;p&gt;upas/fs: fix %.*s format usage&lt;/p&gt;

&lt;p&gt;upas/fs: fix infinite loop in putcache (again)&lt;/p&gt;

&lt;p&gt;upas/fs: include mkupas in mkfile last to get default target&lt;/p&gt;

&lt;p&gt;upas/fs: release mailbox syncing lock after encountering error&lt;/p&gt;

&lt;p&gt;upas/fs: remove unused function pop3log&lt;/p&gt;

&lt;p&gt;upas/ned: fix %.*s format in parsesearch(), improve mkfile&lt;/p&gt;

&lt;p&gt;upas/scanmail: fix %.*s format in xprint(), improve mkfile&lt;/p&gt;

&lt;p&gt;upas/smtp: fix %.*s format for challenge in smtpcram()&lt;/p&gt;

&lt;p&gt;upas/smtpd: implement ipv6 support for ip blacklist, replace
v4parsecidr() with parseipandmask()&lt;/p&gt;

&lt;p&gt;uptime: rewrite in awk&lt;/p&gt;

&lt;p&gt;vmx: build vmx only for 386 or amd64&lt;/p&gt;

&lt;p&gt;vmx: check for draw initialization errors&lt;/p&gt;

&lt;p&gt;vt: dont make fs procs hang around when closing rio window&lt;/p&gt;

&lt;p&gt;vt: fix %.*s in sendnchars()&lt;/p&gt;

&lt;p&gt;walk: remove unused depth argument from dofile()&lt;/p&gt;

&lt;p&gt;wadfs: avoid comma operator after PBIT32() macros&lt;/p&gt;

&lt;p&gt;webfs: bracket literal ipv6 host in &amp;ldquo;Host:&amp;rdquo; header&lt;/p&gt;

&lt;p&gt;webfs: properly handle %.*s in url path and debug prints&lt;/p&gt;

&lt;p&gt;&lt;img src="http://9front.org/img/programmersmanual.v1.front.png" alt="front (programmer's manual)" /&gt;&lt;/p&gt;

&lt;h2&gt;DOCUMENTATION&lt;/h2&gt;

&lt;p&gt;dhcpd(8), ndb(6): group related ndb attributes together&lt;/p&gt;

&lt;p&gt;dhcpd(8), ndb(6): update documentation (thanks k0ga)&lt;/p&gt;

&lt;p&gt;dtracy(1): fix print(2) reference&lt;/p&gt;

&lt;p&gt;ip(3): document TCP ctl close command&lt;/p&gt;

&lt;p&gt;mach(2): fix byteswapping function signatures&lt;/p&gt;

&lt;p&gt;memdraw(2): remove references to iprint()&lt;/p&gt;

&lt;p&gt;plan9.ini(8): add USB section, documenting various usb options&lt;/p&gt;

&lt;p&gt;plan9.ini(8), boot(8): clarify the use of $rootdir and $rootspec&lt;/p&gt;

&lt;p&gt;rsa(8): add example for tinc(8) (thanks k0ga, qwx)&lt;/p&gt;

&lt;p&gt;segment(3): use bind -c in examples (thanks henesy)&lt;/p&gt;

&lt;p&gt;ssh(1): add sshnet(4) reference&lt;/p&gt;

&lt;p&gt;sshnet(4): add documentation&lt;/p&gt;

&lt;p&gt;sshnet(4): fix user@host syntax, add BUGS section, add ip(3) reference&lt;/p&gt;

&lt;p&gt;thread(2): threadsetname takes a fmt string&lt;/p&gt;

&lt;p&gt;added walk(1)&lt;/p&gt;

&lt;h2&gt;OTHER&lt;/h2&gt;

&lt;p&gt;arm64: add mkfile&lt;/p&gt;

&lt;p&gt;/sys/lib/plumb/basic: make plumbing page bookmarks work with relative
paths (thanks Tobias Heinicke)&lt;/p&gt;

&lt;p&gt;fix DST begin/end timestamps for South Australia&lt;/p&gt;

&lt;p&gt;fortunes: Open source may not be safe if it has no super excellent
moderator.&lt;/p&gt;

&lt;p&gt;inst/startether: skip ipv6 auto configuration when nora6 was specified&lt;/p&gt;

&lt;p&gt;dist/mkfile: aux/stub -d /n/src9/usr to avoid overbinding /usr in case
/n/src9 an / alias&lt;/p&gt;

&lt;p&gt;dist/mkfile: add *.pi3.img target for ARM64 raspberry pi3&lt;/p&gt;

&lt;p&gt;distproto: add /lib/ndb/dhcp/ and /lib/news/ directory (thanks lyndon)&lt;/p&gt;

&lt;p&gt;rootstub: add /sys/lib/dist/ndb/dhcp/&lt;/p&gt;

&lt;p&gt;rootstub: create arm and mips directories in /usr/glenda/bin (thanks
timclassic)&lt;/p&gt;

&lt;p&gt;rootstub: create arm64 directories&lt;/p&gt;

&lt;p&gt;vgadb: add t43p 1600x1200 panel entry&lt;/p&gt;

&lt;p&gt;lib: update pci database&lt;/p&gt;

&lt;p&gt;timezones: add India (thanks joe9)&lt;/p&gt;

&lt;p&gt;&lt;img src="http://9front.org/img/skinofevil.back.png" alt="back" /&gt;&lt;/p&gt;
 </description>
        </item>

        <item>
            <title><![CDATA[9FRONT "CALLING DICK TRACY" RELEASED]]></title>
            <author><![CDATA[sl@noreply.cat-v.org (sl)]]></author>
            <link>http://9front.org:80/releases/2018/12/31/0/</link>
            <guid isPermaLink="true">http://9front.org:80/releases/2018/12/31/0/</guid>
            <pubDate>Wed, 06 Apr 2022 17:15:18 -0400</pubDate>
            <description> &lt;p&gt;&lt;img src="http://9front.org/img/callingdicktracy.front.png" alt="front" /&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-6977.c7e7268b0786.iso.gz.torrent"&gt;http://9front.org/iso/9front-6977.c7e7268b0786.iso.gz.torrent&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-6977.c7e7268b0786.iso.gz"&gt;http://9front.org/iso/9front-6977.c7e7268b0786.iso.gz&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;DASH 1 MANUAL&lt;/h2&gt;

&lt;p&gt;&lt;a href="http://fqa.9front.org/dash1.callingdicktracy.pdf"&gt;http://fqa.9front.org/dash1.callingdicktracy.pdf&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://amzn.to/2SQ8ERL"&gt;https://amzn.to/2SQ8ERL&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;THANKS: to aiju for cover assistance&lt;/p&gt;

&lt;h2&gt;KERNEL AND DRIVERS&lt;/h2&gt;

&lt;p&gt;9boot: get rid of 64 byte line length limit&lt;/p&gt;

&lt;p&gt;9boot: don&amp;rsquo;t let user erase the prompt (thanks mischief)&lt;/p&gt;

&lt;p&gt;bootrc: &lt;em&gt;NEW&lt;/em&gt; experimental reboot method to load another kernel&lt;/p&gt;

&lt;p&gt;bootrc: remove $ff references (was old parsed /boot/boot argument list)&lt;/p&gt;

&lt;p&gt;kernel: change peek to return number of characters left rather than 0/-1&lt;/p&gt;

&lt;p&gt;kernel: fix allocb for BLOCKALIGN*2 &gt;= Hdrspc&lt;/p&gt;

&lt;p&gt;kernel: fix livelock in rebalance (thanks Richard Miller)&lt;/p&gt;

&lt;p&gt;kernel: fix tprof on multiprocessor&lt;/p&gt;

&lt;p&gt;kernel: remove unused static variable &amp;ldquo;sofar&amp;rdquo; from timerintr() (thanks mischief)&lt;/p&gt;

&lt;p&gt;kernel: sync two longjmp fixes from drawterm&lt;/p&gt;

&lt;p&gt;bcm: &lt;em&gt;NEW&lt;/em&gt; import changes for raspi2/3 from richard miller&lt;/p&gt;

&lt;p&gt;bcm: cleanup timer and clock code&lt;/p&gt;

&lt;p&gt;bcm: fix /dev/reboot text/data corruption (thanks richard miller)&lt;/p&gt;

&lt;p&gt;bcm: fix l2 cache maintenance routines for raspi3 (armv8)&lt;/p&gt;

&lt;p&gt;bcm: fix mysterious core clock resets under SMP (thanks richard miller)&lt;/p&gt;

&lt;p&gt;bcm: intrenable() can happen from any cpu in case of dma interrupts&lt;/p&gt;

&lt;p&gt;bcm: provide /dev/cputemp in a format stats can understand&lt;/p&gt;

&lt;p&gt;bcm: simplify irq handling by having per cpu Vctl chain&lt;/p&gt;

&lt;p&gt;bcm: simplify reboot code&lt;/p&gt;

&lt;p&gt;bcm: speed up co-processor operations by avoiding i+d cache flush on each operation&lt;/p&gt;

&lt;p&gt;pc, pc64: add pcienable() and pcidisable() functions&lt;/p&gt;

&lt;p&gt;pc, pc64: increase CONFADDR buffer from 4K to 24K&lt;/p&gt;

&lt;p&gt;pc, pc64: park application processors in rebootcode with mmu off&lt;/p&gt;

&lt;p&gt;pc drivers: use pcienable() to handle device power up and missing initialization&lt;/p&gt;

&lt;p&gt;devbridge: fix runt packets going through the bridge (thanks cinap)&lt;/p&gt;

&lt;p&gt;devip, ipconfig: avoid overflow on lifetime checks&lt;/p&gt;

&lt;p&gt;devip: fix arpread, dont return partial entries&lt;/p&gt;

&lt;p&gt;devip: fix default parameter calculation for router life-time&lt;/p&gt;

&lt;p&gt;devip: fix swapped tcp snd.scale and recv.scale in tcpstate() format (thanks joe9)&lt;/p&gt;

&lt;p&gt;devip: make updating ra6 router parameters atomic&lt;/p&gt;

&lt;p&gt;devip: only add interface route for &amp;ldquo;on-link&amp;rdquo; prefixes&lt;/p&gt;

&lt;p&gt;devip: remove unused QLock from udp and icmpv6 control blocks (thanks brho)&lt;/p&gt;

&lt;p&gt;devip: valid and prefered life-time should be unsigned, add remove6 ctl command&lt;/p&gt;

&lt;p&gt;devuart: don&amp;rsquo;t sleep in uartdrainoutput() when called splhi or without a process&lt;/p&gt;

&lt;p&gt;devusb: use Enotconf[] string constant&lt;/p&gt;

&lt;p&gt;devvmx: remove bogus . direntry&lt;/p&gt;

&lt;p&gt;ether82563: ignore i82753 checksums, fixes T60 ethernet&lt;/p&gt;

&lt;p&gt;ether82598: fix multicast filter (thanks aiju, joe9)&lt;/p&gt;

&lt;p&gt;etherx550: &lt;em&gt;NEW&lt;/em&gt; intel 10GB ethernet controlller x550 driver (thanks joe9)&lt;/p&gt;

&lt;p&gt;etheriwl: &lt;em&gt;NEW&lt;/em&gt; Centrino Wireless-N 1030 (thanks lksmk from brazil)&lt;/p&gt;

&lt;p&gt;etheriwl: &lt;em&gt;NEW&lt;/em&gt; support type 2000 devices and the 2200 chip in x230t&lt;/p&gt;

&lt;p&gt;mtx, ppc: remove cistrcmp() and cistrncmp() redefinition&lt;/p&gt;

&lt;p&gt;nusb/disk: also drive usb attached scsi devices&lt;/p&gt;

&lt;p&gt;nusb/disk: implement 64 bit lba read/write commands (16 byte commands)&lt;/p&gt;

&lt;p&gt;nusb/disk: dont issue capacity command when theres no media present&lt;/p&gt;

&lt;p&gt;nusb/ether: &lt;em&gt;NEW&lt;/em&gt; support for lan78xx (raspi3) (thanks richard miller)&lt;/p&gt;

&lt;p&gt;nusb/ether: tune buffer size parameters for SMSC ethernet (raspi) (thanks richard miller)&lt;/p&gt;

&lt;p&gt;nusb/joy: send magic packet to enable playstation controller events&lt;/p&gt;

&lt;p&gt;nusb/joy: update misleading comment (thanks Tobias Heinecke)&lt;/p&gt;

&lt;p&gt;nusb/kb: lilu dallas multitouch&lt;/p&gt;

&lt;p&gt;nusb/kb: multitouch support (touchscreens, stylus)&lt;/p&gt;

&lt;p&gt;nusb/kb: work arround broken split transaction on raspi&amp;rsquo;s dwc otg usb controller&lt;/p&gt;

&lt;p&gt;nusb/serial: &lt;em&gt;NEW&lt;/em&gt; support for CH340 serial converter&lt;/p&gt;

&lt;p&gt;nusb/serial: fix wrong guard statement (thanks deuteron)&lt;/p&gt;

&lt;p&gt;nusbrc: support for raspi3 ethernet&lt;/p&gt;

&lt;p&gt;nusbrc: prevent nusb/kb from attaching to sony ps3 controller&lt;/p&gt;

&lt;p&gt;usbehci, usbxhci: add &lt;em&gt;noehcihandoff= and &lt;/em&gt;noxhcihandoff= parameters&lt;/p&gt;

&lt;p&gt;usbxhci: delay after reset, preserve reserved bits in legacy status control register in handoff()&lt;/p&gt;

&lt;p&gt;usbxhci: only clear RW1C bits when set.&lt;/p&gt;

&lt;h2&gt;COMPILERS AND DEBUGGERS&lt;/h2&gt;

&lt;p&gt;5e: byte access incorrectly checked for long; brk has to round up addresses&lt;/p&gt;

&lt;p&gt;5i ki qi vi: avoid buffer overflow in command read loop&lt;/p&gt;

&lt;p&gt;ape/make: fix \ line continuation parsing&lt;/p&gt;

&lt;p&gt;acid: fix transcript&lt;/p&gt;

&lt;p&gt;cc: fix wrong &amp;ldquo;useless or misleading comparison&amp;rdquo; warning&lt;/p&gt;

&lt;p&gt;dtracy: add support for aggregations&lt;/p&gt;

&lt;p&gt;dtracy: avoid pointer to integer truncation warning on amd64&lt;/p&gt;

&lt;p&gt;dtracy: call dtptrigger with a struct pointer rather than a list of arguments; put return value in arg9&lt;/p&gt;

&lt;p&gt;dtracy: catch page faults&lt;/p&gt;

&lt;p&gt;dtracy: fix lexer bug&lt;/p&gt;

&lt;p&gt;dtracy: get rid of DTName struct, support more than three parts in a probe name, wildcard matching&lt;/p&gt;

&lt;p&gt;dtracy: missing break in dteverify&lt;/p&gt;

&lt;p&gt;kencc: make &amp;ldquo;function not declared&amp;rdquo; a warning unless compiling with -T&lt;/p&gt;

&lt;p&gt;kencc: turn &amp;ldquo;function args not checked&amp;rdquo; warning into &amp;ldquo;function not declared&amp;rdquo; error if appropriate&lt;/p&gt;

&lt;p&gt;kprof: fix precedence (thanks geoff)&lt;/p&gt;

&lt;p&gt;snap: add debug flag, make debug less verbose&lt;/p&gt;

&lt;p&gt;snap: be more conservative taking stack snapshot&lt;/p&gt;

&lt;p&gt;snap: check for overflows, cleanup error handling&lt;/p&gt;

&lt;p&gt;snap: consequently use ulong for page index and count&lt;/p&gt;

&lt;p&gt;snap: use Mach-&gt;szaddr as the width of the stack pointer (fixes snap on amd64)&lt;/p&gt;

&lt;h2&gt;LIBRARIES&lt;/h2&gt;

&lt;p&gt;ape: declare gethostname&lt;/p&gt;

&lt;p&gt;audio/libogg: sync to ogg v1.3.3&lt;/p&gt;

&lt;p&gt;libaml: allow amlmapio() to re-enter the interpreter (can happen by pciadd() -&gt; amleval())&lt;/p&gt;

&lt;p&gt;libc: &lt;em&gt;NEW&lt;/em&gt; procsetname()&lt;/p&gt;

&lt;p&gt;libc: &lt;em&gt;NEW&lt;/em&gt; utf2idn() and idn2utf() functions to deal with internationalized domain names&lt;/p&gt;

&lt;p&gt;libc: return number of bytes produced for idn2utf() and utf2idn()&lt;/p&gt;

&lt;p&gt;libdisk: catch null bytes in proto file, fix memory leaks&lt;/p&gt;

&lt;p&gt;libdisk: check for proper line termination in proto file parser&lt;/p&gt;

&lt;p&gt;libdraw: avoid deadlock for mouse ioproc sending on resizec&lt;/p&gt;

&lt;p&gt;libdraw: fix gengetwindow()&lt;/p&gt;

&lt;p&gt;libdtracy: wrong operator in XORI (thanks aiju)&lt;/p&gt;

&lt;p&gt;libhtml: increase Nestmax to render some convoluted pages (thanks fernan)&lt;/p&gt;

&lt;p&gt;libmach: change amd64 szreg to 8 (thanks charles forsyth)&lt;/p&gt;

&lt;p&gt;libmp: add tests for integer conversions&lt;/p&gt;

&lt;p&gt;libmp: mptov: make it actually work&lt;/p&gt;

&lt;p&gt;libmp: declare mpfactorial&lt;/p&gt;

&lt;p&gt;libmp: fix mptouv behaviour to match mptoui&lt;/p&gt;

&lt;p&gt;libndb: add missing ndbdedup.c&lt;/p&gt;

&lt;p&gt;libndb: make ndbipinfo() walk ipnet for all matching entries, concatenate and dedup result&lt;/p&gt;

&lt;p&gt;libsec: fix memory leak in pkcs1_decrypt()&lt;/p&gt;

&lt;p&gt;libttf: add SHZ[] instruction&lt;/p&gt;

&lt;p&gt;libttf: dont unset LOOP in SHC&lt;/p&gt;

&lt;p&gt;libttf: fix swapped argument in vscan()&amp;hellip;&lt;/p&gt;

&lt;p&gt;libttf: instruction 0x24 is DEPTH, not CLEAR&lt;/p&gt;

&lt;p&gt;libttf: SHZ also uses 0x36&lt;/p&gt;

&lt;h2&gt;PROGRAMS&lt;/h2&gt;

&lt;p&gt;awk(1): fix append operator to avoid truncating file&lt;/p&gt;

&lt;p&gt;acme: fix fd checks - initialize Window.rdselfd to -1 not 0&lt;/p&gt;

&lt;p&gt;cfs: close mount half of pipe, fixes cfs not exiting when unmounted&lt;/p&gt;

&lt;p&gt;cwfs: Disallow &amp;lsquo;/&amp;rsquo; in file names.&lt;/p&gt;

&lt;p&gt;disk/mkfs: remove unused cputype variable (thanks kvik)&lt;/p&gt;

&lt;p&gt;dnstcp: temporarily switch on resolver mode so we can resolve the dnsslaves for axfr check&lt;/p&gt;

&lt;p&gt;dossrv: use 64 bit vlong for sectors&lt;/p&gt;

&lt;p&gt;dossrv: make GLONG() return ulong, handle getsect() error in dostat()&lt;/p&gt;

&lt;p&gt;dossrv: cleanup&lt;/p&gt;

&lt;p&gt;factotum: rsa: use mptober() to get right adjusted result instead of mptobe() and memset()&lt;/p&gt;

&lt;p&gt;forp: change indexing to verilog-like semantics&lt;/p&gt;

&lt;p&gt;fplot: add min/max operators&lt;/p&gt;

&lt;p&gt;fplot: add support for readout with middle mouse button&lt;/p&gt;

&lt;p&gt;fplot: color different curves&lt;/p&gt;

&lt;p&gt;fplot: compute y range correctly when used with multiple graphs&lt;/p&gt;

&lt;p&gt;fplot: fix operator associativity&lt;/p&gt;

&lt;p&gt;games/blit: clean up cpu.c and make it pass tests&lt;/p&gt;

&lt;p&gt;games/c64: make keyboard table more readable&lt;/p&gt;

&lt;p&gt;games/doom: fix music for patch wads&lt;/p&gt;

&lt;p&gt;games/gb: when the LCD is turned off, reset ppuy and ppustate to 0, fixes bug in dragon warriors iii reported by mischief&lt;/p&gt;

&lt;p&gt;games/md: use cpu.c from blit&lt;/p&gt;

&lt;p&gt;hget: do a HEAD request to check if the file is already complete (thanks miscief)&lt;/p&gt;

&lt;p&gt;hgwebfs: read to eof by default to match urllib2 behavior&lt;/p&gt;

&lt;p&gt;hgwebfs: write headers individually, so they are not limited by webfs iounit (thanks mischief)&lt;/p&gt;

&lt;p&gt;ndb/dns: avoid format strings in procname&lt;/p&gt;

&lt;p&gt;ndb/dns: do recursive lookup for dnsslave=&lt;/p&gt;

&lt;p&gt;ndb/dns: fix format print warning for procsetname(), cleanup&lt;/p&gt;

&lt;p&gt;ndb/dns: send_notify() to multiple ip addresses in parallel, filter myip()&lt;/p&gt;

&lt;p&gt;ndb/dns: use libc&amp;rsquo;s new idn functions&lt;/p&gt;

&lt;p&gt;ndb/dns: use nil for pointers in dnresolve() args&lt;/p&gt;

&lt;p&gt;ndb/dnstcp: only lookup the expected address type in findserver()&lt;/p&gt;

&lt;p&gt;ndb/dnstcp: restrict DNS zone transfers to clients listed as dnsslave=&lt;/p&gt;

&lt;p&gt;ndb/dnstcp: return a proper non-answer when rejecting zone transfer&lt;/p&gt;

&lt;p&gt;ndb/inform: handle internationalized domain names&lt;/p&gt;

&lt;p&gt;netaudit: handle multiple ip addresses&lt;/p&gt;

&lt;p&gt;ip/dhcp6d: handle internationalized domain names&lt;/p&gt;

&lt;p&gt;ip/dhcpd, ip/tftpd: change default for tftp homedir to /&lt;/p&gt;

&lt;p&gt;ip/dhcpd: Add swap server support in dhcpd (thanks k0ga)&lt;/p&gt;

&lt;p&gt;ip/dhcpd: handle internationalized domain names&lt;/p&gt;

&lt;p&gt;ip/dhcpd: implement rfc3397 dhcp search domain option (dnsdomain)&lt;/p&gt;

&lt;p&gt;ip/ipconfig: default onlink and autoflag to 1&lt;/p&gt;

&lt;p&gt;ip/ipconfig: handle internationalized domain names&lt;/p&gt;

&lt;p&gt;ip/ipconfig: handle noconfig flag for router advertisement, add debug prints, cleanup&lt;/p&gt;

&lt;p&gt;ip/ipconfig: implement rfc3397 dhcp dns search option (dnsdomain)&lt;/p&gt;

&lt;p&gt;ip/ipconfig: increase maximum host and domainname size to 255 bytes. idn for -h option&lt;/p&gt;

&lt;p&gt;ip/ipconfig: remove expired default routes on router advertisement&lt;/p&gt;

&lt;p&gt;ip/ipconfig: silently ignore prefix information with Autonomous flag clear&lt;/p&gt;

&lt;p&gt;ip/ipconfig: valid lifetime is in seconds, not milliseconds.&lt;/p&gt;

&lt;p&gt;ip/tftpd: remove sunkernel hack&lt;/p&gt;

&lt;p&gt;kbdfs: don&amp;rsquo;t get confused by broken utf8&lt;/p&gt;

&lt;p&gt;pc: reference counting bug&lt;/p&gt;

&lt;p&gt;plumber: fix memory and filedescriptor leaks (thanks BurnZeZ)&lt;/p&gt;

&lt;p&gt;python: explicitly declare WaitForThreadShutdown as void&lt;/p&gt;

&lt;p&gt;rc: ignore $cdpath for # device rooted paths (thanks kivik)&lt;/p&gt;

&lt;p&gt;rc: implement $&amp;ldquo;x in terms of Xdol() and new Xqw() instruction&lt;/p&gt;

&lt;p&gt;rc: skip searchpath for &amp;ldquo;&amp;rdquo;, &amp;ldquo;.&amp;rdquo; and &amp;ldquo;..&amp;rdquo;&lt;/p&gt;

&lt;p&gt;rc: use searchpath() logic to handle $cdpath&lt;/p&gt;

&lt;p&gt;rcpu: fix pvar to initialize empty variables (thanks mycroftiv)&lt;/p&gt;

&lt;p&gt;rio: get rid of window delete thread, fix mysterious disappearing windows&lt;/p&gt;

&lt;p&gt;sed: only dollars as first address are a problem for -u&lt;/p&gt;

&lt;p&gt;ssh: fix spinning due to sticky intr flag on connection timeout&lt;/p&gt;

&lt;p&gt;ssh: handle MSG_GOBAL_REQUEST&lt;/p&gt;

&lt;p&gt;ssh: handle unknown MSG_CHANNE_REQUEST messages&lt;/p&gt;

&lt;p&gt;sshfs: add exits(nil) to threadmain&lt;/p&gt;

&lt;p&gt;sum, md5sum, sha1sum: set exit status properly on open/read errors&lt;/p&gt;

&lt;p&gt;truetypefs: &lt;em&gt;NEW&lt;/em&gt; (unfinished but working) truetypefs&lt;/p&gt;

&lt;p&gt;truetypefs: fall back to width if advance is zero&lt;/p&gt;

&lt;p&gt;truetypefs: fix subfont indices (thanks aiju!)&lt;/p&gt;

&lt;p&gt;truetypefs: use /lib/font/ttf as default font path&lt;/p&gt;

&lt;p&gt;upas/imap4d: ignore messages without digest info&lt;/p&gt;

&lt;p&gt;upas/fs: allow msgincref() with mb-&gt;refs == 0&lt;/p&gt;

&lt;p&gt;upas/fs: avoid switch on vlong breaking build (thanks k0ga)&lt;/p&gt;

&lt;p&gt;upas/fs: checkfid() might be called with uninitialized fid, ignore&lt;/p&gt;

&lt;p&gt;upas/fs: delete extra binaries&lt;/p&gt;

&lt;p&gt;upas/fs: don&amp;rsquo;t enter mailbox into hashtree when it is being freed&lt;/p&gt;

&lt;p&gt;upas/fs: fix broken body.ext in walk (thanks sl)&lt;/p&gt;

&lt;p&gt;upas/fs: fix infinite loop in putcache&lt;/p&gt;

&lt;p&gt;upas/fs: fix walk&lt;/p&gt;

&lt;p&gt;upas/fs: handle errors from fetch for cachebody()/cacheheaders()&lt;/p&gt;

&lt;p&gt;upas/fs: keep messages &lt;em&gt;marked&lt;/em&gt; for deletion in the index&lt;/p&gt;

&lt;p&gt;upas/fs: remove now unnecessary &amp;ldquo;force&amp;rdquo; argument to cachefree&lt;/p&gt;

&lt;p&gt;upas/fs: rework the refcounting, use 64bit qid path, add checks&lt;/p&gt;

&lt;p&gt;vt: fix backup/forward after resize&lt;/p&gt;

&lt;p&gt;vt: implement line selection by double click&lt;/p&gt;

&lt;p&gt;vt: implement word select&lt;/p&gt;

&lt;p&gt;vt: make selecting() wait until all buttons are lifted avoiding menu when chording&lt;/p&gt;

&lt;p&gt;webfs: fix memory leak in Nfmt(), use libc&amp;rsquo;s new idn functions&lt;/p&gt;

&lt;p&gt;webfs: remove automatic Referer header&lt;/p&gt;

&lt;p&gt;webfs: write headers individually so they are not limited in sum to the 8k buffer&lt;/p&gt;

&lt;h2&gt;DOCUMENTATION&lt;/h2&gt;

&lt;p&gt;add dtracy manpage&lt;/p&gt;

&lt;p&gt;atazz(8): fix probe formatting&lt;/p&gt;

&lt;p&gt;boot(8): document tls and reboot methods&lt;/p&gt;

&lt;p&gt;2c(1): document some differences with ANSI C&lt;/p&gt;

&lt;p&gt;kbdfs(8): fix nit&lt;/p&gt;

&lt;p&gt;keyboard(2) spelling (thanks Amavect)&lt;/p&gt;

&lt;p&gt;idn(2): add documentation for idn2utf() and utf2idn()&lt;/p&gt;

&lt;p&gt;mp(2): clarify mptoa() and mpfmt() default base&lt;/p&gt;

&lt;p&gt;mp(2): document mpfactorial&lt;/p&gt;

&lt;p&gt;mp(2): fix spelling&lt;/p&gt;

&lt;p&gt;namespace(4): document new TrueType path, drop unused Hershey fonts path&lt;/p&gt;

&lt;p&gt;namespace(4): fix $home bin paths&lt;/p&gt;

&lt;p&gt;procsetname(2): provide manpage&lt;/p&gt;

&lt;p&gt;ptrap(4): fix formatting&lt;/p&gt;

&lt;p&gt;rio(1): fix typo&lt;/p&gt;

&lt;p&gt;sdahci(3): correct device name for top level control messages (thanks joe9)&lt;/p&gt;

&lt;p&gt;truetypefs(4): document truetypefs, fix example path&lt;/p&gt;

&lt;p&gt;vt(1): vt doesnt exit when the host process exits as claimed (thanks driusan)&lt;/p&gt;

&lt;h2&gt;OTHER&lt;/h2&gt;

&lt;p&gt;add ndb entries for il rcpu&lt;/p&gt;

&lt;p&gt;/sys/lib/dist/mkfile: add pi.img target for raspi sdcard image&lt;/p&gt;

&lt;p&gt;add /sys/src/boot/bcm/mkfile to download raspberry pi bootcode firmware&lt;/p&gt;

&lt;p&gt;cpurc: filter ipv6 loopback address for automatic ip address setup (thanks fhs)&lt;/p&gt;

&lt;p&gt;cpurc: handle multiple auth servers&lt;/p&gt;

&lt;p&gt;fortunes: [9fans] &amp;hellip;.. UNSUBSCRIBE_HELP NEEDED&lt;/p&gt;

&lt;p&gt;fshalt: wait for fileservers command file to vanish&lt;/p&gt;

&lt;p&gt;get rid of /lib/tftpd&lt;/p&gt;

&lt;p&gt;upas: get rid of broken validatesender example, remove redundant upas/misc and setup target&lt;/p&gt;

&lt;p&gt;&lt;img src="http://9front.org/img/callingdicktracy.back.png" alt="back" /&gt;&lt;/p&gt;
 </description>
        </item>

        <item>
            <title><![CDATA[9FRONT "RUN FROM ZONE!" RELEASED]]></title>
            <author><![CDATA[sl@noreply.cat-v.org (sl)]]></author>
            <link>http://9front.org:80/releases/2018/09/09/0/</link>
            <guid isPermaLink="true">http://9front.org:80/releases/2018/09/09/0/</guid>
            <pubDate>Wed, 06 Apr 2022 17:15:13 -0400</pubDate>
            <description> &lt;p&gt;&lt;img src="http://9front.org/img/runfromzone.front.png" alt="front" /&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-6720.d6cb2bd03583.iso.gz.torrent"&gt;http://9front.org/iso/9front-6720.d6cb2bd03583.iso.gz.torrent&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-6720.d6cb2bd03583.iso.gz"&gt;http://9front.org/iso/9front-6720.d6cb2bd03583.iso.gz&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;DASH 1 MANUAL&lt;/h2&gt;

&lt;p&gt;&lt;a href="http://fqa.9front.org/dash1.runfromzone.pdf"&gt;http://fqa.9front.org/dash1.runfromzone.pdf&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;COMING SOON: Print edition!&lt;/p&gt;

&lt;h2&gt;KERNEL AND DRIVERS&lt;/h2&gt;

&lt;p&gt;9boot: DHCPv6 support for efi&lt;/p&gt;

&lt;p&gt;9boot: detect SYSLINUX &amp;ldquo;memdisk&amp;rdquo; and pass to kernel via ramdisk0= parameter&lt;/p&gt;

&lt;p&gt;bootrc: write fatal error message to fd2&lt;/p&gt;

&lt;p&gt;kernel: don&amp;rsquo;t cap the minimum sleep time to TK2MS(1) for syssleep()&lt;/p&gt;

&lt;p&gt;kernel: stop the practice of passing DMDIR to devir() perm argument&lt;/p&gt;

&lt;p&gt;pc kernel: get rid of ugly and partially broken cpuid macros&lt;/p&gt;

&lt;p&gt;pc, pc64: look for &amp;ldquo;RSD PTR &amp;rdquo; in ACPI reserved memory region from e820 map&lt;/p&gt;

&lt;p&gt;pc, pc64: make mapalloc() and mapfree() static in memory.c&lt;/p&gt;

&lt;p&gt;pc64: fix fpu bug&lt;/p&gt;

&lt;p&gt;pc64: update headers to match pc&lt;/p&gt;

&lt;p&gt;pc: fix ugly and partially broken switch() statement&lt;/p&gt;

&lt;p&gt;devarch: fix /dev/msr (thanks joe9, aiju)&lt;/p&gt;

&lt;p&gt;devaoe: fix dotdot walk in devlinkdir, make perms consistent&lt;/p&gt;

&lt;p&gt;devdraw: zero initialize DImage.dscreen pointer (vnc, drawterm)&lt;/p&gt;

&lt;p&gt;devenv: make #ec files not show up as world writable&lt;/p&gt;

&lt;p&gt;devip: arp: interface address only specifies the interface, not the source address for route lookup&lt;/p&gt;

&lt;p&gt;devip: do not icmp reply on multicast destination&lt;/p&gt;

&lt;p&gt;devip: don&amp;rsquo;t pad the tag for routing commands (fixes removing routes with &amp;lt; 4 character tags)&lt;/p&gt;

&lt;p&gt;devip: don&amp;rsquo;t send arp requests from null address&lt;/p&gt;

&lt;p&gt;devip: fix flush, copy tag when replacing route entry&lt;/p&gt;

&lt;p&gt;devip: fix missing wunlock() for &amp;ldquo;ipifc not yet bound to device&amp;rdquo; case, don&amp;rsquo;t create multicast entry on error&lt;/p&gt;

&lt;p&gt;devip: fix multicastarp() when ipconfig assigned the 0 address&lt;/p&gt;

&lt;p&gt;devip: fix router adv/sol options validation (options padded to 8 bytes)&lt;/p&gt;

&lt;p&gt;devip: fix udp checksum&lt;/p&gt;

&lt;p&gt;devip: fix use after free in ipifcremmulti()&lt;/p&gt;

&lt;p&gt;devip: make il connect fail quickly when theres no route&lt;/p&gt;

&lt;p&gt;devip: reject incompatible multicast/interface ip address pairs for ipifcaddmulti()&lt;/p&gt;

&lt;p&gt;devmnt: make sure auth chan is on said conection in mntattach()&lt;/p&gt;

&lt;p&gt;devmouse: produce signed msec timestamp in /dev/mouse, accept unsigned on write&lt;/p&gt;

&lt;p&gt;devvga: disable cursor on shutdown avoiding graphics glitches on reboot&lt;/p&gt;

&lt;p&gt;nusb/ether: fix ethertype filtering&lt;/p&gt;

&lt;p&gt;nusbrc: add LG G5 for nusb/ether&lt;/p&gt;

&lt;p&gt;sdloop: &lt;em&gt;NEW&lt;/em&gt; import sdloop driver (thanks erik)&lt;/p&gt;

&lt;p&gt;sdram: &lt;em&gt;NEW&lt;/em&gt; experimental ramdisk driver&lt;/p&gt;

&lt;p&gt;sdram: &lt;em&gt;NEW&lt;/em&gt; properly support multiple ramdisks, so that ramdiskX corresponds to sdZX&lt;/p&gt;

&lt;p&gt;wifi: lilu dallas multirate&lt;/p&gt;

&lt;p&gt;audiohda: support Intel Sunrise Point-LP on thinkpad X1&lt;/p&gt;

&lt;p&gt;etheriwl: add pci did for WifiLink 5300 (thans senthil)&lt;/p&gt;

&lt;p&gt;igfx: support blanking by turning off panel power and backlight&lt;/p&gt;

&lt;p&gt;rtl8169: fix receive for nuc BOXNUC7CJYH&lt;/p&gt;

&lt;h2&gt;LIBRARIES&lt;/h2&gt;

&lt;p&gt;ape: add some common fields for stat, grp and pwd&lt;/p&gt;

&lt;p&gt;ape: add strnlen&lt;/p&gt;

&lt;p&gt;ape: fix auth.h&lt;/p&gt;

&lt;p&gt;ape: floating point improvements (thanks spew)&lt;/p&gt;

&lt;p&gt;libttf: &lt;em&gt;NEW&lt;/em&gt; add libttf for truetype font rendering&lt;/p&gt;

&lt;p&gt;libdraw: accept unsigned msec timestamp in /dev/mouse&lt;/p&gt;

&lt;p&gt;libip: ignore ipv6 link local addresses for myipaddr()&lt;/p&gt;

&lt;p&gt;libmach: substitute /dev/zero for /proc/$pid/fpregs when missing (for snapfs)&lt;/p&gt;

&lt;p&gt;libogg: nuke old libogg.au&lt;/p&gt;

&lt;p&gt;libvorbis: fix broken free() (thanks mischief)&lt;/p&gt;

&lt;p&gt;mklib: add %.acid target&lt;/p&gt;

&lt;h2&gt;PROGRAMS&lt;/h2&gt;

&lt;p&gt;6c, 8c: Fix nocast cast bug which prevents address arithmetic from being computed at compile time&lt;/p&gt;

&lt;p&gt;Bfn improvements&lt;/p&gt;

&lt;p&gt;acme: add spacesindent mode&lt;/p&gt;

&lt;p&gt;acme: pass pointer to int type to avoid pointer to int cast warning&lt;/p&gt;

&lt;p&gt;asaudit: make error more explicit&lt;/p&gt;

&lt;p&gt;authsrv: implement AuthNTLM&lt;/p&gt;

&lt;p&gt;authsrv: log message when no AES key is found for pak&lt;/p&gt;

&lt;p&gt;authsrv: separate MSCHAP(v2) and NTLM(v2) authentication&lt;/p&gt;

&lt;p&gt;authsrv: work arround linux omiting final Z(4) after the AvrPairs&lt;/p&gt;

&lt;p&gt;camv: fix leak on resize&lt;/p&gt;

&lt;p&gt;cc: fix result of operation not used warning for void casts&lt;/p&gt;

&lt;p&gt;cwfs: cwfs -a option misleading&lt;/p&gt;

&lt;p&gt;dc: fix off by one in stack overflow check (thanks BurnZeZ)&lt;/p&gt;

&lt;p&gt;dontkill: explicitely set exit status to &amp;lsquo;&amp;rsquo;&lt;/p&gt;

&lt;p&gt;emulators ui: add option for fixed factor scaling and bound scale vertically&lt;/p&gt;

&lt;p&gt;emulators ui: don&amp;rsquo;t call flushmouse twice&lt;/p&gt;

&lt;p&gt;emulators ui: don&amp;rsquo;t drink and code&lt;/p&gt;

&lt;p&gt;emulators ui: fix input botch and typo&lt;/p&gt;

&lt;p&gt;fplot: draw axes; zoom more naturally; unzoom&lt;/p&gt;

&lt;p&gt;games/dmid: &lt;em&gt;NEW&lt;/em&gt; add games/dmid and games/opl3&lt;/p&gt;

&lt;p&gt;games/dmid: &lt;em&gt;NEW&lt;/em&gt; add support for midi streams&lt;/p&gt;

&lt;p&gt;games/dmid: &lt;em&gt;NEW&lt;/em&gt; better fnumber calculation and fix fine tuning for 2nd voice&lt;/p&gt;

&lt;p&gt;games/doom: don&amp;rsquo;t set repl if scale is 1&lt;/p&gt;

&lt;p&gt;games/doom: use wadfs to expose music lumps&lt;/p&gt;

&lt;p&gt;games/dpic: &lt;em&gt;NEW&lt;/em&gt; add games/dpic and games/todpic&lt;/p&gt;

&lt;p&gt;games/gb: attempt at fixing sprite priority&lt;/p&gt;

&lt;p&gt;games/gb: fix mbc5 register addressing (fixes warioland3 gamebreaking bug)&lt;/p&gt;

&lt;p&gt;games/gba: handle 8bit writes to vram&lt;/p&gt;

&lt;p&gt;games/midi: properly skip sysex messages&lt;/p&gt;

&lt;p&gt;games/mines: add missing checks for UseGhost&lt;/p&gt;

&lt;p&gt;games/mus: fix note volume and channel selection; simplify&lt;/p&gt;

&lt;p&gt;games/snes: fix input botch&lt;/p&gt;

&lt;p&gt;hjfs: fix unbounded recursion bug in hjfs&lt;/p&gt;

&lt;p&gt;hjfs: set group of new files to that of the parent directory (thanks umbraticus)&lt;/p&gt;

&lt;p&gt;ip/cifsd: fix ntlmv2 authentication&lt;/p&gt;

&lt;p&gt;ip/cifsd: limit response data count in TRANS2 for remotebuffersize, avoid empty filename for the root&lt;/p&gt;

&lt;p&gt;ip/dhcp6d: &lt;em&gt;NEW&lt;/em&gt; add minimal stateless DHCPv6 server for network boot and DNS configuration&lt;/p&gt;

&lt;p&gt;ip/dhcp6d: &lt;em&gt;NEW&lt;/em&gt; make constants for message types, check server identifier in request, only recheck ndb every minute&lt;/p&gt;

&lt;p&gt;ip/dhcp6d: &lt;em&gt;NEW&lt;/em&gt; ignore short and from non-local source packets&lt;/p&gt;

&lt;p&gt;ip/dhcp6d: &lt;em&gt;NEW&lt;/em&gt; only announce all-dhcp-servers multicast address on interface with link-local address on it&lt;/p&gt;

&lt;p&gt;ip/dhcpd: add varargck pragma for warning() and fatal(), do syserr with %r format&lt;/p&gt;

&lt;p&gt;ip/dhcpd: handle multiple networks on the same interface, dont get confused by v6 interface address&lt;/p&gt;

&lt;p&gt;ip/dhcpd: parseip() error handling, make sure client ip is ipv4, add explicit length arguments to lookupname() and lookupserver()&lt;/p&gt;

&lt;p&gt;ip/dhcpd: reject bogus requests, handle multiple ether= attributes in ndb, cleanup&lt;/p&gt;

&lt;p&gt;ip/ipconfig: add missing {} as DEBUG() is a macro&lt;/p&gt;

&lt;p&gt;ip/ipconfig: add varargck pragma for warning() function&lt;/p&gt;

&lt;p&gt;ip/ipconfig: call mklladdr() to get conf.hwa initialized for ipv6&lt;/p&gt;

&lt;p&gt;ip/ipconfig: check for recvra 0 on timeout&lt;/p&gt;

&lt;p&gt;ip/ipconfig: make ra6 daemon less chatty, log to /sys/log/ipconfig instead of /sys/log/v6routeradv&lt;/p&gt;

&lt;p&gt;ip/ipconfig: simplify by combining mklladdr() into mkclientid()&lt;/p&gt;

&lt;p&gt;ip/ipconfig: use ipmove() instead of memmove()&lt;/p&gt;

&lt;p&gt;ip/tftpd: deal with block wrap arround&lt;/p&gt;

&lt;p&gt;kbdfs: handle mouse control (Kmouse, Kshift button swap) in parallel, bring back ^X form handling&lt;/p&gt;

&lt;p&gt;kbdfs: ignore first 16 scancodes (number row) in kbtabctl[] for control key reverse mapping&lt;/p&gt;

&lt;p&gt;mothra: Persist &amp;lsquo;k&amp;rsquo; command in mothra and add matching -k flag (thanks piroko)&lt;/p&gt;

&lt;p&gt;ndb/cs: add -6 flag for v6 only lookups and &amp;ldquo;ipv4&amp;rdquo; control message to toggle v4 lookups.&lt;/p&gt;

&lt;p&gt;ndb/cs: make ipv6 only host practical by checking ip version on local interfaces&lt;/p&gt;

&lt;p&gt;ndb/cs: prevent deadlock with ndb/cs by mounting /srv/dns &lt;em&gt;AFTER&lt;/em&gt; /net&lt;/p&gt;

&lt;p&gt;ndb/cs: don&amp;rsquo;t do dns lookups when all we got is loopback or link local addresses&lt;/p&gt;

&lt;p&gt;ndb/dns: fix delegation with norecursion (-R flag)&lt;/p&gt;

&lt;p&gt;ndb/dns: fix encoding of srv record target&lt;/p&gt;

&lt;p&gt;ndb/dnsdebug: handle .ip6.arpa names&lt;/p&gt;

&lt;p&gt;ndb/dnsgetip: report errors when dns resolution fails&lt;/p&gt;

&lt;p&gt;ndb/dnsquery: handle .ip6.arpa names, don&amp;rsquo;t mount the dns service&lt;/p&gt;

&lt;p&gt;play: handle file names containing consecutive spaces&lt;/p&gt;

&lt;p&gt;rc: fix Xpipefd unbalancing the redir stack&lt;/p&gt;

&lt;p&gt;screenrc: bind &amp;lsquo;#v&amp;rsquo; when not already done (for cpu servers)&lt;/p&gt;

&lt;p&gt;ssh: add -r for extra raw mode&lt;/p&gt;

&lt;p&gt;ssh: fix nil dereference when TERM isnt set and -r is requested&lt;/p&gt;

&lt;p&gt;ssh: wait for remote channel close (thanks piroko)&lt;/p&gt;

&lt;p&gt;sshfs: if we&amp;rsquo;re going to annoy everyone we should at least match documentation&lt;/p&gt;

&lt;p&gt;stats: fix crash with -Y fag when window too narrow&lt;/p&gt;

&lt;p&gt;stats: read cputemp as C, set scale max to 100 C&lt;/p&gt;

&lt;p&gt;stats: fix etherstats, avoid vmax == 0&lt;/p&gt;

&lt;p&gt;sysinfo: minor formatting fix&lt;/p&gt;

&lt;p&gt;tcs: shift-jis: add support for half-width kana&lt;/p&gt;

&lt;p&gt;tcs: support EUC-JP JIS X 0212 codes&lt;/p&gt;

&lt;p&gt;upas/nedmail: marshal(1) options -n and -8 are mutually exclusive&lt;/p&gt;

&lt;p&gt;upas/smtp: allow remote port to be set to something other than smtp (e.g. ssmtp)&lt;/p&gt;

&lt;p&gt;upas/smtp: use current login id in absence of -u option (as per man page)&lt;/p&gt;

&lt;p&gt;valley: call srand so that actual random phrases are used&lt;/p&gt;

&lt;p&gt;vncs: fix mistake &amp;ldquo;screen&amp;rdquo; vs &amp;ldquo;gscreen&amp;rdquo;, thanks eekee&lt;/p&gt;

&lt;p&gt;vncs: silence devdraw debug prints&lt;/p&gt;

&lt;p&gt;vncs: support for desktop resize extension, update devdraw&lt;/p&gt;

&lt;p&gt;vncv: adjust window size on desktop resize, fix canresize checks&lt;/p&gt;

&lt;p&gt;vncv: handle [] enclosed literal ipv6 addresses in host&lt;/p&gt;

&lt;p&gt;vncv: implement extended DesktopSize extension, cleanup&lt;/p&gt;

&lt;p&gt;vt: implement proper selections (thanks Ori_B)&lt;/p&gt;

&lt;p&gt;webfs: don&amp;rsquo;t handle unknown status codes as continuations, reset status when handling continuation to avoid infinite loop&lt;/p&gt;

&lt;p&gt;win: bind the text file properly instead of a special case in "&lt;/p&gt;

&lt;h2&gt;DOCUMENTATION&lt;/h2&gt;

&lt;p&gt;avl(2): add avlmin/avlmax in synopsis&lt;/p&gt;

&lt;p&gt;dc(1): add pi program as example&lt;/p&gt;

&lt;p&gt;getuser(2): add source or sysname()&lt;/p&gt;

&lt;p&gt;hgfs(4): fix typo (thanks piroko)&lt;/p&gt;

&lt;p&gt;ip(3): document ipifc ipv6 connection and fix delay formatting&lt;/p&gt;

&lt;p&gt;mothra(1): fix formatting&lt;/p&gt;

&lt;p&gt;ndb(8): ndb/inform also publishes ipv6 address now&lt;/p&gt;

&lt;p&gt;plan9.ini(8) iwlwifi essid/bssid misleading&lt;/p&gt;

&lt;p&gt;sshfs(4): don&amp;rsquo;t drink and troff&lt;/p&gt;

&lt;p&gt;sshfs(4): language&lt;/p&gt;

&lt;p&gt;sshfs(4): replace the much maligned -r option&lt;/p&gt;

&lt;p&gt;stats(8): document -z flag (thanks xcko)&lt;/p&gt;

&lt;p&gt;ttfrender(1): &lt;em&gt;NEW&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;wadfs(4): fix typo&lt;/p&gt;

&lt;h2&gt;OTHER&lt;/h2&gt;

&lt;p&gt;/sys/lib/dist/ndb/common: synchronize root servers and link to root hints source&lt;/p&gt;

&lt;p&gt;fix incorrect character range in vga/unicode.font leading to missing CJK characters&lt;/p&gt;

&lt;p&gt;turkey simplified timezone (thanks erkin from 9front ml)&lt;/p&gt;

&lt;p&gt;update pci database&lt;/p&gt;

&lt;p&gt;fortunes: I&amp;rsquo;ve been looking into running Plan 9 in JSLinux &amp;ndash; Skip Tavakkolian&lt;/p&gt;

&lt;p&gt;&lt;img src="http://9front.org/img/runfromzone.back.png" alt="back" /&gt;&lt;/p&gt;
 </description>
        </item>

        <item>
            <title><![CDATA[9FRONT "GHOST IN THE MINESWEEPER SHELL" RELEASED]]></title>
            <author><![CDATA[sl@noreply.cat-v.org (sl)]]></author>
            <link>http://9front.org:80/releases/2018/05/14/0/</link>
            <guid isPermaLink="true">http://9front.org:80/releases/2018/05/14/0/</guid>
            <pubDate>Wed, 06 Apr 2022 17:15:04 -0400</pubDate>
            <description> &lt;p&gt;&lt;img src="http://9front.org/img/ghostintheminesweepershell.front.png" alt="front" /&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-6517.dcfbb100317e.iso.gz.torrent"&gt;http://9front.org/iso/9front-6517.dcfbb100317e.iso.gz.torrent&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-6517.dcfbb100317e.iso.gz"&gt;http://9front.org/iso/9front-6517.dcfbb100317e.iso.gz&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;DASH 1 MANUAL&lt;/h2&gt;

&lt;p&gt;&lt;a href="http://fqa.9front.org/dash1.ghostintheminesweepershell.pdf"&gt;http://fqa.9front.org/dash1.ghostintheminesweepershell.pdf&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;KERNEL AND DRIVERS&lt;/h2&gt;

&lt;p&gt;kernel: add missing ethermii.h dependencies.  patch from cinap_lenrek&lt;/p&gt;

&lt;p&gt;kernel: fix missing header dependency for ethersink.$O&lt;/p&gt;

&lt;p&gt;kernel: let /rc/bin/diskparts attach #k after #S partitions are loaded
up&lt;/p&gt;

&lt;p&gt;kernel: move devether and wifi to port/&lt;/p&gt;

&lt;p&gt;kernel: properly handle bad attach specifiers&lt;/p&gt;

&lt;p&gt;aijuboard bootloader: fix 10BASE-T / 100BASE-TX support&lt;/p&gt;

&lt;p&gt;pc64: add magic _intrr() symbol for ktrace (thanks mischief)&lt;/p&gt;

&lt;p&gt;pc64: fix &lt;em&gt;intrr(), avoid the linker moving &lt;/em&gt;intrr() arround&lt;/p&gt;

&lt;p&gt;zynq: fix 10BASE-T and 100BASE-TX support&lt;/p&gt;

&lt;p&gt;devether: mux bridges, portable netconsole&lt;/p&gt;

&lt;p&gt;devether: remove (unimplemented) detach, allow device creation on
attach&lt;/p&gt;

&lt;p&gt;devfs: only set configed flag if config was read successfully&lt;/p&gt;

&lt;p&gt;devip: add &amp;ldquo;reflect&amp;rdquo; ctl message, fix memory leaks in icmpv6, fix
source address for icmpttlexceeded, cleanup devip: fix crash on
negative dev id on attach&lt;/p&gt;

&lt;p&gt;devip: fix ipv6 icmp unreachable handling, fix retransmit, fix ifc
locking, remove tentative check&lt;/p&gt;

&lt;p&gt;devip: implement source specific routing&lt;/p&gt;

&lt;p&gt;devip: improve arp and ndp code&lt;/p&gt;

&lt;p&gt;devip: increment in counter &lt;em&gt;AFTER&lt;/em&gt; acquiering the ifc lock or
loopbackmedium&lt;/p&gt;

&lt;p&gt;devip: make v4 ifc broadcast and multicast routes specific to address&lt;/p&gt;

&lt;p&gt;devip: more v6 improvements&lt;/p&gt;

&lt;p&gt;devip: pick source address for neighbor solicitations as of rfc4861
7.2.2, cleanup&lt;/p&gt;

&lt;p&gt;devip: properly initialize the connection ignoreadvice and tos flags&lt;/p&gt;

&lt;p&gt;devip: various icmp stuff&lt;/p&gt;

&lt;p&gt;devip: verify ifcid on routehint check, check Route.ref for free&amp;rsquo;d
routes&lt;/p&gt;

&lt;p&gt;devip: add some primitive rate limiting knobs to counteract
bufferbloat&lt;/p&gt;

&lt;p&gt;devip: don&amp;rsquo;t set mtu of interface to zero when not specified (thanks
joe9)&lt;/p&gt;

&lt;p&gt;devloopback: reassign device letter from #X to #λ to avoid collision
with devvmx&lt;/p&gt;

&lt;p&gt;devusb: fix format print warnings for ep-&gt;ntds and ep-&gt;uframes&lt;/p&gt;

&lt;p&gt;ethersink: after the experiment, the zeros get dismantled.  and then
destroyed.&lt;/p&gt;

&lt;p&gt;ethersink: provide promisc and multicast functions for v6, set out
queue limit to 0 on attach, add to pc64 config&lt;/p&gt;

&lt;p&gt;audiohda: add device id for x260&amp;rsquo;s Intel Sunrise Point-LP.  (thanks
rodri)&lt;/p&gt;

&lt;p&gt;igfx: add support for T510 (thanks mycroftiv)&lt;/p&gt;

&lt;p&gt;nusb/cam: &lt;em&gt;NEW&lt;/em&gt; usb video driver&lt;/p&gt;

&lt;p&gt;nusb/ether: mux bridges, bring in line with devether&lt;/p&gt;

&lt;p&gt;nusb/lib: add maxpkt and ntds to Altc struct&lt;/p&gt;

&lt;p&gt;nusb/kb: add usb tablet support&lt;/p&gt;

&lt;p&gt;nusb/ptp: set storage name to their human readable description string&lt;/p&gt;

&lt;p&gt;nusb/usbd: increase buffer size to capture port information&lt;/p&gt;

&lt;p&gt;nvidia: add pci device id for GeForce 6200 AGB (thanks bitmapper)&lt;/p&gt;

&lt;p&gt;usbehci: add uframes control request to return uframes one at a time&lt;/p&gt;

&lt;p&gt;usbehci: catch interrupt in tsleep&lt;/p&gt;

&lt;p&gt;usbehci: fix medium- to low quality highspeed isochronous transfers&lt;/p&gt;

&lt;p&gt;usbxhci: fix mistake in completering()&lt;/p&gt;

&lt;p&gt;vmx: allow setting mac address of using ea:nnnnnnnnnnnn!  prefix, use
genrandom() to generate mac globally unique mac address&lt;/p&gt;

&lt;h2&gt;LIBRARIES&lt;/h2&gt;

&lt;p&gt;ape: improve assert macro&lt;/p&gt;

&lt;p&gt;ape: add signed fixed size integer typedefs to u.h&lt;/p&gt;

&lt;p&gt;libc: allow /net/cs to specify local address for dial()&lt;/p&gt;

&lt;p&gt;libc: add signed fixed size integer typedefs&lt;/p&gt;

&lt;p&gt;libmp: add awk-generated tests&lt;/p&gt;

&lt;p&gt;libmp: add new tests&lt;/p&gt;

&lt;p&gt;libmp: add mptod and dtomp&lt;/p&gt;

&lt;p&gt;libmp: more tests&lt;/p&gt;

&lt;p&gt;libmp: mpdiv: fix dividing 0 by a small power of two&lt;/p&gt;

&lt;p&gt;libmp: mpdiv: fix sign bug&lt;/p&gt;

&lt;p&gt;libmp: mpdiv: get signs right&amp;hellip;&lt;/p&gt;

&lt;p&gt;libmp: mplogic: don&amp;rsquo;t drop carry out&lt;/p&gt;

&lt;p&gt;libmp: mpmagadd: force output sign +1 always&lt;/p&gt;

&lt;p&gt;libmp: mpmagadd: oops&amp;hellip;&lt;/p&gt;

&lt;p&gt;libmp: mptod/dtomp: add to mp.h&lt;/p&gt;

&lt;p&gt;libplumb: allow attributes larger than 4096, set some malloc tags&lt;/p&gt;

&lt;p&gt;libplumb: fix old leak introduced in 18b8ed1a5ea3&lt;/p&gt;

&lt;p&gt;libplumb: fix plumbunpackpartial()&lt;/p&gt;

&lt;p&gt;libsat: &lt;em&gt;NEW&lt;/em&gt; sat solver&lt;/p&gt;

&lt;p&gt;libsat, forp: fix va_list hack on amd64&lt;/p&gt;

&lt;p&gt;libsat: fix one of the satmore() bugs&lt;/p&gt;

&lt;p&gt;libsat: satmore: don&amp;rsquo;t try to override user defined variables&lt;/p&gt;

&lt;p&gt;libsat: setmalloctag, fix incorrect allocation size&lt;/p&gt;

&lt;p&gt;libsat: satget: don&amp;rsquo;t duplicate binary clauses&lt;/p&gt;

&lt;p&gt;libsat: satget: include unit literals&lt;/p&gt;

&lt;h2&gt;PROGRAMS&lt;/h2&gt;

&lt;p&gt;9fs: break 9front case into several cases: 9front, 9bugs, 9contrib,
9grep&lt;/p&gt;

&lt;p&gt;audio/pcmconv: fix accidental cast to float instead of double&lt;/p&gt;

&lt;p&gt;auth/asn12rsa: also convert ASN.1 encoded public key to plan9 format&lt;/p&gt;

&lt;p&gt;camv: &lt;em&gt;NEW&lt;/em&gt; camera viewer&lt;/p&gt;

&lt;p&gt;camv: fix display locking issues&lt;/p&gt;

&lt;p&gt;forp: &lt;em&gt;NEW&lt;/em&gt; formula proover&lt;/p&gt;

&lt;p&gt;forp: fix multiplication; change division to C semantics&lt;/p&gt;

&lt;p&gt;forp: fix precedence for []&lt;/p&gt;

&lt;p&gt;forp: fix ternary operator&lt;/p&gt;

&lt;p&gt;fstype: make copy of first sector in /env to avoid unaligned reads on
the disk (for devfs)&lt;/p&gt;

&lt;p&gt;ftpfs: no caching by default, add -c flag to enable it (patch by
mycroftiv)&lt;/p&gt;

&lt;p&gt;g: revert accidental change, document missing file type&lt;/p&gt;

&lt;p&gt;games/gb*: reverse savegame field polarity&lt;/p&gt;

&lt;p&gt;games/gb*,blit,c64: fix phaser coolant leak during resize&lt;/p&gt;

&lt;p&gt;games/2600: &lt;em&gt;NEW&lt;/em&gt; add port of aiju&amp;rsquo;s 2600 emulator&lt;/p&gt;

&lt;p&gt;games/mines -g: elements taken from list should be -2, not -1&lt;/p&gt;

&lt;p&gt;games/mines: bikeshedding&lt;/p&gt;

&lt;p&gt;games/mines: build a better ghost trap&lt;/p&gt;

&lt;p&gt;games/mines: chain new CLists in splitknown correctly&lt;/p&gt;

&lt;p&gt;games/mix: fix incorrect line numbers&lt;/p&gt;

&lt;p&gt;ip/gping: icmpv6 support&lt;/p&gt;

&lt;p&gt;ip/ipconfig: always refresh ndb/cs and ndb/dns when adding or removing
ip addresses&lt;/p&gt;

&lt;p&gt;ip/ipconfig: fix exit status for ndbconfig&lt;/p&gt;

&lt;p&gt;ip/ipconfig: fix v6 ndp code, use source specific default routes&lt;/p&gt;

&lt;p&gt;ip/ipconfig: populate /net/ndb from v6 router advertisements,
configure multiple addresses in ndbconfig()&lt;/p&gt;

&lt;p&gt;ip/ipconfig: setup per local address default routes&lt;/p&gt;

&lt;p&gt;ip/ipconfig: stop spamming the console about router receiving RA&amp;rsquo;s&lt;/p&gt;

&lt;p&gt;ip/ipconfig: use unique ip/ipmask/ipgw values close to match for
ndbconfig&lt;/p&gt;

&lt;p&gt;ip/ipconfig: fix parseip() error handling in ipconfig, ppp, tftpfs and
dns&lt;/p&gt;

&lt;p&gt;ip/linklocal: invert the localadm bit from mac address instead of just
setting it&lt;/p&gt;

&lt;p&gt;ip/ping: stop doing clever things with dialstrings, just let cs/dial
figure it out&lt;/p&gt;

&lt;p&gt;ip/ppp: remove old struct&lt;/p&gt;

&lt;p&gt;ip/ppp: set source specific default route regardless of primary flag,
set link speed thru new ctl message when -b is specified&lt;/p&gt;

&lt;p&gt;ip/traceroute: icmpv6 support&lt;/p&gt;

&lt;p&gt;ndb/cs: fix crash in ndbredorder due to ndbnew() not maintaining the
-&gt;line ring&lt;/p&gt;

&lt;p&gt;ndb/cs: remove paranoia debug toggle&lt;/p&gt;

&lt;p&gt;ndb/cs: remove single-ip-address assumptions&lt;/p&gt;

&lt;p&gt;ndb/csquery: insert \n between read chunks&lt;/p&gt;

&lt;p&gt;ndb/dns: lookup &lt;em&gt;all&lt;/em&gt; entries in dblookup(), v4 and v6 queries in
parallel, remove weigthed timeouts&lt;/p&gt;

&lt;p&gt;ndb/dns: remove single-ip-address assuptions&lt;/p&gt;

&lt;p&gt;ndb/dnsquery, ndb/csquery: handle long lines&lt;/p&gt;

&lt;p&gt;ns, devproc: quote path and spec arguments for /proc/$pid/ns,
namespace(6) does support quoting&lt;/p&gt;

&lt;p&gt;ns: remove left over vararg check pragma&lt;/p&gt;

&lt;p&gt;pc: add $ operator&lt;/p&gt;

&lt;p&gt;ptrap: &lt;em&gt;NEW&lt;/em&gt; plumber filter&lt;/p&gt;

&lt;p&gt;sort: fix bug where it incorrectly included the field separator in the
comparison if it was &gt;= Runeself&lt;/p&gt;

&lt;p&gt;sshfs: update qid and filename on Tcreate&lt;/p&gt;

&lt;p&gt;upas/fs: fix imap atom quoting (thanks Piotr Kubaj)&lt;/p&gt;

&lt;h2&gt;DOCUMENTATION&lt;/h2&gt;

&lt;p&gt;forp(1): &lt;em&gt;NEW&lt;/em&gt; manpage added&lt;/p&gt;

&lt;p&gt;forp(1): document [] and some bugs&lt;/p&gt;

&lt;p&gt;ip(3): document changes on /net/arp and /net/iproute&lt;/p&gt;

&lt;p&gt;ipconfig(8): clarify -p and -P options&lt;/p&gt;

&lt;p&gt;lock(2): fix typo&lt;/p&gt;

&lt;p&gt;mines(1): fix misleading HISTORY wording, documentation and
chronometric control of supernatural apparitions&lt;/p&gt;

&lt;p&gt;pc(1): always allocate at least one mpdigit (itomp assumes this)&lt;/p&gt;

&lt;p&gt;resample(1): document -n option&lt;/p&gt;

&lt;p&gt;twsi(3): fix wrong unicode codepoint in manpage&lt;/p&gt;

&lt;p&gt;upasfs(4): remove duplicate -m definition (thanks rodri)&lt;/p&gt;

&lt;p&gt;manpages: shut up about tex(1)&lt;/p&gt;

&lt;h2&gt;OTHER&lt;/h2&gt;

&lt;p&gt;fortunes, rob, rsc, theo: What&amp;rsquo;s this?  https://plan9.io/&lt;/p&gt;

&lt;p&gt;drop your /lib/keyboard sir william, I cannot wait till lunchtime.&lt;/p&gt;

&lt;p&gt;cpurc: remove obsolete device binds, run diskparts after $sysname is
known.  remove /env/boottime.  document.&lt;/p&gt;

&lt;p&gt;termrc: put #u in front for endpoint renaming to be effective, handle
multipe ether= tuples in ndb&lt;/p&gt;

&lt;p&gt;remove ipv6on&lt;/p&gt;

&lt;p&gt;&lt;img src="http://9front.org/img/ghostintheminesweepershell.back.png" alt="back" /&gt;&lt;/p&gt;
 </description>
        </item>

        <item>
            <title><![CDATA[9FRONT "CONTENTS, MAINTAINED, STABLE" RELEASED]]></title>
            <author><![CDATA[sl@noreply.cat-v.org (sl)]]></author>
            <link>http://9front.org:80/releases/2018/02/02/0/</link>
            <guid isPermaLink="true">http://9front.org:80/releases/2018/02/02/0/</guid>
            <pubDate>Wed, 06 Apr 2022 17:14:56 -0400</pubDate>
            <description> &lt;p&gt;&lt;img src="http://9front.org/img/contentsmaintainedstable.front.png" alt="front" /&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-6350.c07f998304d6.iso.gz.torrent"&gt;http://9front.org/iso/9front-6350.c07f998304d6.iso.gz.torrent&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-6350.c07f998304d6.iso.gz"&gt;http://9front.org/iso/9front-6350.c07f998304d6.iso.gz&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;dash 1 manual&lt;/h2&gt;

&lt;p&gt;&lt;a href="http://fqa.9front.org/dash1.contentsmaintainedstable.pdf"&gt;http://fqa.9front.org/dash1.contentsmaintainedstable.pdf&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;NEW IN THIS RELEASE&lt;/h2&gt;

&lt;p&gt;this release featues some updates on wifi, especially support for
transparent arp proxy on kernel wifi interfaces so wifi can be
bridged just like ethernets (as used by vmx). improvements in ipv6
support. devbridge is in the default pc kernel configuration now.
and many other bugfixes.&lt;/p&gt;

&lt;h2&gt;KERNEL AND DRIVERS&lt;/h2&gt;

&lt;p&gt;kernel: convert textmode cga screen contents to kmesg only once&lt;/p&gt;

&lt;p&gt;kernel: initialize cyclefreq for machno &gt; 0 in guesscpuhz()&lt;/p&gt;

&lt;p&gt;kernel: remove Ipifc.mbps, unused.&lt;/p&gt;

&lt;p&gt;pc: fix wrong simd exception mask (fixes go bootstrap)&lt;/p&gt;

&lt;p&gt;pc64: fix kmap() and invlpg()&lt;/p&gt;

&lt;p&gt;devbridge: disable write blocking on ethernets, fix mss clamping&lt;/p&gt;

&lt;p&gt;devether: allow spoofing of source mac address for bridges; used by vmx&lt;/p&gt;

&lt;p&gt;devether: dont forward loopback packets on bridges&lt;/p&gt;

&lt;p&gt;devether: remove duplicated parseether() implementation (pull from libip)&lt;/p&gt;

&lt;p&gt;devmnt: use u32int for tagmask, simplify alloctag()&lt;/p&gt;

&lt;p&gt;devtls, devssl: avoid ~0UL comparsion (from drawterm)&lt;/p&gt;

&lt;p&gt;devvga: removing #v/vgabios, use /dev/realmodemem instead&lt;/p&gt;

&lt;p&gt;ether79c970: dont disable promisc mode when multicast table is not empty&lt;/p&gt;

&lt;p&gt;ether8169: add Macv45 for RTL8111HN, rename Macv45 -&gt; Macv42 (thanks qeed, sam-d)&lt;/p&gt;

&lt;p&gt;ether8169: deal with kernel memory exhaution&lt;/p&gt;

&lt;p&gt;ether82557: don&amp;rsquo;t turn off promisc mode when mcast table is not empty&lt;/p&gt;

&lt;p&gt;etheriwl, etherwpi: limit transmit queue buffer bloat to 48k (at 22Mbit ≅ 20ms)&lt;/p&gt;

&lt;p&gt;gre: don&amp;rsquo;t drop pptp packets when smaller than v4 header&lt;/p&gt;

&lt;p&gt;ipv6: set router R-flag when sendra is active for neighbor advertisement&lt;/p&gt;

&lt;p&gt;nusb/ether: dont forward loopback packets on bridges, remove read nonblocking hack&lt;/p&gt;

&lt;p&gt;realemu: fix pit bcd mode, fix precedence bug in argconv() format routine (thanks dan cross)&lt;/p&gt;

&lt;p&gt;usbxhci: add missing pexit() in xhcirecover proc (thanks sam-d)&lt;/p&gt;

&lt;p&gt;wifi: don&amp;rsquo;t assume Wifi.rates[] is sorted, return net data rate for mbps (50% theoretical)&lt;/p&gt;

&lt;p&gt;wifi: don&amp;rsquo;t implicitely update lastseen timestamp on nodelookup()&lt;/p&gt;

&lt;p&gt;wifi: filter out loopback traffic from myself&lt;/p&gt;

&lt;p&gt;wifi: get rid of custom hextob() routine, use dec16(), avoid copies in parsekey()&lt;/p&gt;

&lt;p&gt;wifi: learn target ip address from neighbor advertisements in dmat proxy&lt;/p&gt;

&lt;p&gt;wifi: matt damon wifi bridging support&lt;/p&gt;

&lt;p&gt;wifi: revert rate adoption divider, breaks arpunks wifi&lt;/p&gt;

&lt;p&gt;wifi: use protocol constants from ip/ip.h and ip/ipv6.h for dmatproxy()&lt;/p&gt;

&lt;h2&gt;LIBRARIES&lt;/h2&gt;

&lt;p&gt;libauth: add auth_respondAI() function to get AuthInfo for mschap/mschapv2&lt;/p&gt;

&lt;p&gt;libauth: fix out of bounds memory access in _parseattr()&lt;/p&gt;

&lt;p&gt;libauth: remove auth_wep() function, and non-existing httpauth() declaration&lt;/p&gt;

&lt;p&gt;libauth: simplify _attrfmt() using fmtprint() avoiding stack buffer&lt;/p&gt;

&lt;p&gt;libc: constant time implementation for encode(2) routines, fix base32&lt;/p&gt;

&lt;p&gt;libc: make encXchr()/decXchr() functions available&lt;/p&gt;

&lt;p&gt;libflate: force non-empty huffman table in mkzprecode() for deflate&lt;/p&gt;

&lt;p&gt;libmp: use constant time encode(2) routines instead of lookup tables&lt;/p&gt;

&lt;p&gt;libndb: retire deprecated csgetval(), ndbgetval() and ndblookval() functions&lt;/p&gt;

&lt;p&gt;libsec: avoid unneccesary memory copies and redundant code in x509&lt;/p&gt;

&lt;p&gt;libsec: fix mistake: strnchr -&gt; strchr&lt;/p&gt;

&lt;p&gt;libsec: get rid of dummy data[1] in Bytes and Ints types (thanks pr)&lt;/p&gt;

&lt;p&gt;libsec: implement SPKI fingerprinting for okCertificate()&lt;/p&gt;

&lt;p&gt;libsec: remove asn1toDSApriv()&lt;/p&gt;

&lt;p&gt;libauth: remove auth_wep.$O from mkfile&lt;/p&gt;

&lt;h2&gt;PROGRAMS&lt;/h2&gt;

&lt;p&gt;auth/&lt;em&gt;dsa&lt;/em&gt;: remove asn12dsa, dsa2pub, dsa2ssh and dsagen&lt;/p&gt;

&lt;p&gt;auth/asn1dump: include in mkfile&lt;/p&gt;

&lt;p&gt;authsrv: fix chap, implement mschapv2 authentication, include MPPE secret in the ticket&lt;/p&gt;

&lt;p&gt;aux/wpa: get rid of custom Hfmt() routine, just use encodefmt. use %E for mac addresses&lt;/p&gt;

&lt;p&gt;disk/edisk: allow printing and readonly inspection of hybrid MBR/GPT disks (thanks aiju)&lt;/p&gt;

&lt;p&gt;factotum: implement mschapv2 role=server authentication (for ppp)&lt;/p&gt;

&lt;p&gt;factotum: remove legacy wep protocol&lt;/p&gt;

&lt;p&gt;factotum: remove unused sshrsa.c&lt;/p&gt;

&lt;p&gt;factotum: replace custom hex parsing code with dec16() avoding timing side channels&lt;/p&gt;

&lt;p&gt;ip/dhcpd: remove old testing code&lt;/p&gt;

&lt;p&gt;ip/ipconfig: add v6 deault route from router advertisements&lt;/p&gt;

&lt;p&gt;ip/ipconfig: set on-link flag in router advertisement prefix info (fixes windows7)&lt;/p&gt;

&lt;p&gt;ip/ipconfig: use 2000::/3 instead of ::/0 for v6 default route&lt;/p&gt;

&lt;p&gt;ip/ipconfig: don&amp;rsquo;t put automatic link-local address configuration in /net/ndb&lt;/p&gt;

&lt;p&gt;ip/ppp: mschapv2 support&lt;/p&gt;

&lt;p&gt;ip/ppp: remove left over debug print&lt;/p&gt;

&lt;p&gt;ip/pptpd: don&amp;rsquo;t mess with ipifc (handled by ppp), slay note gorup on exit&lt;/p&gt;

&lt;p&gt;ip/tinc: handle and set ethertype for ipv6&lt;/p&gt;

&lt;p&gt;ip/tinc: handle single byte noop and end-of-option-list tcp options in clampmss()&lt;/p&gt;

&lt;p&gt;ip: make pkt interfaces unbind on close (from inferno)&lt;/p&gt;

&lt;p&gt;ndb/cs: handle v4 only case for rudp&lt;/p&gt;

&lt;p&gt;ndb/dns: fix leak in myaddr(), normalize ip strings, cleanup&lt;/p&gt;

&lt;p&gt;rconnect: support -t timeout for aan like in drawterm; also rcpu, rexport/import&lt;/p&gt;

&lt;p&gt;stats: show amount of reclaimable pages (add -r flag)&lt;/p&gt;

&lt;p&gt;sysinfo: #c/swap -&gt; #¶/swap&lt;/p&gt;

&lt;p&gt;tlsclient: allow dumping the server&amp;rsquo;s certificate with new -d flag&lt;/p&gt;

&lt;p&gt;tlsclient: remove X509dump() call, writes to fd 1&lt;/p&gt;

&lt;p&gt;tlssrv: remove usage reference to lost auth/secretpem&lt;/p&gt;

&lt;p&gt;upas/fs: deal with imap returning more uid&amp;rsquo;s than allocated from previus &amp;ldquo;messages&amp;rdquo; command&lt;/p&gt;

&lt;p&gt;upas/fs: fix precedence bugs, compare digest pointer to nil&lt;/p&gt;

&lt;p&gt;upas/fs: try to deal with nil mail body (can happen when fetch fails)&lt;/p&gt;

&lt;p&gt;venti/conf: fix padding so we write multiple of sector size&lt;/p&gt;

&lt;p&gt;venti: fix wrong channel element size for amd64 (thanks mycroftiv)&lt;/p&gt;

&lt;h2&gt;DOCUMENTATION&lt;/h2&gt;

&lt;p&gt;arch(3): document #P/realmodemem file&lt;/p&gt;

&lt;p&gt;auth(8): auth/debug tests both dp9ik and p9sk1&lt;/p&gt;

&lt;p&gt;bridge(3): clarify manpage, this is a layer2 bridge&lt;/p&gt;

&lt;p&gt;factotum(4): document dp9ik, update protocol list&lt;/p&gt;

&lt;p&gt;ipconfig(8): remove dhcp mention from -6 example&lt;/p&gt;

&lt;p&gt;listen(8): add -a option to restrict announce address&lt;/p&gt;

&lt;p&gt;ppp(8): remove BUGS section, client auth has been fixed.&lt;/p&gt;

&lt;p&gt;vmx(1): fix virtio network bloomfilter&lt;/p&gt;

&lt;p&gt;webfs(4): document -d and -D flags&lt;/p&gt;

&lt;h2&gt;OTHER&lt;/h2&gt;

&lt;p&gt;/lib/bullshit: +converged +blockchain&lt;/p&gt;

&lt;p&gt;/sys/lib/dist/mkfile: fix cfg/plan9.ini dependency (only visible after binds)&lt;/p&gt;

&lt;p&gt;/sys/lib/dist: split 9boot into 9bootproto, make &lt;em&gt;.386.iso and &lt;/em&gt;.amd64.iso targets&lt;/p&gt;

&lt;p&gt;inst: determine kernel for bootsetup from $bootfile and $cputype&lt;/p&gt;

&lt;p&gt;fortunes: Subject: [oss-security] nvi denial of service&lt;/p&gt;

&lt;p&gt;&lt;a href="http://okturing.com/src/2115/body"&gt;http://okturing.com/src/2115/body&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src="http://9front.org/img/contentsmaintainedstable.back.png" alt="back" /&gt;&lt;/p&gt;
 </description>
        </item>

        <item>
            <title><![CDATA[9FRONT "SCREENLOCK GOODNIGHT" RELEASED]]></title>
            <author><![CDATA[sl@noreply.cat-v.org (sl)]]></author>
            <link>http://9front.org:80/releases/2017/12/04/0/</link>
            <guid isPermaLink="true">http://9front.org:80/releases/2017/12/04/0/</guid>
            <pubDate>Wed, 06 Apr 2022 17:14:52 -0400</pubDate>
            <description> &lt;p&gt;&lt;img src="http://9front.org/img/screenlockgoodnight.front.png" alt="front" /&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-6245.6153167c7bd4.iso.gz.torrent"&gt;http://9front.org/iso/9front-6245.6153167c7bd4.iso.gz.torrent&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-6245.6153167c7bd4.iso.gz"&gt;http://9front.org/iso/9front-6245.6153167c7bd4.iso.gz&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;dash 1 manual&lt;/h2&gt;

&lt;p&gt;&lt;a href="http://fqa.9front.org/dash1.screenlockgoodnight.pdf"&gt;http://fqa.9front.org/dash1.screenlockgoodnight.pdf&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;NEW IN THIS RELEASE&lt;/h2&gt;

&lt;p&gt;this release features AES-NI and SSE2 chacha20 implementation for
amd64 using the new sse-in-syscall support of the kernel.  SHA2 got up
to 40% faster for some archs by loop unrolling.  a bunch of
improvements for pc plan9 console (handles resize, pre-kernel boot
messages in /dev/kmesg).  qu7uux implemented framebuffer extending in
aux/vga so he can get resolutions higher than the bios allowed before.
aiju got openbsd 6.2 working on amd64 vmx.  Ori_B imported new version
of spin.  tinc mesh peer-to-peer vpn client got written.&lt;/p&gt;

&lt;h2&gt;KERNEL AND DRIVERS&lt;/h2&gt;

&lt;p&gt;kernel: introduce per process FPU struct (PFPU) for more flexible
machine specific fpu handling&lt;/p&gt;

&lt;p&gt;kernel: make isaconfig() consistent, not inplace tokenizing the conf
string&lt;/p&gt;

&lt;p&gt;pc64: allow using the FPU in syscall and pagefault handlers&lt;/p&gt;

&lt;p&gt;pc64: set ts flag before schedinit()&lt;/p&gt;

&lt;p&gt;cga: capture cga console contents on boot, make sure cgapos is in
range&lt;/p&gt;

&lt;p&gt;devvga: properly handle physical screen size and panning&lt;/p&gt;

&lt;p&gt;devvga: re-render text from kmesg after resize&lt;/p&gt;

&lt;p&gt;igfx: allocate backing memory for framebuffer and hw cursor when not
done by bios (from qu7uux)&lt;/p&gt;

&lt;h2&gt;LIBRARIES&lt;/h2&gt;

&lt;p&gt;libauth: replace proto=p9cr with new proto=dp9ik/p9sk1 role=login for
auth_userpasswd()&lt;/p&gt;

&lt;p&gt;libmach: fix format for 8db sse shift ops&lt;/p&gt;

&lt;p&gt;libsec: AES-NI support for amd64&lt;/p&gt;

&lt;p&gt;libsec: make includes consistent for sha2block*.c&lt;/p&gt;

&lt;p&gt;libsec: optimize aesCBCencrypt()/aesCBCdecrypt()&lt;/p&gt;

&lt;p&gt;libsec: unroll portable sha1block and sha2block functions&lt;/p&gt;

&lt;p&gt;libsec: write optimized _chachablock() function for amd64 / sse2&lt;/p&gt;

&lt;h2&gt;COMPILERS AND DEBUGGERS&lt;/h2&gt;

&lt;p&gt;6l: fix typo in optab table for APSLLQ (0x7e -&gt; 0x73)&lt;/p&gt;

&lt;h2&gt;PROGRAMS&lt;/h2&gt;

&lt;p&gt;6in4: add -m mtu option to specify outer MTU&lt;/p&gt;

&lt;p&gt;audio/flacdec: add eof handler avoiding endless spinning on broken
files (thanks deuteron)&lt;/p&gt;

&lt;p&gt;auth/factotum: add role=login protocol variant to dp9ik/p9sk1&lt;/p&gt;

&lt;p&gt;auth/login: add missing quotefmtinstall(), quote dom attribute&lt;/p&gt;

&lt;p&gt;games/blit: update screen when display address changes (thanks aap)&lt;/p&gt;

&lt;p&gt;inst/mounthjfs: use /dev/swap instead of #c/swap to determine memory
size (thanks aap)&lt;/p&gt;

&lt;p&gt;screenlock: some improvements&lt;/p&gt;

&lt;p&gt;spin: Update to most recent version.  (thanks Ori_B)&lt;/p&gt;

&lt;p&gt;tinc: implement experimental mesh peer to peer VPN from
http://www.tinc-vpn.org/&lt;/p&gt;

&lt;p&gt;vmx: fix openbsd 6.2 amd64 !entrystate bug&lt;/p&gt;

&lt;h2&gt;DOCUMENTATION&lt;/h2&gt;

&lt;p&gt;errstr(2): add /sys/src/libc/9sys/rerrstr.c to SOURCE section&lt;/p&gt;

&lt;p&gt;plan9.ini(8): 9boot(8) is not a DOS program, remove outdated BUGS
section&lt;/p&gt;

&lt;p&gt;tinc(8): spelling, thanks jpm&lt;/p&gt;

&lt;h2&gt;OTHER&lt;/h2&gt;

&lt;p&gt;/lib/rsc: It only works when we&amp;rsquo;re in the process of preparing a
release.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://9front.org/img/screenlockgoodnight.back.png" alt="back" /&gt;&lt;/p&gt;
 </description>
        </item>

        <item>
            <title><![CDATA[9FRONT "SYNCHROPHASOTINC" RELEASED]]></title>
            <author><![CDATA[sl@noreply.cat-v.org (sl)]]></author>
            <link>http://9front.org:80/releases/2017/11/01/0/</link>
            <guid isPermaLink="true">http://9front.org:80/releases/2017/11/01/0/</guid>
            <pubDate>Wed, 06 Apr 2022 17:14:48 -0400</pubDate>
            <description> &lt;p&gt;&lt;img src="http://9front.org/img/synchrophasotinc.front.png" alt="front" /&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-6204.09e34a98b1e5.iso.gz.torrent"&gt;http://9front.org/iso/9front-6204.09e34a98b1e5.iso.gz.torrent&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-6204.09e34a98b1e5.iso.gz"&gt;http://9front.org/iso/9front-6204.09e34a98b1e5.iso.gz&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;dash 1 manual&lt;/h2&gt;

&lt;p&gt;&lt;a href="http://fqa.9front.org/dash1.synchrophasotinc.pdf"&gt;http://fqa.9front.org/dash1.synchrophasotinc.pdf&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;KERNEL AND DRIVERS&lt;/h2&gt;

&lt;p&gt;kernel: get rid of 36 bit Paerange mask in mtrr (supporting machines
with more than 64GB of memory)&lt;/p&gt;

&lt;p&gt;kernel: don&amp;rsquo;t tokenize inplace in isaconfig() to make /dev/reboot work&lt;/p&gt;

&lt;p&gt;kernel: introduce devswap #¶ to serve /dev/swap and handle swapfile
encryption&lt;/p&gt;

&lt;p&gt;pc64: add ether82598 driver to configuration&lt;/p&gt;

&lt;p&gt;devfs: rewrite cryptio()&lt;/p&gt;

&lt;p&gt;ether82598: support for T540-T1, use physical addresses for isaconf
port&lt;/p&gt;

&lt;p&gt;sdnvme: identify namespace list fails on intel ssd, just assume
nsid=[1]&lt;/p&gt;

&lt;p&gt;xhci: do bounds checking in capability walking, check if controller
vanished on init (thunderbolt unplug)&lt;/p&gt;

&lt;h2&gt;LIBRARIES&lt;/h2&gt;

&lt;p&gt;libauthsrv: preserve readcons() error message from read() error&lt;/p&gt;

&lt;p&gt;libc: cleanup atexit and put exits() in its own compilation unit&lt;/p&gt;

&lt;p&gt;libc: wunlock() part 2&lt;/p&gt;

&lt;p&gt;libc: improve alignment of QLp structure on amd64, cosmetics&lt;/p&gt;

&lt;p&gt;libsec: add AES CFB and AES OFB stream ciphers&lt;/p&gt;

&lt;p&gt;libsec: allow \r\n terminated lines in decodePEM()&lt;/p&gt;

&lt;p&gt;libsec: export asn1encodedigest(), asn1encodeRSApub(), asn1toRSApub(),
pkcs1padbuf() and pkcs1unpadbuf()&lt;/p&gt;

&lt;p&gt;libsec: make sectorNumber argument for aes_xts routines uvlong&lt;/p&gt;

&lt;p&gt;libsec: fix the (ape) build, bring ape libsec.h in sync with plan9
version&lt;/p&gt;

&lt;p&gt;libsec: rewrite aex_xts_encrypt()/aes_xts_decrypt()&lt;/p&gt;

&lt;h2&gt;PROGRAMS&lt;/h2&gt;

&lt;p&gt;aux/wpa: prevent PTK re-installation attack by replaying AP
retransmits&lt;/p&gt;

&lt;p&gt;cwfs: use /dev/swap instead of #c/swap to determine memory size&lt;/p&gt;

&lt;p&gt;netaudit: check for fs=&lt;/p&gt;

&lt;p&gt;hg: disable tag caching, allows accessing hg repo from dump&lt;/p&gt;

&lt;p&gt;hgwebfs: simplify retry loop construction&lt;/p&gt;

&lt;p&gt;ndb/cs: icmp only supports version 4 addresses, icmpv6 only version 6
addresses&lt;/p&gt;

&lt;p&gt;rsa: add auth/rsa2asn1, check write error in auth/rsa2x509 and
auth/rsa2pub, document in rsa(8)&lt;/p&gt;

&lt;p&gt;ssh: remove extern declarations for pkcs1padbuf() and
asn1encodedigest() (now in libsec.h)&lt;/p&gt;

&lt;p&gt;sshfs: use mtime for qid.vers, fix wstat without name change, fix
wstat memory leak&lt;/p&gt;

&lt;p&gt;upas/fs: fix putcache(), sub-part messages should never go into the
lru&lt;/p&gt;

&lt;p&gt;upas/fs: replace fixed cache table with lru linked list&lt;/p&gt;

&lt;p&gt;upas/smtpd: don&amp;rsquo;t call syslog() from the note handler, this can
deadlock&lt;/p&gt;

&lt;p&gt;vt: block when sending input to host (fixes truncated paste)&lt;/p&gt;

&lt;p&gt;winwatch: show windows with empty labels (thanks jpm)&lt;/p&gt;

&lt;h2&gt;DOCUMENTATION&lt;/h2&gt;

&lt;p&gt;aes(2): document aes_xts_encrypt() and aes_xts_decrypt() functions&lt;/p&gt;

&lt;p&gt;swap(3): document permissions and encryption behaviour, reference to
memory(8)&lt;/p&gt;

&lt;h2&gt;OTHER&lt;/h2&gt;

&lt;p&gt;9boot: limit read size to 4K for efi simple file system protocol&lt;/p&gt;

&lt;h2&gt;COMING SOON&lt;/h2&gt;

&lt;p&gt;tinc(8): mash peer to peer VPN&lt;/p&gt;

&lt;p&gt;&lt;img src="http://9front.org/img/synchrophasotinc.back.png" alt="back" /&gt;&lt;/p&gt;
 </description>
        </item>

        <item>
            <title><![CDATA[9FRONT "SOLARIS ECLIPSE" RELEASED]]></title>
            <author><![CDATA[sl@noreply.cat-v.org (sl)]]></author>
            <link>http://9front.org:80/releases/2017/09/11/0/</link>
            <guid isPermaLink="true">http://9front.org:80/releases/2017/09/11/0/</guid>
            <pubDate>Wed, 06 Apr 2022 17:14:41 -0400</pubDate>
            <description> &lt;p&gt;&lt;img src="http://9front.org/img/solariseclipse.front.png" alt="front" /&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-6165.2a79d5dddf41.iso.gz.torrent"&gt;http://9front.org/iso/9front-6165.2a79d5dddf41.iso.gz.torrent&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-6165.2a79d5dddf41.iso.gz"&gt;http://9front.org/iso/9front-6165.2a79d5dddf41.iso.gz&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;dash 1 manual&lt;/h2&gt;

&lt;p&gt;&lt;a href="http://fqa.9front.org/dash1.solariseclipse.pdf"&gt;http://fqa.9front.org/dash1.solariseclipse.pdf&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;NEW IN THIS RELEASE&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;multiple vm&amp;rsquo;s in vmx(1)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;window size changes with ssh(1) and vt(1)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;games/wadfs&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;KERNEL AND DRIVERS&lt;/h2&gt;

&lt;p&gt;devdup: remove useless OCEXEC check, handled by namec()&lt;/p&gt;

&lt;p&gt;devsegment: handle ORCLOSE on segment directory correctly, fix wrong
qid, missing COPEN flag for segmentcreate()&lt;/p&gt;

&lt;p&gt;devusb: double READSTR buffer size to 8000 bytes for devusb&lt;/p&gt;

&lt;p&gt;devusb: superspeed bandwidth allocation handled by controller, skip
usbload() calculation&lt;/p&gt;

&lt;p&gt;devvmx: lilu dallas multivm&lt;/p&gt;

&lt;p&gt;devvmx: call vmxshutdown from reboot() function manually&lt;/p&gt;

&lt;p&gt;devvmx: more efficient data structure for memory map; simplified (more
reliable) step function&lt;/p&gt;

&lt;p&gt;audiohda: Intel Sunrise Point-H support (thanks sam-d)&lt;/p&gt;

&lt;p&gt;audiohda: add pci id for ICH10 (thanks echoline)&lt;/p&gt;

&lt;p&gt;audiohda: add pci id for Intel 9 Series&lt;/p&gt;

&lt;p&gt;audiohda: add pci id for nvidia GM204&lt;/p&gt;

&lt;p&gt;ether82563: add more pci ids for i210 and i354 from 9atom / openbsd&lt;/p&gt;

&lt;p&gt;ether82563: make the ethernet of thinkpad p50 work (thanks sam-d)&lt;/p&gt;

&lt;p&gt;ether82563: support for i211 with iNVM.  (thanks mfny and brennan for
testing)&lt;/p&gt;

&lt;p&gt;etheriwl: add pci id for Intel Centrino Advanced-N 6200 on x201 tablet
(thanks arpunk)&lt;/p&gt;

&lt;p&gt;igfx: add did for x220&lt;/p&gt;

&lt;p&gt;igfx: fix cdclk and dpll settings for dual channel lvds on sandybridge&lt;/p&gt;

&lt;p&gt;igfx: fix sandybridge fdi link training bits and ordering&lt;/p&gt;

&lt;p&gt;sdiahci: Intel 200 Series Chipset Family PCH support (thanks aiju)&lt;/p&gt;

&lt;p&gt;sdnvme: pass 0 instead of 0xffffffff as NSID for identify controller
and create completion/submission queue commands (thanks Ori_B)&lt;/p&gt;

&lt;p&gt;usbxhci: abandon multiple requests per endpoint, cleanup&lt;/p&gt;

&lt;p&gt;usbxhci: handle out of memory in controller initialization&lt;/p&gt;

&lt;p&gt;usbxhci: implement recovery from host controller errors&lt;/p&gt;

&lt;p&gt;nusb/disk: add a 100ms sleep after ums reset, remove unused note
handler, cleanup&lt;/p&gt;

&lt;h2&gt;COMPILERS AND DEBUGGERS&lt;/h2&gt;

&lt;p&gt;libmach: support disassembling from memory&lt;/p&gt;

&lt;h2&gt;PROGRAMS&lt;/h2&gt;

&lt;p&gt;awk: allow string as exit status&lt;/p&gt;

&lt;p&gt;awk: don&amp;rsquo;t get into a infinite loop with eof while in string (thanks
BurnZeZ)&lt;/p&gt;

&lt;p&gt;cwfs: -n always overrides postservice() name, no matter if config mode
changes service&lt;/p&gt;

&lt;p&gt;doom: add games/wadfs&lt;/p&gt;

&lt;p&gt;doom: clean up temporary mus files&lt;/p&gt;

&lt;p&gt;ssh: issue &amp;ldquo;winchon&amp;rdquo; ctl request to /dev/consctl to get interrupt on
window size change from vt(1)&lt;/p&gt;

&lt;p&gt;sshfs: fork ssh in its own namespace so it wont keep the mountpoint
open&lt;/p&gt;

&lt;p&gt;sshfs: start sendproc and recvproc in the same notegroup as the fs
process so theadexitsall() works on sshfs: ending.&lt;/p&gt;

&lt;p&gt;sysinfo: only dump #r/nvram on amd64,386&lt;/p&gt;

&lt;p&gt;sysinfo: run aux/icanhasvmx with verbose flag&lt;/p&gt;

&lt;p&gt;vmx: lilu dallas multivm&lt;/p&gt;

&lt;p&gt;vmx: VGA framebuffer should be normal memory&lt;/p&gt;

&lt;p&gt;vmx: don&amp;rsquo;t realloc virtio queues &amp;ndash; breaks pointers&lt;/p&gt;

&lt;p&gt;vmx: fixed code that assumed uintptr==uvlong&lt;/p&gt;

&lt;p&gt;vmx: memory map improvements, x86 simulator for MMIO&lt;/p&gt;

&lt;p&gt;vmx: allocate sticky instead of more expensive fixed segment&lt;/p&gt;

&lt;p&gt;vmx: fix hlt idle problem&lt;/p&gt;

&lt;p&gt;vmx: pass multiboot framebuffer info to kernel&lt;/p&gt;

&lt;p&gt;vt: block selection mode for snarf&lt;/p&gt;

&lt;p&gt;vt: fix silly bug causing characters be drawn one at a time&lt;/p&gt;

&lt;p&gt;vt: implement /dev/cons and /dev/consctl as a fileserver, winch,
incremental redraw&lt;/p&gt;

&lt;p&gt;vt: turn off nl -&gt; nl+cr translation default in raw mode, don&amp;rsquo;t scroll
more than screen height&lt;/p&gt;

&lt;h2&gt;OTHER&lt;/h2&gt;

&lt;p&gt;booting: rename pcf kernel to pc, remove pcf, pccpuf, pccpu64 kernels,
update documentation&lt;/p&gt;

&lt;p&gt;inst: don&amp;rsquo;t hardcode /net/ether0, might have usb ethernet&lt;/p&gt;

&lt;p&gt;inst: get rid of halt, just run fshalt in finish directly&lt;/p&gt;

&lt;p&gt;inst: get rid of ppp configuration&lt;/p&gt;

&lt;p&gt;inst: post newfs fileservers under /srv/$fstype.newfs to avoid
conflict with preexisting local filesystem&lt;/p&gt;

&lt;h2&gt;DOCUMENTATION&lt;/h2&gt;

&lt;p&gt;vmx(3): document changes to devvmx interface&lt;/p&gt;

&lt;p&gt;&lt;img src="http://9front.org/img/solariseclipse.back.png" alt="back" /&gt;&lt;/p&gt;
 </description>
        </item>

        <item>
            <title><![CDATA[9FRONT "FULL SPEED (SINCE 1.0)" RELEASED]]></title>
            <author><![CDATA[sl@noreply.cat-v.org (sl)]]></author>
            <link>http://9front.org:80/releases/2017/08/01/0/</link>
            <guid isPermaLink="true">http://9front.org:80/releases/2017/08/01/0/</guid>
            <pubDate>Wed, 06 Apr 2022 17:14:31 -0400</pubDate>
            <description> &lt;p&gt;&lt;img src="http://9front.org/img/fullspeed.front.png" alt="front" /&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-6111.cef8f3fb17e6.iso.gz.torrent"&gt;http://9front.org/iso/9front-6111.cef8f3fb17e6.iso.gz.torrent&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-6111.cef8f3fb17e6.iso.gz"&gt;http://9front.org/iso/9front-6111.cef8f3fb17e6.iso.gz&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;dash 1 manual&lt;/h2&gt;

&lt;p&gt;&lt;a href="http://fqa.9front.org/dash1.fullspeed.pdf"&gt;http://fqa.9front.org/dash1.fullspeed.pdf&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;NEW IN THIS RELEASE&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;debug watchpoints&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;multiboot framebuffer&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;usb3 support (xhci)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;vmx(1), vmx(3)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;KERNEL AND DRIVERS&lt;/h2&gt;

&lt;p&gt;kernel: add support for sticky segments (cached, preallocated, never
paged)&lt;/p&gt;

&lt;p&gt;kernel: fix bounds check in screenputc()&lt;/p&gt;

&lt;p&gt;kernel: pass bootargs also in multiboot command line, retire the
bootline mechanism to pass arguments to /boot/boot&lt;/p&gt;

&lt;p&gt;pc kernel: mkfile target usbehcipc.$O needs ../port/usb.h, add
usbxhci.$O&lt;/p&gt;

&lt;p&gt;pc, pc64: adapt devvmx to ork on pc64&lt;/p&gt;

&lt;p&gt;pc, pc64: enable usbxhci in the configuration&lt;/p&gt;

&lt;p&gt;pc, pc64: support for multiboot framebuffer, common bootargs and
multiboot code&lt;/p&gt;

&lt;p&gt;pc, pc64: debugexc: ignore exception if in kernel mode and can&amp;rsquo;t get
hold of up-&gt;debug&lt;/p&gt;

&lt;p&gt;pc, pc64: keep shadow copy of DR7 in Mach and use that to check
whether we need to reset DR7 in procsave(); remove superfluous reset
of DR7 in mmurelease()&lt;/p&gt;

&lt;p&gt;pc, pc64: reset DR7 in mmurelease&lt;/p&gt;

&lt;p&gt;pc: add vmx device&lt;/p&gt;

&lt;p&gt;zynq: simplify initcode stack setup (just do it in init0 when the
stack is mapped)&lt;/p&gt;

&lt;p&gt;devusb: fix wrong pollival calculation in setmaxpkt()&lt;/p&gt;

&lt;p&gt;devvmx: add support for SG_STICKY segments&lt;/p&gt;

&lt;p&gt;devvmx: add support for extrap command to configure halting on
exceptions&lt;/p&gt;

&lt;p&gt;devvmx: error handling in clearmeminfo&lt;/p&gt;

&lt;p&gt;devvmx: fix CR0/CR4 readout; also don&amp;rsquo;t exit on PAUSE instruction&lt;/p&gt;

&lt;p&gt;devvmx: remember segment names and free segments properly&lt;/p&gt;

&lt;p&gt;devvmx: support debug registers; simplify assembly&lt;/p&gt;

&lt;p&gt;devvmx: support pat and efer registers&lt;/p&gt;

&lt;p&gt;usbehci: fix crash in cancelisoio() for highspeed device due to wrong
pollival&lt;/p&gt;

&lt;p&gt;usbohci, usbehci, usbxhci: save mmio base address in ctlr, cant
PADDR() on 386&amp;hellip;&lt;/p&gt;

&lt;p&gt;usbohci, usbuhci, usbehci: use physical address of registers for
matching controllers and printing&lt;/p&gt;

&lt;p&gt;usbxhci: basic iso write support (usb soundcard playback)&lt;/p&gt;

&lt;p&gt;usbxhci: better approach to unstalling endpoint and fixup td ring&lt;/p&gt;

&lt;p&gt;usbxhci: commit work in progress xhci driver, no config yet&lt;/p&gt;

&lt;p&gt;usbxhci: experimental usb3 support&lt;/p&gt;

&lt;p&gt;usbxhci: handle changing maxpkt on control endpoint by reevaluating
endpoint context&lt;/p&gt;

&lt;p&gt;usbxhci: implement command timeouts and aborts, serialize unstall&lt;/p&gt;

&lt;p&gt;usbxhci: implement controller handoff, ignore usb3.0 ports, honor
pollival for isochronous endpoints&lt;/p&gt;

&lt;p&gt;usbxhci: provide shutdown function to halt the controller&lt;/p&gt;

&lt;p&gt;usbxhci: simplify xecp()&lt;/p&gt;

&lt;p&gt;usbxhci: use physical register addresses for matcing controllers and
printing.  simplify endpoint slot initialization.&lt;/p&gt;

&lt;p&gt;aux/vga: simplify vesa by adding rgbmask2chan() function&lt;/p&gt;

&lt;p&gt;nusb/usbd: create endpoint files for conf #1, usb3 preparation&lt;/p&gt;

&lt;p&gt;nusb/usbd: support for usb3 hubs&lt;/p&gt;

&lt;h2&gt;LIBRARIES&lt;/h2&gt;

&lt;p&gt;libfis: fix inverted CHS bit&lt;/p&gt;

&lt;p&gt;libregexp: fix lexer so it doesnt move past the string when it gets a
 \ escape&lt;/p&gt;

&lt;h2&gt;COMPILERS AND DEBUGGERS&lt;/h2&gt;

&lt;p&gt;8l, 6l: get .frame offset right undoing $-4 hack&lt;/p&gt;

&lt;p&gt;acid(1), proc(3): document watchpoints&lt;/p&gt;

&lt;p&gt;acid: add getfields() builtin&lt;/p&gt;

&lt;p&gt;acid: always create proclist variable&lt;/p&gt;

&lt;p&gt;acid: provide hooks &amp;lsquo;procattach&amp;rsquo; and &amp;lsquo;dying&amp;rsquo;&lt;/p&gt;

&lt;p&gt;acid: watchpoint support&lt;/p&gt;

&lt;p&gt;ktrace: handle amd64 stacktraces correctly&lt;/p&gt;

&lt;h2&gt;PROGRAMS&lt;/h2&gt;

&lt;p&gt;add aux/icanhasvmx&lt;/p&gt;

&lt;p&gt;aux/cpuid: decode family and model bitfields&lt;/p&gt;

&lt;p&gt;auth/factotum: complete p9any v.2 server protocol, but don&amp;rsquo;t enable
it.&lt;/p&gt;

&lt;p&gt;hpost: delimit @filenames by newline so files with whitespace aren’t
mangled&lt;/p&gt;

&lt;p&gt;hpost: fix field content mangling when newlines are present&lt;/p&gt;

&lt;p&gt;upas/fs: handle plumbing for new messages for concurrent index updates&lt;/p&gt;

&lt;p&gt;vmx: I/O string instructions, incomplete support for IDE disks, misc
fixes&lt;/p&gt;

&lt;p&gt;vmx: add support for (so far) crude 9p debugging fs; add gdb stub;
clean up linux gdt code&lt;/p&gt;

&lt;p&gt;vmx: clean up region handling code; changes to support amd64&lt;/p&gt;

&lt;p&gt;vmx: don&amp;rsquo;t zero all memory, don&amp;rsquo;t abandon uart on eof, sleep before
transmitting uart data&lt;/p&gt;

&lt;p&gt;vmx: fix &amp;lsquo;-v text&amp;rsquo;&lt;/p&gt;

&lt;p&gt;vmx: fix non-vesa framebuffer mode&lt;/p&gt;

&lt;p&gt;vmx: fix translateflat on 64-bit&lt;/p&gt;

&lt;p&gt;vmx: i8042: translation changes reported keyboard id&lt;/p&gt;

&lt;p&gt;vmx: linux kernel loading; PIT fixes to support linux; support VGA
0x3D4 word writes; support sending virtio ethernet packets to a file
and prepending snoopy headers&lt;/p&gt;

&lt;p&gt;vmx: obsdfb: check if curmode is nil&lt;/p&gt;

&lt;p&gt;vmx: round up frame buffer size to whole pages, ignore vga access in
linear framebuffer, tell openbsd about framebuffer&lt;/p&gt;

&lt;p&gt;vmx: support debug instructions&lt;/p&gt;

&lt;p&gt;vmx: VESA support and other misc I/O improvements&lt;/p&gt;

&lt;p&gt;vmx: complete cmos&lt;/p&gt;

&lt;p&gt;vmx: fix build on non-x86 architectures (switch vlong)&lt;/p&gt;

&lt;p&gt;vmx: fix pic &amp;lsquo;specific eoi&amp;rsquo; bug, fix kbd bug, add fake IDE and floppy
controller&lt;/p&gt;

&lt;p&gt;vmx: fix virtio bugs&lt;/p&gt;

&lt;p&gt;vmx: implement virtio reset&lt;/p&gt;

&lt;p&gt;vmx: improve PIT/keyboard support&lt;/p&gt;

&lt;p&gt;vmx: obsd: load kernel symbol table and allow setting root device&lt;/p&gt;

&lt;p&gt;vmx: openbsd support: parse more options&lt;/p&gt;

&lt;p&gt;vmx: remove debugging print&lt;/p&gt;

&lt;p&gt;vmx: slightly more vga support&lt;/p&gt;

&lt;p&gt;vmx: support EFER and PAT access&lt;/p&gt;

&lt;p&gt;vmx: support loading openbsd kernels&lt;/p&gt;

&lt;p&gt;xd: use new bio magic to make -u more efficient&lt;/p&gt;

&lt;h2&gt;OTHER&lt;/h2&gt;

&lt;p&gt;/lib/{rob, rsc, theo}: Yup.&lt;/p&gt;

&lt;p&gt;remove /sys/lib/##redacted##.##redacted## (thanks ##redacted##)&lt;/p&gt;

&lt;h2&gt;DOCUMENTATION&lt;/h2&gt;

&lt;p&gt;authsrv(6): don&amp;rsquo;t say old p9any isnt in use anymore&amp;hellip;&lt;/p&gt;

&lt;p&gt;pc(1) clarification&lt;/p&gt;

&lt;p&gt;print(2): clean up vlong flag description&lt;/p&gt;

&lt;p&gt;rc(1): catch up with a change made long before 9front&lt;/p&gt;

&lt;p&gt;segment(3): document sticky segment type&lt;/p&gt;

&lt;p&gt;vmx(1), vmx(3): add vmx documentation&lt;/p&gt;

&lt;p&gt;&lt;img src="http://9front.org/img/fullspeed.back.png" alt="back" /&gt;&lt;/p&gt;
 </description>
        </item>

        <item>
            <title><![CDATA[9FRONT "MARITIME ENGINEERING STANDARDS" RELEASED]]></title>
            <author><![CDATA[sl@noreply.cat-v.org (sl)]]></author>
            <link>http://9front.org:80/releases/2017/05/04/0/</link>
            <guid isPermaLink="true">http://9front.org:80/releases/2017/05/04/0/</guid>
            <pubDate>Wed, 06 Apr 2022 17:14:31 -0400</pubDate>
            <description> &lt;p&gt;&lt;img src="http://9front.org/img/maritimeengineeringstandards.front.png" alt="front" /&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-5966.df2c352ae695.iso.gz.torrent"&gt;http://9front.org/iso/9front-5966.df2c352ae695.iso.gz.torrent&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-5966.df2c352ae695.iso.gz"&gt;http://9front.org/iso/9front-5966.df2c352ae695.iso.gz&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;dash 1 manual&lt;/h2&gt;

&lt;p&gt;&lt;a href="http://fqa.9front.org/dash1.maritimeengineeringstandards.pdf"&gt;http://fqa.9front.org/dash1.maritimeengineeringstandards.pdf&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;KERNEL AND DRIVERS&lt;/h2&gt;

&lt;p&gt;kernel: avoid waserror() botch in devwalk (from drawterm, thanks aiju)&lt;/p&gt;

&lt;p&gt;kernel: fix memory leak in checkpagerefs() debug function (thanks
aiju)&lt;/p&gt;

&lt;p&gt;kernel: fix rewinding in directories with pread() offset&lt;/p&gt;

&lt;p&gt;kernel: fix twakeup()/timerdel() race condition&lt;/p&gt;

&lt;p&gt;pc: handle PCMP and RSD being in low (kaddr) or reserved (vmap) memory&lt;/p&gt;

&lt;p&gt;pc: fix memory leak and add clog() function&lt;/p&gt;

&lt;p&gt;pc64: state mp.h dependency for archacpi.$O&lt;/p&gt;

&lt;p&gt;devdraw: ignore drawdebug command&lt;/p&gt;

&lt;p&gt;devsd: handle case where theres no ifc-&gt;enable() function&lt;/p&gt;

&lt;p&gt;devsd: check return value of ifc-&gt;enable(), don&amp;rsquo;t leak unit name/user
strings&lt;/p&gt;

&lt;p&gt;devvga: include hwgc in vgactl file&lt;/p&gt;

&lt;p&gt;devvga: remove unused copy of checkport() function&lt;/p&gt;

&lt;p&gt;sdvirtio: return 1 for success in vioenable()/viodisable()&lt;/p&gt;

&lt;p&gt;sdnvme: NVMe controller driver (work in progress)&lt;/p&gt;

&lt;p&gt;sdnvme: don&amp;rsquo;t write completion queue doorbell register when nothing
has been processed&lt;/p&gt;

&lt;p&gt;sdnvme: enable in pcf, pccpuf, pc64 kernel configuration&lt;/p&gt;

&lt;h2&gt;LIBRARIES&lt;/h2&gt;

&lt;p&gt;lib9p: allow rewinding in 9pfile directories&lt;/p&gt;

&lt;p&gt;libavl: fix documentation&lt;/p&gt;

&lt;p&gt;libavl: lookup can return the closest match&lt;/p&gt;

&lt;p&gt;libdraw: get rid of _drawdebug variable&lt;/p&gt;

&lt;p&gt;libmemdraw/libmemlayer: get rid of drawdebug prints&lt;/p&gt;

&lt;p&gt;libmemdraw: get rid of kernel iprint() emulation&lt;/p&gt;

&lt;p&gt;libregexp: miscellaneous little cleanups&lt;/p&gt;

&lt;p&gt;libsec: sha256 support for thumbprint files, use it in ssh as well&lt;/p&gt;

&lt;p&gt;libsec/tlshand: fix ECDHE and DHE for SSLv3&lt;/p&gt;

&lt;p&gt;libsec/tlshand: fix mpint to bytes conversion, reorganize send/recv
buffer, check for overflow in msgSend()&lt;/p&gt;

&lt;p&gt;libsec/tlshand: simplify tlsReadN()&lt;/p&gt;

&lt;h2&gt;COMPILERS AND DEBUGGERS&lt;/h2&gt;

&lt;p&gt;5e: fix special bitshift and rotations&lt;/p&gt;

&lt;p&gt;[012568kqv]a: correctly lex full range of integers in the assemblers
(thanks Ori_B)&lt;/p&gt;

&lt;p&gt;fix yacc bug (found by dan cross)&lt;/p&gt;

&lt;h2&gt;PROGRAMS&lt;/h2&gt;

&lt;p&gt;aux/wpa: go to background when not prompting, handle open networks&lt;/p&gt;

&lt;p&gt;chgrp: remove unused function declaration (thanks archeus)&lt;/p&gt;

&lt;p&gt;cwfs: allow &amp;ldquo;none&amp;rdquo; user to rename files&lt;/p&gt;

&lt;p&gt;factotum: append public rsa encyption exponent after the modulus&lt;/p&gt;

&lt;p&gt;file: recognise Xilinx bitstreams&lt;/p&gt;

&lt;p&gt;fortune: avoid buffer overflow for lines &gt;= 2K, make sure index has at
least one entry, use nrand()/ntruerand() for uniform distribution&lt;/p&gt;

&lt;p&gt;games/blit: mkfile: install into /bin/games&lt;/p&gt;

&lt;p&gt;games/blit: always show top-left corner; add tony kaku&amp;rsquo;s -m flag&lt;/p&gt;

&lt;p&gt;games/blit: remove strange debugging line&lt;/p&gt;

&lt;p&gt;games/galaxy: fix exit race condition by pausing the galaxy before
threadexitsall&lt;/p&gt;

&lt;p&gt;games/galaxy: parallelize gravitational force calculations&lt;/p&gt;

&lt;p&gt;games/md: copy updated cpu.c from blit&lt;/p&gt;

&lt;p&gt;hjfs: Add comment to change the OFF size to 8 when given the chance&lt;/p&gt;

&lt;p&gt;hjfs: Clear all refs to zero when reaming.&lt;/p&gt;

&lt;p&gt;hjfs: Fix bugs in ref count scan check.  Enable as a console command
(caveat: command arguments will change as I implement more
functionality)&lt;/p&gt;

&lt;p&gt;hjfs: add simple scan check of directory entry blocks&lt;/p&gt;

&lt;p&gt;hjfs: avoid 8c &amp;ldquo;non-interruptable temporary&amp;rdquo; warning&lt;/p&gt;

&lt;p&gt;hjfs: check: check a block if its ref count is &lt;em&gt;not&lt;/em&gt; zero.  Also check
all the ref counts of blocks of a directory and clean up messages&lt;/p&gt;

&lt;p&gt;hjfs: disable hjfs check until more functionality is complete&lt;/p&gt;

&lt;p&gt;hjfs: fix broken dprint&lt;/p&gt;

&lt;p&gt;hjfs: improve error messaging around blocks that are not found&lt;/p&gt;

&lt;p&gt;hjfs: merge start of hjfs check implementation&lt;/p&gt;

&lt;p&gt;hjfs: simplify dprinting&lt;/p&gt;

&lt;p&gt;hjfs: start implementation of checking a directory&lt;/p&gt;

&lt;p&gt;ip/torrent: avoid requesting same chunks&lt;/p&gt;

&lt;p&gt;ip/torrent: avoid peerid collision using truerand() instead of time(0)&lt;/p&gt;

&lt;p&gt;ip/torrent: exit immidiately when file is complete after verification
and not being in seed mode&lt;/p&gt;

&lt;p&gt;ndb/dns: double Maxretries for long cname redirection chains&lt;/p&gt;

&lt;p&gt;nusb/lib: make usbcmd() return value symmetic; returning size of data
phase (if any) (thanks aiju)&lt;/p&gt;

&lt;p&gt;nusb/ptp: treat any assocation as a directory&lt;/p&gt;

&lt;p&gt;nusb/serial: pl2303: better error handling&lt;/p&gt;

&lt;p&gt;replica: use libavl for avl tree implementation&lt;/p&gt;

&lt;p&gt;rsa2ssh: drop support for version 1 key format&lt;/p&gt;

&lt;p&gt;ssh: weekend project&lt;/p&gt;

&lt;p&gt;ssh: actually handle flow control and channel id&amp;rsquo;s&lt;/p&gt;

&lt;p&gt;ssh: add &amp;ldquo;none&amp;rdquo; method to find out list of acceptable methods&lt;/p&gt;

&lt;p&gt;ssh: add support for subsystems&lt;/p&gt;

&lt;p&gt;ssh: cleanup debug messages&lt;/p&gt;

&lt;p&gt;ssh: close the channel when vt hangs up&lt;/p&gt;

&lt;p&gt;ssh: do not try authentication methods that we know are not possible&lt;/p&gt;

&lt;p&gt;ssh: document thumbfile options&lt;/p&gt;

&lt;p&gt;ssh: fix locking, and key reexchange handling&lt;/p&gt;

&lt;p&gt;ssh: fix typo&lt;/p&gt;

&lt;p&gt;ssh: implement password and keyboard-interactive authentication
methods&lt;/p&gt;

&lt;p&gt;ssh: implement primitive hostkey verification&lt;/p&gt;

&lt;p&gt;ssh: increase initial window size for better throughput&lt;/p&gt;

&lt;p&gt;ssh: loop keyboard-interactive on failure&lt;/p&gt;

&lt;p&gt;ssh: make number of retries configurable&lt;/p&gt;

&lt;p&gt;ssh: print the whole ssh-rsa hostkey in base64 when thumb check fails&lt;/p&gt;

&lt;p&gt;sshfs: add -r and -M options&lt;/p&gt;

&lt;p&gt;sshfs: check correctly for directory bits; calculate parent directory
correctly&lt;/p&gt;

&lt;p&gt;sshfs: don&amp;rsquo;t cache directory contents&lt;/p&gt;

&lt;p&gt;sshfs: don&amp;rsquo;t crash when no /etc/password file could be read on the
remote side&lt;/p&gt;

&lt;p&gt;sshfs: fix -r / retulting in &amp;ldquo;//foo&amp;rdquo; paths, memory leaks, use
estrdup9p()&lt;/p&gt;

&lt;p&gt;sshfs: look up uid/gid from /etc/^(passwd group)&lt;/p&gt;

&lt;p&gt;sshfs: remove debug print&lt;/p&gt;

&lt;p&gt;sshfs: reset SReq-&gt;reqid field to fix double-free of request ids&lt;/p&gt;

&lt;p&gt;upas/common: deliver mail to mdir as .tmp file and rename after it has
been fully written&lt;/p&gt;

&lt;p&gt;upas/fs: don&amp;rsquo;t abort on malformed unix header&lt;/p&gt;

&lt;p&gt;upas/fs: fix dir comparsion and skip directories in mdir, avoid stat&lt;/p&gt;

&lt;p&gt;upas/fs: fix sync condition&lt;/p&gt;

&lt;p&gt;upas/fs: fix warning about unused Err: label&lt;/p&gt;

&lt;p&gt;upas/fs: make use of Maxmsg consistent&lt;/p&gt;

&lt;p&gt;upas/fs: remove imap lastread debounding&lt;/p&gt;

&lt;p&gt;upas/fs: simplify imap4read()&lt;/p&gt;

&lt;p&gt;upas/send: use openfolder() to deliver mail to avoid code duplication&lt;/p&gt;

&lt;p&gt;upas/smtp: Revert smtp dial string behavior to match that of old upas
(thanks sam-d)&lt;/p&gt;

&lt;p&gt;upas/smtp: fix cram-md5 auth, simplify doauth(), check varargs for
dBprint()&lt;/p&gt;

&lt;p&gt;upas/smtp: generate 128-bit random message id (was 32 bit), use
dBprint(), cleanup unused variables&lt;/p&gt;

&lt;p&gt;vt: convert from event to threads&lt;/p&gt;

&lt;p&gt;vt: cursoron, don&amp;rsquo;t resize winow when replying history&lt;/p&gt;

&lt;p&gt;vt: fix background drawing&lt;/p&gt;

&lt;p&gt;vt: fix xterm cursor keys&lt;/p&gt;

&lt;p&gt;vt: handle application/normal mode (really fixes cursor keys)&lt;/p&gt;

&lt;p&gt;vt: handle insert/delete/home/end keys for vt220/xterm&lt;/p&gt;

&lt;p&gt;vt: handle nocolor flag and reversed background colors&lt;/p&gt;

&lt;p&gt;vt: handle underline attribute&lt;/p&gt;

&lt;p&gt;vt: implement snarf support&lt;/p&gt;

&lt;p&gt;vt: increase history buffer to 64K runes&lt;/p&gt;

&lt;p&gt;vt: send interrupt on exit, open logfile OCEXEC, run host after
environment got exported, send rest of arguments to host&lt;/p&gt;

&lt;h2&gt;OTHER&lt;/h2&gt;

&lt;p&gt;change cpurc to look for service folder in /cfg/$sysname and
/cfg/default&lt;/p&gt;

&lt;p&gt;disable all services except 17019, 17020 by default&lt;/p&gt;

&lt;p&gt;dist/ndb: move sources auth server to ndb/common, list root dns
servers in ndb/local as a fallback&lt;/p&gt;

&lt;p&gt;inst/configether: in manual network configuration, ask for dns server&lt;/p&gt;

&lt;p&gt;/lib/rob, /lib/theo: I don&amp;rsquo;t think so.&lt;/p&gt;

&lt;h2&gt;DOCUMENTATION&lt;/h2&gt;

&lt;p&gt;9p(2): fix typo in manpage&lt;/p&gt;

&lt;p&gt;add blit(1) manpage&lt;/p&gt;

&lt;p&gt;plumb(2): Fix typo in description of Plumbdelattr (thanks sam-d)&lt;/p&gt;

&lt;p&gt;webfs(4): timeout is in milliseconds not seconds (thanks sam-d)&lt;/p&gt;

&lt;p&gt;vt(1): the &amp;ldquo;send&amp;rdquo; menu became &amp;ldquo;paste&amp;rdquo;&lt;/p&gt;

&lt;p&gt;ssh(1): add $home/lib/thumbfile to FILE section&lt;/p&gt;

&lt;p&gt;ssh(1): add bugs section about host not being authenticated&lt;/p&gt;

&lt;p&gt;ssh(1): initial documentation, needs examples for authentication&lt;/p&gt;

&lt;p&gt;ssh(1): refer to thumbprint(6) for the sshthumbs file format&lt;/p&gt;

&lt;p&gt;rsa(8): fix description of rsa2ssh (now, ssh2 format only)&lt;/p&gt;

&lt;p&gt;add sshfs(4) manpage&lt;/p&gt;

&lt;p&gt;sshfs(4): fix bad cross reference&lt;/p&gt;

&lt;p&gt;&lt;img src="http://9front.org/img/maritimeengineeringstandards.back.png" alt="back" /&gt;&lt;/p&gt;

&lt;p&gt;THANKS FOR COMING IN&lt;/p&gt;
 </description>
        </item>

        <item>
            <title><![CDATA[9FRONT "полезные дураки" RELEASED]]></title>
            <author><![CDATA[sl@noreply.cat-v.org (sl)]]></author>
            <link>http://9front.org:80/releases/2017/03/19/0/</link>
            <guid isPermaLink="true">http://9front.org:80/releases/2017/03/19/0/</guid>
            <pubDate>Wed, 06 Apr 2022 17:14:18 -0400</pubDate>
            <description> &lt;p&gt;&lt;img src="http://9front.org/img/usefulidiots.front.png" alt="front" /&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-5817.cb352df7ccf2.iso.gz.torrent"&gt;http://9front.org/iso/9front-5817.cb352df7ccf2.iso.gz.torrent&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-5817.cb352df7ccf2.iso.gz"&gt;http://9front.org/iso/9front-5817.cb352df7ccf2.iso.gz&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;dash 1 manual&lt;/h2&gt;

&lt;p&gt;&lt;a href="http://fqa.9front.org/dash1.usefulidiots.pdf"&gt;http://fqa.9front.org/dash1.usefulidiots.pdf&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;KERNEL AND DRIVERS&lt;/h2&gt;

&lt;p&gt;ether8169: add support for RTL8106E (thanks _potato)&lt;/p&gt;

&lt;p&gt;ether82563: work arround phyprobe() failing on 82579LM without cable
plugged in (thanks mischief)&lt;/p&gt;

&lt;p&gt;pc, pc64: bump Qmax in devarch&lt;/p&gt;

&lt;p&gt;pc, pc64: get rid of active.Lock and active.thunderbirdsargo&lt;/p&gt;

&lt;p&gt;pc, pc64: avoid AP&amp;rsquo;s spinning in syncclock(), don&amp;rsquo;t wait for
thunderbirdsargo&lt;/p&gt;

&lt;p&gt;pc, pc64: assume tsc and lapic clock rate on application processors is
the same as on bootrap processor&lt;/p&gt;

&lt;p&gt;pc, pc64: give cpu servers as many image cache strctures as processes&lt;/p&gt;

&lt;p&gt;pc: don&amp;rsquo;t use active.thunderbirdsargo in vunmap() tlb flush code&lt;/p&gt;

&lt;p&gt;pc64: enable cputemp driver&lt;/p&gt;

&lt;p&gt;teg2: fix format string warning in mmu.c&lt;/p&gt;

&lt;p&gt;devmouse: refactor screen blanking logic&lt;/p&gt;

&lt;h2&gt;LIBRARIES&lt;/h2&gt;

&lt;p&gt;libaml: make heap size field int, implement BankField definitions&lt;/p&gt;

&lt;h2&gt;COMPILERS AND DEBUGGERS&lt;/h2&gt;

&lt;p&gt;5l,6l,8l,kl,ql,vl: allow duplicate GLOBAL symbols (from Ori Bernstein)&lt;/p&gt;

&lt;h2&gt;PROGRAMS&lt;/h2&gt;

&lt;p&gt;auth/asaudit: check factotum key ; netaudit: mention asaudit &lt;em&gt;NEW&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;auth/asaudit: missing \n in print&lt;/p&gt;

&lt;p&gt;auth/asaudit: quote user and dom attributes in factotum key&lt;/p&gt;

&lt;p&gt;auth/keyfs: support -r flag to mount read-only&lt;/p&gt;

&lt;p&gt;auth/readnvram: also print dp9ik key&lt;/p&gt;

&lt;p&gt;authsrv: more useful error reporting&lt;/p&gt;

&lt;p&gt;authsrv: don&amp;rsquo;t hash in hostowner key for keyseed&lt;/p&gt;

&lt;p&gt;authsrv: salt the keyseed from /adm/keyseed file&lt;/p&gt;

&lt;p&gt;authsrv: handle short reads in initkeyseed()&lt;/p&gt;

&lt;p&gt;authsrv: fix mkkey() dummy key generation (thanks aiju)&lt;/p&gt;

&lt;p&gt;authsrv: get rid of needreply parameter by changing vnc protocol
handler&lt;/p&gt;

&lt;p&gt;cwfs: handle DMTMP flag in create&lt;/p&gt;

&lt;p&gt;games/doom: music support (thanks qu7uux)&lt;/p&gt;

&lt;p&gt;games/doom: avoid /dev/cursor fd leak into music process&lt;/p&gt;

&lt;p&gt;games/doom: don&amp;rsquo;t spawn midi process when opening /dev/audio failed
(thanks qwx)&lt;/p&gt;

&lt;p&gt;games/galaxy: Change button 2 to reposition the galaxy, remove &amp;ldquo;move&amp;rdquo;
from the button 3 menu&lt;/p&gt;

&lt;p&gt;games/galaxy: avoid unnecessary calculations&lt;/p&gt;

&lt;p&gt;games/galaxy: fix creation of new bodies&lt;/p&gt;

&lt;p&gt;games/galaxy: fix zoom&lt;/p&gt;

&lt;p&gt;games/galaxy: new mouse behavior&lt;/p&gt;

&lt;p&gt;games/galaxy: simplify zoom loop&lt;/p&gt;

&lt;p&gt;games/galaxy: tweak pausing behavior&lt;/p&gt;

&lt;p&gt;games/midi: ignore bends, allow piping from stdin and to stdout, write
in chunks from within sample loop (thanks qu7uux)&lt;/p&gt;

&lt;p&gt;games/mus: midi converter (by qu7uux)&lt;/p&gt;

&lt;p&gt;gs: fix dangleing pointer crash with &amp;ldquo;lock&amp;rdquo; (ghostscript Bug 697204)&lt;/p&gt;

&lt;p&gt;gs: check for sufficient params in .sethalftone5&lt;/p&gt;

&lt;p&gt;gs: validate parameter is dict in .initialize_dsc_parse&lt;/p&gt;

&lt;p&gt;hgwebfs: keep trying as long as we get needkey response&lt;/p&gt;

&lt;p&gt;hgwebfs: rewind data before pushing&lt;/p&gt;

&lt;p&gt;ip/ipconfig: don&amp;rsquo;t null terminate the dhcp string options.&lt;/p&gt;

&lt;p&gt;play, file: recognize midi and mus audio&lt;/p&gt;

&lt;p&gt;tapefs: handle more cpio formats (thanks qrstuv)&lt;/p&gt;

&lt;p&gt;upas: merging erik quanstros nupas&lt;/p&gt;

&lt;p&gt;upas/fs: fix memory leaks in tls code, handle tls in a common
wraptls() function&lt;/p&gt;

&lt;p&gt;upas/fs: tls sni support for pop3/imap&lt;/p&gt;

&lt;p&gt;upas/fs: remove planb mbox code&lt;/p&gt;

&lt;p&gt;upas/fs: getting rid of the fine-grain locking&amp;hellip;&lt;/p&gt;

&lt;p&gt;upas/fs: remove unused segbrk memory allocator&lt;/p&gt;

&lt;p&gt;upas/imap4d: change listener from ip/imap4d to upas/imap4d&lt;/p&gt;

&lt;p&gt;upas/imap4d: simplify auth with encodefmt (backport from 9front)&lt;/p&gt;

&lt;p&gt;upas/spf: delete okcidr(); always trust spf records&lt;/p&gt;

&lt;h2&gt;DOCUMENTATION&lt;/h2&gt;

&lt;p&gt;vga(3): complete list of vga controllers and software cursors&lt;/p&gt;

&lt;p&gt;mus(1): fix manpage references&lt;/p&gt;

&lt;p&gt;send(8): document new reject behaviour with -r flag&lt;/p&gt;

&lt;p&gt;diskparts(8), prep(8): add edisk in NAME section&lt;/p&gt;

&lt;p&gt;games(1): document games/midi -c arguments&lt;/p&gt;

&lt;p&gt;add mdir(6), splitmbox(8) and update upasfs(4)&lt;/p&gt;

&lt;p&gt;add redact(1)&lt;/p&gt;

&lt;p&gt;authsrv(6): fix typo &amp;ldquo;ther&amp;rdquo; -&gt; &amp;ldquo;their&amp;rdquo; (thanks aiju)&lt;/p&gt;

&lt;h2&gt;OTHER&lt;/h2&gt;

&lt;p&gt;update /lib/legal/NOTICE&lt;/p&gt;

&lt;p&gt;inst: make command window not overlap stats window in glendas riostart&lt;/p&gt;

&lt;p&gt;cdproto: make mdir for glenda, various cleanups&lt;/p&gt;

&lt;p&gt;&lt;img src="http://9front.org/img/usefulidiots.back.png" alt="back" /&gt;&lt;/p&gt;
 </description>
        </item>

        <item>
            <title><![CDATA[9front "FOR IMMEDIATE RELEASE" Released]]></title>
            <author><![CDATA[sl@noreply.cat-v.org (sl)]]></author>
            <link>http://9front.org:80/releases/2017/02/21/0/</link>
            <guid isPermaLink="true">http://9front.org:80/releases/2017/02/21/0/</guid>
            <pubDate>Wed, 06 Apr 2022 17:14:14 -0400</pubDate>
            <description> &lt;p&gt;&lt;img src="http://9front.org/img/forimmediaterelease.front.png" alt="front" /&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-5736.d347c9119bb1.iso.gz.torrent"&gt;http://9front.org/iso/9front-5736.d347c9119bb1.iso.gz.torrent&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-5736.d347c9119bb1.iso.gz"&gt;http://9front.org/iso/9front-5736.d347c9119bb1.iso.gz&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;PRAISE FOR 9FRONT&amp;rsquo;S BOLD ACTION&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;9front &amp;ldquo;Is Coming Out As A Winner On Many Issues&amp;hellip;&amp;rdquo; &amp;ndash; SD Times&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;rkrishnan, Cisco Systems:
&amp;ldquo;I am extremely sorry to see plan9 die a silent death.&amp;rdquo;&lt;/strong&gt;
(&lt;a href="https://rkrishnan.org/posts/2013-10-25-plan9-on-qemu.html"&gt;rkrishnan.org&lt;/a&gt;, 10/25/13)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rod Person, VPN Cryptographer:
&amp;ldquo;Does 9front have an email app and how usable is mothra, I&amp;rsquo;m guessing not ebay or youtube?&amp;rdquo;&lt;/strong&gt;
(&lt;a href="http://daemonforums.org/showthread.php?p=57300"&gt;daemonforums.org&lt;/a&gt;, 6/25/15)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Christoph Reiter, German:
&amp;ldquo;Wer verwendet 9Front eigentlich? Die Antwort lautet: fast niemand.&amp;rdquo;&lt;/strong&gt;
(&lt;a href="https://www.golem.de/news/9front-der-unterschaetzte-beinahe-unix-nachfolger-1603-119458-4.html"&gt;golem.de&lt;/a&gt;, 8/3/16)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;seesomesense, Hacker News:
&amp;ldquo;Plan 9 was probably the finest operating system in the world.&amp;rdquo;&lt;/strong&gt;
(&lt;a href="https://news.ycombinator.com/item?id=12617421"&gt;HN&lt;/a&gt;, 11/16)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;pranomostro, Redditor:
&amp;ldquo;The future of plan9 is pretty bleak imho.&amp;rdquo;&lt;/strong&gt;
(&lt;a href="https://www.reddit.com/r/plan9/comments/5l3k8x/what_in_your_opinion_should_be_a_future_of_plan_9/dbswzmp/"&gt;reddit.com&lt;/a&gt;, 1/17)&lt;/p&gt;

&lt;h2&gt;dash 1 manual&lt;/h2&gt;

&lt;p&gt;&lt;a href="http://fqa.9front.org/dash1.forimmediaterelease.pdf"&gt;http://fqa.9front.org/dash1.forimmediaterelease.pdf&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;kernel and drivers&lt;/h2&gt;

&lt;p&gt;kernel: add &amp;ldquo;close&amp;rdquo; ctl message for tcp connection to gracefully hang
up a connection without a tcp reset (used by go)&lt;/p&gt;

&lt;p&gt;kernel: make the mntcache robust against fileserver like fossil that
do not change the qid.vers on wstat&lt;/p&gt;

&lt;p&gt;pc/pc64: get rid of timerset(0) case, was used with &amp;ldquo;i8253set off&amp;rdquo; ctl&lt;/p&gt;

&lt;p&gt;sgi: change definition of tas() to take void* like the rest&lt;/p&gt;

&lt;p&gt;sgi: cleanup timer code&lt;/p&gt;

&lt;p&gt;sgi: get rid of timerset(0) case&lt;/p&gt;

&lt;p&gt;ether82563: support for i219 (tested on t460p, thanks aiju)&lt;/p&gt;

&lt;p&gt;etheriwl: add support for Centrino Advanced-N 6030, 6235 (thanks khm,
openbsd)&lt;/p&gt;

&lt;p&gt;vgaigfx: enable softscreen by default&lt;/p&gt;

&lt;p&gt;wifi: timestamps in debug print, flush queue on deassoc, shorter roam
timeout, timeout in blocked state, fix essid seprint race&lt;/p&gt;

&lt;h2&gt;libraries&lt;/h2&gt;

&lt;p&gt;libmp: avoid temporary buffer allocation in mprand()&lt;/p&gt;

&lt;p&gt;libmp: fix mpmod() aliasing bug when n == r and x &amp;lt; 0 (thanks aiju,
mischief)&lt;/p&gt;

&lt;p&gt;libregexp: simplify regular expression vm implementation&lt;/p&gt;

&lt;p&gt;libregexp: improve the transition to next available thread,
instruction, and generation&lt;/p&gt;

&lt;p&gt;libregexp: fix assert check for compile1 instruction count&lt;/p&gt;

&lt;p&gt;libsec: replace des based X9.17 genrandom() with chacha random number
generator&lt;/p&gt;

&lt;p&gt;libsec: implement extended 192-bit nonce xchacha variant and hchacha
function&lt;/p&gt;

&lt;p&gt;libsec: avoid temp variables in chacha/salsa ENCRYPT() macro&lt;/p&gt;

&lt;p&gt;libsec: have rsagen() always produce postive !dk to avoid confusion&lt;/p&gt;

&lt;p&gt;libsec: need PKCS#9 &amp;ldquo;Extension Request&amp;rdquo; attribute (rsareq())&lt;/p&gt;

&lt;p&gt;libsec: check if modulus is too small for message in pkcs1padbuf()&lt;/p&gt;

&lt;p&gt;libsec: fix mkbigint(), asn.1 uses two&amp;rsquo;s compement signed
representation&lt;/p&gt;

&lt;p&gt;libsec: handle signed asn.1 bigint to mpint conversion for x509&lt;/p&gt;

&lt;p&gt;libsec: revert asn1mpint(), rewrite rsa signature validation, cleanups&lt;/p&gt;

&lt;p&gt;libsec: make X509toECpub() return CN name like X509toRSApub()&lt;/p&gt;

&lt;p&gt;libsec: zero name buffer in X509toECpub()&lt;/p&gt;

&lt;h2&gt;compilers and debuggers&lt;/h2&gt;

&lt;p&gt;6c, 8c: fix &amp;ldquo;DI botch&amp;rdquo; evacuating DI/SI/CX registers to &amp;ldquo;.save&amp;rdquo; variables&lt;/p&gt;

&lt;p&gt;6c: reverse register allocation order to avoid having to spill AX,DX and CX&lt;/p&gt;

&lt;h2&gt;programs&lt;/h2&gt;

&lt;p&gt;aan: check negative message size in header&lt;/p&gt;

&lt;p&gt;aan: use unsigned message counters, reject repeated acks, cleanup
debug prints&lt;/p&gt;

&lt;p&gt;aan: remove fcallfmt&lt;/p&gt;

&lt;p&gt;audio/flacdec: continue after decode error (thanks deuteron)&lt;/p&gt;

&lt;p&gt;auth/factotum: fix memory leak in findkey()&lt;/p&gt;

&lt;p&gt;auth/factotum: support sha256 algorithm in rsa pkcs#1 signing&lt;/p&gt;

&lt;p&gt;auth/keyfs, auth/secstore, auth/secuser: use ulong for time&lt;/p&gt;

&lt;p&gt;aux/data2s: compress output&lt;/p&gt;

&lt;p&gt;aux/wpa: dont send initial &amp;ldquo;start&amp;rdquo; message, faster polling interval
waiting for connection&lt;/p&gt;

&lt;p&gt;cfs: fix cfsctl interaction with mount cache (mount -C flag)&lt;/p&gt;

&lt;p&gt;cwfs: fix cwcmd startdump&lt;/p&gt;

&lt;p&gt;cwfs: handle worm exhaustion more gracefully&lt;/p&gt;

&lt;p&gt;fplot: parse negative numbers in argument to -r option (thanks qu7uux)&lt;/p&gt;

&lt;p&gt;fplot: fix zoom egetrect check (thanks qu7uux)&lt;/p&gt;

&lt;p&gt;games/galaxy: add n-body simulator&lt;/p&gt;

&lt;p&gt;games/galaxy: fix crash on write to closed display&lt;/p&gt;

&lt;p&gt;games/gb: fix typo in the routine to load timer data (thanks qwx)&lt;/p&gt;

&lt;p&gt;games/gb: timer array should be unsigned (thanks qwx)&lt;/p&gt;

&lt;p&gt;games/gb: fix bug that prevented timer data from being accessed
(thanks qwx)&lt;/p&gt;

&lt;p&gt;games/jukefs: fix realloc sizes (thanks mischief)&lt;/p&gt;

&lt;p&gt;games/mix: Add Knuth MIX emulator/assembler&lt;/p&gt;

&lt;p&gt;games/mix: fix STZ bug, print CMPA instruction&lt;/p&gt;

&lt;p&gt;games/mix: implement Knuth&amp;rsquo;s specification for comments&lt;/p&gt;

&lt;p&gt;inst/bootsetup: fix unformated esp check (thanks yellow_apple)&lt;/p&gt;

&lt;p&gt;ip/gping: fix corruption due to Machine.last pointer not being
maintained in pingclean(), cleanup unused stuff&lt;/p&gt;

&lt;p&gt;ip/ipconfig: don&amp;rsquo;t write /net/ndb when getting config from ndb (-N)&lt;/p&gt;

&lt;p&gt;ip/ipconfig: have to refresh /net/cs, /net/dns after ndbconfig even
tho /net/ndb didnt got written&lt;/p&gt;

&lt;p&gt;keyfs: print error message when reading /adm/keys fails&lt;/p&gt;

&lt;p&gt;playlistfs: fix playc chan type (thanks mischief)&lt;/p&gt;

&lt;p&gt;rcpu: use $cpu environment variable for host when not specified&lt;/p&gt;

&lt;p&gt;rsagen: prefer 65537 as the default exponent when elen == 0, otherwise
pick randomly&lt;/p&gt;

&lt;p&gt;rx: remove ssh code&lt;/p&gt;

&lt;p&gt;samterm: avoid flushimage when theres nothing new to flush&lt;/p&gt;

&lt;p&gt;ssh: R.I.P.&lt;/p&gt;

&lt;h2&gt;documentation&lt;/h2&gt;

&lt;p&gt;auth(8): document authsrv -N flag&lt;/p&gt;

&lt;p&gt;cpu(1), import(4): note deprecation and refer to rcpu(1)&lt;/p&gt;

&lt;p&gt;ec(2): document ecencodepub(), ecdecodepub() and ecpubfree() and list
all the curve parameter functions&lt;/p&gt;

&lt;p&gt;ec(2), rsa(2): document X509toECpub(), X509ecdsaverify(),
X509ecdsaverifydigest(), X509rsaverifydigest()&lt;/p&gt;

&lt;p&gt;galaxy(1): terminate .EX sections with .EE&lt;/p&gt;

&lt;p&gt;rsa(2): document rsafill()&lt;/p&gt;

&lt;p&gt;srv(4), &amp;amp;c: remove ssh/sshsrv references&lt;/p&gt;

&lt;h2&gt;other&lt;/h2&gt;

&lt;p&gt;cdproto: explicitely create /$objtype/bin subdirectories for all archs&lt;/p&gt;

&lt;p&gt;/sys/lib/plumb/basic: fix rule for audio files (thanks deuteron)&lt;/p&gt;

&lt;p&gt;&lt;img src="http://9front.org/img/forimmediaterelease.back.png" alt="back" /&gt;&lt;/p&gt;
 </description>
        </item>

        <item>
            <title><![CDATA[New 9front release "GZ"]]></title>
            <author><![CDATA[sl@noreply.cat-v.org (sl)]]></author>
            <link>http://9front.org:80/releases/2016/12/28/0/</link>
            <guid isPermaLink="true">http://9front.org:80/releases/2016/12/28/0/</guid>
            <pubDate>Wed, 06 Apr 2022 17:14:06 -0400</pubDate>
            <description> &lt;p&gt;&lt;img src="http://9front.org/img/gz.front.png" alt="front" /&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-5641.6149f97a7801.iso.gz.torrent"&gt;http://9front.org/iso/9front-5641.6149f97a7801.iso.gz.torrent&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-5641.6149f97a7801.iso.gz"&gt;http://9front.org/iso/9front-5641.6149f97a7801.iso.gz&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;dash 1 manual&lt;/h2&gt;

&lt;p&gt;&lt;a href="http://fqa.9front.org/dash1.gz.pdf"&gt;http://fqa.9front.org/dash1.gz.pdf&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;kernel and drivers&lt;/h2&gt;

&lt;p&gt;kernel: avoid padblock copying for devtls/devssl/esp, cleanup
debugging&lt;/p&gt;

&lt;p&gt;kernel: fix missing ; in panic() call&lt;/p&gt;

&lt;p&gt;omap: fix format string warning %d for long&lt;/p&gt;

&lt;p&gt;omap: cleanup mouse.c, just a dummy for mousectl()&lt;/p&gt;

&lt;p&gt;pc: pat write combinding support for 386 kernel, honor cpuid bits&lt;/p&gt;

&lt;p&gt;pc: modify cpu0 page tables in patwc() instead of current cpu ones&lt;/p&gt;

&lt;p&gt;pc64: check if vmap() range fits in VMAPLEN window, remove unneeded
vmapsync(), rename fault386() to faultamd64()&lt;/p&gt;

&lt;p&gt;pc64: implement simple write combining for framebuffers with the PAT&lt;/p&gt;

&lt;p&gt;xen: fix build by adding missing rdrandbuf() function&lt;/p&gt;

&lt;p&gt;archacpi: fix format string warning on amd64&lt;/p&gt;

&lt;p&gt;gre: check nil for pullupblock()&lt;/p&gt;

&lt;p&gt;ip: always pass a single block to Medium.bwrite(), avoid concatblock()
calls in Dev.bwrite()&lt;/p&gt;

&lt;p&gt;ip: remove nil checks for allocb() and padblock()&lt;/p&gt;

&lt;p&gt;ip: fix typo (rfc -&gt; ifc)&lt;/p&gt;

&lt;p&gt;ip: get rid of update_mtucache() and restrict_mtu() prototypes&lt;/p&gt;

&lt;p&gt;ip/nullmedium: free passed block in nullbwrite()&lt;/p&gt;

&lt;p&gt;ip/pktmedium: fix wrong hsize, theres no ethernet header on packet
media&lt;/p&gt;

&lt;p&gt;ip/pktmedium: no mintu, no maclen&amp;hellip;  thi is ip packets&lt;/p&gt;

&lt;p&gt;ip/tcp: remove useless nil checks for padblock() and allocb() return
value&lt;/p&gt;

&lt;p&gt;ip/tcp: only calculae mss from interface mtu when directly reachable
for v6&lt;/p&gt;

&lt;p&gt;ip/tcp: never raise the mss over the link mtu &amp;lt; 1280 for v6&lt;/p&gt;

&lt;p&gt;qio: big cleanup of qio functions&lt;/p&gt;

&lt;p&gt;qio: fix comments, fix qiwrite() on close queue, remove debug
setmalloctag() call in qwrite()&lt;/p&gt;

&lt;p&gt;qio: implement concatblock() with pullupblock()&lt;/p&gt;

&lt;p&gt;qio: get rid of unused qcopycnt debug variable&lt;/p&gt;

&lt;p&gt;qio: make readblist() offset of type ulong as the rest&lt;/p&gt;

&lt;p&gt;devbridge: various bugfixes and improvements from charles forsyth&lt;/p&gt;

&lt;p&gt;devbridge: simplify etherwrite() as we dont deal with block lists&lt;/p&gt;

&lt;p&gt;devcons: simplify putstrn0()&lt;/p&gt;

&lt;p&gt;devloopback: simplify loopoput()&lt;/p&gt;

&lt;p&gt;devmnt: avoid memory copies of I/O rpc buffer by using bwrite()&lt;/p&gt;

&lt;p&gt;devmouse: various bugfixes, simplify&lt;/p&gt;

&lt;p&gt;devmouse: change msec argument of *mousetrack() to ulong&lt;/p&gt;

&lt;p&gt;devmouse: remove unused static map[] array&lt;/p&gt;

&lt;p&gt;devtls: remove unused get32() function&lt;/p&gt;

&lt;p&gt;audioac97: support for ICH4-ICH7 based cards with memory mapped
registers (thanks echoline)&lt;/p&gt;

&lt;h2&gt;libraries&lt;/h2&gt;

&lt;p&gt;libauth: don&amp;rsquo;t attempt to mount when opening mount srv file fails in
nsop()&lt;/p&gt;

&lt;p&gt;libavl: put debug functions back&lt;/p&gt;

&lt;p&gt;libc: move calloc() into its own compilation unit&lt;/p&gt;

&lt;p&gt;libmemdraw: remove unused static drawbuf variables and ptrfn()
declaration&lt;/p&gt;

&lt;p&gt;libmemdraw: cleanup fillpoly(), remove unused fillcolor hack&lt;/p&gt;

&lt;p&gt;libmp: mpxor: sign should be 1/-1, not 0/-1&lt;/p&gt;

&lt;p&gt;libregexp: put debug functions back&lt;/p&gt;

&lt;p&gt;ape/libsec, libsec: add secp384r1 curve parameters for tls&lt;/p&gt;

&lt;p&gt;libsec: remove unused aes_setupDec&lt;/p&gt;

&lt;p&gt;libsec: remove unused get32() function&lt;/p&gt;

&lt;p&gt;libstdio: fix sclose() buffer overrun when terminating string,
realloc() error handling (thanks porlock)&lt;/p&gt;

&lt;h2&gt;compilers and debuggers&lt;/h2&gt;

&lt;p&gt;8c: fix double compiling FNX complex lvalue in cgen64()&lt;/p&gt;

&lt;p&gt;acid: fix y.tab.h dependency for proc.$O&lt;/p&gt;

&lt;h2&gt;programs&lt;/h2&gt;

&lt;p&gt;aan: didn&amp;rsquo;t ask about sendcommand&lt;/p&gt;

&lt;p&gt;auth/as, auth/none, auth/newns: consistent handling of command
arguments, cleanup&lt;/p&gt;

&lt;p&gt;aux/acpi: make it stats(8)-friendly&lt;/p&gt;

&lt;p&gt;awk: improve random number generation&lt;/p&gt;

&lt;p&gt;clock: remove unused variable&lt;/p&gt;

&lt;p&gt;cryptsetup: fix bugs and cleanup&lt;/p&gt;

&lt;p&gt;nusb/ether: support for &amp;ldquo;bridge&amp;rdquo; ctl message&lt;/p&gt;

&lt;p&gt;page: remove unused variables&lt;/p&gt;

&lt;p&gt;ramfs: remove unused variable&lt;/p&gt;

&lt;p&gt;rcpu: avoid filedescriptor conflict with &amp;lt;{} (thanks mycroftiv)&lt;/p&gt;

&lt;p&gt;stats: alternatively read battery and temp from aux/acpi&lt;/p&gt;

&lt;p&gt;tar: remove unused variable&lt;/p&gt;

&lt;p&gt;vncs: update devmouse code&lt;/p&gt;

&lt;p&gt;vncs: don&amp;rsquo;t prompt for password on auth_respond() failure&lt;/p&gt;

&lt;p&gt;winwatch: middle mouse button click also prompts for label&lt;/p&gt;

&lt;p&gt;winwatch: no more &amp;lsquo;l&amp;rsquo; key labeling&lt;/p&gt;

&lt;p&gt;winwatch: put previous label contents in edit buffer for relabling&lt;/p&gt;

&lt;h2&gt;documentation&lt;/h2&gt;

&lt;p&gt;alv(2): new avl implementation&lt;/p&gt;

&lt;p&gt;srv(4): add SOURCE for srvtls&lt;/p&gt;

&lt;h2&gt;other&lt;/h2&gt;

&lt;p&gt;cdproto: explicitely create /$objtype/bin subdirectories for all archs&lt;/p&gt;

&lt;p&gt;tcp17019: make service proto and netdir arguments optional (for
aux/listen1)&lt;/p&gt;

&lt;p&gt;&lt;img src="http://9front.org/img/gz.back.png" alt="back" /&gt;&lt;/p&gt;
 </description>
        </item>

        <item>
            <title><![CDATA[New 9front release "LOOKS GREAT IN MOTHRA"]]></title>
            <author><![CDATA[sl@noreply.cat-v.org (sl)]]></author>
            <link>http://9front.org:80/releases/2016/10/27/0/</link>
            <guid isPermaLink="true">http://9front.org:80/releases/2016/10/27/0/</guid>
            <pubDate>Wed, 06 Apr 2022 17:13:57 -0400</pubDate>
            <description> &lt;p&gt;&lt;img src="http://9front.org/img/looksgreatinmothra.front.png" alt="looksgreatinmothra.front.png" /&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-5561.df1dc1ff2475.iso.bz2.torrent"&gt;torrent&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-5561.df1dc1ff2475.iso.bz2"&gt;direct download&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;dash 1&lt;/h2&gt;

&lt;p&gt;&lt;a href="http://fqa.9front.org/dash1.looksgreatinmothra.pdf"&gt;dash 1 manual&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;kernel and drivers&lt;/h2&gt;

&lt;p&gt;devcap: timeout capabilities after a minute, fix memory leak, paranoia&lt;/p&gt;

&lt;p&gt;devcons: remove /dev/reboot &amp;ldquo;halt&amp;rdquo; command&amp;hellip;&lt;/p&gt;

&lt;p&gt;devproc: do unsigned subtraction to get MACHP(0)-&gt;ticks - up-&gt;times[TReal] delta&lt;/p&gt;

&lt;p&gt;devip: simplify ipbwrite() by using retun value of qbwrite()&lt;/p&gt;

&lt;p&gt;ip/*: simplify code as packblock() and concatblock() will never error&lt;/p&gt;

&lt;p&gt;ip/icmp: only reply to echo request when directed to us and source is unicast&lt;/p&gt;

&lt;p&gt;kernel: tsemacquire() use MACHP(0)-&gt;ticks for time delta&lt;/p&gt;

&lt;p&gt;kernel: make sure procalarm() remaining time doesnt become negative&lt;/p&gt;

&lt;p&gt;kernel: use tk2ms() instead of TK2MS macro for process time conversion&lt;/p&gt;

&lt;p&gt;kernel: always do unsigned subtractions for m-&gt;ticks delta for updatecpu() and rebalance(), handle ticks wrap arround in hzsched()&lt;/p&gt;

&lt;p&gt;kernel: fix type for utime/stime in pexit(), fix debug format strings&lt;/p&gt;

&lt;p&gt;kernel: make randomread() fault reentrant&lt;/p&gt;

&lt;p&gt;kernel: rekey chacha state on each randomread() invocation&lt;/p&gt;

&lt;p&gt;kernel: replace various custom random iv buffer filling functions with calls to prng()&lt;/p&gt;

&lt;p&gt;kernel: xoroshiro128+ generator for rand()/nrand()&lt;/p&gt;

&lt;p&gt;etherzynq: implement promisc mode and multicast filter support&lt;/p&gt;

&lt;p&gt;nusb/ether: experimental pomisc mode and multicast support for smsc and asix&lt;/p&gt;

&lt;p&gt;nusb/ether: multicast and promisc support for rtl8150 (url)&lt;/p&gt;

&lt;p&gt;nusb/ether: promisc and multicast support for admtek pegasus (aue)&lt;/p&gt;

&lt;p&gt;nusb/kb: set usage to 0 (undefined) for items exceeding usage list&lt;/p&gt;

&lt;p&gt;nusb/lib: fix wrong endpoint id when openep() finds already existing endpoint file&lt;/p&gt;

&lt;p&gt;scram: disable GPEs before entering S5. x200s shuts down properly now&lt;/p&gt;

&lt;p&gt;pc/archacpi: provide generic #P/acpimem file&lt;/p&gt;

&lt;p&gt;aux/acpi: batteries and CPU temp reading so far&lt;/p&gt;

&lt;h2&gt;libraries&lt;/h2&gt;

&lt;p&gt;ape: bring strtod() in line with plan9&amp;rsquo;s libc version&lt;/p&gt;

&lt;p&gt;ape: fix format clash, %z is for size_t (which is a long currently), not pointer sized&lt;/p&gt;

&lt;p&gt;lib9p: limit the number of srv processes kept arround 8&lt;/p&gt;

&lt;p&gt;libc: dont use floating point for portable umuldiv(), use 64 bit uvlong&lt;/p&gt;

&lt;p&gt;libdraw: avoid dropping queued button change mouse events in emouse()&lt;/p&gt;

&lt;h2&gt;programs&lt;/h2&gt;

&lt;p&gt;auth/factotum: bound the number of srv processes to 16, error the 9p rpc when it is over limit&lt;/p&gt;

&lt;p&gt;cpu: quote remaining remote command arguments, don&amp;rsquo;t syslog on missing /mnt/term/dev/cpunote file&lt;/p&gt;

&lt;p&gt;gif: just read and decode the first image when -9 or -c flag is specified&lt;/p&gt;

&lt;p&gt;ipv6on: get network device from $netdir/ipifc/*/status&lt;/p&gt;

&lt;p&gt;iwhois: make -n work, add .org, and a couple minor changes&lt;/p&gt;

&lt;p&gt;mothra: avoid flushimage() calls, event() will implicitely flush&lt;/p&gt;

&lt;p&gt;mpc: remove unused yylval type&lt;/p&gt;

&lt;p&gt;rio: fix onscreen(), improved bandsize()&lt;/p&gt;

&lt;p&gt;sam: make current filename available to shell commands in $% (thanks aiju)&lt;/p&gt;

&lt;p&gt;scat: hjdicks for amd64&lt;/p&gt;

&lt;p&gt;webfs: don&amp;rsquo;t use cached connections when posting&lt;/p&gt;

&lt;h2&gt;documentation&lt;/h2&gt;

&lt;p&gt;authsrv(2): update Nvrsafe structure to include aesmachkey&lt;/p&gt;

&lt;p&gt;ip(3): spelling, update description of /net/ipifc/*/status format&lt;/p&gt;

&lt;p&gt;pc(1): _ handling in numbers was broken at some point; restore documented behaviour&lt;/p&gt;

&lt;p&gt;pc(1): add nsa() command&lt;/p&gt;

&lt;p&gt;pc(1): add pb (thanks, BurnZeZ); add bit numbering&lt;/p&gt;

&lt;p&gt;pc(1): bugfix: allow setting output base to 0 (thanks, deuteron)&lt;/p&gt;

&lt;p&gt;pc(1): if the input base is not 10, print the 0d prefix before decimal numbers; this way, all output is always valid input (for the current mode)&lt;/p&gt;

&lt;h2&gt;other&lt;/h2&gt;

&lt;p&gt;fortunes: does that me a dipshit&lt;/p&gt;

&lt;p&gt;&lt;img src="http://9front.org/img/looksgreatinmothra.back.png" alt="looksgreatinmothra.back.png" /&gt;&lt;/p&gt;
 </description>
        </item>

        <item>
            <title><![CDATA[New 9front release "THINK ABOUT THE FUTURE"]]></title>
            <author><![CDATA[sl@noreply.cat-v.org (sl)]]></author>
            <link>http://9front.org:80/releases/2016/09/04/0/</link>
            <guid isPermaLink="true">http://9front.org:80/releases/2016/09/04/0/</guid>
            <pubDate>Wed, 06 Apr 2022 17:13:53 -0400</pubDate>
            <description> &lt;p&gt;&lt;img src="http://9front.org/img/thinkaboutthefuture.front.png" alt="thinkaboutthefuture.front.png" /&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-5492.094727ce1d7a.iso.bz2.torrent"&gt;torrent&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-5492.094727ce1d7a.iso.bz2"&gt;direct download&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;dash 1&lt;/h2&gt;

&lt;p&gt;&lt;a href="http://fqa.9front.org/dash1.thinkaboutthefuture.pdf"&gt;dash 1 manual&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;notes&lt;/h2&gt;

&lt;p&gt;This release adds aiju&amp;rsquo;s games/timmy, a physics simulation game and a
bignum calculator for programmers called pc.&lt;/p&gt;

&lt;p&gt;On the system side, we got a fast portable /dev/random now which is
based on the chacha stream cipher - carefully seeded once at boot time.
Cipher states for the rng and other kernel crypto services is now
kept in a separate memory pool which devproc will prohibit access to
and which automatically destroys the data on free.&lt;/p&gt;

&lt;h2&gt;kernel&lt;/h2&gt;

&lt;p&gt;acpi: &lt;em&gt;ADR and &lt;/em&gt;BBN might be methods, so use amleval() to evaluate the value&lt;/p&gt;

&lt;p&gt;aml: define amlintmask and set it according to DSDT revision (64bit / 32bit)&lt;/p&gt;

&lt;p&gt;aml: implement ToInteger() and Match() instructions&lt;/p&gt;

&lt;p&gt;devmnt: fix mistake in mntrahread()&lt;/p&gt;

&lt;p&gt;devsdp: keep cipher states in secret memory&lt;/p&gt;

&lt;p&gt;devssl: allocate cipher states in secret memory&lt;/p&gt;

&lt;p&gt;devtls, devssl: make sure channel has ORDWR mode and is not a mount chan on fdtochan()&lt;/p&gt;

&lt;p&gt;devtls: allocate cipher states in secret memory&lt;/p&gt;

&lt;p&gt;ether8169: fix wrong mbps setting (from qu7uux)&lt;/p&gt;

&lt;p&gt;etheriwl: add pcid 0x0082 for Intel Centrino Advanced-N 6205 variant&lt;/p&gt;

&lt;p&gt;ip/esp: allocate cipher states in secret memory&lt;/p&gt;

&lt;p&gt;ip/il: dont attept to connect over IPv6, IL only supports IPv4 packets&lt;/p&gt;

&lt;p&gt;kernel: add secalloc() and secfree() functions for secret memory allocation&lt;/p&gt;

&lt;p&gt;kernel: dont pprint() into 9p channels&lt;/p&gt;

&lt;p&gt;kernel: more (arm) compiler friendly mul64fract()&lt;/p&gt;

&lt;p&gt;kernel: switch to fast portable chacha based seed-once random number generator&lt;/p&gt;

&lt;p&gt;swap: make sure swap chan has ORDWR mode on fdtochan()&lt;/p&gt;

&lt;p&gt;wifi: allocate cipher states in secret memory, do AESstate key setup once&lt;/p&gt;

&lt;h2&gt;libraries&lt;/h2&gt;

&lt;p&gt;ape/libap: add d_stat struct in dirent struct allowing the avoidance of stats&lt;/p&gt;

&lt;p&gt;ape/libauth: add PASSWDLEN constant to compile passtokey.c from native libauthsrv (thanks lawler)&lt;/p&gt;

&lt;p&gt;libauth: fix mount file-descriptor leak in auth_chuid()&lt;/p&gt;

&lt;p&gt;libauthsrv: ANAMELEN -&gt; PASSWDLEN&lt;/p&gt;

&lt;p&gt;libauthsrv: export common readcons() routine and introduce PASSWDLEN constant&lt;/p&gt;

&lt;p&gt;libc: add poolisoverlap() and definitions for Pool *secrmem&lt;/p&gt;

&lt;p&gt;libc: native &lt;em&gt;addv() and &lt;/em&gt;subv() routines for arm&lt;/p&gt;

&lt;p&gt;libcontrol: primitive text entry cut and paste with mouse&lt;/p&gt;

&lt;p&gt;libflate: add bounds checking on decode array, add sanity checks in hufftab()&lt;/p&gt;

&lt;p&gt;libframe: consistent use of nil vs. 0&lt;/p&gt;

&lt;p&gt;libmach: fix RORREG, right shift with shift count 0 means &gt;&gt;32&lt;/p&gt;

&lt;p&gt;libmp: allow passing nil to v,x,y results of mpextendedgcd(), simplify mpinvert()&lt;/p&gt;

&lt;p&gt;libmp: fix mpnot and add mpasr&lt;/p&gt;

&lt;p&gt;libmp: fix mptov and mptouv&lt;/p&gt;

&lt;p&gt;libmp: mpdiv: negative divisor has to flip sign of quotient&lt;/p&gt;

&lt;p&gt;libmp: mpnrand(), what was i &lt;em&gt;THINKING&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;libmp: mptrunc: don&amp;rsquo;t write to r-&gt;p[r-&gt;top]&lt;/p&gt;

&lt;p&gt;libmp: mptrunc: normalize after mpassign to handle the case b==r&lt;/p&gt;

&lt;p&gt;libmp: remove unused mpeuclid.c&lt;/p&gt;

&lt;p&gt;libmp: strtomp: fix mpbits() call in octal code&lt;/p&gt;

&lt;p&gt;libmp: strtomp: update the returned char* even if there were no characters parsed&lt;/p&gt;

&lt;p&gt;libmp: timingsafe sign flip for small power-of-two negative divisor for mpdiv()&lt;/p&gt;

&lt;p&gt;libsec: add scrypt password based key derivation function&lt;/p&gt;

&lt;p&gt;libsec: chacha: calculate rounds in separate function (helps registerizer), get rid of unrolled code&lt;/p&gt;

&lt;h2&gt;compiler&lt;/h2&gt;

&lt;p&gt;5a: ROR instruction
5a: assemble constant &gt;&gt;0 right shifts as &amp;lt;&lt;0 (no shift), allow &gt;&gt;32&lt;/p&gt;

&lt;p&gt;5c: do shift propagation for rotate right (ROR)&lt;/p&gt;

&lt;p&gt;5c: fix int -&gt; uvlong cast bug (thanks to qwx on his patience on a the trouble session to narrowing it down)&lt;/p&gt;

&lt;p&gt;5c: format assembly constant right shift encoding 0 as &gt;&gt;32&lt;/p&gt;

&lt;p&gt;5c: handle unused results for cgen64()&lt;/p&gt;

&lt;p&gt;5c: support for bit ROR, native 64 bit arithmetic&lt;/p&gt;

&lt;p&gt;5l: ROR instruction&lt;/p&gt;

&lt;p&gt;5l: format assembly constant right shift encoding 0 as &gt;&gt;32&lt;/p&gt;

&lt;p&gt;6c: subsitute floating point registers eleminating MOVSD and MOVSS instructions in peephole pass&lt;/p&gt;

&lt;p&gt;8c, 6c: native ROL (cyclic shift) instruction support, improve peephole optimizers&lt;/p&gt;

&lt;p&gt;?c: track ../cc/cc.h dependency and rebuild cc.a$O as neccesary&lt;/p&gt;

&lt;p&gt;cc: add OROL op to side effect free op list&lt;/p&gt;

&lt;h2&gt;programs&lt;/h2&gt;

&lt;p&gt;Bfn: add Bfn script - find source code for function&lt;/p&gt;

&lt;p&gt;9fs: remove juke, kfs and snap targets, caching for other and dump&lt;/p&gt;

&lt;p&gt;acme/win: implement /dev/wdir file in win to change directory tagline, remove awd&lt;/p&gt;

&lt;p&gt;audio/flacdec: exit on decode error, print error message&lt;/p&gt;

&lt;p&gt;auth/*: various cleanups, use common readcons() from libauthsrv, zero keys after use&lt;/p&gt;

&lt;p&gt;auth/changeuser: fix misleading print (secret is 31 chars max, not 256)&lt;/p&gt;

&lt;p&gt;auth/factotum: use common readcons() function from libauthsrv&lt;/p&gt;

&lt;p&gt;auth/fgui: use pale colors&lt;/p&gt;

&lt;p&gt;auth/login: add dp9ik key to sub factotum, get rid of temporary /srv file&lt;/p&gt;

&lt;p&gt;auth/secstore: use common readcons() routine from libauthsrv&lt;/p&gt;

&lt;p&gt;awk: fix awk format printing bugs (thanks aiju)&lt;/p&gt;

&lt;p&gt;disk/prep: if no 9fat, reserve space for plan9 partition table in autopart (thanks Shamar)&lt;/p&gt;

&lt;p&gt;games/doom: fix blazing door sounds (from qu7uux)&lt;/p&gt;

&lt;p&gt;games/doom: use Kprint for pause function (from qu7uux)&lt;/p&gt;

&lt;p&gt;games/timmy: added timmy - a physics sandbox&lt;/p&gt;

&lt;p&gt;hgwebfs: make hgwebfs prompt for password&lt;/p&gt;

&lt;p&gt;make error handling in 9p service loops consistent&lt;/p&gt;

&lt;p&gt;mercurial: use new d_stat from dirent structure in osutil.listdir&lt;/p&gt;

&lt;p&gt;mk: remove buggy and unneeded syminit() function (thanks qurstuv)&lt;/p&gt;

&lt;p&gt;mk: remove buggy and useless symtab functions (thanks qrstuv)&lt;/p&gt;

&lt;p&gt;ndb/cs: don&amp;rsquo;t lookup AAAA records for IL, make sure translated address is IPv4 for IL, consistent use of nil vs. 0 for pointers&lt;/p&gt;

&lt;p&gt;ndb/dns: purge db records on refresh for resolvers, remove old debug and testing code&lt;/p&gt;

&lt;p&gt;ndb/dns: remove procname statistics and restart feature, cleanup 9p service loop&lt;/p&gt;

&lt;p&gt;pc: added pc - programmer&amp;rsquo;s calculator&lt;/p&gt;

&lt;p&gt;pc: add cat() function&lt;/p&gt;

&lt;p&gt;pc: add gcd, rand and minv; set base of logical operation results to 0&lt;/p&gt;

&lt;p&gt;pc: add rev function&lt;/p&gt;

&lt;p&gt;python: remove automatic compiled module loading (.pyc files)&lt;/p&gt;

&lt;p&gt;ratrace: fix fork/exec race with &amp;ldquo;nohang&amp;rdquo; procctl (like a debugger)&lt;/p&gt;

&lt;p&gt;rc: implement 9atoms ` split {command} syntax extension&lt;/p&gt;

&lt;p&gt;rc: write /dev/wdir after printing the prompt, not after executing &amp;ldquo;cd&amp;rdquo; command&lt;/p&gt;

&lt;p&gt;rio: move the test if w is allowed to change cursor into wsetcursor()&lt;/p&gt;

&lt;p&gt;togif: -E flag to read animation from stdin&lt;/p&gt;

&lt;p&gt;upas/fs: remove checkmboxrefs() debugging code, properly handle errors in 9p loop&lt;/p&gt;

&lt;p&gt;vga/igfx: add pci did&amp;rsquo;s for kenjis intel graphics cards.&lt;/p&gt;

&lt;p&gt;vga/igfx: fix integer overflow in datam calculation (from qu7uux)&lt;/p&gt;

&lt;p&gt;vga/igfx: work in progress fdi link train for sandy bridge, properly calculate fdi and displayport lane count&lt;/p&gt;

&lt;p&gt;webfs: avoid retry loops when we got a bad key in factotum&lt;/p&gt;

&lt;p&gt;webfs: include factotum key query in error string for 401/407 Unauthorized status&lt;/p&gt;

&lt;p&gt;webfs: less aggressive url normalization; never unescape reserved characters in path/query/fragment&lt;/p&gt;

&lt;h2&gt;documentation&lt;/h2&gt;

&lt;p&gt;acme(1): remove references to awd&lt;/p&gt;

&lt;p&gt;aml(2): document amlintmask&lt;/p&gt;

&lt;p&gt;authsrv(6): document session secret key derivation for p9sk1 and dp9ik&lt;/p&gt;

&lt;p&gt;mp(2): document mplogic functions&lt;/p&gt;

&lt;p&gt;pc(1): document pc - programmer&amp;rsquo;s calculator&lt;/p&gt;

&lt;p&gt;rand(2), cons(3): clarify /dev/random behaviour&lt;/p&gt;

&lt;p&gt;rc-httpd(8): fix wrong manpage section index generation for rc-httpd(8)&lt;/p&gt;

&lt;p&gt;regexp(2): add history for libregexp&lt;/p&gt;

&lt;p&gt;rio(4): document text truncation&lt;/p&gt;

&lt;p&gt;src(1): document Bfn&lt;/p&gt;

&lt;p&gt;thread(2): threadgrp() -&gt; threadgetgrp(), thanks jpm&lt;/p&gt;

&lt;p&gt;timmy(1): games/timmy manpage&lt;/p&gt;

&lt;h2&gt;other&lt;/h2&gt;

&lt;p&gt;fortunes: Emacs now supports webkit.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://9front.org/img/thinkaboutthefuture.back.png" alt="thinkaboutthefuture.back.png" /&gt;&lt;/p&gt;
 </description>
        </item>

        <item>
            <title><![CDATA[New 9front release "NINE FRONT DON'T QUIT!"]]></title>
            <author><![CDATA[sl@noreply.cat-v.org (sl)]]></author>
            <link>http://9front.org:80/releases/2016/05/30/0/</link>
            <guid isPermaLink="true">http://9front.org:80/releases/2016/05/30/0/</guid>
            <pubDate>Wed, 06 Apr 2022 17:13:49 -0400</pubDate>
            <description> &lt;p&gt;&lt;img src="http://9front.org/img/nfdq.front.png" width="500"&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-5368.b4963e7e3204.iso.bz2.torrent"&gt;torrent&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-5368.b4963e7e3204.iso.bz2"&gt;direct download&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;dash 1&lt;/h2&gt;

&lt;p&gt;&lt;a href="http://fqa.9front.org/dash1.nfdq.pdf"&gt;dash 1 manual&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;notes&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Encrypted TCP booting (over TLS) is now possible. Simply choose tls at
     the bootargs prompt. See: /rc/bin/service/tcp17020&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The 9front.iso image can now be dd&amp;rsquo;d directly to a USB device.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;kernel&lt;/h2&gt;

&lt;p&gt;kernel: fix cb-&gt;f[0] nil dereferences due to short control request&lt;/p&gt;

&lt;p&gt;kernel: add srvtls and tlsclient to bootfs.proto for encrypting connection to the file server&lt;/p&gt;

&lt;p&gt;devssl, devtls: fix permission checks&lt;/p&gt;

&lt;p&gt;etheriwl: add pci id for PRO/Wireless 5350 AGN (thanks Ori_B)&lt;/p&gt;

&lt;p&gt;vgaigfx: fix device id for Ivy Bridge (thanks Kenji)&lt;/p&gt;

&lt;p&gt;vgaigfx: check gtt to determine graphics memory size, add hw cursor support for g35 (thanks kenji)&lt;/p&gt;

&lt;p&gt;efi: allow access to iso filesystem on non-cdrom media (iso/hybrid)&lt;/p&gt;

&lt;p&gt;efi: ensure 8 byte alignment of buffer, as ReadBlocks() method will fail otherwise&lt;/p&gt;

&lt;h2&gt;libraries&lt;/h2&gt;

&lt;p&gt;libauthsrv: dont pass netroot to netmkaddr()&amp;rsquo;s defnet parameter in authdial() (thanks kenji arisawa)&lt;/p&gt;

&lt;p&gt;libmemdraw: remove unused static variable from memimagedraw()&lt;/p&gt;

&lt;h2&gt;programs&lt;/h2&gt;

&lt;p&gt;9boot: add iso hybrid loader 9boothyb&lt;/p&gt;

&lt;p&gt;auth/rsa2x509, auth/rsa2csr: allow appending SubjectAlternativeNames (SAN) to multi-domain certificate generation&lt;/p&gt;

&lt;p&gt;auth/rsa2x509: generate x509v3 cert as extension field might not otherwise not be expected&lt;/p&gt;

&lt;p&gt;awk: restore old buffering behaviour for printf&lt;/p&gt;

&lt;p&gt;cc: use UTFmax not 4 (djc)&lt;/p&gt;

&lt;p&gt;cc: prevent symbol buffer overflow&lt;/p&gt;

&lt;p&gt;dist/mkfile: generate iso/hybrid image for 9front.iso&lt;/p&gt;

&lt;p&gt;exportfs: disallow ORCLOSE in readonly mode (charles forsyth)&lt;/p&gt;

&lt;p&gt;games/mahjongg: off by one in bmatch(), fix hint() redraw (thanks Kenji)&lt;/p&gt;

&lt;p&gt;ip/ipconfig, ip/ppp: preserve preexisting entries when writing /net/ndb&lt;/p&gt;

&lt;p&gt;jpg: output partial image data when available (truncated files)&lt;/p&gt;

&lt;p&gt;ndb/cs: fix memory leak (charles forsyth)&lt;/p&gt;

&lt;p&gt;rc: fix inband globbing bugs, cleanu&lt;/p&gt;

&lt;p&gt;rc: remove pointless Memcpy(),Malloc(),Realloc() and efree() wrappers&lt;/p&gt;

&lt;p&gt;rc: remove historical unix and win32 ports&lt;/p&gt;

&lt;p&gt;rc: remove duplicate Xrdfn entry from fname[] array&lt;/p&gt;

&lt;p&gt;rc: fix double close() in addenv()&lt;/p&gt;

&lt;p&gt;rc: simplify execfinit() / Xrdfn() using the globber to lookup /env/fn'#&amp;lsquo;*&lt;/p&gt;

&lt;p&gt;rio: only the current window may change the cursor, fix typo screen-&gt;r vs w-&gt;screenr in drag()&lt;/p&gt;

&lt;p&gt;add srvtls and the corresponding tcp17020 service&lt;/p&gt;

&lt;p&gt;upas/marshal: strip trailing whitespace from header values&lt;/p&gt;

&lt;h2&gt;documentation&lt;/h2&gt;

&lt;p&gt;9boot(8): document 9boothyb&lt;/p&gt;

&lt;h2&gt;other&lt;/h2&gt;

&lt;p&gt;remove š and Š from estonian keymap&lt;/p&gt;

&lt;p&gt;add belarusian (by) keymap (thanks eric lindblad)&lt;/p&gt;

&lt;p&gt;add polish keymap (thanks chomzee!)&lt;/p&gt;

&lt;p&gt;/lib/vgadb: add Panasonic CF-R7 LCD panel (thanks Kenji)&lt;/p&gt;

&lt;p&gt;&lt;img src="http://9front.org/img/nfdq.back.png" width="500"&gt;&lt;/p&gt;
 </description>
        </item>

        <item>
            <title><![CDATA[New 9front release "ALLES LÖSCHEN!"]]></title>
            <author><![CDATA[sl@noreply.cat-v.org (sl)]]></author>
            <link>http://9front.org:80/releases/2016/05/06/0/</link>
            <guid isPermaLink="true">http://9front.org:80/releases/2016/05/06/0/</guid>
            <pubDate>Wed, 06 Apr 2022 17:13:45 -0400</pubDate>
            <description> &lt;p&gt;&lt;img src="http://9front.org/img/allesloschen.front.png" width="500"&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-5321.f8c704dc01c.iso.bz2.torrent"&gt;torrent&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-5321.f8c704dc01c.iso.bz2"&gt;direct download&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;dash 1&lt;/h2&gt;

&lt;p&gt;&lt;a href="http://fqa.9front.org/dash1.allesloschen.pdf"&gt;dash 1 manual&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;kernel&lt;/h2&gt;

&lt;p&gt;retire the dec alpha port&lt;/p&gt;

&lt;p&gt;remove unmaintained bitsy (ipaq) kernel&lt;/p&gt;

&lt;p&gt;remove unmaintained omap4 (pandaboard) kernel&lt;/p&gt;

&lt;p&gt;etheryuk: add Yukon 88R8055 id from erik quanstros driver (thanks Kenji), add to pc64 kernel&lt;/p&gt;

&lt;h2&gt;libraries&lt;/h2&gt;

&lt;p&gt;ape: remove openssl&lt;/p&gt;

&lt;p&gt;ape: add libauth, libbio, libmp and libsec as replacements for openssl&lt;/p&gt;

&lt;p&gt;ape: return plan9 error strings from strerror()&lt;/p&gt;

&lt;p&gt;libauth: remove support for import command in namespace files&lt;/p&gt;

&lt;p&gt;libauth: remove unneeded includes for authsrv.h, avoid pulling in dependency for rerrstr()&lt;/p&gt;

&lt;p&gt;libc: fix out of bounds access in dirpackage(), simplify&lt;/p&gt;

&lt;p&gt;libc: remove unneeded #include &amp;lt;auth.h&gt; for crypt() and netcrypt()&lt;/p&gt;

&lt;p&gt;libdraw: avoid BPSHORT()/BPLONG() expansion, cleanup loadchar(),cachechars()&lt;/p&gt;

&lt;p&gt;libdraw: dont postnote to pid==0 in ekill()&lt;/p&gt;

&lt;p&gt;libjson: add slack space to literal string buffer to handle bad runes (thanks mischief)&lt;/p&gt;

&lt;p&gt;liboventi: remove unused liboventi&lt;/p&gt;

&lt;p&gt;libregexp: New libregexp and APE ported to native&lt;/p&gt;

&lt;p&gt;libsec: dont use mips assembly routines for spim, wrong endianess&lt;/p&gt;

&lt;p&gt;libsec: fix memory leak of RSApub, avoid parsing certificate twice to extract rsa public key&lt;/p&gt;

&lt;p&gt;libsec: implement elliptic curve group operations in jacobian coordinate system&lt;/p&gt;

&lt;p&gt;libsec: implement server side ECDHE key exchange with secp256r1, move DH state in TlsSec structure, simplify&lt;/p&gt;

&lt;p&gt;libsec: implement server side SCSV preventing silly client fallbacks&lt;/p&gt;

&lt;p&gt;libsec: order tlshand cipher suits by: keyexchange&gt;=cipher&gt;=hash, ignore client preference&lt;/p&gt;

&lt;p&gt;libsec: recognize and decode PKCS#8 wrapped RSA private keys for auth/asn12rsa&lt;/p&gt;

&lt;p&gt;libsec: x509: convert to UTF8 from BMPString and UNIString, reject \0 bytes&lt;/p&gt;

&lt;h2&gt;programs&lt;/h2&gt;

&lt;p&gt;9fs: add &amp;ldquo;sites&amp;rdquo; to the 9front case&lt;/p&gt;

&lt;p&gt;abaco: respect $font&lt;/p&gt;

&lt;p&gt;acid: don&amp;rsquo;t get fooled by spaces in convflt()&lt;/p&gt;

&lt;p&gt;awk: replace ape awk with new native port (thanks spew)&lt;/p&gt;

&lt;p&gt;gs: replace openssl aes implementation with ape/libsec&lt;/p&gt;

&lt;p&gt;hg: create system wide /sys/lib/hgrc to enabled hgwebfs extension&lt;/p&gt;

&lt;p&gt;hg: set $HOME when not already set to avoid silly uid lookups which can fail if theres no /adm/users&lt;/p&gt;

&lt;p&gt;hg: set mercurial.url.has_https when hgwebfs extension is in use&lt;/p&gt;

&lt;p&gt;kbdfs: add shift+altgr table 7 for polish keymaps&lt;/p&gt;

&lt;p&gt;ktrace: sign extend stack dump pc for amd64&lt;/p&gt;

&lt;p&gt;python: remove openssl support, use ape/libsec for cryptographics hash functions&lt;/p&gt;

&lt;p&gt;rcpu: make sure not to leak /env/fn#server and /env/fn#aanserver for drawterm (thanks mischief)&lt;/p&gt;

&lt;p&gt;rsagen: increase default key size to 2048 bits&lt;/p&gt;

&lt;p&gt;vncv: fix netmkvncaddr()&lt;/p&gt;

&lt;p&gt;webfs: change %H (hostname) format to %N to not collide with encodefmt&amp;rsquo;s %H (hex)&lt;/p&gt;

&lt;p&gt;webfs: fix &amp;ldquo;fd out of range&amp;rdquo; error message&lt;/p&gt;

&lt;p&gt;webfs: fix memory leak of serverName in tlswrap()&lt;/p&gt;

&lt;p&gt;games/mole: add &amp;ldquo;snake&amp;rdquo; tracing effect to mole&lt;/p&gt;

&lt;h2&gt;documentation&lt;/h2&gt;

&lt;p&gt;abaco(1): remove readweb&lt;/p&gt;

&lt;p&gt;aes(2): mention aesCBC bug&lt;/p&gt;

&lt;p&gt;srv(3),shr(3): correct reference&lt;/p&gt;

&lt;p&gt;shr(3): document example&lt;/p&gt;

&lt;p&gt;listen(8): document tcp17019 rcpu service&lt;/p&gt;

&lt;p&gt;listen(8): fix html rendering&lt;/p&gt;

&lt;p&gt;rsa(8): provide example for converting OpenSSL generated PEM file to factotum&lt;/p&gt;

&lt;p&gt;rune(2): add Runeerror reencoding considerations in BUGS section (thanks aiju)&lt;/p&gt;

&lt;p&gt;tls(3): document support for TLSv1.1 and TLSv1.2&lt;/p&gt;

&lt;h2&gt;other&lt;/h2&gt;

&lt;p&gt;/lib/ndb/common: update ip addresses for [BCHL].ROOT-SERVERS.NET&lt;/p&gt;

&lt;p&gt;add danish keymap (thanks Eric Lindblad)&lt;/p&gt;

&lt;p&gt;add missing target for antiword in /sys/src/cmd/aux/mkfile (thanks _sl)&lt;/p&gt;

&lt;p&gt;&lt;img src="http://9front.org/img/allesloschen.back.png" width="500"&gt;&lt;/p&gt;
 </description>
        </item>

        <item>
            <title><![CDATA[New 9front release "The muscott icon of it! Why devil?"]]></title>
            <author><![CDATA[sl@noreply.cat-v.org (sl)]]></author>
            <link>http://9front.org:80/releases/2016/04/08/0/</link>
            <guid isPermaLink="true">http://9front.org:80/releases/2016/04/08/0/</guid>
            <pubDate>Wed, 06 Apr 2022 17:13:41 -0400</pubDate>
            <description> &lt;p&gt;&lt;img src="http://9front.org/img/themuscotticonofitwhydevil.front.png" alt="themuscotticonofitwhydevil.front.png" /&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-5217.0d720aa995cf.iso.bz2.torrent"&gt;torrent&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-5217.0d720aa995cf.iso.bz2"&gt;direct download&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;dash 1&lt;/h2&gt;

&lt;p&gt;&lt;a href="http://fqa.9front.org/dash1.themuscotticonofitwhydevil.pdf"&gt;dash 1 manual&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;kernel and drivers&lt;/h2&gt;

&lt;p&gt;kernel: make fversion()/mntversion() types consistent&lt;/p&gt;

&lt;p&gt;kernel: make kernel UTFmax and Runemax consistent with libc (21-bit runes) (thanks maurice)&lt;/p&gt;

&lt;p&gt;kernel: fix tsleep()/twakeup()/tsemacquire() race&lt;/p&gt;

&lt;p&gt;kernel: print pid as %lud instead %lux (in tsleep() debug print)&lt;/p&gt;

&lt;p&gt;kernel: fix procflushmmu()&lt;/p&gt;

&lt;p&gt;kernel: remove unused NSMAX, NSLOG, NSCACHE constants from portdat.h&lt;/p&gt;

&lt;p&gt;kernel: always clunk closed fids asynchronously, regardless of caching&lt;/p&gt;

&lt;p&gt;zynq: introduce SG_FAULT to prevent access to AXI segment while PL is not ready&lt;/p&gt;

&lt;p&gt;zynq: cleanup devarch, flushmmu() after procflushpsecg()&lt;/p&gt;

&lt;p&gt;devip: handle ignoreadvice flag for all protocols&lt;/p&gt;

&lt;p&gt;devip: applying changes for bug: multicasts_and_udp_buffers&lt;/p&gt;

&lt;p&gt;devkbd: change /dev/kbd to return multiple messages per read&lt;/p&gt;

&lt;p&gt;devtls: fix wrong iounit&lt;/p&gt;

&lt;p&gt;devtls: add portable AES-GCM (Galois/Counter Mode) implementation&lt;/p&gt;

&lt;p&gt;devtls: zero secret information before freeing, cleanup&lt;/p&gt;

&lt;p&gt;devtls: print the path of the underlying chan in status file&lt;/p&gt;

&lt;p&gt;ether82563: initial i217 support from &lt;a href="http://www.9legacy.org/9legacy/patch/pc-ether82563-i210.diff"&gt;http://www.9legacy.org/9legacy/patch/pc-ether82563-i210.diff&lt;/a&gt; (thanks k0ga)&lt;/p&gt;

&lt;h2&gt;libraries&lt;/h2&gt;

&lt;p&gt;libc: fix runestrecpy() return value (thanks spew)&lt;/p&gt;

&lt;p&gt;libdraw: remove flushimage calls from fontresize() and loadchar()&lt;/p&gt;

&lt;p&gt;libdraw: don&amp;rsquo;t flush in readmouse() when theres nothing to flush&lt;/p&gt;

&lt;p&gt;libdraw: have openfont() set error string&lt;/p&gt;

&lt;p&gt;libdraw: fix out of bounds memory access after subfont array reallocation (thanks ray)&lt;/p&gt;

&lt;p&gt;libFLAC: update to 1.3.1&lt;/p&gt;

&lt;p&gt;libsec: fix verifyDHparams() for version &amp;lt;= TLS1.1&lt;/p&gt;

&lt;p&gt;libsec: remove weakCipher[] array check as we do not support any of these weak ciphers&lt;/p&gt;

&lt;p&gt;libsec: add portable AES-GCM (Galois/Counter Mode) implementation&lt;/p&gt;

&lt;p&gt;libsec: fix tlsid for TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256&lt;/p&gt;

&lt;p&gt;libvorbis: update to 1.3.5&lt;/p&gt;

&lt;h2&gt;programs&lt;/h2&gt;

&lt;p&gt;6in4: allow setting the local IPv4 address with -i flag (thanks k0ga)&lt;/p&gt;

&lt;p&gt;6in4: ingress filter multicast and link-local, but allow relay traffic&lt;/p&gt;

&lt;p&gt;9fs: bind -b /n/9front.org!7734 /n/lists&lt;/p&gt;

&lt;p&gt;aan: use sync messages as keep alives&lt;/p&gt;

&lt;p&gt;aan: handle case when reader closes netfd&lt;/p&gt;

&lt;p&gt;auth/pemencode: fix usage()&lt;/p&gt;

&lt;p&gt;bullshit: +progressive +enhancement&lt;/p&gt;

&lt;p&gt;file: deal with negative coordinates in plan9 bitmaps, print image size&lt;/p&gt;

&lt;p&gt;g: dont pollute the environment (thanks BurnZeZ)&lt;/p&gt;

&lt;p&gt;games/life: add -d delay parameter, -b color reversal parameter, and update manpage&lt;/p&gt;

&lt;p&gt;ip/gping: set display-&gt;locking before starting mouseproc (race)&lt;/p&gt;

&lt;p&gt;ip/gping: ignore advice, fix packet corruption check, remove dead code&lt;/p&gt;

&lt;p&gt;ip/gping: add main pid to pid list for killall()&lt;/p&gt;

&lt;p&gt;kbdfs: map Kup/Kdown the same in shift tab (fixes shift-[up]/[down] one-line scroll in rio over drawterm/vncs)&lt;/p&gt;

&lt;p&gt;mercurial: fix &lt;a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-3630"&gt;CVE-2016-3630&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;mothra: dynamically allocate buffer for refresh url (was 20 bytes stack buffer before) (thanks BurnZeZ for reporting)&lt;/p&gt;

&lt;p&gt;plot: handle create() failure&lt;/p&gt;

&lt;p&gt;ppp: md5 and mschap inside chap, do not request encryption with -c or -C (thanks k0ga)&lt;/p&gt;

&lt;p&gt;ppp: Small format and log fixes (thanks k0ga)&lt;/p&gt;

&lt;p&gt;ppp: fix buffer overflow, set correct state after chap negotiation (thanks k0ga)&lt;/p&gt;

&lt;p&gt;pppoe: Avoid double free (thanks k0ga)&lt;/p&gt;

&lt;p&gt;pppoe: Add support for -c and -C to enable/disable header compression (thanks k0ga)&lt;/p&gt;

&lt;p&gt;rio: remove more unneccesary flushimage() calls&lt;/p&gt;

&lt;p&gt;rio: /dev/kbd cleanup&lt;/p&gt;

&lt;p&gt;stats: fix display-&gt;locking race&lt;/p&gt;

&lt;p&gt;tcp567: run authserver with p9sk1 tickets disabled preventing offline password brute-force&lt;/p&gt;

&lt;p&gt;truss: fix &amp;ldquo;bad string&amp;rdquo; error due to missing ape _nsec() syscall&lt;/p&gt;

&lt;p&gt;truss: add fake __NSEC syscall name for ape&lt;/p&gt;

&lt;p&gt;uhtml: dont trust charset=utf-8 attribute, verify.&lt;/p&gt;

&lt;p&gt;vncs: fix dead Kend key&lt;/p&gt;

&lt;p&gt;vncs: parse screenid as long, not short: BGSHORT() -&gt; BGLONG()&lt;/p&gt;

&lt;p&gt;vt: add -r flag to start in raw mode&lt;/p&gt;

&lt;h2&gt;manual pages, documentation, misc&lt;/h2&gt;

&lt;p&gt;devstream(3): removed&lt;/p&gt;

&lt;p&gt;kbdfs(8): document new /dev/kbd behaviour&lt;/p&gt;

&lt;p&gt;qball(2): fix bad manpage reference&lt;/p&gt;

&lt;p&gt;fortunes: Ah, nice. the woodpeckers are back.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://9front.org/img/themuscotticonofitwhydevil.back.png" alt="themuscotticonofitwhydevil.back.png" /&gt;&lt;/p&gt;
 </description>
        </item>

        <item>
            <title><![CDATA[New 9front release "MY MEMORY OF DRAWTERM IS FADING"]]></title>
            <author><![CDATA[sl@noreply.cat-v.org (sl)]]></author>
            <link>http://9front.org:80/releases/2016/03/01/0/</link>
            <guid isPermaLink="true">http://9front.org:80/releases/2016/03/01/0/</guid>
            <pubDate>Wed, 06 Apr 2022 17:13:35 -0400</pubDate>
            <description> &lt;p&gt;&lt;img src="img%20src=%22http://9front.org/img/mymemoryofdrawtermisfading.front.png" alt="mymemoryofdrawtermisfading.front.png" /&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-5126.47bef620b3a3.iso.bz2.torrent"&gt;torrent&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-5126.47bef620b3a3.iso.bz2"&gt;direct download&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;dash 1&lt;/h2&gt;

&lt;p&gt;&lt;a href="http://fqa.9front.org/dash1.mymemoryofdrawtermisfading.pdf"&gt;dash 1 manual&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;kernel and drivers&lt;/h2&gt;

&lt;p&gt;kernel: remove todfix overflow iprint() spam&lt;/p&gt;

&lt;p&gt;pc/pc64: remove mpshutdown print&lt;/p&gt;

&lt;p&gt;pc/pc64: bring up ap&amp;rsquo;s one after another, use idlehands() while waiting for thunderbirdsarego&lt;/p&gt;

&lt;p&gt;pc64: move idle() routine after CALL main(SB) as the comment suggests&lt;/p&gt;

&lt;p&gt;sgi: add chmod to bootfs.proto for sgi kernel&lt;/p&gt;

&lt;p&gt;devdraw: remove unused Edepth[]&lt;/p&gt;

&lt;p&gt;devmnt: deal with partial response for Tversion request in mntversion()&lt;/p&gt;

&lt;p&gt;devssl: use tsmemcmp() to compare mac to close timing side channel&lt;/p&gt;

&lt;p&gt;ipv6: fix icmphostunr() locking and memory free bugs (from sources)&lt;/p&gt;

&lt;p&gt;usbuhci: removing &amp;ldquo;uhci bug&amp;rdquo; print spam from interrupt handler&lt;/p&gt;

&lt;p&gt;wifi: check tkip/ccmp mac and crc in constant time avoiding timing side channels&lt;/p&gt;

&lt;h2&gt;booting&lt;/h2&gt;

&lt;p&gt;provide /n and /mnt early in bootrc to allow consistent use in /lib/namespace&lt;/p&gt;

&lt;h2&gt;libraries&lt;/h2&gt;

&lt;p&gt;ape/fmt: %p and %z format for amd64&lt;/p&gt;

&lt;p&gt;ape/stdio: %z format is VLONG on amd64&lt;/p&gt;

&lt;p&gt;libauthsrv: add D in mkfile&lt;/p&gt;

&lt;p&gt;libauthsrv: fix ed448 goldilocks prime comment&lt;/p&gt;

&lt;p&gt;libauthsrv: can write p = 2&lt;sup&gt;448&lt;/sup&gt; - 2&lt;sup&gt;224&lt;/sup&gt; - 1 now, as mpc has constant folding.&lt;/p&gt;

&lt;p&gt;libdraw: remove unused static log2[] array&lt;/p&gt;

&lt;p&gt;libfis: dont reject drives lacking SSP (sata ssd connected to ide with adapter)&lt;/p&gt;

&lt;p&gt;libmp: handle out of memory case in gmfield()&lt;/p&gt;

&lt;p&gt;libmp: remove include of libsec.h&lt;/p&gt;

&lt;p&gt;libsec: add salsa20 stream cipher&lt;/p&gt;

&lt;p&gt;libsec: ecdsa client support for tlshand, cleanups&lt;/p&gt;

&lt;p&gt;libsec: refactor asn1 encoding of digest for rsa signatures, fix memory leak in ecverify&lt;/p&gt;

&lt;p&gt;libsec: mpconv -&gt; mpfmt&lt;/p&gt;

&lt;p&gt;libsec: fix missing error case unlock() in tlshands initCiphers()&lt;/p&gt;

&lt;p&gt;libsec: fix double free in pkcs1_decrypt(), handle bad epm length in tlsSecRSAs(), cleanup&lt;/p&gt;

&lt;p&gt;libsec: simplify pkcs1_decrypt()&lt;/p&gt;

&lt;p&gt;libsec: add libc.h include for aes_xts.c (drawterm)&lt;/p&gt;

&lt;p&gt;libsec: fix memset() size in tlsConnectionFree(), remove #include &amp;lt;bio.h&gt;&lt;/p&gt;

&lt;p&gt;libsec: remove unused tlsSecKill()&lt;/p&gt;

&lt;p&gt;libsec: have 16 32-bit words in DigestState to avoid out of bounds warnings for poly1305&lt;/p&gt;

&lt;h2&gt;programs&lt;/h2&gt;

&lt;p&gt;/rc/bin/&amp;ldquo;: fix quoting bug (thanks, aiju and silasm)&lt;/p&gt;

&lt;p&gt;auth/cron: just run /bin/rx to execute remote commands&lt;/p&gt;

&lt;p&gt;auth/factotum: fix nil pointer crash on p9skclosekey(), thanks k0ga&lt;/p&gt;

&lt;p&gt;auth/factotum: fix memory leak for p9any key confirmation, fix key handling for role=client&lt;/p&gt;

&lt;p&gt;aux/kbdfs: read outer /dev/kbd file and use it just like /dev/kbdin&lt;/p&gt;

&lt;p&gt;exportfs: properly reply to chdir() error when we speak 9p&lt;/p&gt;

&lt;p&gt;exportfs: retry execing ourselfs as &amp;ldquo;/bin/exportfs&amp;rdquo; (argv0 might be relative path)&lt;/p&gt;

&lt;p&gt;exportfs: fix endless loop for eof/error on second read in localread9pmsg()&lt;/p&gt;

&lt;p&gt;games/doom: fix white window issue on exit&lt;/p&gt;

&lt;p&gt;games/doom: handle allocimage() failure&lt;/p&gt;

&lt;p&gt;mpc: constant expression folding&lt;/p&gt;

&lt;p&gt;ndb/dns: removing the buggy /net.alt remount hack&lt;/p&gt;

&lt;p&gt;ndb/dns: initialize unknown fids to point to the root qid&lt;/p&gt;

&lt;p&gt;ndb/dnstcp: -x specifies the mountmoint&lt;/p&gt;

&lt;p&gt;newuser: /n/other now handled in /lib/namespace&lt;/p&gt;

&lt;p&gt;rc: terminate rc when exec fails, cleanup&lt;/p&gt;

&lt;p&gt;rcpu: adding experimental rcpu service [1]&lt;/p&gt;

&lt;p&gt;rcpu: post hangup note to remote when connection breaks&lt;/p&gt;

&lt;p&gt;rio: fix wrong frame colors when moving non-current window&lt;/p&gt;

&lt;p&gt;rio: exit rio when /dev/cons or /dev/kbd read loop terminates&lt;/p&gt;

&lt;p&gt;rx: rcpu service support&lt;/p&gt;

&lt;p&gt;stats: use rimport or import to mount remote system&lt;/p&gt;

&lt;p&gt;tlsclient: add -o option to establish connection over a file, free the AuthInfo structure to avoid leaking secrets&lt;/p&gt;

&lt;p&gt;tlssrv: p9any authentication support using TLS-PSK cipher suits&lt;/p&gt;

&lt;p&gt;tlssrv: add -A flag to skip changing user after authentication (usefull for aan)&lt;/p&gt;

&lt;p&gt;upas/smtpd: remove unused lastsender logic&lt;/p&gt;

&lt;p&gt;webfs: faster shutdown using postnote()&lt;/p&gt;

&lt;h2&gt;manual pages, documentation, misc&lt;/h2&gt;

&lt;p&gt;fortunes: ./configure CFLAGS=&amp;ldquo;-I$HOME/source/harvey/ape/amd64/include -I$HOME/source/harvey/ape/include -mno-red-zone -ffreestanding -fno-builtin -nostdlib -trigraphs -D_SUSV2_SOURCE -D_POSIX_SOURCE -D_LIMITS_EXTENSION -D_BSD_SOURCE -D_BSD_EXTENSION -DHAVE_SOCK_OPTS -DHARVEY -DPlan9&amp;rdquo; LDFLAGS=&amp;ldquo;-static $HOME/source/harvey/ape/amd64/lib/crt1.o $HOME/source/harvey/ape/amd64/lib/crti.o $HOME/source/harvey/ape/amd64/lib/crtn.o -L$HOME/source/harvey/ape/amd64/lib -L$HOME/source/harvey/amd64/lib&amp;rdquo; LIBS=&amp;ldquo;-lbsd -lap -lc&amp;rdquo; LIBM=&amp;ldquo;&amp;rdquo; &amp;ndash;prefix=$HOME/source/harvey/ape/ports &lt;em&gt;&amp;ndash;host=x86_64-linux-gnu &amp;ndash;build=x86_64-harvey &lt;/em&gt;&amp;ndash;enable-shared=no&lt;/p&gt;

&lt;p&gt;/lib/keyboard: add more crucial symbols&lt;/p&gt;

&lt;p&gt;glenda&amp;rsquo;s default profile: remove /n/other mount, done by /lib/namespace&lt;/p&gt;

&lt;p&gt;authsrv(2): document _asgetpakkey(), authpak_hash(), authpak_new(), authpak_finish()&lt;/p&gt;

&lt;p&gt;authsrv(6): fix arrows&lt;/p&gt;

&lt;p&gt;salsa(2): some formating fixes; fix source reference&lt;/p&gt;

&lt;p&gt;rcpu(1): add&lt;/p&gt;

&lt;p&gt;&lt;img src="http://9front.org/img/mymemoryofdrawtermisfading.back.png" alt="mymemoryofdrawtermisfading.back.png" /&gt;&lt;/p&gt;

&lt;p&gt;[0] &lt;a href="http://okturing.com/src/3486/body"&gt;http://okturing.com/src/3486/body&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;[1] &lt;a href="https://code.9front.org/hg/plan9front/rev/65abc13ef7a1"&gt;https://code.9front.org/hg/plan9front/rev/65abc13ef7a1&lt;/a&gt;&lt;/p&gt;
 </description>
        </item>

        <item>
            <title><![CDATA[New 9front release "PLEASE EXCUSE ME THE OUTFLOW"]]></title>
            <author><![CDATA[sl@noreply.cat-v.org (sl)]]></author>
            <link>http://9front.org:80/releases/2016/01/09/0/</link>
            <guid isPermaLink="true">http://9front.org:80/releases/2016/01/09/0/</guid>
            <pubDate>Wed, 06 Apr 2022 17:13:34 -0400</pubDate>
            <description> &lt;p&gt;&lt;img src="http://9front.org/img/pleaseexcusemetheoutflow.front.png" width="500"&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-5048.e16a172bcae6.iso.bz2.torrent"&gt;torrent&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-5048.e16a172bcae6.iso.bz2"&gt;direct download&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;dash 1&lt;/h2&gt;

&lt;p&gt;&lt;a href="http://fqa.9front.org/dash1.pleaseexcusemetheoutflow.pdf"&gt;dash 1 manual&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;kernel and drivers&lt;/h2&gt;

&lt;p&gt;kernel: fix typo in devmnt mntproc name&lt;/p&gt;

&lt;p&gt;kernel: use nicer check in okaddr(), wet floor signs in fixfault()&lt;/p&gt;

&lt;p&gt;kernel: cleanup exit()/shutdown()/reboot() code&lt;/p&gt;

&lt;p&gt;kernel: use uintptr for ibrk() return value (for base &gt;2GB) and clarify segbrk(2)&lt;/p&gt;

&lt;p&gt;kernel: missing changes for ibrk() prototype&lt;/p&gt;

&lt;p&gt;kernel: change active.machs from bitmap to char array to support up to 64 cpus on pc64&lt;/p&gt;

&lt;p&gt;pc, pc64: fix sdvirtio descriptor count when sending flush&lt;/p&gt;

&lt;p&gt;pc, pc64: add did for intel wildcat point audio controller&lt;/p&gt;

&lt;p&gt;pc, pc64: import i210 support from erik quanstrom&amp;rsquo;s 9atom&lt;/p&gt;

&lt;p&gt;zynq: fix cache flush bug for emmc driver (have to invalidate cache &lt;em&gt;before&lt;/em&gt; read)&lt;/p&gt;

&lt;p&gt;zynq: clean cache unconditionally &lt;em&gt;before&lt;/em&gt; dma, invalidate cache &lt;em&gt;after&lt;/em&gt; dma for read case&lt;/p&gt;

&lt;p&gt;devenv: fix ORCLOSE handling&lt;/p&gt;

&lt;p&gt;devip: various bugfixes and cleanups for arp code&lt;/p&gt;

&lt;p&gt;devip: declare cleanarpent() static&lt;/p&gt;

&lt;p&gt;devproc: remove unused extern int unfair&lt;/p&gt;

&lt;p&gt;devqspi: fix qunlock error on stat() -&gt; close()&lt;/p&gt;

&lt;p&gt;devsd: remove unused timeout field from SDreq&lt;/p&gt;

&lt;p&gt;devsd: handle SYNCHRONIZE CACHE scsi commands as nops in sdfakescsi()&lt;/p&gt;

&lt;p&gt;devtls: add sha256 mac&lt;/p&gt;

&lt;p&gt;devtls: reject SHA2_256 mac for SSL, but TLS is fine&lt;/p&gt;

&lt;p&gt;devtls: implement chacha20/poly1305 aead cipher suits&lt;/p&gt;

&lt;p&gt;igfx: fix typos (thanks qwx)&lt;/p&gt;

&lt;p&gt;sdmmc: handle fakescsi emulation&lt;/p&gt;

&lt;p&gt;tcp: fix mtu on server sockets again (thans mycroftix)&lt;/p&gt;

&lt;p&gt;usbehci: clean cache unconditionally before handing a buffer to the hardware&lt;/p&gt;

&lt;p&gt;wifi: quote value of parsed ether options&lt;/p&gt;

&lt;p&gt;wifi: prioritize rsne over wpaie&lt;/p&gt;

&lt;h2&gt;booting&lt;/h2&gt;

&lt;p&gt;bootrc: remove usbwait hack, usbd/nusbrc are now synchronous by previous commit&lt;/p&gt;

&lt;p&gt;do not handle kfs boot&lt;/p&gt;

&lt;p&gt;move screen and mouse setup code to /rc/bin/screenrc&lt;/p&gt;

&lt;p&gt;nvram: introduce AES key&lt;/p&gt;

&lt;h2&gt;compilers and debuggers&lt;/h2&gt;

&lt;p&gt;cc: handle 64 bit mixedmode asop and type vlong &amp;lt;-&gt; float/double type conversions&lt;/p&gt;

&lt;p&gt;cc: TUSHORT -&gt; TRUNE for lstring constats for OUSED&lt;/p&gt;

&lt;p&gt;cc: allow runes as macro names (from charles forsyth)&lt;/p&gt;

&lt;p&gt;cc: getflag() fmt will be terminated at end of loop (from charles forsyth)&lt;/p&gt;

&lt;p&gt;cc: include $builtin as keywoard in pickle() (from charles forsyth)&lt;/p&gt;

&lt;p&gt;cc: restore side(), but do not consider OINDEX as side effect free&lt;/p&gt;

&lt;p&gt;cc/6c: fix return type of mixed asop expressions, preserve type for moves so fixed&amp;lt;-&gt;float conversions work correctly&lt;/p&gt;

&lt;p&gt;5c/6c/8c/kc/qc/vc: import various changes from charles forsyth&lt;/p&gt;

&lt;p&gt;5c: handle 64 bit mixedmode asop&lt;/p&gt;

&lt;p&gt;5c: handle (rare) MULU instruction in peephole optimizer&lt;/p&gt;

&lt;p&gt;6c: remove 6c/vlrt.c file&lt;/p&gt;

&lt;p&gt;6c: return vlong result for pointer subtraction&lt;/p&gt;

&lt;p&gt;8c: make cgen64() compile target first when it contains functoin call so final assignment wont trash the registers&lt;/p&gt;

&lt;p&gt;8c: handle 64 bit mixedmode asop and type vlong &amp;lt;-&gt; float/double type conversions&lt;/p&gt;

&lt;p&gt;8c: dont abort() when running out of registers.&lt;/p&gt;

&lt;p&gt;vc: handle 64 bit mixedmode asop&lt;/p&gt;

&lt;p&gt;cpp: fix memory corruption due to input buffer relocation&lt;/p&gt;

&lt;p&gt;cpp: handle 4 byte utf sequences (21-bit runes)&lt;/p&gt;

&lt;p&gt;acid/leak: fix endless loop for B2NB(b) == b case (thanks mischief)&lt;/p&gt;

&lt;h2&gt;libraries&lt;/h2&gt;

&lt;p&gt;ape: add badrect object into ape libdraw&lt;/p&gt;

&lt;p&gt;ape: set MB_CUR_MAX to 4 in stdlib.h for 21-bit runes (thanks erik quanstro)&lt;/p&gt;

&lt;p&gt;ape: add machine specific code for spim&lt;/p&gt;

&lt;p&gt;ape: add missing _subv() function to 386/vlop.s&lt;/p&gt;

&lt;p&gt;lib9p: add reqqueuefree&lt;/p&gt;

&lt;p&gt;lib9p: do not override Srv.end in listensrv(), simplify srvclose() and recounting&lt;/p&gt;

&lt;p&gt;libauthsrv: generalize ticket service, not hardcoding ticket format and DES encryption&lt;/p&gt;

&lt;p&gt;libauthsrv: add missing files (thanks mischief)&lt;/p&gt;

&lt;p&gt;libauthsrv: randomize aes key in mkkey()&lt;/p&gt;

&lt;p&gt;libauthsrv: fix _asgetresp() for passwd&lt;/p&gt;

&lt;p&gt;libc: import more endianness fixes (thanks cherry9)&lt;/p&gt;

&lt;p&gt;libc: remove privfree(), simplify privalloc()&lt;/p&gt;

&lt;p&gt;libc: add &lt;em&gt;uv2d()/uv2f() and &lt;/em&gt;vas*d() functions to vlrt.c&lt;/p&gt;

&lt;p&gt;libdraw: remove unneeded check (thanks BurnZeZ)&lt;/p&gt;

&lt;p&gt;libfis: fix wrong shift for lba40 (thanks geoff and charles)&lt;/p&gt;

&lt;p&gt;libjson: fix memory leak setjmp/longjmp problem (thanks spew)
libjson: added printing support (thanks spew)&lt;/p&gt;

&lt;p&gt;libmp: add mpnrand() function to generate uniform random number 0 ≤ x &amp;lt; n&lt;/p&gt;

&lt;p&gt;libmp: add mpvecdigmuladd()/mpvecdigmulsub() assembly routines for arm&lt;/p&gt;

&lt;p&gt;libmp: optimize case x/0xffffffff in mpdigdiv() (helps arm)&lt;/p&gt;

&lt;p&gt;libmp: 386/amd64 mpvec*(): replace conditional branches with ADC/SBB instructions&lt;/p&gt;

&lt;p&gt;libmp: add mpvecadd()/mpvecsub() assembly versions for arm&lt;/p&gt;

&lt;p&gt;libmp: fix test program&lt;/p&gt;

&lt;p&gt;libmp: initial attempt at constant time code, faster reductions for special primes (for ecc)&lt;/p&gt;

&lt;p&gt;libmp: mpmod() fix typo&lt;/p&gt;

&lt;p&gt;libmp: fix wrong move instruction for arm vector operations&lt;/p&gt;

&lt;p&gt;libmp: fix assert() for mpexp() with nil modulus&lt;/p&gt;

&lt;p&gt;libmp: add logic operations; mpfmt: include 0x with #&lt;/p&gt;

&lt;p&gt;libmp: fix bug in mplogic.c; update mkfile&lt;/p&gt;

&lt;p&gt;libmp: strtomp support for bases 2,4,8&lt;/p&gt;

&lt;p&gt;libmp: add mpfield() function for fast field arithmetic&lt;/p&gt;

&lt;p&gt;libmp: mpfmt: handle base 2, 4&lt;/p&gt;

&lt;p&gt;libmp: support for c-style base prefixes for strtomp(), octal support&lt;/p&gt;

&lt;p&gt;libmp: mistake in strtomp()&lt;/p&gt;

&lt;p&gt;libmp: check nil return value of strtomp() in test program&lt;/p&gt;

&lt;p&gt;libmp: silence compiler warning for strtomp&lt;/p&gt;

&lt;p&gt;libsec: add pbkdf2_hmac_sha1() (from wpapsk factotum module)&lt;/p&gt;

&lt;p&gt;libsec: fix probably_prime() endless loop for n == 3&lt;/p&gt;

&lt;p&gt;libsec: add q parameter to dh_new() for subgroup support, sanitize dh parameters&lt;/p&gt;

&lt;p&gt;libsec: add TLS_RSA_WITH_AES_128_CBC_SHA256 and TLS_RSA_WITH_AES_256_CBC_SHA256 ciphers&lt;/p&gt;

&lt;p&gt;libsec: add curve25519() from http://code.google.com/p/curve25519-donna/&lt;/p&gt;

&lt;p&gt;libsec: work arround 8c running out of registers compiling curve25519.c&lt;/p&gt;

&lt;p&gt;libsec: remove flawed aes() digest and hmac_aes() implementations (thanks aiju)&lt;/p&gt;

&lt;p&gt;libsec: add curve25519 diffie hellman&lt;/p&gt;

&lt;p&gt;libsec: declare aes_setupEnc static&lt;/p&gt;

&lt;p&gt;libsec: generalize pbkdf2_hmac_sha1() to pbkdf2_x() passing the hmac as an argument&lt;/p&gt;

&lt;p&gt;libsec: add rfc5869 hmac-based key derivation function hkdf_x()&lt;/p&gt;

&lt;p&gt;libsec: handle TLS 1.2 changes in CertificateRequest message&lt;/p&gt;

&lt;p&gt;libsec: send sigature_algoritms extension for TLS1.2, order ciphers&lt;/p&gt;

&lt;p&gt;libsec: add TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 and TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 cipher suits&lt;/p&gt;

&lt;p&gt;libsec: save some space making weakCipher bitamp of type char[] instead of int[]&lt;/p&gt;

&lt;p&gt;libsec: fix memory leak in ecmul()&lt;/p&gt;

&lt;p&gt;libsec: implement dh parameter signature verification, stop lying about non-rsa ciphers, fix memory leaks in X509 code&lt;/p&gt;

&lt;p&gt;libsec: make sure Elem is zero initialized so freevalfields() wont cause accidents&lt;/p&gt;

&lt;p&gt;libsec: handle missing signature case; can happen because some ciphers make it optional&lt;/p&gt;

&lt;p&gt;libsec: implement client certificate authentication for tls1.2&lt;/p&gt;

&lt;p&gt;libsec: fix memory leaks in X509req() and X509gen() and return malloced pointer&lt;/p&gt;

&lt;p&gt;libsec: cleanup newbytes()/newints()/newbits() and get rid of OFFSETOF() macro&lt;/p&gt;

&lt;p&gt;libsec: use the right string encoding for various x509 fields&lt;/p&gt;

&lt;p&gt;libsec: clarify the code by declaring constant for DirectoryString and handle conversion in mkstring()&lt;/p&gt;

&lt;p&gt;libsec: remove rc4 cipher suits for tls&lt;/p&gt;

&lt;p&gt;libsec: add poly1305&lt;/p&gt;

&lt;p&gt;libsec: add chacha cipher (from charles forsyth)&lt;/p&gt;

&lt;p&gt;libsec: add chacha20 poly1305 aead, allow 64 bit iv&amp;rsquo;s for chacha, add tsmemcmp()&lt;/p&gt;

&lt;p&gt;libsec: fix genprime() to produce normalized result&lt;/p&gt;

&lt;p&gt;libsec: use tsmemcmp() when comparing hashes, use mpfield() for ecc, use mptober() when right adjusting mpint to bytes&lt;/p&gt;

&lt;p&gt;libsec: implement TLS-PSK for tlsClient()/tlsServer()&lt;/p&gt;

&lt;p&gt;libsec: make sure theres no garbage after the asn.1 decode, cleanup&lt;/p&gt;

&lt;p&gt;libthread: get rid of tprivalloc()/tprivfree()/tprivdata() and _workerdata() (thanks qrstuv)&lt;/p&gt;

&lt;h2&gt;programs&lt;/h2&gt;

&lt;p&gt;9660srv: do not ignore upper 32 bits of offset when reading directory&lt;/p&gt;

&lt;p&gt;9fs: add 9pio case for unauthenticated connections to 9p.io&lt;/p&gt;

&lt;p&gt;9fs: add case 9front&lt;/p&gt;

&lt;p&gt;ascii: replace mnemonic np (new page) with ff (form feed) for consistency&lt;/p&gt;

&lt;p&gt;auth: release dp9ik implementation and reentrant factotum&lt;/p&gt;

&lt;p&gt;auth/*: remove private /dev/random reading routines, use genrandom()&lt;/p&gt;

&lt;p&gt;auth/changeuser: set the aes key in plan9 database, but not in securenet db&lt;/p&gt;

&lt;p&gt;auth/convkeys2: remove&lt;/p&gt;

&lt;p&gt;auth/httpauth: use auth_userpasswd() instead of AuthHttp request to AS&lt;/p&gt;

&lt;p&gt;auth/passwd: fix structure zeroing order&lt;/p&gt;

&lt;p&gt;aux/disksim: don&amp;rsquo;t assume 4-byte pointers&lt;/p&gt;

&lt;p&gt;aux/gpsfs: fix usage&lt;/p&gt;

&lt;p&gt;aux/listen1: allow alternative namespace when running as user none with -n option&lt;/p&gt;

&lt;p&gt;aux/statusbar: use title as rio window title (thanks qrstuv)&lt;/p&gt;

&lt;p&gt;cpu, import: remove old9p support&lt;/p&gt;

&lt;p&gt;cwfs: adjust for new libauthsrv changes&lt;/p&gt;

&lt;p&gt;cwfs: remove 9p1 support&lt;/p&gt;

&lt;p&gt;cwfs: initialize /env/timezone on boot so dumps are in localtime&lt;/p&gt;

&lt;p&gt;cwfs: don&amp;rsquo;t use sprint() to fill directory name&lt;/p&gt;

&lt;p&gt;cwfs: fix wstat() failing to mark block dirty when noatime is set&lt;/p&gt;

&lt;p&gt;delkey: print commands instead of starting a dialogue&lt;/p&gt;

&lt;p&gt;doctype: learn to timepic&lt;/p&gt;

&lt;p&gt;disk/fdisk: properly convert byte units K,M,G and T to cylinders/sectors&lt;/p&gt;

&lt;p&gt;disk/mkfs: rmeove kfs support&lt;/p&gt;

&lt;p&gt;dossrv: handle file offsets &gt; 2&lt;sup&gt;31&lt;/sup&gt;&lt;/p&gt;

&lt;p&gt;E: import script from bell labs&lt;/p&gt;

&lt;p&gt;file: detect DICOM and XM audio headers&lt;/p&gt;

&lt;p&gt;file: recognize tcpdump pcap files&lt;/p&gt;

&lt;p&gt;file: recognize bootable disk images (by 0x55AA boot sector signature)&lt;/p&gt;

&lt;p&gt;fshalt: remove kfs support&lt;/p&gt;

&lt;p&gt;games/doom: fix bogus pointer arithmetic, do sfx initialization in two passes for linked sounds&lt;/p&gt;

&lt;p&gt;html2ms: handle subscripts and superscripts&lt;/p&gt;

&lt;p&gt;html2ms: bold table headings, remove wrong tag space handling&lt;/p&gt;

&lt;p&gt;import/expoerfs: dont assert() fault when ai-&gt;secret is &gt; 8 bytes, just use the first 8 bytes&lt;/p&gt;

&lt;p&gt;init: remove dependency to &amp;lt;authsrv.h&gt;&lt;/p&gt;

&lt;p&gt;ircrc: add -P option for server password (thanks, nick)&lt;/p&gt;

&lt;p&gt;keyfs: introduce AES key&lt;/p&gt;

&lt;p&gt;keyfs: fix typo (thanks jpm)&lt;/p&gt;

&lt;p&gt;kfs and kfscmd: remove&lt;/p&gt;

&lt;p&gt;mothra: add subscript and superscript support&lt;/p&gt;

&lt;p&gt;mothra: add missing initializations for plaintext html state&lt;/p&gt;

&lt;p&gt;mothra: make text inside td bold&lt;/p&gt;

&lt;p&gt;mothra: hr drawing&lt;/p&gt;

&lt;p&gt;mpc: add (extended precision code generator)&lt;/p&gt;

&lt;p&gt;qr: add (generate qr codes)&lt;/p&gt;

&lt;p&gt;rc: Added change to /rc/lib/rcmain to allow execution of /rc/lib/rcmain.local if it exists. /rc/lib/rcmain.local is similar to $home/lib/profile in that it will only be executed with -l, but is site-wide.&lt;/p&gt;

&lt;p&gt;resize: add -n for nearest neighbour&lt;/p&gt;

&lt;p&gt;rio: fix scrolling when cursor is above window&lt;/p&gt;

&lt;p&gt;rio: stop serving kbdin file (thanks eekee)&lt;/p&gt;

&lt;p&gt;rio: fix handling &amp;ldquo;resize&amp;rdquo; wctl for hidden windows&lt;/p&gt;

&lt;p&gt;rio: allow reading the image of a hidden window thru the window file&lt;/p&gt;

&lt;p&gt;rsa2x509, rsa2csr: add newline in usage print&lt;/p&gt;

&lt;p&gt;rx: theres no p9sk2 anymore&lt;/p&gt;

&lt;p&gt;scuzz: uncomment synccache command&lt;/p&gt;

&lt;p&gt;snoopy: fix timestamps for pcap files (thanks BurnZeZ)&lt;/p&gt;

&lt;p&gt;srvold9p: remove&lt;/p&gt;

&lt;p&gt;tapefs: remove dependency to &amp;lt;authsrv.h&gt;&lt;/p&gt;

&lt;p&gt;tar: make z flag work, even when no file name was provided (thanks aiju)&lt;/p&gt;

&lt;p&gt;timepic: string support&lt;/p&gt;

&lt;p&gt;tput: check sbrk return value&lt;/p&gt;

&lt;p&gt;usbd: introduce /env/usbbusy&lt;/p&gt;

&lt;p&gt;venti/fixarenas: replace %z fmt with %Z&lt;/p&gt;

&lt;p&gt;webcookies: strdup() file argument to avoid crash (thanks mischief)&lt;/p&gt;

&lt;p&gt;winwatch: l allows label changes&lt;/p&gt;

&lt;p&gt;yacc: attempt to keep line numbers right for yyparse()&lt;/p&gt;

&lt;h2&gt;manual pages, documentation, misc&lt;/h2&gt;

&lt;p&gt;/lib/1oct1993: use words correctly (thanks, spew)&lt;/p&gt;

&lt;p&gt;2c(1): fix spelling error for the axp entry&lt;/p&gt;

&lt;p&gt;delkey(1): update man page to reflect recent changes&lt;/p&gt;

&lt;p&gt;fplot(1): add BUGS section, fix typo&lt;/p&gt;

&lt;p&gt;import(4): remove -o, -O flags&lt;/p&gt;

&lt;p&gt;mp(2): fix typo mnprand() -&gt; mpnrand()&lt;/p&gt;

&lt;p&gt;qer(8): correct man page example (thanks, kenji)&lt;/p&gt;

&lt;p&gt;qr(1), timepic(1): add&lt;/p&gt;

&lt;p&gt;utf(6), rune(2): document 21-bit runes&lt;/p&gt;

&lt;p&gt;remove kfs references from manual&lt;/p&gt;

&lt;p&gt;&lt;img src="http://9front.org/img/pleaseexcusemetheoutflow.back.png" width="500"&gt;&lt;/p&gt;
 </description>
        </item>

        <item>
            <title><![CDATA[New 9front release "the art of conversation"]]></title>
            <author><![CDATA[sl@noreply.cat-v.org (sl)]]></author>
            <link>http://9front.org:80/releases/2015/08/18/0/</link>
            <guid isPermaLink="true">http://9front.org:80/releases/2015/08/18/0/</guid>
            <pubDate>Wed, 06 Apr 2022 17:07:00 -0400</pubDate>
            <description> &lt;p&gt;&lt;img src="http://img.stanleylieber.com/src/17702/img/small.1439874650.png"&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-4796.018cb441d1b5.iso.bz2.torrent"&gt;torrent&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-4796.018cb441d1b5.iso.bz2"&gt;direct download&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;dash 1&lt;/h2&gt;

&lt;p&gt;&lt;a href="http://fqa.9front.org/dash1.theartofconversation.pdf"&gt;dash 1 manual&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;kernel and drivers&lt;/h2&gt;

&lt;p&gt;kernel: make sure the swap device has a reasonable capacity in setswapchan()&lt;/p&gt;

&lt;p&gt;kernel: cleanup chan.c to consistenly use nil instead of 0 for pointers&lt;/p&gt;

&lt;p&gt;kernel: consistent use of nil for pointer in sysfile.c&lt;/p&gt;

&lt;p&gt;kernel: simplify syspipe()&lt;/p&gt;

&lt;p&gt;kernel: make sure fd is in range in fdclose()&lt;/p&gt;

&lt;p&gt;kernel: pipelined read ahead for the mount cache&lt;/p&gt;

&lt;p&gt;kernel: clunk the cache when removing cache flag on a channel, only call cread() chen CCACHE flag is set&lt;/p&gt;

&lt;p&gt;kernel: export mntattach() from devmnt.c avoiding bogus struct passing and special case in namec()&lt;/p&gt;

&lt;p&gt;kernel: remove obsolete comment from namec()&lt;/p&gt;

&lt;p&gt;kernel: cleanup qlock.c to use nil instead of 0 for pointers&lt;/p&gt;

&lt;p&gt;kernel: dont rely on atoi() parsing hex for netif/devbridge&lt;/p&gt;

&lt;p&gt;kernel: remove unused qstate() function&lt;/p&gt;

&lt;p&gt;kernel: reject empty argv (argv[0] == nil) in sysexec()&lt;/p&gt;

&lt;p&gt;kernel: make shargs() function static in sysproc.c&lt;/p&gt;

&lt;p&gt;kernel: use Etoolong[] constant instead of string literal in validname0()&lt;/p&gt;

&lt;p&gt;kernel: change vmemchr() length argument to ulong and simplify&lt;/p&gt;

&lt;p&gt;kernel: limit syscallfmt user strings to 64K (as in validname)&lt;/p&gt;

&lt;p&gt;kernel: fix indention in validname0()&lt;/p&gt;

&lt;p&gt;kernel: validnamedup() the name argument for segattach()&lt;/p&gt;

&lt;p&gt;kernel: limit argv[] strings to the USTKSIZE to avoid overflow&lt;/p&gt;

&lt;p&gt;kernel: have to validate argv[] again when copying to the new stack&lt;/p&gt;

&lt;p&gt;kernel: remove unused MAXCRYPT constant from portdat.h&lt;/p&gt;

&lt;p&gt;kernel: fix Mheadache&lt;/p&gt;

&lt;p&gt;kernel: pgrpcpy(), simplify Mount structure&lt;/p&gt;

&lt;p&gt;kernel: mount flag is int not ulong, reduce size of Mount struct by putting mflag field in what would be wasted as padding&lt;/p&gt;

&lt;p&gt;kernel: move &amp;ldquo;setargs&amp;rdquo; field in Proc structure after &amp;ldquo;nargs&amp;rdquo; and &amp;ldquo;args&amp;rdquo;&lt;/p&gt;

&lt;p&gt;kernel: try freebroken() &lt;em&gt;before&lt;/em&gt; killbig() (thanks aiju)&lt;/p&gt;

&lt;p&gt;pc, pc64: set *bootscreen= when framebuffer changes&lt;/p&gt;

&lt;p&gt;pc, pc64: replace atoi() calls with strtol() when hex can be expected&lt;/p&gt;

&lt;p&gt;pc, pc64: remove unused psaux driver&lt;/p&gt;

&lt;p&gt;zynq: remove unused variables from devqspi&lt;/p&gt;

&lt;p&gt;devaoe: fix off by one in aoeerror(), consistent use of nil for pointers, error handling&lt;/p&gt;

&lt;p&gt;devenv: avoid indirection, keep Evalue&amp;rsquo;s allocated in an array&lt;/p&gt;

&lt;p&gt;devenv: simplify envremove(), cleanup&lt;/p&gt;

&lt;p&gt;devether: duplicate flags when copying blocks (thanks erik quanstro)&lt;/p&gt;

&lt;p&gt;devkbd: poll pc keyboard before blocking on kbd.q&lt;/p&gt;

&lt;p&gt;devkbd: disable mosue/keyboard on shutdown, disable ps2 mouse on init, remove kbdenable()/kbdinit()&lt;/p&gt;

&lt;p&gt;devmnt: dont reset readahead window when requested offset still has pending rpc&lt;/p&gt;

&lt;p&gt;devmnt: use c-&gt;iounit instead of msize-IOHDRSZ to chunk reads and writes, reduce memory overhead for Mntrpc, mntalloc lock&lt;/p&gt;

&lt;p&gt;devmnt: fix mntcache()&lt;/p&gt;

&lt;p&gt;devtls: TLS1.1 explicit iv support&lt;/p&gt;

&lt;p&gt;ether79c970: set mbps for proper queue sizes, assume gigabit ethernet for vmware&lt;/p&gt;

&lt;p&gt;etheriwl: add pciid for Centrino Wireless-N 1000 (thanks qu7uux)&lt;/p&gt;

&lt;p&gt;vgaigfx: remove #define MB, theres a MB enum in portdat.h&lt;/p&gt;

&lt;h2&gt;compilers and debuggers&lt;/h2&gt;

&lt;p&gt;cc: provide fake realloc() for getenv()&lt;/p&gt;

&lt;p&gt;cc: improve (non-) side effect detection (thanks charle)&lt;/p&gt;

&lt;p&gt;1c,2c,7c,kc,vc: honor suppress condition for outstring() in swt.c&lt;/p&gt;

&lt;p&gt;vc: word align automatics&lt;/p&gt;

&lt;p&gt;6l: fix vlong byte order when running on big endian machine (thanks erik quanstro)&lt;/p&gt;

&lt;p&gt;acid -k: fix procenv() to new data structure&lt;/p&gt;

&lt;p&gt;acid -k: fix intrcount() for amd64&lt;/p&gt;

&lt;h2&gt;libraries&lt;/h2&gt;

&lt;p&gt;ape: fix mktime() again&lt;/p&gt;

&lt;p&gt;ape: implement altzone for tzset()&lt;/p&gt;

&lt;p&gt;ape: fix build for objtype=spim&lt;/p&gt;

&lt;p&gt;lib9p: return &amp;ldquo;write prohibited&amp;rdquo; error as documented in 9p(2) when srv-&gt;write is nil (thanks silasm)&lt;/p&gt;

&lt;p&gt;lib9p: make reqqueueflush() use new threadint(), which will also cover channel operations&lt;/p&gt;

&lt;p&gt;libauthsrv: readnvram() use vlong for nvroff, parse $nvlen/$nvoff with strtol() instead of atoi()&lt;/p&gt;

&lt;p&gt;libc: make atoi() not parse c-style octal and hex numbers&lt;/p&gt;

&lt;p&gt;libc: fix spim endianness&lt;/p&gt;

&lt;p&gt;libc: fix wunlock() libthread deadlock&lt;/p&gt;

&lt;p&gt;libcontrol: use strtol() to parse integer arguments&lt;/p&gt;

&lt;p&gt;libcontrol: fix label memory leak&lt;/p&gt;

&lt;p&gt;libhttpd: use strtol to parse decimal character references in httpunesc()&lt;/p&gt;

&lt;p&gt;libmach: set correct endianness with little endian ELF32 mips binaries&lt;/p&gt;

&lt;p&gt;libmach: remove useless error check from previous commit&lt;/p&gt;

&lt;p&gt;libmach: remove redundant check for big endian&lt;/p&gt;

&lt;p&gt;libmp: fix build for objtype=spim&lt;/p&gt;

&lt;p&gt;libsec: increase handshake message buffer size (MaxChunk) to 32K (thanks sl)&lt;/p&gt;

&lt;p&gt;libsec: TLS1.1 support (needs new devtls)&lt;/p&gt;

&lt;p&gt;libsec: fix mistake breaking tlsServer() (thanks sl)&lt;/p&gt;

&lt;p&gt;libsec: TLS1.2 client support&lt;/p&gt;

&lt;p&gt;libsec: TLS1.2 server support, make cipher list with most prefered first&lt;/p&gt;

&lt;p&gt;libthread: fix mistake, make &amp;ldquo;all&amp;rdquo; the default target again&lt;/p&gt;

&lt;p&gt;libthread: use &amp;ldquo;interrupt&amp;rdquo; proc ctl message instead of posting a note for threadint()&lt;/p&gt;

&lt;p&gt;cdproto: add spim&lt;/p&gt;

&lt;p&gt;rootstub: add spim&lt;/p&gt;

&lt;h2&gt;programs&lt;/h2&gt;

&lt;p&gt;add /spim&lt;/p&gt;

&lt;p&gt;aux/vga: sandybridge support for igfx (unfinished)&lt;/p&gt;

&lt;p&gt;aux/vga: dont rely on atoi() being able to parse hex&lt;/p&gt;

&lt;p&gt;bitsy: replace atoi() calls with strtol() when hex can be expected&lt;/p&gt;

&lt;p&gt;bitsy/keyboard: do not rely on atoi() being able to parse hex&lt;/p&gt;

&lt;p&gt;bullshit: app, deep-learning, responsive.&lt;/p&gt;

&lt;p&gt;cpu: cleanup ssl code, make sure -p works for any auth method&lt;/p&gt;

&lt;p&gt;crop: use strtol() instead of atoi()&lt;/p&gt;

&lt;p&gt;cwfs64x: set permission of / to 0775 on ream&lt;/p&gt;

&lt;p&gt;games/doom: implement filelength() (thanks quux)&lt;/p&gt;

&lt;p&gt;games/doom: fix switch textures swapping in ultimate doom (thansk qu7uux)&lt;/p&gt;

&lt;p&gt;games/doom: add bug compatibility switches (thanks qu7uux)&lt;/p&gt;

&lt;p&gt;games/doom: fix ouchface not being shown when it should be (thanks qu7uux)&lt;/p&gt;

&lt;p&gt;games/doom: display correct message on medkit pickup when health low (thanks qu7uux)&lt;/p&gt;

&lt;p&gt;games/doom: fix config file never being loaded or saved (thanks qu7uux)&lt;/p&gt;

&lt;p&gt;games/doom: fix unterminated comment causing sound bugs (from qu7uux)&lt;/p&gt;

&lt;p&gt;games/doom: fix idclev cheat in doom2 and final doom (thanks qu7uux)&lt;/p&gt;

&lt;p&gt;games/doom: fix gamma correction and key translation (thanks qu7uux)&lt;/p&gt;

&lt;p&gt;games/doom: fix array offsets for respawn angle (thanks qu7uux)&lt;/p&gt;

&lt;p&gt;gs: fix build for objtype=spim&lt;/p&gt;

&lt;p&gt;gs: fix alignment bug in image_render_interpolate()&lt;/p&gt;

&lt;p&gt;hjfs: fix abort() in givebuf()&lt;/p&gt;

&lt;p&gt;hjfs: fix deadlocks&lt;/p&gt;

&lt;p&gt;init: do not run $home/lib/profile when cd $home failed&lt;/p&gt;

&lt;p&gt;iostats: add -C to usage&lt;/p&gt;

&lt;p&gt;ip/httpfile: fix flushes, fix concurrent reads, set error string&lt;/p&gt;

&lt;p&gt;ipv6on: fix search for ip attribute (thanks kenji arisawa)&lt;/p&gt;

&lt;p&gt;jpg/ico: support for embedded png icons&lt;/p&gt;

&lt;p&gt;jpg/ico: fix mkfile&lt;/p&gt;

&lt;p&gt;kfs: set permission of / to 0775 on ream&lt;/p&gt;

&lt;p&gt;mothra: support for inline images and &lt;image&gt; tag&lt;/p&gt;

&lt;p&gt;mothra: fix selurl()&lt;/p&gt;

&lt;p&gt;mothra: cleanup url handling&lt;/p&gt;

&lt;p&gt;mothra: fix double button hit&lt;/p&gt;

&lt;p&gt;mothra: enable compiler warnings and type checking, cleanup&lt;/p&gt;

&lt;p&gt;mothra: fix nil crash on missing name/src attributes for source/video/audio/embed/frame/iframe&lt;/p&gt;

&lt;p&gt;mothra: show &lt;source&gt; tag within &lt;video&gt;/&lt;audio&gt; tags&lt;/p&gt;

&lt;p&gt;mothra: fix crash&lt;/p&gt;

&lt;p&gt;mount, srv: add -N flag to skip authentication and attach anonymously as &amp;ldquo;none&amp;rdquo;&lt;/p&gt;

&lt;p&gt;page: fix deadlock, nil vs 0 for pointer comparsion, cleanup&lt;/p&gt;

&lt;p&gt;python: use altzone&lt;/p&gt;

&lt;p&gt;python: fix build for objtype=$spim&lt;/p&gt;

&lt;p&gt;ratrace: avoid blank line prints, make writer the parent; various improvements&lt;/p&gt;

&lt;p&gt;resample: simplify getint()&lt;/p&gt;

&lt;p&gt;snoopy: dont rely on atoi() being able to parse hex&lt;/p&gt;

&lt;p&gt;webcookies: fix isdomainmatch() (fixes livejournal.com login)&lt;/p&gt;

&lt;p&gt;webcookies: fix implicit path cookie handling&lt;/p&gt;

&lt;p&gt;webcookies: create lockfile with 0600 permission, always use create() with perm 0600 for rewriting jar&lt;/p&gt;

&lt;p&gt;webcookies: use strtol() to parse HH:MM:SS&lt;/p&gt;

&lt;h2&gt;manual pages, documentation, misc&lt;/h2&gt;

&lt;p&gt;bio(2): Bterm() closes filedescriptor for Bfdopen() allocated buffer&lt;/p&gt;

&lt;p&gt;import(4): clarify -E and -e options&lt;/p&gt;

&lt;p&gt;rio(4): document &amp;ldquo;delete&amp;rdquo; wctl message (thanks mischief)&lt;/p&gt;

&lt;p&gt;fortunes: If you want to do the work, I will review the results.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://img.stanleylieber.com/src/17703/img/small.1439874761.png"&gt;&lt;/p&gt;
 </description>
        </item>

        <item>
            <title><![CDATA[New 9front release "KÄPTN BLAUBÄR"]]></title>
            <author><![CDATA[sl@noreply.cat-v.org (sl)]]></author>
            <link>http://9front.org:80/releases/2015/07/19/0/</link>
            <guid isPermaLink="true">http://9front.org:80/releases/2015/07/19/0/</guid>
            <pubDate>Wed, 06 Apr 2022 17:06:52 -0400</pubDate>
            <description> &lt;p&gt;&lt;img src="http://img.stanleylieber.com/src/17582/img/small.1437356383.png"&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-4661.a15f0069aa9d.iso.bz2.torrent"&gt;torrent&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-4661.a15f0069aa9d.iso.bz2"&gt;direct download&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;dash 1&lt;/h2&gt;

&lt;p&gt;&lt;a href="http://fqa.9front.org/dash1.kaptnblaubar.pdf"&gt;dash 1 manual&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;kernel and drivers&lt;/h2&gt;

&lt;p&gt;kernel: add pagechaindone() to wakeup processes waiting for memory&lt;/p&gt;

&lt;p&gt;kernel: declare _tas() to prevent pulling in libc version (for libmemdraw)&lt;/p&gt;

&lt;p&gt;kernel: do not inherit Proc.dot (current working directory) in kproc()&lt;/p&gt;

&lt;p&gt;kernel: do not inherit current directory channel (dot) to pager&lt;/p&gt;

&lt;p&gt;kernel: do not pull in atom.s from libc for arm kernels&lt;/p&gt;

&lt;p&gt;kernel: dont use smalloc() to allocate pte array in ibrk()&lt;/p&gt;

&lt;p&gt;kernel: fis comment PciSID (alphapc, kw, mtx, teg2) (thanks qeed!)&lt;/p&gt;

&lt;p&gt;kernel: fix accounttime() for HZ &gt;= 1000&lt;/p&gt;

&lt;p&gt;kernel: ignore last page at the top of virtual kernel address space for xalloc()&lt;/p&gt;

&lt;p&gt;kernel: ignore memory pages with singular kernel addresses&lt;/p&gt;

&lt;p&gt;kernel: implement separate wait queues for page allocation&lt;/p&gt;

&lt;p&gt;kernel: map pci bars for devices with base class codes (ccrb) 0x00 and 0x0D-0x11 (thanks qeed)&lt;/p&gt;

&lt;p&gt;kernel: reject bogus two byte &amp;ldquo;#!&amp;rdquo; shell scripts in sysexec()&lt;/p&gt;

&lt;p&gt;kernel: remove debugalloc.c&lt;/p&gt;

&lt;p&gt;kernel: remove waserror() arround newpage() in mntcache&lt;/p&gt;

&lt;p&gt;kernel: use HDR_MAGIC constant to handle Exec header extension, make rebootcmd() handle AOUT_MAGIC macro&lt;/p&gt;

&lt;p&gt;kernel: various cleanups of imagereclaim(), pagereclaim(), freepages(), putimage()&lt;/p&gt;

&lt;p&gt;pc, pc64: toggle bit 2 in port 0x61 to reset and enable PCI SERR# nmi&amp;rsquo;s, print nmi status&lt;/p&gt;

&lt;p&gt;pc: check Sse (bit 25) in cpuiddx before enabling fxsr in cr4 (fixes crash on the pentium II)&lt;/p&gt;

&lt;p&gt;pc64: use unsigned long for kmapindex and mmu counts avoiding signed integer division&lt;/p&gt;

&lt;p&gt;zynq: add /dev/fbctl to attach framebuffer to devdraw&lt;/p&gt;

&lt;p&gt;zynq: add support for hardware cursor&lt;/p&gt;

&lt;p&gt;zynq: fix /dev/pl&lt;/p&gt;

&lt;p&gt;zynq: fix barriers&lt;/p&gt;

&lt;p&gt;zynq: fix flushmemscreen()&lt;/p&gt;

&lt;p&gt;zynq: increase kernel memory for graphics&lt;/p&gt;

&lt;p&gt;zynq: make screen and cursor kprocs exit properly&lt;/p&gt;

&lt;p&gt;zynq: mouse acceleration&lt;/p&gt;

&lt;p&gt;zynq: remove unused PTE typedef&lt;/p&gt;

&lt;p&gt;zynq: remove unused statistics fields from Mach structure&lt;/p&gt;

&lt;p&gt;zynq: use KADDR() for kmap() if we can avoiding the mapping&lt;/p&gt;

&lt;p&gt;ether82563: fix multicast filter (based on openbsd em(4) driver)&lt;/p&gt;

&lt;p&gt;etherigbe: spi eeprom support (thanks echoline)&lt;/p&gt;

&lt;p&gt;etheriwl: add multicast stub, dont clear descriptors after completion&lt;/p&gt;

&lt;p&gt;etherrt2860: add multicast stub&lt;/p&gt;

&lt;p&gt;etherwpi: Intel PRO Wireless 3945abg driver based on openbsd&amp;rsquo;s if_wpi (thanks aap)&lt;/p&gt;

&lt;p&gt;9boot: look for plan9.ini in all filesystems accessible to efi to find plan9 partition&lt;/p&gt;

&lt;p&gt;aux/vga: disable nvidiascale() as it broke modeset on kenjis card&lt;/p&gt;

&lt;p&gt;aux/vga: dont use /proc/$pid/mem to access vga bios&lt;/p&gt;

&lt;p&gt;devcons: add current pool allocations to #c/swap&lt;/p&gt;

&lt;p&gt;devfs: remove useless ~OTRUNC mask for openmode&lt;/p&gt;

&lt;p&gt;devmnt: do not use user buffer to update the mount cache&lt;/p&gt;

&lt;p&gt;devproc: make sure statbufread offset wont turn negative&lt;/p&gt;

&lt;p&gt;devsegment: fix parsecmd() memory leak&lt;/p&gt;

&lt;p&gt;devstream: fast sequential file access with 9p pipelining experiment&lt;/p&gt;

&lt;p&gt;devtls: ignore UnrecogniedName (112) alert message (for SNI)&lt;/p&gt;

&lt;p&gt;ip: fix wrong radix for iphash() (thanks yoann padioleau)&lt;/p&gt;

&lt;p&gt;kbdfs: Runemax is inclusive.&lt;/p&gt;

&lt;p&gt;nusb/audio: dont sysfatal on bad endpoint (no altc)&lt;/p&gt;

&lt;p&gt;nusb/disk: adding identical partition is a no-op&lt;/p&gt;

&lt;p&gt;nusb/serial: remove unused channel&lt;/p&gt;

&lt;p&gt;nusbrc: handle fat formated usb drives without partition table&lt;/p&gt;

&lt;p&gt;usbd: set device info for control file (see usb(3), thanks qeed)&lt;/p&gt;

&lt;p&gt;wifi: adjust transmit rate on error (for etheriwl), small mkfile changes&lt;/p&gt;

&lt;p&gt;wifi: berlin prime bunny hopping&lt;/p&gt;

&lt;p&gt;wifi: reflect current transmit rate in mbps&lt;/p&gt;

&lt;h2&gt;compilers and debuggers&lt;/h2&gt;

&lt;p&gt;5e: approximate LL/SC with cas()&lt;/p&gt;

&lt;p&gt;5e: enable VFP emulation by default, doubles only need to be 4 byte aligned&lt;/p&gt;

&lt;p&gt;5e: implement DSB,DMB,ISB and CLREX instructions&lt;/p&gt;

&lt;p&gt;5e: make sure stack base is aligned to avoid unaligned memory trap on arm&lt;/p&gt;

&lt;p&gt;cc: handle unaligned data in = {0} local initializer&lt;/p&gt;

&lt;p&gt;cc: set unspecified elements to zero in local variable initializers&lt;/p&gt;

&lt;p&gt;cpp: search source file directory first for quoted #include (thanks Ori_B)&lt;/p&gt;

&lt;h2&gt;libraries&lt;/h2&gt;

&lt;p&gt;ape: add stdint.h, fix SSIZE_MAX and add SIZE_MAX to limits.h&lt;/p&gt;

&lt;p&gt;ape: define long long limits&lt;/p&gt;

&lt;p&gt;ape: include &amp;lt;sys/types.h&gt; in &amp;lt;sys/wait.h&gt; for pid_t (thanks jens staal)&lt;/p&gt;

&lt;p&gt;ape: port libc smp tas() for arm&lt;/p&gt;

&lt;p&gt;lib9p: fix lib9p wstat qid.type/mode checks (fixes lock(1) for ramfs/hjfs)&lt;/p&gt;

&lt;p&gt;libFLAC: fix compiler warnings by properly declaring void function arguments&lt;/p&gt;

&lt;p&gt;libc/arm: implement _tas() with LDREX/STREX, execute memory barrier on smp systems (zynq)&lt;/p&gt;

&lt;p&gt;libc: use Runemax instead of hardcoded 0x65536 for fmtchar check (thanks qrstuv)&lt;/p&gt;

&lt;p&gt;libdisk: error handling, sanity checks&lt;/p&gt;

&lt;p&gt;libdraw: consistent use of nil for pointers, error handling&lt;/p&gt;

&lt;p&gt;libdraw: don&amp;rsquo;t loop forever when getting eof on /dev/cons in keyboard ioproc&lt;/p&gt;

&lt;p&gt;libdraw: sync allocimage/allocwindow prototypes with man pages&lt;/p&gt;

&lt;p&gt;libhttpd: declare hvprint&lt;/p&gt;

&lt;p&gt;libsec: implement tlsClient support for RFC6066 server name identification (SNI)&lt;/p&gt;

&lt;p&gt;lock: reopen lockfile after changing mode to make lock effective&lt;/p&gt;

&lt;h2&gt;programs&lt;/h2&gt;

&lt;p&gt;9660srv: go back to 128k clusters, keep data and metadata separate in the cache with a tag&lt;/p&gt;

&lt;p&gt;9fs: handle all the dos filesystems in one case, add esp handler&lt;/p&gt;

&lt;p&gt;authsrv: remove unused opasstokey&lt;/p&gt;

&lt;p&gt;authsrv: use plan9 key for http authentication&lt;/p&gt;

&lt;p&gt;aux/cpuid: make sure extended feature bits are available (fixes crash on the pentium II)&lt;/p&gt;

&lt;p&gt;cdproto: /sys/log/httpd should be a directory, added /sys/log/pop3&lt;/p&gt;

&lt;p&gt;cifsd: smbrename is still ok when file is readonly (fixed git)&lt;/p&gt;

&lt;p&gt;cp: experimental stream support&lt;/p&gt;

&lt;p&gt;disk/edisk: gpt partition table editor&lt;/p&gt;

&lt;p&gt;disk/fdisk: learn about EFI system partition (type 0xEF), honor protective mbr (type 0xEE)&lt;/p&gt;

&lt;p&gt;disk/format: create Fatinfo sector for fat32&lt;/p&gt;

&lt;p&gt;disk/partfs: adding identical partition is no-op&lt;/p&gt;

&lt;p&gt;dontkill: only use noswap flag to mark processes as not to be terminated on oom&lt;/p&gt;

&lt;p&gt;dossrv: maintain file creation date/time on disk, fsinfo sector can be 0 (disabled)&lt;/p&gt;

&lt;p&gt;fcp: fix wrong write pointer offset when read returns less than DEFB bytes&lt;/p&gt;

&lt;p&gt;fcp: use iounit() to determine buffer size, reduce number of worker procs to 8&lt;/p&gt;

&lt;p&gt;games/doom: fix desyncing demo (thanks qwx), remove Makefile&lt;/p&gt;

&lt;p&gt;gunzip: the extra length field (XLEN) is two bytes instead of one&lt;/p&gt;

&lt;p&gt;hgweb.cgi: take REPO_ROOT and REPO_NAME from env, so can be used out of the box&lt;/p&gt;

&lt;p&gt;hjfs: defer parent directory permission check for wstat&lt;/p&gt;

&lt;p&gt;htmlroff: fix wrong newline in \name handling (| -&gt; ||)&lt;/p&gt;

&lt;p&gt;httpfile: fix evictblock() so we wont consume all the memory&lt;/p&gt;

&lt;p&gt;inst/bootplan9: skip mbr installation and active partition switching when we have no plan9 dos partition&lt;/p&gt;

&lt;p&gt;inst: fix download task using ip/httpfile to mount a iso over http and prompt for installurl&lt;/p&gt;

&lt;p&gt;inst: provide gpt/mbr choice when disk is blank, format esp&lt;/p&gt;

&lt;p&gt;integrate disk/edisk with diskparts, bootfs and installer (gpt support)&lt;/p&gt;

&lt;p&gt;ip/httpd: fix syslog file&lt;/p&gt;

&lt;p&gt;mk9660: write data in alphabetical order&lt;/p&gt;

&lt;p&gt;ndb/dns: use same buffer size of udp packet in redistrib() as dnudpserver() (fixes assert)&lt;/p&gt;

&lt;p&gt;page: make lookahead fetch work in backwards direction&lt;/p&gt;

&lt;p&gt;pkg: remove pkg(1), we regret the error&lt;/p&gt;

&lt;p&gt;qc, 9/ppc, 9/mtx: fix wrong if statements&lt;/p&gt;

&lt;p&gt;rc-httpd: cleanup cgi handler, various fixes&lt;/p&gt;

&lt;p&gt;rootstub: do not create pkg directories&lt;/p&gt;

&lt;p&gt;stats: add kernel malloc and kernel draw allocation size graphs&lt;/p&gt;

&lt;p&gt;sysinfo: update -p for sysinfo.9front.org&lt;/p&gt;

&lt;p&gt;sysupdate: change source repo to https://code.9front.org/hg/plan9front&lt;/p&gt;

&lt;p&gt;tar, tarfs: implement longname support&lt;/p&gt;

&lt;p&gt;tcs: fix swaped alias mapping gb &amp;lt;-&gt; gb2312&lt;/p&gt;

&lt;p&gt;test: use libc.h constants for access() mode (thanks qrstuv)&lt;/p&gt;

&lt;p&gt;tftpd: count only options we understand so we wont send empty oack message&lt;/p&gt;

&lt;p&gt;uhtml: check if document is valid utf8 even with charset specified&lt;/p&gt;

&lt;p&gt;usps: cut the useless part&lt;/p&gt;

&lt;p&gt;vblade, cifs, usbuhci: fix parenthesis&lt;/p&gt;

&lt;p&gt;webfs: send servername in tls client hello (SNI)&lt;/p&gt;

&lt;p&gt;wpa: do not prompt for key when there is already one in factotum&lt;/p&gt;

&lt;h2&gt;manual pages, documentation, misc&lt;/h2&gt;

&lt;p&gt;faces: add cs.dartmouth.edu!doug (thanks, qrstuv)&lt;/p&gt;

&lt;p&gt;faces: add updated addresses for quanstro, bwc, steve.simon (thanks, erik)&lt;/p&gt;

&lt;p&gt;fortunes: Turning off comments.&lt;/p&gt;

&lt;p&gt;rob: No we can&amp;rsquo;t.&lt;/p&gt;

&lt;p&gt;rsc: I think I&amp;rsquo;m missing something.&lt;/p&gt;

&lt;p&gt;theo: You are on your own.&lt;/p&gt;

&lt;p&gt;troll: Subject: unusable acme&lt;/p&gt;

&lt;p&gt;addpt(2): document badrect function, put badrect in .SH NAME so that it gets into the searchindex&lt;/p&gt;

&lt;p&gt;colors(1), who(1): add missing SOURCE entries&lt;/p&gt;

&lt;p&gt;cputime(2): fix prototype for cycles() (thanks qrstuv)&lt;/p&gt;

&lt;p&gt;dhcpd(8): the fs attribute refers to the file server, not the name server (thanks, pena)&lt;/p&gt;

&lt;p&gt;esetcursor(2), alarm(2): fix prototypes&lt;/p&gt;

&lt;p&gt;event(2): fix estartfn prototype&lt;/p&gt;

&lt;p&gt;exec(2): exec argument size only limited by user stack size, fix prototypes, return register (R0) contains address of Tos structure.&lt;/p&gt;

&lt;p&gt;freeimage(2), readcolmap(2), writecolmap(2): fix prototypes&lt;/p&gt;

&lt;p&gt;ndb(6): fix typo (thanks, pena)&lt;/p&gt;

&lt;p&gt;open(2): fix typo&lt;/p&gt;

&lt;p&gt;prep(8): document disk/edisk&lt;/p&gt;

&lt;p&gt;prep(8): edisk also adds a EFI system partition (esp) when not already exists.&lt;/p&gt;

&lt;p&gt;thread(2): fix prototype for threadint() and threadkillgrp() (thanks qwx!)&lt;/p&gt;

&lt;p&gt;&lt;img src="http://img.stanleylieber.com/src/17581/img/small.1437356338.png"&gt;&lt;/p&gt;
 </description>
        </item>

        <item>
            <title><![CDATA[New 9front release "MAKE EVERY PAY-DAY BOARD-DAY"]]></title>
            <author><![CDATA[sl@noreply.cat-v.org (sl)]]></author>
            <link>http://9front.org:80/releases/2015/05/15/0/</link>
            <guid isPermaLink="true">http://9front.org:80/releases/2015/05/15/0/</guid>
            <pubDate>Wed, 06 Apr 2022 17:06:43 -0400</pubDate>
            <description> &lt;p&gt;&lt;img src="http://9front.org/img/buyaijuboards2.jpg"&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-4474.8d41ad3cc0ea.iso.bz2.torrent"&gt;torrent&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-4474.8d41ad3cc0ea.iso.bz2"&gt;direct download&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;hardware&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.indiegogo.com/projects/aijuboard"&gt;aijuboard&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;kernel and drivers&lt;/h2&gt;

&lt;p&gt;audiohda: add AMD FCH Azalia Controller (thanks qeed)&lt;/p&gt;

&lt;p&gt;bootrc: simplify bootargs splitting avoiding awk&lt;/p&gt;

&lt;p&gt;boot: allow alternative proto files per kernel and kernel config for bootfs.paq&lt;/p&gt;

&lt;p&gt;boot: bind #c to /dev with MREPL instead of MBEFORE to avoid double entries&lt;/p&gt;

&lt;p&gt;boot: disable group/other permission checking in bootfs paqfs&lt;/p&gt;

&lt;p&gt;boot/zynq: add jtagload utility, implement sdmmc boot (fat)&lt;/p&gt;

&lt;p&gt;devkbd: remove kbdputc() and unused constants&lt;/p&gt;

&lt;p&gt;devsd: always page align sd buffers&lt;/p&gt;

&lt;p&gt;emmc/pmmc: make all symbols static&lt;/p&gt;

&lt;p&gt;ether8169: add 8168GU mac id (thanks qeed)&lt;/p&gt;

&lt;p&gt;ether8169: fix Macv45&lt;/p&gt;

&lt;p&gt;ether82563: work arround bad eeprom checksum for some i218 card (thanks BurnZeZ)&lt;/p&gt;

&lt;p&gt;etheriwl: check the bluetooth co-existance errors (thanks qeed)&lt;/p&gt;

&lt;p&gt;etheriwl: make rxon() static (thanks aap)&lt;/p&gt;

&lt;p&gt;etheriwl: support for Centrino Wireless-N 2230 from freebsd driver (thanks qeed)&lt;/p&gt;

&lt;p&gt;etherseeq: reset the card when it gets stuck (dma timeouts)&lt;/p&gt;

&lt;p&gt;kernel: add segio() function for reading/writing segments&lt;/p&gt;

&lt;p&gt;kernel: avoid repeated calls to reclaim(), dont miss last page in Pte&lt;/p&gt;

&lt;p&gt;kernel: catch address overflow in syssegfree()&lt;/p&gt;

&lt;p&gt;kernel: fix integer overflow in syssegflush(), segment code cleanup&lt;/p&gt;

&lt;p&gt;kernel: fix physical segment handling&lt;/p&gt;

&lt;p&gt;kernel: fixed segment support (for fpga experiments)&lt;/p&gt;

&lt;p&gt;kernel: get rid of auxpage() and preserve cache index bits in Page.va in mount cache&lt;/p&gt;

&lt;p&gt;kernel: leave shared, physical and fixed segments alone in killbig()&lt;/p&gt;

&lt;p&gt;kernel: move arrow cursor definition to port/devmouse.c&lt;/p&gt;

&lt;p&gt;kernel: state errstr.h dependency for proc.acid target (fixes acid kinit() on cleaned kernel source tree)&lt;/p&gt;

&lt;p&gt;kernel: pass Ureg* argument to note handler in R0 register on arm&lt;/p&gt;

&lt;p&gt;nusb/kb: always try to recover on error, fix recover for multi-function devices&lt;/p&gt;

&lt;p&gt;nusb/serial: recognize aijuboard jtag interface&lt;/p&gt;

&lt;p&gt;pc, pc64: extend initial memory map for qemu multiboot data&lt;/p&gt;

&lt;p&gt;pc, pc64: handle 64-bit pci membars&lt;/p&gt;

&lt;p&gt;pc, pc64: remove PCICONS debug buffer from pci.c&lt;/p&gt;

&lt;p&gt;pc, pc64: state dependency to usbehci.h in mkfiles&lt;/p&gt;

&lt;p&gt;pc: import intel i218 nic changes from 9atom&lt;/p&gt;

&lt;p&gt;sgi: new kernel for sgi/indy with ethernet and newport graphics support&lt;/p&gt;

&lt;p&gt;tcp: fix loopback slowness issue / set tcb-&gt;mss for incoming connections (thanks David du Colombier)&lt;/p&gt;

&lt;p&gt;usbohci: ensure Ed and Td alignment, fix for amd64&lt;/p&gt;

&lt;p&gt;zynq: do mpinit() early so cpu1 debug prints do not intermix&lt;/p&gt;

&lt;p&gt;zynq: fix out of bounds access in etherprobe()&lt;/p&gt;

&lt;p&gt;zynq: fix usb by implementing delay() and give proper port speed in portstatus&lt;/p&gt;

&lt;p&gt;zynq: invalidate cache before booting cpu1&lt;/p&gt;

&lt;p&gt;zynq: mmc support&lt;/p&gt;

&lt;h2&gt;libraries&lt;/h2&gt;

&lt;p&gt;lib9p: handle erealloc9p(&amp;hellip;, 0)&lt;/p&gt;

&lt;p&gt;libmach: use #pragma pack to force 4 byte alignment of bootexec.h structures for amd64&lt;/p&gt;

&lt;p&gt;libmp: use portable mpdigdiv routines for mips (causes invalid instruction trap on indy)&lt;/p&gt;

&lt;p&gt;libsec: remove aesCTRencrypt()/aesCTRdecrypt() (thanks mischief and qrstuv)&lt;/p&gt;

&lt;p&gt;libthread: get rid of chaninit() (thanks qrstuv)&lt;/p&gt;

&lt;p&gt;pool: avoid triggering assert(b-&gt;magic != FREE_MAGIC) in blocksetsize() for mallocalignl()&lt;/p&gt;

&lt;h2&gt;programs&lt;/h2&gt;

&lt;p&gt;ape: fix lockinit(), main9, lock.c for mips&lt;/p&gt;

&lt;p&gt;aux/listen: removing service script sholud kill listener (thanks mischief)&lt;/p&gt;

&lt;p&gt;bzfs: handle erealloc(&amp;hellip;, 0)&lt;/p&gt;

&lt;p&gt;cc: catch non constant pointer initializers&lt;/p&gt;

&lt;p&gt;6c: MOVL xxx, r; MOVLQZX r, r -&gt; MOVL xxx, r&lt;/p&gt;

&lt;p&gt;db: fix unicode support (thanks giacomo)&lt;/p&gt;

&lt;p&gt;dhcpd: ignore &amp;ldquo;;&amp;rdquo; filename from sgi arcs bootp(); command&lt;/p&gt;

&lt;p&gt;factotum: remove unused extern declarations of invoker and authdom from header&lt;/p&gt;

&lt;p&gt;g: search .awk and .rc files&lt;/p&gt;

&lt;p&gt;games/c64: writes to I/O area do not affect underlying memory (documentation lied)&lt;/p&gt;

&lt;p&gt;games/doom: fix mips&lt;/p&gt;

&lt;p&gt;games/doom: print correct version number on mismatch (thanks qu7uux)&lt;/p&gt;

&lt;p&gt;games/gb: better emulation and gbc support&lt;/p&gt;

&lt;p&gt;games/gb: fix -2/-3&lt;/p&gt;

&lt;p&gt;games/gb: fix gbc dma&lt;/p&gt;

&lt;p&gt;games/gb: improve sound emulation by modelling analog behaviour&lt;/p&gt;

&lt;p&gt;games/gb: improved audio code&lt;/p&gt;

&lt;p&gt;games/gb: limit audio range to prevent clipping&lt;/p&gt;

&lt;p&gt;games/gba: fix -3 crash and prevent &gt;100% speed&lt;/p&gt;

&lt;p&gt;games/gba: remove debugging print&lt;/p&gt;

&lt;p&gt;games/gba: very subtle timer bug fixed&lt;/p&gt;

&lt;p&gt;games/sokoban: fix non constant inializer&lt;/p&gt;

&lt;p&gt;gif: fix color table clipping (for cb5.gif)&lt;/p&gt;

&lt;p&gt;gs: avoid 6c type propagation / constant folding issue for set_cb_end()&lt;/p&gt;

&lt;p&gt;gs: fix bug 694539. Reading off the end of the cbuf when dash pattern len is max&lt;/p&gt;

&lt;p&gt;hg: install hgweb templates&lt;/p&gt;

&lt;p&gt;hget: work arround apache Content-Encoding: gzip for Content-Type: application/x-gzip bug&lt;/p&gt;

&lt;p&gt;hjfs: fix erealloc(&amp;hellip;, 0) crash when removing member from group array makes it empty (thanks 9dan)&lt;/p&gt;

&lt;p&gt;hgfs: preserve newlines in commit message (thanks BurnZeZ)&lt;/p&gt;

&lt;p&gt;httpauth: little helper for rc-httpd to do http basic authentication with plan9 auth server&lt;/p&gt;

&lt;p&gt;imap4d: simplify auth code using encodefmt(), use readn() to get multiple of 3*18 in base64 input buffer&lt;/p&gt;

&lt;p&gt;ircrc: remove unused clonefile&lt;/p&gt;

&lt;p&gt;mothra: del, ins, wbr, strike support&lt;/p&gt;

&lt;p&gt;mothra: remove unused confirmcurs; move confirmcursor up with the other cursors.&lt;/p&gt;

&lt;p&gt;ndb/dns: reduce sencodefmt() to not link in enc32()/enc64() encoders&lt;/p&gt;

&lt;p&gt;netaudit: comment file server auth test (unreliable on cwfs)&lt;/p&gt;

&lt;p&gt;pemencode: handle base64 input length &amp;lt; 3, fix bogus zero termination&lt;/p&gt;

&lt;p&gt;rc-httpd/handlers/dir-index: plan 9 files may be chmod +a&lt;/p&gt;

&lt;p&gt;rc-httpd: support for http basic authentication, fix cgi support to work with hgweb.cgi&lt;/p&gt;

&lt;p&gt;realemu: ignore access to CMOS/RTC address/data registers&lt;/p&gt;

&lt;p&gt;sam: don&amp;rsquo;t make scroll-wheel-up change focus (thanks clsmith)&lt;/p&gt;

&lt;p&gt;sam: prevent array overflow with multiple -i and -a arguments (thanks clsmith)&lt;/p&gt;

&lt;p&gt;ssam: don&amp;rsquo;t pollute the environmen, fix typo&lt;/p&gt;

&lt;p&gt;secstore: don&amp;rsquo;t print errors for dial() and readnvram() when not in verbose mode&lt;/p&gt;

&lt;p&gt;smtp, smtpd: fix use of enc64(), fix memory leaks in doauth(), cleanup mkfile&lt;/p&gt;

&lt;p&gt;snap: fix readseg() to cope with &gt; 2gb segments&lt;/p&gt;

&lt;p&gt;upas/marshal: deduplicate cistrcmp()/cistrncmp()/enc64()&lt;/p&gt;

&lt;p&gt;vc: fix coffsect.lnno overflow into nreloc&lt;/p&gt;

&lt;p&gt;vl, libmach, kernel: mips has 16K alignment for segments (for bigpages)&lt;/p&gt;

&lt;p&gt;vl: prevent stack altering instructions to be hoisted above loads&lt;/p&gt;

&lt;p&gt;webfs: do not send credentials in automatic referer url&lt;/p&gt;

&lt;p&gt;webfs: fix proxy authentication&lt;/p&gt;

&lt;p&gt;webfs: implement CONNECT method for https connections over proxy&lt;/p&gt;

&lt;p&gt;webfs: simplify http basic auth code by using encodefmt()&lt;/p&gt;

&lt;p&gt;webpaste: update for modified okturing.com&lt;/p&gt;

&lt;h2&gt;manual pages, documentation, misc&lt;/h2&gt;

&lt;p&gt;audio(1): explain mp3enc wants raw data in the opposite byte order to /dev/audio (thanks, eekee), fix example&lt;/p&gt;

&lt;p&gt;col(1): add SOURCE (thanks, qrstuv)&lt;/p&gt;

&lt;p&gt;encode(2): clarify lim argument to enc*(), add SOURCE reference for encodefmt()&lt;/p&gt;

&lt;p&gt;nintendo(1), qer(8): fix typos&lt;/p&gt;

&lt;p&gt;nintendo(1): add SOURCE entry for games/gba&lt;/p&gt;

&lt;p&gt;nintendo(1): update for gbc compatability&lt;/p&gt;

&lt;p&gt;mp(2) man page: mpinvert, not mpinverse (thanks, pr)&lt;/p&gt;

&lt;p&gt;mothra(1): replace code.google.com with code.9front.org&lt;/p&gt;

&lt;p&gt;passwd(1): passwd no longer needs to be run on a terminal; netkey is more stubborn.&lt;/p&gt;

&lt;p&gt;pushtls(2): fix signature to TLSconn.trace(), tls.h -&gt; libsec.h (thanks, pr)&lt;/p&gt;

&lt;p&gt;rsa(8): recommend secstore(1) for Plan 9 RSA private key storage&lt;/p&gt;

&lt;p&gt;secstore(1): add DIAGNOSTICS section&lt;/p&gt;

&lt;p&gt;segment(3): document fixed segment creation&lt;/p&gt;

&lt;p&gt;wpa(8): the -p flag will also prompt for user/password on wpa enterprise&lt;/p&gt;

&lt;p&gt;theo: OpenBSD is not generally known as an exposed democracy.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://9front.org/img/buyaijuboards.jpg"&gt;&lt;/p&gt;
 </description>
        </item>

        <item>
            <title><![CDATA[New 9front release "9FRONT NUCLEAR WINTER OF CODE"]]></title>
            <author><![CDATA[sl@noreply.cat-v.org (sl)]]></author>
            <link>http://9front.org:80/releases/2015/03/02/0/</link>
            <guid isPermaLink="true">http://9front.org:80/releases/2015/03/02/0/</guid>
            <pubDate>Wed, 06 Apr 2022 17:06:40 -0400</pubDate>
            <description> &lt;h2&gt;New 9front release &amp;ldquo;9FRONT NUCLEAR WINTER OF CODE&amp;rdquo;&lt;/h2&gt;

&lt;p&gt;&lt;img src="http://plan9.stanleylieber.com/mothra/img/gsoc2015.png"&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-4308.4e3f4e43246e.iso.bz2.torrent"&gt;torrent&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://9front.org/iso/9front-4308.4e3f4e43246e.iso.bz2"&gt;direct download&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;kernel and drivers&lt;/h2&gt;

&lt;p&gt;kernel: increase size of palloc.mem[] user page bank array&lt;/p&gt;

&lt;p&gt;kernel: reduce Page structure size by changing Page.cachectl[]&lt;/p&gt;

&lt;p&gt;kernel: make pagereclaim() a bit less stupid&lt;/p&gt;

&lt;p&gt;kernel: maintain Pool.curalloc for poolallocalign() and blockgrow()&lt;/p&gt;

&lt;p&gt;pc, pc64: fix intrdisable() MaxIrqLAPIC -&gt; MaxVectorAPIC (thanks mischief)&lt;/p&gt;

&lt;p&gt;pc, pc64: simplify intrdisable()&lt;/p&gt;

&lt;p&gt;pc64: enable uartisa in default config&lt;/p&gt;

&lt;p&gt;zynq: fix print format warning in screeninit()&lt;/p&gt;

&lt;p&gt;zynq: do fixed mapping for ocm memory on boot and make kaddr() and paddr() work with it&lt;/p&gt;

&lt;p&gt;devmnt: remove unused mntstats fields from Mntrpc&lt;/p&gt;

&lt;p&gt;devusb: fix debug ctl nil crash&lt;/p&gt;

&lt;p&gt;devusb: check for nil hp-&gt;dump and hp-&gt;seprintep&lt;/p&gt;

&lt;p&gt;igfx: add 0x2a02 for Intel GM965/GL960/X3100&lt;/p&gt;

&lt;p&gt;igfx: displayport support for ivy bridge&lt;/p&gt;

&lt;p&gt;usbehci: initial support for usb on zynq, remove uncached.h&lt;/p&gt;

&lt;p&gt;wifi: ignore truncated tlv in beacon/probes; fix recvbeacon()&lt;/p&gt;

&lt;h2&gt;libraries&lt;/h2&gt;

&lt;p&gt;libc: check name in getvent()/putenv()&lt;/p&gt;

&lt;p&gt;libdraw: cleanup getsubfont()&lt;/p&gt;

&lt;p&gt;libdraw: check fontchar count in openmemsubfont() and readsubfont()&lt;/p&gt;

&lt;p&gt;libdraw: use readn() to read headers and Fontchar array&lt;/p&gt;

&lt;p&gt;libdraw: use multiple read() calls in openfont() to read .font file&lt;/p&gt;

&lt;p&gt;libdraw: font-&gt;display-&gt;defaultsubfont vs. display-&gt;defaultsubfont, dead code, malloc erros&lt;/p&gt;

&lt;p&gt;libsec: add TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA client cipher suit support&lt;/p&gt;

&lt;p&gt;libthread: use devdup instead of mounting pipe to /mnt/temp for close-on-exec in procexec()&lt;/p&gt;

&lt;p&gt;libthread: remove unused internal functions and old xinc assembler files&lt;/p&gt;

&lt;h2&gt;programs&lt;/h2&gt;

&lt;p&gt;[125678kqv][cl]: fix sprint() and strcpy() buffer overflows&lt;/p&gt;

&lt;p&gt;6c: eleminate more MOV instructions&lt;/p&gt;

&lt;p&gt;6c: fix missing memset in Bconv()&lt;/p&gt;

&lt;p&gt;6l: no need to emit rex.w prefix for MOVBQZX and MOVWQZX&lt;/p&gt;

&lt;p&gt;auth/factotum: factotum: cleanup getnvramkey()&lt;/p&gt;

&lt;p&gt;auth/userpasswd: add to mkfile to build by default&lt;/p&gt;

&lt;p&gt;aux/vga: cleanup vesa code&lt;/p&gt;

&lt;p&gt;aux/vga: use optional edid information to determine mode when vgadb fails&lt;/p&gt;

&lt;p&gt;aux/vga: remove vbs/vbe from mode, use shs/ehs when sync is ment, prefer detailed timing in edid&lt;/p&gt;

&lt;p&gt;aux/vga: dont error when vesa setscale fails after modeset (thanks rx9p for reporting)&lt;/p&gt;

&lt;p&gt;fplot: add modulus % operator&lt;/p&gt;

&lt;p&gt;gs: work arround broken xref table pdfs&lt;/p&gt;

&lt;p&gt;gs: backport aes support for pdf-1.6&lt;/p&gt;

&lt;p&gt;gs: backport 16MB string support&lt;/p&gt;

&lt;p&gt;ircrc: dont require nick and user to be the same for auth/userpasswd (thanks spew)&lt;/p&gt;

&lt;p&gt;jpg: handle progressive non-interleaved mode&lt;/p&gt;

&lt;p&gt;kbdfs: work around qemu&lt;/p&gt;

&lt;p&gt;leak: report alloc size mismatch&lt;/p&gt;

&lt;p&gt;mothra: add side scrolling, controlled by left and right buttons on the keyboard. if desired, x-scrollbar can be set visible via the visxbar variable in mothra.c. (thanks, jpm_)&lt;/p&gt;

&lt;p&gt;nusb/usbd: fix typo in debug prints, dont use %U format as its not installed&lt;/p&gt;

&lt;p&gt;tlssrv: fix usage, dont cat&lt;/p&gt;

&lt;p&gt;tlssrv: produce meaningfull error message when unable to read certificate&lt;/p&gt;

&lt;p&gt;vc: eleminate strcpy in multab code&lt;/p&gt;

&lt;p&gt;webfs: check $httpproxy and error when its bogus&lt;/p&gt;

&lt;p&gt;wc: extend for 21 bit runes&lt;/p&gt;

&lt;p&gt;added games/c64: Commodore 64 emulator&lt;/p&gt;

&lt;h2&gt;manual pages, documentation, misc.&lt;/h2&gt;

&lt;p&gt;fortunes: The NTP codebase is larger than the SSH codebase.&lt;/p&gt;
 </description>
        </item>
    </channel>
</rss>

