all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* [bug#73439] [PATCH 00/10] Update libreoffice to its latest version.
@ 2024-09-23 12:15 Nicolas Graves via Guix-patches via
  2024-09-23 12:37 ` [bug#73439] [PATCH 01/10] import: Add %libreoffice-updater Nicolas Graves via Guix-patches via
                   ` (7 more replies)
  0 siblings, 8 replies; 51+ messages in thread
From: Nicolas Graves via Guix-patches via @ 2024-09-23 12:15 UTC (permalink / raw)
  To: 73439; +Cc: Nicolas Graves

This patch series updates libreoffice to its latest version. I used
local builds of derivations with ccache
(https://issues.guix.gnu.org/68315) to test developping and updating a
big package incrementally. Some commits can be squashed, but I think
we should at least keep separate 24.2.0.3, 24.2.6.2, 24.8.1.2. It also
adds an updater for the libreoffice package.

Nicolas Graves (10):
  import: Add %libreoffice-updater.
  gnu: libreoffice: Update to 24.2.0.3.
  gnu: libreoffice: Update to 24.2.1.2.
  gnu: libreoffice: Update to 24.2.2.2.
  gnu: libreoffice: Update to 24.2.3.2.
  gnu: libreoffice: Update to 24.2.4.2.
  gnu: libreoffice: Update to 24.2.5.2.
  gnu: libreoffice: Update to 24.2.6.2.
  gnu: libreoffice: Update to 24.8.1.2.
  gnu: hunspell-dictionaries: Update to  24.8.1.2.

 Makefile.am                  |  1 +
 gnu/packages/hunspell.scm    |  7 ++-
 gnu/packages/libreoffice.scm | 29 ++++++++---
 guix/import/libreoffice.scm  | 98 ++++++++++++++++++++++++++++++++++++
 4 files changed, 125 insertions(+), 10 deletions(-)
 create mode 100644 guix/import/libreoffice.scm

-- 
2.46.0





^ permalink raw reply	[flat|nested] 51+ messages in thread

* [bug#73439] [PATCH 01/10] import: Add %libreoffice-updater.
  2024-09-23 12:15 [bug#73439] [PATCH 00/10] Update libreoffice to its latest version Nicolas Graves via Guix-patches via
@ 2024-09-23 12:37 ` Nicolas Graves via Guix-patches via
  2024-09-23 12:37   ` [bug#73439] [PATCH 02/10] gnu: libreoffice: Update to 24.2.0.3 Nicolas Graves via Guix-patches via
                     ` (8 more replies)
  2024-09-23 18:35 ` [bug#73439] [PATCH 00/10] Update libreoffice to its latest version Liliana Marie Prikler
                   ` (6 subsequent siblings)
  7 siblings, 9 replies; 51+ messages in thread
From: Nicolas Graves via Guix-patches via @ 2024-09-23 12:37 UTC (permalink / raw)
  To: 73439; +Cc: Nicolas Graves

Change-Id: I481b1175db531c4fea4a57838fe190f679cd1a85
---
 Makefile.am                 |  1 +
 guix/import/libreoffice.scm | 98 +++++++++++++++++++++++++++++++++++++
 2 files changed, 99 insertions(+)
 create mode 100644 guix/import/libreoffice.scm

diff --git a/Makefile.am b/Makefile.am
index e9801283f8..e4e4fb5a19 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -306,6 +306,7 @@ MODULES =					\
   guix/import/json.scm				\
   guix/import/kde.scm				\
   guix/import/launchpad.scm   			\
+  guix/import/libreoffice.scm 			\
   guix/import/minetest.scm   			\
   guix/import/npm-binary.scm			\
   guix/import/opam.scm				\
diff --git a/guix/import/libreoffice.scm b/guix/import/libreoffice.scm
new file mode 100644
index 0000000000..65d20f0432
--- /dev/null
+++ b/guix/import/libreoffice.scm
@@ -0,0 +1,98 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2024 Nicolas Graves <ngraves@ngraves.fr>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (guix import libreoffice)
+  #:use-module (web client)
+  #:use-module (sxml match)
+  #:use-module (sxml simple)
+  #:use-module (guix i18n)
+  #:use-module (guix diagnostics)
+  #:use-module (guix packages)
+  #:use-module (guix upstream)
+  #:use-module (guix utils)
+  #:use-module (ice-9 textual-ports)
+  #:use-module (srfi srfi-26)
+  #:use-module (srfi srfi-71)
+  #:export (%libreoffice-updater))
+
+(define archive-prefix
+  "https://downloadarchive.documentfoundation.org/libreoffice/old/")
+(define libreoffice-latest-url (string-append archive-prefix "latest/src/"))
+
+(define (libreoffice-latest-version)
+  (let* ((response port (http-get libreoffice-latest-url
+                                  #:streaming? #t))
+         (content (get-string-all port))
+         ;; xml->sxml is not flexible enough for html.
+         ;; For instance, <img> tags don't have closing </img>.
+         ;; This trick preprocesses html to extract all <a> tags in
+         ;; a <body> wrapper, which sxml-match can handle well.
+         (xml (xml->sxml
+               (string-append
+                "<body><"
+                (string-join
+                 (filter (cute string-prefix? "a " <>)
+                         (string-split content #\<))
+                 "</a><")
+                "></a></body>")
+               #:trim-whitespace? #t)))
+    (sxml-match
+     xml
+     ((*TOP*
+       (body
+        (a (@ (href "?C=N;O=D")) "Name")
+        (a (@ (href "?C=M;O=A")) "Last modified")
+        (a (@ (href "?C=S;O=A")) "Size")
+        (a (@ (href "/libreoffice/old/latest/")) "Parent Directory")
+        (a (@ (href ,link)) ,name)
+        . ,rest))
+      (if (and (string-prefix? "libreoffice-" name)
+               (string-suffix? ".tar.xz" name))
+          (string-drop
+           (string-drop-right name (string-length ".tar.xz"))
+           (string-length "libreoffice-"))
+          (raise
+           (formatted-message (G_ "Could not extract version from '~a'")
+                              name)))))))
+
+(define* (latest-release package #:key (version #f))
+  "Return an <upstream-source> for the latest-release of PACKAGE."
+  (let* ((name (package-name package))
+         (version (or version (libreoffice-latest-version))))
+    (upstream-source
+     (package name)
+     (version version)
+     (urls (list
+            (string-append
+             archive-prefix version "/src/libreoffice-" version ".tar.xz")
+            (string-append
+             "https://download.documentfoundation.org/libreoffice/src/"
+             (version-prefix version 3) "/libreoffice-" version ".tar.xz"))))))
+
+(define (libreoffice-package? package)
+  "Return true if PACKAGE is LibreOffice."
+  (string=? (package-name package) "libreoffice"))
+
+(define %libreoffice-updater
+  (upstream-updater
+   (name 'libreoffice)
+   (description "Updater for Libreoffice package")
+   (pred libreoffice-package?)
+   (import latest-release)))
+
+;; libreoffice.scm ends here.
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 51+ messages in thread

* [bug#73439] [PATCH 02/10] gnu: libreoffice: Update to 24.2.0.3.
  2024-09-23 12:37 ` [bug#73439] [PATCH 01/10] import: Add %libreoffice-updater Nicolas Graves via Guix-patches via
@ 2024-09-23 12:37   ` Nicolas Graves via Guix-patches via
  2024-09-23 12:37   ` [bug#73439] [PATCH 03/10] gnu: libreoffice: Update to 24.2.1.2 Nicolas Graves via Guix-patches via
                     ` (7 subsequent siblings)
  8 siblings, 0 replies; 51+ messages in thread
From: Nicolas Graves via Guix-patches via @ 2024-09-23 12:37 UTC (permalink / raw)
  To: 73439; +Cc: Nicolas Graves

* gnu/packages/libreoffice.scm (libreoffice): Update to 24.2.0.3.

Change-Id: I72e0ebb4d075c47ea168b181f969a97f9249150a
---
 gnu/packages/libreoffice.scm | 29 +++++++++++++++++++++++------
 1 file changed, 23 insertions(+), 6 deletions(-)

diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm
index ed8dfd432b..70167d11ea 100644
--- a/gnu/packages/libreoffice.scm
+++ b/gnu/packages/libreoffice.scm
@@ -63,6 +63,7 @@ (define-module (gnu packages libreoffice)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages game-development)
+  #:use-module (gnu packages gcc)
   #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
@@ -80,6 +81,7 @@ (define-module (gnu packages libreoffice)
   #:use-module (gnu packages maths)
   #:use-module (gnu packages nss)
   #:use-module (gnu packages openldap)
+  #:use-module (gnu packages password-utils)
   #:use-module (gnu packages pdf)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages perl-compression)
@@ -891,16 +893,20 @@ (define dtoa
 (define-public libreoffice
   (package
     (name "libreoffice")
-    (version "7.6.7.2")               ;keep in sync with hunspell dictionaries
+    (version "24.2.0.3")               ;keep in sync with hunspell dictionaries
     (source
      (origin
        (method url-fetch)
        (uri
-        (string-append
-         "https://download.documentfoundation.org/libreoffice/src/"
-         (version-prefix version 3) "/libreoffice-" version ".tar.xz"))
+        (list
+         (string-append
+          "https://download.documentfoundation.org/libreoffice/src/"
+          (version-prefix version 3) "/libreoffice-" version ".tar.xz")
+         (string-append
+          "https://downloadarchive.documentfoundation.org/libreoffice/old/"
+          version "/src/libreoffice-" version ".tar.xz")))
        (sha256
-        (base32 "159vbv4zhibfd4xjdamcqs4h0p3h5y79kcjwrmshvjhs23p55l3m"))))
+        (base32 "0s1m92rmizicd8jgxcjz0xsd79v148wkq0ac9yzz61x2ga8mdx0q"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      (list
@@ -961,6 +967,13 @@ (define-public libreoffice
                              "shell/source/unix/misc/senddoc.sh")
                 (("/usr/bin/xdg-open")
                  (search-input-file inputs "/bin/xdg-open")))
+
+              ;; Probably necessary because we use a custom GCC(>=12)/GLIBC.
+              (substitute* '("sal/rtl/math.cxx"
+                             "sc/source/core/tool/math.cxx")
+                (("std::(fe[gs]etround|feclearexcept|fetestexcept)" all suffix)
+                 suffix))
+
               (setenv "CPPFLAGS" "-std=c++17")))
           (add-after 'install 'reset-zip-timestamps
             (lambda _
@@ -1083,12 +1096,14 @@ (define (install-python-script name)
            cppunit
            flex
            frozen                       ;header-only library
+           gcc-12
            pkg-config
            python-wrapper
            which
            ziptime))
     (inputs
-     (list bluez
+     (list argon2
+           bluez
            boost
            box2d
            clucene
@@ -1100,6 +1115,7 @@ (define (install-python-script name)
            fontforge
            gconf
            glew
+           glibc
            glm
            gnupg
            gobject-introspection
@@ -1168,6 +1184,7 @@ (define (install-python-script name)
            xdg-utils
            xmlsec-nss
            zip
+           zxcvbn-c
            zxing-cpp))
     (home-page "https://www.libreoffice.org/")
     (synopsis "Office suite")
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 51+ messages in thread

* [bug#73439] [PATCH 03/10] gnu: libreoffice: Update to 24.2.1.2.
  2024-09-23 12:37 ` [bug#73439] [PATCH 01/10] import: Add %libreoffice-updater Nicolas Graves via Guix-patches via
  2024-09-23 12:37   ` [bug#73439] [PATCH 02/10] gnu: libreoffice: Update to 24.2.0.3 Nicolas Graves via Guix-patches via
@ 2024-09-23 12:37   ` Nicolas Graves via Guix-patches via
  2024-09-23 12:37   ` [bug#73439] [PATCH 04/10] gnu: libreoffice: Update to 24.2.2.2 Nicolas Graves via Guix-patches via
                     ` (6 subsequent siblings)
  8 siblings, 0 replies; 51+ messages in thread
From: Nicolas Graves via Guix-patches via @ 2024-09-23 12:37 UTC (permalink / raw)
  To: 73439; +Cc: Nicolas Graves

* gnu/packages/libreoffice.scm (libreoffice): Update to 24.2.1.2.

Change-Id: I2ad06be08ae76c3d37d46c816caf90a23a5a21e8
---
 gnu/packages/libreoffice.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm
index 70167d11ea..61e74e9909 100644
--- a/gnu/packages/libreoffice.scm
+++ b/gnu/packages/libreoffice.scm
@@ -893,7 +893,7 @@ (define dtoa
 (define-public libreoffice
   (package
     (name "libreoffice")
-    (version "24.2.0.3")               ;keep in sync with hunspell dictionaries
+    (version "24.2.1.2")               ;keep in sync with hunspell dictionaries
     (source
      (origin
        (method url-fetch)
@@ -906,7 +906,7 @@ (define-public libreoffice
           "https://downloadarchive.documentfoundation.org/libreoffice/old/"
           version "/src/libreoffice-" version ".tar.xz")))
        (sha256
-        (base32 "0s1m92rmizicd8jgxcjz0xsd79v148wkq0ac9yzz61x2ga8mdx0q"))))
+        (base32 "1a4zakrahmr86p9lmk19kyz810176wxpnmq6bbnmjl36ixz5gkrw"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      (list
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 51+ messages in thread

* [bug#73439] [PATCH 04/10] gnu: libreoffice: Update to 24.2.2.2.
  2024-09-23 12:37 ` [bug#73439] [PATCH 01/10] import: Add %libreoffice-updater Nicolas Graves via Guix-patches via
  2024-09-23 12:37   ` [bug#73439] [PATCH 02/10] gnu: libreoffice: Update to 24.2.0.3 Nicolas Graves via Guix-patches via
  2024-09-23 12:37   ` [bug#73439] [PATCH 03/10] gnu: libreoffice: Update to 24.2.1.2 Nicolas Graves via Guix-patches via
@ 2024-09-23 12:37   ` Nicolas Graves via Guix-patches via
  2024-09-23 12:37   ` [bug#73439] [PATCH 05/10] gnu: libreoffice: Update to 24.2.3.2 Nicolas Graves via Guix-patches via
                     ` (5 subsequent siblings)
  8 siblings, 0 replies; 51+ messages in thread
From: Nicolas Graves via Guix-patches via @ 2024-09-23 12:37 UTC (permalink / raw)
  To: 73439; +Cc: Nicolas Graves

* gnu/packages/libreoffice.scm (libreoffice): Update to 24.2.2.2.

Change-Id: I5ba7a472ea3741af96999ef4c7318c39a27b819b
---
 gnu/packages/libreoffice.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm
index 61e74e9909..f42ed64edc 100644
--- a/gnu/packages/libreoffice.scm
+++ b/gnu/packages/libreoffice.scm
@@ -893,7 +893,7 @@ (define dtoa
 (define-public libreoffice
   (package
     (name "libreoffice")
-    (version "24.2.1.2")               ;keep in sync with hunspell dictionaries
+    (version "24.2.2.2")               ;keep in sync with hunspell dictionaries
     (source
      (origin
        (method url-fetch)
@@ -906,7 +906,7 @@ (define-public libreoffice
           "https://downloadarchive.documentfoundation.org/libreoffice/old/"
           version "/src/libreoffice-" version ".tar.xz")))
        (sha256
-        (base32 "1a4zakrahmr86p9lmk19kyz810176wxpnmq6bbnmjl36ixz5gkrw"))))
+        (base32 "0pp4wnm434vxar79y9dm7qy66hqhhm5k84539ssr8p7n898ac1f2"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      (list
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 51+ messages in thread

* [bug#73439] [PATCH 05/10] gnu: libreoffice: Update to 24.2.3.2.
  2024-09-23 12:37 ` [bug#73439] [PATCH 01/10] import: Add %libreoffice-updater Nicolas Graves via Guix-patches via
                     ` (2 preceding siblings ...)
  2024-09-23 12:37   ` [bug#73439] [PATCH 04/10] gnu: libreoffice: Update to 24.2.2.2 Nicolas Graves via Guix-patches via
@ 2024-09-23 12:37   ` Nicolas Graves via Guix-patches via
  2024-09-23 12:37   ` [bug#73439] [PATCH 06/10] gnu: libreoffice: Update to 24.2.4.2 Nicolas Graves via Guix-patches via
                     ` (4 subsequent siblings)
  8 siblings, 0 replies; 51+ messages in thread
From: Nicolas Graves via Guix-patches via @ 2024-09-23 12:37 UTC (permalink / raw)
  To: 73439; +Cc: Nicolas Graves

* gnu/packages/libreoffice.scm (libreoffice): Update to 24.2.3.2.

Change-Id: I81794408cff93c2770861dd38d9afb7c8d6d8ddf
---
 gnu/packages/libreoffice.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm
index f42ed64edc..ec3d005c2a 100644
--- a/gnu/packages/libreoffice.scm
+++ b/gnu/packages/libreoffice.scm
@@ -893,7 +893,7 @@ (define dtoa
 (define-public libreoffice
   (package
     (name "libreoffice")
-    (version "24.2.2.2")               ;keep in sync with hunspell dictionaries
+    (version "24.2.3.2")               ;keep in sync with hunspell dictionaries
     (source
      (origin
        (method url-fetch)
@@ -906,7 +906,7 @@ (define-public libreoffice
           "https://downloadarchive.documentfoundation.org/libreoffice/old/"
           version "/src/libreoffice-" version ".tar.xz")))
        (sha256
-        (base32 "0pp4wnm434vxar79y9dm7qy66hqhhm5k84539ssr8p7n898ac1f2"))))
+        (base32 "0r0y92c7i42iiimzg9b1pyldnswh28j8p0lmilz7j1sxv2f0bqpn"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      (list
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 51+ messages in thread

* [bug#73439] [PATCH 06/10] gnu: libreoffice: Update to 24.2.4.2.
  2024-09-23 12:37 ` [bug#73439] [PATCH 01/10] import: Add %libreoffice-updater Nicolas Graves via Guix-patches via
                     ` (3 preceding siblings ...)
  2024-09-23 12:37   ` [bug#73439] [PATCH 05/10] gnu: libreoffice: Update to 24.2.3.2 Nicolas Graves via Guix-patches via
@ 2024-09-23 12:37   ` Nicolas Graves via Guix-patches via
  2024-09-23 12:37   ` [bug#73439] [PATCH 07/10] gnu: libreoffice: Update to 24.2.5.2 Nicolas Graves via Guix-patches via
                     ` (3 subsequent siblings)
  8 siblings, 0 replies; 51+ messages in thread
From: Nicolas Graves via Guix-patches via @ 2024-09-23 12:37 UTC (permalink / raw)
  To: 73439; +Cc: Nicolas Graves

* gnu/packages/libreoffice.scm (libreoffice): Update to 24.2.4.2.

Change-Id: Ia7a891c643885c7c4be5d9154fd3f7002f7c7cfb
---
 gnu/packages/libreoffice.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm
index ec3d005c2a..a43ce74deb 100644
--- a/gnu/packages/libreoffice.scm
+++ b/gnu/packages/libreoffice.scm
@@ -893,7 +893,7 @@ (define dtoa
 (define-public libreoffice
   (package
     (name "libreoffice")
-    (version "24.2.3.2")               ;keep in sync with hunspell dictionaries
+    (version "24.2.4.2")               ;keep in sync with hunspell dictionaries
     (source
      (origin
        (method url-fetch)
@@ -906,7 +906,7 @@ (define-public libreoffice
           "https://downloadarchive.documentfoundation.org/libreoffice/old/"
           version "/src/libreoffice-" version ".tar.xz")))
        (sha256
-        (base32 "0r0y92c7i42iiimzg9b1pyldnswh28j8p0lmilz7j1sxv2f0bqpn"))))
+        (base32 "10zfnmaxnkiwv0ryxbxyfs8199iw13picid6f1f5yb5ga2jq0ccy"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      (list
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 51+ messages in thread

* [bug#73439] [PATCH 07/10] gnu: libreoffice: Update to 24.2.5.2.
  2024-09-23 12:37 ` [bug#73439] [PATCH 01/10] import: Add %libreoffice-updater Nicolas Graves via Guix-patches via
                     ` (4 preceding siblings ...)
  2024-09-23 12:37   ` [bug#73439] [PATCH 06/10] gnu: libreoffice: Update to 24.2.4.2 Nicolas Graves via Guix-patches via
@ 2024-09-23 12:37   ` Nicolas Graves via Guix-patches via
  2024-09-23 12:37   ` [bug#73439] [PATCH 08/10] gnu: libreoffice: Update to 24.2.6.2 Nicolas Graves via Guix-patches via
                     ` (2 subsequent siblings)
  8 siblings, 0 replies; 51+ messages in thread
From: Nicolas Graves via Guix-patches via @ 2024-09-23 12:37 UTC (permalink / raw)
  To: 73439; +Cc: Nicolas Graves

* gnu/packages/libreoffice.scm (libreoffice): Update to 24.2.5.2.

Change-Id: I30a54911d16b242ba3b8bd8eace77a8bf22ef3d4
---
 gnu/packages/libreoffice.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm
index a43ce74deb..a5e26e5e55 100644
--- a/gnu/packages/libreoffice.scm
+++ b/gnu/packages/libreoffice.scm
@@ -893,7 +893,7 @@ (define dtoa
 (define-public libreoffice
   (package
     (name "libreoffice")
-    (version "24.2.4.2")               ;keep in sync with hunspell dictionaries
+    (version "24.2.5.2")               ;keep in sync with hunspell dictionaries
     (source
      (origin
        (method url-fetch)
@@ -906,7 +906,7 @@ (define-public libreoffice
           "https://downloadarchive.documentfoundation.org/libreoffice/old/"
           version "/src/libreoffice-" version ".tar.xz")))
        (sha256
-        (base32 "10zfnmaxnkiwv0ryxbxyfs8199iw13picid6f1f5yb5ga2jq0ccy"))))
+        (base32 "03halzc9w4z8pfs8krpswp2qzrqq9rhnmms8v8ny88am87vy85lw"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      (list
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 51+ messages in thread

* [bug#73439] [PATCH 08/10] gnu: libreoffice: Update to 24.2.6.2.
  2024-09-23 12:37 ` [bug#73439] [PATCH 01/10] import: Add %libreoffice-updater Nicolas Graves via Guix-patches via
                     ` (5 preceding siblings ...)
  2024-09-23 12:37   ` [bug#73439] [PATCH 07/10] gnu: libreoffice: Update to 24.2.5.2 Nicolas Graves via Guix-patches via
@ 2024-09-23 12:37   ` Nicolas Graves via Guix-patches via
  2024-09-23 12:37   ` [bug#73439] [PATCH 09/10] gnu: libreoffice: Update to 24.8.1.2 Nicolas Graves via Guix-patches via
  2024-09-23 12:37   ` [bug#73439] [PATCH 10/10] gnu: hunspell-dictionaries: " Nicolas Graves via Guix-patches via
  8 siblings, 0 replies; 51+ messages in thread
From: Nicolas Graves via Guix-patches via @ 2024-09-23 12:37 UTC (permalink / raw)
  To: 73439; +Cc: Nicolas Graves

* gnu/packages/libreoffice.scm (libreoffice): Update to 24.2.6.2.

Change-Id: I18046f093118f13d3617e7549f90fb0931c10d85
---
 gnu/packages/libreoffice.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm
index a5e26e5e55..a288136e06 100644
--- a/gnu/packages/libreoffice.scm
+++ b/gnu/packages/libreoffice.scm
@@ -893,7 +893,7 @@ (define dtoa
 (define-public libreoffice
   (package
     (name "libreoffice")
-    (version "24.2.5.2")               ;keep in sync with hunspell dictionaries
+    (version "24.2.6.2")               ;keep in sync with hunspell dictionaries
     (source
      (origin
        (method url-fetch)
@@ -906,7 +906,7 @@ (define-public libreoffice
           "https://downloadarchive.documentfoundation.org/libreoffice/old/"
           version "/src/libreoffice-" version ".tar.xz")))
        (sha256
-        (base32 "03halzc9w4z8pfs8krpswp2qzrqq9rhnmms8v8ny88am87vy85lw"))))
+        (base32 "1cqxw745kzm81b2nvfpl5n2sq1k9y25y596wvjsnaq394bq4vspn"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      (list
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 51+ messages in thread

* [bug#73439] [PATCH 09/10] gnu: libreoffice: Update to 24.8.1.2.
  2024-09-23 12:37 ` [bug#73439] [PATCH 01/10] import: Add %libreoffice-updater Nicolas Graves via Guix-patches via
                     ` (6 preceding siblings ...)
  2024-09-23 12:37   ` [bug#73439] [PATCH 08/10] gnu: libreoffice: Update to 24.2.6.2 Nicolas Graves via Guix-patches via
@ 2024-09-23 12:37   ` Nicolas Graves via Guix-patches via
  2024-09-23 12:37   ` [bug#73439] [PATCH 10/10] gnu: hunspell-dictionaries: " Nicolas Graves via Guix-patches via
  8 siblings, 0 replies; 51+ messages in thread
From: Nicolas Graves via Guix-patches via @ 2024-09-23 12:37 UTC (permalink / raw)
  To: 73439; +Cc: Nicolas Graves

* gnu/packages/libreoffice.scm (libreoffice): Update to 24.8.1.2.

Change-Id: I95ba7d5a5d1475b9c502051ecb076734a320c059
---
 gnu/packages/libreoffice.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm
index a288136e06..2d038cdf0d 100644
--- a/gnu/packages/libreoffice.scm
+++ b/gnu/packages/libreoffice.scm
@@ -893,7 +893,7 @@ (define dtoa
 (define-public libreoffice
   (package
     (name "libreoffice")
-    (version "24.2.6.2")               ;keep in sync with hunspell dictionaries
+    (version "24.8.1.2")               ;keep in sync with hunspell dictionaries
     (source
      (origin
        (method url-fetch)
@@ -906,7 +906,7 @@ (define-public libreoffice
           "https://downloadarchive.documentfoundation.org/libreoffice/old/"
           version "/src/libreoffice-" version ".tar.xz")))
        (sha256
-        (base32 "1cqxw745kzm81b2nvfpl5n2sq1k9y25y596wvjsnaq394bq4vspn"))))
+        (base32 "1rqii01i0295ch2xc9mddqpvlpjapk3m6nra4mhxfc38da1qci48"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      (list
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 51+ messages in thread

* [bug#73439] [PATCH 10/10] gnu: hunspell-dictionaries: Update to 24.8.1.2.
  2024-09-23 12:37 ` [bug#73439] [PATCH 01/10] import: Add %libreoffice-updater Nicolas Graves via Guix-patches via
                     ` (7 preceding siblings ...)
  2024-09-23 12:37   ` [bug#73439] [PATCH 09/10] gnu: libreoffice: Update to 24.8.1.2 Nicolas Graves via Guix-patches via
@ 2024-09-23 12:37   ` Nicolas Graves via Guix-patches via
  8 siblings, 0 replies; 51+ messages in thread
From: Nicolas Graves via Guix-patches via @ 2024-09-23 12:37 UTC (permalink / raw)
  To: 73439; +Cc: Nicolas Graves

* gnu/packages/hunspell.scm (hunspell-dictionaries): Update to 24.8.1.2.
(hunspell-ditionary)[source]<origin>: Change url, anongit returns
gateway http errors 504.

Change-Id: Ie7b548f1e7a2342fdde2aea3740e2634c0ba70e3
---
 gnu/packages/hunspell.scm | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/gnu/packages/hunspell.scm b/gnu/packages/hunspell.scm
index 8c076de3c4..09ada5a3d3 100644
--- a/gnu/packages/hunspell.scm
+++ b/gnu/packages/hunspell.scm
@@ -309,18 +309,17 @@ (define* (hunspell-dictionary dict-name full-name #:key synopsis home-page licen
                          (#\_ #\-)
                          (chr chr))
                        (string-downcase dict-name))))
-    (version "7.6.7.2")
+    (version "24.8.1.2")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url (string-append "https://anongit.freedesktop.org/git/"
-                                 "libreoffice/dictionaries.git/"))
+             (url "https://github.com/LibreOffice/dictionaries")
              (commit
               (string-append "libreoffice-" version))))
        (file-name (git-file-name "libreoffice-dictionaries" version))
        (sha256
-        (base32 "1f54z1kmpwv9s5a9jdgf97m43nhwbmsar0i6rri3qkgf3kkgz1f7"))))
+        (base32 "089w9i91wy2hx07vqkg0d65zr1k2mnwyijh4dhl6xbpcv20f6ayw"))))
     (build-system trivial-build-system)
     (native-inputs
      `(("source" ,source)))
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 51+ messages in thread

* [bug#73439] [PATCH 00/10] Update libreoffice to its latest version.
  2024-09-23 12:15 [bug#73439] [PATCH 00/10] Update libreoffice to its latest version Nicolas Graves via Guix-patches via
  2024-09-23 12:37 ` [bug#73439] [PATCH 01/10] import: Add %libreoffice-updater Nicolas Graves via Guix-patches via
@ 2024-09-23 18:35 ` Liliana Marie Prikler
  2024-09-24 14:29   ` Nicolas Graves via Guix-patches via
  2024-09-25  7:40 ` [bug#73439] [PATCH v2 1/5] import: Add %libreoffice-updater Nicolas Graves via Guix-patches via
                   ` (5 subsequent siblings)
  7 siblings, 1 reply; 51+ messages in thread
From: Liliana Marie Prikler @ 2024-09-23 18:35 UTC (permalink / raw)
  To: Nicolas Graves, 73439

Am Montag, dem 23.09.2024 um 14:15 +0200 schrieb Nicolas Graves:
> This patch series updates libreoffice to its latest version. I used
> local builds of derivations with ccache
> (https://issues.guix.gnu.org/68315) to test developping and updating
> a big package incrementally. Some commits can be squashed, but I
> think we should at least keep separate 24.2.0.3, 24.2.6.2, 24.8.1.2.
> It also adds an updater for the libreoffice package.
Why those steps?  Should we perhaps have multiple packages with some
older versions for the time being?

> Nicolas Graves (10):
>   import: Add %libreoffice-updater.
LGTM
>   gnu: libreoffice: Update to 24.2.0.3.
>   gnu: libreoffice: Update to 24.2.1.2.
>   gnu: libreoffice: Update to 24.2.2.2.
>   gnu: libreoffice: Update to 24.2.3.2.
>   gnu: libreoffice: Update to 24.2.4.2.
>   gnu: libreoffice: Update to 24.2.5.2.
>   gnu: libreoffice: Update to 24.2.6.2.
>   gnu: libreoffice: Update to 24.8.1.2.
>   gnu: hunspell-dictionaries: Update to  24.8.1.2.
As noted in the comment hunspell and libreoffice ought to be kept in
sync.  IIUC, this would mean updating hunspell-dictionaries in lockstep
with libreoffice on those intermediate steps as well, no?

Cheers




^ permalink raw reply	[flat|nested] 51+ messages in thread

* [bug#73439] [PATCH 00/10] Update libreoffice to its latest version.
  2024-09-23 18:35 ` [bug#73439] [PATCH 00/10] Update libreoffice to its latest version Liliana Marie Prikler
@ 2024-09-24 14:29   ` Nicolas Graves via Guix-patches via
  2024-09-24 17:03     ` Liliana Marie Prikler
  0 siblings, 1 reply; 51+ messages in thread
From: Nicolas Graves via Guix-patches via @ 2024-09-24 14:29 UTC (permalink / raw)
  To: Liliana Marie Prikler, 73439

On 2024-09-23 20:35, Liliana Marie Prikler wrote:

> Am Montag, dem 23.09.2024 um 14:15 +0200 schrieb Nicolas Graves:
>> This patch series updates libreoffice to its latest version. I used
>> local builds of derivations with ccache
>> (https://issues.guix.gnu.org/68315) to test developping and updating
>> a big package incrementally. Some commits can be squashed, but I
>> think we should at least keep separate 24.2.0.3, 24.2.6.2, 24.8.1.2.
>> It also adds an updater for the libreoffice package.
> Why those steps?  Should we perhaps have multiple packages with some
> older versions for the time being?

24.2.0.3 is a big update which adds packages and substitutions, I think
it's good to keep those changes in one commit.

On the libreoffice website, they have only two libreoffice downloads:
https://www.libreoffice.org/download/download-libreoffice

24.8.1.2 is the current stable release
24.2.6.2 is the previous stable release (~= LTS)

I don't see libreoffice bringing tremendous changes from version to
version, I'm not sure having two versions is necessary.

That said, it is very doable to have two with a -lts version.

>
>> Nicolas Graves (10):
>>   import: Add %libreoffice-updater.
> LGTM
>>   gnu: libreoffice: Update to 24.2.0.3.
>>   gnu: libreoffice: Update to 24.2.1.2.
>>   gnu: libreoffice: Update to 24.2.2.2.
>>   gnu: libreoffice: Update to 24.2.3.2.
>>   gnu: libreoffice: Update to 24.2.4.2.
>>   gnu: libreoffice: Update to 24.2.5.2.
>>   gnu: libreoffice: Update to 24.2.6.2.
>>   gnu: libreoffice: Update to 24.8.1.2.
>>   gnu: hunspell-dictionaries: Update to  24.8.1.2.
> As noted in the comment hunspell and libreoffice ought to be kept in
> sync.  IIUC, this would mean updating hunspell-dictionaries in lockstep
> with libreoffice on those intermediate steps as well, no?

I haven't delved that deep in this but I think it's not necessary. The
reason is that they are mostly dictionaries whose updates are
uncorrelated to what's happenning in libreoffice itself but rather edge
cases in languages.  They are unlikely to break user experience, plus it
will be for only a few commits.  At the end of the series seems fine to me.

-- 
Best regards,
Nicolas Graves




^ permalink raw reply	[flat|nested] 51+ messages in thread

* [bug#73439] [PATCH 00/10] Update libreoffice to its latest version.
  2024-09-24 14:29   ` Nicolas Graves via Guix-patches via
@ 2024-09-24 17:03     ` Liliana Marie Prikler
  2024-09-25  7:52       ` Nicolas Graves via Guix-patches via
  0 siblings, 1 reply; 51+ messages in thread
From: Liliana Marie Prikler @ 2024-09-24 17:03 UTC (permalink / raw)
  To: Nicolas Graves, 73439

Am Dienstag, dem 24.09.2024 um 16:29 +0200 schrieb Nicolas Graves:
> On 2024-09-23 20:35, Liliana Marie Prikler wrote:
> 
> > Am Montag, dem 23.09.2024 um 14:15 +0200 schrieb Nicolas Graves:
> > > This patch series updates libreoffice to its latest version. I
> > > used
> > > local builds of derivations with ccache
> > > (https://issues.guix.gnu.org/68315) to test developping and
> > > updating
> > > a big package incrementally. Some commits can be squashed, but I
> > > think we should at least keep separate 24.2.0.3, 24.2.6.2,
> > > 24.8.1.2.
> > > It also adds an updater for the libreoffice package.
> > Why those steps?  Should we perhaps have multiple packages with
> > some older versions for the time being?
> 
> 24.2.0.3 is a big update which adds packages and substitutions, I
> think it's good to keep those changes in one commit.
Fair enough.

> On the libreoffice website, they have only two libreoffice downloads:
> https://www.libreoffice.org/download/download-libreoffice
> 
> 24.8.1.2 is the current stable release
> 24.2.6.2 is the previous stable release (~= LTS)
> 
> I don't see libreoffice bringing tremendous changes from version to
> version, I'm not sure having two versions is necessary.
> 
> That said, it is very doable to have two with a -lts version.
I agree, having an LTS is probably enough.  So can we cut this short by
keeping the separate ones you mention and also keep 24.2.6.2 as the
LTS?

> > 
> > > Nicolas Graves (10):
> > >   import: Add %libreoffice-updater.
> > LGTM
> > >   gnu: libreoffice: Update to 24.2.0.3.
> > >   gnu: libreoffice: Update to 24.2.1.2.
> > >   gnu: libreoffice: Update to 24.2.2.2.
> > >   gnu: libreoffice: Update to 24.2.3.2.
> > >   gnu: libreoffice: Update to 24.2.4.2.
> > >   gnu: libreoffice: Update to 24.2.5.2.
> > >   gnu: libreoffice: Update to 24.2.6.2.
> > >   gnu: libreoffice: Update to 24.8.1.2.
> > >   gnu: hunspell-dictionaries: Update to  24.8.1.2.
> > As noted in the comment hunspell and libreoffice ought to be kept
> > in sync.  IIUC, this would mean updating hunspell-dictionaries in
> > lockstep with libreoffice on those intermediate steps as well, no?
> 
> I haven't delved that deep in this but I think it's not necessary.
> The reason is that they are mostly dictionaries whose updates are
> uncorrelated to what's happenning in libreoffice itself but rather
> edge cases in languages.  They are unlikely to break user experience,
> plus it will be for only a few commits.  At the end of the series
> seems fine to me.
Fair enough.

Cheers





^ permalink raw reply	[flat|nested] 51+ messages in thread

* [bug#73439] [PATCH v2 1/5] import: Add %libreoffice-updater.
  2024-09-23 12:15 [bug#73439] [PATCH 00/10] Update libreoffice to its latest version Nicolas Graves via Guix-patches via
  2024-09-23 12:37 ` [bug#73439] [PATCH 01/10] import: Add %libreoffice-updater Nicolas Graves via Guix-patches via
  2024-09-23 18:35 ` [bug#73439] [PATCH 00/10] Update libreoffice to its latest version Liliana Marie Prikler
@ 2024-09-25  7:40 ` Nicolas Graves via Guix-patches via
  2024-09-25  7:40   ` [bug#73439] [PATCH v2 2/5] gnu: libreoffice: Update to 24.2.0.3 Nicolas Graves via Guix-patches via
                     ` (3 more replies)
  2024-09-26  7:50 ` [bug#73439] [PATCH v3 1/4] import: Add %libreoffice-updater Nicolas Graves via Guix-patches via
                   ` (4 subsequent siblings)
  7 siblings, 4 replies; 51+ messages in thread
From: Nicolas Graves via Guix-patches via @ 2024-09-25  7:40 UTC (permalink / raw)
  To: 73439; +Cc: Nicolas Graves, liliana.priker

Change-Id: I481b1175db531c4fea4a57838fe190f679cd1a85
---
 Makefile.am                 |  1 +
 guix/import/libreoffice.scm | 98 +++++++++++++++++++++++++++++++++++++
 2 files changed, 99 insertions(+)
 create mode 100644 guix/import/libreoffice.scm

diff --git a/Makefile.am b/Makefile.am
index e9801283f8..e4e4fb5a19 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -306,6 +306,7 @@ MODULES =					\
   guix/import/json.scm				\
   guix/import/kde.scm				\
   guix/import/launchpad.scm   			\
+  guix/import/libreoffice.scm 			\
   guix/import/minetest.scm   			\
   guix/import/npm-binary.scm			\
   guix/import/opam.scm				\
diff --git a/guix/import/libreoffice.scm b/guix/import/libreoffice.scm
new file mode 100644
index 0000000000..65d20f0432
--- /dev/null
+++ b/guix/import/libreoffice.scm
@@ -0,0 +1,98 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2024 Nicolas Graves <ngraves@ngraves.fr>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (guix import libreoffice)
+  #:use-module (web client)
+  #:use-module (sxml match)
+  #:use-module (sxml simple)
+  #:use-module (guix i18n)
+  #:use-module (guix diagnostics)
+  #:use-module (guix packages)
+  #:use-module (guix upstream)
+  #:use-module (guix utils)
+  #:use-module (ice-9 textual-ports)
+  #:use-module (srfi srfi-26)
+  #:use-module (srfi srfi-71)
+  #:export (%libreoffice-updater))
+
+(define archive-prefix
+  "https://downloadarchive.documentfoundation.org/libreoffice/old/")
+(define libreoffice-latest-url (string-append archive-prefix "latest/src/"))
+
+(define (libreoffice-latest-version)
+  (let* ((response port (http-get libreoffice-latest-url
+                                  #:streaming? #t))
+         (content (get-string-all port))
+         ;; xml->sxml is not flexible enough for html.
+         ;; For instance, <img> tags don't have closing </img>.
+         ;; This trick preprocesses html to extract all <a> tags in
+         ;; a <body> wrapper, which sxml-match can handle well.
+         (xml (xml->sxml
+               (string-append
+                "<body><"
+                (string-join
+                 (filter (cute string-prefix? "a " <>)
+                         (string-split content #\<))
+                 "</a><")
+                "></a></body>")
+               #:trim-whitespace? #t)))
+    (sxml-match
+     xml
+     ((*TOP*
+       (body
+        (a (@ (href "?C=N;O=D")) "Name")
+        (a (@ (href "?C=M;O=A")) "Last modified")
+        (a (@ (href "?C=S;O=A")) "Size")
+        (a (@ (href "/libreoffice/old/latest/")) "Parent Directory")
+        (a (@ (href ,link)) ,name)
+        . ,rest))
+      (if (and (string-prefix? "libreoffice-" name)
+               (string-suffix? ".tar.xz" name))
+          (string-drop
+           (string-drop-right name (string-length ".tar.xz"))
+           (string-length "libreoffice-"))
+          (raise
+           (formatted-message (G_ "Could not extract version from '~a'")
+                              name)))))))
+
+(define* (latest-release package #:key (version #f))
+  "Return an <upstream-source> for the latest-release of PACKAGE."
+  (let* ((name (package-name package))
+         (version (or version (libreoffice-latest-version))))
+    (upstream-source
+     (package name)
+     (version version)
+     (urls (list
+            (string-append
+             archive-prefix version "/src/libreoffice-" version ".tar.xz")
+            (string-append
+             "https://download.documentfoundation.org/libreoffice/src/"
+             (version-prefix version 3) "/libreoffice-" version ".tar.xz"))))))
+
+(define (libreoffice-package? package)
+  "Return true if PACKAGE is LibreOffice."
+  (string=? (package-name package) "libreoffice"))
+
+(define %libreoffice-updater
+  (upstream-updater
+   (name 'libreoffice)
+   (description "Updater for Libreoffice package")
+   (pred libreoffice-package?)
+   (import latest-release)))
+
+;; libreoffice.scm ends here.
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 51+ messages in thread

* [bug#73439] [PATCH v2 2/5] gnu: libreoffice: Update to 24.2.0.3.
  2024-09-25  7:40 ` [bug#73439] [PATCH v2 1/5] import: Add %libreoffice-updater Nicolas Graves via Guix-patches via
@ 2024-09-25  7:40   ` Nicolas Graves via Guix-patches via
  2024-09-25  7:40   ` [bug#73439] [PATCH v2 3/5] gnu: libreoffice: Update to 24.8.1.2 Nicolas Graves via Guix-patches via
                     ` (2 subsequent siblings)
  3 siblings, 0 replies; 51+ messages in thread
From: Nicolas Graves via Guix-patches via @ 2024-09-25  7:40 UTC (permalink / raw)
  To: 73439; +Cc: Nicolas Graves, liliana.priker

* gnu/packages/libreoffice.scm (libreoffice): Update to 24.2.0.3.

Change-Id: I72e0ebb4d075c47ea168b181f969a97f9249150a
---
 gnu/packages/libreoffice.scm | 29 +++++++++++++++++++++++------
 1 file changed, 23 insertions(+), 6 deletions(-)

diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm
index ed8dfd432b..70167d11ea 100644
--- a/gnu/packages/libreoffice.scm
+++ b/gnu/packages/libreoffice.scm
@@ -63,6 +63,7 @@ (define-module (gnu packages libreoffice)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages game-development)
+  #:use-module (gnu packages gcc)
   #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
@@ -80,6 +81,7 @@ (define-module (gnu packages libreoffice)
   #:use-module (gnu packages maths)
   #:use-module (gnu packages nss)
   #:use-module (gnu packages openldap)
+  #:use-module (gnu packages password-utils)
   #:use-module (gnu packages pdf)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages perl-compression)
@@ -891,16 +893,20 @@ (define dtoa
 (define-public libreoffice
   (package
     (name "libreoffice")
-    (version "7.6.7.2")               ;keep in sync with hunspell dictionaries
+    (version "24.2.0.3")               ;keep in sync with hunspell dictionaries
     (source
      (origin
        (method url-fetch)
        (uri
-        (string-append
-         "https://download.documentfoundation.org/libreoffice/src/"
-         (version-prefix version 3) "/libreoffice-" version ".tar.xz"))
+        (list
+         (string-append
+          "https://download.documentfoundation.org/libreoffice/src/"
+          (version-prefix version 3) "/libreoffice-" version ".tar.xz")
+         (string-append
+          "https://downloadarchive.documentfoundation.org/libreoffice/old/"
+          version "/src/libreoffice-" version ".tar.xz")))
        (sha256
-        (base32 "159vbv4zhibfd4xjdamcqs4h0p3h5y79kcjwrmshvjhs23p55l3m"))))
+        (base32 "0s1m92rmizicd8jgxcjz0xsd79v148wkq0ac9yzz61x2ga8mdx0q"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      (list
@@ -961,6 +967,13 @@ (define-public libreoffice
                              "shell/source/unix/misc/senddoc.sh")
                 (("/usr/bin/xdg-open")
                  (search-input-file inputs "/bin/xdg-open")))
+
+              ;; Probably necessary because we use a custom GCC(>=12)/GLIBC.
+              (substitute* '("sal/rtl/math.cxx"
+                             "sc/source/core/tool/math.cxx")
+                (("std::(fe[gs]etround|feclearexcept|fetestexcept)" all suffix)
+                 suffix))
+
               (setenv "CPPFLAGS" "-std=c++17")))
           (add-after 'install 'reset-zip-timestamps
             (lambda _
@@ -1083,12 +1096,14 @@ (define (install-python-script name)
            cppunit
            flex
            frozen                       ;header-only library
+           gcc-12
            pkg-config
            python-wrapper
            which
            ziptime))
     (inputs
-     (list bluez
+     (list argon2
+           bluez
            boost
            box2d
            clucene
@@ -1100,6 +1115,7 @@ (define (install-python-script name)
            fontforge
            gconf
            glew
+           glibc
            glm
            gnupg
            gobject-introspection
@@ -1168,6 +1184,7 @@ (define (install-python-script name)
            xdg-utils
            xmlsec-nss
            zip
+           zxcvbn-c
            zxing-cpp))
     (home-page "https://www.libreoffice.org/")
     (synopsis "Office suite")
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 51+ messages in thread

* [bug#73439] [PATCH v2 3/5] gnu: libreoffice: Update to 24.8.1.2.
  2024-09-25  7:40 ` [bug#73439] [PATCH v2 1/5] import: Add %libreoffice-updater Nicolas Graves via Guix-patches via
  2024-09-25  7:40   ` [bug#73439] [PATCH v2 2/5] gnu: libreoffice: Update to 24.2.0.3 Nicolas Graves via Guix-patches via
@ 2024-09-25  7:40   ` Nicolas Graves via Guix-patches via
  2024-09-25  7:40   ` [bug#73439] [PATCH v2 4/5] gnu: hunspell-dictionaries: " Nicolas Graves via Guix-patches via
  2024-09-25  7:40   ` [bug#73439] [PATCH v2 5/5] gnu: Add libreoffice-lts Nicolas Graves via Guix-patches via
  3 siblings, 0 replies; 51+ messages in thread
From: Nicolas Graves via Guix-patches via @ 2024-09-25  7:40 UTC (permalink / raw)
  To: 73439; +Cc: Nicolas Graves, liliana.priker

* gnu/packages/libreoffice.scm (libreoffice): Update to 24.8.1.2.

Change-Id: I95ba7d5a5d1475b9c502051ecb076734a320c059
---
 gnu/packages/libreoffice.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm
index 70167d11ea..2d038cdf0d 100644
--- a/gnu/packages/libreoffice.scm
+++ b/gnu/packages/libreoffice.scm
@@ -893,7 +893,7 @@ (define dtoa
 (define-public libreoffice
   (package
     (name "libreoffice")
-    (version "24.2.0.3")               ;keep in sync with hunspell dictionaries
+    (version "24.8.1.2")               ;keep in sync with hunspell dictionaries
     (source
      (origin
        (method url-fetch)
@@ -906,7 +906,7 @@ (define-public libreoffice
           "https://downloadarchive.documentfoundation.org/libreoffice/old/"
           version "/src/libreoffice-" version ".tar.xz")))
        (sha256
-        (base32 "0s1m92rmizicd8jgxcjz0xsd79v148wkq0ac9yzz61x2ga8mdx0q"))))
+        (base32 "1rqii01i0295ch2xc9mddqpvlpjapk3m6nra4mhxfc38da1qci48"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      (list
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 51+ messages in thread

* [bug#73439] [PATCH v2 4/5] gnu: hunspell-dictionaries: Update to 24.8.1.2.
  2024-09-25  7:40 ` [bug#73439] [PATCH v2 1/5] import: Add %libreoffice-updater Nicolas Graves via Guix-patches via
  2024-09-25  7:40   ` [bug#73439] [PATCH v2 2/5] gnu: libreoffice: Update to 24.2.0.3 Nicolas Graves via Guix-patches via
  2024-09-25  7:40   ` [bug#73439] [PATCH v2 3/5] gnu: libreoffice: Update to 24.8.1.2 Nicolas Graves via Guix-patches via
@ 2024-09-25  7:40   ` Nicolas Graves via Guix-patches via
  2024-09-25  7:40   ` [bug#73439] [PATCH v2 5/5] gnu: Add libreoffice-lts Nicolas Graves via Guix-patches via
  3 siblings, 0 replies; 51+ messages in thread
From: Nicolas Graves via Guix-patches via @ 2024-09-25  7:40 UTC (permalink / raw)
  To: 73439; +Cc: Nicolas Graves, liliana.priker

* gnu/packages/hunspell.scm (hunspell-dictionaries): Update to 24.8.1.2.
(hunspell-ditionary)[source]<origin>: Change url, anongit returns
gateway http errors 504.

Change-Id: Ie7b548f1e7a2342fdde2aea3740e2634c0ba70e3
---
 gnu/packages/hunspell.scm | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/gnu/packages/hunspell.scm b/gnu/packages/hunspell.scm
index 8c076de3c4..09ada5a3d3 100644
--- a/gnu/packages/hunspell.scm
+++ b/gnu/packages/hunspell.scm
@@ -309,18 +309,17 @@ (define* (hunspell-dictionary dict-name full-name #:key synopsis home-page licen
                          (#\_ #\-)
                          (chr chr))
                        (string-downcase dict-name))))
-    (version "7.6.7.2")
+    (version "24.8.1.2")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url (string-append "https://anongit.freedesktop.org/git/"
-                                 "libreoffice/dictionaries.git/"))
+             (url "https://github.com/LibreOffice/dictionaries")
              (commit
               (string-append "libreoffice-" version))))
        (file-name (git-file-name "libreoffice-dictionaries" version))
        (sha256
-        (base32 "1f54z1kmpwv9s5a9jdgf97m43nhwbmsar0i6rri3qkgf3kkgz1f7"))))
+        (base32 "089w9i91wy2hx07vqkg0d65zr1k2mnwyijh4dhl6xbpcv20f6ayw"))))
     (build-system trivial-build-system)
     (native-inputs
      `(("source" ,source)))
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 51+ messages in thread

* [bug#73439] [PATCH v2 5/5] gnu: Add libreoffice-lts.
  2024-09-25  7:40 ` [bug#73439] [PATCH v2 1/5] import: Add %libreoffice-updater Nicolas Graves via Guix-patches via
                     ` (2 preceding siblings ...)
  2024-09-25  7:40   ` [bug#73439] [PATCH v2 4/5] gnu: hunspell-dictionaries: " Nicolas Graves via Guix-patches via
@ 2024-09-25  7:40   ` Nicolas Graves via Guix-patches via
  3 siblings, 0 replies; 51+ messages in thread
From: Nicolas Graves via Guix-patches via @ 2024-09-25  7:40 UTC (permalink / raw)
  To: 73439; +Cc: Nicolas Graves, liliana.priker

* gnu/packages/libreoffice.scm (libreoffice-lts): New variable.

Change-Id: Ic4f9fa958f52306d5e431684055f8d37e7b2003c
---
 gnu/packages/libreoffice.scm | 30 ++++++++++++++++++++++--------
 1 file changed, 22 insertions(+), 8 deletions(-)

diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm
index 2d038cdf0d..4f0d9cbad1 100644
--- a/gnu/packages/libreoffice.scm
+++ b/gnu/packages/libreoffice.scm
@@ -890,6 +890,15 @@ (define dtoa
     (sha256
      (base32 "1d0iwy0q5sjznv23d3nbwmy0r7m1mdzlnv5pc4izddkx9xld10h0"))))
 
+(define (libreoffice-url version)
+  (list
+   (string-append
+    "https://download.documentfoundation.org/libreoffice/src/"
+    (version-prefix version 3) "/libreoffice-" version ".tar.xz")
+   (string-append
+    "https://downloadarchive.documentfoundation.org/libreoffice/old/"
+    version "/src/libreoffice-" version ".tar.xz")))
+
 (define-public libreoffice
   (package
     (name "libreoffice")
@@ -897,14 +906,7 @@ (define-public libreoffice
     (source
      (origin
        (method url-fetch)
-       (uri
-        (list
-         (string-append
-          "https://download.documentfoundation.org/libreoffice/src/"
-          (version-prefix version 3) "/libreoffice-" version ".tar.xz")
-         (string-append
-          "https://downloadarchive.documentfoundation.org/libreoffice/old/"
-          version "/src/libreoffice-" version ".tar.xz")))
+       (uri (libreoffice-url version))
        (sha256
         (base32 "1rqii01i0295ch2xc9mddqpvlpjapk3m6nra4mhxfc38da1qci48"))))
     (build-system glib-or-gtk-build-system)
@@ -1197,3 +1199,15 @@ (define (install-python-script name)
      '((release-monitoring-url
         . "https://www.libreoffice.org/download/download-libreoffice/")))
     (license license:mpl2.0)))
+
+(define-public libreoffice-lts
+  (package
+    (inherit libreoffice)
+    (name "libreoffice")
+    (version "24.2.6.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (libreoffice-url version))
+       (sha256
+        (base32 "1cqxw745kzm81b2nvfpl5n2sq1k9y25y596wvjsnaq394bq4vspn"))))))
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 51+ messages in thread

* [bug#73439] [PATCH 00/10] Update libreoffice to its latest version.
  2024-09-24 17:03     ` Liliana Marie Prikler
@ 2024-09-25  7:52       ` Nicolas Graves via Guix-patches via
  2024-09-25 15:43         ` Liliana Marie Prikler
  2024-10-14 13:31         ` Simon Josefsson via Guix-patches via
  0 siblings, 2 replies; 51+ messages in thread
From: Nicolas Graves via Guix-patches via @ 2024-09-25  7:52 UTC (permalink / raw)
  To: Liliana Marie Prikler, 73439

On 2024-09-24 19:03, Liliana Marie Prikler wrote:

>> That said, it is very doable to have two with a -lts version.
> I agree, having an LTS is probably enough.  So can we cut this short by
> keeping the separate ones you mention and also keep 24.2.6.2 as the
> LTS?

Done in a v2, but I'm not actually sure it's a great solution. The issue
is that the "LTS" is supported for 8 months (february to november 2024
for 24.2). That means we have an overlap of main and lts versions for
only 2 months, and then libreoffice probably recommends only the 24.8
stable release (from memory, the page had a single release a few months
prior, or we can wait and see until november).

Keeping it in Guix would label -lts something that is not supported by
upstream 2/3rd of a year.

I only see two relevant solutions:
- following the latest stable release (which is stable, it's not a beta,
there is a prerelease version currently at 24.8.2)
- wait with 24.2 until november and then switch to 24.8

-- 
Best regards,
Nicolas Graves




^ permalink raw reply	[flat|nested] 51+ messages in thread

* [bug#73439] [PATCH 00/10] Update libreoffice to its latest version.
  2024-09-25  7:52       ` Nicolas Graves via Guix-patches via
@ 2024-09-25 15:43         ` Liliana Marie Prikler
  2024-10-14 13:31         ` Simon Josefsson via Guix-patches via
  1 sibling, 0 replies; 51+ messages in thread
From: Liliana Marie Prikler @ 2024-09-25 15:43 UTC (permalink / raw)
  To: Nicolas Graves, 73439

Am Mittwoch, dem 25.09.2024 um 09:52 +0200 schrieb Nicolas Graves:
> On 2024-09-24 19:03, Liliana Marie Prikler wrote:
> 
> > > That said, it is very doable to have two with a -lts version.
> > I agree, having an LTS is probably enough.  So can we cut this
> > short by keeping the separate ones you mention and also keep
> > 24.2.6.2 as the LTS?
> 
> Done in a v2, but I'm not actually sure it's a great solution. The
> issue is that the "LTS" is supported for 8 months (february to
> november 2024 for 24.2). That means we have an overlap of main and
> lts versions for only 2 months, and then libreoffice probably
> recommends only the 24.8 stable release (from memory, the page had a
> single release a few months prior, or we can wait and see until
> november).
> 
> Keeping it in Guix would label -lts something that is not supported
> by upstream 2/3rd of a year.
> 
> I only see two relevant solutions:
> - following the latest stable release (which is stable, it's not a
> beta, there is a prerelease version currently at 24.8.2)
> - wait with 24.2 until november and then switch to 24.8
I think we should strive to be as up-to-date as possible, but I see no
harm with keeping a 24.2 version until November.  WDYT?





^ permalink raw reply	[flat|nested] 51+ messages in thread

* [bug#73439] [PATCH v3 1/4] import: Add %libreoffice-updater.
  2024-09-23 12:15 [bug#73439] [PATCH 00/10] Update libreoffice to its latest version Nicolas Graves via Guix-patches via
                   ` (2 preceding siblings ...)
  2024-09-25  7:40 ` [bug#73439] [PATCH v2 1/5] import: Add %libreoffice-updater Nicolas Graves via Guix-patches via
@ 2024-09-26  7:50 ` Nicolas Graves via Guix-patches via
  2024-09-26  7:50   ` [bug#73439] [PATCH v3 2/4] gnu: libreoffice: Update to 24.2.0.3 Nicolas Graves via Guix-patches via
                     ` (2 more replies)
  2024-10-01 14:54 ` [bug#73439] [PATCH v4 1/4] import: Add %libreoffice-updater Nicolas Graves via Guix-patches via
                   ` (3 subsequent siblings)
  7 siblings, 3 replies; 51+ messages in thread
From: Nicolas Graves via Guix-patches via @ 2024-09-26  7:50 UTC (permalink / raw)
  To: 73439; +Cc: Nicolas Graves

Change-Id: I481b1175db531c4fea4a57838fe190f679cd1a85
---
 Makefile.am                 |  1 +
 guix/import/libreoffice.scm | 98 +++++++++++++++++++++++++++++++++++++
 2 files changed, 99 insertions(+)
 create mode 100644 guix/import/libreoffice.scm

diff --git a/Makefile.am b/Makefile.am
index e9801283f8..e4e4fb5a19 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -306,6 +306,7 @@ MODULES =					\
   guix/import/json.scm				\
   guix/import/kde.scm				\
   guix/import/launchpad.scm   			\
+  guix/import/libreoffice.scm 			\
   guix/import/minetest.scm   			\
   guix/import/npm-binary.scm			\
   guix/import/opam.scm				\
diff --git a/guix/import/libreoffice.scm b/guix/import/libreoffice.scm
new file mode 100644
index 0000000000..65d20f0432
--- /dev/null
+++ b/guix/import/libreoffice.scm
@@ -0,0 +1,98 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2024 Nicolas Graves <ngraves@ngraves.fr>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (guix import libreoffice)
+  #:use-module (web client)
+  #:use-module (sxml match)
+  #:use-module (sxml simple)
+  #:use-module (guix i18n)
+  #:use-module (guix diagnostics)
+  #:use-module (guix packages)
+  #:use-module (guix upstream)
+  #:use-module (guix utils)
+  #:use-module (ice-9 textual-ports)
+  #:use-module (srfi srfi-26)
+  #:use-module (srfi srfi-71)
+  #:export (%libreoffice-updater))
+
+(define archive-prefix
+  "https://downloadarchive.documentfoundation.org/libreoffice/old/")
+(define libreoffice-latest-url (string-append archive-prefix "latest/src/"))
+
+(define (libreoffice-latest-version)
+  (let* ((response port (http-get libreoffice-latest-url
+                                  #:streaming? #t))
+         (content (get-string-all port))
+         ;; xml->sxml is not flexible enough for html.
+         ;; For instance, <img> tags don't have closing </img>.
+         ;; This trick preprocesses html to extract all <a> tags in
+         ;; a <body> wrapper, which sxml-match can handle well.
+         (xml (xml->sxml
+               (string-append
+                "<body><"
+                (string-join
+                 (filter (cute string-prefix? "a " <>)
+                         (string-split content #\<))
+                 "</a><")
+                "></a></body>")
+               #:trim-whitespace? #t)))
+    (sxml-match
+     xml
+     ((*TOP*
+       (body
+        (a (@ (href "?C=N;O=D")) "Name")
+        (a (@ (href "?C=M;O=A")) "Last modified")
+        (a (@ (href "?C=S;O=A")) "Size")
+        (a (@ (href "/libreoffice/old/latest/")) "Parent Directory")
+        (a (@ (href ,link)) ,name)
+        . ,rest))
+      (if (and (string-prefix? "libreoffice-" name)
+               (string-suffix? ".tar.xz" name))
+          (string-drop
+           (string-drop-right name (string-length ".tar.xz"))
+           (string-length "libreoffice-"))
+          (raise
+           (formatted-message (G_ "Could not extract version from '~a'")
+                              name)))))))
+
+(define* (latest-release package #:key (version #f))
+  "Return an <upstream-source> for the latest-release of PACKAGE."
+  (let* ((name (package-name package))
+         (version (or version (libreoffice-latest-version))))
+    (upstream-source
+     (package name)
+     (version version)
+     (urls (list
+            (string-append
+             archive-prefix version "/src/libreoffice-" version ".tar.xz")
+            (string-append
+             "https://download.documentfoundation.org/libreoffice/src/"
+             (version-prefix version 3) "/libreoffice-" version ".tar.xz"))))))
+
+(define (libreoffice-package? package)
+  "Return true if PACKAGE is LibreOffice."
+  (string=? (package-name package) "libreoffice"))
+
+(define %libreoffice-updater
+  (upstream-updater
+   (name 'libreoffice)
+   (description "Updater for Libreoffice package")
+   (pred libreoffice-package?)
+   (import latest-release)))
+
+;; libreoffice.scm ends here.
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 51+ messages in thread

* [bug#73439] [PATCH v3 2/4] gnu: libreoffice: Update to 24.2.0.3.
  2024-09-26  7:50 ` [bug#73439] [PATCH v3 1/4] import: Add %libreoffice-updater Nicolas Graves via Guix-patches via
@ 2024-09-26  7:50   ` Nicolas Graves via Guix-patches via
  2024-09-26  7:50   ` [bug#73439] [PATCH v3 3/4] gnu: libreoffice: Update to 24.2.6.2 Nicolas Graves via Guix-patches via
  2024-09-26  7:50   ` [bug#73439] [PATCH v3 4/4] gnu: hunspell-dictionary: " Nicolas Graves via Guix-patches via
  2 siblings, 0 replies; 51+ messages in thread
From: Nicolas Graves via Guix-patches via @ 2024-09-26  7:50 UTC (permalink / raw)
  To: 73439; +Cc: Nicolas Graves

* gnu/packages/libreoffice.scm (libreoffice): Update to 24.2.0.3.

Change-Id: I72e0ebb4d075c47ea168b181f969a97f9249150a
---
 gnu/packages/libreoffice.scm | 29 +++++++++++++++++++++++------
 1 file changed, 23 insertions(+), 6 deletions(-)

diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm
index ed8dfd432b..70167d11ea 100644
--- a/gnu/packages/libreoffice.scm
+++ b/gnu/packages/libreoffice.scm
@@ -63,6 +63,7 @@ (define-module (gnu packages libreoffice)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages game-development)
+  #:use-module (gnu packages gcc)
   #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
@@ -80,6 +81,7 @@ (define-module (gnu packages libreoffice)
   #:use-module (gnu packages maths)
   #:use-module (gnu packages nss)
   #:use-module (gnu packages openldap)
+  #:use-module (gnu packages password-utils)
   #:use-module (gnu packages pdf)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages perl-compression)
@@ -891,16 +893,20 @@ (define dtoa
 (define-public libreoffice
   (package
     (name "libreoffice")
-    (version "7.6.7.2")               ;keep in sync with hunspell dictionaries
+    (version "24.2.0.3")               ;keep in sync with hunspell dictionaries
     (source
      (origin
        (method url-fetch)
        (uri
-        (string-append
-         "https://download.documentfoundation.org/libreoffice/src/"
-         (version-prefix version 3) "/libreoffice-" version ".tar.xz"))
+        (list
+         (string-append
+          "https://download.documentfoundation.org/libreoffice/src/"
+          (version-prefix version 3) "/libreoffice-" version ".tar.xz")
+         (string-append
+          "https://downloadarchive.documentfoundation.org/libreoffice/old/"
+          version "/src/libreoffice-" version ".tar.xz")))
        (sha256
-        (base32 "159vbv4zhibfd4xjdamcqs4h0p3h5y79kcjwrmshvjhs23p55l3m"))))
+        (base32 "0s1m92rmizicd8jgxcjz0xsd79v148wkq0ac9yzz61x2ga8mdx0q"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      (list
@@ -961,6 +967,13 @@ (define-public libreoffice
                              "shell/source/unix/misc/senddoc.sh")
                 (("/usr/bin/xdg-open")
                  (search-input-file inputs "/bin/xdg-open")))
+
+              ;; Probably necessary because we use a custom GCC(>=12)/GLIBC.
+              (substitute* '("sal/rtl/math.cxx"
+                             "sc/source/core/tool/math.cxx")
+                (("std::(fe[gs]etround|feclearexcept|fetestexcept)" all suffix)
+                 suffix))
+
               (setenv "CPPFLAGS" "-std=c++17")))
           (add-after 'install 'reset-zip-timestamps
             (lambda _
@@ -1083,12 +1096,14 @@ (define (install-python-script name)
            cppunit
            flex
            frozen                       ;header-only library
+           gcc-12
            pkg-config
            python-wrapper
            which
            ziptime))
     (inputs
-     (list bluez
+     (list argon2
+           bluez
            boost
            box2d
            clucene
@@ -1100,6 +1115,7 @@ (define (install-python-script name)
            fontforge
            gconf
            glew
+           glibc
            glm
            gnupg
            gobject-introspection
@@ -1168,6 +1184,7 @@ (define (install-python-script name)
            xdg-utils
            xmlsec-nss
            zip
+           zxcvbn-c
            zxing-cpp))
     (home-page "https://www.libreoffice.org/")
     (synopsis "Office suite")
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 51+ messages in thread

* [bug#73439] [PATCH v3 3/4] gnu: libreoffice: Update to 24.2.6.2.
  2024-09-26  7:50 ` [bug#73439] [PATCH v3 1/4] import: Add %libreoffice-updater Nicolas Graves via Guix-patches via
  2024-09-26  7:50   ` [bug#73439] [PATCH v3 2/4] gnu: libreoffice: Update to 24.2.0.3 Nicolas Graves via Guix-patches via
@ 2024-09-26  7:50   ` Nicolas Graves via Guix-patches via
  2024-09-26  7:50   ` [bug#73439] [PATCH v3 4/4] gnu: hunspell-dictionary: " Nicolas Graves via Guix-patches via
  2 siblings, 0 replies; 51+ messages in thread
From: Nicolas Graves via Guix-patches via @ 2024-09-26  7:50 UTC (permalink / raw)
  To: 73439; +Cc: Nicolas Graves

* gnu/packages/libreoffice.scm (libreoffice): Update to 24.2.6.2.

Change-Id: I95ba7d5a5d1475b9c502051ecb076734a320c059
---
 gnu/packages/libreoffice.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm
index 70167d11ea..a288136e06 100644
--- a/gnu/packages/libreoffice.scm
+++ b/gnu/packages/libreoffice.scm
@@ -893,7 +893,7 @@ (define dtoa
 (define-public libreoffice
   (package
     (name "libreoffice")
-    (version "24.2.0.3")               ;keep in sync with hunspell dictionaries
+    (version "24.2.6.2")               ;keep in sync with hunspell dictionaries
     (source
      (origin
        (method url-fetch)
@@ -906,7 +906,7 @@ (define-public libreoffice
           "https://downloadarchive.documentfoundation.org/libreoffice/old/"
           version "/src/libreoffice-" version ".tar.xz")))
        (sha256
-        (base32 "0s1m92rmizicd8jgxcjz0xsd79v148wkq0ac9yzz61x2ga8mdx0q"))))
+        (base32 "1cqxw745kzm81b2nvfpl5n2sq1k9y25y596wvjsnaq394bq4vspn"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      (list
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 51+ messages in thread

* [bug#73439] [PATCH v3 4/4] gnu: hunspell-dictionary: Update to 24.2.6.2.
  2024-09-26  7:50 ` [bug#73439] [PATCH v3 1/4] import: Add %libreoffice-updater Nicolas Graves via Guix-patches via
  2024-09-26  7:50   ` [bug#73439] [PATCH v3 2/4] gnu: libreoffice: Update to 24.2.0.3 Nicolas Graves via Guix-patches via
  2024-09-26  7:50   ` [bug#73439] [PATCH v3 3/4] gnu: libreoffice: Update to 24.2.6.2 Nicolas Graves via Guix-patches via
@ 2024-09-26  7:50   ` Nicolas Graves via Guix-patches via
  2 siblings, 0 replies; 51+ messages in thread
From: Nicolas Graves via Guix-patches via @ 2024-09-26  7:50 UTC (permalink / raw)
  To: 73439; +Cc: Nicolas Graves

* gnu/packages/hunspell.scm (hunspell-dictionary): Update to 24.2.6.2.
[source]<origin>: Change url, anongit returns gateway http errors 504.

Change-Id: Ida030cc94a406ace042eccbe75f60d4505e18a11
---
 gnu/packages/hunspell.scm | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/gnu/packages/hunspell.scm b/gnu/packages/hunspell.scm
index 8c076de3c4..cf2628162f 100644
--- a/gnu/packages/hunspell.scm
+++ b/gnu/packages/hunspell.scm
@@ -309,18 +309,17 @@ (define* (hunspell-dictionary dict-name full-name #:key synopsis home-page licen
                          (#\_ #\-)
                          (chr chr))
                        (string-downcase dict-name))))
-    (version "7.6.7.2")
+    (version "24.2.6.2")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url (string-append "https://anongit.freedesktop.org/git/"
-                                 "libreoffice/dictionaries.git/"))
+             (url "https://github.com/LibreOffice/dictionaries")
              (commit
               (string-append "libreoffice-" version))))
        (file-name (git-file-name "libreoffice-dictionaries" version))
        (sha256
-        (base32 "1f54z1kmpwv9s5a9jdgf97m43nhwbmsar0i6rri3qkgf3kkgz1f7"))))
+        (base32 "0xllzv1b70i7gndc8sqvvc7a1viv3i6qqdqiv4ffr78zr4krcwx8"))))
     (build-system trivial-build-system)
     (native-inputs
      `(("source" ,source)))
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 51+ messages in thread

* [bug#73439] [PATCH v4 1/4] import: Add %libreoffice-updater.
  2024-09-23 12:15 [bug#73439] [PATCH 00/10] Update libreoffice to its latest version Nicolas Graves via Guix-patches via
                   ` (3 preceding siblings ...)
  2024-09-26  7:50 ` [bug#73439] [PATCH v3 1/4] import: Add %libreoffice-updater Nicolas Graves via Guix-patches via
@ 2024-10-01 14:54 ` Nicolas Graves via Guix-patches via
  2024-10-01 14:54   ` [bug#73439] [PATCH v4 2/4] gnu: libreoffice: Update to 24.2.0.3 Nicolas Graves via Guix-patches via
                     ` (2 more replies)
  2024-10-16 17:07 ` [bug#73439] [PATCH v5 1/5] import: Add %libreoffice-updater Nicolas Graves via Guix-patches via
                   ` (2 subsequent siblings)
  7 siblings, 3 replies; 51+ messages in thread
From: Nicolas Graves via Guix-patches via @ 2024-10-01 14:54 UTC (permalink / raw)
  To: 73439; +Cc: Nicolas Graves

Change-Id: I481b1175db531c4fea4a57838fe190f679cd1a85
---
 Makefile.am                 |  1 +
 guix/import/libreoffice.scm | 98 +++++++++++++++++++++++++++++++++++++
 2 files changed, 99 insertions(+)
 create mode 100644 guix/import/libreoffice.scm

diff --git a/Makefile.am b/Makefile.am
index e9801283f8..e4e4fb5a19 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -306,6 +306,7 @@ MODULES =					\
   guix/import/json.scm				\
   guix/import/kde.scm				\
   guix/import/launchpad.scm   			\
+  guix/import/libreoffice.scm 			\
   guix/import/minetest.scm   			\
   guix/import/npm-binary.scm			\
   guix/import/opam.scm				\
diff --git a/guix/import/libreoffice.scm b/guix/import/libreoffice.scm
new file mode 100644
index 0000000000..65d20f0432
--- /dev/null
+++ b/guix/import/libreoffice.scm
@@ -0,0 +1,98 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2024 Nicolas Graves <ngraves@ngraves.fr>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (guix import libreoffice)
+  #:use-module (web client)
+  #:use-module (sxml match)
+  #:use-module (sxml simple)
+  #:use-module (guix i18n)
+  #:use-module (guix diagnostics)
+  #:use-module (guix packages)
+  #:use-module (guix upstream)
+  #:use-module (guix utils)
+  #:use-module (ice-9 textual-ports)
+  #:use-module (srfi srfi-26)
+  #:use-module (srfi srfi-71)
+  #:export (%libreoffice-updater))
+
+(define archive-prefix
+  "https://downloadarchive.documentfoundation.org/libreoffice/old/")
+(define libreoffice-latest-url (string-append archive-prefix "latest/src/"))
+
+(define (libreoffice-latest-version)
+  (let* ((response port (http-get libreoffice-latest-url
+                                  #:streaming? #t))
+         (content (get-string-all port))
+         ;; xml->sxml is not flexible enough for html.
+         ;; For instance, <img> tags don't have closing </img>.
+         ;; This trick preprocesses html to extract all <a> tags in
+         ;; a <body> wrapper, which sxml-match can handle well.
+         (xml (xml->sxml
+               (string-append
+                "<body><"
+                (string-join
+                 (filter (cute string-prefix? "a " <>)
+                         (string-split content #\<))
+                 "</a><")
+                "></a></body>")
+               #:trim-whitespace? #t)))
+    (sxml-match
+     xml
+     ((*TOP*
+       (body
+        (a (@ (href "?C=N;O=D")) "Name")
+        (a (@ (href "?C=M;O=A")) "Last modified")
+        (a (@ (href "?C=S;O=A")) "Size")
+        (a (@ (href "/libreoffice/old/latest/")) "Parent Directory")
+        (a (@ (href ,link)) ,name)
+        . ,rest))
+      (if (and (string-prefix? "libreoffice-" name)
+               (string-suffix? ".tar.xz" name))
+          (string-drop
+           (string-drop-right name (string-length ".tar.xz"))
+           (string-length "libreoffice-"))
+          (raise
+           (formatted-message (G_ "Could not extract version from '~a'")
+                              name)))))))
+
+(define* (latest-release package #:key (version #f))
+  "Return an <upstream-source> for the latest-release of PACKAGE."
+  (let* ((name (package-name package))
+         (version (or version (libreoffice-latest-version))))
+    (upstream-source
+     (package name)
+     (version version)
+     (urls (list
+            (string-append
+             archive-prefix version "/src/libreoffice-" version ".tar.xz")
+            (string-append
+             "https://download.documentfoundation.org/libreoffice/src/"
+             (version-prefix version 3) "/libreoffice-" version ".tar.xz"))))))
+
+(define (libreoffice-package? package)
+  "Return true if PACKAGE is LibreOffice."
+  (string=? (package-name package) "libreoffice"))
+
+(define %libreoffice-updater
+  (upstream-updater
+   (name 'libreoffice)
+   (description "Updater for Libreoffice package")
+   (pred libreoffice-package?)
+   (import latest-release)))
+
+;; libreoffice.scm ends here.
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 51+ messages in thread

* [bug#73439] [PATCH v4 2/4] gnu: libreoffice: Update to 24.2.0.3.
  2024-10-01 14:54 ` [bug#73439] [PATCH v4 1/4] import: Add %libreoffice-updater Nicolas Graves via Guix-patches via
@ 2024-10-01 14:54   ` Nicolas Graves via Guix-patches via
  2024-10-01 14:54   ` [bug#73439] [PATCH v4 3/4] gnu: libreoffice: Update to 24.2.6.2 Nicolas Graves via Guix-patches via
  2024-10-01 14:54   ` [bug#73439] [PATCH v4 4/4] gnu: hunspell-dictionary: " Nicolas Graves via Guix-patches via
  2 siblings, 0 replies; 51+ messages in thread
From: Nicolas Graves via Guix-patches via @ 2024-10-01 14:54 UTC (permalink / raw)
  To: 73439; +Cc: Nicolas Graves

* gnu/packages/libreoffice.scm (libreoffice): Update to 24.2.0.3.

Change-Id: I72e0ebb4d075c47ea168b181f969a97f9249150a
---
 gnu/packages/libreoffice.scm | 29 +++++++++++++++++++++++------
 1 file changed, 23 insertions(+), 6 deletions(-)

diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm
index ed8dfd432b..d6d627d9cd 100644
--- a/gnu/packages/libreoffice.scm
+++ b/gnu/packages/libreoffice.scm
@@ -63,6 +63,7 @@ (define-module (gnu packages libreoffice)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages game-development)
+  #:use-module (gnu packages gcc)
   #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
@@ -80,6 +81,7 @@ (define-module (gnu packages libreoffice)
   #:use-module (gnu packages maths)
   #:use-module (gnu packages nss)
   #:use-module (gnu packages openldap)
+  #:use-module (gnu packages password-utils)
   #:use-module (gnu packages pdf)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages perl-compression)
@@ -891,16 +893,20 @@ (define dtoa
 (define-public libreoffice
   (package
     (name "libreoffice")
-    (version "7.6.7.2")               ;keep in sync with hunspell dictionaries
+    (version "24.2.0.3")               ;keep in sync with hunspell dictionaries
     (source
      (origin
        (method url-fetch)
        (uri
-        (string-append
-         "https://download.documentfoundation.org/libreoffice/src/"
-         (version-prefix version 3) "/libreoffice-" version ".tar.xz"))
+        (list
+         (string-append
+          "https://download.documentfoundation.org/libreoffice/src/"
+          (version-prefix version 3) "/libreoffice-" version ".tar.xz")
+         (string-append
+          "https://downloadarchive.documentfoundation.org/libreoffice/old/"
+          version "/src/libreoffice-" version ".tar.xz")))
        (sha256
-        (base32 "159vbv4zhibfd4xjdamcqs4h0p3h5y79kcjwrmshvjhs23p55l3m"))))
+        (base32 "0s1m92rmizicd8jgxcjz0xsd79v148wkq0ac9yzz61x2ga8mdx0q"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      (list
@@ -961,6 +967,13 @@ (define-public libreoffice
                              "shell/source/unix/misc/senddoc.sh")
                 (("/usr/bin/xdg-open")
                  (search-input-file inputs "/bin/xdg-open")))
+
+              ;; https://issues.guix.gnu.org/43579
+              (substitute* '("sal/rtl/math.cxx"
+                             "sc/source/core/tool/math.cxx")
+                (("std::(fe[gs]etround|feclearexcept|fetestexcept)" all suffix)
+                 suffix))
+
               (setenv "CPPFLAGS" "-std=c++17")))
           (add-after 'install 'reset-zip-timestamps
             (lambda _
@@ -1083,12 +1096,14 @@ (define (install-python-script name)
            cppunit
            flex
            frozen                       ;header-only library
+           gcc-12
            pkg-config
            python-wrapper
            which
            ziptime))
     (inputs
-     (list bluez
+     (list argon2
+           bluez
            boost
            box2d
            clucene
@@ -1100,6 +1115,7 @@ (define (install-python-script name)
            fontforge
            gconf
            glew
+           glibc
            glm
            gnupg
            gobject-introspection
@@ -1168,6 +1184,7 @@ (define (install-python-script name)
            xdg-utils
            xmlsec-nss
            zip
+           zxcvbn-c
            zxing-cpp))
     (home-page "https://www.libreoffice.org/")
     (synopsis "Office suite")
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 51+ messages in thread

* [bug#73439] [PATCH v4 3/4] gnu: libreoffice: Update to 24.2.6.2.
  2024-10-01 14:54 ` [bug#73439] [PATCH v4 1/4] import: Add %libreoffice-updater Nicolas Graves via Guix-patches via
  2024-10-01 14:54   ` [bug#73439] [PATCH v4 2/4] gnu: libreoffice: Update to 24.2.0.3 Nicolas Graves via Guix-patches via
@ 2024-10-01 14:54   ` Nicolas Graves via Guix-patches via
  2024-10-01 14:54   ` [bug#73439] [PATCH v4 4/4] gnu: hunspell-dictionary: " Nicolas Graves via Guix-patches via
  2 siblings, 0 replies; 51+ messages in thread
From: Nicolas Graves via Guix-patches via @ 2024-10-01 14:54 UTC (permalink / raw)
  To: 73439; +Cc: Nicolas Graves

* gnu/packages/libreoffice.scm (libreoffice): Update to 24.2.6.2.

Change-Id: I95ba7d5a5d1475b9c502051ecb076734a320c059
---
 gnu/packages/libreoffice.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm
index d6d627d9cd..1907fab500 100644
--- a/gnu/packages/libreoffice.scm
+++ b/gnu/packages/libreoffice.scm
@@ -893,7 +893,7 @@ (define dtoa
 (define-public libreoffice
   (package
     (name "libreoffice")
-    (version "24.2.0.3")               ;keep in sync with hunspell dictionaries
+    (version "24.2.6.2")               ;keep in sync with hunspell dictionaries
     (source
      (origin
        (method url-fetch)
@@ -906,7 +906,7 @@ (define-public libreoffice
           "https://downloadarchive.documentfoundation.org/libreoffice/old/"
           version "/src/libreoffice-" version ".tar.xz")))
        (sha256
-        (base32 "0s1m92rmizicd8jgxcjz0xsd79v148wkq0ac9yzz61x2ga8mdx0q"))))
+        (base32 "1cqxw745kzm81b2nvfpl5n2sq1k9y25y596wvjsnaq394bq4vspn"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      (list
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 51+ messages in thread

* [bug#73439] [PATCH v4 4/4] gnu: hunspell-dictionary: Update to 24.2.6.2.
  2024-10-01 14:54 ` [bug#73439] [PATCH v4 1/4] import: Add %libreoffice-updater Nicolas Graves via Guix-patches via
  2024-10-01 14:54   ` [bug#73439] [PATCH v4 2/4] gnu: libreoffice: Update to 24.2.0.3 Nicolas Graves via Guix-patches via
  2024-10-01 14:54   ` [bug#73439] [PATCH v4 3/4] gnu: libreoffice: Update to 24.2.6.2 Nicolas Graves via Guix-patches via
@ 2024-10-01 14:54   ` Nicolas Graves via Guix-patches via
  2 siblings, 0 replies; 51+ messages in thread
From: Nicolas Graves via Guix-patches via @ 2024-10-01 14:54 UTC (permalink / raw)
  To: 73439; +Cc: Nicolas Graves

* gnu/packages/hunspell.scm (hunspell-dictionary): Update to 24.2.6.2.
[source]<origin>: Change url, anongit returns gateway http errors 504.

Change-Id: Ida030cc94a406ace042eccbe75f60d4505e18a11
---
 gnu/packages/hunspell.scm | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/gnu/packages/hunspell.scm b/gnu/packages/hunspell.scm
index 8c076de3c4..cf2628162f 100644
--- a/gnu/packages/hunspell.scm
+++ b/gnu/packages/hunspell.scm
@@ -309,18 +309,17 @@ (define* (hunspell-dictionary dict-name full-name #:key synopsis home-page licen
                          (#\_ #\-)
                          (chr chr))
                        (string-downcase dict-name))))
-    (version "7.6.7.2")
+    (version "24.2.6.2")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url (string-append "https://anongit.freedesktop.org/git/"
-                                 "libreoffice/dictionaries.git/"))
+             (url "https://github.com/LibreOffice/dictionaries")
              (commit
               (string-append "libreoffice-" version))))
        (file-name (git-file-name "libreoffice-dictionaries" version))
        (sha256
-        (base32 "1f54z1kmpwv9s5a9jdgf97m43nhwbmsar0i6rri3qkgf3kkgz1f7"))))
+        (base32 "0xllzv1b70i7gndc8sqvvc7a1viv3i6qqdqiv4ffr78zr4krcwx8"))))
     (build-system trivial-build-system)
     (native-inputs
      `(("source" ,source)))
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 51+ messages in thread

* [bug#73439] [PATCH 00/10] Update libreoffice to its latest version.
  2024-09-25  7:52       ` Nicolas Graves via Guix-patches via
  2024-09-25 15:43         ` Liliana Marie Prikler
@ 2024-10-14 13:31         ` Simon Josefsson via Guix-patches via
  2024-10-16 15:26           ` Nicolas Graves via Guix-patches via
  1 sibling, 1 reply; 51+ messages in thread
From: Simon Josefsson via Guix-patches via @ 2024-10-14 13:31 UTC (permalink / raw)
  To: 73439; +Cc: ngraves, liliana.prikler

[-- Attachment #1: Type: text/plain, Size: 1497 bytes --]

Nicolas Graves via Guix-patches via <guix-patches@gnu.org> writes:

> On 2024-09-24 19:03, Liliana Marie Prikler wrote:
>
>>> That said, it is very doable to have two with a -lts version.
>> I agree, having an LTS is probably enough.  So can we cut this short by
>> keeping the separate ones you mention and also keep 24.2.6.2 as the
>> LTS?
>
> Done in a v2, but I'm not actually sure it's a great solution. The issue
> is that the "LTS" is supported for 8 months (february to november 2024
> for 24.2). That means we have an overlap of main and lts versions for
> only 2 months, and then libreoffice probably recommends only the 24.8
> stable release (from memory, the page had a single release a few months
> prior, or we can wait and see until november).
>
> Keeping it in Guix would label -lts something that is not supported by
> upstream 2/3rd of a year.
>
> I only see two relevant solutions:
> - following the latest stable release (which is stable, it's not a beta,
> there is a prerelease version currently at 24.8.2)
> - wait with 24.2 until november and then switch to 24.8

Maybe worth considering: Debian tracks 24.8 including backporting it to
stable.  ArchLinux and Homebrew ships 24.8 (although homebrew also
provides 24.2).  So it looks like latest libreoffice stable release is
packaged often.

Thanks for working on an upgrade, regardless of if it becomes 24.2 or
24.8 -- I'm happily using 7.6.7.2 via Guix on Trisquel to get something
more recent than aramo's 7.3.7.

/Simon

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 255 bytes --]

^ permalink raw reply	[flat|nested] 51+ messages in thread

* [bug#73439] [PATCH 00/10] Update libreoffice to its latest version.
  2024-10-14 13:31         ` Simon Josefsson via Guix-patches via
@ 2024-10-16 15:26           ` Nicolas Graves via Guix-patches via
  0 siblings, 0 replies; 51+ messages in thread
From: Nicolas Graves via Guix-patches via @ 2024-10-16 15:26 UTC (permalink / raw)
  To: Simon Josefsson, 73439; +Cc: liliana.prikler

On 2024-10-14 15:31, Simon Josefsson via Guix-patches via wrote:

> Nicolas Graves via Guix-patches via <guix-patches@gnu.org> writes:
>
>> On 2024-09-24 19:03, Liliana Marie Prikler wrote:
>>
>
> Maybe worth considering: Debian tracks 24.8 including backporting it to
> stable.  ArchLinux and Homebrew ships 24.8 (although homebrew also
> provides 24.2).  So it looks like latest libreoffice stable release is
> packaged often.
>
> Thanks for working on an upgrade, regardless of if it becomes 24.2 or
> 24.8 -- I'm happily using 7.6.7.2 via Guix on Trisquel to get something
> more recent than aramo's 7.3.7.

Hi Simon,

I'll have to submit a v3 to remove glibc from inputs (which was a
mistake), and will probably rebase this version on 68150 and block the
issue by that. Since this will probably take more than 2 weeks to get
merged, I'll update to 24.8 directly.

>
> /Simon

-- 
Best regards,
Nicolas Graves




^ permalink raw reply	[flat|nested] 51+ messages in thread

* [bug#73439] [PATCH v5 1/5] import: Add %libreoffice-updater.
  2024-09-23 12:15 [bug#73439] [PATCH 00/10] Update libreoffice to its latest version Nicolas Graves via Guix-patches via
                   ` (4 preceding siblings ...)
  2024-10-01 14:54 ` [bug#73439] [PATCH v4 1/4] import: Add %libreoffice-updater Nicolas Graves via Guix-patches via
@ 2024-10-16 17:07 ` Nicolas Graves via Guix-patches via
  2024-10-16 17:07   ` [bug#73439] [PATCH v5 2/5] gnu: libreoffice: Update to 24.2.0.3 Nicolas Graves via Guix-patches via
                     ` (4 more replies)
  2024-11-19  7:31 ` [bug#73439] [PATCH v5] gnu: libreoffice: Update to 24.8.3.2 Nicolas Graves via Guix-patches via
  2024-11-28 12:55 ` [bug#73439] [PATCH v6] " Nicolas Graves via Guix-patches via
  7 siblings, 5 replies; 51+ messages in thread
From: Nicolas Graves via Guix-patches via @ 2024-10-16 17:07 UTC (permalink / raw)
  To: 73439; +Cc: Nicolas Graves

Change-Id: I481b1175db531c4fea4a57838fe190f679cd1a85
---
 Makefile.am                 |  1 +
 guix/import/libreoffice.scm | 98 +++++++++++++++++++++++++++++++++++++
 2 files changed, 99 insertions(+)
 create mode 100644 guix/import/libreoffice.scm

diff --git a/Makefile.am b/Makefile.am
index e9801283f8..e4e4fb5a19 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -306,6 +306,7 @@ MODULES =					\
   guix/import/json.scm				\
   guix/import/kde.scm				\
   guix/import/launchpad.scm   			\
+  guix/import/libreoffice.scm 			\
   guix/import/minetest.scm   			\
   guix/import/npm-binary.scm			\
   guix/import/opam.scm				\
diff --git a/guix/import/libreoffice.scm b/guix/import/libreoffice.scm
new file mode 100644
index 0000000000..65d20f0432
--- /dev/null
+++ b/guix/import/libreoffice.scm
@@ -0,0 +1,98 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2024 Nicolas Graves <ngraves@ngraves.fr>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (guix import libreoffice)
+  #:use-module (web client)
+  #:use-module (sxml match)
+  #:use-module (sxml simple)
+  #:use-module (guix i18n)
+  #:use-module (guix diagnostics)
+  #:use-module (guix packages)
+  #:use-module (guix upstream)
+  #:use-module (guix utils)
+  #:use-module (ice-9 textual-ports)
+  #:use-module (srfi srfi-26)
+  #:use-module (srfi srfi-71)
+  #:export (%libreoffice-updater))
+
+(define archive-prefix
+  "https://downloadarchive.documentfoundation.org/libreoffice/old/")
+(define libreoffice-latest-url (string-append archive-prefix "latest/src/"))
+
+(define (libreoffice-latest-version)
+  (let* ((response port (http-get libreoffice-latest-url
+                                  #:streaming? #t))
+         (content (get-string-all port))
+         ;; xml->sxml is not flexible enough for html.
+         ;; For instance, <img> tags don't have closing </img>.
+         ;; This trick preprocesses html to extract all <a> tags in
+         ;; a <body> wrapper, which sxml-match can handle well.
+         (xml (xml->sxml
+               (string-append
+                "<body><"
+                (string-join
+                 (filter (cute string-prefix? "a " <>)
+                         (string-split content #\<))
+                 "</a><")
+                "></a></body>")
+               #:trim-whitespace? #t)))
+    (sxml-match
+     xml
+     ((*TOP*
+       (body
+        (a (@ (href "?C=N;O=D")) "Name")
+        (a (@ (href "?C=M;O=A")) "Last modified")
+        (a (@ (href "?C=S;O=A")) "Size")
+        (a (@ (href "/libreoffice/old/latest/")) "Parent Directory")
+        (a (@ (href ,link)) ,name)
+        . ,rest))
+      (if (and (string-prefix? "libreoffice-" name)
+               (string-suffix? ".tar.xz" name))
+          (string-drop
+           (string-drop-right name (string-length ".tar.xz"))
+           (string-length "libreoffice-"))
+          (raise
+           (formatted-message (G_ "Could not extract version from '~a'")
+                              name)))))))
+
+(define* (latest-release package #:key (version #f))
+  "Return an <upstream-source> for the latest-release of PACKAGE."
+  (let* ((name (package-name package))
+         (version (or version (libreoffice-latest-version))))
+    (upstream-source
+     (package name)
+     (version version)
+     (urls (list
+            (string-append
+             archive-prefix version "/src/libreoffice-" version ".tar.xz")
+            (string-append
+             "https://download.documentfoundation.org/libreoffice/src/"
+             (version-prefix version 3) "/libreoffice-" version ".tar.xz"))))))
+
+(define (libreoffice-package? package)
+  "Return true if PACKAGE is LibreOffice."
+  (string=? (package-name package) "libreoffice"))
+
+(define %libreoffice-updater
+  (upstream-updater
+   (name 'libreoffice)
+   (description "Updater for Libreoffice package")
+   (pred libreoffice-package?)
+   (import latest-release)))
+
+;; libreoffice.scm ends here.
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 51+ messages in thread

* [bug#73439] [PATCH v5 2/5] gnu: libreoffice: Update to 24.2.0.3.
  2024-10-16 17:07 ` [bug#73439] [PATCH v5 1/5] import: Add %libreoffice-updater Nicolas Graves via Guix-patches via
@ 2024-10-16 17:07   ` Nicolas Graves via Guix-patches via
  2024-10-16 17:07   ` [bug#73439] [PATCH v5 3/5] gnu: libreoffice: Update to 24.2.6.2 Nicolas Graves via Guix-patches via
                     ` (3 subsequent siblings)
  4 siblings, 0 replies; 51+ messages in thread
From: Nicolas Graves via Guix-patches via @ 2024-10-16 17:07 UTC (permalink / raw)
  To: 73439; +Cc: Nicolas Graves

* gnu/packages/libreoffice.scm (libreoffice): Update to 24.2.0.3.

Change-Id: I72e0ebb4d075c47ea168b181f969a97f9249150a
---
 gnu/packages/libreoffice.scm | 28 ++++++++++++++++++++++------
 1 file changed, 22 insertions(+), 6 deletions(-)

diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm
index f7fd2faa62..29e915c86d 100644
--- a/gnu/packages/libreoffice.scm
+++ b/gnu/packages/libreoffice.scm
@@ -63,6 +63,7 @@ (define-module (gnu packages libreoffice)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages game-development)
+  #:use-module (gnu packages gcc)
   #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
@@ -80,6 +81,7 @@ (define-module (gnu packages libreoffice)
   #:use-module (gnu packages maths)
   #:use-module (gnu packages nss)
   #:use-module (gnu packages openldap)
+  #:use-module (gnu packages password-utils)
   #:use-module (gnu packages pdf)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages perl-compression)
@@ -891,16 +893,20 @@ (define dtoa
 (define-public libreoffice
   (package
     (name "libreoffice")
-    (version "7.6.7.2")               ;keep in sync with hunspell dictionaries
+    (version "24.2.0.3")               ;keep in sync with hunspell dictionaries
     (source
      (origin
        (method url-fetch)
        (uri
-        (string-append
-         "https://download.documentfoundation.org/libreoffice/src/"
-         (version-prefix version 3) "/libreoffice-" version ".tar.xz"))
+        (list
+         (string-append
+          "https://download.documentfoundation.org/libreoffice/src/"
+          (version-prefix version 3) "/libreoffice-" version ".tar.xz")
+         (string-append
+          "https://downloadarchive.documentfoundation.org/libreoffice/old/"
+          version "/src/libreoffice-" version ".tar.xz")))
        (sha256
-        (base32 "159vbv4zhibfd4xjdamcqs4h0p3h5y79kcjwrmshvjhs23p55l3m"))))
+        (base32 "0s1m92rmizicd8jgxcjz0xsd79v148wkq0ac9yzz61x2ga8mdx0q"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      (list
@@ -961,6 +967,13 @@ (define-public libreoffice
                              "shell/source/unix/misc/senddoc.sh")
                 (("/usr/bin/xdg-open")
                  (search-input-file inputs "/bin/xdg-open")))
+
+              ;; https://issues.guix.gnu.org/43579
+              (substitute* '("sal/rtl/math.cxx"
+                             "sc/source/core/tool/math.cxx")
+                (("std::(fe[gs]etround|feclearexcept|fetestexcept)" all suffix)
+                 suffix))
+
               (setenv "CPPFLAGS" "-std=c++17")))
           (add-after 'install 'reset-zip-timestamps
             (lambda _
@@ -1083,12 +1096,14 @@ (define (install-python-script name)
            cppunit
            flex
            frozen                       ;header-only library
+           gcc-12
            pkg-config
            python-wrapper
            which
            ziptime))
     (inputs
-     (list bluez
+     (list argon2
+           bluez
            boost
            box2d
            clucene
@@ -1168,6 +1183,7 @@ (define (install-python-script name)
            xdg-utils
            xmlsec-nss
            zip
+           zxcvbn-c
            zxing-cpp))
     (home-page "https://www.libreoffice.org/")
     (synopsis "Office suite")
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 51+ messages in thread

* [bug#73439] [PATCH v5 3/5] gnu: libreoffice: Update to 24.2.6.2.
  2024-10-16 17:07 ` [bug#73439] [PATCH v5 1/5] import: Add %libreoffice-updater Nicolas Graves via Guix-patches via
  2024-10-16 17:07   ` [bug#73439] [PATCH v5 2/5] gnu: libreoffice: Update to 24.2.0.3 Nicolas Graves via Guix-patches via
@ 2024-10-16 17:07   ` Nicolas Graves via Guix-patches via
  2024-10-16 17:07   ` [bug#73439] [PATCH v5 4/5] gnu: libreoffice: Update to 24.8.2.1 Nicolas Graves via Guix-patches via
                     ` (2 subsequent siblings)
  4 siblings, 0 replies; 51+ messages in thread
From: Nicolas Graves via Guix-patches via @ 2024-10-16 17:07 UTC (permalink / raw)
  To: 73439; +Cc: Nicolas Graves

* gnu/packages/libreoffice.scm (libreoffice): Update to 24.2.6.2.

Change-Id: I95ba7d5a5d1475b9c502051ecb076734a320c059
---
 gnu/packages/libreoffice.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm
index 29e915c86d..c262ccf1c1 100644
--- a/gnu/packages/libreoffice.scm
+++ b/gnu/packages/libreoffice.scm
@@ -893,7 +893,7 @@ (define dtoa
 (define-public libreoffice
   (package
     (name "libreoffice")
-    (version "24.2.0.3")               ;keep in sync with hunspell dictionaries
+    (version "24.2.6.2")               ;keep in sync with hunspell dictionaries
     (source
      (origin
        (method url-fetch)
@@ -906,7 +906,7 @@ (define-public libreoffice
           "https://downloadarchive.documentfoundation.org/libreoffice/old/"
           version "/src/libreoffice-" version ".tar.xz")))
        (sha256
-        (base32 "0s1m92rmizicd8jgxcjz0xsd79v148wkq0ac9yzz61x2ga8mdx0q"))))
+        (base32 "1cqxw745kzm81b2nvfpl5n2sq1k9y25y596wvjsnaq394bq4vspn"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      (list
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 51+ messages in thread

* [bug#73439] [PATCH v5 4/5] gnu: libreoffice: Update to 24.8.2.1.
  2024-10-16 17:07 ` [bug#73439] [PATCH v5 1/5] import: Add %libreoffice-updater Nicolas Graves via Guix-patches via
  2024-10-16 17:07   ` [bug#73439] [PATCH v5 2/5] gnu: libreoffice: Update to 24.2.0.3 Nicolas Graves via Guix-patches via
  2024-10-16 17:07   ` [bug#73439] [PATCH v5 3/5] gnu: libreoffice: Update to 24.2.6.2 Nicolas Graves via Guix-patches via
@ 2024-10-16 17:07   ` Nicolas Graves via Guix-patches via
  2024-11-15 16:48     ` Ludovic Courtès
  2024-10-16 17:07   ` [bug#73439] [PATCH v5 5/5] gnu: hunspell-dictionary: " Nicolas Graves via Guix-patches via
  2024-10-18 12:31   ` [bug#73439] [PATCH v5 1/5] import: Add %libreoffice-updater Ludovic Courtès
  4 siblings, 1 reply; 51+ messages in thread
From: Nicolas Graves via Guix-patches via @ 2024-10-16 17:07 UTC (permalink / raw)
  To: 73439; +Cc: Nicolas Graves

* gnu/packages/libreoffice.scm (libreoffice): Update to 24.8.2.1.

Change-Id: Ic37556e1c6ab4cad59507cddf00d6bc5ed650a5e
---
 gnu/packages/libreoffice.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm
index c262ccf1c1..1e4966e3d2 100644
--- a/gnu/packages/libreoffice.scm
+++ b/gnu/packages/libreoffice.scm
@@ -893,7 +893,7 @@ (define dtoa
 (define-public libreoffice
   (package
     (name "libreoffice")
-    (version "24.2.6.2")               ;keep in sync with hunspell dictionaries
+    (version "24.8.2.1")               ;keep in sync with hunspell dictionaries
     (source
      (origin
        (method url-fetch)
@@ -906,7 +906,7 @@ (define-public libreoffice
           "https://downloadarchive.documentfoundation.org/libreoffice/old/"
           version "/src/libreoffice-" version ".tar.xz")))
        (sha256
-        (base32 "1cqxw745kzm81b2nvfpl5n2sq1k9y25y596wvjsnaq394bq4vspn"))))
+        (base32 "1ky4ph9g7x9k68px6x4dgfnf5wqbxqabkp75pjhsj521nsp1nc5b"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      (list
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 51+ messages in thread

* [bug#73439] [PATCH v5 5/5] gnu: hunspell-dictionary: Update to 24.8.2.1.
  2024-10-16 17:07 ` [bug#73439] [PATCH v5 1/5] import: Add %libreoffice-updater Nicolas Graves via Guix-patches via
                     ` (2 preceding siblings ...)
  2024-10-16 17:07   ` [bug#73439] [PATCH v5 4/5] gnu: libreoffice: Update to 24.8.2.1 Nicolas Graves via Guix-patches via
@ 2024-10-16 17:07   ` Nicolas Graves via Guix-patches via
  2024-11-15 16:49     ` Ludovic Courtès
  2024-10-18 12:31   ` [bug#73439] [PATCH v5 1/5] import: Add %libreoffice-updater Ludovic Courtès
  4 siblings, 1 reply; 51+ messages in thread
From: Nicolas Graves via Guix-patches via @ 2024-10-16 17:07 UTC (permalink / raw)
  To: 73439; +Cc: Nicolas Graves

* gnu/packages/hunspell.scm (hunspell-dictionary): Update to 24.8.2.1.
[source]<origin>: Change url, anongit returns gateway http errors 504.

Change-Id: Ida030cc94a406ace042eccbe75f60d4505e18a11
---
 gnu/packages/hunspell.scm | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/gnu/packages/hunspell.scm b/gnu/packages/hunspell.scm
index 8c076de3c4..eed10b16bb 100644
--- a/gnu/packages/hunspell.scm
+++ b/gnu/packages/hunspell.scm
@@ -309,18 +309,17 @@ (define* (hunspell-dictionary dict-name full-name #:key synopsis home-page licen
                          (#\_ #\-)
                          (chr chr))
                        (string-downcase dict-name))))
-    (version "7.6.7.2")
+    (version "24.8.2.1")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url (string-append "https://anongit.freedesktop.org/git/"
-                                 "libreoffice/dictionaries.git/"))
+             (url "https://github.com/LibreOffice/dictionaries")
              (commit
               (string-append "libreoffice-" version))))
        (file-name (git-file-name "libreoffice-dictionaries" version))
        (sha256
-        (base32 "1f54z1kmpwv9s5a9jdgf97m43nhwbmsar0i6rri3qkgf3kkgz1f7"))))
+        (base32 "02dhpfrhp82p08hx89lfx2gjbyp0kk2vbapmb3g7fphc9pabpg9c"))))
     (build-system trivial-build-system)
     (native-inputs
      `(("source" ,source)))
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 51+ messages in thread

* [bug#73439] [PATCH v5 1/5] import: Add %libreoffice-updater.
  2024-10-16 17:07 ` [bug#73439] [PATCH v5 1/5] import: Add %libreoffice-updater Nicolas Graves via Guix-patches via
                     ` (3 preceding siblings ...)
  2024-10-16 17:07   ` [bug#73439] [PATCH v5 5/5] gnu: hunspell-dictionary: " Nicolas Graves via Guix-patches via
@ 2024-10-18 12:31   ` Ludovic Courtès
  2024-10-18 14:29     ` Nicolas Graves via Guix-patches via
  4 siblings, 1 reply; 51+ messages in thread
From: Ludovic Courtès @ 2024-10-18 12:31 UTC (permalink / raw)
  To: Nicolas Graves; +Cc: 73439

Hi,

Nicolas Graves <ngraves@ngraves.fr> skribis:

> Change-Id: I481b1175db531c4fea4a57838fe190f679cd1a85
> ---
>  Makefile.am                 |  1 +
>  guix/import/libreoffice.scm | 98 +++++++++++++++++++++++++++++++++++++

Neat.  Could you add a test, an @item in doc/guix.texi next to the other
updaters, and a commit log?

> +(define (libreoffice-latest-version)

Please add a docstring to all top-level procedures.

> +  (let* ((response port (http-get libreoffice-latest-url
> +                                  #:streaming? #t))
> +         (content (get-string-all port))

PORT is not closed.  If you’re going to load it all in memory, just
leave #:streaming? to #f and you’ll get a string instead of a port.

> +         ;; xml->sxml is not flexible enough for html.
> +         ;; For instance, <img> tags don't have closing </img>.
> +         ;; This trick preprocesses html to extract all <a> tags in
> +         ;; a <body> wrapper, which sxml-match can handle well.
> +         (xml (xml->sxml
> +               (string-append
> +                "<body><"
> +                (string-join
> +                 (filter (cute string-prefix? "a " <>)
> +                         (string-split content #\<))
> +                 "</a><")
> +                "></a></body>")
> +               #:trim-whitespace? #t)))

This is terrible.  :-)

(guix import go) and (guix gnu-maintenance) use (htmlprag) for that.
Would that work for you?

Thinking about it, the strategy looks very similar to that of the
‘generic-html’ updater.

Would it be enough to add a ‘release-monitoring-url’ property to the
relevant LibreOffice packages?

Thanks,
Ludo’.




^ permalink raw reply	[flat|nested] 51+ messages in thread

* [bug#73439] [PATCH v5 1/5] import: Add %libreoffice-updater.
  2024-10-18 12:31   ` [bug#73439] [PATCH v5 1/5] import: Add %libreoffice-updater Ludovic Courtès
@ 2024-10-18 14:29     ` Nicolas Graves via Guix-patches via
  2024-10-21 15:40       ` Ludovic Courtès
  0 siblings, 1 reply; 51+ messages in thread
From: Nicolas Graves via Guix-patches via @ 2024-10-18 14:29 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 73439

On 2024-10-18 14:31, Ludovic Courtès wrote:

> Hi,
>
> Nicolas Graves <ngraves@ngraves.fr> skribis:
>
>> Change-Id: I481b1175db531c4fea4a57838fe190f679cd1a85
>> ---
>>  Makefile.am                 |  1 +
>>  guix/import/libreoffice.scm | 98 +++++++++++++++++++++++++++++++++++++
>
> Neat.  Could you add a test, an @item in doc/guix.texi next to the other
> updaters, and a commit log?
>
>> +(define (libreoffice-latest-version)
>
> Please add a docstring to all top-level procedures.
>
>> +  (let* ((response port (http-get libreoffice-latest-url
>> +                                  #:streaming? #t))
>> +         (content (get-string-all port))
>
> PORT is not closed.  If you’re going to load it all in memory, just
> leave #:streaming? to #f and you’ll get a string instead of a port.
>
>> +         ;; xml->sxml is not flexible enough for html.
>> +         ;; For instance, <img> tags don't have closing </img>.
>> +         ;; This trick preprocesses html to extract all <a> tags in
>> +         ;; a <body> wrapper, which sxml-match can handle well.
>> +         (xml (xml->sxml
>> +               (string-append
>> +                "<body><"
>> +                (string-join
>> +                 (filter (cute string-prefix? "a " <>)
>> +                         (string-split content #\<))
>> +                 "</a><")
>> +                "></a></body>")
>> +               #:trim-whitespace? #t)))
>
> This is terrible.  :-)
>
> (guix import go) and (guix gnu-maintenance) use (htmlprag) for that.
> Would that work for you?

No issue for that, but I don't get how this works by looking at the
source code only, hence my dirty hacks ;)

> Thinking about it, the strategy looks very similar to that of the
> ‘generic-html’ updater.
>
> Would it be enough to add a ‘release-monitoring-url’ property to the
> relevant LibreOffice packages?

Actually now I don't really now anymore what was possible and what was
not. I remember trying and successfully updating libreoffice without
this patch once, but not able to reproduce.

With more experimentation :
- the current release-monitoring-url is able to update to the
latest-version, but isn't able to udpate to a --target-version
- same thing for my libreoffice-latest-url

I guess we don't want to maintain this code if we are able to keep being
up-to-date. Let's skip this commit and merge others once QA is done with
them. I can always cherry-pick this patch in the future if I need it.

>
> Thanks,
> Ludo’.
>
>
>

-- 
Best regards,
Nicolas Graves




^ permalink raw reply	[flat|nested] 51+ messages in thread

* [bug#73439] [PATCH v5 1/5] import: Add %libreoffice-updater.
  2024-10-18 14:29     ` Nicolas Graves via Guix-patches via
@ 2024-10-21 15:40       ` Ludovic Courtès
  0 siblings, 0 replies; 51+ messages in thread
From: Ludovic Courtès @ 2024-10-21 15:40 UTC (permalink / raw)
  To: Nicolas Graves; +Cc: 73439

Howdy,

Nicolas Graves <ngraves@ngraves.fr> skribis:

> On 2024-10-18 14:31, Ludovic Courtès wrote:

[...]

>> This is terrible.  :-)
>>
>> (guix import go) and (guix gnu-maintenance) use (htmlprag) for that.
>> Would that work for you?
>
> No issue for that, but I don't get how this works by looking at the
> source code only, hence my dirty hacks ;)

(htmlprag) is a “pragmatic” HTML parser, meaning that it can cope with
old style HTML that is not valid XML.  Essentially, you’d use
‘html->sxml’ from (htmlprag) instead of ‘xml->sxml’.

>> Thinking about it, the strategy looks very similar to that of the
>> ‘generic-html’ updater.
>>
>> Would it be enough to add a ‘release-monitoring-url’ property to the
>> relevant LibreOffice packages?
>
> Actually now I don't really now anymore what was possible and what was
> not. I remember trying and successfully updating libreoffice without
> this patch once, but not able to reproduce.
>
> With more experimentation :
> - the current release-monitoring-url is able to update to the
> latest-version, but isn't able to udpate to a --target-version
> - same thing for my libreoffice-latest-url
>
> I guess we don't want to maintain this code if we are able to keep being
> up-to-date. Let's skip this commit and merge others once QA is done with
> them. I can always cherry-pick this patch in the future if I need it.

Sounds good.  Thanks for checking!

Ludo’.




^ permalink raw reply	[flat|nested] 51+ messages in thread

* [bug#73439] [PATCH v5 4/5] gnu: libreoffice: Update to 24.8.2.1.
  2024-10-16 17:07   ` [bug#73439] [PATCH v5 4/5] gnu: libreoffice: Update to 24.8.2.1 Nicolas Graves via Guix-patches via
@ 2024-11-15 16:48     ` Ludovic Courtès
  2024-11-16  0:04       ` Nicolas Graves via Guix-patches via
  0 siblings, 1 reply; 51+ messages in thread
From: Ludovic Courtès @ 2024-11-15 16:48 UTC (permalink / raw)
  To: Nicolas Graves; +Cc: 73439

Nicolas Graves <ngraves@ngraves.fr> skribis:

> * gnu/packages/libreoffice.scm (libreoffice): Update to 24.8.2.1.
>
> Change-Id: Ic37556e1c6ab4cad59507cddf00d6bc5ed650a5e

Hi!  Finally got around to building it, since qa.guix isn’t helping.

I got this:

--8<---------------cut here---------------start------------->8---
[build C  ] desktop/unx/source/file_image_unx.c
[build C  ] desktop/unx/source/pagein.c
[build C  ] desktop/unx/source/splashx.c
[build C  ] desktop/unx/source/start.c
[build CXX] i18npool/source/collator/gencoll_rule.cxx
cc1: warning: command-line option ‘-std=c++17’ is valid for C++/ObjC++ but not for C
cc1: warning: command-line option ‘-std=c++17’ is valid for C++/ObjC++ but not for C
cc1: warning: command-line option ‘-std=c++17’ is valid for C++/ObjC++ but not for C
[build CXX] i18npool/source/indexentry/genindex_data.cxx
cc1: warning: command-line option ‘-std=c++17’ is valid for C++/ObjC++ but not for C
cc1: warning: command-line option ‘-std=c++17’ is valid for C++/ObjC++ but not for C
[build CXX] i18npool/source/textconversion/genconv_dict.cxx
/tmp/guix-build-libreoffice-24.8.2.1.drv-0/libreoffice-24.8.2.1/sal/rtl/math.cxx: In function ‘double rtl_math_round(double, int, rtl_math_RoundingMode)’:
/tmp/guix-build-libreoffice-24.8.2.1.drv-0/libreoffice-24.8.2.1/sal/rtl/math.cxx:536:41: error: ‘fegetround’ was not declared in this scope
  536 |                 if (const int oldMode = fegetround(); fesetround(FE_TONEAREST) == 0)
      |                                         ^~~~~~~~~~
/tmp/guix-build-libreoffice-24.8.2.1.drv-0/libreoffice-24.8.2.1/sal/rtl/math.cxx:536:66: error: ‘FE_TONEAREST’ was not declared in this scope; did you mean ‘FP_INT_TONEAREST’?
  536 |                 if (const int oldMode = fegetround(); fesetround(FE_TONEAREST) == 0)
      |                                                                  ^~~~~~~~~~~~
      |                                                                  FP_INT_TONEAREST
/tmp/guix-build-libreoffice-24.8.2.1.drv-0/libreoffice-24.8.2.1/sal/rtl/math.cxx:536:55: error: ‘fesetround’ was not declared in this scope; did you mean ‘setreuid’?
  536 |                 if (const int oldMode = fegetround(); fesetround(FE_TONEAREST) == 0)
      |                                                       ^~~~~~~~~~
      |                                                       setreuid
[build CXX] l10ntools/source/helpex.cxx
[build CXX] l10ntools/source/xmlparse.cxx
[build CXX] l10ntools/source/helpmerge.cxx
[build CXX] l10ntools/source/lngmerge.cxx
[build CXX] l10ntools/source/lngex.cxx
[build CXX] workdir/LexTarget/l10ntools/source/cfglex.cxx
[build CXX] l10ntools/source/cfgmerge.cxx
[build CXX] workdir/LexTarget/l10ntools/source/xrmlex.cxx
[build CXX] l10ntools/source/xrmmerge.cxx
[build CXX] l10ntools/source/localize.cxx
[build CXX] l10ntools/source/pocheck.cxx
[build CXX] l10ntools/source/propmerge.cxx
[build CXX] l10ntools/source/propex.cxx
[build CXX] l10ntools/source/treemerge.cxx
[build CXX] l10ntools/source/treex.cxx
[build CXX] libreofficekit/qa/tilebench/tilebench.cxx
[build CXX] opencl/opencltest/main.cxx
[build PRL] CustomTarget/postprocess/images/images_breeze.zip
make[1]: *** [/tmp/guix-build-libreoffice-24.8.2.1.drv-0/libreoffice-24.8.2.1/solenv/gbuild/LinkTarget.mk:335: /tmp/guix-build-libreoffice-24.8.2.1.drv-0/libreoffice-24.8.2.1/workdir/CxxObject/sal/rtl/math.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make: *** [Makefile:294: build] Error 2
--8<---------------cut here---------------end--------------->8---

Could you take a look?

Ludo’.




^ permalink raw reply	[flat|nested] 51+ messages in thread

* [bug#73439] [PATCH v5 5/5] gnu: hunspell-dictionary: Update to 24.8.2.1.
  2024-10-16 17:07   ` [bug#73439] [PATCH v5 5/5] gnu: hunspell-dictionary: " Nicolas Graves via Guix-patches via
@ 2024-11-15 16:49     ` Ludovic Courtès
  0 siblings, 0 replies; 51+ messages in thread
From: Ludovic Courtès @ 2024-11-15 16:49 UTC (permalink / raw)
  To: Nicolas Graves; +Cc: 73439

Nicolas Graves <ngraves@ngraves.fr> skribis:

> * gnu/packages/hunspell.scm (hunspell-dictionary): Update to 24.8.2.1.
> [source]<origin>: Change url, anongit returns gateway http errors 504.
>
> Change-Id: Ida030cc94a406ace042eccbe75f60d4505e18a11

Applied, thanks!




^ permalink raw reply	[flat|nested] 51+ messages in thread

* [bug#73439] [PATCH v5 4/5] gnu: libreoffice: Update to 24.8.2.1.
  2024-11-15 16:48     ` Ludovic Courtès
@ 2024-11-16  0:04       ` Nicolas Graves via Guix-patches via
  2024-11-16 21:38         ` Nicolas Graves via Guix-patches via
  0 siblings, 1 reply; 51+ messages in thread
From: Nicolas Graves via Guix-patches via @ 2024-11-16  0:04 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 73439

On 2024-11-15 17:48, Ludovic Courtès wrote:

> Nicolas Graves <ngraves@ngraves.fr> skribis:
>
>> * gnu/packages/libreoffice.scm (libreoffice): Update to 24.8.2.1.
>>
>> Change-Id: Ic37556e1c6ab4cad59507cddf00d6bc5ed650a5e
>
> Hi!  Finally got around to building it, since qa.guix isn’t helping.
>
> I got this:
>
> --8<---------------cut here---------------start------------->8---
> [build C  ] desktop/unx/source/file_image_unx.c
> [build C  ] desktop/unx/source/pagein.c
> [build C  ] desktop/unx/source/splashx.c
> [build C  ] desktop/unx/source/start.c
> [build CXX] i18npool/source/collator/gencoll_rule.cxx
> cc1: warning: command-line option ‘-std=c++17’ is valid for C++/ObjC++ but not for C
> cc1: warning: command-line option ‘-std=c++17’ is valid for C++/ObjC++ but not for C
> cc1: warning: command-line option ‘-std=c++17’ is valid for C++/ObjC++ but not for C
> [build CXX] i18npool/source/indexentry/genindex_data.cxx
> cc1: warning: command-line option ‘-std=c++17’ is valid for C++/ObjC++ but not for C
> cc1: warning: command-line option ‘-std=c++17’ is valid for C++/ObjC++ but not for C
> [build CXX] i18npool/source/textconversion/genconv_dict.cxx
> /tmp/guix-build-libreoffice-24.8.2.1.drv-0/libreoffice-24.8.2.1/sal/rtl/math.cxx: In function ‘double rtl_math_round(double, int, rtl_math_RoundingMode)’:
> /tmp/guix-build-libreoffice-24.8.2.1.drv-0/libreoffice-24.8.2.1/sal/rtl/math.cxx:536:41: error: ‘fegetround’ was not declared in this scope
>   536 |                 if (const int oldMode = fegetround(); fesetround(FE_TONEAREST) == 0)
>       |                                         ^~~~~~~~~~
> /tmp/guix-build-libreoffice-24.8.2.1.drv-0/libreoffice-24.8.2.1/sal/rtl/math.cxx:536:66: error: ‘FE_TONEAREST’ was not declared in this scope; did you mean ‘FP_INT_TONEAREST’?
>   536 |                 if (const int oldMode = fegetround(); fesetround(FE_TONEAREST) == 0)
>       |                                                                  ^~~~~~~~~~~~
>       |                                                                  FP_INT_TONEAREST
> /tmp/guix-build-libreoffice-24.8.2.1.drv-0/libreoffice-24.8.2.1/sal/rtl/math.cxx:536:55: error: ‘fesetround’ was not declared in this scope; did you mean ‘setreuid’?
>   536 |                 if (const int oldMode = fegetround(); fesetround(FE_TONEAREST) == 0)
>       |                                                       ^~~~~~~~~~
>       |                                                       setreuid
> [build CXX] l10ntools/source/helpex.cxx
> [build CXX] l10ntools/source/xmlparse.cxx
> [build CXX] l10ntools/source/helpmerge.cxx
> [build CXX] l10ntools/source/lngmerge.cxx
> [build CXX] l10ntools/source/lngex.cxx
> [build CXX] workdir/LexTarget/l10ntools/source/cfglex.cxx
> [build CXX] l10ntools/source/cfgmerge.cxx
> [build CXX] workdir/LexTarget/l10ntools/source/xrmlex.cxx
> [build CXX] l10ntools/source/xrmmerge.cxx
> [build CXX] l10ntools/source/localize.cxx
> [build CXX] l10ntools/source/pocheck.cxx
> [build CXX] l10ntools/source/propmerge.cxx
> [build CXX] l10ntools/source/propex.cxx
> [build CXX] l10ntools/source/treemerge.cxx
> [build CXX] l10ntools/source/treex.cxx
> [build CXX] libreofficekit/qa/tilebench/tilebench.cxx
> [build CXX] opencl/opencltest/main.cxx
> [build PRL] CustomTarget/postprocess/images/images_breeze.zip
> make[1]: *** [/tmp/guix-build-libreoffice-24.8.2.1.drv-0/libreoffice-24.8.2.1/solenv/gbuild/LinkTarget.mk:335: /tmp/guix-build-libreoffice-24.8.2.1.drv-0/libreoffice-24.8.2.1/workdir/CxxObject/sal/rtl/math.o] Error 1
> make[1]: *** Waiting for unfinished jobs....
> make: *** [Makefile:294: build] Error 2
> --8<---------------cut here---------------end--------------->8---
>
> Could you take a look?
>
> Ludo’.
>
>

Actually these lines were supposed to fix it, they seem to be in the
patch, aren't they?

  @@ -961,6 +967,13 @@ (define-public libreoffice
                                "shell/source/unix/misc/senddoc.sh")
                   (("/usr/bin/xdg-open")
                    (search-input-file inputs "/bin/xdg-open")))
  +
  +              ;; https://issues.guix.gnu.org/43579
  +              (substitute* '("sal/rtl/math.cxx"
  +                             "sc/source/core/tool/math.cxx")
  +                (("std::(fe[gs]etround|feclearexcept|fetestexcept)" all suffix)
  +                 suffix))
  +

Did it not apply correctly?  I think it's the same error as 43579.

-- 
Best regards,
Nicolas Graves




^ permalink raw reply	[flat|nested] 51+ messages in thread

* [bug#73439] [PATCH v5 4/5] gnu: libreoffice: Update to 24.8.2.1.
  2024-11-16  0:04       ` Nicolas Graves via Guix-patches via
@ 2024-11-16 21:38         ` Nicolas Graves via Guix-patches via
  2024-11-17 10:19           ` Nicolas Graves via Guix-patches via
  2024-11-17 16:40           ` Ludovic Courtès
  0 siblings, 2 replies; 51+ messages in thread
From: Nicolas Graves via Guix-patches via @ 2024-11-16 21:38 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 73439

On 2024-11-16 01:04, Nicolas Graves via Guix-patches via wrote:

>
> Actually these lines were supposed to fix it, they seem to be in the
> patch, aren't they?
>
>   @@ -961,6 +967,13 @@ (define-public libreoffice
>                                 "shell/source/unix/misc/senddoc.sh")
>                    (("/usr/bin/xdg-open")
>                     (search-input-file inputs "/bin/xdg-open")))
>   +
>   +              ;; https://issues.guix.gnu.org/43579
>   +              (substitute* '("sal/rtl/math.cxx"
>   +                             "sc/source/core/tool/math.cxx")
>   +                (("std::(fe[gs]etround|feclearexcept|fetestexcept)" all suffix)
>   +                 suffix))
>   +
>
> Did it not apply correctly?  I think it's the same error as 43579.

I don't really know what broke that, possibly recent work on input
ordering.  When putting gcc-12 as the last native-input, it seems to
work properly on my end (whereas alphabetically, I would have the same
error).  All of this is a dirty hack though, but at least it points to
the right issue which is not with libreoffice but 43579.

I'll resubmit a new version updated to the last current libreoffice
version.

-- 
Best regards,
Nicolas Graves




^ permalink raw reply	[flat|nested] 51+ messages in thread

* [bug#73439] [PATCH v5 4/5] gnu: libreoffice: Update to 24.8.2.1.
  2024-11-16 21:38         ` Nicolas Graves via Guix-patches via
@ 2024-11-17 10:19           ` Nicolas Graves via Guix-patches via
  2024-11-17 16:40           ` Ludovic Courtès
  1 sibling, 0 replies; 51+ messages in thread
From: Nicolas Graves via Guix-patches via @ 2024-11-17 10:19 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 73439

On 2024-11-16 22:38, Nicolas Graves via Guix-patches via wrote:

> On 2024-11-16 01:04, Nicolas Graves via Guix-patches via wrote:
>
>>
>> Actually these lines were supposed to fix it, they seem to be in the
>> patch, aren't they?
>>
>>   @@ -961,6 +967,13 @@ (define-public libreoffice
>>                                 "shell/source/unix/misc/senddoc.sh")
>>                    (("/usr/bin/xdg-open")
>>                     (search-input-file inputs "/bin/xdg-open")))
>>   +
>>   +              ;; https://issues.guix.gnu.org/43579
>>   +              (substitute* '("sal/rtl/math.cxx"
>>   +                             "sc/source/core/tool/math.cxx")
>>   +                (("std::(fe[gs]etround|feclearexcept|fetestexcept)" all suffix)
>>   +                 suffix))
>>   +
>>
>> Did it not apply correctly?  I think it's the same error as 43579.
>
> I don't really know what broke that, possibly recent work on input
> ordering.  When putting gcc-12 as the last native-input, it seems to
> work properly on my end (whereas alphabetically, I would have the same
> error).  All of this is a dirty hack though, but at least it points to
> the right issue which is not with libreoffice but 43579.

That was actually not true, it failed eventually.

> I'll resubmit a new version updated to the last current libreoffice
> version.

So strange, now it refuses to build again.

I tried with gcc-toolchain-12 yesterday, it built properlty, and then
after some cleanup this morning, not anymore.  The issue is definitely
in Guix and not in Libreoffice. 

-- 
Best regards,
Nicolas Graves




^ permalink raw reply	[flat|nested] 51+ messages in thread

* [bug#73439] [PATCH v5 4/5] gnu: libreoffice: Update to 24.8.2.1.
  2024-11-16 21:38         ` Nicolas Graves via Guix-patches via
  2024-11-17 10:19           ` Nicolas Graves via Guix-patches via
@ 2024-11-17 16:40           ` Ludovic Courtès
  1 sibling, 0 replies; 51+ messages in thread
From: Ludovic Courtès @ 2024-11-17 16:40 UTC (permalink / raw)
  To: Nicolas Graves; +Cc: 73439

Hi,

Nicolas Graves <ngraves@ngraves.fr> skribis:

>> Did it not apply correctly?  I think it's the same error as 43579.
>
> I don't really know what broke that, possibly recent work on input
> ordering.  When putting gcc-12 as the last native-input, it seems to
> work properly on my end (whereas alphabetically, I would have the same
> error).  All of this is a dirty hack though, but at least it points to
> the right issue which is not with libreoffice but 43579.

‘dune-istl’ has this workaround for bug#43579:

--8<---------------cut here---------------start------------->8---
     ;; XXX: istl/test/matrixtest.cc includes <fenv.h> and fails to find
     ;; the stdlib types when the gfortran header is used.  Remove gfortran
     ;; from CPLUS_INCLUDE_PATH as a workaround.
     (add-after 'set-paths 'hide-gfortran
       (lambda* (#:key inputs #:allow-other-keys)
         (let ((gfortran (assoc-ref inputs "gfortran")))
           (setenv "CPLUS_INCLUDE_PATH"
                   (string-join
                    (delete (string-append gfortran "/include/c++")
                            (string-split (getenv "CPLUS_INCLUDE_PATH") #\:))
                    ":"))
           #t)))
--8<---------------cut here---------------end--------------->8---

Maybe we can do something similar here?

HTH,
Ludo’.




^ permalink raw reply	[flat|nested] 51+ messages in thread

* [bug#73439] [PATCH v5] gnu: libreoffice: Update to 24.8.3.2.
  2024-09-23 12:15 [bug#73439] [PATCH 00/10] Update libreoffice to its latest version Nicolas Graves via Guix-patches via
                   ` (5 preceding siblings ...)
  2024-10-16 17:07 ` [bug#73439] [PATCH v5 1/5] import: Add %libreoffice-updater Nicolas Graves via Guix-patches via
@ 2024-11-19  7:31 ` Nicolas Graves via Guix-patches via
  2024-11-20 12:13   ` Ludovic Courtès
  2024-11-28 12:52   ` Nicolas Graves via Guix-patches via
  2024-11-28 12:55 ` [bug#73439] [PATCH v6] " Nicolas Graves via Guix-patches via
  7 siblings, 2 replies; 51+ messages in thread
From: Nicolas Graves via Guix-patches via @ 2024-11-19  7:31 UTC (permalink / raw)
  To: 73439; +Cc: ludo, Nicolas Graves

* gnu/packages/libreoffice.scm (libreoffice): Update to 24.8.3.2.
[source]<uri>: Add secondary uri.
[arguments]<#:phases>: Fix build issue related to issue 43579 in phase
'prepare-src.
[configure-flags]: Add optimising flags --disable-cve-tests,
--enable-readonly-installset, --disable-dependency-tracking.
[native-inputs]: Add gcc-toolchain-12.
[inputs]: Add argon2, zxcvbn-c.

Change-Id: I72e0ebb4d075c47ea168b181f969a97f9249150a
---
 gnu/packages/libreoffice.scm | 57 ++++++++++++++++++++++++++++++------
 1 file changed, 48 insertions(+), 9 deletions(-)

diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm
index ed8dfd432b..22112ccee7 100644
--- a/gnu/packages/libreoffice.scm
+++ b/gnu/packages/libreoffice.scm
@@ -13,7 +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>
+;;; Copyright © 2023, 2024 Nicolas Graves <ngraves@ngraves.fr>
 ;;; Copyright © 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -63,6 +63,7 @@ (define-module (gnu packages libreoffice)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages game-development)
+  #:use-module (gnu packages gcc)
   #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
@@ -80,6 +81,7 @@ (define-module (gnu packages libreoffice)
   #:use-module (gnu packages maths)
   #:use-module (gnu packages nss)
   #:use-module (gnu packages openldap)
+  #:use-module (gnu packages password-utils)
   #:use-module (gnu packages pdf)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages perl-compression)
@@ -891,16 +893,20 @@ (define dtoa
 (define-public libreoffice
   (package
     (name "libreoffice")
-    (version "7.6.7.2")               ;keep in sync with hunspell dictionaries
+    (version "24.8.3.2")               ;keep in sync with hunspell dictionaries
     (source
      (origin
        (method url-fetch)
        (uri
-        (string-append
-         "https://download.documentfoundation.org/libreoffice/src/"
-         (version-prefix version 3) "/libreoffice-" version ".tar.xz"))
+        (list
+         (string-append
+          "https://download.documentfoundation.org/libreoffice/src/"
+          (version-prefix version 3) "/libreoffice-" version ".tar.xz")
+         (string-append
+          "https://downloadarchive.documentfoundation.org/libreoffice/old/"
+          version "/src/libreoffice-" version ".tar.xz")))
        (sha256
-        (base32 "159vbv4zhibfd4xjdamcqs4h0p3h5y79kcjwrmshvjhs23p55l3m"))))
+        (base32 "1sa7bxxh7v26p77vj1mspynhn2l2b1vnz1mpyczhnmcxcan9nw2x"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      (list
@@ -908,6 +914,8 @@ (define-public libreoffice
                            ,@%glib-or-gtk-build-system-modules)
       #:modules `(((guix build python-build-system) #:select (python-version))
                   (ice-9 textual-ports)
+                  (srfi srfi-1)
+                  (srfi srfi-26)
                   ,@%glib-or-gtk-build-system-modules)
       #:tests? #f                       ; Building the tests already fails.
       #:phases
@@ -961,7 +969,29 @@ (define-public libreoffice
                              "shell/source/unix/misc/senddoc.sh")
                 (("/usr/bin/xdg-open")
                  (search-input-file inputs "/bin/xdg-open")))
-              (setenv "CPPFLAGS" "-std=c++17")))
+
+              ;; https://issues.guix.gnu.org/43579
+              (substitute* '("sal/rtl/math.cxx"
+                               "sc/source/core/tool/math.cxx")
+                  (("std::(fe[gs]etround|feclearexcept|fetestexcept)" all suffix)
+                   suffix))
+              (let ((gcc-11-dir (dirname
+                                 (dirname
+                                  (dirname
+                                   (search-input-directory
+                                    inputs "share/doc/gcc-11.4.0"))))))
+                (setenv
+                 "CPLUS_INCLUDE_PATH"
+                 (string-join
+                  (remove
+                   (cut member <>
+                        (list
+                         (string-append gcc-11-dir "/include/c++")
+                         (string-append gcc-11-dir "/include")))
+                   (string-split (getenv "CPLUS_INCLUDE_PATH") #\:))
+                  ":")))
+
+              (setenv "CPPFLAGS" "-std=c++20")))
           (add-after 'install 'reset-zip-timestamps
             (lambda _
               (for-each (lambda (file)
@@ -1077,18 +1107,26 @@ (define (install-python-script name)
          "--enable-lto"
          ;; Avoid errors rebuilding the Gtk icon cache, at least on i686-linux.
          "--without-galleries"
-         "--enable-build-opensymbol")))
+         "--enable-build-opensymbol"
+         ;; Avoid CVE tests.
+         "--disable-cve-tests"
+         ;; Do not try to write to the store.
+         "--enable-readonly-installset"
+         ;; XXX: This flag should speed-up builds.
+         "--disable-dependency-tracking")))
     (native-inputs
      (list bison
            cppunit
            flex
            frozen                       ;header-only library
+           gcc-12
            pkg-config
            python-wrapper
            which
            ziptime))
     (inputs
-     (list bluez
+     (list argon2
+           bluez
            boost
            box2d
            clucene
@@ -1168,6 +1206,7 @@ (define (install-python-script name)
            xdg-utils
            xmlsec-nss
            zip
+           zxcvbn-c
            zxing-cpp))
     (home-page "https://www.libreoffice.org/")
     (synopsis "Office suite")
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 51+ messages in thread

* [bug#73439] [PATCH v5] gnu: libreoffice: Update to 24.8.3.2.
  2024-11-19  7:31 ` [bug#73439] [PATCH v5] gnu: libreoffice: Update to 24.8.3.2 Nicolas Graves via Guix-patches via
@ 2024-11-20 12:13   ` Ludovic Courtès
  2024-11-20 14:05     ` Nicolas Graves via Guix-patches via
  2024-11-28 12:52   ` Nicolas Graves via Guix-patches via
  1 sibling, 1 reply; 51+ messages in thread
From: Ludovic Courtès @ 2024-11-20 12:13 UTC (permalink / raw)
  To: Nicolas Graves; +Cc: 73439

Hi,

Nicolas Graves <ngraves@ngraves.fr> skribis:

> * gnu/packages/libreoffice.scm (libreoffice): Update to 24.8.3.2.
> [source]<uri>: Add secondary uri.
> [arguments]<#:phases>: Fix build issue related to issue 43579 in phase
> 'prepare-src.
> [configure-flags]: Add optimising flags --disable-cve-tests,
> --enable-readonly-installset, --disable-dependency-tracking.
> [native-inputs]: Add gcc-toolchain-12.
> [inputs]: Add argon2, zxcvbn-c.
>
> Change-Id: I72e0ebb4d075c47ea168b181f969a97f9249150a
> +              ;; https://issues.guix.gnu.org/43579
> +              (substitute* '("sal/rtl/math.cxx"
> +                               "sc/source/core/tool/math.cxx")
> +                  (("std::(fe[gs]etround|feclearexcept|fetestexcept)" all suffix)
> +                   suffix))

I doubt removing “std:” is necessary, is it?

> +              (let ((gcc-11-dir (dirname
> +                                 (dirname
> +                                  (dirname
> +                                   (search-input-directory
> +                                    inputs "share/doc/gcc-11.4.0"))))))

Or just (search-input-directory inputs "/include/c++") ?

That would be more consistent (and concise :-)) since this is about
setting CPLUS_INCLUDE_PATH.

Otherwise LGTM, thanks!

Ludo’.




^ permalink raw reply	[flat|nested] 51+ messages in thread

* [bug#73439] [PATCH v5] gnu: libreoffice: Update to 24.8.3.2.
  2024-11-20 12:13   ` Ludovic Courtès
@ 2024-11-20 14:05     ` Nicolas Graves via Guix-patches via
  2024-11-20 17:25       ` Nicolas Graves via Guix-patches via
  0 siblings, 1 reply; 51+ messages in thread
From: Nicolas Graves via Guix-patches via @ 2024-11-20 14:05 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 73439

On 2024-11-20 13:13, Ludovic Courtès wrote:

> Hi,
>
> Nicolas Graves <ngraves@ngraves.fr> skribis:
>
>> * gnu/packages/libreoffice.scm (libreoffice): Update to 24.8.3.2.
>> [source]<uri>: Add secondary uri.
>> [arguments]<#:phases>: Fix build issue related to issue 43579 in phase
>> 'prepare-src.
>> [configure-flags]: Add optimising flags --disable-cve-tests,
>> --enable-readonly-installset, --disable-dependency-tracking.
>> [native-inputs]: Add gcc-toolchain-12.
>> [inputs]: Add argon2, zxcvbn-c.
>>
>> Change-Id: I72e0ebb4d075c47ea168b181f969a97f9249150a
>> +              ;; https://issues.guix.gnu.org/43579
>> +              (substitute* '("sal/rtl/math.cxx"
>> +                               "sc/source/core/tool/math.cxx")
>> +                  (("std::(fe[gs]etround|feclearexcept|fetestexcept)" all suffix)
>> +                   suffix))
>
> I doubt removing “std:” is necessary, is it?

I can retry without, but I think the error still happens. The
CPLUS_INCLUDE_PATH fix is only fixing the error you were experiencing,
not the one I had at first.  I can still fiddle with that and remove
more in the CPLUS_INCLUDE_PATH, but I've tried a lot of variations
(including not removing std::) and this configuration is the only I
manage to build the whole thing with.

>> +              (let ((gcc-11-dir (dirname
>> +                                 (dirname
>> +                                  (dirname
>> +                                   (search-input-directory
>> +                                    inputs "share/doc/gcc-11.4.0"))))))
>
> Or just (search-input-directory inputs "/include/c++") ?
>
> That would be more consistent (and concise :-)) since this is about
> setting CPLUS_INCLUDE_PATH.

When trying that, it will remove the gcc-12 one, not the gcc-11 one,
which I think is the one causing the bug.  I know it's not pretty, but
since we explicitely put gcc-12 in inputs, I'm fine with explicitely
citing gcc-11. I can use package-version if better for gcc-11,
but we can't just search-directory-inputs here. 

> Otherwise LGTM, thanks!
>
> Ludo’.
>
>
>

-- 
Best regards,
Nicolas Graves




^ permalink raw reply	[flat|nested] 51+ messages in thread

* [bug#73439] [PATCH v5] gnu: libreoffice: Update to 24.8.3.2.
  2024-11-20 14:05     ` Nicolas Graves via Guix-patches via
@ 2024-11-20 17:25       ` Nicolas Graves via Guix-patches via
  0 siblings, 0 replies; 51+ messages in thread
From: Nicolas Graves via Guix-patches via @ 2024-11-20 17:25 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 73439

On 2024-11-20 15:05, Nicolas Graves via Guix-patches via wrote:

> On 2024-11-20 13:13, Ludovic Courtès wrote:
>> I doubt removing “std:” is necessary, is it?
>
> I can retry without, but I think the error still happens. The
> CPLUS_INCLUDE_PATH fix is only fixing the error you were experiencing,
> not the one I had at first.  I can still fiddle with that and remove
> more in the CPLUS_INCLUDE_PATH, but I've tried a lot of variations
> (including not removing std::) and this configuration is the only I
> manage to build the whole thing with.

I can confirm that it's not trivial to do better, and that the std::
removal is necessary.

-- 
Best regards,
Nicolas Graves




^ permalink raw reply	[flat|nested] 51+ messages in thread

* [bug#73439] [PATCH v5] gnu: libreoffice: Update to 24.8.3.2.
  2024-11-19  7:31 ` [bug#73439] [PATCH v5] gnu: libreoffice: Update to 24.8.3.2 Nicolas Graves via Guix-patches via
  2024-11-20 12:13   ` Ludovic Courtès
@ 2024-11-28 12:52   ` Nicolas Graves via Guix-patches via
  1 sibling, 0 replies; 51+ messages in thread
From: Nicolas Graves via Guix-patches via @ 2024-11-28 12:52 UTC (permalink / raw)
  To: 73439; +Cc: ludo

On 2024-11-19 08:31, Nicolas Graves via Guix-patches via wrote:

> * gnu/packages/libreoffice.scm (libreoffice): Update to 24.8.3.2.
> [source]<uri>: Add secondary uri.
> [arguments]<#:phases>: Fix build issue related to issue 43579 in phase
> 'prepare-src.
> [configure-flags]: Add optimising flags --disable-cve-tests,
> --enable-readonly-installset, --disable-dependency-tracking.
> [native-inputs]: Add gcc-toolchain-12.
> [inputs]: Add argon2, zxcvbn-c.

Wrongly sent as a v5, resending as a v6.

-- 
Best regards,
Nicolas Graves




^ permalink raw reply	[flat|nested] 51+ messages in thread

* [bug#73439] [PATCH v6] gnu: libreoffice: Update to 24.8.3.2.
  2024-09-23 12:15 [bug#73439] [PATCH 00/10] Update libreoffice to its latest version Nicolas Graves via Guix-patches via
                   ` (6 preceding siblings ...)
  2024-11-19  7:31 ` [bug#73439] [PATCH v5] gnu: libreoffice: Update to 24.8.3.2 Nicolas Graves via Guix-patches via
@ 2024-11-28 12:55 ` Nicolas Graves via Guix-patches via
  7 siblings, 0 replies; 51+ messages in thread
From: Nicolas Graves via Guix-patches via @ 2024-11-28 12:55 UTC (permalink / raw)
  To: 73439; +Cc: ludo, Nicolas Graves

* gnu/packages/libreoffice.scm (libreoffice): Update to 24.8.3.2.
[source]<uri>: Add secondary uri.
[arguments]<#:phases>: Fix build issue related to issue 43579 in phase
'prepare-src.
[configure-flags]: Add optimising flags --disable-cve-tests,
--enable-readonly-installset, --disable-dependency-tracking.
[native-inputs]: Add gcc-toolchain-12.
[inputs]: Add argon2, zxcvbn-c.

Change-Id: I72e0ebb4d075c47ea168b181f969a97f9249150a
---
 gnu/packages/libreoffice.scm | 57 ++++++++++++++++++++++++++++++------
 1 file changed, 48 insertions(+), 9 deletions(-)

diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm
index ed8dfd432b..22112ccee7 100644
--- a/gnu/packages/libreoffice.scm
+++ b/gnu/packages/libreoffice.scm
@@ -13,7 +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>
+;;; Copyright © 2023, 2024 Nicolas Graves <ngraves@ngraves.fr>
 ;;; Copyright © 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -63,6 +63,7 @@ (define-module (gnu packages libreoffice)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages game-development)
+  #:use-module (gnu packages gcc)
   #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
@@ -80,6 +81,7 @@ (define-module (gnu packages libreoffice)
   #:use-module (gnu packages maths)
   #:use-module (gnu packages nss)
   #:use-module (gnu packages openldap)
+  #:use-module (gnu packages password-utils)
   #:use-module (gnu packages pdf)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages perl-compression)
@@ -891,16 +893,20 @@ (define dtoa
 (define-public libreoffice
   (package
     (name "libreoffice")
-    (version "7.6.7.2")               ;keep in sync with hunspell dictionaries
+    (version "24.8.3.2")               ;keep in sync with hunspell dictionaries
     (source
      (origin
        (method url-fetch)
        (uri
-        (string-append
-         "https://download.documentfoundation.org/libreoffice/src/"
-         (version-prefix version 3) "/libreoffice-" version ".tar.xz"))
+        (list
+         (string-append
+          "https://download.documentfoundation.org/libreoffice/src/"
+          (version-prefix version 3) "/libreoffice-" version ".tar.xz")
+         (string-append
+          "https://downloadarchive.documentfoundation.org/libreoffice/old/"
+          version "/src/libreoffice-" version ".tar.xz")))
        (sha256
-        (base32 "159vbv4zhibfd4xjdamcqs4h0p3h5y79kcjwrmshvjhs23p55l3m"))))
+        (base32 "1sa7bxxh7v26p77vj1mspynhn2l2b1vnz1mpyczhnmcxcan9nw2x"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      (list
@@ -908,6 +914,8 @@ (define-public libreoffice
                            ,@%glib-or-gtk-build-system-modules)
       #:modules `(((guix build python-build-system) #:select (python-version))
                   (ice-9 textual-ports)
+                  (srfi srfi-1)
+                  (srfi srfi-26)
                   ,@%glib-or-gtk-build-system-modules)
       #:tests? #f                       ; Building the tests already fails.
       #:phases
@@ -961,7 +969,29 @@ (define-public libreoffice
                              "shell/source/unix/misc/senddoc.sh")
                 (("/usr/bin/xdg-open")
                  (search-input-file inputs "/bin/xdg-open")))
-              (setenv "CPPFLAGS" "-std=c++17")))
+
+              ;; https://issues.guix.gnu.org/43579
+              (substitute* '("sal/rtl/math.cxx"
+                               "sc/source/core/tool/math.cxx")
+                  (("std::(fe[gs]etround|feclearexcept|fetestexcept)" all suffix)
+                   suffix))
+              (let ((gcc-11-dir (dirname
+                                 (dirname
+                                  (dirname
+                                   (search-input-directory
+                                    inputs "share/doc/gcc-11.4.0"))))))
+                (setenv
+                 "CPLUS_INCLUDE_PATH"
+                 (string-join
+                  (remove
+                   (cut member <>
+                        (list
+                         (string-append gcc-11-dir "/include/c++")
+                         (string-append gcc-11-dir "/include")))
+                   (string-split (getenv "CPLUS_INCLUDE_PATH") #\:))
+                  ":")))
+
+              (setenv "CPPFLAGS" "-std=c++20")))
           (add-after 'install 'reset-zip-timestamps
             (lambda _
               (for-each (lambda (file)
@@ -1077,18 +1107,26 @@ (define (install-python-script name)
          "--enable-lto"
          ;; Avoid errors rebuilding the Gtk icon cache, at least on i686-linux.
          "--without-galleries"
-         "--enable-build-opensymbol")))
+         "--enable-build-opensymbol"
+         ;; Avoid CVE tests.
+         "--disable-cve-tests"
+         ;; Do not try to write to the store.
+         "--enable-readonly-installset"
+         ;; XXX: This flag should speed-up builds.
+         "--disable-dependency-tracking")))
     (native-inputs
      (list bison
            cppunit
            flex
            frozen                       ;header-only library
+           gcc-12
            pkg-config
            python-wrapper
            which
            ziptime))
     (inputs
-     (list bluez
+     (list argon2
+           bluez
            boost
            box2d
            clucene
@@ -1168,6 +1206,7 @@ (define (install-python-script name)
            xdg-utils
            xmlsec-nss
            zip
+           zxcvbn-c
            zxing-cpp))
     (home-page "https://www.libreoffice.org/")
     (synopsis "Office suite")
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 51+ messages in thread

end of thread, other threads:[~2024-11-28 12:56 UTC | newest]

Thread overview: 51+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-09-23 12:15 [bug#73439] [PATCH 00/10] Update libreoffice to its latest version Nicolas Graves via Guix-patches via
2024-09-23 12:37 ` [bug#73439] [PATCH 01/10] import: Add %libreoffice-updater Nicolas Graves via Guix-patches via
2024-09-23 12:37   ` [bug#73439] [PATCH 02/10] gnu: libreoffice: Update to 24.2.0.3 Nicolas Graves via Guix-patches via
2024-09-23 12:37   ` [bug#73439] [PATCH 03/10] gnu: libreoffice: Update to 24.2.1.2 Nicolas Graves via Guix-patches via
2024-09-23 12:37   ` [bug#73439] [PATCH 04/10] gnu: libreoffice: Update to 24.2.2.2 Nicolas Graves via Guix-patches via
2024-09-23 12:37   ` [bug#73439] [PATCH 05/10] gnu: libreoffice: Update to 24.2.3.2 Nicolas Graves via Guix-patches via
2024-09-23 12:37   ` [bug#73439] [PATCH 06/10] gnu: libreoffice: Update to 24.2.4.2 Nicolas Graves via Guix-patches via
2024-09-23 12:37   ` [bug#73439] [PATCH 07/10] gnu: libreoffice: Update to 24.2.5.2 Nicolas Graves via Guix-patches via
2024-09-23 12:37   ` [bug#73439] [PATCH 08/10] gnu: libreoffice: Update to 24.2.6.2 Nicolas Graves via Guix-patches via
2024-09-23 12:37   ` [bug#73439] [PATCH 09/10] gnu: libreoffice: Update to 24.8.1.2 Nicolas Graves via Guix-patches via
2024-09-23 12:37   ` [bug#73439] [PATCH 10/10] gnu: hunspell-dictionaries: " Nicolas Graves via Guix-patches via
2024-09-23 18:35 ` [bug#73439] [PATCH 00/10] Update libreoffice to its latest version Liliana Marie Prikler
2024-09-24 14:29   ` Nicolas Graves via Guix-patches via
2024-09-24 17:03     ` Liliana Marie Prikler
2024-09-25  7:52       ` Nicolas Graves via Guix-patches via
2024-09-25 15:43         ` Liliana Marie Prikler
2024-10-14 13:31         ` Simon Josefsson via Guix-patches via
2024-10-16 15:26           ` Nicolas Graves via Guix-patches via
2024-09-25  7:40 ` [bug#73439] [PATCH v2 1/5] import: Add %libreoffice-updater Nicolas Graves via Guix-patches via
2024-09-25  7:40   ` [bug#73439] [PATCH v2 2/5] gnu: libreoffice: Update to 24.2.0.3 Nicolas Graves via Guix-patches via
2024-09-25  7:40   ` [bug#73439] [PATCH v2 3/5] gnu: libreoffice: Update to 24.8.1.2 Nicolas Graves via Guix-patches via
2024-09-25  7:40   ` [bug#73439] [PATCH v2 4/5] gnu: hunspell-dictionaries: " Nicolas Graves via Guix-patches via
2024-09-25  7:40   ` [bug#73439] [PATCH v2 5/5] gnu: Add libreoffice-lts Nicolas Graves via Guix-patches via
2024-09-26  7:50 ` [bug#73439] [PATCH v3 1/4] import: Add %libreoffice-updater Nicolas Graves via Guix-patches via
2024-09-26  7:50   ` [bug#73439] [PATCH v3 2/4] gnu: libreoffice: Update to 24.2.0.3 Nicolas Graves via Guix-patches via
2024-09-26  7:50   ` [bug#73439] [PATCH v3 3/4] gnu: libreoffice: Update to 24.2.6.2 Nicolas Graves via Guix-patches via
2024-09-26  7:50   ` [bug#73439] [PATCH v3 4/4] gnu: hunspell-dictionary: " Nicolas Graves via Guix-patches via
2024-10-01 14:54 ` [bug#73439] [PATCH v4 1/4] import: Add %libreoffice-updater Nicolas Graves via Guix-patches via
2024-10-01 14:54   ` [bug#73439] [PATCH v4 2/4] gnu: libreoffice: Update to 24.2.0.3 Nicolas Graves via Guix-patches via
2024-10-01 14:54   ` [bug#73439] [PATCH v4 3/4] gnu: libreoffice: Update to 24.2.6.2 Nicolas Graves via Guix-patches via
2024-10-01 14:54   ` [bug#73439] [PATCH v4 4/4] gnu: hunspell-dictionary: " Nicolas Graves via Guix-patches via
2024-10-16 17:07 ` [bug#73439] [PATCH v5 1/5] import: Add %libreoffice-updater Nicolas Graves via Guix-patches via
2024-10-16 17:07   ` [bug#73439] [PATCH v5 2/5] gnu: libreoffice: Update to 24.2.0.3 Nicolas Graves via Guix-patches via
2024-10-16 17:07   ` [bug#73439] [PATCH v5 3/5] gnu: libreoffice: Update to 24.2.6.2 Nicolas Graves via Guix-patches via
2024-10-16 17:07   ` [bug#73439] [PATCH v5 4/5] gnu: libreoffice: Update to 24.8.2.1 Nicolas Graves via Guix-patches via
2024-11-15 16:48     ` Ludovic Courtès
2024-11-16  0:04       ` Nicolas Graves via Guix-patches via
2024-11-16 21:38         ` Nicolas Graves via Guix-patches via
2024-11-17 10:19           ` Nicolas Graves via Guix-patches via
2024-11-17 16:40           ` Ludovic Courtès
2024-10-16 17:07   ` [bug#73439] [PATCH v5 5/5] gnu: hunspell-dictionary: " Nicolas Graves via Guix-patches via
2024-11-15 16:49     ` Ludovic Courtès
2024-10-18 12:31   ` [bug#73439] [PATCH v5 1/5] import: Add %libreoffice-updater Ludovic Courtès
2024-10-18 14:29     ` Nicolas Graves via Guix-patches via
2024-10-21 15:40       ` Ludovic Courtès
2024-11-19  7:31 ` [bug#73439] [PATCH v5] gnu: libreoffice: Update to 24.8.3.2 Nicolas Graves via Guix-patches via
2024-11-20 12:13   ` Ludovic Courtès
2024-11-20 14:05     ` Nicolas Graves via Guix-patches via
2024-11-20 17:25       ` Nicolas Graves via Guix-patches via
2024-11-28 12:52   ` Nicolas Graves via Guix-patches via
2024-11-28 12:55 ` [bug#73439] [PATCH v6] " Nicolas Graves via Guix-patches via

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.