Subject: bug#70634: closed (Re: [bug#70634] [PATCH] gnu: Add biboumi.)

From: [email-masked] (GNU bug Tracking System)
Date: Fri, 31 May 2024 11:47:02 +0000

Your bug report

#70634: [PATCH] gnu: Add biboumi.

which was filed against the guix-patches package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
70634: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=70634
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: [bug#70634] [PATCH] gnu: Add biboumi.
From: Ludovic Courtès <[email-masked]>
To: Wilko Meyer <[email-masked]>
Cc: [email-masked]
Date: Fri, 31 May 2024 13:45:53 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Wilko Meyer <[email-masked]> skribis:

> * 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’.

Subject: [PATCH] gnu: Add biboumi.
From: Wilko Meyer <[email-masked]>
To: [email-masked]
Cc: Wilko Meyer <[email-masked]>
Date: Sun, 28 Apr 2024 21:11:30 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

* 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

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 <[email-masked]>
 ;;; Copyright © 2023 gemmaro <[email-masked]>
 ;;; Copyright © 2024 Carlo Zancanaro <[email-masked]>
+;;; Copyright © 2024 Wilko Meyer <[email-masked]>
 ;;;
 ;;; 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 <[email-masked]>
+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