(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 matrix-purple (let ((commit "442003b9f16c4c4222ed36f871fcd018551fdc3f") (revision "0")) (package (name "matrix-purple") (version (git-version "1.0" revision commit)) (home-page "https://github.com/EionRobb/matrix-purple/") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/EionRobb/matrix-purple") (commit commit))) (file-name (git-file-name name version)) (sha256 (base32 "0b0gfvn9d82ynmnzq5vw28yrnp22qsmyp4lfaja6qr25aqdy943m")) (patches (search-patches "aux-files/matrix-purple/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))))