OK, turing.

<- leave blank

Tue May 17 14:10:53 EDT 2022

† git/diff -s | awk '{ print $2 }'
rc/bin/9fs
rc/bin/Bfn
rc/bin/ape/grep
rc/bin/ape/ln
rc/bin/g
rc/bin/inst/prepdisk
rc/bin/ipso
rc/bin/patch/list
rc/bin/patch/undo
sys/lib/git/common.rc
sys/man/1/git
sys/man/1/sam
sys/man/2/9pqueue
sys/man/2/fork
sys/man/8/sol
† cd /
† git/commit sys/lib/git/common.rc
# Author: Grimmware <oholiab@grimmwa.re>
#
# parent: e3cd9725106a9e2e5d326aaf4dcb83cafb181a15
# parent: fdbe335d3ac0ba5307b2b5ab97d694af0d2256a7
# M sys/lib/git/common.rc
#
# Commit message:
Pull in git merge fixes from upstream to unfuck my local changes
heads/grimmware: 26ca85f02dd9770bb7a1e1c37c0dc21db69424c2
† git/revert
usage: revert [-c query] file ...
† git/revert `{git/diff -s | awk '{print $2}'}
† git/diff -s
† git/merge front
/bin/git/merge: nothing to merge, doofus
† git/branch
heads/grimmware
† git/log
Hash: 26ca85f02dd9770bb7a1e1c37c0dc21db69424c2
Author: Grimmware <oholiab@grimmwa.re>
Date: Tue May 17 20:00:01 +0200 2022

	Pull in git merge fixes from upstream to unfuck my local changes

Hash: fdbe335d3ac0ba5307b2b5ab97d694af0d2256a7
Author: Jacob Moody <moody@posixcafe.org>
Date: Tue May 17 05:25:30 +0200 2022

	aux/listen: remove special cases for depreciated datakit


Tue May 17 06:43:20 EDT 2022
.de hd
.tl ''\\$1''
.tm \\n% \\$1
..
.hd "My Head"
blah blah diddy blah


Mon May 16 21:47:14 EDT 2022
diff 5dd9b370a07b49a072025f5cd401361e8988c9e7 uncommitted
--- /tmp/diff100001586607
+++ /tmp/diff200001586607
--- a/sys/src/cmd/aux/listen.c
+++ b/sys/src/cmd/aux/listen.c
@@ -481,28 +481,19 @@
	long n;

	readstr(dir, "remote", s->remote, sizeof(s->remote)-1);
- if(p = utfrune(s->remote, L'\n'))
+ if(p = utfrune(s->remote, '\n'))
		*p = '\0';

	n = readstr(dir, "local", addr, sizeof(addr)-1);
	if(n <= 0)
		return 0;
- if(p = utfrune(addr, L'\n'))
+ if(p = utfrune(addr, '\n'))
		*p = '\0';
- serv = utfrune(addr, L'!');
+ serv = utfrune(addr, '!');
	if(!serv)
- serv = "login";
- else
- serv++;
-
- /*
- * disallow service names like
- * ../../usr/user/bin/rc/su
- */
- if(strlen(serv) +strlen(proto) >= NAMELEN || utfrune(serv, L'/') || *serv ==
'.')
		return 0;
- snprint(s->serv, sizeof s->serv, "%s%s", proto, serv);

+ snprint(s->serv, sizeof s->serv, "%s%s", proto, serv+1);
	return 1;
 }



Mon May 16 21:37:46 EDT 2022
From: "Theo de Raadt" <deraadt@openbsd.org>
To: ig0r@b3zdna.net
cc: tech@openbsd.org
Subject: Re: [PATCH] xenocara: change xterm ProcGetCWD to get cwd via sysctl
instead of procfs
Comments: In-reply-to ig0r@b3zdna.net
   message dated "Sun, 15 May 2022 22:30:46 -0400."
Date: Sun, 15 May 2022 20:46:00 -0600
Sender: owner-tech@openbsd.org

ig0r@b3zdna.net wrote:

> > Eventually there will protocol or text side bug in xterm, and someone
> > will figure out ways to escalate beyond our other mitigations.  Rather
> > than forcing them to operate inside an uncomfortable less-than-POSIX
> > pledge+unveil environment, they can reuse a simple 1996-era shell-egg to
> > execve straight to a fresh shell for their pleasure.  Because pledge
> > "proc exec" lets them do so.
>
> But should it not be up to us to make sure that these exploits are
> mitigated?  Is it not our responsibility to properly go through all of
> the changes made to applications in the source tree to make sure they're
> secure?

You'll turn into a smurf before you finish auditing xterm perfectly.
And in the meantime, a new version from upstream will arrive.

My point of view is for critical pieces of code, the best way to curtail
risk isn't just to review against bugs, but to minimize what the
software can do if such bugs are triggered.  So I argue we should try to
force xterm into a somewhat privsep/privdrop mindset -- using pledge and
unveil to constrain action when it goes off the rails, and hopefully collect
crashes that alert us ahead of time about problems.

And then, I think we can disable features that aren't being used, when we
shrink the unveil and pledge.

I wonder how "localeFilter" / "luit" is supposed to work, because we don't allow
"exec", or is that started earlier, and if so has someone reviewed that code, and
added pledge/unveil to restrict the failure modes?

xterm is already full of #ifdef, why not add a few more?  If people don't
like the xterm variation we ship, there are 20+ xterm variations with all
sorts of fluff they will use instead (and most of them probably have these
features ...  and far worse perhaps)

That's how I see it.  Others might not agree, probably because they are
using features I don't.







Mon May 16 11:04:10 EDT 2022
what is opms kratom shots?  Kures MIT45

Mon May 16 09:57:17 EDT 2022
#include <u.h>
#include <libc.h>
#include <ctype.h>
#include <bio.h>

typedef struct Patch Patch;
typedef struct Hunk Hunk;
typedef struct Fbuf Fbuf;

struct Patch {
	char *name;
	Hunk *hunk;
	usize nhunk;
};

struct Hunk {
	char *file;
	int oldln;
	int oldcnt;
	int oldlen;
	int oldsz;
	char *old;

	int newln;
	int newcnt;
	int newlen;
	int newsz;
	char *new;
};

struct Fbuf {
	int *lines;
	int nlines;
	int lastln;
	char *buf;
	int len;
};

int strip;

void *
emalloc(ulong n)
{
	void *v;

	v = mallocz(n, 1);
	if(v == nil)
		sysfatal("malloc: %r");
	setmalloctag(v, getcallerpc(&n));
	return v;
}

int
fileheader(char *s, char *pfx, char **name)
{
	char *p, *e;
	int len, n;

	if((strncmp(s, pfx, strlen(pfx))) != 0)
		return -1;
	for(s += strlen(pfx); *s; s++)
		if(!isspace(*s))
			break;
	for(e = s; *e; e++)
		if(isspace(*e))
			break;
	if(s == e)
		return -1;
	n = strip;
	for(p = s; *p && n > 0; p++){
		if(*p != '/')
			continue;
		s = p + 1;
		n--;
	}
	len = (e - s) + 1;
	*name = emalloc(len);
	strecpy(*name, *name + len, s);
	return 0;
}

int
hunkheader(Hunk *h, char *s, char *file)
{
	char *e;

	memset(h, 0, sizeof(*h));
	h->file = strdup(file);
	h->oldlen = 0;
	h->oldsz = 32;
	h->old = emalloc(h->oldsz);
	h->newlen = 0;
	h->newsz = 32;
	h->new = emalloc(h->newsz);
	if(strncmp(s, "@@ -", 4) != 0)
		return -1;
	e = s + 4;
	h->oldln = strtol(e, &e, 10);
	if(*e != ',')
		return -1;
	e++;
	h->oldcnt = strtol(e, &e, 10);
	while(*e == ' ' || *e == '\t')
		e++;
	if(*e != '+')
		return -1;
	e++;
	h->newln = strtol(e, &e, 10);
	if(e == s || *e != ',')
		return -1;
	e++;
	h->newcnt = strtol(e, &e, 10);
	if(e == s || *e != ' ')
		return -1;
	if(strncmp(e, " @@", 3) != 0)
		return -1;
	return 0;
}

void
addnew(Hunk *h, char *ln)
{
	int n;

	ln++;
	n = strlen(ln);
	while(h->newlen + n >= h->newsz){
		h->newsz *= 2;
		if((h->new = realloc(h->new, h->newsz)) == nil)
			sysfatal("realloc: %r");
	}
	memcpy(h->new + h->newlen, ln, n);
	h->newlen += n;
}

void
addold(Hunk *h, char *ln)
{
	int n;

	ln++;
	n = strlen(ln);
	while(h->oldlen + n >= h->oldsz){
		h->oldsz *= 2;
		if((h->old = realloc(h->old, h->oldsz)) == nil)
			sysfatal("realloc: %r");
	}
	memcpy(h->old + h->oldlen, ln, n);
	h->oldlen += n;
}

void
addhunk(Patch *p, Hunk *h)
{
	if((p->hunk = realloc(p->hunk, ++p->nhunk*sizeof(Hunk))) == nil)
		sysfatal("realloc: %r");
	p->hunk[p->nhunk-1] = *h;
}

int
hunkcmp(void *a, void *b)
{
	int c;

	c = strcmp(((Hunk*)a)->file, ((Hunk*)b)->file);
	if(c != 0)
		return c;
	return ((Hunk*)b)->oldln - ((Hunk*)a)->oldln;
}

Patch*
parse(Biobuf *f, char *name)
{
	char *ln, *old, *new;
	Patch *p;
	Hunk h;
	int inbody;

	ln = nil;
	inbody = 0;
	p = emalloc(sizeof(Patch));
comment:
	free(ln);
	while((ln = Brdstr(f, '\n', 0)) != nil){
		if(strncmp(ln, "--- ", 4) == 0)
			goto patch;
		free(ln);
	}
	sysfatal("%s: could not find start of patch", name);

patch:
	if(fileheader(ln, "--- ", &old) == -1){
		if(inbody)
			goto out;
		else
			goto comment;
	}
	free(ln);
	ln = Brdstr(f, '\n', 0);
	if(fileheader(ln, "+++ ", &new) == -1){
		if(inbody)
			goto out;
		else
			goto comment;

	}
	free(ln);
	ln = Brdstr(f, '\n', 0);
hunk:
	if(hunkheader(&h, ln, new) == -1)
		goto comment;
	free(ln);

	inbody = 1;
	while(1){
		if((ln = Brdstr(f, '\n', 0)) == nil){
			addhunk(p, &h);
			break;
		}
		switch(ln[0]){
		default:
			addhunk(p, &h);
			goto patch;
		case '@':
			addhunk(p, &h);
			goto hunk;
		case '-':
			addold(&h, ln);
			break;
		case '+':
			addnew(&h, ln);
			break;
		case ' ':
			addold(&h, ln);
			addnew(&h, ln);
			break;
		}
	}

out:
	qsort(p->hunk, p->nhunk, sizeof(Hunk), hunkcmp);
	free(old);
	free(new);
	free(ln);
	return p;
}

int
rename(int fd, char *name)
{
	Dir st;

	nulldir(&st);
	st.name = name;
	return dirfwstat(fd, &st);
}

void
blat(char *f, char *o, usize len)
{
	char *tmp;
	int fd;

	if((tmp = smprint("%s.tmp%d", f, getpid())) == nil)
		sysfatal("smprint: %r");
	if((fd = create(tmp, OWRITE, 0666)) == -1)
		sysfatal("open %s: %r", tmp);
	if(write(fd, o, len) != len)
		sysfatal("write %s: %r", tmp);
	if(remove(f) == -1)
		sysfatal("remove %s: %r", f);
	if(rename(fd, f) == -1)
		sysfatal("rename %s => %s: %r", tmp, f);
	if(close(fd) == -1)
		sysfatal("close %s: %r", tmp);
	free(tmp);
}

int
slurp(Fbuf *f, char *path)
{
	int n, i, fd, sz, len, nlines, linesz;
	char *buf;
	int *lines;

	if((fd = open(path, OREAD)) == -1)
		sysfatal("open %s: %r", path);
	sz = 8192;
	len = 0;
	buf = emalloc(sz);
	while(1){
		if(len == sz){
			sz *= 2;
			if((buf = realloc(buf, sz)) == nil)
				sysfatal("realloc: %r");
		}
		n = read(fd, buf + len, sz - len);
		if(n == 0)
			break;
		if(n == -1)
			sysfatal("read %s: %r", path);
		len += n;
	}

	nlines = 0;
	linesz = 32;
	lines = emalloc(linesz*sizeof(int));
	lines[nlines++] = 0;
	for(i = 0; i < len; i++){
		if(buf[i] != '\n')
			continue;
		if(nlines+1 == linesz){
			linesz *= 2;
			if((lines = realloc(lines, linesz*sizeof(int))) == nil)
				sysfatal("realloc: %r");
		}
		lines[nlines++] = i+1;
	}
	f->len = len;
	f->buf = buf;
	f->lines = lines;
	f->nlines = nlines;
	f->lastln = 0;
	return 0;
}

char*
search(Fbuf *f, Hunk *h)
{
	int ln, len, off, fuzz, maxfuzz, scanning;

	scanning = 1;
	len = h->oldlen;
	maxfuzz = f->nlines;
	if(maxfuzz > 250)
		maxfuzz = 250;
	for(fuzz = 0; scanning && fuzz < maxfuzz; fuzz++){
		scanning = 0;
		ln = h->oldln - fuzz - 1;
		if(ln > f->lastln){
			off = f->lines[ln];
			if(off + len >= f->len)
				continue;
			scanning = 1;
			if(memcmp(f->buf + off, h->old, h->oldlen) == 0){
				f->lastln = ln;
				return f->buf + off;
			}
		}
		ln = h->oldln + fuzz - 1;
		if(ln <= f->nlines){
			off = f->lines[ln];
			if(off + len >= f->len)
				continue;
			scanning = 1;
			if(memcmp(f->buf + off, h->old, h->oldlen) == 0){
				f->lastln = ln;
				return f->buf + off;
			}
		}
	}
	sysfatal("unable to find offset to apply patch\n");
	return nil;
}

char*
append(char *o, int *sz, char *s, char *e)
{
	int n;

	n = (e - s);
	if((o = realloc(o, *sz + n)) == nil)
		sysfatal("realloc: %r");
	memcpy(o + *sz, s, n);
	*sz += n;
	return o;
}

int
apply(Patch *p)
{
	char *o, *s, *e, *curfile;
	int i, osz;
	Hunk *h;
	Fbuf f;

	e = nil;
	o = nil;
	osz = 0;
	curfile = nil;
	for(i = 0; i < p->nhunk; i++){
		h = &p->hunk[i];
		if(curfile == nil || strcmp(curfile, h->file) != 0){
			if(slurp(&f, h->file) == -1)
				sysfatal("slurp %s: %r", h->file);
			curfile = h->file;
			e = f.buf;
		}
		s = e;
		e = search(&f, h);
		o = append(o, &osz, s, e);
		o = append(o, &osz, h->new, h->new + h->newlen);
		e += h->oldlen;
		if(i+1 == p->nhunk || strcmp(curfile, p->hunk[i+1].file) !=
		0){
			o = append(o, &osz, e, f.buf + f.len);
			blat(curfile, o, osz);
			osz = 0;
		}
	}
	free(o);
	return 0;
}

void
freepatch(Patch *p)
{
	Hunk *h;
	int i;

	for(i = 0; i < p->nhunk; i++){
		h = &p->hunk[i];
		free(h->file);
		free(h->old);
		free(h->new);
	}
	free(p->hunk);
	free(p->name);
	free(p);
}

void
usage(void)
{
	fprint(2, "usage: %s [-p N] [patch...]\n", argv0);
	exits("usage");
}

void
main(int argc, char **argv)
{
	Biobuf *f;
	Patch *p;
	int i;

	ARGBEGIN{
	case 'p':
		strip = atoi(EARGF(usage()));
		break;
	default:
		usage();
		break;
	}ARGEND;

	if(argc == 0){
		if((f = Bfdopen(0, OREAD)) == nil)
			sysfatal("open stdin: %r");
		if((p = parse(f, "stdin")) == nil)
			sysfatal("parse patch: %r");
		if(apply(p) == -1)
			sysfatal("apply stdin: %r");
		freepatch(p);
		Bterm(f);
	}else{
		for(i = 0; i < argc; i++){
			if((f = Bopen(argv[i], OREAD)) == nil)
				sysfatal("open stdin: %r");
			if((p = parse(f, argv[i])) == nil)
				sysfatal("parse patch: %r");
			if(apply(p) == -1)
				sysfatal("apply %s: %r", argv[i]);
			freepatch(p);
			Bterm(f);
		}
	}
	exits(nil);
}


Sun May 15 17:55:27 EDT 2022
From: "Theo de Raadt" <deraadt@openbsd.org>
To: Stephan Mending <list@md5collisions.eu>, misc@openbsd.org
Mail-Followup-To: Stephan Mending <list@md5collisions.eu>,
		  misc@openbsd.org
Subject: Re: Cron running at 99% CPU for seemingly no reason
Comments: In-reply-to Stephan Mending <list@md5collisions.eu>
   message dated "Sun, 15 May 2022 12:06:33 +0200."
Date: Sun, 15 May 2022 09:56:02 -0600
Sender: owner-misc@openbsd.org

This is a bug in a diff I put into snapshots.





Sun May 15 15:05:04 EDT 2022
ext2srv 6574: serving ext2
attach(fid=466,uname="nature",aname="/shr/usb/sdUc616d/linux",afid="-1")...alloc
"/shr/usb/sdUc616d/linux", dev=3...good super block...OK
clone(fid=466,newfid=450)...OK
stat(fid=450)...OK
destroy(fid=450)
clone(fid=466,newfid=450)...OK
open(fid=450,mode=0)...f->qid=0x00000000...OK
read(fid=450,offset=0,count=8192)...I/O error
destroy(fid=450)


Sun May 15 14:09:39 EDT 2022
pcicfginit
0.0.0: did=44 vid=8086 rid=2 intl=0 ccru=0
0.2.0: did=46 vid=8086 rid=2 intl=11 ccru=0
	mem[0] = e0000004 4194304
	mem[2] = d000000c 268435456
	mem[4] = e0b1 8
0.25.0: did=10EA vid=8086 rid=6 intl=5 ccru=0
	mem[0] = ed900000 131072
	mem[1] = ed929000 4096
	mem[2] = e041 32
0.26.0: did=3B3C vid=8086 rid=6 intl=11 ccru=3
	mem[0] = ed928000 1024
0.27.0: did=3B56 vid=8086 rid=6 intl=3 ccru=3
	mem[0] = ed920004 16384
0.28.0: did=3B42 vid=8086 rid=6 intl=11 ccru=4
0.28.1: did=3B44 vid=8086 rid=6 intl=11 ccru=4
0.28.2: did=3B46 vid=8086 rid=6 intl=10 ccru=4
0.29.0: did=3B34 vid=8086 rid=6 intl=5 ccru=3
	mem[0] = ed927000 1024
0.30.0: did=2448 vid=8086 rid=A6 intl=0 ccru=4
0.31.0: did=3B07 vid=8086 rid=6 intl=0 ccru=1
0.31.2: did=3B2F vid=8086 rid=6 intl=10 ccru=6
	mem[0] = e091 8
	mem[1] = e081 4
	mem[2] = e071 8
	mem[3] = e061 4
	mem[4] = e021 32
	mem[5] = ed926000 2048
0.31.3: did=3B30 vid=8086 rid=6 intl=10 ccru=5
	mem[0] = ed925004 256
	mem[4] = e001 32
0.31.6: did=3B32 vid=8086 rid=6 intl=10 ccru=80
	mem[0] = ed924004 4096
10.0.0: did=422C vid=8086 rid=35 intl=10 ccru=80
	mem[0] = ed500004 8192
11.0.0: did=476 vid=1180 rid=BA intl=3 ccru=7
	mem[0] = ed403000 4096
11.0.1: did=832 vid=1180 rid=4 intl=3 ccru=0
	mem[0] = ed402000 2048
11.0.2: did=822 vid=1180 rid=21 intl=5 ccru=5
	mem[0] = ed401000 256
11.1.0: did=476 vid=1180 rid=B6 intl=5 ccru=7
	mem[0] = ed400000 4096
63.0.0: did=2C62 vid=8086 rid=2 intl=0 ccru=0
63.0.1: did=2D01 vid=8086 rid=2 intl=0 ccru=0
63.2.0: did=2D10 vid=8086 rid=2 intl=0 ccru=0
63.2.1: did=2D11 vid=8086 rid=2 intl=0 ccru=0
63.2.2: did=2D12 vid=8086 rid=2 intl=0 ccru=0
63.2.3: did=2D13 vid=8086 rid=2 intl=0 ccru=0
main->snarf
vga->snarf
igfx->snarf
+vgactlw type igfx
-vgactlw type igfx
igfx: dpauxio: dp a, cmd 9, addr 0, len 16: receive timeout
igfx: dpauxio: dp b, cmd 9, addr 0, len 16: receive timeout
igfx: dpauxio: dp c, cmd 9, addr 0, len 16: receive timeout
igfx: dpauxio: dp d, cmd 9, addr 0, len 16: receive timeout
vmf 0 vmdf 75000000 vf1 0 vbw 0
igfx->options
vga->init
igfx->init
igfx: display #1
main->load
+vgactlw type igfx
-vgactlw type igfx
vgactlr: look for addr
vgactlr: value p 0xd0000000 v 0xfffffe80d0000000 size 0x4000000
linear->addr p 0xd0000000 v 0xfffffe80d0000000 size 0x4000000
+vgactlw size 1024x768x32 x8r8g8b8
-vgactlw size 1024x768x32 x8r8g8b8
sequencer->enter off
sequencer->leave off
vga->load
igfx->load
sequencer->enter on
sequencer->leave on
+vgactlw drawinit
-vgactlw drawinit
+vgactlw hwgc igfxhwgc
-vgactlw hwgc igfxhwgc
main->exits
pcicfginit
0.0.0: did=44 vid=8086 rid=2 intl=0 ccru=0
0.2.0: did=46 vid=8086 rid=2 intl=11 ccru=0
	mem[0] = e0000004 4194304
	mem[2] = d000000c 268435456
	mem[4] = e0b1 8
0.25.0: did=10EA vid=8086 rid=6 intl=5 ccru=0
	mem[0] = ed900000 131072
	mem[1] = ed929000 4096
	mem[2] = e041 32
0.26.0: did=3B3C vid=8086 rid=6 intl=11 ccru=3
	mem[0] = ed928000 1024
0.27.0: did=3B56 vid=8086 rid=6 intl=3 ccru=3
	mem[0] = ed920004 16384
0.28.0: did=3B42 vid=8086 rid=6 intl=11 ccru=4
0.28.1: did=3B44 vid=8086 rid=6 intl=11 ccru=4
0.28.2: did=3B46 vid=8086 rid=6 intl=10 ccru=4
0.29.0: did=3B34 vid=8086 rid=6 intl=5 ccru=3
	mem[0] = ed927000 1024
0.30.0: did=2448 vid=8086 rid=A6 intl=0 ccru=4
0.31.0: did=3B07 vid=8086 rid=6 intl=0 ccru=1
0.31.2: did=3B2F vid=8086 rid=6 intl=10 ccru=6
	mem[0] = e091 8
	mem[1] = e081 4
	mem[2] = e071 8
	mem[3] = e061 4
	mem[4] = e021 32
	mem[5] = ed926000 2048
0.31.3: did=3B30 vid=8086 rid=6 intl=10 ccru=5
	mem[0] = ed925004 256
	mem[4] = e001 32
0.31.6: did=3B32 vid=8086 rid=6 intl=10 ccru=80
	mem[0] = ed924004 4096
10.0.0: did=422C vid=8086 rid=35 intl=10 ccru=80
	mem[0] = ed500004 8192
11.0.0: did=476 vid=1180 rid=BA intl=3 ccru=7
	mem[0] = ed403000 4096
11.0.1: did=832 vid=1180 rid=4 intl=3 ccru=0
	mem[0] = ed402000 2048
11.0.2: did=822 vid=1180 rid=21 intl=5 ccru=5
	mem[0] = ed401000 256
11.1.0: did=476 vid=1180 rid=B6 intl=5 ccru=7
	mem[0] = ed400000 4096
63.0.0: did=2C62 vid=8086 rid=2 intl=0 ccru=0
63.0.1: did=2D01 vid=8086 rid=2 intl=0 ccru=0
63.2.0: did=2D10 vid=8086 rid=2 intl=0 ccru=0
63.2.1: did=2D11 vid=8086 rid=2 intl=0 ccru=0
63.2.2: did=2D12 vid=8086 rid=2 intl=0 ccru=0
63.2.3: did=2D13 vid=8086 rid=2 intl=0 ccru=0
main->snarf
vga->snarf
igfx->snarf
+vgactlw type igfx
-vgactlw type igfx
igfx: dpauxio: dp a, cmd 9, addr 0, len 16: receive timeout
igfx: dpauxio: dp b, cmd 9, addr 0, len 16: receive timeout
igfx: dpauxio: dp c, cmd 9, addr 0, len 16: receive timeout
igfx: dpauxio: dp d, cmd 9, addr 0, len 16: receive timeout
vmf 0 vmdf 75000000 vf1 0 vbw 0
igfx->options
vga->init
igfx->init
igfx: display #1
main->load
+vgactlw type igfx
-vgactlw type igfx
vgactlr: look for addr
vgactlr: value p 0xd0000000 v 0xfffffe80d0000000 size 0x4000000
linear->addr p 0xd0000000 v 0xfffffe80d0000000 size 0x4000000
+vgactlw size 1024x768x32 x8r8g8b8
-vgactlw size 1024x768x32 x8r8g8b8
sequencer->enter off
sequencer->leave off
vga->load
igfx->load
sequencer->enter on
sequencer->leave on
+vgactlw drawinit
-vgactlw drawinit
+vgactlw hwgc igfxhwgc
-vgactlw hwgc igfxhwgc
main->exits


Sun May 15 12:33:06 EDT 2022
			  ━━━━━━━━━━━━━━━━━━━
			   PRAXIS MEETING #1

			     Edward Wilson
			  ━━━━━━━━━━━━━━━━━━━


Table of Contents
─────────────────

1.  Info
2.  Marking Boycott
3.  SU/NUS reaffiliation
4.  Action decisions
5.  Admin decisions
6.  Postscript


1 Info
══════

  Time: 3pm-4:20pm Date: 15.5.22 (Sunday) Location: Library floor 2,
  group study room.  Attendees: 5


2 Marking Boycott
═════════════════

  UCU are going ahead with the marking boycott.  Vote happened around the
  6th of may(?), boycott scheduled to start on the 23rd of May (8 days
  from now).

  *What is likely to happen*: The boycott goes ahead on the 23rd ->
  University has made a plan -> The University outsources marking.

  *But there are more possibilities*:
  1.  If the boycott does go ahead on the 23rd (most likely).
     1.  University ’does nothing’, boycott goes ahead.  Graduation
	(crucially in its administrative capacity) would be disrupted.
	University would get in trouble with rankings/Ofsted and some
	students maybe legally, things it cares a lot about.
     2.  University makes/has made a plan to combat the effects of the
	boycott (most likely).
	1.  The University outsources marking, either inter-department
	   (depends on departments, would be harder with, say, SPAH vs.
	   Law).  Or to an agency.
	2.  The University forecasts/predicts grades using some kind of
	   algorithm.

  2.  The boycott does not go ahead on the 23rd (least likely).
     1.  University concedes to all UCU demands attached to the boycott
	before the 23rd -> UCU calls off boycott.
     2.  The University concedes to some of UCU demands attached to the
	boycott before the 23rd (most likely) -> UCU calls off boycott.
     3.  The UCU calls off the boycott without winning any demands before
	the 23rd.

  *What should we do in these situations?*
  1.  If the boycott is called off as UCU has won some or all demands:
     Good!  Demonstrates the effectiveness of the boycott and, moreover,
     UCU has won some demands.
  2.  If the boycott goes ahead and the University either outsources or
     algorithmises as a solution: Bad!  Make the case to students that
     the university is fucking them over.  Argue against both outsourcing
     and algorithms.

  *In the meantime*:
  1.  Create some kind of communique to clarify the situation for
     students (The SU hasn’t put out much info, neither has the
     University, neither has the UCU; we can be first) “The University
     doesn’t have a plan!”.  Will include both up-to-date info and our
     position but also talks to students who aren’t totally on side.
  2.  Continue to think/strategise and bring thoughts to the next
     meeting.
  3.  Act as a ’touchstone’ between the students and the situation.  Keep
     students informed even if they’re not on-side.  Get ’middle’
     students on side by clarifying the situation, pushing the political
     point of it being in students’ interests too.


3 SU/NUS reaffiliation
══════════════════════

  K met with CEO of SU after the SU committee to reaffiliate.  CEO (Craig
  Stephens) not happy to reaffiliate, said we can participate in
  national struggles w/o being part of the NUS.  Usual arguments.

  Samira felt she lost b/c of support for strikes, we don’t agree.

  SU hasn’t technically got rid of its strike support motion, but
  basically a technicality.  SU seems (as usual), lost cause.


4 Action decisions
══════════════════

  1.  E: to create a ’communication’ to students outlining the
     possibilities with regard to the marking strike, as discussed in
     the session.  (Agreed by attendees).


5 Admin decisions
═════════════════

  1.  Next meeting schedules for next week, Sunday 22nd May at 3pm in the
     Library 2nd floor group study room.
  2.  Invite people who were at the meeting to the discord.
  3.  Agenda items for next week already submitted:
     1.  E: Marking Boycott cont’d (will be a day before its set to
	start).
     2.  K: Wyvern resurrection, place to put our statements and
	communications.
     3.  C: Production of leaflets with same point as the communication.


6 Postscript
════════════

  Thanks so much to everyone who turned up, and hopefully see you next
  week.


Sun May 15 12:33:05 EDT 2022
			  ━━━━━━━━━━━━━━━━━━━
			   PRAXIS MEETING #1

			     Edward Wilson
			  ━━━━━━━━━━━━━━━━━━━


Table of Contents
─────────────────

1.  Info
2.  Marking Boycott
3.  SU/NUS reaffiliation
4.  Action decisions
5.  Admin decisions
6.  Postscript


1 Info
══════

  Time: 3pm-4:20pm Date: 15.5.22 (Sunday) Location: Library floor 2,
  group study room.  Attendees: 5


2 Marking Boycott
═════════════════

  UCU are going ahead with the marking boycott.  Vote happened around the
  6th of may(?), boycott scheduled to start on the 23rd of May (8 days
  from now).

  *What is likely to happen*: The boycott goes ahead on the 23rd ->
  University has made a plan -> The University outsources marking.

  *But there are more possibilities*:
  1.  If the boycott does go ahead on the 23rd (most likely).
     1.  University ’does nothing’, boycott goes ahead.  Graduation
	(crucially in its administrative capacity) would be disrupted.
	University would get in trouble with rankings/Ofsted and some
	students maybe legally, things it cares a lot about.
     2.  University makes/has made a plan to combat the effects of the
	boycott (most likely).
	1.  The University outsources marking, either inter-department
	   (depends on departments, would be harder with, say, SPAH vs.
	   Law).  Or to an agency.
	2.  The University forecasts/predicts grades using some kind of
	   algorithm.

  2.  The boycott does not go ahead on the 23rd (least likely).
     1.  University concedes to all UCU demands attached to the boycott
	before the 23rd -> UCU calls off boycott.
     2.  The University concedes to some of UCU demands attached to the
	boycott before the 23rd (most likely) -> UCU calls off boycott.
     3.  The UCU calls off the boycott without winning any demands before
	the 23rd.

  *What should we do in these situations?*
  1.  If the boycott is called off as UCU has won some or all demands:
     Good!  Demonstrates the effectiveness of the boycott and, moreover,
     UCU has won some demands.
  2.  If the boycott goes ahead and the University either outsources or
     algorithmises as a solution: Bad!  Make the case to students that
     the university is fucking them over.  Argue against both outsourcing
     and algorithms.

  *In the meantime*:
  1.  Create some kind of communique to clarify the situation for
     students (The SU hasn’t put out much info, neither has the
     University, neither has the UCU; we can be first) “The University
     doesn’t have a plan!”.  Will include both up-to-date info and our
     position but also talks to students who aren’t totally on side.
  2.  Continue to think/strategise and bring thoughts to the next
     meeting.
  3.  Act as a ’touchstone’ between the students and the situation.  Keep
     students informed even if they’re not on-side.  Get ’middle’
     students on side by clarifying the situation, pushing the political
     point of it being in students’ interests too.


3 SU/NUS reaffiliation
══════════════════════

  K met with CEO of SU after the SU committee to reaffiliate.  CEO (Craig
  Stephens) not happy to reaffiliate, said we can participate in
  national struggles w/o being part of the NUS.  Usual arguments.

  Samira felt she lost b/c of support for strikes, we don’t agree.

  SU hasn’t technically got rid of its strike support motion, but
  basically a technicality.  SU seems (as usual), lost cause.


4 Action decisions
══════════════════

  1.  E: to create a ’communication’ to students outlining the
     possibilities with regard to the marking strike, as discussed in
     the session.  (Agreed by attendees).


5 Admin decisions
═════════════════

  1.  Next meeting schedules for next week, Sunday 22nd May at 3pm in the
     Library 2nd floor group study room.
  2.  Invite people who were at the meeting to the discord.
  3.  Agenda items for next week already submitted:
     1.  E: Marking Boycott cont’d (will be a day before its set to
	start).
     2.  K: Wyvern resurrection, place to put our statements and
	communications.
     3.  C: Production of leaflets with same point as the communication.


6 Postscript
════════════

  Thanks so much to everyone who turned up, and hopefully see you next
  week.


prev | next