b0a119a128
1.34 Wed 55 13 2017 - We now use a a global Mutex object for each open file that gracefully handles locking between threads and across forks. This fixes the following deadlock scenarios: - a $SIG{__WARN__} handler is installed that logs to Log::Dispatch::FileRotate and log_message issues a warning. - multiple dispatchers are in logit() at the same time. - Abstract locking functions into Log::Dispatch::FileRotoate::Flock module. - Remove flock()'ing of the logfile filehandle. Rely on the lock that we hold on the "lockfile" instead to synchronize writes. [Github #12] holding a lock on the lockfile when writing the log message. - Various pod cleanups and enhancements (Thanks Emanuele Tomasi) - Avoid multiple stat() calls on the same filehandle (Thanks Emanuele Tomasi) - Add user_constraint option to use a custom function to determine when rotation happens (Thanks Emanuele Tomasi). - Move rotation code into its own function (Thanks Emanuele Tomasi) 1.30 Thu Aug 03 2017 - Docs: fix synopsis usage to "name" (incorrect) instead of filename (correct) (Thanks Emanuele Tomasi) - improve debug() routine so that all debug messages have the same layout (Thanks Emanuele Tomasi) - fix race condition in lockfile-race-condition.t [sic] (Thanks Emanuele Tomasi) 1.29 Fri Jul 28 2017 - Fix deadlock on Windows due to the fact that stat() on a filehandle vs a path doesn't return the same device field on Windows. 1.28 Thu Jul 27 2017 *** Multiple fixes to locking code: - flock() can be interrupted by a syscall. work around by using a safe_flock() wrapper that retries if errno is EAGAIN (and also EWOULDBLOCK). - handle several possible race conditions between open() and flock(). - DESTROY() was unlinking the lockfile (.logfile.LCK). This was the cause of a race condition where multiple processes could enter the critical seciton at the same time. Avoided by leaving .LCK files in place. Probably fixes #77075 (Thanks Emanuele Tomasi). - add author test for DESTROY lockfile race condition. 1.27 Thu Jul 06 2017 - add "check_both" configuration option which allows the use of both time and size based rotation at the same time. If either conditions require a rotation, a rotation will happen. Default is false (previous behaviour). Thanks Emanuele Tomasi. PR #6. - make signature test an "author" test and make Test::Signature optional
25 lines
969 B
Makefile
25 lines
969 B
Makefile
# $NetBSD: Makefile,v 1.27 2017/09/17 10:46:42 wiz Exp $
|
|
|
|
DISTNAME= Log-Dispatch-FileRotate-1.34
|
|
PKGNAME= p5-${DISTNAME}
|
|
CATEGORIES= devel perl5
|
|
MASTER_SITES= ${MASTER_SITE_PERL_CPAN:=Log/}
|
|
|
|
MAINTAINER= pkgsrc-users@NetBSD.org
|
|
COMMENT= Perl5 module to log to files which archive/rotate themselves
|
|
LICENSE= ${PERL5_LICENSE}
|
|
|
|
DEPENDS+= p5-Date-Manip>=5.0:../../devel/p5-Date-Manip
|
|
DEPENDS+= p5-Log-Dispatch>=2.08:../../devel/p5-Log-Dispatch
|
|
DEPENDS+= p5-Params-Validate>=0.15:../../devel/p5-Params-Validate
|
|
DEPENDS+= p5-Log-Log4perl>=1:../../devel/p5-Log-Log4perl
|
|
# for make test
|
|
BUILD_DEPENDS+= p5-Path-Tiny-[0-9]*:../../filesystems/p5-Path-Tiny
|
|
BUILD_DEPENDS+= p5-Test-Warn-[0-9]*:../../devel/p5-Test-Warn
|
|
BUILD_DEPENDS+= p5-namespace-autoclean-[0-9]*:../../devel/p5-namespace-autoclean
|
|
BUILD_DEPENDS+= p5-Specio-[0-9]*:../../devel/p5-Specio
|
|
|
|
PERL5_PACKLIST= auto/Log/Dispatch/FileRotate/.packlist
|
|
|
|
.include "../../lang/perl5/module.mk"
|
|
.include "../../mk/bsd.pkg.mk"
|