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 +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)