diff options
author | msglm <msglm@techchud.xyz> | 2025-01-21 21:36:51 -0600 |
---|---|---|
committer | msglm <msglm@techchud.xyz> | 2025-01-21 21:36:51 -0600 |
commit | 2492375cfd92818f36774c91f331bed8cddae7f8 (patch) | |
tree | 3edcde08463f71a3b07fb68f5567280c16866904 | |
parent | da5816f4a0d24791acf67d6f72282ffd12631bd5 (diff) | |
download | guix-msglm-2492375cfd92818f36774c91f331bed8cddae7f8.tar.gz guix-msglm-2492375cfd92818f36774c91f331bed8cddae7f8.tar.bz2 guix-msglm-2492375cfd92818f36774c91f331bed8cddae7f8.zip |
Add discord and matrix pidgin plugins
-rw-r--r-- | messaging.scm | 323 |
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)))) |