summaryrefslogtreecommitdiff
path: root/sigils/packages/xmpp.scm
blob: b4c1a454407bc99c62f66ce3c503d9d587f0c685 (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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
(define-module (sigils packages xmpp)
  #:use-module (guix packages)
  #:use-module (guix download)
  #:use-module (guix gexp)
  #:use-module (guix utils)
  #:use-module (guix git-download)
  #:use-module ((guix licenses)
                #:prefix license:)
  ;; gajim
  #:use-module (guix build-system pyproject)
  #:use-module (guix build-system python)
  #:use-module (gnu packages gettext)
  #:use-module (gnu packages avahi)
  #:use-module (gnu packages glib)
  #:use-module (gnu packages freedesktop)
  #:use-module (gnu packages gnome)
  #:use-module (gnu packages gstreamer)
  #:use-module (gnu packages gtk)
  #:use-module (gnu packages xorg)
  #:use-module (gnu packages databases)
  #:use-module (gnu packages messaging)
  #:use-module (gnu packages python-crypto)
  #:use-module (gnu packages python-xyz)
  #:use-module (gnu packages protobuf)
  ;; Psimedia
  #:use-module (guix build-system qt)
  #:use-module (gnu packages glib)
  #:use-module (gnu packages pkg-config))

;; (define-public chatty-gnome
;;   (package
;;     (inherit chatty)
;;     (name "chatty")
;;     (version "0.8.5")
;;     (source
;;      (origin
;;        (method url-fetch)
;;        (uri (string-append "https://gitlab.gnome.org/World/Chatty/-/archive/v"
;;              version "/Chatty-v" version ".tar.gz"))
;;        (sha256
;;         (base32 "1yc8rg07223p4icl99p4kg0zrwc66pw1zlgmmvr0zvxc49qhyyly"))))
;;     (inputs (modify-inputs (package-inputs chatty)
;;               (append cmatrix)))))


;;; Psimedia

(define-public psimedia
  (let ((commit "478567ee3312b163eebd821b2081daa3c6158c14")
        (revision "1"))
    (package
      (name "psimedia")
      (version (git-version "0" revision commit))
      (source
       (origin
         (method git-fetch)
         (uri
          (git-reference
           (url "https://github.com/psi-im/psimedia")
           (commit commit)))
         (file-name (git-file-name name version))
         (sha256
          (base32 "0pskjwdd8862hfncivk1hv42y4mscr5ycj2jiqaxpwi8w4106p4s"))))
      (build-system qt-build-system)
      (native-inputs (list pkgconf))
      (inputs (list glib
                    gstreamer
                    gst-plugins-base
                    gst-plugins-good
                    gst-plugins-good-qt))
      (arguments
       '(#:configure-flags
         '("-DUSE_PSI=OFF" "-DBUILD_DEMO=OFF")
         #:tests? #f))
      (home-page "https://github.com/psi-im/psimedia")
      (synopsis "Abstraction layer over GStreamer")
      (description "PsiMedia is a thick abstraction layer for providing audio and video RTP services to Psi-like IM clients. The implementation is based on GStreamer.")
      (license license:lgpl2.1))))


;;; Gajim

(define-public python-protobuf
  (package
    (name "python-protobuf")
    (version "5.27.2")
    (source
     (origin
       (method url-fetch)
       (uri (pypi-uri "protobuf" version))
       (sha256
        (base32 "0517bvr76daiwnz3jb099mckmklh5kzjg0pjfmh8bbxr4vrdxv7k"))))
    (build-system python-build-system)
    (inputs (list protobuf))
    (arguments
     ;; There are no tests
     '(#:tests? #f))
    (home-page "https://github.com/google/protobuf")
    (synopsis "Protocol buffers is a data interchange format")
    (description
     "Protocol buffers are a language-neutral, platform-neutral extensible
mechanism for serializing structured data.")
    (license license:bsd-3)))

(define-public python-omemo-dr
  (package
    (name "python-omemo-dr")
    (version "1.0.1")
    (source
     (origin
       (method url-fetch)
       (uri (pypi-uri "omemo-dr" version))
       (sha256
        (base32 "0qfk0b153cmc85icnlpfv8mjaqd2spa7hlipvndr8wqx4dvqr2ia"))))
    (build-system python-build-system)
    (home-page "https://pypi.org/project/omemo-dr/")
    (synopsis "OMEMO Double Ratchet in Python")
    (description
     "Initial codebase was forked from
 https://github.com/tgalal/python-axolotl but has since been heavily
 rewritten.")
    (license license:gpl3)
    (native-inputs (list python-protobuf python-cryptography))))

(define-public python-nbxmpp
  (package
    (name "python-nbxmpp")
    (version "5.0.1")
    (source
     (origin
       (method url-fetch)
       (uri (pypi-uri "nbxmpp" version))
       (sha256
        (base32 "06876pqs44apqflgv1ijqbd446j5dai1alq833miy900kr8wg9ba"))))
    (build-system pyproject-build-system)
    (arguments
     (list
      #:phases #~(modify-phases %standard-phases
                   ;; XXX: This probably should be an option for pyproject-build-system
                   (replace 'check
                     (lambda* (#:key tests? #:allow-other-keys)
                       (when tests?
                         (invoke "python" "-m" "unittest" "-v")))))))
    (native-inputs (list `(,glib "bin")))
    (inputs (list glib
                  glib-networking
                  libsoup-minimal
                  python-gssapi
                  python-idna
                  python-precis-i18n
                  python-pygobject))
    (synopsis "Non-blocking XMPP Module")
    (description
     "Python-nbxmpp is a Python library that provides a way for
Python applications to use the XMPP network.  This library was initially a fork
of xmpppy.")
    (home-page "https://dev.gajim.org/gajim/python-nbxmpp")
    (license license:gpl3+)))

(define-public gajim-2
  (package
    (inherit gajim)
    (version "1.9.3")
    (source
     (origin
       (method url-fetch)
       (uri (string-append "https://gajim.org/downloads/"
                           (version-major+minor version) "/gajim-" version
                           ".tar.gz"))
       (sha256
        (base32 "10rz8pd43a9308kj6csixsmvdc6ccnqkw83adc5cggh1798b45ag"))))
    (inputs (modify-inputs (package-inputs gajim)
              (replace "python-nbxmpp" python-nbxmpp)
              (append python-cryptography)
              (append python-emoji)
              (append python-omemo-dr)
              (append python-protobuf)
              (append python-qrcode)
              (append python-sqlalchemy-2)))))