gnu: Add bidiv.
* gnu/packages/fribidi.scm (bidiv): New variable. * gnu/packages/patches/bidiv-update-fribidi.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it.
This commit is contained in:
parent
90beb0ed45
commit
b5ffcbe1af
@ -759,6 +759,7 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/beignet-correct-file-names.patch \
|
||||
%D%/packages/patches/benchmark-unbundle-googletest.patch \
|
||||
%D%/packages/patches/biber-fix-encoding-write.patch \
|
||||
%D%/packages/patches/bidiv-update-fribidi.patch \
|
||||
%D%/packages/patches/binutils-boot-2.20.1a.patch \
|
||||
%D%/packages/patches/binutils-loongson-workaround.patch \
|
||||
%D%/packages/patches/blender-2.79-newer-ffmpeg.patch \
|
||||
|
@ -1,6 +1,6 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2014 Marek Benc <merkur32@gmail.com>
|
||||
;;; Copyright © 2016, 2019 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2016, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
@ -54,3 +54,55 @@ or right-to-left ordering as necessary.")
|
||||
(source
|
||||
(origin (inherit (package-source fribidi))
|
||||
(patches (search-patches "fribidi-CVE-2019-18397.patch"))))))
|
||||
|
||||
(define-public bidiv
|
||||
(package
|
||||
(name "bidiv")
|
||||
(version "1.5")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://debian/pool/main/b/bidiv/bidiv_"
|
||||
version ".orig.tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"05p5m2ihxbmc1qsgs8rjlww08fy9859fhl7xf196p8g5qygqd7cv"))
|
||||
(patches (search-patches "bidiv-update-fribidi.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(delete 'configure) ; no configure
|
||||
(add-after 'unpack 'misc-fixes
|
||||
(lambda _
|
||||
(substitute* "bidiv.c"
|
||||
(("FriBidiCharType") "FriBidiParType")
|
||||
(("&c") "(char *)&c"))
|
||||
#t))
|
||||
;; We don't want to use the handwritten makefile
|
||||
(replace 'build
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let ((fribidi (assoc-ref inputs "fribidi")))
|
||||
(invoke "gcc" "-o" "bidiv" "bidiv.c"
|
||||
;; pkg-config --cflags fribidi
|
||||
(string-append "-I" fribidi "/include/fribidi")
|
||||
;; pkg-config --libs fribidi
|
||||
(string-append "-L" fribidi "/lib") "-lfribidi"))))
|
||||
(replace 'install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(bin (string-append out "/bin"))
|
||||
(man (string-append out "/share/man/man1")))
|
||||
(install-file "bidiv" bin)
|
||||
(install-file "bidiv.1" man))
|
||||
#t)))
|
||||
#:tests? #f)) ; no tests
|
||||
(inputs
|
||||
`(("fribidi" ,fribidi)))
|
||||
(home-page "https://tracker.debian.org/pkg/bidiv")
|
||||
(synopsis "BiDi viewer - command-line tool displaying logical Hebrew/Arabic")
|
||||
(description "bidiv is a simple utility for converting logical-Hebrew input
|
||||
to visual-Hebrew output. This is useful for reading Hebrew mail messages,
|
||||
viewing Hebrew texts, etc. It was written for Hebrew but Arabic (or other BiDi
|
||||
languages) should work equally well.")
|
||||
(license gpl2+)))
|
||||
|
50
gnu/packages/patches/bidiv-update-fribidi.patch
Normal file
50
gnu/packages/patches/bidiv-update-fribidi.patch
Normal file
@ -0,0 +1,50 @@
|
||||
https://sources.debian.org/data/main/b/bidiv/1.5-6/debian/patches/fribidi_019
|
||||
|
||||
Description: Fix building with fribidi 1.9
|
||||
Author: أحمد المحمودي <aelmahmoudy@users.sourceforge.net>
|
||||
Bug-Debian: http://bugs.debian.org/568130
|
||||
|
||||
--- a/bidiv.c
|
||||
+++ b/bidiv.c
|
||||
@@ -141,8 +141,9 @@ bidiv(FILE *fp)
|
||||
*/
|
||||
if(c1<0x80||c1>0xbf){
|
||||
ungetc(c1, fp);
|
||||
- unicode_in[len]=
|
||||
- fribidi_iso8859_8_to_unicode_c(c);
|
||||
+ fribidi_charset_to_unicode(
|
||||
+ FRIBIDI_CHAR_SET_ISO8859_8,
|
||||
+ &c, 1, &unicode_in[len]);
|
||||
} else
|
||||
unicode_in[len]=((c & 037) << 6) + (c1 & 077);
|
||||
newline=0;
|
||||
@@ -153,8 +154,9 @@ bidiv(FILE *fp)
|
||||
In the future we will have a language
|
||||
option, which will control this (as well
|
||||
as the output encoding). */
|
||||
- unicode_in[len]=
|
||||
- fribidi_iso8859_8_to_unicode_c(c);
|
||||
+ fribidi_charset_to_unicode(
|
||||
+ FRIBIDI_CHAR_SET_ISO8859_8,
|
||||
+ &c, 1, &unicode_in[len]);
|
||||
#else
|
||||
in[len]=c;
|
||||
#endif
|
||||
@@ -206,11 +208,11 @@ bidiv(FILE *fp)
|
||||
rtl_line=0;
|
||||
|
||||
if(out_utf8)
|
||||
- fribidi_unicode_to_utf8(unicode_out, len,
|
||||
- out);
|
||||
+ fribidi_unicode_to_charset(FRIBIDI_CHAR_SET_UTF8,
|
||||
+ unicode_out, len, out);
|
||||
else
|
||||
- fribidi_unicode_to_iso8859_8(unicode_out, len,
|
||||
- out);
|
||||
+ fribidi_unicode_to_charset(FRIBIDI_CHAR_SET_ISO8859_8,
|
||||
+ unicode_out, len, out);
|
||||
/* if rtl_line (i.e., base_dir is RL), and we didn't fill the
|
||||
entire width, we need to pad with spaces. Maybe in the
|
||||
future this should be an option.
|
||||
--
|
||||
|
Loading…
Reference in New Issue
Block a user