________________________________________________________________________________
Filter::Crypto, Version 1.23
________________________________________________________________________________
Revision history for Perl extension Filter::Crypto.
_________________
v1.23 28 Aug 2008
- Improved crypto library detection so that the library is now correctly
located in the Win32 OpenSSL Installations produced by Shining Light
Productions (see http://www.slproweb.com/products/Win32OpenSSL.html).
(Fixes [cpan #38780]. Thanks to Erik Weidel <erikweidel@web.de> for
assistance with this.)
_________________
v1.22 25 Aug 2008
- Fixed PAR::Filter::Crypto so that it doesn't encrypt the
Filter/Crypto/Decrypt.pm module, otherwise programs created using
"pp -F Crypto ..." don't run. Added new tests to check this. (Fixes [cpan
#38638].)
- Updated Module::Install components from version 0.77 of that distribution.
(That includes a fix for [cpan #29866], which in turn fixes [cpan #29795]
in this distribution.)
- Skipped a couple of tests in t/04_par.t that are known to fail when using
Module::ScanDeps 0.75 (see changes below for version 1.20).
- Changed the use of "eval { ... };" to test the return value rather than $@
since under certain circumstances $@ can end up undefined after a failed
eval.
- Changed all Nullxx macros to (XX *)NULL as per perl change #33051 and
various earlier changes.
_________________
v1.21 06 Jul 2008
- Added the magic "OS unsupported" phrase to Makefile.PL's die() message so
that CPAN Testers report "N/A" rather than "FAIL" on OSes where no OpenSSL
or SSLeay installation has been detected.
- Updated Module::Install::PRIVATE to version 1.06 for Makefile.PL
improvements:
* Added the magic "OS unsupported" phrase to Makefile.PL's die() message
so that CPAN Testers report "N/A" rather than "FAIL" on OSes where the
appropriate C compiler cannot be found.
- Updated Module::Install components from version 0.75 of that distribution.
Changed Makefile.PL appropriately to cope with a non-backwards-compatible
change in the (undocumented) recommends() method.
- Added full paths to Cygwin tools used when creating the distribution.
- Updated ppport.h using version 3.14 of the Devel::PPPort distribution.
_________________
v1.20 25 Jul 2007
- Fixed the decryption filter code to not crash when there is nothing to
decrypt. This allows a file containing just "use Filter::Crypto::Decrypt;"
to run exactly as an empty file would be run.
- Fixed t/03_script.t to skip tests 42 and 47 when built in debug mode since
they otherwise fail due to the debug output.
- Documented a known failure in t/04_par.t when using Module::ScanDeps
version 0.75, and modified PAR::Filter::Crypto to emit a warning if that
version of Module::ScanDeps is detected since the generated PAR archive
will probably be missing Filter::Crypto::Decrypt's shared library file in
that case.
_________________
v1.19 10 Jul 2007
- Introduced a new FILTER_CRYPTO_FILTER_COUNT macro to determine the number
of filters currently installed rather than querying PL_rsfp_filters
directly because that variable no longer exists as of perl change #31200
which moved it into the PL_parser structure.
- Changed Perl_my_chsize() to my_chsize() as suggested by the output from
running "perl ppport.h --compat-version=5.6.0 --copy=.new".
- Changed some SvPV(), SvPV_nolen() and SvPVX() calls to SvPV_const(),
SvPV_nolen_const() and SvPVX_const() respectively.
- Removed definitions of PERL_MAGIC_ext and Poison() for those older Perls
that don't have them because they are now supplied by ppport.h.
- Made FilterCrypto_SvSetCUR() safer as per perl changes #26952 and #26953.
- Updated Module::Install::PRIVATE to version 1.05 for Makefile.PL
improvements:
* Fixed the compiler version checking on Win32 for Visual C++ 8.x, which
now uses four numbers separated by dots for its compiler version.
- Updated Module::Install components from version 0.65 of that distribution.
- Updated ppport.h using version 3.11 of the Devel::PPPort distribution.
- Added comments to MANIFEST file.
_________________
v1.18 27 Sep 2006
- Fixed a PATH problem that caused t/04_par.t to fail on some platforms.
Thanks to Jakub Holy <JHOLY@at.ibm.com> for drawing attention to this
failure and for suggesting a solution.
_________________
v1.17 14 Feb 2006
- Fixed two off-by-one errors in the call to ninstr() in the
Filter::Crypto::Decrypt code as per perl change #26509.
This code was only working due to a bug in how ninstr() treated empty
search strings. However, that bug was fixed in perl change #26510 so the
call to ninstr() must be fixed for Perls that contain that change.
- Changed the handling of the salt and the initialization vector in the
encryption/decryption code so that it does not rely on perl allocating
exactly the amount of memory requested.
This was an unsafe assumption to have made, and, in fact, as of perl
change #24665, is no longer true. Perl has always been at liberty to
allocate more memory than was requested if it thinks that would be a good
idea, and that is exactly what it now does in order to reduce the number
of realloc()s that might be required.
- Changed all Newz() and NEWSV() calls to the cleaner Newxz() and newSV()
respectively, as per perl changes #25101 and #26901, and included ppport.h
from version 3.08 of the Devel::PPPort distribution to make this possible.
- Simplified the definition and initialization of the magic virtual table
used by the decryption filter in the light of perl change #26735.
- Changed various "use MODULE;" lines to be explicit about what is being
imported, and in particular to not import things that are not required.
- Changed the last test in t/03_script.t to not use -T in the PERLDOC
environment variable since it is not supported before Pod-Perldoc-3.04
(first shipped in Perl 5.8.1).
- Fixed a typo in t/04_par.t in which the wrong number of tests were being
skipped in the case where Archive::Zip is unavailable.
- Changed t/06_pod.t to use the fully-qualified name of all_pod_files()
since it was (erroneously) not exported before Test-Pod-1.18.
- Improved OpenSSL/SSLeay detection on Win32 so that if a Cygwin version is
found then it is ignored since it will not be of any use.
- Updated Module::Install::PRIVATE to version 1.04 for Makefile.PL
improvements:
* Fixed the handling of user-input relative directory paths so that they
are converted to absolute paths before use in case the Makefile.PL has
changed to another directory in the meantime;
* Renamed lots of methods for a better naming convention.
- Updated Module::Install components from version 0.56 of that distribution
(together with one minor change, commented in the code, in order to work
with the new proxy constant subroutines in Perl 5.9.3 and later).
This includes Module::AutoInstall, which supersedes ExtUtils::AutoInstall.
Changed Makefile.PL appropriately to take advantage of the new features.
- Corrected spelling mistakes and improved the grammar in some of the
documentation.
_________________
v1.16 06 Sep 2005
- Changed all files back to UNIX end-of-line format. The previous release
had accidentally made them all Windows format, which caused t/03_script.t
test 98 to fail. Thanks to <COSIMO@cpan.org> for the spot.
- Modified PREOP key in the dist option in Makefile.PL to ensure files are
all UNIX format in the future to stop this from happening again.
_________________
v1.15 02 Sep 2005
- Improved crypto library detection so that the library is now correctly
located on 64-bit systems that have both $PREFIX/lib and $PREFIX/lib64.
(Fixes [cpan #14397]. Thanks to <COSIMO@cpan.org> for assistance with
this.)
Also improved the binary executable detection along the same lines.
- Changed test scripts from using Test to Test::More for better diagnostic
output in case of failures.
- Updated Module::Install::PRIVATE to version 1.03 for Makefile.PL
improvements:
* Relaxed the compiler version checking so that only the major version
numbers have to match (and also the minor version numbers for VC++ 7 and
later, which use CRT DLLs named msvcr70.dll, msvcr71.dll, etc)
(Thanks to Sisyphus <sisyphus1@optusnet.com.au> for drawing attention to
this problem via the PAR mailing list (par@perl.org));
* Fixed the parsing of bcc32's output as per perl change #24855.
- Dropped the use of I<> for Perl variables in POD, in line with changes
made (some time ago) to the perlpod manpage (perl change #12542).
- Corrected spelling mistake: INITIALISATION should be INITIALIZATION.
- Updated Module::Install and ExtUtils::AutoInstall components from versions
0.37 and 0.62 of those distributions respectively.
_________________
v1.14 01 Jun 2005
- Added an --unsafe-mode option to Makefile.PL to specify that the "Decrypt"
component should be built in an "unsafe" mode in which the Perl compiler
backend modules are allowed to be loaded.
- Added a --debug-mode option to Makefile.PL to specify that the modules
should be built in "debug" mode.
- Perl 5.8.7 contains a fix for PerlLIO_chsize() for those systems that do
not have chsize() so there is no need for the workaround in
CryptFile/CryptFile.xs from Perl 5.8.7 onwards.
- Updated Module::Install::PRIVATE to version 1.02 for Makefile.PL
improvements:
* ExtUtils::AutoInstall command-line options are now better supported,
fixing problems with custom option handling that did not recognize them;
* Errors now croak() rather than die() so that the error messages look a
little more friendly;
* If the "auto install" checks loaded Test::Builder then that module's
cleanup diagnostic code is now skipped, which suppresses the somewhat
confusing (given the context) message
# Looks like your test died before it could output anything.
in the event of any subsequent error that causes Makefile.PL to croak().
_________________
v1.13 14 Mar 2005
- The previous fix to t/03_script.t did not do the job for the original bug
reporter, so try a different approach: rather than trying to cope with the
various format outputs produced by "perldoc" on different OSes, use the
PERLDOC environment variable to ask for plain text output (-t). We can
also avoid involving a pager (-T).
_________________
v1.12 09 Mar 2005
- Fixed t/03_script.t test 99 to account for different format output
produced by "perldoc" on some OSes.
Thanks to <cpan@calaquendi.net> for drawing attention to this problem via
CPAN Testers (http://testers.cpan.org/).
_________________
v1.11 03 Mar 2005
- Fixed crypt_file so that it now sets STDIN to "binary mode" if it is
reading input from STDIN.
- Fixed crypt_file so that it now accepts a single input file specifier
consisting of just '-' to mean STDIN so that one can write commands like
"someprogram | crypt_file -".
- Fixed crypt_file so that it no longer tries to flock() STDIN or STDOUT
when they are some other program's STDOUT or STDIN respectively because
this does not work on Win32 (at least). All of the following commands
should now work:
crypt_file STDIN from keyboard
crypt_file <file STDIN from file
someprogram | crypt_file - STDIN from someprogram
crypt_file STDOUT to console
crypt_file >file STDOUT to file
crypt_file | someprogram - STDOUT to someprogram
- Added new tests for these changes.
- Changed the use of qq["$^X"] in some test scripts to only include the
double-quotes if $^X actually contains a space since shell commands like
qq["$^X" -e print(1) | "$^X" -ne print];
(used in the new tests) do not work under Perl 5.6.0 on Win32 (at least)
with the double-quotes included. (These tests will therefore still fail
in cases where $^X does contain a space, but that's not an ideal
configuration anyway.)
- Updated Module::Install::PRIVATE to version 1.01 for Makefile.PL
improvements:
* Added code to try to check that on Win32 the same compiler is being used
to build these modules as was used to build Perl itself to avoid
problems with binaries built by different compiler versions loading
different C run-time DLLs.
- Added a recommendation for Test::Pod to Makefile.PL to test the POD when
building these modules.
- Corrected spelling mistakes: finalise, initialise, localise, recognise and
utilise are more properly spelled finalize, initialize, localize,
recognize and utilize respectively.
_________________
v1.10 12 Dec 2004
- Fix for running encrypted scripts in a mod_perl Apache::Registry set-up.
In such a set-up the END subroutine in the CryptoCommon-xs.inc file, which
free()s memory allocated in the BOOT: XSUB, gets runs at the end of each
request (unless the script being filtered was preloaded by the parent
server process), which caused multiple free()s of memory that was only
allocated once (at boot time, in the BOOT: XSUB).
Instead, we now create a dummy object, blessed into the package concerned,
that persists throughout the process' lifetime. When the process exits,
the object's DESTROY method gets invoked, which is where we now do our
cleanup.
- Moved XSLoader::load() calls inside BEGIN subroutines as recommended by
the XSLoader manpage. This means that the XSUBs are now installed before
the rest of the Perl module is compiled, and hence their prototypes are
now known, and can be checked, during the remaining compilation.
- Modified t/*-leaktest.pl to output the PID of the perl process running
them so that it is easier to see which process to watch the memory usage
of.
_________________
v1.00 01 Nov 2004
- First released version.
_________________
v0.01 08 Feb 2004
- Original version; created by h2xs 1.23 with options:
-n Filter::Crypto -b 5.6.0 -A
________________________________________________________________________________