aboutsummaryrefslogtreecommitdiff
path: root/battering/packages/opensnitch.scm
blob: d6dcf05757e1a51f8cea6091d3f43fe79a6e68c5 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
(define-module (battering packages opensnitch)
  #:use-module (guix packages)
  #:use-module (guix git-download)
  #:use-module (guix gexp)
  #:use-module (guix utils)
  #:use-module (guix build-system go)
  #:use-module (guix build-system python)
  #:use-module (guix build-system gnu)
  #:use-module (gnu packages algebra)
  #:use-module (gnu packages base)
  #:use-module (gnu packages bison)
  #:use-module (gnu packages compression)
  #:use-module (gnu packages elf)
  #:use-module (gnu packages flex)
  #:use-module (gnu packages golang)
  #:use-module (gnu packages golang-build)
  #:use-module (gnu packages golang-web)
  #:use-module (gnu packages golang-xyz)
  #:use-module (gnu packages linux)
  #:use-module (gnu packages llvm)
  #:use-module (gnu packages qt)
  #:use-module (gnu packages rpc)
  #:use-module (gnu packages tls)
  #:use-module (gnu packages pkg-config)
  #:use-module (gnu packages protobuf)
  #:use-module (gnu packages python-build)
  #:use-module (gnu packages python-web)
  #:use-module (gnu packages python-xyz)
  #:use-module (battering packages golang-xyz)
  #:use-module (battering packages python-xyz)
  #:use-module ((guix licenses)
                #:prefix license:))

(define-public opensnitch
  (package
    (name "opensnitch")
    (version "1.6.7")
    (source (origin
              (method git-fetch)
              (uri (git-reference
                    (url "https://github.com/evilsocket/opensnitch/")
                    (commit (string-append "v" version))))
              (file-name (git-file-name name version))
              (sha256
               (base32 "0990hdc3vn50axyz21v11gwkc2svlwf9wlnf03lwxgnm2q4ha76q"))))
    (build-system python-build-system)
    (arguments
     (list
      #:phases #~(modify-phases %standard-phases
                   (add-after 'unpack 'make-proto-definitions
                     (lambda _
                       (with-directory-excursion "proto/"
                         (invoke "make" "../ui/opensnitch/ui_pb2.py"))))
                   (add-after 'make-proto-definitions 'chdir
                     (lambda _
                       (chdir "ui")))
                   (add-after 'chdir 'patch-setup.py
                     (lambda _
                       (substitute* "setup.py"
                         (("/usr/") ""))))
                   (add-after 'chdir 'generate-resources
                     (lambda _
                       ;; Patch resource script
                       (substitute* "i18n/generate_i18n.sh"
                         (("/bin/sh")
                          (which "sh")))
                       ;; Remove calls to pip in Makefile
                       (substitute* "Makefile"
                         (("@pip3.*$") ""))
                       (invoke "make" "opensnitch/resources_rc.py"))))))
    (inputs (list python-grpcio-tools
                  python-pyinotify
                  python-slugify
                  python-pyqt
                  python-protobuf
                  python-notify2
                  python-qt-material))
    (native-inputs (list python-setuptools qttools-5))
    (home-page "https://github.com/evilsocket/opensnitch/")
    (synopsis "GNU/Linux application firewall.")
    (description "OpenSnitch is an interactive GNU/Linux application firewall inspired by Little Snitch.")
    (license license:gpl3+)))