RPM / appimage version?
Hello, found the new releases support only .deb for linux. What about other (RPM-based) distros?
Hi @Psijic ! You're right, the new release is only ".deb" for Linux right now. Since Ubuntu is our officially supported OS and there's an ongoing electron issue, we went with ".deb" and also completely rewrote the routing.
You can still use older "AppImage" versions, but they won't have the new updates. If you want the latest, you can build an "AppImage" from the source, but keep in mind that the routing change might cause problems with some special Outline keys (like WebSocket).
It's a weird choice to support only .deb when a universal package manager such as Flatpak is available. I tried to build the client with Electron from the source, but this bug is still present.
Probably try Outline CLI? https://github.com/Jigsaw-Code/outline-sdk/tree/main/x/examples/outline-cli
Though the routing of CLI is older, it's still newer than the AppImage one.
Is it hard to build the client from sources?
Probably try Outline CLI? https://github.com/Jigsaw-Code/outline-sdk/tree/main/x/examples/outline-cli
Though the routing of CLI is older, it's still newer than the AppImage one.
Is there a manual how to build? What go version needed? I see I need to build it first
gcc-go [ path: /usr/bin/go, repository: openSUSE:repo-oss ]
* go1.13 [ path: /usr/bin/go, repository: openSUSE:repo-oss ]
* go1.14 [ path: /usr/bin/go, repository: openSUSE:repo-oss ]
* go1.15 [ path: /usr/bin/go, repository: openSUSE:repo-oss ]
* go1.16 [ path: /usr/bin/go, repository: openSUSE:repo-oss ]
* go1.17 [ path: /usr/bin/go, repository: openSUSE:repo-oss ]
* go1.18 [ path: /usr/bin/go, repository: openSUSE:repo-oss ]
* go1.19 [ path: /usr/bin/go, repository: openSUSE:repo-oss ]
* go1.20 [ path: /usr/bin/go, repository: openSUSE:repo-oss ]
* go1.21 [ path: /usr/bin/go, repository: openSUSE:repo-oss ]
* go1.22 [ path: /usr/bin/go, repository: openSUSE:repo-oss ]
* go1.23 [ path: /usr/bin/go, repository: openSUSE:repo-oss ]
* go1.24 [ path: /usr/bin/go, repository: openSUSE:repo-oss ]
* go1.9 [ path: /usr/bin/go, repository: openSUSE:repo-oss ]
Tried gcc-go and go1.24 and go1.20 but
./go/pkg/mod/github.com/!jigsaw-!code/[email protected]/transport/happyeyeballs.go:90:29: error: reference to undefined identifier ‘atomic.Int32’
90 | var pending atomic.Int32
| ^
../go/pkg/mod/github.com/!jigsaw-!code/[email protected]/transport/happyeyeballs.go:194:52: error: reference to undefined identifier ‘errors.Join’
194 | lookupErr = errors.Join(lookupErr, lookupRes.Err)
| ^
../go/pkg/mod/github.com/!jigsaw-!code/[email protected]/transport/happyeyeballs.go:242:50: error: reference to undefined identifier ‘errors.Join’
242 | dialErr = errors.Join(dialErr, dialRes.Err)
| ^
note: module requires Go 1.20
Looks it's hardcoded a while.
Is it hard to build the client from sources?
Not really. I didn't have the Zig compiler installed, and the 'shasum' utility was not in the /usr/bin folder. Other than that, everything was fine.
I used this repo https://github.com/Kira-NT/outline-cli for the CLI client. It has an install script and is easy to use. Works good.
Tried gcc-go and go1.24 and go1.20 but
./go/pkg/mod/github.com/!jigsaw-!code/[email protected]/transport/happyeyeballs.go:90:29: error: reference to undefined identifier ‘atomic.Int32’ 90 | var pending atomic.Int32 | ^ ../go/pkg/mod/github.com/!jigsaw-!code/[email protected]/transport/happyeyeballs.go:194:52: error: reference to undefined identifier ‘errors.Join’ 194 | lookupErr = errors.Join(lookupErr, lookupRes.Err) | ^ ../go/pkg/mod/github.com/!jigsaw-!code/[email protected]/transport/happyeyeballs.go:242:50: error: reference to undefined identifier ‘errors.Join’ 242 | dialErr = errors.Join(dialErr, dialRes.Err) | ^ note: module requires Go 1.20Looks it's hardcoded a while.
This error indicates that your Go environment is not setup correctly (maybe share your go env output for troubleshooting?). Please use the official Go binary, not gcc-go. You can find more information here (any version after 1.22 should be compatible): https://go.dev/doc/install
Please also make sure you run go env, not go1.24 env.
Thanks, guys, for the CLI tool — at the very least, it's working great. Please continue supporting it since RPM support has been officially dropped.
Steps to build on Fedora:
sudo dnf install golang-bin
sudo dnf install glibc-static libstdc++-static
git clone https://github.com/Jigsaw-Code/outline-sdk.git
cd outline-sdk/x/examples/
sudo go build -o outline-cli -ldflags="-extldflags=-static" ./outline-cli
cd outline-cli
sudo cp outline-cli /usr/local/bin/
Run:
sudo outline-cli --transport "ss://<outline-server-access-key>"
I am using Fedora do daily tasks. AppImage is ok, but I would prefer RPM version. Is it indeed so difficult to automate build process and build RPM for Fedora?
Hi @Psijic ! You're right, the new release is only ".deb" for Linux right now. Since Ubuntu is our officially supported OS and there's an ongoing electron issue, we went with ".deb" and also completely rewrote the routing.
You can still use older "AppImage" versions, but they won't have the new updates. If you want the latest, you can build an "AppImage" from the source, but keep in mind that the routing change might cause problems with some special Outline keys (like WebSocket).
Hi @jyyi1 ! Do I understand correctly that AppImage client is not updated anymore? My be, we can build AppImage using Fedora Linux installation?