gnu: Add openjade.

* gnu/packages/xml.scm (openjade): New variable.
This commit is contained in:
Maxim Cournoyer 2018-07-02 11:51:36 -04:00
parent 315d42e1f4
commit bf3ec2eb51
No known key found for this signature in database
GPG key ID: 1260E46482E63562

View file

@ -368,6 +368,86 @@ (define-public libxslt
based on libxml for XML parsing, tree manipulation and XPath support.")
(license license:x11)))
(define-public openjade
(package
(name "openjade")
(version "1.3.2")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/openjade/openjade/"
version "/" name "-" version ".tar.gz"))
(sha256
(base32
"1l92sfvx1f0wmkbvzv1385y1gb3hh010xksi1iyviyclrjb7jb8x"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
(list (string-append "--enable-spincludedir="
(assoc-ref %build-inputs "opensp")
"/include/OpenSP")
(string-append "--enable-splibdir="
(assoc-ref %build-inputs "opensp") "/lib")
;; Workaround segfaults in OpenJade (see:
;; https://bugs.launchpad.net/ubuntu/+source/openjade/+bug/1869734).
"CXXFLAGS=-O0")
#:parallel-build? #f ;build fails otherwise
;; The test suite fails with diff errors between the actual and
;; expected results, like: (char<? #\a #\A) returning #t rather than
;; #f (see: https://sourceforge.net/p/openjade/bugs/150/).
#:tests? #f
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'replace-deprecated-getopt
;; See: https://sourceforge.net/p/openjade/bugs/140/.
(lambda _
(substitute* "msggen.pl"
(("use POSIX;") "use POSIX;\nuse Getopt::Std;")
(("do 'getopts.pl';") "")
(("&Getopts") "getopts"))
#t))
(add-after 'replace-deprecated-getopt 'fix-locale-lookup
;; See: https://sourceforge.net/p/openjade/bugs/149/.
(lambda _
(substitute* "testsuite/expr-lang.dsl"
(("\\(language \"EN\" \"US\"\\)")
"(language \"EN\" \"US.UTF-8\")"))
#t))
(add-after 'install 'install-doc
(lambda* (#:key outputs #:allow-other-keys)
;; TODO: Generate the manpage from source, with
;; openjade-bootstrap and jadetex. See the file docsrc/Makefile.
(let* ((out (assoc-ref outputs "out"))
(man1 (string-append out "/share/man/man1")))
(install-file "docsrc/openjade.1" man1)
#t)))
(add-after 'install-doc 'install-dtds
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(dtd (string-append out "/sgml/dtd")))
(mkdir-p dtd)
(copy-recursively "dsssl" dtd)
#t)))
(delete 'check)
(add-after 'install 'check
(lambda* (#:key tests? out #:allow-other-keys)
(if tests?
(with-directory-excursion "testsuite"
(invoke "make"))
(format #t "test suite not run~%"))
#t)))))
(inputs
`(("opensp" ,opensp)))
(native-inputs
`(("perl" ,perl)))
(home-page "http://openjade.sourceforge.net/")
(synopsis "ISO/IEC 10179:1996 standard DSSSL language implementation")
(description "OpenJade is an implementation of Document Style Semantics
and Specification Language (DSSSL), a style language to format SGML or XML
documents. It contains backends for various formats such as RTF, HTML, TeX,
MIF, SGML2SGML, and FOT.")
(license (license:non-copyleft "file://COPYING"
"See COPYING in the distribution."))))
(define-public perl-graph-readwrite
(package
(name "perl-graph-readwrite")