Re: [lang/go] remove mips64 support

2024-06-25 Thread Joel Sing
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

2024-06-22 Thread Joel Sing
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

2024-06-17 Thread Joel Sing
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

2024-06-17 Thread Joel Sing
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

2023-10-14 Thread Joel Sing
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

2023-03-21 Thread Joel Sing
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

2023-02-02 Thread Joel Sing
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

2023-02-02 Thread Joel Sing
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.

2022-12-30 Thread Joel Sing
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.

2022-12-18 Thread Joel Sing
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

2022-06-12 Thread Joel Sing
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

2022-05-16 Thread Joel Sing
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

2022-04-25 Thread Joel Sing
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

2022-03-27 Thread Joel Sing
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

2021-08-26 Thread Joel Sing
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

2021-06-07 Thread Joel Sing
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

2021-02-20 Thread Joel Sing
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

2021-02-19 Thread Joel Sing
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

2020-08-21 Thread Joel Sing
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

2019-09-26 Thread Joel Sing
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

2019-09-26 Thread Joel Sing
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

2019-09-26 Thread Joel Sing
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

2019-09-13 Thread Joel Sing
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

2019-09-13 Thread Joel Sing
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

2019-09-13 Thread Joel Sing
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

2019-09-13 Thread Joel Sing
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

2019-09-11 Thread Joel Sing
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

2019-03-12 Thread Joel Sing
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

2019-02-09 Thread Joel Sing
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

2018-11-28 Thread Joel Sing
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

2018-10-23 Thread Joel Sing
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

2018-10-23 Thread Joel Sing
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

2018-10-22 Thread Joel Sing
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

2018-10-22 Thread Joel Sing
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

2018-10-22 Thread Joel Sing
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

2018-10-22 Thread Joel Sing
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

2018-10-22 Thread Joel Sing
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

2018-08-26 Thread Joel Sing
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

2018-03-10 Thread Joel Sing
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

2018-03-09 Thread Joel Sing
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

2017-10-10 Thread Joel Sing
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

2017-10-08 Thread Joel Sing
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

2017-09-07 Thread Joel Sing
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

2017-09-07 Thread Joel Sing
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

2017-08-31 Thread Joel Sing
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

2016-12-03 Thread Joel Sing
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

2016-09-28 Thread Joel Sing
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

2016-09-28 Thread Joel Sing
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

2016-08-19 Thread Joel Sing
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

2016-08-16 Thread Joel Sing
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

2016-06-06 Thread Joel Sing
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?

2016-06-02 Thread Joel Sing
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

2016-05-16 Thread Joel Sing
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

2016-05-13 Thread Joel Sing
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

2016-04-19 Thread Joel Sing
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

2016-01-13 Thread Joel Sing
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

2015-12-25 Thread Joel Sing
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

2015-12-22 Thread Joel Sing
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

2015-12-22 Thread Joel Sing
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

2015-12-08 Thread Joel Sing
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

2015-12-07 Thread Joel Sing
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

2015-12-07 Thread Joel Sing
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

2015-12-04 Thread Joel Sing
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

2015-12-03 Thread Joel Sing
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

2015-12-03 Thread Joel Sing
>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

2015-01-22 Thread Joel Sing
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

2015-01-18 Thread Joel Sing
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

2014-11-05 Thread Joel Sing
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

2014-11-05 Thread Joel Sing
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

2014-10-25 Thread Joel Sing
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

2014-10-25 Thread Joel Sing
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

2014-09-30 Thread Joel Sing
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

2014-09-30 Thread Joel Sing
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

2014-09-30 Thread Joel Sing
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

2014-03-22 Thread Joel Sing
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

2013-11-19 Thread Joel Sing
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

2013-07-11 Thread Joel Sing
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

2013-03-07 Thread Joel Sing
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

2012-09-29 Thread Joel Sing
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

2012-07-04 Thread Joel Sing
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

2012-07-04 Thread Joel Sing
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

2012-07-04 Thread Joel Sing
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

2012-07-03 Thread Joel Sing
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

2012-07-03 Thread Joel Sing
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

2012-05-04 Thread Joel Sing
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

2012-05-04 Thread Joel Sing
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

2012-04-14 Thread Joel Sing
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

2012-03-29 Thread Joel Sing
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

2012-03-29 Thread Joel Sing
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

2012-03-29 Thread Joel Sing
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

2012-03-25 Thread Joel Sing
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

2012-03-25 Thread Joel Sing
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

2012-03-22 Thread Joel Sing
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

2012-03-22 Thread Joel Sing
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

2012-03-22 Thread Joel Sing
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

2012-03-21 Thread Joel Sing
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?

2012-01-27 Thread Joel Sing
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?

2012-01-26 Thread Joel Sing
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

2012-01-26 Thread Joel Sing
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

2012-01-26 Thread Joel Sing
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



  1   2   >