[PATCH] gnu: Add biboumi.

  • Open
  • quality assurance status badge
Details
One participant
  • Wilko Meyer
Owner
unassigned
Submitted by
Wilko Meyer
Severity
normal
W
W
Wilko Meyer wrote on 28 Apr 21:11 +0200
(address . guix-patches@gnu.org)(name . Wilko Meyer)(address . w@wmeyer.eu)
90496269da21832ff00c1240a1325261c3e0e261.1714331488.git.w@wmeyer.eu
* 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.


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

Toggle diff (118 lines)
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

base-commit: 8d29f416a9378d30f63c2a95f1bd1a420d9ccab4
prerequisite-patch-id: 455921dbaa6babc3a0f666eff8be41973ba1dad5
--
2.41.0
?