• Carlos Ramos Carreño's avatar
    Fix non-constant initializer error in libuuid. · fc31e600
    Carlos Ramos Carreño authored
    Compiling libuuid was failing with the following error:
    
    ```c
    libuuid/src/gen_uuid.c: In function 'uuid_generate_time_generic':
    libuuid/src/gen_uuid.c:536:33: error: initializer element is not constant
      THREAD_LOCAL int  cache_size = cs_min;
    ```
    
    The error was previously detected, and a fix was provided in
    52abdf6a , where the GCC minimum version
    was increased to 8 (GCC version 8 supports using const-declared
    variables as constant expressions in some cases).
    
    Unfortunately, the solution did not work as the `min_version` field of
    the `[gcc]` section was being overwritten by its value in
    `component/defaults.cfg`.
    This is because `util-linux` (where libuuid config is located) is a
    transient dependence of `defaults.cfg` through `python3`.
    
    Luckily, the error is already [patched upstream](https://github.com/util-linux/util-linux/commit/07e5c29d501c19e7af84fecb5915e0f9f94cb49f)
    in version 2.40.1, so we can just upgrade the library to the latest
    version instead (2.40.2), which we do here.
    
    As part of the upgrade we disable the new tools added to the package, as
    we do not use them: liblastlog2, pam-lastlog2 and exch.
    Otherwise the compilation would fail with the following message:
    
    ```
    configure: error: liblastlog2 selected, but required sqlite3 library not available
    ```
    
    See merge request nexedi/slapos!1609
    fc31e600
buildout.cfg 1.99 KB