blob: 6fa97aa3d704ee6c57a4ed9cb858d53e8402d573 [file] [log] [blame] [view]
---
title: Go on OpenBSD
---
Go is available within the OpenBSD ports tree collection since OpenBSD 5.2. It is marked as i386- and amd64- only. See [`ports/lang/go`](http://ports.su/lang/go) for details.
| **OpenBSD release** | **Go in ports** |
|:--------------------|:--------------------|
| 6.8 (Oct 18, 2020) | go-1.15.2 |
| 6.7 (May 19, 2020) | go-1.13.9 |
| 6.6 (Oct 17, 2019) | go-1.13.1 |
| 6.5 (Apr 4, 2019) | go-1.12.1 |
| 6.4 (Oct 18, 2018) | go-1.11 |
| 6.3 (Apr 2, 2018) | go-1.10 |
| 6.2 (Oct 9, 2017) | go-1.9 |
| 6.1 (Apr 11, 2017) | go-1.8 |
| 6.0 (Sep 1, 2016) | go-1.6.3 |
| 5.9 (Mar 29, 2016) | go-1.5.4 |
| 5.8 (Oct 18, 2015) | go-1.4.2 |
| 5.7 (May 1, 2015) | go-1.4.1 |
| 5.6 (Nov 1, 2014) | go-1.3p0 |
## Building from source
| **Kernel version** | **Architectures** | **Initial support version** | **Final support version** |
|:-------------------|:------------------|:----------------------------|:--------------------------|
| 6.4 | amd64, arm, 386 | Go 1.11 | |
| 6.2 through 6.3 | amd64, arm, 386 | Go 1.9 | Go 1.15.x |
| 6.1 | amd64, arm, 386 | Go 1.8 | Go 1.10.8 |
| 6.0 | amd64, 386 | Go 1.4.1 _*_ | Go 1.10.8 |
| 6.0 | arm | Go 1.5 | Go 1.10.8 |
| 5.9 | amd64, 386 | Go 1.4.1 _*_ | Go 1.8.7 |
| 5.9 | arm | Go 1.5 | Go 1.8.7 |
| 5.6 through 5.8 | amd64, 386 | Go 1.4.1 _*_ | Go 1.7.6 |
| 5.5 | amd64, 386 | Go 1.3 _*_ | Go 1.7.6 |
| 5.0 through 5.4 | amd64, 386 | Go 1 | Go 1.2.2 |
_*_ Go 1.5 or above is recommended.
## Longterm support
Go aims to support the two most recent OpenBSD releases, because OpenBSD officially supports only the two most recent releases, and makes a best-effort attempt to maintain ABI support in consecutive releases.
## ulimits (` /etc/login.conf `)
Edit `/etc/login.conf` so that the staff class has the proper
settings. The following is a working example of the staff class:
```
staff:\
:datasize-cur=infinity:\
:datasize-max=infinity:\
:datasize=infinity:\
:openfiles-cur=4096:\
:maxproc-max=512:\
:maxproc-cur=512:\
:ignorenologin:\
:requirehome@:\
:tc=default:
```
If the database file `/etc/login.conf.db` exists, you need to rebuild it with:
```
# cap_mkdb /etc/login.conf
```
Ensure that the user you intend to build Go with is in the `staff` login class:
```
# usermod -L staff your_username_here
```