Subject: Re: [bug#54630] [PATCH] utfcpp v3.2.1

From: Anadon <[email-masked]>
Date: Wed, 30 Mar 2022 23:43:00 -0400

Updated, should be closer.

On Tue, Mar 29, 2022 at 6:10 PM Leo Famulari <[email-masked]> wrote:

> On Tue, Mar 29, 2022 at 05:48:47PM -0400, Anadon wrote:
> >  (define-public utfcpp
> >    (package
> >      (name "utfcpp")
> > -    (version "2.3.5")
> > +    (version "3.2.1")
>
> Thanks!
>
> I turned it into a Git commit (attached as a patch) and built utfcpp 3.2.1
> successfully.
>
> I noticed that at least one of the handful of packages that depend on
> utfcpp, mkvtoolnix, doesn't build with this update:
>
> ------
> [...]
> starting phase `build'
>             CC lib/librmff/rmff.c
>            CXX src/mpegparser/MPEGVideoBuffer.cpp
>            CXX src/common/xml/xml.cpp
>             CC lib/librmff/mb_file_io.c
>             AR lib/librmff/librmff.a
>         RANLIB lib/librmff/librmff.a
>            CXX lib/avilib-0.6.10/xio.cpp
>            CXX src/mpegparser/M2VParser.cpp
>             CC lib/avilib-0.6.10/avimisc.c
>             CC lib/avilib-0.6.10/avilib.c
>             AR lib/avilib-0.6.10/libavi.a
>         RANLIB lib/avilib-0.6.10/libavi.a
>            CXX src/common/xml/ebml_tags_converter.cpp
>            CXX src/mpegparser/CircBuffer.cpp
>            CXX src/common/xml/ebml_segmentinfo_converter.cpp
>             AR src/mpegparser/libmpegparser.a
>         RANLIB src/mpegparser/libmpegparser.a
>            CXX src/common/xml/ebml_converter.cpp
>            CXX src/common/xml/ebml_chapters_converter.cpp
>            CXX src/common/tags/vorbis.cpp
>            CXX src/common/tags/tags.cpp
>            CXX src/common/strings/utf8.cpp
> src/common/strings/utf8.cpp:21:10: fatal error: utf8.h: No such file or
> directory
>    21 | #include <utf8.h>
>       |          ^~~~~~~~
> compilation terminated.
> error: in phase 'build': uncaught exception:
> %exception #<&invoke-error program: "rake" arguments: ("-j" "4")
> exit-status: 1 term-signal: #f stop-signal: #f>
> phase `build' failed after 47.3 seconds
> command "rake" "-j" "4" failed with status 1
> builder for
> `/gnu/store/n4jp4915g90c0f89njnlljhfd75k5y0g-mkvtoolnix-52.0.0.drv' failed
> with exit code 1
> build of /gnu/store/n4jp4915g90c0f89njnlljhfd75k5y0g-mkvtoolnix-52.0.0.drv
> failed
> View build log at
> '/var/log/guix/drvs/n4/jp4915g90c0f89njnlljhfd75k5y0g-mkvtoolnix-52.0.0.drv.gz'.
> guix build: error: build of
> `/gnu/store/n4jp4915g90c0f89njnlljhfd75k5y0g-mkvtoolnix-52.0.0.drv' failed
> ------
>
> One can check full list of packages that depend on utfcpp like this:
>
> ------
> $ guix refresh --list-dependent utfcpp
> Building the following 6 packages would ensure 8 dependent packages are
> rebuilt: [email-masked] [email-masked]
> [email-masked] [email-masked] [email-masked] [email-masked]
> ------
>
From eb6d740795e45a2387b4d253032d7218e4e443c9 Mon Sep 17 00:00:00 2001
From: Anadon <[email-masked]>
Date: Wed, 30 Mar 2022 21:22:04 -0400
Subject: [PATCH] Updating to add utfcpp as a seperate version and to update
 mkvtoolnix and warzone2100 to use the old version since they need behavior
 from version 2 and not version 3.

---
 gnu/packages/games.scm     |  2 +-
 gnu/packages/textutils.scm | 26 +++++++++++++++++++++++++-
 gnu/packages/video.scm     |  2 +-
 3 files changed, 27 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 8cc29b3487..1c01a41ed6 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -5131,7 +5131,7 @@ (define-public warzone2100
               ("openssl" ,openssl)
               ("sdl2" ,sdl2)
               ("sqlite" ,sqlite)
-              ("utfcpp" ,utfcpp)))
+              ("utfcpp" ,utfcpp-2)))
     (home-page "https://wz2100.net")
     (synopsis "3D Real-time strategy and real-time tactics game")
     (description
diff --git a/gnu/packages/textutils.scm b/gnu/packages/textutils.scm
index cbc657172d..21e8d861fa 100644
--- a/gnu/packages/textutils.scm
+++ b/gnu/packages/textutils.scm
@@ -24,6 +24,7 @@
 ;;; Copyright © 2021 Simon Tournier <[email-masked]>
 ;;; Copyright © 2021 Felix Gruber <[email-masked]>
 ;;; Copyright © 2021 Bonface Munyoki Kilyungi <[email-masked]>
+;;; Copyright © 2021 Anadon <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -666,7 +667,7 @@ (define-public catdoc
 @command{catppt}, which extracts data from PowerPoint presentations.")
     (license license:gpl2+)))
 
-(define-public utfcpp
+(define-public utfcpp-2
   (package
     (name "utfcpp")
     (version "2.3.5")
@@ -698,6 +699,29 @@ (define-public utfcpp
 in a portable way.")
     (license license:boost1.0)))
 
+(define-public utfcpp-3
+  (package
+    (name "utfcpp")
+    (version "3.2.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/nemtrif/utfcpp")
+                    (commit (string-append "v" version))
+                    (recursive? #t)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0gsbwif97i025bxgyax4fbf6v9z44zrca4s6wwd8x36ac8qzjppf"))))
+    (build-system cmake-build-system)
+    (home-page "https://github.com/nemtrif/utfcpp")
+    (synopsis "Portable C++ library for handling UTF-8")
+    (description "UTF8-CPP is a C++ library for handling UTF-8 encoded text
+in a portable way.")
+    (license license:boost1.0)))
+
+(define-public utfcpp utfcpp-3)
+
 (define-public dbacl
   (package
     (name "dbacl")
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index dc05c0a222..da383192bc 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -991,7 +991,7 @@ (define-public mkvtoolnix
            pugixml
            qtbase-5
            qtmultimedia
-           utfcpp
+           utfcpp-2
            zlib))
     (native-inputs
      `(("docbook-xsl" ,docbook-xsl)
-- 
2.34.0