pkgsrc-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: pkgsrc/net/icinga2



Module Name:    pkgsrc
Committed By:   wiz
Date:           Wed Feb 19 18:02:21 UTC 2025

Modified Files:
        pkgsrc/net/icinga2: Makefile PLIST distinfo options.mk
Added Files:
        pkgsrc/net/icinga2/patches: patch-lib_base_io-engine.hpp
            patch-lib_base_tcpsocket.hpp patch-lib_icingadb_redisconnection.cpp
            patch-lib_icingadb_redisconnection.hpp
            patch-lib_remote_apilistener.cpp
            patch-lib_remote_jsonrpcconnection.cpp
            patch-test_base-io-engine.cpp

Log Message:
icinga2: update to 2.14.5.

Update to latest version, including an upstream patch for supporting
boost 1.87. Clean up some pkglint and incorrect option names.

## 2.14.5 (2025-02-06)

This release fixes a regression introduced in 2.14.4 that caused the `icinga2 node setup`,
`icinga2 node wizard`, and `icinga2 pki request` commands to fail if a certificate was
requested from a node that has to forward the request to another node for signing.
Additionally, it fixes a small bug in the performance data normalization and includes
various documentation improvements.

### Bug Fixes

* Don't close anonymous connections before sending the response for a certificate request #10337
* Performance data: Don't discard min/max values even if crit/warn thresholds aren’t given #10339
* Fix a failing test case on systems `time_t` is only 32 bits #10343

### Documentation

* Document the -X option for the mail-host-notification and mail-service-notification commands #10335
* Include Nagios in the migration docs #10324
* Remove RHEL 7 from installation instructions #10334
* Add instructions for installing build dependencies on Windows Server #10336

## 2.14.4 (2025-01-23)

This bugfix release is focused on improving HA cluster stability and easing
troubleshooting of issues in this area. It also addresses several crashes,
in the core itself and both in Icinga DB and IDO (numbers out of range).
In addition, it fixes several other issues such as lost notifications
or TimePeriod/ScheduledDowntime exceeding specified date ranges.

### Crash Fixes

* Invalid `DateTime#format()` arguments in config and console on Windows Server 2016 and older. #10112
* Downtime scheduling at runtime with non-existent trigger. #10049
* Object creation at runtime during Icinga DB initialization. #10151
* Comment on a service of a non-existent host. #9861

### Miscellaneous Bugfixes

* Lost notifications after recovery outside the notification time period. #10187
* TimePeriod/ScheduledDowntime exceeding specified date range. #9983 #10107
* Clean up failure for obsolete Downtimes. #10062
* ifw-api check command: use correct process-finished handler. #10140
* Email notification scripts: strip 0x0D (CR) for a proper Content-Type. #10061
* Several fixes and improvements of the code quality. #10066 #10214 #10254 #10263 #10264

### Cluster and API

* Sync runtime objects in topological order to honor their dependencies. #10000
* Make parallel config syncs more robust. #10013
* After object creation via API fails, clean up properly for the next try. #10111
* Close HTTPS connections properly to prevent leaks. #10005 #10006
* Reduce the number of cluster messages in memory at the same time. #9991 #9999 #10210
* Once a cluster connection shall be closed, stop communicating. #10213 #10221
* Remove unnecessary blocking of semaphores. #9992 #9994
* Reduce unnecessary cluster messages setting the next check time. #10011

### Icinga DB and IDO

* IDO: fix object relations after aborted synchronization. #10065
* Icinga DB, IDO: limit all timestamps to four year digits. #10058 #10059
* Icinga DB: limit execution\_time and latency (milliseconds) to database schema. #10060

### Troubleshooting

* Add `/v1/debug/malloc_info` which calls `malloc_info(3)` if available. #10015
* Add log messages about own network I/O. #9993 #10141 #10207
* Several fixes and improvements of log messages. #9997 #10021 #10209

### Windows

* Update OpenSSL shipped on Windows to v3.0.15. #10170
* Update Boost shipped on Windows to v1.86. #10114
* Support CMake v3.29. #10037
* Don't require to build .msi as admin. #10137
* Build configuration scripts: allow custom `$CMAKE_ARGS`. #10312

### Documentation

* Distributed Monitoring: add section "External CA/PKI". #9825
* Explain how to enable/disable debug logging on the fly. #9981
* Update supported OS versions and repository configuration. #10064 #10090 #10120 #10135 #10136 #10205
* Several fixes and improvements. #9960 #10050 #10071 #10156 #10194
* Replace broken links. #10115 #10118 #10282
* Fix typographical and similarly trivial errors. #9953 #9967 #10056 #10116 #10152 #10153 #10204

## 2.14.3 (2024-11-12)

This security release fixes a TLS certificate validation bypass.
Given the severity of that issue, users are advised to upgrade all nodes immediately.

* Security: fix TLS certificate validation bypass. CVE-2024-49369
* Security: update OpenSSL shipped on Windows to v3.0.15.
* Windows: sign MSI packages with a certificate the OS trusts by default.

## 2.14.2 (2024-01-18)

Version 2.14.2 is a hotfix release for master nodes that mainly
fixes excessive disk usage caused by the InfluxDB writers.

* InfluxDB: truncate timestamps to whole seconds to save disk space. #9969
* HttpServerConnection: log request processing time as well. #9970
* Update Boost shipped on Windows to v1.84. #9970

## 2.14.1 (2023-12-21)

Version 2.14.1 is a hotfix release for masters and satellites that mainly
prevents permanent disintegration of a whole cluster due to root CA expiry.

### Security

* Automatically renew own root CA and distribute it to all nodes. #9933
* Update OpenSSL shipped on Windows to v3.0.12. #9946
* Disable TLS renegotiation (handshake on existing connection). #9946

### Bugfixes

* Icinga DB feature: fix crash due to missing NULL pointer check. #9946
* Icinga DB feature: fix data written into Redis crashing the Go daemon. #9946
* GelfWriter: fix deadlock on stop/reload caused by busy queue. #9947
* Don't lose notifications due to too long output, truncate it. #9947

### Enhancements

* Discard duplicate problem notifications due to state filtering. #9932
* Speed up API filters targeting specific hosts/services to O(1). #9944
* POST /v1/console/\*: return HTTP 503 while Icinga is reloading. #9947
* Update Boost shipped on Windows to v1.83. #9946
* Documentation: several fixes and improvements. #9921

## 2.14.0 (2023-07-12)

[Issues and PRs](https://github.com/Icinga/icinga2/issues?q=is%3Aclosed+milestone%3A2.14.0)

### Notes

Upgrading docs: https://icinga.com/docs/icinga2/snapshot/doc/16-upgrading-icinga-2/#upgrading-to-2-14

### Breaking Changes

* Remove CheckResultReader (which has been deprecated since v2.9). #9714
* Remove StatusDataWriter (which has been deprecated since v2.9). #9715
* ElasticsearchWriter: drop support for Elasticsearch < v7. #9812
* Consider a checkable unreachable once one Dependency fails.
  Previously all of them had to fail. (Consult the upgrading docs.) #8218
* API: reject config modifications during reload with HTTP status 503. #9445
* `icinga2 daemon`: to reduce config load time, write file needed by
  `icinga2 object list` only if `--dump-objects` is given. #9586 #9591
* Default email notification scripts: link to Icinga DB Web,
  not the monitoring module. (Consult the upgrading docs.) #9742 #9757
* API: for security reasons hide TicketSalt in /v1/variables. #7863

#### Icinga 2 Config DSL

* Disallow global variable modification after config commit start (i.e.
  inside `object/apply T "x" { ... }`) to reduce config load time. #9740
* Forbid Dependency cycles at config load time. #8389
* Allow only strings in the arrays Host#groups, Service#groups and
  User#groups. Needed for consistency, especially by the IDO. #9057
* Disallow empty object names. (They worked only partially anyway.) #9409

### Enhancements

* Significantly reduce config load time of large setups.
  #8118 #9555 #9557 #9572 #9577 #9603 #9608 #9627 #9648 #9657 #9662
* Allow to connect dependencies via redundancy groups. Only parents within
  one group are assumed to provide redundancy for each other. #8218
* Built-in check command ifw-api, communicates directly with the Icinga for
  Windows REST API. (Doesn't spawn a PowerShell process for that.) #9062
* JournaldLogger which logs to systemd journal. #9000
* API: POST /v1/objects: allow to discard some previously modified attributes,
  i.e. to restore the config files' values. #9783
* ElasticsearchWriter: support Elasticsearch v8. #9812
* Support `$env.ENV_VAR_NAME$` macros. #8302
* Speed up Icinga DB config dump. #9524
* Default mail notification scripts: also print `$host.notes$` and `$service.notes$`. #9713
* Enable built-in OpenSSL DH parameters to allow DHE TLS ciphers. #9811
* Clean up global default TLS cipher list to improve security. #9809
* Influxdb(2)Writer: write more precise timestamps (nanoseconds). #9599

### Bugfixes

* Icinga DB feature: normalize several Redis data not to crash the Go daemon.
  #9772 #9775 #9792 #9793 #9794 #9805
* Fix parsing of perfdata across multiple lines in plugin output. #8969
* icinga check: fix last reload failure time. #8429 #9827
* Resolve macros inside custom vars of IcingaApplication. #9779
* SELinux: allow Icinga and its plugins to write to syslog. #9688
* ElasticsearchWriter: fix data buffer flush race condition during stop. #9810
* Trigger flexible downtimes not in the past if checkable is already down. #9726
* Send downtime expiration notifications immediately, not after up to a minute. #9726

#### Cluster

* Don't hang in timed out connection attempt. #9711 #9725
* Fix lost acknowledgements after re-connect. #9718
* cluster-zone check: don't complain about not connected
  other local zone members if there aren't any. #8595
* Allow agent to update executions delegated to it via /v1/actions/execute-command. #8627

#### API

* Disallow breaking inter-object relationships by changing
  relationship attributes at runtime, e.g. `Service#host_name`. #9407
* Correct several HTTP response status codes. #7958 #9354
* Correct Boolean field types previously reported by /v1/types as Number. #9514

#### CLI

* `icinga2 daemon`: fix -DConfiguration.Concurrency= flag
  which now allows to override the number of threads. #9643
* `icinga2 node wizard`: avoid unnecessary chown(2) which may fail and abort the wizard. #8744
* Correct several log messages. #8895 #8965 #9663

### ITL

Add `linux_netdev` check command. #9045

#### Command Argument Changes

* `disk`: don't pass -m (`disk_megabytes`) by default. #9642
* `disk`: pass -X fuse.portal (`disk_exclude_type`) by default. #9459
* `http`: support multiple -k (`http_header`) as array. #8574
* `icmp`: double defaults for -w (`icmp_wpl`) and -c (`icmp_cpl`). #9041
* `logfiles`: pass --winwarncrit (`logfiles_winwarncrit`) without argument. #9056
* `nwc_health`: pass SNMPv3-only args only when using SNMPv3. #9095
* `vmware-esx-dc-runtime-tools` and `vmware-esx-soap-vm-runtime-tools`:
  rename `--open-vm-tools` to `--open_vm_tools_ok` (`vmware_openvmtools`). #9611

#### New Command Arguments

| Command                            | Argument                     | Custom Variable                          | PR    |
|------------------------------------|------------------------------|------------------------------------------|-------|
| `disk`                             | `-P`                         | `disk_inode_perfdata`                    | #9494 |
| `esxi_hardware`                    | `--format`                   | `esxi_hardware_format`                   | #9435 |
| `esxi_hardware`                    | `--pretty`                   | `esxi_hardware_pretty`                   | #9435 |
| `http`                             | `--verify-host`              | `http_verify_host`                       | #8005 |
| `icingacli-businessprocess`        | `--ack-is-ok`                | `icingacli_businessprocess_ackisok`      | #9103 |
| `icingacli-businessprocess`        | `--blame`                    | `icingacli_businessprocess_blame`        | #9103 |
| `icingacli-businessprocess`        | `--colors`                   | `icingacli_businessprocess_colors`       | #9103 |
| `icingacli-businessprocess`        | `--downtime-is-ok`           | `icingacli_businessprocess_downtimeisok` | #9103 |
| `icingacli-businessprocess`        | `--root-cause`               | `icingacli_businessprocess_rootcause`    | #9103 |
| `mem`                              | `-a`                         | `mem_available`                          | #9385 |
| `mongodb`                          | `--disable_retry_writes`     | `mongodb_disableretrywrites`             | #9539 |
| `mongodb`                          | `--ssl-ca-cert-file`         | `mongodb_ssl_ca_cert_file`               | #9610 |
| `mysql`                            | `--extra-opts`               | `mysql_extra_opts`                       | #9197 |
| `nrpe`                             | `-3`                         | `nrpe_version_3`                         | #9296 |
| `nrpe`                             | `-D`                         | `nrpe_no_logging`                        | #9016 |
| `nrpe`                             | `-P`                         | `nrpe_payload_size`                      | #9032 |
| `pgsql`                            | `--extra-opts`               | `pgsql_extra_opts`                       | #9197 |
| `postgres`                         | `$PGCONTROLDATA` (env. var.) | `postgres_pgcontroldata`                 | #8929 |
| `postgres`                         | `--datadir`                  | `postgres_datadir`                       | #8924 |
| `postgres`                         | `--language`                 | `postgres_language`                      | #8924 |
| `postgres`                         | `--perflimit`                | `postgres_perflimit`                     | #8924 |
| `ssl_cert`                         | `--ignore-host-cn`           | `ssl_cert_ignore_host_cn`                | #9512 |
| `ssl_cert`                         | `--ignore-ocsp-errors`       | `ssl_cert_ignore_ocsp_errors`            | #9512 |
| `ssl_cert`                         | `--ignore-ocsp-timeout`      | `ssl_cert_ignore_ocsp_timeout`           | #9512 |
| `ssl_cert`                         | `--ignore-tls-renegotiation` | `ssl_cert_ignore_tls_renegotiation`      | #9042 |
| `ssl_cert`                         | `--proxy`                    | `ssl_cert_proxy`                         | #8927 |
| `tcp`                              | `--sni`                      | `tcp_sni`                                | #9347 |
| `vmware-esx-dc-runtime-tools`      | `--no_vm_tools_ok`           | `vmware_novmtools`                       | #9611 |
| `vmware-esx-soap-vm-runtime-tools` | `--no_vm_tools_ok`           | `vmware_novmtools`                       | #9611 |

### Miscellaneous

* Require GCC 7+ for building to enable C++17. #9133 #9485 #9489
* Require CMake v2.8.12+ for building.
  (Compatibility with older ones will be removed from a future CMake version.) #9706
* Repair config reload on OpenBSD by using waitpid(2), not a SIGCHLD handler. #9518
* Ignore SIGHUP in main process to allow `/etc/rc.d/icinga2 reload`
  sending it to all Icinga 2 processes on OpenBSD. #9622
* Fix crash in debug build on macOS when API and debug log are enabled. #9497
* Update Boost shipped on Windows to v1.82. #9761
* Update OpenSSL shipped on Windows to v3.0.9. #9787
* Update vendored https://github.com/nlohmann/json to v3.9.1. #9675
* Update vendored https://github.com/nemtrif/utfcpp to v3.2.3. #9683
* Documentation: several fixes and improvements.  #8954 #9741 #9763 #9767 #9769 #9777
* Several code quality improvements. #8815 #9106 #9250
  #9508 #9517 #9537 #9594 #9605 #9606 #9641 #9658 #9702 #9717 #9738

## 2.13.10 (2024-11-12)

This security release fixes a TLS certificate validation bypass.
Given the severity of that issue, users are advised to upgrade all nodes immediately.

* Security: fix TLS certificate validation bypass. CVE-2024-49369
* Security: update OpenSSL shipped on Windows to v3.0.15.
* Windows: sign MSI packages with a certificate the OS trusts by default.

## 2.13.9 (2023-12-21)

Version 2.13.9 is a hotfix release for masters and satellites that mainly
prevents permanent disintegration of a whole cluster due to root CA expiry.

### Security

* Automatically renew own root CA and distribute it to all nodes. #9934
* Update OpenSSL shipped on Windows to v3.0.12. #9945
* Disable TLS renegotiation (handshake on existing connection). #9945

### Bugfixes

* Icinga DB feature: fix crash due to missing NULL pointer check. #9945
* Icinga DB feature: fix data written into Redis crashing the Go daemon. #9945

### Updates

* Update Boost shipped on Windows to v1.83. #9945

## 2.13.8 (2023-07-12)

Version 2.13.8 is a maintenance release that fixes some bugs,
especially Icinga DB crashes, and updates several bundled libraries.

### Bugfixes

* Icinga DB feature: normalize several Redis data not to crash the Go daemon. #9814
* Don't hang in timed out connection attempt. #9815
* Trigger flexible downtimes not in the past if checkable is already down. #9817
* ElasticsearchWriter: fix data buffer flush race condition during stop. #9818
* SELinux: allow Icinga and its plugins to write to syslog. #9819
* Fix lost acknowledgements after re-connect. #9820
* Fix parsing of perfdata across multiple lines in plugin output. #9821
* cluster-zone check: don't complain about not connected
  other local zone members if there aren't any. #9822

### Updates

* Update Boost shipped on Windows to v1.82. #9816
* Update OpenSSL shipped on Windows to v3.0.9. #9816
* Update vendored https://github.com/nlohmann/json to v3.9.1. #9816
* Update vendored https://github.com/nemtrif/utfcpp to v3.2.3. #9816

## 2.13.7 (2023-02-16)

This security release updates Boost and OpenSSL libraries bundled on Windows
and repairs broken SELinux policies. By the way it fixes several other bugs.

### Security

* Windows: update bundled OpenSSL to v1.1.1t. #9672

### Bugfixes

* SELinux: fix user and domain creation by explicitly setting the role. #9690
* Signal handlers: don't interrupt and break plugins spawning. #9682
* Icinga DB: take check\_period into account during overdue calculation. #9679
* Avoid corrupted files: use fsync(2)/FlushFileBuffers() everywhere. #9681
* Solaris: fix compile error. #9680

### Enhancements

* Windows: update bundled Boost to v1.81. #9678
* Documentation: several fixes and improvements. #9671

## 2.13.6 (2022-11-08)

The main focus of version 2.13.6 is improved performance of Icinga DB and apply rules.
Additionally, it includes bug fixes related to config loading and API permissions.

### Bugfixes

* Improve the throughput of the Icinga DB feature. #9550
* Multiple changes to speed up evaluation of apply rules. #9559 #9565 #9558
* Fix a possible crash on config loading related to `ignore_on_error`. #9560
* Check API user permission on objects returned by joins. #9561
* Windows: update bundled Boost and OpenSSL versions. #9562 #9567

## 2.13.5 (2022-08-11)

Version 2.13.5 is a maintenance release that fixes some bugs,
improves logging and updates the documentation as well as a bundled library.

### Bugfixes

* Ensure not to write an incomplete (i.e. corrupt) state file. #9467
* ITL: Render vars.apt\_upgrade=true as --upgrade, not --upgrade=true. #9458
* Icinga DB: Don't surprise (and crash) the Go daemon with config types it doesn't know. #9480
* Icinga DB: Add missing Redis SELinux policy. #9473
* Windows: Don't spam the event log with non-error startup messages. #9457
* Windows: Update bundled version of OpenSSL. #9460
* Docs: Update RHEL 8 installation instructions. #9482
* Docs: Add RHEL 9 installation instructions. #9482

## 2.13.4 (2022-06-30)

This release brings the final changes needed for the Icinga DB 1.0 release.
Addtionally, it includes some fixes and a performance improvement resulting
in faster config validation and reload times.

### Bugfixes

* Fix a race-condition involving object attribute updates that could result in a crash. #9395
* After a host recovered, only send problem notifications for services after
  they have been rechecked afterwards to avoid false notifications. #9348
* Speed up config validation by avoiding redundant serialization of objects. #9400
* Add a `separator` attribute to allow using arguments like `--key=value` as required by some
  check plugins. This fixes the `--upgrade` and `--dist-upgrade` arguments of `check_apt`. #9397
* Windows: Update bundled versions of Boost and OpenSSL. #9360 #9415

### Icinga DB

* Add an `icingadb` CheckCommand to allow checking if Icinga DB is healthy. #9417
* Update documentation related to Icinga DB. #9423
* Fix a bug where history events could miss the environment ID. #9396
* Properly serialize attributes of command arguments when explicitly set to `null`. #9398
* Rename some attributes to make the database schema more consistent. #9399 #9419 #9421
* Make the error message more helpful if the API isn't set up #9418

## 2.13.3 (2022-04-14)

This version includes bugfixes for many features of Icinga 2, including fixes for multiple crashes.
It also includes a number of fixes and improvements for Icinga DB.

### API

* The /v1/config/stages endpoint now immediately rejects parallel config updates
  instead of accepting and then later failing to verify and activate them. #9328

### Certificates

* The lifetime of newly issued node certificates is reduced from 15 years to 397 days. #9337
* Compare cluster certificate tickets in constant time. #9333

### Notifications

* Fix a crash that could happen while sending notifications shortly after Icinga 2 started. #9124
* Fix missing or redundant notifications after certain combinations of state changes happened
  while notifications were suppressed, for example during a downtime. #9285

### Checks and Commands

* Fix a deadlock when processing check results for checkables with dependencies. #9228
* Fix a message routing loop that can happen for event commands that are executed within a zone
  using `command_endpoint` that resulted in excessive execution of the command. #9260

### Downtimes

* Fix scheduling of downtimes for all services on child hosts. #9159
* Creating fixed downtimes starting immediately now send a corresponding notification. #9158
* Fix some issues involving daylight saving time changes that could result in an hour missing
  from scheduled downtimes. This fix applies to time periods as well. #9238

### Configuration

* Fix the evaluation order of default templates when used in combination with apply rules.
  Now default templates are imported first as stated in the documentation and
  as it already happens for objects defined without using apply. #9290

### IDO

* Fix an issue where contacts were not written correctly to the notification history
  if multiple IDO instances are active on the same node. #9242
* Explicitly set the encoding for MySQL connections as a workaround for changed defaults
  in Debian bullseye. #9312
* Ship a MySQL schema upgrade that fixes inconsistent version information in the
  full schema file and upgrade files which could have resulted in inaccurate reports
  of an outdated schema version. #9139

### Performance Data Writers

* Fix a race condition in the InfluxDB Writers that could result in a crash. #9237
* Fix a log message where Influxdb2Writer logged as InfluxdbWriter. #9315
* All writers no longer send metrics multiple times after HA failovers. #9322

### Build

* Fix the order of linker flags to fix builds on some ARM platforms. #9164
* Fix a regression introduced in 2.13.2 preventing non-unity builds. #9094
* Fix an issue when building within an unrelated Git repository,
  version information from that repository could incorrectly be used for Icinga 2. #9155
* Windows: Update bundled Boost version to 1.78.0 and OpenSSL to 1.1.1n #9325

### Internals

* Fix some race conditions due to missing synchronization.
  These race conditions should not have caused any practical problems
  besides incorrect numbers in debug log message. #9306
* Move the startup.log and status files created when validating incoming cluster config updates
  to /var/lib/icinga2/api and always keep the last failed startup.log to ease debugging. #9335

### Icinga DB

* The `severity` attribute was updated to match the sort order Icinga Web 2 uses for the IDO.
  The documentation for this attribute was already incorrect before and was updated
  to reflect the current functionality. #9239 #9240
* Fix the `is_sticky` attribute for comments. #9303
* Fix missing updates of `is_reachable` and `severity` in the state tables. #9241
* Removing an acknowledgement no longer incorrectly writes comment history. #9302
* Fix multiple issues so that in an HA zone, both nodes now write consistent history. #9157 #9182 #9190
* Fix that history events are no longer written when state information should be updated. #9252
* Fix an issue where incomplete comment history events were generated. #9301
  **Note:** when removing comments using the API, the dedicated remove-comment action
  should be used instead of the objects API, otherwise no history event will be generated.
* Fix handling of non-integer values for the order attribute of command arguments. #9181
  **Note:** You should only specify integer values for order, other values are converted to integer
  before use so using fractional numbers there has no effect.
* Add a dependency on icingadb-redis.service to the systemd service file
  so that Redis is stopped after Icinga 2. #9304
* Buffer history events in memory when the Redis connection is lost. #9271
* Add the previous soft state to the state tables. #9214
* Add missing locking on object runtime updates. #9300

## 2.13.2 (2021-11-12)

This version only includes changes needed for the release of Icinga DB 1.0.0 RC2 and doesn't include any other bugfixes or features.

### Icinga DB

* Prefix command_id with command type #9085
* Decouple environment from Icinga 2 Environment constant #9082
* Make icinga:history:stream:*#event_id deterministic #9076
* Add downtime.duration & service_state.host_id to Redis #9084
* Sync checkables along with their states first #9081
* Flush both buffered states and state checksums on initial dump #9079
* Introduce icinga:history:stream:downtime#scheduled_by #9080
* Actually write parent to parent_id of zones #9078
* Set value in milliseconds for program_start in stats/heartbeat #9077
* Clean up vanished objects from icinga:checksum:*:state #9074
* Remove usernotification history stream #9073
* Write IDs of notified users into notification history stream #9071
* Make CheckResult#scheduling_source available to Icinga DB #9072
* Stream runtime state updates only to icinga:runtime:state #9068
* Publish Redis schema version via XADD icinga:schema #9069
* Don't include checkable types in history IDs #9070
* Remove unused Redis key 'icinga:zone:parent' #9075
* Make sure object relationships are handled correctly during runtime updates #9089
* Only log queries at debug level #9088

## 2.13.1 (2021-08-19)

The main focus of this version is a security vulnerability in the TLS certificate verification of our metrics writers ElasticsearchWriter, GelfWriter, InfluxdbWriter and Influxdb2Writer.

Version 2.13.1 also fixes two issues indroduced with the 2.13.0 release.

### Security

* Add TLS server certificate validation to ElasticsearchWriter, GelfWriter, InfluxdbWriter and Influxdb2Writer 
([GHSA-cxfm-8j5v-5qr2](https://github.com/Icinga/icinga2/security/advisories/GHSA-cxfm-8j5v-5qr2))

Depending on your setup, manual intervention beyond installing the new versions
may be required, so please read the more detailed information in the
[release blog post](https://icinga.com/blog/2021/08/19/icinga-2-13-1-security-release//)
carefully

### Bugfixes

* IDO PgSQL: Fix a string quoting regression introduced in 2.13.0 #8958
* ApiListener: Automatically fall back to IPv4 in default configuration on systems without IPv6 support #8961

## 2.13.0 (2021-08-03)

[Issues and PRs](https://github.com/Icinga/icinga2/issues?utf8=%E2%9C%93&q=milestone%3A2.13.0)

### Notes

Upgrading docs: https://icinga.com/docs/icinga2/snapshot/doc/16-upgrading-icinga-2/#upgrading-to-v213

### Enhancements

* Core
  * PerfdataValue: Add units of measurement #7871
  * Flapping: Allow to ignore states in flapping detection #8600
* Cluster
  * Display log message if two nodes run on incompatible versions #8088
* API
  * /v1/actions/remove-downtime: Also remove child downtimes #8913
  * Add API endpoint: /v1/actions/execute-command #8040
  * /v1/actions/add-comment: Add param expiry #8035
  * API-Event StateChange & CheckResult: Add acknowledgement and downtime_depth #7736
  * Implement new API events ObjectCreated, ObjectDeleted and ObjectModified #8083
  * Implement scheduling_endpoint attribute to checkable #6326
* Windows
  * Add support for Windows Event Log and write early log messages to it #8710
* IDO
  * MySQL: support larger host and service names #8425
* ITL
  * Add -S parameter for esxi_hardware ITL #8814
  * Add CheckCommands for Thola #8683
  * Add option ignore-sct for ssl_cert to ITL #8625
  * Improve check_dns command when used with monitoring-plugins 2.3 #8589
  * Add parameter -f to snmp-process #8569
  * Add systemd CheckCommand #8568
  * Add new options for ipmi-sensor #8498
  * check_snmp_int: support -a #8003
  * check_fail2ban: Add parameter fail2ban_jail to monitor a specific jail only #7960
  * check_nrpe: Add parameters needed for PKI usage #7907
* Metrics
  * Support InfluxDB 2.0 #8719
  * Add support for InfluxDB basic auth #8314
* Docs
  * Add info about ongoing support for IDO #8446
  * Improve instructions on how to setup a Windows dev env #8400
  * Improve instructions for installing wixtoolset on Windows #8397
  * Add section about usage of satellites #8458
  * Document command for verifying the parent node's certificate #8221
  * Clarify TimePeriod/ScheduledDowntime time zone handling #8001
* Misc
  * Support TLS 1.3 #8718
  * Livestatus: append app name to program_version #7931
  * sd_notify() systemd about what we're doing right now #7874

### Bugfixes

* Core
  * Fix state not being UNKNOWN after process timeout #8937
  * Set a default severity for loggers #8846
  * Fix integer overflow when converting large unsigned integers to string #8742
  * StartUnixWorker(): don't exit() on fork() failure #8427
  * Fix perf data parser not recognizing scientific notation #8492
  * Close FDs based on /proc/self/fd #8442
  * Fix check source getting overwritten on passive check result #8158
  * Clean up temp files #8157
  * Improve perf data parser to allow for special output (e.g. ASCII tables) #8008
  * On check timeout first send SIGTERM #7918
* Cluster
  * Drop passive check results for unreachable hosts/services #8267
  * Fix state timestamps set by the same check result differing across nodes #8101
* API
  * Do not override status codes that are not 200 #8532
  * Update the SSL context after accepting incoming connections #8515
  * Allow to create API User with password #8321
  * Send Content-Type as API response header too #8108
  * Display a correct status when removing a downtime #8104
  * Display log message if a permission error occurs #8087
  * Replace broken package name validation regex #8825 #8946
* Windows
  * Fix Windows command escape for \" #7092
* Notifications/Downtimes
  * Fix no re-notification for non OK state changes with time delay #8562
  * TimePeriod/ScheduledDowntime: Improve DST handling #8921
  * Don't send notifications while suppressed by checkable #8513
  * Fix a crash while removing a downtime from a disappeared checkable #8229
* IDO
  * Update program status on stop #8730
  * Also mark objects inactive in memory on object deactivation #8626
  * IdoCheckTask: Don't override checkable critical with warn state #8613
  * PostgreSQL: Do not set standard_conforming_strings to off #8123
* ITL
  * check_http: Fix assignment of check_adress blocking check by hostname #8109
  * check_mysql: Don't set -H if -s is given #8020
* Metrics
  * OpenTSDB-Writer: Remove incorrect space causing missing tag error #8245


To generate a diff of this commit:
cvs rdiff -u -r1.16 -r1.17 pkgsrc/net/icinga2/Makefile
cvs rdiff -u -r1.3 -r1.4 pkgsrc/net/icinga2/PLIST \
    pkgsrc/net/icinga2/options.mk
cvs rdiff -u -r1.6 -r1.7 pkgsrc/net/icinga2/distinfo
cvs rdiff -u -r0 -r1.1 \
    pkgsrc/net/icinga2/patches/patch-lib_base_io-engine.hpp \
    pkgsrc/net/icinga2/patches/patch-lib_base_tcpsocket.hpp \
    pkgsrc/net/icinga2/patches/patch-lib_icingadb_redisconnection.cpp \
    pkgsrc/net/icinga2/patches/patch-lib_icingadb_redisconnection.hpp \
    pkgsrc/net/icinga2/patches/patch-lib_remote_apilistener.cpp \
    pkgsrc/net/icinga2/patches/patch-lib_remote_jsonrpcconnection.cpp \
    pkgsrc/net/icinga2/patches/patch-test_base-io-engine.cpp

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: pkgsrc/net/icinga2/Makefile
diff -u pkgsrc/net/icinga2/Makefile:1.16 pkgsrc/net/icinga2/Makefile:1.17
--- pkgsrc/net/icinga2/Makefile:1.16    Mon Jan 27 23:03:10 2025
+++ pkgsrc/net/icinga2/Makefile Wed Feb 19 18:02:21 2025
@@ -1,7 +1,6 @@
-# $NetBSD: Makefile,v 1.16 2025/01/27 23:03:10 wiz Exp $
+# $NetBSD: Makefile,v 1.17 2025/02/19 18:02:21 wiz Exp $
 
-DISTNAME=      icinga2-2.12.11
-PKGREVISION=   1
+DISTNAME=      icinga2-2.14.5
 CATEGORIES=    net sysutils
 MASTER_SITES=  ${MASTER_SITE_GITHUB:=icinga/}
 GITHUB_TAG=    v${PKGVERSION_NOREV}
@@ -24,7 +23,7 @@ PKG_GROUPS_VARS+=     ICINGA2_GROUP ICINGA2_
 BUILD_DEFS+=           ICINGA2_USER ICINGA2_GROUP ICINGA2_COMMAND_GROUP VARBASE PKG_SYSCONFBASE
 
 USE_LANGUAGES=         c c++
-USE_CXX_FEATURES=      c++14
+USE_CXX_FEATURES=      c++17
 USE_TOOLS+=            flex bison
 
 PKG_RCD_SCRIPTS=       YES
@@ -96,21 +95,21 @@ FEATURES=           api debuglog mainlog syslog
 FEATURES+=             checker
 .endif
 .if !empty(PKG_OPTIONS:Micinga2-compat)
-FEATURES+=             command compatlog statusdata
+FEATURES+=             command compatlog
 .endif
 .if !empty(PKG_OPTIONS:Micinga2-livestatus)
 FEATURES+=             livestatus
 .endif
-.if !empty(PKG_OPTIONS:Micinga2-mysql)
+.if !empty(PKG_OPTIONS:Mmysql)
 FEATURES+=             ido-mysql
 .endif
 .if !empty(PKG_OPTIONS:Micinga2-notification)
 FEATURES+=             notification
 .endif
 .if !empty(PKG_OPTIONS:Micinga2-perfdata)
-FEATURES+=             elasticsearch gelf graphite influxdb opentsdb perfdata
+FEATURES+=             elasticsearch gelf graphite influxdb influxdb2 opentsdb perfdata
 .endif
-.if !empty(PKG_OPTIONS:Micinga2-pgsql)
+.if !empty(PKG_OPTIONS:Mpgsql)
 FEATURES+=             ido-pgsql
 .endif
 .for f in ${FEATURES}

Index: pkgsrc/net/icinga2/PLIST
diff -u pkgsrc/net/icinga2/PLIST:1.3 pkgsrc/net/icinga2/PLIST:1.4
--- pkgsrc/net/icinga2/PLIST:1.3        Fri Nov 22 15:31:29 2024
+++ pkgsrc/net/icinga2/PLIST    Wed Feb 19 18:02:21 2025
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST,v 1.3 2024/11/22 15:31:29 ryoon Exp $
+@comment $NetBSD: PLIST,v 1.4 2025/02/19 18:02:21 wiz Exp $
 ${PLIST.mysql}lib/icinga2/libmysql_shim.so
 ${PLIST.mysql}lib/icinga2/libmysql_shim.so.${PKGVERSION}
 ${PLIST.pgsql}lib/icinga2/libpgsql_shim.so
@@ -43,6 +43,8 @@ share/doc/icinga2/markdown/images/addons
 share/doc/icinga2/markdown/images/addons/icingaweb2_grafana.png
 share/doc/icinga2/markdown/images/addons/icingaweb2_graphite.png
 share/doc/icinga2/markdown/images/addons/icingaweb2_maps.png
+share/doc/icinga2/markdown/images/addons/nano-syntax.png
+share/doc/icinga2/markdown/images/addons/vim-syntax.png
 share/doc/icinga2/markdown/images/advanced-topics/flapping-state-graph.png
 share/doc/icinga2/markdown/images/advanced-topics/icinga2_external_checks_freshness_icingaweb2.png
 share/doc/icinga2/markdown/images/advanced-topics/icingaweb2_downtime_handled.png
@@ -77,20 +79,13 @@ share/doc/icinga2/markdown/images/distri
 share/doc/icinga2/markdown/images/distributed-monitoring/icinga2_windows_setup_wizard_02_global_zone.png
 share/doc/icinga2/markdown/images/distributed-monitoring/icinga2_windows_setup_wizard_03.png
 share/doc/icinga2/markdown/images/distributed-monitoring/icinga2_windows_setup_wizard_04.png
-share/doc/icinga2/markdown/images/distributed-monitoring/icinga2_windows_setup_wizard_05_nsclient_01.png
-share/doc/icinga2/markdown/images/distributed-monitoring/icinga2_windows_setup_wizard_05_nsclient_02.png
-share/doc/icinga2/markdown/images/distributed-monitoring/icinga2_windows_setup_wizard_05_nsclient_03.png
-share/doc/icinga2/markdown/images/distributed-monitoring/icinga2_windows_setup_wizard_05_nsclient_04.png
-share/doc/icinga2/markdown/images/distributed-monitoring/icinga2_windows_setup_wizard_05_nsclient_05.png
-share/doc/icinga2/markdown/images/distributed-monitoring/icinga2_windows_setup_wizard_05_nsclient_06.png
-share/doc/icinga2/markdown/images/distributed-monitoring/icinga2_windows_setup_wizard_05_nsclient_07.png
 share/doc/icinga2/markdown/images/distributed-monitoring/icinga2_windows_setup_wizard_06_finish_no_ticket.png
 share/doc/icinga2/markdown/images/distributed-monitoring/icinga2_windows_setup_wizard_06_finish_with_ticket.png
 share/doc/icinga2/markdown/images/distributed-monitoring/icinga2_windows_setup_wizard_examine_config.png
-share/doc/icinga2/markdown/images/installation/mariadb-centos7.png
-share/doc/icinga2/markdown/images/installation/nano-syntax.png
-share/doc/icinga2/markdown/images/installation/postgr-import-ido.png
-share/doc/icinga2/markdown/images/installation/vim-syntax.png
+share/doc/icinga2/markdown/images/icingadb/icingadb-architecture.png
+share/doc/icinga2/markdown/images/icingadb/icingadb-daemon.png
+share/doc/icinga2/markdown/images/icingadb/icingadb-icinga2.png
+share/doc/icinga2/markdown/images/icingadb/icingadb-redis.png
 share/examples/icinga2/conf.d/app.conf
 share/examples/icinga2/conf.d/commands.conf
 share/examples/icinga2/conf.d/downtimes.conf
@@ -114,12 +109,12 @@ ${PLIST.icingadb}share/examples/icinga2/
 ${PLIST.mysql}share/examples/icinga2/features-available/ido-mysql.conf
 ${PLIST.pgsql}share/examples/icinga2/features-available/ido-pgsql.conf
 ${PLIST.perfdata}share/examples/icinga2/features-available/influxdb.conf
+${PLIST.perfdata}share/examples/icinga2/features-available/influxdb2.conf
 ${PLIST.livestatus}share/examples/icinga2/features-available/livestatus.conf
 share/examples/icinga2/features-available/mainlog.conf
 ${PLIST.notification}share/examples/icinga2/features-available/notification.conf
 ${PLIST.perfdata}share/examples/icinga2/features-available/opentsdb.conf
 ${PLIST.perfdata}share/examples/icinga2/features-available/perfdata.conf
-${PLIST.compat}share/examples/icinga2/features-available/statusdata.conf
 share/examples/icinga2/features-available/syslog.conf
 share/examples/icinga2/icinga2.conf
 share/examples/icinga2/scripts/mail-host-notification.sh
@@ -129,6 +124,8 @@ share/examples/icinga2/zones.d/README
 ${PLIST.mysql}share/icinga2-ido-mysql/schema/mysql.sql
 ${PLIST.mysql}share/icinga2-ido-mysql/schema/upgrade/2.0.2.sql
 ${PLIST.mysql}share/icinga2-ido-mysql/schema/upgrade/2.1.0.sql
+${PLIST.mysql}share/icinga2-ido-mysql/schema/upgrade/2.11.0.sql
+${PLIST.mysql}share/icinga2-ido-mysql/schema/upgrade/2.12.7.sql
 ${PLIST.mysql}share/icinga2-ido-mysql/schema/upgrade/2.2.0.sql
 ${PLIST.mysql}share/icinga2-ido-mysql/schema/upgrade/2.3.0.sql
 ${PLIST.mysql}share/icinga2-ido-mysql/schema/upgrade/2.4.0.sql
@@ -136,8 +133,6 @@ ${PLIST.mysql}share/icinga2-ido-mysql/sc
 ${PLIST.mysql}share/icinga2-ido-mysql/schema/upgrade/2.6.0.sql
 ${PLIST.mysql}share/icinga2-ido-mysql/schema/upgrade/2.8.0.sql
 ${PLIST.mysql}share/icinga2-ido-mysql/schema/upgrade/2.8.1.sql
-${PLIST.mysql}share/icinga2-ido-mysql/schema/upgrade/2.11.0.sql
-${PLIST.mysql}share/icinga2-ido-mysql/schema/upgrade/2.12.7.sql
 ${PLIST.pgsql}share/icinga2-ido-pgsql/schema/pgsql.sql
 ${PLIST.pgsql}share/icinga2-ido-pgsql/schema/upgrade/2.0.2.sql
 ${PLIST.pgsql}share/icinga2-ido-pgsql/schema/upgrade/2.1.0.sql
@@ -172,6 +167,7 @@ share/icinga2/include/plugins-contrib.d/
 share/icinga2/include/plugins-contrib.d/raid-controller.conf
 share/icinga2/include/plugins-contrib.d/smart-attributes.conf
 share/icinga2/include/plugins-contrib.d/storage.conf
+share/icinga2/include/plugins-contrib.d/systemd.conf
 share/icinga2/include/plugins-contrib.d/virtualization.conf
 share/icinga2/include/plugins-contrib.d/vmware.conf
 share/icinga2/include/plugins-contrib.d/web.conf
Index: pkgsrc/net/icinga2/options.mk
diff -u pkgsrc/net/icinga2/options.mk:1.3 pkgsrc/net/icinga2/options.mk:1.4
--- pkgsrc/net/icinga2/options.mk:1.3   Sun Aug 25 06:19:06 2024
+++ pkgsrc/net/icinga2/options.mk       Wed Feb 19 18:02:21 2025
@@ -1,4 +1,4 @@
-# $NetBSD: options.mk,v 1.3 2024/08/25 06:19:06 wiz Exp $
+# $NetBSD: options.mk,v 1.4 2025/02/19 18:02:21 wiz Exp $
 
 PKG_OPTIONS_VAR=       PKG_OPTIONS.icinga2
 PKG_SUPPORTED_OPTIONS= debug
@@ -28,10 +28,10 @@ CMAKE_CONFIGURE_ARGS+=      -DICINGA2_WITH_PG
 CMAKE_CONFIGURE_ARGS+= -DICINGA2_WITH_PGSQL=OFF
 .endif
 
-PLIST_VARS+=   icingadb
+PLIST_VARS+=           icingadb
 .if !empty(PKG_OPTIONS:Micingadb)
 CMAKE_CONFIGURE_ARGS+= -DICINGA2_WITH_ICINGADB=ON
-PLIST.icingadb=        yes
+PLIST.icingadb=                yes
 .else
 CMAKE_CONFIGURE_ARGS+= -DICINGA2_WITH_ICINGADB=OFF
 .endif
@@ -39,9 +39,9 @@ CMAKE_CONFIGURE_ARGS+=        -DICINGA2_WITH_IC
 .for option in checker compat livestatus notification perfdata
 PLIST_VARS+=           ${option}
 .  if !empty(PKG_OPTIONS:Micinga2-${option})
-CMAKE_CONFIGURE_ARGS+=         -DICINGA2_WITH_${option:tu}=ON
+CMAKE_CONFIGURE_ARGS+= -DICINGA2_WITH_${option:tu}=ON
 PLIST.${option}=       yes
 .  else
-CMAKE_CONFIGURE_ARGS+=         -DICINGA2_WITH_${option:tu}=OFF
+CMAKE_CONFIGURE_ARGS+= -DICINGA2_WITH_${option:tu}=OFF
 .  endif
 .endfor

Index: pkgsrc/net/icinga2/distinfo
diff -u pkgsrc/net/icinga2/distinfo:1.6 pkgsrc/net/icinga2/distinfo:1.7
--- pkgsrc/net/icinga2/distinfo:1.6     Fri Nov 22 15:31:29 2024
+++ pkgsrc/net/icinga2/distinfo Wed Feb 19 18:02:21 2025
@@ -1,6 +1,13 @@
-$NetBSD: distinfo,v 1.6 2024/11/22 15:31:29 ryoon Exp $
+$NetBSD: distinfo,v 1.7 2025/02/19 18:02:21 wiz Exp $
 
-BLAKE2s (icinga2-2.12.11.tar.gz) = 63daa21ef02608739fd4cd836488a1ab74a5daf9cdad7a6a3c578d441e588517
-SHA512 (icinga2-2.12.11.tar.gz) = 15efae7b7d755a01e3bebc123cb6aadc0ee48895378f12d57e4c7314f804dcb84f82652ee95762d04bf401579b48db254a85cba5889ccba2b46c7c66789f30d3
-Size (icinga2-2.12.11.tar.gz) = 7553720 bytes
+BLAKE2s (icinga2-2.14.5.tar.gz) = 3033f7b9a01d0d26a3fa91060f35de6129dac99036cc0068a82e5a95e37ecff2
+SHA512 (icinga2-2.14.5.tar.gz) = 841076e4207aa4c57d46ebff54e17b082490720b3aa194374448f2e1d06e9edb6823e59791bef769f38a14f463f216391666ecb21ccd5b6ca6f96f5b67030d2d
+Size (icinga2-2.14.5.tar.gz) = 9413390 bytes
+SHA1 (patch-lib_base_io-engine.hpp) = 45ee3b8c122915a36f4f3a5c9620c95d2875faf0
+SHA1 (patch-lib_base_tcpsocket.hpp) = 628642610723a7bae86e934f6439ca9bbe283fd9
+SHA1 (patch-lib_icingadb_redisconnection.cpp) = f6f32fb458682bdf70d9b44024eb8d40ef2b71b1
+SHA1 (patch-lib_icingadb_redisconnection.hpp) = e3d8873abc45209e4a3f1c6ee1daee47c8086f83
+SHA1 (patch-lib_remote_apilistener.cpp) = 2e486ed25ed8ee7097f021dc39c5d0997971ebae
+SHA1 (patch-lib_remote_jsonrpcconnection.cpp) = 99510ae14dd85a2a4152d5241c7bc37df397336d
+SHA1 (patch-test_base-io-engine.cpp) = 74876759c74b07aa0206b4c472ef242bf230098f
 SHA1 (patch-third-party_cmake_FindMySQL.cmake) = a33567c30db47c4fab379f1b7c358174dd85fdd3

Added files:

Index: pkgsrc/net/icinga2/patches/patch-lib_base_io-engine.hpp
diff -u /dev/null pkgsrc/net/icinga2/patches/patch-lib_base_io-engine.hpp:1.1
--- /dev/null   Wed Feb 19 18:02:21 2025
+++ pkgsrc/net/icinga2/patches/patch-lib_base_io-engine.hpp     Wed Feb 19 18:02:21 2025
@@ -0,0 +1,62 @@
+$NetBSD: patch-lib_base_io-engine.hpp,v 1.1 2025/02/19 18:02:21 wiz Exp $
+
+Support boost 1.87.
+https://github.com/Icinga/icinga2/pull/10278
+
+--- lib/base/io-engine.hpp.orig        2025-02-05 14:12:30.000000000 +0000
++++ lib/base/io-engine.hpp
+@@ -16,11 +16,16 @@
+ #include <utility>
+ #include <vector>
+ #include <stdexcept>
++#include <boost/context/fixedsize_stack.hpp>
+ #include <boost/exception/all.hpp>
+ #include <boost/asio/deadline_timer.hpp>
+ #include <boost/asio/io_context.hpp>
+ #include <boost/asio/spawn.hpp>
+ 
++#if BOOST_VERSION >= 108000
++#     include <boost/asio/detached.hpp>
++#endif // BOOST_VERSION >= 108000
++
+ namespace icinga
+ {
+ 
+@@ -102,21 +107,32 @@ public:
+       static void SpawnCoroutine(Handler& h, Function f) {
+ 
+               boost::asio::spawn(h,
++#if BOOST_VERSION >= 108000
++                      std::allocator_arg_t(),
++                      boost::context::fixedsize_stack(GetCoroutineStackSize()),
++#endif // BOOST_VERSION >= 108000
+                       [f](boost::asio::yield_context yc) {
+ 
+                               try {
+                                       f(yc);
+-                              } catch (const boost::coroutines::detail::forced_unwind &) {
+-                                      // Required for proper stack unwinding when coroutines are destroyed.
+-                                      // https://github.com/boostorg/coroutine/issues/39
+-                                      throw;
+                               } catch (const std::exception& ex) {
+                                       Log(LogCritical, "IoEngine") << "Exception in coroutine: " << DiagnosticInformation(ex);
+                               } catch (...) {
+-                                      Log(LogCritical, "IoEngine", "Exception in coroutine!");
++                                      try {
++                                              Log(LogCritical, "IoEngine", "Exception in coroutine!");
++                                      } catch (...) {
++                                      }
++
++                                      // Required for proper stack unwinding when coroutines are destroyed.
++                                      // https://github.com/boostorg/coroutine/issues/39
++                                      throw;
+                               }
+                       },
++#if BOOST_VERSION >= 108000
++                      boost::asio::detached
++#else // BOOST_VERSION >= 108000
+                       boost::coroutines::attributes(GetCoroutineStackSize()) // Set a pre-defined stack size.
++#endif // BOOST_VERSION >= 108000
+               );
+       }
+ 
Index: pkgsrc/net/icinga2/patches/patch-lib_base_tcpsocket.hpp
diff -u /dev/null pkgsrc/net/icinga2/patches/patch-lib_base_tcpsocket.hpp:1.1
--- /dev/null   Wed Feb 19 18:02:21 2025
+++ pkgsrc/net/icinga2/patches/patch-lib_base_tcpsocket.hpp     Wed Feb 19 18:02:21 2025
@@ -0,0 +1,27 @@
+$NetBSD: patch-lib_base_tcpsocket.hpp,v 1.1 2025/02/19 18:02:21 wiz Exp $
+
+Support boost 1.87.
+https://github.com/Icinga/icinga2/pull/10278
+
+--- lib/base/tcpsocket.hpp.orig        2025-02-05 14:12:30.000000000 +0000
++++ lib/base/tcpsocket.hpp
+@@ -41,8 +41,7 @@ void Connect(Socket& socket, const Strin
+       using boost::asio::ip::tcp;
+ 
+       tcp::resolver resolver (IoEngine::Get().GetIoContext());
+-      tcp::resolver::query query (node, service);
+-      auto result (resolver.resolve(query));
++      auto result (resolver.resolve(node.CStr(), service.CStr()));
+       auto current (result.begin());
+ 
+       for (;;) {
+@@ -72,8 +71,7 @@ void Connect(Socket& socket, const Strin
+       using boost::asio::ip::tcp;
+ 
+       tcp::resolver resolver (IoEngine::Get().GetIoContext());
+-      tcp::resolver::query query (node, service);
+-      auto result (resolver.async_resolve(query, yc));
++      auto result (resolver.async_resolve(node.CStr(), service.CStr(), yc));
+       auto current (result.begin());
+ 
+       for (;;) {
Index: pkgsrc/net/icinga2/patches/patch-lib_icingadb_redisconnection.cpp
diff -u /dev/null pkgsrc/net/icinga2/patches/patch-lib_icingadb_redisconnection.cpp:1.1
--- /dev/null   Wed Feb 19 18:02:21 2025
+++ pkgsrc/net/icinga2/patches/patch-lib_icingadb_redisconnection.cpp   Wed Feb 19 18:02:21 2025
@@ -0,0 +1,121 @@
+$NetBSD: patch-lib_icingadb_redisconnection.cpp,v 1.1 2025/02/19 18:02:21 wiz Exp $
+
+Support boost 1.87.
+https://github.com/Icinga/icinga2/pull/10278
+
+--- lib/icingadb/redisconnection.cpp.orig      2025-02-05 14:12:30.000000000 +0000
++++ lib/icingadb/redisconnection.cpp
+@@ -377,8 +377,6 @@ void RedisConnection::Connect(asio::yiel
+                       }
+ 
+                       break;
+-              } catch (const boost::coroutines::detail::forced_unwind&) {
+-                      throw;
+               } catch (const std::exception& ex) {
+                       Log(LogCritical, "IcingaDB")
+                               << "Cannot connect to " << m_Host << ":" << m_Port << ": " << ex.what();
+@@ -408,18 +406,11 @@ void RedisConnection::ReadLoop(asio::yie
+                                               for (auto i (item.Amount); i; --i) {
+                                                       ReadOne(yc);
+                                               }
+-                                      } catch (const boost::coroutines::detail::forced_unwind&) {
+-                                              throw;
+                                       } catch (const std::exception& ex) {
+                                               Log(LogCritical, "IcingaDB")
+                                                       << "Error during receiving the response to a query which has been fired and forgotten: " << ex.what();
+ 
+                                               continue;
+-                                      } catch (...) {
+-                                              Log(LogCritical, "IcingaDB")
+-                                                      << "Error during receiving the response to a query which has been fired and forgotten";
+-
+-                                              continue;
+                                       }
+ 
+                                       break;
+@@ -432,9 +423,7 @@ void RedisConnection::ReadLoop(asio::yie
+ 
+                                               try {
+                                                       reply = ReadOne(yc);
+-                                              } catch (const boost::coroutines::detail::forced_unwind&) {
+-                                                      throw;
+-                                              } catch (...) {
++                                              } catch (const std::exception&) {
+                                                       promise.set_exception(std::current_exception());
+ 
+                                                       continue;
+@@ -455,9 +444,7 @@ void RedisConnection::ReadLoop(asio::yie
+                                               for (auto i (item.Amount); i; --i) {
+                                                       try {
+                                                               replies.emplace_back(ReadOne(yc));
+-                                                      } catch (const boost::coroutines::detail::forced_unwind&) {
+-                                                              throw;
+-                                                      } catch (...) {
++                                                      } catch (const std::exception&) {
+                                                               promise.set_exception(std::current_exception());
+                                                               break;
+                                                       }
+@@ -551,20 +538,12 @@ void RedisConnection::WriteItem(boost::a
+ 
+               try {
+                       WriteOne(item, yc);
+-              } catch (const boost::coroutines::detail::forced_unwind&) {
+-                      throw;
+               } catch (const std::exception& ex) {
+                       Log msg (LogCritical, "IcingaDB", "Error during sending query");
+                       LogQuery(item, msg);
+                       msg << " which has been fired and forgotten: " << ex.what();
+ 
+                       return;
+-              } catch (...) {
+-                      Log msg (LogCritical, "IcingaDB", "Error during sending query");
+-                      LogQuery(item, msg);
+-                      msg << " which has been fired and forgotten";
+-
+-                      return;
+               }
+ 
+               if (m_Queues.FutureResponseActions.empty() || m_Queues.FutureResponseActions.back().Action != ResponseAction::Ignore) {
+@@ -587,20 +566,12 @@ void RedisConnection::WriteItem(boost::a
+                               WriteOne(query, yc);
+                               ++i;
+                       }
+-              } catch (const boost::coroutines::detail::forced_unwind&) {
+-                      throw;
+               } catch (const std::exception& ex) {
+                       Log msg (LogCritical, "IcingaDB", "Error during sending query");
+                       LogQuery(item[i], msg);
+                       msg << " which has been fired and forgotten: " << ex.what();
+ 
+                       return;
+-              } catch (...) {
+-                      Log msg (LogCritical, "IcingaDB", "Error during sending query");
+-                      LogQuery(item[i], msg);
+-                      msg << " which has been fired and forgotten";
+-
+-                      return;
+               }
+ 
+               if (m_Queues.FutureResponseActions.empty() || m_Queues.FutureResponseActions.back().Action != ResponseAction::Ignore) {
+@@ -618,9 +589,7 @@ void RedisConnection::WriteItem(boost::a
+ 
+               try {
+                       WriteOne(item.first, yc);
+-              } catch (const boost::coroutines::detail::forced_unwind&) {
+-                      throw;
+-              } catch (...) {
++              } catch (const std::exception&) {
+                       item.second.set_exception(std::current_exception());
+ 
+                       return;
+@@ -645,9 +614,7 @@ void RedisConnection::WriteItem(boost::a
+                       for (auto& query : item.first) {
+                               WriteOne(query, yc);
+                       }
+-              } catch (const boost::coroutines::detail::forced_unwind&) {
+-                      throw;
+-              } catch (...) {
++              } catch (const std::exception&) {
+                       item.second.set_exception(std::current_exception());
+ 
+                       return;
Index: pkgsrc/net/icinga2/patches/patch-lib_icingadb_redisconnection.hpp
diff -u /dev/null pkgsrc/net/icinga2/patches/patch-lib_icingadb_redisconnection.hpp:1.1
--- /dev/null   Wed Feb 19 18:02:21 2025
+++ pkgsrc/net/icinga2/patches/patch-lib_icingadb_redisconnection.hpp   Wed Feb 19 18:02:21 2025
@@ -0,0 +1,47 @@
+$NetBSD: patch-lib_icingadb_redisconnection.hpp,v 1.1 2025/02/19 18:02:21 wiz Exp $
+
+Support boost 1.87.
+https://github.com/Icinga/icinga2/pull/10278
+
+--- lib/icingadb/redisconnection.hpp.orig      2025-02-05 14:12:30.000000000 +0000
++++ lib/icingadb/redisconnection.hpp
+@@ -388,9 +388,7 @@ RedisConnection::Reply RedisConnection::
+ 
+       try {
+               return ReadRESP(*strm, yc);
+-      } catch (const boost::coroutines::detail::forced_unwind&) {
+-              throw;
+-      } catch (...) {
++      } catch (const std::exception&) {
+               if (m_Connecting.exchange(false)) {
+                       m_Connected.store(false);
+                       stream = nullptr;
+@@ -403,6 +401,8 @@ RedisConnection::Reply RedisConnection::
+               }
+ 
+               throw;
++      } catch (...) {
++              throw;
+       }
+ }
+ 
+@@ -426,9 +426,7 @@ void RedisConnection::WriteOne(StreamPtr
+       try {
+               WriteRESP(*strm, query, yc);
+               strm->async_flush(yc);
+-      } catch (const boost::coroutines::detail::forced_unwind&) {
+-              throw;
+-      } catch (...) {
++      } catch (const std::exception&) {
+               if (m_Connecting.exchange(false)) {
+                       m_Connected.store(false);
+                       stream = nullptr;
+@@ -441,6 +439,8 @@ void RedisConnection::WriteOne(StreamPtr
+               }
+ 
+               throw;
++      } catch (...) {
++              throw;
+       }
+ }
+ 
Index: pkgsrc/net/icinga2/patches/patch-lib_remote_apilistener.cpp
diff -u /dev/null pkgsrc/net/icinga2/patches/patch-lib_remote_apilistener.cpp:1.1
--- /dev/null   Wed Feb 19 18:02:21 2025
+++ pkgsrc/net/icinga2/patches/patch-lib_remote_apilistener.cpp Wed Feb 19 18:02:21 2025
@@ -0,0 +1,18 @@
+$NetBSD: patch-lib_remote_apilistener.cpp,v 1.1 2025/02/19 18:02:21 wiz Exp $
+
+Support boost 1.87.
+https://github.com/Icinga/icinga2/pull/10278
+
+--- lib/remote/apilistener.cpp.orig    2025-02-05 14:12:30.000000000 +0000
++++ lib/remote/apilistener.cpp
+@@ -439,9 +439,7 @@ bool ApiListener::AddListener(const Stri
+ 
+       try {
+               tcp::resolver resolver (io);
+-              tcp::resolver::query query (node, service, tcp::resolver::query::passive);
+-
+-              auto result (resolver.resolve(query));
++              auto result (resolver.resolve(node.CStr(), service.CStr(), tcp::resolver::passive));
+               auto current (result.begin());
+ 
+               for (;;) {
Index: pkgsrc/net/icinga2/patches/patch-lib_remote_jsonrpcconnection.cpp
diff -u /dev/null pkgsrc/net/icinga2/patches/patch-lib_remote_jsonrpcconnection.cpp:1.1
--- /dev/null   Wed Feb 19 18:02:21 2025
+++ pkgsrc/net/icinga2/patches/patch-lib_remote_jsonrpcconnection.cpp   Wed Feb 19 18:02:21 2025
@@ -0,0 +1,25 @@
+$NetBSD: patch-lib_remote_jsonrpcconnection.cpp,v 1.1 2025/02/19 18:02:21 wiz Exp $
+
+Support boost 1.87.
+https://github.com/Icinga/icinga2/pull/10278
+
+--- lib/remote/jsonrpcconnection.cpp.orig      2025-02-05 14:12:30.000000000 +0000
++++ lib/remote/jsonrpcconnection.cpp
+@@ -212,7 +212,7 @@ void JsonRpcConnection::SendMessage(cons
+ 
+       Ptr keepAlive (this);
+ 
+-      m_IoStrand.post([this, keepAlive, message]() { SendMessageInternal(message); });
++      boost::asio::post(m_IoStrand, [this, keepAlive, message] { SendMessageInternal(message); });
+ }
+ 
+ void JsonRpcConnection::SendRawMessage(const String& message)
+@@ -223,7 +223,7 @@ void JsonRpcConnection::SendRawMessage(c
+ 
+       Ptr keepAlive (this);
+ 
+-      m_IoStrand.post([this, keepAlive, message]() {
++      boost::asio::post(m_IoStrand, [this, keepAlive, message] {
+               if (m_ShuttingDown) {
+                       return;
+               }
Index: pkgsrc/net/icinga2/patches/patch-test_base-io-engine.cpp
diff -u /dev/null pkgsrc/net/icinga2/patches/patch-test_base-io-engine.cpp:1.1
--- /dev/null   Wed Feb 19 18:02:21 2025
+++ pkgsrc/net/icinga2/patches/patch-test_base-io-engine.cpp    Wed Feb 19 18:02:21 2025
@@ -0,0 +1,52 @@
+$NetBSD: patch-test_base-io-engine.cpp,v 1.1 2025/02/19 18:02:21 wiz Exp $
+
+Support boost 1.87.
+https://github.com/Icinga/icinga2/pull/10278
+
+--- test/base-io-engine.cpp.orig       2025-02-05 14:12:30.000000000 +0000
++++ test/base-io-engine.cpp
+@@ -17,7 +17,7 @@ BOOST_AUTO_TEST_CASE(timeout_run)
+       boost::asio::io_context::strand strand (io);
+       int called = 0;
+ 
+-      boost::asio::spawn(strand, [&](boost::asio::yield_context yc) {
++      IoEngine::SpawnCoroutine(strand, [&](boost::asio::yield_context yc) {
+               boost::asio::deadline_timer timer (io);
+ 
+               Timeout timeout (strand, boost::posix_time::millisec(300), [&called] { ++called; });
+@@ -44,7 +44,7 @@ BOOST_AUTO_TEST_CASE(timeout_cancelled)
+       boost::asio::io_context::strand strand (io);
+       int called = 0;
+ 
+-      boost::asio::spawn(strand, [&](boost::asio::yield_context yc) {
++      IoEngine::SpawnCoroutine(strand, [&](boost::asio::yield_context yc) {
+               boost::asio::deadline_timer timer (io);
+               Timeout timeout (strand, boost::posix_time::millisec(300), [&called] { ++called; });
+ 
+@@ -71,7 +71,7 @@ BOOST_AUTO_TEST_CASE(timeout_scope)
+       boost::asio::io_context::strand strand (io);
+       int called = 0;
+ 
+-      boost::asio::spawn(strand, [&](boost::asio::yield_context yc) {
++      IoEngine::SpawnCoroutine(strand, [&](boost::asio::yield_context yc) {
+               boost::asio::deadline_timer timer (io);
+ 
+               {
+@@ -100,7 +100,7 @@ BOOST_AUTO_TEST_CASE(timeout_due_cancell
+       boost::asio::io_context::strand strand (io);
+       int called = 0;
+ 
+-      boost::asio::spawn(strand, [&](boost::asio::yield_context yc) {
++      IoEngine::SpawnCoroutine(strand, [&](boost::asio::yield_context yc) {
+               boost::asio::deadline_timer timer (io);
+               Timeout timeout (strand, boost::posix_time::millisec(300), [&called] { ++called; });
+ 
+@@ -131,7 +131,7 @@ BOOST_AUTO_TEST_CASE(timeout_due_scope)
+       boost::asio::io_context::strand strand (io);
+       int called = 0;
+ 
+-      boost::asio::spawn(strand, [&](boost::asio::yield_context yc) {
++      IoEngine::SpawnCoroutine(strand, [&](boost::asio::yield_context yc) {
+               boost::asio::deadline_timer timer (io);
+ 
+               {



Home | Main Index | Thread Index | Old Index