Code

nagiosplug.git
14 years agoMerge branch 'master' of ssh://tonvoon@nagiosplug.git.sourceforge.net/gitroot/nagiosp...
Ton Voon [Wed, 14 Jul 2010 13:22:51 +0000 (14:22 +0100)]
Merge branch 'master' of ssh://tonvoon@nagiosplug.git.sourceforge.net/gitroot/nagiosplug/nagiosplug

14 years agoAdded text re: MD5SUM updates in nightlies, but tarballs not
Ton Voon [Wed, 14 Jul 2010 13:22:04 +0000 (14:22 +0100)]
Added text re: MD5SUM updates in nightlies, but tarballs not

14 years agoFix --help output when MAX_OIDS is altered.
Thomas Guyot-Sionnest [Fri, 9 Jul 2010 23:28:44 +0000 (19:28 -0400)]
Fix --help output when MAX_OIDS is altered.

14 years agoFix examples in check_disk, where it implied was possible to suffix unit values to...
Ton Voon [Wed, 7 Jul 2010 10:03:24 +0000 (11:03 +0100)]
Fix examples in check_disk, where it implied was possible to suffix unit values to warn/crit parameters

14 years agoAllow check_ifstatus to accept version=2c
Ton Voon [Wed, 7 Jul 2010 08:56:21 +0000 (09:56 +0100)]
Allow check_ifstatus to accept version=2c

14 years agoFix cmd_run overwriting the environment
Thomas Guyot-Sionnest [Fri, 2 Jul 2010 16:55:19 +0000 (12:55 -0400)]
Fix cmd_run overwriting the environment

Some commands need the environment to function properly. One such
example is check_ssh and check_by_ssh when a SOCKS proxy is required.

This patch use setenv and extern char **environ to alter and pass the
new environment to the child process Those modules have been added to
Gnulib for portability.

14 years agoImport the environ module from gnulib (86ba51)
Thomas Guyot-Sionnest [Fri, 2 Jul 2010 16:34:55 +0000 (12:34 -0400)]
Import the environ module from gnulib (86ba51)

14 years agogit-notify: Be careful with "--no-merge"
Holger Weiss [Fri, 2 Jul 2010 13:28:35 +0000 (15:28 +0200)]
git-notify: Be careful with "--no-merge"

The "-X" option (which asks git-notify to not report merge commits) was
implemented by setting the "--no-merge" option on each invocation of
git-rev-list(1).  However, we do not only use git-rev-list(1) to get the
list of new commits, but also to check whether the old branch head (or
tag) is a parent of the new branch head (or tag).  For this latter
check, the "--no-merge" option should not be set; otherwise, git-notify
would be fooled to believe that the branch has been rewritten if the old
head was a merge commit.

14 years agoCorrected rate_multiplier calculation
tonvoon [Wed, 30 Jun 2010 13:16:32 +0000 (13:16 +0000)]
Corrected rate_multiplier calculation

14 years agoRemoved suffix of "-rate" and let user decide label via --label
tonvoon [Wed, 30 Jun 2010 09:37:10 +0000 (09:37 +0000)]
Removed suffix of "-rate" and let user decide label via --label

14 years agoTests for --rate-multiplier option
tonvoon [Wed, 30 Jun 2010 07:56:05 +0000 (07:56 +0000)]
Tests for --rate-multiplier option

14 years agoMerge branch 'master' of ssh://tonvoon@nagiosplug.git.sourceforge.net/gitroot/nagiosp...
Ton Voon [Wed, 30 Jun 2010 08:01:42 +0000 (09:01 +0100)]
Merge branch 'master' of ssh://tonvoon@nagiosplug.git.sourceforge.net/gitroot/nagiosplug/nagiosplug

14 years agoFixed rate-multiplier option
Ton Voon [Wed, 30 Jun 2010 08:01:14 +0000 (09:01 +0100)]
Fixed rate-multiplier option

14 years agoAdd test file directory
tonvoon [Fri, 25 Jun 2010 07:52:59 +0000 (07:52 +0000)]
Add test file directory

14 years agoCleanup some warnings displayed from IRIX tinderbox server
Ton Voon [Thu, 24 Jun 2010 09:08:13 +0000 (10:08 +0100)]
Cleanup some warnings displayed from IRIX tinderbox server

14 years agoAdded unsetenv and setenv from gnulib
Ton Voon [Thu, 24 Jun 2010 09:02:31 +0000 (10:02 +0100)]
Added unsetenv and setenv from gnulib

14 years agoAdded strsep to gnulib, for check_snmp.c
Ton Voon [Thu, 24 Jun 2010 08:57:07 +0000 (09:57 +0100)]
Added strsep to gnulib, for check_snmp.c

14 years agoAdded option to invert search results
tonvoon [Wed, 23 Jun 2010 15:56:29 +0000 (15:56 +0000)]
Added option to invert search results

14 years agoDisplay missing search string and URL when failed (Duncan Ferguson #2999924)
tonvoon [Wed, 23 Jun 2010 14:44:34 +0000 (14:44 +0000)]
Display missing search string and URL when failed (Duncan Ferguson #2999924)

14 years agoAdded state retention APIs. Implemented for check_snmp with --rate option.
Ton Voon [Thu, 17 Jun 2010 09:16:43 +0000 (10:16 +0100)]
Added state retention APIs. Implemented for check_snmp with --rate option.

See http://nagiosplugin.org/c-api-private for more details on the API.

Also updated check_snmp -l option to change the perfdata label.

14 years agoNEWS entry for last commit
Thomas Guyot-Sionnest [Fri, 18 Jun 2010 11:30:07 +0000 (07:30 -0400)]
NEWS entry for last commit

14 years agoAttempt at detecting 64bit compilation flags between gcc, old, and new versions of...
Thomas Guyot-Sionnest [Wed, 5 Aug 2009 05:32:02 +0000 (01:32 -0400)]
Attempt at detecting 64bit compilation flags between gcc, old, and new versions of sun cc

Gcc accepts -m64, just as newer version of Suncc.
Older Suncc required -xarch=v9 (SPARC) or -xarch=amd64 (x86-64) to generate 64bit code.

14 years agoAdd missing --fqdn help (Jan Wagner)
Thomas Guyot-Sionnest [Sat, 8 May 2010 21:41:14 +0000 (17:41 -0400)]
Add missing --fqdn help (Jan Wagner)

14 years agoUpdate extra-opts help text based on ML agreement
Thomas Guyot-Sionnest [Wed, 28 Apr 2010 10:03:57 +0000 (06:03 -0400)]
Update extra-opts help text based on ML agreement

14 years agotools/distclean: use git-clean when possible
Thomas Guyot-Sionnest [Wed, 28 Apr 2010 09:28:22 +0000 (05:28 -0400)]
tools/distclean: use git-clean when possible

git-clean is much faster and more reliable...

Also add confdefs.h in gitignore, although this file is normally removed
at the end of the configure script.

14 years agoUpdate libtool
Thomas Guyot-Sionnest [Wed, 28 Apr 2010 09:01:43 +0000 (05:01 -0400)]
Update libtool

Nagios-plugins wouldn't compile on Ubuntu 10.04 (Lucid) with the old libtool

14 years agoAdd newline after "Usage:" in --help
Thomas Guyot-Sionnest [Thu, 22 Apr 2010 12:57:14 +0000 (08:57 -0400)]
Add newline after "Usage:" in --help

14 years agoSplit long line in check_cluster --help
Thomas Guyot-Sionnest [Thu, 22 Apr 2010 12:50:55 +0000 (08:50 -0400)]
Split long line in check_cluster --help

14 years agoUpdate French translations with extra-opts change
Thomas Guyot-Sionnest [Thu, 22 Apr 2010 03:40:09 +0000 (23:40 -0400)]
Update French translations with extra-opts change

14 years agoStandardize the extra-opts notes
Thomas Guyot-Sionnest [Thu, 22 Apr 2010 03:29:18 +0000 (23:29 -0400)]
Standardize the extra-opts notes

14 years agoFix tests and update NEWS file
Thomas Guyot-Sionnest [Thu, 22 Apr 2010 03:04:06 +0000 (23:04 -0400)]
Fix tests and update NEWS file

14 years agoReplace the lousy multiline parser with a robust one.
Thomas Guyot-Sionnest [Thu, 15 Apr 2010 14:41:21 +0000 (10:41 -0400)]
Replace the lousy multiline parser with a robust one.

This one counts double quotes and backslashes so it should handle any
level of escaping.

14 years agoAttempt at fixing check_snmp multiline output:
Thomas Guyot-Sionnest [Thu, 17 Sep 2009 04:49:56 +0000 (00:49 -0400)]
Attempt at fixing check_snmp multiline output:

This patch tries to detect and output nicely multi-line strings. This
method is broken by design; only a count of double-quotes and escapes
could work in every situation.

14 years agoUpdated Nagios::Plugin library
tonvoon [Thu, 15 Apr 2010 10:44:01 +0000 (10:44 +0000)]
Updated Nagios::Plugin library

14 years agogit-notify: Fix the ordering of commits
Holger Weiss [Wed, 14 Apr 2010 14:22:21 +0000 (16:22 +0200)]
git-notify: Fix the ordering of commits

If notifications for multiple commits are created, sort them
chronologically instead of in reverse chronological order.

14 years agoFix translations when extra-opts aren't enabled
Thomas Guyot-Sionnest [Wed, 14 Apr 2010 10:11:45 +0000 (06:11 -0400)]
Fix translations when extra-opts aren't enabled

Bug #2832884 reported problem with translations outputting pot file
headers. This is caused by "" matching the header of the translation
files.

This patch moves gettext macros inside utils macros and update some
french translations.

14 years agoUpdate french translation (fix all fuzzy's)
Thomas Guyot-Sionnest [Wed, 14 Apr 2010 09:48:41 +0000 (05:48 -0400)]
Update french translation  (fix all fuzzy's)

14 years agoFix check_radius returning OK on unexpected results
Thomas Guyot-Sionnest [Wed, 14 Apr 2010 07:38:52 +0000 (03:38 -0400)]
Fix check_radius returning OK on unexpected results

REJECT_RC is defined on some radiusclient versions and differenciates
between auth errors and bad responses. This patch will affect only the
behaviour of those clients exporting REJECT_RC.

In addition, unexpected return codes are now handled properly and
return UNKNOWN.

14 years agoTypo
Thomas Guyot-Sionnest [Wed, 14 Apr 2010 07:15:19 +0000 (03:15 -0400)]
Typo

14 years agopst3.c must not use nagiosplug/gnulib includes
Thomas Guyot-Sionnest [Thu, 8 Apr 2010 04:30:10 +0000 (00:30 -0400)]
pst3.c must not use nagiosplug/gnulib includes

14 years agoSync with the latest Gnulib code (177f525)
Thomas Guyot-Sionnest [Thu, 8 Apr 2010 01:11:46 +0000 (21:11 -0400)]
Sync with the latest Gnulib code (177f525)

Signed-off-by: Thomas Guyot-Sionnest <dermoth@aei.ca>
14 years agoFix typo
Holger Weiss [Mon, 12 Apr 2010 23:02:07 +0000 (01:02 +0200)]
Fix typo

14 years agoFix Debian bug #574612: Return WARNING on rebuild
Holger Weiss [Mon, 12 Apr 2010 13:55:18 +0000 (15:55 +0200)]
Fix Debian bug #574612: Return WARNING on rebuild

Let check_linux_raid return a WARNING instead of an OK state during
volume recovery.

See: http://bugs.debian.org/574612

(Fixed by Christoph Martin, forwarded by Jan Wagner.)

14 years agoFix Debian bug #534604: Checking md10 and above
Holger Weiss [Mon, 12 Apr 2010 13:49:24 +0000 (15:49 +0200)]
Fix Debian bug #534604: Checking md10 and above

| check_linux_raid malfunctions if system has software RAID devices with
| two or more digits.  For example, for system having /dev/md10,
| /dev/md11 etc, the plugin returns 'UNKNOWN' in automatic mode (if RAID
| devices are manually specified it works).  Also, if system has both
| one-digit, and two-digit RAID devices, the two-digit devices are
| silently ignored in checks, which is even more problematic.

[ http://bugs.debian.org/534604 ]

(Fixed by Matija Nalis, forwarded by Jan Wagner.)

14 years agoFix Debian bug #545940: Failure when run via ePN
Holger Weiss [Mon, 12 Apr 2010 13:36:33 +0000 (15:36 +0200)]
Fix Debian bug #545940: Failure when run via ePN

If Perl's "shift" function is called outside of a subroutine and without
any argument, it usually shifts @ARGV.  However, if a plugin is executed
via ePN, such a call will shift @_ instead, so we must explicitly
specify @ARGV for this to work as expected.

This fixes Debian bug #545940, see: http://bugs.debian.org/545940

Commit de7191e3424e02ba278a39b86e8b1906a25d0362 fixed the same issue for
check_disk_smb.

(Reported by Hendrik Jaeger, forwarded by Jan Wagner.)

14 years agoFix Debian bug #482947: No --nas-ip-address option
Holger Weiss [Sun, 11 Apr 2010 14:33:44 +0000 (16:33 +0200)]
Fix Debian bug #482947: No --nas-ip-address option

| check_radius doesn't seem to provide any way to modify the
| NAS-IP-Address attribute that it uses in the packets it sends, but it
| does so for NAS-Identifier.
|
| Instead, it hardcodes the IP address that it gets from the
| rc_own_ipaddress() library call, and that in turn translates into
| calling gethostbyname() on the result of uname(). This call can easily
| fail, and its result can easily be unsuitable - for example when the
| Nagios instance uses its own virtual host, and you don't want the
| original system hostname leaked to the RADIUS servers you monitor with
| this.
|
| Furthermore, this behaviour is inconsistent with RFC 2865, which
| defines the two attributes as analogous and never suggests hardcoding
| the value of either of them in client software.

Therefore, this commit adds the "-N, --nas-ip-address" option which
allows for specifying the value of the NAS-IP-Address attribute.

| I've also noticed that the original code for NAS-IP-Address hardcoding
| is broken in its error handling - it does "return (ERROR_PC)", which
| is meaningless in the context of check_radius.c. That actually seems
| to be copy&waste from radiusclient-0.3.2/src/radexample.c. :) I fixed
| that.
|
| While debugging, I also took the opportunity to decouple the
| nas-identifier rc_avpair_add() instance from the initial three,
| because this is just bad practice to lump a fourth optional attribute
| into the same block with the required attributes, the error handling
| for which is throwing the same daft message "Out of Memory?"...

[ http://bugs.debian.org/482947 ]

(Contributed by Josip Rodin, forwarded by Jan Wagner.)

14 years agoFix Debian bug #479984: Allow empty LDAP base
Holger Weiss [Sun, 11 Apr 2010 09:28:02 +0000 (11:28 +0200)]
Fix Debian bug #479984: Allow empty LDAP base

The check_ldap plugin did not allow for specifying an empty LDAP base.

See: http://bugs.debian.org/479984

(Fixed by Stephane Chazelas, forwarded by Jan Wagner.)

14 years agoFix Debian bug #460097: check_http -M broken
Holger Weiss [Sun, 11 Apr 2010 09:05:49 +0000 (11:05 +0200)]
Fix Debian bug #460097: check_http -M broken

See: http://bugs.debian.org/460097

One instance of this bug has already been fixed in commit
888358122004b9571c8fbdfa52ceee1ba5e5f4f2.

(Fixed by Hilko Bengen, forwarded by Jan Wagner.)

14 years agoFix Debian bug #478942: Fragile argument passing
Holger Weiss [Sun, 11 Apr 2010 08:54:44 +0000 (10:54 +0200)]
Fix Debian bug #478942: Fragile argument passing

Fix some problems regarding the way check_disk_smb passes command line
arguments to smbclient(1).

| It runs:
|
|  $res = qx/$smbclient "\/\/$host\/$share" $pass -W $workgroup \
|         -U $user $smbclientoptions -I $address -c ls/;
|
| [...]
|
| The documentation says that if the password is not passed, it
| defaults to "".  That is not true above, as $pass expands to
| nothing which leaves no argument at all (instead of an empty
| argument) so is different from providing with an empty password
| or with the -N option.
|
| Also, if the password starts with "-", you're in trouble, that's
| why -U $user%$pass may be prefered.
|
| Also, the doc says that if $user is not provided, then it
| defaults to "guest" but the problem is that if it is provided
| but empty, it is changed to "guest" as well, which prevents us
| from querying hosts that don't do user authentication.

[ http://bugs.debian.org/478942 ]

(Fixed by Stephane Chazelas, forwarded by Jan Wagner.)

14 years agoFix Debian bug #478906: Failure when run via ePN
Holger Weiss [Sun, 11 Apr 2010 07:54:10 +0000 (09:54 +0200)]
Fix Debian bug #478906: Failure when run via ePN

| When perl plugin scripts are run with the embedded perl interpreter in
| nagios3, the "shift" perl command doesn't shift @ARGV, but @_ (which
| happens to contain the same thing as @ARGV at the time the script was
| started).
|
| [...]
|
| A fix is to replace all the instances of "shift" with "shift @ARGV".

[ http://bugs.debian.org/478906 ]

(Fixed by Stephane Chazelas, forwarded by Jan Wagner.)

14 years agoFix Debian bug #463322: Use deprecated libldap API
Holger Weiss [Sun, 11 Apr 2010 07:51:21 +0000 (09:51 +0200)]
Fix Debian bug #463322: Use deprecated libldap API

| Our automated build log filter[1] detected a problem that is likely to
| cause your package to segfault on architectures where the size of a
| pointer is greater than the size of an integer, such as ia64 and
| amd64.
|
| This is often due to a missing function prototype definition.  For
| more information, see [2].
|
|  Function `ldap_init' implicitly converted to pointer at
|  check_ldap.c:124
|
| [1] http://people.debian.org/~dannf/check-implicit-pointer-functions
| [2] http://wiki.debian.org/ImplicitPointerConversions
|
| The libldap API has been updated and many functions used by the ldap
| plugin are now deprecated.  This package should either update to the
| new API or define LDAP_DEPRECATED to continue using the deprecated
| interfaces.
|
| This patch implements the lazy solution.

[ http://bugs.debian.org/463322 ]

(Contributed by Dann Frazier, forwarded by Jan Wagner.)

14 years agoFix Debian bug #425129: SMB guest mode won't work
Holger Weiss [Sun, 11 Apr 2010 07:39:24 +0000 (09:39 +0200)]
Fix Debian bug #425129: SMB guest mode won't work

| The check_disk_smb plugin purports to support guest users, but it
| doesn't work out, because it doesn't specify the -N command line
| option to smbclient when no password is specified, making smbclient
| stop and ask.

[ http://bugs.debian.org/425129 ]

(Fixed by Josip Rodin, forwarded by Jan Wagner.)

14 years agoFix Debian bug #307905: Incorrect usage output
Holger Weiss [Sun, 11 Apr 2010 06:45:16 +0000 (08:45 +0200)]
Fix Debian bug #307905: Incorrect usage output

The usage output of check_game was wrong, see:

http://bugs.debian.org/307905

(Fixed by Sean Finney, forwarded by Jan Wagner.)

14 years agocheck_disk_smb: Allow for specifying an IP address
Holger Weiss [Sat, 10 Apr 2010 23:57:11 +0000 (01:57 +0200)]
check_disk_smb: Allow for specifying an IP address

Add the "-a, --address option" which allows for specifying the IP
address of the server to connect to.  If this option is used, the IP
address will be handed over to smbclient(1)'s "-I" option.  (Contributed
by Sean Finney, forwarded by Jan Wagner.)

14 years agocheck_http: Add warning about SNI not enabled by default anymore
Thomas Guyot-Sionnest [Tue, 6 Apr 2010 14:17:45 +0000 (10:17 -0400)]
check_http: Add warning about SNI not enabled by default anymore

14 years agoFix regression in check_http ssl checks on some servers
Thomas Guyot-Sionnest [Tue, 6 Apr 2010 01:06:22 +0000 (21:06 -0400)]
Fix regression in check_http ssl checks on some servers

The fix is making SNI an option.

14 years agocheck_snmp: Update last patch to copy value verbatim
Thomas Guyot-Sionnest [Wed, 31 Mar 2010 06:45:45 +0000 (02:45 -0400)]
check_snmp: Update last patch to copy value verbatim

Rework last patch, copying the converted portion of the string rather
than re-converting it. This is safer for backwards-compatibility as the
value is never modified.

14 years agocheck_snmp: Fix regression introduced in #1867716
Thomas Guyot-Sionnest [Wed, 31 Mar 2010 02:31:20 +0000 (22:31 -0400)]
check_snmp: Fix regression introduced in #1867716

Bug #1867716 fixed what it meant to fix: broken perfdata strings.
Unfortunately some users relied on half-broken perfdata string where at
least the first token was OK. This patch do a two-way conversion
(string to double then back to string) instead and use the conversion
result for the performance data.

A possible caveat is that the string may change where it normally
shouldn't but the result should be somewhat similar.

14 years agoFix compilation with GCC 2.96 (Konstantin Khomoutov - #2977105)
Thomas Guyot-Sionnest [Sat, 27 Mar 2010 04:13:38 +0000 (00:13 -0400)]
Fix compilation with GCC 2.96 (Konstantin Khomoutov - #2977105)

14 years agoLet check_ntp_peer check the number of truechimers
Holger Weiss [Wed, 17 Mar 2010 23:34:14 +0000 (00:34 +0100)]
Let check_ntp_peer check the number of truechimers

Add support for checking the number of usable time sources (i.e., the
number of peers which are classified as so-called "truechimers" by NTP's
intersection algorithm).  The new "-m" and "-n" options allow for
specifying the according WARNING and CRITICAL thresholds (and thereby
activating the truechimers check), respectively.

14 years agoTypo in NEWS
Thomas Guyot-Sionnest [Tue, 16 Mar 2010 07:41:05 +0000 (03:41 -0400)]
Typo in NEWS

14 years agoCorrected example
Ton Voon [Mon, 15 Mar 2010 19:44:25 +0000 (19:44 +0000)]
Corrected example

14 years agoFix memory leak in check_http for large pages (Jimmy Bergman - #2957455)
Ton Voon [Fri, 26 Feb 2010 12:47:38 +0000 (12:47 +0000)]
Fix memory leak in check_http for large pages (Jimmy Bergman - #2957455)

14 years agogit-notify: Pipe e-mails directly to sendmail(8)
Holger Weiss [Mon, 7 Dec 2009 00:58:21 +0000 (01:58 +0100)]
git-notify: Pipe e-mails directly to sendmail(8)

Use sendmail(8) instead of mail(1) in order to be able to set the
"Content-Type" header field on systems where the available mail(1)
command doesn't allow for setting it.  This makes the "-H" flag (cf.
commit 71350c5a) unnecessary.

14 years agoEnable CIA's commit notifications
Holger Weiss [Sun, 6 Dec 2009 00:23:41 +0000 (01:23 +0100)]
Enable CIA's commit notifications

We now use CIA's service to send commit notifications to IRC.  They are
currently sent to the #Nagios-Devel channel on Freenode.  See:

http://cia.vc/stats/project/nagiosplug/
http://cia.vc/account/bots/15699/

14 years agoDetect arguments passed via --with-ping[6]-command (#2908236)
Thomas Guyot-Sionnest [Fri, 4 Dec 2009 20:24:15 +0000 (15:24 -0500)]
Detect arguments passed via --with-ping[6]-command (#2908236)

14 years agoWhitespace fixes
Thomas Guyot-Sionnest [Fri, 4 Dec 2009 20:05:55 +0000 (15:05 -0500)]
Whitespace fixes

14 years agoFix short help using "warn" for the -f option instead of "warning" (onredirect).
Thomas Guyot-Sionnest [Thu, 3 Dec 2009 02:24:09 +0000 (21:24 -0500)]
Fix short help using "warn" for the -f option instead of "warning" (onredirect).

15 years agoUpdated link to sfsnapshotgit
Ton Voon [Thu, 19 Nov 2009 21:55:18 +0000 (21:55 +0000)]
Updated link to sfsnapshotgit

15 years agoUpdate developer guideline regarding CVS Commits
Thomas Guyot-Sionnest [Wed, 18 Nov 2009 12:25:52 +0000 (07:25 -0500)]
Update developer guideline regarding CVS Commits
(mostly for testing my snapshot script, though it had to be updated anyway)

15 years agoFix fetching of remote branches
Thomas Guyot-Sionnest [Wed, 11 Nov 2009 14:53:35 +0000 (09:53 -0500)]
Fix fetching of remote branches

15 years agoMany fixes to snapshot scripts
dermoth [Wed, 11 Nov 2009 10:23:57 +0000 (10:23 +0000)]
Many fixes to snapshot scripts

sfsnapshotgit:
  - Use fetch/reset instead to pull to avoid merges on forced updates

sfsnapshot-upload:
  - Fix link deletion walking the entire home dir
- Allow CLEAN_TIME=0 (no retention)
- Re-add per-branch links when CLEAN_TIME > 0
- Add many comments

15 years agoGit commit notifications via post-receive hook
Holger Weiss [Sat, 7 Nov 2009 09:40:22 +0000 (10:40 +0100)]
Git commit notifications via post-receive hook

Now that we moved our Git repositories to SourceForge, we don't need to
maintain local clones for generating commit notifications anymore, as
SourceForge provides shell access to the repositories.  Instead, we now
run git-notify as a post-receive hook on the SourceForge server.
Actually, we use a wrapper which executes git-notify with the desired
options and which makes it easy to add other post-receive hooks in the
future.

15 years agogit-notify: Support SourceForge repositories
Holger Weiss [Sat, 7 Nov 2009 09:40:22 +0000 (10:40 +0100)]
git-notify: Support SourceForge repositories

The Gitweb URLs for repositories hosted by SourceForge are slightly
different than other Gitweb URLs.  The correct URL cannot be specified
via "-u" if we append "/$repos_name.git/?" to that URL as we usually do.
If the new "-S" flag is specified or "notify.sourceforge" is set, we'll
append "/$repos_name;" instead, which makes the "-u" option usable for
SourceForge repositories.

15 years agogit-notify: Optionally call mail(1) without "-a"
Holger Weiss [Sat, 7 Nov 2009 09:40:22 +0000 (10:40 +0100)]
git-notify: Optionally call mail(1) without "-a"

Not all mail(1) implementations support specifying additional header
fields via "-a": with some, this flag is used for attaching files,
others don't provide an "-a" flag at all (this is true for the /bin/mail
utility currently installed on the SourceForge servers, for example).
We now provide the "-H" flag and the "notify.legacyMail" configuration
key for these cases.

15 years agogit-notify: Polish up the "tag notifications"
Holger Weiss [Sat, 7 Nov 2009 09:40:22 +0000 (10:40 +0100)]
git-notify: Polish up the "tag notifications"

Use better labels for the tag ref and the SHA1 name of the tag object.

15 years agogit-notify: Distinguish between tag types
Holger Weiss [Sat, 7 Nov 2009 09:40:22 +0000 (10:40 +0100)]
git-notify: Distinguish between tag types

Distinguish between annotated tags and lightweight tags.  In the former
case, send an annotated "tag notification", in the latter case, send a
"ref change notification" (as we did in both cases before).

15 years agogit-notify: Fix "global" notifications
Holger Weiss [Sat, 7 Nov 2009 09:40:00 +0000 (10:40 +0100)]
git-notify: Fix "global" notifications

If the number of commits included with a single push exceeds the maximum
specified via "-n", a single notification will be generated instead of
individual e-mails.  For listing the commits within such a notification,
git-rev-list(1)'s "--pretty" option is used.  This yields output which
the git_rev_list() subroutine didn't accept.  That's now fixed.

15 years agogit-notify: Optionally [tag] the subject
Holger Weiss [Sat, 7 Nov 2009 01:23:32 +0000 (02:23 +0100)]
git-notify: Optionally [tag] the subject

If the new "-T" option is specified or "notify.emitRepository" is set,
the subject of e-mail notifications will be prefixed with [<tag>], where
<tag> is the name of the updated repository.

15 years agogit-notify: Optionally omit the author name
Holger Weiss [Sat, 7 Nov 2009 01:23:32 +0000 (02:23 +0100)]
git-notify: Optionally omit the author name

If the new "-A" option is specified (or "notify.omitAuthor" is set), the
author name will be omitted from the subject of e-mail notifications.

15 years agogit-notify: Make abbreviating Gitweb URLs optional
Holger Weiss [Sat, 7 Nov 2009 01:23:32 +0000 (02:23 +0100)]
git-notify: Make abbreviating Gitweb URLs optional

The SHA1 object name part of Gitweb URLs is now only shortened if the
user requested this by specifying the new "-z" option (or by setting
"notify.shortURLs").

While at it, also shorten the additional URL which references a diff in
e-mail notifications which don't include that diff inline because its
size exceeds the maximum number of bytes specified via "-s".

Note that while the abbreviated SHA1 object names will be unique at push
time, this cannot be guaranteed for the future, so the shortened URLs
might break some day.

15 years agogit-notify: Make showing the committer optional
Holger Weiss [Sat, 7 Nov 2009 01:23:32 +0000 (02:23 +0100)]
git-notify: Make showing the committer optional

Only the author's name and address will now be mentioned in a commit
notification by default.  However, if the "-C" option is specified (or
"notify.showCommitter" is set), the committer's name and address will
also be included in the notification if the committer is not the author
of the commit (as we previously did by default).

15 years agogit-notify: Make using a state file optional
Holger Weiss [Sat, 7 Nov 2009 01:23:32 +0000 (02:23 +0100)]
git-notify: Make using a state file optional

Making use of a state file in order to prevent duplicate notifications
is now optional.  The user must explicitly specify a file path via the
"-t" option or by setting the git-config(1) variable "notify.statefile"
to activate this functionality.

15 years agogit-notify: Don't abort if mail(1) exits non-zero
Holger Weiss [Sat, 7 Nov 2009 01:23:32 +0000 (02:23 +0100)]
git-notify: Don't abort if mail(1) exits non-zero

As nothing in git-notify depends on the success of the mail(1) call,
don't abort if it fails, just spit out a warning.

15 years agogit-notify: Drop the $sent_notices variable
Holger Weiss [Sat, 7 Nov 2009 01:23:32 +0000 (02:23 +0100)]
git-notify: Drop the $sent_notices variable

Now that we don't ignore empty commits anymore, there's no need to keep
track of the number of commits actually notified about, as that will
always be equal to the number of commits returned by get_new_commits().

15 years agoRevert "git-notify: Ignore `empty' commits"
Holger Weiss [Sat, 7 Nov 2009 01:23:32 +0000 (02:23 +0100)]
Revert "git-notify: Ignore `empty' commits"

This reverts commit db63fbfa036f5cd757aedf4547fef9e195a8c285, as it is
no longer needed and we'd like to keep the diff against the git-notify
version maintained by the Wine people as small as possible.  The purpose
of db63fbfa was to suppress notifications on empty merge commits, which
can now be requested directly by specifying git-notify's "-X" option.
(Our change was implemented before the "-X" option was available, even
though the Git history suggests otherwise.)

Conflicts:

tools/git-notify

15 years agoRevert "git-notify: Remove unused [...] code"
Holger Weiss [Sat, 7 Nov 2009 01:11:52 +0000 (02:11 +0100)]
Revert "git-notify: Remove unused [...] code"

This reverts commit 5445b9769f254781e482062bacc6603a5cd63059.  Alexandre
Julliard pointed out that the code in question was used if git-notify
was explicitly called with the SHA1 name of an annotated tag object.  At
the moment, the code in question actually _is_ unused due to later
modifications, but it wasn't at the time 5445b976 was committed, and
we'll add further changes so that the code will be used again in the
future.

Conflicts:

tools/git-notify

15 years agogit-notify: Minor cosmetic changes
Holger Weiss [Fri, 6 Nov 2009 16:33:58 +0000 (17:33 +0100)]
git-notify: Minor cosmetic changes

Fix the description of the "-U" option.

15 years agoAllow rsyncing to local paths
Thomas Guyot-Sionnest [Sun, 25 Oct 2009 14:34:45 +0000 (10:34 -0400)]
Allow rsyncing to local paths

15 years agoAdd snapshots upload scripts
Thomas Guyot-Sionnest [Sun, 25 Oct 2009 14:33:10 +0000 (10:33 -0400)]
Add snapshots upload scripts

15 years agogit-notify: Make the state file group writable
Holger Weiss [Mon, 26 Oct 2009 01:41:51 +0000 (02:41 +0100)]
git-notify: Make the state file group writable

For shared repositories, the state file used by git-notify should
usually be group writable, so we now set the umask to 0002 by default.
This can be adjusted by setting the "notify.umask" configuration key or
by using the "-U" option on the command line.

15 years agogit-notify: Remove an empty subroutine
Holger Weiss [Mon, 26 Oct 2009 01:41:51 +0000 (02:41 +0100)]
git-notify: Remove an empty subroutine

The gitweb_url() subroutine was an unused and empty hangover.

15 years agogit-update-mirror: Remove a useless sed(1) call
Holger Weiss [Sun, 25 Oct 2009 18:47:44 +0000 (19:47 +0100)]
git-update-mirror: Remove a useless sed(1) call

The sed(1) command in question was a hangover which had no effect
anymore.

15 years agogit-notify: Check the exit status of pipes
Holger Weiss [Sat, 24 Oct 2009 20:55:44 +0000 (22:55 +0200)]
git-notify: Check the exit status of pipes

Properly check the exit status of all processes we execute and abort on
error.

15 years agogit-notify: Handle non-UTF-8 commits
Holger Weiss [Sat, 24 Oct 2009 20:55:44 +0000 (22:55 +0200)]
git-notify: Handle non-UTF-8 commits

Make sure that commit messages which use an encoding other than US-ASCII
or UTF-8 are handled correctly.  Also, assume that the diff contents use
the same encoding as the commit message.  This assumption may well be
wrong, but that's the best we can do.

15 years agogit-notify: Don't generate duplicate notifications
Holger Weiss [Sat, 24 Oct 2009 20:55:44 +0000 (22:55 +0200)]
git-notify: Don't generate duplicate notifications

Never notify on a given commit more than once, even if it's referenced
via multiple branch heads.  We make sure this won't happen simply by
maintaining a list of commits we notified about.  The file path used for
saving this list can be specified using the new "-t" option.  (The
contrib/hooks/post-receive-email script distributed with Git tries hard
to avoid such a list, but it doesn't get the necessary magic right.)

15 years agogit-nofity: Try to shorten Gitweb URLs
Holger Weiss [Sat, 24 Oct 2009 20:55:44 +0000 (22:55 +0200)]
git-nofity: Try to shorten Gitweb URLs

Instead of using the full SHA1 values of commit object names within
Gitweb URLs, try to abbreviate them to a shorter unique name.

15 years agogit-notify: Move the Gitweb URL to the bottom
Holger Weiss [Sat, 24 Oct 2009 20:55:43 +0000 (22:55 +0200)]
git-notify: Move the Gitweb URL to the bottom

In commit notifications, specify the Gitweb URL (if any) at the bottom
of the ASCII "table" which summarizes the commit.  That looks better.

15 years agogit-notify: Truncate summary after 50 characters
Holger Weiss [Sat, 24 Oct 2009 20:53:55 +0000 (22:53 +0200)]
git-notify: Truncate summary after 50 characters

If the first line of a commit message is longer than 50 characters,
truncate it before adding the resulting string to the subject line of a
notification.  This makes sure the subject line won't get too long
(unless the commit author name is unusually long, which we don't check).
The Git User's Manual recommends keeping the first line of a commit
message shorter than that, anyway:

| Though not required, it's a good idea to begin the commit message with
| a single short (less than 50 character) line summarizing the change,
| followed by a blank line and then a more thorough description.  Tools
| that turn commits into email, for example, use the first line on the
| Subject line and the rest of the commit in the body.

[ http://www.kernel.org/pub/software/scm/git/docs/user-manual.html ]

15 years agogit-notify: Send notifications on ref changes, too
Holger Weiss [Sat, 24 Oct 2009 09:44:33 +0000 (11:44 +0200)]
git-notify: Send notifications on ref changes, too

Do not only generate notifications on commits, but also if a branch head
or lightweight tag was created, removed, or modified.  Notifications on
branch head updates are omitted if one or more commit notification have
been generated and the branch head now references a descendant of the
originally referenced commit (which should be the usual case).