Bug 8503 - Upgrade TigerVNC dependencies
Summary: Upgrade TigerVNC dependencies
Status: CLOSED FIXED
Alias: None
Product: ThinLinc
Classification: Unclassified
Component: Other (show other bugs)
Version: trunk
Hardware: PC Unknown
: P2 Normal
Target Milestone: 4.19.0
Assignee: Bugzilla mail exporter
URL:
Keywords: ossman_tester, prosaic
Depends on: 8502 8525 8526 8531
Blocks: 8485
  Show dependency treegraph
 
Reported: 2025-01-30 08:34 CET by Alexander Zeijlon
Modified: 2025-03-11 13:45 CET (History)
1 user (show)

See Also:
Acceptance Criteria:
MUST: * Dependencies for TigerVNC should be updated to their latest versions.


Attachments

Description Alexander Zeijlon cendio 2025-01-30 08:34:32 CET
We want to upgrade dependencies for TigerVNC in preparation for the upcoming sync with upstream.
Comment 1 Adam Halim cendio 2025-02-18 10:44:49 CET
I went through all dependencies (recursively) listed in tigervncdeps.spec and
found that the following packages can be upgraded:

cmake 3.28.2 -> 3.31.5
    curl 8.10.1 -> 8.12.1
        openssl 3.3.1 -> 3.4.1
    expat 2.6.3 -> 2.6.4
    libarchive 3.7.6 -> 3.7.7
        libxml2 2.9.12 -> 2.13.5
    libuv 1.42.0 -> 1.50.0
    librhash 1.4.2 -> 1.4.5
gettext 0.22.5 -> 0.23.1
    libiconv 1.14 -> 1.18
pixman 0.43.4 -> 0.44.2
    meson 1.5.2 -> 1.7.0
        importlib-metadata 4.8.1 -> 8.6.1
            typing-extensions 3.10.0.2 -> 4.12.2
            zipp 3.6.0 -> 3.21
                setuptools 56.2.0 -> 75.8.0
gnutls 3.8.7 -> 3.8.9
    libtasn1 4.19.0 -> 4.20.0
pam 1.1.0 -> 1.7.0
    flex 2.5.35 -> 2.6.4
autoconf 2.7.1 -> 2.7.2
    * This was ignored when doing bug 8402 due to causing an issue with
      building GTK2 [1].
libtool 2.5.3 -> 2.5.4
nettle 3.10 -> 3.10.1 
mesa 18.1.8 -> 24.3.4 (25.0.0-rc3 just released)
    elfutils 0.173 -> 0.192

Note that we cannot upgrade mesa currently, as explained in bug 8504 comment #15.

Same goes for PAM, which will be upgraded together with glibc with bug 8368.


[1] https://git.cendio.se/thinlinc/cenbuild/-/merge_requests/19#note_1272
Comment 2 Adam Halim cendio 2025-02-18 11:30:19 CET
(In reply to Adam Halim from comment #1)
Correction: we are interested in upgrading dependencies listed for TigerVNC in
clientdeps.spec, which narrows down the list:

cmake 3.28.2 -> 3.31.5
    curl 8.10.1 -> 8.12.1
        openssl 3.3.1 -> 3.4.1
    expat 2.6.3 -> 2.6.4
    libarchive 3.7.6 -> 3.7.7
        libxml2 2.9.12 -> 2.13.5
    libuv 1.42.0 -> 1.50.0
    librhash 1.4.2 -> 1.4.5
gettext 0.22.5 -> 0.23.1
    libiconv 1.14 -> 1.18
pixman 0.43.4 -> 0.44.2
    meson 1.5.2 -> 1.7.0
        importlib-metadata 4.8.1 -> 8.6.1
            typing-extensions 3.10.0.2 -> 4.12.2
            zipp 3.6.0 -> 3.21
                setuptools 56.2.0 -> 75.8.0
pam 1.1.0 -> 1.7.0
    flex 2.5.35 -> 2.6.4
Comment 3 Adam Halim cendio 2025-02-18 12:32:40 CET
Looking at the TigerVNC dependencies in serverdeps.spec (excluding mesa), only one package needs to be updated (the rest are the same as in comment #2):

rsync 3.3.0 -> 3.4.1
Comment 4 Alexander Zeijlon cendio 2025-02-24 10:03:14 CET
Work on upgrading OpenSSL has been moved to bug 8525.
Comment 5 Alexander Zeijlon cendio 2025-02-24 11:20:31 CET
Work on upgrading CMake and its deps has been moved to bug 8526 (including sub bug 8525).
Comment 6 Alexander Zeijlon cendio 2025-02-24 14:35:34 CET
Leaving PAM out of this bug. It will be upgraded as a part of bug 8368 (upgrade of glibc).
Comment 7 Alexander Zeijlon cendio 2025-02-24 14:48:15 CET
Regarding Flex, we already have some special treatment in the spec-file since we don't have regex.h in the windows target arch in cenbuild.

It looks like this has gotten a bit more complicated. The new version has a few hard requirements on files and function that we do not have in the windows arch

Flex's configure.ac:
> AC_CHECK_HEADERS([regex.h strings.h sys/stat.h sys/wait.h unistd.h], [],
>   [AC_MSG_ERROR(required header not found on your system)])
It looks like we are missing regex.h and sys/wait.h via MinGW.
> AC_CHECK_FUNCS([dup2 dnl
> memset dnl
> regcomp dnl   <---- regcomp is missing as a consequense of no regex.h
> strcasecmp dnl
> strchr dnl
> strdup dnl
> strtol dnl
> ], [], [AC_MSG_ERROR(required library function not found on your system)])
Comment 8 Alexander Zeijlon cendio 2025-02-25 09:25:54 CET
Work on upgrading Pixman and its deps has been moved to bug 8531.
Comment 10 Alexander Zeijlon cendio 2025-02-27 09:09:30 CET
Looking at Gettext and deps, we aren't taking as big of a leap when upgrading this time as we did last time in bug 8402.

There are two things that stand out as something to look at when upgrading:

* We had to change how Tre, which depends on Gettext, was built. Is this still
  the case.
* Last upgrade fixed a bug on macOS, bug 7167. Is this still fixed after
  upgrading again?
Comment 11 Alexander Zeijlon cendio 2025-02-27 10:09:25 CET
(In reply to Alexander Zeijlon from comment #10)
> * We had to change how Tre, which depends on Gettext, was built. Is this
>   still the case.
It looks like we can stop calling autoreconf when building Tre now, after upgrading Gettext, we can then also remove the dependency on autotools from the Tre package.
> * Last upgrade fixed a bug on macOS, bug 7167. Is this still fixed after
>   upgrading again?
I have verified that there is no regression when upgrading to gettext 0.24.
Comment 18 Alexander Zeijlon cendio 2025-03-03 16:15:56 CET
Turns out we could change our configuration for unfs3 such that it doesn't link with libfl which is a part of the flex package.

This means that we no longer require cross-compiled versions of flex in cenbuild, and this makes the flex upgrade simpler. 

Previously, we had custom handling for when building flex for windows due to missing header files. All this can now be removed since we are only building native packages for each cenbuild arch.
Comment 19 Alexander Zeijlon cendio 2025-03-03 16:17:45 CET
> MUST:
> * Dependencies for TigerVNC should be updated to their latest versions.
The packages Flex, Rsync, Gettext and libiconv have been upgraded to their latest versions.

I have verified that ThinLinc server and clients build and work post upgrade.

All other packages, mentioned in comment 2 are handled in breakout bugs:

* Pixman and deps in bug 8531.
* Cmake and deps in bug 8526.
* OpenSSL in bug 8525.
* Pam and deps in bug 8368
Comment 23 Pierre Ossman cendio 2025-03-11 13:45:27 CET
Tested local drives (for flex) on bug 7232, and translations (for gettext) on bug 7271.

Note You need to log in before you can comment on or make changes to this bug.