---------------------------------------- #### WARNING #### If you are using custom CGI::Session drivers they may not be compatible with the current driver specifications. You will need to make some changes to your drivers' code before proceeding with this installation to make it compatible with CGI::Session 4.x. Fortunately, current driver specifications are a lot easier to adapt to. Should you have any assistance re-coding your current drivers, please let me know. Current driver specs are documented in CGI/Session/Driver.pm #### TESTING ##### You are encouraged to run tests for the backend you will be using. The database backends that need a customized connection string won't run by default. To run them, some environment variables must be set. The simplest method is to use the standard "DBI_DSN/DBI_USER/DBI_PASS" environment variables. Otherwise, you can set these variables: For PostgreSQL: CGISESS_PG_DSN CGISESS_PG_USER CGISESS_PG_PASS For MySQL: CGISESS_MYSQL_DSN CGISESS_MYSQL_USER CGISESS_MYSQL_PASS CGISESS_MYSQL_SOCKET ---------------------------------------- Checking if your kit is complete... Warning: the following files are missing in your kit: Makefile.old Please inform the author. Writing Makefile for CGI::Session cp lib/CGI/Session/Test/Default.pm blib/lib/CGI/Session/Test/Default.pm cp lib/CGI/Session/Driver/postgresql.pm blib/lib/CGI/Session/Driver/postgresql.pm cp lib/CGI/Session/Driver/sqlite.pm blib/lib/CGI/Session/Driver/sqlite.pm cp lib/CGI/Session/Driver.pm blib/lib/CGI/Session/Driver.pm cp lib/CGI/Session/ID/static.pm blib/lib/CGI/Session/ID/static.pm cp lib/CGI/Session/Serialize/json.pm blib/lib/CGI/Session/Serialize/json.pm cp lib/CGI/Session/Serialize/storable.pm blib/lib/CGI/Session/Serialize/storable.pm cp lib/CGI/Session/Driver/db_file.pm blib/lib/CGI/Session/Driver/db_file.pm cp lib/CGI/Session/Driver/mysql.pm blib/lib/CGI/Session/Driver/mysql.pm cp lib/CGI/Session.pm blib/lib/CGI/Session.pm cp lib/CGI/Session/Driver/DBI.pm blib/lib/CGI/Session/Driver/DBI.pm cp lib/CGI/Session/Tutorial.pm blib/lib/CGI/Session/Tutorial.pm cp lib/CGI/Session/ID/incr.pm blib/lib/CGI/Session/ID/incr.pm cp lib/CGI/Session/Serialize/freezethaw.pm blib/lib/CGI/Session/Serialize/freezethaw.pm cp lib/CGI/Session/Serialize/yaml.pm blib/lib/CGI/Session/Serialize/yaml.pm cp lib/CGI/Session/ErrorHandler.pm blib/lib/CGI/Session/ErrorHandler.pm cp lib/CGI/Session/Serialize/default.pm blib/lib/CGI/Session/Serialize/default.pm cp lib/CGI/Session/Driver/file.pm blib/lib/CGI/Session/Driver/file.pm cp lib/CGI/Session/ID/md5.pm blib/lib/CGI/Session/ID/md5.pm Manifying blib/man3/CGI::Session::Test::Default.3 Manifying blib/man3/CGI::Session::Driver::postgresql.3 Manifying blib/man3/CGI::Session::Driver::sqlite.3 Manifying blib/man3/CGI::Session::Driver.3 Manifying blib/man3/CGI::Session::Serialize::storable.3 Manifying blib/man3/CGI::Session::Serialize::json.3 Manifying blib/man3/CGI::Session::ID::static.3 Manifying blib/man3/CGI::Session::Driver::mysql.3 Manifying blib/man3/CGI::Session::Driver::db_file.3 Manifying blib/man3/CGI::Session.3 Manifying blib/man3/CGI::Session::Driver::DBI.3 Manifying blib/man3/CGI::Session::Tutorial.3 Manifying blib/man3/CGI::Session::ID::incr.3 Manifying blib/man3/CGI::Session::Serialize::freezethaw.3 Manifying blib/man3/CGI::Session::Serialize::yaml.3 Manifying blib/man3/CGI::Session::ErrorHandler.3 Manifying blib/man3/CGI::Session::Serialize::default.3 Manifying blib/man3/CGI::Session::Driver::file.3 Manifying blib/man3/CGI::Session::ID::md5.3 PERL_DL_NONLAZY=1 /home/cpanrun/pa-risc1.1/build/5.8.2/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(1, 'blib/lib', 'blib/arch')" t/*.t t/api3_db_file..................1..0 # Skip DB_File not available skipped all skipped: DB_File not available t/api3_db_file_freezethaw.......1..0 # Skip DB_File not available skipped all skipped: DB_File not available t/api3_db_file_storable.........1..0 # Skip DB_File not available skipped all skipped: DB_File not available t/api3_db_file_storable_incr....1..0 # Skip DB_File not available skipped all skipped: DB_File not available t/api3_file.....................1..17 ok 1 - use CGI::Session; ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 - found email param in session ok 13 - found author param in session ok 14 ok 15 - $s->clear("name") survives eval ok 16 - email param is cleared from session ok 17 - author param is still in session ok t/api3_file_freezethaw..........1..14 ok 1 - use CGI::Session; ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok t/api3_file_freezethaw_incr.....1..15 ok 1 - use File::Spec; ok 2 - use CGI::Session; ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok t/api3_file_storable............1..14 ok 1 - use CGI::Session; ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok t/api3_file_storable_incr.......1..15 ok 1 - use File::Spec; ok 2 - use CGI::Session; ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok t/api3_incr.....................1..14 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok t/api3_obj_store................#Using FreezeThaw as object serializer 1..8 ok ok ok ok ok ok ok ok ok t/api3_obj_store_db_file........1..0 #Skipped: DB_File is not available skipped all skipped: DB_File is not available t/bug21952......................ok 1 - use CGI; ok 2 - use CGI::Session; ok 3 - use CGI::Session::Driver; ok 4 - use CGI::Session::Driver::file; ok 5 - $opt_dsn is HASH ok 6 ok 7 ok 8 - $opt_dsn is HASH ok 9 - Session object is no longer available ok 10 - $opt_dsn still exists ok 11 - $opt_dsn is still a hashref 1..11 ok t/cgi_simple....................ok 1 - survives eval ok 2 - CGI::Simple object is accepted when passed to new() ok 3 - cookie() method works with CGI::Simple ok 4 - http_header() method works with CGI::Simple 1..4 ok t/complex_ds....................1..10 ok 1 ok 2 ok 3 ok 4 - Test 1 ok 5 - Test 2 ok 6 - Bir ok 7 ok 8 - Test 1 ok 9 - Test 2 ok 10 - Bir ok t/driver_dbi....................1..0 # Skip DBI module not found skipped all skipped: DBI module not found t/expire........................ok 1 - undef is returned if nothing has been set yet. ok 2 - basic set/get check ok 3 - negative set/get check ok 4 - zero cancels expiration ok 5 - setting expiration for a single param works ok 6 - zero expires parameters 1..6 ok t/find..........................1..8 ok 1 - The test session has been created ok 2 - The test session's id has been set ok 3 - The test session's parameter called 'purpose' has been set ok 4 - CGI::Session::find() found a session whose class isa CGI::Session ok 5 - The found session's param called 'purpose' has a true value ok 6 - The found session's param called 'purpose' has the expected value ok 7 - The found session has been deleted ok 8 - find() returned no errors ok t/flush.........................ok 1 - found session id ok 2 - found session data file 1..2 ok t/g4............................1..101 ok 1 - use CGI::Session; ok 2 - === 1 === ok 3 - empty session should be created ok 4 ok 5 ok 6 ok 7 - Session created successfully! ok 8 - ok 9 - ctime & atime are set ok 10 - ctime == atime ok 11 - etime not set yet ok 12 - session id is 0d31c1ed2894fd227a5dc1d4c7453c78 ok 13 - session holds 3 params3 ok 14 - My name's correct! ok 15 - 'emails' holds list of values ok 16 - 'emails' holds list of two values ok 17 - first value of 'emails' is correct! ok 18 - second value of 'emails' is correct! ok 19 - 'blogs' holds a hash ok 20 - first blog is correct ok 21 - second blog is correct ok 22 - === 2 === ok 23 - survived eval without error. ok 24 - Session was retrieved successfully ok 25 - session isn't expired yet ok 26 - session IDs are consistent ok 27 - ctime should be older than atime ok 28 - etime shouldn't be set yet ok 29 - session should hold params ok 30 - my name's correct ok 31 - 'emails' should hold list of values ok 32 - 'emails' should hold list of two values ok 33 - first value is correct! ok 34 - second value is correct! ok 35 - 'blogs' holds a hash ok 36 - first blog is correct! ok 37 - second blog is correct! ok 38 - etime set to 1 second ok 39 - etime set to one minute ok 40 - etime set to two hours ok 41 - etime set to 5 days ok 42 - etime set to 10 seconds in the past ok 43 - etime set back to one second ok 44 - calling close method survives eval ok 45 - === 3 === ok 46 - Session instance loaded ok 47 - session doesn't have ID ok 48 - session is empty, which is the same as above ok 49 - session was expired ok 50 - session data cleared ok 51 - new session created ok 52 - session has id :280a995401ab85af5af2c8112dcf345a ok 53 - session isn't expired ok 54 - session isn't empty ok 55 - access and creation times are same ok 56 - it's a completely different session than above ok 57 - === 4 === ok 58 - Session '280a995401ab85af5af2c8112dcf345a' removed from datastore successfully ok 59 - session object created successfully ok 60 - claimed ID (280a995401ab85af5af2c8112dcf345a) couldn't be recovered. New ID is: 0b0ce9469614fd0b8c11d658f56779ea ok 61 - === 5 === ok 62 - Session object created successfully ok 63 - claimed id (0b0ce9469614fd0b8c11d658f56779ea) was recovered successfully! ok 64 - === 6 === ok 65 - Session object created successfully ok 66 - New object created, because previous object was deleted ok 67 - SimpleObjectClass created successfully ok 68 ok 69 ok 70 ok 71 - OverloadedObjectClass created successfully ok 72 - OverloadedObjectClass is properly overloaded ok 73 - OverloadedObjectClass is an object ok 74 ok 75 - SimpleObjectClass created successfully ok 76 - First element of anonymous array undef ok 77 ok 78 ok 79 ok 80 ok 81 - Overloaded objects have matching addresses ok 82 - === 7 === Can't locate object method "refaddr" via package "OverloadedObjectClass" at /home/cpanrun/depot/main/contrib-patched/perl/CPAN/src/CGI-Session/blib/lib/CGI/Session/Serialize/default.pm line 89. # Looks like you planned 101 tests but only ran 82. # Looks like your test died just after 82. dubious Test returned status 255 (wstat 65280, 0xff00) DIED. FAILED tests 83-101 Failed 19/101 tests, 81.19% okay t/g4_dbfile.....................1..0 # Skip DB_File is NOT available skipped all skipped: DB_File is NOT available t/g4_dbfile_freezethaw..........1..0 # Skip DB_File is NOT available skipped all skipped: DB_File is NOT available t/g4_dbfile_json................1..0 # Skip DB_File is NOT available skipped all skipped: DB_File is NOT available t/g4_dbfile_storable............1..0 # Skip DB_File is NOT available skipped all skipped: DB_File is NOT available t/g4_dbfile_yaml................1..0 # Skip DB_File is NOT available skipped all skipped: DB_File is NOT available t/g4_freezethaw.................1..101 ok 1 - use CGI::Session; ok 2 - === 1 === ok 3 - empty session should be created ok 4 ok 5 ok 6 ok 7 - Session created successfully! ok 8 - ok 9 - ctime & atime are set ok 10 - ctime == atime ok 11 - etime not set yet ok 12 - session id is 8dbc0dc1fd1985c12d333e2d68b72d20 ok 13 - session holds 3 params3 ok 14 - My name's correct! ok 15 - 'emails' holds list of values ok 16 - 'emails' holds list of two values ok 17 - first value of 'emails' is correct! ok 18 - second value of 'emails' is correct! ok 19 - 'blogs' holds a hash ok 20 - first blog is correct ok 21 - second blog is correct ok 22 - === 2 === ok 23 - survived eval without error. ok 24 - Session was retrieved successfully ok 25 - session isn't expired yet ok 26 - session IDs are consistent ok 27 - ctime should be older than atime ok 28 - etime shouldn't be set yet ok 29 - session should hold params ok 30 - my name's correct ok 31 - 'emails' should hold list of values ok 32 - 'emails' should hold list of two values ok 33 - first value is correct! ok 34 - second value is correct! ok 35 - 'blogs' holds a hash ok 36 - first blog is correct! ok 37 - second blog is correct! ok 38 - etime set to 1 second ok 39 - etime set to one minute ok 40 - etime set to two hours ok 41 - etime set to 5 days ok 42 - etime set to 10 seconds in the past ok 43 - etime set back to one second ok 44 - calling close method survives eval ok 45 - === 3 === ok 46 - Session instance loaded ok 47 - session doesn't have ID ok 48 - session is empty, which is the same as above ok 49 - session was expired ok 50 - session data cleared ok 51 - new session created ok 52 - session has id :9f85d07d245a5f8f80577cb8de83bdf8 ok 53 - session isn't expired ok 54 - session isn't empty ok 55 - access and creation times are same ok 56 - it's a completely different session than above ok 57 - === 4 === ok 58 - Session '9f85d07d245a5f8f80577cb8de83bdf8' removed from datastore successfully ok 59 - session object created successfully ok 60 - claimed ID (9f85d07d245a5f8f80577cb8de83bdf8) couldn't be recovered. New ID is: e787f97b1538ddcc82922b1d39af601c ok 61 - === 5 === ok 62 - Session object created successfully ok 63 - claimed id (e787f97b1538ddcc82922b1d39af601c) was recovered successfully! ok 64 - === 6 === ok 65 - Session object created successfully ok 66 - New object created, because previous object was deleted ok 67 - SimpleObjectClass created successfully ok 68 ok 69 ok 70 ok 71 - OverloadedObjectClass created successfully ok 72 - OverloadedObjectClass is properly overloaded ok 73 - OverloadedObjectClass is an object ok 74 ok 75 - SimpleObjectClass created successfully ok 76 - First element of anonymous array undef ok 77 ok 78 ok 79 ok 80 ok 81 - Overloaded objects have matching addresses ok 82 - === 7 === ok 83 - Session object created successfully ok 84 - Previously stored object loaded successfully ok 85 - SimpleObjectClass loaded successfully ok 86 - ok 87 - ok 88 - ok 89 - ok 90 ok 91 - Object is still overloaded ok 92 - Object is really overloaded ok 93 - First element of anonymous array undef ok 94 - SimpleObjectClass loaded successfully ok 95 - ok 96 - ok 97 - ok 98 - ok 99 ok 100 - Object is really overloaded ok 101 - Overloaded objects have matching addresses ok t/g4_mysql......................1..0 # Skip DBI is NOT available skipped all skipped: DBI is NOT available t/g4_mysql_freezethaw...........1..0 # Skip DBI is NOT available skipped all skipped: DBI is NOT available t/g4_mysql_storable.............1..0 # Skip DBI is NOT available skipped all skipped: DBI is NOT available t/g4_postgresql.................1..0 # Skip DataSource is not known skipped all skipped: DataSource is not known t/g4_postgresql_freezethaw......1..0 # Skip DataSource is not known skipped all skipped: DataSource is not known t/g4_postgresql_storable........1..0 # Skip DataSource is not known skipped all skipped: DataSource is not known t/g4_sqlite.....................1..0 # Skip DBI is NOT available skipped all skipped: DBI is NOT available t/g4_sqlite_freezethaw..........1..0 # Skip DBI is NOT available skipped all skipped: DBI is NOT available t/g4_sqlite_storable............1..0 # Skip DBI is NOT available skipped all skipped: DBI is NOT available t/g4_storable...................1..101 ok 1 - use CGI::Session; ok 2 - === 1 === ok 3 - empty session should be created ok 4 ok 5 ok 6 ok 7 - Session created successfully! ok 8 - ok 9 - ctime & atime are set ok 10 - ctime == atime ok 11 - etime not set yet ok 12 - session id is 1215dd5707b60058f607ba9ce58b3ac0 ok 13 - session holds 3 params3 ok 14 - My name's correct! ok 15 - 'emails' holds list of values ok 16 - 'emails' holds list of two values ok 17 - first value of 'emails' is correct! ok 18 - second value of 'emails' is correct! ok 19 - 'blogs' holds a hash ok 20 - first blog is correct ok 21 - second blog is correct ok 22 - === 2 === ok 23 - survived eval without error. ok 24 - Session was retrieved successfully ok 25 - session isn't expired yet ok 26 - session IDs are consistent ok 27 - ctime should be older than atime ok 28 - etime shouldn't be set yet ok 29 - session should hold params ok 30 - my name's correct ok 31 - 'emails' should hold list of values ok 32 - 'emails' should hold list of two values ok 33 - first value is correct! ok 34 - second value is correct! ok 35 - 'blogs' holds a hash ok 36 - first blog is correct! ok 37 - second blog is correct! ok 38 - etime set to 1 second ok 39 - etime set to one minute ok 40 - etime set to two hours ok 41 - etime set to 5 days ok 42 - etime set to 10 seconds in the past ok 43 - etime set back to one second ok 44 - calling close method survives eval ok 45 - === 3 === ok 46 - Session instance loaded ok 47 - session doesn't have ID ok 48 - session is empty, which is the same as above ok 49 - session was expired ok 50 - session data cleared ok 51 - new session created ok 52 - session has id :1f107c17e3d794d8b216e6d17211b2da ok 53 - session isn't expired ok 54 - session isn't empty ok 55 - access and creation times are same ok 56 - it's a completely different session than above ok 57 - === 4 === ok 58 - Session '1f107c17e3d794d8b216e6d17211b2da' removed from datastore successfully ok 59 - session object created successfully ok 60 - claimed ID (1f107c17e3d794d8b216e6d17211b2da) couldn't be recovered. New ID is: 043c44fedfc0b943c858c7e7a72d144a ok 61 - === 5 === ok 62 - Session object created successfully ok 63 - claimed id (043c44fedfc0b943c858c7e7a72d144a) was recovered successfully! ok 64 - === 6 === ok 65 - Session object created successfully ok 66 - New object created, because previous object was deleted ok 67 - SimpleObjectClass created successfully ok 68 ok 69 ok 70 ok 71 - OverloadedObjectClass created successfully ok 72 - OverloadedObjectClass is properly overloaded ok 73 - OverloadedObjectClass is an object ok 74 ok 75 - SimpleObjectClass created successfully ok 76 - First element of anonymous array undef ok 77 ok 78 ok 79 ok 80 ok 81 - Overloaded objects have matching addresses ok 82 - === 7 === ok 83 - Session object created successfully ok 84 - Previously stored object loaded successfully ok 85 - SimpleObjectClass loaded successfully ok 86 - ok 87 - ok 88 - ok 89 - ok 90 ok 91 - Object is still overloaded ok 92 - Object is really overloaded ok 93 - First element of anonymous array undef ok 94 - SimpleObjectClass loaded successfully ok 95 - ok 96 - ok 97 - ok 98 - ok 99 ok 100 - Object is really overloaded ok 101 - Overloaded objects have matching addresses ok t/header........................ok 1 - has header() method ok 2 - has http_header() method 1..2 ok t/ip_matches....................ok 1 - ip_match off by default ok 2 - create new session ok 3 - check param TEST set ok 4 - store session id ok 5 - load session with different IP ok 6 - Same session id ok 7 - TEST param still set ok 8 - ip_match switched on ok 9 - create new session ok 10 - REMOTE_IP matches session ok 11 - check param TEST set ok 12 - store session id ok 13 - new session - same ip ok 14 - same session id ok 15 - REMOTE_IP matches session ok 16 - check param TEST set ok 17 - new session - different ip ok 18 - new session id 1..18 ok t/is_new........................ok 1 - use CGI::Session; ok 2 - session has is_new() method ok 3 - a brand new session is_new ok 4 - a session that has been closed and re-opened is not new 1..4 ok t/load..........................ok 1 - undefined session is created with wrong number of args to load ok 2 - expected error is returned for too many args ok 3 - don't mention new() in error when load() fails directly. ok 4 - expected error when load() called as instance method. 1..4 ok t/name..........................1..10 ok 1 - use CGI::Session; ok 2 ok 3 - name used as class method ok 4 - name as class method w/ param ok 5 - name as class method w/ param effective? ok 6 - name as instance method ok 7 - instance method falls through to class ok 8 - instance method w/ param ok 9 - instance method w/ param effective? ok 10 - instance method did not affect class method ok t/parse_dsn.....................1..1 ok 1 - parse_dsn: abbreviation and lower-casing ok t/remote_addr...................1..5 ok 1 - use CGI::Session; ok 2 ok 3 - remote_addr() exists ok 4 - remote_addr() passes eval ok 5 - remote_addr() is 127.0.0.1 ok t/str2seconds...................ok 1 - got expected result when converting 1w to seconds ok 2 - got expected result when converting 1s to seconds ok 3 - got expected result when converting 1m to seconds ok 4 - got expected result when converting +1m to seconds ok 5 - got expected result when converting 1d to seconds ok 6 - got expected result when converting -1m to seconds ok 7 - got expected result when converting 1y to seconds ok 8 - got expected result when converting 1M to seconds ok 9 - got expected result when converting 1h to seconds 1..9 ok t/symlink_db_file...............1..0 # Skip DB_File not available skipped all skipped: DB_File not available t/symlink_file..................1..11 ok 1 - Create new session named symlink ok 2 - We have an id ok 3 - Created symlink ok 4 - Check to make certain symlink was created ok 5 - Get our symlinked session ok 6 - we should have wiped out the symlink ok 7 - this session should be unique ok 8 - moving session file ok 9 - creating symlink ok 10 - flush should wipe out the symlink ok 11 - original session file has been restored ok Failed 1/46 test scripts, 97.83% okay. 19/505 subtests failed, 96.24% okay. Failed Test Stat Wstat Total Fail Failed List of Failed ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- t/g4.t 255 65280 101 38 37.62% 83-101 21 tests skipped. make: *** [test_dynamic] Error 25