diff mbox series

[bug#70634] gnu: Add biboumi.

Message ID 90496269da21832ff00c1240a1325261c3e0e261.1714331488.git.w@wmeyer.eu
State New
Headers show
Series [bug#70634] gnu: Add biboumi. | expand

Commit Message

Wilko Meyer April 28, 2024, 7:11 p.m. UTC
* gnu/packages/messaging.scm (biboumi): New variable.
* gnu/packages/messaging.scm: Add copyright.
* gnu/packages/patches/biboumi-cmake-ignore-git.patch: New patch.

Change-Id: Ibb2bcadc8f64cbda3a0dbfe8ef5a931c52052658
---

Hi Guix,

This patch series adds biboumi, a IRC<->XMPP gateway daemon. It also
contains a patch the biboumi debian package maintainers apply on their
biboumi package that removes louiz/Catch as a external project
dependency from CMakeLists.txt. I considered packaging louiz/Catch,
but the repository containing it seems to be gone.

There's one optional dependency not packaged for guix, udns, the
project homepage seems unavailable as well, even though the source
code is still up[0]. As it's not needed to operate biboumi and only
has a performance impact according to biboumis docs:

#+BEGIN_QUOTE
Asynchronously resolve domain names. This offers better reactivity and
performances when connecting to a big number of IRC servers at the
same time.
#+END_QUOTE

I'll leave it out for now. Tests are disabled for now as they seem to
depend on louiz/Catch as well as network.

As I yet have to migrate my prosody instance to guix I am currently
unable to test biboumi any further than verifying that it builds
succesfully.

[0]: https://github.com/ortclib/udns
[1]: https://doc.biboumi.louiz.org/install.html#libraries

 gnu/packages/messaging.scm                    | 44 ++++++++++++++++++
 .../patches/biboumi-cmake-ignore-git.patch    | 45 +++++++++++++++++++
 2 files changed, 89 insertions(+)
 create mode 100644 gnu/packages/patches/biboumi-cmake-ignore-git.patch


base-commit: 8d29f416a9378d30f63c2a95f1bd1a420d9ccab4
prerequisite-patch-id: 455921dbaa6babc3a0f666eff8be41973ba1dad5
diff mbox series

Patch

diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index 20bdb713b5..f178eafd9b 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -41,6 +41,7 @@ 
 ;;; Copyright © 2023 Yovan Naumovski <yovan@gorski.stream>
 ;;; Copyright © 2023 gemmaro <gemmaro.dev@gmail.com>
 ;;; Copyright © 2024 Carlo Zancanaro <carlo@zancanaro.id.au>
+;;; Copyright © 2024 Wilko Meyer <w@wmeyer.eu>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -163,6 +164,49 @@  (define-module (gnu packages messaging)
   #:use-module (guix packages)
   #:use-module (guix utils))
 
+(define-public biboumi
+  (package
+   (name "biboumi")
+   (version "9.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://git.louiz.org/biboumi/snapshot/biboumi-"
+                                  version ".tar.xz"))
+              (sha256
+               (base32 "1jvygri165aknmvlinx3jb8cclny6cxdykjf8dp0a3l3228rmzqy"))
+              ;; see https://sources.debian.org/patches/biboumi/9.0-5/2001_cmake_ignore_git.patch/
+              (patches (search-patches "biboumi-cmake-ignore-git.patch"))))
+   (arguments
+    ;; Tests seem to partially depend on networking as well as
+    ;; louiz/Catch which we remove as a dependency via the patch above as
+    ;; the repository seems dead. Deactivating those for now, possibly fix
+    ;; some of them later.
+    `(#:tests? #f
+      #:configure-flags '("-DWITHOUT_SYSTEMD=1")
+      #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-cmake-substitutions
+           (lambda* (#:key outputs #:allow-other-keys)
+             (substitute* "CMakeLists.txt"
+               (("/etc") (string-append (assoc-ref outputs "out") "/etc"))))))))
+   (build-system cmake-build-system)
+   (inputs (list botan
+                 expat
+                 libiconv
+                 libidn
+                 openssl
+                 postgresql ;; libpq
+                 sqlite
+                 ;; TODO: package optional dependency: udns
+                 (list util-linux "lib") ;; libuuid
+                 pkg-config))
+   (home-page "https://biboumi.louiz.org")
+   (synopsis "Biboumi is a XMPP gateway that connects to IRC")
+   (description "Biboumi is a Free, Libre and Open Source XMPP gateway that connects to IRC
+servers and translates between the two protocols. Its goal is to let XMPP
+users take part in IRC discussions, using their favourite XMPP client.")
+   (license license:zlib)))
+
 (define-public omemo-wget
   (package
     (name "omemo-wget")
diff --git a/gnu/packages/patches/biboumi-cmake-ignore-git.patch b/gnu/packages/patches/biboumi-cmake-ignore-git.patch
new file mode 100644
index 0000000000..cf9aa6c82d
--- /dev/null
+++ b/gnu/packages/patches/biboumi-cmake-ignore-git.patch
@@ -0,0 +1,45 @@ 
+Description: Avoid cmake messing with git
+Author: Jonas Smedegaard <dr@jones.dk>
+Last-Update: 2016-12-21
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -288,27 +288,6 @@
+ endforeach()
+ 
+ #
+-## Add a rule to download the catch unit test framework
+-#
+-include(ExternalProject)
+-ExternalProject_Add(catch
+-  GIT_REPOSITORY "https://lab.louiz.org/louiz/Catch.git"
+-  PREFIX "external"
+-  UPDATE_COMMAND ""
+-  CONFIGURE_COMMAND ""
+-  BUILD_COMMAND ""
+-  INSTALL_COMMAND ""
+-  )
+-set_target_properties(catch PROPERTIES EXCLUDE_FROM_ALL TRUE)
+-ExternalProject_Get_Property(catch SOURCE_DIR)
+-if(NOT EXISTS ${CMAKE_SOURCE_DIR}/tests/catch.hpp)
+-  target_include_directories(test_suite
+-    PUBLIC "${SOURCE_DIR}/single_include/"
+-    )
+-  add_dependencies(test_suite catch)
+-endif()
+-
+-#
+ ## Add some custom rules to launch the tests
+ #
+ add_custom_target(check COMMAND "test_suite"
+@@ -371,8 +350,7 @@
+   WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
+   )
+ add_custom_target(dist
+-  DEPENDS ${ARCHIVE_NAME}.tar.xz
+-  DEPENDS catch)
++  DEPENDS ${ARCHIVE_NAME}.tar.xz)
+ 
+ add_custom_target(rpm
+   DEPENDS dist