Go and OpenBSD post-5.4 release

436 views
Skip to first unread message

Joel Sing

unread,
Dec 2, 2013, 10:04:55 AM12/2/13
to golang-dev
After the OpenBSD 5.4 release there was a significant ABI break when a number of interfaces/types were switched to 64-bit values:


The ABI break was an intentional decision and no backwards compatibility was provided beyond that needed to cross over. This means that Go tip does not work on OpenBSD -current and as things currently stand it will not work in OpenBSD 5.5.

Now for some background:

- The official OpenBSD policy is to support the current release and the previous release. This means that only OpenBSD 5.4 and 5.3 are currently supported by the OpenBSD project.

- Go tip currently only runs on OpenBSD 5.2 - 5.3 and 5.4 require a patch for issue 5067.

- There are generally two types of OpenBSD users - those who run releases and those who follow -current. Those who follow releases are likely to use Go from the OpenBSD release packages, whereas those who follow -current are more likely to use Go tip and/or install the current release of Go via the ports tree.

- Go 1.2 (or whatever is the current release when the OpenBSD 5.5 release is tagged) will ship with OpenBSD 5.5 via the ports system, which will soon have the necessary patches to enable it to work.

Moving forward, I propose that Go tip be updated so that it works on OpenBSD -current, without backwards compatibility for older releases. This would mean that the minimum version will become OpenBSD 5.5 when it is released in May 2014. Anyone running older releases can (and arguably should) use the version of Go shipped with the OpenBSD release packages. The only other option is for Go to provide forward and backwards compatibility with the OpenBSD releases - I do not believe the additional work/effort is sensible, nor should the Go project need to maintain the overhead of doing this.

Agreement, thoughts, suggestions or objections?

Brad Fitzpatrick

unread,
Dec 2, 2013, 10:38:07 AM12/2/13
to Joel Sing, golang-dev

SGTM

--
 
---
You received this message because you are subscribed to the Google Groups "golang-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-dev+...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Russ Cox

unread,
Dec 2, 2013, 10:45:36 AM12/2/13
to Brad Fitzpatrick, Joel Sing, golang-dev
Go 1.3's target release date is June 1. Are you proposing that Go 1.3 target OpenBSD <=5.4 or >=5.5?

Russ


Maxim Khitrov

unread,
Dec 2, 2013, 11:06:03 AM12/2/13
to Joel Sing, golang-dev
On Mon, Dec 2, 2013 at 10:04 AM, Joel Sing <js...@google.com> wrote:
> - There are generally two types of OpenBSD users - those who run releases
> and those who follow -current. Those who follow releases are likely to use
> Go from the OpenBSD release packages

I wouldn't count on this. If the schedules were a bit more in sync (Go
released a few weeks before the OpenBSD release), then sure. As it
stands, it's another 5 months until OpenBSD 5.5 is out and I, for one,
will not be waiting that long for the 1.2 package, nor do I want to
run -current.

It would be better if Go tip maintained support for the most recent
OpenBSD release, but if the maintenance overhead is too great then I
can certainly understand dropping this support.

Andrew Gerrand

unread,
Dec 2, 2013, 3:42:16 PM12/2/13
to Joel Sing, golang-dev
It sounds OK to me.

Is there much precedent for this kind of backward-incompatible change between OpenBSD releases?

That is, is this something we should expect to encounter again? If it's an outlier case then I'm comfortable with the proposed plan. If we're going to be dealing with version skew at each and every OpenBSD release, then maybe we need to expend a little more effort.

Andrew 

Mikio Hara

unread,
Dec 3, 2013, 7:51:42 PM12/3/13
to Joel Sing, golang-dev
Hi Joel,

On Tue, Dec 3, 2013 at 12:04 AM, Joel Sing <js...@google.com> wrote:

> Moving forward, I propose that Go tip be updated so that it works on OpenBSD
> -current, without backwards compatibility for older releases. This would
> mean that the minimum version will become OpenBSD 5.5 when it is released in
> May 2014.

It sounds good to me. Looks like finally OpenBSD guys just dropped a
plain-old list of multicast addresses and added a link of
per-interface multicast addresses to ifnet. Probably we may traverse
routing stuff (even if it's related to multicasting) with Go 1.3 on
OpenBSD 5.5.

Joel Sing

unread,
Dec 30, 2013, 7:07:43 AM12/30/13
to Andrew Gerrand, golang-dev
Finally getting to follow up on this...

On 3 December 2013 07:42, Andrew Gerrand <a...@golang.org> wrote:
It sounds OK to me.

Is there much precedent for this kind of backward-incompatible change between OpenBSD releases?

In short, no. The OpenBSD standard is to normally provide backwards compatibility for the last two releases (currently 5.3 and 5.4). In this particular case backwards compatibility was not easily achievable and the cost of providing it was deemed to outweigh the advantages.
 
That is, is this something we should expect to encounter again? If it's an outlier case then I'm comfortable with the proposed plan. If we're going to be dealing with version skew at each and every OpenBSD release, then maybe we need to expend a little more effort.

Obviously I cannot say never, however I do not recall it happening in the last 13 years...

Joel Sing

unread,
Dec 30, 2013, 7:14:30 AM12/30/13
to Russ Cox, Brad Fitzpatrick, golang-dev
Go 1.3 will be released (June 1 2014) after OpenBSD 5.5 has been released (May 1 2014), hence I am suggesting that Go 1.3 target OpenBSD >=5.5.

Go 1.2 will ship with OpenBSD 5.5 (as a package), then users can update to 1.3 if they choose to do so. If we hold off until after 5.5 then the 1.3 release (from source) will not be usable with 5.5 or 5.6 - to me, this seems worse than having 1.3 not work on 5.4.

Joel Sing

unread,
Dec 30, 2013, 7:21:25 AM12/30/13
to Maxim Khitrov, golang-dev
On 3 December 2013 03:06, Maxim Khitrov <m...@mxcrypt.com> wrote:
On Mon, Dec 2, 2013 at 10:04 AM, Joel Sing <js...@google.com> wrote:
> - There are generally two types of OpenBSD users - those who run releases
> and those who follow -current. Those who follow releases are likely to use
> Go from the OpenBSD release packages

I wouldn't count on this.

There are always going to be some users who do not fall into one of these categories, however it *generally* holds true. 
 
If the schedules were a bit more in sync (Go
released a few weeks before the OpenBSD release), then sure. As it
stands, it's another 5 months until OpenBSD 5.5 is out and I, for one,
will not be waiting that long for the 1.2 package, nor do I want to
run -current.

The OpenBSD release freeze actually happens several months before the release date. Hence, Go 1.3 would have to be released in February to make the OpenBSD 5.5 release packages. The Go 1.2 source already works (mostly) on OpenBSD 5.3/5.4 - assuming we proceed, there will be a window where Go tip will not work on 5.3 or 5.4, however it means that when Go 1.3 is released it will work on the then current OpenBSD release (5.5).

It would be better if Go tip maintained support for the most recent
OpenBSD release, but if the maintenance overhead is too great then I
can certainly understand dropping this support.

Generally speaking, I agree. My original plan was to track the last two OpenBSD releases, however in this particular case the amount of work and overhead is IMO not justified. Once we are past this bump we can hopefully resume the original plan.

Maxim Khitrov

unread,
Dec 30, 2013, 8:25:27 AM12/30/13
to Joel Sing, golang-dev
Sounds good. So if 1.3 will not make it as an official OpenBSD 5.5
port/package, would it be possible to start posting latest release
tarballs for OpenBSD on the Go downloads page? It would be nice to
have 1.2 for OpenBSD 5.4 up there as well. Most my OpenBSD systems run
without a compiler, so I'm currently setting up a VM to build my own
package from source.

Rob Pike

unread,
Dec 30, 2013, 10:28:23 AM12/30/13
to Maxim Khitrov, Joel Sing, golang-dev
Joel: Please file an issue about this and tag it for the 1.3 release.

-rob

Joel Sing

unread,
Jan 1, 2014, 10:53:06 PM1/1/14
to Rob Pike, Maxim Khitrov, golang-dev
Reply all
Reply to author
Forward
0 new messages