[PATCH 00/10] Update libreoffice to its latest version.

  • Done
  • quality assurance status badge
Details
4 participants
  • Liliana Marie Prikler
  • Ludovic Courtès
  • Nicolas Graves
  • Simon Josefsson
Owner
unassigned
Submitted by
Nicolas Graves
Severity
normal
Blocked by
N
N
Nicolas Graves wrote on 23 Sep 14:15 +0200
(address . guix-patches@gnu.org)(name . Nicolas Graves)(address . ngraves@ngraves.fr)
20240923122128.14126-1-ngraves@ngraves.fr
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
N
N
Nicolas Graves wrote on 23 Sep 14:37 +0200
[PATCH 01/10] import: Add %libreoffice-updater.
(address . 73439@debbugs.gnu.org)(name . Nicolas Graves)(address . ngraves@ngraves.fr)
20240923123731.18571-1-ngraves@ngraves.fr
Change-Id: I481b1175db531c4fea4a57838fe190f679cd1a85
---
Makefile.am | 1 +
guix/import/libreoffice.scm | 98 +++++++++++++++++++++++++++++++++++++
2 files changed, 99 insertions(+)
create mode 100644 guix/import/libreoffice.scm

Toggle diff (118 lines)
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
N
N
Nicolas Graves wrote on 23 Sep 14:37 +0200
[PATCH 02/10] gnu: libreoffice: Update to 24.2.0.3.
(address . 73439@debbugs.gnu.org)(name . Nicolas Graves)(address . ngraves@ngraves.fr)
20240923123731.18571-2-ngraves@ngraves.fr
* 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(-)

Toggle diff (94 lines)
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
N
N
Nicolas Graves wrote on 23 Sep 14:37 +0200
[PATCH 03/10] gnu: libreoffice: Update to 24.2.1.2.
(address . 73439@debbugs.gnu.org)(name . Nicolas Graves)(address . ngraves@ngraves.fr)
20240923123731.18571-3-ngraves@ngraves.fr
* 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(-)

Toggle diff (24 lines)
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
N
N
Nicolas Graves wrote on 23 Sep 14:37 +0200
[PATCH 04/10] gnu: libreoffice: Update to 24.2.2.2.
(address . 73439@debbugs.gnu.org)(name . Nicolas Graves)(address . ngraves@ngraves.fr)
20240923123731.18571-4-ngraves@ngraves.fr
* 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(-)

Toggle diff (24 lines)
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
N
N
Nicolas Graves wrote on 23 Sep 14:37 +0200
[PATCH 05/10] gnu: libreoffice: Update to 24.2.3.2.
(address . 73439@debbugs.gnu.org)(name . Nicolas Graves)(address . ngraves@ngraves.fr)
20240923123731.18571-5-ngraves@ngraves.fr
* 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(-)

Toggle diff (24 lines)
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
N
N
Nicolas Graves wrote on 23 Sep 14:37 +0200
[PATCH 06/10] gnu: libreoffice: Update to 24.2.4.2.
(address . 73439@debbugs.gnu.org)(name . Nicolas Graves)(address . ngraves@ngraves.fr)
20240923123731.18571-6-ngraves@ngraves.fr
* 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(-)

Toggle diff (24 lines)
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
N
N
Nicolas Graves wrote on 23 Sep 14:37 +0200
[PATCH 07/10] gnu: libreoffice: Update to 24.2.5.2.
(address . 73439@debbugs.gnu.org)(name . Nicolas Graves)(address . ngraves@ngraves.fr)
20240923123731.18571-7-ngraves@ngraves.fr
* 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(-)

Toggle diff (24 lines)
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
N
N
Nicolas Graves wrote on 23 Sep 14:37 +0200
[PATCH 08/10] gnu: libreoffice: Update to 24.2.6.2.
(address . 73439@debbugs.gnu.org)(name . Nicolas Graves)(address . ngraves@ngraves.fr)
20240923123731.18571-8-ngraves@ngraves.fr
* 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(-)

Toggle diff (24 lines)
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
N
N
Nicolas Graves wrote on 23 Sep 14:37 +0200
[PATCH 09/10] gnu: libreoffice: Update to 24.8.1.2.
(address . 73439@debbugs.gnu.org)(name . Nicolas Graves)(address . ngraves@ngraves.fr)
20240923123731.18571-9-ngraves@ngraves.fr
* 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(-)

Toggle diff (24 lines)
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
N
N
Nicolas Graves wrote on 23 Sep 14:37 +0200
[PATCH 10/10] gnu: hunspell-dictionaries: Update to 24.8.1.2.
(address . 73439@debbugs.gnu.org)(name . Nicolas Graves)(address . ngraves@ngraves.fr)
20240923123731.18571-10-ngraves@ngraves.fr
* 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(-)

Toggle diff (28 lines)
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
L
L
Liliana Marie Prikler wrote on 23 Sep 20:35 +0200
Re: [PATCH 00/10] Update libreoffice to its latest version.
6c566955f6a8a134a36523503c179fa7f43ed073.camel@gmail.com
Am Montag, dem 23.09.2024 um 14:15 +0200 schrieb Nicolas Graves:
Toggle quote (6 lines)
> 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?

Toggle quote (2 lines)
> Nicolas Graves (10):
>   import: Add %libreoffice-updater.
LGTM
Toggle quote (9 lines)
>   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
N
N
Nicolas Graves wrote on 24 Sep 16:29 +0200
Re: [bug#73439] [PATCH 00/10] Update libreoffice to its latest version.
87ed59w2e7.fsf@ngraves.fr
On 2024-09-23 20:35, Liliana Marie Prikler wrote:

Toggle quote (10 lines)
> 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:

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.

Toggle quote (17 lines)
>
>> 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
L
L
Liliana Marie Prikler wrote on 24 Sep 19:03 +0200
b9e0bbfa10ceb5d999992830fb964f4ba01a46a1.camel@gmail.com
Am Dienstag, dem 24.09.2024 um 16:29 +0200 schrieb Nicolas Graves:
Toggle quote (17 lines)
> 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.

Toggle quote (10 lines)
> 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?

Toggle quote (23 lines)
> >
> > > 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
N
N
Nicolas Graves wrote on 25 Sep 09:40 +0200
[PATCH v2 2/5] gnu: libreoffice: Update to 24.2.0.3.
(address . 73439@debbugs.gnu.org)
20240925074053.27623-2-ngraves@ngraves.fr
* 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(-)

Toggle diff (94 lines)
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
N
N
Nicolas Graves wrote on 25 Sep 09:40 +0200
[PATCH v2 1/5] import: Add %libreoffice-updater.
(address . 73439@debbugs.gnu.org)
20240925074053.27623-1-ngraves@ngraves.fr
Change-Id: I481b1175db531c4fea4a57838fe190f679cd1a85
---
Makefile.am | 1 +
guix/import/libreoffice.scm | 98 +++++++++++++++++++++++++++++++++++++
2 files changed, 99 insertions(+)
create mode 100644 guix/import/libreoffice.scm

Toggle diff (118 lines)
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
N
N
Nicolas Graves wrote on 25 Sep 09:40 +0200
[PATCH v2 3/5] gnu: libreoffice: Update to 24.8.1.2.
(address . 73439@debbugs.gnu.org)
20240925074053.27623-3-ngraves@ngraves.fr
* 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(-)

Toggle diff (24 lines)
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
N
N
Nicolas Graves wrote on 25 Sep 09:40 +0200
[PATCH v2 4/5] gnu: hunspell-dictionaries: Update to 24.8.1.2.
(address . 73439@debbugs.gnu.org)
20240925074053.27623-4-ngraves@ngraves.fr
* 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(-)

Toggle diff (28 lines)
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
N
N
Nicolas Graves wrote on 25 Sep 09:40 +0200
[PATCH v2 5/5] gnu: Add libreoffice-lts.
(address . 73439@debbugs.gnu.org)
20240925074053.27623-5-ngraves@ngraves.fr
* gnu/packages/libreoffice.scm (libreoffice-lts): New variable.

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

Toggle diff (54 lines)
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
N
N
Nicolas Graves wrote on 25 Sep 09:52 +0200
Re: [bug#73439] [PATCH 00/10] Update libreoffice to its latest version.
8734low4ov.fsf@ngraves.fr
On 2024-09-24 19:03, Liliana Marie Prikler wrote:

Toggle quote (5 lines)
>> 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
L
L
Liliana Marie Prikler wrote on 25 Sep 17:43 +0200
625dacc3f586d2732953485855f63e51bcbf5396.camel@gmail.com
Am Mittwoch, dem 25.09.2024 um 09:52 +0200 schrieb Nicolas Graves:
Toggle quote (22 lines)
> 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?
N
N
Nicolas Graves wrote on 26 Sep 09:50 +0200
[PATCH v3 1/4] import: Add %libreoffice-updater.
(address . 73439@debbugs.gnu.org)(name . Nicolas Graves)(address . ngraves@ngraves.fr)
20240926075102.24531-1-ngraves@ngraves.fr
Change-Id: I481b1175db531c4fea4a57838fe190f679cd1a85
---
Makefile.am | 1 +
guix/import/libreoffice.scm | 98 +++++++++++++++++++++++++++++++++++++
2 files changed, 99 insertions(+)
create mode 100644 guix/import/libreoffice.scm

Toggle diff (118 lines)
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
N
N
Nicolas Graves wrote on 26 Sep 09:50 +0200
[PATCH v3 2/4] gnu: libreoffice: Update to 24.2.0.3.
(address . 73439@debbugs.gnu.org)(name . Nicolas Graves)(address . ngraves@ngraves.fr)
20240926075102.24531-2-ngraves@ngraves.fr
* 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(-)

Toggle diff (94 lines)
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
N
N
Nicolas Graves wrote on 26 Sep 09:50 +0200
[PATCH v3 3/4] gnu: libreoffice: Update to 24.2.6.2.
(address . 73439@debbugs.gnu.org)(name . Nicolas Graves)(address . ngraves@ngraves.fr)
20240926075102.24531-3-ngraves@ngraves.fr
* 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(-)

Toggle diff (24 lines)
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
N
N
Nicolas Graves wrote on 26 Sep 09:50 +0200
[PATCH v3 4/4] gnu: hunspell-dictionary: Update to 24.2.6.2.
(address . 73439@debbugs.gnu.org)(name . Nicolas Graves)(address . ngraves@ngraves.fr)
20240926075102.24531-4-ngraves@ngraves.fr
* 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(-)

Toggle diff (28 lines)
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
N
N
Nicolas Graves wrote on 1 Oct 16:54 +0200
[PATCH v4 1/4] import: Add %libreoffice-updater.
(address . 73439@debbugs.gnu.org)(name . Nicolas Graves)(address . ngraves@ngraves.fr)
20241001145505.9409-1-ngraves@ngraves.fr
Change-Id: I481b1175db531c4fea4a57838fe190f679cd1a85
---
Makefile.am | 1 +
guix/import/libreoffice.scm | 98 +++++++++++++++++++++++++++++++++++++
2 files changed, 99 insertions(+)
create mode 100644 guix/import/libreoffice.scm

Toggle diff (118 lines)
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
N
N
Nicolas Graves wrote on 1 Oct 16:54 +0200
[PATCH v4 2/4] gnu: libreoffice: Update to 24.2.0.3.
(address . 73439@debbugs.gnu.org)(name . Nicolas Graves)(address . ngraves@ngraves.fr)
20241001145505.9409-2-ngraves@ngraves.fr
* 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(-)

Toggle diff (94 lines)
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
N
N
Nicolas Graves wrote on 1 Oct 16:54 +0200
[PATCH v4 3/4] gnu: libreoffice: Update to 24.2.6.2.
(address . 73439@debbugs.gnu.org)(name . Nicolas Graves)(address . ngraves@ngraves.fr)
20241001145505.9409-3-ngraves@ngraves.fr
* 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(-)

Toggle diff (24 lines)
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
N
N
Nicolas Graves wrote on 1 Oct 16:54 +0200
[PATCH v4 4/4] gnu: hunspell-dictionary: Update to 24.2.6.2.
(address . 73439@debbugs.gnu.org)(name . Nicolas Graves)(address . ngraves@ngraves.fr)
20241001145505.9409-4-ngraves@ngraves.fr
* 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(-)

Toggle diff (28 lines)
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
S
S
Simon Josefsson wrote on 14 Oct 15:31 +0200
Re: [bug#73439] [PATCH 00/10] Update libreoffice to its latest version.
(name . Nicolas Graves via Guix-patches via)(address . guix-patches@gnu.org)
8734kyq09v.fsf@kaka.sjd.se
Nicolas Graves via Guix-patches via <guix-patches@gnu.org> writes:

Toggle quote (22 lines)
> 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
-----BEGIN PGP SIGNATURE-----

iIoEARYIADIWIQSjzJyHC50xCrrUzy9RcisI/kdFogUCZw0dHBQcc2ltb25Aam9z
ZWZzc29uLm9yZwAKCRBRcisI/kdFoo4bAQDm301hpQMAgfk8t1UMm3baZwhUWXIp
yCQkfni5gzvo/gD+Lc9RSDpONBacE2m3AcMmW5hBMomYtIdxc51cF0tGFgk=
=a5iQ
-----END PGP SIGNATURE-----

N
N
Nicolas Graves wrote on 16 Oct 17:26 +0200
(address . liliana.prikler@gmail.com)
87a5f4vzk8.fsf@ngraves.fr
On 2024-10-14 15:31, Simon Josefsson via Guix-patches via wrote:

Toggle quote (14 lines)
> 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.

Toggle quote (3 lines)
>
> /Simon

--
Best regards,
Nicolas Graves
N
N
Nicolas Graves wrote on 16 Oct 19:07 +0200
[PATCH v5 1/5] import: Add %libreoffice-updater.
(address . 73439@debbugs.gnu.org)(name . Nicolas Graves)(address . ngraves@ngraves.fr)
20241016170744.15991-1-ngraves@ngraves.fr
Change-Id: I481b1175db531c4fea4a57838fe190f679cd1a85
---
Makefile.am | 1 +
guix/import/libreoffice.scm | 98 +++++++++++++++++++++++++++++++++++++
2 files changed, 99 insertions(+)
create mode 100644 guix/import/libreoffice.scm

Toggle diff (118 lines)
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
N
N
Nicolas Graves wrote on 16 Oct 19:07 +0200
[PATCH v5 2/5] gnu: libreoffice: Update to 24.2.0.3.
(address . 73439@debbugs.gnu.org)(name . Nicolas Graves)(address . ngraves@ngraves.fr)
20241016170744.15991-2-ngraves@ngraves.fr
* 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(-)

Toggle diff (86 lines)
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
N
N
Nicolas Graves wrote on 16 Oct 19:07 +0200
[PATCH v5 3/5] gnu: libreoffice: Update to 24.2.6.2.
(address . 73439@debbugs.gnu.org)(name . Nicolas Graves)(address . ngraves@ngraves.fr)
20241016170744.15991-3-ngraves@ngraves.fr
* 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(-)

Toggle diff (24 lines)
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
N
N
Nicolas Graves wrote on 16 Oct 19:07 +0200
[PATCH v5 4/5] gnu: libreoffice: Update to 24.8.2.1.
(address . 73439@debbugs.gnu.org)(name . Nicolas Graves)(address . ngraves@ngraves.fr)
20241016170744.15991-4-ngraves@ngraves.fr
* 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(-)

Toggle diff (24 lines)
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
N
N
Nicolas Graves wrote on 16 Oct 19:07 +0200
[PATCH v5 5/5] gnu: hunspell-dictionary: Update to 24.8.2.1.
(address . 73439@debbugs.gnu.org)(name . Nicolas Graves)(address . ngraves@ngraves.fr)
20241016170744.15991-5-ngraves@ngraves.fr
* 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(-)

Toggle diff (28 lines)
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
N
N
Nicolas Graves wrote on 16 Oct 19:08 +0200
control message for bug #73439
(address . control@debbugs.gnu.org)
87zfn4ugap.fsf@ngraves.fr
block 73439 by 68150
quit


--
Best regards,
Nicolas Graves
L
L
Ludovic Courtès wrote on 18 Oct 14:31 +0200
Re: [bug#73439] [PATCH v5 1/5] import: Add %libreoffice-updater.
(name . Nicolas Graves)(address . ngraves@ngraves.fr)(address . 73439@debbugs.gnu.org)
87o73hpp70.fsf@gnu.org
Hi,

Nicolas Graves <ngraves@ngraves.fr> skribis:

Toggle quote (5 lines)
> 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?

Toggle quote (2 lines)
> +(define (libreoffice-latest-version)

Please add a docstring to all top-level procedures.

Toggle quote (4 lines)
> + (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.

Toggle quote (14 lines)
> + ;; 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’.
N
N
Nicolas Graves wrote on 18 Oct 16:29 +0200
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 73439@debbugs.gnu.org)
87ed4dv603.fsf@ngraves.fr
On 2024-10-18 14:31, Ludovic Courtès wrote:

Toggle quote (42 lines)
> 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 ;)

Toggle quote (6 lines)
> 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.

Toggle quote (7 lines)
>
> Thanks,
> Ludo’.
>
>
>

--
Best regards,
Nicolas Graves
L
L
Ludovic Courtès wrote on 21 Oct 17:40 +0200
(name . Nicolas Graves)(address . ngraves@ngraves.fr)(address . 73439@debbugs.gnu.org)
878quhea6t.fsf@gnu.org
Howdy,

Nicolas Graves <ngraves@ngraves.fr> skribis:

Toggle quote (2 lines)
> On 2024-10-18 14:31, Ludovic Courtès wrote:

[...]

Toggle quote (8 lines)
>> 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’.

Toggle quote (19 lines)
>> 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’.
L
L
Ludovic Courtès wrote on 15 Nov 17:48 +0100
Re: [bug#73439] [PATCH v5 4/5] gnu: libreoffice: Update to 24.8.2.1.
(name . Nicolas Graves)(address . ngraves@ngraves.fr)(address . 73439@debbugs.gnu.org)
87zfm0l9xj.fsf@gnu.org
Nicolas Graves <ngraves@ngraves.fr> skribis:

Toggle quote (4 lines)
> * 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:

Toggle snippet (47 lines)
[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

Could you take a look?

Ludo’.
L
L
Ludovic Courtès wrote on 15 Nov 17:49 +0100
Re: [bug#73439] [PATCH v5 5/5] gnu: hunspell-dictionary: Update to 24.8.2.1.
(name . Nicolas Graves)(address . ngraves@ngraves.fr)(address . 73439@debbugs.gnu.org)
87v7wol9x5.fsf@gnu.org
Nicolas Graves <ngraves@ngraves.fr> skribis:

Toggle quote (5 lines)
> * 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!
N
N
Nicolas Graves wrote on 16 Nov 01:04 +0100
Re: [bug#73439] [PATCH v5 4/5] gnu: libreoffice: Update to 24.8.2.1.
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 73439@debbugs.gnu.org)
874j4859ix.fsf@ngraves.fr
On 2024-11-15 17:48, Ludovic Courtès wrote:

Toggle quote (64 lines)
> 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")))
+
+ (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
N
N
Nicolas Graves wrote on 16 Nov 22:38 +0100
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 73439@debbugs.gnu.org)
87ldxirh9k.fsf@ngraves.fr
On 2024-11-16 01:04, Nicolas Graves via Guix-patches via wrote:

Toggle quote (18 lines)
>
> 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
N
N
Nicolas Graves wrote on 17 Nov 11:19 +0100
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 73439@debbugs.gnu.org)
87h686qi1o.fsf@ngraves.fr
On 2024-11-16 22:38, Nicolas Graves via Guix-patches via wrote:

Toggle quote (26 lines)
> 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.

Toggle quote (3 lines)
> 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
L
L
Ludovic Courtès wrote on 17 Nov 17:40 +0100
(name . Nicolas Graves)(address . ngraves@ngraves.fr)(address . 73439@debbugs.gnu.org)
87cyitlspf.fsf@gnu.org
Hi,

Nicolas Graves <ngraves@ngraves.fr> skribis:

Toggle quote (8 lines)
>> 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:

Toggle snippet (14 lines)
;; 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)))

Maybe we can do something similar here?

HTH,
Ludo’.
N
N
Nicolas Graves wrote on 19 Nov 08:31 +0100
[PATCH v5] gnu: libreoffice: Update to 24.8.3.2.
(address . 73439@debbugs.gnu.org)
20241119073200.13650-1-ngraves@ngraves.fr
* 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(-)

Toggle diff (134 lines)
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
L
L
Ludovic Courtès wrote on 20 Nov 13:13 +0100
(name . Nicolas Graves)(address . ngraves@ngraves.fr)(address . 73439@debbugs.gnu.org)
871pz6xfuw.fsf@gnu.org
Hi,

Nicolas Graves <ngraves@ngraves.fr> skribis:

Toggle quote (16 lines)
> * 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?

Toggle quote (6 lines)
> + (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’.
N
N
Nicolas Graves wrote on 20 Nov 15:05 +0100
Re: [bug#73439] [PATCH v5] gnu: libreoffice: Update to 24.8.3.2.
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 73439@debbugs.gnu.org)
87ldxerofk.fsf@ngraves.fr
On 2024-11-20 13:13, Ludovic Courtès wrote:

Toggle quote (22 lines)
> 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.

Toggle quote (11 lines)
>> + (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.

Toggle quote (7 lines)
> Otherwise LGTM, thanks!
>
> Ludo’.
>
>
>

--
Best regards,
Nicolas Graves
N
N
Nicolas Graves wrote on 20 Nov 18:25 +0100
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 73439@debbugs.gnu.org)
877c8xstqo.fsf@ngraves.fr
On 2024-11-20 15:05, Nicolas Graves via Guix-patches via wrote:

Toggle quote (10 lines)
> 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
N
N
Nicolas Graves wrote on 28 Nov 13:52 +0100
(address . ludo@gnu.org)
871pyv8qrh.fsf@ngraves.fr
On 2024-11-19 08:31, Nicolas Graves via Guix-patches via wrote:

Toggle quote (9 lines)
> * 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
N
N
Nicolas Graves wrote on 28 Nov 13:55 +0100
[PATCH v6] gnu: libreoffice: Update to 24.8.3.2.
(address . 73439@debbugs.gnu.org)
20241128125539.3085-1-ngraves@ngraves.fr
* 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(-)

Toggle diff (134 lines)
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
L
L
Ludovic Courtès wrote on 2 Dec 22:44 +0100
(name . Nicolas Graves)(address . ngraves@ngraves.fr)(address . 73439-done@debbugs.gnu.org)
8734j54v5z.fsf@gnu.org
Nicolas Graves <ngraves@ngraves.fr> skribis:

Toggle quote (11 lines)
> * 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

Finally applied, thanks!
Closed
?
Your comment

Commenting via the web interface is currently disabled.

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

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