- 26 Aug, 2024 1 commit
-
-
Carlos Ramos Carreño authored
Old GCC versions wrongly patched `__has_include` directives in system includes (using fixincludes). This was reported in https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91085, and patches to fix this behavior are given in https://gcc.gnu.org/git/gitweb.cgi?p=gcc.git;h=6bf383c37e6131a8e247e8a0997d55d65c830b6d and are applied upstream in versions above 12.1. This commit applies these patches to older GCC versions. This bug in GCC's fixincludes manifest itself with several seemingly unrelated symptoms. In particular, there are two conflicting "mount.h" includes, one coming from Linux and other from Glibc. Newer Glibc included some preprocessor tricks to detect if the Linux header has been previously included and prevent incompatibilities by not redefining common symbols, thus allowing its header to be included *after* the Linux header. In case that the header is included *before* the Linux header, it uses the aforementioned `__has_include` directive to detect and include the Linux header before itself if present, thus preventing its inclusion afterwards. However, due to the `fixincludes` wrong substitution, the check was always false, and thus including the Glibc header before the Linux one caused the compilation to fail, with an error similar to: ```C In file included from ./include/mount-api-utils.h:11, from libmount/src/optlist.c:19: /usr/include/linux/mount.h:95:6: error: redeclaration of 'enum fsconfig_command' 95 | enum fsconfig_command { | ^~~~~~~~~~~~~~~~ In file included from libmount/src/libmount.h:40, from libmount/src/mountP.h:31, from libmount/src/optlist.c:18: /opt/slapgrid/0f0705ad6e3e586cc45dcb5c9ab9e5f6/parts/gcc-10.5/lib/gcc/x86_64-pc-linux-gnu/10.5.0/include-fixed/sys/mount.h:249:6: note: originally defined here 249 | enum fsconfig_command | ^~~~~~~~~~~~~~~~ /usr/include/linux/mount.h:96:2: error: redeclaration of enumerator 'FSCONFIG_SET_FLAG' 96 | FSCONFIG_SET_FLAG = 0, /* Set parameter, supplying no value */ | ^~~~~~~~~~~~~~~~~ /opt/slapgrid/0f0705ad6e3e586cc45dcb5c9ab9e5f6/parts/gcc-10.5/lib/gcc/x86_64-pc-linux-gnu/10.5.0/include-fixed/sys/mount.h:251:3: note: previous definition of 'FSCONFIG_SET_FLAG' was here 251 | FSCONFIG_SET_FLAG = 0, /* Set parameter, supplying no value */ | ^~~~~~~~~~~~~~~~~ /usr/include/linux/mount.h:97:2: error: redeclaration of enumerator 'FSCONFIG_SET_STRING' 97 | FSCONFIG_SET_STRING = 1, /* Set parameter, supplying a string value */ | ^~~~~~~~~~~~~~~~~~~ /opt/slapgrid/0f0705ad6e3e586cc45dcb5c9ab9e5f6/parts/gcc-10.5/lib/gcc/x86_64-pc-linux-gnu/10.5.0/include-fixed/sys/mount.h:253:3: note: previous definition of 'FSCONFIG_SET_STRING' was here 253 | FSCONFIG_SET_STRING = 1, /* Set parameter, supplying a string value */ | ^~~~~~~~~~~~~~~~~~~ /usr/include/linux/mount.h:98:2: error: redeclaration of enumerator 'FSCONFIG_SET_BINARY' 98 | FSCONFIG_SET_BINARY = 2, /* Set parameter, supplying a binary blob value */ | ^~~~~~~~~~~~~~~~~~~ /opt/slapgrid/0f0705ad6e3e586cc45dcb5c9ab9e5f6/parts/gcc-10.5/lib/gcc/x86_64-pc-linux-gnu/10.5.0/include-fixed/sys/mount.h:255:3: note: previous definition of 'FSCONFIG_SET_BINARY' was here 255 | FSCONFIG_SET_BINARY = 2, /* Set parameter, supplying a binary blob value */ | ^~~~~~~~~~~~~~~~~~~ /usr/include/linux/mount.h:99:2: error: redeclaration of enumerator 'FSCONFIG_SET_PATH' 99 | FSCONFIG_SET_PATH = 3, /* Set parameter, supplying an object by path */ | ^~~~~~~~~~~~~~~~~ /opt/slapgrid/0f0705ad6e3e586cc45dcb5c9ab9e5f6/parts/gcc-10.5/lib/gcc/x86_64-pc-linux-gnu/10.5.0/include-fixed/sys/mount.h:257:3: note: previous definition of 'FSCONFIG_SET_PATH' was here 257 | FSCONFIG_SET_PATH = 3, /* Set parameter, supplying an object by path */ | ^~~~~~~~~~~~~~~~~ /usr/include/linux/mount.h:100:2: error: redeclaration of enumerator 'FSCONFIG_SET_PATH_EMPTY' 100 | FSCONFIG_SET_PATH_EMPTY = 4, /* Set parameter, supplying an object by (empty) path */ | ^~~~~~~~~~~~~~~~~~~~~~~ /opt/slapgrid/0f0705ad6e3e586cc45dcb5c9ab9e5f6/parts/gcc-10.5/lib/gcc/x86_64-pc-linux-gnu/10.5.0/include-fixed/sys/mount.h:259:3: note: previous definition of 'FSCONFIG_SET_PATH_EMPTY' was here 259 | FSCONFIG_SET_PATH_EMPTY = 4, /* Set parameter, supplying an object by (empty) path */ | ^~~~~~~~~~~~~~~~~~~~~~~ /usr/include/linux/mount.h:101:2: error: redeclaration of enumerator 'FSCONFIG_SET_FD' 101 | FSCONFIG_SET_FD = 5, /* Set parameter, supplying an object by fd */ | ^~~~~~~~~~~~~~~ /opt/slapgrid/0f0705ad6e3e586cc45dcb5c9ab9e5f6/parts/gcc-10.5/lib/gcc/x86_64-pc-linux-gnu/10.5.0/include-fixed/sys/mount.h:261:3: note: previous definition of 'FSCONFIG_SET_FD' was here 261 | FSCONFIG_SET_FD = 5, /* Set parameter, supplying an object by fd */ | ^~~~~~~~~~~~~~~ /usr/include/linux/mount.h:102:2: error: redeclaration of enumerator 'FSCONFIG_CMD_CREATE' 102 | FSCONFIG_CMD_CREATE = 6, /* Invoke superblock creation */ | ^~~~~~~~~~~~~~~~~~~ /opt/slapgrid/0f0705ad6e3e586cc45dcb5c9ab9e5f6/parts/gcc-10.5/lib/gcc/x86_64-pc-linux-gnu/10.5.0/include-fixed/sys/mount.h:263:3: note: previous definition of 'FSCONFIG_CMD_CREATE' was here 263 | FSCONFIG_CMD_CREATE = 6, /* Invoke superblock creation */ | ^~~~~~~~~~~~~~~~~~~ /usr/include/linux/mount.h:103:2: error: redeclaration of enumerator 'FSCONFIG_CMD_RECONFIGURE' 103 | FSCONFIG_CMD_RECONFIGURE = 7, /* Invoke superblock reconfiguration */ | ^~~~~~~~~~~~~~~~~~~~~~~~ /opt/slapgrid/0f0705ad6e3e586cc45dcb5c9ab9e5f6/parts/gcc-10.5/lib/gcc/x86_64-pc-linux-gnu/10.5.0/include-fixed/sys/mount.h:265:3: note: previous definition of 'FSCONFIG_CMD_RECONFIGURE' was here 265 | FSCONFIG_CMD_RECONFIGURE = 7, /* Invoke superblock reconfiguration */ | ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from ./include/mount-api-utils.h:11, from libmount/src/optlist.c:19: /usr/include/linux/mount.h:129:8: error: redefinition of 'struct mount_attr' 129 | struct mount_attr { | ^~~~~~~~~~ In file included from libmount/src/libmount.h:40, from libmount/src/mountP.h:31, from libmount/src/optlist.c:18: /opt/slapgrid/0f0705ad6e3e586cc45dcb5c9ab9e5f6/parts/gcc-10.5/lib/gcc/x86_64-pc-linux-gnu/10.5.0/include-fixed/sys/mount.h:219:8: note: originally defined here 219 | struct mount_attr | ^~~~~~~~~~ make[2]: *** [Makefile:12048: libmount/src/la-optlist.lo] Error 1 ``` This error was originally detected in Nexedi in nexedi/slapos@fe60394b (comment 189391) by @vpelletier, but no action was taken at the time to solve it. Some of its symptoms were detected and fixed individually in nexedi/slapos!1579 and nexedi/slapos!1580 , by reordering the includes, but the above error in libmount, which could not be solved that easily, made me delve more into the problem and find the root cause.
-
- 12 Aug, 2024 1 commit
-
-
Łukasz Nowak authored
In case of unavailable backend 502 and 503 are the possible codes, so relax the assertion.
-
- 08 Aug, 2024 1 commit
-
-
Paul Graydon authored
See merge request nexedi/slapos!1623
-
- 02 Aug, 2024 1 commit
-
-
Carlos Ramos Carreño authored
Move the versions of matplotlib, matplotlib-inline and cycler pinned in component/matplotlib/buildout.cfg to slapos.cfg. The cycler version for Python 3.7 will be upgraded to 0.11.0 as it is compatible. One reason motivating this change is that the version of `cycler` in stack/slapos.cfg is overriding the version specified in component/matplotlib/buildout.cfg for the erp5-zope2 software release. This is a problem because the former does not take into account the Python version, while the later does. Thus, attempting to compile erp5-zope2 would give the following error: ``` Getting distribution for 'cycler==0.11.0'. DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. pip 21.0 will drop support for Python 2.7 in January 2021. More details about Python 2 support in pip can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support pip 21.0 will remove support for this functionality. ERROR: Package 'cycler' requires a different Python: 2.7.18 not in '>=3.6' While: Installing matplotlib. Base installation request: 'cycler', 'python-dateutil', 'numpy' Getting distribution for 'cycler==0.11.0'. ``` This adds the right version of `cycler` for Python 2 in `slapos.cfg`, so that it does not fail.
-
- 01 Aug, 2024 2 commits
-
-
Kazuhiko Shiozaki authored
also use archive.apache.org where the link will not disappear even after the release of newer versions.
-
Kazuhiko Shiozaki authored
also use archive.apache.org where the link will not disappear even after the release of newer versions.
-
- 30 Jul, 2024 4 commits
-
-
Rafael Monnerat authored
You cannot expand properties with since it expects to be an object or boolean. Revert to use allOf back, however set additionalProperties true, so the schemas are mutually partially valid. Other solutions might too verbose or too restrictive to the use case (or simply invalid).
-
Rafael Monnerat authored
Include missing #, update wrong url, missing definition...
-
Rafael Monnerat authored
Don't failover to Draft7 if schema is badly defined or undefined. Enforce proper definition and raise nicely if the value is bad or unsupported. Extra: Fixup the list to follow up json schema specification
-
Thomas Gambier authored
After the change in https://lab.nexedi.com/nexedi/slapos.core/-/blob/2b80692d62b3dbd9e67d70d6143f180fc2f155fc/slapos/util.py#L449-453, there is now a KeyError message if the serialisation is not found. The theia test was actively checking there is no "Error" in the output log hence it was now failing. Allow just this specific error.
-
- 29 Jul, 2024 1 commit
-
-
Rafael Monnerat authored
allOf implies that all (both) schemas should be valid, but additionalProperties false wont allow it, since it become multually invalid. (You can validate only one or None) Just use $ref to expand the list, it end up with the expected outcome reducing complexity. Note: kvm wasn't using additionalProperties false but it was changed because it makes it future proof, in case we set it (we should set).
-
- 25 Jul, 2024 3 commits
-
-
Łukasz Nowak authored
-
Łukasz Nowak authored
Logs for the whole process shall be formatted in the same way, so define it once in global section.
-
Łukasz Nowak authored
Long request lines result with truncated logs, which leads to impossibility to debug cluster. Maximize the log lines emitted by haproxy, and follow up this withing accompanying rsyslogd. Allow very long, but still much smaller, URI logging.
-
- 24 Jul, 2024 1 commit
-
-
Rafael Monnerat authored
-
- 22 Jul, 2024 1 commit
-
-
Thomas Gambier authored
-
- 19 Jul, 2024 2 commits
-
-
Thomas Gambier authored
-
Kazuhiko Shiozaki authored
-
- 17 Jul, 2024 1 commit
-
-
Thomas Gambier authored
-
- 16 Jul, 2024 2 commits
-
-
Xavier Thompson authored
-
Ivan Tyagov authored
-
- 15 Jul, 2024 10 commits
-
-
Jérome Perrin authored
-
Jérome Perrin authored
-
Jérome Perrin authored
-
Jérome Perrin authored
-
Jérome Perrin authored
-
Jérome Perrin authored
-
Jérome Perrin authored
-
Jérome Perrin authored
-
Jérome Perrin authored
-
Jérome Perrin authored
-
- 12 Jul, 2024 5 commits
-
-
Kazuhiko Shiozaki authored
-
Kazuhiko Shiozaki authored
-
Kazuhiko Shiozaki authored
-
Kazuhiko Shiozaki authored
-
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
-
- 11 Jul, 2024 2 commits
-
-
Thomas Gambier authored
We can't use key of type dss anymore. This is a fixup of aae4a7c0.
-
Thomas Gambier authored
We can't generate key of type dsa anymore. This is a fixup of aae4a7c0.
-
- 09 Jul, 2024 2 commits
-
-
Thomas Gambier authored
-
Nicolas Wavrant authored
This reverts commit 5f4833c0.
-