PHP 5.3.2でPECLのhashがコケる件
乗るしかない、このPHPウェーブに!
$ uname -a Linux goa 2.6.32.8 #1 SMP Tue Feb 23 11:39:02 JST 2010 x86_64 GNU/Linux $ php -v PHP 5.3.2 (cli) (built: Jul 30 2010 16:58:59) Copyright (c) 1997-2010 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
$ pecl download hash
$ tar zxf hash-1.5.tgz
$ cd hash-1.5/
$ phpize
$ ./configure
$ make
(snip)
/var/tmp/m/hash-1.5/hash.c:785: error: duplicate 'static'
/var/tmp/m/hash-1.5/hash.c:792: error: duplicate 'static'
/var/tmp/m/hash-1.5/hash.c:799: error: duplicate 'static'
/var/tmp/m/hash-1.5/hash.c:807: error: duplicate 'static'
/var/tmp/m/hash-1.5/hash.c:815: error: duplicate 'static'
/var/tmp/m/hash-1.5/hash.c:822: error: duplicate 'static'
/var/tmp/m/hash-1.5/hash.c:828: error: duplicate 'static'
/var/tmp/m/hash-1.5/hash.c:835: error: duplicate 'static'
/var/tmp/m/hash-1.5/hash.c:842: error: duplicate 'static'
/var/tmp/m/hash-1.5/hash.c:848: error: duplicate 'static'
make: *** [hash.lo] Error 1
$ echo 'ぐぬぬ'
$ sed -i.orig -e 's/^static$//g' hash.c
$ make
(snip)
Build complete.
Don't forget to run 'make test'.
$ echo '\(´u`)/'
$ make test
(snip)
=====================================================================
TIME START 2010-09-16 03:17:43
=====================================================================
PASS ADLER32 [tests/adler32.phpt]
PASS CRC32 [tests/crc32.phpt]
PASS gost [tests/gost.phpt]
PASS haval algorithm (multi-vector, multi-pass, multi-width) [tests/haval.phpt]
PASS hmac-md5 algorithm [tests/hmac-md5.phpt]
PASS md2 algorithm [tests/md2.phpt]
FAIL md4 algorithm [tests/md4.phpt]
PASS md5 algorithm [tests/md5.phpt]
PASS ripemd128 algorithm [tests/ripemd128.phpt]
PASS ripemd160 algorithm [tests/ripemd160.phpt]
PASS ripemd256 algorithm [tests/ripemd256.phpt]
PASS ripemd320 algorithm [tests/ripemd320.phpt]
PASS sha1 algorithm [tests/sha1.phpt]
PASS sha256 algorithm [tests/sha256.phpt]
PASS sha384 algorithm [tests/sha384.phpt]
PASS sha512 algorithm [tests/sha512.phpt]
PASS snefru [tests/snefru.phpt]
PASS tiger [tests/tiger.phpt]
PASS whirlpool [tests/whirlpool.phpt]
=====================================================================
TIME END 2010-09-16 03:17:44
=====================================================================
TEST RESULT SUMMARY
---------------------------------------------------------------------
Exts skipped : 0
Exts tested : 23
---------------------------------------------------------------------
Number of tests : 19 19
Tests skipped : 0 ( 0.0%) --------
Tests warned : 0 ( 0.0%) ( 0.0%)
Tests failed : 1 ( 5.3%) ( 5.3%)
Expected fail : 0 ( 0.0%) ( 0.0%)
Tests passed : 18 ( 94.7%) ( 94.7%)
---------------------------------------------------------------------
Time taken : 1 seconds
=====================================================================
=====================================================================
FAILED TEST SUMMARY
---------------------------------------------------------------------
md4 algorithm [tests/md4.phpt]
=====================================================================
(snip)
Do you want to send this report now? [Yns]: Y<RET>
(snip)
$ cat tests/md4.log
---- EXPECTED OUTPUT
31d6cfe0d16ae931b73c59d7e0c089c0
bde52cb31de33e46245e05fbdbd6fb24
a448017aaf21d8525fc10ae87aa6729d
d9130a8164549fe818874806e1c7014b
d79e1c308aa5bbcdeea8ed63df412da9
043f8582f241db351ce627e153e7f0e4
e33b4ddc9c38f2199c3e7b164fcc0536
---- ACTUAL OUTPUT
886492db0d2abc5af2721d2281504dea
b840dc68104037934148a3bad26d0a12
329def589299d5bdac2624873bc4bee4
c56e47c0e6fb0cfeacfcccf7439fa41a
ab865e28d5ab83541450ffe3ed6af853
035bb952618b7d58f9333621baace53c
ab97ad5f74f168a923205f9302ebc1c4
---- FAILED
$ echo '(゚д゚;)'
$ grep "hash('md4" tests/md4.php | awk -F"'" '{print$ 4}'
a
abc
message digest
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789
12345678901234567890123456789012345678901234567890123456789012345678901234567890
$ grep "hash('md4" tests/md4.php | awk -F"'" '{print $4}' | \
perl -MDigest::MD4=md4_hex -nle 'print md4_hex($_)'
31d6cfe0d16ae931b73c59d7e0c089c0
bde52cb31de33e46245e05fbdbd6fb24
a448017aaf21d8525fc10ae87aa6729d
d9130a8164549fe818874806e1c7014b
d79e1c308aa5bbcdeea8ed63df412da9
043f8582f241db351ce627e153e7f0e4
e33b4ddc9c38f2199c3e7b164fcc0536
echo '(; Д ) ゜ ゜'