diff --git a/pkgs/by-name/pr/proton-vpn/darwin.nix b/pkgs/by-name/pr/proton-vpn/darwin.nix new file mode 100644 index 000000000000..14df551ac737 --- /dev/null +++ b/pkgs/by-name/pr/proton-vpn/darwin.nix @@ -0,0 +1,46 @@ +{ + lib, + meta, + stdenvNoCC, + _7zz, + fetchurl, + nix-update-script, +}: +stdenvNoCC.mkDerivation (finalAttrs: { + pname = "proton-vpn"; + version = "6.4.0"; + + src = fetchurl { + url = "https://github.com/ProtonVPN/ios-mac-app/releases/download/mac%2F${finalAttrs.version}/ProtonVPN_mac_v${finalAttrs.version}.dmg"; + hash = "sha256-F5NS7NNqxNJcl7gFaqWtWxBxBbV6Btp7cyyDpegEGLQ="; + }; + + sourceRoot = "."; + + nativeBuildInputs = [ _7zz ]; + + installPhase = '' + runHook preInstall + + mkdir -p $out/Applications + cp -R ./ProtonVPN/ProtonVPN.app $out/Applications + + runHook postInstall + ''; + + passthru.updateScript = nix-update-script { + extraArgs = [ + "--version-regex" + "mac/(.*)" + ]; + }; + + meta = meta // { + changelog = "https://github.com/ProtonVPN/ios-mac-app/releases/tag/mac%2F${finalAttrs.version}"; + platforms = [ + "x86_64-darwin" + "aarch64-darwin" + ]; + sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; + }; +}) diff --git a/pkgs/by-name/pr/protonvpn-gui/package.nix b/pkgs/by-name/pr/proton-vpn/linux.nix similarity index 82% rename from pkgs/by-name/pr/protonvpn-gui/package.nix rename to pkgs/by-name/pr/proton-vpn/linux.nix index a08bcb6a5fc5..2ba403bb7900 100644 --- a/pkgs/by-name/pr/protonvpn-gui/package.nix +++ b/pkgs/by-name/pr/proton-vpn/linux.nix @@ -1,5 +1,6 @@ { lib, + meta, python3Packages, fetchFromGitHub, gobject-introspection, @@ -7,11 +8,12 @@ libayatana-appindicator, libnotify, wrapGAppsHook4, + writableTmpDirAsHomeHook, + nix-update-script, withIndicator ? true, }: - python3Packages.buildPythonApplication (finalAttrs: { - pname = "protonvpn-gui"; + pname = "proton-vpn"; version = "4.15.0"; pyproject = true; @@ -69,31 +71,26 @@ python3Packages.buildPythonApplication (finalAttrs: { ''; preCheck = '' - # Needed for Permission denied: '/homeless-shelter' - export HOME=$(mktemp -d) export XDG_RUNTIME_DIR=$(mktemp -d) ''; - nativeCheckInputs = with python3Packages; [ + nativeCheckInputs = [ + writableTmpDirAsHomeHook + ] + ++ (with python3Packages; [ pytestCheckHook pytest-cov-stub - ]; + ]); disabledTestPaths = [ # Segmentation fault during widgets tests "tests/unit/widgets" ]; - meta = { - description = "Proton VPN GTK app for Linux"; - homepage = "https://github.com/ProtonVPN/proton-vpn-gtk-app"; - license = lib.licenses.gpl3Plus; + passthru.updateScript = nix-update-script { }; + + meta = meta // { platforms = lib.platforms.linux; mainProgram = "protonvpn-app"; - maintainers = with lib.maintainers; [ - anthonyroussel - sebtm - rapiteanu - ]; }; }) diff --git a/pkgs/by-name/pr/proton-vpn/package.nix b/pkgs/by-name/pr/proton-vpn/package.nix new file mode 100644 index 000000000000..f469bf82ddaf --- /dev/null +++ b/pkgs/by-name/pr/proton-vpn/package.nix @@ -0,0 +1,22 @@ +{ + lib, + stdenv, + callPackage, +}: +let + meta = { + description = "Official Proton VPN client"; + homepage = "https://protonvpn.com/"; + license = lib.licenses.gpl3Only; + maintainers = with lib.maintainers; [ + anthonyroussel + delafthi + rapiteanu + sebtm + ]; + }; +in +if stdenv.hostPlatform.isDarwin then + callPackage ./darwin.nix { inherit meta; } +else + callPackage ./linux.nix { inherit meta; } diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index 5d7c4e3a9a41..6ece00ee90ff 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -1644,6 +1644,7 @@ mapAliases { protonup = throw "'protonup' has been renamed to/replaced by 'protonup-ng'"; # Converted to throw 2025-10-27 protonvpn-cli = throw "protonvpn-cli source code was removed from upstream. Use proton-vpn-cli instead."; # Added 2025-10-16 protonvpn-cli_2 = throw "protonvpn-cli_2 has been removed due to being deprecated. Use proton-vpn-cli instead."; # Added 2025-10-16 + protonvpn-gui = warnAlias "'protonvpn-gui' has been renamed to/replaced by 'proton-vpn'" proton-vpn; # Added 2026-02-23 proxmark3-rrg = throw "'proxmark3-rrg' has been renamed to/replaced by 'proxmark3'"; # Converted to throw 2025-10-27 pscid = throw "'pscid' has been removed because it was unmaintained upstream"; # Added 2025-12-12 pulp = throw "'pulp' has been removed because it was unmaintained upstream"; # Added 2025-12-12