[PATCH] gnu: Add biboumi.

  • Done
  • quality assurance status badge
Details
2 participants
  • Ludovic Courtès
  • 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
L
L
Ludovic Courtès wrote on 31 May 13:45 +0200
(name . Wilko Meyer)(address . w@wmeyer.eu)(address . 70634-done@debbugs.gnu.org)
87cyp2tdam.fsf@gnu.org
Wilko Meyer <w@wmeyer.eu> skribis:

Toggle quote (6 lines)
> * 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! I added the patch to ‘gnu/local.mk’ and applied it.

Thanks!

Ludo’.
Closed
?
Your comment

Commenting via the web interface is currently disabled.

To comment on this conversation send an email to 70634@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 70634
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch