There occurs a Vim syntax error on a fresh openSUSE Leap 15.5 system
when trying to edit the Icinga 2 configuration. The specific packages
were vim-9.1.0330-150500.20.12.1.x86_64, vim-icinga2-2.14.2-1.x86_64 and
the following error was shown:
$ vim -R /etc/icinga2/conf.d/notifications.conf
Error detected while processing /usr/share/vim/vim91/suse.vimrc[10]../usr/share/vim/vim91/syntax/syntax.vim[44]..BufRead Autocommands for "/*etc/icinga2/*.conf"..FileType Autocommands for "*"..Syntax Autocommands for "*"..function <SNR>3_SynSet[25]..script /usr/share/vim/site/syntax/icinga2.vim:
line 300:
E10: \ should be followed by /, ? or &
line 301:
E10: \ should be followed by /, ? or &
line 302:
E10: \ should be followed by /, ? or &
line 303:
E10: \ should be followed by /, ? or &
line 304:
E10: \ should be followed by /, ? or &
line 305:
E10: \ should be followed by /, ? or &
line 306:
E10: \ should be followed by /, ? or &
Press ENTER or type command to continue
When the classcompiler is validating/transforming field types -> Icinga type names, it is currently returning
Icinga `Number` type for field type of `bool`, which is actually wrong. This PR ensures to always transform
into the correct Icinga type names.
Apparently there was a reason for making the members of generated classes
atomic. However, this was only done for some types, others were still accessed
using non-atomic operations. For members of type T::Ptr (i.e. intrusive_ptr<T>),
this can result in a double free when multiple threads access the same variable
and at least one of them writes to the variable.
This commit makes use of std::atomic<T> for more T (it removes the additional
constraint sizeof(T) <= sizeof(void*)) and uses a type including a mutex for
load and store operations as a fallback.
The Windows image provided by GitHub already includes most of our dependencies,
so the installation of all Chocolatey packages except winflexbison3 was
redundant. Visual Studio is provided in the Enterprise version instead of
Community, so that has to be added to the search path as well.
$env:CMAKE_GENERATOR_PLATFORM is only used in configure-dev.ps1 but now
is also required in configure.ps1 to allow the build pipeline to be
upgraded to Visual Studio 2019.
Additionally bump the versions in paths for Boost and OpenSSL.