Package: guix-patches;
Reported by: Wiktor Żelazny <wz <at> freeshell.de>
Date: Mon, 22 Aug 2022 09:36:02 UTC
Severity: normal
Tags: patch
Message #38 received at 57337 <at> debbugs.gnu.org (full text, mbox):
From: Wiktor Żelazny <wz <at> freeshell.de> To: 57337 <at> debbugs.gnu.org Cc: ludo <at> gnu.org Subject: [v2 2/2] gnu: Add docxbox. Date: Mon, 26 Dec 2022 15:57:32 +0100
* gnu/packages/textutils.scm (docxbox): New variable. --- gnu/packages/textutils.scm | 76 +++++++++++++++++++++++++++++++++++++- 1 file changed, 75 insertions(+), 1 deletion(-) diff --git a/gnu/packages/textutils.scm b/gnu/packages/textutils.scm index 151add964e..6c3cb2695b 100644 --- a/gnu/packages/textutils.scm +++ b/gnu/packages/textutils.scm @@ -58,6 +58,7 @@ (define-module (gnu packages textutils) #:use-module (gnu packages autotools) #:use-module (gnu packages base) #:use-module (gnu packages compression) + #:use-module (gnu packages cpp) #:use-module (gnu packages gcc) #:use-module (gnu packages golang) #:use-module (gnu packages gettext) @@ -74,7 +75,8 @@ (define-module (gnu packages textutils) #:use-module (gnu packages ruby) #:use-module (gnu packages slang) #:use-module (gnu packages syncthing) - #:use-module (gnu packages web)) + #:use-module (gnu packages web) + #:use-module (gnu packages xml)) (define-public dos2unix (package @@ -1522,3 +1524,75 @@ (define-public ack easily specify file types, match highlighting, Perl-Compatible Regular Expressions, and being faster to type than grep.") (license license:artistic2.0))) + +(define-public docxbox + (let ((commit "7c09cfdfd055fedf72676250eae8f03bb8ef7ed5") + (revision "1")) + (package + (name "docxbox") + (version (git-version "0.0.5" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/gyselroth/docxbox") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0irccm5siy7k6kjnrmm9pxc4cmc3l30377kqpp6vd6y21nk7yc4w")) + (modules '((guix build utils))) + (snippet '(begin + (for-each delete-file-recursively + '("bin" "vendor/json" "vendor/miniz-cpp" + "vendor/tinyxml2")))))) + (build-system cmake-build-system) + ;; (native-inputs (list bats)) ; Enable after fixing tests, use bash module + (inputs `(("json-modern-cxx" ,json-modern-cxx) + ("miniz-cpp" ,miniz-cpp) + ("tinyxml2-source" ,(package-source tinyxml2)))) + (arguments + `(#:phases (modify-phases %standard-phases + (add-after 'unpack 'unvendor + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "CMakeLists.txt" + (("vendor/miniz-cpp/zip_file.hpp") + "")) + (with-directory-excursion "docxbox" + (substitute* (find-files "." "\\.(cc|h)$") + (("#include <vendor/json/single_include/") + "#include <")) + (substitute* (find-files "." "\\.hpp$") + (("#include <vendor/miniz-cpp/") + "#include <"))))) + (add-after 'unpack 'unpack-tinyxml2 + (lambda* (#:key inputs #:allow-other-keys) + (mkdir-p "vendor/tinyxml2") + (copy-recursively (assoc-ref inputs "tinyxml2-source") + "vendor/tinyxml2"))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin"))) + (install-file "bin/linux/docxbox" bin))))) + #:configure-flags (let* ((out (assoc-ref %outputs "out"))) + '("-DCMAKE_CXX_FLAGS=-fpermissive -Wno-error")) + ;; Tests depend on a bundled binary in bin/linux/, and even with the + ;; binary in place, I could not get them to run. To my understanding, + ;; the setup() function in test/functional/_helper.bash is supposed to + ;; copy the binary to the test suite directory. However, this does not + ;; seem to happen when invoking ./test.sh (make check is not + ;; supported), and the script complains about the missing binary in the + ;; directory. The fix could be to copy the binary built by the Guix + ;; daemon to the test suite directory before invoking ./test.sh, but + ;; this is beyond my skills. + #:tests? #f)) + (home-page "https://github.com/gyselroth/docxbox/") + (synopsis "Command-line tool for MS Word @file{.docx} templating and +analysis") + (description + "@command{docxbox} enables direct and convenient inspection and +manipulation of XML and media files making up a @file{.docx} file. The +capabilities include batch editing, unpacking and indentation for manual +editing in a text editor and subsequent unindentation and repacking, +operations on metadata, and diffing") + (license license:expat)))) -- 2.38.1
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.