From bcb056a18920c8e7eb33b1735e4e7cf5499fc2e9 Mon Sep 17 00:00:00 2001 From: Zhu Zihao Date: Sun, 14 Feb 2021 21:52:35 +0800 Subject: [PATCH] gnu: opencc: Update to 1.1.1. * gnu/packages/textutils.scm(opencc): Update to 1.1.1 [source]: Add new patch. [arguments]: Build in source tree. : Disable. : In "patch-3rd-party-references", fix the version of dependency. Add phases "patch-python-binding-installation", "install-python-binding" and "enable-bytecode-determinism". [native-inputs]: Add python-setuptools and python-wheel. * gnu/packages/patches/opencc-py-binding-dont-rebuild.patch: New file. * gnu/local.mk(dist_patch_DATA): Add new entry. --- gnu/local.mk | 1 + .../opencc-py-binding-dont-rebuild.patch | 13 +++++ gnu/packages/textutils.scm | 58 ++++++++++++++++--- 3 files changed, 63 insertions(+), 9 deletions(-) create mode 100644 gnu/packages/patches/opencc-py-binding-dont-rebuild.patch diff --git a/gnu/local.mk b/gnu/local.mk index 7b6cd8e0ae..9d9d394d84 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1419,6 +1419,7 @@ dist_patch_DATA = \ %D%/packages/patches/omake-fix-non-determinism.patch \ %D%/packages/patches/openbabel-fix-crash-on-nwchem-output.patch \ %D%/packages/patches/opencascade-oce-glibc-2.26.patch \ + %D%/packages/patches/opencc-py-binding-dont-rebuild.patch \ %D%/packages/patches/opencv-fix-build-of-grfmt_jpeg2000.cpp.patch \ %D%/packages/patches/opencv-rgbd-aarch64-test-fix.patch \ %D%/packages/patches/opendht-fix-jami.patch \ diff --git a/gnu/packages/patches/opencc-py-binding-dont-rebuild.patch b/gnu/packages/patches/opencc-py-binding-dont-rebuild.patch new file mode 100644 index 0000000000..d1140489db --- /dev/null +++ b/gnu/packages/patches/opencc-py-binding-dont-rebuild.patch @@ -0,0 +1,13 @@ +This patch prevents the rebuild of OpenCC while installing the python binding. + +Author: Zhu Zihao +--- a/python/setup.py ++++ b/python/setup.py +@@ -195,7 +195,6 @@ + 'clib/share/opencc/*', + ]}, + cmdclass={ +- 'build_py': BuildPyCommand, + 'bdist_wheel': BDistWheelCommand + }, + diff --git a/gnu/packages/textutils.scm b/gnu/packages/textutils.scm index 34da04d0d8..e10cfd5615 100644 --- a/gnu/packages/textutils.scm +++ b/gnu/packages/textutils.scm @@ -60,6 +60,7 @@ #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) + #:use-module (gnu packages python-build) #:use-module (gnu packages python-xyz) #:use-module (gnu packages readline) #:use-module (gnu packages slang) @@ -1051,36 +1052,75 @@ OpenDocument presentations (*.odp).") (define-public opencc (package (name "opencc") - (version "1.0.5") + (version "1.1.1") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/BYVoid/OpenCC") - (commit (string-append "ver." version)))) + (url "https://github.com/BYVoid/OpenCC") + (commit (string-append "ver." version)))) (file-name (git-file-name name version)) (sha256 (base32 - "1pv5md225qwhbn8ql932zdg6gh1qlx3paiajaks8gfsa07yzvhr4")) + "07y0pvxjlmpcnym229j87qcfwnfm7vi10dad0a20xy6as55a9j3d")) (modules '((guix build utils))) (snippet '(begin ;; TODO: Unbundle tclap, darts-clone, gtest - (delete-file-recursively "deps/rapidjson-0.11") #t)))) + (delete-file-recursively "deps/rapidjson-1.1.0") #t)) + (patches (search-patches "opencc-py-binding-dont-rebuild.patch")))) (build-system cmake-build-system) (arguments - '(#:phases + ;; Required to locate the install script properly. + `(#:out-of-source? #f + #:parallel-build? #f ;occasionally failed. + #:imported-modules + (,@%cmake-build-system-modules + (guix build python-build-system)) + #:modules ((guix build cmake-build-system) + ((guix build python-build-system) #:prefix python:) + (guix build utils)) + #:phases (modify-phases %standard-phases (add-after 'unpack 'patch-3rd-party-references (lambda* (#:key inputs #:allow-other-keys) (let ((rapidjson (assoc-ref inputs "rapidjson"))) (substitute* "src/CMakeLists.txt" - (("../deps/rapidjson-0.11") + (("../deps/rapidjson-1.1.0") (string-append rapidjson "/include/rapidjson"))) - #t)))))) + #t))) + (add-before 'configure 'patch-python-binding-installation + (lambda* (#:key outputs inputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (substitute* "python/opencc/__init__.py" + (("(_libopenccfile =).*$" _ prefix) + (format #f "~a os.path.join('~a/lib', _libopenccfilename)~%" + prefix out)) + (("(_opencc_share_dir =).*$" _ prefix) + (format #f "~a '~a/share/opencc'~%" prefix out)))) + #t)) + (add-after 'install 'install-python-binding + (lambda* (#:key outputs inputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (dist (string-append + out "/lib/python" + ,(version-major+minor (package-version python)) + "/site-packages"))) + (chdir "python") + (mkdir-p dist) + (setenv "PYTHONPATH" + (string-append dist ":" (getenv "PYTHONPATH"))) + (invoke "python" "setup.py" "install" + "--root=/" "--single-version-externally-managed" + (string-append "--prefix=" out)) + #t))) + (add-before 'install-python-binding 'enable-bytecode-determinism + (assoc-ref python:%standard-phases 'enable-bytecode-determinism))))) (native-inputs `(("python" ,python-wrapper) - ("rapidjson" ,rapidjson))) + ("rapidjson" ,rapidjson) + ("python-setuptools" ,python-setuptools) + ("python-wheel" ,python-wheel))) (home-page "https://github.com/BYVoid/OpenCC") (synopsis "Convert between Traditional Chinese and Simplified Chinese") (description "Open Chinese Convert (OpenCC) converts between Traditional -- 2.30.0