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

  • Open
  • 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 31 hours ago
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 31 hours ago
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 24 hours ago
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 2 hours ago
(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
?
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