Re: [lang/go] remove mips64 support
On 24-06-24 17:35:07, Jeremie Courreges-Anglas wrote: > On Sun, Jun 23, 2024 at 01:56:44AM +1000, Joel Sing wrote: > > The openbsd/mips64 port is effectively unmaintainable. I've been > > trying to upstream the direct syscall to libc conversion for two > > years now: > > > > https://github.com/golang/go/issues/61546 > > > > Currently, I'm carrying a bunch of extra diffs in ports, I have > > limited working hardware to build/test on and when it was broken > > in ports for multiple months, no one seemed to notice. > > > > I think it's time to simply give up. > > No opinion on that. Kudos for trying! > > > The below removes mips64 from GO_ARCHS, along with armv7 which > > seems like it should not be there. > > Looks correct, arch-defines.mk talks about MACHINE_ARCH which should > be "arm" according to arch/arm/include/param.h. I can't verify this > on a live system though. > > > Remove mips64 from the > > lang/go Makefile and sort the MACHINE_ARCH handling list. > > Do the same in go.port.mk, however add riscv64 (neither mips64 > > or riscv64 were there - not sure what the impact was). > > No idea either. I added this on top of the previous riscv64 bulk > build, and it didn't magically fix the go ports that fail. Not very > surprising, AFAIK the problem with most/all of those ports lies within > module deps that are too old to know about openbsd/riscv64. In the > unlikely event of a regression on riscv64, we can fix it up. If you have a list of failures I'm happy to take a look. I sent out diffs for go.port.mk some time ago that made it easy to patch/fix these kinds of issues, however was unable to get any traction on it. > > P.S. I'll deal with the removal of mips64 specific patches in the > > upcoming Go 1.23 bump. > > You also should remove the mips64 bootstraps from distinfo, as dpb(1) > would error out trying to download them. Except for this, LGTM. Fixed, thanks.
[lang/go] remove mips64 support
The openbsd/mips64 port is effectively unmaintainable. I've been trying to upstream the direct syscall to libc conversion for two years now: https://github.com/golang/go/issues/61546 Currently, I'm carrying a bunch of extra diffs in ports, I have limited working hardware to build/test on and when it was broken in ports for multiple months, no one seemed to notice. I think it's time to simply give up. The below removes mips64 from GO_ARCHS, along with armv7 which seems like it should not be there. Remove mips64 from the lang/go Makefile and sort the MACHINE_ARCH handling list. Do the same in go.port.mk, however add riscv64 (neither mips64 or riscv64 were there - not sure what the impact was). ok? P.S. I'll deal with the removal of mips64 specific patches in the upcoming Go 1.23 bump. Index: infrastructure/mk/arch-defines.mk === RCS file: /cvs/ports/infrastructure/mk/arch-defines.mk,v diff -u -p -r1.106 arch-defines.mk --- infrastructure/mk/arch-defines.mk 16 May 2024 11:04:44 - 1.106 +++ infrastructure/mk/arch-defines.mk 22 Jun 2024 15:38:10 - @@ -24,7 +24,7 @@ GCC4_ARCHS = alpha hppa sh sparc64 GCC3_ARCHS = m88k # arches where certain ports are available MONO_ARCHS = aarch64 amd64 i386 -GO_ARCHS = aarch64 amd64 arm armv7 i386 mips64 riscv64 +GO_ARCHS = aarch64 amd64 arm i386 riscv64 LUAJIT_ARCHS = aarch64 arm amd64 i386 powerpc RUST_ARCHS = aarch64 amd64 i386 powerpc64 riscv64 sparc64 # arch-specific features that ocaml ports need to know about Index: lang/go/Makefile === RCS file: /cvs/ports/lang/go/Makefile,v diff -u -p -r1.151 Makefile --- lang/go/Makefile22 Jun 2024 12:43:03 - 1.151 +++ lang/go/Makefile22 Jun 2024 15:38:10 - @@ -1,6 +1,6 @@ ONLY_FOR_ARCHS = ${GO_ARCHS} -BIN_BOOTSTRAP_GOARCHS =386 amd64 arm arm64 mips64 riscv64 +BIN_BOOTSTRAP_GOARCHS =386 amd64 arm arm64 riscv64 BIN_BOOTSTRAP_VERSION = 1.20.4 COMMENT = Go programming language @@ -46,16 +46,14 @@ GOROOT =${PREFIX}/go GOROOT_BOOTSTRAP = # sync with go.port.mk -.if ${MACHINE_ARCH} == "amd64" +.if ${MACHINE_ARCH} == "aarch64" +GOARCH = arm64 +.elif ${MACHINE_ARCH} == "amd64" GOARCH = amd64 .elif ${MACHINE_ARCH} == "arm" GOARCH = arm -.elif ${MACHINE_ARCH} == "aarch64" -GOARCH = arm64 .elif ${MACHINE_ARCH} == "i386" GOARCH = 386 -.elif ${MACHINE_ARCH} == "mips64" -GOARCH = mips64 .elif ${MACHINE_ARCH} == "riscv64" GOARCH = riscv64 .endif Index: lang/go/go.port.mk === RCS file: /cvs/ports/lang/go/go.port.mk,v diff -u -p -r1.73 go.port.mk --- lang/go/go.port.mk 22 Jun 2024 14:01:40 - 1.73 +++ lang/go/go.port.mk 22 Jun 2024 15:38:10 - @@ -23,14 +23,16 @@ _subst := ${_subst}:S/${l:U}/!$l/g BUILD_DEPENDS += ${MODGO_BUILD_DEPENDS} .endif -.if ${MACHINE_ARCH} == "amd64" +.if ${MACHINE_ARCH} == "aarch64" +_GOARCH = arm64 +.elif ${MACHINE_ARCH} == "amd64" _GOARCH = amd64 .elif ${MACHINE_ARCH} == "arm" _GOARCH = arm -.elif ${MACHINE_ARCH} == "aarch64" -_GOARCH = arm64 .elif ${MACHINE_ARCH} == "i386" _GOARCH = 386 +.elif ${MACHINE_ARCH} == "riscv64" +_GOARCH = riscv64 .endif MODGO_PACKAGE_PATH = ${PREFIX}/go-pkg
Re: [update] lang/go to 1.22.4; add missed syscall.EBADMSG
On 24-06-07 15:34:38, Kirill A. Korinsky wrote: > On Fri, 07 Jun 2024 12:11:44 +0100, > Stuart Henderson wrote: > > > > On 2024/06/07 01:04, Kirill A. Korinsky wrote: > > > I also included trivial patches to add missed syscall.EBADMSG on 386, > > > amd64 > > > and arm which allows to remove dozen of patches from port tree. > > > > slight exaggeration... 7 patches in docker-compose and 7 in > > docker-buildx, all because of github.com/tonistiigi/fsutil. > > > > just a bit, but it it still dozen of patches. > > > afaik they're meant to be getting these from golang.org/x/sys/unix > > (where EBADMSG *is* present for all OpenBSD platforms) rather than > > go itself anyway? > > I've already tried it and discovered an issue that x/sys/unix isn't > available on windows that is expected, but syscall.EBADMSG is available on > windows. My approach to replace it in fsutil fails on CI [1]. syscall.EBADMSG is one of the few cases where it still makes sense to use the syscall package (since it is - or should be - abstracted and available for all GOOS/GOARCH).
Re: [update] lang/go to 1.22.4; add missed syscall.EBADMSG
Hi Kirill, On 24-06-07 01:04:29, Kirill A. Korinsky wrote: > Here an update for lang/go to 1.22.4, changelog: > > go1.22.4 (released 2024-06-04) includes security fixes to the archive/zip > and net/netip packages, as well as bug fixes to the compiler, the go > command, the linker, the runtime, and the os package. See the Go 1.22.4 > milestone on our issue tracker for details. > > I also included trivial patches to add missed syscall.EBADMSG on 386, amd64 > and arm which allows to remove dozen of patches from port tree. This specific inconsistency should be fixed upstream instead - this will be in Go 1.23 (386, amd64 and arm were the first of the OpenBSD Go ports, at which point EBADMSG was not in our system headers, sames goes for ENOTRECOVERABLE, EOWNERDEAD and EPROTO, which I've also fixed): https://go-review.googlesource.com/c/go/+/592795 Given that this is limited to two ports (which are already patched) I'm not convinced it is worth carrying a diff in the Go port. Rather, they can be removed when Go 1.23 lands. Cheers, Joel
Re: Update to go-1.21.3
On 23-10-13 20:05:35, Daniel Jakots wrote: > Hey, > > > go1.21.2 (released 2023-10-05) includes one security fixes to the > > cmd/go package, as well as bug fixes to the compiler, the go command, > > the linker, the runtime, and the runtime/metrics package. See the Go > > 1.21.2 milestone on our issue tracker for details. > > > > go1.21.3 (released 2023-10-10) includes a security fix to the > > net/http package. See the Go 1.21.3 milestone on our issue tracker > > for details. > > Here's a diff to update it to 1.21.3. All tests passed on amd64. I > don't have access to other arches so make test on them are welcomed. > > Comments? OK? Thanks. I've already got an identical diff which I'll land as soon as I finish further testing (likely tomorrow). > Index: Makefile > === > RCS file: /cvs/ports/lang/go/Makefile,v > retrieving revision 1.140 > diff -u -p -r1.140 Makefile > --- Makefile 19 Sep 2023 17:32:05 - 1.140 > +++ Makefile 14 Oct 2023 00:04:02 - > @@ -7,7 +7,7 @@ COMMENT = Go programming language > > # increment _MODGO_SYSTEM_VERSION in go.port.mk after updating to a new > # version, to trigger updates of go-compiled ports > -VERSION =1.21.1 > +VERSION =1.21.3 > DISTNAME = go${VERSION}.src > PKGNAME =go-${VERSION} > PKGSPEC =${FULLPKGNAME:S/go-/go-=/} > Index: distinfo > === > RCS file: /cvs/ports/lang/go/distinfo,v > retrieving revision 1.86 > diff -u -p -r1.86 distinfo > --- distinfo 8 Sep 2023 04:19:36 - 1.86 > +++ distinfo 14 Oct 2023 00:04:02 - > @@ -4,11 +4,11 @@ SHA256 (go-openbsd-arm-bootstrap-1.20.4. > SHA256 (go-openbsd-arm64-bootstrap-1.20.4.tar.gz) = > G3sZhx63D+QLEgbwU1+d3ECiVJjVrFD5RqD2/qutXmI= > SHA256 (go-openbsd-mips64-bootstrap-1.20.4.tar.gz) = > CaZYJ+pIQp+lp721Ox45Y8uqkbsygcfyDFxQsqabPIs= > SHA256 (go-openbsd-riscv64-bootstrap-1.20.4.tar.gz) = > lQv/8KPWi8U3yLG+k3xVDNRVzxa5rmPIIpJUDrwVo0o= > -SHA256 (go1.21.1.src.tar.gz) = v6Nr916aHpy725q8+dFwfkeb06B4gKiuNWTK7lcRy5k= > +SHA256 (go1.21.3.src.tar.gz) = GG8rb4yLcE5paCGwmrIEGlwe4T3LwxVqE63PdZMe5Ig= > SIZE (go-openbsd-386-bootstrap-1.20.4.tar.gz) = 100681343 > SIZE (go-openbsd-amd64-bootstrap-1.20.4.tar.gz) = 107075675 > SIZE (go-openbsd-arm-bootstrap-1.20.4.tar.gz) = 104680775 > SIZE (go-openbsd-arm64-bootstrap-1.20.4.tar.gz) = 102706601 > SIZE (go-openbsd-mips64-bootstrap-1.20.4.tar.gz) = 105352848 > SIZE (go-openbsd-riscv64-bootstrap-1.20.4.tar.gz) = 106167229 > -SIZE (go1.21.1.src.tar.gz) = 26974429 > +SIZE (go1.21.3.src.tar.gz) = 26976568 > cvs server: Diffing patches > Index: patches/patch-src_cmd_link_internal_ld_lib_go > === > RCS file: /cvs/ports/lang/go/patches/patch-src_cmd_link_internal_ld_lib_go,v > retrieving revision 1.21 > diff -u -p -r1.21 patch-src_cmd_link_internal_ld_lib_go > --- patches/patch-src_cmd_link_internal_ld_lib_go 8 Sep 2023 04:19:36 > - 1.21 > +++ patches/patch-src_cmd_link_internal_ld_lib_go 14 Oct 2023 00:04:02 > - > @@ -1,7 +1,7 @@ > Index: src/cmd/link/internal/ld/lib.go > --- src/cmd/link/internal/ld/lib.go.orig > +++ src/cmd/link/internal/ld/lib.go > -@@ -1424,6 +1424,7 @@ func (ctxt *Link) hostlink() { > +@@ -1428,6 +1428,7 @@ func (ctxt *Link) hostlink() { > } > case objabi.Hopenbsd: > argv = append(argv, "-Wl,-nopie") > cvs server: Diffing pkg > Index: pkg/PLIST > === > RCS file: /cvs/ports/lang/go/pkg/PLIST,v > retrieving revision 1.71 > diff -u -p -r1.71 PLIST > --- pkg/PLIST 8 Sep 2023 04:19:37 - 1.71 > +++ pkg/PLIST 14 Oct 2023 00:04:03 - > @@ -609,6 +609,7 @@ go/src/cmd/cgo/internal/testerrors/testd > go/src/cmd/cgo/internal/testerrors/testdata/err1.go > go/src/cmd/cgo/internal/testerrors/testdata/err2.go > go/src/cmd/cgo/internal/testerrors/testdata/err4.go > +go/src/cmd/cgo/internal/testerrors/testdata/err5.go > go/src/cmd/cgo/internal/testerrors/testdata/issue11097a.go > go/src/cmd/cgo/internal/testerrors/testdata/issue11097b.go > go/src/cmd/cgo/internal/testerrors/testdata/issue14669.go > @@ -723,6 +724,9 @@ go/src/cmd/cgo/internal/testplugin/testd > go/src/cmd/cgo/internal/testplugin/testdata/issue53989/p/ > go/src/cmd/cgo/internal/testplugin/testdata/issue53989/p/p.go > go/src/cmd/cgo/internal/testplugin/testdata/issue53989/plugin.go > +go/src/cmd/cgo/internal/testplugin/testdata/issue62430/ > +go/src/cmd/cgo/internal/testplugin/testdata/issue62430/main.go > +go/src/cmd/cgo/internal/testplugin/testdata/issue62430/plugin.go > go/src/cmd/cgo/internal/testplugin/testdata/mangle/ > go/src/cmd/cgo/internal/testplugin/testdata/mangle/plugin.go > go/src/cmd/cgo/internal/testplugin/testdata/method/ > @@ -5362,7 +5366,7 @@ go/src/debug/
Re: net/ngtcp2 with GnuTLS support
On 23-03-21 11:49:19, A Tammy wrote: > On 3/21/23 11:28, Stuart Henderson wrote: > > On 2023/03/21 15:53, David Vasek wrote: > >> On 2023-03-21 15:32, A Tammy wrote: > >>> On 3/21/23 08:26, David Vasek wrote: > Hello, > > more apps start using QUIC with GnuTLS. Port net/ngtcp2 can support > > Any specific examples of software doing this? I'm not sure I understand the actual end goal here - what functionality does this provide that does not already exist? > GnuTLS in a subpackage with no change in the main package. However, > security/gnutls is needed for building the port with this diff and > as a > dependency for the new subpackage net/ngtcp2-gnutls. I have also > changed > the package description, but didn't touch the style of the > Makefile yet. > REVISON's of both subpackages set to he same value. Tested on amd64 so > far. > >>> A lot of packages will automatically pick this up. This needs to be > >>> turned on with care. > >> It shouldn't pick anything automatically. The main package ngtcp2 will > >> remain > >> the same as before *), while the new subpackage ngtcp2-gnutls still needs > >> to be > >> explicitly requested. > > In a bulk build, ports are built in parallel and packages are installed > > and uninstalled all the time. > > > > If another port will pick this up _if present at configure/build time_, > > it must either be listed as a dependency or expicitly disabled (via > > configure arguments, env vars, patches or whatever). > > > > (Additionally, I think that we will want to be sure that if *both* > > crypto helpers are installed, the one using libressl as backend is > > preferred where possible). > > Yes, e.g. I know that net/knot prefers the gnutls one over the openssl one. > > I prefer to use knot with openssl, but its just a preference, am open to > moving to gnutls. > > iirc curl also has some tie ins with ngtcp2, tb@ and jsing@ (cc'd) would > know more. > > > > >> The only nuisance seems to be that there is additional dependency for > >> building > >> this port. > >> > >> *) With the exception of the time stamps, therefore I've set both > >> REVISIONs to 1. > > The PKGPATH changes, so additionally it needs "@pkgpath net/ngtcp2" in > > PLIST-main otherwise updates will fail, also any ports depending on > > it need a revision bump. > > > > +LIB_DEPENDS-gnutls=${BASE_PKGPATH},-main security/gnutls > > +CONFIGURE_ARGS+= --with-openssl --with-gnutls > > > > break the two entries in these out onto separate lines. > >
Re: remove a few go libraries leaf ports
On 23-02-02 10:08:54, Omar Polo wrote: > On 2023/02/02 20:00:44 +1100, Joel Sing wrote: > > On 23-02-02 09:35:32, Omar Polo wrote: > > > These are a few ports that have no reverse deps (outside themselves) > > > and that don't provide any binary, only the go code, and thus quite > > > useless. nowadays a go port would just use the modules if depends on > > > these. > > > > > > - devel/go-sys > > > - security/go-crypto > > > - security/go-ed25519 > > > - security/go-siphash > > > > > > textproc/go-text could go as well but since it provides bin/colcmp > > > maybe someone uses it? (not that it couldn't be replaced with a > > > proper -updated- port...) > > > > Thanks - I believe the list is actually larger, from when I last looked > > at this: > > I already took care of some of them. These were just removed: > > > - devel/go-goptlib > > - net/go-net > > and this updated last week to use modules > > > - devel/go-tools > > (gopls was moved to its own port.) Ah, excellent. Thanks. > so only these remains :) > > I'm happy to remove textproc/go-text too, if anyone is using colcmp it > would be easy to re-add as standalone port. Please go ahead and remove textproc/go-text as well. > > - devel/go-sys > > - security/go-crypto > > - security/go-ed25519 > > - security/go-siphash > > - textproc/go-text > > > > All of these are seriously dated and if anyone uses binaries from these > > they're likely using 'go install'. And if someone wants it packaged then > > it needs to be updated (and sufficiently maintained), in which case it > > will use modules and hence not the current deps. > > > > I can't comment on the exact process, but I'm very much ok with removing > > all of these, if you could add them to the list.
Re: remove a few go libraries leaf ports
On 23-02-02 09:35:32, Omar Polo wrote: > These are a few ports that have no reverse deps (outside themselves) > and that don't provide any binary, only the go code, and thus quite > useless. nowadays a go port would just use the modules if depends on > these. > > - devel/go-sys > - security/go-crypto > - security/go-ed25519 > - security/go-siphash > > textproc/go-text could go as well but since it provides bin/colcmp > maybe someone uses it? (not that it couldn't be replaced with a > proper -updated- port...) Thanks - I believe the list is actually larger, from when I last looked at this: - devel/go-goptlib - devel/go-sys - devel/go-tools - net/go-net - security/go-crypto - security/go-ed25519 - security/go-siphash - textproc/go-text All of these are seriously dated and if anyone uses binaries from these they're likely using 'go install'. And if someone wants it packaged then it needs to be updated (and sufficiently maintained), in which case it will use modules and hence not the current deps. I can't comment on the exact process, but I'm very much ok with removing all of these, if you could add them to the list. > (+cc relevant maintainers) > > cvs rm excluded for brevity. > > Index: Makefile > === > RCS file: /cvs/ports/devel/quirks/Makefile,v > retrieving revision 1.1483 > diff -u -p -r1.1483 Makefile > --- Makefile 2 Feb 2023 07:57:42 - 1.1483 > +++ Makefile 2 Feb 2023 08:28:57 - > @@ -3,7 +3,7 @@ CATEGORIES = devel databases > DISTFILES = > > # API.rev > -PKGNAME =quirks-6.99 > +PKGNAME =quirks-6.100 > PKG_ARCH = * > MAINTAINER = Marc Espie > > Index: files/Quirks.pm > === > RCS file: /cvs/ports/devel/quirks/files/Quirks.pm,v > retrieving revision 1.1494 > diff -u -p -r1.1494 Quirks.pm > --- files/Quirks.pm 2 Feb 2023 07:57:42 - 1.1494 > +++ files/Quirks.pm 2 Feb 2023 08:28:58 - > @@ -1782,6 +1782,10 @@ setup_obsolete_reason( > 3 => 'gotweb', > 6 => 'go-net', > 6 => 'go-goptlib', > + 6 => 'go-sys', > + 6 => 'go-crypto', > + 6 => 'go-ed25519', > + 6 => 'go-siphash', > ); > > # though it's not yet used, these should be pkgnames, so that eventually
Re: go syscall/error/ioctl numbers etc.
On 22-12-19 00:49:53, Joel Sing wrote: > On 22-12-15 13:15:58, Stuart Henderson wrote: > > golang.org/x/sys/unix/zerrors_openbsd_* and friends are seriously out > > of date on some archs; zerrors for 386 must have been generated on > > openbsd 5.7 or earlier; arm and amd64 somewhere between 5.8 and 6.0. > > (I bumped into this trying to build something which wants O_CLOEXEC > > but fails on i386). > > > > How can we go about getting these updated upstream so that there's a > > chance they'll eventually trickle down to projects using vendored copies? > > Thanks - I'll look at respinning and upstreaming them in the coming weeks. This has been done: https://go-review.googlesource.com/c/sys/+/459499 > > Here are diffs against the current files for i386 to give an example of > > how far they've diverged. > > > > I have updated files for i386/amd64 and will soon have them for aarch64 > > if they're any use...
Re: go syscall/error/ioctl numbers etc.
On 22-12-15 13:15:58, Stuart Henderson wrote: > golang.org/x/sys/unix/zerrors_openbsd_* and friends are seriously out > of date on some archs; zerrors for 386 must have been generated on > openbsd 5.7 or earlier; arm and amd64 somewhere between 5.8 and 6.0. > (I bumped into this trying to build something which wants O_CLOEXEC > but fails on i386). > > How can we go about getting these updated upstream so that there's a > chance they'll eventually trickle down to projects using vendored copies? Thanks - I'll look at respinning and upstreaming them in the coming weeks. > Here are diffs against the current files for i386 to give an example of > how far they've diverged. > > I have updated files for i386/amd64 and will soon have them for aarch64 > if they're any use...
Re: Update to go-1.18.3
On 22-06-12 11:07:49, Daniel Jakots wrote: > Hi, > > Now that visa's patch [1] is in, I'm sending this update as make test > passes on amd64. > > > go1.18.3 (released 2022-06-01) includes security fixes to the > > crypto/rand, crypto/tls, os/exec, and path/filepath packages, as well > > as bug fixes to the compiler, and the crypto/tls and > > text/template/parse packages. > > https://github.com/golang/go/issues?q=milestone%3AGo1.18.3+label%3ACherryPickApproved > > abieber mentioned https://github.com/golang/go/issues/52814 may warrant > the rebuild of all our ports. If we want to go that route, I can > provide a diff to REVISION bump them. I highly doubt that this is justified - it is at best a minor information leak for clients that are performing TLSv1.3 with PSK session resumption, using a ticket that the Go TLS server previously provided to them (RFC 8446 section 4.2.11.1 details the impact). > [1]: > https://github.com/openbsd/src/commit/a26b930e92d7c8b0f65a8bb58d831bb5db99b57f > > > Comments? OK? ok jsing@ > Index: Makefile > === > RCS file: /cvs/ports/lang/go/Makefile,v > retrieving revision 1.111 > diff -u -p -r1.111 Makefile > --- Makefile 17 May 2022 02:10:06 - 1.111 > +++ Makefile 12 Jun 2022 14:59:07 - > @@ -5,7 +5,7 @@ BIN_BOOTSTRAP_VERSION = 1.16 > > COMMENT =Go programming language > > -VERSION =1.18.2 > +VERSION =1.18.3 > DISTNAME = go${VERSION}.src > PKGNAME =go-${VERSION} > PKGSPEC =${FULLPKGNAME:S/go-/go-=/} > Index: distinfo > === > RCS file: /cvs/ports/lang/go/distinfo,v > retrieving revision 1.71 > diff -u -p -r1.71 distinfo > --- distinfo 17 May 2022 02:10:06 - 1.71 > +++ distinfo 12 Jun 2022 14:59:07 - > @@ -2,9 +2,9 @@ SHA256 (go-openbsd-386-bootstrap-1.16.ta > SHA256 (go-openbsd-arm-bootstrap-1.16.tar.gz) = > DjjCEzU/FnndIrKC8gh5PKAZkKp9Lt49aT3XPqhEWNM= > SHA256 (go-openbsd-arm64-bootstrap-1.16.tar.gz) = > qqc/TtaBfoq5oJcOHoqNZ6+bO+OOIRZoW1zlj19uBVw= > SHA256 (go-openbsd-mips64-bootstrap-1.16.tar.gz) = > dwojdjHgxrLlKC8QbseRYnOf8s/wN/Wx+UkPhH2aeJY= > -SHA256 (go1.18.2.src.tar.gz) = LETQPqLDQJITerkZumAvLCYaA40I60aFKKPzoo5WZ+I= > +SHA256 (go1.18.3.src.tar.gz) = ABI4bdy7XzNQ5AfGeZI4EdvSg/zcQhckkxYUqELsvC0= > SIZE (go-openbsd-386-bootstrap-1.16.tar.gz) = 131493298 > SIZE (go-openbsd-arm-bootstrap-1.16.tar.gz) = 128073881 > SIZE (go-openbsd-arm64-bootstrap-1.16.tar.gz) = 126892240 > SIZE (go-openbsd-mips64-bootstrap-1.16.tar.gz) = 129935270 > -SIZE (go1.18.2.src.tar.gz) = 22837686 > +SIZE (go1.18.3.src.tar.gz) = 22838104 > cvs server: Diffing patches > cvs server: Diffing pkg > Index: pkg/PLIST > === > RCS file: /cvs/ports/lang/go/pkg/PLIST,v > retrieving revision 1.59 > diff -u -p -r1.59 PLIST > --- pkg/PLIST 17 May 2022 02:10:06 - 1.59 > +++ pkg/PLIST 12 Jun 2022 14:59:08 - > @@ -12025,6 +12025,10 @@ go/test/fixedbugs/issue51531.go > go/test/fixedbugs/issue5162.go > go/test/fixedbugs/issue5172.go > go/test/fixedbugs/issue51839.go > +go/test/fixedbugs/issue52279.dir/ > +go/test/fixedbugs/issue52279.dir/lib.go > +go/test/fixedbugs/issue52279.dir/main.go > +go/test/fixedbugs/issue52279.go > go/test/fixedbugs/issue5231.go > go/test/fixedbugs/issue52438.go > go/test/fixedbugs/issue5244.go > @@ -12964,12 +12968,14 @@ go/test/typeparam/issue51836.dir/a.go > go/test/typeparam/issue51836.dir/aa.go > go/test/typeparam/issue51836.dir/p.go > go/test/typeparam/issue51836.go > +go/test/typeparam/issue51840.go > go/test/typeparam/issue52026.go > go/test/typeparam/issue52117.dir/ > go/test/typeparam/issue52117.dir/a.go > go/test/typeparam/issue52117.dir/b.go > go/test/typeparam/issue52117.go > go/test/typeparam/issue52228.go > +go/test/typeparam/issue52241.go > go/test/typeparam/list.go > go/test/typeparam/list2.go > go/test/typeparam/listimp.dir/
Re: Update to go-1.18.2
On 22-05-16 07:21:12, Daniel Jakots wrote: > Here's a patch for go-1.18.2 > > > go1.18.2 (released 2022-05-10) includes security fixes to the syscall > > package, as well as bug fixes to the compiler, runtime, the go > > command, and the crypto/x509, go/types, net/http/httptest, reflect, > > and sync/atomic packages. See the Go 1.18.2 milestone on our issue > > tracker for details. > https://github.com/golang/go/issues?q=milestone%3AGo1.18.2+label%3ACherryPickApproved > > > I looked at it on amd64 on it only, but it looked fine. I've also tested on arm64 and armv7. > Comments? OK? ok jsing@, with one PLIST fix noted below. > Index: Makefile > === > RCS file: /cvs/ports/lang/go/Makefile,v > retrieving revision 1.110 > diff -u -p -r1.110 Makefile > --- Makefile 26 Apr 2022 19:42:58 - 1.110 > +++ Makefile 16 May 2022 11:16:00 - > @@ -5,7 +5,7 @@ BIN_BOOTSTRAP_VERSION = 1.16 > > COMMENT =Go programming language > > -VERSION =1.18.1 > +VERSION =1.18.2 > DISTNAME = go${VERSION}.src > PKGNAME =go-${VERSION} > PKGSPEC =${FULLPKGNAME:S/go-/go-=/} > Index: distinfo > === > RCS file: /cvs/ports/lang/go/distinfo,v > retrieving revision 1.70 > diff -u -p -r1.70 distinfo > --- distinfo 26 Apr 2022 19:42:58 - 1.70 > +++ distinfo 16 May 2022 11:16:00 - > @@ -2,9 +2,9 @@ SHA256 (go-openbsd-386-bootstrap-1.16.ta > SHA256 (go-openbsd-arm-bootstrap-1.16.tar.gz) = > DjjCEzU/FnndIrKC8gh5PKAZkKp9Lt49aT3XPqhEWNM= > SHA256 (go-openbsd-arm64-bootstrap-1.16.tar.gz) = > qqc/TtaBfoq5oJcOHoqNZ6+bO+OOIRZoW1zlj19uBVw= > SHA256 (go-openbsd-mips64-bootstrap-1.16.tar.gz) = > dwojdjHgxrLlKC8QbseRYnOf8s/wN/Wx+UkPhH2aeJY= > -SHA256 (go1.18.1.src.tar.gz) = 79Q+DxQC4IO3OgPURLe2V2u0xTmsRiCLY6kWtprKQIg= > +SHA256 (go1.18.2.src.tar.gz) = LETQPqLDQJITerkZumAvLCYaA40I60aFKKPzoo5WZ+I= > SIZE (go-openbsd-386-bootstrap-1.16.tar.gz) = 131493298 > SIZE (go-openbsd-arm-bootstrap-1.16.tar.gz) = 128073881 > SIZE (go-openbsd-arm64-bootstrap-1.16.tar.gz) = 126892240 > SIZE (go-openbsd-mips64-bootstrap-1.16.tar.gz) = 129935270 > -SIZE (go1.18.1.src.tar.gz) = 22834149 > +SIZE (go1.18.2.src.tar.gz) = 22837686 > cvs server: Diffing patches > Index: patches/patch-src_cmd_go_internal_load_pkg_go > === > RCS file: /cvs/ports/lang/go/patches/patch-src_cmd_go_internal_load_pkg_go,v > retrieving revision 1.5 > diff -u -p -r1.5 patch-src_cmd_go_internal_load_pkg_go > --- patches/patch-src_cmd_go_internal_load_pkg_go 26 Apr 2022 19:42:58 > - 1.5 > +++ patches/patch-src_cmd_go_internal_load_pkg_go 16 May 2022 11:16:00 > - > @@ -1,7 +1,7 @@ > Index: src/cmd/go/internal/load/pkg.go > --- src/cmd/go/internal/load/pkg.go.orig > +++ src/cmd/go/internal/load/pkg.go > -@@ -2498,11 +2498,11 @@ func externalLinkingForced(p *Package) bool { > +@@ -2513,11 +2513,11 @@ func externalLinkingForced(p *Package) bool { > // Some targets must use external linking even inside GOROOT. > switch cfg.BuildContext.GOOS { > case "android": > cvs server: Diffing pkg > Index: pkg/PLIST > === > RCS file: /cvs/ports/lang/go/pkg/PLIST,v > retrieving revision 1.58 > diff -u -p -r1.58 PLIST > --- pkg/PLIST 26 Apr 2022 19:42:58 - 1.58 > +++ pkg/PLIST 16 May 2022 11:16:01 - > @@ -2246,6 +2246,7 @@ go/src/cmd/compile/internal/types2/testd > go/src/cmd/compile/internal/types2/testdata/fixedbugs/issue51593.go2 > go/src/cmd/compile/internal/types2/testdata/fixedbugs/issue51607.go2 > go/src/cmd/compile/internal/types2/testdata/fixedbugs/issue51658.go2 > +go/src/cmd/compile/internal/types2/testdata/fixedbugs/issue52529.go2 > go/src/cmd/compile/internal/types2/testdata/fixedbugs/issue6977.src > go/src/cmd/compile/internal/types2/testdata/manual.go2 > go/src/cmd/compile/internal/types2/testdata/spec/ > @@ -2877,6 +2878,7 @@ go/src/cmd/go/testdata/script/bug.txt > go/src/cmd/go/testdata/script/build_GOTMPDIR.txt > go/src/cmd/go/testdata/script/build_acl_windows.txt > go/src/cmd/go/testdata/script/build_arm.txt > +go/src/cmd/go/testdata/script/build_buildvcs_auto.txt > go/src/cmd/go/testdata/script/build_cache_arch_mode.txt > go/src/cmd/go/testdata/script/build_cache_compile.txt > go/src/cmd/go/testdata/script/build_cache_disabled.txt > @@ -3300,6 +3302,7 @@ go/src/cmd/go/testdata/script/mod_retrac > go/src/cmd/go/testdata/script/mod_retract_rename.txt > go/src/cmd/go/testdata/script/mod_retract_replace.txt > go/src/cmd/go/testdata/script/mod_retract_versions.txt > +go/src/cmd/go/testdata/script/mod_run_issue52331.txt > go/src/cmd/go/testdata/script/mod_run_nonmain.txt > go/src/cmd/go/testdata/script/mod_run_path.txt > go/src/cmd/go/testdata/script/mod_run_pkg_versio
Re: Update to go-1.18.1
On 22-04-25 20:33:44, Daniel Jakots wrote: > Hi, > > go1.18.1 was tagged shortly after 1.18. > > > go1.18.1 (released 2022-04-12) includes security fixes to the > > crypto/elliptic, crypto/x509, and encoding/pem packages, as well as > > bug fixes to the compiler, linker, runtime, the go command, vet, and > > the bytes, crypto/x509, and go/types packages. See the Go 1.18.1 > > milestone on our issue tracker for details. > https://github.com/golang/go/issues?q=milestone%3AGo1.18.1+label%3ACherryPickApproved > > Or more precisely: > $ git log go1.18..go1.18.1 --oneline > 0b0d2fe66d (tag: go1.18.1) [release-branch.go1.18] go1.18.1 > 84264fceca [release-branch.go1.18] encoding/pem: fix stack overflow in Decode > 9535031e32 [release-branch.go1.18] go/types: don't report errors for untyped > int shifts on Go < 1.13 > 2097b2d51b [release-branch.go1.18] go/types, types2: fix overlap test for > union termlist > c9b9a010eb [release-branch.go1.18] crypto/elliptic: tolerate zero-padded > scalars in generic P-256 > f92bfa440f [release-branch.go1.18] cmd/go: prevent panic in go work use > abb3f05524 [release-branch.go1.18] crypto/x509: only disable SHA-1 > verification for certificates > c6ba470316 [release-branch.go1.18] cmd/go: prevent go work use panic when > given a file > 30d9077a34 [release-branch.go1.18] crypto/x509: fix Certificate.Verify crash > 6412231192 [release-branch.go1.18] go/types, types2: preserve parent scope > when substituting receivers > 0bf8319883 [release-branch.go1.18] runtime: make static/dynamic startup > detection work with musl on ppc64le > 78b8b4a176 [release-branch.go1.18] cmd/compile: replace Type.OrigSym with > Type.OrigType > 6ebf676289 [release-branch.go1.18] all update vendored golang.org/x/tools > 69bc821a01 [release-branch.go1.18] cmd/compile/internal/importer: key tparams > by Package instead of pkgname > c258e9d07d [release-branch.go1.18] cmd/compile: fix panic with nested dead > hidden closures > d17c5731ba [release-branch.go1.18] cmd/go: avoid stamping VCS metadata in > test binaries > f4d55662d6 [release-branch.go1.18] cmd/compile: pointers to notinheap types > need their own shape > 290883a559 [release-branch.go1.18] cmd/link: mark unexported methods for > plugins > 39a8c8cf2e [release-branch.go1.18] cmd/compile: fix wrong dict param when > getting dict type > 9d738480d2 [release-branch.go1.18] go/types, types2: use correct underlying > type in union set computation > 32ff9b5de6 [release-branch.go1.18] crypto/x509: skip WSATRY_AGAIN errors when > dialing badssl.com subdomains > 8b0583a054 [release-branch.go1.18] bytes: restore old Trim/TrimLeft behavior > for nil > 677c6fe94c [release-branch.go1.18] runtime: call testenv.MustHaveCGO in a > couple of tests > > make package and make test are fine on amd64 > > Comments? OK? Thanks, I've already got a 1.18.1 update in the pipeline (just waiting on some tests to finish). Expect it to land soon. (as an aside, this appears to be missing a PLIST update)
Re: Slowing down for the release
On 22-03-24 16:43:28, Christian Weisgerber wrote: > It's time to start slowing down for the upcoming 7.1 release. > > There are no restrictions on the types of ports commits yet, but I > would like to ask everybody to keep the approaching release in mind > and to slowly wind down large ports work. > > As usual, I'm also imploring people to test snapshot packages so > bugs can be found and fixed before it is too late. It would be good to have Go 1.18 make release - if we're not able to do that, then we should update to 1.17.8.
Re: [update] lang/go to Go 1.17
On 21-08-25 23:13:37, Stuart Henderson wrote: > On 2021/08/24 16:13, Aaron Bieber wrote: > > On Wed, 25 Aug 2021 at 04:10:43 +1000, Joel Sing wrote: > > > The below diff updates lang/go to Go 1.17. > > > > > > Tested on amd64 and arm64, still need to retest on arm, i386 and mips64. > > > > > > ok? > > > > > > > Mini-bulk finished: > > > > Elapsed time=02:26:32 > > I=433 B=10 Q=0 T=105 F=0 !=1 > > E=net/termshark math/blas textproc/py-stemmer,python3 > > > > I was surprised by the termshark failure!: > > It did that with earlier go too, but the workaround in do-build was enough > before. If I roll back to 20210601, net/termshark builds fine with Go 1.17, so it appears to be something that has changed more recently, combined with Go 1.17. There is a new copy of pty_openbsd.go in a different package which is seemingly now triggering the issue - removing that file results in other problems :) > > github.com/pkg/term/termios > > github.com/gcla/termshark/v2/tty > > github.com/kr/pty > > # github.com/kr/pty > > > > ../../../../go/pkg/mod/github.com/creack/pty@v1.1.14/pty_openbsd.go:27:10: > > undefined: ptmget > > > > ../../../../go/pkg/mod/github.com/creack/pty@v1.1.14/pty_openbsd.go:28:34: > > undefined: ioctl_PTMGET > > *** Error 2 in net/termshark (Makefile:31 'do-build') > > *** Error 2 in net/termshark > > (/usr/ports/infrastructure/mk/bsd.port.mk:2943 > > '/tmp/pobj/termshark-2.2.0/build-amd64/.build_done': @cd /usr/po...) > > *** Error 2 in net/termshark > > (/usr/ports/infrastructure/mk/bsd.port.mk:2602 'build': > > @lock=termshark-2.2.0p1; export _LOCKS_HELD=" termshar...) > > ===> Exiting net/termshark with an error > > *** Error 1 in /usr/ports (infrastructure/mk/bsd.port.subdir.mk:137 > > 'build': @: ${echo_msg:=echo}; : ${target:=build}; for i in ; do eval...) > > >>> Ended at 1629838835.67 > > max_stuck=7.22/clean=0.61/patch=12.36/configure=4.54/build=289.29 > > Error: job failed with 512 on localhost at 1629838835 > > > > Everything else looks fine to me (I have been using a similar diff to test > > if > > the lazy module stuff changes portgen)! > > > > OK abieber@ if the other arches build :D
Re: Update to go-1.16.5
On 21-06-05 09:01:15, Daniel Jakots wrote: > Hi, > > > go1.16.5 (released 2021-06-03) includes security fixes to the > > archive/zip, math/big, net, and net/http/httputil packages, as well > > as bug fixes to the linker, the go command, and the net/http > > packagckage. > > https://golang.org/doc/devel/release#go1.16.minor > > More details can be found on the announce: > https://groups.google.com/g/golang-announce/c/RgCMkAEQjSI/m/r_EP-NlKBgAJ > > > The SetString and UnmarshalText methods of math/big.Rat may cause a > > panic or an unrecoverable fatal error if passed inputs with very large > > exponents. This is issue #45910 and CVE-2021-33198. > > > > ReverseProxy in net/http/httputil could be made to forward certain > > hop-by-hop headers, including Connection. In case the target of the > > ReverseProxy was itself a reverse proxy, this would let an attacker > > drop arbitrary headers, including those set by the > > ReverseProxy.Director. This is issue #46313 and CVE-2021-33197. > > > > The LookupCNAME, LookupSRV, LookupMX, LookupNS, and LookupAddr > > functions in net, and their respective methods on the Resolver type > > may return arbitrary values retrieved from DNS which do not follow the > > established RFC 1035 rules for domain names. If these names are used > > without further sanitization, for instance unsafely included in HTML, > > they may allow for injection of unexpected content. Note that > > LookupTXT may still return arbitrary values that could require > > sanitization before further use. This is issue #46241 and > > CVE-2021-33195. > > > > The NewReader and OpenReader functions in archive/zip can cause a > > panic or an unrecoverable fatal error when reading an archive that > > claims to contain a large number of files, regardless of its actual > > size. This is issue #46242 and CVE-2021-33196. > > > Patches didn't need to be regenerated and all tests pass on my amd64 > machine. > > Comments? OK? Also tested on arm64 and i386 - this appears to be missing an update to the PLIST: +go/src/cmd/go/testdata/script/mod_tidy_too_new.txt With this, ok jsing@ > Index: Makefile > === > RCS file: /cvs/ports/lang/go/Makefile,v > retrieving revision 1.100 > diff -u -p -r1.100 Makefile > --- Makefile 16 May 2021 07:40:45 - 1.100 > +++ Makefile 5 Jun 2021 12:52:23 - > @@ -7,7 +7,7 @@ BIN_BOOTSTRAP_VERSION = 1.16 > > COMMENT =Go programming language > > -VERSION =1.16.4 > +VERSION =1.16.5 > DISTNAME = go${VERSION}.src > PKGNAME =go-${VERSION} > PKGSPEC =${FULLPKGNAME:S/go-/go-=/} > Index: distinfo > === > RCS file: /cvs/ports/lang/go/distinfo,v > retrieving revision 1.62 > diff -u -p -r1.62 distinfo > --- distinfo 16 May 2021 07:40:45 - 1.62 > +++ distinfo 5 Jun 2021 12:52:23 - > @@ -2,9 +2,9 @@ SHA256 (go-openbsd-386-bootstrap-1.16.ta > SHA256 (go-openbsd-arm-bootstrap-1.16.tar.gz) = > DjjCEzU/FnndIrKC8gh5PKAZkKp9Lt49aT3XPqhEWNM= > SHA256 (go-openbsd-arm64-bootstrap-1.16.tar.gz) = > qqc/TtaBfoq5oJcOHoqNZ6+bO+OOIRZoW1zlj19uBVw= > SHA256 (go-openbsd-mips64-bootstrap-1.16.tar.gz) = > dwojdjHgxrLlKC8QbseRYnOf8s/wN/Wx+UkPhH2aeJY= > -SHA256 (go1.16.4.src.tar.gz) = rk9rbioWd9MYF5hGVadiB0tTVtpQ+1hyK5kQSHDUNQM= > +SHA256 (go1.16.5.src.tar.gz) = e/p+WQjHzJ512l3fMGbXy88/2fpRlFhRMl7rwX9QuoA= > SIZE (go-openbsd-386-bootstrap-1.16.tar.gz) = 131493298 > SIZE (go-openbsd-arm-bootstrap-1.16.tar.gz) = 128073881 > SIZE (go-openbsd-arm64-bootstrap-1.16.tar.gz) = 126892240 > SIZE (go-openbsd-mips64-bootstrap-1.16.tar.gz) = 129935270 > -SIZE (go1.16.4.src.tar.gz) = 20917203 > +SIZE (go1.16.5.src.tar.gz) = 20921372
Re: [update] lang/go to 1.16
On 21-02-20 10:39:40, Stuart Henderson wrote: > On 2021/02/20 17:53, Joel Sing wrote: > > > -MAKE_ENV += GO386=387 > > > > We'll presumably want to keep this with GO386=softfloat - otherwise the > > go binary package will only be useable on i386 CPUs with SSE support. > > Yes, it's needed for ALIX/WRAP/net5501/net4801 which still just about > work with OpenBSD (as long as you don't run anything consuming much RAM > until after reorder_kernel is done, the LLVM linker is quite greedy). Right, although you're more likely to run binary packages (hence the go.port.mk change) on such a machine, rather than the go toolchain itself (which the Makefile part should only cover). That said, I have no strong preference here :)
Re: [update] lang/go to 1.16
On 21-02-19 17:22:09, Aaron Bieber wrote: > Here is a fairly well tested update to Go. This version now uses libc[1] > thanks > to jsing@'s hard work! Just to clarify, Go 1.16 uses libc-based syscalls for amd64 and arm64. The remaining platforms (openbsd/386, openbsd/arm, openbsd/mips64) are still using direct syscalls. Once this update lands I'll patch the remaining platforms in ports. > Some other changes that impact OpenBSD: > > - Modules are used by default now. This breaks sysutils/amazon-ssm-agent, > sysutils/fleetctl and textproc/loccount, but I have fixes standing by[2] > for > when this goes in. > - GO386=387 support was dropped[3]. We now use "GO386=softfloat". I have done > a > mini-bulk on i386 and everything works as expected. > > Test results are fairly typical, amd64 and i386 pass, arm{v7,64} have some > sporadic issues like before. > > The diff also includes a fix for portgen. The behavior of 'go list -m all' > changed a bit[4]. > > Also tested but not included: mips64 support \o/ This will still require a little effort and bootstrap, I'll deal with this once we've got Go 1.16 with libc-based syscalls for the existing four platforms. > OK? ok jsing@, see comment inline. > [1] https://github.com/golang/go/issues/36435 > [2] https://github.com/openbsd/ports/compare/master...qbit:go1.16rc1 > [3] https://github.com/golang/go/issues/40255 > [4] https://github.com/golang/go/issues/44238 > > Index: infrastructure/lib/OpenBSD/PortGen/Port/Go.pm > === > RCS file: /cvs/ports/infrastructure/lib/OpenBSD/PortGen/Port/Go.pm,v > retrieving revision 1.7 > diff -u -p -r1.7 Go.pm > --- infrastructure/lib/OpenBSD/PortGen/Port/Go.pm 16 Jan 2021 23:38:13 > - 1.7 > +++ infrastructure/lib/OpenBSD/PortGen/Port/Go.pm 20 Feb 2021 00:18:03 > - > @@ -144,7 +144,7 @@ sub _go_mod_info > close $fh; > > # Outputs: "dep version" > - my @raw_deps = $self->_run($dir, qw(go list -m all)); > + my @raw_deps = $self->_run($dir, qw(go list -mod=mod -m all)); > my @deps; > my $all_deps = {}; > foreach my $dep (@raw_deps) { > Index: lang/go/Makefile > === > RCS file: /cvs/ports/lang/go/Makefile,v > retrieving revision 1.91 > diff -u -p -r1.91 Makefile > --- lang/go/Makefile 21 Jan 2021 14:47:15 - 1.91 > +++ lang/go/Makefile 20 Feb 2021 00:18:03 - > @@ -7,7 +7,7 @@ BIN_BOOTSTRAP_VERSION = 1.13.9 > > COMMENT =Go programming language > > -VERSION =1.15.7 > +VERSION =1.16 > DISTNAME = go${VERSION}.src > PKGNAME =go-${VERSION} > PKGSPEC =${FULLPKGNAME:S/go-/go-=/} > @@ -54,11 +54,6 @@ GOARCH = arm64 > .elif ${MACHINE_ARCH} == "i386" > GOARCH = 386 > .endif > - > -# We cannot assume that the maching running the built code will have SSE, > -# even though the machine building the package has SSE. As such, we need > -# to explicitly disable SSE on i386 builds. > -MAKE_ENV += GO386=387 We'll presumably want to keep this with GO386=softfloat - otherwise the go binary package will only be useable on i386 CPUs with SSE support. > .for arch in ${BIN_BOOTSTRAP_GOARCHS} > SUPDISTFILES += > go-openbsd-${arch}-bootstrap-${BIN_BOOTSTRAP_VERSION}${EXTRACT_SUFX}:0 > Index: lang/go/distinfo > === > RCS file: /cvs/ports/lang/go/distinfo,v > retrieving revision 1.56 > diff -u -p -r1.56 distinfo > --- lang/go/distinfo 21 Jan 2021 14:47:15 - 1.56 > +++ lang/go/distinfo 20 Feb 2021 00:18:03 - > @@ -1,6 +1,6 @@ > SHA256 (go-openbsd-arm-bootstrap-1.13.9.tar.gz) = > j+uAyYE4OsdncBvt6YDTXhjGc9gQq0XCjmSUdOesiq8= > SHA256 (go-openbsd-arm64-bootstrap-1.13.9.tar.gz) = > 84YoDEuNNmXbGCSzP8g5X1zqPdoOPB8yW71vsUL+5jw= > -SHA256 (go1.15.7.src.tar.gz) = hjGzqv2Oy5JE7C/7iiqLSYPPStFVcrmAH3xbFnwaKrw= > +SHA256 (go1.16.src.tar.gz) = dogGPVVlYQWJjzI9kKeaOcN42G/omuGS6zt/xGNHyVo= > SIZE (go-openbsd-arm-bootstrap-1.13.9.tar.gz) = 120208513 > SIZE (go-openbsd-arm64-bootstrap-1.13.9.tar.gz) = 118521763 > -SIZE (go1.15.7.src.tar.gz) = 23017978 > +SIZE (go1.16.src.tar.gz) = 20895394 > Index: lang/go/go.port.mk > === > RCS file: /cvs/ports/lang/go/go.port.mk,v > retrieving revision 1.38 > diff -u -p -r1.38 go.port.mk > --- lang/go/go.port.mk14 Feb 2021 23:35:22 - 1.38 > +++ lang/go/go.port.mk20 Feb 2021 00:18:03 - > @@ -47,7 +47,7 @@ MODGO_GOPATH ?= ${MODGO_WORKSPACE}:${MO > # We cannot assume that the maching running the built code will have SSE, > # even though the machine building the package has SSE. As such, we need > # to explicitly disable SSE on i386 builds. > -MAKE_ENV += GO386=387 > +MAKE_ENV += GO386=softfloat > M
Re: [update] lang/go to 1.15
On 20-08-20 15:36:23, Aaron Bieber wrote: > Hi! > > Here is an update to bring us to 1.15. > > I have run this through a "mini bulk" - there was one failure, but the port > that failed (net/minio/server) builds fine by hand. The log is here: > https://deftly.net/server.log > > I have tested: > > | Arch | Go port build | Bulk | Apps | Tests| > |---+---+--+--+--| > | amd64 | Y | Y| Y| ALL TESTS PASSED | > | arm64 | Y | N| Y| Running... | > | armv7 | - | N| N| | > | i386 | - | N| N| | > > My armv7 machine is updating. I will report back once I run the build/test on > it. > > I don't have an i386 machine. > > edd@ has a diff for syncthing that I also tested (build and runtime). With > this > diff and edd's, syncthing is back up and running! I presume this was broken already and did not break moving from Go 1.15 beta1 to release? > OK? Thanks - I was in the process of doing this and have already tested on i386. ok jsing@, providing regress passes on arm64 and armv7 (and without PLIST.orig of course!).
Re: lang/go: make test vs PORTS_PRIVSEP=Yes
On 19-09-26 17:36:25, Theo Buehler wrote: > On Fri, Sep 27, 2019 at 01:32:38AM +1000, Joel Sing wrote: > > On 19-09-26 16:14:44, Theo Buehler wrote: > > > On Thu, Sep 26, 2019 at 11:09:16PM +1000, Joel Sing wrote: > > > > On 19-09-26 13:06:51, Stuart Henderson wrote: > > > > > On 2019/09/26 09:44, Theo Buehler wrote: > > > > > > I noticed two problems with go's 'make test' when PORTS_PRIVSEP=Yes: > > > > > > both having to do with _pbuild's home being /nonexistent: > > > > > > > > > > > > failed to initialize build cache at /nonexistent/.cache/go-build: > > > > > > mkdir /nonexistent: permission denied > > > > > > > > > > > > and > > > > > > > > > > > > --- FAIL: TestUserHomeDir (0.00s) > > > > > > os_test.go:2350: stat /nonexistent: no such file or directory > > > > > > FAIL > > > > > > > > > > > > both problems can be worked around by setting the GOCACHE and HOME > > > > > > environment variables to something different than /nonexistent. > > > > > > > > > > > > Since do-build alreday sets GOCACHE=${WRKDIST}/go-cache, it seems > > > > > > reasonable to do the same for do-test independently of > > > > > > PORTS_PRIVSEP. > > > > > > > > > > FWIW that one's OK with me. > > > > > > > > > > > I'm less sure about the proper solution for TestHomeDir and would > > > > > > like > > > > > > to have some advice on that. Setting HOME to ${WRKDIST} or a > > > > > > temporary > > > > > > directory works and is in line with the custom PATH, but seems very > > > > > > kludgy and might have undesirable side effects for other tests in > > > > > > the > > > > > > future. One could patch the TestHomeDir test to skip the Stat and > > > > > > IsDir > > > > > > part if the user is _pbuild. I'm not too worried about the > > > > > > TestHomeDir > > > > > > per se but rather the fact that its failure takes out a sizable > > > > > > number > > > > > > of later tests. > > > > > > > > > > Patching the TestHomeDir test might also have side effects in the > > > > > future.. > > > > > Setting PORTHOME=${WRKDIR} is fairly common in ports in general, so > > > > > that > > > > > would probably be my first choice (I think it's better in WRKDIR > > > > > rather > > > > > than WRKDIST). > > > > > > > > Agreed. It is going to be preferable to set HOME to a sensible > > > > location, rather than patch tests - ok jsing@. > > > > > > Ok, thanks. > > > > > > Setting PORTHOME=${WRKDIST} works directly. Using WRKDIR does work in > > > the sense that all tests pass, but it leads to an ugly complaint about > > > a missing GOPATH: > > > > > > $ make test > > > ===> Regression tests for go-1.13 > > > missing $GOPATH > > > > > > To avoid this complaint, I added GOPATH=WRKDIR to the environment. Also, > > > the reason why the poisoned PORTHOME didn't work is the custom do-test > > > target that bypasses the default test environment. After pulling in > > > ALL_TEST_ENV, one could now make use of the TEST_ENV mechanism, but I > > > don't want to interfere too much with jsing's choices. > > > > > > Index: Makefile > > > === > > > RCS file: /var/cvs/ports/lang/go/Makefile,v > > > retrieving revision 1.71 > > > diff -u -p -r1.71 Makefile > > > --- Makefile 15 Sep 2019 02:00:34 - 1.71 > > > +++ Makefile 26 Sep 2019 14:10:47 - > > > @@ -34,6 +34,7 @@ SEPARATE_BUILD =simple > > > CONFIGURE_STYLE =None > > > SUBST_VARS = GOCFG > > > > > > +PORTHOME = ${WRKDIR} > > > WRKDIST =${WRKDIR}/go > > > WRKSRC = ${WRKDIST}/src > > > > > > @@ -94,8 +95,11 @@ do-build: > > > do-test: > > > @cd ${WRKSRC} && \ > > > ulimit -d $$(ulimit -H -d) -n 256 && \ > > > +
Re: lang/go: make test vs PORTS_PRIVSEP=Yes
On 19-09-26 16:14:44, Theo Buehler wrote: > On Thu, Sep 26, 2019 at 11:09:16PM +1000, Joel Sing wrote: > > On 19-09-26 13:06:51, Stuart Henderson wrote: > > > On 2019/09/26 09:44, Theo Buehler wrote: > > > > I noticed two problems with go's 'make test' when PORTS_PRIVSEP=Yes: > > > > both having to do with _pbuild's home being /nonexistent: > > > > > > > > failed to initialize build cache at /nonexistent/.cache/go-build: mkdir > > > > /nonexistent: permission denied > > > > > > > > and > > > > > > > > --- FAIL: TestUserHomeDir (0.00s) > > > > os_test.go:2350: stat /nonexistent: no such file or directory > > > > FAIL > > > > > > > > both problems can be worked around by setting the GOCACHE and HOME > > > > environment variables to something different than /nonexistent. > > > > > > > > Since do-build alreday sets GOCACHE=${WRKDIST}/go-cache, it seems > > > > reasonable to do the same for do-test independently of PORTS_PRIVSEP. > > > > > > FWIW that one's OK with me. > > > > > > > I'm less sure about the proper solution for TestHomeDir and would like > > > > to have some advice on that. Setting HOME to ${WRKDIST} or a temporary > > > > directory works and is in line with the custom PATH, but seems very > > > > kludgy and might have undesirable side effects for other tests in the > > > > future. One could patch the TestHomeDir test to skip the Stat and IsDir > > > > part if the user is _pbuild. I'm not too worried about the TestHomeDir > > > > per se but rather the fact that its failure takes out a sizable number > > > > of later tests. > > > > > > Patching the TestHomeDir test might also have side effects in the future.. > > > Setting PORTHOME=${WRKDIR} is fairly common in ports in general, so that > > > would probably be my first choice (I think it's better in WRKDIR rather > > > than WRKDIST). > > > > Agreed. It is going to be preferable to set HOME to a sensible > > location, rather than patch tests - ok jsing@. > > Ok, thanks. > > Setting PORTHOME=${WRKDIST} works directly. Using WRKDIR does work in > the sense that all tests pass, but it leads to an ugly complaint about > a missing GOPATH: > > $ make test > ===> Regression tests for go-1.13 > missing $GOPATH > > To avoid this complaint, I added GOPATH=WRKDIR to the environment. Also, > the reason why the poisoned PORTHOME didn't work is the custom do-test > target that bypasses the default test environment. After pulling in > ALL_TEST_ENV, one could now make use of the TEST_ENV mechanism, but I > don't want to interfere too much with jsing's choices. > > Index: Makefile > === > RCS file: /var/cvs/ports/lang/go/Makefile,v > retrieving revision 1.71 > diff -u -p -r1.71 Makefile > --- Makefile 15 Sep 2019 02:00:34 - 1.71 > +++ Makefile 26 Sep 2019 14:10:47 - > @@ -34,6 +34,7 @@ SEPARATE_BUILD =simple > CONFIGURE_STYLE =None > SUBST_VARS = GOCFG > > +PORTHOME = ${WRKDIR} > WRKDIST =${WRKDIR}/go > WRKSRC = ${WRKDIST}/src > > @@ -94,8 +95,11 @@ do-build: > do-test: > @cd ${WRKSRC} && \ > ulimit -d $$(ulimit -H -d) -n 256 && \ > + ${SETENV} ${ALL_TEST_ENV} \ > CC="${CC}" \ > CXX="${CXX}" \ > + GOCACHE=${WRKDIST}/go-cache \ > + GOPATH=${WRKDIR} \ > PATH=${WRKDIST}/bin:${PATH} \ > /bin/ksh -c "exec 3>&-; exec 4>&-; ./run.bash" Given this is already a special snowflake, it might be simpler to just do: Index: Makefile === RCS file: /cvs/ports/lang/go/Makefile,v retrieving revision 1.71 diff -u -p -u -p -r1.71 Makefile --- Makefile15 Sep 2019 02:00:34 - 1.71 +++ Makefile26 Sep 2019 15:31:29 - @@ -96,6 +96,8 @@ do-test: ulimit -d $$(ulimit -H -d) -n 256 && \ CC="${CC}" \ CXX="${CXX}" \ + GOCACHE=${WRKDIST}/go-cache \ + HOME=${WRKDIR} \ PATH=${WRKDIST}/bin:${PATH} \ /bin/ksh -c "exec 3>&-; exec 4>&-; ./run.bash"
Re: lang/go: make test vs PORTS_PRIVSEP=Yes
On 19-09-26 13:06:51, Stuart Henderson wrote: > On 2019/09/26 09:44, Theo Buehler wrote: > > I noticed two problems with go's 'make test' when PORTS_PRIVSEP=Yes: > > both having to do with _pbuild's home being /nonexistent: > > > > failed to initialize build cache at /nonexistent/.cache/go-build: mkdir > > /nonexistent: permission denied > > > > and > > > > --- FAIL: TestUserHomeDir (0.00s) > > os_test.go:2350: stat /nonexistent: no such file or directory > > FAIL > > > > both problems can be worked around by setting the GOCACHE and HOME > > environment variables to something different than /nonexistent. > > > > Since do-build alreday sets GOCACHE=${WRKDIST}/go-cache, it seems > > reasonable to do the same for do-test independently of PORTS_PRIVSEP. > > FWIW that one's OK with me. > > > I'm less sure about the proper solution for TestHomeDir and would like > > to have some advice on that. Setting HOME to ${WRKDIST} or a temporary > > directory works and is in line with the custom PATH, but seems very > > kludgy and might have undesirable side effects for other tests in the > > future. One could patch the TestHomeDir test to skip the Stat and IsDir > > part if the user is _pbuild. I'm not too worried about the TestHomeDir > > per se but rather the fact that its failure takes out a sizable number > > of later tests. > > Patching the TestHomeDir test might also have side effects in the future.. > Setting PORTHOME=${WRKDIR} is fairly common in ports in general, so that > would probably be my first choice (I think it's better in WRKDIR rather > than WRKDIST). Agreed. It is going to be preferable to set HOME to a sensible location, rather than patch tests - ok jsing@. > > Index: Makefile > > === > > RCS file: /var/cvs/ports/lang/go/Makefile,v > > retrieving revision 1.71 > > diff -u -p -r1.71 Makefile > > --- Makefile15 Sep 2019 02:00:34 - 1.71 > > +++ Makefile26 Sep 2019 07:15:03 - > > @@ -96,6 +96,7 @@ do-test: > > ulimit -d $$(ulimit -H -d) -n 256 && \ > > CC="${CC}" \ > > CXX="${CXX}" \ > > + GOCACHE=${WRKDIST}/go-cache \ > > PATH=${WRKDIST}/bin:${PATH} \ > > /bin/ksh -c "exec 3>&-; exec 4>&-; ./run.bash" > > > >
Enable Go on arm64
The following enables Go on aarch64/arm64. ok? Index: infrastructure/mk/arch-defines.mk === RCS file: /cvs/ports/infrastructure/mk/arch-defines.mk,v retrieving revision 1.67 diff -u -p -r1.67 arch-defines.mk --- infrastructure/mk/arch-defines.mk 2 Sep 2019 07:05:48 - 1.67 +++ infrastructure/mk/arch-defines.mk 13 Sep 2019 16:45:53 - @@ -24,7 +24,7 @@ GCC3_ARCHS = m88k MONO_ARCHS = amd64 i386 OCAML_NATIVE_ARCHS = i386 amd64 OCAML_NATIVE_DYNLINK_ARCHS = i386 amd64 -GO_ARCHS = amd64 arm i386 +GO_ARCHS = aarch64 amd64 arm arm64 armv7 i386 RUST_ARCHS = aarch64 amd64 i386 sparc64 # arches where the base compiler is clang Index: lang/go/Makefile === RCS file: /cvs/ports/lang/go/Makefile,v retrieving revision 1.70 diff -u -p -r1.70 Makefile --- lang/go/Makefile13 Sep 2019 09:04:07 - 1.70 +++ lang/go/Makefile13 Sep 2019 16:45:53 - @@ -2,7 +2,7 @@ ONLY_FOR_ARCHS = ${GO_ARCHS} -BIN_BOOTSTRAP_GOARCHS =arm +BIN_BOOTSTRAP_GOARCHS =arm arm64 BIN_BOOTSTRAP_VERSION = 1.13 COMMENT = Go programming language @@ -48,6 +48,8 @@ GOROOT_BOOTSTRAP = GOARCH = amd64 .elif ${MACHINE_ARCH} == "arm" GOARCH = arm +.elif ${MACHINE_ARCH} == "aarch64" +GOARCH = arm64 .elif ${MACHINE_ARCH} == "i386" GOARCH = 386 .endif Index: lang/go/distinfo === RCS file: /cvs/ports/lang/go/distinfo,v retrieving revision 1.43 diff -u -p -r1.43 distinfo --- lang/go/distinfo13 Sep 2019 09:04:07 - 1.43 +++ lang/go/distinfo13 Sep 2019 16:45:53 - @@ -1,4 +1,6 @@ SHA256 (go-openbsd-arm-bootstrap-1.13.tar.gz) = Ix5mtS2ZQojlcTwILIH9SzPlaSfvbZf68UeAkqavJx8= +SHA256 (go-openbsd-arm64-bootstrap-1.13.tar.gz) = B+fRIH4O1ZLM8N1jI6gPSthj76hPMbuPFI9unufEljI= SHA256 (go1.13.src.tar.gz) = P8C4thAdQu/X2h2jApwKE/IgecDDfvlzAgnY7GZb8SI= SIZE (go-openbsd-arm-bootstrap-1.13.tar.gz) = 12034 +SIZE (go-openbsd-arm64-bootstrap-1.13.tar.gz) = 118670351 SIZE (go1.13.src.tar.gz) = 21621948
Re: [update] lang/go to Go 1.13
On 19-09-13 14:53:30, Stuart Henderson wrote: > On 2019/09/13 23:32, Joel Sing wrote: > > On 19-09-13 12:38:19, Stuart Henderson wrote: > > > On 2019/09/10 04:20, Joel Sing wrote: > > > > The following updates lang/go to Go 1.13 and also updates the main > > > > golang.org/x packages to around the Go 1.13 release. This does > > > > not update devel/go-tools, as it introduces new dependencies that > > > > will need to be packaged. Once this lands I can also work towards > > > > enabling Go on arm64. > > > > > > > > The following ports appear to break with this update: > > > > > > > > net/go-ipfs > > > > net/mattermost-server > > > > security/keybase > > > > sysutils/consul > > > > sysutils/restic > > > > sysutils/restic-rest-server > > > > www/hugo > > > > > > net/dnscrypt-proxy now attempts to fetch from the network, this is > > > blocked on the main ports build machines and for anyone using > > > PORTS_PRIVSEP=Yes in mk.conf with the default "block return out log > > > proto {tcp udp} user _pbuild" pf rule. Any advice on how to fix this? > > > > Unfortunately this is going to become more of a problem, since Go is pushing > > towards the use of Go modules and fetching of dependencies at build time, > > rather than vendoring code. We'll have to figure out how we address this > > moving forward. > > Same problem everywhere unfortunately. npm, maven, cargo, even "normal" > use of python.. Indeed. > > The following diff should fix this case: > > Thanks, confirmed it does. OK. For now, I think we should do this instead - ok? Index: lang/go/go.port.mk === RCS file: /cvs/ports/lang/go/go.port.mk,v retrieving revision 1.23 diff -u -p -r1.23 go.port.mk --- lang/go/go.port.mk 4 Sep 2019 12:22:03 - 1.23 +++ lang/go/go.port.mk 13 Sep 2019 14:17:15 - @@ -23,7 +23,7 @@ MODGO_TYPE ?= bin MODGO_WORKSPACE ?= ${WRKDIR}/go MODGO_GOCACHE ?= ${WRKDIR}/go-cache MODGO_GOPATH ?=${MODGO_WORKSPACE}:${MODGO_PACKAGE_PATH} -MAKE_ENV +=GOCACHE="${MODGO_GOCACHE}" GOPATH="${MODGO_GOPATH}" +MAKE_ENV +=GOCACHE="${MODGO_GOCACHE}" GOPATH="${MODGO_GOPATH}" GO111MODULE=off MODGO_CMD ?= ${SETENV} ${MAKE_ENV} go MODGO_BUILD_CMD = ${MODGO_CMD} install ${MODGO_FLAGS} MODGO_TEST_CMD = ${MODGO_CMD} test ${MODGO_FLAGS} ${MODGO_TEST_FLAGS} Index: net/mattermost-server/Makefile === RCS file: /cvs/ports/net/mattermost-server/Makefile,v retrieving revision 1.15 diff -u -p -r1.15 Makefile --- net/mattermost-server/Makefile 12 Sep 2019 19:07:56 - 1.15 +++ net/mattermost-server/Makefile 13 Sep 2019 14:17:15 - @@ -27,7 +27,6 @@ WANTLIB += c pthread MODULES = lang/go MODGO_LDFLAGS =-X github.com/mattermost/mattermost-server/model.BuildNumber=${V} -MAKE_ENV +=GO111MODULE=off NO_TEST = Yes pre-configure: Index: sysutils/restic/Makefile === RCS file: /cvs/ports/sysutils/restic/Makefile,v retrieving revision 1.10 diff -u -p -r1.10 Makefile --- sysutils/restic/Makefile13 Sep 2019 13:05:50 - 1.10 +++ sysutils/restic/Makefile13 Sep 2019 14:17:15 - @@ -21,7 +21,6 @@ MASTER_SITES =https://github.com/restic MODULES = lang/go MODGO_TYPE = bin -MAKE_ENV +=GO111MODULE=off NO_TEST = Yes Index: sysutils/restic-rest-server/Makefile === RCS file: /cvs/ports/sysutils/restic-rest-server/Makefile,v retrieving revision 1.7 diff -u -p -r1.7 Makefile --- sysutils/restic-rest-server/Makefile13 Sep 2019 13:06:19 - 1.7 +++ sysutils/restic-rest-server/Makefile13 Sep 2019 14:17:15 - @@ -20,7 +20,6 @@ MASTER_SITES =https://github.com/restic MODULES = lang/go MODGO_TYPE = bin -MAKE_ENV +=GO111MODULE=off NO_TEST = Yes
Re: [update] lang/go to Go 1.13
On 19-09-13 12:38:19, Stuart Henderson wrote: > On 2019/09/10 04:20, Joel Sing wrote: > > The following updates lang/go to Go 1.13 and also updates the main > > golang.org/x packages to around the Go 1.13 release. This does > > not update devel/go-tools, as it introduces new dependencies that > > will need to be packaged. Once this lands I can also work towards > > enabling Go on arm64. > > > > The following ports appear to break with this update: > > > > net/go-ipfs > > net/mattermost-server > > security/keybase > > sysutils/consul > > sysutils/restic > > sysutils/restic-rest-server > > www/hugo > > net/dnscrypt-proxy now attempts to fetch from the network, this is > blocked on the main ports build machines and for anyone using > PORTS_PRIVSEP=Yes in mk.conf with the default "block return out log > proto {tcp udp} user _pbuild" pf rule. Any advice on how to fix this? I think there's actually a better option here - will send another diff shortly.
Re: [update] lang/go to Go 1.13
On 19-09-13 12:38:19, Stuart Henderson wrote: > On 2019/09/10 04:20, Joel Sing wrote: > > The following updates lang/go to Go 1.13 and also updates the main > > golang.org/x packages to around the Go 1.13 release. This does > > not update devel/go-tools, as it introduces new dependencies that > > will need to be packaged. Once this lands I can also work towards > > enabling Go on arm64. > > > > The following ports appear to break with this update: > > > > net/go-ipfs > > net/mattermost-server > > security/keybase > > sysutils/consul > > sysutils/restic > > sysutils/restic-rest-server > > www/hugo > > net/dnscrypt-proxy now attempts to fetch from the network, this is > blocked on the main ports build machines and for anyone using > PORTS_PRIVSEP=Yes in mk.conf with the default "block return out log > proto {tcp udp} user _pbuild" pf rule. Any advice on how to fix this? Unfortunately this is going to become more of a problem, since Go is pushing towards the use of Go modules and fetching of dependencies at build time, rather than vendoring code. We'll have to figure out how we address this moving forward. The following diff should fix this case: Index: Makefile === RCS file: /cvs/ports/net/dnscrypt-proxy/Makefile,v retrieving revision 1.44 diff -u -p -r1.44 Makefile --- Makefile10 Sep 2019 13:19:25 - 1.44 +++ Makefile13 Sep 2019 13:30:31 - @@ -19,6 +19,7 @@ WANTLIB = c pthread MODULES = lang/go MODGO_TYPE = bin +MAKE_ENV +=GO111MODULE=off NO_TEST = Yes INSTDIR = ${PREFIX}/share/examples/dnscrypt-proxy
Re: [update] lang/go to Go 1.13
On 19-09-11 15:37:39, Stuart Henderson wrote: > On 2019/09/10 19:37, Aaron Bieber wrote: > > On Tue, 10 Sep 2019 at 04:20:55 +1000, Joel Sing wrote: > > > The following updates lang/go to Go 1.13 and also updates the main > > > golang.org/x packages to around the Go 1.13 release. This does > > > not update devel/go-tools, as it introduces new dependencies that > > > will need to be packaged. Once this lands I can also work towards > > > enabling Go on arm64. > > > > > > The following ports appear to break with this update: > > > > > > net/go-ipfs > > > net/mattermost-server > > > security/keybase > > > sysutils/consul > > > sysutils/restic > > > sysutils/restic-rest-server > > > www/hugo > > > > > > All of these are import path related and will likely need updates > > > or patches. > > > > Here are fixes for the restics and keybase (combined as one diff inline): > > > > https://deftly.net/patches/restic-0.9.5.diff > > https://deftly.net/patches/restic-rest-server-0.9.7.diff > > https://deftly.net/patches/keybase-4.3.2.diff > > > > For keybase it looks like I missed a diff removal on the last update. > > > > > > > > ok? > > > > > > > OK abieber@ for go! > > We are in the run up to release, I think committing this should wait > until there are fixes for the other ports (or agreement with the > relevant maintainers that it's ok to break them). The following diffs allow the remaining four ports to build with Go 1.13: ok? Index: net/go-ipfs/Makefile === RCS file: /cvs/ports/net/go-ipfs/Makefile,v retrieving revision 1.4 diff -u -p -u -p -r1.4 Makefile --- net/go-ipfs/Makefile29 Aug 2019 10:40:53 - 1.4 +++ net/go-ipfs/Makefile11 Sep 2019 16:33:23 - @@ -4,6 +4,7 @@ COMMENT = global, versioned, peer-to-pee V =0.4.22 DISTNAME = go-ipfs-$V +REVISION = 0 CATEGORIES = net HOMEPAGE = https://ipfs.io Index: net/go-ipfs/patches/patch-vendor_golang_org_x_xerrors_adaptor_go === RCS file: net/go-ipfs/patches/patch-vendor_golang_org_x_xerrors_adaptor_go diff -N net/go-ipfs/patches/patch-vendor_golang_org_x_xerrors_adaptor_go --- /dev/null 1 Jan 1970 00:00:00 - +++ net/go-ipfs/patches/patch-vendor_golang_org_x_xerrors_adaptor_go11 Sep 2019 16:33:23 - @@ -0,0 +1,201 @@ +$OpenBSD$ + +Fix build on Go 1.13 + +Index: vendor/golang.org/x/xerrors/adaptor.go +--- vendor/golang.org/x/xerrors/adaptor.go.orig vendor/golang.org/x/xerrors/adaptor.go +@@ -0,0 +1,193 @@ ++// Copyright 2018 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++package xerrors ++ ++import ( ++ "bytes" ++ "fmt" ++ "io" ++ "reflect" ++ "strconv" ++) ++ ++// FormatError calls the FormatError method of f with an errors.Printer ++// configured according to s and verb, and writes the result to s. ++func FormatError(f Formatter, s fmt.State, verb rune) { ++ // Assuming this function is only called from the Format method, and given ++ // that FormatError takes precedence over Format, it cannot be called from ++ // any package that supports errors.Formatter. It is therefore safe to ++ // disregard that State may be a specific printer implementation and use one ++ // of our choice instead. ++ ++ // limitations: does not support printing error as Go struct. ++ ++ var ( ++ sep= " " // separator before next error ++ p = &state{State: s} ++ direct = true ++ ) ++ ++ var err error = f ++ ++ switch verb { ++ // Note that this switch must match the preference order ++ // for ordinary string printing (%#v before %+v, and so on). ++ ++ case 'v': ++ if s.Flag('#') { ++ if stringer, ok := err.(fmt.GoStringer); ok { ++ io.WriteString(&p.buf, stringer.GoString()) ++ goto exit ++ } ++ // proceed as if it were %v ++ } else if s.Flag('+') { ++ p.printDetail = true ++ sep = "\n - " ++ } ++ case 's': ++ case 'q', 'x', 'X': ++ // Use an intermediate buffer in the rare cases that precision, ++ // truncation, or one of t
Re: Update lang/go to 1.12
On 19-03-08 14:03:29, Stuart Henderson wrote: > - sysutils/beats/packetbeat is also broken, not sure how to fix that, > maybe some vendored thing is in need of an update > > cd > /usr/obj/ports/packetbeat-6.4.3/go/src/github.com/elastic/beats/vendor/github.com/tsg/gopacket/pcap > CGO_LDFLAGS='"-g" "-O2" "-lpcap"' /usr/local/go/pkg/tool/openbsd_amd64/cgo > -objdir $WORK/b354/ -importpath > github.com/elastic/beats/vendor/github.com/tsg/gopacket/pcap -- -I > $WORK/b354/ -g -O2 ./pcap.go ./pcap_poll_common.go > # github.com/elastic/beats/vendor/github.com/tsg/gopacket/pcap > /usr/obj/ports/packetbeat-6.4.3/go/src/github.com/elastic/beats/vendor/github.com/tsg/gopacket/pcap/pcap.go:173:7: > identifier "_Ctype_struct_bpf_program" may conflict with identifiers > generated by cgo > /usr/obj/ports/packetbeat-6.4.3/go/src/github.com/elastic/beats/vendor/github.com/tsg/gopacket/pcap/pcap.go:385:13: > identifier "_Ctype_struct_pcap_stat" may conflict with identifiers generated > by cgo > /usr/obj/ports/packetbeat-6.4.3/go/src/github.com/elastic/beats/vendor/github.com/tsg/gopacket/pcap/pcap.go:446:10: > identifier "_Ctype_struct_bpf_program" may conflict with identifiers > generated by cgo > /usr/obj/ports/packetbeat-6.4.3/go/src/github.com/elastic/beats/vendor/github.com/tsg/gopacket/pcap/pcap.go:489:21: > identifier "_Ctype_struct_bpf_program" may conflict with identifiers > generated by cgo > /usr/obj/ports/packetbeat-6.4.3/go/src/github.com/elastic/beats/vendor/github.com/tsg/gopacket/pcap/pcap.go:552:34: > identifier "_Ctype_struct_pcap_addr" may conflict with identifiers generated > by cgo > /usr/obj/ports/packetbeat-6.4.3/go/src/github.com/elastic/beats/vendor/github.com/tsg/gopacket/pcap/pcap.go:555:56: > identifier "_Ctype_struct_pcap_addr" may conflict with identifiers generated > by cgo > /usr/obj/ports/packetbeat-6.4.3/go/src/github.com/elastic/beats/vendor/github.com/tsg/gopacket/pcap/pcap.go:821:13: > identifier "_Ctype_struct_pcap_pkthdr" may conflict with identifiers > generated by cgo Yeah, they're doing it wrong (the code should be using C. rather than _Ctype_, which is enforced in Go 1.12)... ok? Index: patches/patch-vendor_github_com_tsg_gopacket_pcap_pcap_go === RCS file: patches/patch-vendor_github_com_tsg_gopacket_pcap_pcap_go diff -N patches/patch-vendor_github_com_tsg_gopacket_pcap_pcap_go --- /dev/null 1 Jan 1970 00:00:00 - +++ patches/patch-vendor_github_com_tsg_gopacket_pcap_pcap_go 12 Mar 2019 16:43:28 - @@ -0,0 +1,65 @@ +$OpenBSD$ + +Use cgo correctly - this is enforced by Go 1.12. + +Index: vendor/github.com/tsg/gopacket/pcap/pcap.go +--- vendor/github.com/tsg/gopacket/pcap/pcap.go.orig vendor/github.com/tsg/gopacket/pcap/pcap.go +@@ -170,7 +170,7 @@ type InterfaceAddress struct { + // BPF is a compiled filter program, useful for offline packet matching. + type BPF struct { + orig string +- bpf _Ctype_struct_bpf_program // takes a finalizer, not overriden by outsiders ++ bpf C.struct_bpf_program // takes a finalizer, not overriden by outsiders + } + + // BlockForever, when passed into OpenLive/SetTimeout, causes it to block forever +@@ -382,7 +382,7 @@ func (p *Handle) Error() error { + + // Stats returns statistics on the underlying pcap handle. + func (p *Handle) Stats() (stat *Stats, err error) { +- var cstats _Ctype_struct_pcap_stat ++ var cstats C.struct_pcap_stat + if -1 == C.pcap_stats(p.cptr, &cstats) { + return nil, p.Error() + } +@@ -443,7 +443,7 @@ func (p *Handle) SetBPFFilter(expr string) (err error) + } + } + +- var bpf _Ctype_struct_bpf_program ++ var bpf C.struct_bpf_program + cexpr := C.CString(expr) + defer C.free(unsafe.Pointer(cexpr)) + +@@ -486,7 +486,7 @@ func (b *BPF) String() string { + } + + // BPF returns the compiled BPF program. +-func (b *BPF) BPF() _Ctype_struct_bpf_program { ++func (b *BPF) BPF() C.struct_bpf_program { + return b.bpf + } + +@@ -549,10 +549,10 @@ func FindAllDevs() (ifs []Interface, err error) { + return + } + +-func findalladdresses(addresses *_Ctype_struct_pcap_addr) (retval []InterfaceAddress) { ++func findalladdresses(addresses *C.struct_pcap_addr) (retval []InterfaceAddress) { + // TODO - make it support more than IPv4 and IPv6? + retval = make([]InterfaceAddress, 0, 1) +- for curaddr := addresses; curaddr != nil; curaddr = (*_Ctype_struct_pcap_addr)(curaddr.next) { ++ for curaddr := addresses; curaddr != nil; curaddr = (*C.struct_pcap_addr)(curaddr.next) { + var a InterfaceAddress + var err error + // In case of a tun device on Linux the link layer has no curaddr.addr. +@@ -818,7 +818,7 @@ func (h *Handle) NewDumper(file string) (dumper *Dumpe + // Writes a packet to the file. The return values of ReadPacketData + // can be passed to this function
Re: go uses too many CPUs
On 19-02-08 21:16:02, Stuart Henderson wrote: > On 2019/02/08 19:12, Marc Espie wrote: > > On Fri, Feb 08, 2019 at 12:10:02AM -0500, Ted Unangst wrote: > > > Go tries to use NCPU cpus. Unfortunately, half of them are turned off > > > because > > > hw.smt=0 by default, and then go spends a lot of time fighting against > > > itself. > > > > > > The diff below, against go/src/runtime, changes to use the number of CPUs > > > online. It's possible for this number to change, and thus become stale, > > > but > > > that's unlikely, and not the default. > > > > > > (This sysctl was added in 6.4.) > > > > > > --- os_openbsd.go.origFri Feb 8 00:02:27 2019 > > > +++ os_openbsd.go Fri Feb 8 00:06:21 2019 > > > @@ -85,8 +85,8 @@ > > > _KERN_OSREV = 3 > > > > > > _CTL_HW = 6 > > > - _HW_NCPU = 3 > > > _HW_PAGESIZE = 7 > > > + _HW_NCPUONLINE = 25 > > > ) > > > > > > func sysctlInt(mib []uint32) (int32, bool) { > > > @@ -101,7 +101,7 @@ > > > > > > func getncpu() int32 { > > > // Fetch hw.ncpu via sysctl. > > > - if ncpu, ok := sysctlInt([]uint32{_CTL_HW, _HW_NCPU}); ok { > > > + if ncpu, ok := sysctlInt([]uint32{_CTL_HW, _HW_NCPUONLINE}); ok { > > > return int32(ncpu) > > > } > > > return 1 > > IIRC upstream had some requirement for supporting the previous OS version > for their builders, so might be better to have fallback code in case > _HW_NCPUONLINE isn't available. This is correct - I've landed a diff that just switches to hw.ncpuonline, however a different version will go upstream. > > Is there at least a knob to turn that off entirely ? > > > > Like, specifically, when you are bulk-building ports, you do not want go > > to hog on every cpu while it's not alone. > > > > Parallelizing everything is not always (very often not actually) a win. > > On 2019/02/08 19:55, Otto Moerbeek wrote: > > The GOMACPROCS env var is what you're looking for. If you set it to 1 > > go will use 1 core at max. > > There are two different things. > > go.port.mk's build command line (used for some but not all ports) calls > "go install -p ${MAKE_JOBS}", that controls how many parallel processes > are used. (some like sysutils/prometheus use a different build system). > > GOMAXPROCS (X not C) is different - number of threads within one process. It is the number of threads that can simultaneously execute user-level Go code. There may be more or less threads than this in a Go process, depending on whether there is a need for concurrency and/or if threads are blocked in system calls. > So if both are in play maybe you get N(smp_cores) processes * N(smp_cores) > threads ...
Re: Update to haproxy-1.8.14
On Monday 26 November 2018 18:21:56 Daniel Jakots wrote: > Hi, > > Here's the diff to update haproxy to the 1.8 branch. > Most of the libressl stuff has been done by jsing (thanks!) but he did > the update to 1.8.13 and 13->14 needed some more fiddling. I did them > on my own so I guess a review wouldn't hurt. > > The 1.8 branch brings HTTP/2 and TLS1.3 but maybe the latter won't work > because of the libressl vs openssl. I don't know. TLSv1.3 is not currently supported by LibreSSL, hence the maximum that haproxy will negotiate (as a client or server) is going to be TLSv1.2. Once LibreSSL supports TLSv1.3 it will automatically start working - the code that this disables relates to 0-RTT data, which we're unlikely to support (at least initially). > I'm dogfooding it and so far it's been good. > > I'll be kind and save some users some trouble: don't try to backport > this diff to 6.4, it won't work. Why do you say that? > Tests? Comments? OK? Looks good to me - ok jsing@. > Cheers, > Daniel
Re: security/p5-Net_SSLeay: get MAC secret size from cipher
On Monday 22 October 2018 19:30:02 Alexander Bluhm wrote: > On Mon, Oct 22, 2018 at 11:10:49AM -0600, Theo de Raadt wrote: > > I understand the difficulty pointed out by the first questions. What > > bothers me is the last question. It indicates a desire to support many > > generations of software. Any attempt at that risks a mistake supporting > > today or tomorrow. As we've seen time and time again. > > Usually I only care about LibreSSL-current for OpenBSD. I add > defined(LIBRESSL_VERSION_NUMBER) until the module compiles and tests > pass. Then I push it upstream. The problem is then ensuring that these are later removed as necessary. > But this Perl module is also used on non-OpenBSD systems with a > released version of LibreSSL. And there LibreSSL is not -current > and may be older. If I push a change that enables a feature without > version check, it will break older systems. And the Perl eco system > assumes that you can update libraries and modules independently to > a certain extent. > > Doing the right thing for OpenBSD is easy. Having a general solution > for Linux with LibreSSL is not. Indeed. Having feature flags/defines in OpenSSL would be another possible way to solve this, however we're largely stuck with OPENSSL_NO_* (which are useless/problematic in various ways).
Re: security/p5-Net_SSLeay: get MAC secret size from cipher
On Monday 22 October 2018 20:40:48 Alexander Bluhm wrote: > On Tue, Oct 23, 2018 at 04:36:24AM +1100, Joel Sing wrote: > > > #if (OPENSSL_VERSION_NUMBER >= 0x1010L && > > > !defined(LIBRESSL_VERSION_NUMBER)) || (LIBRESSL_VERSION_NUMBER >= > > > 0x207fL) > > > > That works, but seems a little backwards, since you're potentially still > > evaluating LIBRESSL_VERSION_NUMBER even when it is not defined. I think > > the > > following would be preferable (and I'll check what we've used elsewhere > > more carefully): > > > > #if OPENSSL_VERSION_NUMBER >= 0x1010L && \ > > > > (!defined(LIBRESSL_VERSION_NUMBER) || LIBRESSL_VERSION_NUMBER >= > > 0x207fL) > I think your version is also correct. Getting it right is hard and > required some iterations with upstream. As my version of the > condition has been released and tested, I would like to keep it. > If LIBRESSL_VERSION_NUMBER is not defined, then it evaluates as 0, > which also works fine. It is consistent within this file and makes > it easier to push upstream. And also avoid \ newline as the style > of the file is to use long lines. > > ok? Works for me - ok jsing@, thanks. > Index: security/p5-Net_SSLeay/Makefile > === > RCS file: /data/mirror/openbsd/cvs/ports/security/p5-Net_SSLeay/Makefile,v > retrieving revision 1.69 > diff -u -p -r1.69 Makefile > --- security/p5-Net_SSLeay/Makefile 18 Mar 2018 16:47:58 - 1.69 > +++ security/p5-Net_SSLeay/Makefile 22 Oct 2018 18:38:55 - > @@ -3,6 +3,7 @@ > COMMENT =perl module for using OpenSSL > > DISTNAME = Net-SSLeay-1.85 > +REVISION = 0 > > CATEGORIES = security > > Index: security/p5-Net_SSLeay/patches/patch-SSLeay_xs > === > RCS file: security/p5-Net_SSLeay/patches/patch-SSLeay_xs > diff -N security/p5-Net_SSLeay/patches/patch-SSLeay_xs > --- /dev/null 1 Jan 1970 00:00:00 - > +++ security/p5-Net_SSLeay/patches/patch-SSLeay_xs22 Oct 2018 18:35:59 > - @@ -0,0 +1,23 @@ > +$OpenBSD$ > + > +Index: SSLeay.xs > +--- SSLeay.xs.orig > SSLeay.xs > +@@ -5612,7 +5612,7 @@ SSL_get_client_random(s) > + > + #endif > + > +-#if OPENSSL_VERSION_NUMBER >= 0x1010L && > !defined(LIBRESSL_VERSION_NUMBER) ++#if (OPENSSL_VERSION_NUMBER >= > 0x1010L && !defined(LIBRESSL_VERSION_NUMBER)) || > (LIBRESSL_VERSION_NUMBER >= 0x207fL) + > + void > + SSL_get_server_random(s) > +@@ -5643,7 +5643,7 @@ int > + SSL_get_keyblock_size(s) > + SSL * s > + CODE: > +-#if OPENSSL_VERSION_NUMBER >= 0x1010L && > !defined(LIBRESSL_VERSION_NUMBER) ++#if (OPENSSL_VERSION_NUMBER >= > 0x1010L && !defined(LIBRESSL_VERSION_NUMBER)) || > (LIBRESSL_VERSION_NUMBER >= 0x207fL) + const SSL_CIPHER > *ssl_cipher; > + int cipher = NID_undef, digest = NID_undef, mac_secret_size = 0; > + const EVP_CIPHER *c = NULL;
Re: security/p5-Net_SSLeay: get MAC secret size from cipher
On Monday 22 October 2018 19:05:44 Alexander Bluhm wrote: > On Tue, Oct 23, 2018 at 03:21:23AM +1100, Joel Sing wrote: > > P.S. There is more functionality that could be enabled for LibreSSL, which > > is currently being explicitly disabled... > > When a new Net::SSLeay is released, I disable things that are not > supported by current LibreSSL. But how can I be informed when > something is later added to LibreSSL? And to which version is it > added? Ideally (but not always possible/easy) it should be based on functional tests, so that features are enabled as/when symbols become available. Failing that, the next best option would be the LibreSSL release notes. > > ++#if OPENSSL_VERSION_NUMBER >= 0x1010L || \ > > ++(defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER >= > > 0x207fL) > This does not work for older versions of LibreSSL. Our > OPENSSL_VERSION_NUMBER is 0x2000L, so it is always true. Yup, I've messed this up (both in this diff and the others). > In other places we use this idiom > > #if (OPENSSL_VERSION_NUMBER >= 0x1010L && > !defined(LIBRESSL_VERSION_NUMBER)) || (LIBRESSL_VERSION_NUMBER >= > 0x207fL) That works, but seems a little backwards, since you're potentially still evaluating LIBRESSL_VERSION_NUMBER even when it is not defined. I think the following would be preferable (and I'll check what we've used elsewhere more carefully): #if OPENSSL_VERSION_NUMBER >= 0x1010L && \ (!defined(LIBRESSL_VERSION_NUMBER) || LIBRESSL_VERSION_NUMBER >= 0x207fL)
security/wpa_supplicant: get MAC secret size from cipher
Get the MAC secret size from the cipher, rather than reaching into libssl internals. This effectively takes the OpenSSL 1.1 code path instead of the OpenSSL 1.0 code path, and will allow for further libssl clean up. While here use some additional OpenSSL 1.1 code paths and const related changes. ok? Index: Makefile === RCS file: /cvs/ports/security/wpa_supplicant/Makefile,v retrieving revision 1.38 diff -u -p -u -p -r1.38 Makefile --- Makefile4 Sep 2018 12:46:21 - 1.38 +++ Makefile22 Oct 2018 16:31:35 - @@ -3,7 +3,7 @@ COMMENT= IEEE 802.1X supplicant DISTNAME= wpa_supplicant-2.6 -REVISION= 3 +REVISION= 4 CATEGORIES=security net HOMEPAGE= http://w1.fi/wpa_supplicant/ Index: patches/patch-src_crypto_crypto_openssl_c === RCS file: /cvs/ports/security/wpa_supplicant/patches/patch-src_crypto_crypto_openssl_c,v retrieving revision 1.2 diff -u -p -u -p -r1.2 patch-src_crypto_crypto_openssl_c --- patches/patch-src_crypto_crypto_openssl_c 19 Feb 2018 18:24:21 - 1.2 +++ patches/patch-src_crypto_crypto_openssl_c 22 Oct 2018 16:31:35 - @@ -15,12 +15,23 @@ Index: src/crypto/crypto_openssl.c /* Compatibility wrappers for older versions. */ static HMAC_CTX * HMAC_CTX_new(void) -@@ -712,7 +713,7 @@ err: +@@ -79,7 +80,8 @@ static void EVP_MD_CTX_free(EVP_MD_CTX *ctx) + + static BIGNUM * get_group5_prime(void) + { +-#if OPENSSL_VERSION_NUMBER >= 0x1010L && !defined(LIBRESSL_VERSION_NUMBER) ++#if OPENSSL_VERSION_NUMBER >= 0x1010L || \ ++(defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER >= 0x207fL) + return BN_get_rfc3526_prime_1536(NULL); + #elif !defined(OPENSSL_IS_BORINGSSL) + return get_rfc3526_prime_1536(NULL); +@@ -712,7 +714,8 @@ err: void * dh5_init_fixed(const struct wpabuf *priv, const struct wpabuf *publ) { -#if OPENSSL_VERSION_NUMBER < 0x1010L -+#if OPENSSL_VERSION_NUMBER < 0x1010L || defined(LIBRESSL_VERSION_NUMBER) ++#if OPENSSL_VERSION_NUMBER < 0x1010L || \ ++(defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x207fL) DH *dh; dh = DH_new(); Index: patches/patch-src_crypto_tls_openssl_c === RCS file: /cvs/ports/security/wpa_supplicant/patches/patch-src_crypto_tls_openssl_c,v retrieving revision 1.5 diff -u -p -u -p -r1.5 patch-src_crypto_tls_openssl_c --- patches/patch-src_crypto_tls_openssl_c 19 Feb 2018 18:24:21 - 1.5 +++ patches/patch-src_crypto_tls_openssl_c 22 Oct 2018 16:31:35 - @@ -14,16 +14,17 @@ Index: src/crypto/tls_openssl.c !defined(BORINGSSL_API_VERSION) /* * SSL_get_client_random() and SSL_get_server_random() were added in OpenSSL -@@ -919,7 +919,7 @@ void * tls_init(const struct tls_config *conf) +@@ -919,7 +919,8 @@ void * tls_init(const struct tls_config *conf) } #endif /* OPENSSL_FIPS */ #endif /* CONFIG_FIPS */ -#if OPENSSL_VERSION_NUMBER < 0x1010L -+#if OPENSSL_VERSION_NUMBER < 0x1010L || defined(LIBRESSL_VERSION_NUMBER) ++#if OPENSSL_VERSION_NUMBER < 0x1010L || \ ++(defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x207fL) SSL_load_error_strings(); SSL_library_init(); #ifndef OPENSSL_NO_SHA256 -@@ -1043,7 +1043,7 @@ void tls_deinit(void *ssl_ctx) +@@ -1043,7 +1044,7 @@ void tls_deinit(void *ssl_ctx) tls_openssl_ref_count--; if (tls_openssl_ref_count == 0) { @@ -32,7 +33,17 @@ Index: src/crypto/tls_openssl.c #ifndef OPENSSL_NO_ENGINE ENGINE_cleanup(); #endif /* OPENSSL_NO_ENGINE */ -@@ -3976,7 +3976,7 @@ int tls_connection_set_params(void *tls_ctx, struct tl +@@ -3105,7 +3106,8 @@ int tls_connection_get_random(void *ssl_ctx, struct tl + #ifdef OPENSSL_NEED_EAP_FAST_PRF + static int openssl_get_keyblock_size(SSL *ssl) + { +-#if OPENSSL_VERSION_NUMBER < 0x1010L || defined(LIBRESSL_VERSION_NUMBER) ++#if OPENSSL_VERSION_NUMBER < 0x1010L || \ ++(defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x207fL) + const EVP_CIPHER *c; + const EVP_MD *h; + int md_size; +@@ -3976,7 +3978,7 @@ int tls_connection_set_params(void *tls_ctx, struct tl engine_id = "pkcs11"; #if defined(EAP_FAST) || defined(EAP_FAST_DYNAMIC) || defined(EAP_SERVER_FAST) @@ -41,7 +52,17 @@ Index: src/crypto/tls_openssl.c if (params->flags & TLS_CONN_EAP_FAST) { wpa_printf(MSG_DEBUG, "OpenSSL: Use TLSv1_method() for EAP-FAST"); -@@ -4159,7 +4159,7 @@ static int tls_sess_sec_cb(SSL *s, void *secret, int * +@@ -4146,7 +4148,8 @@ int tls_global_set_params(void *tls_ctx, + * commented out unless explicitly needed for EAP-FAST in order to be able to + * build this file with unmodified o
net/freeradius3: get MAC secret size from cipher
Get the MAC secret size from the cipher, rather than reaching into libssl internals. This effectively takes the OpenSSL 1.1 code path instead of the OpenSSL 1.0 code path, and will allow for further libssl clean up. While here use some additional OpenSSL 1.1 code paths and const related changes. ok? Index: Makefile === RCS file: /cvs/ports/net/freeradius3/Makefile,v retrieving revision 1.32 diff -u -p -u -p -r1.32 Makefile --- Makefile19 Apr 2018 20:48:31 - 1.32 +++ Makefile22 Oct 2018 16:23:56 - @@ -12,6 +12,7 @@ COMMENT-pgsql=freeradius pgsql rlm addo COMMENT-python=freeradius python rlm addon V= 3.0.17 +REVISION= 0 DISTNAME= freeradius-server-$V EXTRACT_SUFX= .tar.bz2 Index: patches/patch-src_main_tls_c === RCS file: /cvs/ports/net/freeradius3/patches/patch-src_main_tls_c,v retrieving revision 1.5 diff -u -p -u -p -r1.5 patch-src_main_tls_c --- patches/patch-src_main_tls_c19 Apr 2018 20:48:31 - 1.5 +++ patches/patch-src_main_tls_c22 Oct 2018 16:23:56 - @@ -3,7 +3,37 @@ $OpenBSD: patch-src_main_tls_c,v 1.5 201 Index: src/main/tls.c --- src/main/tls.c.orig +++ src/main/tls.c -@@ -3015,7 +3015,7 @@ post_ca: +@@ -1510,7 +1510,8 @@ done: + return 0; + } + +-#if OPENSSL_VERSION_NUMBER < 0x1010L || defined(LIBRESSL_VERSION_NUMBER) ++#if OPENSSL_VERSION_NUMBER < 0x1010L || \ ++(defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x208fL) + static SSL_SESSION *cbtls_get_session(SSL *ssl, unsigned char *data, int len, int *copy) + #else + static SSL_SESSION *cbtls_get_session(SSL *ssl, const unsigned char *data, int len, int *copy) +@@ -2060,7 +2061,8 @@ int cbtls_verify(int ok, X509_STORE_CTX *ctx) + charcn_str[1024]; + charbuf[64]; + X509*client_cert; +-#if OPENSSL_VERSION_NUMBER >= 0x1010L && !defined(LIBRESSL_VERSION_NUMBER) ++#if OPENSSL_VERSION_NUMBER >= 0x1010L || \ ++(defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER >= 0x208fL) + const STACK_OF(X509_EXTENSION) *ext_list; + #else + STACK_OF(X509_EXTENSION) *ext_list; +@@ -2262,7 +2264,8 @@ int cbtls_verify(int ok, X509_STORE_CTX *ctx) + } + + if (lookup == 0) { +-#if OPENSSL_VERSION_NUMBER >= 0x1010L && !defined(LIBRESSL_VERSION_NUMBER) ++#if OPENSSL_VERSION_NUMBER >= 0x1010L || \ ++(defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER >= 0x207fL) + ext_list = X509_get0_extensions(client_cert); + #else + X509_CINF *client_inf; +@@ -3015,7 +3018,7 @@ post_ca: return NULL; } @@ -12,7 +42,7 @@ Index: src/main/tls.c if (!SSL_CTX_set_max_proto_version(ctx, max_version)) { ERROR("Failed setting TLS maximum version"); return NULL; -@@ -3035,7 +3035,7 @@ post_ca: +@@ -3035,7 +3038,7 @@ post_ca: #ifdef SSL_OP_NO_TLSv1 if (conf->disable_tlsv1) { ctx_options |= SSL_OP_NO_TLSv1; @@ -21,7 +51,7 @@ Index: src/main/tls.c WARN("Please use tls_min_version and tls_max_version instead of disable_tlsv1"); #endif } -@@ -3045,7 +3045,7 @@ post_ca: +@@ -3045,7 +3048,7 @@ post_ca: #ifdef SSL_OP_NO_TLSv1_1 if (conf->disable_tlsv1_1) { ctx_options |= SSL_OP_NO_TLSv1_1; @@ -30,7 +60,7 @@ Index: src/main/tls.c WARN("Please use tls_min_version and tls_max_version instead of disable_tlsv1_2"); #endif } -@@ -3056,7 +3056,7 @@ post_ca: +@@ -3056,7 +3059,7 @@ post_ca: if (conf->disable_tlsv1_2) { ctx_options |= SSL_OP_NO_TLSv1_2; Index: patches/patch-src_modules_rlm_eap_types_rlm_eap_fast_eap_fast_c === RCS file: patches/patch-src_modules_rlm_eap_types_rlm_eap_fast_eap_fast_c diff -N patches/patch-src_modules_rlm_eap_types_rlm_eap_fast_eap_fast_c --- /dev/null 1 Jan 1970 00:00:00 - +++ patches/patch-src_modules_rlm_eap_types_rlm_eap_fast_eap_fast_c 22 Oct 2018 16:23:56 - @@ -0,0 +1,15 @@ +$OpenBSD$ + +Index: src/modules/rlm_eap/types/rlm_eap_fast/eap_fast.c +--- src/modules/rlm_eap/types/rlm_eap_fast/eap_fast.c.orig src/modules/rlm_eap/types/rlm_eap_fast/eap_fast.c +@@ -44,7 +44,8 @@ static int openssl_get_keyblock_size(REQUEST *request, + { + const EVP_CIPHER *c; + const EVP_MD *h; +-#if OPENSSL_VERSION_NUMBER < 0x1010L || defined(LIBRESSL_VERSION_NUMBER) ++#if OPENSSL_VERSION_NUMBER < 0x1010L || \ ++(defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x207fL) + int md_size; + + if (ssl->enc_read_ctx == NULL || ssl->enc_read_ctx->cipher == NULL || Index: patches/patch-src_modules_rlm_eap_types_r
security/p5-Net_SSLeay: get MAC secret size from cipher
Get the MAC secret size from the cipher, rather than reaching into libssl internals. This effectively takes the OpenSSL 1.1 code path instead of the OpenSSL 1.0 code path, and will allow for further libssl clean up. ok? P.S. There is more functionality that could be enabled for LibreSSL, which is currently being explicitly disabled... Index: Makefile === RCS file: /cvs/ports/security/p5-Net_SSLeay/Makefile,v retrieving revision 1.69 diff -u -p -u -p -r1.69 Makefile --- Makefile18 Mar 2018 16:47:58 - 1.69 +++ Makefile22 Oct 2018 16:14:48 - @@ -3,6 +3,7 @@ COMMENT = perl module for using OpenSSL DISTNAME = Net-SSLeay-1.85 +REVISION = 0 CATEGORIES = security Index: patches/patch-SSLeay_xs === RCS file: patches/patch-SSLeay_xs diff -N patches/patch-SSLeay_xs --- /dev/null 1 Jan 1970 00:00:00 - +++ patches/patch-SSLeay_xs 22 Oct 2018 16:14:48 - @@ -0,0 +1,25 @@ +$OpenBSD$ + +Index: SSLeay.xs +--- SSLeay.xs.orig SSLeay.xs +@@ -5612,7 +5612,8 @@ SSL_get_client_random(s) + + #endif + +-#if OPENSSL_VERSION_NUMBER >= 0x1010L && !defined(LIBRESSL_VERSION_NUMBER) ++#if OPENSSL_VERSION_NUMBER >= 0x1010L || \ ++(defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER >= 0x207fL) + + void + SSL_get_server_random(s) +@@ -5643,7 +5644,8 @@ int + SSL_get_keyblock_size(s) + SSL * s + CODE: +-#if OPENSSL_VERSION_NUMBER >= 0x1010L && !defined(LIBRESSL_VERSION_NUMBER) ++#if OPENSSL_VERSION_NUMBER >= 0x1010L || \ ++(defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER >= 0x207fL) + const SSL_CIPHER *ssl_cipher; + int cipher = NID_undef, digest = NID_undef, mac_secret_size = 0; + const EVP_CIPHER *c = NULL;
x11/freerdp: stop reaching into libssl internals to send TLS alerts
x11/freerdp currently reaches deep into libssl internals, in order to send TLS alerts. AFAIK OpenSSL 1.1 does not provide any way for TLS alerts to be triggered outside the library and freerdp's approach is to simply disable this code. Do the same thing for current LibreSSL, so that we can make these internals internal. ok? Index: Makefile === RCS file: /cvs/ports/x11/freerdp/Makefile,v retrieving revision 1.33 diff -u -p -u -p -r1.33 Makefile --- Makefile14 Aug 2018 08:36:49 - 1.33 +++ Makefile22 Oct 2018 16:08:45 - @@ -6,7 +6,7 @@ BROKEN-hppa = undefined reference to __ COMMENT = open source client for Windows Terminal Server DISTNAME = freerdp-2.0.0-rc1 PKGNAME = freerdp-2.0.0rc1 -REVISION = 0 +REVISION = 1 CATEGORIES = x11 net SHARED_LIBS += freerdp-client2 0.0 # 2.0 Index: patches/patch-libfreerdp_crypto_tls_c === RCS file: patches/patch-libfreerdp_crypto_tls_c diff -N patches/patch-libfreerdp_crypto_tls_c --- /dev/null 1 Jan 1970 00:00:00 - +++ patches/patch-libfreerdp_crypto_tls_c 22 Oct 2018 16:08:45 - @@ -0,0 +1,17 @@ +$OpenBSD$ + +Stop reaching into libssl internals to send TLS alerts. + +Index: libfreerdp/crypto/tls.c +--- libfreerdp/crypto/tls.c.orig libfreerdp/crypto/tls.c +@@ -1020,7 +1020,8 @@ BOOL tls_send_alert(rdpTls* tls) +* FIXME: The following code does not work on OpenSSL > 1.1.0 because the +*SSL struct is opaqe now +*/ +-#if OPENSSL_VERSION_NUMBER < 0x1010L || defined(LIBRESSL_VERSION_NUMBER) ++#if OPENSSL_VERSION_NUMBER < 0x1010L || \ ++(defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x208fL) + + if (tls->alertDescription != TLS_ALERT_DESCRIPTION_CLOSE_NOTIFY) + {
Re: fix net/ntp after libcrypto bumps
On Sunday 26 August 2018 12:52:52 Theo Buehler wrote: > A simple one: This doesn't look right - the entire OPENSSL_VERSION_NUMBER < 1.1.0 path (on line 40 of include/libssl_compat.h) should no longer be taken (or substantially reduced). > Index: patches/patch-include_libssl_compat_h > === > RCS file: /var/cvs/ports/net/ntp/patches/patch-include_libssl_compat_h,v > retrieving revision 1.2 > diff -u -p -r1.2 patch-include_libssl_compat_h > --- patches/patch-include_libssl_compat_h 27 Mar 2017 11:33:40 - > 1.2 > +++ patches/patch-include_libssl_compat_h 26 Aug 2018 10:47:47 - > @@ -1,6 +1,7 @@ > $OpenBSD: patch-include_libssl_compat_h,v 1.2 2017/03/27 11:33:40 bluhm Exp > $ include/libssl_compat.h.orig Thu Mar 23 19:36:53 2017 > -+++ include/libssl_compat.h Thu Mar 23 19:58:13 2017 > +Index: include/libssl_compat.h > +--- include/libssl_compat.h.orig > include/libssl_compat.h > @@ -37,7 +37,7 @@ > #endif > > @@ -10,3 +11,16 @@ $OpenBSD: patch-include_libssl_compat_h, > /* - */ > > # include > +@@ -107,10 +107,12 @@ extern int sslshim_X509_get_signature_nid(const > X509 > * + > + #define OpenSSL_version_num SSLeay > + #define OpenSSL_version SSLeay_version > ++#if !defined(LIBRESSL_VERSION_NUMBER) > + #define X509_get0_notBefore X509_get_notBefore > + #define X509_getm_notBefore X509_get_notBefore > + #define X509_get0_notAfter X509_get_notAfter > + #define X509_getm_notAfter X509_get_notAfter > ++#endif > + > + /* - */ > + #endif /* OPENSSL_VERSION_NUMBER < v1.1.0 */
Re: [update] lang/go 1.10
On Saturday 10 March 2018 13:19:06 Stuart Henderson wrote: > On 2018/03/09 20:08, Jasper Lievisse Adriaanse wrote: > > On Sat, Mar 10, 2018 at 03:45:36AM +1100, Joel Sing wrote: > > > - The -x flag was previously on by default, which makes builds > > > incredibly > > > > > > noisy. I've turned this off, but enabled it if DEBUG is specified. > > > > I'm not a fan of this part. For many other ports we explicitly instruct > > the build framework to show us the actual commands being executed, so I'd > > like it for go to keep doing this. > > I agree, having build command lines in bulk build logs has been > invaluable in the past and we generally enable them in other ports. > > On the other hand I realise it can make it harder to spot warnings in > build output when building things by hand and I wouldn't mind having > it controllable via a mk.conf "user settings" variable. Not necessarily > specific to Go, this could be used in other places too. Something like > a "PORTS_QUIETBUILD = Yes" variable perhaps? > > I wouldn't expect it to ever be supported everywhere nor would I want > to see patches to upstream files just for this, but where there's a > simple quiet/noisy flag (V=1 or --disable-silent-rules) it could be > controlled by this. The motivation behind this was that while updating two of the packages that are included in the diff, I lost the actual build/test failure since it had disappeared and got lost in the noise (in one case I think it even scrolled off my tmux history buffer). I can understand the benefit of seeing inside the sausage factory, however at least in this use case, it is IMO just too noisy (I'm not aware of anyone that runs go commands with -x, unless they're debugging) That said, I can keep this as a local diff and will drop it from the update to go.port.mk.
[update] lang/go 1.10
The following updates lang/go to 1.10. This also brings the golang.org/x packages up to around the time of the Go 1.10 release: devel/go-sys devel/go-tools net/go-net security/go-crypto textproc/go-text Last but not least, there are some changes to go.port.mk: - Go 1.10 has a test cache - for some reason this does not play completely well with the ports build machinery and since it provides no benefit in this environment, GOCACHE=off is used to disable it. - MODGO_TEST_FLAGS allows flags to be specified for tests - the net/go-net package makes use of this to run with -test.short, which disables tests with external network dependencies. - The -x flag was previously on by default, which makes builds incredibly noisy. I've turned this off, but enabled it if DEBUG is specified. Passes regress on amd64 and i386. ok? Index: lang/go/Makefile === RCS file: /cvs/ports/lang/go/Makefile,v retrieving revision 1.48 diff -u -p -r1.48 Makefile --- lang/go/Makefile28 Nov 2017 16:27:21 - 1.48 +++ lang/go/Makefile9 Mar 2018 11:53:12 - @@ -4,7 +4,7 @@ ONLY_FOR_ARCHS =${GO_ARCHS} COMMENT = Go programming language -VERSION = 1.9.2 +VERSION = 1.10 EXTRACT_SUFX = .src.tar.gz DISTNAME = go${VERSION} PKGNAME = go-${VERSION} @@ -66,7 +66,7 @@ do-build: do-test: @cd ${WRKSRC} && \ ulimit -n 256 -d 2097152 && \ - PATH=${WRKDIST}/bin:${PATH} GOROOT=${WRKDIST} ./run.bash + PATH=${WRKDIST}/bin:${PATH} GOROOT=${WRKDIST} GOCACHE=off ./run.bash do-install: ${INSTALL_PROGRAM_DIR} ${GOROOT} @@ -84,7 +84,7 @@ do-install: -exec ${INSTALL_DATA} -p {} \ ${GOROOT} \; -. for dir in api doc lib misc src pkg/include pkg/obj pkg/${GOCFG} test +. for dir in api doc lib misc src pkg/include pkg/${GOCFG} test @cd ${WRKDIST} && \ find ${dir} -type d \ -exec ${INSTALL_DATA_DIR} \ Index: lang/go/distinfo === RCS file: /cvs/ports/lang/go/distinfo,v retrieving revision 1.28 diff -u -p -r1.28 distinfo --- lang/go/distinfo28 Nov 2017 16:27:21 - 1.28 +++ lang/go/distinfo9 Mar 2018 11:53:12 - @@ -1,2 +1,2 @@ -SHA256 (go1.9.2.src.tar.gz) = Zl8YS/isiZhs/VpEYHNpdvYLV99rMgrXGtTO9TuxQ9w= -SIZE (go1.9.2.src.tar.gz) = 16383591 +SHA256 (go1.10.src.tar.gz) = 895JKJQF/aX9FIOo/mvS+lRp4AX9Vn32RIXE+gAMfyQ= +SIZE (go1.10.src.tar.gz) = 18300467 Index: lang/go/go.port.mk === RCS file: /cvs/ports/lang/go/go.port.mk,v retrieving revision 1.17 diff -u -p -r1.17 go.port.mk --- lang/go/go.port.mk 2 Dec 2017 09:29:14 - 1.17 +++ lang/go/go.port.mk 9 Mar 2018 11:53:12 - @@ -22,10 +22,10 @@ MODGO_SUBDIR ?= ${WRKDIST} MODGO_TYPE ?= bin MODGO_WORKSPACE ?= ${WRKDIR}/go MODGO_GOPATH ?=${MODGO_WORKSPACE}:${MODGO_PACKAGE_PATH} -MODGO_ENV += GOPATH="${MODGO_GOPATH}" PATH="${PORTPATH}" +MODGO_ENV += GOCACHE=off GOPATH="${MODGO_GOPATH}" PATH="${PORTPATH}" MODGO_CMD ?= ${SETENV} ${MODGO_ENV} go MODGO_BUILD_CMD = ${MODGO_CMD} install ${MODGO_FLAGS} -MODGO_TEST_CMD = ${MODGO_CMD} test ${MODGO_FLAGS} +MODGO_TEST_CMD = ${MODGO_CMD} test ${MODGO_FLAGS} ${MODGO_TEST_FLAGS} .if ! empty(MODGO_LDFLAGS) MODGO_BUILD_CMD += -ldflags="${MODGO_LDFLAGS}" @@ -45,11 +45,12 @@ MODGO_SETUP_WORKSPACE = mkdir -p ${WRKSR CATEGORIES += lang/go MODGO_BUILD_TARGET = ${MODGO_BUILD_CMD} ${ALL_TARGET} -MODGO_FLAGS += -x .if empty(DEBUG) # by default omit symbol table, debug information and DWARF symbol table MODGO_LDFLAGS += -s -w +.else +MODGO_FLAGS += -x .endif INSTALL_STRIP = Index: lang/go/patches/patch-src_cmd_go_go_test_go === RCS file: lang/go/patches/patch-src_cmd_go_go_test_go diff -N lang/go/patches/patch-src_cmd_go_go_test_go --- lang/go/patches/patch-src_cmd_go_go_test_go 28 Nov 2017 16:27:21 - 1.3 +++ /dev/null 1 Jan 1970 00:00:00 - @@ -1,14 +0,0 @@ -$OpenBSD: patch-src_cmd_go_go_test_go,v 1.3 2017/11/28 16:27:21 jsing Exp $ -Index: src/cmd/go/go_test.go src/cmd/go/go_test.go.orig -+++ src/cmd/go/go_test.go -@@ -3493,6 +3493,9 @@ func TestCgoConsistentResults(t *testing.T) { - switch runtime.GOOS { - case "freebsd": - testenv.SkipFlaky(t, 15405) -+ case "openbsd": -+ // TODO(jsing): Figure out why this is occurring and re-enable. -+ t.Skip("skipping because test fails with clang under a ports build") - case "solaris": - testenv.SkipFlaky(t, 13247) -
Re: [lang/go-bootstrap] Switch to go1.4 release tarball
On Tuesday 10 October 2017 09:53:43 Stuart Henderson wrote: > On 2017/10/09 03:34, Joel Sing wrote: > > Upstream is providing a tarball of the release-branch.go1.4 git branch, > > which contains minor fixes to keep Go 1.4 building on current platforms. > > Most of the patches that we currently have for lang/go-bootstrap have > > been committed upstream - one of these is already in the go1.4 > > release tarball that is available, while some have been committed and > > > > will appear in the next tarball that's created: > > https://github.com/golang/go/issues/20672 > > > > Switch to the go1.4 release tarball so that we can drop a patch now and > > in the future, drop most of the remaining patches. > > > > ok? > > before, $ make show=PKGNAMES > go-bootstrap-1.4.3p4 > > after,$ make show=PKGNAMES > go-bootstrap-20170531 > > ok either way but I wonder if it would be better to keep 1.4 in the > package name (e.g. something like 1.4.20170531)? I had actually pondered the same thing - I'll change it to what you suggest since I agree that it is more intuitive/useful. Thanks. > > Index: Makefile > > === > > RCS file: /cvs/ports/lang/go-bootstrap/Makefile,v > > retrieving revision 1.6 > > diff -u -p -u -p -r1.6 Makefile > > --- Makefile8 Oct 2017 15:40:56 - 1.6 > > +++ Makefile8 Oct 2017 16:28:57 - > > @@ -4,11 +4,9 @@ ONLY_FOR_ARCHS = ${GO_ARCHS} > > > > COMMENT = Go programming language > > > > -VERSION = 1.4.3 > > -EXTRACT_SUFX = .src.tar.gz > > -DISTNAME = go${VERSION} > > +VERSION = 20170531 > > +DISTNAME = go1.4-bootstrap-${VERSION} > > > > PKGNAME = go-bootstrap-${VERSION} > > > > -REVISION = 4 > > > > CATEGORIES = lang > > > > HOMEPAGE = https://golang.org/ > > > > @@ -22,7 +20,7 @@ PERMIT_DISTFILES_FTP = bootstrap only > > > > WANTLIB = c m pthread > > > > -MASTER_SITES = https://golang.org/dl/ > > +MASTER_SITES = https://storage.googleapis.com/golang/ > > > > BUILD_DEPENDS =shells/bash > > > > @@ -84,7 +82,7 @@ do-install: > > ${INSTALL_PROGRAM} -p ${WRKDIST}/bin/go{,fmt} ${GOROOT}/bin > > > > @cd ${WRKDIST} && \ > > > > - find . ! -name .hg\* -type f -maxdepth 1 \ > > + find . ! -name .git\* ! -name .hg\* -type f -maxdepth 1 \ > > > > -exec ${INSTALL_DATA} -p {} \ > > ${GOROOT} \; > > > > Index: distinfo > > === > > RCS file: /cvs/ports/lang/go-bootstrap/distinfo,v > > retrieving revision 1.1.1.1 > > diff -u -p -u -p -r1.1.1.1 distinfo > > --- distinfo4 Dec 2015 17:19:18 - 1.1.1.1 > > +++ distinfo8 Oct 2017 16:28:57 - > > @@ -1,2 +1,2 @@ > > -SHA256 (go1.4.3.src.tar.gz) = > > mUf8cFsLhBtZOMSLItwz6WR+wHUrrmblAnjfTyP2SVk= > > -SIZE (go1.4.3.src.tar.gz) = 10875170 > > +SHA256 (go1.4-bootstrap-20170531.tar.gz) = > > SfgG9mdiB3hht95wgfWGmVlAdy0p1MRQaME0RBp0P6I= +SIZE > > (go1.4-bootstrap-20170531.tar.gz) = 11315348 > > Index: patches/patch-src_time_time_test_go > > === > > RCS file: patches/patch-src_time_time_test_go > > diff -N patches/patch-src_time_time_test_go > > --- patches/patch-src_time_time_test_go 8 Oct 2017 15:40:56 - > > 1.1 > > +++ /dev/null 1 Jan 1970 00:00:00 - > > @@ -1,14 +0,0 @@ > > -$OpenBSD: patch-src_time_time_test_go,v 1.1 2017/10/08 15:40:56 jsing Exp > > $ - > > -Index: src/time/time_test.go > > src/time/time_test.go.orig > > -+++ src/time/time_test.go > > -@@ -915,6 +915,8 @@ func TestCountMallocs(t *testing.T) { > > - } > > - > > - func TestLoadFixed(t *testing.T) { > > -+ t.Skip("skipping test for Go 1.4; Issue 17545") > > -+ > > - // Issue 4064: handle locations without any zone transitions. > > - loc, err := LoadLocation("Etc/GMT+1") > > - if err != nil { > > Index: pkg/PLIST > > === > > RCS file: /cvs/ports/lang/go-bootstrap/pkg/PLIST,v > > retrieving revision 1.2 > > diff -u -p -u -p -r1.2 PLIST > > --- p
[lang/go-bootstrap] Switch to go1.4 release tarball
Upstream is providing a tarball of the release-branch.go1.4 git branch, which contains minor fixes to keep Go 1.4 building on current platforms. Most of the patches that we currently have for lang/go-bootstrap have been committed upstream - one of these is already in the go1.4 release tarball that is available, while some have been committed and will appear in the next tarball that's created: https://github.com/golang/go/issues/20672 Switch to the go1.4 release tarball so that we can drop a patch now and in the future, drop most of the remaining patches. ok? Index: Makefile === RCS file: /cvs/ports/lang/go-bootstrap/Makefile,v retrieving revision 1.6 diff -u -p -u -p -r1.6 Makefile --- Makefile8 Oct 2017 15:40:56 - 1.6 +++ Makefile8 Oct 2017 16:28:57 - @@ -4,11 +4,9 @@ ONLY_FOR_ARCHS = ${GO_ARCHS} COMMENT = Go programming language -VERSION = 1.4.3 -EXTRACT_SUFX = .src.tar.gz -DISTNAME = go${VERSION} +VERSION = 20170531 +DISTNAME = go1.4-bootstrap-${VERSION} PKGNAME = go-bootstrap-${VERSION} -REVISION = 4 CATEGORIES = lang HOMEPAGE = https://golang.org/ @@ -22,7 +20,7 @@ PERMIT_DISTFILES_FTP = bootstrap only WANTLIB = c m pthread -MASTER_SITES = https://golang.org/dl/ +MASTER_SITES = https://storage.googleapis.com/golang/ BUILD_DEPENDS =shells/bash @@ -84,7 +82,7 @@ do-install: ${INSTALL_PROGRAM} -p ${WRKDIST}/bin/go{,fmt} ${GOROOT}/bin @cd ${WRKDIST} && \ - find . ! -name .hg\* -type f -maxdepth 1 \ + find . ! -name .git\* ! -name .hg\* -type f -maxdepth 1 \ -exec ${INSTALL_DATA} -p {} \ ${GOROOT} \; Index: distinfo === RCS file: /cvs/ports/lang/go-bootstrap/distinfo,v retrieving revision 1.1.1.1 diff -u -p -u -p -r1.1.1.1 distinfo --- distinfo4 Dec 2015 17:19:18 - 1.1.1.1 +++ distinfo8 Oct 2017 16:28:57 - @@ -1,2 +1,2 @@ -SHA256 (go1.4.3.src.tar.gz) = mUf8cFsLhBtZOMSLItwz6WR+wHUrrmblAnjfTyP2SVk= -SIZE (go1.4.3.src.tar.gz) = 10875170 +SHA256 (go1.4-bootstrap-20170531.tar.gz) = SfgG9mdiB3hht95wgfWGmVlAdy0p1MRQaME0RBp0P6I= +SIZE (go1.4-bootstrap-20170531.tar.gz) = 11315348 Index: patches/patch-src_time_time_test_go === RCS file: patches/patch-src_time_time_test_go diff -N patches/patch-src_time_time_test_go --- patches/patch-src_time_time_test_go 8 Oct 2017 15:40:56 - 1.1 +++ /dev/null 1 Jan 1970 00:00:00 - @@ -1,14 +0,0 @@ -$OpenBSD: patch-src_time_time_test_go,v 1.1 2017/10/08 15:40:56 jsing Exp $ - -Index: src/time/time_test.go src/time/time_test.go.orig -+++ src/time/time_test.go -@@ -915,6 +915,8 @@ func TestCountMallocs(t *testing.T) { - } - - func TestLoadFixed(t *testing.T) { -+ t.Skip("skipping test for Go 1.4; Issue 17545") -+ - // Issue 4064: handle locations without any zone transitions. - loc, err := LoadLocation("Etc/GMT+1") - if err != nil { Index: pkg/PLIST === RCS file: /cvs/ports/lang/go-bootstrap/pkg/PLIST,v retrieving revision 1.2 diff -u -p -u -p -r1.2 PLIST --- pkg/PLIST 4 Jun 2017 17:50:16 - 1.2 +++ pkg/PLIST 8 Oct 2017 16:28:58 - @@ -375,11 +375,47 @@ go/bootstrap/misc/chrome/gophertool/goph go/bootstrap/misc/chrome/gophertool/manifest.json go/bootstrap/misc/chrome/gophertool/popup.html go/bootstrap/misc/chrome/gophertool/popup.js +go/bootstrap/misc/dashboard/ +go/bootstrap/misc/dashboard/codereview/ +go/bootstrap/misc/dashboard/codereview/app.yaml +go/bootstrap/misc/dashboard/codereview/cron.yaml +go/bootstrap/misc/dashboard/codereview/dashboard/ +go/bootstrap/misc/dashboard/codereview/dashboard/cl.go +go/bootstrap/misc/dashboard/codereview/dashboard/front.go +go/bootstrap/misc/dashboard/codereview/dashboard/gc.go +go/bootstrap/misc/dashboard/codereview/dashboard/mail.go +go/bootstrap/misc/dashboard/codereview/dashboard/people.go +go/bootstrap/misc/dashboard/codereview/index.yaml +go/bootstrap/misc/dashboard/codereview/queue.yaml +go/bootstrap/misc/dashboard/codereview/static/ +go/bootstrap/misc/dashboard/codereview/static/gopherstamp.jpg +go/bootstrap/misc/dashboard/codereview/static/icon.png go/bootstrap/misc/editors go/bootstrap/misc/git/ go/bootstrap/misc/git/pre-commit go/bootstrap/misc/linkcheck/ go/bootstrap/misc/linkcheck/linkcheck.go +go/bootstrap/misc/makerelease/ +go/bootstrap/misc/makerelease/darwin/ +go/bootstrap/misc/makerelease/darwin/Distribution +go/bootstrap/misc/makerelease/darwin/Resources/ +go/bootstrap/misc/makerelease/darwin/Resources/bg.png +go/bootstrap/misc/makerelease/darwin/etc/ +go/bootstrap/misc/makerel
[update] various go-* packages
This brings security/go-crypto, net/go-net, textproc/go-text and devel/go-tools up to versions that match the time of the Go 1.9 release. This depends on the new devel/go-sys package. It is worth noting that some of the SSH related regress tests fail, however these also fail on the current versions - I've not had time to dig into the issue, however I suspect it is due to feature removal within OpenSSH itself. ok? Index: security/go-crypto/Makefile === RCS file: /cvs/ports/security/go-crypto/Makefile,v retrieving revision 1.4 diff -u -p -r1.4 Makefile --- security/go-crypto/Makefile 23 Feb 2017 16:01:09 - 1.4 +++ security/go-crypto/Makefile 28 Aug 2017 16:59:41 - @@ -1,10 +1,10 @@ # $OpenBSD: Makefile,v 1.4 2017/02/23 16:01:09 jsing Exp $ COMMENT = Go supplementary cryptography libraries -DISTNAME = go-crypto-20170201 +DISTNAME = go-crypto-20170824 GH_ACCOUNT = golang GH_PROJECT = crypto -GH_COMMIT =dc137beb6cce2043eb6b5f223ab8bf51c32459f4 +GH_COMMIT =eb71ad9bd329b5ac0fd0148dd99bd62e8be8e035 CATEGORIES = security devel HOMEPAGE = https://godoc.org/golang.org/x/crypto @@ -20,10 +20,12 @@ MODULES = lang/go MODGO_TYPE = lib -# The acme and acme\autocert packages are not currently enabled, since -# there is now a lovely circular dependency with the go-net package... +BUILD_DEPENDS = devel/go-sys + _MAIN =golang.org/x/crypto -_SUBPKGS = bcrypt \ +_SUBPKGS = acme \ + acme/autocert \ + bcrypt \ blake2b \ blake2s \ blowfish \ @@ -31,11 +33,13 @@ _SUBPKGS = bcrypt \ cast5 \ chacha20poly1305 \ chacha20poly1305/internal/chacha20 \ + cryptobyte \ curve25519 \ ed25519 \ ed25519/internal/edwards25519 \ hkdf \ md4 \ + nacl/auth \ nacl/box \ nacl/secretbox \ ocsp \ @@ -58,12 +62,14 @@ _SUBPKGS = bcrypt \ sha3 \ ssh \ ssh/agent \ + ssh/knownhosts \ ssh/terminal \ ssh/test \ tea \ twofish \ xtea \ xts + ALL_TARGET = ${_SUBPKGS:%=${_MAIN}/%} WRKSRC = ${MODGO_WORKSPACE}/src/${_MAIN} Index: security/go-crypto/distinfo === RCS file: /cvs/ports/security/go-crypto/distinfo,v retrieving revision 1.4 diff -u -p -r1.4 distinfo --- security/go-crypto/distinfo 6 May 2017 15:10:18 - 1.4 +++ security/go-crypto/distinfo 28 Aug 2017 16:59:41 - @@ -1,2 +1,2 @@ -SHA256 (go-crypto-20170201-dc137beb.tar.gz) = AjKECpRv0MZlnrw/c9CgKTc/OlWGt/0s1ya9Wm2hEfg= -SIZE (go-crypto-20170201-dc137beb.tar.gz) = 1306030 +SHA256 (go-crypto-20170824-eb71ad9b.tar.gz) = R1YFeAE+zIP+QS9ZVYWSNAUm6caUiQyxcoGKrKuIx+A= +SIZE (go-crypto-20170824-eb71ad9b.tar.gz) = 1431301 Index: security/go-crypto/pkg/PLIST === RCS file: /cvs/ports/security/go-crypto/pkg/PLIST,v retrieving revision 1.3 diff -u -p -r1.3 PLIST --- security/go-crypto/pkg/PLIST23 Feb 2017 16:01:09 - 1.3 +++ security/go-crypto/pkg/PLIST28 Aug 2017 16:59:41 - @@ -5,6 +5,9 @@ ${MODGO_PACKAGES}/ ${MODGO_PACKAGES}/golang.org/ ${MODGO_PACKAGES}/golang.org/x/ ${MODGO_PACKAGES}/golang.org/x/crypto/ +${MODGO_PACKAGES}/golang.org/x/crypto/acme/ +${MODGO_PACKAGES}/golang.org/x/crypto/acme.a +${MODGO_PACKAGES}/golang.org/x/crypto/acme/autocert.a ${MODGO_PACKAGES}/golang.org/x/crypto/bcrypt.a ${MODGO_PACKAGES}/golang.org/x/crypto/blake2b.a ${MODGO_PACKAGES}/golang.org/x/crypto/blake2s.a @@ -15,6 +18,7 @@ ${MODGO_PACKAGES}/golang.org/x/crypto/ch ${MODGO_PACKAGES}/golang.org/x/crypto/chacha20poly1305.a ${MODGO_PACKAGES}/golang.org/x/crypto/chacha20poly1305/internal/ ${MODGO_PACKAGES}/golang.org/x/crypto/chacha20poly1305/internal/chacha20.a +${MODGO_PACKAGES}/golang.org/x/crypto/cryptobyte.a ${MODGO_PACKAGES}/golang.org/x/crypto/curve25519.a ${MODGO_PACKAGES}/golang.org/x/crypto/ed25519/ ${MODGO_PACKAGES}/golang.org/x/crypto/ed25519.a @@ -23,6 +27,7 @@ ${MODGO_PACKAGES}/golang.org/x/crypto/ed ${MODGO_PACKAGES}/golang.org/x/crypto/hkdf.a ${MODGO_PACKAGES}/golang.org/x/crypto/md4.a ${MODGO_PACKAGES}/golang.org/x/crypto/nacl/ +${MODGO_PACKAGES}/golang.org/x/crypto/nacl/auth.a ${MODGO_PACKAGES}/golang.org/x/crypto/nacl/box.a ${MODGO_PACKAGES}/golang.org/x/crypto/nacl/secretbox.a ${MODGO_PACKAGES}/golang.org/x/crypto/ocsp.a @@ -50,6 +55,7 @@ ${MODGO_PACKAGES}/golang.org/x/crypto/sh ${MODGO_PACKAGES}/golang.org/x/crypto/ssh/ ${MODGO_PACKAGES}/golang.org/x/crypto/ssh.a ${MODGO_PACKAGES}/golang.org/x/crypto/ssh/agent.a +${MODGO_PACKAGES}/golan
[new] devel/go-sys
Attached is a new port - devel/go-sys - which provides the golang.org/x/sys package. This is needed by the next security/go-crypto update. ok? P.S. This currently fails to pass regress on i386, due to a mmap test failure (this is a kernel/uvm issue, not an issue with the package) - this should ideally be fixed on i386, however if it is not I'll patch the port appropriately. go-sys.tar.gz Description: application/compressed-tar
[update] lang/go 1.9
Update lang/go to Go 1.9. This is mostly a bunch of minuses, with a PLIST update. The various Go packages (go-crypto, go-net, go-text, etc) also need updates, however the existing versions appear to build correctly with Go 1.9 so we should be able to land this separately. The package updates are largely done - I'll send that out for review soon. ok? Index: Makefile === RCS file: /cvs/ports/lang/go/Makefile,v retrieving revision 1.45 diff -u -p -r1.45 Makefile --- Makefile31 Aug 2017 17:05:19 - 1.45 +++ Makefile31 Aug 2017 17:49:38 - @@ -4,8 +4,7 @@ ONLY_FOR_ARCHS =${GO_ARCHS} COMMENT = Go programming language -VERSION = 1.8.3 -REVISION = 1 +VERSION = 1.9 EXTRACT_SUFX = .src.tar.gz DISTNAME = go${VERSION} PKGNAME = go-${VERSION} Index: distinfo === RCS file: /cvs/ports/lang/go/distinfo,v retrieving revision 1.25 diff -u -p -r1.25 distinfo --- distinfo27 May 2017 11:18:27 - 1.25 +++ distinfo31 Aug 2017 17:49:38 - @@ -1,2 +1,2 @@ -SHA256 (go1.8.3.src.tar.gz) = X13qJEfn3P3FD6a5TFEuWL+6VnPAOSWf2EP2iCnZn6Y= -SIZE (go1.8.3.src.tar.gz) = 15345996 +SHA256 (go1.9.src.tar.gz) = pKsikCjtFnuhmGgldRRjYFJk5EhoNiyo56zMi+BX6ZM= +SIZE (go1.9.src.tar.gz) = 16377363 Index: patches/patch-src_cmd_go_build_go === RCS file: patches/patch-src_cmd_go_build_go diff -N patches/patch-src_cmd_go_build_go --- patches/patch-src_cmd_go_build_go 31 Aug 2017 17:05:19 - 1.1 +++ /dev/null 1 Jan 1970 00:00:00 - @@ -1,21 +0,0 @@ -$OpenBSD: patch-src_cmd_go_build_go,v 1.1 2017/08/31 17:05:19 jsing Exp $ - -Index: src/cmd/go/build.go src/cmd/go/build.go.orig -+++ src/cmd/go/build.go -@@ -3158,10 +3158,12 @@ func (b *builder) ccompilerCmd(envvar, defcmd, objdir - } - } - -- if strings.Contains(a[0], "clang") { -- // disable ASCII art in clang errors, if possible -+ // disable ASCII art in clang errors, if possible -+ if b.gccSupportsFlag("-fno-caret-diagnostics") { - a = append(a, "-fno-caret-diagnostics") -- // clang is too smart about command-line arguments -+ } -+ // clang is too smart about command-line arguments -+ if b.gccSupportsFlag("-Qunused-arguments") { - a = append(a, "-Qunused-arguments") - } - Index: patches/patch-src_cmd_go_go_test_go === RCS file: /cvs/ports/lang/go/patches/patch-src_cmd_go_go_test_go,v retrieving revision 1.1 diff -u -p -r1.1 patch-src_cmd_go_go_test_go --- patches/patch-src_cmd_go_go_test_go 4 Jun 2017 18:04:03 - 1.1 +++ patches/patch-src_cmd_go_go_test_go 31 Aug 2017 17:49:38 - @@ -1,7 +1,8 @@ $OpenBSD: patch-src_cmd_go_go_test_go,v 1.1 2017/06/04 18:04:03 jsing Exp $ src/cmd/go/go_test.go.orig Mon Jun 5 03:15:23 2017 -+++ src/cmd/go/go_test.go Mon Jun 5 03:29:43 2017 -@@ -3358,6 +3358,9 @@ func TestCgoConsistentResults(t *testing.T) { +Index: src/cmd/go/go_test.go +--- src/cmd/go/go_test.go.orig src/cmd/go/go_test.go +@@ -3475,6 +3475,9 @@ func TestCgoConsistentResults(t *testing.T) { switch runtime.GOOS { case "freebsd": testenv.SkipFlaky(t, 15405) Index: patches/patch-src_cmd_go_internal_work_build_go === RCS file: patches/patch-src_cmd_go_internal_work_build_go diff -N patches/patch-src_cmd_go_internal_work_build_go --- /dev/null 1 Jan 1970 00:00:00 - +++ patches/patch-src_cmd_go_internal_work_build_go 31 Aug 2017 17:49:38 - @@ -0,0 +1,21 @@ +$OpenBSD$ + +Index: src/cmd/go/internal/work/build.go +--- src/cmd/go/internal/work/build.go.orig src/cmd/go/internal/work/build.go +@@ -3165,10 +3165,12 @@ func (b *Builder) ccompilerCmd(envvar, defcmd, objdir + } + } + +- if strings.Contains(a[0], "clang") { +- // disable ASCII art in clang errors, if possible ++ // disable ASCII art in clang errors, if possible ++ if b.gccSupportsFlag("-fno-caret-diagnostics") { + a = append(a, "-fno-caret-diagnostics") +- // clang is too smart about command-line arguments ++ } ++ // clang is too smart about command-line arguments ++ if b.gccSupportsFlag("-Qunused-arguments") { + a = append(a, "-Qunused-arguments") + } + Index: patches/patch-src_cmd_link_internal_ld_data_go === RCS file: patches/patch-src_cmd_link_internal_ld_data_go diff -N patches/patch-src_cmd_link_internal_ld_data_go --- patches/patch-src_cmd_link_internal_ld_data_go 23 Feb 2017 15:57:42 - 1.3 +++ /dev
[update] lang/go 1.7.4
The following updates lang/go to 1.7.4. This addresses a security issue with net/http package's Request.ParseMultipartForm method. https://golang.org/doc/devel/release.html#go1.7.minor Passes regress on amd64 and i386. ok? Index: Makefile === RCS file: /cvs/ports/lang/go/Makefile,v retrieving revision 1.38 diff -u -p -r1.38 Makefile --- Makefile21 Aug 2016 14:08:25 - 1.38 +++ Makefile3 Dec 2016 14:40:21 - @@ -4,8 +4,7 @@ ONLY_FOR_ARCHS =${GO_ARCHS} COMMENT = Go programming language -REVISION = 0 -VERSION = 1.7 +VERSION = 1.7.4 EXTRACT_SUFX = .src.tar.gz DISTNAME = go${VERSION} PKGNAME = go-${VERSION} Index: distinfo === RCS file: /cvs/ports/lang/go/distinfo,v retrieving revision 1.20 diff -u -p -r1.20 distinfo --- distinfo18 Aug 2016 17:23:03 - 1.20 +++ distinfo3 Dec 2016 14:40:21 - @@ -1,2 +1,2 @@ -SHA256 (go1.7.src.tar.gz) = cmgMFroIkfzyzPRtD4CeTs9Hu/iJ9diEzLVMXpoX4cA= -SIZE (go1.7.src.tar.gz) = 14091954 +SHA256 (go1.7.4.src.tar.gz) = TBiREem6ZRors+6GiqiB+rNrLy2jQJ6AiFynWKa2FMw= +SIZE (go1.7.4.src.tar.gz) = 14198817 Index: patches/patch-src_time_time_test_go === RCS file: patches/patch-src_time_time_test_go diff -N patches/patch-src_time_time_test_go --- /dev/null 1 Jan 1970 00:00:00 - +++ patches/patch-src_time_time_test_go 3 Dec 2016 14:40:21 - @@ -0,0 +1,17 @@ +$OpenBSD$ +--- src/time/time_test.go.orig Sun Dec 4 01:36:30 2016 src/time/time_test.go Sun Dec 4 01:39:11 2016 +@@ -939,8 +939,11 @@ func TestLoadFixed(t *testing.T) { + // but Go and most other systems use "east is positive". + // So GMT+1 corresponds to -3600 in the Go zone, not +3600. + name, offset := Now().In(loc).Zone() +- if name != "GMT+1" || offset != -1*60*60 { +- t.Errorf("Now().In(loc).Zone() = %q, %d, want %q, %d", name, offset, "GMT+1", -1*60*60) ++ // The zone abbreviation is "-01" since tzdata-2016g, and "GMT+1" ++ // on earlier versions; we accept both. (Issue #17276). ++ if !(name == "GMT+1" || name == "-01") || offset != -1*60*60 { ++ t.Errorf("Now().In(loc).Zone() = %q, %d, want %q or %q, %d", ++ name, offset, "GMT+1", "-01", -1*60*60) + } + } + Index: pkg/PLIST === RCS file: /cvs/ports/lang/go/pkg/PLIST,v retrieving revision 1.17 diff -u -p -r1.17 PLIST --- pkg/PLIST 18 Aug 2016 17:23:03 - 1.17 +++ pkg/PLIST 3 Dec 2016 14:40:23 - @@ -105,6 +105,7 @@ go/doc/gopher/bumper320x180.png go/doc/gopher/bumper480x270.png go/doc/gopher/bumper640x360.png go/doc/gopher/doc.png +go/doc/gopher/favicon.svg go/doc/gopher/fiveyears.jpg go/doc/gopher/frontpage.png go/doc/gopher/gopherbw.png @@ -5954,6 +5955,7 @@ go/test/fixedbugs/issue16133.go go/test/fixedbugs/issue16193.go go/test/fixedbugs/issue16249.go go/test/fixedbugs/issue16515.go +go/test/fixedbugs/issue17318.go go/test/fixedbugs/issue2615.go go/test/fixedbugs/issue3552.dir/ go/test/fixedbugs/issue3552.dir/one.go
Re: UPDATE: lang/go
On Saturday 24 September 2016 14:15:35 Steve Mynott wrote: > Update go from 1.7.0 to 1.7.1 > > go1.7.1 (released 2016/09/07) includes fixes to the compiler, runtime, > documentation, and the compress/flate, hash/crc32, io, net, net/http, > path/filepath, reflect, and syscall packages. > > https://golang.org/doc/devel/release.html#go1.7.minor Thanks for sending this - I had already made a start on it, however had not gotten to complete the update. Some feedback for future reference: - If you are bumping the version number the REVISION (if any) can be removed. - The PLIST will often change between releases - `make PLIST` will generate the updated PLIST, however with lang/go you want to usually run it on OpenBSD/i386 to avoid unintended changes. - How was the update tested? Did you run `make regress` and if so, on what architectures? > Index: Makefile > === > RCS file: /cvs/ports/lang/go/Makefile,v > retrieving revision 1.38 > diff -u -p -r1.38 Makefile > --- Makefile 21 Aug 2016 14:08:25 - 1.38 > +++ Makefile 22 Sep 2016 15:29:52 - > @@ -5,7 +5,7 @@ ONLY_FOR_ARCHS = ${GO_ARCHS} > COMMENT =Go programming language > > REVISION = 0 > -VERSION =1.7 > +VERSION =1.7.1 > EXTRACT_SUFX = .src.tar.gz > DISTNAME = go${VERSION} > PKGNAME =go-${VERSION} > Index: distinfo > === > RCS file: /cvs/ports/lang/go/distinfo,v > retrieving revision 1.20 > diff -u -p -r1.20 distinfo > --- distinfo 18 Aug 2016 17:23:03 - 1.20 > +++ distinfo 22 Sep 2016 15:46:09 - > @@ -1,2 +1,2 @@ > -SHA256 (go1.7.src.tar.gz) = cmgMFroIkfzyzPRtD4CeTs9Hu/iJ9diEzLVMXpoX4cA= > -SIZE (go1.7.src.tar.gz) = 14091954 > +SHA256 (go1.7.1.src.tar.gz) = K4Q/EzuBt5lfJtDLZLvbudBwS5DETfRfhE0oiBrUQtM= > +SIZE (go1.7.1.src.tar.gz) = 14098889
[update] lang/go 1.7.1
Update lang/go to 1.7.1. Passes regress on i386 and amd64. ok? Index: Makefile === RCS file: /cvs/ports/lang/go/Makefile,v retrieving revision 1.38 diff -u -p -r1.38 Makefile --- Makefile21 Aug 2016 14:08:25 - 1.38 +++ Makefile28 Sep 2016 14:16:22 - @@ -4,8 +4,7 @@ ONLY_FOR_ARCHS =${GO_ARCHS} COMMENT = Go programming language -REVISION = 0 -VERSION = 1.7 +VERSION = 1.7.1 EXTRACT_SUFX = .src.tar.gz DISTNAME = go${VERSION} PKGNAME = go-${VERSION} Index: distinfo === RCS file: /cvs/ports/lang/go/distinfo,v retrieving revision 1.20 diff -u -p -r1.20 distinfo --- distinfo18 Aug 2016 17:23:03 - 1.20 +++ distinfo28 Sep 2016 14:16:22 - @@ -1,2 +1,2 @@ -SHA256 (go1.7.src.tar.gz) = cmgMFroIkfzyzPRtD4CeTs9Hu/iJ9diEzLVMXpoX4cA= -SIZE (go1.7.src.tar.gz) = 14091954 +SHA256 (go1.7.1.src.tar.gz) = K4Q/EzuBt5lfJtDLZLvbudBwS5DETfRfhE0oiBrUQtM= +SIZE (go1.7.1.src.tar.gz) = 14098889 Index: pkg/PLIST === RCS file: /cvs/ports/lang/go/pkg/PLIST,v retrieving revision 1.17 diff -u -p -r1.17 PLIST --- pkg/PLIST 18 Aug 2016 17:23:03 - 1.17 +++ pkg/PLIST 28 Sep 2016 14:16:24 - @@ -105,6 +105,7 @@ go/doc/gopher/bumper320x180.png go/doc/gopher/bumper480x270.png go/doc/gopher/bumper640x360.png go/doc/gopher/doc.png +go/doc/gopher/favicon.svg go/doc/gopher/fiveyears.jpg go/doc/gopher/frontpage.png go/doc/gopher/gopherbw.png
Re: go fixes
On Friday 19 August 2016 01:19:22 Dmitrij D. Czarkoff wrote: > Hi! > > Now with go 1.7 in ports it's time to update go libraries. The diff below > changes lang/go port and module so that go libraries have runtime dependency > on lang/go, so that they get rebuilt once lang/go is updated. Ports > devel/go-tools, net/go-net, security/go-crypto and textproc/go-text are > updated to match go 1.7. devel/go-tools gets a README about tuning GOPATH > for rc script. Ports devel/go-check and textproc/go-xlsx are also updated. > > Comments? OKs? ok jsing@, but see comments inline. I also presume that you will commit this as a series of separate diffs. > Index: lang/go/Makefile > === > RCS file: /var/cvs/ports/lang/go/Makefile,v > retrieving revision 1.37 > diff -u -p -r1.37 Makefile > --- lang/go/Makefile 18 Aug 2016 17:23:03 - 1.37 > +++ lang/go/Makefile 18 Aug 2016 18:59:54 - > @@ -4,10 +4,12 @@ ONLY_FOR_ARCHS =${GO_ARCHS} > > COMMENT =Go programming language > > +REVISION = 0 > VERSION =1.7 > EXTRACT_SUFX = .src.tar.gz > DISTNAME = go${VERSION} > PKGNAME =go-${VERSION} > +PKGSPEC =go-=${VERSION} > CATEGORIES = lang > > HOMEPAGE = https://golang.org/ > Index: lang/go/go.port.mk > === > RCS file: /var/cvs/ports/lang/go/go.port.mk,v > retrieving revision 1.12 > diff -u -p -r1.12 go.port.mk > --- lang/go/go.port.mk3 Aug 2016 09:34:10 - 1.12 > +++ lang/go/go.port.mk18 Aug 2016 19:05:07 - > @@ -5,7 +5,7 @@ ONLY_FOR_ARCHS ?= ${GO_ARCHS} > MODGO_BUILDDEP ?=Yes > > MODGO_RUN_DEPENDS = lang/go > -MODGO_BUILD_DEPENDS =lang/go>=1.6 > +MODGO_BUILD_DEPENDS =lang/go > > .if ${NO_BUILD:L} == "no" && ${MODGO_BUILDDEP:L} == "yes" > BUILD_DEPENDS += ${MODGO_BUILD_DEPENDS} > @@ -63,6 +63,10 @@ MODGO_INSTALL_TARGET +=${INSTALL_DATA_D > find src pkg -type f -exec ${INSTALL_DATA} -p \ > ${MODGO_WORKSPACE}/{} \ > ${MODGO_PACKAGE_PATH}/{} \; > + > +# This is required to force rebuilding of go libraries upon changes in > +# toolchain. > +RUN_DEPENDS += ${MODGO_RUN_DEPENDS} > .endif > > MODGO_TEST_TARGET = ${MODGO_TEST_CMD} ${TEST_TARGET} > Index: devel/go-check-v1/Makefile > === > RCS file: /var/cvs/ports/devel/go-check-v1/Makefile,v > retrieving revision 1.5 > diff -u -p -r1.5 Makefile > --- devel/go-check-v1/Makefile3 Aug 2016 09:34:39 - 1.5 > +++ devel/go-check-v1/Makefile16 Aug 2016 10:06:02 - > @@ -1,8 +1,7 @@ > # $OpenBSD: Makefile,v 1.5 2016/08/03 09:34:39 ajacoutot Exp $ > > COMMENT =testing library for the Go language > -DISTNAME = go-check-v1-20150611 > -REVISION = 1 > +DISTNAME = go-check-v1-20160105 > CATEGORIES = devel > HOMEPAGE = http://labix.org/gocheck > > @@ -13,7 +12,7 @@ PERMIT_PACKAGE_CDROM = Yes > > GH_ACCOUNT = go-check > GH_PROJECT = check > -GH_COMMIT = 8d49746f13e4c654088c52685541fcf4cbc8fa59 > +GH_COMMIT = 4f90aeace3a26ad7021961c297b22c42160c7b25 > > MODULES =lang/go > MODGO_TYPE = lib > Index: devel/go-check-v1/distinfo > === > RCS file: /var/cvs/ports/devel/go-check-v1/distinfo,v > retrieving revision 1.1.1.1 > diff -u -p -r1.1.1.1 distinfo > --- devel/go-check-v1/distinfo19 Jun 2015 08:42:54 - 1.1.1.1 > +++ devel/go-check-v1/distinfo16 Aug 2016 10:06:54 - > @@ -1,2 +1,2 @@ > -SHA256 (go-check-v1-20150611.tar.gz) = > QY0JyL+NdSKfqACwrsOmTF8BFEWTpdhSXtHkOC36pL0= -SIZE > (go-check-v1-20150611.tar.gz) = 29532 > +SHA256 (go-check-v1-20160105.tar.gz) = > adGngbRQtT1N3oNmGbW2/VIei9i+DZUxVnFIFMUblg4= +SIZE > (go-check-v1-20160105.tar.gz) = 30343 > Index: devel/go-check-v1/pkg/PLIST > === > RCS file: /var/cvs/ports/devel/go-check-v1/pkg/PLIST,v > retrieving revision 1.2 > diff -u -p -r1.2 PLIST > --- devel/go-check-v1/pkg/PLIST 14 Jan 2016 15:59:06 - 1.2 > +++ devel/go-check-v1/pkg/PLIST 16 Aug 2016 10:30:25 - > @@ -25,5 +25,7 @@ ${MODGO_SOURCES}/gopkg.in/check.v1/helpe > ${MODGO_SOURCES}/gopkg.in/check.v1/helpers_test.go > ${MODGO_SOURCES}/gopkg.in/check.v1/printer.go > ${MODGO_SOURCES}/gopkg.in/check.v1/printer_test.go > +${MODGO_SOURCES}/gopkg.in/check.v1/reporter.go > +${MODGO_SOURCES}/gopkg.in/check.v1/reporter_test.go > ${MODGO_SOURCES}/gopkg.in/check.v1/run.go > ${MODGO_SOURCES}/gopkg.in/check.v1/run_test.go > Index: devel/go-tools/Makefile > ===
[lang/go] Update to 1.7
The following updates lang/go to version 1.7. Passes regress on i386 and amd64. ok? Index: Makefile === RCS file: /cvs/ports/lang/go/Makefile,v retrieving revision 1.36 diff -u -p -u -p -r1.36 Makefile --- Makefile20 Jul 2016 15:52:14 - 1.36 +++ Makefile16 Aug 2016 04:09:11 - @@ -4,7 +4,7 @@ ONLY_FOR_ARCHS =${GO_ARCHS} COMMENT = Go programming language -VERSION = 1.6.3 +VERSION = 1.7 EXTRACT_SUFX = .src.tar.gz DISTNAME = go${VERSION} PKGNAME = go-${VERSION} Index: distinfo === RCS file: /cvs/ports/lang/go/distinfo,v retrieving revision 1.19 diff -u -p -u -p -r1.19 distinfo --- distinfo20 Jul 2016 15:52:14 - 1.19 +++ distinfo16 Aug 2016 04:09:11 - @@ -1,2 +1,2 @@ -SHA256 (go1.6.3.src.tar.gz) = Yyau7V+GzxjxbW3IMUBWFPhV4tQWqR/T/cM093I0WwA= -SIZE (go1.6.3.src.tar.gz) = 12617426 +SHA256 (go1.7.src.tar.gz) = cmgMFroIkfzyzPRtD4CeTs9Hu/iJ9diEzLVMXpoX4cA= +SIZE (go1.7.src.tar.gz) = 14091954 Index: patches/patch-api_except_txt === RCS file: /cvs/ports/lang/go/patches/patch-api_except_txt,v retrieving revision 1.3 diff -u -p -u -p -r1.3 patch-api_except_txt --- patches/patch-api_except_txt27 Jun 2016 15:57:17 - 1.3 +++ patches/patch-api_except_txt16 Aug 2016 04:09:11 - @@ -1,7 +1,7 @@ $OpenBSD: patch-api_except_txt,v 1.3 2016/06/27 15:57:17 jsing Exp $ api/except.txt.origWed Jun 22 06:12:20 2016 -+++ api/except.txt Wed Jun 22 06:12:56 2016 -@@ -329,3 +329,7 @@ pkg syscall (netbsd-arm-cgo), const SizeofIfData = 132 +--- api/except.txt.origTue Aug 9 05:18:28 2016 api/except.txt Fri Aug 12 02:46:38 2016 +@@ -329,4 +329,8 @@ pkg syscall (netbsd-arm-cgo), const SizeofIfData = 132 pkg syscall (netbsd-arm-cgo), type IfMsghdr struct, Pad_cgo_1 [4]uint8 pkg unicode, const Version = "6.3.0" pkg unicode, const Version = "7.0.0" @@ -9,3 +9,4 @@ $OpenBSD: patch-api_except_txt,v 1.3 201 +pkg syscall (openbsd-386-cgo), const SYS_KILL = 37 +pkg syscall (openbsd-amd64), const SYS_KILL = 37 +pkg syscall (openbsd-amd64-cgo), const SYS_KILL = 37 + pkg unicode, const Version = "8.0.0" Index: patches/patch-src_cmd_link_internal_ld_data_go === RCS file: /cvs/ports/lang/go/patches/patch-src_cmd_link_internal_ld_data_go,v retrieving revision 1.1 diff -u -p -u -p -r1.1 patch-src_cmd_link_internal_ld_data_go --- patches/patch-src_cmd_link_internal_ld_data_go 16 May 2016 13:50:02 - 1.1 +++ patches/patch-src_cmd_link_internal_ld_data_go 16 Aug 2016 04:09:11 - @@ -1,30 +1,30 @@ $OpenBSD: patch-src_cmd_link_internal_ld_data_go,v 1.1 2016/05/16 13:50:02 jsing Exp $ src/cmd/link/internal/ld/data.go.orig Thu Feb 18 07:35:20 2016 -+++ src/cmd/link/internal/ld/data.go Sat May 14 02:18:17 2016 -@@ -385,7 +385,7 @@ func relocsym(s *LSym) { +--- src/cmd/link/internal/ld/data.go.orig Tue Aug 9 05:18:29 2016 src/cmd/link/internal/ld/data.go Fri Aug 12 02:51:14 2016 +@@ -400,7 +400,7 @@ func relocsym(s *LSym) { case obj.R_TLS_LE: - isAndroidX86 := goos == "android" && (Thearch.Thechar == '6' || Thearch.Thechar == '8') + isAndroidX86 := goos == "android" && (SysArch.InFamily(sys.AMD64, sys.I386)) - if Linkmode == LinkExternal && Iself && HEADTYPE != obj.Hopenbsd && !isAndroidX86 { + if Linkmode == LinkExternal && Iself && !isAndroidX86 { r.Done = 0 if r.Sym == nil { r.Sym = Ctxt.Tlsg -@@ -419,7 +419,7 @@ func relocsym(s *LSym) { +@@ -434,7 +434,7 @@ func relocsym(s *LSym) { case obj.R_TLS_IE: - isAndroidX86 := goos == "android" && (Thearch.Thechar == '6' || Thearch.Thechar == '8') + isAndroidX86 := goos == "android" && (SysArch.InFamily(sys.AMD64, sys.I386)) - if Linkmode == LinkExternal && Iself && HEADTYPE != obj.Hopenbsd && !isAndroidX86 { + if Linkmode == LinkExternal && Iself && !isAndroidX86 { r.Done = 0 if r.Sym == nil { r.Sym = Ctxt.Tlsg -@@ -1413,7 +1413,7 @@ func dodata() { - } +@@ -1489,7 +1489,7 @@ func dodata() { - if s != nil && s.Type == obj.STLSBSS { + if len(data[obj.STLSBSS]) > 0 { + var sect *Section - if Iself && (Linkmode == LinkExternal || Debug['d'] == 0) && HEADTYPE != obj.Hopenbsd { + if Iself && (Linkmode == LinkExternal || Debug['d'] == 0) {
Re: go seems to use sys_o58_kill
On 6 Jun 2016 7:16 PM, Ray Lai wrote: > > On Mon, 06 Jun 2016 10:43:28 -0400 > "Ted Unangst" wrote: > > I think the first of each of these should be thrkill instead. > > Yup. But I don't know asm asm so I left it as kill(2) for now, which is > arguably better than leaving it as a non-existent syscall. No, not really - sys_kill and sys_thrkill have different behavior than sys_o58_kill, so you just swap one problem for another. Comments inline - the go-bootstrap port will also need patching. Does this pass make regress? > Beware: I was not an assembly coder 24 hours ago. > > Ray > > > Index: Makefile > === > RCS file: /cvs/ports/lang/go/Makefile,v > retrieving revision 1.34 > diff -u -p -r1.34 Makefile > --- Makefile 20 May 2016 16:03:24 - 1.34 > +++ Makefile 6 Jun 2016 18:03:22 - > @@ -5,6 +5,7 @@ ONLY_FOR_ARCHS = ${GO_ARCHS} > COMMENT = Go programming language > > VERSION = 1.6.2 > +REVISION = 0 > EXTRACT_SUFX = .src.tar.gz > DISTNAME = go${VERSION} > PKGNAME = go-${VERSION} > Index: patches/patch-src_runtime_sys_openbsd_386_s > === > RCS file: /cvs/ports/lang/go/patches/patch-src_runtime_sys_openbsd_386_s,v > retrieving revision 1.1 > diff -u -p -r1.1 patch-src_runtime_sys_openbsd_386_s > --- patches/patch-src_runtime_sys_openbsd_386_s 13 May 2016 13:49:26 - 1.1 > +++ patches/patch-src_runtime_sys_openbsd_386_s 6 Jun 2016 18:03:22 - > @@ -1,7 +1,29 @@ > $OpenBSD: patch-src_runtime_sys_openbsd_386_s,v 1.1 2016/05/13 13:49:26 jsing Exp $ > src/runtime/sys_openbsd_386.s.orig Thu May 5 01:27:04 2016 > -+++ src/runtime/sys_openbsd_386.s Thu May 5 01:27:41 2016 > -@@ -214,14 +214,6 @@ TEXT runtime�sigtramp(SB),NOSPLIT,$12 > +--- src/runtime/sys_openbsd_386.s.orig Wed Apr 20 07:50:09 2016 > src/runtime/sys_openbsd_386.s Tue Jun 7 02:02:23 2016 > +@@ -86,8 +86,11 @@ TEXT runtime�raise(SB),NOSPLIT,$12 > + MOVL AX, 4(SP) // arg 1 - pid This is now tid, not pid. > + MOVL sig+0(FP), AX > + MOVL AX, 8(SP) // arg 2 - signum > +- MOVL $37, AX // sys_kill > ++ MOVL $330, AX // sys___get_tcb > + INT $0x80 > ++ MOVQ AX, DX // arg 3 - tcb TCB is optional, just pass NULL here instead. > ++ MOVL $119, AX // sys_thrkill > ++ INT $0x80 > + RET > + > + TEXT runtime�raiseproc(SB),NOSPLIT,$12 > +@@ -97,7 +100,7 @@ TEXT runtime�raiseproc(SB),NOSPLIT,$12 > + MOVL AX, 4(SP) // arg 1 - pid > + MOVL sig+0(FP), AX > + MOVL AX, 8(SP) // arg 2 - signum > +- MOVL $37, AX // sys_kill > ++ MOVL $122, AX // sys_kill > + INT $0x80 > + RET > + > +@@ -214,14 +217,6 @@ TEXT runtime�sigtramp(SB),NOSPLIT,$12 > MOVL context+8(FP), BX > MOVL BX, 8(SP) > CALL runtime�sigtrampgo(SB) > Index: patches/patch-src_runtime_sys_openbsd_amd64_s > === > RCS file: patches/patch-src_runtime_sys_openbsd_amd64_s > diff -N patches/patch-src_runtime_sys_openbsd_amd64_s > --- /dev/null 1 Jan 1970 00:00:00 - > +++ patches/patch-src_runtime_sys_openbsd_amd64_s 6 Jun 2016 18:03:22 - > @@ -0,0 +1,25 @@ > +$OpenBSD$ > +--- src/runtime/sys_openbsd_amd64.s.orig Wed Apr 20 07:50:09 2016 > src/runtime/sys_openbsd_amd64.s Tue Jun 7 01:19:53 2016 > +@@ -158,8 +158,11 @@ TEXT runtime�raise(SB),NOSPLIT,$16 > + SYSCALL > + MOVQ AX, DI // arg 1 - pid As above. > + MOVL sig+0(FP), SI // arg 2 - signum > +- MOVL $37, AX // sys_kill > ++ MOVL $330, AX // sys___get_tcb > + SYSCALL > ++ MOVQ AX, DX // arg 3 - tcb As above. > ++ MOVL $119, AX // sys_thrkill > ++ SYSCALL > + RET > + > + TEXT runtime�raiseproc(SB),NOSPLIT,$16 > +@@ -167,7 +170,7 @@ TEXT runtime�raiseproc(SB),NOSPLIT,$16 > + SYSCALL > + MOVQ AX, DI // arg 1 - pid > + MOVL sig+0(FP), SI // arg 2 - signum > +- MOVL $37, AX // sys_kill > ++ MOVL $122, AX // sys_kill > + SYSCALL > + RET > + > Index: patches/patch-src_runtime_sys_openbsd_arm_s > === > RCS file: patches/patch-src_runtime_sys_openbsd_arm_s > diff -N patches/patch-src_runtime_sys_openbsd_arm_s > --- /dev/null 1 Jan 1970 00:00:00 - > +++ patches/patch-src_runtime_sys_openbsd_arm_s 6 Jun 2016 18:03:22 - > @@ -0,0 +1,21 @@ > +$OpenBSD$ > +--- src/runtime/sys_openbsd_arm.s.orig Mon Jun 6 14:00:06 2016 > src/runtime/sys_openbsd_arm.s Mon Jun 6 14:00:25 2016 > +@@ -89,7 +89,7 @@ TEXT runtime�raise(SB),NOSPLIT,$12 > + SWI $0 // sys_getthrid > + // arg 1 - pid, already in R0 > + MOVW sig+0(FP), R1 // arg 2 - signum > +- MOVW $37, R12 // sys_kill > ++ MOVW $122, R12 // sys_kill This needs to be sys_thrkill. > + SWI $0 > + RET > + > +@@ -98,7 +98,7 @@ TEXT runtime�raiseproc(SB),NOSPLIT,$12 > + SWI $0 // sys_getpid > + // arg 1 - pid, already in R0 > + MOVW sig+0(FP), R1 // arg 2 - signum > +- MOVW $37, R12 // sys_kill > ++ MOVW $122, R12 // sys_kill > + SWI $0 > + RET > +
Re: go missing cgo?
On Thursday 02 June 2016 21:02:58 Ted Unangst wrote: > Trying to build anything with go 1.6 results in an error. > > $ go build hello.go > package main > imports runtime: C source files not allowed when not using cgo or > SWIG: atomic_amd64x.c defs.c float.c heapdump.c lfstack.c malloc.c > mcache.c mcentral.c mem_openbsd.c mfixalloc.c mgc0.c mheap.c msize.c > os_openbsd.c panic.c parfor.c proc.c runtime.c signal.c > signal_amd64x.c signal_unix.c stack.c string.c sys_x86.c > $ go version > go version go1.6.2 openbsd/amd64 > > Seven flavors of stackoverflow questions provide seven different answers, > but none of them seem particularly relevant. Works fine for me: $ go version go version go1.6.2 openbsd/amd64 $ go env GOARCH="amd64" GOBIN="" GOEXE="" GOHOSTARCH="amd64" GOHOSTOS="openbsd" GOOS="openbsd" GOPATH="/home/joel/go" GORACE="" GOROOT="/usr/local/go" GOTOOLDIR="/usr/local/go/pkg/tool/openbsd_amd64" GO15VENDOREXPERIMENT="1" CC="cc" GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0" CXX="c++" CGO_ENABLED="1" $ go run hello.go hello world The libtls/gotls regress also runs/passes (which uses cgo) and make regress passed on both i386 and amd64 when I did the update to 1.6.2. I suspect a local environment issue - what does `go env` say? Have you got a GOROOT or GOARCH/GOHOSTARCH exported? The list of C files is also curious - those look like parts of the old Go runtime (Go 1.4 and earlier), which it should not be trying to build (or even know anything about). Actually, this looks like you're invoking the go 1.6.2 binary with a GOROOT pointing at the go-bootstrap environment...
Re: lang/go issues with go-sqlite3
On Sunday 15 May 2016 08:45:09 Aaron Bieber wrote: > Hola, > > It seems there is a strange issue with go apps that use the go-sqlite3 > driver. When they try to open the database, they error out with "unable > to open database file". > > I can reliably hit the error by running "go test" in a clone of the > g...@github.com:mattn/go-sqlite3.git repository. This was most likely failing due to the cgo breakage (in particular, anything that relied on C errno would have failed). I've just commited patches to lang/go, which allows it to generate PT_TLS on OpenBSD and removes the hacks that we had in place to work around the previous lack thereof. Would you mind retesting and confirming this is fixed? > Here is the output: > qbit@slip[0]:~/dev/go-sqlite3[master]λ go test > --- FAIL: TestSqlLogicErrors (0.00s) > error_test.go:69: unable to open database file > error_test.go:75: Unexpected error: unable to open database file, > expected > table Foo already exists --- FAIL: TestExtendedErrorCodes_ForeignKey > (0.00s) > error_test.go:96: PRAGMA foreign_keys=ON: unable to open database file > error_test.go:106: unable to open database file > error_test.go:116: Wrong basic error code: 14 != 19 > error_test.go:120: Wrong extended error code: 0 != 787 > --- FAIL: TestExtendedErrorCodes_NotNull (0.00s) > error_test.go:142: PRAGMA foreign_keys=ON: unable to open database file > error_test.go:152: unable to open database file > error_test.go:157: Creating first row: unable to open database file > --- FAIL: TestExtendedErrorCodes_Unique (0.00s) > error_test.go:198: PRAGMA foreign_keys=ON: unable to open database file > error_test.go:208: unable to open database file > error_test.go:213: Creating first row: unable to open database file > --- FAIL: TestFTS3 (0.00s) > sqlite3_fts3_test.go:26: Failed to create table: disk I/O error > --- FAIL: TestFTS4 (0.00s) > sqlite3_fts3_test.go:100: Failed to create table: disk I/O error > --- FAIL: TestOpen (0.00s) > sqlite3_test.go:83: Failed to create table: disk I/O error > --- FAIL: TestClose (0.00s) > sqlite3_test.go:121: Failed to create table: disk I/O error > --- FAIL: TestInsert (0.00s) > sqlite3_test.go:148: Failed to create table: disk I/O error > --- FAIL: TestUpdate (0.00s) > sqlite3_test.go:187: Failed to create table: disk I/O error > --- FAIL: TestDelete (0.00s) > sqlite3_test.go:252: Failed to create table: disk I/O error > --- FAIL: TestBooleanRoundtrip (0.00s) > sqlite3_test.go:313: Failed to create table: disk I/O error > --- FAIL: TestTimestamp (0.00s) > sqlite3_test.go:364: Failed to create table: disk I/O error > --- FAIL: TestBoolean (0.00s) > sqlite3_test.go:465: Failed to create table: disk I/O error > --- FAIL: TestFloat32 (0.00s) > sqlite3_test.go:556: Failed to create table: disk I/O error > --- FAIL: TestTransaction (0.00s) > sqlite3_test.go:624: Failed to create table: disk I/O error > --- FAIL: TestWAL (0.00s) > sqlite3_test.go:682: Failed to Exec PRAGMA journal_mode: disk I/O error > --- FAIL: TestTimezoneConversion (0.00s) > sqlite3_test.go:732: Failed to create table: disk I/O error > --- FAIL: TestBlobs (0.00s) > panic: test executed panic(nil) or runtime.Goexit > > goroutine 54 [running]: > panic(0x763700, 0xc82000bb70) > /home/qbit/dev/go/src/runtime/panic.go:481 +0x3e6 > testing.tRunner.func1(0xc82008aea0) > /home/qbit/dev/go/src/testing/testing.go:467 +0x192 > runtime.Goexit() > /home/qbit/dev/go/src/runtime/panic.go:340 +0xfb > testing.(*common).FailNow(0xc82008ae10) > /home/qbit/dev/go/src/testing/testing.go:346 +0x36 > testing.(*common).Fatalf(0xc82008ae10, 0x7c6600, 0x14, 0xc820049c40, 0x2, > 0x2) /home/qbit/dev/go/src/testing/testing.go:389 +0x83 > github.com/mattn/go-sqlite3/sqlite3_test.(*DB).mustExec(0xc8200118c0, > 0xc8200b8360, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0) > /home/qbit/src/github.com/mattn/go-sqlite3/sqlite3_test/sqltest.go:68 > +0x226 > github.com/mattn/go-sqlite3/sqlite3_test.(*DB).tearDown(0xc8200118c0) > /home/qbit/src/github.com/mattn/go-sqlite3/sqlite3_test/sqltest.go:77 > +0x120 github.com/mattn/go-sqlite3/sqlite3_test.TestBlobs(0xc82008aea0) > /home/qbit/src/github.com/mattn/go-sqlite3/sqlite3_test/sqltest.go:179 > +0x4d testing.tRunner(0xc82008aea0, 0xbbc340) > /home/qbit/dev/go/src/testing/testing.go:473 +0x98 > created by testing.RunTests > /home/qbit/dev/go/src/testing/testing.go:582 +0x892 > exit status 2 > FAIL _/home/qbit/dev/go-sqlite3 0.058s > qbit@slip[1]:~/dev/go-sqlite3[master]λ > > This seems to have started after the ABI breakage. > > Anyone else able to confirm? > > Cheers, > Aaron
Re: lang/go fails to build on i386: SIGILL
Thanks, I'll have this fixed shortly. On Friday 13 May 2016 11:56:32 Stuart Henderson wrote: > Bootstrap is now ok, but lang/go fails. Full log below, but the > core of it is here: > > # Building packages and commands for openbsd/386. > runtime/internal/sys > ./make.bash: line 166: 13151 Illegal instruction (core dumped) > CC=$CC_FOR_TARGET "$GOTOOLDIR"/go_bootstrap install $GO_FLAGS -gcflags > "$GO_GCFLAGS" -ldflags "$GO_LDFLAGS" -v std cmd > > > There's not much to be had from pointing gdb at the core, > > warning: Unexpected size of section `.reg2/31987' in core file. > Core was generated by `go_bootstrap'. > Program terminated with signal SIGILL, Illegal instruction. > > warning: Unexpected size of section `.reg2/31987' in core file. > #0 runtime.sigtramp () at /usr/local/go/src/runtime/sys_openbsd_386.s:224 > 224 /usr/local/go/src/runtime/sys_openbsd_386.s: No such file or > directory. > > ... > > >>> Building on localhost under lang/go > >BDEPENDS = [shells/bash;lang/go-bootstrap] >DIST = [lang/go:go1.6.src.tar.gz] >FULLPKGNAME = go-1.6p0 > (Junk lock obtained for localhost at 1463131428) > > >>> Running depends in lang/go at 1463131428 > >last junk was in lang/php/5.5 > /usr/sbin/pkg_add -aI -Dunsigned -Drepair bash-4.3.42p0 go-bootstrap-1.4.3p1 > was: /usr/sbin/pkg_add -aI -Dunsigned -Drepair bash-4.3.42p0 > go-bootstrap-1.4.3p1 /usr/sbin/pkg_add -aI -Dunsigned -Drepair > bash-4.3.42p0 go-bootstrap-1.4.3p1 > >>> Running show-prepare-results in lang/go at 1463131436 > > ===> lang/go > ===> go-1.6p0 depends on: go-bootstrap-* -> go-bootstrap-1.4.3p1 > ===> go-1.6p0 depends on: bash-* -> bash-4.3.42p0 > ===> Verifying specs: c m pthread > ===> found c.87.0 m.9.0 pthread.22.0 > bash-4.3.42p0 > go-bootstrap-1.4.3p1 > (Junk lock released for localhost at 1463131436) > distfiles size=12613308 > > >>> Running patch in lang/go at 1463131436 > > ===> lang/go > ===> Checking files for go-1.6p0 > `/usr/ports/distfiles/go1.6.src.tar.gz' is up to date. > > >> (SHA256) go1.6.src.tar.gz: OK > > ===> Extracting for go-1.6p0 > ===> Patching for go-1.6p0 > > >>> Running configure in lang/go at 1463131438 > > ===> lang/go > ===> Configuring for go-1.6p0 > > >>> Running build in lang/go at 1463131438 > > ===> lang/go > ===> Building for go-1.6p0 > # Building Go bootstrap tool. > cmd/dist > > # Building Go toolchain using /usr/local/go/bootstrap. > bootstrap/internal/obj > bootstrap/asm/internal/flags > bootstrap/compile/internal/big > bootstrap/internal/obj/arm > bootstrap/internal/obj/arm64 > bootstrap/internal/obj/mips > bootstrap/internal/obj/ppc64 > bootstrap/internal/obj/x86 > bootstrap/asm/internal/lex > bootstrap/asm/internal/arch > bootstrap/internal/gcprog > bootstrap/compile/internal/gc > bootstrap/asm/internal/asm > bootstrap/asm > bootstrap/link/internal/ld > bootstrap/link/internal/amd64 > bootstrap/link/internal/arm > bootstrap/link/internal/arm64 > bootstrap/link/internal/mips64 > bootstrap/link/internal/ppc64 > bootstrap/link/internal/x86 > bootstrap/link > bootstrap/compile/internal/amd64 > bootstrap/compile/internal/arm > bootstrap/compile/internal/arm64 > bootstrap/compile/internal/mips64 > bootstrap/compile/internal/ppc64 > bootstrap/compile/internal/x86 > bootstrap/compile > > # Building go_bootstrap for host, openbsd/386. > runtime/internal/sys > runtime/internal/atomic > runtime > encoding > errors > internal/race > math > sort > sync/atomic > unicode > unicode/utf16 > unicode/utf8 > container/heap > sync > io > syscall > internal/singleflight > bytes > hash > strings > hash/adler32 > bufio > strconv > path > internal/syscall/windows > internal/syscall/windows/registry > time > reflect > encoding/base64 > crypto > regexp/syntax > crypto/sha1 > regexp > os > encoding/binary > fmt > os/signal > path/filepath > io/ioutil > os/exec > flag > go/token > log > net/url > text/template/parse > compress/flate > encoding/json > debug/dwarf > compress/zlib > debug/macho > debug/elf > go/scanner > go/ast > text/template > go/parser > go/doc > go/build > cmd/go > > # Building packages and commands for openbsd/386. > runtime/internal/sys > ./make.bash: line 166: 13151 Illegal instruction (core dumped) > CC=$CC_FOR_TARGET "$GOTOOLDIR"/go_bootstrap install $GO_FLAGS -gcflags > "$GO_GCFLAGS" -ldflags "$GO_LDFLAGS" -v std cmd *** Error 132 in lang/go > (Makefile:63 'do-build': @cd /usr/obj/ports/go-1.6/go/src && CC="cc" > CXX="c++" GOROOT=/usr/obj/ports/go-1.6/go ...) *** Error 1 in lang/go > (/usr/ports/infrastructure/mk/bsd.port.mk:2668 > '/usr/obj/ports/go-1.6/build-i386/.build_done') *** Error 1 in lang/go > (/usr/ports/infrastructure/mk/bsd.port.mk:2394 'build') ===> Exiting > lang/go with an error > *** Error 1 in /usr/ports (infrastructure/mk/bsd.port.subdir.mk:147 'build') > Error: job failed 256
Re: UPDATE: lang/go 1.6
On Tuesday 05 April 2016 23:43:30 Dmitrij D. Czarkoff wrote: > Juan Francisco Cantero Hurtado said: > > The files will not show up again in the future in the PLIST. > > Indeed. Also > > > - I would prefer to keep the old behavior in do-install. INSTALL_* will > > > > use the correct permissions for every type of file/dir. > > We currently install everything (except bin/go and bin/gofmt) with > INSTALL_DATA, thus stripping executable bits from several tools and > scripts. I am not sure it is a good idea. FWIW I switched do-install > to cp because tests of some package wanted to use some script from go's > own tests, and assumed that it has 'x' permission bit set. Provided > that we don't package much software in go, it may be worth keeping > closer to upstream. > > Tracking permissions manually and using INSTALL_{PROGRAM,SCRIPT} when > needed would require much effort with no real benefit. Just using cp > instead we get > > $ find /usr/local/go -type f -exec stat -f '%Su %Sg %Sp' {} + | sort | > uniq -c 7483 root bin -r--r--r-- > 34 root bin -r-xr-xr-x > > with two lines of shell commands. Even if permission changes will be > required in future, it will likely be easier to chmod individual files. I share the same concern - the previous approach was deliberate and resulted in 19 executable files being installed by the package, all of which are binaries. By using cp instead we now have an unlimited number of executable files being installed, with whatever permissions have come from the source tar archive. Which packages are expecting to run scripts within Go's tests?
[update] lang/go 1.5.3
Update lang/go to 1.5.3. Passes regress on amd64, will test i386 shortly. This release addresses CVE-2015-8618. ok? Index: Makefile === RCS file: /cvs/ports/lang/go/Makefile,v retrieving revision 1.27 diff -u -p -r1.27 Makefile --- Makefile5 Dec 2015 05:01:24 - 1.27 +++ Makefile14 Jan 2016 07:48:35 - @@ -4,7 +4,7 @@ ONLY_FOR_ARCHS =${GO_ARCHS} COMMENT = Go programming language -VERSION = 1.5.2 +VERSION = 1.5.3 EXTRACT_SUFX = .src.tar.gz DISTNAME = go${VERSION} PKGNAME = go-${VERSION} Index: distinfo === RCS file: /cvs/ports/lang/go/distinfo,v retrieving revision 1.14 diff -u -p -r1.14 distinfo --- distinfo5 Dec 2015 05:01:24 - 1.14 +++ distinfo14 Jan 2016 07:48:35 - @@ -1,2 +1,2 @@ -SHA256 (go1.5.2.src.tar.gz) = 893WJMAEYWQc49Oo2OPGIjkjhMp2mekBs3Ck6sWYenQ= -SIZE (go1.5.2.src.tar.gz) = 12056199 +SHA256 (go1.5.3.src.tar.gz) = dU4G2rHDGrFo/J254yWWc0AV6p4kvETK5/I39BfOTv4= +SIZE (go1.5.3.src.tar.gz) = 12057623
Re: lang/go-bootstrap
On Wednesday 23 December 2015 03:02:25 Joel Sing wrote: > On Wednesday 09 December 2015 00:40:28 Joel Sing wrote: > > I'll rework go.port.mk and the relevant packages using /usr/local/go-pkg. > > This reworks go.port.mk to install packages in /usr/local/go-pkg and builds > without -a, -work and without running things through sed and piping to > shell. The net/websocketd and textproc/go-xlsx should now be fixed (along > with their dependencies) - I still need to take a closer look at the other > two... > > Comments or oks? Here's a revised version that also fixes devel/go-tools - update to a more recent version for starters, cmd/vet and cmd/cover are now part of the Go base distribution, so we should not be building/installing these and godoc requires special handling do to a 'go install' mapping that exists for legacy reasons. ok? Index: devel/go-check-v1/Makefile === RCS file: /cvs/ports/devel/go-check-v1/Makefile,v retrieving revision 1.1.1.1 diff -u -p -r1.1.1.1 Makefile --- devel/go-check-v1/Makefile 19 Jun 2015 08:42:54 - 1.1.1.1 +++ devel/go-check-v1/Makefile 26 Dec 2015 07:00:42 - @@ -7,6 +7,8 @@ HOMEPAGE = http://labix.org/gocheck MAINTAINER = Dmitrij D. Czarkoff +REVISION = 0 + # 2-clause BSD PERMIT_PACKAGE_CDROM = Yes Index: devel/go-check-v1/pkg/PLIST === RCS file: /cvs/ports/devel/go-check-v1/pkg/PLIST,v retrieving revision 1.1.1.1 diff -u -p -r1.1.1.1 PLIST --- devel/go-check-v1/pkg/PLIST 19 Jun 2015 08:42:54 - 1.1.1.1 +++ devel/go-check-v1/pkg/PLIST 26 Dec 2015 07:00:42 - @@ -1,4 +1,6 @@ @comment $OpenBSD: PLIST,v 1.1.1.1 2015/06/19 08:42:54 czarkoff Exp $ +go-pkg/ +go-pkg/pkg/ ${MODGO_PACKAGES}/ ${MODGO_PACKAGES}/gopkg.in/ ${MODGO_PACKAGES}/gopkg.in/check.v1.a Index: devel/go-tools/Makefile === RCS file: /cvs/ports/devel/go-tools/Makefile,v retrieving revision 1.3 diff -u -p -r1.3 Makefile --- devel/go-tools/Makefile 11 Aug 2015 20:15:41 - 1.3 +++ devel/go-tools/Makefile 26 Dec 2015 07:00:42 - @@ -3,9 +3,8 @@ COMMENT = various tools for the Go programming language GH_ACCOUNT = golang GH_PROJECT = tools -GH_COMMIT =27e692e6ec36d8f48be794f32553e1400c70dbf2 -DISTNAME = go-tools-1.4.20150206 -REVISION = 1 +GH_COMMIT =99c318c742339e824d89d23ba3b3bff4f4ab27a8 +DISTNAME = go-tools-1.5.20151226 CATEGORIES = devel HOMEPAGE = http://golang.org/ @@ -14,19 +13,19 @@ MAINTAINER =Dmitrij D. Czarkoff Index: devel/go-tools/distinfo === RCS file: /cvs/ports/devel/go-tools/distinfo,v retrieving revision 1.1.1.1 diff -u -p -r1.1.1.1 distinfo --- devel/go-tools/distinfo 8 Jun 2015 09:41:03 - 1.1.1.1 +++ devel/go-tools/distinfo 26 Dec 2015 07:00:42 - @@ -1,2 +1,2 @@ -SHA256 (go-tools-1.4.20150206.tar.gz) = TeD9TrQh23FPay1LlAvHUTuTmEb7ZxsWx/okCb3vf+g= -SIZE (go-tools-1.4.20150206.tar.gz) = 1625310 +SHA256 (go-tools-1.5.20151226.tar.gz) = JDNfXzok6DwT7pexMzVL4DCxVSOXoYOJqcCkC8mLWd4= +SIZE (go-tools-1.5.20151226.tar.gz) = 1661993 Index: devel/go-tools/pkg/DESCR === RCS file: /cvs/ports/devel/go-tools/pkg/DESCR,v retrieving revision 1.1.1.1 diff -u -p -r1.1.1.1 DESCR --- devel/go-tools/pkg/DESCR8 Jun 2015 09:41:03 - 1.1.1.1 +++ devel/go-tools/pkg/DESCR26 Dec 2015 07:00:42 - @@ -18,5 +18,3 @@ programming language: * ssadump displays and interprets the SSA form of Go programs * stress runs a given process in parallel in a loop and collects failures * stringercreats of methods that satisfy the fmt.Stringer interface - * cover analyzes the coverage profiles - * vet examines Go source code and reports suspicious constructs Index: devel/go-tools/pkg/PLIST === RCS file: /cvs/ports/devel/go-tools/pkg/PLIST,v retrieving revision 1.3 diff -u -p -r1.3 PLIST --- devel/go-tools/pkg/PLIST11 Aug 2015 20:15:41 - 1.3 +++ devel/go-tools/pkg/PLIST26 Dec 2015 07:00:42 - @@ -1,7 +1,6 @@ @comment $OpenBSD: PLIST,v 1.3 2015/08/11 20:15:41 jasper Exp $ -@pkgpath devel/gocover -@pkgpath textproc/godoc @conflict stress-* +@pkgpath textproc/godoc @bin bin/benchcmp @bin bin/callgraph @bin bin/digraph @@ -17,6 +16,4 @@ @bin bin/ssadump @bin bin/stress @bin bin/stringer -@bin ${MODGO_TOOLS}/cover -@bin ${MODGO_TOOLS}/vet @rcscript ${RCDIR}/godoc Index: lang/go/go.port.mk === RCS file: /cvs/ports/lang/go/
Re: lang/go-bootstrap
On Thursday 10 December 2015 17:50:20 Michael McConville wrote: > Joel Sing wrote: > > Thanks for clarlifying - we could still implement 'go get -d' as a way > > of getting sources, but it would be more work than it is likely worth > > (and there are also some issues surrounding which versions of the > > dependencies get fetched). > > > > I'll rework go.port.mk and the relevant packages using > > /usr/local/go-pkg. > > Just to clarify, is /usr/local/go-pkg (or whatever else we end up > calling the dir) going to be added to the default $GOPATH as a patch? > Will it be suggested to the user in a post-install message? Or is this > only for the port system, and users won't have access to the port > dependencies? I don't want to patch /usr/local/go-pkg into the default $GOPATH - that would likely create a bunch of "oh, why is it behaving like that" problems. We could tell people to add it to their Go path if they want to use it, but I'm tempted to only use it for port build dependencies and let non-ports builds stick with 'go get'...
Re: lang/go-bootstrap
On Wednesday 09 December 2015 00:40:28 Joel Sing wrote: > I'll rework go.port.mk and the relevant packages using /usr/local/go-pkg. This reworks go.port.mk to install packages in /usr/local/go-pkg and builds without -a, -work and without running things through sed and piping to shell. The net/websocketd and textproc/go-xlsx should now be fixed (along with their dependencies) - I still need to take a closer look at the other two... Comments or oks? Index: lang/go/go.port.mk === RCS file: /cvs/ports/lang/go/go.port.mk,v retrieving revision 1.4 diff -u -p -r1.4 go.port.mk --- lang/go/go.port.mk 11 Aug 2015 20:16:21 - 1.4 +++ lang/go/go.port.mk 22 Dec 2015 15:56:03 - @@ -11,16 +11,17 @@ MODGO_BUILD_DEPENDS = lang/go BUILD_DEPENDS += ${MODGO_BUILD_DEPENDS} .endif -MODGO_PACKAGES = go/pkg/openbsd_${MACHINE_ARCH:S/i386/386/} -MODGO_SOURCES =go/src -MODGO_TOOLS = go/pkg/tool/openbsd_${MACHINE_ARCH:S/i386/386/} +MODGO_PACKAGE_PATH = ${PREFIX}/go-pkg +MODGO_PACKAGES = go-pkg/pkg/openbsd_${MACHINE_ARCH:S/i386/386/} +MODGO_SOURCES =go-pkg/src +MODGO_TOOLS = go-pkg/tool/openbsd_${MACHINE_ARCH:S/i386/386/} SUBST_VARS += MODGO_TOOLS MODGO_PACKAGES MODGO_SOURCES MODGO_SUBDIR ?=${WRKDIST} MODGO_TYPE ?= bin MODGO_WORKSPACE ?= ${WRKDIR}/go -MODGO_CMD ?= unset GOPATH; export GOPATH="${MODGO_WORKSPACE}"; go +MODGO_CMD ?= unset GOPATH; export GOPATH="${MODGO_WORKSPACE}:${MODGO_PACKAGE_PATH}"; go MODGO_BUILD_CMD = ${MODGO_CMD} install ${MODGO_FLAGS} MODGO_TEST_CMD = ${MODGO_CMD} test ${MODGO_FLAGS} @@ -36,29 +37,20 @@ MODGO_SETUP_WORKSPACE = mkdir -p ${WRKSR CATEGORIES += lang/go -# Go tends to ignore environment and place some files to system-wide -# directories. To prevent such behavior, this modules fixes paths in -# auto-generated build instructions, and then feeds fixed script to shell -# The "operation not permitted" filter is needed because Go outputs permission -# error if USE_SYSTRACE=Yes option is set. -MODGO_BUILD_TARGET = ${MODGO_BUILD_CMD} ${ALL_TARGET} 2>&1 | sed -E \ - -e 's, ${LOCALBASE}/go, ${MODGO_WORKSPACE},' \ - -e '/operation not permitted/d' \ - -e 's,\$$WORK,${WRKBUILD},g' | sh -v +MODGO_BUILD_TARGET = ${MODGO_BUILD_CMD} ${ALL_TARGET} +MODGO_FLAGS ?= -x .if ${MODGO_TYPE:L:Mbin} -MODGO_FLAGS ?= -x -work -MODGO_INSTALL_TARGET += cp ${MODGO_WORKSPACE}/bin/* ${PREFIX}/bin +MODGO_INSTALL_TARGET = cp ${MODGO_WORKSPACE}/bin/* ${PREFIX}/bin .endif # Go source files serve the purpose of libraries, so sources should be included # with library ports. .if ${MODGO_TYPE:L:Mlib} -MODGO_FLAGS ?= -a -x -work -MODGO_INSTALL_TARGET = ${INSTALL_DATA_DIR} ${PREFIX}/go; \ +MODGO_INSTALL_TARGET = ${INSTALL_DATA_DIR} ${MODGO_PACKAGE_PATH}; \ cp -R ${MODGO_WORKSPACE}/pkg \ - ${MODGO_WORKSPACE}/src \ - ${PREFIX}/go; + ${MODGO_WORKSPACE}/src \ + ${MODGO_PACKAGE_PATH}; .endif MODGO_TEST_TARGET =${MODGO_TEST_CMD} ${TEST_TARGET} Index: net/go-websocket/Makefile === RCS file: /cvs/ports/net/go-websocket/Makefile,v retrieving revision 1.5 diff -u -p -r1.5 Makefile --- net/go-websocket/Makefile 27 Jul 2015 21:06:22 - 1.5 +++ net/go-websocket/Makefile 22 Dec 2015 15:56:03 - @@ -3,6 +3,7 @@ COMMENT = golang websocket package VERSION = 0.1 +REVISION = 0 DISTNAME = go-websocket-${VERSION} GH_COMMIT =446d52dd4018303a13b36097e26d0888aca5d6ef GH_ACCOUNT = golang Index: net/go-websocket/pkg/PLIST === RCS file: /cvs/ports/net/go-websocket/pkg/PLIST,v retrieving revision 1.2 diff -u -p -r1.2 PLIST --- net/go-websocket/pkg/PLIST 8 Jun 2015 09:17:04 - 1.2 +++ net/go-websocket/pkg/PLIST 22 Dec 2015 15:56:03 - @@ -1,8 +1,12 @@ @comment $OpenBSD: PLIST,v 1.2 2015/06/08 09:17:04 czarkoff Exp $ +go-pkg/ +go-pkg/pkg/ +${MODGO_PACKAGES}/ ${MODGO_PACKAGES}/golang.org/ ${MODGO_PACKAGES}/golang.org/x/ ${MODGO_PACKAGES}/golang.org/x/net/ ${MODGO_PACKAGES}/golang.org/x/net/websocket.a +${MODGO_SOURCES}/ ${MODGO_SOURCES}/golang.org/ ${MODGO_SOURCES}/golang.org/x/ ${MODGO_SOURCES}/golang.org/x/net/ Index: textproc/go-xlsx/Makefile === RCS file: /cvs/ports/textproc/go-xlsx/Makefile,v retrieving revision 1.3 diff -u -p -r1.3 Makefile --- textproc/go-xlsx/M
Re: lang/go-bootstrap
On Monday 07 December 2015 23:31:34 Stuart Henderson wrote: > On 2015/12/08 10:05, Joel Sing wrote: > > On Monday 07 December 2015 14:18:52 Kent R. Spillner wrote: > > > On Tue, Dec 08, 2015 at 02:29:03AM +1100, Joel Sing wrote: > > > > This brings me to the next issue/topic - installing additional > > > > packages > > > > under /usr/local/go is probably a bad idea. > > > > > > My recollection is that the other issues you mentioned were necessary in > > > order to make this work. So if everyone agrees to a fix for this then I > > > believe the others just go away. > > > > > > > There are likely two options - we could install packages in a separate > > > > location (e.g. /usr/local/go-pkg) and then when code is built it is > > > > added > > > > to GOPATH. Alternatively, the code is fetched and built when the > > > > binary > > > > is built > > > > > > I think option #1 (install packages in a separate location and then add > > > it > > > to GOPATH) is our only choice because ports shouldn't fetch anything > > > during > > > builds. > > > > I was moreso thinking along the lines of using 'go get -d' to fetch the > > sources, > > This is the main problem that go.port.mk was trying to solve - file fetching > is done by ports infrastructure, not by the port itself. In the bulk build > case, this is totally under control of DPB which calls out to ftp(1) to > fetch as a separate uid, and DPB checks the hash itself - the port Makefile > is only used to fetch the filename/url. > > The uid running the actual port build doesn't have network privileges. Thanks for clarlifying - we could still implement 'go get -d' as a way of getting sources, but it would be more work than it is likely worth (and there are also some issues surrounding which versions of the dependencies get fetched). I'll rework go.port.mk and the relevant packages using /usr/local/go-pkg.
Re: lang/go-bootstrap
On Monday 07 December 2015 14:18:52 Kent R. Spillner wrote: > On Tue, Dec 08, 2015 at 02:29:03AM +1100, Joel Sing wrote: > > This brings me to the next issue/topic - installing additional packages > > under /usr/local/go is probably a bad idea. > > My recollection is that the other issues you mentioned were necessary in > order to make this work. So if everyone agrees to a fix for this then I > believe the others just go away. > > > There are likely two options - we could install packages in a separate > > location (e.g. /usr/local/go-pkg) and then when code is built it is added > > to GOPATH. Alternatively, the code is fetched and built when the binary > > is built > > I think option #1 (install packages in a separate location and then add it > to GOPATH) is our only choice because ports shouldn't fetch anything during > builds. I was moreso thinking along the lines of using 'go get -d' to fetch the sources, then you can build as per normal. Obviously that means building all dependencies for each OpenBSD package build (which has both pros and cons). > Is it possible to just add /usr/local/go-pkg to GOPATH and then > have Go automatically pick up anything installed correctly under that > directory? Or would we add each dependency installed under > /usr/local/go-pkg to GOPATH separately? Alternatively, we could just roll > & host our own distfiles that include all of the dependencies. I thought > about doing that for > net/websocketd, but ultimately decided it would be ok to install a library > from the golang.org/x/net package in /usr/local/go. Sorry! :) Using /usr/local/go-pkg would be no different to using a GOPATH and local workspace - you can install multiple packages into that location and they will be picked up during a go build/install. If this is they preferred option then I'll draft some diffs.
Re: lang/go-bootstrap
On Sunday 06 December 2015 16:44:33 Stuart Henderson wrote: > Slight problem with the go update, it breaks build of some ports using > the go module: > > textproc/go-xlsx > net/go-websocket > devel/go-check-v1 > devel/go-tools I obviously did not get to look carefully at r1.2 of go.port.mk - there are a number of issues that should be resolved: - Running 'go install -x' and piping the results through sed and sh -v is crazy. Firstly, 'go install -x' will *run* those commands, then they're being run a second time around via sh. Not to mention that there are cases where replacing GOROOT is wrong. If Go is writing outside of GOPATH then it is either being called/used incorrectly, or there is a bug that should be fixed. - Using -work is going to cause mess since it prints the work directory and leaves the work directory behind. I cannot see anything that is cleaning this up, so we're left with /tmp/go-build*. - Using 'go build -a' should be unnecessary - furthermore, the semantics of -a have changed between go1.4 and go1.5. In go1.4 the standard library was excluded from the -a flag whereas for go1.5 it does mean all dependencies including the standard library (this was the same for go1.3). However, there is a blanket 'do not rebuild standard library packages' in place when the -a flag is not specified. This brings me to the next issue/topic - installing additional packages under /usr/local/go is probably a bad idea. The biggest issue is that Go treats packages under that path as being 'standard library' and as such, they do not get rebuilt unless the -a flag is used. The Go development model is that you fetch additional packages into your workspace - obviously this does not work that well for prepackaged/compiled code. There are likely two options - we could install packages in a separate location (e.g. /usr/local/go-pkg) and then when code is built it is added to GOPATH. Alternatively, the code is fetched and built when the binary is built (for example, when building net/websocketd, net/go-websocket is pulled in and compiled at the same time. I don't have a strong preference, however polluting /usr/local/go is not going to work well unless we use -a, which will now attempt to rebuild all standard library code and fail.
Re: [update] lang/go 1.5.2
On Friday 04 December 2015 03:12:16 Joel Sing wrote: > The following updates lang/go to 1.5.1 - this depends on the > lang/go-bootstrap package just sent to ports@. > > One difference is that this now installs the go binary in > /usr/local/go/bin/go, which allows the package to be used as a bootstrap to > build Go from source. Symbolic links are installed for /usr/bin/go and > /usr/bin/gofmt so that they're still available in the previous locations > (and don't require PATH changes). > > Passes regress on i386 and amd64. > > ok? Revised for Go 1.5.2. Also simplify the Makefile now that we no longer have/need PFRAGs - GOEXE is now unused as well. ok? Index: Makefile === RCS file: /cvs/ports/lang/go/Makefile,v retrieving revision 1.26 diff -u -p -r1.26 Makefile --- Makefile19 Aug 2015 06:57:20 - 1.26 +++ Makefile4 Dec 2015 17:24:17 - @@ -4,14 +4,13 @@ ONLY_FOR_ARCHS = ${GO_ARCHS} COMMENT = Go programming language -VERSION = 1.4.2 -REVISION = 0 +VERSION = 1.5.2 EXTRACT_SUFX = .src.tar.gz DISTNAME = go${VERSION} PKGNAME = go-${VERSION} CATEGORIES = lang -HOMEPAGE = http://golang.org/ +HOMEPAGE = https://golang.org/ MAINTAINER = Joel Sing @@ -20,13 +19,13 @@ PERMIT_PACKAGE_CDROM = Yes WANTLIB = c m pthread -MASTER_SITES = http://golang.org/dl/ +MASTER_SITES = https://golang.org/dl/ -BUILD_DEPENDS =shells/bash +BUILD_DEPENDS =lang/go-bootstrap shells/bash SEPARATE_BUILD = simple CONFIGURE_STYLE = None -SUBST_VARS = GOEXE GOCFG +SUBST_VARS = GOCFG WRKDIST = ${WRKDIR}/go WRKSRC = ${WRKDIST}/src @@ -34,23 +33,15 @@ WRKSRC =${WRKDIST}/src GOOS = openbsd GOARCH = unknown GOROOT = ${PREFIX}/go +GOROOT_BOOTSTRAP = ${PREFIX}/go/bootstrap .if ${MACHINE_ARCH} == "amd64" GOARCH = amd64 -EXEPREFIX =6 -PKG_ARGS +=-Damd64=1 -PKG_ARGS +=-Di386=0 .elif ${MACHINE_ARCH} == "i386" GOARCH = 386 -EXEPREFIX =8 -PKG_ARGS +=-Damd64=0 -PKG_ARGS +=-Di386=1 -.else -PKG_ARGS +=-Damd64=0 -Di386=0 .endif GOCFG =/${GOOS}_${GOARCH} -GOEXE =${GOCFG}/${EXEPREFIX} do-configure: . if ${GOARCH} == "unknown" @@ -65,7 +56,8 @@ do-build: CXX="${CXX}" \ GOROOT=${WRKDIST} \ GOBIN=${WRKDIST}/bin \ - GOROOT_FINAL=${GOROOT} ./make.bash --no-banner + GOROOT_FINAL=${GOROOT} \ + GOROOT_BOOTSTRAP=${GOROOT_BOOTSTRAP} ./make.bash --no-banner do-test: @cd ${WRKSRC} && \ @@ -73,16 +65,22 @@ do-test: PATH=${WRKDIST}/bin:${PATH} GOROOT=${WRKDIST} ./run.bash do-install: - ${INSTALL_PROGRAM} -p ${WRKDIST}/bin/go{,fmt} ${PREFIX}/bin - ${INSTALL_PROGRAM_DIR} ${GOROOT} + ${INSTALL_PROGRAM_DIR} ${GOROOT}/bin + ${INSTALL_PROGRAM} -p ${WRKDIST}/bin/go{,fmt} ${GOROOT}/bin + + @cd ${PREFIX}/bin && \ + ln -s ../go/bin/go go + @cd ${PREFIX}/bin && \ + ln -s ../go/bin/gofmt gofmt + @cd ${WRKDIST} && \ - find . ! -name .hg\* -type f -maxdepth 1 \ + find . -type f -maxdepth 1 \ -exec ${INSTALL_DATA} -p {} \ ${GOROOT} \; -. for dir in doc include lib misc src pkg +. for dir in doc lib misc src pkg @cd ${WRKDIST} && \ find ${dir} -type d \ -exec ${INSTALL_DATA_DIR} \ Index: distinfo === RCS file: /cvs/ports/lang/go/distinfo,v retrieving revision 1.13 diff -u -p -r1.13 distinfo --- distinfo6 May 2015 08:28:26 - 1.13 +++ distinfo4 Dec 2015 17:24:17 - @@ -1,2 +1,2 @@ -SHA256 (go1.4.2.src.tar.gz) = KZpv2Pit/c4VvAa96SbnslKujiTdWxa32Hke1557Xps= -SIZE (go1.4.2.src.tar.gz) = 10921896 +SHA256 (go1.5.2.src.tar.gz) = 893WJMAEYWQc49Oo2OPGIjkjhMp2mekBs3Ck6sWYenQ= +SIZE (go1.5.2.src.tar.gz) = 12056199 Index: patches/patch-src_net_http_header_go === RCS file: patches/patch-src_net_http_header_go diff -N patches/patch-src_net_http_header_go --- patches/patch-src_net_http_header_go19 Aug 2015 06:57:20 - 1.1 +++ /dev/null 1 Jan 1970 00:00:00 - @@ -1,16 +0,0 @@ -$OpenBSD: patch-src_net_http_header_go,v 1.1 2015/08/19 06:57:20
[update] lang/go 1.5.1
The following updates lang/go to 1.5.1 - this depends on the lang/go-bootstrap package just sent to ports@. One difference is that this now installs the go binary in /usr/local/go/bin/go, which allows the package to be used as a bootstrap to build Go from source. Symbolic links are installed for /usr/bin/go and /usr/bin/gofmt so that they're still available in the previous locations (and don't require PATH changes). Passes regress on i386 and amd64. ok? Index: Makefile === RCS file: /cvs/ports/lang/go/Makefile,v retrieving revision 1.26 diff -u -p -r1.26 Makefile --- Makefile19 Aug 2015 06:57:20 - 1.26 +++ Makefile3 Dec 2015 15:37:04 - @@ -4,8 +4,7 @@ ONLY_FOR_ARCHS =${GO_ARCHS} COMMENT = Go programming language -VERSION = 1.4.2 -REVISION = 0 +VERSION = 1.5.1 EXTRACT_SUFX = .src.tar.gz DISTNAME = go${VERSION} PKGNAME = go-${VERSION} @@ -20,9 +19,9 @@ PERMIT_PACKAGE_CDROM =Yes WANTLIB = c m pthread -MASTER_SITES = http://golang.org/dl/ +MASTER_SITES = https://golang.org/dl/ -BUILD_DEPENDS =shells/bash +BUILD_DEPENDS =lang/go-bootstrap shells/bash SEPARATE_BUILD = simple CONFIGURE_STYLE = None @@ -34,6 +33,7 @@ WRKSRC = ${WRKDIST}/src GOOS = openbsd GOARCH = unknown GOROOT = ${PREFIX}/go +GOROOT_BOOTSTRAP = ${PREFIX}/go/bootstrap .if ${MACHINE_ARCH} == "amd64" GOARCH = amd64 @@ -65,7 +65,8 @@ do-build: CXX="${CXX}" \ GOROOT=${WRKDIST} \ GOBIN=${WRKDIST}/bin \ - GOROOT_FINAL=${GOROOT} ./make.bash --no-banner + GOROOT_FINAL=${GOROOT} \ + GOROOT_BOOTSTRAP=${GOROOT_BOOTSTRAP} ./make.bash --no-banner do-test: @cd ${WRKSRC} && \ @@ -73,16 +74,22 @@ do-test: PATH=${WRKDIST}/bin:${PATH} GOROOT=${WRKDIST} ./run.bash do-install: - ${INSTALL_PROGRAM} -p ${WRKDIST}/bin/go{,fmt} ${PREFIX}/bin - ${INSTALL_PROGRAM_DIR} ${GOROOT} + ${INSTALL_PROGRAM_DIR} ${GOROOT}/bin + ${INSTALL_PROGRAM} -p ${WRKDIST}/bin/go{,fmt} ${GOROOT}/bin + + @cd ${PREFIX}/bin && \ + ln -s ../go/bin/go go + @cd ${PREFIX}/bin && \ + ln -s ../go/bin/gofmt gofmt + @cd ${WRKDIST} && \ - find . ! -name .hg\* -type f -maxdepth 1 \ + find . -type f -maxdepth 1 \ -exec ${INSTALL_DATA} -p {} \ ${GOROOT} \; -. for dir in doc include lib misc src pkg +. for dir in doc lib misc src pkg @cd ${WRKDIST} && \ find ${dir} -type d \ -exec ${INSTALL_DATA_DIR} \ Index: distinfo === RCS file: /cvs/ports/lang/go/distinfo,v retrieving revision 1.13 diff -u -p -r1.13 distinfo --- distinfo6 May 2015 08:28:26 - 1.13 +++ distinfo3 Dec 2015 15:37:04 - @@ -1,2 +1,2 @@ -SHA256 (go1.4.2.src.tar.gz) = KZpv2Pit/c4VvAa96SbnslKujiTdWxa32Hke1557Xps= -SIZE (go1.4.2.src.tar.gz) = 10921896 +SHA256 (go1.5.1.src.tar.gz) = qImHPpjZpyrjlqm33Vl8KdzXCcr6kJfZxLoEz/DsQ2s= +SIZE (go1.5.1.src.tar.gz) = 12049701 Index: patches/patch-src_net_http_header_go === RCS file: patches/patch-src_net_http_header_go diff -N patches/patch-src_net_http_header_go --- patches/patch-src_net_http_header_go19 Aug 2015 06:57:20 - 1.1 +++ /dev/null 1 Jan 1970 00:00:00 - @@ -1,16 +0,0 @@ -$OpenBSD: patch-src_net_http_header_go,v 1.1 2015/08/19 06:57:20 jasper Exp $ - -Security fix for CVE-2015-5739, "Content Length" treated as valid header -https://github.com/golang/go/commit/117ddcb83d7f42d6aa72241240af99ded81118e9 - src/net/http/header.go.origWed Feb 18 05:38:34 2015 -+++ src/net/http/header.go Thu Aug 13 18:10:28 2015 -@@ -168,6 +168,8 @@ func (h Header) WriteSubset(w io.Writer, exclude map[s - // letter and any letter following a hyphen to upper case; - // the rest are converted to lowercase. For example, the - // canonical key for "accept-encoding" is "Accept-Encoding". -+// If s contains a space or invalid header field bytes, it is -+// returned without modifications. - func CanonicalHeaderKey(s string) string { return textproto.CanonicalMIMEHeaderKey(s) } - - // hasToken reports whether token appears with v, ASCII Index: patches/patch-src_net_http_readrequest_test_go === RCS file: patches/patch-src_net_http_readrequest_test_go diff -N patches/patch-src_net_http_readrequest_test_go --- patches/patch-src_net_http_readrequest_test_go 19 Aug 2015
lang/go-bootstrap
>From Go 1.5 onwards, an existing go compiler is needed to bootstrap the build (the runtime is now written in Go, rather than C) - the current "promise" is that the bootstrap will only use functionality from the Go 1.4 API. So that we can continue to build natively, the attached is a lang/go-bootstrap that is effectively the Go 1.4.3 release - this is intended purely for building Go 1.5+ and is not meant for installing/distributing otherwise (and it is marked as such in the Makefile). In the not too distant future (time permitting) I'll likely patch this so that we can also build/release Go for openbsd/arm. Passes tests on i386 and amd64. ok? go-bootstrap.tgz Description: application/compressed-tar
Re: [update] lang/go 1.4.1
On Monday 19 January 2015, Joel Sing wrote: > The following updates lang/go to 1.4.1 - this is basically a handful of bug > fixes and also allows us to remove the last of the patches that existed in > ports: > > https://github.com/golang/go/issues?q=milestone%3AGo1.4.1 > > Passes regress on 386/amd64. > > ok? sthen@ just pointed out that it would appear that upstream tarball has been changed, resulting in incorrect size/checksum. Updated diff below. ok? Index: Makefile === RCS file: /cvs/ports/lang/go/Makefile,v retrieving revision 1.22 diff -u -p -r1.22 Makefile --- Makefile23 Dec 2014 12:21:37 - 1.22 +++ Makefile22 Jan 2015 17:22:59 - @@ -4,7 +4,7 @@ ONLY_FOR_ARCHS =amd64 i386 COMMENT = Go programming language -VERSION = 1.4 +VERSION = 1.4.1 EXTRACT_SUFX = .src.tar.gz DISTNAME = go${VERSION} PKGNAME = go-${VERSION} Index: distinfo === RCS file: /cvs/ports/lang/go/distinfo,v retrieving revision 1.11 diff -u -p -r1.11 distinfo --- distinfo23 Dec 2014 12:21:37 - 1.11 +++ distinfo22 Jan 2015 17:22:59 - @@ -1,2 +1,2 @@ -SHA256 (go1.4.src.tar.gz) = Oun2fkWlynAEsogI2osTZ9Moo3HWQd2+Y2wPsK4P/a4= -SIZE (go1.4.src.tar.gz) = 10911274 +SHA256 (go1.4.1.src.tar.gz) = ZmZQBfrDW6gy/zNJd+ZY+WEQnYmnojWK53B74O+xb8o= +SIZE (go1.4.1.src.tar.gz) = 10921353 Index: patches/patch-src_syscall_route_openbsd_go === RCS file: patches/patch-src_syscall_route_openbsd_go diff -N patches/patch-src_syscall_route_openbsd_go --- patches/patch-src_syscall_route_openbsd_go 23 Dec 2014 12:21:37 - 1.1 +++ /dev/null 1 Jan 1970 00:00:00 - @@ -1,23 +0,0 @@ -$OpenBSD: patch-src_syscall_route_openbsd_go,v 1.1 2014/12/23 12:21:37 jsing Exp $ src/syscall/route_openbsd.go.orig Thu Oct 30 12:55:40 2014 -+++ src/syscall/route_openbsd.go Sat Nov 1 02:17:33 2014 -@@ -12,16 +12,16 @@ func (any *anyMessage) toRoutingMessage(b []byte) Rout - switch any.Type { - case RTM_ADD, RTM_DELETE, RTM_CHANGE, RTM_GET, RTM_LOSING, RTM_REDIRECT, RTM_MISS, RTM_LOCK, RTM_RESOLVE: - p := (*RouteMessage)(unsafe.Pointer(any)) -- return &RouteMessage{Header: p.Header, Data: b[SizeofRtMsghdr:any.Msglen]} -+ return &RouteMessage{Header: p.Header, Data: b[p.Header.Hdrlen:any.Msglen]} - case RTM_IFINFO: - p := (*InterfaceMessage)(unsafe.Pointer(any)) -- return &InterfaceMessage{Header: p.Header, Data: b[SizeofIfMsghdr:any.Msglen]} -+ return &InterfaceMessage{Header: p.Header, Data: b[p.Header.Hdrlen:any.Msglen]} - case RTM_IFANNOUNCE: - p := (*InterfaceAnnounceMessage)(unsafe.Pointer(any)) - return &InterfaceAnnounceMessage{Header: p.Header} - case RTM_NEWADDR, RTM_DELADDR: - p := (*InterfaceAddrMessage)(unsafe.Pointer(any)) -- return &InterfaceAddrMessage{Header: p.Header, Data: b[SizeofIfaMsghdr:any.Msglen]} -+ return &InterfaceAddrMessage{Header: p.Header, Data: b[p.Header.Hdrlen:any.Msglen]} - } - return nil - } -- "Action without study is fatal. Study without action is futile." -- Mary Ritter Beard
[update] lang/go 1.4.1
The following updates lang/go to 1.4.1 - this is basically a handful of bug fixes and also allows us to remove the last of the patches that existed in ports: https://github.com/golang/go/issues?q=milestone%3AGo1.4.1 Passes regress on 386/amd64. ok? Index: Makefile === RCS file: /cvs/ports/lang/go/Makefile,v retrieving revision 1.22 diff -u -p -r1.22 Makefile --- Makefile23 Dec 2014 12:21:37 - 1.22 +++ Makefile18 Jan 2015 16:40:02 - @@ -4,7 +4,7 @@ ONLY_FOR_ARCHS =amd64 i386 COMMENT = Go programming language -VERSION = 1.4 +VERSION = 1.4.1 EXTRACT_SUFX = .src.tar.gz DISTNAME = go${VERSION} PKGNAME = go-${VERSION} Index: distinfo === RCS file: /cvs/ports/lang/go/distinfo,v retrieving revision 1.11 diff -u -p -r1.11 distinfo --- distinfo23 Dec 2014 12:21:37 - 1.11 +++ distinfo18 Jan 2015 16:40:02 - @@ -1,2 +1,2 @@ -SHA256 (go1.4.src.tar.gz) = Oun2fkWlynAEsogI2osTZ9Moo3HWQd2+Y2wPsK4P/a4= -SIZE (go1.4.src.tar.gz) = 10911274 +SHA256 (go1.4.1.src.tar.gz) = PZuyetS+UfYNxE89ACYDbvBxQnl7HfG1roFid+bDG7M= +SIZE (go1.4.1.src.tar.gz) = 10921282 Index: patches/patch-src_syscall_route_openbsd_go === RCS file: patches/patch-src_syscall_route_openbsd_go diff -N patches/patch-src_syscall_route_openbsd_go --- patches/patch-src_syscall_route_openbsd_go 23 Dec 2014 12:21:37 - 1.1 +++ /dev/null 1 Jan 1970 00:00:00 - @@ -1,23 +0,0 @@ -$OpenBSD: patch-src_syscall_route_openbsd_go,v 1.1 2014/12/23 12:21:37 jsing Exp $ src/syscall/route_openbsd.go.orig Thu Oct 30 12:55:40 2014 -+++ src/syscall/route_openbsd.go Sat Nov 1 02:17:33 2014 -@@ -12,16 +12,16 @@ func (any *anyMessage) toRoutingMessage(b []byte) Rout - switch any.Type { - case RTM_ADD, RTM_DELETE, RTM_CHANGE, RTM_GET, RTM_LOSING, RTM_REDIRECT, RTM_MISS, RTM_LOCK, RTM_RESOLVE: - p := (*RouteMessage)(unsafe.Pointer(any)) -- return &RouteMessage{Header: p.Header, Data: b[SizeofRtMsghdr:any.Msglen]} -+ return &RouteMessage{Header: p.Header, Data: b[p.Header.Hdrlen:any.Msglen]} - case RTM_IFINFO: - p := (*InterfaceMessage)(unsafe.Pointer(any)) -- return &InterfaceMessage{Header: p.Header, Data: b[SizeofIfMsghdr:any.Msglen]} -+ return &InterfaceMessage{Header: p.Header, Data: b[p.Header.Hdrlen:any.Msglen]} - case RTM_IFANNOUNCE: - p := (*InterfaceAnnounceMessage)(unsafe.Pointer(any)) - return &InterfaceAnnounceMessage{Header: p.Header} - case RTM_NEWADDR, RTM_DELADDR: - p := (*InterfaceAddrMessage)(unsafe.Pointer(any)) -- return &InterfaceAddrMessage{Header: p.Header, Data: b[SizeofIfaMsghdr:any.Msglen]} -+ return &InterfaceAddrMessage{Header: p.Header, Data: b[p.Header.Hdrlen:any.Msglen]} - } - return nil - } -- "Action without study is fatal. Study without action is futile." -- Mary Ritter Beard
Re: ssl handshake errors with python
On Thu, 6 Nov 2014, Ted Unangst wrote: > I see errors trying to download some https URLs using python, but the > base ftp client isn't affected. 5.6 release and current. One example is > https://www.duosecurity.com/feed. > > athens:/tmp> python2.7 > Python 2.7.8 (default, Oct 6 2014, 13:51:42) > [GCC 4.2.1 20070719 ] on openbsd5 > Type "help", "copyright", "credits" or "license" for more information. > > >>> import urllib > >>> urllib.urlopen('https://www.duosecurity.com/feed') > > Traceback (most recent call last): > File "", line 1, in > File "/usr/local/lib/python2.7/urllib.py", line 87, in urlopen > return opener.open(url) > File "/usr/local/lib/python2.7/urllib.py", line 208, in open > return getattr(self, name)(url) > File "/usr/local/lib/python2.7/urllib.py", line 437, in open_https > h.endheaders(data) > File "/usr/local/lib/python2.7/httplib.py", line 991, in endheaders > self._send_output(message_body) > File "/usr/local/lib/python2.7/httplib.py", line 844, in _send_output > self.send(msg) > File "/usr/local/lib/python2.7/httplib.py", line 806, in send > self.connect() > File "/usr/local/lib/python2.7/httplib.py", line 1198, in connect > self.sock = ssl.wrap_socket(sock, self.key_file, self.cert_file) > File "/usr/local/lib/python2.7/ssl.py", line 392, in wrap_socket > ciphers=ciphers) > File "/usr/local/lib/python2.7/ssl.py", line 148, in __init__ > self.do_handshake() > File "/usr/local/lib/python2.7/ssl.py", line 310, in do_handshake > self._sslobj.do_handshake() > IOError: [Errno socket error] [Errno 1] _ssl.c:510: error:14077410:SSL > routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure The server requires SNI, which libtls/ftp(1) does. If you make s_client do SNI it works: $ openssl s_client -connect www.duosecurity.com:443 \ -servername www.duosecurity.com So you'd need to make Python handle SNI if you want to talk to it... FWIW the site is hosted on Amazon Cloudfront, so you'll probably see the same with any other site that uses it. > athens:/tmp> ftp https://www.duosecurity.com/feed > Trying 54.192.22.134... > Requesting https://www.duosecurity.com/feed > 118278 bytes received in 0.17 seconds (673.14 KB/s) -- "Stop assuming that systems are secure unless demonstrated insecure; start assuming that systems are insecure unless designed securely." - Bruce Schneier
Re: ssl handshake errors with python
On Thu, 6 Nov 2014, Ted Unangst wrote: > I see errors trying to download some https URLs using python, but the > base ftp client isn't affected. 5.6 release and current. One example is > https://www.duosecurity.com/feed. > > athens:/tmp> python2.7 > Python 2.7.8 (default, Oct 6 2014, 13:51:42) > [GCC 4.2.1 20070719 ] on openbsd5 > Type "help", "copyright", "credits" or "license" for more information. > > >>> import urllib > >>> urllib.urlopen('https://www.duosecurity.com/feed') > > Traceback (most recent call last): > File "", line 1, in > File "/usr/local/lib/python2.7/urllib.py", line 87, in urlopen > return opener.open(url) > File "/usr/local/lib/python2.7/urllib.py", line 208, in open > return getattr(self, name)(url) > File "/usr/local/lib/python2.7/urllib.py", line 437, in open_https > h.endheaders(data) > File "/usr/local/lib/python2.7/httplib.py", line 991, in endheaders > self._send_output(message_body) > File "/usr/local/lib/python2.7/httplib.py", line 844, in _send_output > self.send(msg) > File "/usr/local/lib/python2.7/httplib.py", line 806, in send > self.connect() > File "/usr/local/lib/python2.7/httplib.py", line 1198, in connect > self.sock = ssl.wrap_socket(sock, self.key_file, self.cert_file) > File "/usr/local/lib/python2.7/ssl.py", line 392, in wrap_socket > ciphers=ciphers) > File "/usr/local/lib/python2.7/ssl.py", line 148, in __init__ > self.do_handshake() > File "/usr/local/lib/python2.7/ssl.py", line 310, in do_handshake > self._sslobj.do_handshake() > IOError: [Errno socket error] [Errno 1] _ssl.c:510: error:14077410:SSL > routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure This is also reproducable with s_client: $ openssl s_client -connect www.duosecurity.com:443 CONNECTED(0003) 7714431623004:error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure:/usr/src/lib/libssl/ssl/../../libssl/src/ssl/s23_clnt.c:521: --- no peer certificate available --- No client certificate CA names sent --- SSL handshake has read 7 bytes and written 280 bytes --- New, (NONE), Cipher is (NONE) Secure Renegotiation IS NOT supported Compression: NONE Expansion: NONE --- It would seem that they're not liking our ClientHello - I'll take a closer look... > athens:/tmp> ftp https://www.duosecurity.com/feed > Trying 54.192.22.134... > Requesting https://www.duosecurity.com/feed > 118278 bytes received in 0.17 seconds (673.14 KB/s) -- "Stop assuming that systems are secure unless demonstrated insecure; start assuming that systems are insecure unless designed securely." - Bruce Schneier
Re: [update] lang/go 1.3.3
On Sun, 26 Oct 2014, Stuart Henderson wrote: > On 2014/10/26 04:00, Joel Sing wrote: > > Update lang/go to 1.3.3. > > > > Passes regress on amd64 and i386. > > > > ok? > > It didn't package for me, > > Error: > /usr/obj/ports/go-1.3.3/fake-amd64/usr/local/go/pkg/tool/openbsd_amd64/api > does not exist Thanks - good catch. This got me last time as well - api only appears as a result of running regress... Fixed version below. ok for this one? Index: Makefile === RCS file: /cvs/ports/lang/go/Makefile,v retrieving revision 1.20 diff -u -p -r1.20 Makefile --- Makefile25 Jul 2014 14:39:41 - 1.20 +++ Makefile26 Oct 2014 05:48:07 - @@ -4,8 +4,7 @@ ONLY_FOR_ARCHS =amd64 i386 COMMENT = Go programming language -VERSION = 1.3 -REVISION = 0 +VERSION = 1.3.3 EXTRACT_SUFX = .src.tar.gz DISTNAME = go${VERSION} PKGNAME = go-${VERSION} Index: distinfo === RCS file: /cvs/ports/lang/go/distinfo,v retrieving revision 1.9 diff -u -p -r1.9 distinfo --- distinfo25 Jul 2014 13:36:55 - 1.9 +++ distinfo26 Oct 2014 05:48:07 - @@ -1,2 +1,2 @@ -SHA256 (go1.3.src.tar.gz) = 65g+bFsrmDj0gsVEKxrBhW9hDysh88Ejs/7bSP/DU4I= -SIZE (go1.3.src.tar.gz) = 10046547 +SHA256 (go1.3.3.src.tar.gz) = G7b96Jz+i5dWqHWvVdmUzOCZSGEie13A8mjBQ9kc1f8= +SIZE (go1.3.3.src.tar.gz) = 10049379 Index: pkg/PLIST === RCS file: /cvs/ports/lang/go/pkg/PLIST,v retrieving revision 1.10 diff -u -p -r1.10 PLIST --- pkg/PLIST 25 Jul 2014 13:36:55 - 1.10 +++ pkg/PLIST 26 Oct 2014 05:48:09 - @@ -309,10 +309,12 @@ go/misc/cgo/test/issue7560.go go/misc/cgo/test/issue7665.go go/misc/cgo/test/issue7695_test.go go/misc/cgo/test/issue7786.go +go/misc/cgo/test/issue7978.go go/misc/cgo/test/issue8148.go go/misc/cgo/test/issue8331.h go/misc/cgo/test/issue8331a.go go/misc/cgo/test/issue8331b.go +go/misc/cgo/test/issue8441.go go/misc/cgo/test/setgid_linux.go go/misc/cgo/test/sleep_windows_386.go go/misc/cgo/testasan/ @@ -1571,11 +1573,13 @@ go/src/pkg/crypto/tls/testdata/Server-TL go/src/pkg/crypto/tls/testdata/Server-TLSv12-ClientAuthRequestedNotGiven go/src/pkg/crypto/tls/testdata/Server-TLSv12-ECDHE-ECDSA-AES go/src/pkg/crypto/tls/testdata/Server-TLSv12-IssueTicket +go/src/pkg/crypto/tls/testdata/Server-TLSv12-IssueTicketPreDisable go/src/pkg/crypto/tls/testdata/Server-TLSv12-RSA-3DES go/src/pkg/crypto/tls/testdata/Server-TLSv12-RSA-AES go/src/pkg/crypto/tls/testdata/Server-TLSv12-RSA-AES-GCM go/src/pkg/crypto/tls/testdata/Server-TLSv12-RSA-RC4 go/src/pkg/crypto/tls/testdata/Server-TLSv12-Resume +go/src/pkg/crypto/tls/testdata/Server-TLSv12-ResumeDisabled go/src/pkg/crypto/tls/testdata/Server-TLSv12-SNI go/src/pkg/crypto/tls/ticket.go go/src/pkg/crypto/tls/tls.go -- "Action without study is fatal. Study without action is futile." -- Mary Ritter Beard
[update] lang/go 1.3.3
Update lang/go to 1.3.3. Passes regress on amd64 and i386. ok? Index: Makefile === RCS file: /cvs/ports/lang/go/Makefile,v retrieving revision 1.20 diff -u -p -r1.20 Makefile --- Makefile25 Jul 2014 14:39:41 - 1.20 +++ Makefile25 Oct 2014 16:56:44 - @@ -4,8 +4,7 @@ ONLY_FOR_ARCHS =amd64 i386 COMMENT = Go programming language -VERSION = 1.3 -REVISION = 0 +VERSION = 1.3.3 EXTRACT_SUFX = .src.tar.gz DISTNAME = go${VERSION} PKGNAME = go-${VERSION} Index: distinfo === RCS file: /cvs/ports/lang/go/distinfo,v retrieving revision 1.9 diff -u -p -r1.9 distinfo --- distinfo25 Jul 2014 13:36:55 - 1.9 +++ distinfo25 Oct 2014 16:56:44 - @@ -1,2 +1,2 @@ -SHA256 (go1.3.src.tar.gz) = 65g+bFsrmDj0gsVEKxrBhW9hDysh88Ejs/7bSP/DU4I= -SIZE (go1.3.src.tar.gz) = 10046547 +SHA256 (go1.3.3.src.tar.gz) = G7b96Jz+i5dWqHWvVdmUzOCZSGEie13A8mjBQ9kc1f8= +SIZE (go1.3.3.src.tar.gz) = 10049379 Index: pkg/PLIST === RCS file: /cvs/ports/lang/go/pkg/PLIST,v retrieving revision 1.10 diff -u -p -r1.10 PLIST --- pkg/PLIST 25 Jul 2014 13:36:55 - 1.10 +++ pkg/PLIST 25 Oct 2014 16:56:46 - @@ -309,10 +309,12 @@ go/misc/cgo/test/issue7560.go go/misc/cgo/test/issue7665.go go/misc/cgo/test/issue7695_test.go go/misc/cgo/test/issue7786.go +go/misc/cgo/test/issue7978.go go/misc/cgo/test/issue8148.go go/misc/cgo/test/issue8331.h go/misc/cgo/test/issue8331a.go go/misc/cgo/test/issue8331b.go +go/misc/cgo/test/issue8441.go go/misc/cgo/test/setgid_linux.go go/misc/cgo/test/sleep_windows_386.go go/misc/cgo/testasan/ @@ -637,6 +639,7 @@ go/pkg/tool${GOCFG}/ @bin go/pkg/tool${GOEXE}g @bin go/pkg/tool${GOEXE}l @bin go/pkg/tool${GOCFG}/addr2line +@bin go/pkg/tool${GOCFG}/api @bin go/pkg/tool${GOCFG}/cgo @bin go/pkg/tool${GOCFG}/dist @bin go/pkg/tool${GOCFG}/fix @@ -1571,11 +1574,13 @@ go/src/pkg/crypto/tls/testdata/Server-TL go/src/pkg/crypto/tls/testdata/Server-TLSv12-ClientAuthRequestedNotGiven go/src/pkg/crypto/tls/testdata/Server-TLSv12-ECDHE-ECDSA-AES go/src/pkg/crypto/tls/testdata/Server-TLSv12-IssueTicket +go/src/pkg/crypto/tls/testdata/Server-TLSv12-IssueTicketPreDisable go/src/pkg/crypto/tls/testdata/Server-TLSv12-RSA-3DES go/src/pkg/crypto/tls/testdata/Server-TLSv12-RSA-AES go/src/pkg/crypto/tls/testdata/Server-TLSv12-RSA-AES-GCM go/src/pkg/crypto/tls/testdata/Server-TLSv12-RSA-RC4 go/src/pkg/crypto/tls/testdata/Server-TLSv12-Resume +go/src/pkg/crypto/tls/testdata/Server-TLSv12-ResumeDisabled go/src/pkg/crypto/tls/testdata/Server-TLSv12-SNI go/src/pkg/crypto/tls/ticket.go go/src/pkg/crypto/tls/tls.go -- "Action without study is fatal. Study without action is futile." -- Mary Ritter Beard
Re: SSL_CTX_use_certificate_chain fallout
On Wed, 1 Oct 2014, Reyk Floeter wrote: > Am 30.09.2014 um 15:39 schrieb Christian Weisgerber : > > Joel Sing: > >>>> ===> www/apache-httpd-openbsd > >>>> ===> www/apache-httpd > >> > >> Is this the only ports fallout? > > > > Yes. > > So what about patching these two apache ports instead of LibreSSL? I have no objection to this, however we should keep in mind that users of portable LibreSSL are also going to run into this conflict if they try to build Apache mod_ssl... > It is a valid addition to the library and LibreSSL has to handle such API > additions at some point. Agreed. -- "Action without study is fatal. Study without action is futile." -- Mary Ritter Beard
Re: SSL_CTX_use_certificate_chain fallout
On Tue, 30 Sep 2014, Stuart Henderson wrote: > On 2014/09/30 11:20, Stuart Henderson wrote: > > On 2014/09/29 14:06, Christian Weisgerber wrote: > > > Apache doesn't like the addition of SSL_CTX_use_certificate_chain(). > > > > > > ===> www/apache-httpd-openbsd > > > > > > ../../modules/ssl/ssl_util_ssl.h:119: error: conflicting types for > > > 'SSL_CTX_use_certificate_chain' /usr/include/openssl/ssl.h:1533: error: > > > previous declaration of 'SSL_CTX_use_certificate_chain' was here > > > > > > ===> www/apache-httpd > > > > > > ssl_util_ssl.h:92: error: conflicting types for > > > 'SSL_CTX_use_certificate_chain' /usr/include/openssl/ssl.h:1533: error: > > > previous declaration of 'SSL_CTX_use_certificate_chain' was here > > > > We could patch apache, but since they got there first (by more than > > 10 years) it probably makes more sense to rename in libressl doesn't it? > > (Obviously a major bump, though). > > Major bump would mean we can remove the get_cipher_by_char symbol (turning > the tor problem into a build rather than runtime failure) at the same time. A major bump is not a big problem - I think there is more changes that can be included, but I'd have to check. > Or should we just add a few more to the 3 patches to Apache that are > already required to build it against libressl and rename it there > instead? None of the apache extensions that we have in ports call it > (though that probably isn't a very complete set). > > (My guess with the naming under the SSL_CTX namespace is that perhaps > it's something they might have thought about trying to push upstream to > ssleay/openssl.) It would seem that way, also based on the "additional" comment in that file. -- "Action without study is fatal. Study without action is futile." -- Mary Ritter Beard
Re: SSL_CTX_use_certificate_chain fallout
On Tue, 30 Sep 2014, Stuart Henderson wrote: > On 2014/09/29 14:06, Christian Weisgerber wrote: > > Apache doesn't like the addition of SSL_CTX_use_certificate_chain(). > > > > ===> www/apache-httpd-openbsd > > > > ../../modules/ssl/ssl_util_ssl.h:119: error: conflicting types for > > 'SSL_CTX_use_certificate_chain' /usr/include/openssl/ssl.h:1533: error: > > previous declaration of 'SSL_CTX_use_certificate_chain' was here > > > > ===> www/apache-httpd > > > > ssl_util_ssl.h:92: error: conflicting types for > > 'SSL_CTX_use_certificate_chain' /usr/include/openssl/ssl.h:1533: error: > > previous declaration of 'SSL_CTX_use_certificate_chain' was here > > We could patch apache, but since they got there first (by more than > 10 years) it probably makes more sense to rename in libressl doesn't it? > (Obviously a major bump, though). It can probably be renamed to SSL_CTX_use_certificate_chain_PEM() - especially since the memory that it loads has to contain PEM encoded certificates... this would match the _ASN1 suffixed functions. Otherwise SL_CTX_use_certificate_chain_mem() would be another option. That said, as mentioned on ICB, OpenSSL largely owns the SSL_* and SSL_CTX_* namespace - if you import openssl/ssl.h and then declare your own functions with these prefixes you're pretty much asking for conflicts at some point. The same problem would surface if OpenSSL proper ever added such a function. Is this the only ports fallout? -- "Action without study is fatal. Study without action is futile." -- Mary Ritter Beard
[update] lang/go 1.2.1
The following update lang/go to 1.2.1. Additionally, the OpenBSD related API changes are added to the exceptions list (which has already been done upstream for 1.3) so that make regress passes. Passes regress on OpenBSD/amd64 and OpenBSD/i386. ok? Index: Makefile === RCS file: /cvs/ports/lang/go/Makefile,v retrieving revision 1.17 diff -u -p -r1.17 Makefile --- Makefile8 Dec 2013 15:09:15 - 1.17 +++ Makefile22 Mar 2014 05:43:51 - @@ -4,8 +4,7 @@ ONLY_FOR_ARCHS =amd64 i386 COMMENT = Go programming language -VERSION = 1.2 -REVISION = 0 +VERSION = 1.2.1 EXTRACT_SUFX = .src.tar.gz DISTNAME = go${VERSION} PKGNAME = go-${VERSION} Index: distinfo === RCS file: /cvs/ports/lang/go/distinfo,v retrieving revision 1.7 diff -u -p -r1.7 distinfo --- distinfo2 Dec 2013 15:35:49 - 1.7 +++ distinfo22 Mar 2014 05:43:51 - @@ -1,2 +1,2 @@ -SHA256 (go1.2.src.tar.gz) = mrg/uOr+OfQgTvD46E5f9+jx1TPdsF9R5tyBUD6MCuQ= -SIZE (go1.2.src.tar.gz) = 9519109 +SHA256 (go1.2.1.src.tar.gz) = FlWpNnvsCD31fKzCmt0oDCeXkYAeEC/YUcANi6vRKlU= +SIZE (go1.2.1.src.tar.gz) = 9520633 Index: patches/patch-api_except_txt === RCS file: patches/patch-api_except_txt diff -N patches/patch-api_except_txt --- /dev/null 1 Jan 1970 00:00:00 - +++ patches/patch-api_except_txt22 Mar 2014 05:43:51 - @@ -0,0 +1,295 @@ +$OpenBSD$ +--- api/except.txt.origThu Mar 20 19:18:57 2014 api/except.txt Thu Mar 20 19:21:29 2014 +@@ -14,3 +14,291 @@ pkg syscall (darwin-386), const ImplementsGetwd = fals + pkg syscall (darwin-386-cgo), const ImplementsGetwd = false + pkg syscall (darwin-amd64), const ImplementsGetwd = false + pkg syscall (darwin-amd64-cgo), const ImplementsGetwd = false ++pkg syscall (openbsd-386), const BIOCGRTIMEOUT = 1074283118 ++pkg syscall (openbsd-386), const BIOCSRTIMEOUT = 2148024941 ++pkg syscall (openbsd-386), const EMUL_ENABLED = 1 ++pkg syscall (openbsd-386), const EMUL_ENABLED ideal-int ++pkg syscall (openbsd-386), const EMUL_NATIVE = 2 ++pkg syscall (openbsd-386), const EMUL_NATIVE ideal-int ++pkg syscall (openbsd-386), const IPV6_FAITH = 29 ++pkg syscall (openbsd-386), const IPV6_FAITH ideal-int ++pkg syscall (openbsd-386), const IPV6_OPTIONS = 1 ++pkg syscall (openbsd-386), const IPV6_OPTIONS ideal-int ++pkg syscall (openbsd-386), const IPV6_RTHDR_STRICT = 1 ++pkg syscall (openbsd-386), const IPV6_RTHDR_STRICT ideal-int ++pkg syscall (openbsd-386), const IPV6_SOCKOPT_RESERVED1 = 3 ++pkg syscall (openbsd-386), const IPV6_SOCKOPT_RESERVED1 ideal-int ++pkg syscall (openbsd-386), const RTF_FMASK = 63496 ++pkg syscall (openbsd-386), const RTM_VERSION = 4 ++pkg syscall (openbsd-386), const SIOCBRDGDADDR = 2150132039 ++pkg syscall (openbsd-386), const SIOCBRDGGPARAM = 3224922456 ++pkg syscall (openbsd-386), const SIOCBRDGSADDR = 3223873860 ++pkg syscall (openbsd-386), const SIOCGIFGENERIC = 3223349562 ++pkg syscall (openbsd-386), const SIOCGIFGENERIC ideal-int ++pkg syscall (openbsd-386), const SIOCSIFGENERIC = 2149607737 ++pkg syscall (openbsd-386), const SIOCSIFGENERIC ideal-int ++pkg syscall (openbsd-386), const SYS_CLOCK_GETRES = 234 ++pkg syscall (openbsd-386), const SYS_CLOCK_GETTIME = 232 ++pkg syscall (openbsd-386), const SYS_CLOCK_SETTIME = 233 ++pkg syscall (openbsd-386), const SYS_FHSTATFS = 309 ++pkg syscall (openbsd-386), const SYS_FSTAT = 292 ++pkg syscall (openbsd-386), const SYS_FSTATAT = 316 ++pkg syscall (openbsd-386), const SYS_FSTATFS = 308 ++pkg syscall (openbsd-386), const SYS_FUTIMENS = 327 ++pkg syscall (openbsd-386), const SYS_FUTIMES = 206 ++pkg syscall (openbsd-386), const SYS_GETDIRENTRIES = 312 ++pkg syscall (openbsd-386), const SYS_GETDIRENTRIES ideal-int ++pkg syscall (openbsd-386), const SYS_GETFSSTAT = 306 ++pkg syscall (openbsd-386), const SYS_GETITIMER = 86 ++pkg syscall (openbsd-386), const SYS_GETRUSAGE = 117 ++pkg syscall (openbsd-386), const SYS_GETTIMEOFDAY = 116 ++pkg syscall (openbsd-386), const SYS_KEVENT = 270 ++pkg syscall (openbsd-386), const SYS_LSTAT = 293 ++pkg syscall (openbsd-386), const SYS_NANOSLEEP = 240 ++pkg syscall (openbsd-386), const SYS_SELECT = 93 ++pkg syscall (openbsd-386), const SYS_SETITIMER = 83 ++pkg syscall (openbsd-386), const SYS_SETTIMEOFDAY = 122 ++pkg syscall (openbsd-386), const SYS_STAT = 291 ++pkg syscall (openbsd-386), const SYS_STATFS = 307 ++pkg syscall (openbsd-386), const SYS_UTIMENSAT = 326 ++pkg syscall (openbsd-386), const SYS_UTIMES = 138 ++pkg syscall (openbsd-386), const SYS_WAIT4 = 7 ++pkg syscall (openbsd-386), const SYS___THRSLEEP = 300 ++pkg syscall (openbsd-386), const SizeofIfData = 208 ++pkg syscall (openbsd-386), const SizeofIfMsghdr = 232 ++pkg syscall (openbsd-386), const SizeofRtMetrics = 48
Re: [update] lang/go 1.2rc3
On Tue, 19 Nov 2013, Stuart Henderson wrote: > On 2013/11/19 02:38, Brad Smith wrote: > > - Original message - > > > > > On Sat, 2 Nov 2013, Joel Sing wrote: > > > > The following diff updates go/lang go 1.2rc3 - this is going to be > > > > very close to the final 1.2 release, however we might as well get > > > > this in now as it is generally better than the 1.1.1 release and it > > > > fixes a regression introduced by the recent route message version > > > > change. > > > > > > > > Passes regress on i386 and amd64, although the API version checks > > > > fail (as to be expected). > > > > > > > > ok? > > > > > > Anyone? The 1.2rc5 release is now out, which only requires a VERSION > > > and checksum update from the below diff. Is there any interest, or do I > > > sit on it until 1.2 is released in early December? > > > > Wait for the 1.2 (final) release. > > Normally I'd lean towards waiting until final release, but it would be > good to have the fixes for bridge/vlan syscalls and route messages sooner, > and as it's already been tested this way, it seems to make more sense to > me than backporting.. Right, hence my reason for looking at it now rather than later. The 1.2 release should not be anything more than a version bump and a checksum update. > About ParseRoutingMessage, though: > : // ParseRoutingMessage parses b as routing messages and returns the > : // slice containing the RoutingMessage interfaces. > : func ParseRoutingMessage(b []byte) (msgs []RoutingMessage, err error) { > : for len(b) >= anyMessageLen { > : any := (*anyMessage)(unsafe.Pointer(&b[0])) > : + if any.Version == RTM_VERSION - 1 { > : + b = b[any.Msglen:] > : + continue > : + } > : if any.Version != RTM_VERSION { > : return nil, EINVAL > : } > : msgs = append(msgs, any.toRoutingMessage(b)) > : b = b[any.Msglen:] > : } > : return msgs, nil > : } > > ..shouldn't it skip over routing messages of any incorrect version, > rather than just skipping RTM_VERSION - 1 and failing with EINVAL for > others? At least, that's the way we handle it in route/netstat etc. That's a fair question. According to bluhm@, the backwards compatibility should soon be removed - my current thinking was to go with the minimal workaround that can be reverted later. There is probably an argument for simply skipping over any unknown routing message version, however that then brings up the question of how things should behave if we do not know how to handle any of the messages returned (i.e. does this mean there are no routing messages, interfaces, etc, or should this signal an error condition). Given that this Go code is shared amongst the BSDs, I'm happy to discuss this upstream. -- "Action without study is fatal. Study without action is futile." -- Mary Ritter Beard
[update] lang/go 1.1.1
Update lang/go to 1.1.1, from Amit Kulkarni. Passes regress on amd64 and i386. ok? Index: Makefile === RCS file: /cvs/ports/lang/go/Makefile,v retrieving revision 1.10 diff -u -p -r1.10 Makefile --- Makefile15 May 2013 12:10:15 - 1.10 +++ Makefile11 Jul 2013 14:29:58 - @@ -4,7 +4,7 @@ ONLY_FOR_ARCHS =amd64 i386 COMMENT = Go programming language -VERSION = 1.1 +VERSION = 1.1.1 EXTRACT_SUFX = .src.tar.gz DISTNAME = go${VERSION} PKGNAME = go-${VERSION} @@ -17,7 +17,7 @@ MAINTAINER = Joel Sing http://go.googlecode.com/files/ Index: distinfo === RCS file: /cvs/ports/lang/go/distinfo,v retrieving revision 1.5 diff -u -p -r1.5 distinfo --- distinfo15 May 2013 12:10:15 - 1.5 +++ distinfo11 Jul 2013 14:29:58 - @@ -1,2 +1,2 @@ -SHA256 (go1.1.src.tar.gz) = vx0FfYOG6ED5zT94clLibY7hloUukjKm+c52IzexnLY= -SIZE (go1.1.src.tar.gz) = 9041413 +SHA256 (go1.1.1.src.tar.gz) = JX90uNgSu97GlehC3lh6FJXncotOY9KAWGoUeGrbta8= +SIZE (go1.1.1.src.tar.gz) = 9045336 -- "Action without study is fatal. Study without action is futile." -- Mary Ritter Beard
unbreak lang/go - use new __tfork syscall
The 1.0.3 release of lang/go makes use of the old __tfork syscall, which was recently removed by guenther@. The attached diff makes lang/go use the newer version of the __tfork syscall. Additionally, switch to __set_tcb instead of using sysarch, which allows for the removal of systrace.filter (well, at least the contents - I'll delete the file once the tree allows). Passes regress on amd64 and i386. ok? P.S. Upstream tip already does both of these things and I had been hoping that Go 1.1 would be released before guenther@ removed the obsoleted syscall! -- "Action without study is fatal. Study without action is futile." -- Mary Ritter Beard Index: Makefile === RCS file: /cvs/ports/lang/go/Makefile,v retrieving revision 1.7 diff -u -p -r1.7 Makefile --- Makefile 1 Oct 2012 06:20:09 - 1.7 +++ Makefile 7 Mar 2013 14:52:11 - @@ -5,6 +5,7 @@ ONLY_FOR_ARCHS = amd64 i386 COMMENT = Go programming language VERSION = 1.0.3 +REVISION = 0 EXTRACT_SUFX = .src.tar.gz DISTNAME = go${VERSION} PKGNAME = go-${VERSION} Index: systrace.filter === RCS file: /cvs/ports/lang/go/systrace.filter,v retrieving revision 1.2 diff -u -p -r1.2 systrace.filter --- systrace.filter 4 Jul 2012 15:20:31 - 1.2 +++ systrace.filter 7 Mar 2013 14:52:11 - @@ -1,4 +1 @@ # $OpenBSD: systrace.filter,v 1.2 2012/07/04 15:20:31 sthen Exp $ -# Go programs (including go_bootstrap) currently need sysarch(). - native-sysarch: permit - native-compat_o51___tfork: permit Index: patches/patch-src_cmd_ld_elf_c === RCS file: /cvs/ports/lang/go/patches/patch-src_cmd_ld_elf_c,v retrieving revision 1.1 diff -u -p -r1.1 patch-src_cmd_ld_elf_c --- patches/patch-src_cmd_ld_elf_c 19 Sep 2012 21:10:38 - 1.1 +++ patches/patch-src_cmd_ld_elf_c 7 Mar 2013 14:52:11 - @@ -1,7 +1,7 @@ -$OpenBSD: patch-src_cmd_ld_elf_c,v 1.1 2012/09/19 21:10:38 sthen Exp $ src/cmd/ld/elf.c.orig Thu Jun 14 04:23:38 2012 -+++ src/cmd/ld/elf.c Mon Sep 17 11:38:32 2012 -@@ -348,20 +348,16 @@ elfwriteinterp(vlong stridx) +$OpenBSD$ +--- src/cmd/ld/elf.c.orig Mon Sep 24 05:43:12 2012 src/cmd/ld/elf.c Sun Nov 18 02:37:55 2012 +@@ -351,20 +351,16 @@ elfwriteinterp(vlong stridx) return sh->size; } @@ -29,7 +29,7 @@ $OpenBSD: patch-src_cmd_ld_elf_c,v 1.1 2 sh->addr = startva + resoff - n; sh->off = resoff - n; sh->size = n; -@@ -369,8 +365,9 @@ elfnetbsdsig(ElfShdr *sh, uint64 startva, uint64 resof +@@ -372,8 +368,9 @@ elfnetbsdsig(ElfShdr *sh, uint64 startva, uint64 resof return n; } @@ -41,7 +41,7 @@ $OpenBSD: patch-src_cmd_ld_elf_c,v 1.1 2 ElfShdr *sh = nil; int i; -@@ -378,15 +375,79 @@ elfwritenetbsdsig(vlong stridx) { +@@ -381,15 +378,79 @@ elfwritenetbsdsig(vlong stridx) { if(shdr[i]->name == stridx) sh = shdr[i]; if(sh == nil) Index: patches/patch-src_pkg_runtime_sys_openbsd_386_s === RCS file: /cvs/ports/lang/go/patches/patch-src_pkg_runtime_sys_openbsd_386_s,v retrieving revision 1.2 diff -u -p -r1.2 patch-src_pkg_runtime_sys_openbsd_386_s --- patches/patch-src_pkg_runtime_sys_openbsd_386_s 15 Apr 2012 13:37:27 - 1.2 +++ patches/patch-src_pkg_runtime_sys_openbsd_386_s 7 Mar 2013 14:52:11 - @@ -1,6 +1,6 @@ -$OpenBSD: patch-src_pkg_runtime_sys_openbsd_386_s,v 1.2 2012/04/15 13:37:27 jsing Exp $ src/pkg/runtime/sys_openbsd_386.s.orig Wed Mar 28 15:49:26 2012 -+++ src/pkg/runtime/sys_openbsd_386.s Fri Mar 2 02:14:56 2012 +$OpenBSD: patch-src_pkg_runtime_sys_openbsd_386_s,v 1.1.1.1 2012/03/31 12:37:16 jsing Exp $ +--- src/pkg/runtime/sys_openbsd_386.s.orig Mon Sep 24 05:43:12 2012 src/pkg/runtime/sys_openbsd_386.s Sun Nov 18 02:56:11 2012 @@ -12,14 +12,16 @@ TEXT runtime·exit(SB),7,$-4 MOVL $1, AX @@ -50,7 +50,7 @@ $OpenBSD: patch-src_pkg_runtime_sys_open TEXT runtime·sigtramp(SB),7,$44 get_tls(CX) -@@ -174,40 +184,46 @@ TEXT runtime·sigtramp(SB),7,$44 +@@ -174,45 +184,51 @@ TEXT runtime·sigtramp(SB),7,$44 MOVL AX, 4(SP) // arg 1 - sigcontext MOVL $103, AX // sys_sigreturn INT $0x80 @@ -63,7 +63,7 @@ $OpenBSD: patch-src_pkg_runtime_sys_open - MOVL flags+8(SP), AX - MOVL stack+12(SP), CX +// int32 tfork_thread(void *stack, M *m, G *g, void (*fn)(void)); -+TEXT runtime·tfork_thread(SB),7,$20 ++TEXT runtime·tfork_thread(SB),7,$24 // Copy m, g, fn off parent stack for use by child. + MOVL stack+4(FP), CX @@ -78,18 +78,22 @@ $OpenBSD: patch-src_pkg_runtime_sys_open + MOVL fn+16(FP), SI MOVL SI, 8(CX) MOVL $1234, 12(CX) - MOVL CX, SI +- MOVL CX, SI -+ LEAL 8(SP), AX ++ MOVL mm+8(FP), DX ++ LEAL m_procid(CX), DX ++ ++ LEAL 12(SP), AX + MOVL $0, 0(AX) // tf_tcb -+ MOVL $0, 4(AX) // tf_tid -+ MOVL $0, 8(AX) // tf_flags ++ MOVL DX, 4(AX) // tf_tid ++ MOVL CX, 8(AX) // tf_s
Re: UPDATE: lang/go 1.0.3
Thanks. I'd prefer to run with the following, which: - Updates to go 1.0.3. - Fixes a bug in the regress tests that may result in the tests being built/run with the installed binaries rather than the new binaries. - Fixes a bug related to 'go install' trying to rebuild non-writeable $GOROOT packages, when used with a $GOPATH (issue 4106). - Includes the 'misc' part of the package, which includes editor configuration files, etc. Passes regress on amd64 and i386. ok? Index: Makefile === RCS file: /cvs/ports/lang/go/Makefile,v retrieving revision 1.6 diff -u -p -r1.6 Makefile --- Makefile19 Sep 2012 21:10:38 - 1.6 +++ Makefile28 Sep 2012 16:20:37 - @@ -4,8 +4,7 @@ ONLY_FOR_ARCHS =amd64 i386 COMMENT = Go programming language -VERSION = 1.0.2 -REVISION = 0 +VERSION = 1.0.3 EXTRACT_SUFX = .src.tar.gz DISTNAME = go${VERSION} PKGNAME = go-${VERSION} @@ -71,7 +70,7 @@ do-build: do-regress: @cd ${WRKSRC} && \ ulimit -n 256 -d 2097152 && \ - PATH=${PATH}:${WRKDIST}/bin GOROOT=${WRKDIST} ./run.bash + PATH=${WRKDIST}/bin:${PATH} GOROOT=${WRKDIST} ./run.bash do-install: ${INSTALL_PROGRAM} ${WRKDIST}/bin/go{,doc,fmt} ${PREFIX}/bin @@ -83,7 +82,7 @@ do-install: -exec ${INSTALL_DATA} {} \ ${GOROOT} \; -. for dir in doc include lib src pkg +. for dir in doc include lib misc src pkg @cd ${WRKDIST} && \ find ${dir} -type d \ -exec ${INSTALL_DATA_DIR} \ Index: distinfo === RCS file: /cvs/ports/lang/go/distinfo,v retrieving revision 1.3 diff -u -p -r1.3 distinfo --- distinfo4 Jul 2012 15:18:39 - 1.3 +++ distinfo28 Sep 2012 16:20:37 - @@ -1,5 +1,2 @@ -MD5 (go1.0.2.src.tar.gz) = IUk2WY/PvUu6YeoT9UIHfg== -RMD160 (go1.0.2.src.tar.gz) = aEpImSzvTzPJ3lEkOnBWx17N+5M= -SHA1 (go1.0.2.src.tar.gz) = QIuzYd+MNLG7pBODgSFU6TKQdSY= -SHA256 (go1.0.2.src.tar.gz) = cPz7RVCHwUzFm3plx4AD/NEyPXP5uZHB5S21Nda8lag= -SIZE (go1.0.2.src.tar.gz) = 9676404 +SHA256 (go1.0.3.src.tar.gz) = f7o1M9Fy8TYp09innlfGIGMrC9B1q+EddpizOL4K498= +SIZE (go1.0.3.src.tar.gz) = 7404849 Index: patches/patch-src_cmd_go_pkg_go === RCS file: patches/patch-src_cmd_go_pkg_go diff -N patches/patch-src_cmd_go_pkg_go --- /dev/null 1 Jan 1970 00:00:00 - +++ patches/patch-src_cmd_go_pkg_go 28 Sep 2012 16:20:37 - @@ -0,0 +1,24 @@ +$OpenBSD$ +--- src/cmd/go/pkg.go.orig Thu Jun 14 13:23:36 2012 src/cmd/go/pkg.go Sat Sep 22 01:39:59 2012 +@@ -494,11 +494,15 @@ func isStale(p *Package, topRoot map[string]bool) bool + // the linker. This heuristic will not work if the binaries are back-dated, + // as some binary distributions may do, but it does handle a very + // common case. See issue 3036. +- if olderThan(buildToolchain.compiler()) { +- return true +- } +- if p.build.IsCommand() && olderThan(buildToolchain.linker()) { +- return true ++ // Assume that code in $GOROOT is up to date, as it might not be ++ // writeable. See issue 4106. ++ if p.Root != goroot { ++ if olderThan(buildToolchain.compiler()) { ++ return true ++ } ++ if p.build.IsCommand() && olderThan(buildToolchain.linker()) { ++ return true ++ } + } + + // Have installed copy, probably built using current compilers, Index: pkg/PLIST === RCS file: /cvs/ports/lang/go/pkg/PLIST,v retrieving revision 1.4 diff -u -p -r1.4 PLIST --- pkg/PLIST 4 Jul 2012 15:18:39 - 1.4 +++ pkg/PLIST 28 Sep 2012 16:20:39 - @@ -1,9 +1,9 @@ @comment $OpenBSD: PLIST,v 1.3 2012/05/20 16:32:51 jsing Exp $ %%amd64%% %%i386%% -bin/go -bin/godoc -bin/gofmt +@bin bin/go +@bin bin/godoc +@bin bin/gofmt go/ go/AUTHORS go/CONTRIBUTORS @@ -71,7 +71,6 @@ go/doc/articles/wiki/test_view.good go/doc/articles/wiki/view.html go/doc/cmd.html go/doc/code.html -go/doc/codereview_with_mq.html go/doc/codewalk/ go/doc/codewalk/codewalk.css go/doc/codewalk/codewalk.js @@ -177,25 +176,6 @@ go/doc/root.html go/doc/share.png go/doc/sieve.gif go/doc/style.css -go/doc/talks/ -go/doc/talks/go_talk-20091030.pdf -go/doc/talks/go_talk-20100112.html -go/doc/talks/go_talk-20100121.html -go/doc/talks/go_talk-20100323.html -go/doc/talks/gofrontend-gcc-summit-2010.pdf -go/doc/talks/io2010/ -go/doc/talks/io2010/balance.go -go/doc/talks/io2010/decrypt.go -go/doc/talks/io2010/encrypt.go -go/doc/talks/io2010/eval1.go -go/doc/talks/io2010/eval2.go -go/doc/talks/io20
systrace.filter: rfork syscall is obsolete
The rfork syscall is now obsolete. ok? Index: systrace.filter === RCS file: /cvs/ports/infrastructure/db/systrace.filter,v retrieving revision 1.34 diff -u -p -u -p -r1.34 systrace.filter --- systrace.filter 30 Jan 2012 16:02:24 - 1.34 +++ systrace.filter 4 Jul 2012 15:21:26 - @@ -180,7 +180,6 @@ native-renameat: filename match "${TMPDIR}" and filename[1] match "${WRKDIR}" then permit native-renameat: filename match "${WRKDIR}" and filename[1] match "${WRKDIR}" then permit native-renameat: filename match "/: *" then deny[enoent] - native-rfork: permit native-sched_yield: permit native-select: permit native-semctl: permit -- "Reason is not automatic. Those who deny it cannot be conquered by it. Do not count on them. Leave them alone." -- Ayn Rand
Re: [update] lang/go 1.0.2
On Wednesday 04 July 2012, Juan Francisco Cantero Hurtado wrote: > On Wed, Jul 04, 2012 at 10:37:50AM +1000, Joel Sing wrote: > > On Wednesday 04 July 2012, Juan Francisco Cantero Hurtado wrote: > > > On Wed, Jul 04, 2012 at 01:17:00AM +1000, Joel Sing wrote: > > > > The following diff updates lang/go to Go 1.0.2 - the current stable > > > > release. Regress passes on both amd64 and i386. > > > > > > > > ok? > > > > > > I can compile the package with USE_SYSTRACE enabled. Without > > > USE_SYSTRACE, the package compiles but I haven't tested the "regress" > > > step. > > > > Thanks for catching this - the issue is due to guenther@'s recent changes > > to the __tfork syscall, which resulted in it getting a new syscall number > > (the port is still using the older syscall which is now marked as compat > > and has a different name). This is unrelated to the version update and > > the existing port will also fail in the same way - I'll fix this in a > > separate diff. > > OK. Try also the regression test, I've a lot of errors like this > (without systrace enabled): > > fork/exec /tmp/go-build449254209/unicode/utf8/_test/utf8.test: > permission denied > FAILunicode/utf80.001s That looks like you have /tmp mounted with noexec - I'm guessing that the current version of the port fails for you in the same way. -- "Reason is not automatic. Those who deny it cannot be conquered by it. Do not count on them. Leave them alone." -- Ayn Rand
Re: [update] lang/go 1.0.2
On Wednesday 04 July 2012, Stuart Henderson wrote: > On 2012/07/04 10:37, Joel Sing wrote: > > On Wednesday 04 July 2012, Juan Francisco Cantero Hurtado wrote: > > > On Wed, Jul 04, 2012 at 01:17:00AM +1000, Joel Sing wrote: > > > > The following diff updates lang/go to Go 1.0.2 - the current stable > > > > release. Regress passes on both amd64 and i386. > > > > > > > > ok? > > > > > > I can compile the package with USE_SYSTRACE enabled. Without > > > USE_SYSTRACE, the package compiles but I haven't tested the "regress" > > > step. > > > > Thanks for catching this - the issue is due to guenther@'s recent changes > > to the __tfork syscall, which resulted in it getting a new syscall number > > (the port is still using the older syscall which is now marked as compat > > and has a different name). This is unrelated to the version update and > > the existing port will also fail in the same way - I'll fix this in a > > separate diff. > > We could also do this for now, though updating Go to use the > new syscall is better. As far as I am aware, Go is the only thing in ports that is using the (now) old __tfork syscall. I should be able to fix it in the next couple of days, otherwise we can run with this. > Index: systrace.filter > === > RCS file: /cvs/ports/infrastructure/db/systrace.filter,v > retrieving revision 1.34 > diff -u -p -r1.34 systrace.filter > --- systrace.filter 30 Jan 2012 16:02:24 - 1.34 > +++ systrace.filter 4 Jul 2012 11:19:27 - > @@ -4,6 +4,7 @@ > native-__set_tcb: permit > native-__sysctl: permit > native-__tfork: permit > + native-compat_o51___tfork: permit > native-__threxit: permit > native-__thrsigdivert: permit > native-__thrsleep: permit -- "Reason is not automatic. Those who deny it cannot be conquered by it. Do not count on them. Leave them alone." -- Ayn Rand
Re: [update] lang/go 1.0.2
On Wednesday 04 July 2012, Juan Francisco Cantero Hurtado wrote: > On Wed, Jul 04, 2012 at 01:17:00AM +1000, Joel Sing wrote: > > The following diff updates lang/go to Go 1.0.2 - the current stable > > release. Regress passes on both amd64 and i386. > > > > ok? > > I can compile the package with USE_SYSTRACE enabled. Without > USE_SYSTRACE, the package compiles but I haven't tested the "regress" > step. Thanks for catching this - the issue is due to guenther@'s recent changes to the __tfork syscall, which resulted in it getting a new syscall number (the port is still using the older syscall which is now marked as compat and has a different name). This is unrelated to the version update and the existing port will also fail in the same way - I'll fix this in a separate diff. > kern.version=OpenBSD 5.2-beta (GENERIC.MP) #339: Thu Jun 28 01:18:21 MDT > 2012 > t...@amd64.openbsd.org:/usr/src/sys/arch/amd64/compile/GENERIC.MP > > > pkg/go/parser > pkg/os/exec > pkg/net/url > pkg/text/template/parse > pkg/text/template > pkg/go/doc > pkg/go/build > cmd/go > systrace: deny user: root, prog: > /usr/ports/pobj/go-1.0.2/go/pkg/tool/openbsd_amd64/go_bootstrap, pid: > 5391(0)[2197], policy: /usr/bin/make, filters: 242, syscall: > native-compat_o51___tfork(328), args: 8 > runtime: failed to create new OS thread (have 1 already; errno=1) > throw: runtime.newosproc > > goroutine 1 [syscall]: > syscall.Syscall() > /usr/ports/pobj/go-1.0.2/go/src/pkg/syscall/asm_openbsd_amd64.s:15 > +0x5 > syscall.Stat(0xf840057c30, 0xf80025, 0xf840078090, 0x0, 0x0, > ...) > /usr/local/go/src/pkg/syscall/zsyscall_openbsd_amd64.o:01 > > goroutine 2 [runnable]: > created by runtime.main > /usr/ports/pobj/go-1.0.2/go/src/pkg/runtime/proc.c:221 > *** Error code 2 > > Stop in /usr/ports/lang/go (line 65 of > Makefile).*** Error code 1 > > Stop in /usr/ports/lang/go (line 2496 of > /usr/ports/infrastructure/mk/bsd.port.mk).*** > Error code 1 > > Stop in /usr/ports/lang/go (line 1718 of > /usr/ports/infrastructure/mk/bsd.port.mk).*** > Error code 1 > > Stop in /usr/ports/lang/go (line 2265 of > /usr/ports/infrastructure/mk/bsd.port.mk).*** > Error code 1 > > Stop in /usr/ports/lang/go (line 2245 of > /usr/ports/infrastructure/mk/bsd.port.mk). -- "Reason is not automatic. Those who deny it cannot be conquered by it. Do not count on them. Leave them alone." -- Ayn Rand
[update] lang/go 1.0.2
The following diff updates lang/go to Go 1.0.2 - the current stable release. Regress passes on both amd64 and i386. ok? Index: Makefile === RCS file: /cvs/ports/lang/go/Makefile,v retrieving revision 1.3 diff -u -p -r1.3 Makefile --- Makefile20 May 2012 16:32:51 - 1.3 +++ Makefile3 Jul 2012 14:57:37 - @@ -4,7 +4,7 @@ ONLY_FOR_ARCHS =amd64 i386 COMMENT = Go programming language -VERSION = 1.0.1 +VERSION = 1.0.2 EXTRACT_SUFX = .src.tar.gz DISTNAME = go${VERSION} PKGNAME = go-${VERSION} Index: distinfo === RCS file: /cvs/ports/lang/go/distinfo,v retrieving revision 1.2 diff -u -p -r1.2 distinfo --- distinfo20 May 2012 16:32:51 - 1.2 +++ distinfo3 Jul 2012 14:57:37 - @@ -1,5 +1,5 @@ -MD5 (go1.0.1.src.tar.gz) = NM1dWSYklvWamIROlMi0tw== -RMD160 (go1.0.1.src.tar.gz) = Ti2OM1GbL9NWKkwGdi8C7lAU+mY= -SHA1 (go1.0.1.src.tar.gz) = /IptZyX38r98lGhcX9CIDJt/Z/Y= -SHA256 (go1.0.1.src.tar.gz) = Kc26e8kJ33CR2B9SBJ3gI1ArWzNRzSBglPLC2ZYcAxU= -SIZE (go1.0.1.src.tar.gz) = 9617092 +MD5 (go1.0.2.src.tar.gz) = IUk2WY/PvUu6YeoT9UIHfg== +RMD160 (go1.0.2.src.tar.gz) = aEpImSzvTzPJ3lEkOnBWx17N+5M= +SHA1 (go1.0.2.src.tar.gz) = QIuzYd+MNLG7pBODgSFU6TKQdSY= +SHA256 (go1.0.2.src.tar.gz) = cPz7RVCHwUzFm3plx4AD/NEyPXP5uZHB5S21Nda8lag= +SIZE (go1.0.2.src.tar.gz) = 9676404 Index: pkg/PLIST === RCS file: /cvs/ports/lang/go/pkg/PLIST,v retrieving revision 1.3 diff -u -p -r1.3 PLIST --- pkg/PLIST 20 May 2012 16:32:51 - 1.3 +++ pkg/PLIST 3 Jul 2012 14:57:38 - @@ -1441,6 +1441,7 @@ go/src/pkg/fmt/stringer_test.go go/src/pkg/go/ go/src/pkg/go/ast/ go/src/pkg/go/ast/ast.go +go/src/pkg/go/ast/ast_test.go go/src/pkg/go/ast/example_test.go go/src/pkg/go/ast/filter.go go/src/pkg/go/ast/import.go @@ -2542,6 +2543,7 @@ go/src/pkg/syscall/syscall_unix.go go/src/pkg/syscall/syscall_windows.go go/src/pkg/syscall/syscall_windows_386.go go/src/pkg/syscall/syscall_windows_amd64.go +go/src/pkg/syscall/syscall_windows_test.go go/src/pkg/syscall/types_darwin.go go/src/pkg/syscall/types_freebsd.go go/src/pkg/syscall/types_linux.go -- "Reason is not automatic. Those who deny it cannot be conquered by it. Do not count on them. Leave them alone." -- Ayn Rand
Re: [update] lang/go 1.0.1
On Saturday 05 May 2012, Tobias Sarnowski wrote: > On 05/04/12 15:11, Joel Sing wrote: > > The following diff update Go to version 1.0.1. This release pulls several > > bug fixes up to the stable branch. > > > > ok? > > Basically works for me on openbsd-current/amd64 with one exception: Thanks. > Using cgo to use system calls does not work. I attached an example > package which works perfectly on linux/amd64 ("go test") but fails on my > openbsd machines. The compiled package (.a file) is empty and does not > contain the function symbols. Seems that the cgo compiler does not get > triggered correctly. > > This is not a specific bug of your patch now (its broken in the original > mercurial repository too) but maybe you have a clue where to look at. cgo is not currently supported/enabled on OpenBSD. Now that rthreads is enabled we are part of the way to being able to enable it. However, we are still missing support for PT_TLS program headers, which means that the TLS memory is eventually corrupted. If you want to play you can use this change, however expect to see random segfaults (mostly when using go routines): http://codereview.appspot.com/5819050 > Maybe its the same problem why the syscall[1] package is not implemented > on openbsd? What do you mean by "not implemented"? The syscall package is definately implemented for OpenBSB, since it is an essential part of the Go runtime packages: $ cat syscall.go package main import ( "fmt" "syscall" ) func main() { fmt.Println(syscall.Sysctl("kern.version")) } $ go run syscall.go OpenBSD 5.1-current (GENERIC.MP) #0: Tue Mar 27 20:25:57 EST 2012 joel@obsdamd64.localdomain:/usr/src/sys/arch/amd64/compile/GENERIC.MP > [1] http://golang.org/pkg/syscall/ > > > Index: Makefile > > === > > RCS file: /cvs/ports/lang/go/Makefile,v > > retrieving revision 1.2 > > diff -u -p -r1.2 Makefile > > --- Makefile15 Apr 2012 13:37:27 - 1.2 > > +++ Makefile4 May 2012 12:50:14 - > > @@ -4,10 +4,9 @@ ONLY_FOR_ARCHS = amd64 i386 > > > > COMMENT = Go programming language > > > > -VERSION = 1 > > -REVISION = 0 > > +VERSION = 1.0.1 > > EXTRACT_SUFX =.src.tar.gz > > -DISTNAME = go.go${VERSION} > > +DISTNAME = go${VERSION} > > PKGNAME = go-${VERSION} > > CATEGORIES = lang > > > > @@ -61,6 +60,8 @@ do-configure: > > > > do-build: > > @cd ${WRKSRC}&& \ > > + GOROOT=${WRKDIST} \ > > + GOBIN=${WRKDIST}/bin \ > > GOROOT_FINAL=${GOROOT} ./make.bash --no-banner > > > > do-regress: > > Index: distinfo > > === > > RCS file: /cvs/ports/lang/go/distinfo,v > > retrieving revision 1.1.1.1 > > diff -u -p -r1.1.1.1 distinfo > > --- distinfo31 Mar 2012 12:37:16 - 1.1.1.1 > > +++ distinfo4 May 2012 12:50:14 - > > @@ -1,5 +1,5 @@ > > -MD5 (go.go1.src.tar.gz) = eYvPwjm/mC1xlWMMwLQUaw== > > -RMD160 (go.go1.src.tar.gz) = Rr015SaZ2zNWmPPUQFShJQRQy4U= > > -SHA1 (go.go1.src.tar.gz) = YCNiPQg9sZgJZTNbisT6i0KPpIQ= > > -SHA256 (go.go1.src.tar.gz) = > > RO1cFmVNAuzZGtO9jlVkG4FVYcTsKATSl1PbvO+6dt4= -SIZE (go.go1.src.tar.gz) = > > 9637785 > > +MD5 (go1.0.1.src.tar.gz) = NM1dWSYklvWamIROlMi0tw== > > +RMD160 (go1.0.1.src.tar.gz) = Ti2OM1GbL9NWKkwGdi8C7lAU+mY= > > +SHA1 (go1.0.1.src.tar.gz) = /IptZyX38r98lGhcX9CIDJt/Z/Y= > > +SHA256 (go1.0.1.src.tar.gz) = > > Kc26e8kJ33CR2B9SBJ3gI1ArWzNRzSBglPLC2ZYcAxU= +SIZE (go1.0.1.src.tar.gz) = > > 9617092 > > Index: pkg/PLIST > > === > > RCS file: /cvs/ports/lang/go/pkg/PLIST,v > > retrieving revision 1.2 > > diff -u -p -r1.2 PLIST > > --- pkg/PLIST 15 Apr 2012 13:19:15 - 1.2 > > +++ pkg/PLIST 4 May 2012 12:50:15 - > > @@ -628,12 +628,6 @@ go/src/cmd/dist/buf.c > > go/src/cmd/dist/build.c > > go/src/cmd/dist/buildgc.c > > go/src/cmd/dist/buildruntime.c > > -go/src/cmd/dist/dist.dSYM/ > > -go/src/cmd/dist/dist.dSYM/Contents/ > > -go/src/cmd/dist/dist.dSYM/Contents/Info.plist > > -go/src/cmd/dist/dist.dSYM/Contents/Resources/ > > -go/src/cmd/dist/dist.dSYM/Contents/Resources/DWARF/ > > -go/src/cmd/dist/dist.dSYM/Contents/Resources/DWARF/dist > > go/src/cmd/dist/goc2c.c > > go/sr
[update] lang/go 1.0.1
The following diff update Go to version 1.0.1. This release pulls several bug fixes up to the stable branch. ok? Index: Makefile === RCS file: /cvs/ports/lang/go/Makefile,v retrieving revision 1.2 diff -u -p -r1.2 Makefile --- Makefile15 Apr 2012 13:37:27 - 1.2 +++ Makefile4 May 2012 12:50:14 - @@ -4,10 +4,9 @@ ONLY_FOR_ARCHS = amd64 i386 COMMENT = Go programming language -VERSION = 1 -REVISION = 0 +VERSION = 1.0.1 EXTRACT_SUFX = .src.tar.gz -DISTNAME = go.go${VERSION} +DISTNAME = go${VERSION} PKGNAME = go-${VERSION} CATEGORIES = lang @@ -61,6 +60,8 @@ do-configure: do-build: @cd ${WRKSRC} && \ + GOROOT=${WRKDIST} \ + GOBIN=${WRKDIST}/bin \ GOROOT_FINAL=${GOROOT} ./make.bash --no-banner do-regress: Index: distinfo === RCS file: /cvs/ports/lang/go/distinfo,v retrieving revision 1.1.1.1 diff -u -p -r1.1.1.1 distinfo --- distinfo31 Mar 2012 12:37:16 - 1.1.1.1 +++ distinfo4 May 2012 12:50:14 - @@ -1,5 +1,5 @@ -MD5 (go.go1.src.tar.gz) = eYvPwjm/mC1xlWMMwLQUaw== -RMD160 (go.go1.src.tar.gz) = Rr015SaZ2zNWmPPUQFShJQRQy4U= -SHA1 (go.go1.src.tar.gz) = YCNiPQg9sZgJZTNbisT6i0KPpIQ= -SHA256 (go.go1.src.tar.gz) = RO1cFmVNAuzZGtO9jlVkG4FVYcTsKATSl1PbvO+6dt4= -SIZE (go.go1.src.tar.gz) = 9637785 +MD5 (go1.0.1.src.tar.gz) = NM1dWSYklvWamIROlMi0tw== +RMD160 (go1.0.1.src.tar.gz) = Ti2OM1GbL9NWKkwGdi8C7lAU+mY= +SHA1 (go1.0.1.src.tar.gz) = /IptZyX38r98lGhcX9CIDJt/Z/Y= +SHA256 (go1.0.1.src.tar.gz) = Kc26e8kJ33CR2B9SBJ3gI1ArWzNRzSBglPLC2ZYcAxU= +SIZE (go1.0.1.src.tar.gz) = 9617092 Index: pkg/PLIST === RCS file: /cvs/ports/lang/go/pkg/PLIST,v retrieving revision 1.2 diff -u -p -r1.2 PLIST --- pkg/PLIST 15 Apr 2012 13:19:15 - 1.2 +++ pkg/PLIST 4 May 2012 12:50:15 - @@ -628,12 +628,6 @@ go/src/cmd/dist/buf.c go/src/cmd/dist/build.c go/src/cmd/dist/buildgc.c go/src/cmd/dist/buildruntime.c -go/src/cmd/dist/dist.dSYM/ -go/src/cmd/dist/dist.dSYM/Contents/ -go/src/cmd/dist/dist.dSYM/Contents/Info.plist -go/src/cmd/dist/dist.dSYM/Contents/Resources/ -go/src/cmd/dist/dist.dSYM/Contents/Resources/DWARF/ -go/src/cmd/dist/dist.dSYM/Contents/Resources/DWARF/dist go/src/cmd/dist/goc2c.c go/src/cmd/dist/main.c go/src/cmd/dist/unix.c @@ -1882,6 +1876,8 @@ go/src/pkg/mime/multipart/formdata.go go/src/pkg/mime/multipart/formdata_test.go go/src/pkg/mime/multipart/multipart.go go/src/pkg/mime/multipart/multipart_test.go +go/src/pkg/mime/multipart/testdata/ +go/src/pkg/mime/multipart/testdata/nested-mime go/src/pkg/mime/multipart/writer.go go/src/pkg/mime/multipart/writer_test.go go/src/pkg/mime/test.types -- "Reason is not automatic. Those who deny it cannot be conquered by it. Do not count on them. Leave them alone." -- Ayn Rand
lang/go: switch to tfork
Since the rfork syscall has gone away, we need to switch lang/go to tfork, as is done by the following diff. Passes 'make regress' on both amd64 and i386. ok? Index: patches/patch-src_pkg_runtime_sys_openbsd_386_s === RCS file: /cvs/ports/lang/go/patches/patch-src_pkg_runtime_sys_openbsd_386_s,v retrieving revision 1.1.1.1 diff -u -p -r1.1.1.1 patch-src_pkg_runtime_sys_openbsd_386_s --- patches/patch-src_pkg_runtime_sys_openbsd_386_s 31 Mar 2012 12:37:16 - 1.1.1.1 +++ patches/patch-src_pkg_runtime_sys_openbsd_386_s 15 Apr 2012 04:48:26 - @@ -1,6 +1,6 @@ $OpenBSD$ src/pkg/runtime/sys_openbsd_386.s.orig Mon Mar 19 00:13:54 2012 -+++ src/pkg/runtime/sys_openbsd_386.s Mon Mar 19 00:13:54 2012 +--- src/pkg/runtime/sys_openbsd_386.s.orig Wed Mar 28 15:49:26 2012 src/pkg/runtime/sys_openbsd_386.s Fri Mar 2 02:14:56 2012 @@ -12,14 +12,16 @@ TEXT runtime·exit(SB),7,$-4 MOVL$1, AX @@ -50,7 +50,7 @@ $OpenBSD$ TEXT runtime·sigtramp(SB),7,$44 get_tls(CX) -@@ -174,7 +184,7 @@ TEXT runtime·sigtramp(SB),7,$44 +@@ -174,40 +184,46 @@ TEXT runtime·sigtramp(SB),7,$44 MOVLAX, 4(SP) // arg 1 - sigcontext MOVL$103, AX// sys_sigreturn INT $0x80 @@ -58,8 +58,61 @@ $OpenBSD$ + MOVL$0xf1, 0xf1 // crash RET - // int32 rfork_thread(int32 flags, void *stack, M *m, G *g, void (*fn)(void)); -@@ -286,7 +296,7 @@ TEXT runtime·settls(SB),7,$16 +-// int32 rfork_thread(int32 flags, void *stack, M *m, G *g, void (*fn)(void)); +-TEXT runtime·rfork_thread(SB),7,$8 +- MOVLflags+8(SP), AX +- MOVLstack+12(SP), CX ++// int32 tfork_thread(void *stack, M *m, G *g, void (*fn)(void)); ++TEXT runtime·tfork_thread(SB),7,$20 + + // Copy m, g, fn off parent stack for use by child. ++ MOVLstack+4(FP), CX + SUBL$16, CX +- MOVLmm+16(SP), SI ++ MOVLmm+8(FP), SI + MOVLSI, 0(CX) +- MOVLgg+20(SP), SI ++ MOVLgg+12(FP), SI + MOVLSI, 4(CX) +- MOVLfn+24(SP), SI ++ MOVLfn+16(FP), SI + MOVLSI, 8(CX) + MOVL$1234, 12(CX) + MOVLCX, SI + ++ LEAL8(SP), AX ++ MOVL$0, 0(AX) // tf_tcb ++ MOVL$0, 4(AX) // tf_tid ++ MOVL$0, 8(AX) // tf_flags ++ + MOVL$0, 0(SP) // syscall gap +- MOVLAX, 4(SP) // arg 1 - flags +- MOVL$251, AX// sys_rfork ++ MOVLAX, 4(SP) // arg 1 - params ++ MOVL$328, AX// sys_tfork + INT $0x80 + +- // Return if rfork syscall failed +- JCC 4(PC) ++ // Return if tfork syscall failed. ++ JCC 5(PC) + NEGLAX +- MOVLAX, 48(SP) ++ MOVLret+0(FP), DX ++ MOVLAX, 0(DX) + RET + + // In parent, return. + CMPLAX, $0 +- JEQ 3(PC) +- MOVLAX, 48(SP) ++ JEQ 4(PC) ++ MOVLret+0(FP), DX ++ MOVLAX, 0(DX) + RET + + // In child, on new stack. +@@ -286,7 +302,7 @@ TEXT runtime·settls(SB),7,$16 MOVL$165, AX// sys_sysarch INT $0x80 JCC 2(PC) @@ -68,7 +121,7 @@ $OpenBSD$ RET TEXT runtime·osyield(SB),7,$-4 -@@ -295,12 +305,12 @@ TEXT runtime·osyield(SB),7,$-4 +@@ -295,12 +311,12 @@ TEXT runtime·osyield(SB),7,$-4 RET TEXT runtime·thrsleep(SB),7,$-4 Index: patches/patch-src_pkg_runtime_sys_openbsd_amd64_s === RCS file: /cvs/ports/lang/go/patches/patch-src_pkg_runtime_sys_openbsd_amd64_s,v retrieving revision 1.1.1.1 diff -u -p -r1.1.1.1 patch-src_pkg_runtime_sys_openbsd_amd64_s --- patches/patch-src_pkg_runtime_sys_openbsd_amd64_s 31 Mar 2012 12:37:16 - 1.1.1.1 +++ patches/patch-src_pkg_runtime_sys_openbsd_amd64_s 15 Apr 2012 04:48:26 - @@ -1,7 +1,41 @@ $OpenBSD$ src/pkg/runtime/sys_openbsd_amd64.s.orig Mon Mar 19 00:13:54 2012 -+++ src/pkg/runtime/sys_openbsd_amd64.sMon Mar 19 00:13:54 2012 -@@ -53,7 +53,8 @@ TEXT runtime·rfork_thread(SB),7,$0 +--- src/pkg/runtime/sys_openbsd_amd64.s.orig Wed Mar 28 15:49:26 2012 src/pkg/runtime/sys_openbsd_amd64.sFri Mar 2 02:03:18 2012 +@@ -8,20 +8,23 @@ + + #include "zasm_GOOS_GOARCH.h" + +-// int64 rfork_thread(int32 flags, void *stack, M *m, G *g, void (*fn)(void)); +-TEXT runtime·rfork_thread(SB),7,$0 +- MOVLflags+8(SP), DI +- MOVQstack+16(SP), SI ++// int64 tfork_thread(void *stack, M *m, G *g, void (*fn)(void)); ++TEXT runtime·tfork_thread(SB),7,$32 + +- // Copy m, g, fn off parent stack for use by child. +- MOVQmm+24(SP), R8 +- MOVQgg+32(SP), R9 +- MOVQfn+40(SP), R12
Re: new: lang/go - take 2
On Friday 30 March 2012, Stuart Henderson wrote: > On 2012/03/30 01:05, Joel Sing wrote: > > Go 1 was released yesterday - the attached is an updated port. > > > > Any further comments? Any oks? > > The diff below rolls the files which are common between i386/amd64 > (just with a different directory name) into PLIST using a substituted > variable for the dir name, this should make it a bit simpler to fix > up the plists after running "make update-plist" when updating the > port. Ah, that's neat and shrinks the PFRAG files considerably. Thanks! Updated port attached which combines this with the corrected PLIST. -- "Reason is not automatic. Those who deny it cannot be conquered by it. Do not count on them. Leave them alone." -- Ayn Rand go-port.tar.gz Description: application/tgz
Re: new: lang/go - take 2
On Friday 30 March 2012, Sergey Bronnikov wrote: > I got following error on any Go example from http://golang.org > > ~/tmp/go$ go build pi.go > # runtime > /usr/local/go/src/pkg/runtime/extern.go:121: undefined: defaultGoroot > /usr/local/go/src/pkg/runtime/extern.go:130: undefined: theVersion > /usr/local/go/src/pkg/runtime/extern.go:135: undefined: theGoos > /usr/local/go/src/pkg/runtime/extern.go:135: cannot use theGoos as type > string in const initializer /usr/local/go/src/pkg/runtime/extern.go:139: > undefined: theGoarch > /usr/local/go/src/pkg/runtime/extern.go:139: cannot use theGoarch as type > string in const initializer ~/tmp/go$ Ugh, looks like I messed up the PLIST. Try the attached version instead :) > On 01:05 Fri 30 Mar , Joel Sing wrote: > > Go 1 was released yesterday - the attached is an updated port. > > > > Any further comments? Any oks? > > > > On Monday 26 March 2012, Joel Sing wrote: > > > A new version - this updates the port to the 2012-03-22 weekly release > > > (effectively Go v1 RC2) and fixes the issue with the regress path for > > > the "go" binary. > > > > > > ok? > > > > > > On Friday 23 March 2012, Joel Sing wrote: > > > > Attached is an updated version of the port for Go: > > > > > > > > - Version numbering is now 1.0preMMDD as suggested by sthen. > > > > > > > > - Fixed PLIST issue so that the port now works correctly on both > > > > amd64 and i386. > > > > > > > > - Fixed issue with USE_SYSTRACE - for the time being a Go binary > > > > needs to be able to use the sysarch() syscall in order to setup TLS. > > > > > > > > ok? > > > > > > > > On Thursday 22 March 2012, Joel Sing wrote: > > > > > The attached is an initial port for the Go programming language > > > > > (www.golang.org). A little background - Go is approaching a "Go > > > > > version1" release and at that point it will have a stable API. > > > > > Unfortunately, for several reasons Go version 1 will not be > > > > > officially supported on OpenBSD, however there are only a few > > > > > issues that prevent this - the diffs included in the port address > > > > > known outstanding issues for the OpenBSD runtime, which will let us > > > > > provide a working port. > > > > > > > > > > Open questions: > > > > > > > > > > 1. Version numbering - in some ways once Go version 1 is release > > > > > the versioning will be somewhat like Python and in the future you > > > > > may want to install Go version 1 and Go version 2 on the same > > > > > machine (different APIs for example). However, during the > > > > > development phase there are weekly tagged releases that are simply > > > > > -MM-DD versioned. For this reason I'm thinking that the version > > > > > numbering should be 0.MMDD for now and 1.0 for the version 1 > > > > > release. Continued development could then follow on the 0.MMDD > > > > > releases. Or should we have two packages - a "go-weekly" package > > > > > and a "go" package? > > > > > > > > > > 2. The installation locations is going to get somewhat messy - due > > > > > to some of the internals of Go's design everything except a few > > > > > user binaries (so documentaiton, libraries, source code, etc) needs > > > > > to be under a single directory. For now I've used the "recommended" > > > > > default of /usr/local/go, however this is not really acceptable for > > > > > OpenBSD. Suggestions as to what would be the closest suitable > > > > > location? I plan on talking with upstream re being able to split > > > > > this so that we at least have tool/libexec type binaries and > > > > > libraries separated out from the docs/source. > > > > > > > > > > 3. License - Go is released under a BSD-style license, however some > > > > > parts (like the documentation) are under other licenses (Creative > > > > > Commons Attribution 3.0 License). How do we handle this? > > > > -- > > > > "Reason is not automatic. Those who deny it cannot be conquered by > > it. Do not count on them. Leave them alone." -- Ayn Rand -- "Reason is not automatic. Those who deny it cannot be conquered by it. Do not count on them. Leave them alone." -- Ayn Rand go-port.tar.gz Description: application/tgz
Re: new: lang/go - take 2
Go 1 was released yesterday - the attached is an updated port. Any further comments? Any oks? On Monday 26 March 2012, Joel Sing wrote: > A new version - this updates the port to the 2012-03-22 weekly release > (effectively Go v1 RC2) and fixes the issue with the regress path for > the "go" binary. > > ok? > > On Friday 23 March 2012, Joel Sing wrote: > > Attached is an updated version of the port for Go: > > > > - Version numbering is now 1.0preMMDD as suggested by sthen. > > > > - Fixed PLIST issue so that the port now works correctly on both amd64 > > and i386. > > > > - Fixed issue with USE_SYSTRACE - for the time being a Go binary needs to > > be able to use the sysarch() syscall in order to setup TLS. > > > > ok? > > > > On Thursday 22 March 2012, Joel Sing wrote: > > > The attached is an initial port for the Go programming language > > > (www.golang.org). A little background - Go is approaching a "Go > > > version1" release and at that point it will have a stable API. > > > Unfortunately, for several reasons Go version 1 will not be officially > > > supported on OpenBSD, however there are only a few issues that prevent > > > this - the diffs included in the port address known outstanding issues > > > for the OpenBSD runtime, which will let us provide a working port. > > > > > > Open questions: > > > > > > 1. Version numbering - in some ways once Go version 1 is release the > > > versioning will be somewhat like Python and in the future you may want > > > to install Go version 1 and Go version 2 on the same machine (different > > > APIs for example). However, during the development phase there are > > > weekly tagged releases that are simply -MM-DD versioned. For this > > > reason I'm thinking that the version numbering should be 0.MMDD for > > > now and 1.0 for the version 1 release. Continued development could then > > > follow on the 0.MMDD releases. Or should we have two packages - a > > > "go-weekly" package and a "go" package? > > > > > > 2. The installation locations is going to get somewhat messy - due to > > > some of the internals of Go's design everything except a few user > > > binaries (so documentaiton, libraries, source code, etc) needs to be > > > under a single directory. For now I've used the "recommended" default > > > of /usr/local/go, however this is not really acceptable for OpenBSD. > > > Suggestions as to what would be the closest suitable location? I plan > > > on talking with upstream re being able to split this so that we at > > > least have tool/libexec type binaries and libraries separated out from > > > the docs/source. > > > > > > 3. License - Go is released under a BSD-style license, however some > > > parts (like the documentation) are under other licenses (Creative > > > Commons Attribution 3.0 License). How do we handle this? -- "Reason is not automatic. Those who deny it cannot be conquered by it. Do not count on them. Leave them alone." -- Ayn Rand go-port.tar.gz Description: application/tgz
Re: new: lang/go - take 2
On Friday 23 March 2012, Juan Francisco Cantero Hurtado wrote: > On Fri, Mar 23, 2012 at 01:08:48AM +1100, Joel Sing wrote: > > Attached is an updated version of the port for Go: > > > > - Version numbering is now 1.0preMMDD as suggested by sthen. > > > > - Fixed PLIST issue so that the port now works correctly on both amd64 > > and i386. > > > > - Fixed issue with USE_SYSTRACE - for the time being a Go binary needs to > > be able to use the sysarch() syscall in order to setup TLS. > > > > ok? Thanks for the testing and feedback. > "make package" works perfect with USE_SYSTRACE. Just a warning in the > "fake" step: "strip: > /usr/ports/pobj/go-1.0pre20120313/fake-i386/usr/local/go/pkg/tool/openbsd_3 >86/pprof: File format not recognized". pprof is a Perl script, so there is no surprise that strip cannot work out what to do. Not sure if there is some easy way to tell strip to not touch this file. > I don't know if this is the correct behavior or not, but "make regress" > uses the "go" command installed on /usr/local, not the "go" binary in > the build directory. No, that would be a bug - fixed, thanks. > "make regress" with and without "go" installed, both fail. I've attached > the logs of "make regress". This is strange - it works fine for me on both amd64 and i386 . The failing part is: # Testing packages. # unicode/utf16 mkdir /tmp/go-build584473652/unicode/utf16/_test/unicode/: invalid argument # unicode/utf8 mkdir /tmp/go-build584473652/unicode/utf8: invalid argument I'm not sure why mkdir is failing with "invalid argument" - I cannot trigger this on any of my systems even when using USE_SYSTRACE. Is there something about your system configuration that could be triggering this? -- "Reason is not automatic. Those who deny it cannot be conquered by it. Do not count on them. Leave them alone." -- Ayn Rand
Re: new: lang/go - take 2
A new version - this updates the port to the 2012-03-22 weekly release (effectively Go v1 RC2) and fixes the issue with the regress path for the "go" binary. ok? On Friday 23 March 2012, Joel Sing wrote: > Attached is an updated version of the port for Go: > > - Version numbering is now 1.0preMMDD as suggested by sthen. > > - Fixed PLIST issue so that the port now works correctly on both amd64 and > i386. > > - Fixed issue with USE_SYSTRACE - for the time being a Go binary needs to > be able to use the sysarch() syscall in order to setup TLS. > > ok? > > On Thursday 22 March 2012, Joel Sing wrote: > > The attached is an initial port for the Go programming language > > (www.golang.org). A little background - Go is approaching a "Go version1" > > release and at that point it will have a stable API. Unfortunately, for > > several reasons Go version 1 will not be officially supported on OpenBSD, > > however there are only a few issues that prevent this - the diffs > > included in the port address known outstanding issues for the OpenBSD > > runtime, which will let us provide a working port. > > > > Open questions: > > > > 1. Version numbering - in some ways once Go version 1 is release the > > versioning will be somewhat like Python and in the future you may want to > > install Go version 1 and Go version 2 on the same machine (different APIs > > for example). However, during the development phase there are weekly > > tagged releases that are simply -MM-DD versioned. For this reason I'm > > thinking that the version numbering should be 0.MMDD for now and 1.0 > > for the version 1 release. Continued development could then follow on the > > 0.MMDD releases. Or should we have two packages - a "go-weekly" > > package and a "go" package? > > > > 2. The installation locations is going to get somewhat messy - due to > > some of the internals of Go's design everything except a few user > > binaries (so documentaiton, libraries, source code, etc) needs to be > > under a single directory. For now I've used the "recommended" default of > > /usr/local/go, however this is not really acceptable for OpenBSD. > > Suggestions as to what would be the closest suitable location? I plan on > > talking with upstream re being able to split this so that we at least > > have tool/libexec type binaries and libraries separated out from the > > docs/source. > > > > 3. License - Go is released under a BSD-style license, however some parts > > (like the documentation) are under other licenses (Creative Commons > > Attribution 3.0 License). How do we handle this? -- "Reason is not automatic. Those who deny it cannot be conquered by it. Do not count on them. Leave them alone." -- Ayn Rand go-port.tar.gz Description: application/tgz
Re: new: lang/go - take 2
Attached is an updated version of the port for Go: - Version numbering is now 1.0preMMDD as suggested by sthen. - Fixed PLIST issue so that the port now works correctly on both amd64 and i386. - Fixed issue with USE_SYSTRACE - for the time being a Go binary needs to be able to use the sysarch() syscall in order to setup TLS. ok? On Thursday 22 March 2012, Joel Sing wrote: > The attached is an initial port for the Go programming language > (www.golang.org). A little background - Go is approaching a "Go version1" > release and at that point it will have a stable API. Unfortunately, for > several reasons Go version 1 will not be officially supported on OpenBSD, > however there are only a few issues that prevent this - the diffs included > in the port address known outstanding issues for the OpenBSD runtime, which > will let us provide a working port. > > Open questions: > > 1. Version numbering - in some ways once Go version 1 is release the > versioning will be somewhat like Python and in the future you may want to > install Go version 1 and Go version 2 on the same machine (different APIs > for example). However, during the development phase there are weekly tagged > releases that are simply -MM-DD versioned. For this reason I'm thinking > that the version numbering should be 0.MMDD for now and 1.0 for the > version 1 release. Continued development could then follow on the > 0.MMDD releases. Or should we have two packages - a "go-weekly" package > and a "go" package? > > 2. The installation locations is going to get somewhat messy - due to some > of the internals of Go's design everything except a few user binaries (so > documentaiton, libraries, source code, etc) needs to be under a single > directory. For now I've used the "recommended" default of /usr/local/go, > however this is not really acceptable for OpenBSD. Suggestions as to what > would be the closest suitable location? I plan on talking with upstream re > being able to split this so that we at least have tool/libexec type > binaries and libraries separated out from the docs/source. > > 3. License - Go is released under a BSD-style license, however some parts > (like the documentation) are under other licenses (Creative Commons > Attribution 3.0 License). How do we handle this? -- "Reason is not automatic. Those who deny it cannot be conquered by it. Do not count on them. Leave them alone." -- Ayn Rand go-port.tar.gz Description: application/tgz
Re: new: lang/go
On Thursday 22 March 2012, Stuart Henderson wrote: > On 2012/03/22 02:09, Joel Sing wrote: > > 1. Version numbering - in some ways once Go version 1 is release the > > versioning will be somewhat like Python and in the future you may want to > > install Go version 1 and Go version 2 on the same machine (different APIs > > for example). However, during the development phase there are weekly > > tagged releases that are simply -MM-DD versioned. For this reason I'm > > thinking that the version numbering should be 0.MMDD for now and 1.0 > > for the version 1 release. > > How about 1.0pre2012mmdd? pkg_add knows how to handle these. Works for me. > > Continued development could then follow on the 0.MMDD > > releases. Or should we have two packages - a "go-weekly" package and a > > "go" package? > > I would probably go for ports/lang/go/1.0, ports/lang/go/2.0, etc. > For some things .../stable/ and .../devel/ would be more appropriate, > though I think that's probably not the case for this. I had a chat with a Go core team member and it would seem that I was probably planning too far ahead. For the time being I think we should stick with a ports/go/lang port for Go version 1 and we can revisit this in several years time when the next version appears. > > 2. The installation locations is going to get somewhat messy - due to > > some of the internals of Go's design everything except a few user > > binaries (so documentaiton, libraries, source code, etc) needs to be > > under a single directory. For now I've used the "recommended" default of > > /usr/local/go, however this is not really acceptable for OpenBSD. > > Suggestions as to what would be the closest suitable location? I plan on > > talking with upstream re being able to split this so that we at least > > have tool/libexec type binaries and libraries separated out from the > > docs/source. > > This wouldn't be the end of the world, we have a similar layout with Java. > You should plan to have the "main" version number in the directory name > to allow for multiple versions to be installed together. The preferred install location is /usr/local/go, so if there are no major objections then we should probably run with this. This is where the official Go distributions will be installed and it would be nice if it was consistent across platforms. > > 3. License - Go is released under a BSD-style license, however some parts > > (like the documentation) are under other licenses (Creative Commons > > Attribution 3.0 License). How do we handle this? > > Just list the various relevant licenses in the comment next to > the PERMIT_* markers, e.g. > > # software: BSD, documentation: CC-BY-3.0 Okay, thanks. -- "Reason is not automatic. Those who deny it cannot be conquered by it. Do not count on them. Leave them alone." -- Ayn Rand
Re: new: lang/go
On Thursday 22 March 2012, Ted Unangst wrote: > On Thu, Mar 22, 2012, Joel Sing wrote: > > 1. Version numbering - in some ways once Go version 1 is release the > > versioning will be somewhat like Python and in the future you may want to > > install Go version 1 and Go version 2 on the same machine (different APIs > > for > > example). However, during the development phase there are weekly tagged > > releases that are simply -MM-DD versioned. For this reason I'm > > thinking that the version numbering should be 0.MMDD for now and 1.0 > > for the version 1 release. Continued development could then follow on the > > 0.MMDD releases. Or should we have two packages - a "go-weekly" > > package and a "go" package? > > My understanding is that the weekly releases will be a lot less > interesting/recommended after version 1. This is correct. > Just plain go should suffice until and if version 2 is released. I don't > think we need to provide a weekly port unless people are expected to use it > for something other than hacking on go itself. That is a fair call. Having also discussed this with a Go core team member, it would seem that I was pre-empting things when I probably do not need to. We can deal with this down the track if/when the need arises. > > 2. The installation locations is going to get somewhat messy - due to > > some of > > the internals of Go's design everything except a few user binaries (so > > documentaiton, libraries, source code, etc) needs to be under a single > > directory. For now I've used the "recommended" default of /usr/local/go, > > however this is not really acceptable for OpenBSD. Suggestions as to what > > would be the closest suitable location? I plan on talking with upstream > > re being able to split this so that we at least have tool/libexec type > > binaries and libraries separated out from the docs/source. > > some things, like ruby, pile everything under /usr/local/lib/ruby, but > I find that more annoying because the lib directory is already full of > real files. > > I've been waiting for them to make a stable release for a while now. -- "Reason is not automatic. Those who deny it cannot be conquered by it. Do not count on them. Leave them alone." -- Ayn Rand
new: lang/go
The attached is an initial port for the Go programming language (www.golang.org). A little background - Go is approaching a "Go version1" release and at that point it will have a stable API. Unfortunately, for several reasons Go version 1 will not be officially supported on OpenBSD, however there are only a few issues that prevent this - the diffs included in the port address known outstanding issues for the OpenBSD runtime, which will let us provide a working port. Open questions: 1. Version numbering - in some ways once Go version 1 is release the versioning will be somewhat like Python and in the future you may want to install Go version 1 and Go version 2 on the same machine (different APIs for example). However, during the development phase there are weekly tagged releases that are simply -MM-DD versioned. For this reason I'm thinking that the version numbering should be 0.MMDD for now and 1.0 for the version 1 release. Continued development could then follow on the 0.MMDD releases. Or should we have two packages - a "go-weekly" package and a "go" package? 2. The installation locations is going to get somewhat messy - due to some of the internals of Go's design everything except a few user binaries (so documentaiton, libraries, source code, etc) needs to be under a single directory. For now I've used the "recommended" default of /usr/local/go, however this is not really acceptable for OpenBSD. Suggestions as to what would be the closest suitable location? I plan on talking with upstream re being able to split this so that we at least have tool/libexec type binaries and libraries separated out from the docs/source. 3. License - Go is released under a BSD-style license, however some parts (like the documentation) are under other licenses (Creative Commons Attribution 3.0 License). How do we handle this? -- "Reason is not automatic. Those who deny it cannot be conquered by it. Do not count on them. Leave them alone." -- Ayn Rand go-port.tar.gz Description: application/tgz
Re: KDE leaking pipes?
On Friday 27 January 2012, Joel Sing wrote: > I suspect that recent versions of KDE are leaking pipe descriptors - for > example, from within konsole (note fd 3 and 4): > > $ fstat -p $$ > USER CMD PID FD MOUNTINUM MODE R/WSZ|DV > joel ksh14524 text / 26028 -r-xr-xr-x r 429720 > joel ksh14524 wd /home 441728 drwx-- r 7168 > joel ksh145240 / 52823 crw--- rwttypq > joel ksh145241 / 52823 crw--- rwttypq > joel ksh145242 / 52823 crw--- rwttypq > joel ksh145243 pipe 0xfe810e205348 state: > joel ksh145244 pipe 0xfe810e205348 state: > joel ksh14524 10 / 53475 crw-rw-rw- rw tty > > I do not recall seeing this before I upgraded to 5.1-beta, albeit the last > update for packages was probably a few months ago. > > Starting up an xterm from within KDE results in the same outcome, as does > starting up konsole from within CWM. Running xterm under CWM does however > work as expected. > > Can anyone else reproduce this under KDE? I should also mention that this is with KDE 3.5: kdeaddons-3.5.10p10 K Desktop Environment, addons kdeadmin-3.5.10p6 K Desktop Environment, admin tools kdeartwork-3.5.10p10 K Desktop Environment, additional artwork kdebase-3.5.10p16 K Desktop Environment, basic applications kdecups-3.5.10p9K Desktop Environment, cups support kdeedu-3.5.10p7 K Desktop Environment, edutainment kdegames-3.5.10p7 K Desktop Environment, games kdegraphics-3.5.10p12 K Desktop Environment, graphic applications kdelibs-3.5.10p17 K Desktop Environment, libraries kdemultimedia-3.5.10p9 K Desktop Environment, multimedia applications kdenetwork-3.5.10p7 K Desktop Environment, network applications kdepim-3.5.10p8 KDE personal information applications kdetoys-3.5.10p6some useless KDE applications kdeutils-3.5.10p9 K Desktop Environment, utilities -- "Reason is not automatic. Those who deny it cannot be conquered by it. Do not count on them. Leave them alone." -- Ayn Rand
KDE leaking pipes?
I suspect that recent versions of KDE are leaking pipe descriptors - for example, from within konsole (note fd 3 and 4): $ fstat -p $$ USER CMD PID FD MOUNTINUM MODE R/WSZ|DV joel ksh14524 text / 26028 -r-xr-xr-x r 429720 joel ksh14524 wd /home 441728 drwx-- r 7168 joel ksh145240 / 52823 crw--- rwttypq joel ksh145241 / 52823 crw--- rwttypq joel ksh145242 / 52823 crw--- rwttypq joel ksh145243 pipe 0xfe810e205348 state: joel ksh145244 pipe 0xfe810e205348 state: joel ksh14524 10 / 53475 crw-rw-rw- rw tty I do not recall seeing this before I upgraded to 5.1-beta, albeit the last update for packages was probably a few months ago. Starting up an xterm from within KDE results in the same outcome, as does starting up konsole from within CWM. Running xterm under CWM does however work as expected. Can anyone else reproduce this under KDE? -- "Reason is not automatic. Those who deny it cannot be conquered by it. Do not count on them. Leave them alone." -- Ayn Rand
NEW: openvpn-auth-ldap 2.0.3
http://code.google.com/p/openvpn-auth-ldap/ An OpenVPN plugin that implements username/password authentication via LDAP - rather useful for hybrid environments. This requires openvpn-plugin.h - rather than reaching into the extracted openvpn source, it would make more sense to install it as part of openvpn. The following diff for net/openvpn does this. Index: Makefile === RCS file: /cvs/ports/net/openvpn/Makefile,v retrieving revision 1.39 diff -u -p -r1.39 Makefile --- Makefile23 Jan 2012 18:07:21 - 1.39 +++ Makefile26 Jan 2012 13:53:08 - @@ -3,7 +3,7 @@ COMMENT= easy-to-use, robust, and highly configurable VPN DISTNAME= openvpn-2.2.2 -REVISION= 0 +REVISION= 1 CATEGORIES=net security HOMEPAGE= http://openvpn.net/ @@ -29,9 +29,13 @@ CONFIGURE_ARGS+= --with-lzo-headers=${DE --with-lzo-lib=${DEPBASE}/lib \ --enable-password-save +INCLUDE_DIR= ${PREFIX}/include/openvpn SAMPLES_DIR= ${PREFIX}/share/examples/openvpn post-install: + ${INSTALL_DATA_DIR} ${INCLUDE_DIR} + ${INSTALL_DATA} ${WRKSRC}/openvpn-plugin.h \ + ${INCLUDE_DIR}/openvpn-plugin.h ${INSTALL_DATA_DIR} ${SAMPLES_DIR} ${INSTALL_DATA_DIR} ${SAMPLES_DIR}/sample-config-files ${INSTALL_DATA_DIR} ${SAMPLES_DIR}/sample-keys Index: pkg/PLIST === RCS file: /cvs/ports/net/openvpn/pkg/PLIST,v retrieving revision 1.14 diff -u -p -r1.14 PLIST --- pkg/PLIST 12 Jan 2012 08:15:30 - 1.14 +++ pkg/PLIST 26 Jan 2012 13:53:08 - @@ -1,6 +1,8 @@ @comment $OpenBSD: PLIST,v 1.13 2011/11/02 16:45:02 stsp Exp $ @newgroup _openvpn:577 @newuser _openvpn:577:_openvpn:daemon:OpenVPN Daemon:/nonexistent:/sbin/nologin +include/openvpn/ +include/openvpn/openvpn-plugin.h @man man/man8/openvpn.8 @bin sbin/openvpn share/doc/openvpn/ -- "Stop assuming that systems are secure unless demonstrated insecure; start assuming that systems are insecure unless designed securely." - Bruce Schneier openvpn-auth-ldap.tar.gz Description: application/tgz
Re: UPDATE: gpioflicker-0.3
On Thursday 26 January 2012, Stuart Henderson wrote: > On 2012/01/26 23:39, Joel Sing wrote: > > Update gpioflicker to v0.3 > > > > ok? > > Please remove the REVISION line rather than setting to 0. > Here's another version which also stops using groff (it's not > needed) and adds an rc script. Works for me. > Index: Makefile > === > RCS file: /cvs/ports/sysutils/gpioflicker/Makefile,v > retrieving revision 1.5 > diff -u -p -r1.5 Makefile > --- Makefile 20 Nov 2010 17:22:41 - 1.5 > +++ Makefile 26 Jan 2012 12:54:13 - > @@ -2,8 +2,7 @@ > > COMMENT= flashes gpio led whenever pf logs to pflog0 > > -DISTNAME=gpioflicker-0.2 > -REVISION = 0 > +DISTNAME=gpioflicker-0.3 > CATEGORIES= sysutils > > HOMEPAGE=http://www.pro-bono-publico.de/openbsd/gpio/ > @@ -19,7 +18,6 @@ PERMIT_DISTFILES_FTP= Yes > WANTLIB= c util > > MASTER_SITES=${HOMEPAGE} > -USE_GROFF = Yes > > do-install: > ${INSTALL_PROGRAM} ${WRKSRC}/gpioflicker ${PREFIX}/sbin > Index: distinfo > === > RCS file: /cvs/ports/sysutils/gpioflicker/distinfo,v > retrieving revision 1.2 > diff -u -p -r1.2 distinfo > --- distinfo 5 Apr 2007 17:26:11 - 1.2 > +++ distinfo 26 Jan 2012 12:54:13 - > @@ -1,5 +1,5 @@ > -MD5 (gpioflicker-0.2.tar.gz) = ERzHlNGBkkjrBmY1Xo3OjQ== > -RMD160 (gpioflicker-0.2.tar.gz) = W6+e/7bHNQU59A86U7Pq14oEHZE= > -SHA1 (gpioflicker-0.2.tar.gz) = chbLkK2EQx46KHbPqbSe/gVo7A4= > -SHA256 (gpioflicker-0.2.tar.gz) = > VevDEl88dS0pB0DPcjgDrZoxSS0DMvbRkSqdpC6+ePE= -SIZE (gpioflicker-0.2.tar.gz) > = 3570 > +MD5 (gpioflicker-0.3.tar.gz) = AJvK0J3Efw6VvF1dD/YxBA== > +RMD160 (gpioflicker-0.3.tar.gz) = bTnTRWqR3S09iaHGWgBVaXcAluw= > +SHA1 (gpioflicker-0.3.tar.gz) = J3cJNkotLi2juPIPbRbeLXbj+9E= > +SHA256 (gpioflicker-0.3.tar.gz) = > gnW71uqWE7/AB2A8Bytesb1880ZMyk0XnXVIQGldV5s= +SIZE (gpioflicker-0.3.tar.gz) > = 4043 > Index: pkg/PLIST > === > RCS file: /cvs/ports/sysutils/gpioflicker/pkg/PLIST,v > retrieving revision 1.1.1.1 > diff -u -p -r1.1.1.1 PLIST > --- pkg/PLIST 15 Sep 2005 16:16:39 - 1.1.1.1 > +++ pkg/PLIST 26 Jan 2012 12:54:13 - > @@ -1,3 +1,4 @@ > @comment $OpenBSD: PLIST,v 1.1.1.1 2005/09/15 16:16:39 jolan Exp $ > @man man/man8/gpioflicker.8 > sbin/gpioflicker > +@rcscript ${RCDIR}/gpioflicker > Index: pkg/gpioflicker.rc > === > RCS file: pkg/gpioflicker.rc > diff -N pkg/gpioflicker.rc > --- /dev/null 1 Jan 1970 00:00:00 - > +++ pkg/gpioflicker.rc26 Jan 2012 12:54:13 - > @@ -0,0 +1,11 @@ > +#!/bin/sh > +# > +# $OpenBSD$ > + > +daemon="${TRUEPREFIX}/sbin/gpioflicker" > + > +. /etc/rc.d/rc.subr > + > +rc_reload=NO > + > +rc_cmd $1 -- "Stop assuming that systems are secure unless demonstrated insecure; start assuming that systems are insecure unless designed securely." - Bruce Schneier