2024-09-21 23:49:08 +10:00
# The Go Programming Language
2024-09-22 02:21:11 +10:00
**go-legacy-win7** is a fork of the Go programming language that maintains Windows 7 support and allows for deprecated `go get` behaviour. This project aims to provide a stable Go environment for users who need to support legacy Windows systems or prefer the traditional Go workflow.
2024-09-21 23:49:08 +10:00

2024-09-22 02:21:11 +10:00
_Gopher image by [Renee French][rf], licensed under [Creative Commons 4.0 Attribution licence][cc4-by]._
2024-09-21 23:49:08 +10:00
2024-09-22 02:21:11 +10:00
## Differences from Upstream Go
2024-09-21 23:49:08 +10:00
2024-09-22 02:21:11 +10:00
1. **Windows 7 Support **
Whilst the official Go project has dropped support for Windows 7, this fork maintains compatibility with Windows 7 systems.
2024-09-21 23:49:08 +10:00
2024-09-22 02:21:11 +10:00
2. **Classic `go get` Behaviour **
This fork allows for the deprecated `go get` behaviour when `GO111MODULE` is set to "off" or "auto". This means:
2024-09-21 23:49:08 +10:00
2024-09-22 02:21:11 +10:00
- In `GOPATH/src` , `go get` and `go install` can operate in `GOPATH` mode.
- Outside of `GOPATH/src` , these commands can use module-aware mode when appropriate.
2024-09-21 23:49:08 +10:00
2024-09-22 02:21:11 +10:00
3. **Compatibility Notes **
Please be aware that some newer Go features may not be fully compatible with Windows 7. We try to maintain as much functionality as possible, but some limitations may exist.
2024-09-21 23:49:08 +10:00
2024-09-22 02:21:11 +10:00
## Changes in Each Release
2024-09-21 23:49:08 +10:00
2024-09-22 02:21:11 +10:00
Every release includes the following modifications:
2024-09-21 23:49:08 +10:00
2024-09-22 02:21:11 +10:00
- Restored Windows 7 support by reverting [693def1 ](https://github.com/golang/go/commit/693def151adff1af707d82d28f55dba81ceb08e1 )
- The Windows binary provided here also supports Windows 7
- Restored deprecated `go get` behaviour for use outside modules (reverted [de4d503 ](https://github.com/golang/go/commit/de4d50316fb5c6d1529aa5377dc93b26021ee843 ))
- Includes all improvements and bug fixes from the corresponding upstream Go release
2024-09-21 23:49:08 +10:00
2024-09-22 02:21:11 +10:00
## Download and Install
2024-09-21 23:49:08 +10:00
2024-09-22 02:21:11 +10:00
### Binary Distributions
2024-09-21 23:49:08 +10:00
2024-09-22 02:21:11 +10:00
Binary distributions are **available at the [release page](https://github.com/thongtech/go-legacy-win7/releases) ** .
#### Windows Installation
1. Download the `go-legacy-win7-<version>.windows-<arch>.zip` file.
2024-09-22 02:49:08 +10:00
2. Extract the ZIP to `C:\` (or any preferred location). This will create a `go-legacy-win7` folder.
3. Add `C:\go-legacy-win7\bin` (or your chosen path) to the system `PATH` .
2024-09-22 02:21:11 +10:00
4. Add `%USERPROFILE%\go\bin` to the user `PATH` .
5. Add `%USERPROFILE%\go` as `GOPATH` to user variables.
2024-09-22 02:28:39 +10:00
#### macOS and Linux Installation
1. Download the appropriate `go-legacy-win7-<version>.<os>-<arch>.tar.gz` file.
- For macOS: `go-legacy-win7-<version>.darwin-<arch>.tar.gz`
- For Linux: `go-legacy-win7-<version>.linux-<arch>.tar.gz`
2024-09-22 02:21:11 +10:00
2. Extract the archive to `/usr/local` :
2024-09-22 02:28:39 +10:00
2024-09-22 02:21:11 +10:00
```
2024-09-22 02:28:39 +10:00
sudo tar -C /usr/local -xzf go-legacy-win7-<version>.<os>-<arch>.tar.gz
2024-09-22 02:21:11 +10:00
```
2024-09-22 02:28:39 +10:00
2024-09-22 02:21:11 +10:00
3. Add `/usr/local/go-legacy-win7/bin` to your PATH and set GOPATH:
2024-09-22 02:28:39 +10:00
- For bash:
2024-09-22 02:21:11 +10:00
```
2024-09-22 02:28:39 +10:00
echo 'export PATH=$PATH:/usr/local/go-legacy-win7/bin:$HOME/go/bin' >> ~/.bash_profile
2024-09-22 02:21:11 +10:00
echo 'export GOPATH=$HOME/go' >> ~/.bash_profile
source ~/.bash_profile
```
2024-09-22 02:28:39 +10:00
- For zsh:
2024-09-22 02:21:11 +10:00
```
2024-09-22 02:28:39 +10:00
echo 'export PATH=$PATH:/usr/local/go-legacy-win7/bin:$HOME/go/bin' >> ~/.zshrc
2024-09-22 02:21:11 +10:00
echo 'export GOPATH=$HOME/go' >> ~/.zshrc
source ~/.zshrc
```
2024-09-22 02:28:39 +10:00
Note:
2024-09-22 02:21:11 +10:00
2024-09-22 02:28:39 +10:00
- On macOS Catalina and later, zsh is the default shell.
- On most Linux distributions, bash is the default shell.
2024-09-22 02:21:11 +10:00
After installation, verify the installation by opening a **new terminal ** and running:
```
go version
```
### Install From Source
To install from source, please follow the steps on the [official website ](https://go.dev/doc/install/source ).
## Contributing
Feedback and issue reports are welcome, and we encourage you to open pull requests to contribute to the project. We appreciate your help!
2024-09-21 23:49:08 +10:00
Note that the Go project uses the issue tracker for bug reports and
proposals only. See https://go.dev/wiki/Questions for a list of
places to ask questions about the Go language.
[rf]: https://reneefrench.blogspot.com/
[cc4-by]: https://creativecommons.org/licenses/by/4.0/