summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/patches/biber-fix-encoding-write.patch31
-rw-r--r--gnu/packages/tex.scm18
3 files changed, 43 insertions, 7 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 9dabacb3de..bc54b61c21 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -604,6 +604,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/bazaar-CVE-2017-14176.patch		\
   %D%/packages/patches/beets-python-3.7-fix.patch		\
   %D%/packages/patches/beignet-correct-file-names.patch		\
+  %D%/packages/patches/biber-fix-encoding-write.patch		\
   %D%/packages/patches/binutils-loongson-workaround.patch	\
   %D%/packages/patches/blast+-fix-makefile.patch		\
   %D%/packages/patches/blender-newer-ffmpeg.patch		\
diff --git a/gnu/packages/patches/biber-fix-encoding-write.patch b/gnu/packages/patches/biber-fix-encoding-write.patch
new file mode 100644
index 0000000000..56cd11212e
--- /dev/null
+++ b/gnu/packages/patches/biber-fix-encoding-write.patch
@@ -0,0 +1,31 @@
+From 2a9b15aefb842a734637f3d230936ea1b7c60096 Mon Sep 17 00:00:00 2001
+From: Philip Kime <Philip@kime.org.uk>
+Date: Thu, 8 Nov 2018 22:02:09 +0100
+Subject: [PATCH] Fix to address #239
+
+---
+ lib/Biber.pm | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/lib/Biber.pm b/lib/Biber.pm
+index 8b1f80a5..d97fca29 100644
+--- a/lib/Biber.pm
++++ b/lib/Biber.pm
+@@ -311,6 +311,8 @@ sub parse_ctrlfile {
+     unless (eval {$checkbuf = File::Slurper::read_text($ctrl_file_path, 'latin1')}) {
+       biber_error("$ctrl_file_path is not UTF-8 or even latin1, how horrible.");
+     }
++    # Write ctrl file as UTF-8
++    File::Slurper::write_text($ctrl_file_path, NFC($checkbuf));# Unicode NFC boundary
+   }
+ 
+   $checkbuf = NFD($checkbuf);# Unicode NFD boundary
+@@ -319,8 +321,6 @@ sub parse_ctrlfile {
+     unlink($output) unless $output eq '-';# ignore deletion of STDOUT marker
+     biber_error("$ctrl_file_path is malformed, last biblatex run probably failed. Deleted $output");
+   }
+-  # Write ctrl file as UTF-8
+-  File::Slurper::write_text($ctrl_file_path, NFC($checkbuf));# Unicode NFC boundary
+ 
+   # Validate if asked to
+   if (Biber::Config->getoption('validate_control')) {
diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm
index 765f6aa849..3bfde1d714 100644
--- a/gnu/packages/tex.scm
+++ b/gnu/packages/tex.scm
@@ -4219,15 +4219,19 @@ values (strings, macros, or numbers) pasted together.")
 (define-public biber
   (package
     (name "biber")
-    (version "2.7")
+    (version "2.12")
     (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/plk/biber/archive/v"
-                                  version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/plk/biber/")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              ;; TODO: Patch awaiting inclusion upstream (see:
+              ;; https://github.com/plk/biber/issues/239).
+              (patches (search-patches "biber-fix-encoding-write.patch"))
               (sha256
                (base32
-                "17wd80jg98qyddhvz4cin8779ycvppaf2va77r1lyvymjz6w9bx0"))))
+                "1g1hi6zvf2hmrjly1sidjaxy5440gfqm4p7p3n7kayshnjsmlskx"))))
     (build-system perl-build-system)
     (arguments
      `(#:phases
@@ -4249,7 +4253,7 @@ values (strings, macros, or numbers) pasted together.")
        ("perl-data-uniqid" ,perl-data-uniqid)
        ("perl-datetime-format-builder" ,perl-datetime-format-builder)
        ("perl-datetime-calendar-julian" ,perl-datetime-calendar-julian)
-       ("perl-file-slurp" ,perl-file-slurp)
+       ("perl-file-slurper" ,perl-file-slurper)
        ("perl-ipc-cmd" ,perl-ipc-cmd)
        ("perl-ipc-run3" ,perl-ipc-run3)
        ("perl-list-allutils" ,perl-list-allutils)