Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(client/linux): generate Debian package #2255

Merged
merged 7 commits into from
Nov 4, 2024
Merged

Conversation

jyyi1
Copy link
Contributor

@jyyi1 jyyi1 commented Oct 21, 2024

Adds support for generating a Debian package (.deb) for Linux Outline Client.

This allows users to install Outline Client via sudo apt install Outline-Client.deb. The package installs the client to /opt/Outline, it also creates a launch shortcut.

Uninstalling the package with sudo apt remove/purge outline-client removes everything.

This PR adds two "name"s as well:

  • "extraMetadata"."name": Sets the apt package name (visible via apt list | grep outline-client).
  • "linux"."executableName": Sets the executable file name in /opt/Outline/. The first letter is capitalized ("Outline") to avoid icon conflicts with Ubuntu's default "outline" icon in launch shortcut.

TODO

  • Auto-update will be disabled in a separate PR
  • Service-less architecture will be implemented in a separate PR

@jyyi1 jyyi1 marked this pull request as ready for review October 23, 2024 02:05
@jyyi1 jyyi1 requested a review from a team as a code owner October 23, 2024 02:05
@jyyi1 jyyi1 requested review from fortuna and sbruens October 23, 2024 02:06

"deb": {
"depends": [
"gconf2", "gconf-service", "libnotify4", "libappindicator1", "libxtst6", "libnss3",
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you add them as comments to the file? Ugh, it's JSON...

Copy link
Contributor Author

@jyyi1 jyyi1 Nov 1, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Right, JSON is bad. How about adding the field "_depends_comment": "there are electron required deps"? No, electron will complain about unknown fields.


"deb": {
"depends": [
"gconf2", "gconf-service", "libnotify4", "libappindicator1", "libxtst6", "libnss3",
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you add them as comments to the file? Ugh, it's JSON...

"files": [
"client/electron/linux_proxy_controller/dist",
"client/electron/icons/png",
"client/output/build/linux"
],
"icon": "client/electron/icons/png",
"target": {
"maintainer": "The Outline Authors",
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's use Jigsaw.

Suggested change
"maintainer": "The Outline Authors",
"maintainer": "Jigsaw",

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated to Jigsaw LLC

"arch": [
"x64"
],
"target": "AppImage"
}
}, {
"arch": "x64",
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we support arm as well?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can, we also need to update Go compiler arguments for tun2socks. (And I don't have a ARM based machine to test) Could we add this later?

@jyyi1 jyyi1 merged commit 5f20056 into master Nov 4, 2024
22 checks passed
@jyyi1 jyyi1 deleted the junyi/enable-deb-build branch November 4, 2024 20:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants