summaryrefslogtreecommitdiff
path: root/px/packages/accounts.scm
diff options
context:
space:
mode:
authorFranz Geffke <franz@pantherx.org>2023-06-25 16:07:34 +0100
committerFranz Geffke <franz@pantherx.org>2023-06-25 16:07:34 +0100
commit54b4056ac571611892c743b65f4c47dc298c49da (patch)
tree36e4a84137d2b9bc9a241cf82563da6114bf6189 /px/packages/accounts.scm
initial commit
Diffstat (limited to 'px/packages/accounts.scm')
-rw-r--r--px/packages/accounts.scm1035
1 files changed, 1035 insertions, 0 deletions
diff --git a/px/packages/accounts.scm b/px/packages/accounts.scm
new file mode 100644
index 0000000..66dc10f
--- /dev/null
+++ b/px/packages/accounts.scm
@@ -0,0 +1,1035 @@
+;;; Online Accounts Packages Module for PantherX
+;;; Author: Reza Alizadeh Majd (r.majd@pantherx.org)
+;;; Author: Hossein Ghaffari (h.ghaffari@pantherx.org)
+
+(define-module (px packages accounts)
+ #:use-module ((guix licenses) #:prefix license:)
+ #:use-module (guix download)
+ #:use-module (guix packages)
+ #:use-module (guix build-system cmake)
+ #:use-module (guix build-system python)
+ #:use-module (guix utils)
+ #:use-module (guix gexp)
+ #:use-module (gnu packages check)
+ #:use-module (gnu packages cpp)
+ #:use-module (gnu packages web)
+ #:use-module (gnu packages bash)
+ #:use-module (gnu packages linux)
+ #:use-module (gnu packages networking)
+ #:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages python)
+ #:use-module (gnu packages python-build)
+ #:use-module (gnu packages python-crypto)
+ #:use-module (gnu packages python-xyz)
+ #:use-module (gnu packages python-web)
+ #:use-module (gnu packages serialization)
+ #:use-module (gnu packages curl)
+ #:use-module (gnu packages qt)
+ #:use-module (gnu packages gcc)
+ #:use-module (gnu packages base)
+ #:use-module (gnu packages xml)
+ #:use-module (px packages common)
+ #:use-module (px packages contacts-calendar)
+ #:use-module (px packages networking)
+ #:use-module (px packages etesync)
+ #:use-module (px packages library)
+ #:use-module (px packages python-xyz))
+
+
+(define-public px-accounts-service
+ (package
+ (name "px-accounts-service")
+ (version "0.4.8")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://source.pantherx.org/px-accounts-service_v" version ".tgz"))
+ (sha256
+ (base32 "0nw2ggm87mbjrw0xdmq301ygxgai3q4sbpinhk59rf8jhrds182d"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'remove-tests
+ (lambda _
+ (substitute* "tests/CMakeLists.txt"
+ (("test_rpc_server.cpp") "")
+ (("test_plugin_system.cpp") "")
+ (("test_event_system.cpp") ""))
+ #t))
+ (add-after 'install 'register-plugins
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (define* (register-plugin plugin-name plugin-type #:optional (plugin-path ""))
+ (let* ((out (assoc-ref outputs "out"))
+ (python (assoc-ref inputs "python"))
+ (regpath (string-append out "/etc/px/accounts/plugins"))
+ (target (cond
+ ((string=? plugin-type "python")
+ (string-append out "/lib/python"
+ ,(version-major+minor (package-version python))
+ "/site-packages/"))
+ ((string=? plugin-type "cpp")
+ (string-append out "/lib/lib" plugin-name ".so"))))
+ (data (string-append "plugin:\n"
+ " name: " plugin-name "\n"
+ " version: " ,version "\n"
+ " type: " plugin-type "\n"
+ " path: " target "\n")))
+ (mkdir-p regpath)
+ (display data)
+ (with-output-to-file (string-append regpath "/" plugin-name ".yaml")
+ (lambda _ (format #t data)))
+ (if (string=? plugin-type "python")
+ (begin
+ (mkdir-p target)
+ (install-file plugin-path target)
+ (setenv "PYTHONPATH" (string-append target ":" (getenv "GUIX_PYTHONPATH")))))
+ #t))
+ (register-plugin (string-append ,name "-plugin-python-test") "python"
+ "src/px_accounts_service_plugin_python_test.py")
+ (register-plugin (string-append ,name "-plugin-test-public-service") "python"
+ "src/px_accounts_service_plugin_test_public_service.py")
+ (register-plugin (string-append ,name "-plugin-cpp-test") "cpp")
+ (register-plugin (string-append ,name "-plugin-cpp-custom") "cpp"))))))
+ (inputs `(("yaml-cpp" ,yaml-cpp)
+ ("capnproto" ,capnproto-0.9)))
+ (native-inputs `(("catch2" ,catch2)
+ ("cli11" ,cli11)
+ ("pkg-config" ,pkg-config)
+ ("pybind11" ,pybind11-2.6.2)
+ ("nng" ,nng-1.5)
+ ("util-linux" ,util-linux "lib")))
+ (propagated-inputs `(("python" ,python)))
+ (home-page "https://www.pantherx.org/")
+ (synopsis "PantherX (Online) AccountsService")
+ (description "This package provides a background services to manage
+Online Accounts in PantherX")
+ (license license:expat)))
+
+
+(define-public px-accounts-matrix-bridge
+ (package
+ (name "px-accounts-matrix-bridge")
+ (version "0.0.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://source.pantherx.org/" name "_v" version ".tgz"))
+ (sha256
+ (base32 "1nmwdxns7isgr09v5mvhbr3jz60z6ia3ib84wi2q40ja2570k2g0"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:tests? #f))
+ (native-inputs (list pkg-config))
+ (inputs
+ (list capnproto-0.9))
+ (home-page "https://www.pantherx.org")
+ (synopsis "Account integration for Matrix client library")
+ (description "Add support for Online Accounts integration for Matrix client library")
+ (license license:expat)))
+
+
+(define-public px-accounts-service-plugin-common
+ (package
+ (name "px-accounts-service-plugin-common")
+ (version "0.0.6")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://source.pantherx.org/" name "_v" version ".tgz"))
+ (sha256 (base32 "1kj84df95bmgy89k0mnxv8hy1l62b2xnyymkgz9rqs6882wk5lqx"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'sanity-check))))
+ (home-page "https://www.pantherx.org/")
+ (synopsis "PantherX Accounts Service Plugin Commons")
+ (description "Python classes required for all
+Accounts Service plugins.")
+ (license license:expat)))
+
+
+(define-public px-accounts-library-python
+ (package
+ (name "px-accounts-library-python")
+ (version "0.3.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri
+ (string-append "https://source.pantherx.org/px-accounts-library-python_v"
+ version ".tgz"))
+ (sha256
+ (base32 "01i3s2wscjdsml59lls91w990rg61a0c0a0pppxd5jqkh6x98za7"))))
+ (build-system python-build-system)
+ (arguments `(#:tests? #f))
+ (propagated-inputs
+ `(("python-pycapnp", python-pycapnp)
+ ("python-pyyaml", python-pyyaml)))
+ (home-page "https://www.pantherx.org/")
+ (synopsis "Client library and CLI tool for px-accounts-service")
+ (description "Python library to work with online accounts service. plus a CLI tool")
+ (license license:expat)))
+
+
+(define-public px-accounts-service-providers-mail
+ (package
+ (name "px-accounts-service-providers-mail")
+ (version "0.0.8")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://source.pantherx.org/" name "_v" version ".tgz"))
+ (sha256
+ (base32 "1xr5k3xkdfdfbrl295drb66q03ajb1y1psxmk6ywj6470dwbbq09"))))
+ (build-system cmake-build-system)
+ (arguments `(#:tests? #f))
+ (propagated-inputs
+ `(("px-accounts-service-plugin-imap" ,px-accounts-service-plugin-imap)
+ ("px-accounts-service-plugin-smtp" ,px-accounts-service-plugin-smtp)))
+ (home-page "https://www.pantherx.org/")
+ (synopsis "Official Providers package for Online Mail Accounts Service")
+ (description "Collection of Official defined providers that Online Accounts Service
+could load from store")
+ (license license:expat)))
+
+
+ (define-public px-accounts-service-plugin-imap
+ (package
+ (name "px-accounts-service-plugin-imap")
+ (version "0.2.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://source.pantherx.org/" name "_v" version ".tgz"))
+ (sha256 (base32 "0asdq32diniz2xa7q19qhhcp52cyzsa5g5l81yi7rz12vmd814sb"))))
+ (build-system python-build-system)
+ (arguments `(
+ #:tests? #f,
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'register-plugin
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (type "python")
+ (regpath (string-append out "/etc/px/accounts/plugins"))
+ (regdata (string-append "plugin:\n"
+ " name: " ,name "\n"
+ " version: " ,version "\n"
+ " type: " type "\n"
+ " path: " out "\n")))
+ (display regdata)
+ (mkdir-p regpath)
+ (with-output-to-file (string-append regpath "/" ,name ".yaml")
+ (lambda _ (format #t regdata))))))
+ (delete 'sanity-check))))
+ (propagated-inputs
+ `(("px-accounts-service-plugin-common", px-accounts-service-plugin-common)))
+ (home-page "https://www.pantherx.org/")
+ (synopsis "IMAP Protocol Plugin For Online Accounts System")
+ (description "Provides IMAP protocol support to Online Accounts System")
+ (license license:expat)))
+
+
+
+(define-public px-accounts-service-plugin-smtp
+ (package
+ (name "px-accounts-service-plugin-smtp")
+ (version "0.2.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://source.pantherx.org/px-accounts-service-plugin-smtp_v"
+ version ".tgz"))
+ (sha256
+ (base32 "1x6ln81h8k6qqm83crdgbkkzcg77sg1wvpvy5qp7nnb0mdji34fv"))))
+ (build-system python-build-system)
+ (arguments `(
+ #:tests? #f,
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'register-plugin
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (type "python")
+ (regpath (string-append out "/etc/px/accounts/plugins"))
+ (regdata (string-append "plugin:\n"
+ " name: " ,name "\n"
+ " version: " ,version "\n"
+ " type: " type "\n"
+ " path: " out "\n")))
+ (display regdata)
+ (mkdir-p regpath)
+ (with-output-to-file (string-append regpath "/" ,name ".yaml")
+ (lambda _ (format #t regdata))))))
+ (delete 'sanity-check))))
+ (propagated-inputs
+ `(("px-accounts-service-plugin-common", px-accounts-service-plugin-common)))
+ (home-page "https://www.pantherx.org/")
+ (synopsis "SMTP Protocol Plugin For Online Accounts System")
+ (description "Provides SMTP protocol support to Online Accounts System")
+ (license license:expat)))
+
+
+(define-public px-oauth2-engine
+ (package
+ (name "px-oauth2-engine")
+ (version "0.3.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://source.pantherx.org/px-oauth2-engine_"
+ version ".tgz"))
+ (sha256
+ (base32 "19wsr2vs8dy5b99pbv3a1amivz0m6yx1lf6bi1fz9kvsxcz3b63b"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'wrap
+ ;; The program fails to find the QtWebEngineProcess program,
+ ;; so we set QTWEBENGINEPROCESS_PATH to help it.
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((bin (string-append (assoc-ref outputs "out") "/bin"))
+ (qtwebengineprocess (string-append
+ (assoc-ref inputs "qtwebengine")
+ "/lib/qt5/libexec/QtWebEngineProcess")))
+ (for-each (lambda (program)
+ (wrap-program program
+ `("QTWEBENGINEPROCESS_PATH" =
+ (,qtwebengineprocess))))
+ (find-files bin ".*")))
+ #t)))))
+ (inputs `(
+ ("rapidjson" ,rapidjson)
+ ("qt" ,qtbase-5)
+ ("qtdeclarative" ,qtdeclarative-5)
+ ("qtnetworkauth-5" ,qtnetworkauth-5)
+ ("qtwebengine" ,qtwebengine-5)
+ ("qtwebchannel-5" ,qtwebchannel-5)
+ ("bash-minimal" ,bash-minimal)))
+ (native-inputs `(
+ ("curl" ,curl)
+ ("pkg-config" ,pkg-config)))
+ (home-page "https://www.pantherx.org/")
+ (synopsis "Official Providers package for Online Accounts Service")
+ (description "Collection of Official defined providers that Ocline Accounts Service
+could load from store")
+ (license license:expat)))
+
+
+(define-public px-accounts-service-plugin-etherscan
+ (package
+ (name "px-accounts-service-plugin-etherscan")
+ (version "0.2.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://source.pantherx.org/" name "_v" version ".tgz"))
+ (sha256 (base32 "0jq81nrjslp4c2kz6vnrns13n65rx248ij28grrm7lkz4mbnb8y7"))))
+ (build-system python-build-system)
+ (arguments `(
+ #:tests? #f,
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'register-plugin
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (type "python")
+ (regpath (string-append out "/etc/px/accounts/plugins"))
+ (regdata (string-append "plugin:\n"
+ " name: " ,name "\n"
+ " version: " ,version "\n"
+ " type: " type "\n"
+ " path: " out "\n")))
+ (display regdata)
+ (mkdir-p regpath)
+ (with-output-to-file (string-append regpath "/" ,name ".yaml")
+ (lambda _ (format #t regdata))))))
+ (delete 'sanity-check))))
+ (propagated-inputs
+ `(("px-online-sources-library", px-online-sources-library)
+ ("px-accounts-service-plugin-common", px-accounts-service-plugin-common)))
+ (home-page "https://www.pantherx.org/")
+ (synopsis "Etherscan provider plugin (Online) Accounts Service")
+ (description "Provides Etherscan support to Online Accounts System")
+ (license license:expat)))
+
+
+(define-public px-accounts-service-plugin-blockio
+ (package
+ (name "px-accounts-service-plugin-blockio")
+ (version "0.2.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://source.pantherx.org/" name "_" version ".tgz"))
+ (sha256 (base32 "0rmx12122l1hi1smayyf7a19ss2rg53ck2db8y6y0g27zxnzwz9n"))))
+ (build-system python-build-system)
+ (arguments `(
+ #:tests? #f,
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'register-plugin
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (type "python")
+ (regpath (string-append out "/etc/px/accounts/plugins"))
+ (regdata (string-append "plugin:\n"
+ " name: " ,name "\n"
+ " version: " ,version "\n"
+ " type: " type "\n"
+ " path: " out "\n")))
+ (display regdata)
+ (mkdir-p regpath)
+ (with-output-to-file (string-append regpath "/" ,name ".yaml")
+ (lambda _ (format #t regdata))))))
+ (delete 'sanity-check))))
+ (propagated-inputs
+ `(("px-online-sources-library", px-online-sources-library)
+ ("px-accounts-service-plugin-common", px-accounts-service-plugin-common)))
+ (home-page "https://www.pantherx.org/")
+ (synopsis "Bitcoin Plugin For Online Accounts System")
+ (description "Provides bitcoin support to Online Accounts System")
+ (license license:expat)))
+
+
+(define-public px-accounts-service-plugin-cryptocurrency
+ (package
+ (name "px-accounts-service-plugin-cryptocurrency")
+ (version "v0.2.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://source.pantherx.org/px-online-accounts-plugin-cryptocurrency_"
+ version ".tgz"))
+ (sha256
+ (base32 "1zqk5j52dpcg0lkyy7zk9n2d4ibg2wpbshdihafrx22d2d3y53zk"))))
+ (build-system python-build-system)
+ (arguments `(
+ #:tests? #f,
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'register-plugin
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (type "python")
+ (regpath (string-append out "/etc/px/accounts/plugins"))
+ (regdata (string-append "plugin:\n"
+ " name: " ,name "\n"
+ " version: " ,version "\n"
+ " type: " type "\n"
+ " path: " out "\n")))
+ (display regdata)
+ (mkdir-p regpath)
+ (with-output-to-file (string-append regpath "/" ,name ".yaml")
+ (lambda _ (format #t regdata)))))))))
+ (inputs `(
+ ("python-pycapnp" ,python-pycapnp)))
+ (propagated-inputs
+ `(("px-accounts-library-python", px-accounts-library-python)
+ ("px-secret-library-python", px-secret-library-python)
+ ("px-online-sources-library", px-online-sources-library)
+ ("px-accounts-service-plugin-common", px-accounts-service-plugin-common)))
+ (home-page "https://www.pantherx.org/")
+ (synopsis "Cryptocurrency Plugin For Online Accounts Service")
+ (description "Adds support for Ethereum and Bitcoin wallet addresses in Accounts Service.")
+ (license license:expat)))
+
+
+(define-public px-accounts-service-plugin-etesync
+ (package
+ (name "px-accounts-service-plugin-etesync")
+ (version "0.1.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://source.pantherx.org/" name "_v" version ".tgz"))
+ (sha256 (base32 "16zzqh9lb5gb1yn12v48akh5rfidssxjah9f3jg8hpzy0qaca64z"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-version
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (substitute* (string-append "plugins/" ,name ".yaml")
+ (("PLUGIN_PATH") (assoc-ref outputs "out"))
+ (("PLUGIN_VERSION") ,version))))
+ (delete 'sanity-check))))
+ (propagated-inputs `(("etesync-dav" ,etesync-dav)
+ ("px-contacts-calendar" ,px-contacts-calendar)
+ ("python-etesync" ,python-etesync)))
+ (home-page "https://www.pantherx.org/")
+ (synopsis "EteSync Plugin for Online Accounts Service")
+ (description "Support Etesync account as a CardDAV/CalDAV provider")
+ (license license:expat)))
+
+
+(define-public px-accounts-service-plugin-gitlab
+ (package
+ (name "px-accounts-service-plugin-gitlab")
+ (version "0.2.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://source.pantherx.org/" name "_v" version ".tgz"))
+ (sha256 (base32 "1j82f3m3y52kcamv2pnipi5gb4h2yxisshq4r3nkb5ar0i8hyrp2"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'register-plugin
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (type "python")
+ (regpath (string-append out "/etc/px/accounts/plugins"))
+ (regdata (string-append "plugin:"
+ "\n name: " ,name
+ "\n version: " ,version
+ "\n type: " type
+ "\n path: " out
+ "\n")))
+ (display regdata)
+ (mkdir-p regpath)
+ (with-output-to-file (string-append regpath "/" ,name ".yaml")
+ (lambda _ (format #t regdata))))))
+ (delete 'sanity-check))))
+ (propagated-inputs
+ `(("px-online-sources-library", px-online-sources-library)
+ ("px-accounts-service-plugin-common", px-accounts-service-plugin-common)))
+ (home-page "https://www.pantherx.org/")
+ (synopsis "GitLab provider plugin for (Online) Accounts Service")
+ (description "Adds support for GitLab accounts with access token to Accounts Service")
+ (license license:expat)))
+
+(define-public px-accounts-service-plugin-discourse
+ (package
+ (name "px-accounts-service-plugin-discourse")
+ (version "0.0.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://source.pantherx.org/" name "_" version ".tgz"))
+ (sha256 (base32 "0pgw46k20ms5nzsx79xydk7synqs1k617gk432grl1wcsy5a1hii"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'register-plugin
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (type "python")
+ (regpath (string-append out "/etc/px/accounts/plugins"))
+ (regdata (string-append "plugin:"
+ "\n name: " ,name
+ "\n version: " ,version
+ "\n type: " type
+ "\n path: " out
+ "\n")))
+ (display regdata)
+ (mkdir-p regpath)
+ (with-output-to-file (string-append regpath "/" ,name ".yaml")
+ (lambda _ (format #t regdata))))))
+ (delete 'sanity-check))))
+ (propagated-inputs
+ `(("px-online-sources-library", px-online-sources-library)
+ ("px-accounts-service-plugin-common", px-accounts-service-plugin-common)))
+ (home-page "https://www.pantherx.org/")
+ (synopsis "Discourse provider plugin for (Online) Accounts Service")
+ (description "Adds support for Discourse accounts with access token to Accounts Service")
+ (license license:expat)))
+
+
+
+(define-public px-accounts-service-plugin-github
+ (package
+ (name "px-accounts-service-plugin-github")
+ (version "0.2.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://source.pantherx.org/" name "_v" version ".tgz"))
+ (sha256 (base32 "17cav8xracpnlxyxgimsjbxwxbn7g5gpm7446a3lsj5lrqjyy87m"))))
+ (build-system python-build-system)
+ (arguments `(
+ #:tests? #f,
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'register-plugin
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (type "python")
+ (regpath (string-append out "/etc/px/accounts/plugins"))
+ (regdata (string-append "plugin:\n"
+ " name: " ,name "\n"
+ " version: " ,version "\n"
+ " type: " type "\n"
+ " path: " out "\n")))
+ (display regdata)
+ (mkdir-p regpath)
+ (with-output-to-file (string-append regpath "/" ,name ".yaml")
+ (lambda _ (format #t regdata))))))
+ (delete 'sanity-check))))
+ (propagated-inputs
+ `(("px-online-sources-library", px-online-sources-library)
+ ("px-accounts-service-plugin-common", px-accounts-service-plugin-common)))
+ (home-page "https://www.pantherx.org/")
+ (synopsis "GitHub provider plugin for Online Accounts Service")
+ (description "Adds support for GitHub to Accounts Service.")
+ (license license:expat)))
+
+
+(define-public px-accounts-service-plugin-trojita
+ (package
+ (name "px-accounts-service-plugin-trojita")
+ (version "0.0.6")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://source.pantherx.org/px-accounts-service-plugin-trojita_v"
+ version ".tgz"))
+ (sha256 (base32 "0k4bybh56ff0d303ik5vnd371fzr8wcm25l79rmfbxv3rd32dxm2"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'register-plugin
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (type "python")
+ (regpath (string-append out "/etc/px/accounts/plugins"))
+ (regdata (string-append "plugin:\n"
+ " name: " ,name "\n"
+ " version: " ,version "\n"
+ " type: " type "\n"
+ " path: " out "\n")))
+ (display regdata)
+ (mkdir-p regpath)
+ (with-output-to-file
+ (string-append regpath "/" ,name ".yaml")
+ (lambda _ (format #t regdata)))))))))
+ (home-page "https://www.pantherx.org/")
+ (synopsis "Trojita Plugin for Online Accounts Service")
+ (description "Add or modify trojita account details using Online Accounts Service")
+ (license license:expat)))
+
+(define-public px-accounts-service-plugin-oauth2-github
+ (package
+ (name "px-accounts-service-plugin-oauth2-github")
+ (version "v0.2.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://source.pantherx.org/px-accounts-service-plugin-github-oauth_"
+ version ".tgz"))
+ (sha256
+ (base32 "1znvcl0sy47zpn635h13lj5js1s0lbakk2x18bnmy1ygrqg2c309"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'register-plugin
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (type "cpp")
+ (regpath (string-append out "/etc/px/accounts/plugins"))
+ (regdata (string-append "plugin:\n"
+ " name: " ,name "\n"
+ " version: " ,version "\n"
+ " type: " type "\n"
+ " path: " out "/lib/lib" ,name ".so\n")))
+ (display regdata)
+ (mkdir-p regpath)
+ (with-output-to-file (string-append regpath "/" ,name ".yaml")
+ (lambda _
+ (format #t regdata)))
+ )))
+ )))
+ (inputs `(
+ ("rapidjson" ,rapidjson)))
+ (propagated-inputs `(
+ ("px-oauth2-engine" ,px-oauth2-engine)))
+ (native-inputs `(
+ ("pkg-config" ,pkg-config)))
+ (home-page "https://www.pantherx.org/")
+ (synopsis "Github-OAuth2 Plugin For Online Accounts System")
+ (description "Plugin to login, get github notifications and access to git account with OAUTH2 protocol.")
+ (license license:expat)))
+
+(define-public px-accounts-service-plugin-oauth2-mastodon
+ (package
+ (name "px-accounts-service-plugin-oauth2-mastodon")
+ (version "v0.1.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://source.pantherx.org/" name "_"
+ version ".tgz"))
+ (sha256
+ (base32 "05pd5x0cksw6q5pzq03cymbxlycmbam5a0jy16pvx4p1m4kwwl0z"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'register-plugin
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (type "cpp")
+ (regpath (string-append out "/etc/px/accounts/plugins"))
+ (regdata (string-append "plugin:\n"
+ " name: " ,name "\n"
+ " version: " ,version "\n"
+ " type: " type "\n"
+ " path: " out "/lib/lib" ,name ".so\n")))
+ (display regdata)
+ (mkdir-p regpath)
+ (with-output-to-file (string-append regpath "/" ,name ".yaml")
+ (lambda _
+ (format #t regdata)))))))))
+ (inputs `(("rapidjson" ,rapidjson)
+ ("curl" ,curl)))
+ (propagated-inputs `(("px-oauth2-engine" ,px-oauth2-engine)))
+ (native-inputs `(("pkg-config" ,pkg-config)))
+ (home-page "https://www.pantherx.org/")
+ (synopsis "Mastodon-OAuth2 protocol plugin for (Online) Accounts Service")
+ (description "Plugin to login and access to mastodon account with OAUTH2 protocol.")
+ (license license:expat)))
+
+(define-public px-accounts-service-plugin-oauth2-google
+ (package
+ (name "px-accounts-service-plugin-oauth2-google")
+ (version "v0.2.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://source.pantherx.org/" name "_"
+ version ".tgz"))
+ (sha256
+ (base32 "1h8v3p9yf8b5p207fs70lzkm9g4x1idqgd4alqd4661lpxphr140"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'register-plugin
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (type "cpp")
+ (regpath (string-append out "/etc/px/accounts/plugins"))
+ (regdata (string-append "plugin:\n"
+ " name: " ,name "\n"
+ " version: " ,version "\n"
+ " type: " type "\n"
+ " path: " out "/lib/lib" ,name ".so\n")))
+ (display regdata)
+ (mkdir-p regpath)
+ (with-output-to-file (string-append regpath "/" ,name ".yaml")
+ (lambda _
+ (format #t regdata)))))))))
+ (inputs `(("rapidjson" ,rapidjson)))
+ (propagated-inputs `(
+ ("px-oauth2-engine" ,px-oauth2-engine)))
+ (native-inputs `(
+ ("pkg-config" ,pkg-config)))
+ (home-page "https://www.pantherx.org/")
+ (synopsis "Google-OAuth2 protocol plugin for (Online) Accounts Service")
+ (description "Plugin to login and access to Google account with OAUTH2 protocol.")
+ (license license:expat)))
+
+
+(define-public px-accounts-service-plugin-claws-mail
+ (package
+ (name "px-accounts-service-plugin-claws-mail")
+ (version "0.2.9")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://source.pantherx.org/" name "_v" version ".tgz"))
+ (sha256 (base32 "0fvq8sqiph6hkwcz8ya93lr0wd2faczi6xi6vjbqqmwmzlx35xxn"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-version
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (substitute* (string-append "plugins/" ,name ".yaml")
+ (("PLUGIN_PATH") (assoc-ref outputs "out"))
+ (("PLUGIN_VERSION") ,version))))
+ (delete 'sanity-check))))
+ (propagated-inputs
+ `(("python-pbkdf2" ,python-pbkdf2)
+ ("python-pycryptodomex" ,python-pycryptodomex)
+ ("python-imap-tools" ,python-imap-tools)
+ ("python-lxml" ,python-lxml)))
+ (home-page "https://www.pantherx.org/")
+ (synopsis "Claws Mail plugin for Online Accounts Service")
+ (description "Support Claws Mail account for Online Accounts Service")
+ (license license:expat)))
+
+(define-public px-accounts-service-plugin-s3
+ (package
+ (name "px-accounts-service-plugin-s3")
+ (version "0.2.6")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://source.pantherx.org/" name "_v" version ".tgz"))
+ (sha256 (base32 "0zqaxfh2vks0a6wgh2qs9nf3dbprnvr8vyv3hq448wx5db9yrbyz"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'register-plugin
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (type "python")
+ (regpath (string-append out "/etc/px/accounts/plugins"))
+ (regdata (string-append "plugin:"
+ "\n name: " ,name
+ "\n version: " ,version
+ "\n type: " type
+ "\n path: " out
+ "\n")))
+ (display regdata)
+ (mkdir-p regpath)
+ (with-output-to-file (string-append regpath "/" ,name ".yaml")
+ (lambda _ (format #t regdata))))))
+ (delete 'sanity-check))))
+ (propagated-inputs
+ `(("python-botocore" ,python-botocore)
+ ("px-accounts-service-plugin-common", px-accounts-service-plugin-common)))
+ (home-page "https://www.pantherx.org/")
+ (synopsis "S3 protocol support for (Online) Accounts Service")
+ (description "Adds support for S3 (AWS/Wasabi) to Accounts Service")
+ (license license:expat)))
+
+(define-public px-accounts-service-plugin-cm
+ (package
+ (name "px-accounts-service-plugin-cm")
+ (version "0.1.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://source.pantherx.org/" name "_v" version ".tgz"))
+ (sha256 (base32 "11rs7jrx69798fr19byp9grqr4i3ym3hmwnffand36dh9niz8sz0"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-pyqt" ,python-pyqt)
+ ("python-pyyaml" ,python-pyyaml)
+ ("python-qrcode" ,python-qrcode)
+ ("python-requests" ,python-requests)))
+ (arguments
+ `(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'reguster-plugin
+ (lambda* (#:key outputs #:allow-other-keys)
+ (substitute* "plugins/px-accounts-service-plugin-cm.yaml"
+ (("PLUGIN_PATH") (assoc-ref outputs "out"))
+ (("PLUGIN_VERSION") ,version)))))))
+ (home-page "https://www.pantherx.org/")
+ (synopsis "Central Management plugin for Online Accounts Service")
+ (description "Add support for the Central Management to the
+online accounts service")
+ (license license:expat)))
+
+
+(define-public px-accounts-service-plugin-carddav
+ (package
+ (name "px-accounts-service-plugin-carddav")
+ (version "0.2.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://source.pantherx.org/" name "_v" version ".tgz"))
+ (sha256 (base32 "0hgq3vwdcvswikf6ii4rhl6aykmb6rb2n7naa5m9s65zxsc1d7rk"))))
+ (build-system python-build-system)
+ (arguments `(
+ #:tests? #f,
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'register-plugin
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (type "python")
+ (regpath (string-append out "/etc/px/accounts/plugins"))
+ (regdata (string-append "plugin:\n"
+ " name: " ,name "\n"
+ " version: " ,version "\n"
+ " type: " type "\n"
+ " path: " out "\n")))
+ (display regdata)
+ (mkdir-p regpath)
+ (with-output-to-file (string-append regpath "/" ,name ".yaml")
+ (lambda _ (format #t regdata))))))
+ (delete 'sanity-check))))
+ (propagated-inputs
+ `(("python-requests" ,python-requests)
+ ("px-accounts-service-plugin-common", px-accounts-service-plugin-common)))
+ (home-page "https://www.pantherx.org/")
+ (synopsis "CardDAV protocol plugin (Online) Accounts Service")
+ (description "Provides CardDAV support to Online Accounts System")
+ (license license:expat)))
+
+(define-public px-accounts-service-plugin-backup-local
+ (package
+ (name "px-accounts-service-plugin-backup-local")
+ (version "0.0.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://source.pantherx.org/" name "_v" version ".tgz"))
+ (sha256 (base32 "0ycjd8gyd53s6hc7xvbf9bmswx53xa73pq2a4mhljavgcyldsakk"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'register-plugin
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (type "python")
+ (regpath (string-append out "/etc/px/accounts/plugins"))
+ (regdata (string-append "plugin:"
+ "\n name: " ,name
+ "\n version: " ,version
+ "\n type: " type
+ "\n path: " out
+ "\n")))
+ (display regdata)
+ (mkdir-p regpath)
+ (with-output-to-file (string-append regpath "/" ,name ".yaml")
+ (lambda _ (format #t regdata))))))
+ (delete 'sanity-check))))
+ (propagated-inputs
+ `(("px-accounts-service-plugin-common", px-accounts-service-plugin-common)))
+ (home-page "https://www.pantherx.org/")
+ (synopsis "Local backup account plugin for Online Accounts Service")
+ (description "Adds support to save a password for
+automatic, local backups with px-backup, to Online Accounts Service.")
+ (license license:expat)))
+
+
+(define-public px-accounts-service-plugin-activity-watch
+ (package
+ (name "px-accounts-service-plugin-activity-watch")
+ (version "0.0.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://source.pantherx.org/" name "_v" version ".tgz"))
+ (sha256 (base32 "1zgl625ay8g8xlwc7bgchcd7yx9y43kjxnpgxxc90kg737lvaa54"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-path
+ (lambda* (#:key outputs #:allow-other-keys)
+ (substitute* "plugins/px-accounts-service-plugin-activity-watch.yaml"
+ (("PLUGIN_PATH") (assoc-ref outputs "out"))
+ (("PLUGIN_VERSION") ,version))))
+ (delete 'sanity-check))))
+ (propagated-inputs
+ `(("px-accounts-service" ,px-accounts-service)
+ ("px-accounts-service-plugin-common" ,px-accounts-service-plugin-common)
+ ("python-appdirs" ,python-appdirs)
+ ("python-psutil" ,python-psutil)
+ ("python-pyyaml" ,python-pyyaml)))
+ (home-page "https://www.pantherx.org")
+ (synopsis "ActivityWatch plugin for Online Accounts Service")
+ (description "Support ActivityWatch for PantherX Online Accounts Service")
+ (license license:expat)))
+
+
+(define-public px-accounts-service-plugin-maestral
+ (package
+ (name "px-accounts-service-plugin-maestral")
+ (version "0.0.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://source.pantherx.org/" name "_v" version ".tgz"))
+ (sha256 (base32 "0fsivz2mxzpgjpgspr3pggj8wjanvnmipwpj2hq7c7s3wqzd499i"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-path
+ (lambda* (#:key outputs #:allow-other-keys)
+ (substitute* "plugins/px-accounts-service-plugin-maestral.yaml"
+ (("PLUGIN_PATH") (assoc-ref outputs "out"))
+ (("PLUGIN_VERSION") ,version))))
+ (delete 'sanity-check))))
+
+ (propagated-inputs
+ `(("px-accounts-service" ,px-accounts-service)
+ ("px-accounts-service-plugin-common" ,px-accounts-service-plugin-common)
+ ("python-click" ,python-click-8)
+ ("python-pyqt" ,python-pyqt)
+ ("python-maestral" ,python-maestral)))
+ (home-page "https://www.pantherx.org")
+ (synopsis "Dropbox (Maestral) plugin for Online Accounts Service")
+ (description "Support Dropbox (Maestral) plugin for PantherX Online Accounts Service")
+ (license license:expat)))
+
+
+(define-public px-accounts-service-plugin-matrix
+ (package
+ (name "px-accounts-service-plugin-matrix")
+ (version "0.0.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://source.pantherx.org/" name "_v" version ".tgz"))
+ (sha256 (base32 "16f9fzv57p4zb047wxj4d8kw49h9k3m8wi22bi9914svd7nh46dv"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'sanity-check)
+ (add-after 'install 'register-plugin
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (regpath (string-append out "/etc/px/accounts/plugins")))
+ (mkdir-p regpath)
+ (call-with-output-file (string-append regpath "/" ,name ".yaml")
+ (lambda (port)
+ (format port (string-append "plugin:\n"
+ " name: ~a\n"
+ " version: ~a\n"
+ " type: python\n"
+ " path: ~a\n")
+ ,name , version out)))))))))
+ (propagated-inputs
+ `(("python-requests" ,python-requests)
+ ("px-accounts-service-plugin-common" ,px-accounts-service-plugin-common)))
+ (home-page "https://www.pantherx.org")
+ (synopsis "Matrix plugin for Online Accounts Service")
+ (description "Matrix plugin for Online Accounts Service")
+ (license license:expat)))