http://9front.org/releases/ 9front.org | code | contrib | download | fqa | lists | man | wiki 9FRONT.ORG THE PLAN FELL OFF About: * > coc * > extra/ * > movies/ * > mp3/ * > n/ * > propaganda/ * >> releases/ * + > 2011/ + > 2012/ + > 2013/ + > 2014/ + > 2015/ + > 2016/ + > 2017/ + > 2018/ + > 2019/ + > 2020/ + > 2021/ + > 2022/ + > 2023/ * > who/ Howto: * - DASH 1 * - wiki Invest: * - books * - bounties 9FRONT "HUMANBIOLOGICS" RELEASED (2023/11/22) front Notable changes in this release: * New qemu kernel for arm64. * New /sys/src/9/arm64 directory with generic arm64 implementations that is shared with all the arm64 kernels (imx8, bcm64). * The arm64 and amd64 kernels now support using FPU in interrupt context. * 32K IOUNIT. * Wifi and I2C support on the raspberry pi. * Ethernet switch-over (ethermultilink(8)) allowing to switch transparently between wifi and ethernet. * Libmach now supports ARM THUMB, so acid is now able to disassemble thumb code such as gba roms. * The efi loader has been ported to arm64. DOWNLOAD Multiple installation media are provided for PC, Raspberry Pi, MNT Reform, and QEMU. 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. 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. QEMU images are provided in QCOW2 format. http://iso.only9fans.com/release/9front-10277.386.iso.gz.torrent http://iso.only9fans.com/release/9front-10277.amd64.iso.gz.torrent http://iso.only9fans.com/release/9front-10277.amd64.qcow2.gz.torrent http://iso.only9fans.com/release/9front-10277.arm64.qcow2.gz.torrent http://iso.only9fans.com/release/9front-10277.pi.img.gz.torrent http://iso.only9fans.com/release/9front-10277.pi3.img.gz.torrent http://iso.only9fans.com/release/9front-10277.reform.img.gz.torrent ; sha1sum -2 256 9front-10277*gz a04a0ec7179affc3c1289f34e748e4fb601b9124de4b5036031811f1c4321f55 9front-10277.386.iso.gz fbf1a3f017369ee26479221feec43a660ca94b2037ed225552951aa62f4a044f 9front-10277.amd64.iso.gz f4d69829ce7ccca4090bc80f2fa6b771148ff94f8e1610a0502a86d854861a31 9front-10277.amd64.qcow2.gz 1949091b674997d40aec6974f4f1634c4fefc1e6787ae290b604b6b13b431fe6 9front-10277.arm64.qcow2.gz de3753dd8588579fe84f73887e9bda246de5118d97726a1261885b663f004bd3 9front-10277.pi.img.gz 49c572589aee80033855452eade9f0b9ccce00cdd4423bd84d1f01d24c520465 9front-10277.pi3.img.gz acdb2b43fdf4ef76359aac755187afe39463f148614e447d44c47e426dc00077 9front-10277.reform.img.gz MIRRORS https://9front.org/iso/ https://iso.only9fans.com/release/ GIT REPOSITORY http://git.9front.org/plan9front/plan9front/HEAD/info.html DASH 1 MANUAL http://fqa.9front.org/dash1.humanbiologics.pdf dash 1 manual: http://9front.org/propaganda/books SONGS by cinap http://9front.org/mp3/humanbiologics2.mp3 by sl http://inri.net/archive/2001/10/26/gravity/mp3/ Gravity-Track_05-Piss_On_It_lofi.mp3 THANKS [REDACTED] KERNEL AND DRIVERS 9/boot/net.rc: allow setting additional flags to aux/wpa with $wpaopts in plan9.ini add arm64 qemu kernel arm64: mem.c doesnt need sysreg.h arm64: remove hz/mhz from conf, not needed. bcm, bcm64, imx8, kw: Fix missing preempted() call on non-clock interrupt (thanks Anthony Martin) bcm, bcm64: Add bitbang i2cgpio driver bcm, bcm64: handle disk activity led from sdmmc bcm64, imx8, pc64: save stack space in fault handler bcm64, imx8: fix breakpoint note strings bcm64, imx8: provide more flexible MPIDR_EL1 CPUID to machno mapping bcm64, imx8: writing CAPR_EL1 (to turn fpu on/off) needs a intruction barrier bcm64: add i2c for pi3 bcm64: dont need sysreg.h in mem.c bcm64: port new FPU code, making FPU available to interrupts bcm64: remove sysreg.c bcm64: use generic 9/arm64/* files bcm64: use generic 9/arm64/mmu.c bcm: add wifi driver boot/efi: add arm64 boot/reform: update flash.bin url devarch: recognize AMD Jaguar and Puma SoC's (thanks dave) devether: handle bypass outside of ethermux() devi2c: expose the I2Cdev structure to the controller. devip: add gratious arp ctl message to /net/arp devip: automatically unbind interface on read errors devip: fix comment ifc->id -> ifc->ifcid devip: have findipifc() return rlock'd interface, allow to use "del" instead of "remove" for route and interface operations devip: make some symbols static, cleanup devip: run Medium.unbind() with ifc->conv released, cleanup devpipe: remove bogus "wstat on closed pipe" note devsd, sd*: use seprint() style start/end pointer for rctl() function devsd, sdmmc, ether4330: improve infrastructure for sdio devtls: allow larger than MaxRecLen (16k) writes devuart: cleanup uart console code devuart: fix wrong opens count in case of uartenable() error devuart: handle software flow control (XON/XOFF) in devuart alone devuart: make sure consuart was enabled before setting serialoq devvmx: reset kernel fpu state before loading vmx fpu state devvmx: restore previous initial value for xcr0 ether4330: annex sdM for emmc (changed order) ether82563: add B360 i219-v ether82563: clear force speed/duplex bits in link-up (thanks taw) etherimx: ignore trailing 4 byte garbage in ethernet receive packet etheriwl: Add support for Wireless AC 3160 (thanks kws) ethermultilink: add "bypass" ctl for ethernet ethermultilink: send gratious arp instead of flushing arp cache ethermultilink: switch between different physical interfaces based on link status i2cbcm: clean up and fixes i2cbcm: use core clock rate from vcore instead of hardcoding 250Mhz imx8, bcm64: make sure interrupts are of (sched() re-enables them) imx8, bcm64: touser() already called splhi()'d imx8: port new FPU code, making FPU available to interrupts imx8: share generic arm64 mmu.c imx8: usb: enable host IN auto retry imx8: use generic 9/arm64/^(init9.s rebootcode.s) imx8: use generic 9/arm64/cache.v8.s imx8: use generic 9/arm64/fpu.c imx8: use generic 9/arm64/sysreg.c imx8: use generic 9/arm64/sysreg.h imx8: use generic 9/arm64/trap.c kernel: fix SEGMAXSIZE macro, force 64-bit result kernel: make walk/open errors more consistent with userspace kernel: move virtio10 drivers to port kernel: support 32k iounit nusb/disk: advertise the correct iounit for disk files. nusb/disk: use IOUNIT constant for Maxiosize nusb/disk: work around quirk in some CD drives nusb/ether: implement link status detection for smsc and lan78xx nusb/ether: make stats file compatible to stats(8) nusb/kb: fix Glorious Model O mouse nusb/kb: fix portreset feature and recovery nusb/usbd: attach spam protection for reset loops and flanky devices nusb/usbd: don't spam opendevdata() transaction errors before timeout, error printing nusbrc: use exponential backoff and timeout usb enumeration mouse: use tsleep() instead of delay() (thanks uramekus) omap: Fix missing preempted() call after non-clock interrupt (Thanks Anthony Martin) pc, pc64: clear osxsave flag in cr4 when not used pc64: avoid STI/CLI, touser() already called splhi()'d pc64: make FPU available in interrupts pc64: no need to _stts() in squidboy() pc: do trapinit() and mathinit() early pc: skip CLI/STI when not needed pi3, pi4: change the order of emmc and sdhc for ether4330 pipe: bring back wstat, set size (in bytes) of the pipe buffer qio: fix memory leak in qproduce() reform/pm: fix lcd pwm cycle setting precision reform: add ethersink driver for ethermultilink sdhost: implement sdhost controller driver so we can use wifi always (pi3) sdnvme: dont make queues largers than MQES field in capability swap: fix pager nil pointer derefence when running out of procs zuke: make stack usage independent of Biobuf's Bsize. zynq: fix print format in emmc driver zynq: remove uartconsole() function, already done by devuart internally COMPILERS AND LINKERS /sys/lib/acid/port: mind upper bounds of fnbound 6a: use IOUNIT for BUFSIZ 6c: fix embedded struct conversion codegen 6c: fix wrong signed type conversion from char/short -> float/double 6c: remove stray non-interruptible temporary warning 7c: add form3 support (no functional change) 7c: do NOT allocate link register for general use 7c: dont replace SXTW instruction following MOVW $const, r 7c: fix constant propagation for negative 64-bit constants 7c: replace {CMP $0,...; Bcond} with CB[N]Z/TB[N]Z when possible 7l: 1 - NOPROF to avoid confusion 7l: avoid hitting old 7c bug with 64-bit constant propagation 7l: define missing TBZ/TBNZ relation 7l: do a single pass to produce data segment instead of doing it in chunks 7l: fix MADD/MSUB optional reg 7l: support CB[N]Z[W] instructions 7l: support fmov between general and fp registers 7l: support fused multiply-add/sub ops 7l: use wider INITTEXT and INITDAT *l: make sure Sym and Auto structs are fully initialized (thanks moodman) ar: use IOUNIT for streaming in files cc: support binary constants and refactor cc: use IOUNIT for BUFSIZ cpp: remove trigraphs cpp: run tests with 'mk test' yacc: define dummy yytokname() and yystatname() macros if not yydebug LIBRARIES lib9p: return effective iounit in Ropen response libaml: dummy implement NotifyOp (thanks uramekus) libauthsrv: readnvram: prompt for password conformation libbio: bump Bsize to IOUNIT libc/arm64: disable profiling on memcpy (memmove is an alias and follows immediately) libc/arm64: fabs, floor and ceil in assembly libc/arm64: memmove/memset - save/restore link register libc: fix crash in idn routines with long domain names libdraw: use IOUNIT for transfer block size in readimage() libjson: make sure string contains only a single JSON value libmach: arm64: disasm fmov Rn,Fd / fmov Fn,Rd libmach: fix RETURN and branch target for CBZ/CBNZ for arm64 (wrong sign extension) libmach: fix dropped header in last commit libmach: open /proc/n/kfpregs when kernel debugging libmach: set errstr if we can't find a SP for a PC libmach: setmach: mipsLE* -> spim libmach: thumb support libregexp: regprint: make regimpl.h include match its siblings libsec: ansi-ify hkdf, pbkdf2 and scrypt libvorbis: delete random sparc64 .a PROGRAMS acme: add font control message add /rc/bin/doom: games/doom launcher add aux/aout2efi add games/dmx: decode doom sound effect lumps (dss*) add games/mid2s: streaming midi from file, and merge common stuff into generic framework ape/expr: ansi-ify function declarations ape/pdksh: ansi-ify function declarations ape: ansi-ify isatty and listen ape: libap: do not set objtype in amd64 mkfile audio/flacenc: implement [-i fmt] for supported formats; fix tell callback; fix big endian and 3-byte samples audio/zuke: ICY: 4k of stack is enough for everybody audio/zuke: double mainstacksize audio/zuke: fix ICY proc running out of stack audiohda: added Cannon Lake support audiohda: detect hda devices using pci class id aux/depend: remove old cruft aux/dial: use IOUNIT for transfer block size aux/trampoline: use IOUNIT for transfer block size bar, fontsel: use heap allocated biobuf bar: smaller buffer for aux proc; exit on eof bzfs: use IOUNIT for buffer size bzip2: use IOUNIT for transfer block size cdfs: use IOUNIT for maxrpc (thanks Arne Meyer) cfs: use IOUNIT for MAXFDATA cmd: use increased iounit compress: ansi-ify function declerations and enable warnings cpurc, termrc, bootrc: organize default device binds diff: don't flush on every line diff: fix no newline test diff: generate no-newline directives diff: improve is-binary heuristic diff: make distproto copies tests dossrv: use IOUNIT for Maxdata eui: draw in seperate proc fcp: use IOUNIT as default size file: recognize MOD files (thanks umbraticus) file: recognize and differentiate opus file: use xiph mimetypes to clearly differentiate ogg/vorbis from ogg /opus et al (thanks sigrid) fshalt: get rid of special nvme hack for disk shutdown games/aout2gba: allow either ARM or ARMB mach type games/dmx: rename to games/dmxdec for consistency games/doom: bump max number of simultaneous sound effects games/doom: don't crash on invalid music selection with idmus cheat games/doom: don't print useless status on stderr games/doom: draw in a separate proc games/doom: faster palette-rgb conversion for arm64; fix convproc channel handling games/doom: fix unhooked sound attenuation with distance games/doom: remove dead code games/doom: run audio in its own proc; can stop frame-dropping as well games/doom: use wadfs to expose genmidi lump instead of extracting to /tmp games/doom: wait explicitly for convproc to exit before running getwindow on resize games/festoon: ansi-ify function declerations games/gb: correctly mark transmitted serial data as sent games/gba/rom: use -t with 5a games/md: ignore invalid writes (makes cave story work) games/mid2s: fix usage string games/mkfile: match the dmxdec rename games/opl3: fix choking on high tempo streams games/voc^enc dec: move from audio and add encoder git/*: reduce object cache size git/add: don't include paths in the .git directory git/branch: avoid null list errors git/branch: prevent deleting current branch, skip dirty check for deleting branches git/clone: correctly handle cloning repos with '/' in the remote ref git/commit: fix sed invocation: our '^' operator has a quirk when used with 'g' git/diff: always respect the specified branch git/diff: make '-u' flag imply '-s' git/fs: fix leak of uid strings git/fs: match errors with other file servers git/fs: preserve mode bits when walking branch dirs git/fs: when statting an object, generate a correct qid git/merge: include files changed in the merged commits git/query: allow arbitrary length queries git/query: check for nil return from seprint git/revert: correctly revert files with spaces in the path git/revert: only look at changed files git/save: fix warning git/walk, git/save: be less restrictive about permission matching git/walk: add -b option to override base branch git/walk: filter out files from within the .git repo git/walk: fix usage on new repo git/walk: only show untracked paths matching requested prefix git: fix zero hash check crash in git/serve git: replace index format for ~200x speedup grabrfc: update fetching hg: actually remove hg this time hg: remove forgotten traces history: set missing execute bit hjfs: unlimited buffer works hjfs: use smaller fixed buffer size imap4d: use IOUNIT for Bufsize ip/ftpfs: fix totally broken messagesize, use IOUNIT ip/ipconfig: allow "del" verb in addition to "remove" ip/snoopy: fix missing break rrfmt() in (tho, harmless as of rrsupported() check) ip/snoopy: sync with ndb/dns ircrc: fix pong message (thanks mkf) ktrans: more tests, telex rewrite, small chinese fix ktrans: pinyin, cleanup and documentation updates lstk: add /bin/lstk to dump most recent crashed proc merge3: handle edge cases where we remove lines merge3: overlap happens on the source offsets, not the dest offsets mk: dead code removal ms2html: fix crash on macro without newline ndb/dns: add -L flag for local-recursive server ndb/dns: avoid blocking 9p on refresh, use shorter 15second query timeout, cleanup ndb/dns: better handling of extended response code ndb/dns: built-in tcp server, remove cruft, refactor ndb/dns: embedd name string into DN struct ndb/dns: fix RR.caa leak ndb/dns: fix memory leak in dnzone() ndb/dns: hack for the caching server for delegated nameservers ndb/dns: implement EDNS(0) extension (rfc6891) ndb/dns: implement concurrent garbage collection ndb/dns: make sure theres only a single Topt option in getednsopt(). ndb/dns: refresh the cached dnsserver domain ndb entries in db2cache () ndb/dns: remove leftover #pragma varargck argpos dnsdebug 1 nedmail: set $% to the full path of the current message newuser: use non-expanded $home instead of /usr/$user in lib/plumbing comment page: use IOUNIT for NBUF paqfs: use IOUNIT+IOHDRSZ for mesgsize patch: delete files for tests before test run patch: fix offsets in reverse mode patch: support no-newline directives postscript: ansi-ify function declerations rc: use IOUNIT for io NBUF readtags, zuke: extract cover images stored in the audio files (thanks g-w1) riow: skip redundant k events with shifted keys rx: use IOUNIT for transfer block size skelfs: use more correct "file does not exist" error sshfs: use MAXWRITE for I/O unit sysupdate: use the rc -b flag to keep sysupdate in memory tapefs: use IOUNIT for Maxbuf tl: use IOUNIT for MAXIO tl: use the allocator from cc/compat tlsclient: use IOUNIT for transfer block size tmdate: add ordinal day of month format specifier tput: use iounit(2) of the file-descriptor by default troff: embiggen troff character size limit to support huge fonts uhtml: use IOUNIT for transfer block size upas/Mail: when space is tight use ellipsis (...) instead of 3 dots (...) upas/Mail: use IOUNIT for Bufsz upas/fs: don't abort when the server gives us invalid dates upas/fs: don't try to fstat a renamed fd upas/fs: use IOUNIT upas/fs: write index out to temp file upas/imap4d: fix bad censorship of the password when debug is enabled. upas/imap4d: return SEARCH response in caps. upas/marshal: use IOUNIT upas: "move" ctl verb to move messages between imap folders (thanks Risto Salminen) vac: use IOUNIT reading files vacfs: use IOUNIT vncs: use IOUNIT for Maxfdata vncv: remove 16 -> 32 bpp conversion routine vt: bracketed paste mode (fixes autoindentation in text editors) vt: resize only when the window is not hidden (fixes window at top left corner with riow after terminal reset) walk: handle removed files correctly wc: use IOUNIT for NBUF webfs: use IOUNIT for transfer block size DOCUMENTATION ether(3): document "bypass" ctl message. ethermultilink(8): add manpage with example ethermultilink(8): add some warnings about leaving the secondary interfaces alone ethermultilink(8): fix bridge(3) reference (thanks Stuart Morrow) ethermultilink(8): fix sink bind (thanks sigrid) git(1): document 'git/diff -u' git(1): document flag to show unused files git(1): document git/import -n git(1): remove lies from manual, improve wording. git(1): update and clean up git/walk section ip(3): document garp ctl message for /net/arp listen(8): remove tcp53 reference, remove !tcp53 template rio(1), rio(4): wctl /srv pipe is dead, mention 'none' attach (thanks unobe) paqfs(4): remove 8K default message size comment pc(1): remove non-existent -n (thanks kvo); misc fixes from checkman plan9.ini(8): document $wpaopts sd(3): list /led and /smart files snap(4): clean up lies stats(8): drop 802.11, consider ALL /net/ether*/stats webcookies(4): cookiefs -> webcookies zuke(1): document audio/readtags OTHER /lib/keyboard: fix subscript small letter n. add super/sub small letter i /lib/rob: Critical code needs static typing. /lib/theo: You are in way over your head /lib/theo: You are trying to compare a pig and a moon rocket. /lib/theo: You get to adapt to what we produce. /lib/troll: We have created something new that we named R9, an OS strongly inspired by Plan 9, written in the Rust programming language. /sys/lib/dist/mkfile: include /386/mbr et al in disk images /sys/lib/dist/ndb/common: add esmtp (port 587) /sys/src/boot/mkfile: add missing child directories distproto: include /lib/ucd in releases replace ? with ? character in fa kbmap (thanks mkf) back 9FRONT "DON'T TOUCH THE ARTWORK" RELEASED (2023/06/25) front Notable changes in this release: * /srv/clone * ARM thumb support * EMMC support * Mediatek mt7688 MIPS kernel * Multicast, IGMP and MLD support * aux/dial * dhcpv6 support in ipconfig * mk test * scream audio protocol support * evdump * scroll down for more DOWNLOAD 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. 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. http://9front.org/iso/9front-9931.386.iso.gz.torrent http://9front.org/iso/9front-9931.amd64.iso.gz.torrent http://9front.org/iso/9front-9931.pi.img.gz.torrent http://9front.org/iso/9front-9948.pi3.img.gz.torrent http://9front.org/iso/9front-9948.reform.img.gz.torrent ; sha1sum -2 256 9front-9931*gz b06118027bc8e692c640dfe801d427882f4a219685be1b0113aee3ebecc6b9c4 9front-9931.386.iso.gz f69abdadc82da7f9b6fd3f3e88b806f1050baa9235912165475ae9f0bb677828 9front-9931.amd64.iso.gz 8e5fb4615e169f2d189f5ba284e672072513ed6c7fa37f4bca23e3fa5c172ea6 9front-9931.amd64.qcow2.gz 020187247a9a59ddf68c5468b5fbff6b78fdf133f47d7c87c7b875ecd72cd97f 9front-9931.pi.img.gz 52cb6b0c453432802da14f9e4ea45d894b956d64eab4486b00516d6e351e22d9 9front-9948.pi3.img.gz a11243fe5dd217e9ecbd6c98768dd0b860a44693c14d4946ae2ddf56fabbc969 9front-9948.reform.img.gz MIRRORS http://9front.org/iso/ http://felloff.net/usr/cinap_lenrek/9front/ http://iso.only9fans.com/release/ GIT REPOSITORY http://git.9front.org/plan9front/plan9front/HEAD/info.html DASH 1 MANUAL http://fqa.9front.org/dash1.donttouchtheartwork.pdf dash 1 manual: http://9front.org/propaganda/books SONGS by qwx http://9front.org/mp3/keinkunst.r01.mp3 by sigrid http://9front.org/mp3/revenge.mp3 by sl http://9front.org/mp3/MYTHS_OF_DIALOGUE.mp3 Update: https://archive.org/download/benny-hill-song/Benny%20Hill%20Song.mp3 THANKS https://www.youtube.com/@adventuresin9797 KERNEL AND DRIVERS 9boot: delay GetMemoryMap until right before ExitBootServices (thanks michael forney!) 9boot: implement nocga= and nokbd= kernel boot parameters aux/acpi: -H is for HALT aux/acpi: attempt to call PTS and TTS before shutdown aux/acpi: correct fadt version check for new shutdown. aux/acpi: ignore bad acpi 2.0 shutdown access widths. aux/acpi: no need for amlval(), amleval() will dereference the name and run the method aux/acpi: no need to require the embedded controller. aux/acpi: use ACPI 2.0 64-bit pointers for power off aux/kbdfs: accept names for layers in writes to kbmap aux/kbdfs: error on invalid numerics in kbmap writes aux/kbdfs: reset kbmap to ascii default when opened with OTRUNC aux/kbdfs: use layer names in kbmap reads and document them aux/mouse: use /dev/eia instead of #t/eia, should be bound by termrc aux/vga: DP 1.2 on igfx; EDID wrapping; VGA display connections bcm64: apply same mmu improvements from imx8 bcm64: move fpon()/fpoff() into l.s bcm64: move pi3 VGPIO to 2MB aligned address, this makes 4K pages work boot/bitsy: clean up checked in binary boot/reform: bootm if loading the kernel worked bootrc: bind devcap and devtls, make /root mount consistent with spec bootrc: let /boot/boot run in a more natural namespace devbridge: simplify ethermultiwrite() devdraw: coding style (from drawterm) devgpio: (Raspberry Pi3/4, revision 2, bcm scheme) (thans Matt!) devip: Fix transfoward() iphash collision devip: actually put igmp in ip section devip: add igmp protocol support to all kernels devip: address some ipv6 issues on pkt interface devip: don't leak temporary buffers on error devip: dynamically allocate memory for /net/ndb, increase maximum to 32K devip: fix icmp bugs devip: generate more reasonable laddr for UDP "headers" connection writes devip: ignore addmulti() errors in addselfcache() devip: lilu dallas multicast. devip: maintain packet counters for pktmedium devip: provide large buffer for ipifc->local() generator devip: remove subnet check for arpforme() devip: rlock ifc before accessing interface parameters in ipifcstate () devip: tcpmssclamp() to minimum of source and destination interface MTU devip: generalize Rproxy route handling, allowing non point-to-point arp proxy devip: icmp6: no need set vcf and ttl before ipoput6(), use MAXTTL instead of HOP_LIMIT devip: icmp: only forward EchoRequest, Timestamp(request), InfoRequest and AddrMaskRequest devip: the retunnel logic in the gre code is wrong. devip: tcp: only create new translation when SYN packet devproc: Fix a double-free reading note file (thanks Josiah Frentsos) devsd: Fix memory leaks, wstst check, cleanup devsd: fix wrong range check for subunit number devsrv: Various fixes. devsrv: fix recusrion deadlock on remove devusb: provide usb hub device number instead of address in /dev/usb/ ctl etherbcm: support for newer BCM5717 series cards. etherbcm: support the 57765 series etheriwl: add pci id for AC 7265 card (thanks Chris Gorman) ethervgbe: do not give userspace the frame check sequence ethervgbe: reduce console spam (thanks Arne Meyer) etherwpi: accept pci device id 4222 (thanks oliver simmons) imx8: a simple softscreen imx8: add vpu clocks and irq indices, correct a typo (no functional change) imx8: cleanup framebuffer code imx8: dont reuse the TTRB1 page tables for TTRB0 identity map, remove gpioinit() imx8: make etheriwl work on MNT Reform, move it to port/ (thanks cinap); tested with 6205 imx8: move fpon()/fpoff() into l.s imx8: provide PCIWINDOW constant, use PCIWADDR() for MSI_TARGET_ADDR imx8: setup $terminal environment variable in init0() imx8: usdhc: fix debug print, R1b response handled by controller imx8: move SAI iomux/clock initialization into probe() imx8: put default "console=0" in #ec kernel: Clear secrets on reboot kernel: Do not treat IPv6 ULA's as GUA's (thanks Arne Meyer) kernel: fix devsrv compilation on arm32 kernel: free exec temporary stack segment under seglock kernel: handle 64-bit multiboot framebuffer address kernel: private srv boards kernel: sdram: do not use xalloc for SDev mt7688: add kernel mouse: Make /dev/mousein readable to get mouse status without blocking nusb/audio: add support for USB audio 2.0 nusb/audio: enumerate streams through control interface nusb/audio: only consider data endpoints when setting up nusb/audio: remove code for bi-directional endpoint nusb/cam: interrupt reader proc on close to unstuck it nusb/cam: rather than showing partially green frames (when not enough bandwidth), skip those altogether nusb/cam: remove wrong func prototypes, print probe control nusb/cam: rewrite yuy2convert with integer arithmetic nusb/cam: take max payload transfer size into account when selecting for bandwidth nusb/ether: set configuration, and use the first interface that matches nusb/ether: support for asix ax88179 (thanks Aidan K. Wiggins) nusb/kb: GAOMON S620 tablet support nusb/lib: add setconf() to set the configuration nusb/lib: move audio-specific requests to nusb/audio nusb/usbd: use dprint() report to standard-error instad of standard-out nusb/usbd: Fix wrong hname collision handling nusb/usbd: add /dev/usbhubctl file to control port power and led indicators nusb/usbd: assign hname to hubs nusb/usbd: only fetch first 8 bytes of device descriptor for getmaxpkt() (thanks k0ga) nusb/usbd: provide vid and did in device info string for hubs nusbrc: remove service files left by nusb/kb (thanks kristo) reform/pm: considering the keyboard might be absent altogether, fall back to lpc shutdown in any case reform/pm: several improvements and fixes sdiahci, sdodin, sdide, devsd: get it right... sdiahci, sdodin: more unconfigure panic fixes sdide: fix double free in clear() (devsd frees sdev already) sdmmc: actually implement mmc support sdmmc: implement boot partition access for emmc sdmmc: multiple controller support sdmmc: new interface for SDio sdmmc: switch argument must be integer sdnvme, fshalt: turn disks off on fshalt sdnvme: add smart file for full smart info sdnvme: collect useful smart/health info and report via ctl sdnvme: remove unused mptr argument to qcmd() sdnvme: use delay() instead of tsleep() in nvmedisable() scram, aux/acpi: open /proc/$pid/ctl instead of #p/$pid/ctl for wirecpu0() scram: - /rc/bin/scram usbxhci: add some robustness checks usbxhci: fix command ring wrap crash usbxhci: split usbxhci in portable and pci / soc specific drivers usbxhci: wait for reset to complete before continuing initialization zynq: fix plcopy() source pointer increment zynq: remove bogus main.bin file COMPILERS AND DEBUGGERS /sys/src/games/^(aout2gba gba/rom): basic gba toolkit 5c, 7c: fix !x compilation when x is a negative float 5c, kc, qc: fix implicit return type of samaddr 5e: access /proc instead of #p 6c: copy all of packed structs in OAS 6c: eliminate the rathole 7c, 7l: fix linker clobbering offset if given the same register twice 7c: clean up the garbage in -S output, fix printing instructions using FCONST 7c: copy the remainder of packed structs 7c: elide type converting moves, registerize loads after store from local variables 7c: eliminate MOVWU r, r instructions when possible 7c: help and improve peephole optimizer 7c: implement bit rotations using ROR/EXT instruction 7c: more registers, improve constant propagation, implement load pipelining 7c: node offsets aren't necessarily 0 - fixup packed structs 7c: peephole: ACASE needs two distinctive registers - nothing to optimize 7l, 7c: Remove STLP(W), finish LDAXR(W)/STLXR(W). 7l: allow byte/halfword register offset load/store 7l: allow paired SIMD load/store, correct a few comments 7l: register offset loads/stores 7l: rewrite Rl-REGTMP in the comment (thanks cinap) 7l: throw an error if CASE uses the same register for base and offset (CASE R1, R1) 7l: use floating point immediates where possible Update: 7c: dont replace SXTW instruction following MOVW $const, r c99: update dead web link cc: NORET -> _Noreturn cc: add NORET cc: add func support cc: do not wait for cpp to finish if there were errors cc: fix suicide with undefined function arguments cc: fix vlong->VOID cast (thanks cosa) cc: fndecls: always ignore non-function types cc: fndecls: use current fn node directly cc: wait for cpp to report whether it was a success cpp: #pragma once support cpp: allow qid version change for #pragma once cpp: correct #pragma once uniqueness check cpp: stringified macros shouldn't split words separate by a dot libmach/acid: add basic FP support for arm64 libmach: add more floating point instructions decoding for arm64 libmach: fix reading .7 objects containing instructions with an extra register (from3) libmach: fixup for fmovT Fd,u(SP) libmach: remove obsolete fishy case in mips header parsing LIBRARIES ape: endian fixes for spim ape: add stdnoreturn.h lib9p: e*9p error tidy lib9p: fix missing newlines in fprint() libaml: implement ConcatRes and Mid opcodes. libaml: replace ResEnd with it's value. libaml: tow eisaid inside the environment libauth: Fix a memory leak in auth_getkey (thanks josiah fentsos) libauth: aand also fix the leak it in the deactivated code libauthsrv: deal with signed char in readcons() libauthsrv: import better passtodeskey() function (from drawterm) libauthsrv: readnvram: prompt for use of p9sk1 in nvram, with a default of no libbio: abort on invalid state libc: Add poolreset() function libc: address kencc warning in date.c libc: coding style (from drawterm) libc: fix 32-bit arch vlong->double conversion (thans cosa) libc: fix strchr() for little endian mips (thanks adventuresin9) libc: remove dangling runetype.c libc: runecomp: commit generated data files libc: runecomp: move generated files to explicit regen rule libc: sqrt() in assembly for arm64 libc: strtoull(): fix return value on overflow libc: use /fd instead of #d in iounit() libc: _tas() for spim libgeometry: revamp libgeometry: fix rframe xforms libip: Provide iplocalonifc() and ipremoteonifc() functions libip: avoid parentesis warnings from gcc (from drawterm) libip: open temporary file-descriptors with OCEXEC flag libjson: correctly escape strings in JSONfmt() libmemdraw: coding style (from drawterm) libmemdraw: don't return Buffer copy from calc functions libmp: parentesis (from drawterm) libndb: add ndbvalfmt() formatter libndb: make ndbipinfo() put each ip and attributes entry on its own line libsec: add minimal support for the tls renegotiation libsec: add parentesis to squelch gcc warning in drawterm libsec: fix inconsistent prototypes for des (from drawterm) libsec: use /net/tls instead of #a/tls libtags: work around encoders producing Ogg containers with first granule position set to non-zero outside of the first page PROGRAMS audio/flacdec: throw out decoded audio until finished seeking audio/mixfs: add "volume" file with "mix" control to set the output volume of the mixed inputs audio/mixfs: fix locking for /dev/audio loopback audio/mixfs: fix loopback audio/mixfs: implement flush audio/mixfs: no loopback delay audio/scream: multicast audio protocol audio/screamsend: actually have aux/dial exec screamenc (thanks sigrid!) audio/screamsend: use dial(1) audio/vocdec: Creative Voice File decoder audio/vocdec: handle non type 1 blocks better audio/zuke: do not clip the rightmost column audio/zuke: fix -s not drawing properly and track being off by one; more OCLOSE auth/*: use /fd/0 instead of #d/0 auth/*: use caphash and capuse under /dev instead of #$? auth/*: fix up to report write errors auth/acmed: better challenge error reporting. auth/acmed: support getting a wildcard certificate. auth/factotum: access /proc instead of #p for private() auth/factotum: make sure we got a private key in ssh client protocol auth/ssh2rsa: convert Unix ssh private keys to Plan 9 format. aux/consolefs: post to /srv instead of #s aux/depend: post to /srv instead of #s aux/listen1: write status to standard error aux/listen: add -o and -O options aux/listen: log the real error when announce() fails aux/listen: tweak per service namespaces aux/timesync: don't bind #r twice (already done in inittime()) awk: dont leak memory on extra format arguments awk: getline: do not access unitialized data on EOF bar: fix automatic resize and click location; ignore separator area when clicking bar: increase the buffer to fit more aux data (noam decided to display the currently playing track there) bar: static buffer for splitting, since it is getting used for clicks later on bzfs: post to /srv instead of #s cifs: remove redundant memsets after emalloc9p (thanks Arne Meyer) cifs: use procsetname() instead of rolling your own cwfs: add missing \n in error print cwfs: post to /srv instead of #s cwfs: remove noauth and nonone commans from fileserver console cwfs: write /env/timezone instead of #e/timezone dial: add dial command similar to plan9port diff, merge3: refactor diff, implement merge3 diff: add missing file diff: barf with explanation on binary diffs/merges diff: fix suicide if binary files don't diff disk/partfs: fix bogus "%r" error response disk/qcowfs: correct GET2 off by one dossrv: Implement support for != 512 sector and track sizes dossrv: better error handling and sanity checking in dosfs() dossrv: post to /srv instead of #s, leave stderror alone evdump: a program to dump input and window events evdump: have evdump deal with new /dev/kbmap format ext2srv: leave stderr alone file: identify Creative Voice File file: identify qcow images fstype: add support for gefs ftpfs: clarify usage and manpage games/dmid: add control 00h, bank select games/dmid: fix running status for streams games/dmid: fix tempo changes causing desyncs in multitrack files games/dmid: no longer threaded games/dmid: properly skip delay field from stream games/dmid: simplify and reuse input code for streaming games/dmid: update for opl3 streaming games/doom: experience it right from the start games/gb: crude serial port emulation games/gb: implement internal window line counter games/midi: fix desyncs after tempo changes in multitrack files games/opl3: implement real time streaming mode games/wadfs: parse hexen map behavior lump git/send: correctly delete branches with no local mirror git: add support for another signed message format git: fix nil dereference in corrupt repositories git: prevent infinite recursion with cyclic symlinks (thanks cosa) gs: patch CVE-2023-28879 history: fix walking and handling files with spaces hjfs: check and fix print format errors imap4d: add entry to detect file locked errors on hjfs ip/dhcp6d: set source address to the receiving interface ip when multicast ip/dhcpclient: ignore icmp advice messages ip/httpd: fix duplicate array entry (thanks khayyam@cock.li) ip/ipconfig: add -y flag to ipconfig to set proxy-arp for an interface ip/ipconfig: avoid refreshing /net/dns for non-primary interface ip/ipconfig: initial dhcpv6 support, clean default-routes and /net/ ndb on remove ip/ipconfig: leave ipnet= entries alone when updating /net/ndb, use ndbvalfmt() ip/ipconfig: ignore "ANDROID_METERED" junk options ip/ipconfig: remove non-existant ip addresses from /net/ndb, check link-local adress in ra6 daemon ip/ppp, ip/pppoe: handle ipv6 address auto-configuration, call ip/ ipconfig ip/ppp: Implement echo request timeout, terminate ip/ppp: allow specifying pair of local and remote address ip/ppp: bring back arp proxy, but with explicit -y flag ip/ppp: ipv6 support, cleanup routes, remove source filter, and more ip/ppp: just use mtu requested from the peer. ip/ppp: update the test-program ip/pppoe: Handle termination request, add retry-forever (-r) option ip/pppoe: aaand the code ;) ip/pptpd: use /fd instead of #d ip/tftpd: make syslog messages consistent ircrc: fix race with pipe causing hangup kbmap, kbremap: open kbmap file with OTRUNC and bugfixes kbmap: fix multi column display for smaller windows (thanks mkf) kbremap: switch keyboard maps with a keyboard shortcut ktrans: correct 'exit' text (thanks Keegan) ktrans: simplify kbdtap read loop ktrans: tests and various bug fixes lnfs: post to /srv instead of #s lock: Fix some memory leaks (thanks steve simon!) look: add -b for specifying numeric base mothra: support article and figure tags ndb/cs: Use ndbvalfmt() for quoting !ipinfo replies ndb/cs: avoid trailing spaces when printing ndb line ndb/cs: preserve ndbipinfo() line structure for !ipinfo, fix memory leak ndb/dns, ndb/cs: post to /srv instead of #s ndb/dns: allow specifying local ip addresses for serving dns ndb/dns: don't try to resolve local dns servers ndb/dns: procgetname(): use /proc instead of #p ndb/query, ndb/ipquery: use ndbvalfmt() ndb/query: add -i and -c flags unifying the functionality of ndb/ ipqeury ndb/query: avoid trailing spaces when printing ndb line structure netaudit: check none attach too netaudit: fix format, always state the fileserver tested netaudit: fix it for multiple results netaudit: perform a clean connection to test auth status netaudit: uncomment out warning about /srv/boot netaudit: use new ndb/query flags instead of ndb/ipquery paqfs: post to /srv, not #s patch: preserve permissions of original file when patching pic: error instead of crashing on nonexistent variables play: aac support play: use doom1.wad and dmid/opl3 for midi files by default plumb fileaddr: match with a trailing colon print, strtod: fix -0 and -NaN, respect verb flags when formatting rc: make flag f [+-] clear status on success rc: read standard-input from /fd/0 instead of '#d/0' rc: use /fd/0 for standard-input instead of '#d/0' in non-interactive mode read: add -r to read runes instead of bytes (thanks umbraticus) reform/shortcuts: use "mixfs" for volume control, fall back to "master" rio: fix crash when walking windowless fid (thanks ilikebreadtoomuch) rio: refactor the keyboardtap code a bit rio: sync keyboard state with active window on switch riow: add mod4+shift+q (delete current window) riow: fix kbdtap reading logic and make it a bit easier to comprehend riow: process the entire keyboard event at once skelfs: remove useless code (thanks Arne Meyer) sleep: implement long sleep snoopy: fix error handling for convM2DNS() snoopy: fix ipv6 option header parsing, add MLD messages to icmp6 sshnet: mount BEFORE /net (preserving /net/tls and /net/dns) sysinfo: use usbtree instead of just cating #u/usb/ctl sysupdate: only pull on 'front' branch tcs: add nfc and nfd output formats tee: remove unused variable (thanks mkf9) termrc: start reform/pm and reform/audio drivers test(1): add a missing space after -T tlsclient: keep stderr tlsclient: try /bin/$cmd for exec trampoline: Add -o option to send protocol-specific ctl string troff2html: handle more html attributes (thanks k0ga) truetypefs: fall back instead of crashing when could not get a glyph upas/Mail: don't start plumb procs in their own note groups upas/Mail: stop splitting headers upas/fs, imap4d: make setname() use /proc instead of #p upas/marshal: rfc2047-encode name of the sender (fixes non-ascii names in From: header) usbtree: a little helper to pretty print usb hubs and devices in a tree v8e: clean unused argument and tidy usage (thanks mkf) venti/srv: open /proc instead of #p vmx: read /dev/kbmap in new format vnc: fix farsi key symbols vncs: use procsetname() instead of rolling your own vt: add OSC 7 support for plumbing of remote files without mount/bind magic vt: ignore xterm Set/reset key modifier options escape sequence zuke: apply clipping after replay gain (some cases found in track mode) zuke: leave the fds alone (thanks deuteron) zuke: prefer "mix" volume control if available DOCUMENTATION /sys/doc: "Namespaces as Security Domains" /sys/doc: Remove some automatically generated PostScript files /sys/doc/nssec.ms: small grammar fixes (ok'd by moody) 2c(1), 2l(1), tl: add thumb to the list. fix thechar: '5' - 't' trampoline(8): fix typo a.out(6): document dynamically loadable modules ascii(1), utf(6): /lib/unicode - /lib/ucd/UnicodeData.txt authsrv(2): document readcons() function bar(1): explain the items separation better, mention the default separator char crop(1), memdraw(2): writememimage doesn't always write compressed images dial(1): document -o options factotum(4): fix typos (thanks sirjofri) games/dmid(1), games/opl3(1): formatting and update for streaming geometry(2): corrections and improvements git(1): The/ - The git(1): fix quoting in .IR git(1): update example to work with today's github gitfs(4): clean up junk in manpage history(1): update SOURCE, formatting ip(3): corrections to Udphdr field descriptions mouse(2): not quite a typo (thanks Alex Musolino) ndb(6): document " quoting ndb(8): document @rattr behaviour for ndb/query -i nusb(4): document a88179 support (thanks llamaa) plan9.ini(8): document the *debug option pushtls(2): client certificates got implemented in 2012 reform(1): fix a missing space char riow(1): no. I give up trying to understand wtf is wrong with rio riow(1): provide better examples of how to run it (thanks be0ba) riow(1): remove window(1) invocation riow(1): running via window(1) requires rfork n runecomp(2): clarify audience and history segment(3): Fix typo srv(3): improve the example (thanks mcf) srv(3): provide /srv/clone example srv(3): use /srv instead of #s in SYNOPSIS ssh(1): fix usage and document -X flag ssh(1): relies -> relays (thanks sigrid) upasfs(4): remove self-reference and drop trailing comma (thanks fig) zuke(1): replace Beats 'n Breaks icy url with aNONradio OTHER mkfiles: add 'mk test' support cmd/mkfile: don't recurse into test/ when looping cmd/mkfile: make tests depend on cmd build /lib/dict: improve downloading scripts /lib/font/bit/vga: 9: it looks bad but it is there /lib/glass: nfc normalize /lib/namespace: add bind -c #s$srvspec /srv bind /lib/namespace: bind devtls to /net, mount /root after binding /srv joker was here /lib/rob: I find this situation unsatisfactory. /lib/rsc: "Go is the only software with telemetry you don't need to worry about." /lib/rsc: I am not suggesting that instrumentation be added bsc: My plan is to not do any telemetry on Plan 9. /lib/rsc: The plan9 port is becoming increasingly difficult to maintain and holds back non-plan9 development. /lib/theo: I don't care if code is old. /lib/theo: The future doesn't get better if you demand backwards compatibility forever. /lib/theo: The invention of interrupts was a bad idea. /lib/troll: Running Rust code on Plan 9 using webassembly /lib/troll: [9fans] How to access this 9fans group from 9front? /lib/unicode - /lib/ucd standard farsi keymap back 9FRONT "THE GOLDEN AGE OF BALLOONING" RELEASED (2022/10/31) front Notable changes in this release: * MNT Reform laptop is a first class citizen * added bar(1), ktrans(1), and riow(1) * now includes free doom(1) wad * scroll down for more DOWNLOAD 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. 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. http://9front.org/iso/ 9front-9442.0e66f87316e571f7edf5274369ec69a5905507aa.386.iso.gz.torrent http://9front.org/iso/ 9front-9442.0e66f87316e571f7edf5274369ec69a5905507aa.amd64.iso.gz.torrent http://9front.org/iso/ 9front-9442.0e66f87316e571f7edf5274369ec69a5905507aa.pi.img.gz.torrent http://9front.org/iso/ 9front-9442.0e66f87316e571f7edf5274369ec69a5905507aa.pi3.img.gz.torrent http://9front.org/iso/ 9front-9442.0e66f87316e571f7edf5274369ec69a5905507aa.reform.img.gz.torrent ; 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 MIRRORS http://9front.org/iso/ http://r-36.net/9front/ http://lux.felloff.net/usr/cinap_lenrek/9front/ https://ftp.cc.uoc.gr/mirrors/9front/ GIT REPOSITORY http://git.9front.org/plan9front/plan9front/HEAD/info.html DASH 1 MANUAL http://fqa.9front.org/dash1.goldenageofballooning.pdf dash 1 manual: http://9front.org/propaganda/books SONGS by cinap http://9front.org/mp3/fal4.mp3 THANKS Oz Oscar Zoroaster Phadrig Isaac Norman Henkle Emmannuel Ambroise Diggs KERNEL AND DRIVERS sticker1 acpi: /mnt/acpi - /mnt/pm aux/acpi, aux/imx8pm: stats(1) expects two numbers for each cputemp reading aux/acpi: fix division by zero (thanks umbraticus) aux/acpi: mount -a on /dev instead of /mnt/pm; ctl - pmctl aux/acpi: simplify/rework; support "power off" via pmctl aux/imx8pm: add core/gpu/vpu temp read support (kernel counterpart is TBD) aux/imx8pm: add relative brightness setting (-+N), useful for key bindings aux/imx8pm: calibrate per documentation (but with questionable values) aux/imx8pm: hide gpu and vpu from cputemp aux/kbdfs, nusb/kb: add basic media keys support; add /dev/hidNctl to change repeat/delay; fix a race condition aux/kbdfs: correct comment regarding 0x79 and 0x7b codes. aux/vga: misc. igfx fixes for displayport aux/wm8960: audio controls fs for MNT Reform aux/wm8960: disable speaker boost to avoid clipping aux/wm8960: do the math aux/wm8960: expose 3d stereo controls aux/wm8960: fix chopped audio on the speakers with high volume aux/wm8960: make jack detect work; enable thermal shutdown; fix fractional div part aux/wm8960: provide hardcoded "speed" in volume file aux/wm8960: reduce popping, clean up aux/wm8960: relative volume adjustment through the fs interface aux/wm8960: run as master and provide more precise clock; add oneshot mode (no fs) aux/wm8960: support 48kHz via "speed" verb bind, mount: stop returning mount id devarch: add name for VIA C7 Eden devi2c: add generic i2c bus driver devip: arp: don't leak data in the padding of arp replies devip: arp: make sure arpresolve() only returns single packet devip: arp: move arp expire logic into own function devip: do tcp mss clamping when forwarding packets devip: fix ipv6 mss clamping devip: get rid of Ipifc.mintu devip: less stupid hnputs_csum() devip: make Rproxy flag explicit devip: replicate the nat-flag (Rtrans) when superceding interface route devip: use port/netif.h constants for ethermedium devpci: provide a #$ device for PCI config access devvga: fix race condition between writes to vgactl ether8169: support for RTL8168EP chips etherimx: fix link negotiation etherimx: set iomux pad configiguration etheriwl: add 7265 device id ethervgbe: enable auto-negotiation and ipv6 (thanks arne) igfx: Add support for Xeon E3-1200v3 imx8/gpio: add interrupt handlers support imx8/gpio: allow 0 as "no-op" gpio pin imx8/gpio: missed change in the previous commit imx8/gpio: use u32int for bit mask imx8/lcd: disable the bridge output on blank imx8/lcd: reduce flicker imx8/lcd: rework screen blanking imx8/lcd: set iomux pad configuration imx8/lcd: silly work around for display instability imx8/lcd: toggle lcdif on blankscreen imx8/pm: provide acpi(1)-compatible battery readings imx8/sai, aux/wm8960: expose jack detect status in #A/audiostat imx8/sai: do not strangle the core with interrupts on underruns imx8/sai: double the delay; set clock explicitly imx8/sai: flush the ring on close to avoid garbage leftovers on restarts imx8/sai: increase watermark, run in slave mode, continue on fifo errors imx8/sai: reduce watermark; use the fifo size reported by the platform; remove useless stuff imx8/usbxhci: bring usb out of reset imx8/usbxhciimx: fix a set and not used warning imx8/usdhc: cleanup, set pad configuration imx8/usdhc: implement highspeed mode (50Mhz) imx8/usdhc: work around broken multi-write for now imx8: add a semi-working SAI2 audio driver imx8: add aux/imx8pm with lcd brightness control imx8: add gpio helper gpioout()/gpioin() imx8: add i2c bus driver imx8: add iomuxpad() helper for pad and mux control imx8: add simple i2c rtc driver for NXP PCF8523 imx8: add work in progress i.MX8MQ kernel for the mntreform2 laptop imx8: add xhci driver for the soc imx8: better syntax for iomuxpad() options using ~ for negation imx8: ccm: fix sai copy-paste typos imx8: cleanup mem.h imx8: detect cpu lcycles() frequency imx8: enable/expose tmu imx8: fix install target imx8: fix reduced lcdif pix clk workaround by enabling underflow recovery imx8: get mac address from OTP rom imx8: gic: irqenable - intrenable imx8: 1.6Ghz turbo imx8: implement /dev/reboot support imx8: implement psci calls for system reset and multicore startup imx8: invalidate l2 cache as well (fixes not fully cleared BSS on cold boot) imx8: less stupid pci interrupt handler imx8: load a plan9.ini at CONFADDR 0x40010000 imx8: mainscreen turn on! imx8: make gpc functionality available with a powerup() function imx8: pcie and nvme support imx8: port usdhc driver (from bcm/sdhc) for external sdcard imx8: provide iomuxgpr() function to access iomuxc's gpr's imx8: qos magic to avoid interference between pcie and lcdif imx8: reset lcdif and sn65sdi86 bridge before init imx8: set virtual timer offset to zero for all cores imx8: turn backlight off when blanking kernel: add /rc to devroot kernel: add chdev command to devcons kernel: add dev dtracy provider. kernel: add devskel for pc and pc64 kernel: allocate notes in heap kernel: allow kiloprocs - allocate procs lazily kernel: be more careful about argc for /dev/drivers writes kernel: bootrc: add bootloop= kernel: cleanup unused fields from devpipe kernel: compute available kernel pages using sizeof(Proc*) kernel: consistently add devbridge and netdevmedium to kernel configs kernel: devskel: use RWlock kernel: devwalk: correct debug print kernel: disable wstat for devpipe kernel: exclude ppc kernels from all target kernel: fix freeb() for custom pools kernel: fix noteid change race condition from devproc while forking (thanks joe7) kernel: get rid of Proc.kstack kernel: half NERR, refcount Note's to avoid excessive allocations for postnotepg() kernel: remove dead case from devpipe kernel: simplify notify() adding common popnote() function kernel: use 64 bits for mountids mkdevc: fix dtracy-disabled builds (thanks ori) nusb/disk: always allow raw scsi request (even without media present) nusb/disk: fix interactions with libdisk nusb/kb, aux/kbdfs: add brightness down/up media keys nusb/kb: add "rawon"/"rawoff" to switch ctl fid into raw report output mode nusb/kb: fix scancode for right ctl nusb/kb: support Wu Bian Huan , Bian Huan , and 'hiragana / katakana' keys nusb/ptp: increase payload nusb/usbd: retry opendevtata() a few times on attach (work around mnt-reform trackball) pc/rtc: make sure string is NUL terminates for rtc write pc64: half KSTACK to 8k. reform/audio: remove DAC vol limit; discharge HP caps on init reform/audio: remove HP caps discharge; faster hp/spk switch and (un) mute response reform/audio: use soft-mute to toggle DAC reform/pm: add keyboard light level controlling to /dev/light reform/pm: calculate time to full (dis)charge; low-warn capacity; endless loop protection reform/pm: kbdoled: allow any size/depth of uncompressed image - convert ourselves reform/pm: kbdoled: clear the OLED on zero-length write reform/pm: lpc comms: increase delays to 80ms reform/pm: lpccall: read as much as possible after the command; clean up reform/pm: measure CPU temperature only when requested, disable monitoring right away reform/pm: oops. do not invert reform/pm: power off via the keyboard first reform/pm: provide /dev/kbdoled to display a 126x32x1 bitmap on the keyboard OLED reform/pm: serve lpc readouts over a queue to avoid lockups on other requests reform/shortcuts: change to use available media keys via Hyper reform/shortcuts: negative step values reform/shortcuts: use Kmod4+esc to (un)mute the audio reform/shortcuts: use media keys for LCD brightness control reform: add pmctl to read more info and to turn power rails off; manpages reform: add reform/shortcuts reform: only override console=0 when no plan9.ini is passed reform: tweak manpage and reform/audio a bit sdnvme: add dmaflush() instructions, move to port/ sdnvme: avoid "empty if body" warning sdnvme: correct mode/serial/firmware string lengths sdnvme: fix missing unlock() in submit queue full case sysproc: raise limit on #! lines, and allow quoted args tcpmssclamp: only check the first ipv4 fragment for tcp header tcpmssclamp: pass correct size tcpmssclamp() uartimx: fix interrupts usb: fix ehci isochronous "in" split transactions usbsdmux: Add program to control usb-sd-mux device usbxhci: eliminate "set but not used" warning usbxhciimx: set iomux pad configuration zynq: correctly specify dolock flag to postnote() COMPILERS AND DEBUGGERS sticker2 ar: print output to stdout (thanks uramekus) cc: take our pickle out of the peephole dtracy: correctly look up aggregate keys dtracy: make timer probes run in interrupt context LIBRARIES sticker3 ape/bsd/bind.c, ape/bsd/listen.c: Set local IP. ape/bsd/bind.c, ape/bsd/listen.c: Use _syserrno. ape/bsd/bind.c: Do not issue "bind *". ape/bsd/bind.c: Do not pretend that the port could be negative. ape/bsd/listen.c: Do not try to issue "announce *". ape/bsd/listen.c: Drop "bind 0". ape: fix warning building mkstemp lib9p: double the buffer for /srv/$service libFLAC: update 1.3.4 - 1.4.0 libc: shorten strchr and runestrchr libc: tmdate: provide better parse errors libc: tmparse: remove incorrect isalpha definition libdraw: bikeshed formatting libdtracy: fix wrong key size comparsion in dtarecord() libflac: work around kencc running out of registers on arm libndb: increase buffer size to allow longer lines libtags: opus/vorbis: make sure to get to the last frame to have the full duration libtags: pick R128 gain libtags: try other formats after id3v2 is found libtags: vorbis, opus: ignore tags past the ogg page PROGRAMS sticker4 audio/flacdec: don't run pcmconv on s16r44100c2 audio/mkplist: don't fail entirely if a directory is not accessible audio/mkplist: leverage parallelism audio/zuke: "r" key - "repeat one" mode, based on the patch from qwx (thanks) audio/zuke: add slow scrolling audio/zuke: basic replay gain support audio/zuke: clear out enter() prompt image if search failed audio/zuke: clip scrolling to the edges audio/zuke: display currently enabled modes when stopped audio/zuke: don't blink the mouse pointer while idling audio/zuke: don't fall into the rathole audio/zuke: faster redraw without flashing - XRGB32 with backing image audio/zuke: fix newly introduced bugs audio/zuke: fix off-by-one in playlist loading; initialize scrolling to avoid jump on first track audio/zuke: fix playlist plumbing while in shuffled mode audio/zuke: fix repeat and replay gain modes not showing when playing network streams audio/zuke: fix seeking with mouse audio/zuke: fix wrong string width of playback position calculated on network streams audio/zuke: fix/enable playlist loading via plumber "audio" port audio/zuke: kill off decoders; use more OCEXEC audio/zuke: less garbage dereferencing, stop interrupting decoders audio/zuke: properly report empty playlist error audio/zuke: put the search input on its own window audio/zuke: redraw as soon as search input is enter (not only cancelled); more chance for non-blocking redraw audio/zuke: redraw in a separate thread - no audio dropouts on scrolling, more responsive audio/zuke: rewrite rendering logic audio/zuke: seekto: vlong, unsigned doesn't work well for negative numbers... audio/zuke: update ICY title from the stream metadata while playing audio/zuke: use digits to enter exact seek position audio/zuke: use percentile to calculate relative widths of columns auth/acmed: remove obsolete ip/acmed.c auth/box: -s, -. flags auth/box: bind in the binary by default auth/box: build restricted namespaces using components from the parent. auth/box: don't bother switching to none auth/box: preserve cwd name, but clear it out auth/newns: add chdev command aux/9pcon: add support for Rerror in assert mode aux/9pcon: add assert flag aux/9pcon: style aux/aout2uimage: fix text section size rounding (for data section alignment) aux/listen: Allow per service namespace files aux/listen: remove Service struct aux/listen: remove argument clutter aux/listen: remove special cases for depreciated datakit aux/listen: remove unused cpu global aux/txt2uimage: helper for generating uimage script files awk: correct incoherent cell in assignment (thanks smj, mpinjr) awk: initialize records fully in recinit() bar: a status bar program bar: leave last aux on screen on eof cdfs: handle block sizes correctly chdev: change kernel driver access chdev: dont pollute environment cwfs: fix iounit negotiation delkey: stop being clever about which factotum to use diff: avoid empty hunks when there are no changes diff: clean up some comments diff: fix style diff: retain original file names disk/mkext: fix nil dereference in arg parsing exportfs: fix clunk of first attach with -S fshalt: allow passing a kernel to 'fshalt -r' fshalt: optionally use /dev/pmctl to shut down the machine fshalt: remove unused variable fshalt: shut up about #P not being present fshalt: support relative paths to the new kernel g: add .ha (Hare) games/dmid: don't buffer output games/doom: add "m_forward" cvar to disable vertical motion move; actually implement use_mouse games/doom: add optional autorun games/doom: fix glitchy mouse movement games/doom: raise max scale factor for 4k games/doom: raise static limits games/doom: rename mouse use key for what it is and remove double click git/commit: fix typo in if statement git/commit: user better defaults for username git/common.rc: create required directories git/compat: expand to cover go bootstrap git/compat: fix 'git init -bare' and 'git ls-remote' (thanks floren) git/compat: fix init git/export: use native diff git/get: keep sending what we have until we get an ack git/hist: add command to show history of files git/hist: fix with repository other than / git/hist: make it work in subdirectories git/import: fix handling relative paths git/import: remove removed files from index after commit git/import: squash leading/trailing/consecutive blanks and strip trailing space git/import: use patch(1) git/log: fix log count git/log: only count the messages we show when limiting counts git/log: support -n option to restrict log counts git/merge: correctly preserve permissions when merging git/merge: preserve exec bit correctly git/pack: add support for skipping ssh signatures git/pull: fetch all branches (please test) git/pull: remove '-b' and '-a' option git/query: implement range using paint() git/rebase: allow rebase without a clean tree git/rebase: remove unnecessary use of @ operator git/send: fill in 'theirs' object, even if we miss it git/serve: log correct error message git/walk: don't list untracked files after removal git: clear status on whoami success git: improve error on short read git: performance enhancements git: rename internal 'git/fetch' plumbing to 'git/get' history: Rewrite history 9front was first hjfs: do not truncate lines on /adm/users write icanhasvmx: our vmx requires unrestricted guest too ip/dhcpd: properly skip past ipv6 addresses in addrsopt ip/dhcpd: quiet up syslog ip/ftpd: use chdev in /lib/namespace.ftp ip/ipconfig: refactor plan9 vendor parsing ip/ipconfig: we do not want icmp advice errors on our dhcp connection ip/sol: handle timeout on password entry for digest auth ip/tinc: fix ping pong racing causing recalcs and deleting nodes ip/torrent: fix silly readn() error check (thanks pr) ktrans: cast switch statement for arm ktrans: clean headers ktrans: don't leak on conflicting jisho lines ktrans: gui and man page rework ktrans: listen on lang port for plumber ktrans: revisit grammer handling and do some spring cleaning ktrans: tow inside the environment ktrans: use stdio by default ktrans: xin chao ktrans: konnichiha! ktrans: Ni Hao ktrans: Xin shiiJiang ri make: command's output plumbable man: turn on troff -mnihongo if JP font is used mothra: enable mousewheel scrolling in history list mothra: get rid of soft hyphens mothra: make scrollbar style consistent with other applications patch: apply patches atomically patch: fix bounds check for hunk scan in forward direction patch: fix consecutive deletions patch: fix deletion of files patch: fix line bounds check when searching for hunk patch: fix line calculation to avoid redundant searches patch: fix uninitialized Fbuf during dry run patch: handle stripped/empty lines mid-hunk patch: implement a new, simpler patch program to replace ape/patch patch: improve hunk search patch: make slurp() return void pc: remove -n option and check if stdin is cons instead plot: fix disc and circle operations rc: squelch 'Write error' warning rcpu: show error when we auth but don't connect rio: /dev/label should just ignore offset rio: add 'none' attach option to wsys rio: add /dev/kbdtap rio: close the display on the way out rio: correct error message rio: correct tap code rio: ensure single reader and single writer for kbdtap rio: kbdtap deadlocks are verboden rio: kbdtap style tweak rio: make it harder to deadlock from kbdtap rio: more pointy edges with none attach rio: prevent some more keyboard lockups rio: require a confirmation for Exit rio: return 'global' size for none /dev/wctl read (thanks umbraticus) rio: show Exit in subrios riow: fix uninitialized field riow: handle ckKz properly (thanks qwx); better sticky mode (label-dependent) riow: keyboard-controller for rio sam: ignore autoindent in cmd window skelfs: dont mount if not asked to snoopy: add "ippkt" protocol to demux ip packet interfaces without media header. spf: limit recursion depth to prevent ddos (thanks tijay, iashiq5) splitmbox: split a mailbox into mdir format (thanks, umbraticus) src: 'test -x' instead of 'test -f' src: search for binaries in path, not random places ssh: send interrupts even when we're not in raw mode togif: fix a typo - don't free the same image we're going to use upas/Mail: check if plumb attrs are nil upas/dkim: dkim signing for upas upas/fs/imap.c: additional sanity checking during Expunge to avoid suicide upas/fs: clear errstr after chkunix upas/fs: support date format used in RFC 4155 mbox files vncv: allow the use of the Mod4 (Super) key vt: fix home/end sequences in xterm mode vt: increase buffer size vt: quote special characters in command arguments walk: include qid version in deduplication window: add wsys 'none' attach to attempted wctl search window: fix regression w.r.t subrios DOCUMENTATION sticker6 9pqueue(2): fix typo auth(8): bugs have been squashed auth(8): specify what gets put into the environemnt with '-s' auth(8): sync usage messages for auth/box camv(1), nusb(4): add more details on camera operation cpu(1): why did we have an empty file? (thanks llamaa) fork(2): Document RFNOMNT edge cases. fork(2): fix commas in RFNOMNT references fork(2): fix parens in RFNOMNT references (thanks Amavect) fshalt(8): document -r kernelpath feature git(1), gitfs(4): fix style and typos (thanks schwindl) git(1): remove documentation for deleted '-b' option (thanks llamaa) i2c(3): Add documentation for kernels devi2c i2c(3): fix typos, thanks quinq import(4), oexportfs(4): more empty files removed. imx8pm(8): add manpage ip(3): Discuss local IP addresses for "announce" and "bind". ktrans(1): added a history section (thanks moody!) ktrans(1): documented $jisho and made some improvements. (thanks to Kenji Okamoto, cinap, BurnZez, romi and Aaron for your work on ktrans!) ktrans(1): remove README files ktrans(1): typo ls(1): Make man page synopsis consistent with usage output mpc(1): fix typo nusb(4), camv(1): add nusb/cam description, introduce camv manpage paqfs(4): fix paqfs manpage patch(1): add the manpage patch(1): remove bell labs patch scripts patch(1): remove options that don't exist reform(1): add a note about battery readings rio(4): talk about kbdtap riow(1): remove the filter warning as it passes unknown keys now rsa(2): fix X509reqtoRSApub(...) signature sam(1): clarify "" works on dot just like "look" skel(3): - skelfs(4) sol(8): fix example (vncv vs vnc) tlssrv(8): update example path to imap4d wm8960(8): add manpage wm8960(8): fix wrong source and see also zuke(1): document current track printout on stdout OTHER sticker5 /lib/font/bit/pelm: use Korean fonts /lib/font/bit/terminus: remove duplicate OFL license and refer to / lib/legal /lib/font/bit: add Adobe Source Hangul Sans /lib/ktrans: added tools to fetch skk dicts and convert them to ktrans jishos /lib/rob: I told this anecdote in an internal talk at Google. You might have seen it then. /lib/rob: Sockets are just so unpleasant /lib/theo: I want to say more. /lib/theo: Isn't that bad? /lib/theo: The man page says "don't do that". /lib/theo: This is a bug in a diff I put into snapshots. /lib/troll: 9 is not nginx-level scale /lib/troll: Plan /lib/troll: [9fans] Power mac support /lib/troll: plan9 secret society /rc/bin/9fs: case 9front: restore extra/ and iso/ /rc/bin/9fs: fix case 9config for new contrib.9front.org server. /rc/bin: amend usage misdirections (thanks umbraticus) /sys/games/lib/fortunes: Use a client written in Go? - Skip Tavakkolian /sys/lib/dist/mkfile: add target for mnt-reform image /sys/lib/dist/mkfile: create a default plan9.ini for reform image /sys/lib/kbmap/jp: correct Zenkaku control character /sys/man/8/smtp: document missing flags (thanks, chris) /sys/man: fix minor complaints from checkman /sys/src/boot/reform/mkfile: download official u-boot for the mnt-reform /sys/src/boot/reform: generate boot.scr /sys/src/cmd/mkfile: append to $NOMK so user can provide their own florenate: not funny fontsel: Japanese sample text fontsel: a font selector program fontsel: sample Korean text inst/prepdisk: fix invocations of test(1) inst: make bootsetup work for on pc architectures kbmap: add latin american keymap (thanks ssf) move and rename MNT Reform 2 support utilies, cat manpages into one remove empty /sys/src/cmd/cpu.c update /lib/pci valley, feminize: these jokes suck. vga font: add 23ed-23ef, 23f4-23fa, some of which are used in bar(1) manpage back 9FRONT "SURVIVAL EVASION AND ESCAPE" RELEASED (2022/04/13) front Main changes of this release: * acmed, x509 certificate renewal automation * rc, supporting better error reporting, here documents (big rewrite) * vlan support in devbridge * source address translation nat support in devip * ip/sol, intel amt serial-over-lan console * removal of ssl, cpu and import * fix auth/as, thanks 4chan, th4nks. DOWNLOAD 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. 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. http://9front.org/iso/ 9front-8963.f84cf1e60427675514fb056cc1723e45da01e043.386.iso.gz.torrent http://9front.org/iso/ 9front-8963.f84cf1e60427675514fb056cc1723e45da01e043.amd64.iso.gz.torrent http://9front.org/iso/ 9front-8963.f84cf1e60427675514fb056cc1723e45da01e043.pi.img.gz.torrent http://9front.org/iso/ 9front-8963.f84cf1e60427675514fb056cc1723e45da01e043.pi3.img.gz.torrent ; 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 MIRRORS http://9front.org/iso/ http://r-36.net/9front/ http://lux.felloff.net/usr/cinap_lenrek/9front/ https://ftp.cc.uoc.gr/mirrors/9front/ GIT REPOSITORY http://git.9front.org/plan9front/plan9front/HEAD/info.html DASH 1 MANUAL http://fqa.9front.org/dash1.survivalevasionandescape.pdf dash 1 manual: http://9front.org/propaganda/books SONGS by sl http://9front.org/mp3/war_with_rome.mp3 THANKS igor (fast reaction) KERNEL AND DRIVERS 9boot: fix isowalk() for directories spanning multiple sectors archacpi: leave acpi enabled with *acpi= arm64: use generic timer virtual counter for cycles() audiohda: Add DID for Intel 200 Series PCH HD Audio audiohda: add support for intel cannon point-lp (t490s) audiohda: add support for intel comet lake-s, fix typo audiohda: add ztom z36/z37 device id audiohda: fix syntax error aux/wacom: fix race in read queue bcm: fix rebootcode linkage bcm/emmc: remove unused cardr wakeup(), use MACHP(0) as tick reference bcm64/sdhc: add *emmc2bus kernel parameter to set dma dram bus address bcm64: make the kernel use virtual timer counter register for cycles () bcm64: parse the emmc2bus/dma-ranges device-tree property and provide *emmc2bus kernel parameter devbridge: fix vlan range parsing devbridge: implement experimental vlan support devbridge: improve locking, unbind ports automatically on read error and more... devdraw: printmesg: implement "z" fmt arg (safe since printmesg is disabled) devenv: allow environment total size of up to 1MB devgpio: make reading ctl file return 0 bytes devip: add comment to ip.h explaining Routehint struct devip: allow setting the "trans" flag on a logical interface devip: cache arp entry in Routehint devip: dont hold ifc wlock during medium bind/unbind devip: implement ipv4 arp timeout with icmp host unreachable notification devip: implement network address translation routes devip: improve tcp error handling for ipoput devip: properly rlock() the routelock for v4lookup() and v6lookup() devip: use better hashipa() macro, use RWlock for arp cache devip: use top bit (type) | subnet-id for V6H() route hash macro devsd: cache SDunit pointer in Chan.aux, improve error handling devssl, cpu, import, oexportfs: delete devswap: improve setswapchan() devtls: fix bwrite memory leak when channel stops being open devtls: implement "hangup" ctl message devtls: reject zero length records (thanks sigrid) devuart: allow serial console on late detected uarts devvmx: skip tsc offset writing if CPU doesn't support it ether8169: support rtl8402 variant ether82563: add 0x15bd i219-lm variant (thanks crab1) ether82563: add pci id for ethernet on dell optiplex 7090 micro (thanks leimy) ether82563: add pci id for i219-v on t490s ether82598: add pci device id for ixgbe i52899 (thanks izaki) etheriwl: add did for Intel Centrino Advanced-N + WiMAX 6250 (thanks Nessa) etheriwl: add support for wireless ac 7260 (thanks kemal!) etheriwl: fix botched merge... etheriwl: fixes for 7260 ac igfx: add TypeILK, since it differs slightly from SNB igfx: add x1 carbon 3rd gen (broadwell) igfx: fix FDI link training on ironlake igfx: fix some typos in comments igfx: maintain single/double-channel LVDS mode from BIOS igfx: Support for igfx on Celeron(r) 2957U (thanks Lorenzo Bivens) igfx: add x1 carbon 3rd gen igfx: add missing pci did's for hwblank for known mobile models kernel/rdb: need to reenable polling mode on the uart, remove cruft kernel: add extra negative and power-of-two check to pcibarsize() kernel: call freebroken() for kproc() when out of processes kernel: dont block allocating kstack for new processes kernel: ensure that all accesses to Mhead.mount is done with Mhead.lock acquired kernel: fix off by one for $cputype buffer (thanks anthony martin) kernel: fix stat bugs kernel: increase bootfs.paq compression level and blocksize kernel: make Page.txtflush into an array kernel: make growfd(), findfreefd() and newfd2() static kernel: move waserror() macro to port/portfns.h kernel: page counts a ulong, not usize kernel: return error from sysrfork instead of waiting and retrying kernel: simplify /boot/boot: 28K down to less than 4K. kernel: support large 64-bit pci membars, increase pc64 VMAPSIZE to 1TB kbdfs: allow X and x to be used not just for hex composition nusb: Fix handling of interface altsetting. nusb/audio: use setalt(), make sure endpoint has right direction. nusb/cam: fix mistake (nil vs -1) nusb/cam: use setalt() nusb/disk: use setalt(), print argv0 in prints instead of "disk:" nusb/ether: remove csp check for rndis, already done in nusbrc nusb/ether: use setalt() nusb/lib: provide a setalt() function to set the interface to its altsetting nusb/serial: fix pl2303 usbcmd error checks nusb/usbd: use per hname collision counter instead of device address to resolve collisions nusbrc: fix FTDI detection sdide: add pci id for AMT IDE-r controller on x230 sdmmc: do card init in a background process after the first try uartpci: AMT SOL Redirection interface (x200s) uartpci: add serial-over-lan uart from x230/AMT usbxhci: endpoint address needs to be masked with Epmax from endpoint number usbxhci: xhcirecover proc does not need to check status every 10ms vga: add eeepc1005ha graphics (thanks Andrew Eggenberger) vga: return modes according to EDID timing priority order vga: use vlong for pci bar size vgadb: add 3rd gen intel hd graphics did (thanks mora) vgadb: add cyber938x bios offset for cyber 9525 (thanks lyndsay) COMPILERS AND DEBUGGERS /sys/lib/acid/pool: format addresses using A format, instead of X (32 bit) 6c: extern registers must be considered used on return cc: do not expand function-like macros for non-function invocations cc: fix incorrect octal range condition in mpatov reduce: use if() to test for exit status of pipeline LIBRARIES ape: add missing idn2utf, utf2idn to lib9 ape: allow exporting rc functions in environ[] ape: export mktemp() in when _BSD_SOURCE is set ape: fix wrong write size for _assert() libFLAC: update to 1.3.4 libaml: implement ObjectType instruction (thanks sigrid) libaml: implement ToString instruction libaml: resolve refs in ObjectType instruction libc: change usize to 64-bit for amd64 and arm64, make memory(2) functions use usize libc: fix overflow of domain component rune buffer for idn2utf() libc: idn2utf()/utf2idn(): check for < 1 buffer, can't insert terminating NUL. libc: use usize for sbrk() increment libc: qsort: allow usize-sized arrays. libndb: move mkptrname() into libndb to avoid duplication libpanel: rename to match clean rule libsec: decode international domain names in certificat subject, fix overflow botch libsec: fix bugs in tls extension handling (thanks kemal) libsec: fix operator precedence bugs (thanks kemal) libsec: fix wrong assert condition (introduced in 775a4bea4386c12067057de0e56dd8baa34f43ec) libsec: fix wrong tls1.0 prf regression libsec: handle international domain names in certificate request libsec: no point in checking for "xn-" marker, just call idn2utf(). libtags: flac: check sample rate before dividing by zero; also check number of channels libtags: id3v2: make sure extra id3 tag does not cause infinite loop libtags: m4a: do not div by zero libtags: no tags is still fine if format is known libtags: opus: fix duration on truncated files libtags: wav: do not div by zero libthread: deal with schedfork() and schedexec() returning -1 libthread: fix debug prints, simplify libthread: remove more garbage: threadnotefd, threadpasserpid. libthread: remove unused _workerdata() prototype from threadimpl.h libthread: remove unused skip() function PROGRAMS 9fs: 9front.org files now live on port 9000. 9fs: remove case 9bugs (defunct) 9fs: update case 9contrib for new server 9fs: update case 9front acme: don't let tag button draw over tag border. acme: fix hiding of top windows when loading a dump file (thanks Xiao-Yong) acme: fix leaking memory allocated by getenv("font") acme: fix plumb message leaks (thanks igor) acme: fix window and scrollbar display glitches at bottom fringe of column acme: remove superfluous print arguments (patch from plan9port) acmed: add external command flag -e, improvements, bugs acmed: handle international domain names acmed: import acme (RFC8555) client acmed: move from ip/ to auth/ acmed: pass original utf8 subject domain to challengefn, simplify acmed: reject -t flag when -e is given, dup stderr to stdout of -e cmd acmed: remove unused define acmed: tokenize domains from subject also with spaces (fixed multidom cert) acne/Mail: fix double-free (Bterm() in mesgshow()) aescbc: flush before exit and report an error (if any) ape/mkstemp: better options ape/psh: provide /dev/fd audio/flacdec: handle read errors properly to avoid endless looping saturating cpu auth/as: fix wrong filesystem permissions due to wrong factotum being attached auth/rsa2jwk: add code to produce jwk rsa keys aux/cddb: include album name and correct track number key awk: fix off-by-one string buffer overflow from gsub cat: remove stupid long cast cmd/mkfile: major cleanup date: remove '-m' flag diff: fix -u when comparing identical files diff: revert last change, this breaks git/diff exportfs, oexportfs, iostats: make -d log to stderr exportfs: make -d log to stderr exportfs: revert e524e8d65a7573c46d7beb49e77bfc2d55a5563d flacdec: do not loop forever on write/decode errors g: fix duplicate files with directory argument g: show all file names when grepping g: use xargs instead of finding complete file list before greping games/gb: minor style fixes games/gb: various RTC fixes gba: fix flash chip id for 128k and add setting git/branch: fix order of operations (thanks qwx) git/branch: fix typo in error message git/branch: make '-n' use HEAD when '-b' unspecified git/branch: remove duplicate assignment of dirtypaths git/commit: remove trailing 'subst -g' git/commit: squelch error when run outside repository git/compat: add support for ls-remote [-d] git/diff: clean up diffs git/export: use 'date -f' instead of 'date -m' git/fetch: be more robust git/fetch: fix overly eager 's/pack/idx/g' in refactor git/fetch: improve detection of dumb http protocol git/fetch: use read for reading packfiles instead of readn git/fs: remove trailing null bytes from parent file (thanks mcf) git/pack: check pf->pack for nil before Bterming it git/query: fix spurious merge requests git/query: leave range commits in topological order git/query: refactor graph painting algorithm (findtwixt, lca) git/revert: fix empty invocation git/revert: update modification time on revert git/save: leave submodules unmangled git/serve: add a '\n' after HEAD git/serve: don't show progress when not interactive git/serve: one more silencing of non-interactive prints git/{diff,import}: make it easier to handle manually-asembled patch emails git: better handling of absolute paths, regex metachars git: fetch all branches by default. git: fix non-interruptible temporary warning git: fix typo in git/log output git: fully init objq git: improve pack cache heuristics git: revert c947bf808 - it triggers a bug. git: separate author and committer git: size cache in bytes, not objects git: use commit date as traversal hint instead of author date git: when stealing from the old packs list, keep what we stole. gzip, bzip2: add -n flag to suppress modification timestamp hjfs: fix group ownership of home dirs created by newuser command iostats: bind /srv into the namespace, its magic ip/dhcpd: ignore icmp advice ip/dhcpd: ignore ipv6 addresses when looking up static binding ip/sol: add intel AMT serial-over-lan console program ip/sol: use httpdigest authentication ip/sol: kvm (vnc) redirect, bring back plain authentication as a fallback (when unsupported) ip/tftpd: add -m argument for name substitution using regular expressions joy: joystick script for all emulators, and docs mixfs: add reading (audio loopback) mklatin: fix compose sequences starting with a space char ( and i) mkplist: add -s option to enable "simple" sort (thanks qwx) mothra: fix rendering of tag ndb/dns: fix ndb serialization of RR* ndb/dns: fix wrong ndb attribute "txtrr" vs. "txt" for caching server ndb/dns: handle txt rr strings as binary, remove nullrr ndb code ndb/dns: implement caa record type in ndb ndb/dns: make dblookup() consistent with cachedb operation, bring back txtrr for compatibility ndb/dns: use correct attribute when serializing caa record in ndb format ndb/dns: use decimal encoding for txt rr string escapes ndb/dnsdebug: dont duplicate rrfmt() ndb/dnsdebug: make usage flags consistent ndb/dnsquery: make ! bang work with reverse lookups, document in ndb (8) netaudit: fix auth check, can have multiple auth servers! netaudit, ndb(6): the dom= attribute in ndb should be specified without the trailing period netaudit: check for sys= attribute to be free of periods netaudit: simplify page: performance fixes pc: do not access out of bounds array element plumber: remove $plumbsrv, add optional srvname, usage check rc-httpd: fold two sed calls into one when computing location rc-httpd/handlers/error: restore fn 400 (thanks, qeed) rc-httpd/handlers/{dir-index, serve-static}: commit the correct files this time (thanks, igor) rc-httpd/handlers/{dir-index, serve-static}: fix directory traversal bug (thanks, igor) rc-httpd/{rc-httpd, handlers/error}: do some minimal sanitization on $SERVER_NAME before handing it off to select-handler. rc: Xerror is not a instruction, remove from pfnc rc: add Xhereq instruction to trace rc: add err != nil check for early exit rc: fix everything rc: fix globbing with lists (thanks qwx) rc: fix here document handling with quoted end-marker (thanks sigrid) rc: fix leaking runq->cmdfile rc: fix pwrd() regression, forgot <= ' ' case from needsrcquote()... sorry :( rc: make it portable (for UNIX) rc: only have single instance of a symbol, extern in header (thanks mcf) rc: read heredoc when receiving '\n' (thanks Eckard Brauer) rc: rstr() shouldnt skip trailing NUL bytes (thanks ori) rc: simplify Makefile, use yacc default rule (thanks k0ga) rc: remove useless exit $staus at the end of rcmain realemu: fix typo in usage message. rio: allow spaces in working directory path (-cd) when creating a new window via wctl rio: fix parsing of directory path (-cd) when creating a new window via wctl sam: fix spurious overwrite message (patch from plan9port) screenlock: don't poll to top window (thanks Stuart Morrow) snoopy: ... and fix the memory leak for new dns rr types snoopy: add vlan protocol (802.1q) snoopy: adjust for new dns txt rr format snoopy: dns: add caa record type, fix rrtypestr() snoopy: fix dns nil pointer crashes when formating dns packets (thanks sl) ssh: fix typo (thanks izaki) ssh: use RSA/SHA-256 instead of RSA/SHA-1 as the public key algorithm sshfs: prefer error codes over error strings tinc: fix spelling and update manpage (thanks unobe) tinc: fix typo in unknown host error message troff: we are not htmlroff tweak: add missing return to fix double close(...) on file descriptor... upas/fs: add missing newline to a debug print venti: fix fprint format string venti: fix memory layers vmx: fix PCI ID for virtio block devices vmx: update openbsd kernel heuristics vncv: enable connecting to Darwin hosts vncv: some fixes to work with intel amt kvm webfs: do not reuse digest Authorization headers webfs: implement RFC2617 qop extension for http digest authentication x509: encode empty sequence as constructed zuke: do not change volume with delta == 0 zuke: fix search function ignoring matching artist name zuke: reset before tokenize, increase player thread stack zuke: simplify volume control logic zuke: support other volume handles, update volume when /dev/audio is opened DOCUMENTATION 0intro(1), acme(1), con(1), rcpu(1), rio(1), namespace(4), authsrv (6), aan(8): cpu -> rcpu 9p(2): fix a typo (thanks humm) acme(1): fix reference to 9front default acme font acmed(8), rsa(8): add role=client attribute to rsa keys acmed(8): add bugs section acmed(8): fix typo acmed(8): fix typos, formatting, and missed name change. acmed(8): ip => auth: missed a reference to the old name acmed(8): missed a spot acmed(8): more improvements acmed(8): typo... addpt(2): fix inconsistency in description audio(1): replace references to juke(7) and playlistfs(7) with zuke (1) (thanks unobe) brk(2): .... we define lowest addres not used by the program above, so use that instead brk(2): sbrk(0) returns end address, not the base consolefs(4): import -> rimport date(1): sync with reality dial(2): dial returns an open data file, not a ctl one. also fixed little typo. draw(3): .IR on memlorigin(2), fix wrong "t" param name (should be "top") draw(3): add a missing .br fork(2): document new error behaviour when out of resources ftpfs(4): import -> rimport git(1): "see also" consistency (thanks sirjofri) git(1): fix git/add -r spacing and wording in BUGS section git(1): fix quotes in git/conf example git(1): fix typo in git/push section ip(3): document the trans argument for add/try. ip(3): use flags instead of tag for 8 column route add/remove ipconfig(8): add -t flag to enable source address translation joy(1): fix typo (thanks lyndon) leak(1): document how to generate pool.$objtype.acid listen(8): get rid of old ports listen(8): remove old cpu, exportfs and rexec listeners man(1): reference /rc/bin/sig in SOURCE section ndb(2): document txt and txtrr attributes. ndb(6): add caa nusbrc(8): fix typo in BUGS section prep(8): fix typos, wording, and formating rc(1): fix synopsis rc-httpd(8): document how to use HTTP basic authentication rsa(8): document rsa2jwk rsa(8): fix spelling and adjust macros to fix formating sam(1): fix description of ctrl+g sega(1): fix typo snap(4): remove non-existent -s from snapfs pushssl(2): remove ssl(3): remove venti(8): change documented behavior to match actual OTHER /lib/ndb/local: add dnschallenge ndb file for acmed(8) by default /lib/theo: Once you understand the mechanism you'll realize it will never work. /lib/theo: We don't need to make statements people perceive as promises. /lib/theo: You obviously don't know what you are doing, and I think you don't deserve help. /sys/doc/troff.ms: give correct path for -m flag (thanks kyle) /sys/games/lib/fortunes: GPU.js /sys/lib/newuser: fix wsys botch, crate bin/arm64 /sys/src/9/mkfile: add bcm64 (thanks stuart morrow) fortunes: MY NAME IS BEING USED IN A PHISHING ATTACK. DO NOT RESPOND TO MAIL OFFERING MONEY FOR UNDERGRAD RESEARCH ASSISTANTS. - bwk keyboard: ++ = keyboard: add [?] (because) and [?] (proportion) keyboard: complete double-struck capital set; change SS - Ss for SS rootstub: create /sys/lib/tls/acmed directory back 9FRONT "COMMUNITY VS INFRASTRUCTURE" RELEASED (2021/07/18) front RELEASE This is the first official release after the migration from mercurial distributed version control system to ori's git9. Mercurial and Python have been removed from the distribution, but can still be installed from the snakeoil repository: http://git.9front.org/plan9front/pyhg/HEAD/info.html DOWNLOAD 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. 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. http://9front.org/iso/ 9front-8593.acc504c319a4b4188479cfa602e40cb6851c0528.386.iso.gz.torrent http://9front.org/iso/ 9front-8593.acc504c319a4b4188479cfa602e40cb6851c0528.amd64.iso.gz.torrent http://9front.org/iso/ 9front-8593.acc504c319a4b4188479cfa602e40cb6851c0528.pi.img.gz.torrent http://9front.org/iso/ 9front-8593.acc504c319a4b4188479cfa602e40cb6851c0528.pi3.img.gz.torrent 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 MIRRORS http://9front.org/iso/ http://r-36.net/9front/ http://lux.felloff.net/usr/cinap_lenrek/9front/ https://ftp.cc.uoc.gr/mirrors/9front/ http://fulton.software/9front/ GIT REPOSITORY http://git.9front.org/plan9front/plan9front/HEAD/info.html DASH 1 MANUAL http://fqa.9front.org/dash1.communityvsinfrastructure.pdf dash 1 manual: http://9front.org/propaganda/books SONGS by cinap_lenrek http://9front.org/mp3/snakes.mp3 http://9front.org/mp3/manual3.mp3 THANKS khm (propaganda assist) KERNEL AND DRIVERS archacpi: make *acpi=1 the default bcm: try ATAGS/DTB pointer from R2 on entry devloopback: fix wrong device character (thanks romano) devmouse: default to no blanking instead of 30 minute blank timeout devvmx: remove unncessary locking in gotcmd() sleep test function ether82563: add pci id for i219-LM from ThinkPad P17 Gen1 Professional Mobile Workstation (thanks tschak909) kernel: clean up Mach structure kernel: export pcienumcaps() for custom capability enumeration in drivers (virtio) kernel: use 64-bit virtual entry point for expanded header, document behaviour in a.out(6) nusb/ether: rndis: add standard class code (tested by jmi2k with OnePlus 8) nusbrc: ignore rndis ethernet in /rc/bin/nusbed, handled by /sys/src/ 9/boot/nusbrc (thanks romano) nusbrc: rndis with csp 0104ef pc, pc64: increase confmem slots to 64 pc64: avoid getcr3() in mmuflushtlb() sdvirtio: accept multi-queue devices virtio: add non-legacy virtio 1.0 drivers for disk and ethernet virtio: set FeaturesOk flag after feature negotiation, and enable queues before DriverOk flag COMPILER AND DEBUGGER cc: create .$O files with DMTMP lex: fix uninitialized fds (thanks kiwi) LIBRARIES lib9p: add auth* functions to man page lib9p: expose Srv.forker handler and srvforker(), threadsrvforker() and threadsrv() functions lib9p: remove Srv.srvfd, make postsrv() and threadpostsrv() return the mountable file descriptor, update documentation lib9p: remove unneccesary headers libaml: fix gc bug, need to amltake()/amldrop() temporary buffer libc: add encode(2) variants for custom alphabets libpanel: fix text sliding around in libpanel text entry widgets. libsec: add X509reqtoRSApub() function and return subject alt names in X509to*pub() name buffer libsec: emulate openssl asn1 when generating x509 csr libsec: move zero check to curve25519_dh_finish() libsec: take just the CN part of Distinguished Name in subjectAltName libsec: various changes to tls libtags, zuke: add *.mod support (thanks kemal) libtags: modules: ignore empty title libtags: trim text tags and ignore empty values libtags: upstream updates libtags: use CP437 as the default encoding for module formats libtags: use nelem libthread: generate correct acid files thread.h: threadnonotes does not exist threadimpl.h: remove Printsize as well (unused) threadimpl.h: remove unused fields from Proc struct PROGRAMS B, sam: remove sam srv file B: expand path when plumbing files Mail: correctly track the number of messages (thanks igor) Mail: remove impliicit headers (thanks unobe) Mail: remove message about cyclic threads acme: fix border size, autoindent undo: imported from plan9port (thanks jxy) walk: properly format permissions aux/cddb: freedb.org is dead, use gnudb.org aux/cddb: Provide -e option to print commands to rip audio with tags. cal: fix days of week alignment for year view (thanks igor@9lab.org) cpu: properly handle end of file in readstr() crop: allow no-ops for pipelines disk/fdisk: add OpenBSD partition type file: detect webp files (thanks kemal) file: recognize executable scripts, etc. g: add lua, mk, ml, mli, myr, and sh suffixes games/opl3: don't buffer output and simplify (thanks umbraticus) games/opl3: use correct sampling rate git/add: clear qid cache as side effect git/branch: diff clean and dirty lists correctly git/branch: mark files we couldn't update as dirty git/branch: merge correct set of files git/branch: preserve checked in permissions on branch update git/branch: reduce execs to sync working dir git/branch: resolve implicit branch switch before using it git/branch: somewhere in the syncing, the fix for junk files was lost git/commit: allow passing absolute paths git/conf: check in /sys/lib/git/config as a fallback to user-wide config git/export: make output pipable to /bin/mail git/fetch: ensure we clean packfiles on failure git/fetch: fix overly eager 's/pack/idx/g' in refactor git/fs: move mount point to $repo/.git/fs git/fs: use a better heuristic for permissions. git/import: handle mails with line wrapping and mime git/init: create fs dir git/log: handle absolute paths gracefully. git/log: show first commit as file change git/push, git/send: get better about erroring out early git/revert: fork the namespace before running git/fs git/revert: handle absolute paths gracefully (thanks deuteron) git/send: allow the remote to have refs that we don't git/send: pick minimal delta set correctly (thanks igor) git/serve: remove undocumented -n namespace option and -r /usr/git default git/{branch,pull}: merge files correctly git: add missing file git: allow local repository directories as remote uri's git: avoid uninterruptible temporary warning git: create .git/objects/ on git/init git: got git? git: handle absolute paths better ip/dhcpd: work around raspberry pi pxe firmware by providing dhcp option 66 ip/ftpd: Add explict and implicit FTPS support. ip/ipconfig: ODtftpserver (dhcp option 66) is of type string ip/tftpd: add a syslog message about what error we return to the client on a NAK ircrc: freenode -> oftc iwhois: add some improvements (thanks gall0ws) kbdfs: allow to escape ctlr-alt-del with shift for vmx and vnc. mkpaqfs: allow setting compression level mothra: read the content-type header over file(1) to determine type (thanks james palmer) page: fix for kerTeX dvi patch for imap when imap fails plumber: fix substrings in match rules printfont: load all fonts for printfont all python, hg: tow outside the environment. rc: add subshell-function syntax rc: correct line numbers rc: skip arguments to Xsrcline, Xsrcfile in codefree juke: remove (use play or zuke instead) remove old, broken scripts: fedex, u(s)ps, weather (thanks fulton) resample: improve performance (thanks Jose Miguel Sanchez Garcia) rio: avoid re-triggering clicks on resize/hide/unhide and send wctl when focus is lost rio: match background screen color format (thanks noam) sam: remove refrence to /srv file in man page troff: fix mangled fonts and character files trofftable.rc: make work upas/Mail: avoid showing empty To: and CC: lines in compose windows upas/Mail: fix CC addresses in "Reply All" compose windows upas/Mail: fix bug where Redraw must be executed twice to have an effect vac: add -t flag to exclude temporary files and directories (thanks foura) venti: fix detection of available RAM (fixes -m) venti: inform user when reducing memory consumption venti: make error messages consistent, remove duplicate messages. venti: warn when opening /dev/swap fails vmx: avoid strdup() register names for register cache vmx: emulate ps/2 intellimouse scrolling vmx: fix 9p debug server and make it compatible to /proc vmx: implement long mode page table translation vmx: reset virtio queue state on device reset vt, ssh: don't send interrupts on window resize vt: allow scrolling with the mouse. zuke: add mkplist, readtags zuke: fix middle-click restarting playback if held while mouse pointer is moving zuke: fix position formatter using a wrong type zuke: fix seeking in paused mode zuke: include libtags in CFLAGS zuke: remove -G option (old playlists not supported anymore) zuke: treat toggle as play in stopped state DOCUMENTATION 9pfid(2): document Srv* in Req (thanks kjn) Remove ap(1) a.out(1): update manpage to be 64 bit inclusive acme(4): document rdsel, wrsel (thanks foura) add zuke(1) manpage (thanks kemal & humm) /sys/man/mkfile: drop reference to non-existent realtime(3) /sys/man/mkfile: run eqn(1) for usb(3) section of book date(1): document '-f' option date(1): list all option characters in SYNOPSIS fs(4): describe the noauth toggle better (thanks izaki) git(1): we have rebase graphics(2): fix typo memory(2): mention tsmemcmp (thanks kemal) mouse(3): mousein is NOT exclusive, see 30907f1d00a7646ccbb420a18f60ccb0bf36e740 nusbrc(8): fix typo (thanks igor@9lab.org) opl3(1), exec(2): fix manpage typos (thanks umbraticus) pic(1): restore example section rsa(8): document auth/x5092pub, fix usage lines sched(9): replace '-' with '-' in NAME section segment(3): restore missing phrase strcat(2): 0 - nil in manpage in refrence to pointers sysinfo(1): we don't do '-i' for sysupdate any more. sysinfo(1): we're on git now. tmdate(2): "ttt" is a valid format too, mention it webfs(4): fix typos zuke(1): engrish (thanks qwx) zuke(1): more fixes (thanks humm) OTHER /sys/lib/dist/mkfile: test for .git directory /sys/lib/kbmap/colemak: map capslock to backspace (thanks jacob wb) /sys/src: add arm64 to installall list vga: Add U+29FA DOUBLE PLUS (thanks jmi2k) distproto: remove .hgnore and .hg and add .git directory distproto: sync with hg fortunes: revision: allow pseudo options after -end-of-options fortunes: unremove homespool: remove obsolete lp config tool legal: mercurial -> git legal: remove references to python and mercurial manual: don't match nonexistent file while preprocessing sysupdate: clean up transitional code sysupdate: insert tombstone termrc, cpurc: silence /net/ether* error message when there are no ethernet devices back 9FRONT "MIT FRUCHTGESCHMACK" RELEASED (2021/04/03) front HERUNTERLADEN Fr PC und Raspberry PI sind mehrere Installationsmedien bereitgestellt. Brennen Sie fr PC eine .iso-Datei in CD, oder dd direkt an USB-Medien. Fr Raspberry Pi, DD eine .img-Datei direkt an SDCARD. Die PI.IMG-Datei kann fr Raspberry Pi 1, 2 und 3. Die Datei PI3.IMG kann fr Raspberry Pi 3 und 4 verwendet werden. http://9front.org/iso/9front-8392.16c5ead832f2.386.iso.gz.torrent http://9front.org/iso/9front-8392.16c5ead832f2.amd64.iso.gz.torrent http://9front.org/iso/9front-8392.16c5ead832f2.pi.img.gz.torrent http://9front.org/iso/9front-8392.16c5ead832f2.pi3.img.gz.torrent 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 SPIEGEL http://9front.org/iso/ http://r-36.net/9front/ http://lux.felloff.net/usr/cinap_lenrek/9front/ https://ftp.cc.uoc.gr/mirrors/9front/ http://fulton.software/9front/ MERCURIAL REPOSITORY https://code.9front.org/hg/plan9front DASH 1 HANDBUCH http://fqa.9front.org/dash1.mitfruchtgeschmack.pdf dash 1 und die mannseiten im druck : http://9front.org/propaganda/ books DANKE p9f.org KERN UND TREIBER 9boot: Automatische LA$?nge fA1/4r 64-Bit-Werte in hexfmt() fA1/4r Framebuffer-Adresse verarbeiten(danke Michael Forney) 9boot: Markieren Sie die efi-Boot- und Laufzeitdienstregionen als reserviert 9boot: bevorzuge plan9.ini von ESP, von dem wir geladen haben audiohda: PCI-ID fA1/4r Intel C610/X99 hinzufA1/4gen amd64, vmx: unterstA1/4tzt avx/avx2 fA1/4r Host/Gast; Verwenden Sie * noavx = in plan9.ini, um es zu deaktivieren amd64: FP: Verwenden Sie immer genA1/4gend Speicher, um den AVX-Status anzupassen und auf 64 Byte auszurichten audiohda: AMD Starship/Matisse HD Audio Controller hinzufA1/4gen(danke uramekus) audiohda: Interrupts nicht aktivieren, bevor intrenable() audiohda: lass es mit qemu funktionieren(danke Unfug) audiohda: setze irbsts Bits in hdainterrupt() zurA1/4ck(danke LordCreepity) aux/acpi: Leere Dateien nicht verfA1/4gbar machen aux/kbdfs, kbmaps: Aktivieren Sie Kmod4 fA1/4r andere Layouts, nicht nur fA1/4r neo2 aux/kbdfs: benutze getuser() von libc aux/kbdfs: Fehler beheben, A1/4brig gebliebene statische Benutzervariable entfernen(danke umbraticus und igor) aux/realemu: Verwenden Sie # $/pci/B.D.Fraw, um auf den PCI-Konfigurationsbereich zuzugreifen aux/vga: Schwenken entfernen, BildschirmneigungsunterstA1/4tzung hinzufA1/4gen ether2114x: Stellen Sie sicher, dass pci bar0 E/A ist ether2114x: AoeberprA1/4fung des Treibers auf pc64 ether8169: Interrupt-Panik vor Init beheben, Initialisierung bis zum AnhA$?ngen verschieben ether82563: PCI-ID fA1/4r i219-LM auf thinkcenter hinzufA1/4gen (easypeasy, danke hiro) etheriwl: Bringt die Wiederherstellung nach dem Flushq-Timeout zurA1/4ck etherm10g: Doppelte PCI-FA$?higkeitsaufzA$?hlung entfernen bcm64: Ruft die Basisadresse des eingehenden und ausgehenden PCI-Fensters aus dem GerA$?tebaum ab bcm: Farbwechsel auf RGB24 A$?ndern(danke p.kosyh) bcm: dtb-Dateien fA1/4r rpi-400 und rpi-cm4 herunterladen devfs: Sperren korrigieren und undokumentierte Konfigurationssignatur "fsdev:\n" ignorieren devmouse: Redundante PrA1/4fung entfernen devpccard, pci: pccard-UnterstA1/4tzung korrigieren und pci-Erweiterungs-ROMs handhaben devproc: Erlaube jedem, den Benutzer seiner eigenen Prozesse in "keine" zu A$?ndern. devsons: entferne # c/pgrpid devvga: Bildschirmneigung implementieren, Schwenken und Aoeberlagerungen entfernen Kernel: Portable pcimsienable()/pcimsidisable() hinzufA1/4gen, MSI/ MSI-X auf pcidisable()/pcireset() deaktivieren Kernel: Palloc Lock wA$?hrend mmurelease vermeiden() Kernel: Handle tos und pro Prozess Pcycle Counter in Port / Kernel: Implementiere das OCEXEC-Flag pro Dateideskriptor, lehne ORCLOSE ab, wenn du/fd,/srv und/shr APffnest Kernel: Addbroken() statisch machen, irrefA1/4hrendes Proc * -Argument entfernen Kernel: Entfernen Sie das Proc * -Argument aus der Funktion procsetuser() Kernel: ucalloc.c-Duplikate entfernen Kernel: Nicht verwendete Funktion pcinextcap() entfernen Kernel: Update procsave() Kommentar, wir halten nicht mehr auf-> rlock Kernel: Verwenden Sie eine 64-Bit-Maske, um eine Compiler-Warnung in port/pci.c zu vermeiden Kernel: Befreien Sie sich von der physischen Seite Bank-Array und verwenden Sie stattdessen conf.mem[] kw: benutze ethermii.c von port/(danke stuart) mtx: PCI-Zugriffsroutinen korrigieren(siehe A,,nderungssatz 8012: 78891f472fbf) nusb/cam: nicht videoclose(), wenn das A-ffnen fehlgeschlagen ist nusb/ether: Verbesserung von -t rndis (danke romano) nusb/kb, nusb/joy: Versuchen Sie nicht, das Protokoll auf Nicht-Boot-GerA$?ten festzulegen nusb/kb: korrekter Mod4-Scancode(125 a+' 91, passend zu dem, was kbdfs hat) nusb/kb: SchaltflA$?chenstatus aktualisieren, wenn das Ereignis tatsA$?chlich empfangen wurde, Tippfehler korrigieren(danke umbraticus) nusb: Erstelle keine rw iso Endpunkte(von Michael Forney) nusbrc: delect lenovo kamera pc, pc64, xen: Interrupt-Behandlungscode neu schreiben pc, pc64: add * nomtrr = Kernel-Parameter pc, pc64: FA1/4gen Sie einen minimalen HPET-Treiber hinzu, um die LAPIC- und TSC-Frequenzen zu messen pc, pc64: ordne dma bounce buffer direkt nach xinit() zu pc, pc64: Weisen Sie E/A-Port-Speicherplatz fA1/4r nicht zugewiesene PCI-Balken zu und verschieben Sie ioalloc() nach port/iomap.c pc, pc64: Bereinigung cpuidentify() und einige Kommentare pc, pc64: Deaktiviere alle PCI-GerA$?te fA1/4r/dev/reboot pc, pc64: Deaktiviere alle PCI-GerA$?te in pcicfginit() pc, pc64: Speicherbereiche mit ungewAPhnlichen MTRR-Cache-Attributen ausschlieAYen pc, pc64: grub multiboot reparieren pc, pc64: MTRRs ignorieren, wenn MTRRCap.vcnt und MTRRCap.fix Null sind pc, pc64: Deaktivieren Sie die Deaktivierung von MSI-Interrupts pc, pc64: idt frA1/4h in trapinit0 laden() pc, pc64: Stellen Sie sicher, dass die Schreibkombination in MTRRs unterstA1/4tzt wird, bevor Sie sie einstellen pc, pc64: Verschieben Sie den gesamten fpu-spezifischen Code von main.c nach fpu.c. pc, pc64: Verschieben Sie den allgemeinen IRQ-Handhabungscode aus trap.c pc, pc64: neuer MTRR-Code, der AMD TOM2 MSR und feste mtrr-Bereiche unterstA1/4tzt pc, pc64: HinzufA1/4gen des Aufrufs von pcireset() zu pcicfginit() rA1/4ckgA$?ngig machen pc, pc64: Warnung bei fehlenden conf.mem [] -EintrA$?gen in meminit() pc, pc64: Umgehung aller nicht zwischengespeicherten MTRRs pc, xen: fpu setup/fork/save/restore handler auf pc/fpu.c verschieben pc/devarch: benutze m-> cpumhz anstatt es neu zu berechnen pc/dma, pc/sdide: Verwenden Sie uintptr fA1/4r die physikalische Adresse anstelle von ulong pc/l.s: Laden Sie den virtuellen GDT-Zeiger nach dem MMU-Schalter pc/l.s: Entfernen Sie nicht verwendete m0gdtptr/m0idtptr-Strukturen pc/pc64: fpc, pc64: ix fehlerhafte mtrr slot wiederverwendung(danke Fulton) pc64: AMD64 fordert SSE-UnterstA1/4tzung an, entfernen Sie die PrA1/4fung in fpuinit() pc64: weise fpsave/fprestore nur einmal in fpuinit() zu pc64: reservierte Bits in CR0/CR4 fA1/4r amd64 in mtrr setstate() beibehalten pc: Anzahl der Conf.mem [] -EintrA$?ge von 4 auf 16 erhAPhen pc: Verschiebe den Prototyp ldmxcsr() nach fpu.c. sdiahci: 64-Bit-PCIWADDR() annehmen sdiahci: aktiviere pci busmaster vor ahciconfigdrive()(behebe qemu Absturz) usbehci: 64-Bit-Basisadresse verwenden, resetlck entfernen, scanpci() vereinfachen usbohci: 64-Bit-Io-Basisadresse verwenden, Interrupts vor dem ZurA1/4cksetzen deaktivieren, rresetlck entfernen usbuhci: resetlk entfernen, scanpci vereinfachen() vesa: Nicht unterstA1/4tzte Funktion nicht fehlerhaft machen, RA1/4ckgabestatus setzen xen: Fix fA1/4r die letzten avx-A,,nderungen xen: benutze pc/fpu.c COMPILER UND DEBUGGER SA$?ure: Hash-GrAPAYe erhAPhen(danke jonas.amoson) 5c, 6c, 7c, 8c, kc, qc, vc: Verwenden Sie explizite gmove(..., nn) aEUR Mail Audio(1): Behebung eines kleinen Tippfehlers. Audio(1): Es ist jetzt 2021 CPU(1): Siehe oexportfs(4) ctime(2): fA1/4ge tmdate(2) zu "see also" hinzu dd(1): Manpage aktualisieren, um sie an das Programm anzupassen mothra(1): eu-vorschriften verlangen, dass wir offenlegen, dass wir suchanfragen an duckduckgo senden. 9boot(8): Aktualisieren Sie das Handbuch, um A,,nderungen in der Suchreihenfolge des Efi Loader widerzuspiegeln 9pfid(2): document struct Qid(danke sirjofri) fplot(1): benutze abs() import(4): siehe oexportfs(4) vmx(3): Behebung eines kleinen Tippfehlers nusb(4): Tippfehler korrigieren Marschall(1): Fixbeispiel: upas/mail -> mail(danke fulton) Maus(3): Dokument "scrollswap" ctl Nachricht, Stil ein wenig korrigieren(danke umbraticus) mp(2): korrekte Dokumentation der Fehlerbehandlung(danke LordCreepity) nan(2): Dokument isInf(x, 0) stimmt mit + a^z und -a^z A1/4berein newuser(8): Verweis auf falschen Dateiserver-Konsolenbefehl korrigiert plan9.ini(8): document * nohpet = option plan9.ini(8): document * nomtrr = und ordne die Tabelle pop3(1): Schreiboptionen konsistent rio(4): listet die FensterzustA$?nde in der richtigen Reihenfolge auf (danke umbracticus) Sega(1): SchlA1/4ssel reparieren(danke Bigato) tmdate(2): korrektes Beispiel in der Manpage tmdate(2): Fehler beim(p) ass tmdate(2): LA1/4ge entfernen troff2png(1): Manpage hinzufA1/4gen upasfs(4): kleine Tippfehler beheben(danke igor) vmx(1): vmxgdb standardmA$?AYig erstellen, ebenfalls bereinigen vt(1): optionales Befehlsargument dokumentieren(danke sl) zerotrunc(8): Manpage hinzufA1/4gen ANDERE legal: mit neuer lizenz: mit /lib/keyboard: AnfA1/4hrungszeichen unter(danke sirjofri) /lib/keyboard: fA1/4ge Finger und weitere Pfeile hinzu(danke umbraticus) Schriftart/Terminus: Sie kAPnnen keine Schriftart ausfA1/4hren, dumm VermAPgen: SATAN VermAPgen: Das hA$?ngt davon ab, wie Sie native definieren. - Andre Garzia kbmap: UnterstA1/4tzung fA1/4r neo2 kbmak hinzufA1/4gen(danke jstsmthrgk) kbmap: fA1/4ge einen fehlenden SchlA1/4ssel zur tA1/4rkischen Keymap hinzu (danke kemal) kbmap: tA1/4rkische Keymap hinzufA1/4gen(danke Kemal) kbmap: kroatische kbmap hinzufA1/4gen(danke skerbergs) kbmap: lettische keymap hinzufA1/4gen(danke freddy) kbmap: Vermeiden Sie die Division durch Null, wenn das Fenster zu klein wird kbmap: Finnische kbmap aktualisieren: A$? auf Shift + 4 korrigieren und weitere AltGr-Varianten hinzufA1/4gen Klempner/Basic: Griff Tga, WAV, Au, Mid und Mus Profil: Erstellen Sie kein $ wsys, wenn es nicht vorhanden ist theo: falsch. back 9FRONT "EMAILSCHADEN" RELEASED (2020/10/19) front 9FRONT "EMAILSCHADEN" front DOWNLOAD 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. 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. http://9front.org/iso/9front-8013.d9e940a768d1.386.iso.gz.torrent http://9front.org/iso/9front-8013.d9e940a768d1.amd64.iso.gz.torrent http://9front.org/iso/9front-8013.d9e940a768d1.pi.img.gz.torrent http://9front.org/iso/9front-8013.d9e940a768d1.pi3.img.gz.torrent 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 MIRRORS http://9front.org/iso/ http://r-36.net/9front/ http://lux.felloff.net/usr/cinap_lenrek/9front/ MERCURIAL REPOSITORY https://code.9front.org/hg/plan9front DASH 1 MANUAL http://fqa.9front.org/dash1.emailschaden.pdf dash 1 and man pages in print: http://9front.org/propaganda/books THANKS presotto NEW IN THIS RELEASE New date/time formaring/parsing API in libc Kernel updates for Raspberry PI4 8GB model Intel wireless driver now supports 8000 and 9000 family cards New Thinkpads now fully supported: T480, T495 Big kernel PCI code overhaul KERNEL AND DRIVERS archacpi: use 64-bit uvlong for physical addresses audioac97: use 64-bit physical addresses audiohda: use 64-bit physical addresses, check pci membar types audiohda: use PCIWADDR() instead of PADDR(), handle 64-bit dma addresses audiosb16: cleanup audioprobe(), cast ISAConf.port to ulong aux/acpi: connect EC region handler, fixes battery status on eeepc 1000px (thanks Peter Kosyh) aux/acpi: forgot to commit -p option aux/acpi: write a man page, fix usage, call threadexits aux/vga: eepc igfx support (thanks p.kosyh) aux/vga: use 64-bit physical addresses for pci membar bcm64: bring pci code in line with the pc/pc64 bcm64: fix usb xhci controller on pi4 8GB variant (thanks richard miller) bcm64: handle 8GB of physical memory for raspberry pi4 bcm64: increase maximum segment size to 8GB bcm64: use 64-bit uvlong physical address in vmap() bcm64: use uvlong for ISAConf.port bootrc: allow kbmap to be set via plan9.ini (thanks Aaron Bieber) devether: print Ether.port as 64-bit uvlong devip: fix parseipmask() prototype in ip.h devip: implement ipv6 support in ipmux packet filter devip: pick less surprising interface address in header for incoming UDP packets devlml: use 64-bit physical addresses devmnt: print chanpath for unexpected reply tag devpccard: use 64-bit physical addresses devpnp, devether, devusb: cast ISAConf.port to uvlong (for 32-bit implementations) devpnp: print pci membar as 64-bit uvlong devusb: keep isochronous ep->hz consistent with maxpkt, ntds and pollival devusb: print Hci.port as 64-bit uvlong devvga: use 64-bit physical addresses for framebuffer etherbcm: handle 64-bit host addresses, use PCIWADDR() instead of PADDR() etheriwl: add Wireless 8260 card etheriwl: add for Intel Wireless-AC 9260 etheriwl: add support for Intel Wireless AC 8265 etheriwl: delay before crystal calibration etheriwl: don't break controller on command flush timeout etheriwl: remove stations after disabling binding quotas, drain all queues in rxoff7000() kbdfs: add a compose sequence to type 9 kbdfs: allow >16 bit runes in /lib/keyboard kernel: don't strip binaries in bootfs.paq kernel: fix Abind cyclic reference and mounthead leaks (thanks Alex Musolino) kernel: get rid of unused ucallocb kernel: make segments non-executable when icache is not maintained kernel: massive pci code rewrite kernel: remove unused segment argument in freepte() kernel: segflush() needs to flush tlb of other processes nusb/lib: use fmtprint for the entire dump to be printed out nusb/serial: add ids for FT230X (thanks mischief) pc, pc64: implement 64-bit pci membar support pc, pc64: remove mystery "type" bits in pcicfgrw*raw() (fixes qemu, thanks mischief) pc, pc64: use 64-bit physical addresses for ISAConf.port pc, pc64: use 64-bit physical addresses for vmap() and upaalloc() pc, xen: make PAT support optional (for xen) pc64: disable interrupts in mmuwalk() for checkmmu() pc/ether*: use 64-bit physical addresses and check pci membar types and sizes pc/pcmciamodem: cast i/o port to ulong pc/pmmc: check pci membar type pc/vga*: use 64-bit physical addresses and check pci membar types and sizes pc/wavelan: print Ether.port as 64-bit value sd53c8xx: use 64-bit physical addresses sdiahci: use 64-bit physical addresses sdiahci: accept AHCI controllers from ASMedia vendor id (thanks mischief) sdmv50xx: use 64-bit physical addresses and check pci membar type sdnvme: handle machines with more cpu's than submit queues (thanks mischief) sdnvme: make sure pci membar type is memory sdnvme: use PCIWADDR() instead of PADDR() sdodin: use 64-bit physical addresses and check pci membar type uartaxp: use 64-bit physical addresses and check pci membar types usbehcipc: use 64-bit physical addresses and check pci membar type usbuhci: make sure pci membar type is i/o usbxhci: implement isochronous in transfers (for webcam, audio recording) usbxhci: use 64-bit physical addresses wifi: add packet timestamping support COMPILERS AND DEBUGGERS 7c: fix wrong type on OASxxx operations cc: promote integer constants according to c99 spec. cpp: fix mutually recursive macros LIBRARIES ape/ctype.h: add isblank, fix functions (thanks staalmannen) ape/libdraw: add missing eenter (thanks phil9) ape/limits.h: fix typo in (U)LLONG_MAX ape: add missing rerrstr.c ape: make libplumb available under ape. ape: simplify mkfile (thanks amavect) ape: stdio.h: correct return type of putc ape: stdio: fix warnings, make code more standard libaml: fix fault when the second operand of comparison cannot be converted libc: introduce new time and date apis. libc: ignore '?' in date format strings libc: make yday 0-based, as docs suggest libc: tmparse: should ignore leading whitespace libc: tmparse: put in local timezone hack libc: tm2sec: clear new fields in tm libndb: order subnets by prefix length for ndbipinfo() lookups libplumb: add missing mkfile libttf: check directory() result libttf: fix cmap subtable offset type and rank UCS-4 higher (more codepoints). fixes runes > 0xffff PROGRAMS abaco: add fonts.h to HFILES in mkfile (thanks eekee) acme/win: add trailing space to window tag acme/win: fix window recreation command acme: add missing logf.c acme: implement 'scratch' ctl command (thanks Drew DeVault) acme: implement position-dependent scroll-wheel scrolling acme: import changes from plan9port (thanks jxy) acme: import event log from plan9port (thanks fshahriar) audio/flacdec: add -s SECONDS option to seek before decoding audio/mp3dec: add -s SECONDS option audio/mp3dec: mad timer duration is all wrong, use samples instead audio/oggdec: add -s SECONDS option to seek before decoding audio/oggdec: allow -s 0 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 aux/cpuid: flush instruction cache of after patching trampoline aux/getflags: fix named rune arguments. aux/ms2, aux/na: fix warnings aux/trampoline: Implement inactivity timeout (-t option) cwfs: update mtime and qid.vers for directory on rename date: use new libc date apis. dc: increase exponent limit (thanks unboe, lyndon) deroff: fix out-of-bounds access if runes above 0X80 are inside EQ clauses (thanks mmnmnnmnmm, via plan9port) diff: support unified diff via -u faces: remove log support g: add '.hs' and 'mkfile' to the walk. (thanks joe9) games/4s: increase thread size (thanks majiru) games/nes: workaround for truncated chr hjfs: update mtime and qid.vers for directory on rename htmlroff: fix out of bounds access (thanks Rei-sen, via plan9port) imap4d: fix missing return in %d format of Dfmt() imap4d: fix mkfile to have the correct default target imap4d: get rid of unixdate/unixfrom handling imap4d: reject invalid month in date2tm() imap4d: respect errors from read(), remove debug prints ip/6in4: request ipv4 packets only in ipmux filter ip/cifsd: add FIND_FIRST2 SMB_FIND_FILE_FULL_DIRECTORY_INFO info level ip/ftpd: handle "allo" command by treating it as a no-op ip/httpd: fix 'mk nuke' ip/tinc: run script sub-shell in its own environment ip/torrent: fix size check in 64-bit "v" unpack (thanks pr) ip/torrent: try harder allocating ports ndb/dns: allow multiple txt, nullrr, cert, key and sig records (thanks kvik) ndb/dns: mark ns record authoritative when in our area for delegation ndb/dnsdebug: add -c flag to debug caching dns server behaviour nedmail: don't try to shoot down subcommand on interrupt png: remove bogus chanlen warning pre-lib9p servers: fix incorrect Tversion handling ptrap: fix /env/status always being set on main process exit qball: remove unused #include ramfs: make Elocked[] more consistent (thanks fazlul) rc-httpd: fix invalid test(1) invocation in dir-index rc: avoid forking for final command that has variable assignments (to get $apid right) rc: avoid stat calls for directory globbing replica: fix mkfile script installation (thanks Amavect) rio: move the code for 'send' into a function seconds: use new libc date api seconds: tolerate trailing whitespace in dates snoopy: add ipmux pseudo protocol sshfs: update usage text to match man page sshnet: prevent ssh process from keeping the mount alive syscall: utility overhaul syscall: don't append '\n' to the output syscall: fix build problem caused by stale tab.h upas/fs: extract proper date from unix header upas/fs: fix handing of multi-line header fields (thanks theinicke) upas/fs: fix memory leak in ref822() upas/fs: fix truncation of plumb date upas/fs: fix wrong nparts field index (changed in previous commit) upas/fs: move unixheader handling to parseheaders() upas/fs: port date parsing to libc apis upas/fs: put date822 into the index, fix from and replyto handling upas/fs: remove now unused Mtrunc mimeflags constant upas/fs: remove unused function date822tounix upas/fs: use memchr() instead of strchr() in hdrlen() upas/fs: wait until the index becomes unlocked upas/fs: make imap debug logging less noisy upas/marshal: make attachment failure fatal upas: appendfolder(): don't be picky about the timezone of ctime() upas: appendfolder(): skip the address from unix header before date upas: convert to tmdate, change timezone format upas: fix appendfolder timestamps (thanks umbraticus) window: fix error exit with the -m flag vmx: add Kmod4 key vmx: does not do well with certain fb widths, so restrict it vmx: set xstart to either nsec or cycles depending on what is available vmx: use actual system kbmap vmx: use _tos->cyclefreq (thanks cinap) vmx: use cycles() instead of nsec() when possible vncv: implement rfb 3.8 protocol (thanks Iruata) DOCUMENTATION 9p(2): fix typo acme(1): document log file in manpage audio(1): add new -s SECONDS option ctime(2), tmdate(2): document ctime/tmparse incompatibility chdir(2): add reference to getwd(2) in SEE ALSO section cifsd(8): fix typo (thanks senthil) faces(1): remove bespoke date parser getwd(2): add reference to chdir(2) in SEE ALSO section graphics(2): fix typo ip(3): fix typo in manpage (thanks jstsmthrgk) mk9660(8): fix reference to proto file format tmdate(2): document tz field tmdate(2): fix missing arg, fix formatting (thanks joe9) tmdate(2): fix examples, stale references (thanks deuteron) tmdate(2): fix mistakes in prototype (thanks moody) tmdate(2): fix name of tm struct tmdate(2): fix typo (thanks mveety) torrent(1): update url in examples section walk(1): clarify how -n argument works (thanks umbraticus) walk(1): improve wording, formatting walk(1): fix typos OTHER /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? bullshit: decentralized ActivityPub back 9FRONT "PLAN9-HATERS" RELEASED (2020/05/28) front 9FRONT "PLAN9-HATERS front DOWNLOAD 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. 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. http://9front.org/iso/9front-7781.38dcaeaa222c.386.iso.gz http://9front.org/iso/9front-7781.38dcaeaa222c.386.iso.gz.torrent http://9front.org/iso/9front-7781.38dcaeaa222c.amd64.iso.gz http://9front.org/iso/9front-7781.38dcaeaa222c.amd64.iso.gz.torrent http://9front.org/iso/9front-7781.38dcaeaa222c.pi.img.gz http://9front.org/iso/9front-7781.38dcaeaa222c.pi.img.gz.torrent http://9front.org/iso/9front-7781.38dcaeaa222c.pi3.img.gz http://9front.org/iso/9front-7781.38dcaeaa222c.pi3.img.gz.torrent 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 MIRRORS http://9front.org/iso/ http://r-36.net/9front/ http://felloff.net/usr/cinap_lenrek/9front.torrent MERCURIAL REPOSITORY https://code.9front.org/hg/plan9front DASH 1 MANUAL http://fqa.9front.org/dash1.plan9haters.pdf dash 1 and man pages in print: http://9front.org/propaganda/books THANKS qwx NEW *.386.iso 386 pc (more drivers) *.amd64.iso amd64 pc (less drivers) *.pi.img arm paspberry pi 1, 2 and 3 *.pi3.img arm64 raspberry pi 3 and 4 KERNEL AND DRIVERS 9bootpxe: continues the war against random DHCPv6 DUIDs audiohda: add pci vid/did for AMD Raven HD Audio Controller (T495) aux/acpi, aux/apm: remove nopipe -i flag bcm: change ARGB32 to XRGB32 for framebuffer to avoid slow drawing bcm: fix software cursor avoidance for loadimage() case (thanks bitmapper) bcm: use extended small pages so XN bit can work bcm, bcm64: dancing to the drum of the linux clowns for device tree memory size detection (thanks kenji) bcm64: fix kernels cmpswap() function bootrc: fix wrong redirections after & bootrc: suppress error from grep if ethernet ifstats file is not found bootrc: fix comment typo (thanks Robert Ransom) bootrc: for wireless netbooting, set the WPA/WPA2 preshard key with wpapsk=password boot parameter cycv: a cyclone v kernel: fpga support, fix CONFADDR NEW cycv: add cycv kernel cycv: support for registers devcons: fix permissions for reboot and sysstat devcons: fix write length of writebintime() (thanks BurnZeZ) devdraw: fix topnwindows() panic when images are not windows (thanks aiju) devip: fix ifc recursive rlock() deadlock devip: fix packet loss when interface is wlocked devip: use the routing table for local source ip address selection devproc: cleanup procwrite size checks devproc: don't allow /proc/$pid/ctl to be opens for reading devproc: fix syscalltrace read for ratrace devproc: make sure writewatchpt() doesnt overflow the watchpoint array devproc: return process id when reading /proc/n/ctl file devshr: unmount service on #sc/share/mount removal devswap: dont assume Proc* structures returned from proctab() are continuous ether8003: use physical addresses for ISAConfig ether->mem ether82543gc, ether82557, ethervirtio: do kproc() call ouside of spinlock ether82563: fix multicast for i210 ether8390: remove unused variables ethercycv: add cycv ethernet driver ethercycv: dont spin on MDIO kernel: add missing FPillegal definition for kw and omap kernels kernel: add portable memory map code (port/memmap.c) kernel: avoid selecting the boot process in killbig() kernel: avoid useless mmu flushes, implement better wait condition for procflushmmu() kernel: cleanup makefile for $CONF.$O target kernel: cleanup the software mouse cursor mess kernel: fix checkpages() and segflush() on SG_PHYSICAL type segments kernel: fix multiple devproc bugs and pid reuse issues kernel: implement portable userinit() and simplify process creation kernel: improve diagnostics by reversing the roles of Proc.parentpid and Proc.parent kernel: improve page reclaimation strategy and locking kernel: make sure we wont run into the tos when copying exec() arguments kernel: remove relics of CPU 'load balancing' policy in scheduler (thanks Robert Ransom) kernel: remove scheddump() comment for delay() in */fns.h kernel: remove unused mem2bl() prototype kernel: remove unused macro from chan.c kernel: simplify exec() pc, pc64: clear debug watchpoint registers on exec and exit pc, pc64: do page attribute table (PAT) init early in cpuidentify() pc, pc64: fix cputemp decimal handling in amd10temprd (thanks Robert Ransom) pc, pc64: fix wrong mtrr physmask() for machines without extended address size msr pc, pc64: ignore the 64-bit bar flag when reserving membar pc, pc64: add new memory map code pc, pc64: remove "got unassigned irq" prints pc, pc64: use softscreen double buffering for *bootscreen= framebuffer pc: fix ldt memory leak in procsetup() pc: fix mp boot regression due mistake in mkfile pc: replace duplicated and broken mmu flush code in vunmap() pc: zero rampage() memory (thanks LordCreepity) pc64: adapt vgaradeon driver to 64-bit (thanks Robert Ransom) pc64: enable uartpci (thanks taw9 for testing) pc64: remove rampage() nil check ppc: remove old duplicate of devtls.c mtx, ppc: use proctab() to index into process table sd53c8xx: fix the driver for amd64, fix alignment/padding issues, fix freechain handling sdiahci, sdodin: avoid calling kproc() while holding ilock() sdiahci: force Hudson SATA Controller to AHCI mode sdiahci: implement reset timeout for ahciencreset(), make blink() never block, fix map[] access in ledkproc() usbehci: avoid kproc() while holding poll lock usbehci: release ctlr ilock before calling pollcheck() usbxhci: fix wrong control endpoint 0 output device context address vgai81x: remove unused mach0 variable xen: fix rebootcode linkage nusb/audio: set frequency only when supported nusb/kb: add quirks for Elecom HUGE trackball nusb/usbd: cleanup processes on unmount nusb/usbd: fix /env/usbbusy bug nusb/usbd: fix portreset error handling COMPILERS AND DEBUGGERS ape/cc: stop spamming arguments that are only needed once cc, ?[acl]: fix gethunk() and move common memory allocator code to cc /compat cc, ?a, ?l: change thunk type to uintptr cc, ?l: fix gethunk() to actually grow allocation cc: dont export gethunk(), hunk, nhunk and thunk cc: get rid of hunk pointer fiddling and just use alloc() cc: get rid of sprint() and temporary buffer for type conversion fuction cc: remove mysbrk(), exponentially increase gethunk() allocation delta cc: simplify macexpand() and off-by-one error cc: fix ccom idempotency cc: fix special case for null pointer constants in cond expressions cpp: Improve the posix preprocessor. cpp: Make priority array max size explicit. cpp: copy all the tokens from the tokenrows with a paste. cpp: dont overflow the stack cpp: evaluate #if expressions using vlong cpp: fix operator associativity cpp: missing headers rate a FATAL. 6c: conserve registers for floating point operations 6c: remove mystery sys.c file 7l, ql: dont assume . is in the path for running mkcname (thanks sam-d) 7l: handle dupok flag in TEXT/GLOBL data ?a, ?c: fix macro debug prints ?a, cc: fix buffer overflows in built-in preprocessor (macbody) ?a: catch symb[NSYMB] buffer overflow in lexer, cleanup, assume thechar is a rune ?c: fix Bconv() misusage of strncat() ?c: get rid of sprint(), strcpy() and strcat()/strncat(), cleanup ?l: remove direct hunk manipulation from linkers, just call malloc() [257]l: cleanup fmt routines, replace sprint() qa: remove ALLOC() and ALLOCN() macros vl: remove unused mysbrk() prototype yacc: normalize error messages, stop writing to closed fd. yacc: fix crash with absolute paths yacc: stop fiddling with path construction. LIBRARIES ape: #pragma ref no longer exists ape: Add stdbool.h to ape ape: Fix scanf scans of more than one character in %[] ape: add intmax_t/uintmax_t as required by c99 7.18.1.5 ape: add missing conversion flags for scanf ape: add va_copy macro, conforming to c99 7.15.1.2 ape: bring stdint.h closer to spec ape: fix alignment in malloc() ape: fix name clash, have to use _SLEEP syscall instead of ape sleep in plan9 code (thanks jamos) ape: fix scanf '%[]' specifiers and '%n' (thanks phil9) ape: remove C99_SPRINTF_EXTENSION define. ape: turn ptrdiff_t into a 64 bit type ape: use #error when missing define lib9p: fix re-use of root Qid when using createfile(); remove unused dirqidgen lib9p: fix typo lib9p: get rid of Srv.nopipe and Srv.leavefdsopen hacks lib9p: implement automatic remove-on-close cleanup in postsharesrv(), remove postfd() and sharefd() functions lib9p: reject reads on closed fids and writes on directories lib9p: zero out per connection state in Srv template for listensrv() libFLAC: 1.3.1 -> 1.3.3 libaml: implement ToDecimalString and ToHexString operations libc: always zero initialize Tm structure for tm2sec() libc/arm64: work around linker bug for cas() libdraw: fix mount() error handling in newwindow() libmemdraw: remove inexistent build targets libsec/base58enc: null-terminate the result libsec: move AES XTS function prototypes to AES definition section in the header file libsec: remove hash pickle functions, document ripemd160, cleanup sechash(2) manpage PROGRAMS 9fs: replace dead plan9.bell-labs.com with 9p.io server "": output previous action to stderr acme, sam: handle >1GB files correctly acme/Mail: show and update flags acme/win: exit winfs once acme shuts down the window acme/win: pass on flags to winfs (fix undocumented -e flag) acme: Apply each -/+ only once (#156) acme: Apply http://www.9paste.net/qrstuv/patch/acme-movetodelmesg/ acme: Reset click count on mouse motion. acme: Restore call to movetodel() in colclose acme: add missed error checks acme: avoid division by zero when resizing col (#189) acme: fix double free acme: fix off by one in colclose(), make dellist() code consistent acme: fix some memory leaks acme: fix typo: mouse->xy, not w->mc.xy acme: split win into winfs and rc script, get rid of lib9p leavefdsopen hack acme: triple click selection auth/disable, auth/enable, auth/status: add usage messages aux/aout2uimage: Add a.out to uImage converter NEW aux/getflags: improve flagfmt parser aux/getflags: remove rogue debug print aux/getflags: support named flags aux/kbdfs: fix kbmapread() not accounting for reads smaller than the size of the line aux/kbdfs: Changes to allow support for neo2 keyboard layout aux/realemu: fix exit code aux/realemu: run cpuproc in same fd group as fileserver aux/timesync: open /proc/n/ctl with OWRITE, not ORDWR awk: fix race condition with sub-mk in mkfile awk: make empty FS unicodely-correct. backup: Set execution bits in backup scripts date: make ISO 8601 time output compatible to RFC3339 doctype: fix -T option dossrv, 9660srv, hjfs: stop READING standard OUTPUT with -s flag dossrv: fix falloc() for >31 bit sector numbers (thanks sl) dossrv: output iotrack error message to stderr dtracy: show line numbers in errors file: add (very) basic support for detecting mpeg4 formats file: try ismp4() before ismp3() file: fix filetype detecton by suffix so that multiple dots dont confuse it. (thanks kvik) g: walk arguments games/playlistfs: open /proc/n/ctl OWRITE, not ORDWR games/turtle: do exit instead of crash in redraw() when there where no lines drawn games/linden: NEW games/turtle: NEW games/v8e: NEW grep: error if sbrk fails grep: fix handling of -b flag hgfs: fix loadrevinfo() breakage on long lines using libbio (thanks deuterion) hgfs: fix loadrevinfo() for empty log bug hoc: don't nest calls to follow() when lexing ++/+= and -/-= (#287) ip/cifsd: implement SMB_SET_FILE_UNIX_BASIC for wstat ip/cifsd: implement primitive per-share unix id mapping for wstat() ip/dhcp6d: work around non-ethernet based client duid ip/dhcpd: prevent client from increasing max reply size beyond the reply buffer capacity ip/ipconfig: ignore default routes targeting ourselfs ip/ipconfig: keep on sending router solicitation after initial RA ip/ipconfig: resolve ipgw to an ip address as neccesary (thanks k0ga) ip/tinc: accept udp connection from any udp source port mothra: add Plumb menu item, and update man page. sl's original changes sanity-checked by Ori_B. mothra: (facelift) flat ui is in. mothra: fix a few errors in previous patch mothra: make user interface monochrome mothra: remove extraneous lines and decoration (fake 3d). patch extracted from sl's forked mess by Ori_B. mothra: restore original fonts. dejavusans was sl's change, sl'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's difficult to imagine native users preferring our very fuzzy dejavusans to anything else. ndb/dns: handle empty $DNSSERVER paint: change colors in the palette with button 3 ramfs: don't use Srv.nopipe rc-httpd: append carriage return to content-length header rc: fix code serialization for PIPEFD (thanks BurnZeZ) rc: fix heredoc crash rio, kbdfs: increase read buffer for high latency kbdfs support rio: fix bug causing short reads of wctl files rio: fix goodrect() bug (thanks mike) rio: pad window status strings in wctl files rio: triple click selection, reset click count on mouse motion. sam: ^ does not need current file sam: add $%dot (thanks kvik) sam: Bump protocol version for Ttclick sam: triple click selection samterm: don't scroll invisible (command) window (thanks umbraticus) samterm: Make ctrl+g focus text windows and cycle zeroxed copies (thanks kvik) samterm: fix typos in time calculation seconds: hack around timezone issues. sed: accept and ignore -E and -r flags for unix compatibility sed: allow whitespace after ! negation (thanks k0ga) sshfs: fix dir2attrib() memory leak in wstat error case (thanks BurnZeZ) sshfs: fix race condition between sendproc() and recvproc() sshnet: fix fork race conditions tar: Add pax extended header support tar: fix memory corruption in extract1 (thanks petter) tar: Fix directory heuristic for long file names. tar: Parse global pax header in the right place. upas/fs: Fetch IMAP flags from server. This makes us sync read/ answered/... flags with unix. upas/fs: fix handling of numeric timezone offsets in strtotm upas/fs: fix sending of "delete" plumb messages upas/fs: imap fixes and improvements upas/fs: only ensurecache() on doplumb(). upas/fs: plumb flag changes. upas/fs: plumb modify messages for self-changed flags upas/fs: remove useless loop in rf822() upas/fs: Check if 'm' is null when updating messages. upas/fs: fix ref882 reference parsing. upas/fs: fix typo: we don't have cache insurance. upas/fs: simplify flag parsing. upas/marshal: fix printinreplyto function vt: triple-click to select non-whitespace segment walk: add D and T fmt characters (fileserver device/type) walk: remove superfluous newline Mail: Remove reply print. Mail: delete obsolete comments (replies are flagged elsewhere) Mail: show urls in html messages. DOCUMENTATION acme(1): fix scrolling when swiping text at the top or bottom of a frame atari(1), nintendo(1), sega(1): document common emulator keys crop(1): remove duplicate -b option in synopsis listen(1): implement one-shot mode flag for listen1 (thanks kivik) mail(1): fix typo mothra(1): add description of Plumb menu item. os(1): add c implementation of inferno os command and cmd(3) device manpages page(1): fix troff manual example sam(1): document $% and $%dot seconds(1): add SOURCE section tar(1): document 'T' flag misbehavior (thanks rgl) vac(1): assimilate manpage additions from plan9port and complete usage lines (thanks joe9) walk(1): formatting/corrections dial(2): we prefer nil over 0, make the example show it. draw(2): fix manpage typo (thanks rgl) flate(2): fix typos (thanks rgl) 9p(2): document all the effective rfork flags for postmountsrv() 9p(2): document the filedescriptor sharing behaviour of postmountsrv () 9p(2): fix sentence for wstat function (thanks jsmoody) notify(2): fix typo thread(2): fix description of when/why procexec(l) functions return thread(2): fix manpage typos (thanks rgl) cmd(3): fix typo, Close -> Closed (thanks kivik) draw(3): typo dp ip(3): document special null-address hack for accepting all incoming connections ip(3): remove outdated maximum ipstack number limit. kbd(3): fix a typo (thanks Alex Musolino) rio(4): fix bad cross-reference format rio(4): update description of wctl file format upasfs(4): fix manpage typo (thanks rgl) image(6): fix typo 9boot(8): Document 9bootfat limitation. boot(8): Specifiy the restrictions on 9boot file names more clearly. console(8): add console command and manpage man(9): add start of section 9 manpages (thanks rgl) NEW delay(9): improve language kproc(9) and sleep(9) corrections sleep(9): recover comment with the right reference OTHER /lib/face: add .dict entries for andrew.1 face files /sys/lib/kbmap: update 0xf860 to Kshift value, fix fake shifts on esc1 /sys/lib/kbmap/colemak: add colemak keymap (thanks Silas McCroskey) /sys/lib/kbmap/sg: add swiss german kbmap (thanks mike) /sys/lib/plumb/basic: open nedmail windows with -noscroll /sys/lib/plumb/basic: include section 9 in manpage plumb rules. fortunes: As much as I'd love to I feel I have to let it go - rminnich hgignore: ignore section 9 manpage indices, ignore init, kernels and bootloader binaries riostart: when system uses serial console, provide a system shell on it timezones: change DST timezone string for South Australia tmac.eai: wrapper around -me: auto indexing sections, .TC macro (thanks sirjofri) troff: add missing /sys/lib/tmac/me files (thanks sirjofri) words: transgender back 9FRONT "NO THINKPAD" RELEASED (2019/10/08) front (v1) http://bell-labs.co/9front/iso/ 9front-7408.1d345066125a.386.iso.gz.torrent http://bell-labs.co/9front/iso/ 9front-7408.1d345066125a.pi.img.gz.torrent http://bell-labs.co/9front/iso/ 9front-7408.1d345066125a.pi3.img.gz.torrent DASH 1 MANUAL http://fqa.9front.org/dash1.nothinkpad.pdf dash 1 and man pages in print: http://9front.org/propaganda/books THANKS: momus KERNEL AND DRIVERS kernel: catch execution read fault on SG_NOEXEC segment kernel: clear FPillegal in pexit() and before pprint() kernel: expose no execute bit to portable mmu code as SG_NOEXEC / PTENOEXEC, add PTECACHED bits kernel: get rid of tmperrbuf and use syserrstr swapping instead in namec() kernel: make exec clear errstr, stop side-channels and truncate on utf8 boundary kernel: make user stack segment non-executable kernel: move common ethermii to port/ kernel: prohibit changing cache attributes (SG_CACHED|SG_DEVICE) in segattach(), set SG_RONLY in data2txt() kernel: simplify pgrpnote(); moving the note string copying to procwrite() bcm, kw, omap, teg2: implement setregisters() bcm: add cache invalidate before accessing prop buffer bcm: fix typo in gpio.c on unused AFedge0 constant bcm: flush out early boot messages on uart and screen initialization bcm: invalidate cache on Fbinfo after firmware completion bcm: set XN bits for kernel device mappings bcm64: add addarchfile() prototype to fns.h (for qeed) bcm64: add config for raspberry pi 4 bcm64: add driver for emmc2 controller bcm64: add gic interrupt controller driver for raspberry pi 4 bcm64: add gisb arbiter driver to catch bus timeouts bcm64: add pci express driver for raspberry pi 4 bcm64: add support for more than 1GB of ram (untested) bcm64: deal with discontinuous memory regions, avoid virtual memory aliasing, implement vmap() proper bcm64: do not use OTP_BOOTMODE_REG to determine OSC frequency (thanks richard miller) bcm64: enable devgpio in kernel configuration (thanks qeed) bcm64: enter page tables in mmutop AFTER switching asid in mmuswitch () bcm64: fix mmu0clear() mistake from previous commit bcm64: fix wrong prescaler for generic timer on rpi4 bcm64: generalize mmu code bcm64: implement dtracy support bcm64: implement reboot support bcm64: no need to flush instruction cache when switching TTBR0 bcm64: poll gisb arbiter for asynchronous bus errors bcm64: remove unneccesary tlb flush on mmuidmap() bcm64: reorganize virtual memory map for rapberry pi4 bcm64: replace emmc2 driver with richard millers sdhc driver bcm64: set XN bits for kernel device mappings bcm64: strip debug symbols to make sure .img file is multiple of 4 bytes bcm64: switch to 64k page size bcm64: update io.h for pci express and raspberry pi 4 bcm64: work in progress genet ethernet driver for raspberry pi 4 bcm, bcm64: add BCM2711 support for gpiopull(), fix gpiomeminit(), cleanup bcm, bcm64: add dmaflush() function and make virtio size and virtual address configurable in Soc.virtio and Soc.iosize bcm, bcm64: add support for device tree parameter passing bcm, bcm64: add vcore support for raspberry pi 3 GPIO expander bcm, bcm64: clean dma destination buffer before issuing dma in case of non cache-line-size aligned buffer bcm, bcm64: fix cache operations for dma and emmc bcm, bcm64: make irq.$O optional and add intrdisable(), use intrenable() bcm, bcm64: preserve memsize across reboots, avoid trashing atags while parsing cmdline devdtracy: make machlocks and dtktab static devip: fix permission checking devip: if the server does not support TCP ws option, disable window scaling (thanks joe9) devproc: fix fishy locking in proctext(), check proc validity, static functions devproc: move proctab() call after Qnotepg special case in procwrite () devproc: restore psstate info string in procstopwait() devuart: make sure uart is enabled in uartkick() ethergenet: fix flow control negotiation ethergenet: remove debugging emmc: 50MHz highspeed support (from richard miller) pc: move low-level allocation details out of mmu.c into memory.c rampage() function pc64: fix compiler warning in rebootjump() entry calculation pc64: implement NX bit discovery, map kernel mappings no-execute pc64: map kernel text readonly and everything else no-execute pc64: preallocate mmupool page tables sdide: silence compiler warning in atadebug() usbehci: introduce dmaflush() function to handle portable cache invalidation for device drivers usbehci: silence "param declared but not used" compiler warning in itdinit()/sitdinit() usbxhci: fix mysterious ENABLESLOT failures (update to XHCI spec revision 1.2 (2019)) usbxhci: implement portable dma flush operations and move to port/ usbxhci: fix endpoint stall recovery, handle Ep.clrhalt flag vgai81x: use vmap() for uncached access to cursor data instead of manipulating kernel page table COMPILERS AND DEBUGGERS 7l: don't hardcode 4k pagesize, use INITRND 8c, 6c: LEA x, R; MOV (r), R -> MOV x, R 8c, 6c: avoid allocating index registers when we don't have to 8c, 6c: fix INDEX node #reg calculation 8c: skip 64-bit regpair allocation for OINDEX nodes in cgen64() 8l, 6l: fix "unknown relation: TEXT" xfol() bug (thanks mischief) cc: fix void cast crash cc: remove nullwarn() from OCAST codegen, zap void casts cc: use 7 octal digits for 21 bit runes cc: Allow address expressions in ?c after int casts. cc: Import compiler warnings and bugfixes from Charles. acid/kernel: fix procstk() for arm64, set kdir for arm/arm64 to bcm/ bcm64 acid/kernel: for stacktraces, try to use context from error stack when process is not sleeping LIBRARIES ape: Add mkstemp to /sys/src/ape/lib/ap/gen/mkfile ape: don't hardcode list of ape library directories in /sys/src/ape/ lib/mkfile ape: fix stdio putc() macro, avoiding "result of operation not used" warning ape: reimplement rename() - fixing compiler warnings and handling more error cases ape: revert rename() change ape: Include integer limits from generic stdint.h in system-specific stdint.h ape: Add missing UINTsz_MIN defines to ape stdint.h ape: Add test for pow.c ape: Add toascii() ape: Handle NaN and Inf edge cases as specified by posix, instead of barfing. ape: Turn on warnings when building libap. ape: Add mkstemp to stdlib.h lib9p: fix listensrv() filedescriptor leaks libauth: do not set errstr in auth_rpc() for ARdone result (thanks majiru) libflac: Tell it that we have stdint.h so it finds SIZE_MAX libstdio: fix putc(), plan9 version libventi: define VtEntryNoArchive constant libventi: implement vtreconn and vtredial functions libventi: implement vtsha1 and vtsha1check functions PROGRAMS ape/cc: Add arm64 and remove alpha, add spim awk: no need to call getargv() twice to get the value for FILENAME cwfs: fix listen filedescriptor leaks date: Add RFC2822 (email style) formatted dates g: Make it grep recursively by default. auth/rsa2asn1: implement private key export with -a flag (thanks kvik) snoopy: add support for dhcp classless static routes option snoopy: avoid extra spaces in dhcp filter output snoopy: include dhcp.h instead of replicating bootp/dhcp options enum ssh: work around github.com's broken cipher negotiation code (thanks Ori_B) cmd/ip/*: chown the network connection after authentication cwfs: fix root access time qid path comparison cwfs: properly handle 64 bit qid path cwfs: remove old some assert() debugging cwfs: remove orphaned lrand.c disk/format: implement long name support file: recognise unified diff output gs: apply fixes for CVE-2018-16509 (thanks jsmoody) gs: apply mitigations against CVE-2017-8291 (thanks jsmoody) gs: fix missing type check in ztype (thanks jsmoody) ip/cifsd: add basic support for UNIX extensions ip/cifsd: dont return garbage in upper 32 bit of unix extension stat fields ip/cifsd: exit to close connection when we get malformed smb header (fixes linux mount hang) ip/ipconfig: don't leave behind null address when dhcp gets interrupted ndb/dnsquery, ndb/csquery: write ">" prompt to stderr (thanks kvik) pcc: Always turn on the -+ flag in cpp plumber: loop will go out of bounds when *++s == '\0'; replace with strstr rc-httpd: avoid duplicate log output in dir-index handler rc-httpd: only emit charset option for text/plain content type rc-httpd: serve markdown with text/plain content-type rc-httpd: set charset=utf-8 for all text/* content types sshfs: use threadexits() instead of exits() upas/fs: remove read timeout via alarm(2) in pop3resp upas/fs: speedup mtree and henter() upas/smtp: handle temporary authentication failures vmx: handle build arch exclude in /sys/src/cmd/mkfile vncv: fix snarf buffer realloc memory corruption DOCUMENTATION 2c(1): document 7c (arm64) draw(3): memlorigin nusb(2): remove startdevs() reference, document getdev() (thanks BurnZeZ) rsa(2): document asn1encodeRSApriv() and asn1encodeRSApub() functions rune(2): complete source references sshnet(4): ... and incoming TCP calls tinc(8): add history section vmx(1): update BUGS walk(1): add history section OTHER /sys/lib/dist/mkfile: adjust 2GB for pi3 and zynq img /sys/lib/dist/mkfile: storage vendors idea of 2GB is deflating /sys/src/cmd/mkfile: fix PCONLY exclude (thanks stefan) /sys/src/boot/bcm/mkfile: add missing device tree file for raspberry pi 4 /sys/src/boot/bcm/mkfile: add raspberry pi 4 kernel and bootloader to pi3.img target bootrc: remount devip after /dev/hostowner has been written by factotum bootrc: unmount devip before starting factotum mkone: fix man target (thanks Amavect) back 9FRONT RETURNS TO PRINT WITH STUNNING NINE VOLUME SERIES (2019/06/23) 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. DASH 1 DASH 1 The usual suspect. An overview of what the fuck just happened today, Re: 9front. Online: http://fqa.9front.org Print: https://amzn.to/2Qg0v92 PROGRAMMER'S MANUAL 9FRONT PROGRAMMER'S MANUAL V1 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's a good idea to read them all. Online: http://man.9front.org Print: V1: https://amzn.to/2YgpRqc V2: https://amzn.to/2J46iuV V3: https://amzn.to/2XoGmna V4: https://amzn.to/2J6mTyx V5: https://amzn.to/2WW2RQO V6: https://amzn.to/2WYgSxm V7: https://amzn.to/2xagwEQ V8: https://amzn.to/2XBY7j7 9FRONT "SKIN OF EVIL" RELEASED (2019/05/16) front (v1) http://gabe.felloff.net/usr/cinap_lenrek/9front/ 9front-7233.24d21d7c0868.iso.gz.torrent DASH 1 MANUAL Online: http://fqa.9front.org/dash1.skinofevil.pdf Print: http://9front.org/propaganda/books THANKS: miron lukyanov KERNEL AND DRIVERS bootrc: add nora6= option to disable automatic ipv6 configuration bootrc: handle automatic ip configuration on gbe media bootrc: fix $rootdir and $rootspec handling (thanks lucio) kernel: exec support for arm64 binaries kernel: export freepages() function so it can be used in mmurelease() kernel: get rid of TSTKTOP, USTKTOP is the end of user address space kernel: get rid of KSTKSIZE alias for KSTACK kernel: get rid of PTR2UINT() and UINT2PTR() macros kernel: get rid of checkpagerefs() debugging kernel: include lock pointer in error report, stop spamming lockloop prints when we are panicing kernel: insert memory barrier in the scheduler before setting up-> mach = nil kernel: remove ptclbsum dependencies from configs ktrace: arm64 support qio: handle common case in trimblock() bcm: add pl011 uart driver, dont touch line control while uart is enabled bcm: don't call nil on PADDR() in dmaaddr(), return busdram dummy address bcm: don't use PADDR() to convert bus address to physical in vcore bcm: dont assume PHYSDRAM 0 in dmaaddr(), fix dmaioaddr() bcm: include sdmmc in pi kernel configuration bcm: list devswap only once in devtab array bcm: move CONFADDR parsing into bootargs.c, simplify initcode start() args handling bcm: move fiq saved pc adjust into lexception.s so it can be shared with arm64 bcm: move interrupt handling out of trap.c into irq.c, add irq.c to mkfile bcm: move okay() from uartmini.c to devarch.c bcm: make sure fiq is on enabled on cpu0 bcm64: add experimental work in progress arm64 kernel for raspberry pi 3 bcm64: get rid of usb workaround delay bcm64: map framebuffer write-through to allow unaligned access bcm64: provide idlehands() function bcm64: use MOVP instruction for saving and restoring registers bcm64: use exclusive monitor on nrdy to wake up idlehands() pc, pc64: fix %.*s format in multibootargs pc, pc64: properly track dependencies for mem.h on autogenerated apbootstrap.h and reboot.h targets pc, pc64: pci: add AMD FCH LPC bridge to southbridges pc, pc64: devarch: recognize AMD Ryzen model pc64: properly handle faulterror in faultamd64() devdraw: get rid of softscreen==0xa110c hack and make attachscreen() return Memdata* devdraw: simplify drawgen() devip: fix block list handling for icmp/icmp6, use proper MinAdvise for icmp6 devip: fix fragment forwarding devip: fix ip fragmentation handling issues with header options devip: handle packet too big advise for icmp6, remove fragment header devip: ignore icmp advise about laggard fragments devip: ignore reserved fragment offset bits devip: ignore the evil bit in fragment info field devip: ipv6 loopback ::1 has link-local scope devip: reject bad numeric ports (such as 9fs -> 9) devip: remove unused eipconvtet.c and ptclbsum.c files devip: simplify ip reassembly functions, getting rid of Ipfrag.hlen devip: tcp: Don't respond to FIN-less ACKs during TIME-WAIT (thanks Barret Rhoden) devip: use common code in icmp for handling advise devip: use parseipandmask() for ipifc and route control message parsing devip: zero fragment offset after reassembly, remove tos magic, cleanup devip: avoid media bind/unbind kproc reader startup race, simplify etherbind devip: do not lock selftab in ipselftabread(), remove unused fields from Ipself devip: make sure ifc is bound in add6 ctl command devip: remove unused c->car qlock, avoid potential deadlock in ipifcregisterproxy() devip: reset speed and delay on bind, adjust burst on mtu change, ifc->m nil check, consistent error strings devsd: fix panic when using "delpart" to remove a partition that was already removed devswap: simplify, don't panic when writing swapfile fails devtls: remove static "already" flag in tlsinit(). this function is only run once. audiohda: add support for Gemini-Lake audio in Intel NUC nuc7pjyh (thanks sam-d) audiohda: recognize AMD Family 17h hd audio controller ether8169: fix thinkpad A485 ethernet (thanks mischief) ether82563, ether82598, etherx550: round rbsz to multiple of 1K ether82563: fix bogus FCA write and link detection for i217 ether82563: use 9018 byte mtu from datasheet for i217, i218, i219 ether82563: work around spurious jumbo packets on i217 (thanks k0ga) ether82598: fix multicast filter (thanks aiju, joe9) etherx550: add intel 10GB ethernet controlller x550 driver (thanks joe9) igfx: add support for 915gm nusb/audio: fix %.*s format usage nusb/disk: implement 64 bit lba read/write commands (16 byte commands) nusb/disk: don't unnecessarily unstall devices. nusb/kb: fix continuous scrollwheel delta not being reported (thanks sam-d) nusb/usbd: fix dump %U formatter nusb/usbd: stop sending port enable commands nusb/usbd: work around devices that ignore the high byte of wLength in control transfer reads nusbrc: detect "keyboardio model 01", appears as multifunction device with IAD csp(0102EF) (thanks sam-d) usbdwc: enable Slowbuilkin workarround, improve split transaction timing, handle erroring sleep(), debugging usbxhci: make stuck usb transactions interruptible. wifi: fix %.*s format in wifictl COMPILERS AND DEBUGGERS 7c: add arm64 c compiler and assembler (thanks Charles Forsyth) 7a: fix indexreg operations, fix post increment operands 7c: don't emit SXTW for non-register source operand 7c: fix long to vlong/pointer conversion, avoid negative immediate offsets 7c: fix registerization of vlong constants 7l: add arm64 linker from Charles Forsyth (initial sync) 7l: add missing AFMOVD with EXT/AUTO/LOREG operands to optab 7l: deal with huge (negative or > 24bit) register offsets, fix LACON, avoid DWORD in constant pool when we can sign extend 7l: fix bitcon instruction selection and encoding 7l: fix vlong constants in literal pool for non-MOV instructions 7l: there's no BIC* $bimm variant 7l: implement MOVP instruction 5c: dont substitute (destination) registers contained in MOVM reglist [5678vq]c: fix .safe node type for FUNC() = FUNC() sugen cc: fix %.*s format usage in lexer "token too long" error acid: add arm64 support dtracy: avoid dmachlock() race dtracy: avoid pointer to integer truncation warning on amd64 dtracy: fix && dtracy: fix conditional branch generation LIBRARIES ape: initial support for arm64 ape: fix malloc to deal with more than 4GB of memory on 64 bit systems lib9p: fix zero msize abort() due to unknown version (thanks kvik) libauthsrv: authdial smprint() out of memory autism libc: Sand edges down on GBIT64()/PBIT64() macros. libc: initial arm64 support libc: fix NaN check precedence bug in modf() (thanks BurnZeZ) libc: provide arm64 assembly versions for memmove() and memset() libc: use MOVP instruction for arm64 memmove() and memset() libip: don't reject ipmask in v6 form for v4 address libip: move optimized 386 assembly version of ptclbsum() from kernel to libip libip: prefer v4 over v6 for myipaddr() libip: replace v4parsecidr() with new parseipandmask() libip: return -1 in parseipmask() and parseipandmask() when mask is not ipv4 and v4 argument was set libmach: initial arm64 support libmach: support for MOVP instruction disassembly for arm64 libmemdraw: handle memarc() phi == 0 and phi <= -360, keep alpha in bounds libmemdraw: remove static Point p00 and use ZP instead libmp: add dummy mkfile for arm64 libndb: provide parseipmask() v4 argument in subnet(), use snprint() instead of sprint() libpanel: fix %.*s format in pl_snarfentry() libsec: dummy mkfile for arm64 libthread: initial support for arm64 PROGRAMS abaco: fix %.*s format in findctype() atazz: fix %.*s format in special command processing aux/depend: fix %.*s format in path concatenation aux/statusmsg: fix %.*s format aux/wpa: fix %.*s format in debug prints awk: fix nextfile crash (thanks leetspete) cifs: fix pruning of . and .. directory entries (thanks steve simon) cwfs: fix %.*s format in cmd_printconf() dossrv: make GLONG() return ulong, handle getsect() error in dostat() dossrv: use 64 bit vlong for sectors gs: arm64 support gs: avoid stupid shifts by casting to uint64_t hgfs: fix %.*s usage in walk ip/6in4: use parseipandmask(), use ipvmp() instead of equivip6() ip/ayiya: use parseipandmask(), use ipvmp() instead of equivip6() ip/cifsd: fix %.*s format xdirflush() path ip/dhcpd: add rootserverip read in lookupip() (thanks k0ga) ip/dhcpd: change swap to rootserver (thanks k0ga) ip/dhcpd: provide v4 argument for parseipmask() ip/dhcpd: remove undocumented dhcpgroup mechanism, group related ndb attributes together ip/dhcpd: send vendor ndb attribute if available (thanks k0ga) ip/ipconfig, ndb/dns, libndb: handle parseipmask() errors ip/ipconfig: format ipmask with %M instead of %I ip/ipconfig: use defaults for loopback ip/ipconfig: use ewrite() to enable routing command for sendra ip/ipconfig: use new parseipandmask() function ip/ppp: fix %.*s format in debug print ip/pppoe: fix %.*s format in debug prints ip/rip: use new parseipandmask() function ip/socksd: fix %.*s format in dialstring ip/tftpd: fix %.*s format for homedir path ip/tinc: 4096 bit RSA, (passive) pmtu discovery, fix udpfd close() race, cleanup ip/tinc: fix mistake from previous commit ip/tinc: honor TcpOnly and IndirectData settings, script support, prefer incoming udp connections ip/tinc: use new parseipandmask() to parse subnets, use ipcmp()/ ipmove(), remove prefixlen ip/torrent: fix %.*s format in dialstring ip/torrent: avoid trying to fetch blocks past file mk: fix closing random fd from uninitialized stack variable (thanks BurnZeZ, mycroftiv) ndb/dns: provide v4 argument to parseipmask(), use snprint() instead of sprint() postscript: use PI python: arm64 support python: clean and nuke pgen and libpython.a for all $CPUS python: remove /$objtype/lib/ape/libpython.a, track graminit.h dependencies, remove graminit.c ratfs: implement ipv6 support, replace v4parsecidr() with parseipandmask() rc: clear out redirections on "rfork F" (RFCFDG) ssh: add experimental mux mode ssh: don't assume error messages are ASCII. format number of complete runes, not bytes. ssh: implement -W option for making remote tcp connections ssh: print usage for unknown flags, cleanup sshnet: actually make sure ssh established connection before exiting main proc sshnet: allow 0 port sshnet: bring back sshnet using ssh(1) mux mode sshnet: don't leak "Dialing" connections when "connect" ctl write gets interrupted sshnet: don't leak error string sshnet: fix eof and close handling, use proper packet size, cleanup sshnet: fix memory leak sshnet: fix write count for ctl message writes sshnet: get rid of Announced state, simplify sshnet: implement listen (port forwarding) sshnet: pass on open failure error message, simplify sshnet: reduce memory consumption by lowering stack sizes tcs: clean up old port code, and avoid writing 0 to stdout troff: fix -ms mug (thanks aksr) upas/fs: don't put messages on the lru that cannot be uncached upas/fs: fix %.*s format usage upas/fs: fix infinite loop in putcache (again) upas/fs: include mkupas in mkfile last to get default target upas/fs: release mailbox syncing lock after encountering error upas/fs: remove unused function pop3log upas/ned: fix %.*s format in parsesearch(), improve mkfile upas/scanmail: fix %.*s format in xprint(), improve mkfile upas/smtp: fix %.*s format for challenge in smtpcram() upas/smtpd: implement ipv6 support for ip blacklist, replace v4parsecidr() with parseipandmask() uptime: rewrite in awk vmx: build vmx only for 386 or amd64 vmx: check for draw initialization errors vt: dont make fs procs hang around when closing rio window vt: fix %.*s in sendnchars() walk: remove unused depth argument from dofile() wadfs: avoid comma operator after PBIT32() macros webfs: bracket literal ipv6 host in "Host:" header webfs: properly handle %.*s in url path and debug prints front (programmer's manual) DOCUMENTATION dhcpd(8), ndb(6): group related ndb attributes together dhcpd(8), ndb(6): update documentation (thanks k0ga) dtracy(1): fix print(2) reference ip(3): document TCP ctl close command mach(2): fix byteswapping function signatures memdraw(2): remove references to iprint() plan9.ini(8): add USB section, documenting various usb options plan9.ini(8), boot(8): clarify the use of $rootdir and $rootspec rsa(8): add example for tinc(8) (thanks k0ga, qwx) segment(3): use bind -c in examples (thanks henesy) ssh(1): add sshnet(4) reference sshnet(4): add documentation sshnet(4): fix user@host syntax, add BUGS section, add ip(3) reference thread(2): threadsetname takes a fmt string added walk(1) OTHER arm64: add mkfile /sys/lib/plumb/basic: make plumbing page bookmarks work with relative paths (thanks Tobias Heinicke) fix DST begin/end timestamps for South Australia fortunes: Open source may not be safe if it has no super excellent moderator. inst/startether: skip ipv6 auto configuration when nora6 was specified dist/mkfile: aux/stub -d /n/src9/usr to avoid overbinding /usr in case /n/src9 an / alias dist/mkfile: add *.pi3.img target for ARM64 raspberry pi3 distproto: add /lib/ndb/dhcp/ and /lib/news/ directory (thanks lyndon) rootstub: add /sys/lib/dist/ndb/dhcp/ rootstub: create arm and mips directories in /usr/glenda/bin (thanks timclassic) rootstub: create arm64 directories vgadb: add t43p 1600x1200 panel entry lib: update pci database timezones: add India (thanks joe9) back 9FRONT "CALLING DICK TRACY" RELEASED (2018/12/31) front http://9front.org/iso/9front-6977.c7e7268b0786.iso.gz.torrent http://9front.org/iso/9front-6977.c7e7268b0786.iso.gz DASH 1 MANUAL http://fqa.9front.org/dash1.callingdicktracy.pdf https://amzn.to/2SQ8ERL THANKS: to aiju for cover assistance KERNEL AND DRIVERS 9boot: get rid of 64 byte line length limit 9boot: don't let user erase the prompt (thanks mischief) bootrc: NEW experimental reboot method to load another kernel bootrc: remove $ff references (was old parsed /boot/boot argument list) kernel: change peek to return number of characters left rather than 0 /-1 kernel: fix allocb for BLOCKALIGN*2 >= Hdrspc kernel: fix livelock in rebalance (thanks Richard Miller) kernel: fix tprof on multiprocessor kernel: remove unused static variable "sofar" from timerintr() (thanks mischief) kernel: sync two longjmp fixes from drawterm bcm: NEW import changes for raspi2/3 from richard miller bcm: cleanup timer and clock code bcm: fix /dev/reboot text/data corruption (thanks richard miller) bcm: fix l2 cache maintenance routines for raspi3 (armv8) bcm: fix mysterious core clock resets under SMP (thanks richard miller) bcm: intrenable() can happen from any cpu in case of dma interrupts bcm: provide /dev/cputemp in a format stats can understand bcm: simplify irq handling by having per cpu Vctl chain bcm: simplify reboot code bcm: speed up co-processor operations by avoiding i+d cache flush on each operation pc, pc64: add pcienable() and pcidisable() functions pc, pc64: increase CONFADDR buffer from 4K to 24K pc, pc64: park application processors in rebootcode with mmu off pc drivers: use pcienable() to handle device power up and missing initialization devbridge: fix runt packets going through the bridge (thanks cinap) devip, ipconfig: avoid overflow on lifetime checks devip: fix arpread, dont return partial entries devip: fix default parameter calculation for router life-time devip: fix swapped tcp snd.scale and recv.scale in tcpstate() format (thanks joe9) devip: make updating ra6 router parameters atomic devip: only add interface route for "on-link" prefixes devip: remove unused QLock from udp and icmpv6 control blocks (thanks brho) devip: valid and prefered life-time should be unsigned, add remove6 ctl command devuart: don't sleep in uartdrainoutput() when called splhi or without a process devusb: use Enotconf[] string constant devvmx: remove bogus . direntry ether82563: ignore i82753 checksums, fixes T60 ethernet ether82598: fix multicast filter (thanks aiju, joe9) etherx550: NEW intel 10GB ethernet controlller x550 driver (thanks joe9) etheriwl: NEW Centrino Wireless-N 1030 (thanks lksmk from brazil) etheriwl: NEW support type 2000 devices and the 2200 chip in x230t mtx, ppc: remove cistrcmp() and cistrncmp() redefinition nusb/disk: also drive usb attached scsi devices nusb/disk: implement 64 bit lba read/write commands (16 byte commands) nusb/disk: dont issue capacity command when theres no media present nusb/ether: NEW support for lan78xx (raspi3) (thanks richard miller) nusb/ether: tune buffer size parameters for SMSC ethernet (raspi) (thanks richard miller) nusb/joy: send magic packet to enable playstation controller events nusb/joy: update misleading comment (thanks Tobias Heinecke) nusb/kb: lilu dallas multitouch nusb/kb: multitouch support (touchscreens, stylus) nusb/kb: work arround broken split transaction on raspi's dwc otg usb controller nusb/serial: NEW support for CH340 serial converter nusb/serial: fix wrong guard statement (thanks deuteron) nusbrc: support for raspi3 ethernet nusbrc: prevent nusb/kb from attaching to sony ps3 controller usbehci, usbxhci: add noehcihandoff= and noxhcihandoff= parameters usbxhci: delay after reset, preserve reserved bits in legacy status control register in handoff() usbxhci: only clear RW1C bits when set. COMPILERS AND DEBUGGERS 5e: byte access incorrectly checked for long; brk has to round up addresses 5i ki qi vi: avoid buffer overflow in command read loop ape/make: fix \ line continuation parsing acid: fix transcript cc: fix wrong "useless or misleading comparison" warning dtracy: add support for aggregations dtracy: avoid pointer to integer truncation warning on amd64 dtracy: call dtptrigger with a struct pointer rather than a list of arguments; put return value in arg9 dtracy: catch page faults dtracy: fix lexer bug dtracy: get rid of DTName struct, support more than three parts in a probe name, wildcard matching dtracy: missing break in dteverify kencc: make "function not declared" a warning unless compiling with -T kencc: turn "function args not checked" warning into "function not declared" error if appropriate kprof: fix precedence (thanks geoff) snap: add debug flag, make debug less verbose snap: be more conservative taking stack snapshot snap: check for overflows, cleanup error handling snap: consequently use ulong for page index and count snap: use Mach->szaddr as the width of the stack pointer (fixes snap on amd64) LIBRARIES ape: declare gethostname audio/libogg: sync to ogg v1.3.3 libaml: allow amlmapio() to re-enter the interpreter (can happen by pciadd() -> amleval()) libc: NEW procsetname() libc: NEW utf2idn() and idn2utf() functions to deal with internationalized domain names libc: return number of bytes produced for idn2utf() and utf2idn() libdisk: catch null bytes in proto file, fix memory leaks libdisk: check for proper line termination in proto file parser libdraw: avoid deadlock for mouse ioproc sending on resizec libdraw: fix gengetwindow() libdtracy: wrong operator in XORI (thanks aiju) libhtml: increase Nestmax to render some convoluted pages (thanks fernan) libmach: change amd64 szreg to 8 (thanks charles forsyth) libmp: add tests for integer conversions libmp: mptov: make it actually work libmp: declare mpfactorial libmp: fix mptouv behaviour to match mptoui libndb: add missing ndbdedup.c libndb: make ndbipinfo() walk ipnet for all matching entries, concatenate and dedup result libsec: fix memory leak in pkcs1_decrypt() libttf: add SHZ[] instruction libttf: dont unset LOOP in SHC libttf: fix swapped argument in vscan()... libttf: instruction 0x24 is DEPTH, not CLEAR libttf: SHZ also uses 0x36 PROGRAMS awk(1): fix append operator to avoid truncating file acme: fix fd checks - initialize Window.rdselfd to -1 not 0 cfs: close mount half of pipe, fixes cfs not exiting when unmounted cwfs: Disallow '/' in file names. disk/mkfs: remove unused cputype variable (thanks kvik) dnstcp: temporarily switch on resolver mode so we can resolve the dnsslaves for axfr check dossrv: use 64 bit vlong for sectors dossrv: make GLONG() return ulong, handle getsect() error in dostat() dossrv: cleanup factotum: rsa: use mptober() to get right adjusted result instead of mptobe() and memset() forp: change indexing to verilog-like semantics fplot: add min/max operators fplot: add support for readout with middle mouse button fplot: color different curves fplot: compute y range correctly when used with multiple graphs fplot: fix operator associativity games/blit: clean up cpu.c and make it pass tests games/c64: make keyboard table more readable games/doom: fix music for patch wads games/gb: when the LCD is turned off, reset ppuy and ppustate to 0, fixes bug in dragon warriors iii reported by mischief games/md: use cpu.c from blit hget: do a HEAD request to check if the file is already complete (thanks miscief) hgwebfs: read to eof by default to match urllib2 behavior hgwebfs: write headers individually, so they are not limited by webfs iounit (thanks mischief) ndb/dns: avoid format strings in procname ndb/dns: do recursive lookup for dnsslave= ndb/dns: fix format print warning for procsetname(), cleanup ndb/dns: send_notify() to multiple ip addresses in parallel, filter myip() ndb/dns: use libc's new idn functions ndb/dns: use nil for pointers in dnresolve() args ndb/dnstcp: only lookup the expected address type in findserver() ndb/dnstcp: restrict DNS zone transfers to clients listed as dnsslave = ndb/dnstcp: return a proper non-answer when rejecting zone transfer ndb/inform: handle internationalized domain names netaudit: handle multiple ip addresses ip/dhcp6d: handle internationalized domain names ip/dhcpd, ip/tftpd: change default for tftp homedir to / ip/dhcpd: Add swap server support in dhcpd (thanks k0ga) ip/dhcpd: handle internationalized domain names ip/dhcpd: implement rfc3397 dhcp search domain option (dnsdomain) ip/ipconfig: default onlink and autoflag to 1 ip/ipconfig: handle internationalized domain names ip/ipconfig: handle noconfig flag for router advertisement, add debug prints, cleanup ip/ipconfig: implement rfc3397 dhcp dns search option (dnsdomain) ip/ipconfig: increase maximum host and domainname size to 255 bytes. idn for -h option ip/ipconfig: remove expired default routes on router advertisement ip/ipconfig: silently ignore prefix information with Autonomous flag clear ip/ipconfig: valid lifetime is in seconds, not milliseconds. ip/tftpd: remove sunkernel hack kbdfs: don't get confused by broken utf8 pc: reference counting bug plumber: fix memory and filedescriptor leaks (thanks BurnZeZ) python: explicitly declare WaitForThreadShutdown as void rc: ignore $cdpath for # device rooted paths (thanks kivik) rc: implement $"x in terms of Xdol() and new Xqw() instruction rc: skip searchpath for "", "." and ".." rc: use searchpath() logic to handle $cdpath rcpu: fix pvar to initialize empty variables (thanks mycroftiv) rio: get rid of window delete thread, fix mysterious disappearing windows sed: only dollars as first address are a problem for -u ssh: fix spinning due to sticky intr flag on connection timeout ssh: handle MSG_GOBAL_REQUEST ssh: handle unknown MSG_CHANNE_REQUEST messages sshfs: add exits(nil) to threadmain sum, md5sum, sha1sum: set exit status properly on open/read errors truetypefs: NEW (unfinished but working) truetypefs truetypefs: fall back to width if advance is zero truetypefs: fix subfont indices (thanks aiju!) truetypefs: use /lib/font/ttf as default font path upas/imap4d: ignore messages without digest info upas/fs: allow msgincref() with mb->refs == 0 upas/fs: avoid switch on vlong breaking build (thanks k0ga) upas/fs: checkfid() might be called with uninitialized fid, ignore upas/fs: delete extra binaries upas/fs: don't enter mailbox into hashtree when it is being freed upas/fs: fix broken body.ext in walk (thanks sl) upas/fs: fix infinite loop in putcache upas/fs: fix walk upas/fs: handle errors from fetch for cachebody()/cacheheaders() upas/fs: keep messages marked for deletion in the index upas/fs: remove now unnecessary "force" argument to cachefree upas/fs: rework the refcounting, use 64bit qid path, add checks vt: fix backup/forward after resize vt: implement line selection by double click vt: implement word select vt: make selecting() wait until all buttons are lifted avoiding menu when chording webfs: fix memory leak in Nfmt(), use libc's new idn functions webfs: remove automatic Referer header webfs: write headers individually so they are not limited in sum to the 8k buffer DOCUMENTATION add dtracy manpage atazz(8): fix probe formatting boot(8): document tls and reboot methods 2c(1): document some differences with ANSI C kbdfs(8): fix nit keyboard(2) spelling (thanks Amavect) idn(2): add documentation for idn2utf() and utf2idn() mp(2): clarify mptoa() and mpfmt() default base mp(2): document mpfactorial mp(2): fix spelling namespace(4): document new TrueType path, drop unused Hershey fonts path namespace(4): fix $home bin paths procsetname(2): provide manpage ptrap(4): fix formatting rio(1): fix typo sdahci(3): correct device name for top level control messages (thanks joe9) truetypefs(4): document truetypefs, fix example path vt(1): vt doesnt exit when the host process exits as claimed (thanks driusan) OTHER add ndb entries for il rcpu /sys/lib/dist/mkfile: add pi.img target for raspi sdcard image add /sys/src/boot/bcm/mkfile to download raspberry pi bootcode firmware cpurc: filter ipv6 loopback address for automatic ip address setup (thanks fhs) cpurc: handle multiple auth servers fortunes: [9fans] ..... UNSUBSCRIBE_HELP NEEDED fshalt: wait for fileservers command file to vanish get rid of /lib/tftpd upas: get rid of broken validatesender example, remove redundant upas /misc and setup target back 9FRONT "RUN FROM ZONE!" RELEASED (2018/09/09) front http://9front.org/iso/9front-6720.d6cb2bd03583.iso.gz.torrent http://9front.org/iso/9front-6720.d6cb2bd03583.iso.gz DASH 1 MANUAL http://fqa.9front.org/dash1.runfromzone.pdf COMING SOON: Print edition! KERNEL AND DRIVERS 9boot: DHCPv6 support for efi 9boot: detect SYSLINUX "memdisk" and pass to kernel via ramdisk0= parameter bootrc: write fatal error message to fd2 kernel: don't cap the minimum sleep time to TK2MS(1) for syssleep() kernel: stop the practice of passing DMDIR to devir() perm argument pc kernel: get rid of ugly and partially broken cpuid macros pc, pc64: look for "RSD PTR " in ACPI reserved memory region from e820 map pc, pc64: make mapalloc() and mapfree() static in memory.c pc64: fix fpu bug pc64: update headers to match pc pc: fix ugly and partially broken switch() statement devarch: fix /dev/msr (thanks joe9, aiju) devaoe: fix dotdot walk in devlinkdir, make perms consistent devdraw: zero initialize DImage.dscreen pointer (vnc, drawterm) devenv: make #ec files not show up as world writable devip: arp: interface address only specifies the interface, not the source address for route lookup devip: do not icmp reply on multicast destination devip: don't pad the tag for routing commands (fixes removing routes with < 4 character tags) devip: don't send arp requests from null address devip: fix flush, copy tag when replacing route entry devip: fix missing wunlock() for "ipifc not yet bound to device" case, don't create multicast entry on error devip: fix multicastarp() when ipconfig assigned the 0 address devip: fix router adv/sol options validation (options padded to 8 bytes) devip: fix udp checksum devip: fix use after free in ipifcremmulti() devip: make il connect fail quickly when theres no route devip: reject incompatible multicast/interface ip address pairs for ipifcaddmulti() devmnt: make sure auth chan is on said conection in mntattach() devmouse: produce signed msec timestamp in /dev/mouse, accept unsigned on write devvga: disable cursor on shutdown avoiding graphics glitches on reboot nusb/ether: fix ethertype filtering nusbrc: add LG G5 for nusb/ether sdloop: NEW import sdloop driver (thanks erik) sdram: NEW experimental ramdisk driver sdram: NEW properly support multiple ramdisks, so that ramdiskX corresponds to sdZX wifi: lilu dallas multirate audiohda: support Intel Sunrise Point-LP on thinkpad X1 etheriwl: add pci did for WifiLink 5300 (thans senthil) igfx: support blanking by turning off panel power and backlight rtl8169: fix receive for nuc BOXNUC7CJYH LIBRARIES ape: add some common fields for stat, grp and pwd ape: add strnlen ape: fix auth.h ape: floating point improvements (thanks spew) libttf: NEW add libttf for truetype font rendering libdraw: accept unsigned msec timestamp in /dev/mouse libip: ignore ipv6 link local addresses for myipaddr() libmach: substitute /dev/zero for /proc/$pid/fpregs when missing (for snapfs) libogg: nuke old libogg.au libvorbis: fix broken free() (thanks mischief) mklib: add %.acid target PROGRAMS 6c, 8c: Fix nocast cast bug which prevents address arithmetic from being computed at compile time Bfn improvements acme: add spacesindent mode acme: pass pointer to int type to avoid pointer to int cast warning asaudit: make error more explicit authsrv: implement AuthNTLM authsrv: log message when no AES key is found for pak authsrv: separate MSCHAP(v2) and NTLM(v2) authentication authsrv: work arround linux omiting final Z(4) after the AvrPairs camv: fix leak on resize cc: fix result of operation not used warning for void casts cwfs: cwfs -a option misleading dc: fix off by one in stack overflow check (thanks BurnZeZ) dontkill: explicitely set exit status to '' emulators ui: add option for fixed factor scaling and bound scale vertically emulators ui: don't call flushmouse twice emulators ui: don't drink and code emulators ui: fix input botch and typo fplot: draw axes; zoom more naturally; unzoom games/dmid: NEW add games/dmid and games/opl3 games/dmid: NEW add support for midi streams games/dmid: NEW better fnumber calculation and fix fine tuning for 2nd voice games/doom: don't set repl if scale is 1 games/doom: use wadfs to expose music lumps games/dpic: NEW add games/dpic and games/todpic games/gb: attempt at fixing sprite priority games/gb: fix mbc5 register addressing (fixes warioland3 gamebreaking bug) games/gba: handle 8bit writes to vram games/midi: properly skip sysex messages games/mines: add missing checks for UseGhost games/mus: fix note volume and channel selection; simplify games/snes: fix input botch hjfs: fix unbounded recursion bug in hjfs hjfs: set group of new files to that of the parent directory (thanks umbraticus) ip/cifsd: fix ntlmv2 authentication ip/cifsd: limit response data count in TRANS2 for remotebuffersize, avoid empty filename for the root ip/dhcp6d: NEW add minimal stateless DHCPv6 server for network boot and DNS configuration ip/dhcp6d: NEW make constants for message types, check server identifier in request, only recheck ndb every minute ip/dhcp6d: NEW ignore short and from non-local source packets ip/dhcp6d: NEW only announce all-dhcp-servers multicast address on interface with link-local address on it ip/dhcpd: add varargck pragma for warning() and fatal(), do syserr with %r format ip/dhcpd: handle multiple networks on the same interface, dont get confused by v6 interface address ip/dhcpd: parseip() error handling, make sure client ip is ipv4, add explicit length arguments to lookupname() and lookupserver() ip/dhcpd: reject bogus requests, handle multiple ether= attributes in ndb, cleanup ip/ipconfig: add missing {} as DEBUG() is a macro ip/ipconfig: add varargck pragma for warning() function ip/ipconfig: call mklladdr() to get conf.hwa initialized for ipv6 ip/ipconfig: check for recvra 0 on timeout ip/ipconfig: make ra6 daemon less chatty, log to /sys/log/ipconfig instead of /sys/log/v6routeradv ip/ipconfig: simplify by combining mklladdr() into mkclientid() ip/ipconfig: use ipmove() instead of memmove() ip/tftpd: deal with block wrap arround kbdfs: handle mouse control (Kmouse, Kshift button swap) in parallel, bring back ^X form handling kbdfs: ignore first 16 scancodes (number row) in kbtabctl[] for control key reverse mapping mothra: Persist 'k' command in mothra and add matching -k flag (thanks piroko) ndb/cs: add -6 flag for v6 only lookups and "ipv4" control message to toggle v4 lookups. ndb/cs: make ipv6 only host practical by checking ip version on local interfaces ndb/cs: prevent deadlock with ndb/cs by mounting /srv/dns AFTER /net ndb/cs: don't do dns lookups when all we got is loopback or link local addresses ndb/dns: fix delegation with norecursion (-R flag) ndb/dns: fix encoding of srv record target ndb/dnsdebug: handle .ip6.arpa names ndb/dnsgetip: report errors when dns resolution fails ndb/dnsquery: handle .ip6.arpa names, don't mount the dns service play: handle file names containing consecutive spaces rc: fix Xpipefd unbalancing the redir stack screenrc: bind '#v' when not already done (for cpu servers) ssh: add -r for extra raw mode ssh: fix nil dereference when TERM isnt set and -r is requested ssh: wait for remote channel close (thanks piroko) sshfs: if we're going to annoy everyone we should at least match documentation stats: fix crash with -Y fag when window too narrow stats: read cputemp as C, set scale max to 100 C stats: fix etherstats, avoid vmax == 0 sysinfo: minor formatting fix tcs: shift-jis: add support for half-width kana tcs: support EUC-JP JIS X 0212 codes upas/nedmail: marshal(1) options -n and -8 are mutually exclusive upas/smtp: allow remote port to be set to something other than smtp (e.g. ssmtp) upas/smtp: use current login id in absence of -u option (as per man page) valley: call srand so that actual random phrases are used vncs: fix mistake "screen" vs "gscreen", thanks eekee vncs: silence devdraw debug prints vncs: support for desktop resize extension, update devdraw vncv: adjust window size on desktop resize, fix canresize checks vncv: handle [] enclosed literal ipv6 addresses in host vncv: implement extended DesktopSize extension, cleanup vt: implement proper selections (thanks Ori_B) webfs: don't handle unknown status codes as continuations, reset status when handling continuation to avoid infinite loop win: bind the text file properly instead of a special case in " DOCUMENTATION avl(2): add avlmin/avlmax in synopsis dc(1): add pi program as example getuser(2): add source or sysname() hgfs(4): fix typo (thanks piroko) ip(3): document ipifc ipv6 connection and fix delay formatting mothra(1): fix formatting ndb(8): ndb/inform also publishes ipv6 address now plan9.ini(8) iwlwifi essid/bssid misleading sshfs(4): don't drink and troff sshfs(4): language sshfs(4): replace the much maligned -r option stats(8): document -z flag (thanks xcko) ttfrender(1): NEW wadfs(4): fix typo OTHER /sys/lib/dist/ndb/common: synchronize root servers and link to root hints source fix incorrect character range in vga/unicode.font leading to missing CJK characters turkey simplified timezone (thanks erkin from 9front ml) update pci database fortunes: I've been looking into running Plan 9 in JSLinux - Skip Tavakkolian back 9FRONT "GHOST IN THE MINESWEEPER SHELL" RELEASED (2018/05/14) front http://9front.org/iso/9front-6517.dcfbb100317e.iso.gz.torrent http://9front.org/iso/9front-6517.dcfbb100317e.iso.gz DASH 1 MANUAL http://fqa.9front.org/dash1.ghostintheminesweepershell.pdf KERNEL AND DRIVERS kernel: add missing ethermii.h dependencies. patch from cinap_lenrek kernel: fix missing header dependency for ethersink.$O kernel: let /rc/bin/diskparts attach #k after #S partitions are loaded up kernel: move devether and wifi to port/ kernel: properly handle bad attach specifiers aijuboard bootloader: fix 10BASE-T / 100BASE-TX support pc64: add magic _intrr() symbol for ktrace (thanks mischief) pc64: fix intrr(), avoid the linker moving intrr() arround zynq: fix 10BASE-T and 100BASE-TX support devether: mux bridges, portable netconsole devether: remove (unimplemented) detach, allow device creation on attach devfs: only set configed flag if config was read successfully devip: add "reflect" ctl message, fix memory leaks in icmpv6, fix source address for icmpttlexceeded, cleanup devip: fix crash on negative dev id on attach devip: fix ipv6 icmp unreachable handling, fix retransmit, fix ifc locking, remove tentative check devip: implement source specific routing devip: improve arp and ndp code devip: increment in counter AFTER acquiering the ifc lock or loopbackmedium devip: make v4 ifc broadcast and multicast routes specific to address devip: more v6 improvements devip: pick source address for neighbor solicitations as of rfc4861 7.2.2, cleanup devip: properly initialize the connection ignoreadvice and tos flags devip: various icmp stuff devip: verify ifcid on routehint check, check Route.ref for free'd routes devip: add some primitive rate limiting knobs to counteract bufferbloat devip: don't set mtu of interface to zero when not specified (thanks joe9) devloopback: reassign device letter from #X to #l to avoid collision with devvmx devusb: fix format print warnings for ep->ntds and ep->uframes ethersink: after the experiment, the zeros get dismantled. and then destroyed. ethersink: provide promisc and multicast functions for v6, set out queue limit to 0 on attach, add to pc64 config audiohda: add device id for x260's Intel Sunrise Point-LP. (thanks rodri) igfx: add support for T510 (thanks mycroftiv) nusb/cam: NEW usb video driver nusb/ether: mux bridges, bring in line with devether nusb/lib: add maxpkt and ntds to Altc struct nusb/kb: add usb tablet support nusb/ptp: set storage name to their human readable description string nusb/usbd: increase buffer size to capture port information nvidia: add pci device id for GeForce 6200 AGB (thanks bitmapper) usbehci: add uframes control request to return uframes one at a time usbehci: catch interrupt in tsleep usbehci: fix medium- to low quality highspeed isochronous transfers usbxhci: fix mistake in completering() vmx: allow setting mac address of using ea:nnnnnnnnnnnn! prefix, use genrandom() to generate mac globally unique mac address LIBRARIES ape: improve assert macro ape: add signed fixed size integer typedefs to u.h libc: allow /net/cs to specify local address for dial() libc: add signed fixed size integer typedefs libmp: add awk-generated tests libmp: add new tests libmp: add mptod and dtomp libmp: more tests libmp: mpdiv: fix dividing 0 by a small power of two libmp: mpdiv: fix sign bug libmp: mpdiv: get signs right... libmp: mplogic: don't drop carry out libmp: mpmagadd: force output sign +1 always libmp: mpmagadd: oops... libmp: mptod/dtomp: add to mp.h libplumb: allow attributes larger than 4096, set some malloc tags libplumb: fix old leak introduced in 18b8ed1a5ea3 libplumb: fix plumbunpackpartial() libsat: NEW sat solver libsat, forp: fix va_list hack on amd64 libsat: fix one of the satmore() bugs libsat: satmore: don't try to override user defined variables libsat: setmalloctag, fix incorrect allocation size libsat: satget: don't duplicate binary clauses libsat: satget: include unit literals PROGRAMS 9fs: break 9front case into several cases: 9front, 9bugs, 9contrib, 9grep audio/pcmconv: fix accidental cast to float instead of double auth/asn12rsa: also convert ASN.1 encoded public key to plan9 format camv: NEW camera viewer camv: fix display locking issues forp: NEW formula proover forp: fix multiplication; change division to C semantics forp: fix precedence for [] forp: fix ternary operator fstype: make copy of first sector in /env to avoid unaligned reads on the disk (for devfs) ftpfs: no caching by default, add -c flag to enable it (patch by mycroftiv) g: revert accidental change, document missing file type games/gb*: reverse savegame field polarity games/gb*,blit,c64: fix phaser coolant leak during resize games/2600: NEW add port of aiju's 2600 emulator games/mines -g: elements taken from list should be -2, not -1 games/mines: bikeshedding games/mines: build a better ghost trap games/mines: chain new CLists in splitknown correctly games/mix: fix incorrect line numbers ip/gping: icmpv6 support ip/ipconfig: always refresh ndb/cs and ndb/dns when adding or removing ip addresses ip/ipconfig: fix exit status for ndbconfig ip/ipconfig: fix v6 ndp code, use source specific default routes ip/ipconfig: populate /net/ndb from v6 router advertisements, configure multiple addresses in ndbconfig() ip/ipconfig: setup per local address default routes ip/ipconfig: stop spamming the console about router receiving RA's ip/ipconfig: use unique ip/ipmask/ipgw values close to match for ndbconfig ip/ipconfig: fix parseip() error handling in ipconfig, ppp, tftpfs and dns ip/linklocal: invert the localadm bit from mac address instead of just setting it ip/ping: stop doing clever things with dialstrings, just let cs/dial figure it out ip/ppp: remove old struct ip/ppp: set source specific default route regardless of primary flag, set link speed thru new ctl message when -b is specified ip/traceroute: icmpv6 support ndb/cs: fix crash in ndbredorder due to ndbnew() not maintaining the ->line ring ndb/cs: remove paranoia debug toggle ndb/cs: remove single-ip-address assumptions ndb/csquery: insert \n between read chunks ndb/dns: lookup all entries in dblookup(), v4 and v6 queries in parallel, remove weigthed timeouts ndb/dns: remove single-ip-address assuptions ndb/dnsquery, ndb/csquery: handle long lines ns, devproc: quote path and spec arguments for /proc/$pid/ns, namespace(6) does support quoting ns: remove left over vararg check pragma pc: add $ operator ptrap: NEW plumber filter sort: fix bug where it incorrectly included the field separator in the comparison if it was >= Runeself sshfs: update qid and filename on Tcreate upas/fs: fix imap atom quoting (thanks Piotr Kubaj) DOCUMENTATION forp(1): NEW manpage added forp(1): document [] and some bugs ip(3): document changes on /net/arp and /net/iproute ipconfig(8): clarify -p and -P options lock(2): fix typo mines(1): fix misleading HISTORY wording, documentation and chronometric control of supernatural apparitions pc(1): always allocate at least one mpdigit (itomp assumes this) resample(1): document -n option twsi(3): fix wrong unicode codepoint in manpage upasfs(4): remove duplicate -m definition (thanks rodri) manpages: shut up about tex(1) OTHER fortunes, rob, rsc, theo: What's this? https://plan9.io/ drop your /lib/keyboard sir william, I cannot wait till lunchtime. cpurc: remove obsolete device binds, run diskparts after $sysname is known. remove /env/boottime. document. termrc: put #u in front for endpoint renaming to be effective, handle multipe ether= tuples in ndb remove ipv6on back 9FRONT "CONTENTS, MAINTAINED, STABLE" RELEASED (2018/02/02) front http://9front.org/iso/9front-6350.c07f998304d6.iso.gz.torrent http://9front.org/iso/9front-6350.c07f998304d6.iso.gz dash 1 manual http://fqa.9front.org/dash1.contentsmaintainedstable.pdf NEW IN THIS RELEASE 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. KERNEL AND DRIVERS kernel: convert textmode cga screen contents to kmesg only once kernel: initialize cyclefreq for machno > 0 in guesscpuhz() kernel: remove Ipifc.mbps, unused. pc: fix wrong simd exception mask (fixes go bootstrap) pc64: fix kmap() and invlpg() devbridge: disable write blocking on ethernets, fix mss clamping devether: allow spoofing of source mac address for bridges; used by vmx devether: dont forward loopback packets on bridges devether: remove duplicated parseether() implementation (pull from libip) devmnt: use u32int for tagmask, simplify alloctag() devtls, devssl: avoid ~0UL comparsion (from drawterm) devvga: removing #v/vgabios, use /dev/realmodemem instead ether79c970: dont disable promisc mode when multicast table is not empty ether8169: add Macv45 for RTL8111HN, rename Macv45 -> Macv42 (thanks qeed, sam-d) ether8169: deal with kernel memory exhaution ether82557: don't turn off promisc mode when mcast table is not empty etheriwl, etherwpi: limit transmit queue buffer bloat to 48k (at 22Mbit [?] 20ms) gre: don't drop pptp packets when smaller than v4 header ipv6: set router R-flag when sendra is active for neighbor advertisement nusb/ether: dont forward loopback packets on bridges, remove read nonblocking hack realemu: fix pit bcd mode, fix precedence bug in argconv() format routine (thanks dan cross) usbxhci: add missing pexit() in xhcirecover proc (thanks sam-d) wifi: don't assume Wifi.rates[] is sorted, return net data rate for mbps (50% theoretical) wifi: don't implicitely update lastseen timestamp on nodelookup() wifi: filter out loopback traffic from myself wifi: get rid of custom hextob() routine, use dec16(), avoid copies in parsekey() wifi: learn target ip address from neighbor advertisements in dmat proxy wifi: matt damon wifi bridging support wifi: revert rate adoption divider, breaks arpunks wifi wifi: use protocol constants from ip/ip.h and ip/ipv6.h for dmatproxy () LIBRARIES libauth: add auth_respondAI() function to get AuthInfo for mschap/ mschapv2 libauth: fix out of bounds memory access in _parseattr() libauth: remove auth_wep() function, and non-existing httpauth() declaration libauth: simplify _attrfmt() using fmtprint() avoiding stack buffer libc: constant time implementation for encode(2) routines, fix base32 libc: make encXchr()/decXchr() functions available libflate: force non-empty huffman table in mkzprecode() for deflate libmp: use constant time encode(2) routines instead of lookup tables libndb: retire deprecated csgetval(), ndbgetval() and ndblookval() functions libsec: avoid unneccesary memory copies and redundant code in x509 libsec: fix mistake: strnchr -> strchr libsec: get rid of dummy data[1] in Bytes and Ints types (thanks pr) libsec: implement SPKI fingerprinting for okCertificate() libsec: remove asn1toDSApriv() libauth: remove auth_wep.$O from mkfile PROGRAMS auth/dsa: remove asn12dsa, dsa2pub, dsa2ssh and dsagen auth/asn1dump: include in mkfile authsrv: fix chap, implement mschapv2 authentication, include MPPE secret in the ticket aux/wpa: get rid of custom Hfmt() routine, just use encodefmt. use %E for mac addresses disk/edisk: allow printing and readonly inspection of hybrid MBR/GPT disks (thanks aiju) factotum: implement mschapv2 role=server authentication (for ppp) factotum: remove legacy wep protocol factotum: remove unused sshrsa.c factotum: replace custom hex parsing code with dec16() avoding timing side channels ip/dhcpd: remove old testing code ip/ipconfig: add v6 deault route from router advertisements ip/ipconfig: set on-link flag in router advertisement prefix info (fixes windows7) ip/ipconfig: use 2000::/3 instead of ::/0 for v6 default route ip/ipconfig: don't put automatic link-local address configuration in /net/ndb ip/ppp: mschapv2 support ip/ppp: remove left over debug print ip/pptpd: don't mess with ipifc (handled by ppp), slay note gorup on exit ip/tinc: handle and set ethertype for ipv6 ip/tinc: handle single byte noop and end-of-option-list tcp options in clampmss() ip: make pkt interfaces unbind on close (from inferno) ndb/cs: handle v4 only case for rudp ndb/dns: fix leak in myaddr(), normalize ip strings, cleanup rconnect: support -t timeout for aan like in drawterm; also rcpu, rexport/import stats: show amount of reclaimable pages (add -r flag) sysinfo: #c/swap -> #P/swap tlsclient: allow dumping the server's certificate with new -d flag tlsclient: remove X509dump() call, writes to fd 1 tlssrv: remove usage reference to lost auth/secretpem upas/fs: deal with imap returning more uid's than allocated from previus "messages" command upas/fs: fix precedence bugs, compare digest pointer to nil upas/fs: try to deal with nil mail body (can happen when fetch fails) venti/conf: fix padding so we write multiple of sector size venti: fix wrong channel element size for amd64 (thanks mycroftiv) DOCUMENTATION arch(3): document #P/realmodemem file auth(8): auth/debug tests both dp9ik and p9sk1 bridge(3): clarify manpage, this is a layer2 bridge factotum(4): document dp9ik, update protocol list ipconfig(8): remove dhcp mention from -6 example listen(8): add -a option to restrict announce address ppp(8): remove BUGS section, client auth has been fixed. vmx(1): fix virtio network bloomfilter webfs(4): document -d and -D flags OTHER /lib/bullshit: +converged +blockchain /sys/lib/dist/mkfile: fix cfg/plan9.ini dependency (only visible after binds) /sys/lib/dist: split 9boot into 9bootproto, make .386.iso and .amd64.iso targets inst: determine kernel for bootsetup from $bootfile and $cputype fortunes: Subject: [oss-security] nvi denial of service http://okturing.com/src/2115/body back 9FRONT "SCREENLOCK GOODNIGHT" RELEASED (2017/12/04) front http://9front.org/iso/9front-6245.6153167c7bd4.iso.gz.torrent http://9front.org/iso/9front-6245.6153167c7bd4.iso.gz dash 1 manual http://fqa.9front.org/dash1.screenlockgoodnight.pdf NEW IN THIS RELEASE 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. KERNEL AND DRIVERS kernel: introduce per process FPU struct (PFPU) for more flexible machine specific fpu handling kernel: make isaconfig() consistent, not inplace tokenizing the conf string pc64: allow using the FPU in syscall and pagefault handlers pc64: set ts flag before schedinit() cga: capture cga console contents on boot, make sure cgapos is in range devvga: properly handle physical screen size and panning devvga: re-render text from kmesg after resize igfx: allocate backing memory for framebuffer and hw cursor when not done by bios (from qu7uux) LIBRARIES libauth: replace proto=p9cr with new proto=dp9ik/p9sk1 role=login for auth_userpasswd() libmach: fix format for 8db sse shift ops libsec: AES-NI support for amd64 libsec: make includes consistent for sha2block*.c libsec: optimize aesCBCencrypt()/aesCBCdecrypt() libsec: unroll portable sha1block and sha2block functions libsec: write optimized _chachablock() function for amd64 / sse2 COMPILERS AND DEBUGGERS 6l: fix typo in optab table for APSLLQ (0x7e -> 0x73) PROGRAMS 6in4: add -m mtu option to specify outer MTU audio/flacdec: add eof handler avoiding endless spinning on broken files (thanks deuteron) auth/factotum: add role=login protocol variant to dp9ik/p9sk1 auth/login: add missing quotefmtinstall(), quote dom attribute games/blit: update screen when display address changes (thanks aap) inst/mounthjfs: use /dev/swap instead of #c/swap to determine memory size (thanks aap) screenlock: some improvements spin: Update to most recent version. (thanks Ori_B) tinc: implement experimental mesh peer to peer VPN from http:// www.tinc-vpn.org/ vmx: fix openbsd 6.2 amd64 !entrystate bug DOCUMENTATION errstr(2): add /sys/src/libc/9sys/rerrstr.c to SOURCE section plan9.ini(8): 9boot(8) is not a DOS program, remove outdated BUGS section tinc(8): spelling, thanks jpm OTHER /lib/rsc: It only works when we're in the process of preparing a release. back 9FRONT "SYNCHROPHASOTINC" RELEASED (2017/11/01) front http://9front.org/iso/9front-6204.09e34a98b1e5.iso.gz.torrent http://9front.org/iso/9front-6204.09e34a98b1e5.iso.gz dash 1 manual http://fqa.9front.org/dash1.synchrophasotinc.pdf KERNEL AND DRIVERS kernel: get rid of 36 bit Paerange mask in mtrr (supporting machines with more than 64GB of memory) kernel: don't tokenize inplace in isaconfig() to make /dev/reboot work kernel: introduce devswap #P to serve /dev/swap and handle swapfile encryption pc64: add ether82598 driver to configuration devfs: rewrite cryptio() ether82598: support for T540-T1, use physical addresses for isaconf port sdnvme: identify namespace list fails on intel ssd, just assume nsid= [1] xhci: do bounds checking in capability walking, check if controller vanished on init (thunderbolt unplug) LIBRARIES libauthsrv: preserve readcons() error message from read() error libc: cleanup atexit and put exits() in its own compilation unit libc: wunlock() part 2 libc: improve alignment of QLp structure on amd64, cosmetics libsec: add AES CFB and AES OFB stream ciphers libsec: allow \r\n terminated lines in decodePEM() libsec: export asn1encodedigest(), asn1encodeRSApub(), asn1toRSApub (), pkcs1padbuf() and pkcs1unpadbuf() libsec: make sectorNumber argument for aes_xts routines uvlong libsec: fix the (ape) build, bring ape libsec.h in sync with plan9 version libsec: rewrite aex_xts_encrypt()/aes_xts_decrypt() PROGRAMS aux/wpa: prevent PTK re-installation attack by replaying AP retransmits cwfs: use /dev/swap instead of #c/swap to determine memory size netaudit: check for fs= hg: disable tag caching, allows accessing hg repo from dump hgwebfs: simplify retry loop construction ndb/cs: icmp only supports version 4 addresses, icmpv6 only version 6 addresses rsa: add auth/rsa2asn1, check write error in auth/rsa2x509 and auth/ rsa2pub, document in rsa(8) ssh: remove extern declarations for pkcs1padbuf() and asn1encodedigest() (now in libsec.h) sshfs: use mtime for qid.vers, fix wstat without name change, fix wstat memory leak upas/fs: fix putcache(), sub-part messages should never go into the lru upas/fs: replace fixed cache table with lru linked list upas/smtpd: don't call syslog() from the note handler, this can deadlock vt: block when sending input to host (fixes truncated paste) winwatch: show windows with empty labels (thanks jpm) DOCUMENTATION aes(2): document aes_xts_encrypt() and aes_xts_decrypt() functions swap(3): document permissions and encryption behaviour, reference to memory(8) OTHER 9boot: limit read size to 4K for efi simple file system protocol COMING SOON tinc(8): mash peer to peer VPN back 9FRONT "SOLARIS ECLIPSE" RELEASED (2017/09/11) front http://9front.org/iso/9front-6165.2a79d5dddf41.iso.gz.torrent http://9front.org/iso/9front-6165.2a79d5dddf41.iso.gz dash 1 manual http://fqa.9front.org/dash1.solariseclipse.pdf NEW IN THIS RELEASE * multiple vm's in vmx(1) * window size changes with ssh(1) and vt(1) * games/wadfs KERNEL AND DRIVERS devdup: remove useless OCEXEC check, handled by namec() devsegment: handle ORCLOSE on segment directory correctly, fix wrong qid, missing COPEN flag for segmentcreate() devusb: double READSTR buffer size to 8000 bytes for devusb devusb: superspeed bandwidth allocation handled by controller, skip usbload() calculation devvmx: lilu dallas multivm devvmx: call vmxshutdown from reboot() function manually devvmx: more efficient data structure for memory map; simplified (more reliable) step function audiohda: Intel Sunrise Point-H support (thanks sam-d) audiohda: add pci id for ICH10 (thanks echoline) audiohda: add pci id for Intel 9 Series audiohda: add pci id for nvidia GM204 ether82563: add more pci ids for i210 and i354 from 9atom / openbsd ether82563: make the ethernet of thinkpad p50 work (thanks sam-d) ether82563: support for i211 with iNVM. (thanks mfny and brennan for testing) etheriwl: add pci id for Intel Centrino Advanced-N 6200 on x201 tablet (thanks arpunk) igfx: add did for x220 igfx: fix cdclk and dpll settings for dual channel lvds on sandybridge igfx: fix sandybridge fdi link training bits and ordering sdiahci: Intel 200 Series Chipset Family PCH support (thanks aiju) sdnvme: pass 0 instead of 0xffffffff as NSID for identify controller and create completion/submission queue commands (thanks Ori_B) usbxhci: abandon multiple requests per endpoint, cleanup usbxhci: handle out of memory in controller initialization usbxhci: implement recovery from host controller errors nusb/disk: add a 100ms sleep after ums reset, remove unused note handler, cleanup COMPILERS AND DEBUGGERS libmach: support disassembling from memory PROGRAMS awk: allow string as exit status awk: don't get into a infinite loop with eof while in string (thanks BurnZeZ) cwfs: -n always overrides postservice() name, no matter if config mode changes service doom: add games/wadfs doom: clean up temporary mus files ssh: issue "winchon" ctl request to /dev/consctl to get interrupt on window size change from vt(1) sshfs: fork ssh in its own namespace so it wont keep the mountpoint open sshfs: start sendproc and recvproc in the same notegroup as the fs process so theadexitsall() works on sshfs: ending. sysinfo: only dump #r/nvram on amd64,386 sysinfo: run aux/icanhasvmx with verbose flag vmx: lilu dallas multivm vmx: VGA framebuffer should be normal memory vmx: don't realloc virtio queues - breaks pointers vmx: fixed code that assumed uintptr==uvlong vmx: memory map improvements, x86 simulator for MMIO vmx: allocate sticky instead of more expensive fixed segment vmx: fix hlt idle problem vmx: pass multiboot framebuffer info to kernel vt: block selection mode for snarf vt: fix silly bug causing characters be drawn one at a time vt: implement /dev/cons and /dev/consctl as a fileserver, winch, incremental redraw vt: turn off nl -> nl+cr translation default in raw mode, don't scroll more than screen height OTHER booting: rename pcf kernel to pc, remove pcf, pccpuf, pccpu64 kernels, update documentation inst: don't hardcode /net/ether0, might have usb ethernet inst: get rid of halt, just run fshalt in finish directly inst: get rid of ppp configuration inst: post newfs fileservers under /srv/$fstype.newfs to avoid conflict with preexisting local filesystem DOCUMENTATION vmx(3): document changes to devvmx interface back 9FRONT "FULL SPEED (SINCE 1.0)" RELEASED (2017/08/01) front http://9front.org/iso/9front-6111.cef8f3fb17e6.iso.gz.torrent http://9front.org/iso/9front-6111.cef8f3fb17e6.iso.gz dash 1 manual http://fqa.9front.org/dash1.fullspeed.pdf NEW IN THIS RELEASE * debug watchpoints * multiboot framebuffer * usb3 support (xhci) * vmx(1), vmx(3) KERNEL AND DRIVERS kernel: add support for sticky segments (cached, preallocated, never paged) kernel: fix bounds check in screenputc() kernel: pass bootargs also in multiboot command line, retire the bootline mechanism to pass arguments to /boot/boot pc kernel: mkfile target usbehcipc.$O needs ../port/usb.h, add usbxhci.$O pc, pc64: adapt devvmx to ork on pc64 pc, pc64: enable usbxhci in the configuration pc, pc64: support for multiboot framebuffer, common bootargs and multiboot code pc, pc64: debugexc: ignore exception if in kernel mode and can't get hold of up->debug 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() pc, pc64: reset DR7 in mmurelease pc: add vmx device zynq: simplify initcode stack setup (just do it in init0 when the stack is mapped) devusb: fix wrong pollival calculation in setmaxpkt() devvmx: add support for SG_STICKY segments devvmx: add support for extrap command to configure halting on exceptions devvmx: error handling in clearmeminfo devvmx: fix CR0/CR4 readout; also don't exit on PAUSE instruction devvmx: remember segment names and free segments properly devvmx: support debug registers; simplify assembly devvmx: support pat and efer registers usbehci: fix crash in cancelisoio() for highspeed device due to wrong pollival usbohci, usbehci, usbxhci: save mmio base address in ctlr, cant PADDR () on 386... usbohci, usbuhci, usbehci: use physical address of registers for matching controllers and printing usbxhci: basic iso write support (usb soundcard playback) usbxhci: better approach to unstalling endpoint and fixup td ring usbxhci: commit work in progress xhci driver, no config yet usbxhci: experimental usb3 support usbxhci: handle changing maxpkt on control endpoint by reevaluating endpoint context usbxhci: implement command timeouts and aborts, serialize unstall usbxhci: implement controller handoff, ignore usb3.0 ports, honor pollival for isochronous endpoints usbxhci: provide shutdown function to halt the controller usbxhci: simplify xecp() usbxhci: use physical register addresses for matcing controllers and printing. simplify endpoint slot initialization. aux/vga: simplify vesa by adding rgbmask2chan() function nusb/usbd: create endpoint files for conf #1, usb3 preparation nusb/usbd: support for usb3 hubs LIBRARIES libfis: fix inverted CHS bit libregexp: fix lexer so it doesnt move past the string when it gets a \ escape COMPILERS AND DEBUGGERS 8l, 6l: get .frame offset right undoing $-4 hack acid(1), proc(3): document watchpoints acid: add getfields() builtin acid: always create proclist variable acid: provide hooks 'procattach' and 'dying' acid: watchpoint support ktrace: handle amd64 stacktraces correctly PROGRAMS add aux/icanhasvmx aux/cpuid: decode family and model bitfields auth/factotum: complete p9any v.2 server protocol, but don't enable it. hpost: delimit @filenames by newline so files with whitespace aren't mangled hpost: fix field content mangling when newlines are present upas/fs: handle plumbing for new messages for concurrent index updates vmx: I/O string instructions, incomplete support for IDE disks, misc fixes vmx: add support for (so far) crude 9p debugging fs; add gdb stub; clean up linux gdt code vmx: clean up region handling code; changes to support amd64 vmx: don't zero all memory, don't abandon uart on eof, sleep before transmitting uart data vmx: fix '-v text' vmx: fix non-vesa framebuffer mode vmx: fix translateflat on 64-bit vmx: i8042: translation changes reported keyboard id 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 vmx: obsdfb: check if curmode is nil vmx: round up frame buffer size to whole pages, ignore vga access in linear framebuffer, tell openbsd about framebuffer vmx: support debug instructions vmx: VESA support and other misc I/O improvements vmx: complete cmos vmx: fix build on non-x86 architectures (switch vlong) vmx: fix pic 'specific eoi' bug, fix kbd bug, add fake IDE and floppy controller vmx: fix virtio bugs vmx: implement virtio reset vmx: improve PIT/keyboard support vmx: obsd: load kernel symbol table and allow setting root device vmx: openbsd support: parse more options vmx: remove debugging print vmx: slightly more vga support vmx: support EFER and PAT access vmx: support loading openbsd kernels xd: use new bio magic to make -u more efficient OTHER /lib/{rob, rsc, theo}: Yup. remove /sys/lib/##redacted##.##redacted## (thanks ##redacted##) DOCUMENTATION authsrv(6): don't say old p9any isnt in use anymore... pc(1) clarification print(2): clean up vlong flag description rc(1): catch up with a change made long before 9front segment(3): document sticky segment type vmx(1), vmx(3): add vmx documentation back 9FRONT "MARITIME ENGINEERING STANDARDS" RELEASED (2017/05/04) front http://9front.org/iso/9front-5966.df2c352ae695.iso.gz.torrent http://9front.org/iso/9front-5966.df2c352ae695.iso.gz dash 1 manual http://fqa.9front.org/dash1.maritimeengineeringstandards.pdf KERNEL AND DRIVERS kernel: avoid waserror() botch in devwalk (from drawterm, thanks aiju) kernel: fix memory leak in checkpagerefs() debug function (thanks aiju) kernel: fix rewinding in directories with pread() offset kernel: fix twakeup()/timerdel() race condition pc: handle PCMP and RSD being in low (kaddr) or reserved (vmap) memory pc: fix memory leak and add clog() function pc64: state mp.h dependency for archacpi.$O devdraw: ignore drawdebug command devsd: handle case where theres no ifc->enable() function devsd: check return value of ifc->enable(), don't leak unit name/user strings devvga: include hwgc in vgactl file devvga: remove unused copy of checkport() function sdvirtio: return 1 for success in vioenable()/viodisable() sdnvme: NVMe controller driver (work in progress) sdnvme: don't write completion queue doorbell register when nothing has been processed sdnvme: enable in pcf, pccpuf, pc64 kernel configuration LIBRARIES lib9p: allow rewinding in 9pfile directories libavl: fix documentation libavl: lookup can return the closest match libdraw: get rid of _drawdebug variable libmemdraw/libmemlayer: get rid of drawdebug prints libmemdraw: get rid of kernel iprint() emulation libregexp: miscellaneous little cleanups libsec: sha256 support for thumbprint files, use it in ssh as well libsec/tlshand: fix ECDHE and DHE for SSLv3 libsec/tlshand: fix mpint to bytes conversion, reorganize send/recv buffer, check for overflow in msgSend() libsec/tlshand: simplify tlsReadN() COMPILERS AND DEBUGGERS 5e: fix special bitshift and rotations [012568kqv]a: correctly lex full range of integers in the assemblers (thanks Ori_B) fix yacc bug (found by dan cross) PROGRAMS aux/wpa: go to background when not prompting, handle open networks chgrp: remove unused function declaration (thanks archeus) cwfs: allow "none" user to rename files factotum: append public rsa encyption exponent after the modulus file: recognise Xilinx bitstreams fortune: avoid buffer overflow for lines >= 2K, make sure index has at least one entry, use nrand()/ntruerand() for uniform distribution games/blit: mkfile: install into /bin/games games/blit: always show top-left corner; add tony kaku's -m flag games/blit: remove strange debugging line games/galaxy: fix exit race condition by pausing the galaxy before threadexitsall games/galaxy: parallelize gravitational force calculations games/md: copy updated cpu.c from blit hjfs: Add comment to change the OFF size to 8 when given the chance hjfs: Clear all refs to zero when reaming. hjfs: Fix bugs in ref count scan check. Enable as a console command (caveat: command arguments will change as I implement more functionality) hjfs: add simple scan check of directory entry blocks hjfs: avoid 8c "non-interruptable temporary" warning hjfs: check: check a block if its ref count is not zero. Also check all the ref counts of blocks of a directory and clean up messages hjfs: disable hjfs check until more functionality is complete hjfs: fix broken dprint hjfs: improve error messaging around blocks that are not found hjfs: merge start of hjfs check implementation hjfs: simplify dprinting hjfs: start implementation of checking a directory ip/torrent: avoid requesting same chunks ip/torrent: avoid peerid collision using truerand() instead of time (0) ip/torrent: exit immidiately when file is complete after verification and not being in seed mode ndb/dns: double Maxretries for long cname redirection chains nusb/lib: make usbcmd() return value symmetic; returning size of data phase (if any) (thanks aiju) nusb/ptp: treat any assocation as a directory nusb/serial: pl2303: better error handling replica: use libavl for avl tree implementation rsa2ssh: drop support for version 1 key format ssh: weekend project ssh: actually handle flow control and channel id's ssh: add "none" method to find out list of acceptable methods ssh: add support for subsystems ssh: cleanup debug messages ssh: close the channel when vt hangs up ssh: do not try authentication methods that we know are not possible ssh: document thumbfile options ssh: fix locking, and key reexchange handling ssh: fix typo ssh: implement password and keyboard-interactive authentication methods ssh: implement primitive hostkey verification ssh: increase initial window size for better throughput ssh: loop keyboard-interactive on failure ssh: make number of retries configurable ssh: print the whole ssh-rsa hostkey in base64 when thumb check fails sshfs: add -r and -M options sshfs: check correctly for directory bits; calculate parent directory correctly sshfs: don't cache directory contents sshfs: don't crash when no /etc/password file could be read on the remote side sshfs: fix -r / retulting in "//foo" paths, memory leaks, use estrdup9p() sshfs: look up uid/gid from /etc/^(passwd group) sshfs: remove debug print sshfs: reset SReq->reqid field to fix double-free of request ids upas/common: deliver mail to mdir as .tmp file and rename after it has been fully written upas/fs: don't abort on malformed unix header upas/fs: fix dir comparsion and skip directories in mdir, avoid stat upas/fs: fix sync condition upas/fs: fix warning about unused Err: label upas/fs: make use of Maxmsg consistent upas/fs: remove imap lastread debounding upas/fs: simplify imap4read() upas/send: use openfolder() to deliver mail to avoid code duplication upas/smtp: Revert smtp dial string behavior to match that of old upas (thanks sam-d) upas/smtp: fix cram-md5 auth, simplify doauth(), check varargs for dBprint() upas/smtp: generate 128-bit random message id (was 32 bit), use dBprint(), cleanup unused variables vt: convert from event to threads vt: cursoron, don't resize winow when replying history vt: fix background drawing vt: fix xterm cursor keys vt: handle application/normal mode (really fixes cursor keys) vt: handle insert/delete/home/end keys for vt220/xterm vt: handle nocolor flag and reversed background colors vt: handle underline attribute vt: implement snarf support vt: increase history buffer to 64K runes vt: send interrupt on exit, open logfile OCEXEC, run host after environment got exported, send rest of arguments to host OTHER change cpurc to look for service folder in /cfg/$sysname and /cfg/ default disable all services except 17019, 17020 by default dist/ndb: move sources auth server to ndb/common, list root dns servers in ndb/local as a fallback inst/configether: in manual network configuration, ask for dns server /lib/rob, /lib/theo: I don't think so. DOCUMENTATION 9p(2): fix typo in manpage add blit(1) manpage plumb(2): Fix typo in description of Plumbdelattr (thanks sam-d) webfs(4): timeout is in milliseconds not seconds (thanks sam-d) vt(1): the "send" menu became "paste" ssh(1): add $home/lib/thumbfile to FILE section ssh(1): add bugs section about host not being authenticated ssh(1): initial documentation, needs examples for authentication ssh(1): refer to thumbprint(6) for the sshthumbs file format rsa(8): fix description of rsa2ssh (now, ssh2 format only) add sshfs(4) manpage sshfs(4): fix bad cross reference back THANKS FOR COMING IN 9FRONT "poleznye duraki" RELEASED (2017/03/19) front http://9front.org/iso/9front-5817.cb352df7ccf2.iso.gz.torrent http://9front.org/iso/9front-5817.cb352df7ccf2.iso.gz dash 1 manual http://fqa.9front.org/dash1.usefulidiots.pdf KERNEL AND DRIVERS ether8169: add support for RTL8106E (thanks _potato) ether82563: work arround phyprobe() failing on 82579LM without cable plugged in (thanks mischief) pc, pc64: bump Qmax in devarch pc, pc64: get rid of active.Lock and active.thunderbirdsargo pc, pc64: avoid AP's spinning in syncclock(), don't wait for thunderbirdsargo pc, pc64: assume tsc and lapic clock rate on application processors is the same as on bootrap processor pc, pc64: give cpu servers as many image cache strctures as processes pc: don't use active.thunderbirdsargo in vunmap() tlb flush code pc64: enable cputemp driver teg2: fix format string warning in mmu.c devmouse: refactor screen blanking logic LIBRARIES libaml: make heap size field int, implement BankField definitions COMPILERS AND DEBUGGERS 5l,6l,8l,kl,ql,vl: allow duplicate GLOBAL symbols (from Ori Bernstein) PROGRAMS auth/asaudit: check factotum key ; netaudit: mention asaudit NEW auth/asaudit: missing \n in print auth/asaudit: quote user and dom attributes in factotum key auth/keyfs: support -r flag to mount read-only auth/readnvram: also print dp9ik key authsrv: more useful error reporting authsrv: don't hash in hostowner key for keyseed authsrv: salt the keyseed from /adm/keyseed file authsrv: handle short reads in initkeyseed() authsrv: fix mkkey() dummy key generation (thanks aiju) authsrv: get rid of needreply parameter by changing vnc protocol handler cwfs: handle DMTMP flag in create games/doom: music support (thanks qu7uux) games/doom: avoid /dev/cursor fd leak into music process games/doom: don't spawn midi process when opening /dev/audio failed (thanks qwx) games/galaxy: Change button 2 to reposition the galaxy, remove "move" from the button 3 menu games/galaxy: avoid unnecessary calculations games/galaxy: fix creation of new bodies games/galaxy: fix zoom games/galaxy: new mouse behavior games/galaxy: simplify zoom loop games/galaxy: tweak pausing behavior games/midi: ignore bends, allow piping from stdin and to stdout, write in chunks from within sample loop (thanks qu7uux) games/mus: midi converter (by qu7uux) gs: fix dangleing pointer crash with "lock" (ghostscript Bug 697204) gs: check for sufficient params in .sethalftone5 gs: validate parameter is dict in .initialize_dsc_parse hgwebfs: keep trying as long as we get needkey response hgwebfs: rewind data before pushing ip/ipconfig: don't null terminate the dhcp string options. play, file: recognize midi and mus audio tapefs: handle more cpio formats (thanks qrstuv) upas: merging erik quanstros nupas upas/fs: fix memory leaks in tls code, handle tls in a common wraptls () function upas/fs: tls sni support for pop3/imap upas/fs: remove planb mbox code upas/fs: getting rid of the fine-grain locking... upas/fs: remove unused segbrk memory allocator upas/imap4d: change listener from ip/imap4d to upas/imap4d upas/imap4d: simplify auth with encodefmt (backport from 9front) upas/spf: delete okcidr(); always trust spf records DOCUMENTATION vga(3): complete list of vga controllers and software cursors mus(1): fix manpage references send(8): document new reject behaviour with -r flag diskparts(8), prep(8): add edisk in NAME section games(1): document games/midi -c arguments add mdir(6), splitmbox(8) and update upasfs(4) add redact(1) authsrv(6): fix typo "ther" -> "their" (thanks aiju) OTHER update /lib/legal/NOTICE inst: make command window not overlap stats window in glendas riostart cdproto: make mdir for glenda, various cleanups back 9front "FOR IMMEDIATE RELEASE" Released (2017/02/21) front http://9front.org/iso/9front-5736.d347c9119bb1.iso.gz.torrent http://9front.org/iso/9front-5736.d347c9119bb1.iso.gz PRAISE FOR 9FRONT'S BOLD ACTION 9front "Is Coming Out As A Winner On Many Issues..." - SD Times rkrishnan, Cisco Systems: "I am extremely sorry to see plan9 die a silent death." (rkrishnan.org, 10/25/13) Rod Person, VPN Cryptographer: "Does 9front have an email app and how usable is mothra, I'm guessing not ebay or youtube?" ( daemonforums.org, 6/25/15) Christoph Reiter, German: "Wer verwendet 9Front eigentlich? Die Antwort lautet: fast niemand." (golem.de, 8/3/16) seesomesense, Hacker News: "Plan 9 was probably the finest operating system in the world." (HN, 11/16) pranomostro, Redditor: "The future of plan9 is pretty bleak imho." ( reddit.com, 1/17) dash 1 manual http://fqa.9front.org/dash1.forimmediaterelease.pdf kernel and drivers kernel: add "close" ctl message for tcp connection to gracefully hang up a connection without a tcp reset (used by go) kernel: make the mntcache robust against fileserver like fossil that do not change the qid.vers on wstat pc/pc64: get rid of timerset(0) case, was used with "i8253set off" ctl sgi: change definition of tas() to take void* like the rest sgi: cleanup timer code sgi: get rid of timerset(0) case ether82563: support for i219 (tested on t460p, thanks aiju) etheriwl: add support for Centrino Advanced-N 6030, 6235 (thanks khm, openbsd) vgaigfx: enable softscreen by default wifi: timestamps in debug print, flush queue on deassoc, shorter roam timeout, timeout in blocked state, fix essid seprint race libraries libmp: avoid temporary buffer allocation in mprand() libmp: fix mpmod() aliasing bug when n == r and x < 0 (thanks aiju, mischief) libregexp: simplify regular expression vm implementation libregexp: improve the transition to next available thread, instruction, and generation libregexp: fix assert check for compile1 instruction count libsec: replace des based X9.17 genrandom() with chacha random number generator libsec: implement extended 192-bit nonce xchacha variant and hchacha function libsec: avoid temp variables in chacha/salsa ENCRYPT() macro libsec: have rsagen() always produce postive !dk to avoid confusion libsec: need PKCS#9 "Extension Request" attribute (rsareq()) libsec: check if modulus is too small for message in pkcs1padbuf() libsec: fix mkbigint(), asn.1 uses two's compement signed representation libsec: handle signed asn.1 bigint to mpint conversion for x509 libsec: revert asn1mpint(), rewrite rsa signature validation, cleanups libsec: make X509toECpub() return CN name like X509toRSApub() libsec: zero name buffer in X509toECpub() compilers and debuggers 6c, 8c: fix "DI botch" evacuating DI/SI/CX registers to ".save" variables 6c: reverse register allocation order to avoid having to spill AX,DX and CX programs aan: check negative message size in header aan: use unsigned message counters, reject repeated acks, cleanup debug prints aan: remove fcallfmt audio/flacdec: continue after decode error (thanks deuteron) auth/factotum: fix memory leak in findkey() auth/factotum: support sha256 algorithm in rsa pkcs#1 signing auth/keyfs, auth/secstore, auth/secuser: use ulong for time aux/data2s: compress output aux/wpa: dont send initial "start" message, faster polling interval waiting for connection cfs: fix cfsctl interaction with mount cache (mount -C flag) cwfs: fix cwcmd startdump cwfs: handle worm exhaustion more gracefully fplot: parse negative numbers in argument to -r option (thanks qu7uux) fplot: fix zoom egetrect check (thanks qu7uux) games/galaxy: add n-body simulator games/galaxy: fix crash on write to closed display games/gb: fix typo in the routine to load timer data (thanks qwx) games/gb: timer array should be unsigned (thanks qwx) games/gb: fix bug that prevented timer data from being accessed (thanks qwx) games/jukefs: fix realloc sizes (thanks mischief) games/mix: Add Knuth MIX emulator/assembler games/mix: fix STZ bug, print CMPA instruction games/mix: implement Knuth's specification for comments inst/bootsetup: fix unformated esp check (thanks yellow_apple) ip/gping: fix corruption due to Machine.last pointer not being maintained in pingclean(), cleanup unused stuff ip/ipconfig: don't write /net/ndb when getting config from ndb (-N) ip/ipconfig: have to refresh /net/cs, /net/dns after ndbconfig even tho /net/ndb didnt got written keyfs: print error message when reading /adm/keys fails playlistfs: fix playc chan type (thanks mischief) rcpu: use $cpu environment variable for host when not specified rsagen: prefer 65537 as the default exponent when elen == 0, otherwise pick randomly rx: remove ssh code samterm: avoid flushimage when theres nothing new to flush ssh: R.I.P. documentation auth(8): document authsrv -N flag cpu(1), import(4): note deprecation and refer to rcpu(1) ec(2): document ecencodepub(), ecdecodepub() and ecpubfree() and list all the curve parameter functions ec(2), rsa(2): document X509toECpub(), X509ecdsaverify(), X509ecdsaverifydigest(), X509rsaverifydigest() galaxy(1): terminate .EX sections with .EE rsa(2): document rsafill() srv(4), &c: remove ssh/sshsrv references other cdproto: explicitely create /$objtype/bin subdirectories for all archs /sys/lib/plumb/basic: fix rule for audio files (thanks deuteron) back New 9front release "GZ" (2016/12/28) front http://9front.org/iso/9front-5641.6149f97a7801.iso.gz.torrent http://9front.org/iso/9front-5641.6149f97a7801.iso.gz dash 1 manual http://fqa.9front.org/dash1.gz.pdf kernel and drivers kernel: avoid padblock copying for devtls/devssl/esp, cleanup debugging kernel: fix missing ; in panic() call omap: fix format string warning %d for long omap: cleanup mouse.c, just a dummy for mousectl() pc: pat write combinding support for 386 kernel, honor cpuid bits pc: modify cpu0 page tables in patwc() instead of current cpu ones pc64: check if vmap() range fits in VMAPLEN window, remove unneeded vmapsync(), rename fault386() to faultamd64() pc64: implement simple write combining for framebuffers with the PAT xen: fix build by adding missing rdrandbuf() function archacpi: fix format string warning on amd64 gre: check nil for pullupblock() ip: always pass a single block to Medium.bwrite(), avoid concatblock () calls in Dev.bwrite() ip: remove nil checks for allocb() and padblock() ip: fix typo (rfc -> ifc) ip: get rid of update_mtucache() and restrict_mtu() prototypes ip/nullmedium: free passed block in nullbwrite() ip/pktmedium: fix wrong hsize, theres no ethernet header on packet media ip/pktmedium: no mintu, no maclen... thi is ip packets ip/tcp: remove useless nil checks for padblock() and allocb() return value ip/tcp: only calculae mss from interface mtu when directly reachable for v6 ip/tcp: never raise the mss over the link mtu < 1280 for v6 qio: big cleanup of qio functions qio: fix comments, fix qiwrite() on close queue, remove debug setmalloctag() call in qwrite() qio: implement concatblock() with pullupblock() qio: get rid of unused qcopycnt debug variable qio: make readblist() offset of type ulong as the rest devbridge: various bugfixes and improvements from charles forsyth devbridge: simplify etherwrite() as we dont deal with block lists devcons: simplify putstrn0() devloopback: simplify loopoput() devmnt: avoid memory copies of I/O rpc buffer by using bwrite() devmouse: various bugfixes, simplify devmouse: change msec argument of *mousetrack() to ulong devmouse: remove unused static map[] array devtls: remove unused get32() function audioac97: support for ICH4-ICH7 based cards with memory mapped registers (thanks echoline) libraries libauth: don't attempt to mount when opening mount srv file fails in nsop() libavl: put debug functions back libc: move calloc() into its own compilation unit libmemdraw: remove unused static drawbuf variables and ptrfn() declaration libmemdraw: cleanup fillpoly(), remove unused fillcolor hack libmp: mpxor: sign should be 1/-1, not 0/-1 libregexp: put debug functions back ape/libsec, libsec: add secp384r1 curve parameters for tls libsec: remove unused aes_setupDec libsec: remove unused get32() function libstdio: fix sclose() buffer overrun when terminating string, realloc() error handling (thanks porlock) compilers and debuggers 8c: fix double compiling FNX complex lvalue in cgen64() acid: fix y.tab.h dependency for proc.$O programs aan: didn't ask about sendcommand auth/as, auth/none, auth/newns: consistent handling of command arguments, cleanup aux/acpi: make it stats(8)-friendly awk: improve random number generation clock: remove unused variable cryptsetup: fix bugs and cleanup nusb/ether: support for "bridge" ctl message page: remove unused variables ramfs: remove unused variable rcpu: avoid filedescriptor conflict with <{} (thanks mycroftiv) stats: alternatively read battery and temp from aux/acpi tar: remove unused variable vncs: update devmouse code vncs: don't prompt for password on auth_respond() failure winwatch: middle mouse button click also prompts for label winwatch: no more 'l' key labeling winwatch: put previous label contents in edit buffer for relabling documentation alv(2): new avl implementation srv(4): add SOURCE for srvtls other cdproto: explicitely create /$objtype/bin subdirectories for all archs tcp17019: make service proto and netdir arguments optional (for aux/ listen1) back New 9front release "LOOKS GREAT IN MOTHRA" (2016/10/27) looksgreatinmothra.front.png torrent direct download dash 1 dash 1 manual kernel and drivers devcap: timeout capabilities after a minute, fix memory leak, paranoia devcons: remove /dev/reboot "halt" command... devproc: do unsigned subtraction to get MACHP(0)->ticks - up->times [TReal] delta devip: simplify ipbwrite() by using retun value of qbwrite() ip/*: simplify code as packblock() and concatblock() will never error ip/icmp: only reply to echo request when directed to us and source is unicast kernel: tsemacquire() use MACHP(0)->ticks for time delta kernel: make sure procalarm() remaining time doesnt become negative kernel: use tk2ms() instead of TK2MS macro for process time conversion kernel: always do unsigned subtractions for m->ticks delta for updatecpu() and rebalance(), handle ticks wrap arround in hzsched() kernel: fix type for utime/stime in pexit(), fix debug format strings kernel: make randomread() fault reentrant kernel: rekey chacha state on each randomread() invocation kernel: replace various custom random iv buffer filling functions with calls to prng() kernel: xoroshiro128+ generator for rand()/nrand() etherzynq: implement promisc mode and multicast filter support nusb/ether: experimental pomisc mode and multicast support for smsc and asix nusb/ether: multicast and promisc support for rtl8150 (url) nusb/ether: promisc and multicast support for admtek pegasus (aue) nusb/kb: set usage to 0 (undefined) for items exceeding usage list nusb/lib: fix wrong endpoint id when openep() finds already existing endpoint file scram: disable GPEs before entering S5. x200s shuts down properly now pc/archacpi: provide generic #P/acpimem file aux/acpi: batteries and CPU temp reading so far libraries ape: bring strtod() in line with plan9's libc version ape: fix format clash, %z is for size_t (which is a long currently), not pointer sized lib9p: limit the number of srv processes kept arround 8 libc: dont use floating point for portable umuldiv(), use 64 bit uvlong libdraw: avoid dropping queued button change mouse events in emouse() programs auth/factotum: bound the number of srv processes to 16, error the 9p rpc when it is over limit cpu: quote remaining remote command arguments, don't syslog on missing /mnt/term/dev/cpunote file gif: just read and decode the first image when -9 or -c flag is specified ipv6on: get network device from $netdir/ipifc/*/status iwhois: make -n work, add .org, and a couple minor changes mothra: avoid flushimage() calls, event() will implicitely flush mpc: remove unused yylval type rio: fix onscreen(), improved bandsize() sam: make current filename available to shell commands in $% (thanks aiju) scat: hjdicks for amd64 webfs: don't use cached connections when posting documentation authsrv(2): update Nvrsafe structure to include aesmachkey ip(3): spelling, update description of /net/ipifc/*/status format pc(1): _ handling in numbers was broken at some point; restore documented behaviour pc(1): add nsa() command pc(1): add pb (thanks, BurnZeZ); add bit numbering pc(1): bugfix: allow setting output base to 0 (thanks, deuteron) 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) other fortunes: does that me a dipshit looksgreatinmothra.back.png New 9front release "THINK ABOUT THE FUTURE" (2016/09/04) thinkaboutthefuture.front.png torrent direct download dash 1 dash 1 manual notes This release adds aiju's games/timmy, a physics simulation game and a bignum calculator for programmers called pc. 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. kernel acpi: ADR and BBN might be methods, so use amleval() to evaluate the value aml: define amlintmask and set it according to DSDT revision (64bit / 32bit) aml: implement ToInteger() and Match() instructions devmnt: fix mistake in mntrahread() devsdp: keep cipher states in secret memory devssl: allocate cipher states in secret memory devtls, devssl: make sure channel has ORDWR mode and is not a mount chan on fdtochan() devtls: allocate cipher states in secret memory ether8169: fix wrong mbps setting (from qu7uux) etheriwl: add pcid 0x0082 for Intel Centrino Advanced-N 6205 variant ip/esp: allocate cipher states in secret memory ip/il: dont attept to connect over IPv6, IL only supports IPv4 packets kernel: add secalloc() and secfree() functions for secret memory allocation kernel: dont pprint() into 9p channels kernel: more (arm) compiler friendly mul64fract() kernel: switch to fast portable chacha based seed-once random number generator swap: make sure swap chan has ORDWR mode on fdtochan() wifi: allocate cipher states in secret memory, do AESstate key setup once libraries ape/libap: add d_stat struct in dirent struct allowing the avoidance of stats ape/libauth: add PASSWDLEN constant to compile passtokey.c from native libauthsrv (thanks lawler) libauth: fix mount file-descriptor leak in auth_chuid() libauthsrv: ANAMELEN -> PASSWDLEN libauthsrv: export common readcons() routine and introduce PASSWDLEN constant libc: add poolisoverlap() and definitions for Pool *secrmem libc: native addv() and subv() routines for arm libcontrol: primitive text entry cut and paste with mouse libflate: add bounds checking on decode array, add sanity checks in hufftab() libframe: consistent use of nil vs. 0 libmach: fix RORREG, right shift with shift count 0 means >>32 libmp: allow passing nil to v,x,y results of mpextendedgcd(), simplify mpinvert() libmp: fix mpnot and add mpasr libmp: fix mptov and mptouv libmp: mpdiv: negative divisor has to flip sign of quotient libmp: mpnrand(), what was i THINKING libmp: mptrunc: don't write to r->p[r->top] libmp: mptrunc: normalize after mpassign to handle the case b==r libmp: remove unused mpeuclid.c libmp: strtomp: fix mpbits() call in octal code libmp: strtomp: update the returned char* even if there were no characters parsed libmp: timingsafe sign flip for small power-of-two negative divisor for mpdiv() libsec: add scrypt password based key derivation function libsec: chacha: calculate rounds in separate function (helps registerizer), get rid of unrolled code compiler 5a: ROR instruction 5a: assemble constant >>0 right shifts as <<0 (no shift), allow >>32 5c: do shift propagation for rotate right (ROR) 5c: fix int -> uvlong cast bug (thanks to qwx on his patience on a the trouble session to narrowing it down) 5c: format assembly constant right shift encoding 0 as >>32 5c: handle unused results for cgen64() 5c: support for bit ROR, native 64 bit arithmetic 5l: ROR instruction 5l: format assembly constant right shift encoding 0 as >>32 6c: subsitute floating point registers eleminating MOVSD and MOVSS instructions in peephole pass 8c, 6c: native ROL (cyclic shift) instruction support, improve peephole optimizers ?c: track ../cc/cc.h dependency and rebuild cc.a$O as neccesary cc: add OROL op to side effect free op list programs Bfn: add Bfn script - find source code for function 9fs: remove juke, kfs and snap targets, caching for other and dump acme/win: implement /dev/wdir file in win to change directory tagline, remove awd audio/flacdec: exit on decode error, print error message auth/*: various cleanups, use common readcons() from libauthsrv, zero keys after use auth/changeuser: fix misleading print (secret is 31 chars max, not 256) auth/factotum: use common readcons() function from libauthsrv auth/fgui: use pale colors auth/login: add dp9ik key to sub factotum, get rid of temporary /srv file auth/secstore: use common readcons() routine from libauthsrv awk: fix awk format printing bugs (thanks aiju) disk/prep: if no 9fat, reserve space for plan9 partition table in autopart (thanks Shamar) games/doom: fix blazing door sounds (from qu7uux) games/doom: use Kprint for pause function (from qu7uux) games/timmy: added timmy - a physics sandbox hgwebfs: make hgwebfs prompt for password make error handling in 9p service loops consistent mercurial: use new d_stat from dirent structure in osutil.listdir mk: remove buggy and unneeded syminit() function (thanks qurstuv) mk: remove buggy and useless symtab functions (thanks qrstuv) ndb/cs: don't lookup AAAA records for IL, make sure translated address is IPv4 for IL, consistent use of nil vs. 0 for pointers ndb/dns: purge db records on refresh for resolvers, remove old debug and testing code ndb/dns: remove procname statistics and restart feature, cleanup 9p service loop pc: added pc - programmer's calculator pc: add cat() function pc: add gcd, rand and minv; set base of logical operation results to 0 pc: add rev function python: remove automatic compiled module loading (.pyc files) ratrace: fix fork/exec race with "nohang" procctl (like a debugger) rc: implement 9atoms ` split {command} syntax extension rc: write /dev/wdir after printing the prompt, not after executing "cd" command rio: move the test if w is allowed to change cursor into wsetcursor() togif: -E flag to read animation from stdin upas/fs: remove checkmboxrefs() debugging code, properly handle errors in 9p loop vga/igfx: add pci did's for kenjis intel graphics cards. vga/igfx: fix integer overflow in datam calculation (from qu7uux) vga/igfx: work in progress fdi link train for sandy bridge, properly calculate fdi and displayport lane count webfs: avoid retry loops when we got a bad key in factotum webfs: include factotum key query in error string for 401/407 Unauthorized status webfs: less aggressive url normalization; never unescape reserved characters in path/query/fragment documentation acme(1): remove references to awd aml(2): document amlintmask authsrv(6): document session secret key derivation for p9sk1 and dp9ik mp(2): document mplogic functions pc(1): document pc - programmer's calculator rand(2), cons(3): clarify /dev/random behaviour rc-httpd(8): fix wrong manpage section index generation for rc-httpd (8) regexp(2): add history for libregexp rio(4): document text truncation src(1): document Bfn thread(2): threadgrp() -> threadgetgrp(), thanks jpm timmy(1): games/timmy manpage other fortunes: Emacs now supports webkit. thinkaboutthefuture.back.png New 9front release "NINE FRONT DON'T QUIT!" (2016/05/30) [nfdq] torrent direct download dash 1 dash 1 manual notes * Encrypted TCP booting (over TLS) is now possible. Simply choose tls at the bootargs prompt. See: /rc/bin/service/tcp17020 * The 9front.iso image can now be dd'd directly to a USB device. kernel kernel: fix cb->f[0] nil dereferences due to short control request kernel: add srvtls and tlsclient to bootfs.proto for encrypting connection to the file server devssl, devtls: fix permission checks etheriwl: add pci id for PRO/Wireless 5350 AGN (thanks Ori_B) vgaigfx: fix device id for Ivy Bridge (thanks Kenji) vgaigfx: check gtt to determine graphics memory size, add hw cursor support for g35 (thanks kenji) efi: allow access to iso filesystem on non-cdrom media (iso/hybrid) efi: ensure 8 byte alignment of buffer, as ReadBlocks() method will fail otherwise libraries libauthsrv: dont pass netroot to netmkaddr()'s defnet parameter in authdial() (thanks kenji arisawa) libmemdraw: remove unused static variable from memimagedraw() programs 9boot: add iso hybrid loader 9boothyb auth/rsa2x509, auth/rsa2csr: allow appending SubjectAlternativeNames (SAN) to multi-domain certificate generation auth/rsa2x509: generate x509v3 cert as extension field might not otherwise not be expected awk: restore old buffering behaviour for printf cc: use UTFmax not 4 (djc) cc: prevent symbol buffer overflow dist/mkfile: generate iso/hybrid image for 9front.iso exportfs: disallow ORCLOSE in readonly mode (charles forsyth) games/mahjongg: off by one in bmatch(), fix hint() redraw (thanks Kenji) ip/ipconfig, ip/ppp: preserve preexisting entries when writing /net/ ndb jpg: output partial image data when available (truncated files) ndb/cs: fix memory leak (charles forsyth) rc: fix inband globbing bugs, cleanu rc: remove pointless Memcpy(),Malloc(),Realloc() and efree() wrappers rc: remove historical unix and win32 ports rc: remove duplicate Xrdfn entry from fname[] array rc: fix double close() in addenv() rc: simplify execfinit() / Xrdfn() using the globber to lookup /env/ fn'#'* rio: only the current window may change the cursor, fix typo screen-> r vs w->screenr in drag() add srvtls and the corresponding tcp17020 service upas/marshal: strip trailing whitespace from header values documentation 9boot(8): document 9boothyb other remove s and S from estonian keymap add belarusian (by) keymap (thanks eric lindblad) add polish keymap (thanks chomzee!) /lib/vgadb: add Panasonic CF-R7 LCD panel (thanks Kenji) [nfdq] New 9front release "ALLES LOSCHEN!" (2016/05/06) [allesloschen] torrent direct download dash 1 dash 1 manual kernel retire the dec alpha port remove unmaintained bitsy (ipaq) kernel remove unmaintained omap4 (pandaboard) kernel etheryuk: add Yukon 88R8055 id from erik quanstros driver (thanks Kenji), add to pc64 kernel libraries ape: remove openssl ape: add libauth, libbio, libmp and libsec as replacements for openssl ape: return plan9 error strings from strerror() libauth: remove support for import command in namespace files libauth: remove unneeded includes for authsrv.h, avoid pulling in dependency for rerrstr() libc: fix out of bounds access in dirpackage(), simplify libc: remove unneeded #include for crypt() and netcrypt() libdraw: avoid BPSHORT()/BPLONG() expansion, cleanup loadchar (),cachechars() libdraw: dont postnote to pid==0 in ekill() libjson: add slack space to literal string buffer to handle bad runes (thanks mischief) liboventi: remove unused liboventi libregexp: New libregexp and APE ported to native libsec: dont use mips assembly routines for spim, wrong endianess libsec: fix memory leak of RSApub, avoid parsing certificate twice to extract rsa public key libsec: implement elliptic curve group operations in jacobian coordinate system libsec: implement server side ECDHE key exchange with secp256r1, move DH state in TlsSec structure, simplify libsec: implement server side SCSV preventing silly client fallbacks libsec: order tlshand cipher suits by: keyexchange>=cipher>=hash, ignore client preference libsec: recognize and decode PKCS#8 wrapped RSA private keys for auth /asn12rsa libsec: x509: convert to UTF8 from BMPString and UNIString, reject \0 bytes programs 9fs: add "sites" to the 9front case abaco: respect $font acid: don't get fooled by spaces in convflt() awk: replace ape awk with new native port (thanks spew) gs: replace openssl aes implementation with ape/libsec hg: create system wide /sys/lib/hgrc to enabled hgwebfs extension hg: set $HOME when not already set to avoid silly uid lookups which can fail if theres no /adm/users hg: set mercurial.url.has_https when hgwebfs extension is in use kbdfs: add shift+altgr table 7 for polish keymaps ktrace: sign extend stack dump pc for amd64 python: remove openssl support, use ape/libsec for cryptographics hash functions rcpu: make sure not to leak /env/fn#server and /env/fn#aanserver for drawterm (thanks mischief) rsagen: increase default key size to 2048 bits vncv: fix netmkvncaddr() webfs: change %H (hostname) format to %N to not collide with encodefmt's %H (hex) webfs: fix "fd out of range" error message webfs: fix memory leak of serverName in tlswrap() games/mole: add "snake" tracing effect to mole documentation abaco(1): remove readweb aes(2): mention aesCBC bug srv(3),shr(3): correct reference shr(3): document example listen(8): document tcp17019 rcpu service listen(8): fix html rendering rsa(8): provide example for converting OpenSSL generated PEM file to factotum rune(2): add Runeerror reencoding considerations in BUGS section (thanks aiju) tls(3): document support for TLSv1.1 and TLSv1.2 other /lib/ndb/common: update ip addresses for [BCHL].ROOT-SERVERS.NET add danish keymap (thanks Eric Lindblad) add missing target for antiword in /sys/src/cmd/aux/mkfile (thanks _sl) [allesloschen] New 9front release "The muscott icon of it! Why devil?" (2016/04/08) themuscotticonofitwhydevil.front.png torrent direct download dash 1 dash 1 manual kernel and drivers kernel: make fversion()/mntversion() types consistent kernel: make kernel UTFmax and Runemax consistent with libc (21-bit runes) (thanks maurice) kernel: fix tsleep()/twakeup()/tsemacquire() race kernel: print pid as %lud instead %lux (in tsleep() debug print) kernel: fix procflushmmu() kernel: remove unused NSMAX, NSLOG, NSCACHE constants from portdat.h kernel: always clunk closed fids asynchronously, regardless of caching zynq: introduce SG_FAULT to prevent access to AXI segment while PL is not ready zynq: cleanup devarch, flushmmu() after procflushpsecg() devip: handle ignoreadvice flag for all protocols devip: applying changes for bug: multicasts_and_udp_buffers devkbd: change /dev/kbd to return multiple messages per read devtls: fix wrong iounit devtls: add portable AES-GCM (Galois/Counter Mode) implementation devtls: zero secret information before freeing, cleanup devtls: print the path of the underlying chan in status file ether82563: initial i217 support from http://www.9legacy.org/9legacy/ patch/pc-ether82563-i210.diff (thanks k0ga) libraries libc: fix runestrecpy() return value (thanks spew) libdraw: remove flushimage calls from fontresize() and loadchar() libdraw: don't flush in readmouse() when theres nothing to flush libdraw: have openfont() set error string libdraw: fix out of bounds memory access after subfont array reallocation (thanks ray) libFLAC: update to 1.3.1 libsec: fix verifyDHparams() for version <= TLS1.1 libsec: remove weakCipher[] array check as we do not support any of these weak ciphers libsec: add portable AES-GCM (Galois/Counter Mode) implementation libsec: fix tlsid for TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 libvorbis: update to 1.3.5 programs 6in4: allow setting the local IPv4 address with -i flag (thanks k0ga) 6in4: ingress filter multicast and link-local, but allow relay traffic 9fs: bind -b /n/9front.org!7734 /n/lists aan: use sync messages as keep alives aan: handle case when reader closes netfd auth/pemencode: fix usage() bullshit: +progressive +enhancement file: deal with negative coordinates in plan9 bitmaps, print image size g: dont pollute the environment (thanks BurnZeZ) games/life: add -d delay parameter, -b color reversal parameter, and update manpage ip/gping: set display->locking before starting mouseproc (race) ip/gping: ignore advice, fix packet corruption check, remove dead code ip/gping: add main pid to pid list for killall() kbdfs: map Kup/Kdown the same in shift tab (fixes shift-[up]/[down] one-line scroll in rio over drawterm/vncs) mercurial: fix CVE-2016-3630 mothra: dynamically allocate buffer for refresh url (was 20 bytes stack buffer before) (thanks BurnZeZ for reporting) plot: handle create() failure ppp: md5 and mschap inside chap, do not request encryption with -c or -C (thanks k0ga) ppp: Small format and log fixes (thanks k0ga) ppp: fix buffer overflow, set correct state after chap negotiation (thanks k0ga) pppoe: Avoid double free (thanks k0ga) pppoe: Add support for -c and -C to enable/disable header compression (thanks k0ga) rio: remove more unneccesary flushimage() calls rio: /dev/kbd cleanup stats: fix display->locking race tcp567: run authserver with p9sk1 tickets disabled preventing offline password brute-force truss: fix "bad string" error due to missing ape _nsec() syscall truss: add fake __NSEC syscall name for ape uhtml: dont trust charset=utf-8 attribute, verify. vncs: fix dead Kend key vncs: parse screenid as long, not short: BGSHORT() -> BGLONG() vt: add -r flag to start in raw mode manual pages, documentation, misc devstream(3): removed kbdfs(8): document new /dev/kbd behaviour qball(2): fix bad manpage reference fortunes: Ah, nice. the woodpeckers are back. themuscotticonofitwhydevil.back.png New 9front release "MY MEMORY OF DRAWTERM IS FADING" (2016/03/01) mymemoryofdrawtermisfading.front.png torrent direct download dash 1 dash 1 manual kernel and drivers kernel: remove todfix overflow iprint() spam pc/pc64: remove mpshutdown print pc/pc64: bring up ap's one after another, use idlehands() while waiting for thunderbirdsarego pc64: move idle() routine after CALL main(SB) as the comment suggests sgi: add chmod to bootfs.proto for sgi kernel devdraw: remove unused Edepth[] devmnt: deal with partial response for Tversion request in mntversion () devssl: use tsmemcmp() to compare mac to close timing side channel ipv6: fix icmphostunr() locking and memory free bugs (from sources) usbuhci: removing "uhci bug" print spam from interrupt handler wifi: check tkip/ccmp mac and crc in constant time avoiding timing side channels booting provide /n and /mnt early in bootrc to allow consistent use in /lib/ namespace libraries ape/fmt: %p and %z format for amd64 ape/stdio: %z format is VLONG on amd64 libauthsrv: add D in mkfile libauthsrv: fix ed448 goldilocks prime comment libauthsrv: can write p = 2^448 - 2^224 - 1 now, as mpc has constant folding. libdraw: remove unused static log2[] array libfis: dont reject drives lacking SSP (sata ssd connected to ide with adapter) libmp: handle out of memory case in gmfield() libmp: remove include of libsec.h libsec: add salsa20 stream cipher libsec: ecdsa client support for tlshand, cleanups libsec: refactor asn1 encoding of digest for rsa signatures, fix memory leak in ecverify libsec: mpconv -> mpfmt libsec: fix missing error case unlock() in tlshands initCiphers() libsec: fix double free in pkcs1_decrypt(), handle bad epm length in tlsSecRSAs(), cleanup libsec: simplify pkcs1_decrypt() libsec: add libc.h include for aes_xts.c (drawterm) libsec: fix memset() size in tlsConnectionFree(), remove #include libsec: remove unused tlsSecKill() libsec: have 16 32-bit words in DigestState to avoid out of bounds warnings for poly1305 programs /rc/bin/": fix quoting bug (thanks, aiju and silasm) auth/cron: just run /bin/rx to execute remote commands auth/factotum: fix nil pointer crash on p9skclosekey(), thanks k0ga auth/factotum: fix memory leak for p9any key confirmation, fix key handling for role=client aux/kbdfs: read outer /dev/kbd file and use it just like /dev/kbdin exportfs: properly reply to chdir() error when we speak 9p exportfs: retry execing ourselfs as "/bin/exportfs" (argv0 might be relative path) exportfs: fix endless loop for eof/error on second read in localread9pmsg() games/doom: fix white window issue on exit games/doom: handle allocimage() failure mpc: constant expression folding ndb/dns: removing the buggy /net.alt remount hack ndb/dns: initialize unknown fids to point to the root qid ndb/dnstcp: -x specifies the mountmoint newuser: /n/other now handled in /lib/namespace rc: terminate rc when exec fails, cleanup rcpu: adding experimental rcpu service [1] rcpu: post hangup note to remote when connection breaks rio: fix wrong frame colors when moving non-current window rio: exit rio when /dev/cons or /dev/kbd read loop terminates rx: rcpu service support stats: use rimport or import to mount remote system tlsclient: add -o option to establish connection over a file, free the AuthInfo structure to avoid leaking secrets tlssrv: p9any authentication support using TLS-PSK cipher suits tlssrv: add -A flag to skip changing user after authentication (usefull for aan) upas/smtpd: remove unused lastsender logic webfs: faster shutdown using postnote() manual pages, documentation, misc fortunes: ./configure CFLAGS="-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" LDFLAGS="-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" LIBS="-lbsd -lap -lc" LIBM="" -prefix=$HOME/ source/harvey/ape/ports -host=x86_64-linux-gnu -build=x86_64-harvey -enable-shared=no /lib/keyboard: add more crucial symbols glenda's default profile: remove /n/other mount, done by /lib/ namespace authsrv(2): document _asgetpakkey(), authpak_hash(), authpak_new(), authpak_finish() authsrv(6): fix arrows salsa(2): some formating fixes; fix source reference rcpu(1): add mymemoryofdrawtermisfading.back.png [0] http://okturing.com/src/3486/body [1] https://code.9front.org/hg/plan9front/rev/65abc13ef7a1 New 9front release "PLEASE EXCUSE ME THE OUTFLOW" (2016/01/09) [pleaseexcusemetheoutflow] torrent direct download dash 1 dash 1 manual kernel and drivers kernel: fix typo in devmnt mntproc name kernel: use nicer check in okaddr(), wet floor signs in fixfault() kernel: cleanup exit()/shutdown()/reboot() code kernel: use uintptr for ibrk() return value (for base >2GB) and clarify segbrk(2) kernel: missing changes for ibrk() prototype kernel: change active.machs from bitmap to char array to support up to 64 cpus on pc64 pc, pc64: fix sdvirtio descriptor count when sending flush pc, pc64: add did for intel wildcat point audio controller pc, pc64: import i210 support from erik quanstrom's 9atom zynq: fix cache flush bug for emmc driver (have to invalidate cache before read) zynq: clean cache unconditionally before dma, invalidate cache after dma for read case devenv: fix ORCLOSE handling devip: various bugfixes and cleanups for arp code devip: declare cleanarpent() static devproc: remove unused extern int unfair devqspi: fix qunlock error on stat() -> close() devsd: remove unused timeout field from SDreq devsd: handle SYNCHRONIZE CACHE scsi commands as nops in sdfakescsi() devtls: add sha256 mac devtls: reject SHA2_256 mac for SSL, but TLS is fine devtls: implement chacha20/poly1305 aead cipher suits igfx: fix typos (thanks qwx) sdmmc: handle fakescsi emulation tcp: fix mtu on server sockets again (thans mycroftix) usbehci: clean cache unconditionally before handing a buffer to the hardware wifi: quote value of parsed ether options wifi: prioritize rsne over wpaie booting bootrc: remove usbwait hack, usbd/nusbrc are now synchronous by previous commit do not handle kfs boot move screen and mouse setup code to /rc/bin/screenrc nvram: introduce AES key compilers and debuggers cc: handle 64 bit mixedmode asop and type vlong <-> float/double type conversions cc: TUSHORT -> TRUNE for lstring constats for OUSED cc: allow runes as macro names (from charles forsyth) cc: getflag() fmt will be terminated at end of loop (from charles forsyth) cc: include $builtin as keywoard in pickle() (from charles forsyth) cc: restore side(), but do not consider OINDEX as side effect free cc/6c: fix return type of mixed asop expressions, preserve type for moves so fixed<->float conversions work correctly 5c/6c/8c/kc/qc/vc: import various changes from charles forsyth 5c: handle 64 bit mixedmode asop 5c: handle (rare) MULU instruction in peephole optimizer 6c: remove 6c/vlrt.c file 6c: return vlong result for pointer subtraction 8c: make cgen64() compile target first when it contains functoin call so final assignment wont trash the registers 8c: handle 64 bit mixedmode asop and type vlong <-> float/double type conversions 8c: dont abort() when running out of registers. vc: handle 64 bit mixedmode asop cpp: fix memory corruption due to input buffer relocation cpp: handle 4 byte utf sequences (21-bit runes) acid/leak: fix endless loop for B2NB(b) == b case (thanks mischief) libraries ape: add badrect object into ape libdraw ape: set MB_CUR_MAX to 4 in stdlib.h for 21-bit runes (thanks erik quanstro) ape: add machine specific code for spim ape: add missing _subv() function to 386/vlop.s lib9p: add reqqueuefree lib9p: do not override Srv.end in listensrv(), simplify srvclose() and recounting libauthsrv: generalize ticket service, not hardcoding ticket format and DES encryption libauthsrv: add missing files (thanks mischief) libauthsrv: randomize aes key in mkkey() libauthsrv: fix _asgetresp() for passwd libc: import more endianness fixes (thanks cherry9) libc: remove privfree(), simplify privalloc() libc: add uv2d()/uv2f() and vas*d() functions to vlrt.c libdraw: remove unneeded check (thanks BurnZeZ) libfis: fix wrong shift for lba40 (thanks geoff and charles) libjson: fix memory leak setjmp/longjmp problem (thanks spew) libjson: added printing support (thanks spew) libmp: add mpnrand() function to generate uniform random number 0 <= x < n libmp: add mpvecdigmuladd()/mpvecdigmulsub() assembly routines for arm libmp: optimize case x/0xffffffff in mpdigdiv() (helps arm) libmp: 386/amd64 mpvec*(): replace conditional branches with ADC/SBB instructions libmp: add mpvecadd()/mpvecsub() assembly versions for arm libmp: fix test program libmp: initial attempt at constant time code, faster reductions for special primes (for ecc) libmp: mpmod() fix typo libmp: fix wrong move instruction for arm vector operations libmp: fix assert() for mpexp() with nil modulus libmp: add logic operations; mpfmt: include 0x with # libmp: fix bug in mplogic.c; update mkfile libmp: strtomp support for bases 2,4,8 libmp: add mpfield() function for fast field arithmetic libmp: mpfmt: handle base 2, 4 libmp: support for c-style base prefixes for strtomp(), octal support libmp: mistake in strtomp() libmp: check nil return value of strtomp() in test program libmp: silence compiler warning for strtomp libsec: add pbkdf2_hmac_sha1() (from wpapsk factotum module) libsec: fix probably_prime() endless loop for n == 3 libsec: add q parameter to dh_new() for subgroup support, sanitize dh parameters libsec: add TLS_RSA_WITH_AES_128_CBC_SHA256 and TLS_RSA_WITH_AES_256_CBC_SHA256 ciphers libsec: add curve25519() from http://code.google.com/p/ curve25519-donna/ libsec: work arround 8c running out of registers compiling curve25519.c libsec: remove flawed aes() digest and hmac_aes() implementations (thanks aiju) libsec: add curve25519 diffie hellman libsec: declare aes_setupEnc static libsec: generalize pbkdf2_hmac_sha1() to pbkdf2_x() passing the hmac as an argument libsec: add rfc5869 hmac-based key derivation function hkdf_x() libsec: handle TLS 1.2 changes in CertificateRequest message libsec: send sigature_algoritms extension for TLS1.2, order ciphers libsec: add TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 and TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 cipher suits libsec: save some space making weakCipher bitamp of type char[] instead of int[] libsec: fix memory leak in ecmul() libsec: implement dh parameter signature verification, stop lying about non-rsa ciphers, fix memory leaks in X509 code libsec: make sure Elem is zero initialized so freevalfields() wont cause accidents libsec: handle missing signature case; can happen because some ciphers make it optional libsec: implement client certificate authentication for tls1.2 libsec: fix memory leaks in X509req() and X509gen() and return malloced pointer libsec: cleanup newbytes()/newints()/newbits() and get rid of OFFSETOF() macro libsec: use the right string encoding for various x509 fields libsec: clarify the code by declaring constant for DirectoryString and handle conversion in mkstring() libsec: remove rc4 cipher suits for tls libsec: add poly1305 libsec: add chacha cipher (from charles forsyth) libsec: add chacha20 poly1305 aead, allow 64 bit iv's for chacha, add tsmemcmp() libsec: fix genprime() to produce normalized result libsec: use tsmemcmp() when comparing hashes, use mpfield() for ecc, use mptober() when right adjusting mpint to bytes libsec: implement TLS-PSK for tlsClient()/tlsServer() libsec: make sure theres no garbage after the asn.1 decode, cleanup libthread: get rid of tprivalloc()/tprivfree()/tprivdata() and _workerdata() (thanks qrstuv) programs 9660srv: do not ignore upper 32 bits of offset when reading directory 9fs: add 9pio case for unauthenticated connections to 9p.io 9fs: add case 9front ascii: replace mnemonic np (new page) with ff (form feed) for consistency auth: release dp9ik implementation and reentrant factotum auth/*: remove private /dev/random reading routines, use genrandom() auth/changeuser: set the aes key in plan9 database, but not in securenet db auth/convkeys2: remove auth/httpauth: use auth_userpasswd() instead of AuthHttp request to AS auth/passwd: fix structure zeroing order aux/disksim: don't assume 4-byte pointers aux/gpsfs: fix usage aux/listen1: allow alternative namespace when running as user none with -n option aux/statusbar: use title as rio window title (thanks qrstuv) cpu, import: remove old9p support cwfs: adjust for new libauthsrv changes cwfs: remove 9p1 support cwfs: initialize /env/timezone on boot so dumps are in localtime cwfs: don't use sprint() to fill directory name cwfs: fix wstat() failing to mark block dirty when noatime is set delkey: print commands instead of starting a dialogue doctype: learn to timepic disk/fdisk: properly convert byte units K,M,G and T to cylinders/ sectors disk/mkfs: rmeove kfs support dossrv: handle file offsets > 2^31 E: import script from bell labs file: detect DICOM and XM audio headers file: recognize tcpdump pcap files file: recognize bootable disk images (by 0x55AA boot sector signature) fshalt: remove kfs support games/doom: fix bogus pointer arithmetic, do sfx initialization in two passes for linked sounds html2ms: handle subscripts and superscripts html2ms: bold table headings, remove wrong tag space handling import/expoerfs: dont assert() fault when ai->secret is > 8 bytes, just use the first 8 bytes init: remove dependency to ircrc: add -P option for server password (thanks, nick) keyfs: introduce AES key keyfs: fix typo (thanks jpm) kfs and kfscmd: remove mothra: add subscript and superscript support mothra: add missing initializations for plaintext html state mothra: make text inside td bold mothra: hr drawing mpc: add (extended precision code generator) qr: add (generate qr codes) 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. resize: add -n for nearest neighbour rio: fix scrolling when cursor is above window rio: stop serving kbdin file (thanks eekee) rio: fix handling "resize" wctl for hidden windows rio: allow reading the image of a hidden window thru the window file rsa2x509, rsa2csr: add newline in usage print rx: theres no p9sk2 anymore scuzz: uncomment synccache command snoopy: fix timestamps for pcap files (thanks BurnZeZ) srvold9p: remove tapefs: remove dependency to tar: make z flag work, even when no file name was provided (thanks aiju) timepic: string support tput: check sbrk return value usbd: introduce /env/usbbusy venti/fixarenas: replace %z fmt with %Z webcookies: strdup() file argument to avoid crash (thanks mischief) winwatch: l allows label changes yacc: attempt to keep line numbers right for yyparse() manual pages, documentation, misc /lib/1oct1993: use words correctly (thanks, spew) 2c(1): fix spelling error for the axp entry delkey(1): update man page to reflect recent changes fplot(1): add BUGS section, fix typo import(4): remove -o, -O flags mp(2): fix typo mnprand() -> mpnrand() qer(8): correct man page example (thanks, kenji) qr(1), timepic(1): add utf(6), rune(2): document 21-bit runes remove kfs references from manual [pleaseexcusemetheoutflow] New 9front release "the art of conversation" (2015/08/18) [small] torrent direct download dash 1 dash 1 manual kernel and drivers kernel: make sure the swap device has a reasonable capacity in setswapchan() kernel: cleanup chan.c to consistenly use nil instead of 0 for pointers kernel: consistent use of nil for pointer in sysfile.c kernel: simplify syspipe() kernel: make sure fd is in range in fdclose() kernel: pipelined read ahead for the mount cache kernel: clunk the cache when removing cache flag on a channel, only call cread() chen CCACHE flag is set kernel: export mntattach() from devmnt.c avoiding bogus struct passing and special case in namec() kernel: remove obsolete comment from namec() kernel: cleanup qlock.c to use nil instead of 0 for pointers kernel: dont rely on atoi() parsing hex for netif/devbridge kernel: remove unused qstate() function kernel: reject empty argv (argv[0] == nil) in sysexec() kernel: make shargs() function static in sysproc.c kernel: use Etoolong[] constant instead of string literal in validname0() kernel: change vmemchr() length argument to ulong and simplify kernel: limit syscallfmt user strings to 64K (as in validname) kernel: fix indention in validname0() kernel: validnamedup() the name argument for segattach() kernel: limit argv[] strings to the USTKSIZE to avoid overflow kernel: have to validate argv[] again when copying to the new stack kernel: remove unused MAXCRYPT constant from portdat.h kernel: fix Mheadache kernel: pgrpcpy(), simplify Mount structure kernel: mount flag is int not ulong, reduce size of Mount struct by putting mflag field in what would be wasted as padding kernel: move "setargs" field in Proc structure after "nargs" and "args" kernel: try freebroken() before killbig() (thanks aiju) pc, pc64: set *bootscreen= when framebuffer changes pc, pc64: replace atoi() calls with strtol() when hex can be expected pc, pc64: remove unused psaux driver zynq: remove unused variables from devqspi devaoe: fix off by one in aoeerror(), consistent use of nil for pointers, error handling devenv: avoid indirection, keep Evalue's allocated in an array devenv: simplify envremove(), cleanup devether: duplicate flags when copying blocks (thanks erik quanstro) devkbd: poll pc keyboard before blocking on kbd.q devkbd: disable mosue/keyboard on shutdown, disable ps2 mouse on init, remove kbdenable()/kbdinit() devmnt: dont reset readahead window when requested offset still has pending rpc devmnt: use c->iounit instead of msize-IOHDRSZ to chunk reads and writes, reduce memory overhead for Mntrpc, mntalloc lock devmnt: fix mntcache() devtls: TLS1.1 explicit iv support ether79c970: set mbps for proper queue sizes, assume gigabit ethernet for vmware etheriwl: add pciid for Centrino Wireless-N 1000 (thanks qu7uux) vgaigfx: remove #define MB, theres a MB enum in portdat.h compilers and debuggers cc: provide fake realloc() for getenv() cc: improve (non-) side effect detection (thanks charle) 1c,2c,7c,kc,vc: honor suppress condition for outstring() in swt.c vc: word align automatics 6l: fix vlong byte order when running on big endian machine (thanks erik quanstro) acid -k: fix procenv() to new data structure acid -k: fix intrcount() for amd64 libraries ape: fix mktime() again ape: implement altzone for tzset() ape: fix build for objtype=spim lib9p: return "write prohibited" error as documented in 9p(2) when srv->write is nil (thanks silasm) lib9p: make reqqueueflush() use new threadint(), which will also cover channel operations libauthsrv: readnvram() use vlong for nvroff, parse $nvlen/$nvoff with strtol() instead of atoi() libc: make atoi() not parse c-style octal and hex numbers libc: fix spim endianness libc: fix wunlock() libthread deadlock libcontrol: use strtol() to parse integer arguments libcontrol: fix label memory leak libhttpd: use strtol to parse decimal character references in httpunesc() libmach: set correct endianness with little endian ELF32 mips binaries libmach: remove useless error check from previous commit libmach: remove redundant check for big endian libmp: fix build for objtype=spim libsec: increase handshake message buffer size (MaxChunk) to 32K (thanks sl) libsec: TLS1.1 support (needs new devtls) libsec: fix mistake breaking tlsServer() (thanks sl) libsec: TLS1.2 client support libsec: TLS1.2 server support, make cipher list with most prefered first libthread: fix mistake, make "all" the default target again libthread: use "interrupt" proc ctl message instead of posting a note for threadint() cdproto: add spim rootstub: add spim programs add /spim aux/vga: sandybridge support for igfx (unfinished) aux/vga: dont rely on atoi() being able to parse hex bitsy: replace atoi() calls with strtol() when hex can be expected bitsy/keyboard: do not rely on atoi() being able to parse hex bullshit: app, deep-learning, responsive. cpu: cleanup ssl code, make sure -p works for any auth method crop: use strtol() instead of atoi() cwfs64x: set permission of / to 0775 on ream games/doom: implement filelength() (thanks quux) games/doom: fix switch textures swapping in ultimate doom (thansk qu7uux) games/doom: add bug compatibility switches (thanks qu7uux) games/doom: fix ouchface not being shown when it should be (thanks qu7uux) games/doom: display correct message on medkit pickup when health low (thanks qu7uux) games/doom: fix config file never being loaded or saved (thanks qu7uux) games/doom: fix unterminated comment causing sound bugs (from qu7uux) games/doom: fix idclev cheat in doom2 and final doom (thanks qu7uux) games/doom: fix gamma correction and key translation (thanks qu7uux) games/doom: fix array offsets for respawn angle (thanks qu7uux) gs: fix build for objtype=spim gs: fix alignment bug in image_render_interpolate() hjfs: fix abort() in givebuf() hjfs: fix deadlocks init: do not run $home/lib/profile when cd $home failed iostats: add -C to usage ip/httpfile: fix flushes, fix concurrent reads, set error string ipv6on: fix search for ip attribute (thanks kenji arisawa) jpg/ico: support for embedded png icons jpg/ico: fix mkfile kfs: set permission of / to 0775 on ream mothra: support for inline images and tag mothra: fix selurl() mothra: cleanup url handling mothra: fix double button hit mothra: enable compiler warnings and type checking, cleanup mothra: fix nil crash on missing name/src attributes for source/video /audio/embed/frame/iframe mothra: show tag within / tags mothra: fix crash mount, srv: add -N flag to skip authentication and attach anonymously as "none" page: fix deadlock, nil vs 0 for pointer comparsion, cleanup python: use altzone python: fix build for objtype=$spim ratrace: avoid blank line prints, make writer the parent; various improvements resample: simplify getint() snoopy: dont rely on atoi() being able to parse hex webcookies: fix isdomainmatch() (fixes livejournal.com login) webcookies: fix implicit path cookie handling webcookies: create lockfile with 0600 permission, always use create() with perm 0600 for rewriting jar webcookies: use strtol() to parse HH:MM:SS manual pages, documentation, misc bio(2): Bterm() closes filedescriptor for Bfdopen() allocated buffer import(4): clarify -E and -e options rio(4): document "delete" wctl message (thanks mischief) fortunes: If you want to do the work, I will review the results. [small] New 9front release "KAPTN BLAUBAR" (2015/07/19) [small] torrent direct download dash 1 dash 1 manual kernel and drivers kernel: add pagechaindone() to wakeup processes waiting for memory kernel: declare _tas() to prevent pulling in libc version (for libmemdraw) kernel: do not inherit Proc.dot (current working directory) in kproc () kernel: do not inherit current directory channel (dot) to pager kernel: do not pull in atom.s from libc for arm kernels kernel: dont use smalloc() to allocate pte array in ibrk() kernel: fis comment PciSID (alphapc, kw, mtx, teg2) (thanks qeed!) kernel: fix accounttime() for HZ >= 1000 kernel: ignore last page at the top of virtual kernel address space for xalloc() kernel: ignore memory pages with singular kernel addresses kernel: implement separate wait queues for page allocation kernel: map pci bars for devices with base class codes (ccrb) 0x00 and 0x0D-0x11 (thanks qeed) kernel: reject bogus two byte "#!" shell scripts in sysexec() kernel: remove debugalloc.c kernel: remove waserror() arround newpage() in mntcache kernel: use HDR_MAGIC constant to handle Exec header extension, make rebootcmd() handle AOUT_MAGIC macro kernel: various cleanups of imagereclaim(), pagereclaim(), freepages (), putimage() pc, pc64: toggle bit 2 in port 0x61 to reset and enable PCI SERR# nmi's, print nmi status pc: check Sse (bit 25) in cpuiddx before enabling fxsr in cr4 (fixes crash on the pentium II) pc64: use unsigned long for kmapindex and mmu counts avoiding signed integer division zynq: add /dev/fbctl to attach framebuffer to devdraw zynq: add support for hardware cursor zynq: fix /dev/pl zynq: fix barriers zynq: fix flushmemscreen() zynq: increase kernel memory for graphics zynq: make screen and cursor kprocs exit properly zynq: mouse acceleration zynq: remove unused PTE typedef zynq: remove unused statistics fields from Mach structure zynq: use KADDR() for kmap() if we can avoiding the mapping ether82563: fix multicast filter (based on openbsd em(4) driver) etherigbe: spi eeprom support (thanks echoline) etheriwl: add multicast stub, dont clear descriptors after completion etherrt2860: add multicast stub etherwpi: Intel PRO Wireless 3945abg driver based on openbsd's if_wpi (thanks aap) 9boot: look for plan9.ini in all filesystems accessible to efi to find plan9 partition aux/vga: disable nvidiascale() as it broke modeset on kenjis card aux/vga: dont use /proc/$pid/mem to access vga bios devcons: add current pool allocations to #c/swap devfs: remove useless ~OTRUNC mask for openmode devmnt: do not use user buffer to update the mount cache devproc: make sure statbufread offset wont turn negative devsegment: fix parsecmd() memory leak devstream: fast sequential file access with 9p pipelining experiment devtls: ignore UnrecogniedName (112) alert message (for SNI) ip: fix wrong radix for iphash() (thanks yoann padioleau) kbdfs: Runemax is inclusive. nusb/audio: dont sysfatal on bad endpoint (no altc) nusb/disk: adding identical partition is a no-op nusb/serial: remove unused channel nusbrc: handle fat formated usb drives without partition table usbd: set device info for control file (see usb(3), thanks qeed) wifi: adjust transmit rate on error (for etheriwl), small mkfile changes wifi: berlin prime bunny hopping wifi: reflect current transmit rate in mbps compilers and debuggers 5e: approximate LL/SC with cas() 5e: enable VFP emulation by default, doubles only need to be 4 byte aligned 5e: implement DSB,DMB,ISB and CLREX instructions 5e: make sure stack base is aligned to avoid unaligned memory trap on arm cc: handle unaligned data in = {0} local initializer cc: set unspecified elements to zero in local variable initializers cpp: search source file directory first for quoted #include (thanks Ori_B) libraries ape: add stdint.h, fix SSIZE_MAX and add SIZE_MAX to limits.h ape: define long long limits ape: include in for pid_t (thanks jens staal) ape: port libc smp tas() for arm lib9p: fix lib9p wstat qid.type/mode checks (fixes lock(1) for ramfs/ hjfs) libFLAC: fix compiler warnings by properly declaring void function arguments libc/arm: implement _tas() with LDREX/STREX, execute memory barrier on smp systems (zynq) libc: use Runemax instead of hardcoded 0x65536 for fmtchar check (thanks qrstuv) libdisk: error handling, sanity checks libdraw: consistent use of nil for pointers, error handling libdraw: don't loop forever when getting eof on /dev/cons in keyboard ioproc libdraw: sync allocimage/allocwindow prototypes with man pages libhttpd: declare hvprint libsec: implement tlsClient support for RFC6066 server name identification (SNI) lock: reopen lockfile after changing mode to make lock effective programs 9660srv: go back to 128k clusters, keep data and metadata separate in the cache with a tag 9fs: handle all the dos filesystems in one case, add esp handler authsrv: remove unused opasstokey authsrv: use plan9 key for http authentication aux/cpuid: make sure extended feature bits are available (fixes crash on the pentium II) cdproto: /sys/log/httpd should be a directory, added /sys/log/pop3 cifsd: smbrename is still ok when file is readonly (fixed git) cp: experimental stream support disk/edisk: gpt partition table editor disk/fdisk: learn about EFI system partition (type 0xEF), honor protective mbr (type 0xEE) disk/format: create Fatinfo sector for fat32 disk/partfs: adding identical partition is no-op dontkill: only use noswap flag to mark processes as not to be terminated on oom dossrv: maintain file creation date/time on disk, fsinfo sector can be 0 (disabled) fcp: fix wrong write pointer offset when read returns less than DEFB bytes fcp: use iounit() to determine buffer size, reduce number of worker procs to 8 games/doom: fix desyncing demo (thanks qwx), remove Makefile gunzip: the extra length field (XLEN) is two bytes instead of one hgweb.cgi: take REPO_ROOT and REPO_NAME from env, so can be used out of the box hjfs: defer parent directory permission check for wstat htmlroff: fix wrong newline in \name handling (| -> ||) httpfile: fix evictblock() so we wont consume all the memory inst/bootplan9: skip mbr installation and active partition switching when we have no plan9 dos partition inst: fix download task using ip/httpfile to mount a iso over http and prompt for installurl inst: provide gpt/mbr choice when disk is blank, format esp integrate disk/edisk with diskparts, bootfs and installer (gpt support) ip/httpd: fix syslog file mk9660: write data in alphabetical order ndb/dns: use same buffer size of udp packet in redistrib() as dnudpserver() (fixes assert) page: make lookahead fetch work in backwards direction pkg: remove pkg(1), we regret the error qc, 9/ppc, 9/mtx: fix wrong if statements rc-httpd: cleanup cgi handler, various fixes rootstub: do not create pkg directories stats: add kernel malloc and kernel draw allocation size graphs sysinfo: update -p for sysinfo.9front.org sysupdate: change source repo to https://code.9front.org/hg/ plan9front tar, tarfs: implement longname support tcs: fix swaped alias mapping gb <-> gb2312 test: use libc.h constants for access() mode (thanks qrstuv) tftpd: count only options we understand so we wont send empty oack message uhtml: check if document is valid utf8 even with charset specified usps: cut the useless part vblade, cifs, usbuhci: fix parenthesis webfs: send servername in tls client hello (SNI) wpa: do not prompt for key when there is already one in factotum manual pages, documentation, misc faces: add cs.dartmouth.edu!doug (thanks, qrstuv) faces: add updated addresses for quanstro, bwc, steve.simon (thanks, erik) fortunes: Turning off comments. rob: No we can't. rsc: I think I'm missing something. theo: You are on your own. troll: Subject: unusable acme addpt(2): document badrect function, put badrect in .SH NAME so that it gets into the searchindex colors(1), who(1): add missing SOURCE entries cputime(2): fix prototype for cycles() (thanks qrstuv) dhcpd(8): the fs attribute refers to the file server, not the name server (thanks, pena) esetcursor(2), alarm(2): fix prototypes event(2): fix estartfn prototype exec(2): exec argument size only limited by user stack size, fix prototypes, return register (R0) contains address of Tos structure. freeimage(2), readcolmap(2), writecolmap(2): fix prototypes ndb(6): fix typo (thanks, pena) open(2): fix typo prep(8): document disk/edisk prep(8): edisk also adds a EFI system partition (esp) when not already exists. thread(2): fix prototype for threadint() and threadkillgrp() (thanks qwx!) [small] Powered by werc Ages: 5 & Up