THE PLAN FELL OFF

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 #σc/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

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 -> 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)

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

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

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

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

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)

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

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

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 #λ 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

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

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 -> #¶/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

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.

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 #¶ 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

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

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

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

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

THANKS FOR COMING IN

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 phyprob