Subject: Re: [bug#73439] [PATCH v5 4/5] gnu: libreoffice: Update to 24.8.2.1.

From: Nicolas Graves <[email-masked]>
Date: Sat, 16 Nov 2024 01:04:22 +0100

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

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

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

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

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

-- 
Best regards,
Nicolas Graves