[PATCH] gnu: libreoffice: Fix access to python modules.

  • Done
  • quality assurance status badge
Details
2 participants
  • Ludovic Courtès
  • Nicolas Graves
Owner
unassigned
Submitted by
Nicolas Graves
Severity
normal
N
N
Nicolas Graves wrote on 31 Mar 2023 12:09
(address . guix-patches@gnu.org)(address . ngraves@ngraves.fr)
20230331100902.3866-1-ngraves@ngraves.fr
* gnu/packages/libreoffice.scm (libreoffice): Fix access to python modules.
---
gnu/packages/libreoffice.scm | 38 ++++++++++++++++++++++++++++++++++--
1 file changed, 36 insertions(+), 2 deletions(-)

Toggle diff (79 lines)
diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm
index 3d3e6d18dc..48689b9342 100644
--- a/gnu/packages/libreoffice.scm
+++ b/gnu/packages/libreoffice.scm
@@ -13,6 +13,7 @@
;;; Copyright © 2018, 2020 Jonathan Brielmaier <jonathan.brielmaier@web.de>
;;; Copyright © 2019 Chris Marusich <cmmarusich@gmail.com>
;;; Copyright © 2020 Marcin Karpezo <sirmacik@wioo.waw.pl>
+;;; Copyright © 2023 Nicolas Graves <ngraves@ngraves.fr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -912,6 +913,11 @@ (define-public libreoffice
(build-system glib-or-gtk-build-system)
(arguments
(list
+ #:imported-modules `((guix build python-build-system)
+ ,@%glib-or-gtk-build-system-modules)
+ #:modules `(((guix build python-build-system) #:select (python-version))
+ (ice-9 textual-ports)
+ ,@%glib-or-gtk-build-system-modules)
#:tests? #f ; Building the tests already fails.
#:phases
#~(modify-phases %standard-phases
@@ -975,7 +981,12 @@ (define-public libreoffice
;; Create 'soffice' and 'libreoffice' symlinks to the executable
;; script.
(lambda _
- (let ((out #$output))
+ (let* ((out #$output)
+ (python-libdir
+ (string-append out "/lib/python"
+ (python-version
+ #$(this-package-input "python"))
+ "/site-packages/")))
(define (symlink-output src dst)
(mkdir-p (dirname (string-append out dst)))
(symlink (string-append out src) (string-append out dst)))
@@ -1001,6 +1012,24 @@ (define (install-appdata app)
"sysui/desktop/appstream-appdata/"
"libreoffice-" app ".appdata.xml")
(string-append out "/share/appdata")))
+ (define (install-python-script name)
+ (with-input-from-file
+ (string-append out "/lib/libreoffice/program/" name ".py")
+ (lambda _
+ (let ((file (get-string-all (current-input-port))))
+ (with-output-to-file
+ (string-append python-libdir name ".py")
+ (lambda _
+ (format (current-output-port) "~a"
+ (string-append
+ "import sys, os\n"
+ "sys.path.append('"
+ out "/lib/libreoffice/program" "')\n"
+ "os.putenv('URE_BOOTSTRAP', 'vnd.sun.star.pathname:"
+ out "/lib/libreoffice/program/fundamentalrc')\n\n"
+ file)))))))
+ (delete-file
+ (string-append out "/lib/libreoffice/program/" name ".py")))
(symlink-output "/lib/libreoffice/program/soffice"
"/bin/soffice")
(symlink-output "/lib/libreoffice/program/soffice"
@@ -1015,7 +1044,12 @@ (define (install-appdata app)
'("base" "calc" "draw" "impress" "writer"))
(mkdir-p (string-append out "/share/icons/hicolor"))
(copy-recursively "sysui/desktop/icons/hicolor"
- (string-append out "/share/icons/hicolor"))))))
+ (string-append out "/share/icons/hicolor"))
+ (mkdir-p python-libdir)
+ (for-each install-python-script
+ '("access2base" "mailmerge" "msgbox" "officehelper"
+ "pythonloader" "pythonscript" "scriptforge"
+ "unohelper" "uno"))))))
#:configure-flags
#~(list
"--enable-release-build"
--
2.39.2
L
L
Ludovic Courtès wrote on 18 Jun 2023 23:08
(name . Nicolas Graves)(address . ngraves@ngraves.fr)(address . 62567-done@debbugs.gnu.org)
87ilbkpjgf.fsf@gnu.org
Hi,

Nicolas Graves <ngraves@ngraves.fr> skribis:

Toggle quote (2 lines)
> * gnu/packages/libreoffice.scm (libreoffice): Fix access to python modules.

Finally applied, thanks!

Ludo’.
Closed
?
Your comment

This issue is archived.

To comment on this conversation send an email to 62567@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 62567
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch