Subject: [PATCH] Added iRODS v4.3.1

From: "Lenoci, L. (Leonardo)" <[email-masked]>
Date: Tue, 12 Mar 2024 15:59:21 +0000

gnu: avro-cpp: Added version 1.11

* gnu/packages/serialization.scm (avro-cpp-1.11): Added version 1.11,
needed to build iRODS v4.3.1

gnu: irods: Added version 4.3.1

* gnu/packages/irods.scm (irods-4.3.1): Added irods version 4.3.1
* gnu/packages/irods.scm (irods-client-icommands-4.3.1): Added
icommands version 4.3.1
---
 gnu/packages/irods.scm         | 98 ++++++++++++++++++++++++++++++++++
 gnu/packages/serialization.scm | 27 ++++++++++
 2 files changed, 125 insertions(+)

diff --git a/gnu/packages/irods.scm b/gnu/packages/irods.scm
index a14ac87aa2..980824b521 100644
--- a/gnu/packages/irods.scm
+++ b/gnu/packages/irods.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2021 Ricardo Wurmus <[email-masked]>
+;;; Copyright © 2024 Leonardo Lenoci <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -166,6 +167,62 @@ (define-public irods
 stored.")
     (license license:bsd-3)))
 
+
+(define-public irods-4.3.1
+  (package
+    (inherit irods)
+    (version "4.3.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
"https://github.com/irods/irods/releases/download/"
+                                  version "/irods-" version
".tar.gz"))
+              (sha256
+               (base32
+               
"1l373izk4v56zb86xn44ab25afbhs0q7h6vp6zkvwnz1xwd17h64"))))
+    (arguments
+     (substitute-keyword-arguments (package-arguments irods)
+       ((#:configure-flags flags #~`())
+        #~(append `(,(string-append "-
DIRODS_EXTERNALS_FULLPATH_SPDLOG="
+		                    #$(this-package-input "spdlog")) 
+                    ;;;(assoc-ref %build-inputs "spdlog")
+		    "-DIRODS_BUILD_WITH_CLANG=ON"
+		    "-DIRODS_BUILD_AGAINST_LIBCXX=FALSE"
+		    ) #$flags))
+       ((#:phases phases)
+	`(modify-phases ,phases
+	   (replace 'remove-FHS-and-prefix-assumptions
+	     (lambda* (#:key inputs #:allow-other-keys)
+               (substitute* "lib/core/src/irods_default_paths.cpp"
+                 (("path.append\\(\"usr\"\\)") "path")
+                
(("path.remove_filename\\(\\).remove_filename\\(\\).remove_filename\\(\
\)")
+                  "path.remove_filename().remove_filename()"))
+               (substitute* "scripts/irods/paths.py"
+                 (("'usr', 'lib', 'irods'") "'lib', 'irods'"))
+	       ))
+	   (delete 'adjust-CPLUS_INCLUDE_PATH)
+	   ))		       
+       ))
+    
+    (inputs
+     (modify-inputs (package-inputs irods)
+       (replace "avro-cpp" avro-cpp-1.11)
+       (replace "boost" boost)
+       (replace "fmt" fmt-8)
+       (replace "nanodbc-for-irods" nanodbc)
+       (append spdlog)
+       (delete "libcxxabi")
+       ))
+    
+    (native-inputs
+     (modify-inputs (package-native-inputs irods)
+       (replace "clang" clang-toolchain-13)
+       (replace "clang-runtime" clang-runtime-13)
+       (append curl)
+       (append nanodbc)
+       (delete "libcxx+libcxxabi")
+       ))
+    ))
+
 (define-public irods-client-icommands
   (package
     (name "irods-client-icommands")
@@ -266,3 +323,44 @@ (define-public irods-client-icommands
 take control of their data, regardless of where and on what device the
data is
 stored.")
     (license license:bsd-3)))
+
+
+(define-public irods-client-icommands-4.3.1
+  (package
+    (inherit irods-client-icommands)
+    (version "4.3.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
"https://github.com/irods/irods-client-icommands/archive/refs/tags/"
version ".tar.gz"))
+              (sha256
+               (base32
+               
"0v1yyrq6hy661d1g03mqmr2w8acdli76nly4rwk3qqqavlr75l2c"))))
+    (arguments
+     (substitute-keyword-arguments (package-arguments irods-client-
icommands)
+       ((#:configure-flags flags #~`())
+	#~(append `(,
+		    "-DCPACK_GENERATOR=TGZ"
+		    "-DIRODS_BUILD_WITH_CLANG=ON"
+		    "-DIRODS_BUILD_AGAINST_LIBCXX=FALSE"
+		    ) #$flags))
+       ((#:phases phases)
+	`(modify-phases ,phases
+	   (delete 'adjust-CPLUS_INCLUDE_PATH)
+	   )
+	)))
+    
+    (inputs
+     (modify-inputs (package-inputs irods-client-icommands)
+       (replace "avro-cpp" avro-cpp-1.11)
+       (replace "boost" boost)
+       (replace "fmt" fmt-8)
+       (replace "irods" irods-4.3.1)
+       (delete "libcxxabi")
+       ))
+    (native-inputs
+     (modify-inputs (package-native-inputs irods-client-icommands)
+       (replace "clang" clang-toolchain-13)
+       (replace "clang-runtime" clang-runtime-13)
+       (delete "libcxx+libcxxabi")
+       ))
+    ))
diff --git a/gnu/packages/serialization.scm
b/gnu/packages/serialization.scm
index 331fae80cf..194a962d38 100644
--- a/gnu/packages/serialization.scm
+++ b/gnu/packages/serialization.scm
@@ -19,6 +19,7 @@
 ;;; Copyright © 2023 Zheng Junjie <[email-masked]>
 ;;; Copyright © 2024 Paul A. Patience <[email-masked]>
 ;;; Copyright © 2024 Arun Isaac <[email-masked]>
+;;; Copyright © 2024 Leonardo Lenoci <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -102,6 +103,32 @@ (define-public avro-cpp-1.9
 implement RPC protocols.")
     (license license:asl2.0)))
 
+(define-public avro-cpp-1.11
+  (package
+    (inherit avro-cpp-1.9)
+    (version "1.11.3")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://archive.apache.org/dist/avro/avro-"
version
+                    "/avro-src-" version ".tar.gz"))
+              (sha256
+               (base32
"0d60vi4s8la0c64zfyydfy21690yf0px5bcsi5d1p8b06al8g9vf"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+	 (add-after 'unpack 'chdir
+	   (lambda _ (chdir "lang/c++")))
+         ;;; avoid that deprecation warnings with boost v.1.80.0
+         ;;; are treated as errors
+	 (add-after 'chdir 'unset-Werror
+	   (lambda _
+	     (substitute* "CMakeLists.txt"
+	       (("-Werror") ""))))       
+	 )))
+    ))
+
 (define-public avro-cpp-1.9-for-irods
   (package
     (inherit avro-cpp-1.9)

base-commit: bb2703194e1e18e6513472742fdc9b2781b72729
-- 
2.34.1