9FRONT “SYNCHROPHASOTINC” RELEASED (2017/11/01)

front

http://9front.org/iso/9front-6204.09e34a98b1e5.iso.gz.torrent

http://9front.org/iso/9front-6204.09e34a98b1e5.iso.gz

dash 1 manual

http://fqa.9front.org/dash1.synchrophasotinc.pdf

KERNEL AND DRIVERS

kernel: get rid of 36 bit Paerange mask in mtrr (supporting machines with more than 64GB of memory)

kernel: don’t tokenize inplace in isaconfig() to make /dev/reboot work

kernel: introduce devswap #¶ to serve /dev/swap and handle swapfile encryption

pc64: add ether82598 driver to configuration

devfs: rewrite cryptio()

ether82598: support for T540-T1, use physical addresses for isaconf port

sdnvme: identify namespace list fails on intel ssd, just assume nsid=[1]

xhci: do bounds checking in capability walking, check if controller vanished on init (thunderbolt unplug)

LIBRARIES

libauthsrv: preserve readcons() error message from read() error

libc: cleanup atexit and put exits() in its own compilation unit

libc: wunlock() part 2

libc: improve alignment of QLp structure on amd64, cosmetics

libsec: add AES CFB and AES OFB stream ciphers

libsec: allow \r\n terminated lines in decodePEM()

libsec: export asn1encodedigest(), asn1encodeRSApub(), asn1toRSApub(), pkcs1padbuf() and pkcs1unpadbuf()

libsec: make sectorNumber argument for aes_xts routines uvlong

libsec: fix the (ape) build, bring ape libsec.h in sync with plan9 version

libsec: rewrite aex_xts_encrypt()/aes_xts_decrypt()

PROGRAMS

aux/wpa: prevent PTK re-installation attack by replaying AP retransmits

cwfs: use /dev/swap instead of #c/swap to determine memory size

netaudit: check for fs=

hg: disable tag caching, allows accessing hg repo from dump

hgwebfs: simplify retry loop construction

ndb/cs: icmp only supports version 4 addresses, icmpv6 only version 6 addresses

rsa: add auth/rsa2asn1, check write error in auth/rsa2x509 and auth/rsa2pub, document in rsa(8)

ssh: remove extern declarations for pkcs1padbuf() and asn1encodedigest() (now in libsec.h)

sshfs: use mtime for qid.vers, fix wstat without name change, fix wstat memory leak

upas/fs: fix putcache(), sub-part messages should never go into the lru

upas/fs: replace fixed cache table with lru linked list

upas/smtpd: don’t call syslog() from the note handler, this can deadlock

vt: block when sending input to host (fixes truncated paste)

winwatch: show windows with empty labels (thanks jpm)

DOCUMENTATION

aes(2): document aes_xts_encrypt() and aes_xts_decrypt() functions

swap(3): document permissions and encryption behaviour, reference to memory(8)

OTHER

9boot: limit read size to 4K for efi simple file system protocol

COMING SOON

tinc(8): mash peer to peer VPN

back

9FRONT “SOLARIS ECLIPSE” RELEASED (2017/09/11)

front

http://9front.org/iso/9front-6165.2a79d5dddf41.iso.gz.torrent

http://9front.org/iso/9front-6165.2a79d5dddf41.iso.gz

dash 1 manual

http://fqa.9front.org/dash1.solariseclipse.pdf

NEW IN THIS RELEASE

KERNEL AND DRIVERS

devdup: remove useless OCEXEC check, handled by namec()

devsegment: handle ORCLOSE on segment directory correctly, fix wrong qid, missing COPEN flag for segmentcreate()

devusb: double READSTR buffer size to 8000 bytes for devusb

devusb: superspeed bandwidth allocation handled by controller, skip usbload() calculation

devvmx: lilu dallas multivm

devvmx: call vmxshutdown from reboot() function manually

devvmx: more efficient data structure for memory map; simplified (more reliable) step function

audiohda: Intel Sunrise Point-H support (thanks sam-d)

audiohda: add pci id for ICH10 (thanks echoline)

audiohda: add pci id for Intel 9 Series

audiohda: add pci id for nvidia GM204

ether82563: add more pci ids for i210 and i354 from 9atom / openbsd

ether82563: make the ethernet of thinkpad p50 work (thanks sam-d)

ether82563: support for i211 with iNVM. (thanks mfny and brennan for testing)

etheriwl: add pci id for Intel Centrino Advanced-N 6200 on x201 tablet (thanks arpunk)

igfx: add did for x220

igfx: fix cdclk and dpll settings for dual channel lvds on sandybridge

igfx: fix sandybridge fdi link training bits and ordering

sdiahci: Intel 200 Series Chipset Family PCH support (thanks aiju)

sdnvme: pass 0 instead of 0xffffffff as NSID for identify controller and create completion/submission queue commands (thanks Ori_B)

usbxhci: abandon multiple requests per endpoint, cleanup

usbxhci: handle out of memory in controller initialization

usbxhci: implement recovery from host controller errors

nusb/disk: add a 100ms sleep after ums reset, remove unused note handler, cleanup

COMPILERS AND DEBUGGERS

libmach: support disassembling from memory

PROGRAMS

awk: allow string as exit status

awk: don’t get into a infinite loop with eof while in string (thanks BurnZeZ)

cwfs: -n always overrides postservice() name, no matter if config mode changes service

doom: add games/wadfs

doom: clean up temporary mus files

ssh: issue “winchon” ctl request to /dev/consctl to get interrupt on window size change from vt(1)

sshfs: fork ssh in its own namespace so it wont keep the mountpoint open

sshfs: start sendproc and recvproc in the same notegroup as the fs process so theadexitsall() works on sshfs: ending.

sysinfo: only dump #r/nvram on amd64,386

sysinfo: run aux/icanhasvmx with verbose flag

vmx: lilu dallas multivm

vmx: VGA framebuffer should be normal memory

vmx: don’t realloc virtio queues – breaks pointers

vmx: fixed code that assumed uintptr==uvlong

vmx: memory map improvements, x86 simulator for MMIO

vmx: allocate sticky instead of more expensive fixed segment

vmx: fix hlt idle problem

vmx: pass multiboot framebuffer info to kernel

vt: block selection mode for snarf

vt: fix silly bug causing characters be drawn one at a time

vt: implement /dev/cons and /dev/consctl as a fileserver, winch, incremental redraw

vt: turn off nl -> nl+cr translation default in raw mode, don’t scroll more than screen height

OTHER

booting: rename pcf kernel to pc, remove pcf, pccpuf, pccpu64 kernels, update documentation

inst: don’t hardcode /net/ether0, might have usb ethernet

inst: get rid of halt, just run fshalt in finish directly

inst: get rid of ppp configuration

inst: post newfs fileservers under /srv/$fstype.newfs to avoid conflict with preexisting local filesystem

DOCUMENTATION

vmx(3): document changes to devvmx interface

back

9FRONT “FULL SPEED (SINCE 1.0)” RELEASED (2017/08/01)

front

http://9front.org/iso/9front-6111.cef8f3fb17e6.iso.gz.torrent

http://9front.org/iso/9front-6111.cef8f3fb17e6.iso.gz

dash 1 manual

http://fqa.9front.org/dash1.fullspeed.pdf

NEW IN THIS RELEASE

KERNEL AND DRIVERS

kernel: add support for sticky segments (cached, preallocated, never paged)

kernel: fix bounds check in screenputc()

kernel: pass bootargs also in multiboot command line, retire the bootline mechanism to pass arguments to /boot/boot

pc kernel: mkfile target usbehcipc.$O needs ../port/usb.h, add usbxhci.$O

pc, pc64: adapt devvmx to ork on pc64

pc, pc64: enable usbxhci in the configuration

pc, pc64: support for multiboot framebuffer, common bootargs and multiboot code

pc, pc64: debugexc: ignore exception if in kernel mode and can’t get hold of up->debug

pc, pc64: keep shadow copy of DR7 in Mach and use that to check whether we need to reset DR7 in procsave(); remove superfluous reset of DR7 in mmurelease()

pc, pc64: reset DR7 in mmurelease

pc: add vmx device

zynq: simplify initcode stack setup (just do it in init0 when the stack is mapped)

devusb: fix wrong pollival calculation in setmaxpkt()

devvmx: add support for SG_STICKY segments

devvmx: add support for extrap command to configure halting on exceptions

devvmx: error handling in clearmeminfo

devvmx: fix CR0/CR4 readout; also don’t exit on PAUSE instruction

devvmx: remember segment names and free segments properly

devvmx: support debug registers; simplify assembly

devvmx: support pat and efer registers

usbehci: fix crash in cancelisoio() for highspeed device due to wrong pollival

usbohci, usbehci, usbxhci: save mmio base address in ctlr, cant PADDR() on 386…

usbohci, usbuhci, usbehci: use physical address of registers for matching controllers and printing

usbxhci: basic iso write support (usb soundcard playback)

usbxhci: better approach to unstalling endpoint and fixup td ring

usbxhci: commit work in progress xhci driver, no config yet

usbxhci: experimental usb3 support

usbxhci: handle changing maxpkt on control endpoint by reevaluating endpoint context

usbxhci: implement command timeouts and aborts, serialize unstall

usbxhci: implement controller handoff, ignore usb3.0 ports, honor pollival for isochronous endpoints

usbxhci: provide shutdown function to halt the controller

usbxhci: simplify xecp()

usbxhci: use physical register addresses for matcing controllers and printing. simplify endpoint slot initialization.

aux/vga: simplify vesa by adding rgbmask2chan() function

nusb/usbd: create endpoint files for conf #1, usb3 preparation

nusb/usbd: support for usb3 hubs

LIBRARIES

libfis: fix inverted CHS bit

libregexp: fix lexer so it doesnt move past the string when it gets a \ escape

COMPILERS AND DEBUGGERS

8l, 6l: get .frame offset right undoing $-4 hack

acid(1), proc(3): document watchpoints

acid: add getfields() builtin

acid: always create proclist variable

acid: provide hooks ‘procattach’ and ‘dying’

acid: watchpoint support

ktrace: handle amd64 stacktraces correctly

PROGRAMS

add aux/icanhasvmx

aux/cpuid: decode family and model bitfields

auth/factotum: complete p9any v.2 server protocol, but don’t enable it.

hpost: delimit @filenames by newline so files with whitespace aren’t mangled

hpost: fix field content mangling when newlines are present

upas/fs: handle plumbing for new messages for concurrent index updates

vmx: I/O string instructions, incomplete support for IDE disks, misc fixes

vmx: add support for (so far) crude 9p debugging fs; add gdb stub; clean up linux gdt code

vmx: clean up region handling code; changes to support amd64

vmx: don’t zero all memory, don’t abandon uart on eof, sleep before transmitting uart data

vmx: fix ‘-v text’

vmx: fix non-vesa framebuffer mode

vmx: fix translateflat on 64-bit

vmx: i8042: translation changes reported keyboard id

vmx: linux kernel loading; PIT fixes to support linux; support VGA 0x3D4 word writes; support sending virtio ethernet packets to a file and prepending snoopy headers

vmx: obsdfb: check if curmode is nil

vmx: round up frame buffer size to whole pages, ignore vga access in linear framebuffer, tell openbsd about framebuffer

vmx: support debug instructions

vmx: VESA support and other misc I/O improvements

vmx: complete cmos

vmx: fix build on non-x86 architectures (switch vlong)

vmx: fix pic ‘specific eoi’ bug, fix kbd bug, add fake IDE and floppy controller

vmx: fix virtio bugs

vmx: implement virtio reset

vmx: improve PIT/keyboard support

vmx: obsd: load kernel symbol table and allow setting root device

vmx: openbsd support: parse more options

vmx: remove debugging print

vmx: slightly more vga support

vmx: support EFER and PAT access

vmx: support loading openbsd kernels

xd: use new bio magic to make -u more efficient

OTHER

/lib/{rob, rsc, theo}: Yup.

remove /sys/lib/##redacted##.##redacted## (thanks ##redacted##)

DOCUMENTATION

authsrv(6): don’t say old p9any isnt in use anymore…

pc(1) clarification

print(2): clean up vlong flag description

rc(1): catch up with a change made long before 9front

segment(3): document sticky segment type

vmx(1), vmx(3): add vmx documentation

back

9FRONT “MARITIME ENGINEERING STANDARDS” RELEASED (2017/05/04)

front

http://9front.org/iso/9front-5966.df2c352ae695.iso.gz.torrent

http://9front.org/iso/9front-5966.df2c352ae695.iso.gz

dash 1 manual

http://fqa.9front.org/dash1.maritimeengineeringstandards.pdf

KERNEL AND DRIVERS

kernel: avoid waserror() botch in devwalk (from drawterm, thanks aiju)

kernel: fix memory leak in checkpagerefs() debug function (thanks aiju)

kernel: fix rewinding in directories with pread() offset

kernel: fix twakeup()/timerdel() race condition

pc: handle PCMP and RSD being in low (kaddr) or reserved (vmap) memory

pc: fix memory leak and add clog() function

pc64: state mp.h dependency for archacpi.$O

devdraw: ignore drawdebug command

devsd: handle case where theres no ifc->enable() function

devsd: check return value of ifc->enable(), don’t leak unit name/user strings

devvga: include hwgc in vgactl file

devvga: remove unused copy of checkport() function

sdvirtio: return 1 for success in vioenable()/viodisable()

sdnvme: NVMe controller driver (work in progress)

sdnvme: don’t write completion queue doorbell register when nothing has been processed

sdnvme: enable in pcf, pccpuf, pc64 kernel configuration

LIBRARIES

lib9p: allow rewinding in 9pfile directories

libavl: fix documentation

libavl: lookup can return the closest match

libdraw: get rid of _drawdebug variable

libmemdraw/libmemlayer: get rid of drawdebug prints

libmemdraw: get rid of kernel iprint() emulation

libregexp: miscellaneous little cleanups

libsec: sha256 support for thumbprint files, use it in ssh as well

libsec/tlshand: fix ECDHE and DHE for SSLv3

libsec/tlshand: fix mpint to bytes conversion, reorganize send/recv buffer, check for overflow in msgSend()

libsec/tlshand: simplify tlsReadN()

COMPILERS AND DEBUGGERS

5e: fix special bitshift and rotations

[012568kqv]a: correctly lex full range of integers in the assemblers (thanks Ori_B)

fix yacc bug (found by dan cross)

PROGRAMS

aux/wpa: go to background when not prompting, handle open networks

chgrp: remove unused function declaration (thanks archeus)

cwfs: allow “none” user to rename files

factotum: append public rsa encyption exponent after the modulus

file: recognise Xilinx bitstreams

fortune: avoid buffer overflow for lines >= 2K, make sure index has at least one entry, use nrand()/ntruerand() for uniform distribution

games/blit: mkfile: install into /bin/games

games/blit: always show top-left corner; add tony kaku’s -m flag

games/blit: remove strange debugging line

games/galaxy: fix exit race condition by pausing the galaxy before threadexitsall

games/galaxy: parallelize gravitational force calculations

games/md: copy updated cpu.c from blit

hjfs: Add comment to change the OFF size to 8 when given the chance

hjfs: Clear all refs to zero when reaming.

hjfs: Fix bugs in ref count scan check. Enable as a console command (caveat: command arguments will change as I implement more functionality)

hjfs: add simple scan check of directory entry blocks

hjfs: avoid 8c “non-interruptable temporary” warning

hjfs: check: check a block if its ref count is not zero. Also check all the ref counts of blocks of a directory and clean up messages

hjfs: disable hjfs check until more functionality is complete

hjfs: fix broken dprint

hjfs: improve error messaging around blocks that are not found

hjfs: merge start of hjfs check implementation

hjfs: simplify dprinting

hjfs: start implementation of checking a directory

ip/torrent: avoid requesting same chunks

ip/torrent: avoid peerid collision using truerand() instead of time(0)

ip/torrent: exit immidiately when file is complete after verification and not being in seed mode

ndb/dns: double Maxretries for long cname redirection chains

nusb/lib: make usbcmd() return value symmetic; returning size of data phase (if any) (thanks aiju)

nusb/ptp: treat any assocation as a directory

nusb/serial: pl2303: better error handling

replica: use libavl for avl tree implementation

rsa2ssh: drop support for version 1 key format

ssh: weekend project

ssh: actually handle flow control and channel id’s

ssh: add “none” method to find out list of acceptable methods

ssh: add support for subsystems

ssh: cleanup debug messages

ssh: close the channel when vt hangs up

ssh: do not try authentication methods that we know are not possible

ssh: document thumbfile options

ssh: fix locking, and key reexchange handling

ssh: fix typo

ssh: implement password and keyboard-interactive authentication methods

ssh: implement primitive hostkey verification

ssh: increase initial window size for better throughput

ssh: loop keyboard-interactive on failure

ssh: make number of retries configurable

ssh: print the whole ssh-rsa hostkey in base64 when thumb check fails

sshfs: add -r and -M options

sshfs: check correctly for directory bits; calculate parent directory correctly

sshfs: don’t cache directory contents

sshfs: don’t crash when no /etc/password file could be read on the remote side

sshfs: fix -r / retulting in “//foo” paths, memory leaks, use estrdup9p()

sshfs: look up uid/gid from /etc/^(passwd group)

sshfs: remove debug print

sshfs: reset SReq->reqid field to fix double-free of request ids

upas/common: deliver mail to mdir as .tmp file and rename after it has been fully written

upas/fs: don’t abort on malformed unix header

upas/fs: fix dir comparsion and skip directories in mdir, avoid stat

upas/fs: fix sync condition

upas/fs: fix warning about unused Err: label

upas/fs: make use of Maxmsg consistent

upas/fs: remove imap lastread debounding

upas/fs: simplify imap4read()

upas/send: use openfolder() to deliver mail to avoid code duplication

upas/smtp: Revert smtp dial string behavior to match that of old upas (thanks sam-d)

upas/smtp: fix cram-md5 auth, simplify doauth(), check varargs for dBprint()

upas/smtp: generate 128-bit random message id (was 32 bit), use dBprint(), cleanup unused variables

vt: convert from event to threads

vt: cursoron, don’t resize winow when replying history

vt: fix background drawing

vt: fix xterm cursor keys

vt: handle application/normal mode (really fixes cursor keys)

vt: handle insert/delete/home/end keys for vt220/xterm

vt: handle nocolor flag and reversed background colors

vt: handle underline attribute

vt: implement snarf support

vt: increase history buffer to 64K runes

vt: send interrupt on exit, open logfile OCEXEC, run host after environment got exported, send rest of arguments to host

OTHER

change cpurc to look for service folder in /cfg/$sysname and /cfg/default

disable all services except 17019, 17020 by default

dist/ndb: move sources auth server to ndb/common, list root dns servers in ndb/local as a fallback

inst/configether: in manual network configuration, ask for dns server

/lib/rob, /lib/theo: I don’t think so.

DOCUMENTATION

9p(2): fix typo in manpage

add blit(1) manpage

plumb(2): Fix typo in description of Plumbdelattr (thanks sam-d)

webfs(4): timeout is in milliseconds not seconds (thanks sam-d)

vt(1): the “send” menu became “paste”

ssh(1): add $home/lib/thumbfile to FILE section

ssh(1): add bugs section about host not being authenticated

ssh(1): initial documentation, needs examples for authentication

ssh(1): refer to thumbprint(6) for the sshthumbs file format

rsa(8): fix description of rsa2ssh (now, ssh2 format only)

add sshfs(4) manpage

sshfs(4): fix bad cross reference

back

THANKS FOR COMING IN

9FRONT “полезные дураки” RELEASED (2017/03/19)

front

http://9front.org/iso/9front-5817.cb352df7ccf2.iso.gz.torrent

http://9front.org/iso/9front-5817.cb352df7ccf2.iso.gz

dash 1 manual

http://fqa.9front.org/dash1.usefulidiots.pdf

KERNEL AND DRIVERS

ether8169: add support for RTL8106E (thanks _potato)

ether82563: work arround phyprobe() failing on 82579LM without cable plugged in (thanks mischief)

pc, pc64: bump Qmax in devarch

pc, pc64: get rid of active.Lock and active.thunderbirdsargo

pc, pc64: avoid AP’s spinning in syncclock(), don’t wait for thunderbirdsargo

pc, pc64: assume tsc and lapic clock rate on application processors is the same as on bootrap processor

pc, pc64: give cpu servers as many image cache strctures as processes

pc: don’t use active.thunderbirdsargo in vunmap() tlb flush code

pc64: enable cputemp driver

teg2: fix format string warning in mmu.c

devmouse: refactor screen blanking logic

LIBRARIES

libaml: make heap size field int, implement BankField definitions

COMPILERS AND DEBUGGERS

5l,6l,8l,kl,ql,vl: allow duplicate GLOBAL symbols (from Ori Bernstein)

PROGRAMS

auth/asaudit: check factotum key ; netaudit: mention asaudit NEW

auth/asaudit: missing \n in print

auth/asaudit: quote user and dom attributes in factotum key

auth/keyfs: support -r flag to mount read-only

auth/readnvram: also print dp9ik key

authsrv: more useful error reporting

authsrv: don’t hash in hostowner key for keyseed

authsrv: salt the keyseed from /adm/keyseed file

authsrv: handle short reads in initkeyseed()

authsrv: fix mkkey() dummy key generation (thanks aiju)

authsrv: get rid of needreply parameter by changing vnc protocol handler

cwfs: handle DMTMP flag in create

games/doom: music support (thanks qu7uux)

games/doom: avoid /dev/cursor fd leak into music process

games/doom: don’t spawn midi process when opening /dev/audio failed (thanks qwx)

games/galaxy: Change button 2 to reposition the galaxy, remove “move” from the button 3 menu

games/galaxy: avoid unnecessary calculations

games/galaxy: fix creation of new bodies

games/galaxy: fix zoom

games/galaxy: new mouse behavior

games/galaxy: simplify zoom loop

games/galaxy: tweak pausing behavior

games/midi: ignore bends, allow piping from stdin and to stdout, write in chunks from within sample loop (thanks qu7uux)

games/mus: midi converter (by qu7uux)

gs: fix dangleing pointer crash with “lock” (ghostscript Bug 697204)

gs: check for sufficient params in .sethalftone5

gs: validate parameter is dict in .initialize_dsc_parse

hgwebfs: keep trying as long as we get needkey response

hgwebfs: rewind data before pushing

ip/ipconfig: don’t null terminate the dhcp string options.

play, file: recognize midi and mus audio

tapefs: handle more cpio formats (thanks qrstuv)

upas: merging erik quanstros nupas

upas/fs: fix memory leaks in tls code, handle tls in a common wraptls() function

upas/fs: tls sni support for pop3/imap

upas/fs: remove planb mbox code

upas/fs: getting rid of the fine-grain locking…

upas/fs: remove unused segbrk memory allocator

upas/imap4d: change listener from ip/imap4d to upas/imap4d

upas/imap4d: simplify auth with encodefmt (backport from 9front)

upas/spf: delete okcidr(); always trust spf records

DOCUMENTATION

vga(3): complete list of vga controllers and software cursors

mus(1): fix manpage references

send(8): document new reject behaviour with -r flag

diskparts(8), prep(8): add edisk in NAME section

games(1): document games/midi -c arguments

add mdir(6), splitmbox(8) and update upasfs(4)

add redact(1)

authsrv(6): fix typo “ther” -> “their” (thanks aiju)

OTHER

update /lib/legal/NOTICE

inst: make command window not overlap stats window in glendas riostart

cdproto: make mdir for glenda, various cleanups

back

9front “FOR IMMEDIATE RELEASE” Released (2017/02/21)

front

http://9front.org/iso/9front-5736.d347c9119bb1.iso.gz.torrent

http://9front.org/iso/9front-5736.d347c9119bb1.iso.gz

PRAISE FOR 9FRONT’S BOLD ACTION

9front “Is Coming Out As A Winner On Many Issues…” – SD Times

rkrishnan, Cisco Systems: “I am extremely sorry to see plan9 die a silent death.” (rkrishnan.org, 10/25/13)

Rod Person, VPN Cryptographer: “Does 9front have an email app and how usable is mothra, I’m guessing not ebay or youtube?” (daemonforums.org, 6/25/15)

Christoph Reiter, German: “Wer verwendet 9Front eigentlich? Die Antwort lautet: fast niemand.” (golem.de, 8/3/16)

seesomesense, Hacker News: “Plan 9 was probably the finest operating system in the world.” (HN, 11/16)

pranomostro, Redditor: “The future of plan9 is pretty bleak imho.” (reddit.com, 1/17)

dash 1 manual

http://fqa.9front.org/dash1.forimmediaterelease.pdf

kernel and drivers

kernel: add “close” ctl message for tcp connection to gracefully hang up a connection without a tcp reset (used by go)

kernel: make the mntcache robust against fileserver like fossil that do not change the qid.vers on wstat

pc/pc64: get rid of timerset(0) case, was used with “i8253set off” ctl

sgi: change definition of tas() to take void* like the rest

sgi: cleanup timer code

sgi: get rid of timerset(0) case

ether82563: support for i219 (tested on t460p, thanks aiju)

etheriwl: add support for Centrino Advanced-N 6030, 6235 (thanks khm, openbsd)

vgaigfx: enable softscreen by default

wifi: timestamps in debug print, flush queue on deassoc, shorter roam timeout, timeout in blocked state, fix essid seprint race

libraries

libmp: avoid temporary buffer allocation in mprand()

libmp: fix mpmod() aliasing bug when n == r and x < 0 (thanks aiju, mischief)

libregexp: simplify regular expression vm implementation

libregexp: improve the transition to next available thread, instruction, and generation

libregexp: fix assert check for compile1 instruction count

libsec: replace des based X9.17 genrandom() with chacha random number generator

libsec: implement extended 192-bit nonce xchacha variant and hchacha function

libsec: avoid temp variables in chacha/salsa ENCRYPT() macro

libsec: have rsagen() always produce postive !dk to avoid confusion

libsec: need PKCS#9 “Extension Request” attribute (rsareq())

libsec: check if modulus is too small for message in pkcs1padbuf()

libsec: fix mkbigint(), asn.1 uses two’s compement signed representation

libsec: handle signed asn.1 bigint to mpint conversion for x509

libsec: revert asn1mpint(), rewrite rsa signature validation, cleanups

libsec: make X509toECpub() return CN name like X509toRSApub()

libsec: zero name buffer in X509toECpub()

compilers and debuggers

6c, 8c: fix “DI botch” evacuating DI/SI/CX registers to “.save” variables

6c: reverse register allocation order to avoid having to spill AX,DX and CX

programs

aan: check negative message size in header

aan: use unsigned message counters, reject repeated acks, cleanup debug prints

aan: remove fcallfmt

audio/flacdec: continue after decode error (thanks deuteron)

auth/factotum: fix memory leak in findkey()

auth/factotum: support sha256 algorithm in rsa pkcs#1 signing

auth/keyfs, auth/secstore, auth/secuser: use ulong for time

aux/data2s: compress output

aux/wpa: dont send initial “start” message, faster polling interval waiting for connection

cfs: fix cfsctl interaction with mount cache (mount -C flag)

cwfs: fix cwcmd startdump

cwfs: handle worm exhaustion more gracefully

fplot: parse negative numbers in argument to -r option (thanks qu7uux)

fplot: fix zoom egetrect check (thanks qu7uux)

games/galaxy: add n-body simulator

games/galaxy: fix crash on write to closed display

games/gb: fix typo in the routine to load timer data (thanks qwx)

games/gb: timer array should be unsigned (thanks qwx)

games/gb: fix bug that prevented timer data from being accessed (thanks qwx)

games/jukefs: fix realloc sizes (thanks mischief)

games/mix: Add Knuth MIX emulator/assembler

games/mix: fix STZ bug, print CMPA instruction

games/mix: implement Knuth’s specification for comments

inst/bootsetup: fix unformated esp check (thanks yellow_apple)

ip/gping: fix corruption due to Machine.last pointer not being maintained in pingclean(), cleanup unused stuff

ip/ipconfig: don’t write /net/ndb when getting config from ndb (-N)

ip/ipconfig: have to refresh /net/cs, /net/dns after ndbconfig even tho /net/ndb didnt got written

keyfs: print error message when reading /adm/keys fails

playlistfs: fix playc chan type (thanks mischief)

rcpu: use $cpu environment variable for host when not specified

rsagen: prefer 65537 as the default exponent when elen == 0, otherwise pick randomly

rx: remove ssh code

samterm: avoid flushimage when theres nothing new to flush

ssh: R.I.P.

documentation

auth(8): document authsrv -N flag

cpu(1), import(4): note deprecation and refer to rcpu(1)

ec(2): document ecencodepub(), ecdecodepub() and ecpubfree() and list all the curve parameter functions

ec(2), rsa(2): document X509toECpub(), X509ecdsaverify(), X509ecdsaverifydigest(), X509rsaverifydigest()

galaxy(1): terminate .EX sections with .EE

rsa(2): document rsafill()

srv(4), &c: remove ssh/sshsrv references

other

cdproto: explicitely create /$objtype/bin subdirectories for all archs

/sys/lib/plumb/basic: fix rule for audio files (thanks deuteron)

back

New 9front release “GZ” (2016/12/28)

front

http://9front.org/iso/9front-5641.6149f97a7801.iso.gz.torrent

http://9front.org/iso/9front-5641.6149f97a7801.iso.gz

dash 1 manual

http://fqa.9front.org/dash1.gz.pdf

kernel and drivers

kernel: avoid padblock copying for devtls/devssl/esp, cleanup debugging

kernel: fix missing ; in panic() call

omap: fix format string warning %d for long

omap: cleanup mouse.c, just a dummy for mousectl()

pc: pat write combinding support for 386 kernel, honor cpuid bits

pc: modify cpu0 page tables in patwc() instead of current cpu ones

pc64: check if vmap() range fits in VMAPLEN window, remove unneeded vmapsync(), rename fault386() to faultamd64()

pc64: implement simple write combining for framebuffers with the PAT

xen: fix build by adding missing rdrandbuf() function

archacpi: fix format string warning on amd64

gre: check nil for pullupblock()

ip: always pass a single block to Medium.bwrite(), avoid concatblock() calls in Dev.bwrite()

ip: remove nil checks for allocb() and padblock()

ip: fix typo (rfc -> ifc)

ip: get rid of update_mtucache() and restrict_mtu() prototypes

ip/nullmedium: free passed block in nullbwrite()

ip/pktmedium: fix wrong hsize, theres no ethernet header on packet media

ip/pktmedium: no mintu, no maclen… thi is ip packets

ip/tcp: remove useless nil checks for padblock() and allocb() return value

ip/tcp: only calculae mss from interface mtu when directly reachable for v6

ip/tcp: never raise the mss over the link mtu < 1280 for v6

qio: big cleanup of qio functions

qio: fix comments, fix qiwrite() on close queue, remove debug setmalloctag() call in qwrite()

qio: implement concatblock() with pullupblock()

qio: get rid of unused qcopycnt debug variable

qio: make readblist() offset of type ulong as the rest

devbridge: various bugfixes and improvements from charles forsyth

devbridge: simplify etherwrite() as we dont deal with block lists

devcons: simplify putstrn0()

devloopback: simplify loopoput()

devmnt: avoid memory copies of I/O rpc buffer by using bwrite()

devmouse: various bugfixes, simplify

devmouse: change msec argument of *mousetrack() to ulong

devmouse: remove unused static map[] array

devtls: remove unused get32() function

audioac97: support for ICH4-ICH7 based cards with memory mapped registers (thanks echoline)

libraries

libauth: don’t attempt to mount when opening mount srv file fails in nsop()

libavl: put debug functions back

libc: move calloc() into its own compilation unit

libmemdraw: remove unused static drawbuf variables and ptrfn() declaration

libmemdraw: cleanup fillpoly(), remove unused fillcolor hack

libmp: mpxor: sign should be 1/-1, not 0/-1

libregexp: put debug functions back

ape/libsec, libsec: add secp384r1 curve parameters for tls

libsec: remove unused aes_setupDec

libsec: remove unused get32() function

libstdio: fix sclose() buffer overrun when terminating string, realloc() error handling (thanks porlock)

compilers and debuggers

8c: fix double compiling FNX complex lvalue in cgen64()

acid: fix y.tab.h dependency for proc.$O

programs

aan: didn’t ask about sendcommand

auth/as, auth/none, auth/newns: consistent handling of command arguments, cleanup

aux/acpi: make it stats(8)-friendly

awk: improve random number generation

clock: remove unused variable

cryptsetup: fix bugs and cleanup

nusb/ether: support for “bridge” ctl message

page: remove unused variables

ramfs: remove unused variable

rcpu: avoid filedescriptor conflict with <{} (thanks mycroftiv)

stats: alternatively read battery and temp from aux/acpi

tar: remove unused variable

vncs: update devmouse code

vncs: don’t prompt for password on auth_respond() failure

winwatch: middle mouse button click also prompts for label

winwatch: no more ‘l’ key labeling

winwatch: put previous label contents in edit buffer for relabling

documentation

alv(2): new avl implementation

srv(4): add SOURCE for srvtls

other

cdproto: explicitely create /$objtype/bin subdirectories for all archs

tcp17019: make service proto and netdir arguments optional (for aux/listen1)

back

New 9front release “LOOKS GREAT IN MOTHRA” (2016/10/27)

looksgreatinmothra.front.png

torrent

direct download

dash 1

dash 1 manual

kernel and drivers

devcap: timeout capabilities after a minute, fix memory leak, paranoia

devcons: remove /dev/reboot “halt” command…

devproc: do unsigned subtraction to get MACHP(0)->ticks - up->times[TReal] delta

devip: simplify ipbwrite() by using retun value of qbwrite()

ip/*: simplify code as packblock() and concatblock() will never error

ip/icmp: only reply to echo request when directed to us and source is unicast

kernel: tsemacquire() use MACHP(0)->ticks for time delta

kernel: make sure procalarm() remaining time doesnt become negative

kernel: use tk2ms() instead of TK2MS macro for process time conversion

kernel: always do unsigned subtractions for m->ticks delta for updatecpu() and rebalance(), handle ticks wrap arround in hzsched()

kernel: fix type for utime/stime in pexit(), fix debug format strings

kernel: make randomread() fault reentrant

kernel: rekey chacha state on each randomread() invocation

kernel: replace various custom random iv buffer filling functions with calls to prng()

kernel: xoroshiro128+ generator for rand()/nrand()

etherzynq: implement promisc mode and multicast filter support

nusb/ether: experimental pomisc mode and multicast support for smsc and asix

nusb/ether: multicast and promisc support for rtl8150 (url)

nusb/ether: promisc and multicast support for admtek pegasus (aue)

nusb/kb: set usage to 0 (undefined) for items exceeding usage list

nusb/lib: fix wrong endpoint id when openep() finds already existing endpoint file

scram: disable GPEs before entering S5. x200s shuts down properly now

pc/archacpi: provide generic #P/acpimem file

aux/acpi: batteries and CPU temp reading so far

libraries

ape: bring strtod() in line with plan9’s libc version

ape: fix format clash, %z is for size_t (which is a long currently), not pointer sized

lib9p: limit the number of srv processes kept arround 8

libc: dont use floating point for portable umuldiv(), use 64 bit uvlong

libdraw: avoid dropping queued button change mouse events in emouse()

programs

auth/factotum: bound the number of srv processes to 16, error the 9p rpc when it is over limit

cpu: quote remaining remote command arguments, don’t syslog on missing /mnt/term/dev/cpunote file

gif: just read and decode the first image when -9 or -c flag is specified

ipv6on: get network device from $netdir/ipifc/*/status

iwhois: make -n work, add .org, and a couple minor changes

mothra: avoid flushimage() calls, event() will implicitely flush

mpc: remove unused yylval type

rio: fix onscreen(), improved bandsize()

sam: make current filename available to shell commands in $% (thanks aiju)

scat: hjdicks for amd64

webfs: don’t use cached connections when posting

documentation

authsrv(2): update Nvrsafe structure to include aesmachkey

ip(3): spelling, update description of /net/ipifc/*/status format

pc(1): _ handling in numbers was broken at some point; restore documented behaviour

pc(1): add nsa() command

pc(1): add pb (thanks, BurnZeZ); add bit numbering

pc(1): bugfix: allow setting output base to 0 (thanks, deuteron)

pc(1): if the input base is not 10, print the 0d prefix before decimal numbers; this way, all output is always valid input (for the current mode)

other

fortunes: does that me a dipshit

looksgreatinmothra.back.png

OSHUG 46 — The Name Game, feat. Plan 9 & Inferno, Dr Charles Forsyth (2016/10/08)

Dr Charles Forsyth is a founder and Technical Director of Vita Nuova, which specialises in systems software and distributed systems.

Video published on Oct 4, 2016

New 9front release “THINK ABOUT THE FUTURE” (2016/09/04)

thinkaboutthefuture.front.png

torrent

direct download

dash 1

dash 1 manual

notes

This release adds aiju’s games/timmy, a physics simulation game and a bignum calculator for programmers called pc.

On the system side, we got a fast portable /dev/random now which is based on the chacha stream cipher - carefully seeded once at boot time. Cipher states for the rng and other kernel crypto services is now kept in a separate memory pool which devproc will prohibit access to and which automatically destroys the data on free.

kernel

acpi: ADR and BBN might be methods, so use amleval() to evaluate the value

aml: define amlintmask and set it according to DSDT revision (64bit / 32bit)

aml: implement ToInteger() and Match() instructions

devmnt: fix mistake in mntrahread()

devsdp: keep cipher states in secret memory

devssl: allocate cipher states in secret memory

devtls, devssl: make sure channel has ORDWR mode and is not a mount chan on fdtochan()

devtls: allocate cipher states in secret memory

ether8169: fix wrong mbps setting (from qu7uux)

etheriwl: add pcid 0x0082 for Intel Centrino Advanced-N 6205 variant

ip/esp: allocate cipher states in secret memory

ip/il: dont attept to connect over IPv6, IL only supports IPv4 packets

kernel: add secalloc() and secfree() functions for secret memory allocation

kernel: dont pprint() into 9p channels

kernel: more (arm) compiler friendly mul64fract()

kernel: switch to fast portable chacha based seed-once random number generator

swap: make sure swap chan has ORDWR mode on fdtochan()

wifi: allocate cipher states in secret memory, do AESstate key setup once

libraries

ape/libap: add d_stat struct in dirent struct allowing the avoidance of stats

ape/libauth: add PASSWDLEN constant to compile passtokey.c from native libauthsrv (thanks lawler)

libauth: fix mount file-descriptor leak in auth_chuid()

libauthsrv: ANAMELEN -> PASSWDLEN

libauthsrv: export common readcons() routine and introduce PASSWDLEN constant

libc: add poolisoverlap() and definitions for Pool *secrmem

libc: native addv() and subv() routines for arm

libcontrol: primitive text entry cut and paste with mouse

libflate: add bounds checking on decode array, add sanity checks in hufftab()

libframe: consistent use of nil vs. 0

libmach: fix RORREG, right shift with shift count 0 means >>32

libmp: allow passing nil to v,x,y results of mpextendedgcd(), simplify mpinvert()

libmp: fix mpnot and add mpasr

libmp: fix mptov and mptouv

libmp: mpdiv: negative divisor has to flip sign of quotient

libmp: mpnrand(), what was i THINKING

libmp: mptrunc: don’t write to r->p[r->top]

libmp: mptrunc: normalize after mpassign to handle the case b==r

libmp: remove unused mpeuclid.c

libmp: strtomp: fix mpbits() call in octal code

libmp: strtomp: update the returned char* even if there were no characters parsed

libmp: timingsafe sign flip for small power-of-two negative divisor for mpdiv()

libsec: add scrypt password based key derivation function

libsec: chacha: calculate rounds in separate function (helps registerizer), get rid of unrolled code

compiler

5a: ROR instruction 5a: assemble constant >>0 right shifts as <<0 (no shift), allow >>32

5c: do shift propagation for rotate right (ROR)

5c: fix int -> uvlong cast bug (thanks to qwx on his patience on a the trouble session to narrowing it down)

5c: format assembly constant right shift encoding 0 as >>32

5c: handle unused results for cgen64()

5c: support for bit ROR, native 64 bit arithmetic

5l: ROR instruction

5l: format assembly constant right shift encoding 0 as >>32

6c: subsitute floating point registers eleminating MOVSD and MOVSS instructions in peephole pass

8c, 6c: native ROL (cyclic shift) instruction support, improve peephole optimizers

?c: track ../cc/cc.h dependency and rebuild cc.a$O as neccesary

cc: add OROL op to side effect free op list

programs

Bfn: add Bfn script - find source code for function

9fs: remove juke, kfs and snap targets, caching for other and dump

acme/win: implement /dev/wdir file in win to change directory tagline, remove awd

audio/flacdec: exit on decode error, print error message

auth/*: various cleanups, use common readcons() from libauthsrv, zero keys after use

auth/changeuser: fix misleading print (secret is 31 chars max, not 256)

auth/factotum: use common readcons() function from libauthsrv

auth/fgui: use pale colors

auth/login: add dp9ik key to sub factotum, get rid of temporary /srv file

auth/secstore: use common readcons() routine from libauthsrv

awk: fix awk format printing bugs (thanks aiju)

disk/prep: if no 9fat, reserve space for plan9 partition table in autopart (thanks Shamar)

games/doom: fix blazing door sounds (from qu7uux)

games/doom: use Kprint for pause function (from qu7uux)

games/timmy: added timmy - a physics sandbox

hgwebfs: make hgwebfs prompt for password

make error handling in 9p service loops consistent

mercurial: use new d_stat from dirent structure in osutil.listdir

mk: remove buggy and unneeded syminit() function (thanks qurstuv)

mk: remove buggy and useless symtab functions (thanks qrstuv)

ndb/cs: don’t lookup AAAA records for IL, make sure translated address is IPv4 for IL, consistent use of nil vs. 0 for pointers

ndb/dns: purge db records on refresh for resolvers, remove old debug and testing code

ndb/dns: remove procname statistics and restart feature, cleanup 9p service loop

pc: added pc - programmer’s calculator

pc: add cat() function

pc: add gcd, rand and minv; set base of logical operation results to 0

pc: add rev function

python: remove automatic compiled module loading (.pyc files)

ratrace: fix fork/exec race with “nohang” procctl (like a debugger)

rc: implement 9atoms ` split {command} syntax extension

rc: write /dev/wdir after printing the prompt, not after executing “cd” command

rio: move the test if w is allowed to change cursor into wsetcursor()

togif: -E flag to read animation from stdin

upas/fs: remove checkmboxrefs() debugging code, properly handle errors in 9p loop

vga/igfx: add pci did’s for kenjis intel graphics cards.

vga/igfx: fix integer overflow in datam calculation (from qu7uux)

vga/igfx: work in progress fdi link train for sandy bridge, properly calculate fdi and displayport lane count

webfs: avoid retry loops when we got a bad key in factotum

webfs: include factotum key query in error string for 401/407 Unauthorized status

webfs: less aggressive url normalization; never unescape reserved characters in path/query/fragment

documentation

acme(1): remove references to awd

aml(2): document amlintmask

authsrv(6): document session secret key derivation for p9sk1 and dp9ik

mp(2): document mplogic functions

pc(1): document pc - programmer’s calculator

rand(2), cons(3): clarify /dev/random behaviour

rc-httpd(8): fix wrong manpage section index generation for rc-httpd(8)

regexp(2): add history for libregexp

rio(4): document text truncation

src(1): document Bfn

thread(2): threadgrp() -> threadgetgrp(), thanks jpm

timmy(1): games/timmy manpage

other

fortunes: Emacs now supports webkit.

thinkaboutthefuture.back.png

New 9front release “NINE FRONT DON’T QUIT!” (2016/05/30)

nfdq.front.png

torrent

direct download

dash 1

dash 1 manual

notes

kernel

kernel: fix cb->f[0] nil dereferences due to short control request

kernel: add srvtls and tlsclient to bootfs.proto for encrypting connection to the file server

devssl, devtls: fix permission checks

etheriwl: add pci id for PRO/Wireless 5350 AGN (thanks Ori_B)

vgaigfx: fix device id for Ivy Bridge (thanks Kenji)

vgaigfx: check gtt to determine graphics memory size, add hw cursor support for g35 (thanks kenji)

efi: allow access to iso filesystem on non-cdrom media (iso/hybrid)

efi: ensure 8 byte alignment of buffer, as ReadBlocks() method will fail otherwise

libraries

libauthsrv: dont pass netroot to netmkaddr()’s defnet parameter in authdial() (thanks kenji arisawa)

libmemdraw: remove unused static variable from memimagedraw()

programs

9boot: add iso hybrid loader 9boothyb

auth/rsa2x509, auth/rsa2csr: allow appending SubjectAlternativeNames (SAN) to multi-domain certificate generation

auth/rsa2x509: generate x509v3 cert as extension field might not otherwise not be expected

awk: restore old buffering behaviour for printf

cc: use UTFmax not 4 (djc)

cc: prevent symbol buffer overflow

dist/mkfile: generate iso/hybrid image for 9front.iso

exportfs: disallow ORCLOSE in readonly mode (charles forsyth)

games/mahjongg: off by one in bmatch(), fix hint() redraw (thanks Kenji)

ip/ipconfig, ip/ppp: preserve preexisting entries when writing /net/ndb

jpg: output partial image data when available (truncated files)

ndb/cs: fix memory leak (charles forsyth)

rc: fix inband globbing bugs, cleanu

rc: remove pointless Memcpy(),Malloc(),Realloc() and efree() wrappers

rc: remove historical unix and win32 ports

rc: remove duplicate Xrdfn entry from fname[] array

rc: fix double close() in addenv()

rc: simplify execfinit() / Xrdfn() using the globber to lookup /env/fn'#‘*

rio: only the current window may change the cursor, fix typo screen->r vs w->screenr in drag()

add srvtls and the corresponding tcp17020 service

upas/marshal: strip trailing whitespace from header values

documentation

9boot(8): document 9boothyb

other

remove š and Š from estonian keymap

add belarusian (by) keymap (thanks eric lindblad)

add polish keymap (thanks chomzee!)

/lib/vgadb: add Panasonic CF-R7 LCD panel (thanks Kenji)

nfdq.back.png

New 9front release “ALLES LÖSCHEN!” (2016/05/06)

allesloschen.front.png

torrent

direct download

dash 1

dash 1 manual

kernel

retire the dec alpha port

remove unmaintained bitsy (ipaq) kernel

remove unmaintained omap4 (pandaboard) kernel

etheryuk: add Yukon 88R8055 id from erik quanstros driver (thanks Kenji), add to pc64 kernel

libraries

ape: remove openssl

ape: add libauth, libbio, libmp and libsec as replacements for openssl

ape: return plan9 error strings from strerror()

libauth: remove support for import command in namespace files

libauth: remove unneeded includes for authsrv.h, avoid pulling in dependency for rerrstr()

libc: fix out of bounds access in dirpackage(), simplify

libc: remove unneeded #include <auth.h> for crypt() and netcrypt()

libdraw: avoid BPSHORT()/BPLONG() expansion, cleanup loadchar(),cachechars()

libdraw: dont postnote to pid==0 in ekill()

libjson: add slack space to literal string buffer to handle bad runes (thanks mischief)

liboventi: remove unused liboventi

libregexp: New libregexp and APE ported to native

libsec: dont use mips assembly routines for spim, wrong endianess

libsec: fix memory leak of RSApub, avoid parsing certificate twice to extract rsa public key

libsec: implement elliptic curve group operations in jacobian coordinate system

libsec: implement server side ECDHE key exchange with secp256r1, move DH state in TlsSec structure, simplify

libsec: implement server side SCSV preventing silly client fallbacks

libsec: order tlshand cipher suits by: keyexchange>=cipher>=hash, ignore client preference

libsec: recognize and decode PKCS#8 wrapped RSA private keys for auth/asn12rsa

libsec: x509: convert to UTF8 from BMPString and UNIString, reject \0 bytes

programs

9fs: add “sites” to the 9front case

abaco: respect $font

acid: don’t get fooled by spaces in convflt()

awk: replace ape awk with new native port (thanks spew)

gs: replace openssl aes implementation with ape/libsec

hg: create system wide /sys/lib/hgrc to enabled hgwebfs extension

hg: set $HOME when not already set to avoid silly uid lookups which can fail if theres no /adm/users

hg: set mercurial.url.has_https when hgwebfs extension is in use

kbdfs: add shift+altgr table 7 for polish keymaps

ktrace: sign extend stack dump pc for amd64

python: remove openssl support, use ape/libsec for cryptographics hash functions

rcpu: make sure not to leak /env/fn#server and /env/fn#aanserver for drawterm (thanks mischief)

rsagen: increase default key size to 2048 bits

vncv: fix netmkvncaddr()

webfs: change %H (hostname) format to %N to not collide with encodefmt’s %H (hex)

webfs: fix “fd out of range” error message

webfs: fix memory leak of serverName in tlswrap()

games/mole: add “snake” tracing effect to mole

documentation

abaco(1): remove readweb

aes(2): mention aesCBC bug

srv(3),shr(3): correct reference

shr(3): document example

listen(8): document tcp17019 rcpu service

listen(8): fix html rendering

rsa(8): provide example for converting OpenSSL generated PEM file to factotum

rune(2): add Runeerror reencoding considerations in BUGS section (thanks aiju)

tls(3): document support for TLSv1.1 and TLSv1.2

other

/lib/ndb/common: update ip addresses for [BCHL].ROOT-SERVERS.NET

add danish keymap (thanks Eric Lindblad)

add missing target for antiword in /sys/src/cmd/aux/mkfile (thanks _sl)

allesloschen.back.png

New 9front release “The muscott icon of it! Why devil?” (2016/04/08)

themuscotticonofitwhydevil.front.png

torrent

direct download

dash 1

dash 1 manual

kernel and drivers

kernel: make fversion()/mntversion() types consistent

kernel: make kernel UTFmax and Runemax consistent with libc (21-bit runes) (thanks maurice)

kernel: fix tsleep()/twakeup()/tsemacquire() race

kernel: print pid as %lud instead %lux (in tsleep() debug print)

kernel: fix procflushmmu()

kernel: remove unused NSMAX, NSLOG, NSCACHE constants from portdat.h

kernel: always clunk closed fids asynchronously, regardless of caching

zynq: introduce SG_FAULT to prevent access to AXI segment while PL is not ready

zynq: cleanup devarch, flushmmu() after procflushpsecg()

devip: handle ignoreadvice flag for all protocols

devip: applying changes for bug: multicasts_and_udp_buffers

devkbd: change /dev/kbd to return multiple messages per read

devtls: fix wrong iounit

devtls: add portable AES-GCM (Galois/Counter Mode) implementation

devtls: zero secret information before freeing, cleanup

devtls: print the path of the underlying chan in status file

ether82563: initial i217 support from http://www.9legacy.org/9legacy/patch/pc-ether82563-i210.diff (thanks k0ga)

libraries

libc: fix runestrecpy() return value (thanks spew)

libdraw: remove flushimage calls from fontresize() and loadchar()

libdraw: don’t flush in readmouse() when theres nothing to flush

libdraw: have openfont() set error string

libdraw: fix out of bounds memory access after subfont array reallocation (thanks ray)

libFLAC: update to 1.3.1

libsec: fix verifyDHparams() for version <= TLS1.1

libsec: remove weakCipher[] array check as we do not support any of these weak ciphers

libsec: add portable AES-GCM (Galois/Counter Mode) implementation

libsec: fix tlsid for TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256

libvorbis: update to 1.3.5

programs

6in4: allow setting the local IPv4 address with -i flag (thanks k0ga)

6in4: ingress filter multicast and link-local, but allow relay traffic

9fs: bind -b /n/9front.org!7734 /n/lists

aan: use sync messages as keep alives

aan: handle case when reader closes netfd

auth/pemencode: fix usage()

bullshit: +progressive +enhancement

file: deal with negative coordinates in plan9 bitmaps, print image size

g: dont pollute the environment (thanks BurnZeZ)

games/life: add -d delay parameter, -b color reversal parameter, and update manpage

ip/gping: set display->locking before starting mouseproc (race)

ip/gping: ignore advice, fix packet corruption check, remove dead code

ip/gping: add main pid to pid list for killall()

kbdfs: map Kup/Kdown the same in shift tab (fixes shift-[up]/[down] one-line scroll in rio over drawterm/vncs)

mercurial: fix CVE-2016-3630

mothra: dynamically allocate buffer for refresh url (was 20 bytes stack buffer before) (thanks BurnZeZ for reporting)

plot: handle create() failure

ppp: md5 and mschap inside chap, do not request encryption with -c or -C (thanks k0ga)

ppp: Small format and log fixes (thanks k0ga)

ppp: fix buffer overflow, set correct state after chap negotiation (thanks k0ga)

pppoe: Avoid double free (thanks k0ga)

pppoe: Add support for -c and -C to enable/disable header compression (thanks k0ga)

rio: remove more unneccesary flushimage() calls

rio: /dev/kbd cleanup

stats: fix display->locking race

tcp567: run authserver with p9sk1 tickets disabled preventing offline password brute-force

truss: fix “bad string” error due to missing ape _nsec() syscall

truss: add fake __NSEC syscall name for ape

uhtml: dont trust charset=utf-8 attribute, verify.

vncs: fix dead Kend key

vncs: parse screenid as long, not short: BGSHORT() -> BGLONG()

vt: add -r flag to start in raw mode

manual pages, documentation, misc

devstream(3): removed

kbdfs(8): document new /dev/kbd behaviour

qball(2): fix bad manpage reference

fortunes: Ah, nice. the woodpeckers are back.

themuscotticonofitwhydevil.back.png

New 9front release “MY MEMORY OF DRAWTERM IS FADING” (2016/03/01)

mymemoryofdrawtermisfading.front.png

torrent

direct download

dash 1

dash 1 manual

kernel and drivers

kernel: remove todfix overflow iprint() spam

pc/pc64: remove mpshutdown print

pc/pc64: bring up ap’s one after another, use idlehands() while waiting for thunderbirdsarego

pc64: move idle() routine after CALL main(SB) as the comment suggests

sgi: add chmod to bootfs.proto for sgi kernel

devdraw: remove unused Edepth[]

devmnt: deal with partial response for Tversion request in mntversion()

devssl: use tsmemcmp() to compare mac to close timing side channel

ipv6: fix icmphostunr() locking and memory free bugs (from sources)

usbuhci: removing “uhci bug” print spam from interrupt handler

wifi: check tkip/ccmp mac and crc in constant time avoiding timing side channels

booting

provide /n and /mnt early in bootrc to allow consistent use in /lib/namespace

libraries

ape/fmt: %p and %z format for amd64

ape/stdio: %z format is VLONG on amd64

libauthsrv: add D in mkfile

libauthsrv: fix ed448 goldilocks prime comment

libauthsrv: can write p = 2448 - 2224 - 1 now, as mpc has constant folding.

libdraw: remove unused static log2[] array

libfis: dont reject drives lacking SSP (sata ssd connected to ide with adapter)

libmp: handle out of memory case in gmfield()

libmp: remove include of libsec.h

libsec: add salsa20 stream cipher

libsec: ecdsa client support for tlshand, cleanups

libsec: refactor asn1 encoding of digest for rsa signatures, fix memory leak in ecverify

libsec: mpconv -> mpfmt

libsec: fix missing error case unlock() in tlshands initCiphers()

libsec: fix double free in pkcs1_decrypt(), handle bad epm length in tlsSecRSAs(), cleanup

libsec: simplify pkcs1_decrypt()

libsec: add libc.h include for aes_xts.c (drawterm)

libsec: fix memset() size in tlsConnectionFree(), remove #include <bio.h>

libsec: remove unused tlsSecKill()

libsec: have 16 32-bit words in DigestState to avoid out of bounds warnings for poly1305

programs

/rc/bin/“: fix quoting bug (thanks, aiju and silasm)

auth/cron: just run /bin/rx to execute remote commands

auth/factotum: fix nil pointer crash on p9skclosekey(), thanks k0ga

auth/factotum: fix memory leak for p9any key confirmation, fix key handling for role=client

aux/kbdfs: read outer /dev/kbd file and use it just like /dev/kbdin

exportfs: properly reply to chdir() error when we speak 9p

exportfs: retry execing ourselfs as “/bin/exportfs” (argv0 might be relative path)

exportfs: fix endless loop for eof/error on second read in localread9pmsg()

games/doom: fix white window issue on exit

games/doom: handle allocimage() failure

mpc: constant expression folding

ndb/dns: removing the buggy /net.alt remount hack

ndb/dns: initialize unknown fids to point to the root qid

ndb/dnstcp: -x specifies the mountmoint

newuser: /n/other now handled in /lib/namespace

rc: terminate rc when exec fails, cleanup

rcpu: adding experimental rcpu service [1]

rcpu: post hangup note to remote when connection breaks

rio: fix wrong frame colors when moving non-current window

rio: exit rio when /dev/cons or /dev/kbd read loop terminates

rx: rcpu service support

stats: use rimport or import to mount remote system

tlsclient: add -o option to establish connection over a file, free the AuthInfo structure to avoid leaking secrets

tlssrv: p9any authentication support using TLS-PSK cipher suits

tlssrv: add -A flag to skip changing user after authentication (usefull for aan)

upas/smtpd: remove unused lastsender logic

webfs: faster shutdown using postnote()

manual pages, documentation, misc

fortunes: ./configure CFLAGS=“-I$HOME/source/harvey/ape/amd64/include -I$HOME/source/harvey/ape/include -mno-red-zone -ffreestanding -fno-builtin -nostdlib -trigraphs -D_SUSV2_SOURCE -D_POSIX_SOURCE -D_LIMITS_EXTENSION -D_BSD_SOURCE -D_BSD_EXTENSION -DHAVE_SOCK_OPTS -DHARVEY -DPlan9” LDFLAGS=“-static $HOME/source/harvey/ape/amd64/lib/crt1.o $HOME/source/harvey/ape/amd64/lib/crti.o $HOME/source/harvey/ape/amd64/lib/crtn.o -L$HOME/source/harvey/ape/amd64/lib -L$HOME/source/harvey/amd64/lib” LIBS=“-lbsd -lap -lc” LIBM=“” –prefix=$HOME/source/harvey/ape/ports –host=x86_64-linux-gnu –build=x86_64-harvey –enable-shared=no

/lib/keyboard: add more crucial symbols

glenda’s default profile: remove /n/other mount, done by /lib/namespace

authsrv(2): document _asgetpakkey(), authpak_hash(), authpak_new(), authpak_finish()

authsrv(6): fix arrows

salsa(2): some formating fixes; fix source reference

rcpu(1): add

mymemoryofdrawtermisfading.back.png

[0] http://okturing.com/src/3486/body

[1] https://code.9front.org/hg/plan9front/rev/65abc13ef7a1

New 9front release “PLEASE EXCUSE ME THE OUTFLOW” (2016/01/09)

torrent

direct download

dash 1

dash 1 manual

kernel and drivers

kernel: fix typo in devmnt mntproc name

kernel: use nicer check in okaddr(), wet floor signs in fixfault()

kernel: cleanup exit()/shutdown()/reboot() code

kernel: use uintptr for ibrk() return value (for base >2GB) and clarify segbrk(2)

kernel: missing changes for ibrk() prototype

kernel: change active.machs from bitmap to char array to support up to 64 cpus on pc64

pc, pc64: fix sdvirtio descriptor count when sending flush

pc, pc64: add did for intel wildcat point audio controller

pc, pc64: import i210 support from erik quanstrom’s 9atom

zynq: fix cache flush bug for emmc driver (have to invalidate cache before read)

zynq: clean cache unconditionally before dma, invalidate cache after dma for read case

devenv: fix ORCLOSE handling

devip: various bugfixes and cleanups for arp code

devip: declare cleanarpent() static

devproc: remove unused extern int unfair

devqspi: fix qunlock error on stat() -> close()

devsd: remove unused timeout field from SDreq

devsd: handle SYNCHRONIZE CACHE scsi commands as nops in sdfakescsi()

devtls: add sha256 mac

devtls: reject SHA2_256 mac for SSL, but TLS is fine

devtls: implement chacha20/poly1305 aead cipher suits

igfx: fix typos (thanks qwx)

sdmmc: handle fakescsi emulation

tcp: fix mtu on server sockets again (thans mycroftix)

usbehci: clean cache unconditionally before handing a buffer to the hardware

wifi: quote value of parsed ether options

wifi: prioritize rsne over wpaie

booting

bootrc: remove usbwait hack, usbd/nusbrc are now synchronous by previous commit

do not handle kfs boot

move screen and mouse setup code to /rc/bin/screenrc

nvram: introduce AES key

compilers and debuggers

cc: handle 64 bit mixedmode asop and type vlong <-> float/double type conversions

cc: TUSHORT -> TRUNE for lstring constats for OUSED

cc: allow runes as macro names (from charles forsyth)

cc: getflag() fmt will be terminated at end of loop (from charles forsyth)

cc: include $builtin as keywoard in pickle() (from charles forsyth)

cc: restore side(), but do not consider OINDEX as side effect free

cc/6c: fix return type of mixed asop expressions, preserve type for moves so fixed<->float conversions work correctly

5c/6c/8c/kc/qc/vc: import various changes from charles forsyth

5c: handle 64 bit mixedmode asop

5c: handle (rare) MULU instruction in peephole optimizer

6c: remove 6c/vlrt.c file

6c: return vlong result for pointer subtraction

8c: make cgen64() compile target first when it contains functoin call so final assignment wont trash the registers

8c: handle 64 bit mixedmode asop and type vlong <-> float/double type conversions

8c: dont abort() when running out of registers.

vc: handle 64 bit mixedmode asop

cpp: fix memory corruption due to input buffer relocation

cpp: handle 4 byte utf sequences (21-bit runes)

acid/leak: fix endless loop for B2NB(b) == b case (thanks mischief)

libraries

ape: add badrect object into ape libdraw

ape: set MB_CUR_MAX to 4 in stdlib.h for 21-bit runes (thanks erik quanstro)

ape: add machine specific code for spim

ape: add missing _subv() function to 386/vlop.s

lib9p: add reqqueuefree

lib9p: do not override Srv.end in listensrv(), simplify srvclose() and recounting

libauthsrv: generalize ticket service, not hardcoding ticket format and DES encryption

libauthsrv: add missing files (thanks mischief)

libauthsrv: randomize aes key in mkkey()

libauthsrv: fix _asgetresp() for passwd

libc: import more endianness fixes (thanks cherry9)

libc: remove privfree(), simplify privalloc()

libc: add uv2d()/uv2f() and vas*d() functions to vlrt.c

libdraw: remove unneeded check (thanks BurnZeZ)

libfis: fix wrong shift for lba40 (thanks geoff and charles)

libjson: fix memory leak setjmp/longjmp problem (thanks spew) libjson: added printing support (thanks spew)

libmp: add mpnrand() function to generate uniform random number 0 ≤ x < n

libmp: add mpvecdigmuladd()/mpvecdigmulsub() assembly routines for arm

libmp: optimize case x/0xffffffff in mpdigdiv() (helps arm)

libmp: 386/amd64 mpvec*(): replace conditional branches with ADC/SBB instructions

libmp: add mpvecadd()/mpvecsub() assembly versions for arm

libmp: fix test program

libmp: initial attempt at constant time code, faster reductions for special primes (for ecc)

libmp: mpmod() fix typo

libmp: fix wrong move instruction for arm vector operations

libmp: fix assert() for mpexp() with nil modulus

libmp: add logic operations; mpfmt: include 0x with #

libmp: fix bug in mplogic.c; update mkfile

libmp: strtomp support for bases 2,4,8

libmp: add mpfield() function for fast field arithmetic

libmp: mpfmt: handle base 2, 4

libmp: support for c-style base prefixes for strtomp(), octal support

libmp: mistake in strtomp()

libmp: check nil return value of strtomp() in test program

libmp: silence compiler warning for strtomp

libsec: add pbkdf2_hmac_sha1() (from wpapsk factotum module)

libsec: fix probably_prime() endless loop for n == 3

libsec: add q parameter to dh_new() for subgroup support, sanitize dh parameters

libsec: add TLS_RSA_WITH_AES_128_CBC_SHA256 and TLS_RSA_WITH_AES_256_CBC_SHA256 ciphers

libsec: add curve25519() from http://code.google.com/p/curve25519-donna/

libsec: work arround 8c running out of registers compiling curve25519.c

libsec: remove flawed aes() digest and hmac_aes() implementations (thanks aiju)

libsec: add curve25519 diffie hellman

libsec: declare aes_setupEnc static

libsec: generalize pbkdf2_hmac_sha1() to pbkdf2_x() passing the hmac as an argument

libsec: add rfc5869 hmac-based key derivation function hkdf_x()

libsec: handle TLS 1.2 changes in CertificateRequest message

libsec: send sigature_algoritms extension for TLS1.2, order ciphers

libsec: add TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 and TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 cipher suits

libsec: save some space making weakCipher bitamp of type char[] instead of int[]

libsec: fix memory leak in ecmul()

libsec: implement dh parameter signature verification, stop lying about non-rsa ciphers, fix memory leaks in X509 code

libsec: make sure Elem is zero initialized so freevalfields() wont cause accidents

libsec: handle missing signature case; can happen because some ciphers make it optional

libsec: implement client certificate authentication for tls1.2

libsec: fix memory leaks in X509req() and X509gen() and return malloced pointer

libsec: cleanup newbytes()/newints()/newbits() and get rid of OFFSETOF() macro

libsec: use the right string encoding for various x509 fields

libsec: clarify the code by declaring constant for DirectoryString and handle conversion in mkstring()

libsec: remove rc4 cipher suits for tls

libsec: add poly1305

libsec: add chacha cipher (from charles forsyth)

libsec: add chacha20 poly1305 aead, allow 64 bit iv’s for chacha, add tsmemcmp()

libsec: fix genprime() to produce normalized result

libsec: use tsmemcmp() when comparing hashes, use mpfield() for ecc, use mptober() when right adjusting mpint to bytes

libsec: implement TLS-PSK for tlsClient()/tlsServer()

libsec: make sure theres no garbage after the asn.1 decode, cleanup

libthread: get rid of tprivalloc()/tprivfree()/tprivdata() and _workerdata() (thanks qrstuv)

programs

9660srv: do not ignore upper 32 bits of offset when reading directory

9fs: add 9pio case for unauthenticated connections to 9p.io

9fs: add case 9front

ascii: replace mnemonic np (new page) with ff (form feed) for consistency

auth: release dp9ik implementation and reentrant factotum

auth/*: remove private /dev/random reading routines, use genrandom()

auth/changeuser: set the aes key in plan9 database, but not in securenet db

auth/convkeys2: remove

auth/httpauth: use auth_userpasswd() instead of AuthHttp request to AS

auth/passwd: fix structure zeroing order

aux/disksim: don’t assume 4-byte pointers

aux/gpsfs: fix usage

aux/listen1: allow alternative namespace when running as user none with -n option

aux/statusbar: use title as rio window title (thanks qrstuv)

cpu, import: remove old9p support

cwfs: adjust for new libauthsrv changes

cwfs: remove 9p1 support

cwfs: initialize /env/timezone on boot so dumps are in localtime

cwfs: don’t use sprint() to fill directory name

cwfs: fix wstat() failing to mark block dirty when noatime is set

delkey: print commands instead of starting a dialogue

doctype: learn to timepic

disk/fdisk: properly convert byte units K,M,G and T to cylinders/sectors

disk/mkfs: rmeove kfs support

dossrv: handle file offsets > 231

E: import script from bell labs

file: detect DICOM and XM audio headers

file: recognize tcpdump pcap files

file: recognize bootable disk images (by 0x55AA boot sector signature)

fshalt: remove kfs support

games/doom: fix bogus pointer arithmetic, do sfx initialization in two passes for linked sounds

html2ms: handle subscripts and superscripts

html2ms: bold table headings, remove wrong tag space handling

import/expoerfs: dont assert() fault when ai->secret is > 8 bytes, just use the first 8 bytes

init: remove dependency to <authsrv.h>

ircrc: add -P option for server password (thanks, nick)

keyfs: introduce AES key

keyfs: fix typo (thanks jpm)

kfs and kfscmd: remove

mothra: add subscript and superscript support

mothra: add missing initializations for plaintext html state

mothra: make text inside td bold

mothra: hr drawing

mpc: add (extended precision code generator)

qr: add (generate qr codes)

rc: Added change to /rc/lib/rcmain to allow execution of /rc/lib/rcmain.local if it exists. /rc/lib/rcmain.local is similar to $home/lib/profile in that it will only be executed with -l, but is site-wide.

resize: add -n for nearest neighbour

rio: fix scrolling when cursor is above window

rio: stop serving kbdin file (thanks eekee)

rio: fix handling “resize” wctl for hidden windows

rio: allow reading the image of a hidden window thru the window file

rsa2x509, rsa2csr: add newline in usage print

rx: theres no p9sk2 anymore

scuzz: uncomment synccache command

snoopy: fix timestamps for pcap files (thanks BurnZeZ)

srvold9p: remove

tapefs: remove dependency to <authsrv.h>

tar: make z flag work, even when no file name was provided (thanks aiju)

timepic: string support

tput: check sbrk return value

usbd: introduce /env/usbbusy

venti/fixarenas: replace %z fmt with %Z

webcookies: strdup() file argument to avoid crash (thanks mischief)

winwatch: l allows label changes

yacc: attempt to keep line numbers right for yyparse()

manual pages, documentation, misc

/lib/1oct1993: use words correctly (thanks, spew)

2c(1): fix spelling error for the axp entry

delkey(1): update man page to reflect recent changes

fplot(1): add BUGS section, fix typo

import(4): remove -o, -O flags

mp(2): fix typo mnprand() -> mpnrand()

qer(8): correct man page example (thanks, kenji)

qr(1), timepic(1): add

utf(6), rune(2): document 21-bit runes

remove kfs references from manual

New 9front release “the art of conversation” (2015/08/18)

torrent

direct download

dash 1

dash 1 manual

kernel and drivers

kernel: make sure the swap device has a reasonable capacity in setswapchan()

kernel: cleanup chan.c to consistenly use nil instead of 0 for pointers

kernel: consistent use of nil for pointer in sysfile.c

kernel: simplify syspipe()

kernel: make sure fd is in range in fdclose()

kernel: pipelined read ahead for the mount cache

kernel: clunk the cache when removing cache flag on a channel, only call cread() chen CCACHE flag is set

kernel: export mntattach() from devmnt.c avoiding bogus struct passing and special case in namec()

kernel: remove obsolete comment from namec()

kernel: cleanup qlock.c to use nil instead of 0 for pointers

kernel: dont rely on atoi() parsing hex for netif/devbridge

kernel: remove unused qstate() function

kernel: reject empty argv (argv[0] == nil) in sysexec()

kernel: make shargs() function static in sysproc.c

kernel: use Etoolong[] constant instead of string literal in validname0()

kernel: change vmemchr() length argument to ulong and simplify

kernel: limit syscallfmt user strings to 64K (as in validname)

kernel: fix indention in validname0()

kernel: validnamedup() the name argument for segattach()

kernel: limit argv[] strings to the USTKSIZE to avoid overflow

kernel: have to validate argv[] again when copying to the new stack

kernel: remove unused MAXCRYPT constant from portdat.h

kernel: fix Mheadache

kernel: pgrpcpy(), simplify Mount structure

kernel: mount flag is int not ulong, reduce size of Mount struct by putting mflag field in what would be wasted as padding

kernel: move “setargs” field in Proc structure after “nargs” and “args”

kernel: try freebroken() before killbig() (thanks aiju)

pc, pc64: set *bootscreen= when framebuffer changes

pc, pc64: replace atoi() calls with strtol() when hex can be expected

pc, pc64: remove unused psaux driver

zynq: remove unused variables from devqspi

devaoe: fix off by one in aoeerror(), consistent use of nil for pointers, error handling

devenv: avoid indirection, keep Evalue’s allocated in an array

devenv: simplify envremove(), cleanup

devether: duplicate flags when copying blocks (thanks erik quanstro)

devkbd: poll pc keyboard before blocking on kbd.q

devkbd: disable mosue/keyboard on shutdown, disable ps2 mouse on init, remove kbdenable()/kbdinit()

devmnt: dont reset readahead window when requested offset still has pending rpc

devmnt: use c->iounit instead of msize-IOHDRSZ to chunk reads and writes, reduce memory overhead for Mntrpc, mntalloc lock

devmnt: fix mntcache()

devtls: TLS1.1 explicit iv support

ether79c970: set mbps for proper queue sizes, assume gigabit ethernet for vmware

etheriwl: add pciid for Centrino Wireless-N 1000 (thanks qu7uux)

vgaigfx: remove #define MB, theres a MB enum in portdat.h

compilers and debuggers

cc: provide fake realloc() for getenv()

cc: improve (non-) side effect detection (thanks charle)

1c,2c,7c,kc,vc: honor suppress condition for outstring() in swt.c

vc: word align automatics

6l: fix vlong byte order when running on big endian machine (thanks erik quanstro)

acid -k: fix procenv() to new data structure

acid -k: fix intrcount() for amd64

libraries

ape: fix mktime() again

ape: implement altzone for tzset()

ape: fix build for objtype=spim

lib9p: return “write prohibited” error as documented in 9p(2) when srv->write is nil (thanks silasm)

lib9p: make reqqueueflush() use new threadint(), which will also cover channel operations

libauthsrv: readnvram() use vlong for nvroff, parse $nvlen/$nvoff with strtol() instead of atoi()

libc: make atoi() not parse c-style octal and hex numbers

libc: fix spim endianness

libc: fix wunlock() libthread deadlock

libcontrol: use strtol() to parse integer arguments

libcontrol: fix label memory leak

libhttpd: use strtol to parse decimal character references in httpunesc()

libmach: set correct endianness with little endian ELF32 mips binaries

libmach: remove useless error check from previous commit

libmach: remove redundant check for big endian

libmp: fix build for objtype=spim

libsec: increase handshake message buffer size (MaxChunk) to 32K (thanks sl)

libsec: TLS1.1 support (needs new devtls)

libsec: fix mistake breaking tlsServer() (thanks sl)

libsec: TLS1.2 client support

libsec: TLS1.2 server support, make cipher list with most prefered first

libthread: fix mistake, make “all” the default target again

libthread: use “interrupt” proc ctl message instead of posting a note for threadint()

cdproto: add spim

rootstub: add spim

programs

add /spim

aux/vga: sandybridge support for igfx (unfinished)

aux/vga: dont rely on atoi() being able to parse hex

bitsy: replace atoi() calls with strtol() when hex can be expected

bitsy/keyboard: do not rely on atoi() being able to parse hex

bullshit: app, deep-learning, responsive.

cpu: cleanup ssl code, make sure -p works for any auth method

crop: use strtol() instead of atoi()

cwfs64x: set permission of / to 0775 on ream

games/doom: implement filelength() (thanks quux)

games/doom: fix switch textures swapping in ultimate doom (thansk qu7uux)

games/doom: add bug compatibility switches (thanks qu7uux)

games/doom: fix ouchface not being shown when it should be (thanks qu7uux)

games/doom: display correct message on medkit pickup when health low (thanks qu7uux)

games/doom: fix config file never being loaded or saved (thanks qu7uux)

games/doom: fix unterminated comment causing sound bugs (from qu7uux)

games/doom: fix idclev cheat in doom2 and final doom (thanks qu7uux)

games/doom: fix gamma correction and key translation (thanks qu7uux)

games/doom: fix array offsets for respawn angle (thanks qu7uux)

gs: fix build for objtype=spim

gs: fix alignment bug in image_render_interpolate()

hjfs: fix abort() in givebuf()

hjfs: fix deadlocks

init: do not run $home/lib/profile when cd $home failed

iostats: add -C to usage

ip/httpfile: fix flushes, fix concurrent reads, set error string

ipv6on: fix search for ip attribute (thanks kenji arisawa)

jpg/ico: support for embedded png icons

jpg/ico: fix mkfile

kfs: set permission of / to 0775 on ream

mothra: support for inline images and tag

mothra: fix selurl()

mothra: cleanup url handling

mothra: fix double button hit

mothra: enable compiler warnings and type checking, cleanup

mothra: fix nil crash on missing name/src attributes for source/video/audio/embed/frame/iframe

mothra: show tag within

mothra: fix crash

mount, srv: add -N flag to skip authentication and attach anonymously as “none”

page: fix deadlock, nil vs 0 for pointer comparsion, cleanup

python: use altzone

python: fix build for objtype=$spim

ratrace: avoid blank line prints, make writer the parent; various improvements

resample: simplify getint()

snoopy: dont rely on atoi() being able to parse hex

webcookies: fix isdomainmatch() (fixes livejournal.com login)

webcookies: fix implicit path cookie handling

webcookies: create lockfile with 0600 permission, always use create() with perm 0600 for rewriting jar

webcookies: use strtol() to parse HH:MM:SS

manual pages, documentation, misc

bio(2): Bterm() closes filedescriptor for Bfdopen() allocated buffer

import(4): clarify -E and -e options

rio(4): document “delete” wctl message (thanks mischief)

fortunes: If you want to do the work, I will review the results.

Harvey, an operating system with Plan 9’s shadow (2015/08/04)

This is not a Monad tutorial interviewed Álvaro Jurado about the development of Harvey OS, an effort to get the Plan 9 code working with gcc and clang.

From the interview:

What is Harvey OS?

Harvey’s website states that its aim is to provide a modern, distributed, 64­bit operating system that extends the elegance of the original Unix model, in which all resources are represented as files and directories, to a networked environment, and allows for new ways of working.

Read more here

New 9front release “KÄPTN BLAUBÄR” (2015/07/19)

torrent

direct download

dash 1

dash 1 manual

kernel and drivers

kernel: add pagechaindone() to wakeup processes waiting for memory

kernel: declare _tas() to prevent pulling in libc version (for libmemdraw)

kernel: do not inherit Proc.dot (current working directory) in kproc()

kernel: do not inherit current directory channel (dot) to pager

kernel: do not pull in atom.s from libc for arm kernels

kernel: dont use smalloc() to allocate pte array in ibrk()

kernel: fis comment PciSID (alphapc, kw, mtx, teg2) (thanks qeed!)

kernel: fix accounttime() for HZ >= 1000

kernel: ignore last page at the top of virtual kernel address space for xalloc()

kernel: ignore memory pages with singular kernel addresses

kernel: implement separate wait queues for page allocation

kernel: map pci bars for devices with base class codes (ccrb) 0x00 and 0x0D-0x11 (thanks qeed)

kernel: reject bogus two byte “#!” shell scripts in sysexec()

kernel: remove debugalloc.c

kernel: remove waserror() arround newpage() in mntcache

kernel: use HDR_MAGIC constant to handle Exec header extension, make rebootcmd() handle AOUT_MAGIC macro

kernel: various cleanups of imagereclaim(), pagereclaim(), freepages(), putimage()

pc, pc64: toggle bit 2 in port 0x61 to reset and enable PCI SERR# nmi’s, print nmi status

pc: check Sse (bit 25) in cpuiddx before enabling fxsr in cr4 (fixes crash on the pentium II)

pc64: use unsigned long for kmapindex and mmu counts avoiding signed integer division

zynq: add /dev/fbctl to attach framebuffer to devdraw

zynq: add support for hardware cursor

zynq: fix /dev/pl

zynq: fix barriers

zynq: fix flushmemscreen()

zynq: increase kernel memory for graphics

zynq: make screen and cursor kprocs exit properly

zynq: mouse acceleration

zynq: remove unused PTE typedef

zynq: remove unused statistics fields from Mach structure

zynq: use KADDR() for kmap() if we can avoiding the mapping

ether82563: fix multicast filter (based on openbsd em(4) driver)

etherigbe: spi eeprom support (thanks echoline)

etheriwl: add multicast stub, dont clear descriptors after completion

etherrt2860: add multicast stub

etherwpi: Intel PRO Wireless 3945abg driver based on openbsd’s if_wpi (thanks aap)

9boot: look for plan9.ini in all filesystems accessible to efi to find plan9 partition

aux/vga: disable nvidiascale() as it broke modeset on kenjis card

aux/vga: dont use /proc/$pid/mem to access vga bios

devcons: add current pool allocations to #c/swap

devfs: remove useless ~OTRUNC mask for openmode

devmnt: do not use user buffer to update the mount cache

devproc: make sure statbufread offset wont turn negative

devsegment: fix parsecmd() memory leak

devstream: fast sequential file access with 9p pipelining experiment

devtls: ignore UnrecogniedName (112) alert message (for SNI)

ip: fix wrong radix for iphash() (thanks yoann padioleau)

kbdfs: Runemax is inclusive.

nusb/audio: dont sysfatal on bad endpoint (no altc)

nusb/disk: adding identical partition is a no-op

nusb/serial: remove unused channel

nusbrc: handle fat formated usb drives without partition table

usbd: set device info for control file (see usb(3), thanks qeed)

wifi: adjust transmit rate on error (for etheriwl), small mkfile changes

wifi: berlin prime bunny hopping

wifi: reflect current transmit rate in mbps

compilers and debuggers

5e: approximate LL/SC with cas()

5e: enable VFP emulation by default, doubles only need to be 4 byte aligned

5e: implement DSB,DMB,ISB and CLREX instructions

5e: make sure stack base is aligned to avoid unaligned memory trap on arm

cc: handle unaligned data in = {0} local initializer

cc: set unspecified elements to zero in local variable initializers

cpp: search source file directory first for quoted #include (thanks Ori_B)

libraries

ape: add stdint.h, fix SSIZE_MAX and add SIZE_MAX to limits.h

ape: define long long limits

ape: include <sys/types.h> in <sys/wait.h> for pid_t (thanks jens staal)

ape: port libc smp tas() for arm

lib9p: fix lib9p wstat qid.type/mode checks (fixes lock(1) for ramfs/hjfs)

libFLAC: fix compiler warnings by properly declaring void function arguments

libc/arm: implement _tas() with LDREX/STREX, execute memory barrier on smp systems (zynq)

libc: use Runemax instead of hardcoded 0x65536 for fmtchar check (thanks qrstuv)

libdisk: error handling, sanity checks

libdraw: consistent use of nil for pointers, error handling

libdraw: don’t loop forever when getting eof on /dev/cons in keyboard ioproc

libdraw: sync allocimage/allocwindow prototypes with man pages

libhttpd: declare hvprint

libsec: implement tlsClient support for RFC6066 server name identification (SNI)

lock: reopen lockfile after changing mode to make lock effective

programs

9660srv: go back to 128k clusters, keep data and metadata separate in the cache with a tag

9fs: handle all the dos filesystems in one case, add esp handler

authsrv: remove unused opasstokey

authsrv: use plan9 key for http authentication

aux/cpuid: make sure extended feature bits are available (fixes crash on the pentium II)

cdproto: /sys/log/httpd should be a directory, added /sys/log/pop3

cifsd: smbrename is still ok when file is readonly (fixed git)

cp: experimental stream support

disk/edisk: gpt partition table editor

disk/fdisk: learn about EFI system partition (type 0xEF), honor protective mbr (type 0xEE)

disk/format: create Fatinfo sector for fat32

disk/partfs: adding identical partition is no-op

dontkill: only use noswap flag to mark processes as not to be terminated on oom

dossrv: maintain file creation date/time on disk, fsinfo sector can be 0 (disabled)

fcp: fix wrong write pointer offset when read returns less than DEFB bytes

fcp: use iounit() to determine buffer size, reduce number of worker procs to 8

games/doom: fix desyncing demo (thanks qwx), remove Makefile

gunzip: the extra length field (XLEN) is two bytes instead of one

hgweb.cgi: take REPO_ROOT and REPO_NAME from env, so can be used out of the box

hjfs: defer parent directory permission check for wstat

htmlroff: fix wrong newline in \name handling (| -> ||)

httpfile: fix evictblock() so we wont consume all the memory

inst/bootplan9: skip mbr installation and active partition switching when we have no plan9 dos partition

inst: fix download task using ip/httpfile to mount a iso over http and prompt for installurl

inst: provide gpt/mbr choice when disk is blank, format esp

integrate disk/edisk with diskparts, bootfs and installer (gpt support)

ip/httpd: fix syslog file

mk9660: write data in alphabetical order

ndb/dns: use same buffer size of udp packet in redistrib() as dnudpserver() (fixes assert)

page: make lookahead fetch work in backwards direction

pkg: remove pkg(1), we regret the error

qc, 9/ppc, 9/mtx: fix wrong if statements

rc-httpd: cleanup cgi handler, various fixes

rootstub: do not create pkg directories

stats: add kernel malloc and kernel draw allocation size graphs

sysinfo: update -p for sysinfo.9front.org

sysupdate: change source repo to https://code.9front.org/hg/plan9front

tar, tarfs: implement longname support

tcs: fix swaped alias mapping gb <-> gb2312

test: use libc.h constants for access() mode (thanks qrstuv)

tftpd: count only options we understand so we wont send empty oack message

uhtml: check if document is valid utf8 even with charset specified

usps: cut the useless part

vblade, cifs, usbuhci: fix parenthesis

webfs: send servername in tls client hello (SNI)

wpa: do not prompt for key when there is already one in factotum

manual pages, documentation, misc

faces: add cs.dartmouth.edu!doug (thanks, qrstuv)

faces: add updated addresses for quanstro, bwc, steve.simon (thanks, erik)

fortunes: Turning off comments.

rob: No we can’t.

rsc: I think I’m missing something.

theo: You are on your own.

troll: Subject: unusable acme

addpt(2): document badrect function, put badrect in .SH NAME so that it gets into the searchindex

colors(1), who(1): add missing SOURCE entries

cputime(2): fix prototype for cycles() (thanks qrstuv)

dhcpd(8): the fs attribute refers to the file server, not the name server (thanks, pena)

esetcursor(2), alarm(2): fix prototypes

event(2): fix estartfn prototype

exec(2): exec argument size only limited by user stack size, fix prototypes, return register (R0) contains address of Tos structure.

freeimage(2), readcolmap(2), writecolmap(2): fix prototypes

ndb(6): fix typo (thanks, pena)

open(2): fix typo

prep(8): document disk/edisk

prep(8): edisk also adds a EFI system partition (esp) when not already exists.

thread(2): fix prototype for threadint() and threadkillgrp() (thanks qwx!)

Bell Labs /n/sources mirrored (2015/07/11)

When plan9.bell-labs.com came back online this week, several of us realized that it was time to create an updated mirror of the whole thing. To that end, several of us have.

A small number of files (restricted permissions, corrupt blocks, etc.) were not copied, but we did grab everything we could. The whole thing is around 3.5GB.

This mirror (and probably others) will stay online indefinitely.

Behold:

; 9fs contrib.9front.org
post...
; ls /n/contrib.9front.org/sources
/n/contrib.9front.org/sources/9grid
/n/contrib.9front.org/sources/adm
/n/contrib.9front.org/sources/contrib
/n/contrib.9front.org/sources/dist
/n/contrib.9front.org/sources/extra
/n/contrib.9front.org/sources/lsr
/n/contrib.9front.org/sources/nix
/n/contrib.9front.org/sources/patch
/n/contrib.9front.org/sources/plan9
/n/contrib.9front.org/sources/wiki
/n/contrib.9front.org/sources/xen
; 

Thanks to khm for helping pull it all before the Bell Labs machine goes down again.

New 9front release “MAKE EVERY PAY-DAY BOARD-DAY” (2015/05/15)

torrent

direct download

hardware

aijuboard

kernel and drivers

audiohda: add AMD FCH Azalia Controller (thanks qeed)

bootrc: simplify bootargs splitting avoiding awk

boot: allow alternative proto files per kernel and kernel config for bootfs.paq

boot: bind #c to /dev with MREPL instead of MBEFORE to avoid double entries

boot: disable group/other permission checking in bootfs paqfs

boot/zynq: add jtagload utility, implement sdmmc boot (fat)

devkbd: remove kbdputc() and unused constants

devsd: always page align sd buffers

emmc/pmmc: make all symbols static

ether8169: add 8168GU mac id (thanks qeed)

ether8169: fix Macv45

ether82563: work arround bad eeprom checksum for some i218 card (thanks BurnZeZ)

etheriwl: check the bluetooth co-existance errors (thanks qeed)

etheriwl: make rxon() static (thanks aap)

etheriwl: support for Centrino Wireless-N 2230 from freebsd driver (thanks qeed)

etherseeq: reset the card when it gets stuck (dma timeouts)

kernel: add segio() function for reading/writing segments

kernel: avoid repeated calls to reclaim(), dont miss last page in Pte

kernel: catch address overflow in syssegfree()

kernel: fix integer overflow in syssegflush(), segment code cleanup

kernel: fix physical segment handling

kernel: fixed segment support (for fpga experiments)

kernel: get rid of auxpage() and preserve cache index bits in Page.va in mount cache

kernel: leave shared, physical and fixed segments alone in killbig()

kernel: move arrow cursor definition to port/devmouse.c

kernel: state errstr.h dependency for proc.acid target (fixes acid kinit() on cleaned kernel source tree)

kernel: pass Ureg* argument to note handler in R0 register on arm

nusb/kb: always try to recover on error, fix recover for multi-function devices

nusb/serial: recognize aijuboard jtag interface

pc, pc64: extend initial memory map for qemu multiboot data

pc, pc64: handle 64-bit pci membars

pc, pc64: remove PCICONS debug buffer from pci.c

pc, pc64: state dependency to usbehci.h in mkfiles

pc: import intel i218 nic changes from 9atom

sgi: new kernel for sgi/indy with ethernet and newport graphics support

tcp: fix loopback slowness issue / set tcb->mss for incoming connections (thanks David du Colombier)

usbohci: ensure Ed and Td alignment, fix for amd64

zynq: do mpinit() early so cpu1 debug prints do not intermix

zynq: fix out of bounds access in etherprobe()

zynq: fix usb by implementing delay() and give proper port speed in portstatus

zynq: invalidate cache before booting cpu1

zynq: mmc support

libraries

lib9p: handle erealloc9p(…, 0)

libmach: use #pragma pack to force 4 byte alignment of bootexec.h structures for amd64

libmp: use portable mpdigdiv routines for mips (causes invalid instruction trap on indy)

libsec: remove aesCTRencrypt()/aesCTRdecrypt() (thanks mischief and qrstuv)

libthread: get rid of chaninit() (thanks qrstuv)

pool: avoid triggering assert(b->magic != FREE_MAGIC) in blocksetsize() for mallocalignl()

programs

ape: fix lockinit(), main9, lock.c for mips

aux/listen: removing service script sholud kill listener (thanks mischief)

bzfs: handle erealloc(…, 0)

cc: catch non constant pointer initializers

6c: MOVL xxx, r; MOVLQZX r, r -> MOVL xxx, r

db: fix unicode support (thanks giacomo)

dhcpd: ignore “;” filename from sgi arcs bootp(); command

factotum: remove unused extern declarations of invoker and authdom from header

g: search .awk and .rc files

games/c64: writes to I/O area do not affect underlying memory (documentation lied)

games/doom: fix mips

games/doom: print correct version number on mismatch (thanks qu7uux)

games/gb: better emulation and gbc support

games/gb: fix -2/-3

games/gb: fix gbc dma

games/gb: improve sound emulation by modelling analog behaviour

games/gb: improved audio code

games/gb: limit audio range to prevent clipping

games/gba: fix -3 crash and prevent >100% speed

games/gba: remove debugging print

games/gba: very subtle timer bug fixed

games/sokoban: fix non constant inializer

gif: fix color table clipping (for cb5.gif)

gs: avoid 6c type propagation / constant folding issue for set_cb_end()

gs: fix bug 694539. Reading off the end of the cbuf when dash pattern len is max

hg: install hgweb templates

hget: work arround apache Content-Encoding: gzip for Content-Type: application/x-gzip bug

hjfs: fix erealloc(…, 0) crash when removing member from group array makes it empty (thanks 9dan)

hgfs: preserve newlines in commit message (thanks BurnZeZ)

httpauth: little helper for rc-httpd to do http basic authentication with plan9 auth server

imap4d: simplify auth code using encodefmt(), use readn() to get multiple of 3*18 in base64 input buffer

ircrc: remove unused clonefile

mothra: del, ins, wbr, strike support

mothra: remove unused confirmcurs; move confirmcursor up with the other cursors.

ndb/dns: reduce sencodefmt() to not link in enc32()/enc64() encoders

netaudit: comment file server auth test (unreliable on cwfs)

pemencode: handle base64 input length < 3, fix bogus zero termination

rc-httpd/handlers/dir-index: plan 9 files may be chmod +a

rc-httpd: support for http basic authentication, fix cgi support to work with hgweb.cgi

realemu: ignore access to CMOS/RTC address/data registers

sam: don’t make scroll-wheel-up change focus (thanks clsmith)

sam: prevent array overflow with multiple -i and -a arguments (thanks clsmith)

ssam: don’t pollute the environmen, fix typo

secstore: don’t print errors for dial() and readnvram() when not in verbose mode

smtp, smtpd: fix use of enc64(), fix memory leaks in doauth(), cleanup mkfile

snap: fix readseg() to cope with > 2gb segments

upas/marshal: deduplicate cistrcmp()/cistrncmp()/enc64()

vc: fix coffsect.lnno overflow into nreloc

vl, libmach, kernel: mips has 16K alignment for segments (for bigpages)

vl: prevent stack altering instructions to be hoisted above loads

webfs: do not send credentials in automatic referer url

webfs: fix proxy authentication

webfs: implement CONNECT method for https connections over proxy

webfs: simplify http basic auth code by using encodefmt()

webpaste: update for modified okturing.com

manual pages, documentation, misc

audio(1): explain mp3enc wants raw data in the opposite byte order to /dev/audio (thanks, eekee), fix example

col(1): add SOURCE (thanks, qrstuv)

encode(2): clarify lim argument to enc*(), add SOURCE reference for encodefmt()

nintendo(1), qer(8): fix typos

nintendo(1): add SOURCE entry for games/gba

nintendo(1): update for gbc compatability

mp(2) man page: mpinvert, not mpinverse (thanks, pr)

mothra(1): replace code.google.com with code.9front.org

passwd(1): passwd no longer needs to be run on a terminal; netkey is more stubborn.

pushtls(2): fix signature to TLSconn.trace(), tls.h -> libsec.h (thanks, pr)

rsa(8): recommend secstore(1) for Plan 9 RSA private key storage

secstore(1): add DIAGNOSTICS section

segment(3): document fixed segment creation

wpa(8): the -p flag will also prompt for user/password on wpa enterprise

theo: OpenBSD is not generally known as an exposed democracy.

New 9front release “9FRONT NUCLEAR WINTER OF CODE” (2015/03/02)

torrent

direct download

kernel and drivers

kernel: increase size of palloc.mem[] user page bank array

kernel: reduce Page structure size by changing Page.cachectl[]

kernel: make pagereclaim() a bit less stupid

kernel: maintain Pool.curalloc for poolallocalign() and blockgrow()

pc, pc64: fix intrdisable() MaxIrqLAPIC -> MaxVectorAPIC (thanks mischief)

pc, pc64: simplify intrdisable()

pc64: enable uartisa in default config

zynq: fix print format warning in screeninit()

zynq: do fixed mapping for ocm memory on boot and make kaddr() and paddr() work with it

devmnt: remove unused mntstats fields from Mntrpc

devusb: fix debug ctl nil crash

devusb: check for nil hp->dump and hp->seprintep

igfx: add 0x2a02 for Intel GM965/GL960/X3100

igfx: displayport support for ivy bridge

usbehci: initial support for usb on zynq, remove uncached.h

wifi: ignore truncated tlv in beacon/probes; fix recvbeacon()

libraries

libc: check name in getvent()/putenv()

libdraw: cleanup getsubfont()

libdraw: check fontchar count in openmemsubfont() and readsubfont()

libdraw: use readn() to read headers and Fontchar array

libdraw: use multiple read() calls in openfont() to read .font file

libdraw: font->display->defaultsubfont vs. display->defaultsubfont, dead code, malloc erros

libsec: add TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA client cipher suit support

libthread: use devdup instead of mounting pipe to /mnt/temp for close-on-exec in procexec()

libthread: remove unused internal functions and old xinc assembler files

programs

[125678kqv][cl]: fix sprint() and strcpy() buffer overflows

6c: eleminate more MOV instructions

6c: fix missing memset in Bconv()

6l: no need to emit rex.w prefix for MOVBQZX and MOVWQZX

auth/factotum: factotum: cleanup getnvramkey()

auth/userpasswd: add to mkfile to build by default

aux/vga: cleanup vesa code

aux/vga: use optional edid information to determine mode when vgadb fails

aux/vga: remove vbs/vbe from mode, use shs/ehs when sync is ment, prefer detailed timing in edid

aux/vga: dont error when vesa setscale fails after modeset (thanks rx9p for reporting)

fplot: add modulus % operator

gs: work arround broken xref table pdfs

gs: backport aes support for pdf-1.6

gs: backport 16MB string support

ircrc: dont require nick and user to be the same for auth/userpasswd (thanks spew)

jpg: handle progressive non-interleaved mode

kbdfs: work around qemu

leak: report alloc size mismatch

mothra: add side scrolling, controlled by left and right buttons on the keyboard. if desired, x-scrollbar can be set visible via the visxbar variable in mothra.c. (thanks, jpm_)

nusb/usbd: fix typo in debug prints, dont use %U format as its not installed

tlssrv: fix usage, dont cat

tlssrv: produce meaningfull error message when unable to read certificate

vc: eleminate strcpy in multab code

webfs: check $httpproxy and error when its bogus

wc: extend for 21 bit runes

added games/c64: Commodore 64 emulator

manual pages, documentation, misc.

fortunes: The NTP codebase is larger than the SSH codebase.

New 9front release “http://9fans.net/archive/ is precious” * (2015/01/29)

torrent

direct download

kernel and drivers

kernel: avoid inconsistent reads in /proc/#/fd and /proc/#/ns

kernel: evaluate dependencies of bootfs.proto files for bootfs.paq

kernel: use new disk/mkfs -o option to get proper source filename list for bootfs.proto

kernel: generate dummy bootscreeninit() function when building without vga device

kernel: get rid of /boot/boot parametrization

kernel: correct dependency for printstub.$O instead of print.$O

kernel: remove unused bootdisk[] and fix conf.nswppo factor in kernel memory size calculation kernel: new mount cache

kernel: print addresses in hex and sizes in decimal in xallocsummary

kernel: remove “checked xxx page table entries” print from checkpages()

kernel: remove *.acid files in nuke target instead of $CONF.clean target

kernel: replace ulong with uintptr in ucallocb() and fix unneeded parentheses

pc, pc64, xen: change return type of intrdisable() to void

pc, pc64, xen: simplify #P/irqalloc

pc, pc64: adjust mpshutdown() comment to reflect the current state

pc, pc64: fix intrdisable() to remove the Vctl entry even tho we can’t disable the interrupt on apic

pc, pc64: include PCArch.id in #P/archctl simplify #P/ioalloc read handler

pc, pc64: remove old B.COM command line parsing and just pass tokenized BOOTLINE to /boot/boot as argv[]

pc, pc64: untangle acpireset() from mpshutdown()

pc, pc64: untangle embedded controller (ec) dependency from devarch

pc: dont handle pending floating point exception in fpsave thru FPOFF

pc: remove mmuinit0().

xen: fix cross build, fix mtrr dummy functions, remove segmentation constants, not used on xen.

zynq: added zynq kernel

zynq: lilu dallas, multicore

zynq: active.machs = 1

zynq: differentiate various pagefault types in faultarm()

zynq: dont do install target by default in the mkfile

zynq: enable branch prediction

zynq: enable prefetch hints and drop-prefetch

zynq: fix kernel configuration so it builds

zynq: fpsave() and fpclear() both need to disable the fpu

zynq: implement µs()

zynq: only tmpmap() while splhi(), remove unneeded coherence() after tmpunmap(), splhi() in l2free()

zynq: set mainmem->maxsize so kernel malloc() wont fail after 4MB

devip: exclude “don’t fragment” bit from ipv4 reassembly test

devdraw: remove broken color palette blanking

devmnt: handle rpc buffer exhaustion on mntflushalloc()

devvga: disable hardware blanking when switching drivers, check softscreen

devvga: use uintptr for VGAscr.paddr and VGAscr.storage

sdaoe: add to pc64 config, allow aoedev= shorthand for id!lun -> id!#æ/aoe/lun

sdiahci: sanitize ahci pci bar

sdide: add vid/did for 82801IIH Intel Q35 IDE controller (thanks kenji)

sdloop: hardcode Enotup[] string to avoid devaoe dependency

sdvirtio: move common “queue i/o and wait” code into vqio() function, handle notify suppression

sdvirtio: provide enable() and disable() functions so it can be switched off

vgavesa: get rid of the vesa kproc

igfx: work in progress intel graphics driver

igfx: get edid information from lvds

igfx: implement hardware cursor

igfx: support for X200 (thanks bigato)

igfx: support for X60t with 1400x1050 panel

igfx: vga support on x230, fix fdi link setup

igfx: vgadb entries for x230, x200s, l1730p, lcd2190uxp, x60t and x301

iwl: add “reset” ctl message to software tigger device reset

programs

acme: allow typing ‘\n’ in window tags

acme: fix buffer overrun in xfidutfread() and xfidruneread(), cleanup

acme/win: fix fswrite() not assuming iounit < EVENTSIZE

ape: add fprint %z format (thanks Ori_B)

audio/flacdec: fix pcmconv pipeline race (thanks mischief and henesy)

aux/vga: vesa scaling modes

aux/vga: display switching for Intel adapters

aux/vga: scaling modes for VESA

aux/wpa: experimental wpa2 enterprise support

cfs: change default mountpoint to /mnt/cfs and fix the manual (thanks mischief)

disk/mkfs: add -o flag to list source files

factotum: implement proto=mschapv2 client role

hjfs: fix missing superblock dirty mark when reaming

hjfs: make -m default 4 MB instead of 40 KB

ip/ipconfig: set ndb database file with -f argument

ircrc: use aux/trampoline or tlsclient for connections, add -T flag for tls

kbfds: delete autogenerated latin1.h file when mklatin fails

kbmap: fix sprint() buffer overflow (thanks silasm)

ndb/cs: fix spelling (thanks mischief)

nusb/kb: fix alt/altgr being swapped for some reason

nusb/serial: fix nusb/serial hang with ftdi

pci: import pci script and updated database from 9atom

png: fail on invalid bpc

qmail: call mail instead of smtp with the wrong path

sam: ‘^’ and ‘_’ cmds; same as ‘<’ and ‘|’ except that stdout goes to the command window

stats: handle ‘q’ to close

tcs: update charsets. Fixes issue #214

tee: get rid of openf[100] array and just dup() filedescriptors to 3+[0..n-1]

terminus font: update .font files, remove references to old vga bitmaps

upas/nedmail: do not recursively plumb email multipart attachments in print command

various cmds: replace magic numbers with Kdel/Keof, etc

vblade: add erik quanstros vblade utility (with fixes for amd64)

vnc: put newlines in verbose messages

vncs: turn off auth with -A, do not require -c for -x

webcookies: avoid rereading and rewriting the cookie jar file all the time, dont return deleted cookies on search

webcookies: only sync the jar when dirty on clunk

libraries

libc: more strict checktree() for poolcheck

libbio: add Bfdopen() from plan9port

libflate: fix wrong adler32() length calculation (thanks qrstuv)

libdraw: don’t deference nil display in freefont

libdraw: don’t redraw input box in enter/eenter when mouse is moved outside the rectangle

libmemdraw: fix fd leak in openmemsubfont and memory leak in freememsubfont libmemdraw: never point Buffer.alpha to nil (thanks mischief)

libip: skip ipv6 loopback address (thanks mischief)

manual pages

6in4(8): document ayiya

factotum(4): document mschapv2 and wpapsk protocols

hgfs(4): add SOURCE and HISTORY to man page (thanks, spew)

pci(8): document vid/did argument, fix usage

plan9.ini(8) man page: update links to iwn and ral firmware blobs

rc-httpd(8): add HISTORY to man page

xargs(1) man page: add HISTORY (thanks, jpm_)

New 9front release “(no plan9 to hand)” (2014/12/11)

torrent

direct download

kernel and drivers:

kernel: remove implicit Proc* argument from procctl()

kernel: make use of nil vs 0 consistent in qio.c (sorry)

pc, pc64: provide access to embedded controller with #P/ec file

pc, pc64: command flag sometimes doesnt reset, just check for IBF

pc, pc64: preserve last KB of conventional memory (might contain bios tables)

pc, pc64: more conservative pcirouting

pc, pc64: add and enable ethervirtio driver

pc: get rid of fixed 8MB memory map (now dynamically between 4 to 16 MB depending on kernel size)

pc64: get rid of fixed 8MB INIMAP and dynamically map KZERO-end in l.s

bootfs: remove disk/kfs fileserver, nobody uses it

bootrc: handle multiple fs and auth addresses in netboot, always set auth= in /net/ndb

bootrc: preserve #ec/fs (thanks _sl)

bootrc: add ndb/dnsgetip resolver to bootfs so domain names can be used for fs=, auth= and secstore= (thanks mischief)

devproc: reset p->pdbg under p->debug qlock in procstopwait()

devsegment: fix segmentcreate function signature

ip: implement “hangup” ctl for udp protocol

audiohda: add pci ids for Intel 8 Series Lynx Point (thanks quux)

ether8169: add support for RTL8411B (thanks quux)

add ethervirtio driver

programs:

abaco: cleanup, handle image/x-icon, don’t use backspace as a hotkey, and remove urlconvience()/related functions

factotum: accept multiple bootstrap auth servers in /net/ndb and -a arguments

games/md, games/snes: fix memory leak on resize

games/md, games/snes: flush screen in parallel to audio (fixes buffer underruns on x200s)

games/md: fix interlace at scale 2

games/snes: save more audio state

games/snes: fix extern pic declaration to match reality

games/snes: do message display in screenproc

hpost: fix multipart/form variable name mangeling when field value contains newlines

hpost: break up tags with newlines to avoid sed line buffer limit

httpfile: use webfs, fix 9p flushes

inst: copy efi bootloader in bootsetup

io: add -E flag to access embedded controller space

ip/ipconfig: treat /32 mask as /0

ircrc: don’t quit on blank line (thanks Ray)

ndb/dns: ignore terminating authoritative flag for no-answer when more nameservers are provided

secstore: allow multiple server addresses in $secstore and multiple -s arguments

sed: fix error handling for “Output line too long” and other stuff

upas/fs: handle cwfs “file is locked” error message

upas/smtpd: accept literal ipv6 addresses in HELO/EHLO

upas/smtpd: cleanup hello() domain check code

wpa: fix quoting for essid with spaces

wpa: handle essid: with whitespaces from ether ifstats file

add ndb/dnsgetip program to resolve A and AAAA records during bootstrapping

libraries:

libc: allow dial to be interrupted

libc: improve dial error handling

libc: import cleaned up syslog() function from sources

libdraw: fix atomouse

rootstub: create /sys/src/pkg and /sys/lib/pkg directories

documentation:

fortunes: (no plan9 to hand)

nintendo(1): document games/gba

New 9front release “DON’T FORGET TO VOTE” (2014/11/06)

torrent

direct download

kernel and drivers:

kernel: fix segattach() rounding of va+len (thanks kenji arisawa)

pc: sanity check bda value in lowraminit() to avoid overflow with efi

pc: add *bootscreen= variable to pass pre-initialized framebuffer info to kernel

pc: enable page size extension early in apbootstrap

pc, pc64: fix ps2mouse memory corruption race

pc, pc64: allow passing RSDT pointer in *acpi= boot parameter, early bootscreeninit(), fix rampage() usage

pc, pc64: make mtrr() callable from interrupt context and before mpinit

pc, pc64: more sanity checking for lowraminit()

pc, pc64: implement acpi reset (for efi)

pc64: put return value of nsec syscall in register on amd64 pc64: syscallfmt for nsec syscall

pc64: print “Plan 9” on boot, cleanup pccpu64 files

pc64: enable rtl8169 driver (thanks awabimakoto for testing)

pc64: remove unused pdballoc and pdbfree counters from mach structure

devcons: avoid division by zero reading Qsysstat

devip: print protocol name in garbage collection notification

devip: sanity check Nchan in Fsproto()

acpi: fix pcibusno() when PCI0._ADR = 0

bcm: fix baudrate setting for serial console (thanks to aap and hiro)

efi: add experimental efi bootloader

efi: add initial pxe support (v4 only)

efi: iso filesystem support for cdrom booting

nusb/kb: dont set boot protocol on HidCSP interface when we failed to read report descriptor (thanks aap_)

compilers and debuggers:

6c/8c: eleminate moves by swaping source and destination operands in peephole pass

vi: implement _nsec syscall

programs:

acid: fix sysr1() stack corruption

cs: use /net/ether* instead /net/ether[0123], dont remove srv file with -n, dont write dns logfile

cs: fix linefeeds in syslog(), cleanup

games/nes: reduce volume, causes overflow and confuses ac97

hg: make intermediate directories like newer hg does

hgfs: make data files with meta headers having the right size after open

inst: ignore *bootscreen= variable when generating plan9.ini

ip/ayiya: experimental anything in anything tunnel protocol client

mk9660: add -E option to create EFI boot entry

ndb/dns: request recursion only for local dns servers

newt: implement ned-style address ranges

oggdec: recognize “begin of stream” packets and restart decoding

pkg: change default repo to http://9front.org/pkg/386

ramfs: fix directory check in wstat() (thanks mischief)

ramfs: allow changing mtime in wstats

realemu: make sure instruction arguments are initialized even when decoding traps

rio: fix “-cd dir” in mountspec being ignored

rio: dont serve a kbd file per window when we didnt got one from the environment

snap: change ulong return of stackptr() to uvlong for amd64

stats: handle /dev/sysstat 32bit overflow in delta calculation

sysinfo: relax regex for start of kernel boot messages

sysupdate/psfax/play: fix unquoted brackets causing rc to perform unnecessary file lookups

teg2: fix wrong l2 setshift address in wholecache() (from sources)

wpa: fork note group when going to background (thanks jpm)

add crc32

add games/gba: Nintendo Game Boy Advance emulator

add gbatype

libraries:

lib9p: fix nil dereference crash in remove for directory permission check

lib9p: fix .. walk crash in deleted directory (thanks BurnZeZ)

lib9p: prevent files from being created in deleted directories (thanks BurnZeZ)

libauthsrv: allow multiple auth= attributes for backup auth servers, authdial() tries each one in order

libmemdraw: update drawtest to use same rounding in alpha calculation as libmemdraw

libmemdraw: fix byte ordering in memfillcolor()

libsec: ecgen() and ecdsasign() fix

libsec: fix hmac for keys bigger then 64 byte block size

libsec: add diffie-hellman functions

documentation:

9boot(8): document efi booting

fortunes: this exact error message is in the fortunes file.

fix some manpage cross references

add /lib/terry

New 9front release “IT´S EASY BUT YOU ARE COMPLICATED” (2014/09/04)

torrent

direct download

kernel and drivers:

kernel: only complain about no images when theres nothing more to reclaim

kernel: use nil for pointers instead of 0, zero channel umc and dirrock in newchan()

kernel: xinit() use ulong for page counts, cleanup

kernel: fix todfix() race

kernel: make noswap flag exclude processes from killbig() if not eve, reset noswap flag on exec

bcm: apply richards fix for mmukmap (from /n/sources/patch/bcm-mmukmap-bug)

pc, pc64: initial machine check architecture support

pc, pc64: make pc kaddr() check reject -KZERO address (thanks aiju)

pc, pc64: fix off by one error in _multibootentry

pc64: preserve user extern registers R14 and R15 across syscalls, use Ureg.bp (RARG) for syscall number

pc64: dont save/restore DS/ES/FS/GS segment registers on syscall or interrupt, they are ignored in long mode.

pc64: cleanup syscallentry()

pc64: fix wrong Ureg* argument on note handler (thanks _sl!)

pc64: enable ether8139 in kernel config (thanks hiro)

add support for huawei e220 3g modem

add AHCI support for Intel 8 Series/C220 Series Chipset Family SATA Controller. (from sources)

add support for Intel C226 chipset PCI (from sources)

ether8139: fix pointer truncation by ulong cast, use mallocalign() ether8139: fix pointer to smaller int tuncation warning on amd64

devenv: prevent non-hostowner from creating or removing variables in ‘#ec’, cleanup

devmnt: fix potential race with mntflushfree(), remove mntstats, 0 vs nil cleanup

devproc: fix proccrlmemio bugs

devproc: fix syscalltrace error handling, conistent use of nil for pointers

ip: fix missed unlocks and waserror handlers

ip: fix memory leak in ipicadd6()

ip: set arp entry for own v6 address when not tentative

nusb: implement aijus stable uniqueue device names

nusb/kb: delete code for keyboard boot protocol handling, just use hid parser

nusb/ptp: do maxpkt reads to avoid babble error with usb 2.0 devices (thanks mischief!)

nusb/serial: implement flushes

nusbrc: ensure rpi ethernet always appears as /net/etherU0

boot: dont print errors if ethernet has no ifstats file, can happen with usb ethernet

compilers and debuggers:

5a, 5l: add LDREX/STREX/CLREX instructions

8c, 6c: generate enam.c file, just like 5c

acid: fix notestk() on amd64

programs:

5e: push ERRMAX for note message on stack avoiding unaligned stack pointer

5e: fix signed long multiply

abaco: fix double free race of p->status string (thanks BurnZeZ for the proc snap)

acme: fix crash: Get D in a new window with D being an existing directory

aux/8prefix: fix usage

cwfs: fix 32bit multiplication overflows for allocation sizes (thanks kenji okomoto)

cwfs: add optional uid argument to allow command, unify permission override code

exportfs: use argv0 instead of hardcoding “/bin/exportfs” in openmount(), dont use 0 for nil

exportfs: remove getsbuf() nil check, can’t happen

exportfs: simplify freefile() code

expr: fix missing type declarations for match(), which broke on amd64 as pointers dont fit into a long

fstype: fix kfs detection (thanks kenji okomoto)

ftpd: dont skip unmountnet() and return proper error string from dialdata()

ftpfs: dont convert names to latin when string is valid utf-8

games/doom: fix alignment issues for arm

games/md: add -2 -3 -a and trailing newline to usage

games/snes: add -a -h -m -T to usage

import: make aan (-p flag) work in “backwards mode” (-B)

iostats: reimplement iostats as a 9p filter instead of duplicating exportfs

iostats: dont prefix /bin to argv[0] when already absolute or relative path

iostats: isolate fs from interrupt notes

iostats: remove unused fcallfmt, dont leak our mount pipe end into exportfs proc

iostats: properly distribute exit status and give usefull error messages

ipconfig: cleanup code duplication in ip6cfg()

ipconfig: fix readipifc() memory leaks in recvra6 and sendra6 processes

ndb/dns: fix nil dereference crash with convM2DNS() returning reqmsg.qd == nil

page: fix deadlock with addpage (thanks BurnZeZ for the stacktraces)

ping: don’t spin when we get error reading icmp connection, print error and sleep

ptp: fix alignment assumptions for amd64

python: disable symlink and readlink compile options, ape has no reasonable way emulating it

ratrace: make multithreaded ratraces less confusing (for mischief)

rc: fix slow Xqdol(), avoid recursion in conclist(), estrdup(), avoid copying

rc-httpd/handlers/serve-static: restore simple test for file type and hardcode max_age to 1 hour (thanks eekee)

samterm: fix ctrl-b crash when cmd window resized (thanks revex)

secstore: read server from $secstore environment variable

secstore: improve error messages, newSConn() can’t fail

spred: add sprite editor

sysinfo: add cpuid info

tftpd: fix error string packet overflow in nak(), fix syslog reporting

tftpfs: make sure path is null terminated

unzip: fix usage

upas/fs: disable imap mail fetch pipeline due to race

usps: yet another update

libraries:

lib9p: remove executable bit from /sys/src/lib9p/ramfs.c

libdraw: add missing borderop() (thanks aiju)

libframe: use correct text color on frinsert depending on selection (thanks sl)

libmach: fix break point instruction for little endian MIPS (from sources)

ndb/common: add ipv6-icmp, ipv6-nonxt, ipv6-opts, bootps

documentation:

add 9pqueue(2), medium to low quality manpage.

nintendo(1): document snes

sega(1): add man page for games/md (and potential future sega emulators)

fortunes: it´s easy but you are complicated

9FRONT “MACS” Released (2014/06/27)

torrent

direct download

kernel and drivers:

add _nsec() syscall 53 for binary compatibility with labs distribution

kernel: fix read size calculation in pio() demand load

kernel: simplify fdclose()

kernel: remove wrong and needles mapsize check in newseg() (thanks Yoann Padioleau)

kernel: dont use atomic increment for Proc.nlocks, maintain Lock.m for lock(), use uintptr intstead of long for pc values

kernel: remove Block refcounting (thanks erik)

kernel: move syscall.$O target from config to mkfile

kernel: remove xinc()/xdec()

kernel: new pagecache, remove Lock from page, use cmpswap for Ref instead of Lock

kernel: fix cooperative scheduling for wired processes

kernel: make use of nil and 0 consistent in proc.c

pc: initiate machine reset only from boot processors in mpshutdown()

pc: clip rectangles before sending them to the hardware in flushmemscreen

pc, pc64: simplify reboot code

pc64: remove cpuserver bigboy hack and honor *kernelpercent=

pc64: fix ulongs for address of devarchs realmodemem file

pc64: allocate palloc.pages from upages

pc64: use 2MB pages for preallocpages()

pc64: fix for unsigned comparsion of (top - base) >= size

pc64: dont trap xinc()/xdec() overflow/underflow, delete unused atomic functions

pc64: implement checkmmu() debug function

pc64: remove unneeded parens in pmap()

pc64: use pc/pcrandom.$O instead of port/random.$O for RDRAND instruction support

pc64: fix MS2HZ (thanks Anthony Martin)

xen: import xen 32 bit paravirtual kernel from /n/sources/xen

xen: fix early console

audiohda: add Intel 8 Series/C220 Series support

devproc: fix close and closefiles procctl

devproc: handle 64bit address writes to /proc/n/mem files

ether8169: support for RTL8168G

ether8169: use u16int instead of u8int for C+ command register (thanks pavel / erik)

nusbrc: dont fork usb drivers into background

sdvirtio: experimental support for virtio-scsi

swap: make sure swap address sticks arround until page is written to swap

compilers and debuggers:

6a, 6c, 6l: fix copy propagation

programs:

acid: remove imagepagerefs() acid function

cpu: remove duplicate environment and chdir($home) code (thanks qrstuv)

cpurc, termrc: clarify comments by removing lies

ed: dont pass string constants to mktemp()

file: detect NES and SEGA rom files, detect djvu files, fix newline

g: add *.cpp

games/md: new Sega Megadrive/Genesis emulator

games/nes: support Battle City two players mode with joypads

games/snes: fix -T

iostats: dont sysfatal on 9p read error due to program termination

iostats: add -C flag to enable mount cache

ip/torrent: fix usage, add -A option to set user-agent

ip/torrent: use “torrent” as default user agent

nusb/usbd: serialize /dev/usbevent processing

samterm: use 4K stacks for amd64 (thanks burnzez)

webfs: explicitely unmount old /mnt/web (thanks BurnZeZ)

libraries:

ape/stdio: set errno to EMFILE when running out of streams

libauth: dont print blobs in auth_proxy error strings

libc: avoid static table and supurious reads in nsec()

libc: declare pooldump in pool.h. the manual says it is public

libsec: fix dsagen 64-bit bug (thanks rsc)

libsec: use u32int instead of uint when we need 32 bit (thanks erik)

libstdio: avoid issues with aliasing in dtoa() on amd64 (from 9atom, thanks to erik and charles)

documentation:

dougfacts: remove html corruption and end file with newline

fortunes: i believe any successful Plan 9 distro will need to provide some transparency in the change review process. – Skip Tavakkolian

Clive (2014/05/24)

From: Francisco J Ballesteros
Date: Fri, 23 May 2014 13:54:27 +0200
To: Fans of the OS Plan 9 from Bell Labs
Subject: [9fans] OT: clive

Hi,

we have been working on a new system, named Clive,
it’s written in Go and includes its new weird file protocol, named zx.
I thought that some of you might be interested, so I’m writing this mail.

The http://lsub.org/ls/clive.html page has links to everything, and,
to avoid noise in 9fans, we will make any further announce regarding
clive at the clivezx google group created for that purpose.

We are using some parts of the system already, but, it’s an ongoing
work on a new research system, beware :-).

Also, we are going to make it run on a modified nix kernel,
but that’s not yet done. Although it will make it more related to 9.

regards

9FRONT “PEEPHOLE” Released (2014/05/18)

torrent

direct download

kernel and drivers:

bcm: added getrevision() to vcore which allows you to get the raspberry pi board revision

pc, pc64: handle sse simd exceptions

pc64: increase sizes of physical memory bank maps

pc64: fix embrassing typo in mmuzap()

kernel: always reset notepending in eqlock, handle forceclosefgrp in eqlocks

kernel: stop queue bloat before allocating blocks

devgpio: added new device for rpi gpio (thanks Krystian!)

devmnt: abandon fid on botched Tclunk or Tremove

sdiahci: fix (unused) hba reset function (thanks erik quanstro)

sdide: never timeout or retry scsi commands from the controller driver

compilers and debuggers:

6c, 8c: fix peephole bug for eleminating CMPL $0,R after shift

cc: fix spurious warning on comparsion with scope redeclared variable (thanks aiju)

1l, 2l, 7l, kl, vl: add missing setmalloctag() dummy in compat.c

programs:

abaco: need more stack on amd64

cwfs: fix 1GB memsize limitation

games/doom: get rid of floating point code for division

gs: fix truetype interpreter for amd64

gs: remove PStorage data type from ttf interpreter

gs: fix /undefined in –setcolor– errors on amd64

hgfs: avoid revlogupdate() calls when reading root (thanks burnzez)

htmlfmt: use uhtml for character set conversion

ip/ipconfig: fix dhcp watch

play: set user-agent, otherwise server thinks we'r mozilla m(

samterm: free() after getenv()

samterm: fix esc, make ctrl+b change focus to command window

sed: remove unused ecmp function

tail: seek to EOF to check if seekable. fixes tail on /proc files

tail: fix follow for empty files (thanks cinap_lenrek)

tcs: fix inplace 16 bit unicode conversion

tcs: handle surrogate pairs

uniq: use Bsize for buffers

usps: remove redundant uhtml pipeline

webfs: use mozilla compatible user agent as default

wc: simplify and avoid buffer overflow on long filenames

libraries:

libbio: do not leak memory if realloc fails

libbio: Brdstr, Bopen: set malloc tag to the caller

libbio: bio.h: add varargck argpos pragma for Berror

libip: use snprint() in myetheraddr() to prevent accidents

libthread: thread.h: varargck argpos for threadsetname

documentation:

samterm: document ctrl+b

uniq: document -s option (thanks heaumer)

New 9front release “опен-сссл” (2014/04/28)

torrent

direct download

kernel and drivers:

kernel: devproc: change address format in segment file to %8p (thanks eekee)

kernel: icmp: use snprint, add more unreachable error messages (from erik quanstro)

kernel: fix printing wrong memory sizes in pageinit(), overflowed on amd64 (thanks aram)

kernel: add secstore and wpa to bootfs

pc, pc64: process acpi interrupt source override entries in a 2nd pass over the madt (APIC) table (thanks erik)

pc64: prevent dat.h from getting overwritten by ../pc/dat.h

nusb/kb: fix trackpoint on thinkpad usb keyboard

nusb: dont include <bio.h>, we'r not using it (thanks erik)

nusb/ether: add RNDIS support (tested on Nexus 5)

nusb: resolve endpoint id conflict with different input and output types

nusb: workaround for endpoints with same index but different types

pmmc: recognize generic mmc controllers (untested)

vga: add support nVidia 7600GS (and possibly 7950) (from kenji okamoto)

wifi: set ether->mbps to highest supported rate of the associated ap

etheriwl: set msb for all rates

etheriwl: add Wifi Link 5150 did

etheriwl: support another (broken) variant of centrino ultimate-n 6300

compilers and debuggers:

6c, 8c: optimize away CMPL/CMPQ reg, $0 instruction in peephole pass

programs:

aanuke: new program, print commands to kill idle aan processes

audio/oggdec: wait for pcmconv child process to exit

auth/login: find authdom instead of using hardcoded cs.bell-labs.com (thanks erik)

btc mkfile: mkdir -p

eqn: fix parallel build (thanks eekee)

games/gb: better video scaler from games/nes

games/geigerstats: fix usage() to exit

games/snes: improved cpu timing

games/snes: fix dspclock signed overflow (music stoping for minute)

games/snes: upsample audio to 44100 hz instead of setting audio device frequency

games/snes: faster scaling

games/snes: mode 5/6; overscan fix

grep: fix wrong rlcass splitting (thanks erik and kenji)

grep: fix tab2, use int instead of Rune to be compatible to 16bit rune system

newt: new program, NNTP client for use with nttpfs(4)

ramfs: fix srvname; postmountsrv() already prepends /srv/

sam, acme: fix character classes quoting for 21-bit runes

secstore: fix gfile/pfile/rfile array sizes

secstore: fix wrong “readnvram %r” error status

termrc, cpurc: exclude wpa from oom kill and swap

tr: fix 4-byte runes fix (thanks rsc)

webfs: do not unescape escape

wpa support for tcp boot, remove duplicate secstore code from factotum

libraries:

libauthsrv: recognize amd64 $cputype in readnvram() to look for default locations

libc: allow announce address of the form #I1/tcp!*!564

libmach: fix printing of amd64 modrm byte register with rex prefix

libmemdraw: improve readbyte() and writebyte() routines

libsec: tlshand: fix memory leaks, fix alloc element size for certs pointer array, error handling, cleanup 36 -> MD5dlen+SHA1dlen

vgadb: add EIZO Flexscan S2231W (from kenji okamoto)

documentation:

aan(8): add aanuke and HISTORY

draw(2): fix missing arg of bezspline on page 5

games(1): geigerstats args

9FRONT “THE MORE YOU PLAY WITH IT, THE HARDER IT GETS” Released (2014/03/22)

torrent

direct download

kernel and drivers:

compilers and debuggers:

programs:

libraries:

documentation:

TO BE THIS GOOD TAKES AGES…

9FRONT “SUPER 9FRONT 64” Released (2014/02/16)

New 9front release “SUPER 9FRONT 64”

torrent

direct download

9FRONT “CTRL-F” Released (2014/01/04)

New 9front release “CTRL-F”

torrent

direct download