[bug#69472] gnu: avro-cpp: Update to 1.12.0.

Message ID 0888b883a1d4f0a28e7b097cc59c6b4baabb1595.1746545596.git.code@greghogan.com
State New
Headers
Series [bug#69472] gnu: avro-cpp: Update to 1.12.0. |

Commit Message

Greg Hogan May 6, 2025, 3:34 p.m. UTC
  * gnu/packages/serialization.scm (avro-cpp-1.9): Rename to avro-cpp.
(avro-cpp): Update to 1.12.0.
[source]<uri>: Use Apache mirror.
[arguments]<#:phases>: Add phase to use system fmt.
[inputs]: Add fmt.
(avro-cpp-1.9-for-irods): Inherit from avro-cpp.

Change-Id: Iee70378ad5452ad51757aadb8f6adaf00fc5bab5
---
 gnu/packages/serialization.scm | 34 ++++++++++++++++++++++++----------
 1 file changed, 24 insertions(+), 10 deletions(-)


base-commit: fa39695bbc0c5f79838cbca55d55eebd821a8efa
  

Comments

Greg Hogan May 13, 2025, 5:29 p.m. UTC | #1
On Tue, May 6, 2025 at 11:35 AM Greg Hogan <code@greghogan.com> wrote:
>
> * gnu/packages/serialization.scm (avro-cpp-1.9): Rename to avro-cpp.
> (avro-cpp): Update to 1.12.0.
> [source]<uri>: Use Apache mirror.
> [arguments]<#:phases>: Add phase to use system fmt.
> [inputs]: Add fmt.
> (avro-cpp-1.9-for-irods): Inherit from avro-cpp.
>
> Change-Id: Iee70378ad5452ad51757aadb8f6adaf00fc5bab5
> ---
>  gnu/packages/serialization.scm | 34 ++++++++++++++++++++++++----------
>  1 file changed, 24 insertions(+), 10 deletions(-)
>
> diff --git a/gnu/packages/serialization.scm b/gnu/packages/serialization.scm
> index c0f7001fa05..db8e85f411b 100644
> --- a/gnu/packages/serialization.scm
> +++ b/gnu/packages/serialization.scm
> @@ -70,28 +70,34 @@ (define-module (gnu packages serialization)
>    #:use-module (gnu packages python-check)
>    #:use-module (gnu packages python-science)
>    #:use-module (gnu packages python-xyz)
> +  #:use-module (gnu packages pretty-print)
>    #:use-module (gnu packages qt)
>    #:use-module (gnu packages time))
>
> -(define-public avro-cpp-1.9
> +(define-public avro-cpp
>    (package
>      (name "avro-cpp")
> -    (version "1.9.2")
> +    (version "1.12.0")
>      (source (origin
>                (method url-fetch)
>                (uri (string-append
> -                    "https://archive.apache.org/dist/avro/avro-" version
> +                    "mirror://apache/avro/avro-" version
>                      "/avro-src-" version ".tar.gz"))
>                (sha256
> -               (base32 "0i3fpm7r72yw397qc8yw9ybzk2mxjkv0yk5hnn00ylc1wbd0np73"))))
> +               (base32 "0ywg7s7m7ngiddcg78hwb34c49yjzal6glcckinvcik2fr9nmg88"))))
>      (build-system cmake-build-system)
>      (arguments
> -     `(#:phases
> -       (modify-phases %standard-phases
> -         (add-after 'unpack 'chdir
> -           (lambda _ (chdir "lang/c++"))))))
> +     (list #:phases
> +           #~(modify-phases %standard-phases
> +               (add-after 'unpack 'chdir
> +                 (lambda _ (chdir "lang/c++")))
> +               (add-after 'chdir 'fix-dependencies
> +                 (lambda _
> +                   (substitute* "CMakeLists.txt"
> +                     (("^FetchContent_MakeAvailable\\(fmt\\)")
> +                      "find_package(fmt REQUIRED)")))))))
>      (inputs
> -     (list boost snappy))
> +     (list boost fmt snappy))
>      (home-page "https://avro.apache.org/")
>      (synopsis "Data serialization system")
>      (description "Apache Avro is a data serialization system.  Avro provides:
> @@ -109,8 +115,16 @@ (define-public avro-cpp-1.9
>
>  (define-public avro-cpp-1.9-for-irods
>    (package
> -    (inherit avro-cpp-1.9)
> +    (inherit avro-cpp)
>      (properties `((hidden? . #true)))
> +    (version "1.9.2")
> +    (source (origin
> +              (method url-fetch)
> +              (uri (string-append
> +                    "https://archive.apache.org/dist/avro/avro-" version
> +                    "/avro-src-" version ".tar.gz"))
> +              (sha256
> +               (base32 "0i3fpm7r72yw397qc8yw9ybzk2mxjkv0yk5hnn00ylc1wbd0np73"))))
>      (arguments
>       `(#:configure-flags
>         '("-DCMAKE_CXX_COMPILER=clang++"
>
> base-commit: fa39695bbc0c5f79838cbca55d55eebd821a8efa
> --
> 2.49.0

Pushed as 11cd06a4f7cad2c9c6b827ba6c06909ac20fea0f. I also switched
avro-cpp-1.9-for-irods to use the apache mirror, which does not affect
the derivation.
  

Patch

diff --git a/gnu/packages/serialization.scm b/gnu/packages/serialization.scm
index c0f7001fa05..db8e85f411b 100644
--- a/gnu/packages/serialization.scm
+++ b/gnu/packages/serialization.scm
@@ -70,28 +70,34 @@  (define-module (gnu packages serialization)
   #:use-module (gnu packages python-check)
   #:use-module (gnu packages python-science)
   #:use-module (gnu packages python-xyz)
+  #:use-module (gnu packages pretty-print)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages time))
 
-(define-public avro-cpp-1.9
+(define-public avro-cpp
   (package
     (name "avro-cpp")
-    (version "1.9.2")
+    (version "1.12.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
-                    "https://archive.apache.org/dist/avro/avro-" version
+                    "mirror://apache/avro/avro-" version
                     "/avro-src-" version ".tar.gz"))
               (sha256
-               (base32 "0i3fpm7r72yw397qc8yw9ybzk2mxjkv0yk5hnn00ylc1wbd0np73"))))
+               (base32 "0ywg7s7m7ngiddcg78hwb34c49yjzal6glcckinvcik2fr9nmg88"))))
     (build-system cmake-build-system)
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'chdir
-           (lambda _ (chdir "lang/c++"))))))
+     (list #:phases
+           #~(modify-phases %standard-phases
+               (add-after 'unpack 'chdir
+                 (lambda _ (chdir "lang/c++")))
+               (add-after 'chdir 'fix-dependencies
+                 (lambda _
+                   (substitute* "CMakeLists.txt"
+                     (("^FetchContent_MakeAvailable\\(fmt\\)")
+                      "find_package(fmt REQUIRED)")))))))
     (inputs
-     (list boost snappy))
+     (list boost fmt snappy))
     (home-page "https://avro.apache.org/")
     (synopsis "Data serialization system")
     (description "Apache Avro is a data serialization system.  Avro provides:
@@ -109,8 +115,16 @@  (define-public avro-cpp-1.9
 
 (define-public avro-cpp-1.9-for-irods
   (package
-    (inherit avro-cpp-1.9)
+    (inherit avro-cpp)
     (properties `((hidden? . #true)))
+    (version "1.9.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://archive.apache.org/dist/avro/avro-" version
+                    "/avro-src-" version ".tar.gz"))
+              (sha256
+               (base32 "0i3fpm7r72yw397qc8yw9ybzk2mxjkv0yk5hnn00ylc1wbd0np73"))))
     (arguments
      `(#:configure-flags
        '("-DCMAKE_CXX_COMPILER=clang++"