From 0d0b044c6d08a66b15257407b3906bcfba5d9fad Mon Sep 17 00:00:00 2001 From: Jan Wagner Date: Tue, 17 Oct 2023 15:20:22 +0200 Subject: Prepare release 2.3.4 diff --git a/NEWS b/NEWS index 9ec3c5e..b2ffec5 100644 --- a/NEWS +++ b/NEWS @@ -1,5 +1,180 @@ This file documents the major additions and syntax changes between releases. +2.3.4 18th Oct 2023 + ENHANCEMENTS + check_disk_smb: allow checking 0-sized resource (ex. IPC$) + check_icmp: Add support to Jitter, MOS and Score + check_icmp: Clean up plugin exit + check_mysql: Detect running mysqldump + check_disk: add ignore-missing option to return OK for missing fs + check_disk: add tests for new option --ignore-missing + check_icmp: Remove trailing whitespaces + check_icmp: Remove hardcoded DBL_MAX definition + check_icmp: Replace DBL_MAX with INFITY to check if value was set + check_mailq: separate submission queue + check_psql: add extra output + check_curl: using CURLOPT_REDIR_PROTOCOLS_STR instead of + CURLOPT_REDIR_PROTOCOLS for curl >= 7.85.0 + check_http: Implement special case test for zero size chunk only + check_radius: cope with radcli-1.3.1 RC_BUFFER_LEN + check_curl: added --cookie-jar and doing proper cleanup of libcurl + check_disk: still allow check of available disks with ignore-missing + param used + check_disk: add new tests for new ignore-missing feature + check_disk: use cleaner code for ignore-missing option + check_curl: in SSL host caching mode try to connect and bind and take + the first getaddrinfo result which succeeds + check_curl: Include all IPs from getaddrinfo() in curl DNS cache + check_procs: Implement --exclude-process to exclude specific processes + check_procs: add a test for the newly added -X option + check_snmp: simplify code + check_smtp: Add option to prefix PROXY header + check_smtp: Add support for SNI + check_snmp: Detect if fmtstr was set in edge cases + check_snmp: Implement option to ignore mib file parsing errors + check_snmp: Enhance regex in test to be more tolerant to follow up text + check_users: prefer systemd-logind over utmp + check_smtp: Add support for SMTP over TLS + check_smtp: set default port to smtps (465) for TLS + check_smtp: remove restriction of --proxy with --ssl + check_smtp: add new longoption --tls + check_smtp: Let port option always take precedence + check_smtp: add tests for --ssl + check_mysql: Initialize slaveresult to 0 and use strncat instead of + bsd strlcat + check_disk: Mention -A and long options in error message about + missing thresholds + check_disk: More spacing to separate examples + check_disk: Add some general usage hints + check_disk: Add -C to general usage hints + check_icmp: remove root check + check_disk: make -X a regex list + check_disk: Change usage for --include-type to indicated regexes are + now possible + check_dhcp: Add dhcp rogue detection + + FIXES + check_disk: Remove weird code (workaround?) which broke with gnulib + update + check_http: Handle chunked encoding without actual content correctly + check_curl: fixed regerror is MAX_INPUT_BUFFER writing into too small + errbuf + check_curl: better cleanup of curl structures and buffers + check_curl: fixed double frees when doing old-style redirects + check_curl: changed #else/#if to #elif in libcurl library checks + check_curl: using real boolean + check_icmp: Fix compiler warning + check_disk: fix tests by setting correct test number and escaping line + end regex + check_disk: fix ugly output with -e option and adapt tests accordingly + check_curl: fixed a wrong compare and a wrong size in strncat + check_curl: removed a superfluous variable + check_snmp: disable multiplier when unused + check_swap: Remove unnecessary and problematic includes + check_curl: including netinet/in.h (for FreeBSD), fixed an ambiguous + compare warning + check_log/check_oracle/check_sensors: fixed the outputs of the + --versions options + check_nwstats: Fix 'requres' typo + Fix a lot of typos reported by codespell + check_http: Remove unused variable + check_curl: Avoid unnecessary malloc and use stack instead + check_nt: change encoding from latin1 to utf8 + check_mysql: Fixed typo of encryption + check_disk: Display SI units correctly + check_mysql: handle ER_ACCESS_DENIED_NO_PASSWORD_ERROR if ignore_auth=1 + check_smtp: add missing -r option in usage + check_http: Fix unchunking body fails when no body is present + check_snmp: Remove dead, commented code + check_radius: Change help to emphasize the necessity of a config file + check_wave: Use compile time determined path to snmpget + check_disk: Remove some dead variables + check_disk: Remove some dead variables + check_mysql: Add mysql_close to avoid spamming the server logs + check_disk: Fix printf format string + check_dhcp: Remove unnecessary type defines + check_dhcp: Homogenize whitespace usage + check_dhcp: Use real booleans + check_dhcp: Comment some endifs to make comprehension easier + check_dhcp: Remove trailing lines + check_dhcp: New variable is actually a boolean + check_dhcp: Make some booleans nicer + check_icmp: fix host count on when checking multiple hosts + check_icmp: remove sun ifdef + check_icmp: check malloc + check_ircd: use pack_sockaddr_in rather than hand-rolled + check_icmp: Refactor get_threshold2 to be barely understandable + check_icmp: Change function type of get_thresholds to better reflect the + options + check_icmp: Remove useless return after crash + check_icmp: Do some actual error checking on the threshold parser + check_icmp: Refactor new threshold parser + check_icmp: Initialise threshold variables properly + check_icmp: fix sign compare compiler warnings + check_icmp: fix unused variables compiler warning + check_icmp: More consequent booleans + check_icmp: Do some code formatting + check_icmp: Remove preprocessor macro + check_icmp: Add some more comments about the MOS score + check_curl: Fix -Wcast-function-type compiler warnings + check_http: Whitespace fixes + check_curl: fix compiler warnings for unused variables + check_ldap: fix compiler warnings for unused variables + check_http: Fixes for compiler warning -Wparentheses + check_procs: Fixes for compiler warning -Wparentheses + check_dhcp: Fix for -Wunused-but-set-variable + + GENERAL + Sync with the latest Gnulib code 668c0b8ffa + Set autoconf prerequisite version to 2.64 + Remove sha1 and add sha256 + Replace sha1 with sha256 in utils_base + remove gl/c++defs, replace gl/gettext with gl/gettext-h + Add gl/c++defs + Do not ignore /gl/warn-on-use.h and gl/arg-nonnull.h + sslutils.c: Move function after a function it uses to avoid forward + declarations + Link plugins against libcrypto to make hashes available + Also link LIB_CRYPTO against tests + Fix hashes in tests since we are using sha256 now + fallback to SSL_CTX_use_certificate_file for gnutls + Remove .deps files and folder + Ignore .dirstamp files in gnulib + Make preprocessor fallback for gnutls more readable + utils_disk: add name_prev pointer to struct parameter_list + Actually build check_mssql too + Implicit function declarations + Fixes for -Wunused + Fixes for -Wimplicit-fallthrough + Fixes for -Wunused-parameters + Fixes for -Wuninitialized + Fixes for -Wrestrict + Replace deprecated TLS client functions + Use default OPENSSL sha functions if available + Fix hash creation + Fixes for -Wnonnull-compare + Fixes for Waddress + Try fixing deprecated functions in libdbi + Refix spelling issues + Changing remaining sscanf format specifier to unsigned long + Avoid mounting when searching for matching mount points + Add xgettext option to not put file positions in translation files + Add dynamic path to snmpget to perl utils + Change encoding of german translation file to utf8 + Remove note about comments, we will accept // comments + Switch guidelines to use bool instead of int for booleans + Rework maxfd/open_max to avoid unused variables + Place _cmd_pids in object not header to avoid unused variables + open_max is a library function now, it should be mp_open_max + Remove check for RETSIGTYPE in autoconf stuff + Document new np_add_regex more and add error handling + Fix some more typos + Fix missing include in plugins/runcmd.c + Fix spelling stuff + Update configure.ac + Whitespace fixes in lib + Replace all old school booleans in lib witch C99 ones + 2.3.3 2nd Feb 2023 ENHANCEMENTS using PRId64 and PRIu64 instead of %ld directly diff --git a/NP-VERSION-GEN b/NP-VERSION-GEN index c353b1d..06a3eaf 100755 --- a/NP-VERSION-GEN +++ b/NP-VERSION-GEN @@ -6,7 +6,7 @@ SRC_ROOT=`dirname $0` NPVF=NP-VERSION-FILE -DEF_VER=2.3git +DEF_VER=2.3.4 LF=' ' diff --git a/THANKS.in b/THANKS.in index b132744..0ef7d48 100644 --- a/THANKS.in +++ b/THANKS.in @@ -406,3 +406,16 @@ Wolfgang Nieder andrew bezella Lorenz Gruenwald John Morrissey +Arkadiusz Miśkiewicz +Björn Berg +Franz Schwartau +Gerardo Malazdrewicz +Kristian Schuster +Patrick Cervicek +Patrick Uiterwijk +Platon Pronko +Stefan Taferner +Stuart Henderson +Thoralf Rickert-Wendt +Thorsten Kukuk +Matthias Döhler diff --git a/configure.ac b/configure.ac index b5374b2..dea1509 100644 --- a/configure.ac +++ b/configure.ac @@ -1,6 +1,6 @@ dnl Process this file with autoconf to produce a configure script. AC_PREREQ(2.64) -AC_INIT(monitoring-plugins,2.3git) +AC_INIT(monitoring-plugins,2.3.4) AC_CONFIG_SRCDIR(NPTest.pm) AC_CONFIG_FILES([gl/Makefile]) AC_CONFIG_AUX_DIR(build-aux) -- cgit v0.10-9-g596f From f7417490ccfb5a886b0d23c9c2ede55f48ecbf3a Mon Sep 17 00:00:00 2001 From: Jan Wagner Date: Tue, 17 Oct 2023 16:01:26 +0200 Subject: Prevent THANKS.in from beeing codespelled diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index ea0b38b..37c7738 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -20,7 +20,7 @@ jobs: - name: Codespell uses: codespell-project/actions-codespell@v2 with: - skip: "./.git,./.gitignore,./ABOUT-NLS,*.po,./gl,./po,./tools/squid.conf,./build-aux/ltmain.sh" + skip: "./.git,./.gitignore,./ABOUT-NLS,*.po,./gl,./po,./tools/squid.conf,./build-aux/ltmain.sh,THANKS.in" ignore_words_list: allright,gord,didi,hda,nd,alis,clen,scrit,ser,fot,te,parm,isnt,consol,oneliners,esponse,slac check_filenames: true check_hidden: true -- cgit v0.10-9-g596f From 14e6b33c8580de5c3c91ac835f8085581e71ee6d Mon Sep 17 00:00:00 2001 From: Jan Wagner Date: Tue, 17 Oct 2023 16:40:31 +0200 Subject: Update documentation with latest release diff --git a/doc/RELEASING.md b/doc/RELEASING.md index 432b1da..f0932bd 100644 --- a/doc/RELEASING.md +++ b/doc/RELEASING.md @@ -2,7 +2,7 @@ Releasing a New Monitoring Plugins Version ========================================== Throughout this document, it is assumed that the current Monitoring -Plugins version is 2.3.3, and that we're about to publish version 2.4. +Plugins version is 2.3.4, and that we're about to publish version 2.4. It is also assumed that the official repository on GitHub is tracked using the remote name `monitoring-plugins` (rather than `origin`). @@ -18,7 +18,7 @@ Prepare and commit files ------------------------ - Update `configure.ac` and `NP-VERSION-GEN` with new version. -- Update `NEWS` from `git log --reverse v2.3.3..` output, and specify +- Update `NEWS` from `git log --reverse v2.3.4..` output, and specify the release version/date. - Update `AUTHORS` if there are new team members. - Update `THANKS.in` using `tools/update-thanks`. @@ -93,6 +93,6 @@ Announce new release If you want to mention the number of contributors in the announcement: - git shortlog -s v2.3.3..v2.4 | wc -l + git shortlog -s v2.3.4..v2.4 | wc -l -- cgit v0.10-9-g596f From ddbf839d933d38ec00d399367c9b22b12a2b72b0 Mon Sep 17 00:00:00 2001 From: RincewindsHat <12514511+RincewindsHat@users.noreply.github.com> Date: Tue, 17 Oct 2023 17:12:56 +0200 Subject: Shorten NEWS quite a bit diff --git a/NEWS b/NEWS index b2ffec5..97ac837 100644 --- a/NEWS +++ b/NEWS @@ -2,178 +2,37 @@ This file documents the major additions and syntax changes between releases. 2.3.4 18th Oct 2023 ENHANCEMENTS - check_disk_smb: allow checking 0-sized resource (ex. IPC$) - check_icmp: Add support to Jitter, MOS and Score - check_icmp: Clean up plugin exit - check_mysql: Detect running mysqldump - check_disk: add ignore-missing option to return OK for missing fs - check_disk: add tests for new option --ignore-missing - check_icmp: Remove trailing whitespaces - check_icmp: Remove hardcoded DBL_MAX definition - check_icmp: Replace DBL_MAX with INFITY to check if value was set - check_mailq: separate submission queue - check_psql: add extra output - check_curl: using CURLOPT_REDIR_PROTOCOLS_STR instead of - CURLOPT_REDIR_PROTOCOLS for curl >= 7.85.0 - check_http: Implement special case test for zero size chunk only - check_radius: cope with radcli-1.3.1 RC_BUFFER_LEN - check_curl: added --cookie-jar and doing proper cleanup of libcurl - check_disk: still allow check of available disks with ignore-missing - param used - check_disk: add new tests for new ignore-missing feature - check_disk: use cleaner code for ignore-missing option - check_curl: in SSL host caching mode try to connect and bind and take - the first getaddrinfo result which succeeds - check_curl: Include all IPs from getaddrinfo() in curl DNS cache - check_procs: Implement --exclude-process to exclude specific processes - check_procs: add a test for the newly added -X option - check_snmp: simplify code - check_smtp: Add option to prefix PROXY header - check_smtp: Add support for SNI - check_snmp: Detect if fmtstr was set in edge cases - check_snmp: Implement option to ignore mib file parsing errors - check_snmp: Enhance regex in test to be more tolerant to follow up text - check_users: prefer systemd-logind over utmp - check_smtp: Add support for SMTP over TLS - check_smtp: set default port to smtps (465) for TLS - check_smtp: remove restriction of --proxy with --ssl - check_smtp: add new longoption --tls - check_smtp: Let port option always take precedence - check_smtp: add tests for --ssl - check_mysql: Initialize slaveresult to 0 and use strncat instead of - bsd strlcat - check_disk: Mention -A and long options in error message about - missing thresholds - check_disk: More spacing to separate examples - check_disk: Add some general usage hints - check_disk: Add -C to general usage hints - check_icmp: remove root check - check_disk: make -X a regex list - check_disk: Change usage for --include-type to indicated regexes are - now possible - check_dhcp: Add dhcp rogue detection + * check_curl: added --cookie-jar and doing proper cleanup of libcurl + * check_curl: Include all IPs from getaddrinfo() in curl DNS cache + * check_dhcp: Add dhcp rogue detection + * check_disk: add ignore-missing option to return OK for missing fs + * check_disk_smb: allow checking 0-sized resource (ex. IPC$) + * check_disk: The options to include or exlude specific file systems now allow the usage of regex(7) + * check_icmp: Add support to Jitter, MOS and Score + * check_mysql: Detect running mysqldump and handle it more gracefully + * check_procs: Implement --exclude-process to exclude specific processes + * check_smtp: add new longoption --tls + * check_smtp: Add option to prefix PROXY header + * check_smtp: Add support for SMTP over TLS + * check_smtp: Add support for SNI + * check_snmp: Implement option to ignore mib file parsing errors + * check_users: prefer systemd-logind over utmp FIXES - check_disk: Remove weird code (workaround?) which broke with gnulib - update - check_http: Handle chunked encoding without actual content correctly - check_curl: fixed regerror is MAX_INPUT_BUFFER writing into too small - errbuf - check_curl: better cleanup of curl structures and buffers - check_curl: fixed double frees when doing old-style redirects - check_curl: changed #else/#if to #elif in libcurl library checks - check_curl: using real boolean - check_icmp: Fix compiler warning - check_disk: fix tests by setting correct test number and escaping line - end regex - check_disk: fix ugly output with -e option and adapt tests accordingly - check_curl: fixed a wrong compare and a wrong size in strncat - check_curl: removed a superfluous variable - check_snmp: disable multiplier when unused - check_swap: Remove unnecessary and problematic includes - check_curl: including netinet/in.h (for FreeBSD), fixed an ambiguous - compare warning - check_log/check_oracle/check_sensors: fixed the outputs of the - --versions options - check_nwstats: Fix 'requres' typo - Fix a lot of typos reported by codespell - check_http: Remove unused variable - check_curl: Avoid unnecessary malloc and use stack instead - check_nt: change encoding from latin1 to utf8 - check_mysql: Fixed typo of encryption - check_disk: Display SI units correctly - check_mysql: handle ER_ACCESS_DENIED_NO_PASSWORD_ERROR if ignore_auth=1 - check_smtp: add missing -r option in usage - check_http: Fix unchunking body fails when no body is present - check_snmp: Remove dead, commented code - check_radius: Change help to emphasize the necessity of a config file - check_wave: Use compile time determined path to snmpget - check_disk: Remove some dead variables - check_disk: Remove some dead variables - check_mysql: Add mysql_close to avoid spamming the server logs - check_disk: Fix printf format string - check_dhcp: Remove unnecessary type defines - check_dhcp: Homogenize whitespace usage - check_dhcp: Use real booleans - check_dhcp: Comment some endifs to make comprehension easier - check_dhcp: Remove trailing lines - check_dhcp: New variable is actually a boolean - check_dhcp: Make some booleans nicer - check_icmp: fix host count on when checking multiple hosts - check_icmp: remove sun ifdef - check_icmp: check malloc - check_ircd: use pack_sockaddr_in rather than hand-rolled - check_icmp: Refactor get_threshold2 to be barely understandable - check_icmp: Change function type of get_thresholds to better reflect the - options - check_icmp: Remove useless return after crash - check_icmp: Do some actual error checking on the threshold parser - check_icmp: Refactor new threshold parser - check_icmp: Initialise threshold variables properly - check_icmp: fix sign compare compiler warnings - check_icmp: fix unused variables compiler warning - check_icmp: More consequent booleans - check_icmp: Do some code formatting - check_icmp: Remove preprocessor macro - check_icmp: Add some more comments about the MOS score - check_curl: Fix -Wcast-function-type compiler warnings - check_http: Whitespace fixes - check_curl: fix compiler warnings for unused variables - check_ldap: fix compiler warnings for unused variables - check_http: Fixes for compiler warning -Wparentheses - check_procs: Fixes for compiler warning -Wparentheses - check_dhcp: Fix for -Wunused-but-set-variable + * check_disk: Display SI units correctly + * check_ircd: use pack_sockaddr_in rather than hand-rolled + * check_log/check_oracle/check_sensors: fixed the outputs of the help functionality + * check_mysql: Add mysql_close to avoid spamming the server logs + * check_smtp: add missing -r option in usage + * check_snmp: disable multiplier when unused + * check_wave: Use compile time determined path to snmpget GENERAL - Sync with the latest Gnulib code 668c0b8ffa - Set autoconf prerequisite version to 2.64 - Remove sha1 and add sha256 - Replace sha1 with sha256 in utils_base - remove gl/c++defs, replace gl/gettext with gl/gettext-h - Add gl/c++defs - Do not ignore /gl/warn-on-use.h and gl/arg-nonnull.h - sslutils.c: Move function after a function it uses to avoid forward - declarations - Link plugins against libcrypto to make hashes available - Also link LIB_CRYPTO against tests - Fix hashes in tests since we are using sha256 now - fallback to SSL_CTX_use_certificate_file for gnutls - Remove .deps files and folder - Ignore .dirstamp files in gnulib - Make preprocessor fallback for gnutls more readable - utils_disk: add name_prev pointer to struct parameter_list - Actually build check_mssql too - Implicit function declarations - Fixes for -Wunused - Fixes for -Wimplicit-fallthrough - Fixes for -Wunused-parameters - Fixes for -Wuninitialized - Fixes for -Wrestrict - Replace deprecated TLS client functions - Use default OPENSSL sha functions if available - Fix hash creation - Fixes for -Wnonnull-compare - Fixes for Waddress - Try fixing deprecated functions in libdbi - Refix spelling issues - Changing remaining sscanf format specifier to unsigned long - Avoid mounting when searching for matching mount points - Add xgettext option to not put file positions in translation files - Add dynamic path to snmpget to perl utils - Change encoding of german translation file to utf8 - Remove note about comments, we will accept // comments - Switch guidelines to use bool instead of int for booleans - Rework maxfd/open_max to avoid unused variables - Place _cmd_pids in object not header to avoid unused variables - open_max is a library function now, it should be mp_open_max - Remove check for RETSIGTYPE in autoconf stuff - Document new np_add_regex more and add error handling - Fix some more typos - Fix missing include in plugins/runcmd.c - Fix spelling stuff - Update configure.ac - Whitespace fixes in lib - Replace all old school booleans in lib witch C99 ones + * Sync with the Gnulib code 668c0b8ffa + * Set autoconf prerequisite version to 2.64 + * Remove sha1 and use sha256 in some parts of the plugin structure + * A lot of compiler warnings were fixed + * Some code was refactored a little bit 2.3.3 2nd Feb 2023 ENHANCEMENTS -- cgit v0.10-9-g596f From 2d122f3782c1786900b5d26ddad87feb597b0188 Mon Sep 17 00:00:00 2001 From: RincewindsHat <12514511+RincewindsHat@users.noreply.github.com> Date: Tue, 17 Oct 2023 17:15:02 +0200 Subject: Fix typo diff --git a/NEWS b/NEWS index 97ac837..808277b 100644 --- a/NEWS +++ b/NEWS @@ -7,7 +7,7 @@ This file documents the major additions and syntax changes between releases. * check_dhcp: Add dhcp rogue detection * check_disk: add ignore-missing option to return OK for missing fs * check_disk_smb: allow checking 0-sized resource (ex. IPC$) - * check_disk: The options to include or exlude specific file systems now allow the usage of regex(7) + * check_disk: The options to include or exclude specific file systems now allow the usage of regex(7) * check_icmp: Add support to Jitter, MOS and Score * check_mysql: Detect running mysqldump and handle it more gracefully * check_procs: Implement --exclude-process to exclude specific processes -- cgit v0.10-9-g596f From 63b127e279acfa52e7f62867c7b7b43a10688b17 Mon Sep 17 00:00:00 2001 From: Jan Wagner Date: Tue, 17 Oct 2023 17:39:30 +0200 Subject: Fix indentation of NEWS diff --git a/NEWS b/NEWS index 808277b..5af66e8 100644 --- a/NEWS +++ b/NEWS @@ -2,21 +2,21 @@ This file documents the major additions and syntax changes between releases. 2.3.4 18th Oct 2023 ENHANCEMENTS - * check_curl: added --cookie-jar and doing proper cleanup of libcurl - * check_curl: Include all IPs from getaddrinfo() in curl DNS cache - * check_dhcp: Add dhcp rogue detection - * check_disk: add ignore-missing option to return OK for missing fs - * check_disk_smb: allow checking 0-sized resource (ex. IPC$) - * check_disk: The options to include or exclude specific file systems now allow the usage of regex(7) - * check_icmp: Add support to Jitter, MOS and Score - * check_mysql: Detect running mysqldump and handle it more gracefully - * check_procs: Implement --exclude-process to exclude specific processes - * check_smtp: add new longoption --tls - * check_smtp: Add option to prefix PROXY header - * check_smtp: Add support for SMTP over TLS - * check_smtp: Add support for SNI - * check_snmp: Implement option to ignore mib file parsing errors - * check_users: prefer systemd-logind over utmp + * check_curl: added --cookie-jar and doing proper cleanup of libcurl + * check_curl: Include all IPs from getaddrinfo() in curl DNS cache + * check_dhcp: Add dhcp rogue detection + * check_disk: add ignore-missing option to return OK for missing fs + * check_disk_smb: allow checking 0-sized resource (ex. IPC$) + * check_disk: The options to include or exclude specific file systems now allow the usage of regex(7) + * check_icmp: Add support to Jitter, MOS and Score + * check_mysql: Detect running mysqldump and handle it more gracefully + * check_procs: Implement --exclude-process to exclude specific processes + * check_smtp: add new longoption --tls + * check_smtp: Add option to prefix PROXY header + * check_smtp: Add support for SMTP over TLS + * check_smtp: Add support for SNI + * check_snmp: Implement option to ignore mib file parsing errors + * check_users: prefer systemd-logind over utmp FIXES * check_disk: Display SI units correctly -- cgit v0.10-9-g596f