summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormsglm <msglm@techchud.xyz>2025-01-21 21:36:51 -0600
committermsglm <msglm@techchud.xyz>2025-01-21 21:36:51 -0600
commit2492375cfd92818f36774c91f331bed8cddae7f8 (patch)
tree3edcde08463f71a3b07fb68f5567280c16866904
parentda5816f4a0d24791acf67d6f72282ffd12631bd5 (diff)
downloadguix-msglm-2492375cfd92818f36774c91f331bed8cddae7f8.tar.gz
guix-msglm-2492375cfd92818f36774c91f331bed8cddae7f8.tar.bz2
guix-msglm-2492375cfd92818f36774c91f331bed8cddae7f8.zip
Add discord and matrix pidgin plugins
-rw-r--r--messaging.scm323
1 files changed, 323 insertions, 0 deletions
diff --git a/messaging.scm b/messaging.scm
new file mode 100644
index 0000000..ea1bc5d
--- /dev/null
+++ b/messaging.scm
@@ -0,0 +1,323 @@
+(define-module (messaging)
+ #:use-module ((guix licenses) #:prefix license:)
+ #:use-module (gnu packages admin)
+ #:use-module (gnu packages aidc)
+ #:use-module (gnu packages aspell)
+ #:use-module (gnu packages audio)
+ #:use-module (gnu packages autotools)
+ #:use-module (gnu packages avahi)
+ #:use-module (gnu packages base)
+ #:use-module (gnu packages bash)
+ #:use-module (gnu packages bison)
+ #:use-module (gnu packages boost)
+ #:use-module (gnu packages certs)
+ #:use-module (gnu packages check)
+ #:use-module (gnu packages code)
+ #:use-module (gnu packages compression)
+ #:use-module (gnu packages cpp)
+ #:use-module (gnu packages crypto)
+ #:use-module (gnu packages curl)
+ #:use-module (gnu packages cyrus-sasl)
+ #:use-module (gnu packages databases)
+ #:use-module (gnu packages docbook)
+ #:use-module (gnu packages documentation)
+ #:use-module (gnu packages enchant)
+ #:use-module (gnu packages erlang)
+ #:use-module (gnu packages erlang-xyz)
+ #:use-module (gnu packages fontutils)
+ #:use-module (gnu packages freedesktop)
+ #:use-module (gnu packages gettext)
+ #:use-module (gnu packages glib)
+ #:use-module (gnu packages gnome)
+ #:use-module (gnu packages gnupg)
+ #:use-module (gnu packages golang)
+ #:use-module (gnu packages golang-build)
+ #:use-module (gnu packages golang-check)
+ #:use-module (gnu packages golang-compression)
+ #:use-module (gnu packages golang-crypto)
+ #:use-module (gnu packages golang-web)
+ #:use-module (gnu packages golang-xyz)
+ #:use-module (gnu packages gperf)
+ #:use-module (gnu packages graphviz)
+ #:use-module (gnu packages gstreamer)
+ #:use-module (gnu packages gtk)
+ #:use-module (gnu packages guile)
+ #:use-module (gnu packages hunspell)
+ #:use-module (gnu packages icu4c)
+ #:use-module (gnu packages image)
+ #:use-module (gnu packages imagemagick)
+ #:use-module (gnu packages kde)
+ #:use-module (gnu packages kde-frameworks)
+ #:use-module (gnu packages kerberos)
+ #:use-module (gnu packages less)
+ #:use-module (gnu packages libcanberra)
+ #:use-module (gnu packages libevent)
+ #:use-module (gnu packages libffi)
+ #:use-module (gnu packages libidn)
+ #:use-module (gnu packages linux)
+ #:use-module (gnu packages logging)
+ #:use-module (gnu packages lua)
+ #:use-module (gnu packages man)
+ #:use-module (gnu packages markup)
+ #:use-module (gnu packages matrix)
+ #:use-module (gnu packages messaging)
+ #:use-module (gnu packages mpd)
+ #:use-module (gnu packages ncurses)
+ #:use-module (gnu packages networking)
+ #:use-module (gnu packages nss)
+ #:use-module (gnu packages password-utils)
+ #:use-module (gnu packages pcre)
+ #:use-module (gnu packages perl)
+ #:use-module (gnu packages photo)
+ #:use-module (gnu packages php)
+ #:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages protobuf)
+ #:use-module (gnu packages python)
+ #:use-module (gnu packages python-build)
+ #:use-module (gnu packages python-check)
+ #:use-module (gnu packages python-crypto)
+ #:use-module (gnu packages python-web)
+ #:use-module (gnu packages python-xyz)
+ #:use-module (gnu packages qt)
+ #:use-module (gnu packages readline)
+ #:use-module (gnu packages regex)
+ #:use-module (gnu packages ruby)
+ #:use-module (gnu packages sphinx)
+ #:use-module (gnu packages sqlite)
+ #:use-module (gnu packages tcl)
+ #:use-module (gnu packages telephony)
+ #:use-module (gnu packages texinfo)
+ #:use-module (gnu packages textutils)
+ #:use-module (gnu packages tls)
+ #:use-module (gnu packages video)
+ #:use-module (gnu packages vulkan)
+ #:use-module (gnu packages web)
+ #:use-module (gnu packages xdisorg)
+ #:use-module (gnu packages xiph)
+ #:use-module (gnu packages xml)
+ #:use-module (gnu packages xorg)
+ #:use-module (gnu packages)
+ #:use-module (guix build-system cmake)
+ #:use-module (guix build-system copy)
+ #:use-module (guix build-system glib-or-gtk)
+ #:use-module (guix build-system gnu)
+ #:use-module (guix build-system go)
+ #:use-module (guix build-system meson)
+ #:use-module (guix build-system perl)
+ #:use-module (guix build-system pyproject)
+ #:use-module (guix build-system python)
+ #:use-module (guix build-system qt)
+ #:use-module (guix build-system rebar)
+ #:use-module (guix build-system trivial)
+ #:use-module (guix download)
+ #:use-module (guix gexp)
+ #:use-module (guix git-download)
+ #:use-module (guix hg-download)
+ #:use-module (guix packages)
+ #:use-module (guix utils))
+
+(define-public psi-plus-webengine
+ (package
+ (inherit psi-plus)
+ (name "psi-plus-webengine")
+
+ (arguments
+ `(#:tests? #f ; No target
+ #:imported-modules
+ (,@%qt-build-system-modules
+ (guix build glib-or-gtk-build-system))
+ #:modules
+ ((guix build qt-build-system)
+ ((guix build glib-or-gtk-build-system)
+ #:prefix glib-or-gtk:)
+ (guix build utils))
+ #:configure-flags
+ (list
+ "-DBUILD_PSIMEDIA=ON" ; For A/V support
+ "-DENABLE_PLUGINS=ON"
+ "-DUSE_HUNSPELL=OFF" ; Use Enchant instead
+ "-DUSE_ENCHANT=ON"
+ "-DCHAT_TYPE=webengine"
+ "-DUSE_CCACHE=OFF") ; Not required
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-source
+ (lambda _
+ (substitute* "CMakeLists.txt"
+ (("\\$\\{PROJECT_SOURCE_DIR\\}/3rdparty/http-parser/http_parser.h")
+ "")
+ (("\\$\\{PROJECT_SOURCE_DIR\\}/3rdparty/qhttp/qhttp.pro")
+ "")
+ (("\\$\\{PROJECT_SOURCE_DIR\\}/3rdparty/qite/qite.pro")
+ "")
+ (("add_subdirectory\\( 3rdparty \\)")
+ ""))
+ (substitute* "src/CMakeLists.txt"
+ (("\\$\\{PROJECT_SOURCE_DIR\\}/3rdparty/qite/libqite")
+ "")
+ (("\\$\\{PROJECT_SOURCE_DIR\\}/3rdparty/http-parser")
+ "")
+ (("\\$\\{PROJECT_SOURCE_DIR\\}/3rdparty/qhttp/src/private")
+ "")
+ (("\\$\\{PROJECT_SOURCE_DIR\\}/3rdparty/qhttp/src")
+ "")
+ (("\\$\\{PROJECT_SOURCE_DIR\\}/3rdparty")
+ "")
+ (("add_dependencies\\(\\$\\{PROJECT_NAME\\} qhttp\\)")
+ "target_link_libraries(${PROJECT_NAME} qhttp)"))
+ (substitute* "src/src.cmake"
+ (("include\\(\\$\\{PROJECT_SOURCE_DIR\\}/3rdparty/qite/libqite/libqite.cmake\\)")
+ "list(APPEND EXTRA_LIBS qite)"))
+ (substitute* '("src/filesharingmanager.h" "src/widgets/psirichtext.cpp"
+ "src/filesharingmanager.cpp" "src/widgets/psitextview.cpp"
+ "src/chatview_te.cpp" "src/msgmle.cpp")
+ (("qite.h")
+ "qite/qite.h")
+ (("qiteaudio.h")
+ "qite/qiteaudio.h")
+ (("qiteaudiorecorder.h")
+ "qite/qiteaudiorecorder.h"))))
+ (add-after 'install 'wrap-env
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (for-each
+ (lambda (name)
+ (let ((file (string-append out "/bin/" name))
+ (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
+ (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
+ (wrap-program file
+ `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
+ `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))))
+ '("psi-plus")))))
+ (add-after 'wrap-env 'glib-or-gtk-compile-schemas
+ (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
+ (add-after 'glib-or-gtk-compile-schemas 'glib-or-gtk-wrap
+ (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
+ (inputs (modify-inputs (package-inputs psi-plus)
+ (prepend qtwebengine-5)))
+
+ ))
+
+(define-public discord-purple
+ (let ((commit "c5dfbe0e1fd7de1f2adbf672f653f67e39686044")
+ (revision "0"))
+ (package
+ (name "discord-purple")
+ (version (git-version "1.0" revision commit))
+ (home-page "https://github.com/EionRobb/purple-discord/")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/EionRobb/purple-discord")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "07w06ack6blzi2yd5slj8ib34dw41hdw6179y8503dxvbzcb16q4"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases (modify-phases %standard-phases
+ (replace 'configure
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ ;; Adjust the makefile to install files in the right place.
+ (let ((out (assoc-ref outputs "out")))
+ (substitute* "Makefile"
+ (("DISCORD_DEST = .*")
+ (string-append "DISCORD_DEST = " out
+ "/lib/purple-2\n"))
+ (("DISCORD_ICONS_DEST = .*")
+ (string-append "DISCORD_ICONS_DEST = "
+ out
+ "/share/pixmaps/pidgin/protocols\n"))
+ (("LOCALE_DEST = .*")
+ (string-append "LOCALE_DEST = "
+ out
+ "/share/locale/\n"))
+
+ )
+ #t))))
+ #:make-flags (list "CC=gcc"
+ ,(string-append "PLUGIN_VERSION=" version))
+ #:tests? #f))
+ (inputs
+ (list pidgin
+ libgcrypt
+ libwebp
+ glib
+ gtk+-2
+ zlib
+ json-glib
+ nss
+ qrencode))
+ (native-inputs
+ (list pkg-config
+ gettext-minimal
+ imagemagick
+ which))
+ (synopsis "Discord messaging support for Pidgin")
+ (description
+ "A libpurple/Pidgin plugin for Discord")
+ (license license:gpl3))))
+
+(define-public purple-matrix
+ (let ((commit "442003b9f16c4c4222ed36f871fcd018551fdc3f")
+ (revision "0"))
+ (package
+ (name "purple-matrix")
+ (version (git-version "1.0" revision commit))
+ (home-page "https://github.com/EionRobb/purple-matrix/")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/EionRobb/purple-matrix")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0b0gfvn9d82ynmnzq5vw28yrnp22qsmyp4lfaja6qr25aqdy943m"))
+ (patches
+ (search-patches "aux-files/purple-matrix/fix-g_memdup.patch"))
+ ))
+ (build-system gnu-build-system)
+(arguments
+ `(#:phases (modify-phases %standard-phases
+ (replace 'configure
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ ;; Adjust the makefile to install files in the right place.
+ (let ((out (assoc-ref outputs "out")))
+ (substitute* "Makefile"
+ (("PLUGIN_DIR_PURPLE\t= .*")
+ (string-append "PLUGIN_DIR_PURPLE\t= " out "/lib/purple-2\n"))
+ (("DATA_ROOT_DIR_PURPLE\t= .*")
+ (string-append "DATA_ROOT_DIR_PURPLE\t= " out "/lib/purple-2\n")))
+ #t))))
+
+
+ #:make-flags (list "CC=gcc"
+ ,(string-append "PLUGIN_VERSION=" version))
+ #:tests? #f))
+ (inputs
+ (list pidgin
+ libgcrypt
+ libwebp
+ glib
+ gtk+-2
+ zlib
+ json-glib
+ nss
+ sqlite
+ libolm
+ http-parser
+ ))
+ (native-inputs
+ (list pkg-config
+ gettext-minimal
+ imagemagick
+ which
+
+ coreutils
+ ))
+ (synopsis "Discord messaging support for Pidgin")
+ (description
+ "A libpurple/Pidgin plugin for Discord")
+ (license license:gpl3))))