110 lines
4.4 KiB
Markdown
110 lines
4.4 KiB
Markdown
# The Go Programming Language
|
|
|
|
**go-legacy-win7** is a fork of the Go programming language that maintains support for Windows 7 and Windows Server 2008 R2, 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.
|
|
|
|

|
|
_Gopher image by [Renee French][rf], licensed under [Creative Commons 4.0 Attribution licence][cc4-by]._
|
|
|
|
## Differences from Upstream Go
|
|
|
|
1. **Windows 7 and Windows Server 2008 R2 Support**
|
|
While the official Go project has dropped support for Windows 7 and Windows Server 2008 R2, this fork maintains compatibility with these legacy Windows systems.
|
|
|
|
2. **Classic `go get` Behaviour**
|
|
This fork allows for the deprecated `go get` behaviour when `GO111MODULE` is set to "off" or "auto". This means:
|
|
|
|
- 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.
|
|
|
|
3. **Compatibility Notes**
|
|
Please be aware that some newer Go features may not be fully compatible with Windows 7 or Windows Server 2008 R2. We try to maintain as much functionality as possible, but some limitations may exist.
|
|
|
|
## Changes in Each Release
|
|
|
|
Every release includes the following modifications:
|
|
|
|
- Restored Windows 7 and Windows Server 2008 R2 support (reverted [693def1](https://github.com/golang/go/commit/693def151adff1af707d82d28f55dba81ceb08e1))
|
|
- Added back LoadLibraryA fallback to load system libraries (reverted [a17d959](https://github.com/golang/go/commit/a17d959debdb04cd550016a3501dd09d50cd62e7))
|
|
- Restored deprecated `go get` behavior 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
|
|
|
|
The Windows binary provided here also supports Windows 7 and Windows Server 2008 R2
|
|
|
|
## Download and Install
|
|
|
|
### Binary Distributions
|
|
|
|
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.
|
|
2. Extract the ZIP to `C:\` (or any preferred location). This will create a `go-legacy-win7` folder.
|
|
3. Add the following to your system environment variables:
|
|
- Add `C:\go-legacy-win7\bin` (or your chosen path) to the system `PATH`.
|
|
- Set `GOROOT` to `C:\go-legacy-win7` (or your chosen path).
|
|
4. Add the following to your user environment variables:
|
|
- Add `%USERPROFILE%\go\bin` to the user `PATH`.
|
|
- Set `GOPATH` to `%USERPROFILE%\go`.
|
|
|
|
#### 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`
|
|
|
|
2. Extract the archive to `/usr/local`:
|
|
|
|
```
|
|
sudo tar -C /usr/local -xzf go-legacy-win7-<version>.<os>_<arch>.tar.gz
|
|
```
|
|
|
|
3. Add the following to your shell configuration file:
|
|
|
|
- For bash (add to `~/.bash_profile` or `~/.bashrc`):
|
|
|
|
```bash
|
|
export GOROOT=/usr/local/go-legacy-win7
|
|
export GOPATH=$HOME/go
|
|
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
|
|
```
|
|
|
|
- For zsh (add to `~/.zshrc`):
|
|
```zsh
|
|
export GOROOT=/usr/local/go-legacy-win7
|
|
export GOPATH=$HOME/go
|
|
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
|
|
```
|
|
|
|
4. Apply the changes:
|
|
|
|
- For bash: `source ~/.bash_profile` or `source ~/.bashrc`
|
|
- For zsh: `source ~/.zshrc`
|
|
|
|
Note:
|
|
|
|
- On macOS Catalina and later, zsh is the default shell.
|
|
- On most Linux distributions, bash is the default shell.
|
|
|
|
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!
|
|
|
|
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/
|