commit: 2cc03eb01ea37c95618c935df5e32da26dd49195
parent 307c22e46d1a5613210ccb8e9b7ea5bcb0cc601a
Author: Michael Forney <mforney@mforney.org>
Date: Thu, 17 Oct 2019 21:44:27 -0700
openbsd: Update to 6.6
Diffstat:
9 files changed, 102 insertions(+), 107 deletions(-)
diff --git a/pkg/openbsd/fetch.sh b/pkg/openbsd/fetch.sh
@@ -29,6 +29,6 @@ zcat src.tar.gz | ${PAXREAD:-pax -r} -s ',^,src/,' \
'usr.bin/rsync/*' \
'usr.bin/yacc/*' \
'usr.sbin/acme-client/*'
-zcat sys.tar.gz | ${PAXREAD:-pax -r} -s ',^[^/]*,src,' './sys/sys/*'
+zcat sys.tar.gz | ${PAXREAD:-pax -r} -s ',^,src/,' 'sys/sys/*'
git apply -v --whitespace=nowarn --directory "$dir/src" patch/*
diff --git a/pkg/openbsd/gen.lua b/pkg/openbsd/gen.lua
@@ -41,7 +41,7 @@ sub('acme-client.ninja', function()
usr.sbin/acme-client/(
acctproc.c base64.c certproc.c chngproc.c dbg.c dnsproc.c
fileproc.c http.c jsmn.c json.c keyproc.c main.c netproc.c
- parse.tab.c.o revokeproc.c rsa.c util.c
+ parse.tab.c.o revokeproc.c key.c util.c
)
$builddir/pkg/libressl/libtls.a.d
]], {'pkg/libressl/headers'})
diff --git a/pkg/openbsd/patch/0016-doas-Port-to-linux-musl.patch b/pkg/openbsd/patch/0016-doas-Port-to-linux-musl.patch
@@ -1,4 +1,4 @@
-From 65238908e99eaffcc1c9d61d927a0f9443c82f05 Mon Sep 17 00:00:00 2001
+From a9958b98fd7e746f4da6df5b8e89507a5ac85dab Mon Sep 17 00:00:00 2001
From: Michael Forney <mforney@mforney.org>
Date: Sun, 26 Feb 2017 16:50:55 -0800
Subject: [PATCH] doas: Port to linux/musl
@@ -22,15 +22,15 @@ Replace calls to errc with err after setting errno.
Call openlog at start to set syslog identity.
---
usr.bin/doas/doas.1 | 9 ---
- usr.bin/doas/doas.c | 96 ++++++++++++++++-------------
+ usr.bin/doas/doas.c | 97 ++++++++++++++++--------------
usr.bin/doas/doas.h | 4 ++
usr.bin/doas/parse.y | 1 +
usr.bin/doas/persist.c | 133 +++++++++++++++++++++++++++++++++++++++++
- 5 files changed, 191 insertions(+), 52 deletions(-)
+ 5 files changed, 191 insertions(+), 53 deletions(-)
create mode 100644 usr.bin/doas/persist.c
diff --git a/usr.bin/doas/doas.1 b/usr.bin/doas/doas.1
-index d39c4aab2..3097991bc 100644
+index fc769bdb336..c7196e347a9 100644
--- a/usr.bin/doas/doas.1
+++ b/usr.bin/doas/doas.1
@@ -22,7 +22,6 @@
@@ -41,7 +41,7 @@ index d39c4aab2..3097991bc 100644
.Op Fl C Ar config
.Op Fl u Ar user
.Ar command
-@@ -42,14 +41,6 @@ is specified.
+@@ -67,14 +66,6 @@ The working directory is not changed.
.Pp
The options are as follows:
.Bl -tag -width tenletters
@@ -57,7 +57,7 @@ index d39c4aab2..3097991bc 100644
Parse and check the configuration file
.Ar config ,
diff --git a/usr.bin/doas/doas.c b/usr.bin/doas/doas.c
-index 116ac6f16..289d4fef4 100644
+index dfd8c8603bf..b2180a5f0e0 100644
--- a/usr.bin/doas/doas.c
+++ b/usr.bin/doas/doas.c
@@ -20,8 +20,6 @@
@@ -166,7 +166,7 @@ index 116ac6f16..289d4fef4 100644
close(fd);
}
}
-@@ -281,14 +298,13 @@ done:
+@@ -281,15 +298,14 @@ done:
int
main(int argc, char **argv)
{
@@ -176,14 +176,15 @@ index 116ac6f16..289d4fef4 100644
const char *confpath = NULL;
char *shargv[] = { NULL, NULL };
char *sh;
+ const char *p;
const char *cmd;
char cmdline[LINE_MAX];
-- char myname[_PW_NAME_LEN + 1];
-+ char myname[LOGIN_NAME_MAX + 1];
- struct passwd *pw;
+- char mypwbuf[_PW_BUF_LEN], targpwbuf[_PW_BUF_LEN];
++ char mypwbuf[1024], targpwbuf[1024];
+ struct passwd mypwstore, targpwstore;
+ struct passwd *mypw, *targpw;
const struct rule *rule;
- uid_t uid;
-@@ -300,28 +316,20 @@ main(int argc, char **argv)
+@@ -302,28 +318,20 @@ main(int argc, char **argv)
int nflag = 0;
char cwdpath[PATH_MAX];
const char *cwd;
@@ -220,9 +221,9 @@ index 116ac6f16..289d4fef4 100644
if (!permit(uid, groups, ngroups, &rule, target, cmd,
(const char **)argv + 1)) {
- syslog(LOG_AUTHPRIV | LOG_NOTICE,
-- "failed command for %s: %s", myname, cmdline);
+- "failed command for %s: %s", mypw->pw_name, cmdline);
- errc(1, EPERM, NULL);
-+ syslog(LOG_NOTICE, "failed command for %s: %s", myname, cmdline);
++ syslog(LOG_NOTICE, "failed command for %s: %s", mypw->pw_name, cmdline);
+ errno = EPERM;
+ err(1, NULL);
}
@@ -231,44 +232,45 @@ index 116ac6f16..289d4fef4 100644
if (nflag)
errx(1, "Authorization required");
-- authuser(myname, login_style, rule->options & PERSIST);
-+ authuser(myname, rule->options & PERSIST);
+- authuser(mypw->pw_name, login_style, rule->options & PERSIST);
++ authuser(mypw->pw_name, rule->options & PERSIST);
}
- if (unveil(_PATH_LOGIN_CONF, "r") == -1)
-@@ -419,10 +427,12 @@ main(int argc, char **argv)
- if (!pw)
+ if ((p = getenv("PATH")) != NULL)
+@@ -427,11 +435,12 @@ main(int argc, char **argv)
+ if (targpw == NULL)
errx(1, "no passwd entry for target");
-- if (setusercontext(NULL, pw, target, LOGIN_SETGROUP |
+- if (setusercontext(NULL, targpw, target, LOGIN_SETGROUP |
+- LOGIN_SETPATH |
- LOGIN_SETPRIORITY | LOGIN_SETRESOURCES | LOGIN_SETUMASK |
- LOGIN_SETUSER) != 0)
- errx(1, "failed to set user context for target");
-+ if (initgroups(pw->pw_name, pw->pw_gid) < 0)
++ if (initgroups(targpw->pw_name, targpw->pw_gid) < 0)
+ err(1, "initgroups");
-+ if (setgid(pw->pw_gid) < 0)
++ if (setgid(targpw->pw_gid) < 0)
+ err(1, "setgid");
-+ if (setuid(pw->pw_uid) < 0)
++ if (setuid(targpw->pw_uid) < 0)
+ err(1, "setuid");
if (pledge("stdio rpath exec", NULL) == -1)
err(1, "pledge");
-@@ -435,7 +445,7 @@ main(int argc, char **argv)
+@@ -444,7 +453,7 @@ main(int argc, char **argv)
if (pledge("stdio exec", NULL) == -1)
err(1, "pledge");
- syslog(LOG_AUTHPRIV | LOG_INFO, "%s ran command %s as %s from %s",
+ syslog(LOG_INFO, "%s ran command %s as %s from %s",
- myname, cmdline, pw->pw_name, cwd);
+ mypw->pw_name, cmdline, targpw->pw_name, cwd);
- envp = prepenv(rule);
+ envp = prepenv(rule, mypw, targpw);
diff --git a/usr.bin/doas/doas.h b/usr.bin/doas/doas.h
-index cbeb33994..b1a4c8199 100644
+index 6f50fc22869..c97986e3cf3 100644
--- a/usr.bin/doas/doas.h
+++ b/usr.bin/doas/doas.h
-@@ -31,6 +31,10 @@ extern int parse_errors;
-
- char **prepenv(const struct rule *);
+@@ -36,6 +36,10 @@ struct passwd;
+ char **prepenv(const struct rule *, const struct passwd *,
+ const struct passwd *);
+int openpersist(int *valid);
+int setpersist(int fd);
@@ -278,7 +280,7 @@ index cbeb33994..b1a4c8199 100644
#define DENY 2
diff --git a/usr.bin/doas/parse.y b/usr.bin/doas/parse.y
-index dd9466e5f..d1f698c76 100644
+index dd9466e5f13..d1f698c7679 100644
--- a/usr.bin/doas/parse.y
+++ b/usr.bin/doas/parse.y
@@ -19,6 +19,7 @@
@@ -291,7 +293,7 @@ index dd9466e5f..d1f698c76 100644
#include <stdio.h>
diff --git a/usr.bin/doas/persist.c b/usr.bin/doas/persist.c
new file mode 100644
-index 000000000..41fa74745
+index 00000000000..41fa747458b
--- /dev/null
+++ b/usr.bin/doas/persist.c
@@ -0,0 +1,133 @@
@@ -429,5 +431,5 @@ index 000000000..41fa74745
+ return 0;
+}
--
-2.21.0
+2.23.0
diff --git a/pkg/openbsd/patch/0026-rsync-Use-standard-S_ISVTX-instead-of-S_ISTXT.patch b/pkg/openbsd/patch/0026-rsync-Use-standard-S_ISVTX-instead-of-S_ISTXT.patch
@@ -1,4 +1,4 @@
-From 3de436f052626bc02b272e6eef65db5624ba22d1 Mon Sep 17 00:00:00 2001
+From b8ea0a7fc75f79d89f9f225da1112f477419d0bd Mon Sep 17 00:00:00 2001
From: Michael Forney <mforney@mforney.org>
Date: Fri, 14 Jun 2019 12:42:15 -0700
Subject: [PATCH] rsync: Use standard S_ISVTX instead of S_ISTXT
@@ -8,13 +8,13 @@ Subject: [PATCH] rsync: Use standard S_ISVTX instead of S_ISTXT
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/usr.bin/rsync/receiver.c b/usr.bin/rsync/receiver.c
-index c6d26cb0917..1ab080cb111 100644
+index 5ffd3458b74..51f9ddf6a5c 100644
--- a/usr.bin/rsync/receiver.c
+++ b/usr.bin/rsync/receiver.c
@@ -86,7 +86,7 @@ rsync_set_metadata(struct sess *sess, int newfile,
"to user.group: %u.%u", f->path, uid, gid);
} else
- LOG4(sess, "%s: updated uid and/or gid", f->path);
+ LOG4("%s: updated uid and/or gid", f->path);
- mode &= ~(S_ISTXT | S_ISUID | S_ISGID);
+ mode &= ~(S_ISVTX | S_ISUID | S_ISGID);
}
@@ -23,12 +23,12 @@ index c6d26cb0917..1ab080cb111 100644
@@ -147,7 +147,7 @@ rsync_set_metadata_at(struct sess *sess, int newfile, int rootfd,
"to user.group: %u.%u", f->path, uid, gid);
} else
- LOG4(sess, "%s: updated uid and/or gid", f->path);
+ LOG4("%s: updated uid and/or gid", f->path);
- mode &= ~(S_ISTXT | S_ISUID | S_ISGID);
+ mode &= ~(S_ISVTX | S_ISUID | S_ISGID);
}
/* Conditionally adjust file permissions. */
--
-2.22.0
+2.23.0
diff --git a/pkg/openbsd/patch/0028-rsync-Avoid-pointer-arithmetic-on-void.patch b/pkg/openbsd/patch/0028-rsync-Avoid-pointer-arithmetic-on-void.patch
@@ -1,52 +1,60 @@
-From 33c8f9c16352f016423b4f67ec851318506c17e3 Mon Sep 17 00:00:00 2001
+From bae6ab2cb50b4c5784dcd17207f145707c77f317 Mon Sep 17 00:00:00 2001
From: Michael Forney <mforney@mforney.org>
Date: Sat, 15 Jun 2019 20:06:13 -0700
Subject: [PATCH] rsync: Avoid pointer arithmetic on `void *`
---
- usr.bin/rsync/blocks.c | 6 +++---
+ usr.bin/rsync/blocks.c | 8 ++++----
usr.bin/rsync/downloader.c | 2 +-
usr.bin/rsync/io.c | 12 ++++++------
usr.bin/rsync/sender.c | 4 ++--
- usr.bin/rsync/uploader.c | 4 ++--
- 5 files changed, 14 insertions(+), 14 deletions(-)
+ 4 files changed, 13 insertions(+), 13 deletions(-)
diff --git a/usr.bin/rsync/blocks.c b/usr.bin/rsync/blocks.c
-index d02f4f40b4b..9c163600307 100644
+index 4f21a41833d..242590e5bae 100644
--- a/usr.bin/rsync/blocks.c
+++ b/usr.bin/rsync/blocks.c
-@@ -54,7 +54,7 @@ blk_find(struct sess *sess, const void *buf, off_t size, off_t offs,
- remain = size - offs;
- assert(remain);
- osz = remain < (off_t)blks->len ? remain : (off_t)blks->len;
-- fhash = hash_fast(buf + offs, (size_t)osz);
-+ fhash = hash_fast((char *)buf + offs, (size_t)osz);
- have_md = 0;
-
- /*
-@@ -65,7 +65,7 @@ blk_find(struct sess *sess, const void *buf, off_t size, off_t offs,
- if (hint < blks->blksz &&
- fhash == blks->blks[hint].chksum_short &&
- (size_t)osz == blks->blks[hint].len) {
-- hash_slow(buf + offs, (size_t)osz, md, sess);
-+ hash_slow((char *)buf + offs, (size_t)osz, md, sess);
+@@ -157,7 +157,7 @@ blk_find(struct sess *sess, struct blkstat *st,
+ if (!recomp) {
+ fhash = (st->s1 & 0xFFFF) | (st->s2 << 16);
+ } else {
+- fhash = hash_fast(st->map + st->offs, (size_t)osz);
++ fhash = hash_fast((char *)st->map + st->offs, (size_t)osz);
+ st->s1 = fhash & 0xFFFF;
+ st->s2 = fhash >> 16;
+ }
+@@ -170,7 +170,7 @@ blk_find(struct sess *sess, struct blkstat *st,
+ if (st->hint < blks->blksz &&
+ fhash == blks->blks[st->hint].chksum_short &&
+ (size_t)osz == blks->blks[st->hint].len) {
+- hash_slow(st->map + st->offs, (size_t)osz, md, sess);
++ hash_slow((char *)st->map + st->offs, (size_t)osz, md, sess);
have_md = 1;
- if (memcmp(md, blks->blks[hint].chksum_long, blks->csum) == 0) {
- LOG4(sess, "%s: found matching hinted match: "
-@@ -99,7 +99,7 @@ blk_find(struct sess *sess, const void *buf, off_t size, off_t offs,
- /* Compute slow hash on demand. */
+ if (memcmp(md, blks->blks[st->hint].chksum_long, blks->csum) == 0) {
+ LOG4("%s: found matching hinted match: "
+@@ -203,7 +203,7 @@ blk_find(struct sess *sess, struct blkstat *st,
+ (intmax_t)ent->blk->offs, ent->blk->len);
if (have_md == 0) {
-- hash_slow(buf + offs, (size_t)osz, md, sess);
-+ hash_slow((char *)buf + offs, (size_t)osz, md, sess);
+- hash_slow(st->map + st->offs, (size_t)osz, md, sess);
++ hash_slow((char *)st->map + st->offs, (size_t)osz, md, sess);
have_md = 1;
}
+@@ -221,7 +221,7 @@ blk_find(struct sess *sess, struct blkstat *st,
+ * block in the sequence.
+ */
+
+- map = st->map + st->offs;
++ map = (char *)st->map + st->offs;
+ st->s1 -= map[0];
+ st->s2 -= osz * map[0];
+
diff --git a/usr.bin/rsync/downloader.c b/usr.bin/rsync/downloader.c
-index 405f7623759..f47c895957d 100644
+index 9ddb8600a73..36b086f74c8 100644
--- a/usr.bin/rsync/downloader.c
+++ b/usr.bin/rsync/downloader.c
-@@ -497,7 +497,7 @@ again:
+@@ -495,7 +495,7 @@ again:
sz = tok == p->blk.blksz - 1 ? p->blk.rem : p->blk.len;
assert(sz);
assert(p->map != MAP_FAILED);
@@ -56,11 +64,11 @@ index 405f7623759..f47c895957d 100644
/*
* Now we read from our block.
diff --git a/usr.bin/rsync/io.c b/usr.bin/rsync/io.c
-index 0e451226d31..404e7bf4112 100644
+index 8d113d6d013..181458ced08 100644
--- a/usr.bin/rsync/io.c
+++ b/usr.bin/rsync/io.c
-@@ -117,7 +117,7 @@ io_write_blocking(struct sess *sess, int fd, const void *buf, size_t sz)
- ERRX(sess, "io_write_nonblocking: short write");
+@@ -117,7 +117,7 @@ io_write_blocking(int fd, const void *buf, size_t sz)
+ ERRX("io_write_nonblocking: short write");
return 0;
}
- buf += wsz;
@@ -77,8 +85,8 @@ index 0e451226d31..404e7bf4112 100644
}
return 1;
-@@ -252,7 +252,7 @@ io_read_blocking(struct sess *sess,
- ERRX(sess, "io_read_nonblocking: short read");
+@@ -250,7 +250,7 @@ io_read_blocking(int fd, void *buf, size_t sz)
+ ERRX("io_read_nonblocking: short read");
return 0;
}
- buf += rsz;
@@ -86,7 +94,7 @@ index 0e451226d31..404e7bf4112 100644
sz -= rsz;
}
-@@ -369,7 +369,7 @@ io_read_buf(struct sess *sess, int fd, void *buf, size_t sz)
+@@ -367,7 +367,7 @@ io_read_buf(struct sess *sess, int fd, void *buf, size_t sz)
}
sz -= rsz;
sess->mplex_read_remain -= rsz;
@@ -95,7 +103,7 @@ index 0e451226d31..404e7bf4112 100644
sess->total_read += rsz;
continue;
}
-@@ -465,7 +465,7 @@ io_buffer_buf(struct sess *sess, void *buf,
+@@ -463,7 +463,7 @@ io_buffer_buf(void *buf, size_t *bufpos, size_t buflen, const void *val,
{
assert(*bufpos + valsz <= buflen);
@@ -104,7 +112,7 @@ index 0e451226d31..404e7bf4112 100644
*bufpos += valsz;
}
-@@ -664,7 +664,7 @@ io_unbuffer_buf(struct sess *sess, const void *buf,
+@@ -661,7 +661,7 @@ io_unbuffer_buf(const void *buf, size_t *bufpos, size_t bufsz, void *val,
{
assert(*bufpos + valsz <= bufsz);
@@ -114,7 +122,7 @@ index 0e451226d31..404e7bf4112 100644
}
diff --git a/usr.bin/rsync/sender.c b/usr.bin/rsync/sender.c
-index ab7221a87d7..8b48ab7cc81 100644
+index 5f9850ee9d2..d6a1f55d1a9 100644
--- a/usr.bin/rsync/sender.c
+++ b/usr.bin/rsync/sender.c
@@ -128,7 +128,7 @@ send_up_fsm(struct sess *sess, size_t *phase,
@@ -126,30 +134,15 @@ index ab7221a87d7..8b48ab7cc81 100644
up->stat.curpos += sz;
if (up->stat.curpos == up->stat.curlen)
-@@ -568,7 +568,7 @@ rsync_sender(struct sess *sess, int fdin,
+@@ -569,7 +569,7 @@ rsync_sender(struct sess *sess, int fdin,
assert(pfd[2].fd == -1);
assert(wbufsz - wbufpos);
ssz = write(fdout,
- wbuf + wbufpos, wbufsz - wbufpos);
+ (char *)wbuf + wbufpos, wbufsz - wbufpos);
- if (ssz < 0) {
- ERR(sess, "write");
+ if (ssz == -1) {
+ ERR("write");
goto out;
-diff --git a/usr.bin/rsync/uploader.c b/usr.bin/rsync/uploader.c
-index 70aab10e6f5..c6e5ebf4d7a 100644
---- a/usr.bin/rsync/uploader.c
-+++ b/usr.bin/rsync/uploader.c
-@@ -158,8 +158,8 @@ init_blk(struct blk *p, const struct blkset *set, off_t offs,
- p->len = idx < set->blksz - 1 ? set->len : set->rem;
- p->offs = offs;
-
-- p->chksum_short = hash_fast(map + offs, p->len);
-- hash_slow(map + offs, p->len, p->chksum_long, sess);
-+ p->chksum_short = hash_fast((char *)map + offs, p->len);
-+ hash_slow((char *)map + offs, p->len, p->chksum_long, sess);
- }
-
- /*
--
-2.22.0
+2.23.0
diff --git a/pkg/openbsd/patch/0029-acme-client-Prevent-duplicate-definitions-of-global-.patch b/pkg/openbsd/patch/0029-acme-client-Prevent-duplicate-definitions-of-global-.patch
@@ -1,4 +1,4 @@
-From 6f080695f603d1a5f2ddb8c251c146cf9be59463 Mon Sep 17 00:00:00 2001
+From e4144832450feeb8cdf4baa310f0540b9b6d4f7c Mon Sep 17 00:00:00 2001
From: Michael Forney <mforney@mforney.org>
Date: Sat, 15 Jun 2019 20:20:36 -0700
Subject: [PATCH] acme-client: Prevent duplicate definitions of global
@@ -10,10 +10,10 @@ Subject: [PATCH] acme-client: Prevent duplicate definitions of global
2 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/usr.sbin/acme-client/extern.h b/usr.sbin/acme-client/extern.h
-index cf0abbdfb2c..1ea82ec0b8e 100644
+index 85a844f77f3..9ec48a08c4c 100644
--- a/usr.sbin/acme-client/extern.h
+++ b/usr.sbin/acme-client/extern.h
-@@ -253,12 +253,12 @@ char *json_fmt_signed(const char *,
+@@ -279,12 +279,12 @@ char *json_fmt_signed(const char *, const char *, const char *);
/*
* Should we print debugging messages?
*/
@@ -29,7 +29,7 @@ index cf0abbdfb2c..1ea82ec0b8e 100644
__END_DECLS
diff --git a/usr.sbin/acme-client/main.c b/usr.sbin/acme-client/main.c
-index bbedeb76357..d98d7560174 100644
+index 7cbeeb7de03..1f59e6c755d 100644
--- a/usr.sbin/acme-client/main.c
+++ b/usr.sbin/acme-client/main.c
@@ -32,6 +32,9 @@
@@ -42,7 +42,7 @@ index bbedeb76357..d98d7560174 100644
int
main(int argc, char *argv[])
{
-@@ -48,8 +51,6 @@ main(int argc, char *argv[])
+@@ -46,8 +49,6 @@ main(int argc, char *argv[])
int c, rc, revocate = 0;
int popts = 0;
pid_t pids[COMP__MAX];
@@ -52,5 +52,5 @@ index bbedeb76357..d98d7560174 100644
struct acme_conf *conf = NULL;
--
-2.22.0
+2.23.0
diff --git a/pkg/openbsd/sha256 b/pkg/openbsd/sha256
@@ -1,2 +1,2 @@
-0284a7286f580f5fb534b5a03a08a0e371e36cc96c11a71cc15372ce3932627d src.tar.gz
-84ccabb78c4c58914c1b88a114b9e0c4fcaf357df5df1d45aed68ad76e607db4 sys.tar.gz
+577094f72c6a0bc7e27944eed0d9d520dc5c7cb3245a9fbf7415b129b132543a src.tar.gz
+a1b19665989c02a2017a639d47a042f4fe7f584b6298727e982a5536020b832d sys.tar.gz
diff --git a/pkg/openbsd/url b/pkg/openbsd/url
@@ -1,5 +1,5 @@
remote-name
-url = "https://fastly.cdn.openbsd.org/pub/OpenBSD/6.5/src.tar.gz"
+url = "https://fastly.cdn.openbsd.org/pub/OpenBSD/6.6/src.tar.gz"
remote-name
-url = "https://fastly.cdn.openbsd.org/pub/OpenBSD/6.5/sys.tar.gz"
+url = "https://fastly.cdn.openbsd.org/pub/OpenBSD/6.6/sys.tar.gz"
diff --git a/pkg/openbsd/ver b/pkg/openbsd/ver
@@ -1 +1 @@
-6.5 r3
+6.6 r0