From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id aAKXNXz0wGDOuQAAgWs5BA (envelope-from ) for ; Wed, 09 Jun 2021 19:03:56 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0 with LMTPS id sB3tMHz0wGCZRQAA1q6Kng (envelope-from ) for ; Wed, 09 Jun 2021 17:03:56 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 894B711798 for ; Wed, 9 Jun 2021 19:03:56 +0200 (CEST) Received: from localhost ([::1]:54970 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lr1cR-0004zw-H2 for larch@yhetil.org; Wed, 09 Jun 2021 13:03:55 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:43186) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lr1al-0003at-6X for guix-patches@gnu.org; Wed, 09 Jun 2021 13:02:14 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:51234) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lr1ae-0007lW-Hs for guix-patches@gnu.org; Wed, 09 Jun 2021 13:02:10 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1lr1ae-0002i9-GT for guix-patches@gnu.org; Wed, 09 Jun 2021 13:02:04 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#48729] [PATCH v3 47/47] gnu: Add bitmask-vpn. Resent-From: Raghav Gururajan Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Wed, 09 Jun 2021 17:02:04 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 48729 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: To: 48729@debbugs.gnu.org Cc: Raghav Gururajan , Jorge Gomez Received: via spool by 48729-submit@debbugs.gnu.org id=B48729.162325808110328 (code B ref 48729); Wed, 09 Jun 2021 17:02:04 +0000 Received: (at 48729) by debbugs.gnu.org; 9 Jun 2021 17:01:21 +0000 Received: from localhost ([127.0.0.1]:34541 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lr1Zr-0002gK-UO for submit@debbugs.gnu.org; Wed, 09 Jun 2021 13:01:21 -0400 Received: from out2.migadu.com ([188.165.223.204]:29981) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lr1Zp-0002g5-Rm for 48729@debbugs.gnu.org; Wed, 09 Jun 2021 13:01:15 -0400 X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=raghavgururajan.name; s=key1; t=1623258072; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=vDp+iJr9l2wrcmJ8/VvetBWltdhuDSDcqWqJy2Y/87s=; b=OZpkaTRAhR9NPemPsSYwAhtrzIKm2DTb7sxl/w92dosCtf10l+GnOcVj+ri6P0v6he6OQb yIjaJZaQX8Cz4hdofeWlkkvjgJbQ2cUnJVIPepR27ctHWJzLCUHCyQ2udS/cj/vqt15ato sHCg9Mw5crdpj0Qeu9u1d2BOTnNiCu/kYhZ6ldF0sqq6GWLAIsBbp9K5swLJ0BQNNDZEOi IWVMMUi1YJEx6gNWUi6EpGWw1nYF0uQtIOZMXrWf5Qi12qGoVW087thExmdbpfrKjMuPMN H2JOk+Cx2od8/GNDWca4cT1DQS52xlqGXLonMnzWmQthUqVZU3/oPoeJkHjRcA== Date: Wed, 9 Jun 2021 13:00:22 -0400 Message-Id: <20210609170022.8207-47-rg@raghavgururajan.name> In-Reply-To: <20210609170022.8207-31-rg@raghavgururajan.name> References: <20210609170022.8207-31-rg@raghavgururajan.name> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Migadu-Auth-User: rg@raghavgururajan.name X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+larch=yhetil.org@gnu.org Sender: "Guix-patches" Reply-to: Raghav Gururajan X-ACL-Warn: , Raghav Gururajan via Guix-patches From: Raghav Gururajan via Guix-patches via X-Migadu-Flow: FLOW_IN X-Migadu-Spam-Score: -4.00 Authentication-Results: aspmx1.migadu.com; none X-Migadu-Queue-Id: 894B711798 X-Spam-Score: -4.00 X-Migadu-Scanner: scn0.migadu.com X-TUID: 4P8cpcNFZBBI * gnu/packages/vpn.scm (bitmask-vpn): New variable. Co-authored-by: Jorge Gomez --- gnu/packages/vpn.scm | 220 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 220 insertions(+) diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm index a952e3f0db..3bc990c613 100644 --- a/gnu/packages/vpn.scm +++ b/gnu/packages/vpn.scm @@ -15,6 +15,8 @@ ;;; Copyright © 2020 Ryan Prior ;;; Copyright © 2020 Ivan Kozlov ;;; Copyright © 2020 David Dashyan +;;; Copyright © 2021 Raghav Gururajan +;;; Copyright © 2021 Jorge Gomez ;;; ;;; This file is part of GNU Guix. ;;; @@ -38,6 +40,7 @@ #:use-module (guix git-download) #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) + #:use-module (guix build-system go) #:use-module (guix build-system linux-module) #:use-module (guix build-system python) #:use-module (guix utils) @@ -52,6 +55,8 @@ #:use-module (gnu packages freedesktop) #:use-module (gnu packages gettext) #:use-module (gnu packages gnupg) + #:use-module (gnu packages golang) + #:use-module (gnu packages gtk) #:use-module (gnu packages guile) #:use-module (gnu packages libevent) #:use-module (gnu packages linux) @@ -69,6 +74,221 @@ #:use-module (gnu packages tls) #:use-module (gnu packages xml)) +(define-public bitmask + (package + (name "bitmask") + (version "0.20.4") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://0xacab.org/leap/bitmask-vpn") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "04sh69m5fq3gml4xgzv92z8i3hay98n9llq9p7p6q9q81s8q8849")))) + (build-system go-build-system) + (arguments + `(#:imported-modules + ((guix build copy-build-system) + ,@%go-build-system-modules) + #:modules + (((guix build copy-build-system) + #:prefix copy:) + (guix build go-build-system) + (guix build utils)) + #:unpack-path "0xacab.org/leap/bitmask-vpn" + #:phases + (modify-phases %standard-phases + (add-after 'setup-go-environment 'insert-missing-sources + ;; For some reason these packages are left out. + (lambda* (#:key inputs #:allow-other-keys) + (let* ((go-dialog (assoc-ref inputs "go-0xacab-org-leap-go-dialog")) + (go-dialog-src (string-append go-dialog "/src")) + (shapeshifter (assoc-ref inputs "go-0xacab-org-leap-shapeshifter")) + (shapeshifter-src (string-append shapeshifter "/src"))) + (copy-recursively go-dialog-src "src") + (copy-recursively shapeshifter-src "src")) + #t)) + (add-after 'unpack 'patch-source + (lambda* (#:key inputs outputs #:allow-other-keys) + ;; To use 'emersion/go-autostart', + ;; instead of 'ProtonMail/go-autostart', + ;; as the latter no longer exists. + (substitute* (find-files "." "\\.go$") + (("github.com/ProtonMail/go-autostart") + "github.com/emersion/go-autostart")) + ;; To use absolute paths for referenced programs. + (let* ((ip (string-append (assoc-ref inputs "iproute") + "/sbin/ip")) + (iptables (string-append (assoc-ref inputs "iptables") + "/sbin/iptables")) + (ip6tables (string-append (assoc-ref inputs "iptables") + "/sbin/ip6tables")) + (sysctl (string-append (assoc-ref inputs "procps") + "/sbin/sysctl")) + (openvpn (string-append (assoc-ref inputs "openvpn") + "/sbin/openvpn")) + (bitmask-root (string-append (assoc-ref outputs "out") + "/sbin/bitmask-root"))) + (substitute* (find-files "." "(\\.go$|\\.policy$|bitmask-root)") + (("swhich\\(\"ip\"\\)") + (string-append "\"" ip "\"")) + (("swhich\\(\"iptables\"\\)") + (string-append "\"" iptables "\"")) + (("swhich\\(\"ip6tables\"\\)") + (string-append "\"" ip6tables "\"")) + (("swhich\\(\"sysctl\"\\)") + (string-append "\"" sysctl "\"")) + (("/usr/sbin/openvpn") + openvpn) + (("/usr/sbin/bitmask-root") + bitmask-root) + (("/usr/local/sbin/bitmask-root") + bitmask-root))) + #t)) + (replace 'build + (lambda* (#:key source system outputs search-paths build-flags unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'build) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:build-flags build-flags + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "0xacab.org/leap/bitmask-vpn/cmd/bitmask-connect" + "0xacab.org/leap/bitmask-vpn/cmd/bitmask-helper" + "0xacab.org/leap/bitmask-vpn/cmd/bitmask-vpn" + "0xacab.org/leap/bitmask-vpn/icon" + "0xacab.org/leap/bitmask-vpn/pkg/bitmask" + "0xacab.org/leap/bitmask-vpn/pkg/bitmaskd" + "0xacab.org/leap/bitmask-vpn/pkg/config" + "0xacab.org/leap/bitmask-vpn/pkg/helper" + "0xacab.org/leap/bitmask-vpn/pkg/standalone" + "0xacab.org/leap/bitmask-vpn/pkg/systray" + "0xacab.org/leap/bitmask-vpn/tools/transifex")) + #t)) + (replace 'check + (lambda* (#:key source system outputs search-paths tests? unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'check) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:tests? tests? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "0xacab.org/leap/bitmask-vpn/cmd/bitmask-connect" + "0xacab.org/leap/bitmask-vpn/cmd/bitmask-helper" + "0xacab.org/leap/bitmask-vpn/cmd/bitmask-vpn" + "0xacab.org/leap/bitmask-vpn/icon" + "0xacab.org/leap/bitmask-vpn/pkg/bitmask" + "0xacab.org/leap/bitmask-vpn/pkg/bitmaskd" + "0xacab.org/leap/bitmask-vpn/pkg/config" + "0xacab.org/leap/bitmask-vpn/pkg/helper" + "0xacab.org/leap/bitmask-vpn/pkg/standalone" + "0xacab.org/leap/bitmask-vpn/pkg/systray" + "0xacab.org/leap/bitmask-vpn/tools/transifex")) + #t)) + (replace 'install + (lambda* (#:key source system outputs search-paths install-source? unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'install) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:install-source? install-source? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "0xacab.org/leap/bitmask-vpn/cmd/bitmask-connect" + "0xacab.org/leap/bitmask-vpn/cmd/bitmask-helper" + "0xacab.org/leap/bitmask-vpn/cmd/bitmask-vpn" + "0xacab.org/leap/bitmask-vpn/icon" + "0xacab.org/leap/bitmask-vpn/pkg/bitmask" + "0xacab.org/leap/bitmask-vpn/pkg/bitmaskd" + "0xacab.org/leap/bitmask-vpn/pkg/config" + "0xacab.org/leap/bitmask-vpn/pkg/helper" + "0xacab.org/leap/bitmask-vpn/pkg/standalone" + "0xacab.org/leap/bitmask-vpn/pkg/systray" + "0xacab.org/leap/bitmask-vpn/tools/transifex")) + #t)) + (add-after 'install 'install-continued + ;; To install bitmask-root script and polkit policy. + (lambda args + (apply (assoc-ref copy:%standard-phases 'install) + #:install-plan + '(("src/0xacab.org/leap/bitmask-vpn/helpers" + "sbin" + #:include ("bitmask-root")) + ("src/0xacab.org/leap/bitmask-vpn/helpers" + "share/polkit-1/actions" + #:include ("se.leap.bitmask.policy"))) + args))) + (add-after 'install-continued 'post-install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bitmask-root (string-append out "/sbin/bitmask-root"))) + ;; To make bitmask-root script executable. + (chmod bitmask-root #o555) + ;; To wrap bitmask-root script with $PYTHONPATH. + (wrap-program bitmask-root + `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH"))))) + #t))))) + (native-inputs + `(("gtk+:bin" ,gtk+ "bin") + ("pkg-config" ,pkg-config))) + (inputs + `(("gtk+" ,gtk+) + ("iproute" ,iproute) + ("iptables" ,iptables) + ("libappindicator" ,libappindicator) + ("openvpn" ,openvpn) + ("procps" ,procps) + ("python" ,python))) + (propagated-inputs + `(("go-0xacab-org-leap-go-dialog" + ,go-0xacab-org-leap-go-dialog) + ("go-0xacab-org-leap-shapeshifter" + ,go-0xacab-org-leap-shapeshifter) + ("go-github-com-apparentlymart-go-openvpn-mgmt" + ,go-github-com-apparentlymart-go-openvpn-mgmt) + ("go-github-com-emersion-go-autostart" + ,go-github-com-emersion-go-autostart) + ("go-github-com-getlantern-systray" + ,go-github-com-getlantern-systray) + ("go-github-com-jmshal-go-locale" + ,go-github-com-jmshal-go-locale) + ("go-github-com-keybase-go-ps" + ,go-github-com-keybase-go-ps) + ("go-github-com-sevlyar-go-daemon" + ,go-github-com-sevlyar-go-daemon) + ("go-github-com-skratchdot-open-golang" + ,go-github-com-skratchdot-open-golang) + ("go-golang-org-x-sys" ,go-golang-org-x-sys) + ("go-golang-org-x-text" ,go-golang-org-x-text) + ("go-golang-org-x-tools" ,go-golang-org-x-tools))) + (synopsis "Bitmask VPN Client") + (description "Bitmask, by @acronym{LEAP, LEAP Encryption Access Project}, +is an application to provide easy and secure encrypted communication with a +@acronym{VPN, Virtual Private Network}. It allows you to select from a variety +of trusted service provider all from one app. Current providers include Riseup +Networks and The Calyx Institute.") + (home-page "https://bitmask.net/") + (license license:gpl3+))) + (define-public gvpe (package (name "gvpe") -- 2.31.1