The docs build has been failing because doc/source/conf_helpers.py was
removed, but Sphinx imports it from conf.py. This reintroduces the
helper module so the documentation can be built again.
Regression introduced by:
ba762b6533
Impact: restores local and CI doc builds; no runtime behavior change.
Before: sphinx-build failed with ImportError for conf_helpers.
After: sphinx-build completes successfully.
Publish PR previews for both `pull_request` and `pull_request_target`
events. Previously, the preview job only ran for `pull_request`, so runs
from `pull_request_target` were skipped.
Details
- Build Sphinx docs with rsyslog Makefile (make html, warnings-as-errors).
- Deploy preview to GitHub Pages under "pr-<num>/" using configure,
upload, and deploy actions.
- Post/update PR comment with live preview and workflow/artifacts links.
- Cleanup preview folder on PR close.
- Grant required permissions (pages, id-token, issues, pull-requests);
keep yamllint clean.
- Remove old "Deploy GitHub Pages" job.
- Trigger on both PR events; include event name in concurrency group to
avoid cross-run cancellation.
- Checkout PR head SHA for PR events (fallback to github.sha).
- Gate heavy steps on `doc/**/*.rst` changes for both PR event types.
- Restrict publish to same-repo PRs; fork PRs remain excluded by policy.
Impact
- PR doc previews publish for same-repo PRs regardless of which PR event
triggered the workflow.
- Non-doc PRs still skip heavy steps; no change in behavior there.
Co-authored-by: alorbach <alorbach@adiscon.com>
Replace deprecated bash uploader with Codecov's official uploader.
The script now downloads the uploader binary, verifies its SHA256
checksum, and runs it to submit coverage results.
The change keeps run-ci.sh CI-agnostic.
With the help of AI-Agent: ChatGPT
kafkacat has been renamed to kcat, as it looks for trademark issues.
Kafka module tests depend on that utility and are skipped if command
is not available. This was now always the case for newer development
containers.
Name was now adjusted in all tests.
* mmnormalize: split parameter docs into reference pages
- Split Module and Action parameters into dedicated reference files
- Replace inline blocks with list-tables and included summaries
- Add hidden toctree; remove legacy parameter section; fix anchors
With the help of AI-Agents: ChatGPT, Gemini
Adds -w option to tcpflood to write its local port to a file.
The option accepts a filename and writes the port number followed
by a trailing newline. tcpflood now rejects -w if more than one
connection would be opened.
With help of AI-Agent: ChatGPT
Fix compilation issues on macOS/Darwin systems and enhance cross-platform
compatibility for BSD variants:
- Add Darwin-specific pthread_setname_np call in tcpsrv.c with enhanced
platform-specific conditional compilation
- macOS (__APPLE__): Single parameter, returns int
- FreeBSD/NetBSD: Two parameters, returns void
- Linux/glibc (default): Two parameters, returns int
This prevents compilation failures across all BSD systems where the
function signature and return type differ, while maintaining existing
compatibility with macOS and Linux systems.
- Add _PATH_UTMP fallback definition in omusrmsg.c for systems
without paths.h or missing _PATH_UTMP definition
- Remove trailing empty line in cfsysline.c for consistency
The change adds proper platform-specific conditional compilation
with clear documentation for each variant and maintains error
checking where the return value is available.
Impact: Fixes build regressions on Darwin and BSD systems while
preserving backward compatibility with existing platforms.
Refs: https://github.com/rsyslog/rsyslog/pull/6069
Refs: https://github.com/rsyslog/rsyslog/pull/5635
Refs: https://github.com/Homebrew/homebrew-core/issues/221869
Refs: https://github.com/Homebrew/homebrew-core/issues/226378
- Improve batch sizing: predict serialized size including format overhead and separators to honor batch.maxbytes precisely, minimizing premature flushes and preventing oversize payloads.
- Add computeDeltaExtraOnAppend to check thresholds before appending each record.
- Fix dynrestpath batching: flush only when rest path changes; reinitialize and re-seed path for the next batch; free old path to avoid leaks.
- Preserve backward compatibility: existing config keys and formats unchanged; default retry via core suspend/resume; retry.ruleset supported for advanced per-message retry handling.
- Update module docs to reflect refined flush conditions, dynrestpath semantics, and default retry behavior.
see also: https://github.com/rsyslog/rsyslog/issues/5957
It looks like our previous config was either for a pre-release or
did work albeit not following the (current) published schema.
Now changed it to current form.
Harden default endpoints for cloud-native use: make health/metrics
scrapes proxy-friendly and allow locking them down with Basic Auth.
This aligns imhttp with common Kubernetes/Prometheus patterns and
supports metrics-only deployments.
Impact: /metrics now exports full rsyslog stats with Content-Length;
health and metrics can be gated via htpasswd; unified 500 on failures.
Technical details:
- Add module params: healthCheckBasicAuthFile and metricsBasicAuthFile.
When set, attach a Basic Auth handler that reads an htpasswd file;
reuse the same handler for per-input endpoints by passing the file via
cbdata.
- Rework Prometheus handler to collect data through statsobj in
Prometheus format. Accumulate lines into a growable buffer with
overflow checks, append an imhttp_up gauge, then reply with an
explicit Content-Length and close the connection.
- Fix metrics buffer termination to use a single NUL byte; prevent a
leak when buffer growth fails; consolidate error paths so the buffer is
freed and a single HTTP 500 is emitted.
- Docs: describe new auth options, clarify default paths, document that
metrics responses carry Content-Length, and add examples (including
metrics-only setups).
Before/After: metrics previously exposed a minimal body without auth;
now they export full rsyslog stats with optional Basic Auth and a
Content-Length header.