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

Add in-tree Flatpak support (are you interested in providing a Flatpak manifest?) #7

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
645 changes: 645 additions & 0 deletions flatpak/bcrypt-cargo-sources.json

Large diffs are not rendered by default.

2,180 changes: 2,180 additions & 0 deletions flatpak/com.protonvpn.www.json

Large diffs are not rendered by default.

90 changes: 90 additions & 0 deletions flatpak/com.protonvpn.www.metainfo.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
<?xml version="1.0" encoding="UTF-8"?>
<component type="desktop">
<id>com.protonvpn.www</id>
<metadata_license>CC0-1.0</metadata_license>
<project_license>GPL-3.0</project_license>
<name>Proton VPN</name>
<developer_name>Proton AG</developer_name>
<summary>Trusted and easy-to-use VPN app for Linux</summary>
<description>
<p>NOTE: This release is not verified by, affiliated with, or supported by Proton AG.</p>
<p>Proton VPN is the world's only free VPN app that is safe to use and respects your
privacy. Proton VPN is created by the CERN scientists behind Proton Mail - the world's
largest encrypted email service. Our fast VPN offers secure, private and encrypted
internet access with advanced security features. Proton VPN also unblocks access to
popular websites and streaming platforms.</p>
<p>Used by millions worldwide, Proton’s secure no-logs VPN offers 24/7 safe and private
internet access, and does not record your browsing history, display ads, sell your data
to third parties, or limit downloads.</p>
<p>Free VPN features available to all users</p>
<ul>
<li>Unlimited data with no bandwidth or speed restrictions</li>
<li>Strict no logs policy</li>
<li>Bypass geo restrictions: smart protocol selection automatically overcomes VPN bans
and unblocks censored sites and content</li>
<li>Full disk encrypted servers protect your data</li>
<li>Perfect forward secrecy: encrypted traffic cannot be captured and decrypted later</li>
<li>DNS leak protection: we encrypt DNS queries to ensure that your browsing activity
cannot be exposed through DNS leaks</li>
<li>Always-on VPN/ kill switch offers protection against leaks caused by accidental
disconnections</li>

</ul>
<p>Premium VPN features</p>
<ul>
<li>Access 2900+ high speed servers across 65+ countries worldwide</li>
<li>Fast VPN: high speed servers with connections up to 10 Gbps</li>
<li>VPN Accelerator: unique technology increases Proton VPN's speeds by up to 400% to
give a faster browsing experience</li>
<li>Unblock access to blocked or censored content</li>
<li>Connect up to 10 devices to the VPN at the same time</li>
<li>Ad blocker (NetShield): a DNS filtering feature that protects you from malware,
blocks ads, and prevents website trackers from following you across the web</li>
<li>Stream films, sports events, and videos on any streaming service (Netflix, Hulu,
Amazon Prime Video, Disney+, BBC iplayer etc)</li>
<li>File-sharing and P2P support</li>
<li>Secure Core servers protect against network-based attacks with multi-hop VPN</li>
<li>Tor over VPN provides automatic integration with the Tor anonymity network</li>
<li>Split tunneling support allows you to select which apps go through the VPN tunnel</li>
</ul>
<p>Why choose Proton VPN?</p>
<ul>
<li>No-logs VPN: We do not keep any logs that can identify what you do online</li>
<li>DNS and IPv6 leak protection: Our Linux app will never accidentally expose your real
IP address</li>
<li>Easy-to-use interface: The new Proton VPN Linux app has an intuitive graphical user
interface that lets you quickly activate features and connect to servers</li>
<li>P2P support: Share and download files using BitTorrent and other P2P protocols</li>
<li>VPN Accelerator: Free and available to everyone who uses Proton VPN, our unique VPN
Accelerator technology can improve speeds by over 400%</li>
<li>Strong encryption: Our Linux app uses the OpenVPN protocol at its strongest
encryption settings</li>
<li>Based in Switzerland: Switzerland has some of the world's strongest data privacy
laws</li>
<li>Secure streaming: Unblock popular streaming services and watch your favorite shows</li>
</ul>
<p>Join the privacy revolution</p>
<p>Your support is important as it allows us to continue our mission to bring online freedom
to people around the globe. Get our private VPN free today and enjoy fast VPN
connections and a secure internet, from anywhere.</p>
</description>
<screenshots>
<screenshot type="default">
<image>
https://protonvpn.com/support/wp-content/uploads/2023/10/ubuntu-desktop.png</image>
</screenshot>
</screenshots>
<url type="homepage">https://protonvpn.com/</url>
<url type="contact">https://protonvpn.com/support-form</url>
<url type="help">https://protonvpn.com/support/linux-vpn-setup/</url>
<url type="vcs-browser">https://github.com/ProtonVPN/proton-vpn-gtk-app</url>

<releases>
<release version="4.1.0" date="2022-11-02" />
<release version="4.0.0" date="2022-10-10" />
</releases>

<content_rating type="oars-1.1">
<content_attribute id="money-purchasing">intense</content_attribute>
</content_rating>
</component>
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
From 4dcedb79eeccd9e5a2c523ff9b8de023c4f45a98 Mon Sep 17 00:00:00 2001
From: Jagadeesh Kotra <[email protected]>
Date: Sun, 31 Jul 2022 22:26:20 +0530
Subject: [PATCH] disable ownership check for plugins

---
src/libnm-core-impl/nm-utils.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/src/libnm-core-impl/nm-utils.c b/src/libnm-core-impl/nm-utils.c
index d5d884f2e4..bbe621a97b 100644
--- a/src/libnm-core-impl/nm-utils.c
+++ b/src/libnm-core-impl/nm-utils.c
@@ -3119,6 +3119,7 @@ _nm_utils_check_file(const char *filename,

/* with check_owner enabled, check that the file belongs to the
* owner or root. */
+ /*
if (check_owner >= 0 && (out_st->st_uid != 0 && (gint64) out_st->st_uid != check_owner)) {
g_set_error(error,
NM_VPN_PLUGIN_ERROR,
@@ -3128,6 +3129,7 @@ _nm_utils_check_file(const char *filename,
filename);
return FALSE;
}
+ */

/* with check_owner enabled, check that the file cannot be modified
* by other users (except root). */
--
2.37.1
36 changes: 36 additions & 0 deletions flatpak/patches/proton-vpn-gtk-app/fix-tray-icons.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
diff --git a/proton/vpn/app/gtk/widgets/main/tray_indicator.py b/proton/vpn/app/gtk/widgets/main/tray_indicator.py
index b7797e6..1f0b782 100644
--- a/proton/vpn/app/gtk/widgets/main/tray_indicator.py
+++ b/proton/vpn/app/gtk/widgets/main/tray_indicator.py
@@ -75,19 +75,19 @@ class TrayIndicator:
see `_on_connection_disconnected` for implementation details.
"""
DISCONNECTED_ICON = str(
- ICONS_PATH / f"state-{states.Disconnected.__name__.lower()}.svg"
+ f"com.protonvpn.www.state-{states.Disconnected.__name__.lower()}"
)
DISCONNECTED_ICON_DESCRIPTION = str(
f"VPN {states.Disconnected.__name__.lower()}"
)
CONNECTED_ICON = str(
- ICONS_PATH / f"state-{states.Connected.__name__.lower()}.svg"
+ f"com.protonvpn.www.state-{states.Connected.__name__.lower()}"
)
CONNECTED_ICON_DESCRIPTION = str(
f"VPN {states.Connected.__name__.lower()}"
)
ERROR_ICON = str(
- ICONS_PATH / f"state-{states.Error.__name__.lower()}.svg"
+ f"com.protonvpn.www.state-{states.Error.__name__.lower()}"
)
ERROR_ICON_DESCRIPTION = str(
f"VPN {states.Error.__name__.lower()}"
@@ -102,7 +102,7 @@ class TrayIndicator:
AppIndicator = _import_app_indicator() # pylint: disable=invalid-name
self._indicator = AppIndicator.Indicator.new(
id="proton-vpn-app",
- icon_name="proton-vpn-sign",
+ icon_name="com.protonvpn.www.proton-vpn-sign",
category=AppIndicator.IndicatorCategory.APPLICATION_STATUS
)
self._indicator.set_status(AppIndicator.IndicatorStatus.ACTIVE)
31 changes: 31 additions & 0 deletions flatpak/pip-resources.proton-vpn-gtk-app.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Generated with flatpak-pip-generator --checker-data --yaml --runtime=org.gnome.Sdk//45 pygobject pycairo -o pip-resources.proton-vpn-gtk-app
build-commands: []
buildsystem: simple
modules:
- name: python3-pygobject
buildsystem: simple
build-commands:
- pip3 install --verbose --exists-action=i --no-index --find-links="file://${PWD}"
--prefix=${FLATPAK_DEST} "pygobject" --no-build-isolation
sources:
- type: file
url: https://files.pythonhosted.org/packages/ac/4a/f24ddf1d20cc4b56affc7921e29928559a06c922eb60077448392792b914/PyGObject-3.46.0.tar.gz
sha256: 481437b05af0a66b7c366ea052710eb3aacbb979d22d30b797f7ec29347ab1e6
x-checker-data:
name: PyGObject
type: pypi
- &id001
type: file
url: https://files.pythonhosted.org/packages/c7/7c/de4d40316ee563e4f15a0f05f28c8458833fbef80c4588b9dd51f39b78ee/pycairo-1.25.1.tar.gz
sha256: 7e2be4fbc3b4536f16db7a11982cbf713e75069a4d73d44fe5a49b68423f5c0c
x-checker-data:
name: pycairo
type: pypi
- name: python3-pycairo
buildsystem: simple
build-commands:
- pip3 install --verbose --exists-action=i --no-index --find-links="file://${PWD}"
--prefix=${FLATPAK_DEST} "pycairo" --no-build-isolation
sources:
- *id001
name: pip-resources.proton-vpn-gtk-app
158 changes: 158 additions & 0 deletions flatpak/pip-resources.python-proton-core.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,158 @@
# Generated with flatpak-pip-generator --checker-data --yaml --runtime=org.gnome.Sdk//45 requests python-gnupg pyopenssl aiohttp pyxdg -o pip-resources.python-proton-core
build-commands: []
buildsystem: simple
modules:
- name: python3-requests
buildsystem: simple
build-commands:
- pip3 install --verbose --exists-action=i --no-index --find-links="file://${PWD}"
--prefix=${FLATPAK_DEST} "requests" --no-build-isolation
sources:
- type: file
url: https://files.pythonhosted.org/packages/4c/dd/2234eab22353ffc7d94e8d13177aaa050113286e93e7b40eae01fbf7c3d9/certifi-2023.7.22-py3-none-any.whl
sha256: 92d6037539857d8206b8f6ae472e8b77db8058fec5937a1ef3f54304089edbb9
x-checker-data:
name: certifi
packagetype: bdist_wheel
type: pypi
- &id001
type: file
url: https://files.pythonhosted.org/packages/63/09/c1bc53dab74b1816a00d8d030de5bf98f724c52c1635e07681d312f20be8/charset-normalizer-3.3.2.tar.gz
sha256: f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5
x-checker-data:
name: charset-normalizer
type: pypi
- &id002
type: file
url: https://files.pythonhosted.org/packages/fc/34/3030de6f1370931b9dbb4dad48f6ab1015ab1d32447850b9fc94e60097be/idna-3.4-py3-none-any.whl
sha256: 90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2
x-checker-data:
name: idna
packagetype: bdist_wheel
type: pypi
- type: file
url: https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl
sha256: 58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f
x-checker-data:
name: requests
packagetype: bdist_wheel
type: pypi
- type: file
url: https://files.pythonhosted.org/packages/d2/b2/b157855192a68541a91ba7b2bbcb91f1b4faa51f8bae38d8005c034be524/urllib3-2.0.7-py3-none-any.whl
sha256: fdb6d215c776278489906c2f8916e6e7d4f5a9b602ccbcfdf7f016fc8da0596e
x-checker-data:
name: urllib3
packagetype: bdist_wheel
type: pypi
- name: python3-python-gnupg
buildsystem: simple
build-commands:
- pip3 install --verbose --exists-action=i --no-index --find-links="file://${PWD}"
--prefix=${FLATPAK_DEST} "python-gnupg" --no-build-isolation
sources:
- type: file
url: https://files.pythonhosted.org/packages/22/ad/12d8df0a1b465593e736fa14a5d8144381bc64b222e6cd59bb13c6af95b4/python_gnupg-0.5.1-py2.py3-none-any.whl
sha256: bf9b2d9032ef38139b7d64184176cd0b293eaeae6e4f93f50e304c7051174482
x-checker-data:
name: python_gnupg
packagetype: bdist_wheel
type: pypi
- name: python3-pyopenssl
buildsystem: simple
build-commands:
- pip3 install --verbose --exists-action=i --no-index --find-links="file://${PWD}"
--prefix=${FLATPAK_DEST} "pyopenssl" --no-build-isolation
sources:
- type: file
url: https://files.pythonhosted.org/packages/68/ce/95b0bae7968c65473e1298efb042e10cafc7bafc14d9e4f154008241c91d/cffi-1.16.0.tar.gz
sha256: bcb3ef43e58665bbda2fb198698fcae6776483e0c4a631aa5647806c25e02cc0
x-checker-data:
name: cffi
type: pypi
- type: file
url: https://files.pythonhosted.org/packages/16/a7/38fdcdd634515f589c8c723608c0f0b38d66c6c2320b3095967486f3045a/cryptography-41.0.5.tar.gz
sha256: 392cb88b597247177172e02da6b7a63deeff1937fa6fec3bbf902ebd75d97ec7
x-checker-data:
name: cryptography
type: pypi
- type: file
url: https://files.pythonhosted.org/packages/db/de/007b832ad7a95e6a73745609bbe123c407aa2c46bb0b8f765c8718294e7f/pyOpenSSL-23.3.0-py3-none-any.whl
sha256: 6756834481d9ed5470f4a9393455154bc92fe7a64b7bc6ee2c804e78c52099b2
x-checker-data:
name: pyOpenSSL
packagetype: bdist_wheel
type: pypi
- type: file
url: https://files.pythonhosted.org/packages/62/d5/5f610ebe421e85889f2e55e33b7f9a6795bd982198517d912eb1c76e1a53/pycparser-2.21-py2.py3-none-any.whl
sha256: 8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9
x-checker-data:
name: pycparser
packagetype: bdist_wheel
type: pypi
- name: python3-aiohttp
buildsystem: simple
build-commands:
- pip3 install --verbose --exists-action=i --no-index --find-links="file://${PWD}"
--prefix=${FLATPAK_DEST} "aiohttp" --no-build-isolation
sources:
- type: file
url: https://files.pythonhosted.org/packages/fd/01/f180d31923751fd20185c96938994823f00918ee5ac7b058edc005382406/aiohttp-3.8.6.tar.gz
sha256: b0cf2a4501bff9330a8a5248b4ce951851e415bdcce9dc158e76cfd55e15085c
x-checker-data:
name: aiohttp
type: pypi
- type: file
url: https://files.pythonhosted.org/packages/76/ac/a7305707cb852b7e16ff80eaf5692309bde30e2b1100a1fcacdc8f731d97/aiosignal-1.3.1-py3-none-any.whl
sha256: f8376fb07dd1e86a584e4fcdec80b36b7f81aac666ebc724e2c090300dd83b17
x-checker-data:
name: aiosignal
packagetype: bdist_wheel
type: pypi
- type: file
url: https://files.pythonhosted.org/packages/a7/fa/e01228c2938de91d47b307831c62ab9e4001e747789d0b05baf779a6488c/async_timeout-4.0.3-py3-none-any.whl
sha256: 7405140ff1230c310e51dc27b3145b9092d659ce68ff733fb0cefe3ee42be028
x-checker-data:
name: async_timeout
packagetype: bdist_wheel
type: pypi
- type: file
url: https://files.pythonhosted.org/packages/f0/eb/fcb708c7bf5056045e9e98f62b93bd7467eb718b0202e7698eb11d66416c/attrs-23.1.0-py3-none-any.whl
sha256: 1f28b4522cdc2fb4256ac1a020c78acf9cba2c6b461ccd2c126f3aa8e8335d04
x-checker-data:
name: attrs
packagetype: bdist_wheel
type: pypi
- *id001
- type: file
url: https://files.pythonhosted.org/packages/8c/1f/49c96ccc87127682ba900b092863ef7c20302a2144b3185412a08480ca22/frozenlist-1.4.0.tar.gz
sha256: 09163bdf0b2907454042edb19f887c6d33806adc71fbd54afc14908bfdc22251
x-checker-data:
name: frozenlist
type: pypi
- *id002
- type: file
url: https://files.pythonhosted.org/packages/4a/15/bd620f7a6eb9aa5112c4ef93e7031bcd071e0611763d8e17706ef8ba65e0/multidict-6.0.4.tar.gz
sha256: 3666906492efb76453c0e7b97f2cf459b0682e7402c0489a95484965dbc1da49
x-checker-data:
name: multidict
type: pypi
- type: file
url: https://files.pythonhosted.org/packages/5f/3f/04b3c5e57844fb9c034b09c5cb6d2b43de5d64a093c30529fd233e16cf09/yarl-1.9.2.tar.gz
sha256: 04ab9d4b9f587c06d801c2abfe9317b77cdf996c65a90d5e84ecc45010823571
x-checker-data:
name: yarl
type: pypi
- name: python3-pyxdg
buildsystem: simple
build-commands:
- pip3 install --verbose --exists-action=i --no-index --find-links="file://${PWD}"
--prefix=${FLATPAK_DEST} "pyxdg" --no-build-isolation
sources:
- type: file
url: https://files.pythonhosted.org/packages/e5/8d/cf41b66a8110670e3ad03dab9b759704eeed07fa96e90fdc0357b2ba70e2/pyxdg-0.28-py2.py3-none-any.whl
sha256: bdaf595999a0178ecea4052b7f4195569c1ff4d344567bccdc12dfdf02d545ab
x-checker-data:
name: pyxdg
packagetype: bdist_wheel
type: pypi
name: pip-resources.python-proton-core
Loading